@verdocs/web-sdk 5.0.12 → 5.0.14

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 (975) hide show
  1. package/dist/cjs/Datastore-4448f6ef.js +2 -0
  2. package/dist/cjs/Datastore-4448f6ef.js.map +1 -0
  3. package/dist/cjs/Icons-9a6f2f7c.js +2 -0
  4. package/dist/cjs/Icons-9a6f2f7c.js.map +1 -0
  5. package/dist/cjs/Toast-d84d7bd3.js +2 -0
  6. package/dist/cjs/Toast-d84d7bd3.js.map +1 -0
  7. package/dist/cjs/Types-7a726ff3.js +2 -0
  8. package/dist/cjs/Types-7a726ff3.js.map +1 -0
  9. package/dist/cjs/_commonjsHelpers-e6ff1d6e.js +2 -0
  10. package/dist/cjs/_commonjsHelpers-e6ff1d6e.js.map +1 -0
  11. package/dist/cjs/app-globals-3a1e7e63.js +2 -0
  12. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  13. package/dist/cjs/errors-017fb835.js +2 -0
  14. package/dist/cjs/errors-017fb835.js.map +1 -0
  15. package/dist/cjs/format-dc0f3757.js +2 -0
  16. package/dist/cjs/format-dc0f3757.js.map +1 -0
  17. package/dist/cjs/index-ccac8641.js +2 -0
  18. package/dist/cjs/index-ccac8641.js.map +1 -0
  19. package/dist/cjs/index.cjs.js +2 -0
  20. package/dist/cjs/index.cjs.js.map +1 -0
  21. package/dist/cjs/interact.min-e6956f8b.js +2 -0
  22. package/dist/cjs/interact.min-e6956f8b.js.map +1 -0
  23. package/dist/cjs/loader.cjs.js +2 -0
  24. package/dist/cjs/loader.cjs.js.map +1 -0
  25. package/dist/cjs/popper-31badbf8.js +2 -0
  26. package/dist/cjs/popper-31badbf8.js.map +1 -0
  27. package/dist/cjs/utils-746daf30.js +2 -0
  28. package/dist/cjs/utils-746daf30.js.map +1 -0
  29. package/dist/cjs/verdocs-auth.cjs.entry.js +2 -0
  30. package/dist/cjs/verdocs-auth.cjs.entry.js.map +1 -0
  31. package/dist/cjs/verdocs-build.cjs.entry.js +2 -0
  32. package/dist/cjs/verdocs-build.cjs.entry.js.map +1 -0
  33. package/dist/cjs/verdocs-button-panel_2.cjs.entry.js +2 -0
  34. package/dist/cjs/verdocs-button-panel_2.cjs.entry.js.map +1 -0
  35. package/dist/cjs/verdocs-button_2.cjs.entry.js +2 -0
  36. package/dist/cjs/verdocs-button_2.cjs.entry.js.map +1 -0
  37. package/dist/cjs/verdocs-checkbox_6.cjs.entry.js +2 -0
  38. package/dist/cjs/verdocs-checkbox_6.cjs.entry.js.map +1 -0
  39. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js +2 -0
  40. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js.map +1 -0
  41. package/dist/cjs/verdocs-dialog.cjs.entry.js +2 -0
  42. package/dist/cjs/verdocs-dialog.cjs.entry.js.map +1 -0
  43. package/dist/cjs/verdocs-dropdown.cjs.entry.js +2 -0
  44. package/dist/cjs/verdocs-dropdown.cjs.entry.js.map +1 -0
  45. package/dist/cjs/verdocs-envelope-document-page.cjs.entry.js +2 -0
  46. package/dist/cjs/verdocs-envelope-document-page.cjs.entry.js.map +1 -0
  47. package/dist/cjs/verdocs-envelope-recipient-link_2.cjs.entry.js +2 -0
  48. package/dist/cjs/verdocs-envelope-recipient-link_2.cjs.entry.js.map +1 -0
  49. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +2 -0
  50. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js.map +1 -0
  51. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +2 -0
  52. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js.map +1 -0
  53. package/dist/cjs/verdocs-envelopes-list.cjs.entry.js +2 -0
  54. package/dist/cjs/verdocs-envelopes-list.cjs.entry.js.map +1 -0
  55. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +2 -0
  56. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js.map +1 -0
  57. package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -0
  58. package/dist/cjs/verdocs-field-payment.cjs.entry.js.map +1 -0
  59. package/dist/cjs/verdocs-file-chooser_2.cjs.entry.js +2 -0
  60. package/dist/cjs/verdocs-file-chooser_2.cjs.entry.js.map +1 -0
  61. package/dist/cjs/verdocs-kba-dialog_2.cjs.entry.js +2 -0
  62. package/dist/cjs/verdocs-kba-dialog_2.cjs.entry.js.map +1 -0
  63. package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js +2 -0
  64. package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js.map +1 -0
  65. package/dist/cjs/verdocs-ok-dialog.cjs.entry.js +2 -0
  66. package/dist/cjs/verdocs-ok-dialog.cjs.entry.js.map +1 -0
  67. package/dist/cjs/verdocs-organization-card_2.cjs.entry.js +2 -0
  68. package/dist/cjs/verdocs-organization-card_2.cjs.entry.js.map +1 -0
  69. package/dist/cjs/verdocs-pagination_2.cjs.entry.js +2 -0
  70. package/dist/cjs/verdocs-pagination_2.cjs.entry.js.map +1 -0
  71. package/dist/cjs/verdocs-preview_6.cjs.entry.js +18 -8
  72. package/dist/cjs/verdocs-preview_6.cjs.entry.js.map +1 -0
  73. package/dist/cjs/verdocs-quick-functions.cjs.entry.js +2 -0
  74. package/dist/cjs/verdocs-quick-functions.cjs.entry.js.map +1 -0
  75. package/dist/cjs/verdocs-radio-button.cjs.entry.js +2 -0
  76. package/dist/cjs/verdocs-radio-button.cjs.entry.js.map +1 -0
  77. package/dist/cjs/verdocs-search-box.cjs.entry.js +2 -0
  78. package/dist/cjs/verdocs-search-box.cjs.entry.js.map +1 -0
  79. package/dist/cjs/verdocs-search-tabs.cjs.entry.js +2 -0
  80. package/dist/cjs/verdocs-search-tabs.cjs.entry.js.map +1 -0
  81. package/dist/cjs/verdocs-sign.cjs.entry.js +2 -0
  82. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -0
  83. package/dist/cjs/verdocs-spinner.cjs.entry.js +2 -0
  84. package/dist/cjs/verdocs-spinner.cjs.entry.js.map +1 -0
  85. package/dist/cjs/verdocs-status-indicator.cjs.entry.js +2 -0
  86. package/dist/cjs/verdocs-status-indicator.cjs.entry.js.map +1 -0
  87. package/dist/cjs/verdocs-table.cjs.entry.js +2 -0
  88. package/dist/cjs/verdocs-table.cjs.entry.js.map +1 -0
  89. package/dist/cjs/verdocs-template-card.cjs.entry.js +2 -0
  90. package/dist/cjs/verdocs-template-card.cjs.entry.js.map +1 -0
  91. package/dist/cjs/verdocs-template-create.cjs.entry.js +2 -0
  92. package/dist/cjs/verdocs-template-create.cjs.entry.js.map +1 -0
  93. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +2 -0
  94. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js.map +1 -0
  95. package/dist/cjs/verdocs-template-star.cjs.entry.js +2 -0
  96. package/dist/cjs/verdocs-template-star.cjs.entry.js.map +1 -0
  97. package/dist/cjs/verdocs-template-tags.cjs.entry.js +2 -0
  98. package/dist/cjs/verdocs-template-tags.cjs.entry.js.map +1 -0
  99. package/dist/cjs/verdocs-templates-list.cjs.entry.js +2 -0
  100. package/dist/cjs/verdocs-templates-list.cjs.entry.js.map +1 -0
  101. package/dist/cjs/verdocs-toggle.cjs.entry.js +2 -0
  102. package/dist/cjs/verdocs-toggle.cjs.entry.js.map +1 -0
  103. package/dist/cjs/verdocs-web-sdk.cjs.js +2 -0
  104. package/dist/cjs/verdocs-web-sdk.cjs.js.map +1 -0
  105. package/dist/collection/components/controls/verdocs-button/verdocs-button.js +1 -0
  106. package/dist/collection/components/controls/verdocs-button/verdocs-button.js.map +1 -0
  107. package/dist/collection/components/controls/verdocs-button-panel/verdocs-button-panel.js +1 -0
  108. package/dist/collection/components/controls/verdocs-button-panel/verdocs-button-panel.js.map +1 -0
  109. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.js +1 -0
  110. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.js.map +1 -0
  111. package/dist/collection/components/controls/verdocs-component-error/verdocs-component-error.js +1 -0
  112. package/dist/collection/components/controls/verdocs-component-error/verdocs-component-error.js.map +1 -0
  113. package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js +1 -0
  114. package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js.map +1 -0
  115. package/dist/collection/components/controls/verdocs-file-chooser/verdocs-file-chooser.js +1 -0
  116. package/dist/collection/components/controls/verdocs-file-chooser/verdocs-file-chooser.js.map +1 -0
  117. package/dist/collection/components/controls/verdocs-help-icon/verdocs-help-icon.js +1 -0
  118. package/dist/collection/components/controls/verdocs-help-icon/verdocs-help-icon.js.map +1 -0
  119. package/dist/collection/components/controls/verdocs-loader/verdocs-loader.js +1 -0
  120. package/dist/collection/components/controls/verdocs-loader/verdocs-loader.js.map +1 -0
  121. package/dist/collection/components/controls/verdocs-menu-panel/verdocs-menu-panel.js +1 -0
  122. package/dist/collection/components/controls/verdocs-menu-panel/verdocs-menu-panel.js.map +1 -0
  123. package/dist/collection/components/controls/verdocs-organization-card/verdocs-organization-card.js +1 -0
  124. package/dist/collection/components/controls/verdocs-organization-card/verdocs-organization-card.js.map +1 -0
  125. package/dist/collection/components/controls/verdocs-pagination/verdocs-pagination.js +1 -0
  126. package/dist/collection/components/controls/verdocs-pagination/verdocs-pagination.js.map +1 -0
  127. package/dist/collection/components/controls/verdocs-portal/verdocs-portal.js +1 -0
  128. package/dist/collection/components/controls/verdocs-portal/verdocs-portal.js.map +1 -0
  129. package/dist/collection/components/controls/verdocs-progress-bar/verdocs-progress-bar.js +1 -0
  130. package/dist/collection/components/controls/verdocs-progress-bar/verdocs-progress-bar.js.map +1 -0
  131. package/dist/collection/components/controls/verdocs-quick-filter/verdocs-quick-filter.js +1 -0
  132. package/dist/collection/components/controls/verdocs-quick-filter/verdocs-quick-filter.js.map +1 -0
  133. package/dist/collection/components/controls/verdocs-radio-button/verdocs-radio-button.js +1 -0
  134. package/dist/collection/components/controls/verdocs-radio-button/verdocs-radio-button.js.map +1 -0
  135. package/dist/collection/components/controls/verdocs-select-input/verdocs-select-input.js +1 -0
  136. package/dist/collection/components/controls/verdocs-select-input/verdocs-select-input.js.map +1 -0
  137. package/dist/collection/components/controls/verdocs-spinner/verdocs-spinner.js +1 -0
  138. package/dist/collection/components/controls/verdocs-spinner/verdocs-spinner.js.map +1 -0
  139. package/dist/collection/components/controls/verdocs-switch/verdocs-switch.js +1 -0
  140. package/dist/collection/components/controls/verdocs-switch/verdocs-switch.js.map +1 -0
  141. package/dist/collection/components/controls/verdocs-table/verdocs-table.js +1 -0
  142. package/dist/collection/components/controls/verdocs-table/verdocs-table.js.map +1 -0
  143. package/dist/collection/components/controls/verdocs-tabs/verdocs-tabs.js +1 -0
  144. package/dist/collection/components/controls/verdocs-tabs/verdocs-tabs.js.map +1 -0
  145. package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js +1 -0
  146. package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js.map +1 -0
  147. package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.js +1 -0
  148. package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.js.map +1 -0
  149. package/dist/collection/components/controls/verdocs-toggle-button/verdocs-toggle-button.js +1 -0
  150. package/dist/collection/components/controls/verdocs-toggle-button/verdocs-toggle-button.js.map +1 -0
  151. package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.js +1 -0
  152. package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.js.map +1 -0
  153. package/dist/collection/components/dialogs/verdocs-dialog/verdocs-dialog.js +1 -0
  154. package/dist/collection/components/dialogs/verdocs-dialog/verdocs-dialog.js.map +1 -0
  155. package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js +1 -0
  156. package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js.map +1 -0
  157. package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js +1 -0
  158. package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js.map +1 -0
  159. package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js +1 -0
  160. package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js.map +1 -0
  161. package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js +1 -0
  162. package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js.map +1 -0
  163. package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js +1 -0
  164. package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js.map +1 -0
  165. package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.js +1 -0
  166. package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.js.map +1 -0
  167. package/dist/collection/components/elements/verdocs-search-box/verdocs-search-box.js +1 -0
  168. package/dist/collection/components/elements/verdocs-search-box/verdocs-search-box.js.map +1 -0
  169. package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.js +1 -0
  170. package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.js.map +1 -0
  171. package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +1 -0
  172. package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js.map +1 -0
  173. package/dist/collection/components/embeds/verdocs-build/verdocs-build.js +1 -0
  174. package/dist/collection/components/embeds/verdocs-build/verdocs-build.js.map +1 -0
  175. package/dist/collection/components/embeds/verdocs-preview/verdocs-preview.js +1 -0
  176. package/dist/collection/components/embeds/verdocs-preview/verdocs-preview.js.map +1 -0
  177. package/dist/collection/components/embeds/verdocs-send/role-flow.js +1 -0
  178. package/dist/collection/components/embeds/verdocs-send/role-flow.js.map +1 -0
  179. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +14 -6
  180. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js.map +1 -0
  181. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +1 -0
  182. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -0
  183. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +1 -0
  184. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js.map +1 -0
  185. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js +1 -0
  186. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -0
  187. package/dist/collection/components/envelopes/verdocs-envelope-document-page/verdocs-envelope-document-page.js +1 -0
  188. package/dist/collection/components/envelopes/verdocs-envelope-document-page/verdocs-envelope-document-page.js.map +1 -0
  189. package/dist/collection/components/envelopes/verdocs-envelope-recipient-link/verdocs-envelope-recipient-link.js +1 -0
  190. package/dist/collection/components/envelopes/verdocs-envelope-recipient-link/verdocs-envelope-recipient-link.js.map +1 -0
  191. package/dist/collection/components/envelopes/verdocs-envelope-recipient-summary/verdocs-envelope-recipient-summary.js +1 -0
  192. package/dist/collection/components/envelopes/verdocs-envelope-recipient-summary/verdocs-envelope-recipient-summary.js.map +1 -0
  193. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +1 -0
  194. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js.map +1 -0
  195. package/dist/collection/components/envelopes/verdocs-envelopes-list/verdocs-envelopes-list.js +1 -0
  196. package/dist/collection/components/envelopes/verdocs-envelopes-list/verdocs-envelopes-list.js.map +1 -0
  197. package/dist/collection/components/envelopes/verdocs-status-indicator/recipient-flow.js +1 -0
  198. package/dist/collection/components/envelopes/verdocs-status-indicator/recipient-flow.js.map +1 -0
  199. package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.js +1 -0
  200. package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.js.map +1 -0
  201. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +1 -0
  202. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js.map +1 -0
  203. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +1 -0
  204. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js.map +1 -0
  205. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +1 -0
  206. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js.map +1 -0
  207. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +1 -0
  208. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js.map +1 -0
  209. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +1 -0
  210. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js.map +1 -0
  211. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +1 -0
  212. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js.map +1 -0
  213. package/dist/collection/components/fields/verdocs-field-radio/verdocs-field-radio.js +1 -0
  214. package/dist/collection/components/fields/verdocs-field-radio/verdocs-field-radio.js.map +1 -0
  215. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +1 -0
  216. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js.map +1 -0
  217. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +1 -0
  218. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js.map +1 -0
  219. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +1 -0
  220. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js.map +1 -0
  221. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +1 -0
  222. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js.map +1 -0
  223. package/dist/collection/components/templates/verdocs-template-attachments/verdocs-template-attachments.js +1 -0
  224. package/dist/collection/components/templates/verdocs-template-attachments/verdocs-template-attachments.js.map +1 -0
  225. package/dist/collection/components/templates/verdocs-template-build-tabs/verdocs-template-build-tabs.js +1 -0
  226. package/dist/collection/components/templates/verdocs-template-build-tabs/verdocs-template-build-tabs.js.map +1 -0
  227. package/dist/collection/components/templates/verdocs-template-card/verdocs-template-card.js +1 -0
  228. package/dist/collection/components/templates/verdocs-template-card/verdocs-template-card.js.map +1 -0
  229. package/dist/collection/components/templates/verdocs-template-create/verdocs-template-create.js +1 -0
  230. package/dist/collection/components/templates/verdocs-template-create/verdocs-template-create.js.map +1 -0
  231. package/dist/collection/components/templates/verdocs-template-document-page/verdocs-template-document-page.js +1 -0
  232. package/dist/collection/components/templates/verdocs-template-document-page/verdocs-template-document-page.js.map +1 -0
  233. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +1 -0
  234. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js.map +1 -0
  235. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +1 -0
  236. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js.map +1 -0
  237. package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +1 -0
  238. package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js.map +1 -0
  239. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +4 -4
  240. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js.map +1 -0
  241. package/dist/collection/components/templates/verdocs-template-star/verdocs-template-star.js +1 -0
  242. package/dist/collection/components/templates/verdocs-template-star/verdocs-template-star.js.map +1 -0
  243. package/dist/collection/components/templates/verdocs-template-tags/verdocs-template-tags.js +1 -0
  244. package/dist/collection/components/templates/verdocs-template-tags/verdocs-template-tags.js.map +1 -0
  245. package/dist/collection/components/templates/verdocs-templates-list/verdocs-templates-list.js +1 -0
  246. package/dist/collection/components/templates/verdocs-templates-list/verdocs-templates-list.js.map +1 -0
  247. package/dist/collection/index.js +1 -0
  248. package/dist/collection/index.js.map +1 -0
  249. package/dist/collection/utils/Datastore.js +1 -0
  250. package/dist/collection/utils/Datastore.js.map +1 -0
  251. package/dist/collection/utils/Icons.js +1 -0
  252. package/dist/collection/utils/Icons.js.map +1 -0
  253. package/dist/collection/utils/Templates.js +1 -0
  254. package/dist/collection/utils/Templates.js.map +1 -0
  255. package/dist/collection/utils/Toast.js +1 -0
  256. package/dist/collection/utils/Toast.js.map +1 -0
  257. package/dist/collection/utils/Types.js +1 -0
  258. package/dist/collection/utils/Types.js.map +1 -0
  259. package/dist/collection/utils/errors.js +1 -0
  260. package/dist/collection/utils/errors.js.map +1 -0
  261. package/dist/collection/utils/utils.js +1 -0
  262. package/dist/collection/utils/utils.js.map +1 -0
  263. package/dist/components/index.js +2 -0
  264. package/dist/components/index.js.map +1 -0
  265. package/dist/components/{p-0689fc47.js → p-022b87d3.js} +16 -7
  266. package/dist/components/p-022b87d3.js.map +1 -0
  267. package/dist/components/p-04c07b7b.js +2 -0
  268. package/dist/components/p-04c07b7b.js.map +1 -0
  269. package/dist/components/p-070bebd7.js +2 -0
  270. package/dist/components/p-070bebd7.js.map +1 -0
  271. package/dist/components/p-0e332769.js +2 -0
  272. package/dist/components/p-0e332769.js.map +1 -0
  273. package/dist/components/p-0ed0ac8b.js +2 -0
  274. package/dist/components/p-0ed0ac8b.js.map +1 -0
  275. package/dist/components/p-12bab948.js +2 -0
  276. package/dist/components/p-12bab948.js.map +1 -0
  277. package/dist/components/p-14c80ae8.js +2 -0
  278. package/dist/components/p-14c80ae8.js.map +1 -0
  279. package/dist/components/p-176a07b2.js +2 -0
  280. package/dist/components/p-176a07b2.js.map +1 -0
  281. package/dist/components/p-1ae5d7e0.js +2 -0
  282. package/dist/components/p-1ae5d7e0.js.map +1 -0
  283. package/dist/components/p-211fa3e2.js +2 -0
  284. package/dist/components/p-211fa3e2.js.map +1 -0
  285. package/dist/components/p-22da6d14.js +2 -0
  286. package/dist/components/p-22da6d14.js.map +1 -0
  287. package/dist/components/p-261521bc.js +2 -0
  288. package/dist/components/p-261521bc.js.map +1 -0
  289. package/dist/components/p-27548ebd.js +2 -0
  290. package/dist/components/p-27548ebd.js.map +1 -0
  291. package/dist/components/p-2ddf4d5b.js +2 -0
  292. package/dist/components/p-2ddf4d5b.js.map +1 -0
  293. package/dist/components/p-2ef2d490.js +2 -0
  294. package/dist/components/p-2ef2d490.js.map +1 -0
  295. package/dist/components/p-314d698d.js +2 -0
  296. package/dist/components/p-314d698d.js.map +1 -0
  297. package/dist/components/p-3201d529.js +2 -0
  298. package/dist/components/p-3201d529.js.map +1 -0
  299. package/dist/components/p-324ed895.js +2 -0
  300. package/dist/components/p-324ed895.js.map +1 -0
  301. package/dist/components/p-325b3828.js +2 -0
  302. package/dist/components/p-325b3828.js.map +1 -0
  303. package/dist/components/p-41a75ad6.js +2 -0
  304. package/dist/components/p-41a75ad6.js.map +1 -0
  305. package/dist/components/p-44ae3c75.js +2 -0
  306. package/dist/components/p-44ae3c75.js.map +1 -0
  307. package/dist/components/p-4d3b9ee9.js +2 -0
  308. package/dist/components/p-4d3b9ee9.js.map +1 -0
  309. package/dist/components/p-4dd750e9.js +2 -0
  310. package/dist/components/p-4dd750e9.js.map +1 -0
  311. package/dist/components/p-5182136e.js +2 -0
  312. package/dist/components/p-5182136e.js.map +1 -0
  313. package/dist/components/{p-a60453aa.js → p-570895a8.js} +5 -2
  314. package/dist/components/p-570895a8.js.map +1 -0
  315. package/dist/components/p-58d027d1.js +2 -0
  316. package/dist/components/p-58d027d1.js.map +1 -0
  317. package/dist/components/p-5e378f0e.js +2 -0
  318. package/dist/components/p-5e378f0e.js.map +1 -0
  319. package/dist/components/p-62743fd3.js +2 -0
  320. package/dist/components/p-62743fd3.js.map +1 -0
  321. package/dist/components/p-6719b0d7.js +2 -0
  322. package/dist/components/p-6719b0d7.js.map +1 -0
  323. package/dist/components/p-68a5aaff.js +2 -0
  324. package/dist/components/p-68a5aaff.js.map +1 -0
  325. package/dist/components/p-6c4fe42c.js +2 -0
  326. package/dist/components/p-6c4fe42c.js.map +1 -0
  327. package/dist/components/p-6fcd99d1.js +2 -0
  328. package/dist/components/p-6fcd99d1.js.map +1 -0
  329. package/dist/components/p-7cd6c0ce.js +2 -0
  330. package/dist/components/p-7cd6c0ce.js.map +1 -0
  331. package/dist/components/p-7f32e087.js +2 -0
  332. package/dist/components/p-7f32e087.js.map +1 -0
  333. package/dist/components/p-84ae0283.js +2 -0
  334. package/dist/components/p-84ae0283.js.map +1 -0
  335. package/dist/components/p-85aa8e05.js +2 -0
  336. package/dist/components/p-85aa8e05.js.map +1 -0
  337. package/dist/components/p-9bcf9620.js +2 -0
  338. package/dist/components/p-9bcf9620.js.map +1 -0
  339. package/dist/components/p-9c0b30f8.js +2 -0
  340. package/dist/components/p-9c0b30f8.js.map +1 -0
  341. package/dist/components/p-9cfd8022.js +2 -0
  342. package/dist/components/p-9cfd8022.js.map +1 -0
  343. package/dist/components/p-9fb98ea2.js +2 -0
  344. package/dist/components/p-9fb98ea2.js.map +1 -0
  345. package/dist/components/p-a2f6d2c6.js +2 -0
  346. package/dist/components/p-a2f6d2c6.js.map +1 -0
  347. package/dist/components/p-a55f08ad.js +2 -0
  348. package/dist/components/p-a55f08ad.js.map +1 -0
  349. package/dist/components/p-a901dff2.js +2 -0
  350. package/dist/components/p-a901dff2.js.map +1 -0
  351. package/dist/components/p-adf1586f.js +2 -0
  352. package/dist/components/p-adf1586f.js.map +1 -0
  353. package/dist/components/p-af5ecc92.js +2 -0
  354. package/dist/components/p-af5ecc92.js.map +1 -0
  355. package/dist/components/p-b0766439.js +2 -0
  356. package/dist/components/p-b0766439.js.map +1 -0
  357. package/dist/components/p-b7d080eb.js +2 -0
  358. package/dist/components/p-b7d080eb.js.map +1 -0
  359. package/dist/components/p-b99b485b.js +2 -0
  360. package/dist/components/p-b99b485b.js.map +1 -0
  361. package/dist/components/p-be261487.js +2 -0
  362. package/dist/components/p-be261487.js.map +1 -0
  363. package/dist/components/p-c00770e6.js +2 -0
  364. package/dist/components/p-c00770e6.js.map +1 -0
  365. package/dist/components/p-c1159428.js +2 -0
  366. package/dist/components/p-c1159428.js.map +1 -0
  367. package/dist/components/p-c662e5f4.js +2 -0
  368. package/dist/components/p-c662e5f4.js.map +1 -0
  369. package/dist/components/p-c76fab71.js +2 -0
  370. package/dist/components/p-c76fab71.js.map +1 -0
  371. package/dist/components/p-c7ee88c7.js +2 -0
  372. package/dist/components/p-c7ee88c7.js.map +1 -0
  373. package/dist/components/p-cce871bf.js +2 -0
  374. package/dist/components/p-cce871bf.js.map +1 -0
  375. package/dist/components/p-d8340641.js +2 -0
  376. package/dist/components/p-d8340641.js.map +1 -0
  377. package/dist/components/p-d9a2e920.js +2 -0
  378. package/dist/components/p-d9a2e920.js.map +1 -0
  379. package/dist/components/p-efa3b8ac.js +2 -0
  380. package/dist/components/p-efa3b8ac.js.map +1 -0
  381. package/dist/components/p-f0f6e862.js +2 -0
  382. package/dist/components/p-f0f6e862.js.map +1 -0
  383. package/dist/components/p-f4e068a9.js +2 -0
  384. package/dist/components/p-f4e068a9.js.map +1 -0
  385. package/dist/components/p-fd97809c.js +2 -0
  386. package/dist/components/p-fd97809c.js.map +1 -0
  387. package/dist/components/verdocs-auth.js +2 -0
  388. package/dist/components/verdocs-auth.js.map +1 -0
  389. package/dist/components/verdocs-build.js +4 -2
  390. package/dist/components/verdocs-build.js.map +1 -0
  391. package/dist/components/verdocs-button-panel.js +2 -0
  392. package/dist/components/verdocs-button-panel.js.map +1 -0
  393. package/dist/components/verdocs-button.js +2 -0
  394. package/dist/components/verdocs-button.js.map +1 -0
  395. package/dist/components/verdocs-checkbox.js +2 -0
  396. package/dist/components/verdocs-checkbox.js.map +1 -0
  397. package/dist/components/verdocs-component-error.js +2 -0
  398. package/dist/components/verdocs-component-error.js.map +1 -0
  399. package/dist/components/verdocs-contact-picker.js +2 -0
  400. package/dist/components/verdocs-contact-picker.js.map +1 -0
  401. package/dist/components/verdocs-dialog.js +2 -0
  402. package/dist/components/verdocs-dialog.js.map +1 -0
  403. package/dist/components/verdocs-dropdown.js +2 -0
  404. package/dist/components/verdocs-dropdown.js.map +1 -0
  405. package/dist/components/verdocs-envelope-document-page.js +2 -0
  406. package/dist/components/verdocs-envelope-document-page.js.map +1 -0
  407. package/dist/components/verdocs-envelope-recipient-link.js +2 -0
  408. package/dist/components/verdocs-envelope-recipient-link.js.map +1 -0
  409. package/dist/components/verdocs-envelope-recipient-summary.js +2 -0
  410. package/dist/components/verdocs-envelope-recipient-summary.js.map +1 -0
  411. package/dist/components/verdocs-envelope-sidebar.js +2 -0
  412. package/dist/components/verdocs-envelope-sidebar.js.map +1 -0
  413. package/dist/components/verdocs-envelopes-list.js +2 -0
  414. package/dist/components/verdocs-envelopes-list.js.map +1 -0
  415. package/dist/components/verdocs-field-attachment.js +2 -0
  416. package/dist/components/verdocs-field-attachment.js.map +1 -0
  417. package/dist/components/verdocs-field-checkbox.js +2 -0
  418. package/dist/components/verdocs-field-checkbox.js.map +1 -0
  419. package/dist/components/verdocs-field-date.js +2 -0
  420. package/dist/components/verdocs-field-date.js.map +1 -0
  421. package/dist/components/verdocs-field-dropdown.js +2 -0
  422. package/dist/components/verdocs-field-dropdown.js.map +1 -0
  423. package/dist/components/verdocs-field-initial.js +2 -0
  424. package/dist/components/verdocs-field-initial.js.map +1 -0
  425. package/dist/components/verdocs-field-payment.js +2 -0
  426. package/dist/components/verdocs-field-payment.js.map +1 -0
  427. package/dist/components/verdocs-field-radio.js +2 -0
  428. package/dist/components/verdocs-field-radio.js.map +1 -0
  429. package/dist/components/verdocs-field-signature.js +2 -0
  430. package/dist/components/verdocs-field-signature.js.map +1 -0
  431. package/dist/components/verdocs-field-textarea.js +2 -0
  432. package/dist/components/verdocs-field-textarea.js.map +1 -0
  433. package/dist/components/verdocs-field-textbox.js +2 -0
  434. package/dist/components/verdocs-field-textbox.js.map +1 -0
  435. package/dist/components/verdocs-field-timestamp.js +2 -0
  436. package/dist/components/verdocs-field-timestamp.js.map +1 -0
  437. package/dist/components/verdocs-file-chooser.js +2 -0
  438. package/dist/components/verdocs-file-chooser.js.map +1 -0
  439. package/dist/components/verdocs-help-icon.js +2 -0
  440. package/dist/components/verdocs-help-icon.js.map +1 -0
  441. package/dist/components/verdocs-initial-dialog.js +2 -0
  442. package/dist/components/verdocs-initial-dialog.js.map +1 -0
  443. package/dist/components/verdocs-kba-dialog.js +2 -0
  444. package/dist/components/verdocs-kba-dialog.js.map +1 -0
  445. package/dist/components/verdocs-loader.js +2 -0
  446. package/dist/components/verdocs-loader.js.map +1 -0
  447. package/dist/components/verdocs-menu-panel.js +2 -0
  448. package/dist/components/verdocs-menu-panel.js.map +1 -0
  449. package/dist/components/verdocs-ok-dialog.js +2 -0
  450. package/dist/components/verdocs-ok-dialog.js.map +1 -0
  451. package/dist/components/verdocs-organization-card.js +2 -0
  452. package/dist/components/verdocs-organization-card.js.map +1 -0
  453. package/dist/components/verdocs-pagination.js +2 -0
  454. package/dist/components/verdocs-pagination.js.map +1 -0
  455. package/dist/components/verdocs-portal.js +2 -0
  456. package/dist/components/verdocs-portal.js.map +1 -0
  457. package/dist/components/verdocs-preview.js +2 -0
  458. package/dist/components/verdocs-preview.js.map +1 -0
  459. package/dist/components/verdocs-progress-bar.js +2 -0
  460. package/dist/components/verdocs-progress-bar.js.map +1 -0
  461. package/dist/components/verdocs-quick-filter.js +2 -0
  462. package/dist/components/verdocs-quick-filter.js.map +1 -0
  463. package/dist/components/verdocs-quick-functions.js +2 -0
  464. package/dist/components/verdocs-quick-functions.js.map +1 -0
  465. package/dist/components/verdocs-radio-button.js +2 -0
  466. package/dist/components/verdocs-radio-button.js.map +1 -0
  467. package/dist/components/verdocs-search-box.js +2 -0
  468. package/dist/components/verdocs-search-box.js.map +1 -0
  469. package/dist/components/verdocs-search-tabs.js +2 -0
  470. package/dist/components/verdocs-search-tabs.js.map +1 -0
  471. package/dist/components/verdocs-select-input.js +2 -0
  472. package/dist/components/verdocs-select-input.js.map +1 -0
  473. package/dist/components/verdocs-send.js +3 -1
  474. package/dist/components/verdocs-send.js.map +1 -0
  475. package/dist/components/verdocs-sign.js +2 -0
  476. package/dist/components/verdocs-sign.js.map +1 -0
  477. package/dist/components/verdocs-signature-dialog.js +2 -0
  478. package/dist/components/verdocs-signature-dialog.js.map +1 -0
  479. package/dist/components/verdocs-spinner.js +2 -0
  480. package/dist/components/verdocs-spinner.js.map +1 -0
  481. package/dist/components/verdocs-status-indicator.js +2 -0
  482. package/dist/components/verdocs-status-indicator.js.map +1 -0
  483. package/dist/components/verdocs-switch.js +2 -0
  484. package/dist/components/verdocs-switch.js.map +1 -0
  485. package/dist/components/verdocs-table.js +2 -0
  486. package/dist/components/verdocs-table.js.map +1 -0
  487. package/dist/components/verdocs-tabs.js +2 -0
  488. package/dist/components/verdocs-tabs.js.map +1 -0
  489. package/dist/components/verdocs-template-attachments.js +2 -0
  490. package/dist/components/verdocs-template-attachments.js.map +1 -0
  491. package/dist/components/verdocs-template-build-tabs.js +2 -0
  492. package/dist/components/verdocs-template-build-tabs.js.map +1 -0
  493. package/dist/components/verdocs-template-card.js +2 -0
  494. package/dist/components/verdocs-template-card.js.map +1 -0
  495. package/dist/components/verdocs-template-create.js +2 -0
  496. package/dist/components/verdocs-template-create.js.map +1 -0
  497. package/dist/components/verdocs-template-document-page.js +2 -0
  498. package/dist/components/verdocs-template-document-page.js.map +1 -0
  499. package/dist/components/verdocs-template-field-properties.js +2 -0
  500. package/dist/components/verdocs-template-field-properties.js.map +1 -0
  501. package/dist/components/verdocs-template-fields.js +2 -0
  502. package/dist/components/verdocs-template-fields.js.map +1 -0
  503. package/dist/components/verdocs-template-role-properties.js +2 -0
  504. package/dist/components/verdocs-template-role-properties.js.map +1 -0
  505. package/dist/components/verdocs-template-roles.js +3 -1
  506. package/dist/components/verdocs-template-roles.js.map +1 -0
  507. package/dist/components/verdocs-template-star.js +2 -0
  508. package/dist/components/verdocs-template-star.js.map +1 -0
  509. package/dist/components/verdocs-template-tags.js +2 -0
  510. package/dist/components/verdocs-template-tags.js.map +1 -0
  511. package/dist/components/verdocs-templates-list.js +2 -0
  512. package/dist/components/verdocs-templates-list.js.map +1 -0
  513. package/dist/components/verdocs-text-input.js +2 -0
  514. package/dist/components/verdocs-text-input.js.map +1 -0
  515. package/dist/components/verdocs-toggle-button.js +2 -0
  516. package/dist/components/verdocs-toggle-button.js.map +1 -0
  517. package/dist/components/verdocs-toggle.js +2 -0
  518. package/dist/components/verdocs-toggle.js.map +1 -0
  519. package/dist/components/verdocs-toolbar-icon.js +2 -0
  520. package/dist/components/verdocs-toolbar-icon.js.map +1 -0
  521. package/dist/components/verdocs-upload-dialog.js +2 -0
  522. package/dist/components/verdocs-upload-dialog.js.map +1 -0
  523. package/dist/components/verdocs-view.js +2 -0
  524. package/dist/components/verdocs-view.js.map +1 -0
  525. package/dist/custom-elements.json +2156 -0
  526. package/dist/esm/Datastore-b55570ff.js +2 -0
  527. package/dist/esm/Datastore-b55570ff.js.map +1 -0
  528. package/dist/esm/Icons-faf0377f.js +2 -0
  529. package/dist/esm/Icons-faf0377f.js.map +1 -0
  530. package/dist/esm/Toast-c4843828.js +2 -0
  531. package/dist/esm/Toast-c4843828.js.map +1 -0
  532. package/dist/esm/Types-95d86a44.js +2 -0
  533. package/dist/esm/Types-95d86a44.js.map +1 -0
  534. package/dist/esm/_commonjsHelpers-bdec4bbd.js +2 -0
  535. package/dist/esm/_commonjsHelpers-bdec4bbd.js.map +1 -0
  536. package/dist/esm/app-globals-0f993ce5.js +2 -0
  537. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  538. package/dist/esm/errors-887f1e88.js +2 -0
  539. package/dist/esm/errors-887f1e88.js.map +1 -0
  540. package/dist/esm/format-b8602175.js +2 -0
  541. package/dist/esm/format-b8602175.js.map +1 -0
  542. package/dist/esm/index-272d51a4.js +2 -0
  543. package/dist/esm/index-272d51a4.js.map +1 -0
  544. package/dist/esm/index.js +2 -0
  545. package/dist/esm/index.js.map +1 -0
  546. package/dist/esm/interact.min-a71beb3d.js +2 -0
  547. package/dist/esm/interact.min-a71beb3d.js.map +1 -0
  548. package/dist/esm/loader.js +2 -0
  549. package/dist/esm/loader.js.map +1 -0
  550. package/dist/esm/popper-0fbeff6d.js +2 -0
  551. package/dist/esm/popper-0fbeff6d.js.map +1 -0
  552. package/dist/esm/utils-bd656c37.js +2 -0
  553. package/dist/esm/utils-bd656c37.js.map +1 -0
  554. package/dist/esm/verdocs-auth.entry.js +2 -0
  555. package/dist/esm/verdocs-auth.entry.js.map +1 -0
  556. package/dist/esm/verdocs-build.entry.js +2 -0
  557. package/dist/esm/verdocs-build.entry.js.map +1 -0
  558. package/dist/esm/verdocs-button-panel_2.entry.js +2 -0
  559. package/dist/esm/verdocs-button-panel_2.entry.js.map +1 -0
  560. package/dist/esm/verdocs-button_2.entry.js +2 -0
  561. package/dist/esm/verdocs-button_2.entry.js.map +1 -0
  562. package/dist/esm/verdocs-checkbox_6.entry.js +2 -0
  563. package/dist/esm/verdocs-checkbox_6.entry.js.map +1 -0
  564. package/dist/esm/verdocs-contact-picker_2.entry.js +2 -0
  565. package/dist/esm/verdocs-contact-picker_2.entry.js.map +1 -0
  566. package/dist/esm/verdocs-dialog.entry.js +2 -0
  567. package/dist/esm/verdocs-dialog.entry.js.map +1 -0
  568. package/dist/esm/verdocs-dropdown.entry.js +2 -0
  569. package/dist/esm/verdocs-dropdown.entry.js.map +1 -0
  570. package/dist/esm/verdocs-envelope-document-page.entry.js +2 -0
  571. package/dist/esm/verdocs-envelope-document-page.entry.js.map +1 -0
  572. package/dist/esm/verdocs-envelope-recipient-link_2.entry.js +2 -0
  573. package/dist/esm/verdocs-envelope-recipient-link_2.entry.js.map +1 -0
  574. package/dist/esm/verdocs-envelope-recipient-summary.entry.js +2 -0
  575. package/dist/esm/verdocs-envelope-recipient-summary.entry.js.map +1 -0
  576. package/dist/esm/verdocs-envelope-sidebar.entry.js +2 -0
  577. package/dist/esm/verdocs-envelope-sidebar.entry.js.map +1 -0
  578. package/dist/esm/verdocs-envelopes-list.entry.js +2 -0
  579. package/dist/esm/verdocs-envelopes-list.entry.js.map +1 -0
  580. package/dist/esm/verdocs-field-attachment_13.entry.js +2 -0
  581. package/dist/esm/verdocs-field-attachment_13.entry.js.map +1 -0
  582. package/dist/esm/verdocs-field-payment.entry.js +2 -0
  583. package/dist/esm/verdocs-field-payment.entry.js.map +1 -0
  584. package/dist/esm/verdocs-file-chooser_2.entry.js +2 -0
  585. package/dist/esm/verdocs-file-chooser_2.entry.js.map +1 -0
  586. package/dist/esm/verdocs-kba-dialog_2.entry.js +2 -0
  587. package/dist/esm/verdocs-kba-dialog_2.entry.js.map +1 -0
  588. package/dist/esm/verdocs-menu-panel_2.entry.js +2 -0
  589. package/dist/esm/verdocs-menu-panel_2.entry.js.map +1 -0
  590. package/dist/esm/verdocs-ok-dialog.entry.js +2 -0
  591. package/dist/esm/verdocs-ok-dialog.entry.js.map +1 -0
  592. package/dist/esm/verdocs-organization-card_2.entry.js +2 -0
  593. package/dist/esm/verdocs-organization-card_2.entry.js.map +1 -0
  594. package/dist/esm/verdocs-pagination_2.entry.js +2 -0
  595. package/dist/esm/verdocs-pagination_2.entry.js.map +1 -0
  596. package/dist/esm/verdocs-preview_6.entry.js +19 -9
  597. package/dist/esm/verdocs-preview_6.entry.js.map +1 -0
  598. package/dist/esm/verdocs-quick-functions.entry.js +2 -0
  599. package/dist/esm/verdocs-quick-functions.entry.js.map +1 -0
  600. package/dist/esm/verdocs-radio-button.entry.js +2 -0
  601. package/dist/esm/verdocs-radio-button.entry.js.map +1 -0
  602. package/dist/esm/verdocs-search-box.entry.js +2 -0
  603. package/dist/esm/verdocs-search-box.entry.js.map +1 -0
  604. package/dist/esm/verdocs-search-tabs.entry.js +2 -0
  605. package/dist/esm/verdocs-search-tabs.entry.js.map +1 -0
  606. package/dist/esm/verdocs-sign.entry.js +2 -0
  607. package/dist/esm/verdocs-sign.entry.js.map +1 -0
  608. package/dist/esm/verdocs-spinner.entry.js +2 -0
  609. package/dist/esm/verdocs-spinner.entry.js.map +1 -0
  610. package/dist/esm/verdocs-status-indicator.entry.js +2 -0
  611. package/dist/esm/verdocs-status-indicator.entry.js.map +1 -0
  612. package/dist/esm/verdocs-table.entry.js +2 -0
  613. package/dist/esm/verdocs-table.entry.js.map +1 -0
  614. package/dist/esm/verdocs-template-card.entry.js +2 -0
  615. package/dist/esm/verdocs-template-card.entry.js.map +1 -0
  616. package/dist/esm/verdocs-template-create.entry.js +2 -0
  617. package/dist/esm/verdocs-template-create.entry.js.map +1 -0
  618. package/dist/esm/verdocs-template-document-page_2.entry.js +2 -0
  619. package/dist/esm/verdocs-template-document-page_2.entry.js.map +1 -0
  620. package/dist/esm/verdocs-template-star.entry.js +2 -0
  621. package/dist/esm/verdocs-template-star.entry.js.map +1 -0
  622. package/dist/esm/verdocs-template-tags.entry.js +2 -0
  623. package/dist/esm/verdocs-template-tags.entry.js.map +1 -0
  624. package/dist/esm/verdocs-templates-list.entry.js +2 -0
  625. package/dist/esm/verdocs-templates-list.entry.js.map +1 -0
  626. package/dist/esm/verdocs-toggle.entry.js +2 -0
  627. package/dist/esm/verdocs-toggle.entry.js.map +1 -0
  628. package/dist/esm/verdocs-web-sdk.js +2 -0
  629. package/dist/esm/verdocs-web-sdk.js.map +1 -0
  630. package/dist/esm-es5/Datastore-b55570ff.js +2 -1
  631. package/dist/esm-es5/Datastore-b55570ff.js.map +1 -0
  632. package/dist/esm-es5/Icons-faf0377f.js +2 -1
  633. package/dist/esm-es5/Icons-faf0377f.js.map +1 -0
  634. package/dist/esm-es5/Toast-c4843828.js +2 -1
  635. package/dist/esm-es5/Toast-c4843828.js.map +1 -0
  636. package/dist/esm-es5/Types-95d86a44.js +2 -1
  637. package/dist/esm-es5/Types-95d86a44.js.map +1 -0
  638. package/dist/esm-es5/_commonjsHelpers-bdec4bbd.js +2 -1
  639. package/dist/esm-es5/_commonjsHelpers-bdec4bbd.js.map +1 -0
  640. package/dist/esm-es5/app-globals-0f993ce5.js +2 -1
  641. package/dist/esm-es5/app-globals-0f993ce5.js.map +1 -0
  642. package/dist/esm-es5/errors-887f1e88.js +2 -1
  643. package/dist/esm-es5/errors-887f1e88.js.map +1 -0
  644. package/dist/esm-es5/format-b8602175.js +2 -1
  645. package/dist/esm-es5/format-b8602175.js.map +1 -0
  646. package/dist/esm-es5/index-272d51a4.js +2 -1
  647. package/dist/esm-es5/index-272d51a4.js.map +1 -0
  648. package/dist/esm-es5/index.js +2 -0
  649. package/dist/esm-es5/index.js.map +1 -0
  650. package/dist/esm-es5/interact.min-a71beb3d.js +2 -1
  651. package/dist/esm-es5/interact.min-a71beb3d.js.map +1 -0
  652. package/dist/esm-es5/loader.js +2 -1
  653. package/dist/esm-es5/loader.js.map +1 -0
  654. package/dist/esm-es5/popper-0fbeff6d.js +2 -1
  655. package/dist/esm-es5/popper-0fbeff6d.js.map +1 -0
  656. package/dist/esm-es5/utils-bd656c37.js +2 -1
  657. package/dist/esm-es5/utils-bd656c37.js.map +1 -0
  658. package/dist/esm-es5/verdocs-auth.entry.js +2 -1
  659. package/dist/esm-es5/verdocs-auth.entry.js.map +1 -0
  660. package/dist/esm-es5/verdocs-build.entry.js +2 -1
  661. package/dist/esm-es5/verdocs-build.entry.js.map +1 -0
  662. package/dist/esm-es5/verdocs-button-panel_2.entry.js +2 -1
  663. package/dist/esm-es5/verdocs-button-panel_2.entry.js.map +1 -0
  664. package/dist/esm-es5/verdocs-button_2.entry.js +2 -1
  665. package/dist/esm-es5/verdocs-button_2.entry.js.map +1 -0
  666. package/dist/esm-es5/verdocs-checkbox_6.entry.js +2 -1
  667. package/dist/esm-es5/verdocs-checkbox_6.entry.js.map +1 -0
  668. package/dist/esm-es5/verdocs-contact-picker_2.entry.js +2 -1
  669. package/dist/esm-es5/verdocs-contact-picker_2.entry.js.map +1 -0
  670. package/dist/esm-es5/verdocs-dialog.entry.js +2 -1
  671. package/dist/esm-es5/verdocs-dialog.entry.js.map +1 -0
  672. package/dist/esm-es5/verdocs-dropdown.entry.js +2 -1
  673. package/dist/esm-es5/verdocs-dropdown.entry.js.map +1 -0
  674. package/dist/esm-es5/verdocs-envelope-document-page.entry.js +2 -1
  675. package/dist/esm-es5/verdocs-envelope-document-page.entry.js.map +1 -0
  676. package/dist/esm-es5/verdocs-envelope-recipient-link_2.entry.js +2 -1
  677. package/dist/esm-es5/verdocs-envelope-recipient-link_2.entry.js.map +1 -0
  678. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +2 -1
  679. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js.map +1 -0
  680. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +2 -1
  681. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js.map +1 -0
  682. package/dist/esm-es5/verdocs-envelopes-list.entry.js +2 -1
  683. package/dist/esm-es5/verdocs-envelopes-list.entry.js.map +1 -0
  684. package/dist/esm-es5/verdocs-field-attachment_13.entry.js +2 -1
  685. package/dist/esm-es5/verdocs-field-attachment_13.entry.js.map +1 -0
  686. package/dist/esm-es5/verdocs-field-payment.entry.js +2 -1
  687. package/dist/esm-es5/verdocs-field-payment.entry.js.map +1 -0
  688. package/dist/esm-es5/verdocs-file-chooser_2.entry.js +2 -1
  689. package/dist/esm-es5/verdocs-file-chooser_2.entry.js.map +1 -0
  690. package/dist/esm-es5/verdocs-kba-dialog_2.entry.js +2 -1
  691. package/dist/esm-es5/verdocs-kba-dialog_2.entry.js.map +1 -0
  692. package/dist/esm-es5/verdocs-menu-panel_2.entry.js +2 -1
  693. package/dist/esm-es5/verdocs-menu-panel_2.entry.js.map +1 -0
  694. package/dist/esm-es5/verdocs-ok-dialog.entry.js +2 -1
  695. package/dist/esm-es5/verdocs-ok-dialog.entry.js.map +1 -0
  696. package/dist/esm-es5/verdocs-organization-card_2.entry.js +2 -1
  697. package/dist/esm-es5/verdocs-organization-card_2.entry.js.map +1 -0
  698. package/dist/esm-es5/verdocs-pagination_2.entry.js +2 -1
  699. package/dist/esm-es5/verdocs-pagination_2.entry.js.map +1 -0
  700. package/dist/esm-es5/verdocs-preview_6.entry.js +3 -2
  701. package/dist/esm-es5/verdocs-preview_6.entry.js.map +1 -0
  702. package/dist/esm-es5/verdocs-quick-functions.entry.js +2 -1
  703. package/dist/esm-es5/verdocs-quick-functions.entry.js.map +1 -0
  704. package/dist/esm-es5/verdocs-radio-button.entry.js +2 -1
  705. package/dist/esm-es5/verdocs-radio-button.entry.js.map +1 -0
  706. package/dist/esm-es5/verdocs-search-box.entry.js +2 -1
  707. package/dist/esm-es5/verdocs-search-box.entry.js.map +1 -0
  708. package/dist/esm-es5/verdocs-search-tabs.entry.js +2 -1
  709. package/dist/esm-es5/verdocs-search-tabs.entry.js.map +1 -0
  710. package/dist/esm-es5/verdocs-sign.entry.js +2 -1
  711. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -0
  712. package/dist/esm-es5/verdocs-spinner.entry.js +2 -1
  713. package/dist/esm-es5/verdocs-spinner.entry.js.map +1 -0
  714. package/dist/esm-es5/verdocs-status-indicator.entry.js +2 -1
  715. package/dist/esm-es5/verdocs-status-indicator.entry.js.map +1 -0
  716. package/dist/esm-es5/verdocs-table.entry.js +2 -1
  717. package/dist/esm-es5/verdocs-table.entry.js.map +1 -0
  718. package/dist/esm-es5/verdocs-template-card.entry.js +2 -1
  719. package/dist/esm-es5/verdocs-template-card.entry.js.map +1 -0
  720. package/dist/esm-es5/verdocs-template-create.entry.js +2 -1
  721. package/dist/esm-es5/verdocs-template-create.entry.js.map +1 -0
  722. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +2 -1
  723. package/dist/esm-es5/verdocs-template-document-page_2.entry.js.map +1 -0
  724. package/dist/esm-es5/verdocs-template-star.entry.js +2 -1
  725. package/dist/esm-es5/verdocs-template-star.entry.js.map +1 -0
  726. package/dist/esm-es5/verdocs-template-tags.entry.js +2 -1
  727. package/dist/esm-es5/verdocs-template-tags.entry.js.map +1 -0
  728. package/dist/esm-es5/verdocs-templates-list.entry.js +2 -1
  729. package/dist/esm-es5/verdocs-templates-list.entry.js.map +1 -0
  730. package/dist/esm-es5/verdocs-toggle.entry.js +2 -1
  731. package/dist/esm-es5/verdocs-toggle.entry.js.map +1 -0
  732. package/dist/esm-es5/verdocs-web-sdk.js +2 -1
  733. package/dist/esm-es5/verdocs-web-sdk.js.map +1 -0
  734. package/dist/verdocs-web-sdk/index.esm.js +2 -0
  735. package/dist/verdocs-web-sdk/index.esm.js.map +1 -0
  736. package/dist/verdocs-web-sdk/p-00ed440b.system.entry.js +2 -1
  737. package/dist/verdocs-web-sdk/p-00ed440b.system.entry.js.map +1 -0
  738. package/dist/verdocs-web-sdk/p-03399c69.entry.js +2 -0
  739. package/dist/verdocs-web-sdk/p-03399c69.entry.js.map +1 -0
  740. package/dist/verdocs-web-sdk/p-04c07b7b.js +2 -1
  741. package/dist/verdocs-web-sdk/p-04c07b7b.js.map +1 -0
  742. package/dist/verdocs-web-sdk/p-0c45b79c.js +13 -1
  743. package/dist/verdocs-web-sdk/p-0c45b79c.js.map +1 -0
  744. package/dist/verdocs-web-sdk/p-0c5b881a.entry.js +2 -0
  745. package/dist/verdocs-web-sdk/p-0c5b881a.entry.js.map +1 -0
  746. package/dist/verdocs-web-sdk/p-123c5de2.entry.js +2 -0
  747. package/dist/verdocs-web-sdk/p-123c5de2.entry.js.map +1 -0
  748. package/dist/verdocs-web-sdk/p-12bab948.js +2 -1
  749. package/dist/verdocs-web-sdk/p-12bab948.js.map +1 -0
  750. package/dist/verdocs-web-sdk/p-12ce49c2.entry.js +2 -0
  751. package/dist/verdocs-web-sdk/p-12ce49c2.entry.js.map +1 -0
  752. package/dist/verdocs-web-sdk/p-1794d2fa.entry.js +2 -0
  753. package/dist/verdocs-web-sdk/p-1794d2fa.entry.js.map +1 -0
  754. package/dist/verdocs-web-sdk/p-17f35bcb.entry.js +2 -0
  755. package/dist/verdocs-web-sdk/p-17f35bcb.entry.js.map +1 -0
  756. package/dist/verdocs-web-sdk/p-19462841.system.entry.js +2 -1
  757. package/dist/verdocs-web-sdk/p-19462841.system.entry.js.map +1 -0
  758. package/dist/verdocs-web-sdk/p-1d5b9103.system.entry.js +2 -1
  759. package/dist/verdocs-web-sdk/p-1d5b9103.system.entry.js.map +1 -0
  760. package/dist/verdocs-web-sdk/p-1e191c20.system.entry.js +2 -1
  761. package/dist/verdocs-web-sdk/p-1e191c20.system.entry.js.map +1 -0
  762. package/dist/verdocs-web-sdk/p-21b1acec.system.js +2 -1
  763. package/dist/verdocs-web-sdk/p-21b1acec.system.js.map +1 -0
  764. package/dist/verdocs-web-sdk/p-24f2d2e2.entry.js +2 -0
  765. package/dist/verdocs-web-sdk/p-24f2d2e2.entry.js.map +1 -0
  766. package/dist/verdocs-web-sdk/p-277a93d5.entry.js +2 -0
  767. package/dist/verdocs-web-sdk/p-277a93d5.entry.js.map +1 -0
  768. package/dist/verdocs-web-sdk/p-2c5350ec.system.js +2 -1
  769. package/dist/verdocs-web-sdk/p-2c5350ec.system.js.map +1 -0
  770. package/dist/verdocs-web-sdk/p-2eae32d9.system.entry.js +2 -1
  771. package/dist/verdocs-web-sdk/p-2eae32d9.system.entry.js.map +1 -0
  772. package/dist/verdocs-web-sdk/p-306bde40.system.entry.js +2 -1
  773. package/dist/verdocs-web-sdk/p-306bde40.system.entry.js.map +1 -0
  774. package/dist/verdocs-web-sdk/p-35dcb386.system.js +2 -1
  775. package/dist/verdocs-web-sdk/p-35dcb386.system.js.map +1 -0
  776. package/dist/verdocs-web-sdk/p-3649ddc2.entry.js +2 -0
  777. package/dist/verdocs-web-sdk/p-3649ddc2.entry.js.map +1 -0
  778. package/dist/verdocs-web-sdk/p-3834fa6a.entry.js +2 -0
  779. package/dist/verdocs-web-sdk/p-3834fa6a.entry.js.map +1 -0
  780. package/dist/verdocs-web-sdk/p-3cc50f0b.system.entry.js +2 -1
  781. package/dist/verdocs-web-sdk/p-3cc50f0b.system.entry.js.map +1 -0
  782. package/dist/verdocs-web-sdk/p-3fd9d933.entry.js +2 -0
  783. package/dist/verdocs-web-sdk/p-3fd9d933.entry.js.map +1 -0
  784. package/dist/verdocs-web-sdk/p-417f71da.system.entry.js +2 -1
  785. package/dist/verdocs-web-sdk/p-417f71da.system.entry.js.map +1 -0
  786. package/dist/verdocs-web-sdk/p-41f22b0a.system.entry.js +2 -1
  787. package/dist/verdocs-web-sdk/p-41f22b0a.system.entry.js.map +1 -0
  788. package/dist/verdocs-web-sdk/{p-2b7edf3a.system.entry.js → p-4685955a.system.entry.js} +3 -2
  789. package/dist/verdocs-web-sdk/p-4685955a.system.entry.js.map +1 -0
  790. package/dist/verdocs-web-sdk/p-49cc9ac5.entry.js +2 -0
  791. package/dist/verdocs-web-sdk/p-49cc9ac5.entry.js.map +1 -0
  792. package/dist/verdocs-web-sdk/p-4e9e154f.system.entry.js +2 -1
  793. package/dist/verdocs-web-sdk/p-4e9e154f.system.entry.js.map +1 -0
  794. package/dist/verdocs-web-sdk/p-50ea2036.system.js +2 -1
  795. package/dist/verdocs-web-sdk/p-50ea2036.system.js.map +1 -0
  796. package/dist/verdocs-web-sdk/p-53ed63e9.entry.js +2 -0
  797. package/dist/verdocs-web-sdk/p-53ed63e9.entry.js.map +1 -0
  798. package/dist/verdocs-web-sdk/p-53f4c7c3.system.entry.js +2 -1
  799. package/dist/verdocs-web-sdk/p-53f4c7c3.system.entry.js.map +1 -0
  800. package/dist/verdocs-web-sdk/p-546daa8b.entry.js +2 -0
  801. package/dist/verdocs-web-sdk/p-546daa8b.entry.js.map +1 -0
  802. package/dist/verdocs-web-sdk/p-56ba5cbf.system.js +2 -1
  803. package/dist/verdocs-web-sdk/p-56ba5cbf.system.js.map +1 -0
  804. package/dist/verdocs-web-sdk/p-5824962b.system.entry.js +2 -1
  805. package/dist/verdocs-web-sdk/p-5824962b.system.entry.js.map +1 -0
  806. package/dist/verdocs-web-sdk/p-58d027d1.js +2 -1
  807. package/dist/verdocs-web-sdk/p-58d027d1.js.map +1 -0
  808. package/dist/verdocs-web-sdk/p-6237ce51.system.entry.js +2 -1
  809. package/dist/verdocs-web-sdk/p-6237ce51.system.entry.js.map +1 -0
  810. package/dist/verdocs-web-sdk/p-68a5aaff.js +2 -1
  811. package/dist/verdocs-web-sdk/p-68a5aaff.js.map +1 -0
  812. package/dist/verdocs-web-sdk/p-6b4de004.system.entry.js +2 -1
  813. package/dist/verdocs-web-sdk/p-6b4de004.system.entry.js.map +1 -0
  814. package/dist/verdocs-web-sdk/p-70751089.system.js +2 -1
  815. package/dist/verdocs-web-sdk/p-70751089.system.js.map +1 -0
  816. package/dist/verdocs-web-sdk/p-761f6656.system.entry.js +2 -1
  817. package/dist/verdocs-web-sdk/p-761f6656.system.entry.js.map +1 -0
  818. package/dist/verdocs-web-sdk/p-76c044c8.entry.js +2 -0
  819. package/dist/verdocs-web-sdk/p-76c044c8.entry.js.map +1 -0
  820. package/dist/verdocs-web-sdk/p-7b1e00e5.system.entry.js +2 -1
  821. package/dist/verdocs-web-sdk/p-7b1e00e5.system.entry.js.map +1 -0
  822. package/dist/verdocs-web-sdk/p-83e567cb.entry.js +2 -0
  823. package/dist/verdocs-web-sdk/p-83e567cb.entry.js.map +1 -0
  824. package/dist/verdocs-web-sdk/p-85aa8e05.js +2 -1
  825. package/dist/verdocs-web-sdk/p-85aa8e05.js.map +1 -0
  826. package/dist/verdocs-web-sdk/p-882aa754.entry.js +2 -0
  827. package/dist/verdocs-web-sdk/p-882aa754.entry.js.map +1 -0
  828. package/dist/verdocs-web-sdk/p-88baf4d1.entry.js +2 -0
  829. package/dist/verdocs-web-sdk/p-88baf4d1.entry.js.map +1 -0
  830. package/dist/verdocs-web-sdk/p-8bdd951b.system.entry.js +2 -1
  831. package/dist/verdocs-web-sdk/p-8bdd951b.system.entry.js.map +1 -0
  832. package/dist/verdocs-web-sdk/p-8d7d61ee.system.entry.js +2 -1
  833. package/dist/verdocs-web-sdk/p-8d7d61ee.system.entry.js.map +1 -0
  834. package/dist/verdocs-web-sdk/p-8f5c17b6.entry.js +2 -0
  835. package/dist/verdocs-web-sdk/p-8f5c17b6.entry.js.map +1 -0
  836. package/dist/verdocs-web-sdk/p-9021fc7b.system.entry.js +2 -1
  837. package/dist/verdocs-web-sdk/p-9021fc7b.system.entry.js.map +1 -0
  838. package/dist/verdocs-web-sdk/p-90bc3ad0.system.entry.js +2 -1
  839. package/dist/verdocs-web-sdk/p-90bc3ad0.system.entry.js.map +1 -0
  840. package/dist/verdocs-web-sdk/p-9186f42e.system.js +2 -1
  841. package/dist/verdocs-web-sdk/p-9186f42e.system.js.map +1 -0
  842. package/dist/verdocs-web-sdk/p-9227d400.system.entry.js +2 -1
  843. package/dist/verdocs-web-sdk/p-9227d400.system.entry.js.map +1 -0
  844. package/dist/verdocs-web-sdk/p-94fe5817.system.entry.js +2 -1
  845. package/dist/verdocs-web-sdk/p-94fe5817.system.entry.js.map +1 -0
  846. package/dist/verdocs-web-sdk/p-9750edd6.entry.js +2 -0
  847. package/dist/verdocs-web-sdk/p-9750edd6.entry.js.map +1 -0
  848. package/dist/verdocs-web-sdk/p-9b26e4e0.system.js +2 -1
  849. package/dist/verdocs-web-sdk/p-9b26e4e0.system.js.map +1 -0
  850. package/dist/verdocs-web-sdk/p-a168645d.entry.js +2 -0
  851. package/dist/verdocs-web-sdk/p-a168645d.entry.js.map +1 -0
  852. package/dist/verdocs-web-sdk/p-a6113c3f.entry.js +2 -0
  853. package/dist/verdocs-web-sdk/p-a6113c3f.entry.js.map +1 -0
  854. package/dist/verdocs-web-sdk/p-a901dff2.js +2 -1
  855. package/dist/verdocs-web-sdk/p-a901dff2.js.map +1 -0
  856. package/dist/verdocs-web-sdk/p-ab473697.entry.js +2 -0
  857. package/dist/verdocs-web-sdk/p-ab473697.entry.js.map +1 -0
  858. package/dist/verdocs-web-sdk/p-ab65c67b.entry.js +8 -0
  859. package/dist/verdocs-web-sdk/p-ab65c67b.entry.js.map +1 -0
  860. package/dist/verdocs-web-sdk/p-ac6ecfad.system.entry.js +2 -1
  861. package/dist/verdocs-web-sdk/p-ac6ecfad.system.entry.js.map +1 -0
  862. package/dist/verdocs-web-sdk/p-ad3d07a6.system.entry.js +2 -1
  863. package/dist/verdocs-web-sdk/p-ad3d07a6.system.entry.js.map +1 -0
  864. package/dist/verdocs-web-sdk/p-b0766439.js +2 -1
  865. package/dist/verdocs-web-sdk/p-b0766439.js.map +1 -0
  866. package/dist/verdocs-web-sdk/p-b0fbfc24.system.entry.js +2 -1
  867. package/dist/verdocs-web-sdk/p-b0fbfc24.system.entry.js.map +1 -0
  868. package/dist/verdocs-web-sdk/p-b9654a5e.js +3 -2
  869. package/dist/verdocs-web-sdk/p-b9654a5e.js.map +1 -0
  870. package/dist/verdocs-web-sdk/p-bbf30adc.system.entry.js +2 -1
  871. package/dist/verdocs-web-sdk/p-bbf30adc.system.entry.js.map +1 -0
  872. package/dist/verdocs-web-sdk/p-bfc815d0.entry.js +2 -0
  873. package/dist/verdocs-web-sdk/p-bfc815d0.entry.js.map +1 -0
  874. package/dist/verdocs-web-sdk/p-c0cd186e.entry.js +2 -0
  875. package/dist/verdocs-web-sdk/p-c0cd186e.entry.js.map +1 -0
  876. package/dist/verdocs-web-sdk/p-c2bca18a.entry.js +2 -0
  877. package/dist/verdocs-web-sdk/p-c2bca18a.entry.js.map +1 -0
  878. package/dist/verdocs-web-sdk/p-c53701b7.entry.js +2 -0
  879. package/dist/verdocs-web-sdk/p-c53701b7.entry.js.map +1 -0
  880. package/dist/verdocs-web-sdk/p-c7ee88c7.js +2 -1
  881. package/dist/verdocs-web-sdk/p-c7ee88c7.js.map +1 -0
  882. package/dist/verdocs-web-sdk/p-c8a15cb7.system.js +2 -1
  883. package/dist/verdocs-web-sdk/p-c8a15cb7.system.js.map +1 -0
  884. package/dist/verdocs-web-sdk/p-ca15a050.entry.js +2 -0
  885. package/dist/verdocs-web-sdk/p-ca15a050.entry.js.map +1 -0
  886. package/dist/verdocs-web-sdk/p-ca8aef1d.entry.js +2 -0
  887. package/dist/verdocs-web-sdk/p-ca8aef1d.entry.js.map +1 -0
  888. package/dist/verdocs-web-sdk/p-cbb75c5e.system.entry.js +2 -1
  889. package/dist/verdocs-web-sdk/p-cbb75c5e.system.entry.js.map +1 -0
  890. package/dist/verdocs-web-sdk/p-cd546dbe.system.js +2 -1
  891. package/dist/verdocs-web-sdk/p-cd546dbe.system.js.map +1 -0
  892. package/dist/verdocs-web-sdk/p-d23b5949.entry.js +2 -0
  893. package/dist/verdocs-web-sdk/p-d23b5949.entry.js.map +1 -0
  894. package/dist/verdocs-web-sdk/p-d58010a4.entry.js +2 -0
  895. package/dist/verdocs-web-sdk/p-d58010a4.entry.js.map +1 -0
  896. package/dist/verdocs-web-sdk/p-d5870e33.system.entry.js +2 -1
  897. package/dist/verdocs-web-sdk/p-d5870e33.system.entry.js.map +1 -0
  898. package/dist/verdocs-web-sdk/p-d738b5db.system.js +2 -1
  899. package/dist/verdocs-web-sdk/p-d738b5db.system.js.map +1 -0
  900. package/dist/verdocs-web-sdk/p-d8dae4e9.system.entry.js +2 -1
  901. package/dist/verdocs-web-sdk/p-d8dae4e9.system.entry.js.map +1 -0
  902. package/dist/verdocs-web-sdk/p-dced30fa.entry.js +2 -0
  903. package/dist/verdocs-web-sdk/p-dced30fa.entry.js.map +1 -0
  904. package/dist/verdocs-web-sdk/p-df3f235d.entry.js +2 -0
  905. package/dist/verdocs-web-sdk/p-df3f235d.entry.js.map +1 -0
  906. package/dist/verdocs-web-sdk/p-e0ac9edf.system.js +2 -1
  907. package/dist/verdocs-web-sdk/p-e0ac9edf.system.js.map +1 -0
  908. package/dist/verdocs-web-sdk/p-e1255160.js +2 -1
  909. package/dist/verdocs-web-sdk/p-e1255160.js.map +1 -0
  910. package/dist/verdocs-web-sdk/p-e2b70dfb.system.js +2 -1
  911. package/dist/verdocs-web-sdk/p-e2b70dfb.system.js.map +1 -0
  912. package/dist/verdocs-web-sdk/p-e3077c5e.system.entry.js +2 -1
  913. package/dist/verdocs-web-sdk/p-e3077c5e.system.entry.js.map +1 -0
  914. package/dist/verdocs-web-sdk/p-e438bd02.system.entry.js +2 -1
  915. package/dist/verdocs-web-sdk/p-e438bd02.system.entry.js.map +1 -0
  916. package/dist/verdocs-web-sdk/p-e6d711e0.system.entry.js +2 -1
  917. package/dist/verdocs-web-sdk/p-e6d711e0.system.entry.js.map +1 -0
  918. package/dist/verdocs-web-sdk/p-ea078594.system.entry.js +2 -1
  919. package/dist/verdocs-web-sdk/p-ea078594.system.entry.js.map +1 -0
  920. package/dist/verdocs-web-sdk/p-eb3ceb39.system.entry.js +2 -1
  921. package/dist/verdocs-web-sdk/p-eb3ceb39.system.entry.js.map +1 -0
  922. package/dist/verdocs-web-sdk/p-f12b428b.entry.js +2 -0
  923. package/dist/verdocs-web-sdk/p-f12b428b.entry.js.map +1 -0
  924. package/dist/verdocs-web-sdk/p-f29eb00a.system.js +2 -1
  925. package/dist/verdocs-web-sdk/p-f29eb00a.system.js.map +1 -0
  926. package/dist/verdocs-web-sdk/p-f2b16ddf.entry.js +2 -0
  927. package/dist/verdocs-web-sdk/p-f2b16ddf.entry.js.map +1 -0
  928. package/dist/verdocs-web-sdk/p-f84932fd.system.entry.js +2 -1
  929. package/dist/verdocs-web-sdk/p-f84932fd.system.entry.js.map +1 -0
  930. package/dist/verdocs-web-sdk/p-fd97809c.js +2 -1
  931. package/dist/verdocs-web-sdk/p-fd97809c.js.map +1 -0
  932. package/dist/verdocs-web-sdk/p-fda9c437.system.entry.js +2 -1
  933. package/dist/verdocs-web-sdk/p-fda9c437.system.entry.js.map +1 -0
  934. package/dist/verdocs-web-sdk/p-fedcc413.entry.js +2 -0
  935. package/dist/verdocs-web-sdk/p-fedcc413.entry.js.map +1 -0
  936. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +2 -1
  937. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -0
  938. package/package.json +1 -1
  939. package/dist/verdocs-web-sdk/p-152b9acd.entry.js +0 -1
  940. package/dist/verdocs-web-sdk/p-1e495c60.entry.js +0 -1
  941. package/dist/verdocs-web-sdk/p-1eb501c3.entry.js +0 -1
  942. package/dist/verdocs-web-sdk/p-2d7d0805.entry.js +0 -1
  943. package/dist/verdocs-web-sdk/p-2f73c9de.entry.js +0 -1
  944. package/dist/verdocs-web-sdk/p-35903760.entry.js +0 -1
  945. package/dist/verdocs-web-sdk/p-39b72c10.entry.js +0 -1
  946. package/dist/verdocs-web-sdk/p-47f32221.entry.js +0 -1
  947. package/dist/verdocs-web-sdk/p-4a960ba5.entry.js +0 -1
  948. package/dist/verdocs-web-sdk/p-4b36ca30.entry.js +0 -1
  949. package/dist/verdocs-web-sdk/p-553a341c.entry.js +0 -1
  950. package/dist/verdocs-web-sdk/p-5f1a000c.entry.js +0 -1
  951. package/dist/verdocs-web-sdk/p-6da00869.entry.js +0 -1
  952. package/dist/verdocs-web-sdk/p-7688bc89.entry.js +0 -1
  953. package/dist/verdocs-web-sdk/p-76cc40fe.entry.js +0 -1
  954. package/dist/verdocs-web-sdk/p-786bacad.entry.js +0 -1
  955. package/dist/verdocs-web-sdk/p-7abbdb69.entry.js +0 -1
  956. package/dist/verdocs-web-sdk/p-899fa588.entry.js +0 -1
  957. package/dist/verdocs-web-sdk/p-91977069.entry.js +0 -1
  958. package/dist/verdocs-web-sdk/p-92364765.entry.js +0 -1
  959. package/dist/verdocs-web-sdk/p-92ce6180.entry.js +0 -1
  960. package/dist/verdocs-web-sdk/p-94ffe928.entry.js +0 -8
  961. package/dist/verdocs-web-sdk/p-98ab739b.entry.js +0 -1
  962. package/dist/verdocs-web-sdk/p-99b819ad.entry.js +0 -1
  963. package/dist/verdocs-web-sdk/p-a4b05f08.entry.js +0 -1
  964. package/dist/verdocs-web-sdk/p-af1802b6.entry.js +0 -1
  965. package/dist/verdocs-web-sdk/p-b0436bc7.entry.js +0 -1
  966. package/dist/verdocs-web-sdk/p-bdd7b3d3.entry.js +0 -1
  967. package/dist/verdocs-web-sdk/p-be4ec401.entry.js +0 -1
  968. package/dist/verdocs-web-sdk/p-c1728f5c.entry.js +0 -1
  969. package/dist/verdocs-web-sdk/p-c3593d47.entry.js +0 -1
  970. package/dist/verdocs-web-sdk/p-db4c36aa.entry.js +0 -1
  971. package/dist/verdocs-web-sdk/p-dc558be5.entry.js +0 -1
  972. package/dist/verdocs-web-sdk/p-e6dbb0f7.entry.js +0 -1
  973. package/dist/verdocs-web-sdk/p-ea75f159.entry.js +0 -1
  974. package/dist/verdocs-web-sdk/p-ef7813ed.entry.js +0 -1
  975. package/dist/verdocs-web-sdk/p-f6b77cd1.entry.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["methods$1","names","registerMethods","name","m","Array","isArray","_i","name_1","length","_name","addMethodNames","Object","getOwnPropertyNames","assign","getMethodsFor","getMethodNames","__spreadArray","Set","_names","push","apply","map","array","block","i","il","result","filter","radians","d","Math","PI","unCamelCase","s","replace","g","toLowerCase","capitalize","charAt","toUpperCase","slice","proportionalSize","element","width","height","box","bbox","getOrigin","o","origin","ox","originX","oy","originY","_e","x","y","condX","condY","_f","height_1","width_1","x_1","y_1","includes","descriptiveElements","isDescriptive","has","nodeName","writeDataToDom","data","defaults","cloned","__assign","key","valueOf","keys","node","setAttribute","JSON","stringify","removeAttribute","svg","html","xmlns","xlink","globals","window","document","getWindow","Base","elements","root","create","ns","createElementNS","makeInstance","isHTML","adopter","querySelector","wrapper","createElement","innerHTML","firstChild","removeChild","nodeOrNew","Node","ownerDocument","defaultView","adopt","instance","Fragment","className","register","asRoot","prototype","getClass","did","eid","assignNewId","children","id","extend","modules","methods","wrapWithAttrCheck","fn","args","arguments","constructor","this","attr","siblings","parent","position","index","next","prev","forward","p","add","remove","backward","front","back","before","after","insertBefore","insertAfter","numberAndUnit","hex","rgb","reference","transforms","whitespace","isHex","isRgb","isBlank","isNumber","isImage","delimiter","isPathLetter","classes","trim","split","hasClass","indexOf","addClass","array_1","join","removeClass","c","toggleClass","css","style","val","ret","cssText","el","forEach","t","style_1","cased","getPropertyValue","setProperty","test","show","hide","visible","a","v","r","attributes","data_1","a_1","parse","e","remember","k","memory","forget","_memory","sixDigitHex","substring","componentHex","component","integer","round","bounded","max","min","toString","is","object","space","getParameters","b","params","_a","_b","_c","_d","z","h","l","cieSpace","hueToRgb","q","Color","inputs","init","isColor","color","random","mode","sin","pi","h_1","h_2","h_3","grey","Error","cmyk","hsl","isGrey","delta","values","noWhitespace","exec","parseInt","_a_1","_b_1","_c_1","hexParse","_a_2","_b_2","_c_2","_g","components","lab","xyz","lch","sqrt","pow","atan2","x_2","y_2","b_1","h_4","dToR","cos","yL","xL","zL","ct","mx","nm","rU","gU","bU","bd","_h","h_5","color_1","_j","y_3","toArray","toHex","_clamped","concat","toRgb","rV","gV","bV","string","r255","g255","b255","rL","gL","bL","xU","yU","zU","format","Point","clone","base","source","transform","transformO","Matrix","isMatrixLike","f","point","screenCTM","inverseO","closeEnough","threshold","abs","formatTransforms","flipBoth","flip","flipX","flipY","skewX","skew","isFinite","skewY","scaleX","scale","scaleY","shear","theta","rotate","around","px","positionX","NaN","py","positionY","translate","tx","translateX","ty","translateY","relative","rx","relativeX","ry","relativeY","fromArray","matrixMultiply","cx","cy","matrix","aroundO","dx","dy","translateO","lmultiplyO","decompose","determinant","ccw","sx","thetaRad","st","lam","sy","equals","other","comp","axis","flipO","scaleO","Element","matrixify","parseFloat","call","inverse","det","na","nb","nc","nd","ne","nf","lmultiply","multiply","multiplyO","rotateO","shearO","lx","skewO","tan","ly","current","transformer","dx_1","dy_1","ctm","getCTM","isRoot","rect","getScreenCTM","console","warn","parser","nodes","svg_1","size","path","parentNode","body","documentElement","addTo","isNulledBox","domContains","contains","Box","addOffset","pageXOffset","pageYOffset","left","top","w","x2","y2","isNulled","merge","xMin","Infinity","xMax","yMin","yMax","pts","getBox","getBBoxFn","retry","getBBox","box_1","rbox","getRBox","getBoundingClientRect","inside","viewbox","zoom","level","clientWidth","clientHeight","zoomX","zoomY","zoomAmount","Number","MAX_SAFE_INTEGER","List","_super","__extends","arr","_this_1","each","fnOrMethodName","reserved","reduce","obj","attrs","baseFind","query","querySelectorAll","find","findOne","listenerId","windowEvents","getEvents","n","getEventHolder","events","getEventTarget","clearEvents","on","listener","binding","options","bind","bag","_svgjsListenerId","event","ev","addEventListener","off","namespace","removeEventListener","dispatch","Event","dispatchEvent","CustomEvent","detail","cancelable","EventTarget","type","j","defaultPrevented","fire","noop","timeline","duration","ease","delay","fill","stroke","opacity","offset","SVGArray","toSet","SVGNumber","convert","unit","value","divide","number","isNaN","match","minus","plus","times","toJSON","colorAttributes","hooks","registerAttrHook","val_1","nodeValue","last","curr","getAttribute","_val","hook","leading","setAttributeNS","rebuild","Dom","removeNamespace","SVGElement","appendChild","childNodes","put","clear","hasChildNodes","lastChild","deep","assignNewIds","nodeClone","cloneNode","first","get","htmlOrFn","outerHTML","xml","matches","selector","matcher","matchesSelector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","putIn","removeElement","replaceChild","precision","factor","svgOrFn","outerSVG","words","text","textContent","wrap","xmlOrFn","outerXML","_this","well","fragment","createDocumentFragment","len","firstElementChild","dom","hasAttribute","setData","center","defs","dmove","move","parents","until","isSelector","sugar","prefix","extension","mat","angle","direction","radius","_element","getTotalLength","pointAt","getPointAtLength","font","untransform","str","kv","reverse","toParent","pCtm","toRoot","decomposed","cleanRelative","Container","flatten","ungroup","Defs","Shape","x$3","y$3","cx$1","cy$1","width$2","height$2","circled","__proto__","Ellipse","ellipse","from","fx","fy","x1","y1","to","gradiented","Gradient","targets","url","update","gradient","Pattern","pattern","patternUnits","Image","load","callback","img","src","image","PointArray","maxX","maxY","minX","minY","points","pop","toLine","x_3","y_4","MorphArray","x$2","y$2","width$1","height$1","pointed","Line","plot","line","Marker","orient","ref","marker","makeSetterGetter","easing","pos","bezier","steps","stepPosition","jumps","beforeFlag","step","floor","jumping","Stepper","done","Ease","Controller","stepper","target","dt","recalculate","_duration","overshoot","_overshoot","eps","os","log","zeta","wn","Spring","velocity","acceleration","newPosition","PID","windup","integral","error","_windup","P","I","D","segmentParameters","M","L","H","V","C","S","Q","T","A","Z","pathHandlers","p0","mlhvqtcsaz","jl","makeAbsolut","command","segment","segmentComplete","startNewSegment","token","inNumber","finalizeNumber","pathLetter","lastCommand","small","isSmall","inSegment","pointSeen","hasExponent","finalizeSegment","absolute","segments","isArcFlag","isArc","isExponential","lastToken","pathDelimiters","pathParser","toAbsolute","arrayToString","PathArray","getClassForType","NonMorphable","morphableTypes","ObjectBag","Morphable","_stepper","_from","_to","_type","_context","_morphObj","at","morph","complete","_set","align","toConsumable","TransformBag","sortByKey","splice","defaultObject","toDelete","objOrArr","entries","Type","sort","shift","num","registerMorphableType","makeMorphable","context","mapper","Path","_array","move$2","size$1","poly","Polygon","polygon","Polyline","polyline","Rect","Queue","_first","_last","item","Animator","nextDraw","frames","timeouts","immediates","timer","performance","Date","frame","run","requestAnimationFrame","_draw","timeout","time","now","immediate","cancelFrame","clearTimeout","cancelImmediate","nextTimeout","lastTimeout","nextFrame","lastFrame","nextImmediate","makeSchedule","runnerInfo","start","runner","end","defaultSource","Timeline","timeSource","_timeSource","terminate","active","_nextFrame","finish","getEndTimeOfTimeline","pause","getEndTime","lastRunnerInfo","getLastRunnerInfo","lastDuration","lastStartTime","_time","endTimes","_runners","getRunnerInfoById","_lastRunnerId","_runnerIds","_paused","_continue","persist","dtOrForever","_persist","play","updateTime","yes","currentSpeed","speed","positive","schedule","when","absoluteStartTime","endTime","runnerInfo_1","unschedule","info","seek","_speed","stop","_lastSourceTime","immediateStep","_stepImmediate","_step","_stepFn","dtSource","dtTime","_lastStepTime","dtToStart","reset","runnersLeft","finished","_startTime","_timeline","Runner","_queue","_isDeclarative","_history","enabled","_lastTime","_reseted","transformId","_haveReversed","_reverse","_loopsDone","_swing","_wait","_times","_frameId","sanitise","swing","wait","addTransform","animate","loop","clearTransform","clearTransformsFromQueue","isTransform","during","queue","_prepareRunner","loops","loopDuration","loopsDone","relativeTime","position_1","whole","partial","swinging","backwards","uncliped","clipped","swingForward","forwards","progress","initFn","runFn","retargetFn","initialiser","retarget","initialised","running","_lastPosition","justStarted","justFinished","declarative","converged","_initialise","_run","needsIt","_rememberMorpher","method","morpher","caller","timeline_1","positionOrDt","allfinished","_tryRetarget","extra","timeline_2","FakeRunner","mergeWith","getRunnerTransform","mergeTransforms","runners","_transformationRunners","netTransform","RunnerArray","ids","clearBefore","deleteCnt","edit","newRunner","getByID","lastRunner","condition","by","_clearTransformRunnersBefore","currentRunner","_currentTransform","_addRunner","difference","styleAttr","nameOrAttrs","newToAttrs","newKeys","differences","addedFromAttrs","oldFromAttrs","oldToAttrs","newLevel","newPoint","affine","isMatrix","currentAngle","startTransform","setup","undefined","rTarget","rCurrent_1","possibilities","distances","shortest","affineParameters","newTransforms","_queueNumber","ax","ay","_queueNumberDelta","newTo","_queueObject","amove","Svg","version","nested","Symbol","symbol","plain","_build","createTextNode","getComputedTextLength","x$1","y$1","move$1","build","textable","Text","_rebuild","self_1","blankLineOffset_1","leading_1","fontSize","getComputedStyle","newLined","firstLine","nodeType","newLine","Tspan","tspan","Circle","circle","ClipPath","unclip","clip","clipper","clipWith","ForeignObject","foreignObject","child","SVGSVGElement","containerGeometry","G","group","link","unlink","linker","linkTo","Mask","unmask","mask","masker","maskWith","Stop","cssRule","rule","Style","addText","fontFamily","fontface","TextPath","track","pathArray","textPath","importNodes","Use","use","file","SVG","RecipientFlow","_json","entities","_lines","initalize","lines","labels","_renderEntities","entity","background_color","class","_renderLabels","_renderPolylines","_renderOnePolyline","line_color","pointsInBetween","_calculatePointsInBetween","_calculateX","_calculateY","linecap","linejoin","p1","_translatePositionToNumber","p2","code","_update","json","verdocsStatusIndicatorCss","VerdocsStatusIndicatorStyle0","AcceptedDark","AcceptedLight","CanceledDark","CanceledLight","CompletedDark","CompletedLight","DeclinedDark","DeclinedLight","InProgressDark","InProgressLight","OpenedDark","OpenedLight","PendingDark","PendingLight","SignedDark","SignedLight","SomeSignedDark","SomeSignedLight","SubmittedDark","SubmittedLight","ENTRY_WIDTH","ENTRY_HEIGHT","ENTRY_PADDING","VerdocsStatusIndicator","recipientStatusIcons","class_1","componentDidLoad","popper","createPopper","summaryComponent","detailPanel","placement","modifiers","envelope","recipients","recipientsAtLevel_1","recipient","sequence","levelCount","canvasHeight","canvasWidth_1","minW","entities_1","lines_1","statusIcons_1","y_5","renderedItemsWidth","leftoverSpace","leftOffset","fullName","formatFullName","icon","getStatusIcon","status","getStatusColor","prevRecip","diagram","containerId","showDropdown","isOpen","setOptions","handleHideDropdown","localName","toggleDropdown","theme","getStatusMessage","render","submittedRecipients","statusMessage","Host","onClick","stopPropagation","preventDefault","onBlur"],"sources":["node_modules/@svgdotjs/svg.js/dist/svg.esm.js","src/components/envelopes/verdocs-status-indicator/recipient-flow.ts","src/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.scss?tag=verdocs-status-indicator","src/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.tsx"],"sourcesContent":["/*!\n* @svgdotjs/svg.js - A lightweight library for manipulating and animating SVG.\n* @version 3.2.4\n* https://svgjs.dev/\n*\n* @copyright Wout Fierens <wout@mick-wout.com>\n* @license MIT\n*\n* BUILT: Thu Jun 27 2024 12:00:16 GMT+0200 (Central European Summer Time)\n*/;\nconst methods$1 = {};\nconst names = [];\nfunction registerMethods(name, m) {\n if (Array.isArray(name)) {\n for (const _name of name) {\n registerMethods(_name, m);\n }\n return;\n }\n if (typeof name === 'object') {\n for (const _name in name) {\n registerMethods(_name, name[_name]);\n }\n return;\n }\n addMethodNames(Object.getOwnPropertyNames(m));\n methods$1[name] = Object.assign(methods$1[name] || {}, m);\n}\nfunction getMethodsFor(name) {\n return methods$1[name] || {};\n}\nfunction getMethodNames() {\n return [...new Set(names)];\n}\nfunction addMethodNames(_names) {\n names.push(..._names);\n}\n\n// Map function\nfunction map(array, block) {\n let i;\n const il = array.length;\n const result = [];\n for (i = 0; i < il; i++) {\n result.push(block(array[i]));\n }\n return result;\n}\n\n// Filter function\nfunction filter(array, block) {\n let i;\n const il = array.length;\n const result = [];\n for (i = 0; i < il; i++) {\n if (block(array[i])) {\n result.push(array[i]);\n }\n }\n return result;\n}\n\n// Degrees to radians\nfunction radians(d) {\n return d % 360 * Math.PI / 180;\n}\n\n// Radians to degrees\nfunction degrees(r) {\n return r * 180 / Math.PI % 360;\n}\n\n// Convert camel cased string to dash separated\nfunction unCamelCase(s) {\n return s.replace(/([A-Z])/g, function (m, g) {\n return '-' + g.toLowerCase();\n });\n}\n\n// Capitalize first letter of a string\nfunction capitalize(s) {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n// Calculate proportional width and height values when necessary\nfunction proportionalSize(element, width, height, box) {\n if (width == null || height == null) {\n box = box || element.bbox();\n if (width == null) {\n width = box.width / box.height * height;\n } else if (height == null) {\n height = box.height / box.width * width;\n }\n }\n return {\n width: width,\n height: height\n };\n}\n\n/**\n * This function adds support for string origins.\n * It searches for an origin in o.origin o.ox and o.originX.\n * This way, origin: {x: 'center', y: 50} can be passed as well as ox: 'center', oy: 50\n **/\nfunction getOrigin(o, element) {\n const origin = o.origin;\n // First check if origin is in ox or originX\n let ox = o.ox != null ? o.ox : o.originX != null ? o.originX : 'center';\n let oy = o.oy != null ? o.oy : o.originY != null ? o.originY : 'center';\n\n // Then check if origin was used and overwrite in that case\n if (origin != null) {\n [ox, oy] = Array.isArray(origin) ? origin : typeof origin === 'object' ? [origin.x, origin.y] : [origin, origin];\n }\n\n // Make sure to only call bbox when actually needed\n const condX = typeof ox === 'string';\n const condY = typeof oy === 'string';\n if (condX || condY) {\n const {\n height,\n width,\n x,\n y\n } = element.bbox();\n\n // And only overwrite if string was passed for this specific axis\n if (condX) {\n ox = ox.includes('left') ? x : ox.includes('right') ? x + width : x + width / 2;\n }\n if (condY) {\n oy = oy.includes('top') ? y : oy.includes('bottom') ? y + height : y + height / 2;\n }\n }\n\n // Return the origin as it is if it wasn't a string\n return [ox, oy];\n}\nconst descriptiveElements = new Set(['desc', 'metadata', 'title']);\nconst isDescriptive = element => descriptiveElements.has(element.nodeName);\nconst writeDataToDom = (element, data, defaults = {}) => {\n const cloned = {\n ...data\n };\n for (const key in cloned) {\n if (cloned[key].valueOf() === defaults[key]) {\n delete cloned[key];\n }\n }\n if (Object.keys(cloned).length) {\n element.node.setAttribute('data-svgjs', JSON.stringify(cloned)); // see #428\n } else {\n element.node.removeAttribute('data-svgjs');\n element.node.removeAttribute('svgjs:data');\n }\n};\n\nvar utils = {\n __proto__: null,\n capitalize: capitalize,\n degrees: degrees,\n filter: filter,\n getOrigin: getOrigin,\n isDescriptive: isDescriptive,\n map: map,\n proportionalSize: proportionalSize,\n radians: radians,\n unCamelCase: unCamelCase,\n writeDataToDom: writeDataToDom\n};\n\n// Default namespaces\nconst svg = 'http://www.w3.org/2000/svg';\nconst html = 'http://www.w3.org/1999/xhtml';\nconst xmlns = 'http://www.w3.org/2000/xmlns/';\nconst xlink = 'http://www.w3.org/1999/xlink';\n\nvar namespaces = {\n __proto__: null,\n html: html,\n svg: svg,\n xlink: xlink,\n xmlns: xmlns\n};\n\nconst globals = {\n window: typeof window === 'undefined' ? null : window,\n document: typeof document === 'undefined' ? null : document\n};\nfunction registerWindow(win = null, doc = null) {\n globals.window = win;\n globals.document = doc;\n}\nconst save = {};\nfunction saveWindow() {\n save.window = globals.window;\n save.document = globals.document;\n}\nfunction restoreWindow() {\n globals.window = save.window;\n globals.document = save.document;\n}\nfunction withWindow(win, fn) {\n saveWindow();\n registerWindow(win, win.document);\n fn(win, win.document);\n restoreWindow();\n}\nfunction getWindow() {\n return globals.window;\n}\n\nclass Base {\n // constructor (node/*, {extensions = []} */) {\n // // this.tags = []\n // //\n // // for (let extension of extensions) {\n // // extension.setup.call(this, node)\n // // this.tags.push(extension.name)\n // // }\n // }\n}\n\nconst elements = {};\nconst root = '___SYMBOL___ROOT___';\n\n// Method for element creation\nfunction create(name, ns = svg) {\n // create element\n return globals.document.createElementNS(ns, name);\n}\nfunction makeInstance(element, isHTML = false) {\n if (element instanceof Base) return element;\n if (typeof element === 'object') {\n return adopter(element);\n }\n if (element == null) {\n return new elements[root]();\n }\n if (typeof element === 'string' && element.charAt(0) !== '<') {\n return adopter(globals.document.querySelector(element));\n }\n\n // Make sure, that HTML elements are created with the correct namespace\n const wrapper = isHTML ? globals.document.createElement('div') : create('svg');\n wrapper.innerHTML = element;\n\n // We can use firstChild here because we know,\n // that the first char is < and thus an element\n element = adopter(wrapper.firstChild);\n\n // make sure, that element doesn't have its wrapper attached\n wrapper.removeChild(wrapper.firstChild);\n return element;\n}\nfunction nodeOrNew(name, node) {\n return node && (node instanceof globals.window.Node || node.ownerDocument && node instanceof node.ownerDocument.defaultView.Node) ? node : create(name);\n}\n\n// Adopt existing svg elements\nfunction adopt(node) {\n // check for presence of node\n if (!node) return null;\n\n // make sure a node isn't already adopted\n if (node.instance instanceof Base) return node.instance;\n if (node.nodeName === '#document-fragment') {\n return new elements.Fragment(node);\n }\n\n // initialize variables\n let className = capitalize(node.nodeName || 'Dom');\n\n // Make sure that gradients are adopted correctly\n if (className === 'LinearGradient' || className === 'RadialGradient') {\n className = 'Gradient';\n\n // Fallback to Dom if element is not known\n } else if (!elements[className]) {\n className = 'Dom';\n }\n return new elements[className](node);\n}\nlet adopter = adopt;\nfunction mockAdopt(mock = adopt) {\n adopter = mock;\n}\nfunction register(element, name = element.name, asRoot = false) {\n elements[name] = element;\n if (asRoot) elements[root] = element;\n addMethodNames(Object.getOwnPropertyNames(element.prototype));\n return element;\n}\nfunction getClass(name) {\n return elements[name];\n}\n\n// Element id sequence\nlet did = 1000;\n\n// Get next named element id\nfunction eid(name) {\n return 'Svgjs' + capitalize(name) + did++;\n}\n\n// Deep new id assignment\nfunction assignNewId(node) {\n // do the same for SVG child nodes as well\n for (let i = node.children.length - 1; i >= 0; i--) {\n assignNewId(node.children[i]);\n }\n if (node.id) {\n node.id = eid(node.nodeName);\n return node;\n }\n return node;\n}\n\n// Method for extending objects\nfunction extend(modules, methods) {\n let key, i;\n modules = Array.isArray(modules) ? modules : [modules];\n for (i = modules.length - 1; i >= 0; i--) {\n for (key in methods) {\n modules[i].prototype[key] = methods[key];\n }\n }\n}\nfunction wrapWithAttrCheck(fn) {\n return function (...args) {\n const o = args[args.length - 1];\n if (o && o.constructor === Object && !(o instanceof Array)) {\n return fn.apply(this, args.slice(0, -1)).attr(o);\n } else {\n return fn.apply(this, args);\n }\n };\n}\n\n// Get all siblings, including myself\nfunction siblings() {\n return this.parent().children();\n}\n\n// Get the current position siblings\nfunction position() {\n return this.parent().index(this);\n}\n\n// Get the next element (will return null if there is none)\nfunction next() {\n return this.siblings()[this.position() + 1];\n}\n\n// Get the next element (will return null if there is none)\nfunction prev() {\n return this.siblings()[this.position() - 1];\n}\n\n// Send given element one step forward\nfunction forward() {\n const i = this.position();\n const p = this.parent();\n\n // move node one step forward\n p.add(this.remove(), i + 1);\n return this;\n}\n\n// Send given element one step backward\nfunction backward() {\n const i = this.position();\n const p = this.parent();\n p.add(this.remove(), i ? i - 1 : 0);\n return this;\n}\n\n// Send given element all the way to the front\nfunction front() {\n const p = this.parent();\n\n // Move node forward\n p.add(this.remove());\n return this;\n}\n\n// Send given element all the way to the back\nfunction back() {\n const p = this.parent();\n\n // Move node back\n p.add(this.remove(), 0);\n return this;\n}\n\n// Inserts a given element before the targeted element\nfunction before(element) {\n element = makeInstance(element);\n element.remove();\n const i = this.position();\n this.parent().add(element, i);\n return this;\n}\n\n// Inserts a given element after the targeted element\nfunction after(element) {\n element = makeInstance(element);\n element.remove();\n const i = this.position();\n this.parent().add(element, i + 1);\n return this;\n}\nfunction insertBefore(element) {\n element = makeInstance(element);\n element.before(this);\n return this;\n}\nfunction insertAfter(element) {\n element = makeInstance(element);\n element.after(this);\n return this;\n}\nregisterMethods('Dom', {\n siblings,\n position,\n next,\n prev,\n forward,\n backward,\n front,\n back,\n before,\n after,\n insertBefore,\n insertAfter\n});\n\n// Parse unit value\nconst numberAndUnit = /^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i;\n\n// Parse hex value\nconst hex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n\n// Parse rgb value\nconst rgb = /rgb\\((\\d+),(\\d+),(\\d+)\\)/;\n\n// Parse reference id\nconst reference = /(#[a-z_][a-z0-9\\-_]*)/i;\n\n// splits a transformation chain\nconst transforms = /\\)\\s*,?\\s*/;\n\n// Whitespace\nconst whitespace = /\\s/g;\n\n// Test hex value\nconst isHex = /^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i;\n\n// Test rgb value\nconst isRgb = /^rgb\\(/;\n\n// Test for blank string\nconst isBlank = /^(\\s+)?$/;\n\n// Test for numeric string\nconst isNumber = /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\n\n// Test for image url\nconst isImage = /\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i;\n\n// split at whitespace and comma\nconst delimiter = /[\\s,]+/;\n\n// Test for path letter\nconst isPathLetter = /[MLHVCSQTAZ]/i;\n\nvar regex = {\n __proto__: null,\n delimiter: delimiter,\n hex: hex,\n isBlank: isBlank,\n isHex: isHex,\n isImage: isImage,\n isNumber: isNumber,\n isPathLetter: isPathLetter,\n isRgb: isRgb,\n numberAndUnit: numberAndUnit,\n reference: reference,\n rgb: rgb,\n transforms: transforms,\n whitespace: whitespace\n};\n\n// Return array of classes on the node\nfunction classes() {\n const attr = this.attr('class');\n return attr == null ? [] : attr.trim().split(delimiter);\n}\n\n// Return true if class exists on the node, false otherwise\nfunction hasClass(name) {\n return this.classes().indexOf(name) !== -1;\n}\n\n// Add class to the node\nfunction addClass(name) {\n if (!this.hasClass(name)) {\n const array = this.classes();\n array.push(name);\n this.attr('class', array.join(' '));\n }\n return this;\n}\n\n// Remove class from the node\nfunction removeClass(name) {\n if (this.hasClass(name)) {\n this.attr('class', this.classes().filter(function (c) {\n return c !== name;\n }).join(' '));\n }\n return this;\n}\n\n// Toggle the presence of a class on the node\nfunction toggleClass(name) {\n return this.hasClass(name) ? this.removeClass(name) : this.addClass(name);\n}\nregisterMethods('Dom', {\n classes,\n hasClass,\n addClass,\n removeClass,\n toggleClass\n});\n\n// Dynamic style generator\nfunction css(style, val) {\n const ret = {};\n if (arguments.length === 0) {\n // get full style as object\n this.node.style.cssText.split(/\\s*;\\s*/).filter(function (el) {\n return !!el.length;\n }).forEach(function (el) {\n const t = el.split(/\\s*:\\s*/);\n ret[t[0]] = t[1];\n });\n return ret;\n }\n if (arguments.length < 2) {\n // get style properties as array\n if (Array.isArray(style)) {\n for (const name of style) {\n const cased = name;\n ret[name] = this.node.style.getPropertyValue(cased);\n }\n return ret;\n }\n\n // get style for property\n if (typeof style === 'string') {\n return this.node.style.getPropertyValue(style);\n }\n\n // set styles in object\n if (typeof style === 'object') {\n for (const name in style) {\n // set empty string if null/undefined/'' was given\n this.node.style.setProperty(name, style[name] == null || isBlank.test(style[name]) ? '' : style[name]);\n }\n }\n }\n\n // set style for property\n if (arguments.length === 2) {\n this.node.style.setProperty(style, val == null || isBlank.test(val) ? '' : val);\n }\n return this;\n}\n\n// Show element\nfunction show() {\n return this.css('display', '');\n}\n\n// Hide element\nfunction hide() {\n return this.css('display', 'none');\n}\n\n// Is element visible?\nfunction visible() {\n return this.css('display') !== 'none';\n}\nregisterMethods('Dom', {\n css,\n show,\n hide,\n visible\n});\n\n// Store data values on svg nodes\nfunction data(a, v, r) {\n if (a == null) {\n // get an object of attributes\n return this.data(map(filter(this.node.attributes, el => el.nodeName.indexOf('data-') === 0), el => el.nodeName.slice(5)));\n } else if (a instanceof Array) {\n const data = {};\n for (const key of a) {\n data[key] = this.data(key);\n }\n return data;\n } else if (typeof a === 'object') {\n for (v in a) {\n this.data(v, a[v]);\n }\n } else if (arguments.length < 2) {\n try {\n return JSON.parse(this.attr('data-' + a));\n } catch (e) {\n return this.attr('data-' + a);\n }\n } else {\n this.attr('data-' + a, v === null ? null : r === true || typeof v === 'string' || typeof v === 'number' ? v : JSON.stringify(v));\n }\n return this;\n}\nregisterMethods('Dom', {\n data\n});\n\n// Remember arbitrary data\nfunction remember(k, v) {\n // remember every item in an object individually\n if (typeof arguments[0] === 'object') {\n for (const key in k) {\n this.remember(key, k[key]);\n }\n } else if (arguments.length === 1) {\n // retrieve memory\n return this.memory()[k];\n } else {\n // store memory\n this.memory()[k] = v;\n }\n return this;\n}\n\n// Erase a given memory\nfunction forget() {\n if (arguments.length === 0) {\n this._memory = {};\n } else {\n for (let i = arguments.length - 1; i >= 0; i--) {\n delete this.memory()[arguments[i]];\n }\n }\n return this;\n}\n\n// This triggers creation of a new hidden class which is not performant\n// However, this function is not rarely used so it will not happen frequently\n// Return local memory object\nfunction memory() {\n return this._memory = this._memory || {};\n}\nregisterMethods('Dom', {\n remember,\n forget,\n memory\n});\n\nfunction sixDigitHex(hex) {\n return hex.length === 4 ? ['#', hex.substring(1, 2), hex.substring(1, 2), hex.substring(2, 3), hex.substring(2, 3), hex.substring(3, 4), hex.substring(3, 4)].join('') : hex;\n}\nfunction componentHex(component) {\n const integer = Math.round(component);\n const bounded = Math.max(0, Math.min(255, integer));\n const hex = bounded.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n}\nfunction is(object, space) {\n for (let i = space.length; i--;) {\n if (object[space[i]] == null) {\n return false;\n }\n }\n return true;\n}\nfunction getParameters(a, b) {\n const params = is(a, 'rgb') ? {\n _a: a.r,\n _b: a.g,\n _c: a.b,\n _d: 0,\n space: 'rgb'\n } : is(a, 'xyz') ? {\n _a: a.x,\n _b: a.y,\n _c: a.z,\n _d: 0,\n space: 'xyz'\n } : is(a, 'hsl') ? {\n _a: a.h,\n _b: a.s,\n _c: a.l,\n _d: 0,\n space: 'hsl'\n } : is(a, 'lab') ? {\n _a: a.l,\n _b: a.a,\n _c: a.b,\n _d: 0,\n space: 'lab'\n } : is(a, 'lch') ? {\n _a: a.l,\n _b: a.c,\n _c: a.h,\n _d: 0,\n space: 'lch'\n } : is(a, 'cmyk') ? {\n _a: a.c,\n _b: a.m,\n _c: a.y,\n _d: a.k,\n space: 'cmyk'\n } : {\n _a: 0,\n _b: 0,\n _c: 0,\n space: 'rgb'\n };\n params.space = b || params.space;\n return params;\n}\nfunction cieSpace(space) {\n if (space === 'lab' || space === 'xyz' || space === 'lch') {\n return true;\n } else {\n return false;\n }\n}\nfunction hueToRgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nclass Color {\n constructor(...inputs) {\n this.init(...inputs);\n }\n\n // Test if given value is a color\n static isColor(color) {\n return color && (color instanceof Color || this.isRgb(color) || this.test(color));\n }\n\n // Test if given value is an rgb object\n static isRgb(color) {\n return color && typeof color.r === 'number' && typeof color.g === 'number' && typeof color.b === 'number';\n }\n\n /*\n Generating random colors\n */\n static random(mode = 'vibrant', t) {\n // Get the math modules\n const {\n random,\n round,\n sin,\n PI: pi\n } = Math;\n\n // Run the correct generator\n if (mode === 'vibrant') {\n const l = (81 - 57) * random() + 57;\n const c = (83 - 45) * random() + 45;\n const h = 360 * random();\n const color = new Color(l, c, h, 'lch');\n return color;\n } else if (mode === 'sine') {\n t = t == null ? random() : t;\n const r = round(80 * sin(2 * pi * t / 0.5 + 0.01) + 150);\n const g = round(50 * sin(2 * pi * t / 0.5 + 4.6) + 200);\n const b = round(100 * sin(2 * pi * t / 0.5 + 2.3) + 150);\n const color = new Color(r, g, b);\n return color;\n } else if (mode === 'pastel') {\n const l = (94 - 86) * random() + 86;\n const c = (26 - 9) * random() + 9;\n const h = 360 * random();\n const color = new Color(l, c, h, 'lch');\n return color;\n } else if (mode === 'dark') {\n const l = 10 + 10 * random();\n const c = (125 - 75) * random() + 86;\n const h = 360 * random();\n const color = new Color(l, c, h, 'lch');\n return color;\n } else if (mode === 'rgb') {\n const r = 255 * random();\n const g = 255 * random();\n const b = 255 * random();\n const color = new Color(r, g, b);\n return color;\n } else if (mode === 'lab') {\n const l = 100 * random();\n const a = 256 * random() - 128;\n const b = 256 * random() - 128;\n const color = new Color(l, a, b, 'lab');\n return color;\n } else if (mode === 'grey') {\n const grey = 255 * random();\n const color = new Color(grey, grey, grey);\n return color;\n } else {\n throw new Error('Unsupported random color mode');\n }\n }\n\n // Test if given value is a color string\n static test(color) {\n return typeof color === 'string' && (isHex.test(color) || isRgb.test(color));\n }\n cmyk() {\n // Get the rgb values for the current color\n const {\n _a,\n _b,\n _c\n } = this.rgb();\n const [r, g, b] = [_a, _b, _c].map(v => v / 255);\n\n // Get the cmyk values in an unbounded format\n const k = Math.min(1 - r, 1 - g, 1 - b);\n if (k === 1) {\n // Catch the black case\n return new Color(0, 0, 0, 1, 'cmyk');\n }\n const c = (1 - r - k) / (1 - k);\n const m = (1 - g - k) / (1 - k);\n const y = (1 - b - k) / (1 - k);\n\n // Construct the new color\n const color = new Color(c, m, y, k, 'cmyk');\n return color;\n }\n hsl() {\n // Get the rgb values\n const {\n _a,\n _b,\n _c\n } = this.rgb();\n const [r, g, b] = [_a, _b, _c].map(v => v / 255);\n\n // Find the maximum and minimum values to get the lightness\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n\n // If the r, g, v values are identical then we are grey\n const isGrey = max === min;\n\n // Calculate the hue and saturation\n const delta = max - min;\n const s = isGrey ? 0 : l > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n const h = isGrey ? 0 : max === r ? ((g - b) / delta + (g < b ? 6 : 0)) / 6 : max === g ? ((b - r) / delta + 2) / 6 : max === b ? ((r - g) / delta + 4) / 6 : 0;\n\n // Construct and return the new color\n const color = new Color(360 * h, 100 * s, 100 * l, 'hsl');\n return color;\n }\n init(a = 0, b = 0, c = 0, d = 0, space = 'rgb') {\n // This catches the case when a falsy value is passed like ''\n a = !a ? 0 : a;\n\n // Reset all values in case the init function is rerun with new color space\n if (this.space) {\n for (const component in this.space) {\n delete this[this.space[component]];\n }\n }\n if (typeof a === 'number') {\n // Allow for the case that we don't need d...\n space = typeof d === 'string' ? d : space;\n d = typeof d === 'string' ? 0 : d;\n\n // Assign the values straight to the color\n Object.assign(this, {\n _a: a,\n _b: b,\n _c: c,\n _d: d,\n space\n });\n // If the user gave us an array, make the color from it\n } else if (a instanceof Array) {\n this.space = b || (typeof a[3] === 'string' ? a[3] : a[4]) || 'rgb';\n Object.assign(this, {\n _a: a[0],\n _b: a[1],\n _c: a[2],\n _d: a[3] || 0\n });\n } else if (a instanceof Object) {\n // Set the object up and assign its values directly\n const values = getParameters(a, b);\n Object.assign(this, values);\n } else if (typeof a === 'string') {\n if (isRgb.test(a)) {\n const noWhitespace = a.replace(whitespace, '');\n const [_a, _b, _c] = rgb.exec(noWhitespace).slice(1, 4).map(v => parseInt(v));\n Object.assign(this, {\n _a,\n _b,\n _c,\n _d: 0,\n space: 'rgb'\n });\n } else if (isHex.test(a)) {\n const hexParse = v => parseInt(v, 16);\n const [, _a, _b, _c] = hex.exec(sixDigitHex(a)).map(hexParse);\n Object.assign(this, {\n _a,\n _b,\n _c,\n _d: 0,\n space: 'rgb'\n });\n } else throw Error(\"Unsupported string format, can't construct Color\");\n }\n\n // Now add the components as a convenience\n const {\n _a,\n _b,\n _c,\n _d\n } = this;\n const components = this.space === 'rgb' ? {\n r: _a,\n g: _b,\n b: _c\n } : this.space === 'xyz' ? {\n x: _a,\n y: _b,\n z: _c\n } : this.space === 'hsl' ? {\n h: _a,\n s: _b,\n l: _c\n } : this.space === 'lab' ? {\n l: _a,\n a: _b,\n b: _c\n } : this.space === 'lch' ? {\n l: _a,\n c: _b,\n h: _c\n } : this.space === 'cmyk' ? {\n c: _a,\n m: _b,\n y: _c,\n k: _d\n } : {};\n Object.assign(this, components);\n }\n lab() {\n // Get the xyz color\n const {\n x,\n y,\n z\n } = this.xyz();\n\n // Get the lab components\n const l = 116 * y - 16;\n const a = 500 * (x - y);\n const b = 200 * (y - z);\n\n // Construct and return a new color\n const color = new Color(l, a, b, 'lab');\n return color;\n }\n lch() {\n // Get the lab color directly\n const {\n l,\n a,\n b\n } = this.lab();\n\n // Get the chromaticity and the hue using polar coordinates\n const c = Math.sqrt(a ** 2 + b ** 2);\n let h = 180 * Math.atan2(b, a) / Math.PI;\n if (h < 0) {\n h *= -1;\n h = 360 - h;\n }\n\n // Make a new color and return it\n const color = new Color(l, c, h, 'lch');\n return color;\n }\n /*\n Conversion Methods\n */\n\n rgb() {\n if (this.space === 'rgb') {\n return this;\n } else if (cieSpace(this.space)) {\n // Convert to the xyz color space\n let {\n x,\n y,\n z\n } = this;\n if (this.space === 'lab' || this.space === 'lch') {\n // Get the values in the lab space\n let {\n l,\n a,\n b\n } = this;\n if (this.space === 'lch') {\n const {\n c,\n h\n } = this;\n const dToR = Math.PI / 180;\n a = c * Math.cos(dToR * h);\n b = c * Math.sin(dToR * h);\n }\n\n // Undo the nonlinear function\n const yL = (l + 16) / 116;\n const xL = a / 500 + yL;\n const zL = yL - b / 200;\n\n // Get the xyz values\n const ct = 16 / 116;\n const mx = 0.008856;\n const nm = 7.787;\n x = 0.95047 * (xL ** 3 > mx ? xL ** 3 : (xL - ct) / nm);\n y = 1.0 * (yL ** 3 > mx ? yL ** 3 : (yL - ct) / nm);\n z = 1.08883 * (zL ** 3 > mx ? zL ** 3 : (zL - ct) / nm);\n }\n\n // Convert xyz to unbounded rgb values\n const rU = x * 3.2406 + y * -1.5372 + z * -0.4986;\n const gU = x * -0.9689 + y * 1.8758 + z * 0.0415;\n const bU = x * 0.0557 + y * -0.204 + z * 1.057;\n\n // Convert the values to true rgb values\n const pow = Math.pow;\n const bd = 0.0031308;\n const r = rU > bd ? 1.055 * pow(rU, 1 / 2.4) - 0.055 : 12.92 * rU;\n const g = gU > bd ? 1.055 * pow(gU, 1 / 2.4) - 0.055 : 12.92 * gU;\n const b = bU > bd ? 1.055 * pow(bU, 1 / 2.4) - 0.055 : 12.92 * bU;\n\n // Make and return the color\n const color = new Color(255 * r, 255 * g, 255 * b);\n return color;\n } else if (this.space === 'hsl') {\n // https://bgrins.github.io/TinyColor/docs/tinycolor.html\n // Get the current hsl values\n let {\n h,\n s,\n l\n } = this;\n h /= 360;\n s /= 100;\n l /= 100;\n\n // If we are grey, then just make the color directly\n if (s === 0) {\n l *= 255;\n const color = new Color(l, l, l);\n return color;\n }\n\n // TODO I have no idea what this does :D If you figure it out, tell me!\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n // Get the rgb values\n const r = 255 * hueToRgb(p, q, h + 1 / 3);\n const g = 255 * hueToRgb(p, q, h);\n const b = 255 * hueToRgb(p, q, h - 1 / 3);\n\n // Make a new color\n const color = new Color(r, g, b);\n return color;\n } else if (this.space === 'cmyk') {\n // https://gist.github.com/felipesabino/5066336\n // Get the normalised cmyk values\n const {\n c,\n m,\n y,\n k\n } = this;\n\n // Get the rgb values\n const r = 255 * (1 - Math.min(1, c * (1 - k) + k));\n const g = 255 * (1 - Math.min(1, m * (1 - k) + k));\n const b = 255 * (1 - Math.min(1, y * (1 - k) + k));\n\n // Form the color and return it\n const color = new Color(r, g, b);\n return color;\n } else {\n return this;\n }\n }\n toArray() {\n const {\n _a,\n _b,\n _c,\n _d,\n space\n } = this;\n return [_a, _b, _c, _d, space];\n }\n toHex() {\n const [r, g, b] = this._clamped().map(componentHex);\n return `#${r}${g}${b}`;\n }\n toRgb() {\n const [rV, gV, bV] = this._clamped();\n const string = `rgb(${rV},${gV},${bV})`;\n return string;\n }\n toString() {\n return this.toHex();\n }\n xyz() {\n // Normalise the red, green and blue values\n const {\n _a: r255,\n _b: g255,\n _c: b255\n } = this.rgb();\n const [r, g, b] = [r255, g255, b255].map(v => v / 255);\n\n // Convert to the lab rgb space\n const rL = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n const gL = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n const bL = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n\n // Convert to the xyz color space without bounding the values\n const xU = (rL * 0.4124 + gL * 0.3576 + bL * 0.1805) / 0.95047;\n const yU = (rL * 0.2126 + gL * 0.7152 + bL * 0.0722) / 1.0;\n const zU = (rL * 0.0193 + gL * 0.1192 + bL * 0.9505) / 1.08883;\n\n // Get the proper xyz values by applying the bounding\n const x = xU > 0.008856 ? Math.pow(xU, 1 / 3) : 7.787 * xU + 16 / 116;\n const y = yU > 0.008856 ? Math.pow(yU, 1 / 3) : 7.787 * yU + 16 / 116;\n const z = zU > 0.008856 ? Math.pow(zU, 1 / 3) : 7.787 * zU + 16 / 116;\n\n // Make and return the color\n const color = new Color(x, y, z, 'xyz');\n return color;\n }\n\n /*\n Input and Output methods\n */\n\n _clamped() {\n const {\n _a,\n _b,\n _c\n } = this.rgb();\n const {\n max,\n min,\n round\n } = Math;\n const format = v => max(0, min(round(v), 255));\n return [_a, _b, _c].map(format);\n }\n\n /*\n Constructing colors\n */\n}\n\nclass Point {\n // Initialize\n constructor(...args) {\n this.init(...args);\n }\n\n // Clone point\n clone() {\n return new Point(this);\n }\n init(x, y) {\n const base = {\n x: 0,\n y: 0\n };\n\n // ensure source as object\n const source = Array.isArray(x) ? {\n x: x[0],\n y: x[1]\n } : typeof x === 'object' ? {\n x: x.x,\n y: x.y\n } : {\n x: x,\n y: y\n };\n\n // merge source\n this.x = source.x == null ? base.x : source.x;\n this.y = source.y == null ? base.y : source.y;\n return this;\n }\n toArray() {\n return [this.x, this.y];\n }\n transform(m) {\n return this.clone().transformO(m);\n }\n\n // Transform point with matrix\n transformO(m) {\n if (!Matrix.isMatrixLike(m)) {\n m = new Matrix(m);\n }\n const {\n x,\n y\n } = this;\n\n // Perform the matrix multiplication\n this.x = m.a * x + m.c * y + m.e;\n this.y = m.b * x + m.d * y + m.f;\n return this;\n }\n}\nfunction point(x, y) {\n return new Point(x, y).transformO(this.screenCTM().inverseO());\n}\n\nfunction closeEnough(a, b, threshold) {\n return Math.abs(b - a) < (1e-6);\n}\nclass Matrix {\n constructor(...args) {\n this.init(...args);\n }\n static formatTransforms(o) {\n // Get all of the parameters required to form the matrix\n const flipBoth = o.flip === 'both' || o.flip === true;\n const flipX = o.flip && (flipBoth || o.flip === 'x') ? -1 : 1;\n const flipY = o.flip && (flipBoth || o.flip === 'y') ? -1 : 1;\n const skewX = o.skew && o.skew.length ? o.skew[0] : isFinite(o.skew) ? o.skew : isFinite(o.skewX) ? o.skewX : 0;\n const skewY = o.skew && o.skew.length ? o.skew[1] : isFinite(o.skew) ? o.skew : isFinite(o.skewY) ? o.skewY : 0;\n const scaleX = o.scale && o.scale.length ? o.scale[0] * flipX : isFinite(o.scale) ? o.scale * flipX : isFinite(o.scaleX) ? o.scaleX * flipX : flipX;\n const scaleY = o.scale && o.scale.length ? o.scale[1] * flipY : isFinite(o.scale) ? o.scale * flipY : isFinite(o.scaleY) ? o.scaleY * flipY : flipY;\n const shear = o.shear || 0;\n const theta = o.rotate || o.theta || 0;\n const origin = new Point(o.origin || o.around || o.ox || o.originX, o.oy || o.originY);\n const ox = origin.x;\n const oy = origin.y;\n // We need Point to be invalid if nothing was passed because we cannot default to 0 here. That is why NaN\n const position = new Point(o.position || o.px || o.positionX || NaN, o.py || o.positionY || NaN);\n const px = position.x;\n const py = position.y;\n const translate = new Point(o.translate || o.tx || o.translateX, o.ty || o.translateY);\n const tx = translate.x;\n const ty = translate.y;\n const relative = new Point(o.relative || o.rx || o.relativeX, o.ry || o.relativeY);\n const rx = relative.x;\n const ry = relative.y;\n\n // Populate all of the values\n return {\n scaleX,\n scaleY,\n skewX,\n skewY,\n shear,\n theta,\n rx,\n ry,\n tx,\n ty,\n ox,\n oy,\n px,\n py\n };\n }\n static fromArray(a) {\n return {\n a: a[0],\n b: a[1],\n c: a[2],\n d: a[3],\n e: a[4],\n f: a[5]\n };\n }\n static isMatrixLike(o) {\n return o.a != null || o.b != null || o.c != null || o.d != null || o.e != null || o.f != null;\n }\n\n // left matrix, right matrix, target matrix which is overwritten\n static matrixMultiply(l, r, o) {\n // Work out the product directly\n const a = l.a * r.a + l.c * r.b;\n const b = l.b * r.a + l.d * r.b;\n const c = l.a * r.c + l.c * r.d;\n const d = l.b * r.c + l.d * r.d;\n const e = l.e + l.a * r.e + l.c * r.f;\n const f = l.f + l.b * r.e + l.d * r.f;\n\n // make sure to use local variables because l/r and o could be the same\n o.a = a;\n o.b = b;\n o.c = c;\n o.d = d;\n o.e = e;\n o.f = f;\n return o;\n }\n around(cx, cy, matrix) {\n return this.clone().aroundO(cx, cy, matrix);\n }\n\n // Transform around a center point\n aroundO(cx, cy, matrix) {\n const dx = cx || 0;\n const dy = cy || 0;\n return this.translateO(-dx, -dy).lmultiplyO(matrix).translateO(dx, dy);\n }\n\n // Clones this matrix\n clone() {\n return new Matrix(this);\n }\n\n // Decomposes this matrix into its affine parameters\n decompose(cx = 0, cy = 0) {\n // Get the parameters from the matrix\n const a = this.a;\n const b = this.b;\n const c = this.c;\n const d = this.d;\n const e = this.e;\n const f = this.f;\n\n // Figure out if the winding direction is clockwise or counterclockwise\n const determinant = a * d - b * c;\n const ccw = determinant > 0 ? 1 : -1;\n\n // Since we only shear in x, we can use the x basis to get the x scale\n // and the rotation of the resulting matrix\n const sx = ccw * Math.sqrt(a * a + b * b);\n const thetaRad = Math.atan2(ccw * b, ccw * a);\n const theta = 180 / Math.PI * thetaRad;\n const ct = Math.cos(thetaRad);\n const st = Math.sin(thetaRad);\n\n // We can then solve the y basis vector simultaneously to get the other\n // two affine parameters directly from these parameters\n const lam = (a * c + b * d) / determinant;\n const sy = c * sx / (lam * a - b) || d * sx / (lam * b + a);\n\n // Use the translations\n const tx = e - cx + cx * ct * sx + cy * (lam * ct * sx - st * sy);\n const ty = f - cy + cx * st * sx + cy * (lam * st * sx + ct * sy);\n\n // Construct the decomposition and return it\n return {\n // Return the affine parameters\n scaleX: sx,\n scaleY: sy,\n shear: lam,\n rotate: theta,\n translateX: tx,\n translateY: ty,\n originX: cx,\n originY: cy,\n // Return the matrix parameters\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f\n };\n }\n\n // Check if two matrices are equal\n equals(other) {\n if (other === this) return true;\n const comp = new Matrix(other);\n return closeEnough(this.a, comp.a) && closeEnough(this.b, comp.b) && closeEnough(this.c, comp.c) && closeEnough(this.d, comp.d) && closeEnough(this.e, comp.e) && closeEnough(this.f, comp.f);\n }\n\n // Flip matrix on x or y, at a given offset\n flip(axis, around) {\n return this.clone().flipO(axis, around);\n }\n flipO(axis, around) {\n return axis === 'x' ? this.scaleO(-1, 1, around, 0) : axis === 'y' ? this.scaleO(1, -1, 0, around) : this.scaleO(-1, -1, axis, around || axis); // Define an x, y flip point\n }\n\n // Initialize\n init(source) {\n const base = Matrix.fromArray([1, 0, 0, 1, 0, 0]);\n\n // ensure source as object\n source = source instanceof Element ? source.matrixify() : typeof source === 'string' ? Matrix.fromArray(source.split(delimiter).map(parseFloat)) : Array.isArray(source) ? Matrix.fromArray(source) : typeof source === 'object' && Matrix.isMatrixLike(source) ? source : typeof source === 'object' ? new Matrix().transform(source) : arguments.length === 6 ? Matrix.fromArray([].slice.call(arguments)) : base;\n\n // Merge the source matrix with the base matrix\n this.a = source.a != null ? source.a : base.a;\n this.b = source.b != null ? source.b : base.b;\n this.c = source.c != null ? source.c : base.c;\n this.d = source.d != null ? source.d : base.d;\n this.e = source.e != null ? source.e : base.e;\n this.f = source.f != null ? source.f : base.f;\n return this;\n }\n inverse() {\n return this.clone().inverseO();\n }\n\n // Inverses matrix\n inverseO() {\n // Get the current parameters out of the matrix\n const a = this.a;\n const b = this.b;\n const c = this.c;\n const d = this.d;\n const e = this.e;\n const f = this.f;\n\n // Invert the 2x2 matrix in the top left\n const det = a * d - b * c;\n if (!det) throw new Error('Cannot invert ' + this);\n\n // Calculate the top 2x2 matrix\n const na = d / det;\n const nb = -b / det;\n const nc = -c / det;\n const nd = a / det;\n\n // Apply the inverted matrix to the top right\n const ne = -(na * e + nc * f);\n const nf = -(nb * e + nd * f);\n\n // Construct the inverted matrix\n this.a = na;\n this.b = nb;\n this.c = nc;\n this.d = nd;\n this.e = ne;\n this.f = nf;\n return this;\n }\n lmultiply(matrix) {\n return this.clone().lmultiplyO(matrix);\n }\n lmultiplyO(matrix) {\n const r = this;\n const l = matrix instanceof Matrix ? matrix : new Matrix(matrix);\n return Matrix.matrixMultiply(l, r, this);\n }\n\n // Left multiplies by the given matrix\n multiply(matrix) {\n return this.clone().multiplyO(matrix);\n }\n multiplyO(matrix) {\n // Get the matrices\n const l = this;\n const r = matrix instanceof Matrix ? matrix : new Matrix(matrix);\n return Matrix.matrixMultiply(l, r, this);\n }\n\n // Rotate matrix\n rotate(r, cx, cy) {\n return this.clone().rotateO(r, cx, cy);\n }\n rotateO(r, cx = 0, cy = 0) {\n // Convert degrees to radians\n r = radians(r);\n const cos = Math.cos(r);\n const sin = Math.sin(r);\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = this;\n this.a = a * cos - b * sin;\n this.b = b * cos + a * sin;\n this.c = c * cos - d * sin;\n this.d = d * cos + c * sin;\n this.e = e * cos - f * sin + cy * sin - cx * cos + cx;\n this.f = f * cos + e * sin - cx * sin - cy * cos + cy;\n return this;\n }\n\n // Scale matrix\n scale() {\n return this.clone().scaleO(...arguments);\n }\n scaleO(x, y = x, cx = 0, cy = 0) {\n // Support uniform scaling\n if (arguments.length === 3) {\n cy = cx;\n cx = y;\n y = x;\n }\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = this;\n this.a = a * x;\n this.b = b * y;\n this.c = c * x;\n this.d = d * y;\n this.e = e * x - cx * x + cx;\n this.f = f * y - cy * y + cy;\n return this;\n }\n\n // Shear matrix\n shear(a, cx, cy) {\n return this.clone().shearO(a, cx, cy);\n }\n\n // eslint-disable-next-line no-unused-vars\n shearO(lx, cx = 0, cy = 0) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = this;\n this.a = a + b * lx;\n this.c = c + d * lx;\n this.e = e + f * lx - cy * lx;\n return this;\n }\n\n // Skew Matrix\n skew() {\n return this.clone().skewO(...arguments);\n }\n skewO(x, y = x, cx = 0, cy = 0) {\n // support uniformal skew\n if (arguments.length === 3) {\n cy = cx;\n cx = y;\n y = x;\n }\n\n // Convert degrees to radians\n x = radians(x);\n y = radians(y);\n const lx = Math.tan(x);\n const ly = Math.tan(y);\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = this;\n this.a = a + b * lx;\n this.b = b + a * ly;\n this.c = c + d * lx;\n this.d = d + c * ly;\n this.e = e + f * lx - cy * lx;\n this.f = f + e * ly - cx * ly;\n return this;\n }\n\n // SkewX\n skewX(x, cx, cy) {\n return this.skew(x, 0, cx, cy);\n }\n\n // SkewY\n skewY(y, cx, cy) {\n return this.skew(0, y, cx, cy);\n }\n toArray() {\n return [this.a, this.b, this.c, this.d, this.e, this.f];\n }\n\n // Convert matrix to string\n toString() {\n return 'matrix(' + this.a + ',' + this.b + ',' + this.c + ',' + this.d + ',' + this.e + ',' + this.f + ')';\n }\n\n // Transform a matrix into another matrix by manipulating the space\n transform(o) {\n // Check if o is a matrix and then left multiply it directly\n if (Matrix.isMatrixLike(o)) {\n const matrix = new Matrix(o);\n return matrix.multiplyO(this);\n }\n\n // Get the proposed transformations and the current transformations\n const t = Matrix.formatTransforms(o);\n const current = this;\n const {\n x: ox,\n y: oy\n } = new Point(t.ox, t.oy).transform(current);\n\n // Construct the resulting matrix\n const transformer = new Matrix().translateO(t.rx, t.ry).lmultiplyO(current).translateO(-ox, -oy).scaleO(t.scaleX, t.scaleY).skewO(t.skewX, t.skewY).shearO(t.shear).rotateO(t.theta).translateO(ox, oy);\n\n // If we want the origin at a particular place, we force it there\n if (isFinite(t.px) || isFinite(t.py)) {\n const origin = new Point(ox, oy).transform(transformer);\n // TODO: Replace t.px with isFinite(t.px)\n // Doesn't work because t.px is also 0 if it wasn't passed\n const dx = isFinite(t.px) ? t.px - origin.x : 0;\n const dy = isFinite(t.py) ? t.py - origin.y : 0;\n transformer.translateO(dx, dy);\n }\n\n // Translate now after positioning\n transformer.translateO(t.tx, t.ty);\n return transformer;\n }\n\n // Translate matrix\n translate(x, y) {\n return this.clone().translateO(x, y);\n }\n translateO(x, y) {\n this.e += x || 0;\n this.f += y || 0;\n return this;\n }\n valueOf() {\n return {\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f\n };\n }\n}\nfunction ctm() {\n return new Matrix(this.node.getCTM());\n}\nfunction screenCTM() {\n try {\n /* https://bugzilla.mozilla.org/show_bug.cgi?id=1344537\n This is needed because FF does not return the transformation matrix\n for the inner coordinate system when getScreenCTM() is called on nested svgs.\n However all other Browsers do that */\n if (typeof this.isRoot === 'function' && !this.isRoot()) {\n const rect = this.rect(1, 1);\n const m = rect.node.getScreenCTM();\n rect.remove();\n return new Matrix(m);\n }\n return new Matrix(this.node.getScreenCTM());\n } catch (e) {\n console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`);\n return new Matrix();\n }\n}\nregister(Matrix, 'Matrix');\n\nfunction parser() {\n // Reuse cached element if possible\n if (!parser.nodes) {\n const svg = makeInstance().size(2, 0);\n svg.node.style.cssText = ['opacity: 0', 'position: absolute', 'left: -100%', 'top: -100%', 'overflow: hidden'].join(';');\n svg.attr('focusable', 'false');\n svg.attr('aria-hidden', 'true');\n const path = svg.path().node;\n parser.nodes = {\n svg,\n path\n };\n }\n if (!parser.nodes.svg.node.parentNode) {\n const b = globals.document.body || globals.document.documentElement;\n parser.nodes.svg.addTo(b);\n }\n return parser.nodes;\n}\n\nfunction isNulledBox(box) {\n return !box.width && !box.height && !box.x && !box.y;\n}\nfunction domContains(node) {\n return node === globals.document || (globals.document.documentElement.contains || function (node) {\n // This is IE - it does not support contains() for top-level SVGs\n while (node.parentNode) {\n node = node.parentNode;\n }\n return node === globals.document;\n }).call(globals.document.documentElement, node);\n}\nclass Box {\n constructor(...args) {\n this.init(...args);\n }\n addOffset() {\n // offset by window scroll position, because getBoundingClientRect changes when window is scrolled\n this.x += globals.window.pageXOffset;\n this.y += globals.window.pageYOffset;\n return new Box(this);\n }\n init(source) {\n const base = [0, 0, 0, 0];\n source = typeof source === 'string' ? source.split(delimiter).map(parseFloat) : Array.isArray(source) ? source : typeof source === 'object' ? [source.left != null ? source.left : source.x, source.top != null ? source.top : source.y, source.width, source.height] : arguments.length === 4 ? [].slice.call(arguments) : base;\n this.x = source[0] || 0;\n this.y = source[1] || 0;\n this.width = this.w = source[2] || 0;\n this.height = this.h = source[3] || 0;\n\n // Add more bounding box properties\n this.x2 = this.x + this.w;\n this.y2 = this.y + this.h;\n this.cx = this.x + this.w / 2;\n this.cy = this.y + this.h / 2;\n return this;\n }\n isNulled() {\n return isNulledBox(this);\n }\n\n // Merge rect box with another, return a new instance\n merge(box) {\n const x = Math.min(this.x, box.x);\n const y = Math.min(this.y, box.y);\n const width = Math.max(this.x + this.width, box.x + box.width) - x;\n const height = Math.max(this.y + this.height, box.y + box.height) - y;\n return new Box(x, y, width, height);\n }\n toArray() {\n return [this.x, this.y, this.width, this.height];\n }\n toString() {\n return this.x + ' ' + this.y + ' ' + this.width + ' ' + this.height;\n }\n transform(m) {\n if (!(m instanceof Matrix)) {\n m = new Matrix(m);\n }\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n const pts = [new Point(this.x, this.y), new Point(this.x2, this.y), new Point(this.x, this.y2), new Point(this.x2, this.y2)];\n pts.forEach(function (p) {\n p = p.transform(m);\n xMin = Math.min(xMin, p.x);\n xMax = Math.max(xMax, p.x);\n yMin = Math.min(yMin, p.y);\n yMax = Math.max(yMax, p.y);\n });\n return new Box(xMin, yMin, xMax - xMin, yMax - yMin);\n }\n}\nfunction getBox(el, getBBoxFn, retry) {\n let box;\n try {\n // Try to get the box with the provided function\n box = getBBoxFn(el.node);\n\n // If the box is worthless and not even in the dom, retry\n // by throwing an error here...\n if (isNulledBox(box) && !domContains(el.node)) {\n throw new Error('Element not in the dom');\n }\n } catch (e) {\n // ... and calling the retry handler here\n box = retry(el);\n }\n return box;\n}\nfunction bbox() {\n // Function to get bbox is getBBox()\n const getBBox = node => node.getBBox();\n\n // Take all measures so that a stupid browser renders the element\n // so we can get the bbox from it when we try again\n const retry = el => {\n try {\n const clone = el.clone().addTo(parser().svg).show();\n const box = clone.node.getBBox();\n clone.remove();\n return box;\n } catch (e) {\n // We give up...\n throw new Error(`Getting bbox of element \"${el.node.nodeName}\" is not possible: ${e.toString()}`);\n }\n };\n const box = getBox(this, getBBox, retry);\n const bbox = new Box(box);\n return bbox;\n}\nfunction rbox(el) {\n const getRBox = node => node.getBoundingClientRect();\n const retry = el => {\n // There is no point in trying tricks here because if we insert the element into the dom ourselves\n // it obviously will be at the wrong position\n throw new Error(`Getting rbox of element \"${el.node.nodeName}\" is not possible`);\n };\n const box = getBox(this, getRBox, retry);\n const rbox = new Box(box);\n\n // If an element was passed, we want the bbox in the coordinate system of that element\n if (el) {\n return rbox.transform(el.screenCTM().inverseO());\n }\n\n // Else we want it in absolute screen coordinates\n // Therefore we need to add the scrollOffset\n return rbox.addOffset();\n}\n\n// Checks whether the given point is inside the bounding box\nfunction inside(x, y) {\n const box = this.bbox();\n return x > box.x && y > box.y && x < box.x + box.width && y < box.y + box.height;\n}\nregisterMethods({\n viewbox: {\n viewbox(x, y, width, height) {\n // act as getter\n if (x == null) return new Box(this.attr('viewBox'));\n\n // act as setter\n return this.attr('viewBox', new Box(x, y, width, height));\n },\n zoom(level, point) {\n // Its best to rely on the attributes here and here is why:\n // clientXYZ: Doesn't work on non-root svgs because they dont have a CSSBox (silly!)\n // getBoundingClientRect: Doesn't work because Chrome just ignores width and height of nested svgs completely\n // that means, their clientRect is always as big as the content.\n // Furthermore this size is incorrect if the element is further transformed by its parents\n // computedStyle: Only returns meaningful values if css was used with px. We dont go this route here!\n // getBBox: returns the bounding box of its content - that doesn't help!\n let {\n width,\n height\n } = this.attr(['width', 'height']);\n\n // Width and height is a string when a number with a unit is present which we can't use\n // So we try clientXYZ\n if (!width && !height || typeof width === 'string' || typeof height === 'string') {\n width = this.node.clientWidth;\n height = this.node.clientHeight;\n }\n\n // Giving up...\n if (!width || !height) {\n throw new Error('Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element');\n }\n const v = this.viewbox();\n const zoomX = width / v.width;\n const zoomY = height / v.height;\n const zoom = Math.min(zoomX, zoomY);\n if (level == null) {\n return zoom;\n }\n let zoomAmount = zoom / level;\n\n // Set the zoomAmount to the highest value which is safe to process and recover from\n // The * 100 is a bit of wiggle room for the matrix transformation\n if (zoomAmount === Infinity) zoomAmount = Number.MAX_SAFE_INTEGER / 100;\n point = point || new Point(width / 2 / zoomX + v.x, height / 2 / zoomY + v.y);\n const box = new Box(v).transform(new Matrix({\n scale: zoomAmount,\n origin: point\n }));\n return this.viewbox(box);\n }\n }\n});\nregister(Box, 'Box');\n\n// import { subClassArray } from './ArrayPolyfill.js'\n\nclass List extends Array {\n constructor(arr = [], ...args) {\n super(arr, ...args);\n if (typeof arr === 'number') return this;\n this.length = 0;\n this.push(...arr);\n }\n}\nextend([List], {\n each(fnOrMethodName, ...args) {\n if (typeof fnOrMethodName === 'function') {\n return this.map((el, i, arr) => {\n return fnOrMethodName.call(el, el, i, arr);\n });\n } else {\n return this.map(el => {\n return el[fnOrMethodName](...args);\n });\n }\n },\n toArray() {\n return Array.prototype.concat.apply([], this);\n }\n});\nconst reserved = ['toArray', 'constructor', 'each'];\nList.extend = function (methods) {\n methods = methods.reduce((obj, name) => {\n // Don't overwrite own methods\n if (reserved.includes(name)) return obj;\n\n // Don't add private methods\n if (name[0] === '_') return obj;\n\n // Allow access to original Array methods through a prefix\n if (name in Array.prototype) {\n obj['$' + name] = Array.prototype[name];\n }\n\n // Relay every call to each()\n obj[name] = function (...attrs) {\n return this.each(name, ...attrs);\n };\n return obj;\n }, {});\n extend([List], methods);\n};\n\nfunction baseFind(query, parent) {\n return new List(map((parent || globals.document).querySelectorAll(query), function (node) {\n return adopt(node);\n }));\n}\n\n// Scoped find method\nfunction find(query) {\n return baseFind(query, this.node);\n}\nfunction findOne(query) {\n return adopt(this.node.querySelector(query));\n}\n\nlet listenerId = 0;\nconst windowEvents = {};\nfunction getEvents(instance) {\n let n = instance.getEventHolder();\n\n // We dont want to save events in global space\n if (n === globals.window) n = windowEvents;\n if (!n.events) n.events = {};\n return n.events;\n}\nfunction getEventTarget(instance) {\n return instance.getEventTarget();\n}\nfunction clearEvents(instance) {\n let n = instance.getEventHolder();\n if (n === globals.window) n = windowEvents;\n if (n.events) n.events = {};\n}\n\n// Add event binder in the SVG namespace\nfunction on(node, events, listener, binding, options) {\n const l = listener.bind(binding || node);\n const instance = makeInstance(node);\n const bag = getEvents(instance);\n const n = getEventTarget(instance);\n\n // events can be an array of events or a string of events\n events = Array.isArray(events) ? events : events.split(delimiter);\n\n // add id to listener\n if (!listener._svgjsListenerId) {\n listener._svgjsListenerId = ++listenerId;\n }\n events.forEach(function (event) {\n const ev = event.split('.')[0];\n const ns = event.split('.')[1] || '*';\n\n // ensure valid object\n bag[ev] = bag[ev] || {};\n bag[ev][ns] = bag[ev][ns] || {};\n\n // reference listener\n bag[ev][ns][listener._svgjsListenerId] = l;\n\n // add listener\n n.addEventListener(ev, l, options || false);\n });\n}\n\n// Add event unbinder in the SVG namespace\nfunction off(node, events, listener, options) {\n const instance = makeInstance(node);\n const bag = getEvents(instance);\n const n = getEventTarget(instance);\n\n // listener can be a function or a number\n if (typeof listener === 'function') {\n listener = listener._svgjsListenerId;\n if (!listener) return;\n }\n\n // events can be an array of events or a string or undefined\n events = Array.isArray(events) ? events : (events || '').split(delimiter);\n events.forEach(function (event) {\n const ev = event && event.split('.')[0];\n const ns = event && event.split('.')[1];\n let namespace, l;\n if (listener) {\n // remove listener reference\n if (bag[ev] && bag[ev][ns || '*']) {\n // removeListener\n n.removeEventListener(ev, bag[ev][ns || '*'][listener], options || false);\n delete bag[ev][ns || '*'][listener];\n }\n } else if (ev && ns) {\n // remove all listeners for a namespaced event\n if (bag[ev] && bag[ev][ns]) {\n for (l in bag[ev][ns]) {\n off(n, [ev, ns].join('.'), l);\n }\n delete bag[ev][ns];\n }\n } else if (ns) {\n // remove all listeners for a specific namespace\n for (event in bag) {\n for (namespace in bag[event]) {\n if (ns === namespace) {\n off(n, [event, ns].join('.'));\n }\n }\n }\n } else if (ev) {\n // remove all listeners for the event\n if (bag[ev]) {\n for (namespace in bag[ev]) {\n off(n, [ev, namespace].join('.'));\n }\n delete bag[ev];\n }\n } else {\n // remove all listeners on a given node\n for (event in bag) {\n off(n, event);\n }\n clearEvents(instance);\n }\n });\n}\nfunction dispatch(node, event, data, options) {\n const n = getEventTarget(node);\n\n // Dispatch event\n if (event instanceof globals.window.Event) {\n n.dispatchEvent(event);\n } else {\n event = new globals.window.CustomEvent(event, {\n detail: data,\n cancelable: true,\n ...options\n });\n n.dispatchEvent(event);\n }\n return event;\n}\n\nclass EventTarget extends Base {\n addEventListener() {}\n dispatch(event, data, options) {\n return dispatch(this, event, data, options);\n }\n dispatchEvent(event) {\n const bag = this.getEventHolder().events;\n if (!bag) return true;\n const events = bag[event.type];\n for (const i in events) {\n for (const j in events[i]) {\n events[i][j](event);\n }\n }\n return !event.defaultPrevented;\n }\n\n // Fire given event\n fire(event, data, options) {\n this.dispatch(event, data, options);\n return this;\n }\n getEventHolder() {\n return this;\n }\n getEventTarget() {\n return this;\n }\n\n // Unbind event from listener\n off(event, listener, options) {\n off(this, event, listener, options);\n return this;\n }\n\n // Bind given event to listener\n on(event, listener, binding, options) {\n on(this, event, listener, binding, options);\n return this;\n }\n removeEventListener() {}\n}\nregister(EventTarget, 'EventTarget');\n\nfunction noop() {}\n\n// Default animation values\nconst timeline = {\n duration: 400,\n ease: '>',\n delay: 0\n};\n\n// Default attribute values\nconst attrs = {\n // fill and stroke\n 'fill-opacity': 1,\n 'stroke-opacity': 1,\n 'stroke-width': 0,\n 'stroke-linejoin': 'miter',\n 'stroke-linecap': 'butt',\n fill: '#000000',\n stroke: '#000000',\n opacity: 1,\n // position\n x: 0,\n y: 0,\n cx: 0,\n cy: 0,\n // size\n width: 0,\n height: 0,\n // radius\n r: 0,\n rx: 0,\n ry: 0,\n // gradient\n offset: 0,\n 'stop-opacity': 1,\n 'stop-color': '#000000',\n // text\n 'text-anchor': 'start'\n};\n\nvar defaults = {\n __proto__: null,\n attrs: attrs,\n noop: noop,\n timeline: timeline\n};\n\nclass SVGArray extends Array {\n constructor(...args) {\n super(...args);\n this.init(...args);\n }\n clone() {\n return new this.constructor(this);\n }\n init(arr) {\n // This catches the case, that native map tries to create an array with new Array(1)\n if (typeof arr === 'number') return this;\n this.length = 0;\n this.push(...this.parse(arr));\n return this;\n }\n\n // Parse whitespace separated string\n parse(array = []) {\n // If already is an array, no need to parse it\n if (array instanceof Array) return array;\n return array.trim().split(delimiter).map(parseFloat);\n }\n toArray() {\n return Array.prototype.concat.apply([], this);\n }\n toSet() {\n return new Set(this);\n }\n toString() {\n return this.join(' ');\n }\n\n // Flattens the array if needed\n valueOf() {\n const ret = [];\n ret.push(...this);\n return ret;\n }\n}\n\n// Module for unit conversions\nclass SVGNumber {\n // Initialize\n constructor(...args) {\n this.init(...args);\n }\n convert(unit) {\n return new SVGNumber(this.value, unit);\n }\n\n // Divide number\n divide(number) {\n number = new SVGNumber(number);\n return new SVGNumber(this / number, this.unit || number.unit);\n }\n init(value, unit) {\n unit = Array.isArray(value) ? value[1] : unit;\n value = Array.isArray(value) ? value[0] : value;\n\n // initialize defaults\n this.value = 0;\n this.unit = unit || '';\n\n // parse value\n if (typeof value === 'number') {\n // ensure a valid numeric value\n this.value = isNaN(value) ? 0 : !isFinite(value) ? value < 0 ? -3.4e38 : +3.4e38 : value;\n } else if (typeof value === 'string') {\n unit = value.match(numberAndUnit);\n if (unit) {\n // make value numeric\n this.value = parseFloat(unit[1]);\n\n // normalize\n if (unit[5] === '%') {\n this.value /= 100;\n } else if (unit[5] === 's') {\n this.value *= 1000;\n }\n\n // store unit\n this.unit = unit[5];\n }\n } else {\n if (value instanceof SVGNumber) {\n this.value = value.valueOf();\n this.unit = value.unit;\n }\n }\n return this;\n }\n\n // Subtract number\n minus(number) {\n number = new SVGNumber(number);\n return new SVGNumber(this - number, this.unit || number.unit);\n }\n\n // Add number\n plus(number) {\n number = new SVGNumber(number);\n return new SVGNumber(this + number, this.unit || number.unit);\n }\n\n // Multiply number\n times(number) {\n number = new SVGNumber(number);\n return new SVGNumber(this * number, this.unit || number.unit);\n }\n toArray() {\n return [this.value, this.unit];\n }\n toJSON() {\n return this.toString();\n }\n toString() {\n return (this.unit === '%' ? ~~(this.value * 1e8) / 1e6 : this.unit === 's' ? this.value / 1e3 : this.value) + this.unit;\n }\n valueOf() {\n return this.value;\n }\n}\n\nconst colorAttributes = new Set(['fill', 'stroke', 'color', 'bgcolor', 'stop-color', 'flood-color', 'lighting-color']);\nconst hooks = [];\nfunction registerAttrHook(fn) {\n hooks.push(fn);\n}\n\n// Set svg element attribute\nfunction attr(attr, val, ns) {\n // act as full getter\n if (attr == null) {\n // get an object of attributes\n attr = {};\n val = this.node.attributes;\n for (const node of val) {\n attr[node.nodeName] = isNumber.test(node.nodeValue) ? parseFloat(node.nodeValue) : node.nodeValue;\n }\n return attr;\n } else if (attr instanceof Array) {\n // loop through array and get all values\n return attr.reduce((last, curr) => {\n last[curr] = this.attr(curr);\n return last;\n }, {});\n } else if (typeof attr === 'object' && attr.constructor === Object) {\n // apply every attribute individually if an object is passed\n for (val in attr) this.attr(val, attr[val]);\n } else if (val === null) {\n // remove value\n this.node.removeAttribute(attr);\n } else if (val == null) {\n // act as a getter if the first and only argument is not an object\n val = this.node.getAttribute(attr);\n return val == null ? attrs[attr] : isNumber.test(val) ? parseFloat(val) : val;\n } else {\n // Loop through hooks and execute them to convert value\n val = hooks.reduce((_val, hook) => {\n return hook(attr, _val, this);\n }, val);\n\n // ensure correct numeric values (also accepts NaN and Infinity)\n if (typeof val === 'number') {\n val = new SVGNumber(val);\n } else if (colorAttributes.has(attr) && Color.isColor(val)) {\n // ensure full hex color\n val = new Color(val);\n } else if (val.constructor === Array) {\n // Check for plain arrays and parse array values\n val = new SVGArray(val);\n }\n\n // if the passed attribute is leading...\n if (attr === 'leading') {\n // ... call the leading method instead\n if (this.leading) {\n this.leading(val);\n }\n } else {\n // set given attribute on node\n typeof ns === 'string' ? this.node.setAttributeNS(ns, attr, val.toString()) : this.node.setAttribute(attr, val.toString());\n }\n\n // rebuild if required\n if (this.rebuild && (attr === 'font-size' || attr === 'x')) {\n this.rebuild();\n }\n }\n return this;\n}\n\nclass Dom extends EventTarget {\n constructor(node, attrs) {\n super();\n this.node = node;\n this.type = node.nodeName;\n if (attrs && node !== attrs) {\n this.attr(attrs);\n }\n }\n\n // Add given element at a position\n add(element, i) {\n element = makeInstance(element);\n\n // If non-root svg nodes are added we have to remove their namespaces\n if (element.removeNamespace && this.node instanceof globals.window.SVGElement) {\n element.removeNamespace();\n }\n if (i == null) {\n this.node.appendChild(element.node);\n } else if (element.node !== this.node.childNodes[i]) {\n this.node.insertBefore(element.node, this.node.childNodes[i]);\n }\n return this;\n }\n\n // Add element to given container and return self\n addTo(parent, i) {\n return makeInstance(parent).put(this, i);\n }\n\n // Returns all child elements\n children() {\n return new List(map(this.node.children, function (node) {\n return adopt(node);\n }));\n }\n\n // Remove all elements in this container\n clear() {\n // remove children\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild);\n }\n return this;\n }\n\n // Clone element\n clone(deep = true, assignNewIds = true) {\n // write dom data to the dom so the clone can pickup the data\n this.writeDataToDom();\n\n // clone element\n let nodeClone = this.node.cloneNode(deep);\n if (assignNewIds) {\n // assign new id\n nodeClone = assignNewId(nodeClone);\n }\n return new this.constructor(nodeClone);\n }\n\n // Iterates over all children and invokes a given block\n each(block, deep) {\n const children = this.children();\n let i, il;\n for (i = 0, il = children.length; i < il; i++) {\n block.apply(children[i], [i, children]);\n if (deep) {\n children[i].each(block, deep);\n }\n }\n return this;\n }\n element(nodeName, attrs) {\n return this.put(new Dom(create(nodeName), attrs));\n }\n\n // Get first child\n first() {\n return adopt(this.node.firstChild);\n }\n\n // Get a element at the given index\n get(i) {\n return adopt(this.node.childNodes[i]);\n }\n getEventHolder() {\n return this.node;\n }\n getEventTarget() {\n return this.node;\n }\n\n // Checks if the given element is a child\n has(element) {\n return this.index(element) >= 0;\n }\n html(htmlOrFn, outerHTML) {\n return this.xml(htmlOrFn, outerHTML, html);\n }\n\n // Get / set id\n id(id) {\n // generate new id if no id set\n if (typeof id === 'undefined' && !this.node.id) {\n this.node.id = eid(this.type);\n }\n\n // don't set directly with this.node.id to make `null` work correctly\n return this.attr('id', id);\n }\n\n // Gets index of given element\n index(element) {\n return [].slice.call(this.node.childNodes).indexOf(element.node);\n }\n\n // Get the last child\n last() {\n return adopt(this.node.lastChild);\n }\n\n // matches the element vs a css selector\n matches(selector) {\n const el = this.node;\n const matcher = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector || null;\n return matcher && matcher.call(el, selector);\n }\n\n // Returns the parent element instance\n parent(type) {\n let parent = this;\n\n // check for parent\n if (!parent.node.parentNode) return null;\n\n // get parent element\n parent = adopt(parent.node.parentNode);\n if (!type) return parent;\n\n // loop through ancestors if type is given\n do {\n if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent;\n } while (parent = adopt(parent.node.parentNode));\n return parent;\n }\n\n // Basically does the same as `add()` but returns the added element instead\n put(element, i) {\n element = makeInstance(element);\n this.add(element, i);\n return element;\n }\n\n // Add element to given container and return container\n putIn(parent, i) {\n return makeInstance(parent).add(this, i);\n }\n\n // Remove element\n remove() {\n if (this.parent()) {\n this.parent().removeElement(this);\n }\n return this;\n }\n\n // Remove a given child\n removeElement(element) {\n this.node.removeChild(element.node);\n return this;\n }\n\n // Replace this with element\n replace(element) {\n element = makeInstance(element);\n if (this.node.parentNode) {\n this.node.parentNode.replaceChild(element.node, this.node);\n }\n return element;\n }\n round(precision = 2, map = null) {\n const factor = 10 ** precision;\n const attrs = this.attr(map);\n for (const i in attrs) {\n if (typeof attrs[i] === 'number') {\n attrs[i] = Math.round(attrs[i] * factor) / factor;\n }\n }\n this.attr(attrs);\n return this;\n }\n\n // Import / Export raw svg\n svg(svgOrFn, outerSVG) {\n return this.xml(svgOrFn, outerSVG, svg);\n }\n\n // Return id on string conversion\n toString() {\n return this.id();\n }\n words(text) {\n // This is faster than removing all children and adding a new one\n this.node.textContent = text;\n return this;\n }\n wrap(node) {\n const parent = this.parent();\n if (!parent) {\n return this.addTo(node);\n }\n const position = parent.index(this);\n return parent.put(node, position).put(this);\n }\n\n // write svgjs data to the dom\n writeDataToDom() {\n // dump variables recursively\n this.each(function () {\n this.writeDataToDom();\n });\n return this;\n }\n\n // Import / Export raw svg\n xml(xmlOrFn, outerXML, ns) {\n if (typeof xmlOrFn === 'boolean') {\n ns = outerXML;\n outerXML = xmlOrFn;\n xmlOrFn = null;\n }\n\n // act as getter if no svg string is given\n if (xmlOrFn == null || typeof xmlOrFn === 'function') {\n // The default for exports is, that the outerNode is included\n outerXML = outerXML == null ? true : outerXML;\n\n // write svgjs data to the dom\n this.writeDataToDom();\n let current = this;\n\n // An export modifier was passed\n if (xmlOrFn != null) {\n current = adopt(current.node.cloneNode(true));\n\n // If the user wants outerHTML we need to process this node, too\n if (outerXML) {\n const result = xmlOrFn(current);\n current = result || current;\n\n // The user does not want this node? Well, then he gets nothing\n if (result === false) return '';\n }\n\n // Deep loop through all children and apply modifier\n current.each(function () {\n const result = xmlOrFn(this);\n const _this = result || this;\n\n // If modifier returns false, discard node\n if (result === false) {\n this.remove();\n\n // If modifier returns new node, use it\n } else if (result && this !== _this) {\n this.replace(_this);\n }\n }, true);\n }\n\n // Return outer or inner content\n return outerXML ? current.node.outerHTML : current.node.innerHTML;\n }\n\n // Act as setter if we got a string\n\n // The default for import is, that the current node is not replaced\n outerXML = outerXML == null ? false : outerXML;\n\n // Create temporary holder\n const well = create('wrapper', ns);\n const fragment = globals.document.createDocumentFragment();\n\n // Dump raw svg\n well.innerHTML = xmlOrFn;\n\n // Transplant nodes into the fragment\n for (let len = well.children.length; len--;) {\n fragment.appendChild(well.firstElementChild);\n }\n const parent = this.parent();\n\n // Add the whole fragment at once\n return outerXML ? this.replace(fragment) && parent : this.add(fragment);\n }\n}\nextend(Dom, {\n attr,\n find,\n findOne\n});\nregister(Dom, 'Dom');\n\nclass Element extends Dom {\n constructor(node, attrs) {\n super(node, attrs);\n\n // initialize data object\n this.dom = {};\n\n // create circular reference\n this.node.instance = this;\n if (node.hasAttribute('data-svgjs') || node.hasAttribute('svgjs:data')) {\n // pull svgjs data from the dom (getAttributeNS doesn't work in html5)\n this.setData(JSON.parse(node.getAttribute('data-svgjs')) ?? JSON.parse(node.getAttribute('svgjs:data')) ?? {});\n }\n }\n\n // Move element by its center\n center(x, y) {\n return this.cx(x).cy(y);\n }\n\n // Move by center over x-axis\n cx(x) {\n return x == null ? this.x() + this.width() / 2 : this.x(x - this.width() / 2);\n }\n\n // Move by center over y-axis\n cy(y) {\n return y == null ? this.y() + this.height() / 2 : this.y(y - this.height() / 2);\n }\n\n // Get defs\n defs() {\n const root = this.root();\n return root && root.defs();\n }\n\n // Relative move over x and y axes\n dmove(x, y) {\n return this.dx(x).dy(y);\n }\n\n // Relative move over x axis\n dx(x = 0) {\n return this.x(new SVGNumber(x).plus(this.x()));\n }\n\n // Relative move over y axis\n dy(y = 0) {\n return this.y(new SVGNumber(y).plus(this.y()));\n }\n getEventHolder() {\n return this;\n }\n\n // Set height of element\n height(height) {\n return this.attr('height', height);\n }\n\n // Move element to given x and y values\n move(x, y) {\n return this.x(x).y(y);\n }\n\n // return array of all ancestors of given type up to the root svg\n parents(until = this.root()) {\n const isSelector = typeof until === 'string';\n if (!isSelector) {\n until = makeInstance(until);\n }\n const parents = new List();\n let parent = this;\n while ((parent = parent.parent()) && parent.node !== globals.document && parent.nodeName !== '#document-fragment') {\n parents.push(parent);\n if (!isSelector && parent.node === until.node) {\n break;\n }\n if (isSelector && parent.matches(until)) {\n break;\n }\n if (parent.node === this.root().node) {\n // We worked our way to the root and didn't match `until`\n return null;\n }\n }\n return parents;\n }\n\n // Get referenced element form attribute value\n reference(attr) {\n attr = this.attr(attr);\n if (!attr) return null;\n const m = (attr + '').match(reference);\n return m ? makeInstance(m[1]) : null;\n }\n\n // Get parent document\n root() {\n const p = this.parent(getClass(root));\n return p && p.root();\n }\n\n // set given data to the elements data property\n setData(o) {\n this.dom = o;\n return this;\n }\n\n // Set element size to given width and height\n size(width, height) {\n const p = proportionalSize(this, width, height);\n return this.width(new SVGNumber(p.width)).height(new SVGNumber(p.height));\n }\n\n // Set width of element\n width(width) {\n return this.attr('width', width);\n }\n\n // write svgjs data to the dom\n writeDataToDom() {\n writeDataToDom(this, this.dom);\n return super.writeDataToDom();\n }\n\n // Move over x-axis\n x(x) {\n return this.attr('x', x);\n }\n\n // Move over y-axis\n y(y) {\n return this.attr('y', y);\n }\n}\nextend(Element, {\n bbox,\n rbox,\n inside,\n point,\n ctm,\n screenCTM\n});\nregister(Element, 'Element');\n\n// Define list of available attributes for stroke and fill\nconst sugar = {\n stroke: ['color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset'],\n fill: ['color', 'opacity', 'rule'],\n prefix: function (t, a) {\n return a === 'color' ? t : t + '-' + a;\n }\n}\n\n// Add sugar for fill and stroke\n;\n['fill', 'stroke'].forEach(function (m) {\n const extension = {};\n let i;\n extension[m] = function (o) {\n if (typeof o === 'undefined') {\n return this.attr(m);\n }\n if (typeof o === 'string' || o instanceof Color || Color.isRgb(o) || o instanceof Element) {\n this.attr(m, o);\n } else {\n // set all attributes from sugar.fill and sugar.stroke list\n for (i = sugar[m].length - 1; i >= 0; i--) {\n if (o[sugar[m][i]] != null) {\n this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]]);\n }\n }\n }\n return this;\n };\n registerMethods(['Element', 'Runner'], extension);\n});\nregisterMethods(['Element', 'Runner'], {\n // Let the user set the matrix directly\n matrix: function (mat, b, c, d, e, f) {\n // Act as a getter\n if (mat == null) {\n return new Matrix(this);\n }\n\n // Act as a setter, the user can pass a matrix or a set of numbers\n return this.attr('transform', new Matrix(mat, b, c, d, e, f));\n },\n // Map rotation to transform\n rotate: function (angle, cx, cy) {\n return this.transform({\n rotate: angle,\n ox: cx,\n oy: cy\n }, true);\n },\n // Map skew to transform\n skew: function (x, y, cx, cy) {\n return arguments.length === 1 || arguments.length === 3 ? this.transform({\n skew: x,\n ox: y,\n oy: cx\n }, true) : this.transform({\n skew: [x, y],\n ox: cx,\n oy: cy\n }, true);\n },\n shear: function (lam, cx, cy) {\n return this.transform({\n shear: lam,\n ox: cx,\n oy: cy\n }, true);\n },\n // Map scale to transform\n scale: function (x, y, cx, cy) {\n return arguments.length === 1 || arguments.length === 3 ? this.transform({\n scale: x,\n ox: y,\n oy: cx\n }, true) : this.transform({\n scale: [x, y],\n ox: cx,\n oy: cy\n }, true);\n },\n // Map translate to transform\n translate: function (x, y) {\n return this.transform({\n translate: [x, y]\n }, true);\n },\n // Map relative translations to transform\n relative: function (x, y) {\n return this.transform({\n relative: [x, y]\n }, true);\n },\n // Map flip to transform\n flip: function (direction = 'both', origin = 'center') {\n if ('xybothtrue'.indexOf(direction) === -1) {\n origin = direction;\n direction = 'both';\n }\n return this.transform({\n flip: direction,\n origin: origin\n }, true);\n },\n // Opacity\n opacity: function (value) {\n return this.attr('opacity', value);\n }\n});\nregisterMethods('radius', {\n // Add x and y radius\n radius: function (x, y = x) {\n const type = (this._element || this).type;\n return type === 'radialGradient' ? this.attr('r', new SVGNumber(x)) : this.rx(x).ry(y);\n }\n});\nregisterMethods('Path', {\n // Get path length\n length: function () {\n return this.node.getTotalLength();\n },\n // Get point at length\n pointAt: function (length) {\n return new Point(this.node.getPointAtLength(length));\n }\n});\nregisterMethods(['Element', 'Runner'], {\n // Set font\n font: function (a, v) {\n if (typeof a === 'object') {\n for (v in a) this.font(v, a[v]);\n return this;\n }\n return a === 'leading' ? this.leading(v) : a === 'anchor' ? this.attr('text-anchor', v) : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style' ? this.attr('font-' + a, v) : this.attr(a, v);\n }\n});\n\n// Add events to elements\nconst methods = ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseover', 'mouseout', 'mousemove', 'mouseenter', 'mouseleave', 'touchstart', 'touchmove', 'touchleave', 'touchend', 'touchcancel', 'contextmenu', 'wheel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel'].reduce(function (last, event) {\n // add event to Element\n const fn = function (f) {\n if (f === null) {\n this.off(event);\n } else {\n this.on(event, f);\n }\n return this;\n };\n last[event] = fn;\n return last;\n}, {});\nregisterMethods('Element', methods);\n\n// Reset all transformations\nfunction untransform() {\n return this.attr('transform', null);\n}\n\n// merge the whole transformation chain into one matrix and returns it\nfunction matrixify() {\n const matrix = (this.attr('transform') || ''\n // split transformations\n ).split(transforms).slice(0, -1).map(function (str) {\n // generate key => value pairs\n const kv = str.trim().split('(');\n return [kv[0], kv[1].split(delimiter).map(function (str) {\n return parseFloat(str);\n })];\n }).reverse()\n // merge every transformation into one matrix\n .reduce(function (matrix, transform) {\n if (transform[0] === 'matrix') {\n return matrix.lmultiply(Matrix.fromArray(transform[1]));\n }\n return matrix[transform[0]].apply(matrix, transform[1]);\n }, new Matrix());\n return matrix;\n}\n\n// add an element to another parent without changing the visual representation on the screen\nfunction toParent(parent, i) {\n if (this === parent) return this;\n if (isDescriptive(this.node)) return this.addTo(parent, i);\n const ctm = this.screenCTM();\n const pCtm = parent.screenCTM().inverse();\n this.addTo(parent, i).untransform().transform(pCtm.multiply(ctm));\n return this;\n}\n\n// same as above with parent equals root-svg\nfunction toRoot(i) {\n return this.toParent(this.root(), i);\n}\n\n// Add transformations\nfunction transform(o, relative) {\n // Act as a getter if no object was passed\n if (o == null || typeof o === 'string') {\n const decomposed = new Matrix(this).decompose();\n return o == null ? decomposed : decomposed[o];\n }\n if (!Matrix.isMatrixLike(o)) {\n // Set the origin according to the defined transform\n o = {\n ...o,\n origin: getOrigin(o, this)\n };\n }\n\n // The user can pass a boolean, an Element or an Matrix or nothing\n const cleanRelative = relative === true ? this : relative || false;\n const result = new Matrix(cleanRelative).transform(o);\n return this.attr('transform', result);\n}\nregisterMethods('Element', {\n untransform,\n matrixify,\n toParent,\n toRoot,\n transform\n});\n\nclass Container extends Element {\n flatten() {\n this.each(function () {\n if (this instanceof Container) {\n return this.flatten().ungroup();\n }\n });\n return this;\n }\n ungroup(parent = this.parent(), index = parent.index(this)) {\n // when parent != this, we want append all elements to the end\n index = index === -1 ? parent.children().length : index;\n this.each(function (i, children) {\n // reverse each\n return children[children.length - i - 1].toParent(parent, index);\n });\n return this.remove();\n }\n}\nregister(Container, 'Container');\n\nclass Defs extends Container {\n constructor(node, attrs = node) {\n super(nodeOrNew('defs', node), attrs);\n }\n flatten() {\n return this;\n }\n ungroup() {\n return this;\n }\n}\nregister(Defs, 'Defs');\n\nclass Shape extends Element {}\nregister(Shape, 'Shape');\n\n// Radius x value\nfunction rx(rx) {\n return this.attr('rx', rx);\n}\n\n// Radius y value\nfunction ry(ry) {\n return this.attr('ry', ry);\n}\n\n// Move over x-axis\nfunction x$3(x) {\n return x == null ? this.cx() - this.rx() : this.cx(x + this.rx());\n}\n\n// Move over y-axis\nfunction y$3(y) {\n return y == null ? this.cy() - this.ry() : this.cy(y + this.ry());\n}\n\n// Move by center over x-axis\nfunction cx$1(x) {\n return this.attr('cx', x);\n}\n\n// Move by center over y-axis\nfunction cy$1(y) {\n return this.attr('cy', y);\n}\n\n// Set width of element\nfunction width$2(width) {\n return width == null ? this.rx() * 2 : this.rx(new SVGNumber(width).divide(2));\n}\n\n// Set height of element\nfunction height$2(height) {\n return height == null ? this.ry() * 2 : this.ry(new SVGNumber(height).divide(2));\n}\n\nvar circled = {\n __proto__: null,\n cx: cx$1,\n cy: cy$1,\n height: height$2,\n rx: rx,\n ry: ry,\n width: width$2,\n x: x$3,\n y: y$3\n};\n\nclass Ellipse extends Shape {\n constructor(node, attrs = node) {\n super(nodeOrNew('ellipse', node), attrs);\n }\n size(width, height) {\n const p = proportionalSize(this, width, height);\n return this.rx(new SVGNumber(p.width).divide(2)).ry(new SVGNumber(p.height).divide(2));\n }\n}\nextend(Ellipse, circled);\nregisterMethods('Container', {\n // Create an ellipse\n ellipse: wrapWithAttrCheck(function (width = 0, height = width) {\n return this.put(new Ellipse()).size(width, height).move(0, 0);\n })\n});\nregister(Ellipse, 'Ellipse');\n\nclass Fragment extends Dom {\n constructor(node = globals.document.createDocumentFragment()) {\n super(node);\n }\n\n // Import / Export raw xml\n xml(xmlOrFn, outerXML, ns) {\n if (typeof xmlOrFn === 'boolean') {\n ns = outerXML;\n outerXML = xmlOrFn;\n xmlOrFn = null;\n }\n\n // because this is a fragment we have to put all elements into a wrapper first\n // before we can get the innerXML from it\n if (xmlOrFn == null || typeof xmlOrFn === 'function') {\n const wrapper = new Dom(create('wrapper', ns));\n wrapper.add(this.node.cloneNode(true));\n return wrapper.xml(false, ns);\n }\n\n // Act as setter if we got a string\n return super.xml(xmlOrFn, false, ns);\n }\n}\nregister(Fragment, 'Fragment');\n\nfunction from(x, y) {\n return (this._element || this).type === 'radialGradient' ? this.attr({\n fx: new SVGNumber(x),\n fy: new SVGNumber(y)\n }) : this.attr({\n x1: new SVGNumber(x),\n y1: new SVGNumber(y)\n });\n}\nfunction to(x, y) {\n return (this._element || this).type === 'radialGradient' ? this.attr({\n cx: new SVGNumber(x),\n cy: new SVGNumber(y)\n }) : this.attr({\n x2: new SVGNumber(x),\n y2: new SVGNumber(y)\n });\n}\n\nvar gradiented = {\n __proto__: null,\n from: from,\n to: to\n};\n\nclass Gradient extends Container {\n constructor(type, attrs) {\n super(nodeOrNew(type + 'Gradient', typeof type === 'string' ? null : type), attrs);\n }\n\n // custom attr to handle transform\n attr(a, b, c) {\n if (a === 'transform') a = 'gradientTransform';\n return super.attr(a, b, c);\n }\n bbox() {\n return new Box();\n }\n targets() {\n return baseFind('svg [fill*=' + this.id() + ']');\n }\n\n // Alias string conversion to fill\n toString() {\n return this.url();\n }\n\n // Update gradient\n update(block) {\n // remove all stops\n this.clear();\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this);\n }\n return this;\n }\n\n // Return the fill id\n url() {\n return 'url(#' + this.id() + ')';\n }\n}\nextend(Gradient, gradiented);\nregisterMethods({\n Container: {\n // Create gradient element in defs\n gradient(...args) {\n return this.defs().gradient(...args);\n }\n },\n // define gradient\n Defs: {\n gradient: wrapWithAttrCheck(function (type, block) {\n return this.put(new Gradient(type)).update(block);\n })\n }\n});\nregister(Gradient, 'Gradient');\n\nclass Pattern extends Container {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('pattern', node), attrs);\n }\n\n // custom attr to handle transform\n attr(a, b, c) {\n if (a === 'transform') a = 'patternTransform';\n return super.attr(a, b, c);\n }\n bbox() {\n return new Box();\n }\n targets() {\n return baseFind('svg [fill*=' + this.id() + ']');\n }\n\n // Alias string conversion to fill\n toString() {\n return this.url();\n }\n\n // Update pattern by rebuilding\n update(block) {\n // remove content\n this.clear();\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this);\n }\n return this;\n }\n\n // Return the fill id\n url() {\n return 'url(#' + this.id() + ')';\n }\n}\nregisterMethods({\n Container: {\n // Create pattern element in defs\n pattern(...args) {\n return this.defs().pattern(...args);\n }\n },\n Defs: {\n pattern: wrapWithAttrCheck(function (width, height, block) {\n return this.put(new Pattern()).update(block).attr({\n x: 0,\n y: 0,\n width: width,\n height: height,\n patternUnits: 'userSpaceOnUse'\n });\n })\n }\n});\nregister(Pattern, 'Pattern');\n\nclass Image extends Shape {\n constructor(node, attrs = node) {\n super(nodeOrNew('image', node), attrs);\n }\n\n // (re)load image\n load(url, callback) {\n if (!url) return this;\n const img = new globals.window.Image();\n on(img, 'load', function (e) {\n const p = this.parent(Pattern);\n\n // ensure image size\n if (this.width() === 0 && this.height() === 0) {\n this.size(img.width, img.height);\n }\n if (p instanceof Pattern) {\n // ensure pattern size if not set\n if (p.width() === 0 && p.height() === 0) {\n p.size(this.width(), this.height());\n }\n }\n if (typeof callback === 'function') {\n callback.call(this, e);\n }\n }, this);\n on(img, 'load error', function () {\n // dont forget to unbind memory leaking events\n off(img);\n });\n return this.attr('href', img.src = url, xlink);\n }\n}\nregisterAttrHook(function (attr, val, _this) {\n // convert image fill and stroke to patterns\n if (attr === 'fill' || attr === 'stroke') {\n if (isImage.test(val)) {\n val = _this.root().defs().image(val);\n }\n }\n if (val instanceof Image) {\n val = _this.root().defs().pattern(0, 0, pattern => {\n pattern.add(val);\n });\n }\n return val;\n});\nregisterMethods({\n Container: {\n // create image element, load image and set its size\n image: wrapWithAttrCheck(function (source, callback) {\n return this.put(new Image()).size(0, 0).load(source, callback);\n })\n }\n});\nregister(Image, 'Image');\n\nclass PointArray extends SVGArray {\n // Get bounding box of points\n bbox() {\n let maxX = -Infinity;\n let maxY = -Infinity;\n let minX = Infinity;\n let minY = Infinity;\n this.forEach(function (el) {\n maxX = Math.max(el[0], maxX);\n maxY = Math.max(el[1], maxY);\n minX = Math.min(el[0], minX);\n minY = Math.min(el[1], minY);\n });\n return new Box(minX, minY, maxX - minX, maxY - minY);\n }\n\n // Move point string\n move(x, y) {\n const box = this.bbox();\n\n // get relative offset\n x -= box.x;\n y -= box.y;\n\n // move every point\n if (!isNaN(x) && !isNaN(y)) {\n for (let i = this.length - 1; i >= 0; i--) {\n this[i] = [this[i][0] + x, this[i][1] + y];\n }\n }\n return this;\n }\n\n // Parse point string and flat array\n parse(array = [0, 0]) {\n const points = [];\n\n // if it is an array, we flatten it and therefore clone it to 1 depths\n if (array instanceof Array) {\n array = Array.prototype.concat.apply([], array);\n } else {\n // Else, it is considered as a string\n // parse points\n array = array.trim().split(delimiter).map(parseFloat);\n }\n\n // validate points - https://svgwg.org/svg2-draft/shapes.html#DataTypePoints\n // Odd number of coordinates is an error. In such cases, drop the last odd coordinate.\n if (array.length % 2 !== 0) array.pop();\n\n // wrap points in two-tuples\n for (let i = 0, len = array.length; i < len; i = i + 2) {\n points.push([array[i], array[i + 1]]);\n }\n return points;\n }\n\n // Resize poly string\n size(width, height) {\n let i;\n const box = this.bbox();\n\n // recalculate position of all points according to new size\n for (i = this.length - 1; i >= 0; i--) {\n if (box.width) this[i][0] = (this[i][0] - box.x) * width / box.width + box.x;\n if (box.height) this[i][1] = (this[i][1] - box.y) * height / box.height + box.y;\n }\n return this;\n }\n\n // Convert array to line object\n toLine() {\n return {\n x1: this[0][0],\n y1: this[0][1],\n x2: this[1][0],\n y2: this[1][1]\n };\n }\n\n // Convert array to string\n toString() {\n const array = [];\n // convert to a poly point string\n for (let i = 0, il = this.length; i < il; i++) {\n array.push(this[i].join(','));\n }\n return array.join(' ');\n }\n transform(m) {\n return this.clone().transformO(m);\n }\n\n // transform points with matrix (similar to Point.transform)\n transformO(m) {\n if (!Matrix.isMatrixLike(m)) {\n m = new Matrix(m);\n }\n for (let i = this.length; i--;) {\n // Perform the matrix multiplication\n const [x, y] = this[i];\n this[i][0] = m.a * x + m.c * y + m.e;\n this[i][1] = m.b * x + m.d * y + m.f;\n }\n return this;\n }\n}\n\nconst MorphArray = PointArray;\n\n// Move by left top corner over x-axis\nfunction x$2(x) {\n return x == null ? this.bbox().x : this.move(x, this.bbox().y);\n}\n\n// Move by left top corner over y-axis\nfunction y$2(y) {\n return y == null ? this.bbox().y : this.move(this.bbox().x, y);\n}\n\n// Set width of element\nfunction width$1(width) {\n const b = this.bbox();\n return width == null ? b.width : this.size(width, b.height);\n}\n\n// Set height of element\nfunction height$1(height) {\n const b = this.bbox();\n return height == null ? b.height : this.size(b.width, height);\n}\n\nvar pointed = {\n __proto__: null,\n MorphArray: MorphArray,\n height: height$1,\n width: width$1,\n x: x$2,\n y: y$2\n};\n\nclass Line extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('line', node), attrs);\n }\n\n // Get array\n array() {\n return new PointArray([[this.attr('x1'), this.attr('y1')], [this.attr('x2'), this.attr('y2')]]);\n }\n\n // Move by left top corner\n move(x, y) {\n return this.attr(this.array().move(x, y).toLine());\n }\n\n // Overwrite native plot() method\n plot(x1, y1, x2, y2) {\n if (x1 == null) {\n return this.array();\n } else if (typeof y1 !== 'undefined') {\n x1 = {\n x1,\n y1,\n x2,\n y2\n };\n } else {\n x1 = new PointArray(x1).toLine();\n }\n return this.attr(x1);\n }\n\n // Set element size to given width and height\n size(width, height) {\n const p = proportionalSize(this, width, height);\n return this.attr(this.array().size(p.width, p.height).toLine());\n }\n}\nextend(Line, pointed);\nregisterMethods({\n Container: {\n // Create a line element\n line: wrapWithAttrCheck(function (...args) {\n // make sure plot is called as a setter\n // x1 is not necessarily a number, it can also be an array, a string and a PointArray\n return Line.prototype.plot.apply(this.put(new Line()), args[0] != null ? args : [0, 0, 0, 0]);\n })\n }\n});\nregister(Line, 'Line');\n\nclass Marker extends Container {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('marker', node), attrs);\n }\n\n // Set height of element\n height(height) {\n return this.attr('markerHeight', height);\n }\n orient(orient) {\n return this.attr('orient', orient);\n }\n\n // Set marker refX and refY\n ref(x, y) {\n return this.attr('refX', x).attr('refY', y);\n }\n\n // Return the fill id\n toString() {\n return 'url(#' + this.id() + ')';\n }\n\n // Update marker\n update(block) {\n // remove all content\n this.clear();\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this);\n }\n return this;\n }\n\n // Set width of element\n width(width) {\n return this.attr('markerWidth', width);\n }\n}\nregisterMethods({\n Container: {\n marker(...args) {\n // Create marker element in defs\n return this.defs().marker(...args);\n }\n },\n Defs: {\n // Create marker\n marker: wrapWithAttrCheck(function (width, height, block) {\n // Set default viewbox to match the width and height, set ref to cx and cy and set orient to auto\n return this.put(new Marker()).size(width, height).ref(width / 2, height / 2).viewbox(0, 0, width, height).attr('orient', 'auto').update(block);\n })\n },\n marker: {\n // Create and attach markers\n marker(marker, width, height, block) {\n let attr = ['marker'];\n\n // Build attribute name\n if (marker !== 'all') attr.push(marker);\n attr = attr.join('-');\n\n // Set marker attribute\n marker = arguments[1] instanceof Marker ? arguments[1] : this.defs().marker(width, height, block);\n return this.attr(attr, marker);\n }\n }\n});\nregister(Marker, 'Marker');\n\n/***\nBase Class\n==========\nThe base stepper class that will be\n***/\n\nfunction makeSetterGetter(k, f) {\n return function (v) {\n if (v == null) return this[k];\n this[k] = v;\n if (f) f.call(this);\n return this;\n };\n}\nconst easing = {\n '-': function (pos) {\n return pos;\n },\n '<>': function (pos) {\n return -Math.cos(pos * Math.PI) / 2 + 0.5;\n },\n '>': function (pos) {\n return Math.sin(pos * Math.PI / 2);\n },\n '<': function (pos) {\n return -Math.cos(pos * Math.PI / 2) + 1;\n },\n bezier: function (x1, y1, x2, y2) {\n // see https://www.w3.org/TR/css-easing-1/#cubic-bezier-algo\n return function (t) {\n if (t < 0) {\n if (x1 > 0) {\n return y1 / x1 * t;\n } else if (x2 > 0) {\n return y2 / x2 * t;\n } else {\n return 0;\n }\n } else if (t > 1) {\n if (x2 < 1) {\n return (1 - y2) / (1 - x2) * t + (y2 - x2) / (1 - x2);\n } else if (x1 < 1) {\n return (1 - y1) / (1 - x1) * t + (y1 - x1) / (1 - x1);\n } else {\n return 1;\n }\n } else {\n return 3 * t * (1 - t) ** 2 * y1 + 3 * t ** 2 * (1 - t) * y2 + t ** 3;\n }\n };\n },\n // see https://www.w3.org/TR/css-easing-1/#step-timing-function-algo\n steps: function (steps, stepPosition = 'end') {\n // deal with \"jump-\" prefix\n stepPosition = stepPosition.split('-').reverse()[0];\n let jumps = steps;\n if (stepPosition === 'none') {\n --jumps;\n } else if (stepPosition === 'both') {\n ++jumps;\n }\n\n // The beforeFlag is essentially useless\n return (t, beforeFlag = false) => {\n // Step is called currentStep in referenced url\n let step = Math.floor(t * steps);\n const jumping = t * step % 1 === 0;\n if (stepPosition === 'start' || stepPosition === 'both') {\n ++step;\n }\n if (beforeFlag && jumping) {\n --step;\n }\n if (t >= 0 && step < 0) {\n step = 0;\n }\n if (t <= 1 && step > jumps) {\n step = jumps;\n }\n return step / jumps;\n };\n }\n};\nclass Stepper {\n done() {\n return false;\n }\n}\n\n/***\nEasing Functions\n================\n***/\n\nclass Ease extends Stepper {\n constructor(fn = timeline.ease) {\n super();\n this.ease = easing[fn] || fn;\n }\n step(from, to, pos) {\n if (typeof from !== 'number') {\n return pos < 1 ? from : to;\n }\n return from + (to - from) * this.ease(pos);\n }\n}\n\n/***\nController Types\n================\n***/\n\nclass Controller extends Stepper {\n constructor(fn) {\n super();\n this.stepper = fn;\n }\n done(c) {\n return c.done;\n }\n step(current, target, dt, c) {\n return this.stepper(current, target, dt, c);\n }\n}\nfunction recalculate() {\n // Apply the default parameters\n const duration = (this._duration || 500) / 1000;\n const overshoot = this._overshoot || 0;\n\n // Calculate the PID natural response\n const eps = 1e-10;\n const pi = Math.PI;\n const os = Math.log(overshoot / 100 + eps);\n const zeta = -os / Math.sqrt(pi * pi + os * os);\n const wn = 3.9 / (zeta * duration);\n\n // Calculate the Spring values\n this.d = 2 * zeta * wn;\n this.k = wn * wn;\n}\nclass Spring extends Controller {\n constructor(duration = 500, overshoot = 0) {\n super();\n this.duration(duration).overshoot(overshoot);\n }\n step(current, target, dt, c) {\n if (typeof current === 'string') return current;\n c.done = dt === Infinity;\n if (dt === Infinity) return target;\n if (dt === 0) return current;\n if (dt > 100) dt = 16;\n dt /= 1000;\n\n // Get the previous velocity\n const velocity = c.velocity || 0;\n\n // Apply the control to get the new position and store it\n const acceleration = -this.d * velocity - this.k * (current - target);\n const newPosition = current + velocity * dt + acceleration * dt * dt / 2;\n\n // Store the velocity\n c.velocity = velocity + acceleration * dt;\n\n // Figure out if we have converged, and if so, pass the value\n c.done = Math.abs(target - newPosition) + Math.abs(velocity) < 0.002;\n return c.done ? target : newPosition;\n }\n}\nextend(Spring, {\n duration: makeSetterGetter('_duration', recalculate),\n overshoot: makeSetterGetter('_overshoot', recalculate)\n});\nclass PID extends Controller {\n constructor(p = 0.1, i = 0.01, d = 0, windup = 1000) {\n super();\n this.p(p).i(i).d(d).windup(windup);\n }\n step(current, target, dt, c) {\n if (typeof current === 'string') return current;\n c.done = dt === Infinity;\n if (dt === Infinity) return target;\n if (dt === 0) return current;\n const p = target - current;\n let i = (c.integral || 0) + p * dt;\n const d = (p - (c.error || 0)) / dt;\n const windup = this._windup;\n\n // antiwindup\n if (windup !== false) {\n i = Math.max(-windup, Math.min(i, windup));\n }\n c.error = p;\n c.integral = i;\n c.done = Math.abs(p) < 0.001;\n return c.done ? target : current + (this.P * p + this.I * i + this.D * d);\n }\n}\nextend(PID, {\n windup: makeSetterGetter('_windup'),\n p: makeSetterGetter('P'),\n i: makeSetterGetter('I'),\n d: makeSetterGetter('D')\n});\n\nconst segmentParameters = {\n M: 2,\n L: 2,\n H: 1,\n V: 1,\n C: 6,\n S: 4,\n Q: 4,\n T: 2,\n A: 7,\n Z: 0\n};\nconst pathHandlers = {\n M: function (c, p, p0) {\n p.x = p0.x = c[0];\n p.y = p0.y = c[1];\n return ['M', p.x, p.y];\n },\n L: function (c, p) {\n p.x = c[0];\n p.y = c[1];\n return ['L', c[0], c[1]];\n },\n H: function (c, p) {\n p.x = c[0];\n return ['H', c[0]];\n },\n V: function (c, p) {\n p.y = c[0];\n return ['V', c[0]];\n },\n C: function (c, p) {\n p.x = c[4];\n p.y = c[5];\n return ['C', c[0], c[1], c[2], c[3], c[4], c[5]];\n },\n S: function (c, p) {\n p.x = c[2];\n p.y = c[3];\n return ['S', c[0], c[1], c[2], c[3]];\n },\n Q: function (c, p) {\n p.x = c[2];\n p.y = c[3];\n return ['Q', c[0], c[1], c[2], c[3]];\n },\n T: function (c, p) {\n p.x = c[0];\n p.y = c[1];\n return ['T', c[0], c[1]];\n },\n Z: function (c, p, p0) {\n p.x = p0.x;\n p.y = p0.y;\n return ['Z'];\n },\n A: function (c, p) {\n p.x = c[5];\n p.y = c[6];\n return ['A', c[0], c[1], c[2], c[3], c[4], c[5], c[6]];\n }\n};\nconst mlhvqtcsaz = 'mlhvqtcsaz'.split('');\nfor (let i = 0, il = mlhvqtcsaz.length; i < il; ++i) {\n pathHandlers[mlhvqtcsaz[i]] = function (i) {\n return function (c, p, p0) {\n if (i === 'H') c[0] = c[0] + p.x;else if (i === 'V') c[0] = c[0] + p.y;else if (i === 'A') {\n c[5] = c[5] + p.x;\n c[6] = c[6] + p.y;\n } else {\n for (let j = 0, jl = c.length; j < jl; ++j) {\n c[j] = c[j] + (j % 2 ? p.y : p.x);\n }\n }\n return pathHandlers[i](c, p, p0);\n };\n }(mlhvqtcsaz[i].toUpperCase());\n}\nfunction makeAbsolut(parser) {\n const command = parser.segment[0];\n return pathHandlers[command](parser.segment.slice(1), parser.p, parser.p0);\n}\nfunction segmentComplete(parser) {\n return parser.segment.length && parser.segment.length - 1 === segmentParameters[parser.segment[0].toUpperCase()];\n}\nfunction startNewSegment(parser, token) {\n parser.inNumber && finalizeNumber(parser, false);\n const pathLetter = isPathLetter.test(token);\n if (pathLetter) {\n parser.segment = [token];\n } else {\n const lastCommand = parser.lastCommand;\n const small = lastCommand.toLowerCase();\n const isSmall = lastCommand === small;\n parser.segment = [small === 'm' ? isSmall ? 'l' : 'L' : lastCommand];\n }\n parser.inSegment = true;\n parser.lastCommand = parser.segment[0];\n return pathLetter;\n}\nfunction finalizeNumber(parser, inNumber) {\n if (!parser.inNumber) throw new Error('Parser Error');\n parser.number && parser.segment.push(parseFloat(parser.number));\n parser.inNumber = inNumber;\n parser.number = '';\n parser.pointSeen = false;\n parser.hasExponent = false;\n if (segmentComplete(parser)) {\n finalizeSegment(parser);\n }\n}\nfunction finalizeSegment(parser) {\n parser.inSegment = false;\n if (parser.absolute) {\n parser.segment = makeAbsolut(parser);\n }\n parser.segments.push(parser.segment);\n}\nfunction isArcFlag(parser) {\n if (!parser.segment.length) return false;\n const isArc = parser.segment[0].toUpperCase() === 'A';\n const length = parser.segment.length;\n return isArc && (length === 4 || length === 5);\n}\nfunction isExponential(parser) {\n return parser.lastToken.toUpperCase() === 'E';\n}\nconst pathDelimiters = new Set([' ', ',', '\\t', '\\n', '\\r', '\\f']);\nfunction pathParser(d, toAbsolute = true) {\n let index = 0;\n let token = '';\n const parser = {\n segment: [],\n inNumber: false,\n number: '',\n lastToken: '',\n inSegment: false,\n segments: [],\n pointSeen: false,\n hasExponent: false,\n absolute: toAbsolute,\n p0: new Point(),\n p: new Point()\n };\n while (parser.lastToken = token, token = d.charAt(index++)) {\n if (!parser.inSegment) {\n if (startNewSegment(parser, token)) {\n continue;\n }\n }\n if (token === '.') {\n if (parser.pointSeen || parser.hasExponent) {\n finalizeNumber(parser, false);\n --index;\n continue;\n }\n parser.inNumber = true;\n parser.pointSeen = true;\n parser.number += token;\n continue;\n }\n if (!isNaN(parseInt(token))) {\n if (parser.number === '0' || isArcFlag(parser)) {\n parser.inNumber = true;\n parser.number = token;\n finalizeNumber(parser, true);\n continue;\n }\n parser.inNumber = true;\n parser.number += token;\n continue;\n }\n if (pathDelimiters.has(token)) {\n if (parser.inNumber) {\n finalizeNumber(parser, false);\n }\n continue;\n }\n if (token === '-' || token === '+') {\n if (parser.inNumber && !isExponential(parser)) {\n finalizeNumber(parser, false);\n --index;\n continue;\n }\n parser.number += token;\n parser.inNumber = true;\n continue;\n }\n if (token.toUpperCase() === 'E') {\n parser.number += token;\n parser.hasExponent = true;\n continue;\n }\n if (isPathLetter.test(token)) {\n if (parser.inNumber) {\n finalizeNumber(parser, false);\n } else if (!segmentComplete(parser)) {\n throw new Error('parser Error');\n } else {\n finalizeSegment(parser);\n }\n --index;\n }\n }\n if (parser.inNumber) {\n finalizeNumber(parser, false);\n }\n if (parser.inSegment && segmentComplete(parser)) {\n finalizeSegment(parser);\n }\n return parser.segments;\n}\n\nfunction arrayToString(a) {\n let s = '';\n for (let i = 0, il = a.length; i < il; i++) {\n s += a[i][0];\n if (a[i][1] != null) {\n s += a[i][1];\n if (a[i][2] != null) {\n s += ' ';\n s += a[i][2];\n if (a[i][3] != null) {\n s += ' ';\n s += a[i][3];\n s += ' ';\n s += a[i][4];\n if (a[i][5] != null) {\n s += ' ';\n s += a[i][5];\n s += ' ';\n s += a[i][6];\n if (a[i][7] != null) {\n s += ' ';\n s += a[i][7];\n }\n }\n }\n }\n }\n }\n return s + ' ';\n}\nclass PathArray extends SVGArray {\n // Get bounding box of path\n bbox() {\n parser().path.setAttribute('d', this.toString());\n return new Box(parser.nodes.path.getBBox());\n }\n\n // Move path string\n move(x, y) {\n // get bounding box of current situation\n const box = this.bbox();\n\n // get relative offset\n x -= box.x;\n y -= box.y;\n if (!isNaN(x) && !isNaN(y)) {\n // move every point\n for (let l, i = this.length - 1; i >= 0; i--) {\n l = this[i][0];\n if (l === 'M' || l === 'L' || l === 'T') {\n this[i][1] += x;\n this[i][2] += y;\n } else if (l === 'H') {\n this[i][1] += x;\n } else if (l === 'V') {\n this[i][1] += y;\n } else if (l === 'C' || l === 'S' || l === 'Q') {\n this[i][1] += x;\n this[i][2] += y;\n this[i][3] += x;\n this[i][4] += y;\n if (l === 'C') {\n this[i][5] += x;\n this[i][6] += y;\n }\n } else if (l === 'A') {\n this[i][6] += x;\n this[i][7] += y;\n }\n }\n }\n return this;\n }\n\n // Absolutize and parse path to array\n parse(d = 'M0 0') {\n if (Array.isArray(d)) {\n d = Array.prototype.concat.apply([], d).toString();\n }\n return pathParser(d);\n }\n\n // Resize path string\n size(width, height) {\n // get bounding box of current situation\n const box = this.bbox();\n let i, l;\n\n // If the box width or height is 0 then we ignore\n // transformations on the respective axis\n box.width = box.width === 0 ? 1 : box.width;\n box.height = box.height === 0 ? 1 : box.height;\n\n // recalculate position of all points according to new size\n for (i = this.length - 1; i >= 0; i--) {\n l = this[i][0];\n if (l === 'M' || l === 'L' || l === 'T') {\n this[i][1] = (this[i][1] - box.x) * width / box.width + box.x;\n this[i][2] = (this[i][2] - box.y) * height / box.height + box.y;\n } else if (l === 'H') {\n this[i][1] = (this[i][1] - box.x) * width / box.width + box.x;\n } else if (l === 'V') {\n this[i][1] = (this[i][1] - box.y) * height / box.height + box.y;\n } else if (l === 'C' || l === 'S' || l === 'Q') {\n this[i][1] = (this[i][1] - box.x) * width / box.width + box.x;\n this[i][2] = (this[i][2] - box.y) * height / box.height + box.y;\n this[i][3] = (this[i][3] - box.x) * width / box.width + box.x;\n this[i][4] = (this[i][4] - box.y) * height / box.height + box.y;\n if (l === 'C') {\n this[i][5] = (this[i][5] - box.x) * width / box.width + box.x;\n this[i][6] = (this[i][6] - box.y) * height / box.height + box.y;\n }\n } else if (l === 'A') {\n // resize radii\n this[i][1] = this[i][1] * width / box.width;\n this[i][2] = this[i][2] * height / box.height;\n\n // move position values\n this[i][6] = (this[i][6] - box.x) * width / box.width + box.x;\n this[i][7] = (this[i][7] - box.y) * height / box.height + box.y;\n }\n }\n return this;\n }\n\n // Convert array to string\n toString() {\n return arrayToString(this);\n }\n}\n\nconst getClassForType = value => {\n const type = typeof value;\n if (type === 'number') {\n return SVGNumber;\n } else if (type === 'string') {\n if (Color.isColor(value)) {\n return Color;\n } else if (delimiter.test(value)) {\n return isPathLetter.test(value) ? PathArray : SVGArray;\n } else if (numberAndUnit.test(value)) {\n return SVGNumber;\n } else {\n return NonMorphable;\n }\n } else if (morphableTypes.indexOf(value.constructor) > -1) {\n return value.constructor;\n } else if (Array.isArray(value)) {\n return SVGArray;\n } else if (type === 'object') {\n return ObjectBag;\n } else {\n return NonMorphable;\n }\n};\nclass Morphable {\n constructor(stepper) {\n this._stepper = stepper || new Ease('-');\n this._from = null;\n this._to = null;\n this._type = null;\n this._context = null;\n this._morphObj = null;\n }\n at(pos) {\n return this._morphObj.morph(this._from, this._to, pos, this._stepper, this._context);\n }\n done() {\n const complete = this._context.map(this._stepper.done).reduce(function (last, curr) {\n return last && curr;\n }, true);\n return complete;\n }\n from(val) {\n if (val == null) {\n return this._from;\n }\n this._from = this._set(val);\n return this;\n }\n stepper(stepper) {\n if (stepper == null) return this._stepper;\n this._stepper = stepper;\n return this;\n }\n to(val) {\n if (val == null) {\n return this._to;\n }\n this._to = this._set(val);\n return this;\n }\n type(type) {\n // getter\n if (type == null) {\n return this._type;\n }\n\n // setter\n this._type = type;\n return this;\n }\n _set(value) {\n if (!this._type) {\n this.type(getClassForType(value));\n }\n let result = new this._type(value);\n if (this._type === Color) {\n result = this._to ? result[this._to[4]]() : this._from ? result[this._from[4]]() : result;\n }\n if (this._type === ObjectBag) {\n result = this._to ? result.align(this._to) : this._from ? result.align(this._from) : result;\n }\n result = result.toConsumable();\n this._morphObj = this._morphObj || new this._type();\n this._context = this._context || Array.apply(null, Array(result.length)).map(Object).map(function (o) {\n o.done = true;\n return o;\n });\n return result;\n }\n}\nclass NonMorphable {\n constructor(...args) {\n this.init(...args);\n }\n init(val) {\n val = Array.isArray(val) ? val[0] : val;\n this.value = val;\n return this;\n }\n toArray() {\n return [this.value];\n }\n valueOf() {\n return this.value;\n }\n}\nclass TransformBag {\n constructor(...args) {\n this.init(...args);\n }\n init(obj) {\n if (Array.isArray(obj)) {\n obj = {\n scaleX: obj[0],\n scaleY: obj[1],\n shear: obj[2],\n rotate: obj[3],\n translateX: obj[4],\n translateY: obj[5],\n originX: obj[6],\n originY: obj[7]\n };\n }\n Object.assign(this, TransformBag.defaults, obj);\n return this;\n }\n toArray() {\n const v = this;\n return [v.scaleX, v.scaleY, v.shear, v.rotate, v.translateX, v.translateY, v.originX, v.originY];\n }\n}\nTransformBag.defaults = {\n scaleX: 1,\n scaleY: 1,\n shear: 0,\n rotate: 0,\n translateX: 0,\n translateY: 0,\n originX: 0,\n originY: 0\n};\nconst sortByKey = (a, b) => {\n return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0;\n};\nclass ObjectBag {\n constructor(...args) {\n this.init(...args);\n }\n align(other) {\n const values = this.values;\n for (let i = 0, il = values.length; i < il; ++i) {\n // If the type is the same we only need to check if the color is in the correct format\n if (values[i + 1] === other[i + 1]) {\n if (values[i + 1] === Color && other[i + 7] !== values[i + 7]) {\n const space = other[i + 7];\n const color = new Color(this.values.splice(i + 3, 5))[space]().toArray();\n this.values.splice(i + 3, 0, ...color);\n }\n i += values[i + 2] + 2;\n continue;\n }\n if (!other[i + 1]) {\n return this;\n }\n\n // The types differ, so we overwrite the new type with the old one\n // And initialize it with the types default (e.g. black for color or 0 for number)\n const defaultObject = new other[i + 1]().toArray();\n\n // Than we fix the values array\n const toDelete = values[i + 2] + 3;\n values.splice(i, toDelete, other[i], other[i + 1], other[i + 2], ...defaultObject);\n i += values[i + 2] + 2;\n }\n return this;\n }\n init(objOrArr) {\n this.values = [];\n if (Array.isArray(objOrArr)) {\n this.values = objOrArr.slice();\n return;\n }\n objOrArr = objOrArr || {};\n const entries = [];\n for (const i in objOrArr) {\n const Type = getClassForType(objOrArr[i]);\n const val = new Type(objOrArr[i]).toArray();\n entries.push([i, Type, val.length, ...val]);\n }\n entries.sort(sortByKey);\n this.values = entries.reduce((last, curr) => last.concat(curr), []);\n return this;\n }\n toArray() {\n return this.values;\n }\n valueOf() {\n const obj = {};\n const arr = this.values;\n\n // for (var i = 0, len = arr.length; i < len; i += 2) {\n while (arr.length) {\n const key = arr.shift();\n const Type = arr.shift();\n const num = arr.shift();\n const values = arr.splice(0, num);\n obj[key] = new Type(values); // .valueOf()\n }\n return obj;\n }\n}\nconst morphableTypes = [NonMorphable, TransformBag, ObjectBag];\nfunction registerMorphableType(type = []) {\n morphableTypes.push(...[].concat(type));\n}\nfunction makeMorphable() {\n extend(morphableTypes, {\n to(val) {\n return new Morphable().type(this.constructor).from(this.toArray()) // this.valueOf())\n .to(val);\n },\n fromArray(arr) {\n this.init(arr);\n return this;\n },\n toConsumable() {\n return this.toArray();\n },\n morph(from, to, pos, stepper, context) {\n const mapper = function (i, index) {\n return stepper.step(i, to[index], pos, context[index], context);\n };\n return this.fromArray(from.map(mapper));\n }\n });\n}\n\nclass Path extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('path', node), attrs);\n }\n\n // Get array\n array() {\n return this._array || (this._array = new PathArray(this.attr('d')));\n }\n\n // Clear array cache\n clear() {\n delete this._array;\n return this;\n }\n\n // Set height of element\n height(height) {\n return height == null ? this.bbox().height : this.size(this.bbox().width, height);\n }\n\n // Move by left top corner\n move(x, y) {\n return this.attr('d', this.array().move(x, y));\n }\n\n // Plot new path\n plot(d) {\n return d == null ? this.array() : this.clear().attr('d', typeof d === 'string' ? d : this._array = new PathArray(d));\n }\n\n // Set element size to given width and height\n size(width, height) {\n const p = proportionalSize(this, width, height);\n return this.attr('d', this.array().size(p.width, p.height));\n }\n\n // Set width of element\n width(width) {\n return width == null ? this.bbox().width : this.size(width, this.bbox().height);\n }\n\n // Move by left top corner over x-axis\n x(x) {\n return x == null ? this.bbox().x : this.move(x, this.bbox().y);\n }\n\n // Move by left top corner over y-axis\n y(y) {\n return y == null ? this.bbox().y : this.move(this.bbox().x, y);\n }\n}\n\n// Define morphable array\nPath.prototype.MorphArray = PathArray;\n\n// Add parent method\nregisterMethods({\n Container: {\n // Create a wrapped path element\n path: wrapWithAttrCheck(function (d) {\n // make sure plot is called as a setter\n return this.put(new Path()).plot(d || new PathArray());\n })\n }\n});\nregister(Path, 'Path');\n\n// Get array\nfunction array() {\n return this._array || (this._array = new PointArray(this.attr('points')));\n}\n\n// Clear array cache\nfunction clear() {\n delete this._array;\n return this;\n}\n\n// Move by left top corner\nfunction move$2(x, y) {\n return this.attr('points', this.array().move(x, y));\n}\n\n// Plot new path\nfunction plot(p) {\n return p == null ? this.array() : this.clear().attr('points', typeof p === 'string' ? p : this._array = new PointArray(p));\n}\n\n// Set element size to given width and height\nfunction size$1(width, height) {\n const p = proportionalSize(this, width, height);\n return this.attr('points', this.array().size(p.width, p.height));\n}\n\nvar poly = {\n __proto__: null,\n array: array,\n clear: clear,\n move: move$2,\n plot: plot,\n size: size$1\n};\n\nclass Polygon extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('polygon', node), attrs);\n }\n}\nregisterMethods({\n Container: {\n // Create a wrapped polygon element\n polygon: wrapWithAttrCheck(function (p) {\n // make sure plot is called as a setter\n return this.put(new Polygon()).plot(p || new PointArray());\n })\n }\n});\nextend(Polygon, pointed);\nextend(Polygon, poly);\nregister(Polygon, 'Polygon');\n\nclass Polyline extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('polyline', node), attrs);\n }\n}\nregisterMethods({\n Container: {\n // Create a wrapped polygon element\n polyline: wrapWithAttrCheck(function (p) {\n // make sure plot is called as a setter\n return this.put(new Polyline()).plot(p || new PointArray());\n })\n }\n});\nextend(Polyline, pointed);\nextend(Polyline, poly);\nregister(Polyline, 'Polyline');\n\nclass Rect extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('rect', node), attrs);\n }\n}\nextend(Rect, {\n rx,\n ry\n});\nregisterMethods({\n Container: {\n // Create a rect element\n rect: wrapWithAttrCheck(function (width, height) {\n return this.put(new Rect()).size(width, height);\n })\n }\n});\nregister(Rect, 'Rect');\n\nclass Queue {\n constructor() {\n this._first = null;\n this._last = null;\n }\n\n // Shows us the first item in the list\n first() {\n return this._first && this._first.value;\n }\n\n // Shows us the last item in the list\n last() {\n return this._last && this._last.value;\n }\n push(value) {\n // An item stores an id and the provided value\n const item = typeof value.next !== 'undefined' ? value : {\n value: value,\n next: null,\n prev: null\n };\n\n // Deal with the queue being empty or populated\n if (this._last) {\n item.prev = this._last;\n this._last.next = item;\n this._last = item;\n } else {\n this._last = item;\n this._first = item;\n }\n\n // Return the current item\n return item;\n }\n\n // Removes the item that was returned from the push\n remove(item) {\n // Relink the previous item\n if (item.prev) item.prev.next = item.next;\n if (item.next) item.next.prev = item.prev;\n if (item === this._last) this._last = item.prev;\n if (item === this._first) this._first = item.next;\n\n // Invalidate item\n item.prev = null;\n item.next = null;\n }\n shift() {\n // Check if we have a value\n const remove = this._first;\n if (!remove) return null;\n\n // If we do, remove it and relink things\n this._first = remove.next;\n if (this._first) this._first.prev = null;\n this._last = this._first ? this._last : null;\n return remove.value;\n }\n}\n\nconst Animator = {\n nextDraw: null,\n frames: new Queue(),\n timeouts: new Queue(),\n immediates: new Queue(),\n timer: () => globals.window.performance || globals.window.Date,\n transforms: [],\n frame(fn) {\n // Store the node\n const node = Animator.frames.push({\n run: fn\n });\n\n // Request an animation frame if we don't have one\n if (Animator.nextDraw === null) {\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw);\n }\n\n // Return the node so we can remove it easily\n return node;\n },\n timeout(fn, delay) {\n delay = delay || 0;\n\n // Work out when the event should fire\n const time = Animator.timer().now() + delay;\n\n // Add the timeout to the end of the queue\n const node = Animator.timeouts.push({\n run: fn,\n time: time\n });\n\n // Request another animation frame if we need one\n if (Animator.nextDraw === null) {\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw);\n }\n return node;\n },\n immediate(fn) {\n // Add the immediate fn to the end of the queue\n const node = Animator.immediates.push(fn);\n // Request another animation frame if we need one\n if (Animator.nextDraw === null) {\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw);\n }\n return node;\n },\n cancelFrame(node) {\n node != null && Animator.frames.remove(node);\n },\n clearTimeout(node) {\n node != null && Animator.timeouts.remove(node);\n },\n cancelImmediate(node) {\n node != null && Animator.immediates.remove(node);\n },\n _draw(now) {\n // Run all the timeouts we can run, if they are not ready yet, add them\n // to the end of the queue immediately! (bad timeouts!!! [sarcasm])\n let nextTimeout = null;\n const lastTimeout = Animator.timeouts.last();\n while (nextTimeout = Animator.timeouts.shift()) {\n // Run the timeout if its time, or push it to the end\n if (now >= nextTimeout.time) {\n nextTimeout.run();\n } else {\n Animator.timeouts.push(nextTimeout);\n }\n\n // If we hit the last item, we should stop shifting out more items\n if (nextTimeout === lastTimeout) break;\n }\n\n // Run all of the animation frames\n let nextFrame = null;\n const lastFrame = Animator.frames.last();\n while (nextFrame !== lastFrame && (nextFrame = Animator.frames.shift())) {\n nextFrame.run(now);\n }\n let nextImmediate = null;\n while (nextImmediate = Animator.immediates.shift()) {\n nextImmediate();\n }\n\n // If we have remaining timeouts or frames, draw until we don't anymore\n Animator.nextDraw = Animator.timeouts.first() || Animator.frames.first() ? globals.window.requestAnimationFrame(Animator._draw) : null;\n }\n};\n\nconst makeSchedule = function (runnerInfo) {\n const start = runnerInfo.start;\n const duration = runnerInfo.runner.duration();\n const end = start + duration;\n return {\n start: start,\n duration: duration,\n end: end,\n runner: runnerInfo.runner\n };\n};\nconst defaultSource = function () {\n const w = globals.window;\n return (w.performance || w.Date).now();\n};\nclass Timeline extends EventTarget {\n // Construct a new timeline on the given element\n constructor(timeSource = defaultSource) {\n super();\n this._timeSource = timeSource;\n\n // terminate resets all variables to their initial state\n this.terminate();\n }\n active() {\n return !!this._nextFrame;\n }\n finish() {\n // Go to end and pause\n this.time(this.getEndTimeOfTimeline() + 1);\n return this.pause();\n }\n\n // Calculates the end of the timeline\n getEndTime() {\n const lastRunnerInfo = this.getLastRunnerInfo();\n const lastDuration = lastRunnerInfo ? lastRunnerInfo.runner.duration() : 0;\n const lastStartTime = lastRunnerInfo ? lastRunnerInfo.start : this._time;\n return lastStartTime + lastDuration;\n }\n getEndTimeOfTimeline() {\n const endTimes = this._runners.map(i => i.start + i.runner.duration());\n return Math.max(0, ...endTimes);\n }\n getLastRunnerInfo() {\n return this.getRunnerInfoById(this._lastRunnerId);\n }\n getRunnerInfoById(id) {\n return this._runners[this._runnerIds.indexOf(id)] || null;\n }\n pause() {\n this._paused = true;\n return this._continue();\n }\n persist(dtOrForever) {\n if (dtOrForever == null) return this._persist;\n this._persist = dtOrForever;\n return this;\n }\n play() {\n // Now make sure we are not paused and continue the animation\n this._paused = false;\n return this.updateTime()._continue();\n }\n reverse(yes) {\n const currentSpeed = this.speed();\n if (yes == null) return this.speed(-currentSpeed);\n const positive = Math.abs(currentSpeed);\n return this.speed(yes ? -positive : positive);\n }\n\n // schedules a runner on the timeline\n schedule(runner, delay, when) {\n if (runner == null) {\n return this._runners.map(makeSchedule);\n }\n\n // The start time for the next animation can either be given explicitly,\n // derived from the current timeline time or it can be relative to the\n // last start time to chain animations directly\n\n let absoluteStartTime = 0;\n const endTime = this.getEndTime();\n delay = delay || 0;\n\n // Work out when to start the animation\n if (when == null || when === 'last' || when === 'after') {\n // Take the last time and increment\n absoluteStartTime = endTime;\n } else if (when === 'absolute' || when === 'start') {\n absoluteStartTime = delay;\n delay = 0;\n } else if (when === 'now') {\n absoluteStartTime = this._time;\n } else if (when === 'relative') {\n const runnerInfo = this.getRunnerInfoById(runner.id);\n if (runnerInfo) {\n absoluteStartTime = runnerInfo.start + delay;\n delay = 0;\n }\n } else if (when === 'with-last') {\n const lastRunnerInfo = this.getLastRunnerInfo();\n const lastStartTime = lastRunnerInfo ? lastRunnerInfo.start : this._time;\n absoluteStartTime = lastStartTime;\n } else {\n throw new Error('Invalid value for the \"when\" parameter');\n }\n\n // Manage runner\n runner.unschedule();\n runner.timeline(this);\n const persist = runner.persist();\n const runnerInfo = {\n persist: persist === null ? this._persist : persist,\n start: absoluteStartTime + delay,\n runner\n };\n this._lastRunnerId = runner.id;\n this._runners.push(runnerInfo);\n this._runners.sort((a, b) => a.start - b.start);\n this._runnerIds = this._runners.map(info => info.runner.id);\n this.updateTime()._continue();\n return this;\n }\n seek(dt) {\n return this.time(this._time + dt);\n }\n source(fn) {\n if (fn == null) return this._timeSource;\n this._timeSource = fn;\n return this;\n }\n speed(speed) {\n if (speed == null) return this._speed;\n this._speed = speed;\n return this;\n }\n stop() {\n // Go to start and pause\n this.time(0);\n return this.pause();\n }\n time(time) {\n if (time == null) return this._time;\n this._time = time;\n return this._continue(true);\n }\n\n // Remove the runner from this timeline\n unschedule(runner) {\n const index = this._runnerIds.indexOf(runner.id);\n if (index < 0) return this;\n this._runners.splice(index, 1);\n this._runnerIds.splice(index, 1);\n runner.timeline(null);\n return this;\n }\n\n // Makes sure, that after pausing the time doesn't jump\n updateTime() {\n if (!this.active()) {\n this._lastSourceTime = this._timeSource();\n }\n return this;\n }\n\n // Checks if we are running and continues the animation\n _continue(immediateStep = false) {\n Animator.cancelFrame(this._nextFrame);\n this._nextFrame = null;\n if (immediateStep) return this._stepImmediate();\n if (this._paused) return this;\n this._nextFrame = Animator.frame(this._step);\n return this;\n }\n _stepFn(immediateStep = false) {\n // Get the time delta from the last time and update the time\n const time = this._timeSource();\n let dtSource = time - this._lastSourceTime;\n if (immediateStep) dtSource = 0;\n const dtTime = this._speed * dtSource + (this._time - this._lastStepTime);\n this._lastSourceTime = time;\n\n // Only update the time if we use the timeSource.\n // Otherwise use the current time\n if (!immediateStep) {\n // Update the time\n this._time += dtTime;\n this._time = this._time < 0 ? 0 : this._time;\n }\n this._lastStepTime = this._time;\n this.fire('time', this._time);\n\n // This is for the case that the timeline was seeked so that the time\n // is now before the startTime of the runner. That is why we need to set\n // the runner to position 0\n\n // FIXME:\n // However, resetting in insertion order leads to bugs. Considering the case,\n // where 2 runners change the same attribute but in different times,\n // resetting both of them will lead to the case where the later defined\n // runner always wins the reset even if the other runner started earlier\n // and therefore should win the attribute battle\n // this can be solved by resetting them backwards\n for (let k = this._runners.length; k--;) {\n // Get and run the current runner and ignore it if its inactive\n const runnerInfo = this._runners[k];\n const runner = runnerInfo.runner;\n\n // Make sure that we give the actual difference\n // between runner start time and now\n const dtToStart = this._time - runnerInfo.start;\n\n // Dont run runner if not started yet\n // and try to reset it\n if (dtToStart <= 0) {\n runner.reset();\n }\n }\n\n // Run all of the runners directly\n let runnersLeft = false;\n for (let i = 0, len = this._runners.length; i < len; i++) {\n // Get and run the current runner and ignore it if its inactive\n const runnerInfo = this._runners[i];\n const runner = runnerInfo.runner;\n let dt = dtTime;\n\n // Make sure that we give the actual difference\n // between runner start time and now\n const dtToStart = this._time - runnerInfo.start;\n\n // Dont run runner if not started yet\n if (dtToStart <= 0) {\n runnersLeft = true;\n continue;\n } else if (dtToStart < dt) {\n // Adjust dt to make sure that animation is on point\n dt = dtToStart;\n }\n if (!runner.active()) continue;\n\n // If this runner is still going, signal that we need another animation\n // frame, otherwise, remove the completed runner\n const finished = runner.step(dt).done;\n if (!finished) {\n runnersLeft = true;\n // continue\n } else if (runnerInfo.persist !== true) {\n // runner is finished. And runner might get removed\n const endTime = runner.duration() - runner.time() + this._time;\n if (endTime + runnerInfo.persist < this._time) {\n // Delete runner and correct index\n runner.unschedule();\n --i;\n --len;\n }\n }\n }\n\n // Basically: we continue when there are runners right from us in time\n // when -->, and when runners are left from us when <--\n if (runnersLeft && !(this._speed < 0 && this._time === 0) || this._runnerIds.length && this._speed < 0 && this._time > 0) {\n this._continue();\n } else {\n this.pause();\n this.fire('finished');\n }\n return this;\n }\n terminate() {\n // cleanup memory\n\n // Store the timing variables\n this._startTime = 0;\n this._speed = 1.0;\n\n // Determines how long a runner is hold in memory. Can be a dt or true/false\n this._persist = 0;\n\n // Keep track of the running animations and their starting parameters\n this._nextFrame = null;\n this._paused = true;\n this._runners = [];\n this._runnerIds = [];\n this._lastRunnerId = -1;\n this._time = 0;\n this._lastSourceTime = 0;\n this._lastStepTime = 0;\n\n // Make sure that step is always called in class context\n this._step = this._stepFn.bind(this, false);\n this._stepImmediate = this._stepFn.bind(this, true);\n }\n}\nregisterMethods({\n Element: {\n timeline: function (timeline) {\n if (timeline == null) {\n this._timeline = this._timeline || new Timeline();\n return this._timeline;\n } else {\n this._timeline = timeline;\n return this;\n }\n }\n }\n});\n\nclass Runner extends EventTarget {\n constructor(options) {\n super();\n\n // Store a unique id on the runner, so that we can identify it later\n this.id = Runner.id++;\n\n // Ensure a default value\n options = options == null ? timeline.duration : options;\n\n // Ensure that we get a controller\n options = typeof options === 'function' ? new Controller(options) : options;\n\n // Declare all of the variables\n this._element = null;\n this._timeline = null;\n this.done = false;\n this._queue = [];\n\n // Work out the stepper and the duration\n this._duration = typeof options === 'number' && options;\n this._isDeclarative = options instanceof Controller;\n this._stepper = this._isDeclarative ? options : new Ease();\n\n // We copy the current values from the timeline because they can change\n this._history = {};\n\n // Store the state of the runner\n this.enabled = true;\n this._time = 0;\n this._lastTime = 0;\n\n // At creation, the runner is in reset state\n this._reseted = true;\n\n // Save transforms applied to this runner\n this.transforms = new Matrix();\n this.transformId = 1;\n\n // Looping variables\n this._haveReversed = false;\n this._reverse = false;\n this._loopsDone = 0;\n this._swing = false;\n this._wait = 0;\n this._times = 1;\n this._frameId = null;\n\n // Stores how long a runner is stored after being done\n this._persist = this._isDeclarative ? true : null;\n }\n static sanitise(duration, delay, when) {\n // Initialise the default parameters\n let times = 1;\n let swing = false;\n let wait = 0;\n duration = duration ?? timeline.duration;\n delay = delay ?? timeline.delay;\n when = when || 'last';\n\n // If we have an object, unpack the values\n if (typeof duration === 'object' && !(duration instanceof Stepper)) {\n delay = duration.delay ?? delay;\n when = duration.when ?? when;\n swing = duration.swing || swing;\n times = duration.times ?? times;\n wait = duration.wait ?? wait;\n duration = duration.duration ?? timeline.duration;\n }\n return {\n duration: duration,\n delay: delay,\n swing: swing,\n times: times,\n wait: wait,\n when: when\n };\n }\n active(enabled) {\n if (enabled == null) return this.enabled;\n this.enabled = enabled;\n return this;\n }\n\n /*\n Private Methods\n ===============\n Methods that shouldn't be used externally\n */\n addTransform(transform) {\n this.transforms.lmultiplyO(transform);\n return this;\n }\n after(fn) {\n return this.on('finished', fn);\n }\n animate(duration, delay, when) {\n const o = Runner.sanitise(duration, delay, when);\n const runner = new Runner(o.duration);\n if (this._timeline) runner.timeline(this._timeline);\n if (this._element) runner.element(this._element);\n return runner.loop(o).schedule(o.delay, o.when);\n }\n clearTransform() {\n this.transforms = new Matrix();\n return this;\n }\n\n // TODO: Keep track of all transformations so that deletion is faster\n clearTransformsFromQueue() {\n if (!this.done || !this._timeline || !this._timeline._runnerIds.includes(this.id)) {\n this._queue = this._queue.filter(item => {\n return !item.isTransform;\n });\n }\n }\n delay(delay) {\n return this.animate(0, delay);\n }\n duration() {\n return this._times * (this._wait + this._duration) - this._wait;\n }\n during(fn) {\n return this.queue(null, fn);\n }\n ease(fn) {\n this._stepper = new Ease(fn);\n return this;\n }\n /*\n Runner Definitions\n ==================\n These methods help us define the runtime behaviour of the Runner or they\n help us make new runners from the current runner\n */\n\n element(element) {\n if (element == null) return this._element;\n this._element = element;\n element._prepareRunner();\n return this;\n }\n finish() {\n return this.step(Infinity);\n }\n loop(times, swing, wait) {\n // Deal with the user passing in an object\n if (typeof times === 'object') {\n swing = times.swing;\n wait = times.wait;\n times = times.times;\n }\n\n // Sanitise the values and store them\n this._times = times || Infinity;\n this._swing = swing || false;\n this._wait = wait || 0;\n\n // Allow true to be passed\n if (this._times === true) {\n this._times = Infinity;\n }\n return this;\n }\n loops(p) {\n const loopDuration = this._duration + this._wait;\n if (p == null) {\n const loopsDone = Math.floor(this._time / loopDuration);\n const relativeTime = this._time - loopsDone * loopDuration;\n const position = relativeTime / this._duration;\n return Math.min(loopsDone + position, this._times);\n }\n const whole = Math.floor(p);\n const partial = p % 1;\n const time = loopDuration * whole + this._duration * partial;\n return this.time(time);\n }\n persist(dtOrForever) {\n if (dtOrForever == null) return this._persist;\n this._persist = dtOrForever;\n return this;\n }\n position(p) {\n // Get all of the variables we need\n const x = this._time;\n const d = this._duration;\n const w = this._wait;\n const t = this._times;\n const s = this._swing;\n const r = this._reverse;\n let position;\n if (p == null) {\n /*\n This function converts a time to a position in the range [0, 1]\n The full explanation can be found in this desmos demonstration\n https://www.desmos.com/calculator/u4fbavgche\n The logic is slightly simplified here because we can use booleans\n */\n\n // Figure out the value without thinking about the start or end time\n const f = function (x) {\n const swinging = s * Math.floor(x % (2 * (w + d)) / (w + d));\n const backwards = swinging && !r || !swinging && r;\n const uncliped = Math.pow(-1, backwards) * (x % (w + d)) / d + backwards;\n const clipped = Math.max(Math.min(uncliped, 1), 0);\n return clipped;\n };\n\n // Figure out the value by incorporating the start time\n const endTime = t * (w + d) - w;\n position = x <= 0 ? Math.round(f(1e-5)) : x < endTime ? f(x) : Math.round(f(endTime - 1e-5));\n return position;\n }\n\n // Work out the loops done and add the position to the loops done\n const loopsDone = Math.floor(this.loops());\n const swingForward = s && loopsDone % 2 === 0;\n const forwards = swingForward && !r || r && swingForward;\n position = loopsDone + (forwards ? p : 1 - p);\n return this.loops(position);\n }\n progress(p) {\n if (p == null) {\n return Math.min(1, this._time / this.duration());\n }\n return this.time(p * this.duration());\n }\n\n /*\n Basic Functionality\n ===================\n These methods allow us to attach basic functions to the runner directly\n */\n queue(initFn, runFn, retargetFn, isTransform) {\n this._queue.push({\n initialiser: initFn || noop,\n runner: runFn || noop,\n retarget: retargetFn,\n isTransform: isTransform,\n initialised: false,\n finished: false\n });\n const timeline = this.timeline();\n timeline && this.timeline()._continue();\n return this;\n }\n reset() {\n if (this._reseted) return this;\n this.time(0);\n this._reseted = true;\n return this;\n }\n reverse(reverse) {\n this._reverse = reverse == null ? !this._reverse : reverse;\n return this;\n }\n schedule(timeline, delay, when) {\n // The user doesn't need to pass a timeline if we already have one\n if (!(timeline instanceof Timeline)) {\n when = delay;\n delay = timeline;\n timeline = this.timeline();\n }\n\n // If there is no timeline, yell at the user...\n if (!timeline) {\n throw Error('Runner cannot be scheduled without timeline');\n }\n\n // Schedule the runner on the timeline provided\n timeline.schedule(this, delay, when);\n return this;\n }\n step(dt) {\n // If we are inactive, this stepper just gets skipped\n if (!this.enabled) return this;\n\n // Update the time and get the new position\n dt = dt == null ? 16 : dt;\n this._time += dt;\n const position = this.position();\n\n // Figure out if we need to run the stepper in this frame\n const running = this._lastPosition !== position && this._time >= 0;\n this._lastPosition = position;\n\n // Figure out if we just started\n const duration = this.duration();\n const justStarted = this._lastTime <= 0 && this._time > 0;\n const justFinished = this._lastTime < duration && this._time >= duration;\n this._lastTime = this._time;\n if (justStarted) {\n this.fire('start', this);\n }\n\n // Work out if the runner is finished set the done flag here so animations\n // know, that they are running in the last step (this is good for\n // transformations which can be merged)\n const declarative = this._isDeclarative;\n this.done = !declarative && !justFinished && this._time >= duration;\n\n // Runner is running. So its not in reset state anymore\n this._reseted = false;\n let converged = false;\n // Call initialise and the run function\n if (running || declarative) {\n this._initialise(running);\n\n // clear the transforms on this runner so they dont get added again and again\n this.transforms = new Matrix();\n converged = this._run(declarative ? dt : position);\n this.fire('step', this);\n }\n // correct the done flag here\n // declarative animations itself know when they converged\n this.done = this.done || converged && declarative;\n if (justFinished) {\n this.fire('finished', this);\n }\n return this;\n }\n\n /*\n Runner animation methods\n ========================\n Control how the animation plays\n */\n time(time) {\n if (time == null) {\n return this._time;\n }\n const dt = time - this._time;\n this.step(dt);\n return this;\n }\n timeline(timeline) {\n // check explicitly for undefined so we can set the timeline to null\n if (typeof timeline === 'undefined') return this._timeline;\n this._timeline = timeline;\n return this;\n }\n unschedule() {\n const timeline = this.timeline();\n timeline && timeline.unschedule(this);\n return this;\n }\n\n // Run each initialise function in the runner if required\n _initialise(running) {\n // If we aren't running, we shouldn't initialise when not declarative\n if (!running && !this._isDeclarative) return;\n\n // Loop through all of the initialisers\n for (let i = 0, len = this._queue.length; i < len; ++i) {\n // Get the current initialiser\n const current = this._queue[i];\n\n // Determine whether we need to initialise\n const needsIt = this._isDeclarative || !current.initialised && running;\n running = !current.finished;\n\n // Call the initialiser if we need to\n if (needsIt && running) {\n current.initialiser.call(this);\n current.initialised = true;\n }\n }\n }\n\n // Save a morpher to the morpher list so that we can retarget it later\n _rememberMorpher(method, morpher) {\n this._history[method] = {\n morpher: morpher,\n caller: this._queue[this._queue.length - 1]\n };\n\n // We have to resume the timeline in case a controller\n // is already done without being ever run\n // This can happen when e.g. this is done:\n // anim = el.animate(new SVG.Spring)\n // and later\n // anim.move(...)\n if (this._isDeclarative) {\n const timeline = this.timeline();\n timeline && timeline.play();\n }\n }\n\n // Try to set the target for a morpher if the morpher exists, otherwise\n // Run each run function for the position or dt given\n _run(positionOrDt) {\n // Run all of the _queue directly\n let allfinished = true;\n for (let i = 0, len = this._queue.length; i < len; ++i) {\n // Get the current function to run\n const current = this._queue[i];\n\n // Run the function if its not finished, we keep track of the finished\n // flag for the sake of declarative _queue\n const converged = current.runner.call(this, positionOrDt);\n current.finished = current.finished || converged === true;\n allfinished = allfinished && current.finished;\n }\n\n // We report when all of the constructors are finished\n return allfinished;\n }\n\n // do nothing and return false\n _tryRetarget(method, target, extra) {\n if (this._history[method]) {\n // if the last method wasn't even initialised, throw it away\n if (!this._history[method].caller.initialised) {\n const index = this._queue.indexOf(this._history[method].caller);\n this._queue.splice(index, 1);\n return false;\n }\n\n // for the case of transformations, we use the special retarget function\n // which has access to the outer scope\n if (this._history[method].caller.retarget) {\n this._history[method].caller.retarget.call(this, target, extra);\n // for everything else a simple morpher change is sufficient\n } else {\n this._history[method].morpher.to(target);\n }\n this._history[method].caller.finished = false;\n const timeline = this.timeline();\n timeline && timeline.play();\n return true;\n }\n return false;\n }\n}\nRunner.id = 0;\nclass FakeRunner {\n constructor(transforms = new Matrix(), id = -1, done = true) {\n this.transforms = transforms;\n this.id = id;\n this.done = done;\n }\n clearTransformsFromQueue() {}\n}\nextend([Runner, FakeRunner], {\n mergeWith(runner) {\n return new FakeRunner(runner.transforms.lmultiply(this.transforms), runner.id);\n }\n});\n\n// FakeRunner.emptyRunner = new FakeRunner()\n\nconst lmultiply = (last, curr) => last.lmultiplyO(curr);\nconst getRunnerTransform = runner => runner.transforms;\nfunction mergeTransforms() {\n // Find the matrix to apply to the element and apply it\n const runners = this._transformationRunners.runners;\n const netTransform = runners.map(getRunnerTransform).reduce(lmultiply, new Matrix());\n this.transform(netTransform);\n this._transformationRunners.merge();\n if (this._transformationRunners.length() === 1) {\n this._frameId = null;\n }\n}\nclass RunnerArray {\n constructor() {\n this.runners = [];\n this.ids = [];\n }\n add(runner) {\n if (this.runners.includes(runner)) return;\n const id = runner.id + 1;\n this.runners.push(runner);\n this.ids.push(id);\n return this;\n }\n clearBefore(id) {\n const deleteCnt = this.ids.indexOf(id + 1) || 1;\n this.ids.splice(0, deleteCnt, 0);\n this.runners.splice(0, deleteCnt, new FakeRunner()).forEach(r => r.clearTransformsFromQueue());\n return this;\n }\n edit(id, newRunner) {\n const index = this.ids.indexOf(id + 1);\n this.ids.splice(index, 1, id + 1);\n this.runners.splice(index, 1, newRunner);\n return this;\n }\n getByID(id) {\n return this.runners[this.ids.indexOf(id + 1)];\n }\n length() {\n return this.ids.length;\n }\n merge() {\n let lastRunner = null;\n for (let i = 0; i < this.runners.length; ++i) {\n const runner = this.runners[i];\n const condition = lastRunner && runner.done && lastRunner.done && (\n // don't merge runner when persisted on timeline\n !runner._timeline || !runner._timeline._runnerIds.includes(runner.id)) && (!lastRunner._timeline || !lastRunner._timeline._runnerIds.includes(lastRunner.id));\n if (condition) {\n // the +1 happens in the function\n this.remove(runner.id);\n const newRunner = runner.mergeWith(lastRunner);\n this.edit(lastRunner.id, newRunner);\n lastRunner = newRunner;\n --i;\n } else {\n lastRunner = runner;\n }\n }\n return this;\n }\n remove(id) {\n const index = this.ids.indexOf(id + 1);\n this.ids.splice(index, 1);\n this.runners.splice(index, 1);\n return this;\n }\n}\nregisterMethods({\n Element: {\n animate(duration, delay, when) {\n const o = Runner.sanitise(duration, delay, when);\n const timeline = this.timeline();\n return new Runner(o.duration).loop(o).element(this).timeline(timeline.play()).schedule(o.delay, o.when);\n },\n delay(by, when) {\n return this.animate(0, by, when);\n },\n // this function searches for all runners on the element and deletes the ones\n // which run before the current one. This is because absolute transformations\n // overwrite anything anyway so there is no need to waste time computing\n // other runners\n _clearTransformRunnersBefore(currentRunner) {\n this._transformationRunners.clearBefore(currentRunner.id);\n },\n _currentTransform(current) {\n return this._transformationRunners.runners\n // we need the equal sign here to make sure, that also transformations\n // on the same runner which execute before the current transformation are\n // taken into account\n .filter(runner => runner.id <= current.id).map(getRunnerTransform).reduce(lmultiply, new Matrix());\n },\n _addRunner(runner) {\n this._transformationRunners.add(runner);\n\n // Make sure that the runner merge is executed at the very end of\n // all Animator functions. That is why we use immediate here to execute\n // the merge right after all frames are run\n Animator.cancelImmediate(this._frameId);\n this._frameId = Animator.immediate(mergeTransforms.bind(this));\n },\n _prepareRunner() {\n if (this._frameId == null) {\n this._transformationRunners = new RunnerArray().add(new FakeRunner(new Matrix(this)));\n }\n }\n }\n});\n\n// Will output the elements from array A that are not in the array B\nconst difference = (a, b) => a.filter(x => !b.includes(x));\nextend(Runner, {\n attr(a, v) {\n return this.styleAttr('attr', a, v);\n },\n // Add animatable styles\n css(s, v) {\n return this.styleAttr('css', s, v);\n },\n styleAttr(type, nameOrAttrs, val) {\n if (typeof nameOrAttrs === 'string') {\n return this.styleAttr(type, {\n [nameOrAttrs]: val\n });\n }\n let attrs = nameOrAttrs;\n if (this._tryRetarget(type, attrs)) return this;\n let morpher = new Morphable(this._stepper).to(attrs);\n let keys = Object.keys(attrs);\n this.queue(function () {\n morpher = morpher.from(this.element()[type](keys));\n }, function (pos) {\n this.element()[type](morpher.at(pos).valueOf());\n return morpher.done();\n }, function (newToAttrs) {\n // Check if any new keys were added\n const newKeys = Object.keys(newToAttrs);\n const differences = difference(newKeys, keys);\n\n // If their are new keys, initialize them and add them to morpher\n if (differences.length) {\n // Get the values\n const addedFromAttrs = this.element()[type](differences);\n\n // Get the already initialized values\n const oldFromAttrs = new ObjectBag(morpher.from()).valueOf();\n\n // Merge old and new\n Object.assign(oldFromAttrs, addedFromAttrs);\n morpher.from(oldFromAttrs);\n }\n\n // Get the object from the morpher\n const oldToAttrs = new ObjectBag(morpher.to()).valueOf();\n\n // Merge in new attributes\n Object.assign(oldToAttrs, newToAttrs);\n\n // Change morpher target\n morpher.to(oldToAttrs);\n\n // Make sure that we save the work we did so we don't need it to do again\n keys = newKeys;\n attrs = newToAttrs;\n });\n this._rememberMorpher(type, morpher);\n return this;\n },\n zoom(level, point) {\n if (this._tryRetarget('zoom', level, point)) return this;\n let morpher = new Morphable(this._stepper).to(new SVGNumber(level));\n this.queue(function () {\n morpher = morpher.from(this.element().zoom());\n }, function (pos) {\n this.element().zoom(morpher.at(pos), point);\n return morpher.done();\n }, function (newLevel, newPoint) {\n point = newPoint;\n morpher.to(newLevel);\n });\n this._rememberMorpher('zoom', morpher);\n return this;\n },\n /**\n ** absolute transformations\n **/\n\n //\n // M v -----|-----(D M v = F v)------|-----> T v\n //\n // 1. define the final state (T) and decompose it (once)\n // t = [tx, ty, the, lam, sy, sx]\n // 2. on every frame: pull the current state of all previous transforms\n // (M - m can change)\n // and then write this as m = [tx0, ty0, the0, lam0, sy0, sx0]\n // 3. Find the interpolated matrix F(pos) = m + pos * (t - m)\n // - Note F(0) = M\n // - Note F(1) = T\n // 4. Now you get the delta matrix as a result: D = F * inv(M)\n\n transform(transforms, relative, affine) {\n // If we have a declarative function, we should retarget it if possible\n relative = transforms.relative || relative;\n if (this._isDeclarative && !relative && this._tryRetarget('transform', transforms)) {\n return this;\n }\n\n // Parse the parameters\n const isMatrix = Matrix.isMatrixLike(transforms);\n affine = transforms.affine != null ? transforms.affine : affine != null ? affine : !isMatrix;\n\n // Create a morpher and set its type\n const morpher = new Morphable(this._stepper).type(affine ? TransformBag : Matrix);\n let origin;\n let element;\n let current;\n let currentAngle;\n let startTransform;\n function setup() {\n // make sure element and origin is defined\n element = element || this.element();\n origin = origin || getOrigin(transforms, element);\n startTransform = new Matrix(relative ? undefined : element);\n\n // add the runner to the element so it can merge transformations\n element._addRunner(this);\n\n // Deactivate all transforms that have run so far if we are absolute\n if (!relative) {\n element._clearTransformRunnersBefore(this);\n }\n }\n function run(pos) {\n // clear all other transforms before this in case something is saved\n // on this runner. We are absolute. We dont need these!\n if (!relative) this.clearTransform();\n const {\n x,\n y\n } = new Point(origin).transform(element._currentTransform(this));\n let target = new Matrix({\n ...transforms,\n origin: [x, y]\n });\n let start = this._isDeclarative && current ? current : startTransform;\n if (affine) {\n target = target.decompose(x, y);\n start = start.decompose(x, y);\n\n // Get the current and target angle as it was set\n const rTarget = target.rotate;\n const rCurrent = start.rotate;\n\n // Figure out the shortest path to rotate directly\n const possibilities = [rTarget - 360, rTarget, rTarget + 360];\n const distances = possibilities.map(a => Math.abs(a - rCurrent));\n const shortest = Math.min(...distances);\n const index = distances.indexOf(shortest);\n target.rotate = possibilities[index];\n }\n if (relative) {\n // we have to be careful here not to overwrite the rotation\n // with the rotate method of Matrix\n if (!isMatrix) {\n target.rotate = transforms.rotate || 0;\n }\n if (this._isDeclarative && currentAngle) {\n start.rotate = currentAngle;\n }\n }\n morpher.from(start);\n morpher.to(target);\n const affineParameters = morpher.at(pos);\n currentAngle = affineParameters.rotate;\n current = new Matrix(affineParameters);\n this.addTransform(current);\n element._addRunner(this);\n return morpher.done();\n }\n function retarget(newTransforms) {\n // only get a new origin if it changed since the last call\n if ((newTransforms.origin || 'center').toString() !== (transforms.origin || 'center').toString()) {\n origin = getOrigin(newTransforms, element);\n }\n\n // overwrite the old transformations with the new ones\n transforms = {\n ...newTransforms,\n origin\n };\n }\n this.queue(setup, run, retarget, true);\n this._isDeclarative && this._rememberMorpher('transform', morpher);\n return this;\n },\n // Animatable x-axis\n x(x) {\n return this._queueNumber('x', x);\n },\n // Animatable y-axis\n y(y) {\n return this._queueNumber('y', y);\n },\n ax(x) {\n return this._queueNumber('ax', x);\n },\n ay(y) {\n return this._queueNumber('ay', y);\n },\n dx(x = 0) {\n return this._queueNumberDelta('x', x);\n },\n dy(y = 0) {\n return this._queueNumberDelta('y', y);\n },\n dmove(x, y) {\n return this.dx(x).dy(y);\n },\n _queueNumberDelta(method, to) {\n to = new SVGNumber(to);\n\n // Try to change the target if we have this method already registered\n if (this._tryRetarget(method, to)) return this;\n\n // Make a morpher and queue the animation\n const morpher = new Morphable(this._stepper).to(to);\n let from = null;\n this.queue(function () {\n from = this.element()[method]();\n morpher.from(from);\n morpher.to(from + to);\n }, function (pos) {\n this.element()[method](morpher.at(pos));\n return morpher.done();\n }, function (newTo) {\n morpher.to(from + new SVGNumber(newTo));\n });\n\n // Register the morpher so that if it is changed again, we can retarget it\n this._rememberMorpher(method, morpher);\n return this;\n },\n _queueObject(method, to) {\n // Try to change the target if we have this method already registered\n if (this._tryRetarget(method, to)) return this;\n\n // Make a morpher and queue the animation\n const morpher = new Morphable(this._stepper).to(to);\n this.queue(function () {\n morpher.from(this.element()[method]());\n }, function (pos) {\n this.element()[method](morpher.at(pos));\n return morpher.done();\n });\n\n // Register the morpher so that if it is changed again, we can retarget it\n this._rememberMorpher(method, morpher);\n return this;\n },\n _queueNumber(method, value) {\n return this._queueObject(method, new SVGNumber(value));\n },\n // Animatable center x-axis\n cx(x) {\n return this._queueNumber('cx', x);\n },\n // Animatable center y-axis\n cy(y) {\n return this._queueNumber('cy', y);\n },\n // Add animatable move\n move(x, y) {\n return this.x(x).y(y);\n },\n amove(x, y) {\n return this.ax(x).ay(y);\n },\n // Add animatable center\n center(x, y) {\n return this.cx(x).cy(y);\n },\n // Add animatable size\n size(width, height) {\n // animate bbox based size for all other elements\n let box;\n if (!width || !height) {\n box = this._element.bbox();\n }\n if (!width) {\n width = box.width / box.height * height;\n }\n if (!height) {\n height = box.height / box.width * width;\n }\n return this.width(width).height(height);\n },\n // Add animatable width\n width(width) {\n return this._queueNumber('width', width);\n },\n // Add animatable height\n height(height) {\n return this._queueNumber('height', height);\n },\n // Add animatable plot\n plot(a, b, c, d) {\n // Lines can be plotted with 4 arguments\n if (arguments.length === 4) {\n return this.plot([a, b, c, d]);\n }\n if (this._tryRetarget('plot', a)) return this;\n const morpher = new Morphable(this._stepper).type(this._element.MorphArray).to(a);\n this.queue(function () {\n morpher.from(this._element.array());\n }, function (pos) {\n this._element.plot(morpher.at(pos));\n return morpher.done();\n });\n this._rememberMorpher('plot', morpher);\n return this;\n },\n // Add leading method\n leading(value) {\n return this._queueNumber('leading', value);\n },\n // Add animatable viewbox\n viewbox(x, y, width, height) {\n return this._queueObject('viewbox', new Box(x, y, width, height));\n },\n update(o) {\n if (typeof o !== 'object') {\n return this.update({\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n });\n }\n if (o.opacity != null) this.attr('stop-opacity', o.opacity);\n if (o.color != null) this.attr('stop-color', o.color);\n if (o.offset != null) this.attr('offset', o.offset);\n return this;\n }\n});\nextend(Runner, {\n rx,\n ry,\n from,\n to\n});\nregister(Runner, 'Runner');\n\nclass Svg extends Container {\n constructor(node, attrs = node) {\n super(nodeOrNew('svg', node), attrs);\n this.namespace();\n }\n\n // Creates and returns defs element\n defs() {\n if (!this.isRoot()) return this.root().defs();\n return adopt(this.node.querySelector('defs')) || this.put(new Defs());\n }\n isRoot() {\n return !this.node.parentNode || !(this.node.parentNode instanceof globals.window.SVGElement) && this.node.parentNode.nodeName !== '#document-fragment';\n }\n\n // Add namespaces\n namespace() {\n if (!this.isRoot()) return this.root().namespace();\n return this.attr({\n xmlns: svg,\n version: '1.1'\n }).attr('xmlns:xlink', xlink, xmlns);\n }\n removeNamespace() {\n return this.attr({\n xmlns: null,\n version: null\n }).attr('xmlns:xlink', null, xmlns).attr('xmlns:svgjs', null, xmlns);\n }\n\n // Check if this is a root svg\n // If not, call root() from this element\n root() {\n if (this.isRoot()) return this;\n return super.root();\n }\n}\nregisterMethods({\n Container: {\n // Create nested svg document\n nested: wrapWithAttrCheck(function () {\n return this.put(new Svg());\n })\n }\n});\nregister(Svg, 'Svg', true);\n\nclass Symbol extends Container {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('symbol', node), attrs);\n }\n}\nregisterMethods({\n Container: {\n symbol: wrapWithAttrCheck(function () {\n return this.put(new Symbol());\n })\n }\n});\nregister(Symbol, 'Symbol');\n\n// Create plain text node\nfunction plain(text) {\n // clear if build mode is disabled\n if (this._build === false) {\n this.clear();\n }\n\n // create text node\n this.node.appendChild(globals.document.createTextNode(text));\n return this;\n}\n\n// Get length of text element\nfunction length() {\n return this.node.getComputedTextLength();\n}\n\n// Move over x-axis\n// Text is moved by its bounding box\n// text-anchor does NOT matter\nfunction x$1(x, box = this.bbox()) {\n if (x == null) {\n return box.x;\n }\n return this.attr('x', this.attr('x') + x - box.x);\n}\n\n// Move over y-axis\nfunction y$1(y, box = this.bbox()) {\n if (y == null) {\n return box.y;\n }\n return this.attr('y', this.attr('y') + y - box.y);\n}\nfunction move$1(x, y, box = this.bbox()) {\n return this.x(x, box).y(y, box);\n}\n\n// Move center over x-axis\nfunction cx(x, box = this.bbox()) {\n if (x == null) {\n return box.cx;\n }\n return this.attr('x', this.attr('x') + x - box.cx);\n}\n\n// Move center over y-axis\nfunction cy(y, box = this.bbox()) {\n if (y == null) {\n return box.cy;\n }\n return this.attr('y', this.attr('y') + y - box.cy);\n}\nfunction center(x, y, box = this.bbox()) {\n return this.cx(x, box).cy(y, box);\n}\nfunction ax(x) {\n return this.attr('x', x);\n}\nfunction ay(y) {\n return this.attr('y', y);\n}\nfunction amove(x, y) {\n return this.ax(x).ay(y);\n}\n\n// Enable / disable build mode\nfunction build(build) {\n this._build = !!build;\n return this;\n}\n\nvar textable = {\n __proto__: null,\n amove: amove,\n ax: ax,\n ay: ay,\n build: build,\n center: center,\n cx: cx,\n cy: cy,\n length: length,\n move: move$1,\n plain: plain,\n x: x$1,\n y: y$1\n};\n\nclass Text extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('text', node), attrs);\n this.dom.leading = this.dom.leading ?? new SVGNumber(1.3); // store leading value for rebuilding\n this._rebuild = true; // enable automatic updating of dy values\n this._build = false; // disable build mode for adding multiple lines\n }\n\n // Set / get leading\n leading(value) {\n // act as getter\n if (value == null) {\n return this.dom.leading;\n }\n\n // act as setter\n this.dom.leading = new SVGNumber(value);\n return this.rebuild();\n }\n\n // Rebuild appearance type\n rebuild(rebuild) {\n // store new rebuild flag if given\n if (typeof rebuild === 'boolean') {\n this._rebuild = rebuild;\n }\n\n // define position of all lines\n if (this._rebuild) {\n const self = this;\n let blankLineOffset = 0;\n const leading = this.dom.leading;\n this.each(function (i) {\n if (isDescriptive(this.node)) return;\n const fontSize = globals.window.getComputedStyle(this.node).getPropertyValue('font-size');\n const dy = leading * new SVGNumber(fontSize);\n if (this.dom.newLined) {\n this.attr('x', self.attr('x'));\n if (this.text() === '\\n') {\n blankLineOffset += dy;\n } else {\n this.attr('dy', i ? dy + blankLineOffset : 0);\n blankLineOffset = 0;\n }\n }\n });\n this.fire('rebuild');\n }\n return this;\n }\n\n // overwrite method from parent to set data properly\n setData(o) {\n this.dom = o;\n this.dom.leading = new SVGNumber(o.leading || 1.3);\n return this;\n }\n writeDataToDom() {\n writeDataToDom(this, this.dom, {\n leading: 1.3\n });\n return this;\n }\n\n // Set the text content\n text(text) {\n // act as getter\n if (text === undefined) {\n const children = this.node.childNodes;\n let firstLine = 0;\n text = '';\n for (let i = 0, len = children.length; i < len; ++i) {\n // skip textPaths - they are no lines\n if (children[i].nodeName === 'textPath' || isDescriptive(children[i])) {\n if (i === 0) firstLine = i + 1;\n continue;\n }\n\n // add newline if its not the first child and newLined is set to true\n if (i !== firstLine && children[i].nodeType !== 3 && adopt(children[i]).dom.newLined === true) {\n text += '\\n';\n }\n\n // add content of this node\n text += children[i].textContent;\n }\n return text;\n }\n\n // remove existing content\n this.clear().build(true);\n if (typeof text === 'function') {\n // call block\n text.call(this, this);\n } else {\n // store text and make sure text is not blank\n text = (text + '').split('\\n');\n\n // build new lines\n for (let j = 0, jl = text.length; j < jl; j++) {\n this.newLine(text[j]);\n }\n }\n\n // disable build mode and rebuild lines\n return this.build(false).rebuild();\n }\n}\nextend(Text, textable);\nregisterMethods({\n Container: {\n // Create text element\n text: wrapWithAttrCheck(function (text = '') {\n return this.put(new Text()).text(text);\n }),\n // Create plain text element\n plain: wrapWithAttrCheck(function (text = '') {\n return this.put(new Text()).plain(text);\n })\n }\n});\nregister(Text, 'Text');\n\nclass Tspan extends Shape {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('tspan', node), attrs);\n this._build = false; // disable build mode for adding multiple lines\n }\n\n // Shortcut dx\n dx(dx) {\n return this.attr('dx', dx);\n }\n\n // Shortcut dy\n dy(dy) {\n return this.attr('dy', dy);\n }\n\n // Create new line\n newLine() {\n // mark new line\n this.dom.newLined = true;\n\n // fetch parent\n const text = this.parent();\n\n // early return in case we are not in a text element\n if (!(text instanceof Text)) {\n return this;\n }\n const i = text.index(this);\n const fontSize = globals.window.getComputedStyle(this.node).getPropertyValue('font-size');\n const dy = text.dom.leading * new SVGNumber(fontSize);\n\n // apply new position\n return this.dy(i ? dy : 0).attr('x', text.x());\n }\n\n // Set text content\n text(text) {\n if (text == null) return this.node.textContent + (this.dom.newLined ? '\\n' : '');\n if (typeof text === 'function') {\n this.clear().build(true);\n text.call(this, this);\n this.build(false);\n } else {\n this.plain(text);\n }\n return this;\n }\n}\nextend(Tspan, textable);\nregisterMethods({\n Tspan: {\n tspan: wrapWithAttrCheck(function (text = '') {\n const tspan = new Tspan();\n\n // clear if build mode is disabled\n if (!this._build) {\n this.clear();\n }\n\n // add new tspan\n return this.put(tspan).text(text);\n })\n },\n Text: {\n newLine: function (text = '') {\n return this.tspan(text).newLine();\n }\n }\n});\nregister(Tspan, 'Tspan');\n\nclass Circle extends Shape {\n constructor(node, attrs = node) {\n super(nodeOrNew('circle', node), attrs);\n }\n radius(r) {\n return this.attr('r', r);\n }\n\n // Radius x value\n rx(rx) {\n return this.attr('r', rx);\n }\n\n // Alias radius x value\n ry(ry) {\n return this.rx(ry);\n }\n size(size) {\n return this.radius(new SVGNumber(size).divide(2));\n }\n}\nextend(Circle, {\n x: x$3,\n y: y$3,\n cx: cx$1,\n cy: cy$1,\n width: width$2,\n height: height$2\n});\nregisterMethods({\n Container: {\n // Create circle element\n circle: wrapWithAttrCheck(function (size = 0) {\n return this.put(new Circle()).size(size).move(0, 0);\n })\n }\n});\nregister(Circle, 'Circle');\n\nclass ClipPath extends Container {\n constructor(node, attrs = node) {\n super(nodeOrNew('clipPath', node), attrs);\n }\n\n // Unclip all clipped elements and remove itself\n remove() {\n // unclip all targets\n this.targets().forEach(function (el) {\n el.unclip();\n });\n\n // remove clipPath from parent\n return super.remove();\n }\n targets() {\n return baseFind('svg [clip-path*=' + this.id() + ']');\n }\n}\nregisterMethods({\n Container: {\n // Create clipping element\n clip: wrapWithAttrCheck(function () {\n return this.defs().put(new ClipPath());\n })\n },\n Element: {\n // Distribute clipPath to svg element\n clipper() {\n return this.reference('clip-path');\n },\n clipWith(element) {\n // use given clip or create a new one\n const clipper = element instanceof ClipPath ? element : this.parent().clip().add(element);\n\n // apply mask\n return this.attr('clip-path', 'url(#' + clipper.id() + ')');\n },\n // Unclip element\n unclip() {\n return this.attr('clip-path', null);\n }\n }\n});\nregister(ClipPath, 'ClipPath');\n\nclass ForeignObject extends Element {\n constructor(node, attrs = node) {\n super(nodeOrNew('foreignObject', node), attrs);\n }\n}\nregisterMethods({\n Container: {\n foreignObject: wrapWithAttrCheck(function (width, height) {\n return this.put(new ForeignObject()).size(width, height);\n })\n }\n});\nregister(ForeignObject, 'ForeignObject');\n\nfunction dmove(dx, dy) {\n this.children().forEach(child => {\n let bbox;\n\n // We have to wrap this for elements that dont have a bbox\n // e.g. title and other descriptive elements\n try {\n // Get the childs bbox\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1905039\n // Because bbox for nested svgs returns the contents bbox in the coordinate space of the svg itself (weird!), we cant use bbox for svgs\n // Therefore we have to use getBoundingClientRect. But THAT is broken (as explained in the bug).\n // Funnily enough the broken behavior would work for us but that breaks it in chrome\n // So we have to replicate the broken behavior of FF by just reading the attributes of the svg itself\n bbox = child.node instanceof getWindow().SVGSVGElement ? new Box(child.attr(['x', 'y', 'width', 'height'])) : child.bbox();\n } catch (e) {\n return;\n }\n\n // Get childs matrix\n const m = new Matrix(child);\n // Translate childs matrix by amount and\n // transform it back into parents space\n const matrix = m.translate(dx, dy).transform(m.inverse());\n // Calculate new x and y from old box\n const p = new Point(bbox.x, bbox.y).transform(matrix);\n // Move element\n child.move(p.x, p.y);\n });\n return this;\n}\nfunction dx(dx) {\n return this.dmove(dx, 0);\n}\nfunction dy(dy) {\n return this.dmove(0, dy);\n}\nfunction height(height, box = this.bbox()) {\n if (height == null) return box.height;\n return this.size(box.width, height, box);\n}\nfunction move(x = 0, y = 0, box = this.bbox()) {\n const dx = x - box.x;\n const dy = y - box.y;\n return this.dmove(dx, dy);\n}\nfunction size(width, height, box = this.bbox()) {\n const p = proportionalSize(this, width, height, box);\n const scaleX = p.width / box.width;\n const scaleY = p.height / box.height;\n this.children().forEach(child => {\n const o = new Point(box).transform(new Matrix(child).inverse());\n child.scale(scaleX, scaleY, o.x, o.y);\n });\n return this;\n}\nfunction width(width, box = this.bbox()) {\n if (width == null) return box.width;\n return this.size(width, box.height, box);\n}\nfunction x(x, box = this.bbox()) {\n if (x == null) return box.x;\n return this.move(x, box.y, box);\n}\nfunction y(y, box = this.bbox()) {\n if (y == null) return box.y;\n return this.move(box.x, y, box);\n}\n\nvar containerGeometry = {\n __proto__: null,\n dmove: dmove,\n dx: dx,\n dy: dy,\n height: height,\n move: move,\n size: size,\n width: width,\n x: x,\n y: y\n};\n\nclass G extends Container {\n constructor(node, attrs = node) {\n super(nodeOrNew('g', node), attrs);\n }\n}\nextend(G, containerGeometry);\nregisterMethods({\n Container: {\n // Create a group element\n group: wrapWithAttrCheck(function () {\n return this.put(new G());\n })\n }\n});\nregister(G, 'G');\n\nclass A extends Container {\n constructor(node, attrs = node) {\n super(nodeOrNew('a', node), attrs);\n }\n\n // Link target attribute\n target(target) {\n return this.attr('target', target);\n }\n\n // Link url\n to(url) {\n return this.attr('href', url, xlink);\n }\n}\nextend(A, containerGeometry);\nregisterMethods({\n Container: {\n // Create a hyperlink element\n link: wrapWithAttrCheck(function (url) {\n return this.put(new A()).to(url);\n })\n },\n Element: {\n unlink() {\n const link = this.linker();\n if (!link) return this;\n const parent = link.parent();\n if (!parent) {\n return this.remove();\n }\n const index = parent.index(link);\n parent.add(this, index);\n link.remove();\n return this;\n },\n linkTo(url) {\n // reuse old link if possible\n let link = this.linker();\n if (!link) {\n link = new A();\n this.wrap(link);\n }\n if (typeof url === 'function') {\n url.call(link, link);\n } else {\n link.to(url);\n }\n return this;\n },\n linker() {\n const link = this.parent();\n if (link && link.node.nodeName.toLowerCase() === 'a') {\n return link;\n }\n return null;\n }\n }\n});\nregister(A, 'A');\n\nclass Mask extends Container {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('mask', node), attrs);\n }\n\n // Unmask all masked elements and remove itself\n remove() {\n // unmask all targets\n this.targets().forEach(function (el) {\n el.unmask();\n });\n\n // remove mask from parent\n return super.remove();\n }\n targets() {\n return baseFind('svg [mask*=' + this.id() + ']');\n }\n}\nregisterMethods({\n Container: {\n mask: wrapWithAttrCheck(function () {\n return this.defs().put(new Mask());\n })\n },\n Element: {\n // Distribute mask to svg element\n masker() {\n return this.reference('mask');\n },\n maskWith(element) {\n // use given mask or create a new one\n const masker = element instanceof Mask ? element : this.parent().mask().add(element);\n\n // apply mask\n return this.attr('mask', 'url(#' + masker.id() + ')');\n },\n // Unmask element\n unmask() {\n return this.attr('mask', null);\n }\n }\n});\nregister(Mask, 'Mask');\n\nclass Stop extends Element {\n constructor(node, attrs = node) {\n super(nodeOrNew('stop', node), attrs);\n }\n\n // add color stops\n update(o) {\n if (typeof o === 'number' || o instanceof SVGNumber) {\n o = {\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n };\n }\n\n // set attributes\n if (o.opacity != null) this.attr('stop-opacity', o.opacity);\n if (o.color != null) this.attr('stop-color', o.color);\n if (o.offset != null) this.attr('offset', new SVGNumber(o.offset));\n return this;\n }\n}\nregisterMethods({\n Gradient: {\n // Add a color stop\n stop: function (offset, color, opacity) {\n return this.put(new Stop()).update(offset, color, opacity);\n }\n }\n});\nregister(Stop, 'Stop');\n\nfunction cssRule(selector, rule) {\n if (!selector) return '';\n if (!rule) return selector;\n let ret = selector + '{';\n for (const i in rule) {\n ret += unCamelCase(i) + ':' + rule[i] + ';';\n }\n ret += '}';\n return ret;\n}\nclass Style extends Element {\n constructor(node, attrs = node) {\n super(nodeOrNew('style', node), attrs);\n }\n addText(w = '') {\n this.node.textContent += w;\n return this;\n }\n font(name, src, params = {}) {\n return this.rule('@font-face', {\n fontFamily: name,\n src: src,\n ...params\n });\n }\n rule(selector, obj) {\n return this.addText(cssRule(selector, obj));\n }\n}\nregisterMethods('Dom', {\n style(selector, obj) {\n return this.put(new Style()).rule(selector, obj);\n },\n fontface(name, src, params) {\n return this.put(new Style()).font(name, src, params);\n }\n});\nregister(Style, 'Style');\n\nclass TextPath extends Text {\n // Initialize node\n constructor(node, attrs = node) {\n super(nodeOrNew('textPath', node), attrs);\n }\n\n // return the array of the path track element\n array() {\n const track = this.track();\n return track ? track.array() : null;\n }\n\n // Plot path if any\n plot(d) {\n const track = this.track();\n let pathArray = null;\n if (track) {\n pathArray = track.plot(d);\n }\n return d == null ? pathArray : this;\n }\n\n // Get the path element\n track() {\n return this.reference('href');\n }\n}\nregisterMethods({\n Container: {\n textPath: wrapWithAttrCheck(function (text, path) {\n // Convert text to instance if needed\n if (!(text instanceof Text)) {\n text = this.text(text);\n }\n return text.path(path);\n })\n },\n Text: {\n // Create path for text to run on\n path: wrapWithAttrCheck(function (track, importNodes = true) {\n const textPath = new TextPath();\n\n // if track is a path, reuse it\n if (!(track instanceof Path)) {\n // create path element\n track = this.defs().path(track);\n }\n\n // link textPath to path and add content\n textPath.attr('href', '#' + track, xlink);\n\n // Transplant all nodes from text to textPath\n let node;\n if (importNodes) {\n while (node = this.node.firstChild) {\n textPath.node.appendChild(node);\n }\n }\n\n // add textPath element as child node and return textPath\n return this.put(textPath);\n }),\n // Get the textPath children\n textPath() {\n return this.findOne('textPath');\n }\n },\n Path: {\n // creates a textPath from this path\n text: wrapWithAttrCheck(function (text) {\n // Convert text to instance if needed\n if (!(text instanceof Text)) {\n text = new Text().addTo(this.parent()).text(text);\n }\n\n // Create textPath from text and path and return\n return text.path(this);\n }),\n targets() {\n return baseFind('svg textPath').filter(node => {\n return (node.attr('href') || '').includes(this.id());\n });\n\n // Does not work in IE11. Use when IE support is dropped\n // return baseFind('svg textPath[*|href*=' + this.id() + ']')\n }\n }\n});\nTextPath.prototype.MorphArray = PathArray;\nregister(TextPath, 'TextPath');\n\nclass Use extends Shape {\n constructor(node, attrs = node) {\n super(nodeOrNew('use', node), attrs);\n }\n\n // Use element as a reference\n use(element, file) {\n // Set lined element\n return this.attr('href', (file || '') + '#' + element, xlink);\n }\n}\nregisterMethods({\n Container: {\n // Create a use element\n use: wrapWithAttrCheck(function (element, file) {\n return this.put(new Use()).use(element, file);\n })\n }\n});\nregister(Use, 'Use');\n\n/* Optional Modules */\nconst SVG = makeInstance;\nextend([Svg, Symbol, Image, Pattern, Marker], getMethodsFor('viewbox'));\nextend([Line, Polyline, Polygon, Path], getMethodsFor('marker'));\nextend(Text, getMethodsFor('Text'));\nextend(Path, getMethodsFor('Path'));\nextend(Defs, getMethodsFor('Defs'));\nextend([Text, Tspan], getMethodsFor('Tspan'));\nextend([Rect, Ellipse, Gradient, Runner], getMethodsFor('radius'));\nextend(EventTarget, getMethodsFor('EventTarget'));\nextend(Dom, getMethodsFor('Dom'));\nextend(Element, getMethodsFor('Element'));\nextend(Shape, getMethodsFor('Shape'));\nextend([Container, Fragment], getMethodsFor('Container'));\nextend(Gradient, getMethodsFor('Gradient'));\nextend(Runner, getMethodsFor('Runner'));\nList.extend(getMethodNames());\nregisterMorphableType([SVGNumber, Color, Box, Matrix, SVGArray, PointArray, PathArray, Point]);\nmakeMorphable();\n\nexport { A, Animator, SVGArray as Array, Box, Circle, ClipPath, Color, Container, Controller, Defs, Dom, Ease, Element, Ellipse, EventTarget, ForeignObject, Fragment, G, Gradient, Image, Line, List, Marker, Mask, Matrix, Morphable, NonMorphable, SVGNumber as Number, ObjectBag, PID, Path, PathArray, Pattern, Point, PointArray, Polygon, Polyline, Queue, Rect, Runner, SVG, Shape, Spring, Stop, Style, Svg, Symbol, Text, TextPath, Timeline, TransformBag, Tspan, Use, adopt, assignNewId, clearEvents, create, defaults, dispatch, easing, eid, extend, baseFind as find, getClass, getEventTarget, getEvents, getWindow, makeInstance, makeMorphable, mockAdopt, namespaces, nodeOrNew, off, on, parser, regex, register, registerMorphableType, registerWindow, restoreWindow, root, saveWindow, utils, windowEvents, withWindow, wrapWithAttrCheck };\n//# sourceMappingURL=svg.esm.js.map\n","import {SVG} from '@svgdotjs/svg.js';\n\n// Source: workflow-svg.js project. Adapted to not be an external requirement to make it easier for the builder to work.\nexport function RecipientFlow() {\n let _json = {entities: []} as Record<string, any>;\n let _draw;\n let _lines = [];\n\n function initalize(id, width, height) {\n _draw = SVG().addTo(id).size(width, height);\n\n _draw.entities = [];\n _draw.lines = _draw.group();\n _draw.labels = _draw.group();\n }\n\n function _renderEntities(_draw, entity) {\n const group = _draw.group().attr({id: entity.id});\n _draw.entities.push(group);\n\n //assginment and default values for entities\n entity.background_color = entity.background_color ? entity.background_color : '#f06';\n entity.color = entity.color ? entity.color : '#ffffff';\n entity.radius = entity.radius ? entity.radius : 0;\n\n //the real entity\n group.entity = group\n .rect(entity.width, entity.height)\n .cx(entity.width / 2)\n .cy(entity.height / 2)\n .attr({fill: '#ffffff', stroke: entity.color, ['stroke-width']: 2})\n .radius(entity.radius);\n\n if (entity.class) {\n group.entity.attr('class', entity.class);\n }\n\n group\n .plain(entity.text)\n .cx(14)\n .cy(entity.height / 2 + 6)\n .attr({fill: entity.color});\n\n group.move(entity.x, entity.y);\n }\n\n function _renderLabels() {\n if (_json.labels && _json.labels.length > 0) {\n _json.labels.forEach(l => {\n _draw.labels.text(l.value).x(l.x).y(l.y);\n });\n }\n }\n\n function _renderPolylines(_draw, _lines) {\n _lines.forEach(line => _renderOnePolyline(_draw, line));\n }\n\n function _renderOnePolyline(_draw, line) {\n let polyline = '';\n\n const line_color = line.color || '#4c56cb';\n const from = _draw.findOne('#' + line.from.element);\n const to = _draw.findOne('#' + line.to.element);\n const pointsInBetween = _calculatePointsInBetween(line, from, to);\n\n //start point\n polyline += _calculateX(from, line.from.point) + ',' + _calculateY(from, line.from.point) + ' ';\n\n // points between them\n pointsInBetween.forEach(p => (polyline += p.x + ',' + p.y + ' '));\n\n if (line.to.point === 'top') {\n polyline += _calculateX(to, line.to.point) + ',' + _calculateY(to, line.to.point) + ' ';\n } else if (line.to.point === 'bottom') {\n polyline += _calculateX(to, line.to.point) + ',' + _calculateY(to, line.to.point) + ' ';\n } else {\n polyline += _calculateX(to, line.to.point) + ',' + _calculateY(to, line.to.point) + ' ';\n }\n\n if (!line.polyline) {\n line.polyline = _draw.lines.polyline(polyline).fill('none').stroke({color: line_color, width: 2, linecap: 'round', linejoin: 'round'}).attr('id', line.id);\n } else {\n line.polyline.plot(polyline);\n }\n }\n\n function _calculatePointsInBetween(line, from, to) {\n const pointsInBetween = [];\n\n const y1 = _calculateY(from, line.from.point);\n const y2 = _calculateY(to, line.to.point);\n const x1 = _calculateX(from, line.from.point);\n const x2 = _calculateX(to, line.to.point);\n\n const p1 = _translatePositionToNumber(line.from.point);\n const p2 = _translatePositionToNumber(line.to.point);\n const code = p1 - p2;\n\n // same position\n if (code === 0) {\n if (line.from.point === 'top') {\n if (y1 <= y2) {\n pointsInBetween.push({x: x1, y: y1 - 20});\n pointsInBetween.push({x: x2, y: y1 - 20});\n } else {\n pointsInBetween.push({x: x1, y: y2 - 20});\n pointsInBetween.push({x: x2, y: y2 - 20});\n }\n } else if (line.from.point === 'bottom') {\n if (y1 <= y2) {\n pointsInBetween.push({x: x1, y: y2 + 20});\n pointsInBetween.push({x: x2, y: y2 + 20});\n } else {\n pointsInBetween.push({x: x1, y: y1 + 20});\n pointsInBetween.push({x: x2, y: y1 + 20});\n }\n } else {\n if (x1 <= x2) {\n pointsInBetween.push({x: x2 + 20, y: y1});\n pointsInBetween.push({x: x2 + 20, y: y2});\n } else {\n pointsInBetween.push({x: x1 + 20, y: y1});\n pointsInBetween.push({x: x1 + 20, y: y2});\n }\n }\n }\n\n // on the opposite site\n if (code === 2 || code === -2) {\n // top or bottom\n if (x1 !== x2) {\n pointsInBetween.push({x: x1, y: y2 + (y1 - y2) / 2});\n pointsInBetween.push({x: x2, y: y2 + (y1 - y2) / 2});\n }\n }\n\n // corner cases\n if (code === 1 || code === -1 || code === 3 || code === -3) {\n if (line.from.point === 'top') {\n if (y1 < y2 + 20) {\n pointsInBetween.push({x: x1, y: y1 - 20});\n pointsInBetween.push({x: x2 + 20, y: y1 - 20});\n pointsInBetween.push({x: x2 + 20, y: y2});\n } else {\n pointsInBetween.push({x: x1, y: y2});\n }\n }\n\n if (line.from.point === 'bottom') {\n if (y1 > y2 - 20) {\n pointsInBetween.push({x: x1, y: y1 + 20});\n pointsInBetween.push({x: x2 + 20, y: y1 + 20});\n pointsInBetween.push({x: x2 + 20, y: y2});\n } else {\n pointsInBetween.push({x: x1, y: y2});\n }\n }\n }\n\n return pointsInBetween;\n }\n\n function _translatePositionToNumber(position) {\n switch (position) {\n case 'top':\n return 0;\n case 'bottom':\n return 2;\n default:\n return 3;\n }\n }\n\n function _calculateX(group, position) {\n const width = group.entity.attr('width');\n const x = group.entity.attr('x');\n\n switch (position) {\n case 'top':\n case 'bottom':\n return x + width / 2;\n default:\n return x - width / 2;\n }\n }\n\n function _calculateY(group, position) {\n const height = group.entity.attr('height');\n const y = group.entity.attr('y');\n\n switch (position) {\n case 'top':\n return y;\n case 'bottom':\n return y + height;\n default:\n return y;\n }\n }\n\n function _update() {\n //clean up\n _draw.entities.forEach(entity => entity.remove());\n _draw.entities = [];\n\n _lines = [];\n\n // default values\n if (!_json.labels) {\n _json.labels = [];\n }\n\n _json.labels = _json.labels.map(l => {\n return {\n id: l.id,\n value: l.value ? l.value : '',\n x: l.x ? l.x : 0,\n y: l.y ? l.y : 0,\n color: l.color ? l.color : 'black',\n };\n });\n\n _json.entities.map(entity => {\n entity.type = entity.type ? entity.type : 'entity';\n\n if (entity.type === 'operation') {\n entity.height = entity.width;\n }\n });\n\n _renderLabels();\n\n _json.entities.forEach(entity => _renderEntities(_draw, entity));\n _lines = _json.lines; // needed to have no circular dependencies\n\n _renderPolylines(_draw, _lines);\n }\n\n function update(json) {\n _json = json;\n _update();\n }\n\n return {\n initalize,\n update,\n };\n}\n","@import '../../../theme.scss';\n\nverdocs-status-indicator {\n display: flex;\n font-size: 18px;\n flex-wrap: nowrap;\n border-radius: 6px;\n color: $label-color;\n align-items: center;\n flex-direction: row;\n font-family: $primary-font;\n\n &.has-document:hover {\n cursor: pointer;\n background: rgba(0, 0, 0, 0.1);\n }\n\n .icon {\n width: 25px;\n height: 25px;\n margin: 0 10px 0 0;\n }\n\n &.dark {\n color: $verdocs-grey-4;\n }\n\n &.small {\n font-size: 16px;\n\n .icon {\n width: 20px;\n height: 20px;\n margin: 0 8px 0 0;\n }\n }\n\n .content {\n white-space: nowrap;\n }\n\n .detail-panel {\n display: none;\n\n background: $verdocs-grey-4;\n border: 1px solid $verdocs-bg-5;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n border-radius: 10px;\n font-weight: 500;\n\n h1 {\n font-size: $verdocs-h1-size;\n color: $verdocs-grey-0;\n }\n }\n\n .detail-panel[data-show] {\n display: flex;\n }\n}\n","import {RecipientFlow} from './recipient-flow';\nimport {createPopper, Instance} from '@popperjs/core';\nimport {Component, Prop, Host, h, State} from '@stencil/core';\nimport {formatFullName, IEnvelope, TEnvelopeStatus, TRecipientStatus} from '@verdocs/js-sdk';\n\nconst AcceptedDark = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12.5\" cy=\"12.5\" r=\"11.5\" stroke=\"white\" stroke-width=\"2\"/><path d=\"M11.728 15.968C11.7067 15.9893 11.7013 16.0107 11.712 16.032C11.7227 16.0533 11.744 16.064 11.776 16.064H16.112C16.1653 16.064 16.208 16.0853 16.24 16.128C16.2827 16.16 16.304 16.2027 16.304 16.256V17.808C16.304 17.8613 16.2827 17.9093 16.24 17.952C16.208 17.984 16.1653 18 16.112 18H8.912C8.85867 18 8.81067 17.984 8.768 17.952C8.736 17.9093 8.72 17.8613 8.72 17.808V16.336C8.72 16.24 8.752 16.16 8.816 16.096C9.33867 15.584 9.872 15.0293 10.416 14.432C10.96 13.824 11.3013 13.4453 11.44 13.296C11.7387 12.944 12.0427 12.608 12.352 12.288C13.3227 11.2107 13.808 10.4107 13.808 9.888C13.808 9.51467 13.6747 9.21067 13.408 8.976C13.1413 8.73067 12.7947 8.608 12.368 8.608C11.9413 8.608 11.5947 8.73067 11.328 8.976C11.0613 9.21067 10.928 9.52533 10.928 9.92V10.32C10.928 10.3733 10.9067 10.4213 10.864 10.464C10.832 10.496 10.7893 10.512 10.736 10.512H8.848C8.79467 10.512 8.74667 10.496 8.704 10.464C8.672 10.4213 8.656 10.3733 8.656 10.32V9.568C8.688 8.992 8.86933 8.48533 9.2 8.048C9.53067 7.6 9.968 7.25867 10.512 7.024C11.0667 6.78933 11.6853 6.672 12.368 6.672C13.1253 6.672 13.7813 6.816 14.336 7.104C14.9013 7.38133 15.3333 7.76 15.632 8.24C15.9413 8.72 16.096 9.25333 16.096 9.84C16.096 10.288 15.984 10.7467 15.76 11.216C15.536 11.6853 15.2 12.192 14.752 12.736C14.4213 13.152 14.064 13.5627 13.68 13.968C13.296 14.3733 12.7253 14.96 11.968 15.728L11.728 15.968Z\" fill=\"white\"/></svg>`;\nconst AcceptedLight = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12.5\" cy=\"12.5\" r=\"11.5\" stroke=\"#654DCB\" stroke-width=\"2\"/><path d=\"M11.728 15.968C11.7067 15.9893 11.7013 16.0107 11.712 16.032C11.7227 16.0533 11.744 16.064 11.776 16.064H16.112C16.1653 16.064 16.208 16.0853 16.24 16.128C16.2827 16.16 16.304 16.2027 16.304 16.256V17.808C16.304 17.8613 16.2827 17.9093 16.24 17.952C16.208 17.984 16.1653 18 16.112 18H8.912C8.85867 18 8.81067 17.984 8.768 17.952C8.736 17.9093 8.72 17.8613 8.72 17.808V16.336C8.72 16.24 8.752 16.16 8.816 16.096C9.33867 15.584 9.872 15.0293 10.416 14.432C10.96 13.824 11.3013 13.4453 11.44 13.296C11.7387 12.944 12.0427 12.608 12.352 12.288C13.3227 11.2107 13.808 10.4107 13.808 9.888C13.808 9.51467 13.6747 9.21067 13.408 8.976C13.1413 8.73067 12.7947 8.608 12.368 8.608C11.9413 8.608 11.5947 8.73067 11.328 8.976C11.0613 9.21067 10.928 9.52533 10.928 9.92V10.32C10.928 10.3733 10.9067 10.4213 10.864 10.464C10.832 10.496 10.7893 10.512 10.736 10.512H8.848C8.79467 10.512 8.74667 10.496 8.704 10.464C8.672 10.4213 8.656 10.3733 8.656 10.32V9.568C8.688 8.992 8.86933 8.48533 9.2 8.048C9.53067 7.6 9.968 7.25867 10.512 7.024C11.0667 6.78933 11.6853 6.672 12.368 6.672C13.1253 6.672 13.7813 6.816 14.336 7.104C14.9013 7.38133 15.3333 7.76 15.632 8.24C15.9413 8.72 16.096 9.25333 16.096 9.84C16.096 10.288 15.984 10.7467 15.76 11.216C15.536 11.6853 15.2 12.192 14.752 12.736C14.4213 13.152 14.064 13.5627 13.68 13.968C13.296 14.3733 12.7253 14.96 11.968 15.728L11.728 15.968Z\" fill=\"#654DCB\"/></svg>`;\nconst CanceledDark = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 24C15.1826 24 18.2348 22.7357 20.4853 20.4853C22.7357 18.2348 24 15.1826 24 12C24 8.8174 22.7357 5.76516 20.4853 3.51472C18.2348 1.26428 15.1826 0 12 0C8.8174 0 5.76516 1.26428 3.51472 3.51472C1.26428 5.76516 0 8.8174 0 12C0 15.1826 1.26428 18.2348 3.51472 20.4853C5.76516 22.7357 8.8174 24 12 24V24ZM9 7.5C8.60218 7.5 8.22064 7.65804 7.93934 7.93934C7.65804 8.22064 7.5 8.60218 7.5 9V15C7.5 15.3978 7.65804 15.7794 7.93934 16.0607C8.22064 16.342 8.60218 16.5 9 16.5H15C15.3978 16.5 15.7794 16.342 16.0607 16.0607C16.342 15.7794 16.5 15.3978 16.5 15V9C16.5 8.60218 16.342 8.22064 16.0607 7.93934C15.7794 7.65804 15.3978 7.5 15 7.5H9Z\" fill=\"#9095B3\"/></svg>`;\nconst CanceledLight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 24C15.1826 24 18.2348 22.7357 20.4853 20.4853C22.7357 18.2348 24 15.1826 24 12C24 8.8174 22.7357 5.76516 20.4853 3.51472C18.2348 1.26428 15.1826 0 12 0C8.8174 0 5.76516 1.26428 3.51472 3.51472C1.26428 5.76516 0 8.8174 0 12C0 15.1826 1.26428 18.2348 3.51472 20.4853C5.76516 22.7357 8.8174 24 12 24V24ZM9 7.5C8.60218 7.5 8.22064 7.65804 7.93934 7.93934C7.65804 8.22064 7.5 8.60218 7.5 9V15C7.5 15.3978 7.65804 15.7794 7.93934 16.0607C8.22064 16.342 8.60218 16.5 9 16.5H15C15.3978 16.5 15.7794 16.342 16.0607 16.0607C16.342 15.7794 16.5 15.3978 16.5 15V9C16.5 8.60218 16.342 8.22064 16.0607 7.93934C15.7794 7.65804 15.3978 7.5 15 7.5H9Z\" fill=\"#9095B3\"/></svg>`;\nconst CompletedDark = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.7152 2.35464C7.71225 2.27504 8.65876 1.88287 9.41995 1.23399C10.2797 0.501758 11.3721 0.0996094 12.5013 0.0996094C13.6306 0.0996094 14.723 0.501758 15.5827 1.23399C16.3439 1.88287 17.2904 2.27504 18.2875 2.35464C19.4135 2.44463 20.4706 2.93273 21.2693 3.73145C22.068 4.53017 22.5561 5.58727 22.6461 6.71324C22.7251 7.70989 23.1173 8.65694 23.7667 9.41799C24.499 10.2777 24.9011 11.3701 24.9011 12.4994C24.9011 13.6287 24.499 14.7211 23.7667 15.5808C23.1179 16.342 22.7257 17.2885 22.6461 18.2855C22.5561 19.4115 22.068 20.4686 21.2693 21.2673C20.4706 22.0661 19.4135 22.5542 18.2875 22.6441C17.2904 22.7237 16.3439 23.1159 15.5827 23.7648C14.723 24.497 13.6306 24.8992 12.5013 24.8992C11.3721 24.8992 10.2797 24.497 9.41995 23.7648C8.65876 23.1159 7.71225 22.7237 6.7152 22.6441C5.58923 22.5542 4.53213 22.0661 3.73341 21.2673C2.93469 20.4686 2.44658 19.4115 2.35659 18.2855C2.27699 17.2885 1.88482 16.342 1.23595 15.5808C0.503711 14.7211 0.101562 13.6287 0.101562 12.4994C0.101562 11.3701 0.503711 10.2777 1.23595 9.41799C1.88482 8.65681 2.27699 7.71029 2.35659 6.71324C2.44658 5.58727 2.93469 4.53017 3.73341 3.73145C4.53213 2.93273 5.58923 2.44463 6.7152 2.35464V2.35464ZM18.2472 10.4952C18.5295 10.2029 18.6858 9.81138 18.6822 9.40497C18.6787 8.99857 18.5157 8.60981 18.2283 8.32242C17.9409 8.03504 17.5522 7.87203 17.1458 7.8685C16.7394 7.86497 16.3478 8.0212 16.0555 8.30354L10.9513 13.4077L8.9472 11.4035C8.65486 11.1212 8.26333 10.965 7.85692 10.9685C7.45052 10.972 7.06176 11.135 6.77438 11.4224C6.48699 11.7098 6.32398 12.0986 6.32045 12.505C6.31692 12.9114 6.47315 13.3029 6.7555 13.5952L9.8555 16.6952C10.1462 16.9858 10.5403 17.1491 10.9513 17.1491C11.3624 17.1491 11.7565 16.9858 12.0472 16.6952L18.2472 10.4952V10.4952Z\" fill=\"#63C58E\"/></svg>`;\nconst CompletedLight = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.7152 2.35464C7.71225 2.27504 8.65876 1.88287 9.41995 1.23399C10.2797 0.501758 11.3721 0.0996094 12.5013 0.0996094C13.6306 0.0996094 14.723 0.501758 15.5827 1.23399C16.3439 1.88287 17.2904 2.27504 18.2875 2.35464C19.4135 2.44463 20.4706 2.93273 21.2693 3.73145C22.068 4.53017 22.5561 5.58727 22.6461 6.71324C22.7251 7.70989 23.1173 8.65694 23.7667 9.41799C24.499 10.2777 24.9011 11.3701 24.9011 12.4994C24.9011 13.6287 24.499 14.7211 23.7667 15.5808C23.1179 16.342 22.7257 17.2885 22.6461 18.2855C22.5561 19.4115 22.068 20.4686 21.2693 21.2673C20.4706 22.0661 19.4135 22.5542 18.2875 22.6441C17.2904 22.7237 16.3439 23.1159 15.5827 23.7648C14.723 24.497 13.6306 24.8992 12.5013 24.8992C11.3721 24.8992 10.2797 24.497 9.41995 23.7648C8.65876 23.1159 7.71225 22.7237 6.7152 22.6441C5.58923 22.5542 4.53213 22.0661 3.73341 21.2673C2.93469 20.4686 2.44658 19.4115 2.35659 18.2855C2.27699 17.2885 1.88482 16.342 1.23595 15.5808C0.503711 14.7211 0.101562 13.6287 0.101562 12.4994C0.101562 11.3701 0.503711 10.2777 1.23595 9.41799C1.88482 8.65681 2.27699 7.71029 2.35659 6.71324C2.44658 5.58727 2.93469 4.53017 3.73341 3.73145C4.53213 2.93273 5.58923 2.44463 6.7152 2.35464V2.35464ZM18.2472 10.4952C18.5295 10.2029 18.6858 9.81138 18.6822 9.40497C18.6787 8.99857 18.5157 8.60981 18.2283 8.32242C17.9409 8.03504 17.5522 7.87203 17.1458 7.8685C16.7394 7.86497 16.3478 8.0212 16.0555 8.30354L10.9513 13.4077L8.9472 11.4035C8.65486 11.1212 8.26333 10.965 7.85692 10.9685C7.45052 10.972 7.06176 11.135 6.77438 11.4224C6.48699 11.7098 6.32398 12.0986 6.32045 12.505C6.31692 12.9114 6.47315 13.3029 6.7555 13.5952L9.8555 16.6952C10.1462 16.9858 10.5403 17.1491 10.9513 17.1491C11.3624 17.1491 11.7565 16.9858 12.0472 16.6952L18.2472 10.4952V10.4952Z\" fill=\"#50BE80\"/></svg>`;\nconst DeclinedDark = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M24 12C24 15.1826 22.7357 18.2348 20.4853 20.4853C18.2348 22.7357 15.1826 24 12 24C8.8174 24 5.76516 22.7357 3.51472 20.4853C1.26428 18.2348 0 15.1826 0 12C0 8.8174 1.26428 5.76516 3.51472 3.51472C5.76516 1.26428 8.8174 0 12 0C15.1826 0 18.2348 1.26428 20.4853 3.51472C22.7357 5.76516 24 8.8174 24 12V12ZM13.5 18C13.5 18.3978 13.342 18.7794 13.0607 19.0607C12.7794 19.342 12.3978 19.5 12 19.5C11.6022 19.5 11.2206 19.342 10.9393 19.0607C10.658 18.7794 10.5 18.3978 10.5 18C10.5 17.6022 10.658 17.2206 10.9393 16.9393C11.2206 16.658 11.6022 16.5 12 16.5C12.3978 16.5 12.7794 16.658 13.0607 16.9393C13.342 17.2206 13.5 17.6022 13.5 18V18ZM12 4.5C11.6022 4.5 11.2206 4.65804 10.9393 4.93934C10.658 5.22064 10.5 5.60218 10.5 6V12C10.5 12.3978 10.658 12.7794 10.9393 13.0607C11.2206 13.342 11.6022 13.5 12 13.5C12.3978 13.5 12.7794 13.342 13.0607 13.0607C13.342 12.7794 13.5 12.3978 13.5 12V6C13.5 5.60218 13.342 5.22064 13.0607 4.93934C12.7794 4.65804 12.3978 4.5 12 4.5Z\" fill=\"#F95353\"/></svg>`;\nconst DeclinedLight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M24 12C24 15.1826 22.7357 18.2348 20.4853 20.4853C18.2348 22.7357 15.1826 24 12 24C8.8174 24 5.76516 22.7357 3.51472 20.4853C1.26428 18.2348 0 15.1826 0 12C0 8.8174 1.26428 5.76516 3.51472 3.51472C5.76516 1.26428 8.8174 0 12 0C15.1826 0 18.2348 1.26428 20.4853 3.51472C22.7357 5.76516 24 8.8174 24 12V12ZM13.5 18C13.5 18.3978 13.342 18.7794 13.0607 19.0607C12.7794 19.342 12.3978 19.5 12 19.5C11.6022 19.5 11.2206 19.342 10.9393 19.0607C10.658 18.7794 10.5 18.3978 10.5 18C10.5 17.6022 10.658 17.2206 10.9393 16.9393C11.2206 16.658 11.6022 16.5 12 16.5C12.3978 16.5 12.7794 16.658 13.0607 16.9393C13.342 17.2206 13.5 17.6022 13.5 18V18ZM12 4.5C11.6022 4.5 11.2206 4.65804 10.9393 4.93934C10.658 5.22064 10.5 5.60218 10.5 6V12C10.5 12.3978 10.658 12.7794 10.9393 13.0607C11.2206 13.342 11.6022 13.5 12 13.5C12.3978 13.5 12.7794 13.342 13.0607 13.0607C13.342 12.7794 13.5 12.3978 13.5 12V6C13.5 5.60218 13.342 5.22064 13.0607 4.93934C12.7794 4.65804 12.3978 4.5 12 4.5Z\" fill=\"#FF0000\"/></svg>`;\nconst InProgressDark = `<svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.7917 9.625L18.6667 13.5M18.6667 13.5L14.7917 17.375M18.6667 13.5H8.33333M25.125 13.5C25.125 15.0266 24.8243 16.5383 24.2401 17.9487C23.6559 19.3591 22.7996 20.6406 21.7201 21.7201C20.6406 22.7996 19.3591 23.6559 17.9487 24.2401C16.5383 24.8243 15.0266 25.125 13.5 25.125C11.9734 25.125 10.4617 24.8243 9.0513 24.2401C7.64089 23.6559 6.35936 22.7996 5.27988 21.7201C4.2004 20.6406 3.34411 19.3591 2.7599 17.9487C2.17569 16.5383 1.875 15.0266 1.875 13.5C1.875 10.4169 3.09977 7.45999 5.27988 5.27988C7.45999 3.09977 10.4169 1.875 13.5 1.875C16.5831 1.875 19.54 3.09977 21.7201 5.27988C23.9002 7.45999 25.125 10.4169 25.125 13.5Z\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst InProgressLight = `<svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.7917 9.625L18.6667 13.5M18.6667 13.5L14.7917 17.375M18.6667 13.5H8.33333M25.125 13.5C25.125 15.0266 24.8243 16.5383 24.2401 17.9487C23.6559 19.3591 22.7996 20.6406 21.7201 21.7201C20.6406 22.7996 19.3591 23.6559 17.9487 24.2401C16.5383 24.8243 15.0266 25.125 13.5 25.125C11.9734 25.125 10.4617 24.8243 9.0513 24.2401C7.64089 23.6559 6.35936 22.7996 5.27988 21.7201C4.2004 20.6406 3.34411 19.3591 2.7599 17.9487C2.17569 16.5383 1.875 15.0266 1.875 13.5C1.875 10.4169 3.09977 7.45999 5.27988 5.27988C7.45999 3.09977 10.4169 1.875 13.5 1.875C16.5831 1.875 19.54 3.09977 21.7201 5.27988C23.9002 7.45999 25.125 10.4169 25.125 13.5Z\" stroke=\"#654DCB\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst OpenedDark = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12.5\" cy=\"12.5\" r=\"11.5\" stroke=\"white\" stroke-width=\"2\"/><path d=\"M11.4 6.848C11.4533 6.816 11.5333 6.8 11.64 6.8H13.576C13.6293 6.8 13.672 6.82133 13.704 6.864C13.7467 6.896 13.768 6.93867 13.768 6.992V17.808C13.768 17.8613 13.7467 17.9093 13.704 17.952C13.672 17.984 13.6293 18 13.576 18H11.704C11.6507 18 11.6027 17.984 11.56 17.952C11.528 17.9093 11.512 17.8613 11.512 17.808V9.04C11.512 9.01867 11.5013 8.99733 11.48 8.976C11.4587 8.95467 11.4373 8.94933 11.416 8.96L9.832 9.392L9.768 9.408C9.672 9.408 9.624 9.34933 9.624 9.232L9.576 7.856C9.576 7.74933 9.624 7.67467 9.72 7.632L11.4 6.848Z\" fill=\"white\"/></svg>`;\nconst OpenedLight = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12.5\" cy=\"12.5\" r=\"11.5\" stroke=\"#654DCB\" stroke-width=\"2\"/><path d=\"M11.4 6.848C11.4533 6.816 11.5333 6.8 11.64 6.8H13.576C13.6293 6.8 13.672 6.82133 13.704 6.864C13.7467 6.896 13.768 6.93867 13.768 6.992V17.808C13.768 17.8613 13.7467 17.9093 13.704 17.952C13.672 17.984 13.6293 18 13.576 18H11.704C11.6507 18 11.6027 17.984 11.56 17.952C11.528 17.9093 11.512 17.8613 11.512 17.808V9.04C11.512 9.01867 11.5013 8.99733 11.48 8.976C11.4587 8.95467 11.4373 8.94933 11.416 8.96L9.832 9.392L9.768 9.408C9.672 9.408 9.624 9.34933 9.624 9.232L9.576 7.856C9.576 7.74933 9.624 7.67467 9.72 7.632L11.4 6.848Z\" fill=\"#654DCB\"/></svg>`;\nconst PendingDark = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.33333 12H7.345M12 12H12.0117M16.6667 12H16.6783M22.5 12C22.5 13.3789 22.2284 14.7443 21.7007 16.0182C21.1731 17.2921 20.3996 18.4496 19.4246 19.4246C18.4496 20.3996 17.2921 21.1731 16.0182 21.7007C14.7443 22.2284 13.3789 22.5 12 22.5C10.6211 22.5 9.25574 22.2284 7.98182 21.7007C6.70791 21.1731 5.55039 20.3996 4.57538 19.4246C3.60036 18.4496 2.82694 17.2921 2.29926 16.0182C1.77159 14.7443 1.5 13.3789 1.5 12C1.5 9.21523 2.60625 6.54451 4.57538 4.57538C6.54451 2.60625 9.21523 1.5 12 1.5C14.7848 1.5 17.4555 2.60625 19.4246 4.57538C21.3938 6.54451 22.5 9.21523 22.5 12Z\" stroke=\"#cccccc\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst PendingLight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.33333 12H7.345M12 12H12.0117M16.6667 12H16.6783M22.5 12C22.5 13.3789 22.2284 14.7443 21.7007 16.0182C21.1731 17.2921 20.3996 18.4496 19.4246 19.4246C18.4496 20.3996 17.2921 21.1731 16.0182 21.7007C14.7443 22.2284 13.3789 22.5 12 22.5C10.6211 22.5 9.25574 22.2284 7.98182 21.7007C6.70791 21.1731 5.55039 20.3996 4.57538 19.4246C3.60036 18.4496 2.82694 17.2921 2.29926 16.0182C1.77159 14.7443 1.5 13.3789 1.5 12C1.5 9.21523 2.60625 6.54451 4.57538 4.57538C6.54451 2.60625 9.21523 1.5 12 1.5C14.7848 1.5 17.4555 2.60625 19.4246 4.57538C21.3938 6.54451 22.5 9.21523 22.5 12Z\" stroke=\"#999999\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst SignedDark = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12.5\" cy=\"12.5\" r=\"11.5\" stroke=\"white\" stroke-width=\"2\"/><path d=\"M15.632 12.656C15.8453 13.1467 15.952 13.712 15.952 14.352C15.952 14.928 15.856 15.4613 15.664 15.952C15.408 16.6347 14.976 17.168 14.368 17.552C13.7707 17.936 13.0613 18.128 12.24 18.128C11.4293 18.128 10.7147 17.9253 10.096 17.52C9.488 17.1147 9.05067 16.5653 8.784 15.872C8.63467 15.456 8.54933 15.008 8.528 14.528C8.528 14.4 8.592 14.336 8.72 14.336H10.608C10.736 14.336 10.8 14.4 10.8 14.528C10.8427 14.88 10.9013 15.1413 10.976 15.312C11.072 15.5893 11.2267 15.808 11.44 15.968C11.664 16.1173 11.9253 16.192 12.224 16.192C12.8213 16.192 13.232 15.9307 13.456 15.408C13.6053 15.088 13.68 14.7147 13.68 14.288C13.68 13.7867 13.6 13.376 13.44 13.056C13.1947 12.5547 12.784 12.304 12.208 12.304C12.0907 12.304 11.968 12.3413 11.84 12.416C11.712 12.48 11.5573 12.576 11.376 12.704C11.3333 12.736 11.2907 12.752 11.248 12.752C11.184 12.752 11.136 12.72 11.104 12.656L10.16 11.328C10.1387 11.296 10.128 11.2587 10.128 11.216C10.128 11.152 10.1493 11.0987 10.192 11.056L12.736 8.832C12.7573 8.81067 12.7627 8.78933 12.752 8.768C12.752 8.74667 12.736 8.736 12.704 8.736H8.944C8.89067 8.736 8.84267 8.72 8.8 8.688C8.768 8.64533 8.752 8.59733 8.752 8.544V6.992C8.752 6.93867 8.768 6.896 8.8 6.864C8.84267 6.82133 8.89067 6.8 8.944 6.8H15.616C15.6693 6.8 15.712 6.82133 15.744 6.864C15.7867 6.896 15.808 6.93867 15.808 6.992V8.752C15.808 8.83733 15.7707 8.91733 15.696 8.992L13.6 10.912C13.5787 10.9333 13.568 10.9547 13.568 10.976C13.5787 10.9973 13.6053 11.008 13.648 11.008C14.576 11.1893 15.2373 11.7387 15.632 12.656Z\" fill=\"white\"/></svg>`;\nconst SignedLight = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12.5\" cy=\"12.5\" r=\"11.5\" stroke=\"#654DCB\" stroke-width=\"2\"/><path d=\"M15.632 12.656C15.8453 13.1467 15.952 13.712 15.952 14.352C15.952 14.928 15.856 15.4613 15.664 15.952C15.408 16.6347 14.976 17.168 14.368 17.552C13.7707 17.936 13.0613 18.128 12.24 18.128C11.4293 18.128 10.7147 17.9253 10.096 17.52C9.488 17.1147 9.05067 16.5653 8.784 15.872C8.63467 15.456 8.54933 15.008 8.528 14.528C8.528 14.4 8.592 14.336 8.72 14.336H10.608C10.736 14.336 10.8 14.4 10.8 14.528C10.8427 14.88 10.9013 15.1413 10.976 15.312C11.072 15.5893 11.2267 15.808 11.44 15.968C11.664 16.1173 11.9253 16.192 12.224 16.192C12.8213 16.192 13.232 15.9307 13.456 15.408C13.6053 15.088 13.68 14.7147 13.68 14.288C13.68 13.7867 13.6 13.376 13.44 13.056C13.1947 12.5547 12.784 12.304 12.208 12.304C12.0907 12.304 11.968 12.3413 11.84 12.416C11.712 12.48 11.5573 12.576 11.376 12.704C11.3333 12.736 11.2907 12.752 11.248 12.752C11.184 12.752 11.136 12.72 11.104 12.656L10.16 11.328C10.1387 11.296 10.128 11.2587 10.128 11.216C10.128 11.152 10.1493 11.0987 10.192 11.056L12.736 8.832C12.7573 8.81067 12.7627 8.78933 12.752 8.768C12.752 8.74667 12.736 8.736 12.704 8.736H8.944C8.89067 8.736 8.84267 8.72 8.8 8.688C8.768 8.64533 8.752 8.59733 8.752 8.544V6.992C8.752 6.93867 8.768 6.896 8.8 6.864C8.84267 6.82133 8.89067 6.8 8.944 6.8H15.616C15.6693 6.8 15.712 6.82133 15.744 6.864C15.7867 6.896 15.808 6.93867 15.808 6.992V8.752C15.808 8.83733 15.7707 8.91733 15.696 8.992L13.6 10.912C13.5787 10.9333 13.568 10.9547 13.568 10.976C13.5787 10.9973 13.6053 11.008 13.648 11.008C14.576 11.1893 15.2373 11.7387 15.632 12.656Z\" fill=\"#654DCB\"/></svg>`;\nconst SomeSignedDark = `<svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.62395 13.5009L12.2073 16.0842L17.374 10.9176M8.11916 4.06786C9.04568 3.99392 9.92527 3.6296 10.6327 3.02678C11.4322 2.34513 12.4484 1.9707 13.499 1.9707C14.5495 1.9707 15.5657 2.34513 16.3652 3.02678C17.0726 3.6296 17.9522 3.99392 18.8787 4.06786C19.926 4.15118 20.9092 4.60497 21.6521 5.34781C22.3949 6.09064 22.8487 7.07389 22.932 8.12111C23.0059 9.04764 23.3703 9.92723 23.9731 10.6347C24.6547 11.4341 25.0292 12.4503 25.0292 13.5009C25.0292 14.5515 24.6547 15.5677 23.9731 16.3671C23.3703 17.0746 23.0059 17.9542 22.932 18.8807C22.8487 19.9279 22.3949 20.9112 21.6521 21.654C20.9092 22.3968 19.926 22.8506 18.8787 22.9339C17.9522 23.0079 17.0726 23.3722 16.3652 23.975C15.5657 24.6567 14.5495 25.0311 13.499 25.0311C12.4484 25.0311 11.4322 24.6567 10.6327 23.975C9.92527 23.3722 9.04568 23.0079 8.11916 22.9339C7.07194 22.8506 6.08869 22.3968 5.34585 21.654C4.60302 20.9112 4.14923 19.9279 4.06591 18.8807C3.99196 17.9542 3.62765 17.0746 3.02483 16.3671C2.34318 15.5677 1.96875 14.5515 1.96875 13.5009C1.96875 12.4503 2.34318 11.4341 3.02483 10.6347C3.62765 9.92723 3.99196 9.04764 4.06591 8.12111C4.14923 7.07389 4.60302 6.09064 5.34585 5.34781C6.08869 4.60497 7.07194 4.15118 8.11916 4.06786V4.06786Z\" stroke=\"#63C58E\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst SomeSignedLight = `<svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.62395 13.5009L12.2073 16.0842L17.374 10.9176M8.11916 4.06786C9.04568 3.99392 9.92527 3.6296 10.6327 3.02678C11.4322 2.34513 12.4484 1.9707 13.499 1.9707C14.5495 1.9707 15.5657 2.34513 16.3652 3.02678C17.0726 3.6296 17.9522 3.99392 18.8787 4.06786C19.926 4.15118 20.9092 4.60497 21.6521 5.34781C22.3949 6.09064 22.8487 7.07389 22.932 8.12111C23.0059 9.04764 23.3703 9.92723 23.9731 10.6347C24.6547 11.4341 25.0292 12.4503 25.0292 13.5009C25.0292 14.5515 24.6547 15.5677 23.9731 16.3671C23.3703 17.0746 23.0059 17.9542 22.932 18.8807C22.8487 19.9279 22.3949 20.9112 21.6521 21.654C20.9092 22.3968 19.926 22.8506 18.8787 22.9339C17.9522 23.0079 17.0726 23.3722 16.3652 23.975C15.5657 24.6567 14.5495 25.0311 13.499 25.0311C12.4484 25.0311 11.4322 24.6567 10.6327 23.975C9.92527 23.3722 9.04568 23.0079 8.11916 22.9339C7.07194 22.8506 6.08869 22.3968 5.34585 21.654C4.60302 20.9112 4.14923 19.9279 4.06591 18.8807C3.99196 17.9542 3.62765 17.0746 3.02483 16.3671C2.34318 15.5677 1.96875 14.5515 1.96875 13.5009C1.96875 12.4503 2.34318 11.4341 3.02483 10.6347C3.62765 9.92723 3.99196 9.04764 4.06591 8.12111C4.14923 7.07389 4.60302 6.09064 5.34585 5.34781C6.08869 4.60497 7.07194 4.15118 8.11916 4.06786V4.06786Z\" stroke=\"#654DCB\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst SubmittedDark = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.7152 2.35464C7.71225 2.27504 8.65876 1.88287 9.41995 1.23399C10.2797 0.501758 11.3721 0.0996094 12.5013 0.0996094C13.6306 0.0996094 14.723 0.501758 15.5827 1.23399C16.3439 1.88287 17.2904 2.27504 18.2875 2.35464C19.4135 2.44463 20.4706 2.93273 21.2693 3.73145C22.068 4.53017 22.5561 5.58727 22.6461 6.71324C22.7251 7.70989 23.1173 8.65694 23.7667 9.41799C24.499 10.2777 24.9011 11.3701 24.9011 12.4994C24.9011 13.6287 24.499 14.7211 23.7667 15.5808C23.1179 16.342 22.7257 17.2885 22.6461 18.2855C22.5561 19.4115 22.068 20.4686 21.2693 21.2673C20.4706 22.0661 19.4135 22.5542 18.2875 22.6441C17.2904 22.7237 16.3439 23.1159 15.5827 23.7648C14.723 24.497 13.6306 24.8992 12.5013 24.8992C11.3721 24.8992 10.2797 24.497 9.41995 23.7648C8.65876 23.1159 7.71225 22.7237 6.7152 22.6441C5.58923 22.5542 4.53213 22.0661 3.73341 21.2673C2.93469 20.4686 2.44658 19.4115 2.35659 18.2855C2.27699 17.2885 1.88482 16.342 1.23595 15.5808C0.503711 14.7211 0.101562 13.6287 0.101562 12.4994C0.101562 11.3701 0.503711 10.2777 1.23595 9.41799C1.88482 8.65681 2.27699 7.71029 2.35659 6.71324C2.44658 5.58727 2.93469 4.53017 3.73341 3.73145C4.53213 2.93273 5.58923 2.44463 6.7152 2.35464V2.35464ZM18.2472 10.4952C18.5295 10.2029 18.6858 9.81138 18.6822 9.40497C18.6787 8.99857 18.5157 8.60981 18.2283 8.32242C17.9409 8.03504 17.5522 7.87203 17.1458 7.8685C16.7394 7.86497 16.3478 8.0212 16.0555 8.30354L10.9513 13.4077L8.9472 11.4035C8.65486 11.1212 8.26333 10.965 7.85692 10.9685C7.45052 10.972 7.06176 11.135 6.77438 11.4224C6.48699 11.7098 6.32398 12.0986 6.32045 12.505C6.31692 12.9114 6.47315 13.3029 6.7555 13.5952L9.8555 16.6952C10.1462 16.9858 10.5403 17.1491 10.9513 17.1491C11.3624 17.1491 11.7565 16.9858 12.0472 16.6952L18.2472 10.4952V10.4952Z\" fill=\"#63C58E\"/></svg>`;\nconst SubmittedLight = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.7152 2.35464C7.71225 2.27504 8.65876 1.88287 9.41995 1.23399C10.2797 0.501758 11.3721 0.0996094 12.5013 0.0996094C13.6306 0.0996094 14.723 0.501758 15.5827 1.23399C16.3439 1.88287 17.2904 2.27504 18.2875 2.35464C19.4135 2.44463 20.4706 2.93273 21.2693 3.73145C22.068 4.53017 22.5561 5.58727 22.6461 6.71324C22.7251 7.70989 23.1173 8.65694 23.7667 9.41799C24.499 10.2777 24.9011 11.3701 24.9011 12.4994C24.9011 13.6287 24.499 14.7211 23.7667 15.5808C23.1179 16.342 22.7257 17.2885 22.6461 18.2855C22.5561 19.4115 22.068 20.4686 21.2693 21.2673C20.4706 22.0661 19.4135 22.5542 18.2875 22.6441C17.2904 22.7237 16.3439 23.1159 15.5827 23.7648C14.723 24.497 13.6306 24.8992 12.5013 24.8992C11.3721 24.8992 10.2797 24.497 9.41995 23.7648C8.65876 23.1159 7.71225 22.7237 6.7152 22.6441C5.58923 22.5542 4.53213 22.0661 3.73341 21.2673C2.93469 20.4686 2.44658 19.4115 2.35659 18.2855C2.27699 17.2885 1.88482 16.342 1.23595 15.5808C0.503711 14.7211 0.101562 13.6287 0.101562 12.4994C0.101562 11.3701 0.503711 10.2777 1.23595 9.41799C1.88482 8.65681 2.27699 7.71029 2.35659 6.71324C2.44658 5.58727 2.93469 4.53017 3.73341 3.73145C4.53213 2.93273 5.58923 2.44463 6.7152 2.35464V2.35464ZM18.2472 10.4952C18.5295 10.2029 18.6858 9.81138 18.6822 9.40497C18.6787 8.99857 18.5157 8.60981 18.2283 8.32242C17.9409 8.03504 17.5522 7.87203 17.1458 7.8685C16.7394 7.86497 16.3478 8.0212 16.0555 8.30354L10.9513 13.4077L8.9472 11.4035C8.65486 11.1212 8.26333 10.965 7.85692 10.9685C7.45052 10.972 7.06176 11.135 6.77438 11.4224C6.48699 11.7098 6.32398 12.0986 6.32045 12.505C6.31692 12.9114 6.47315 13.3029 6.7555 13.5952L9.8555 16.6952C10.1462 16.9858 10.5403 17.1491 10.9513 17.1491C11.3624 17.1491 11.7565 16.9858 12.0472 16.6952L18.2472 10.4952V10.4952Z\" fill=\"#50BE80\"/></svg>`;\n\nconst ENTRY_WIDTH = 140;\nconst ENTRY_HEIGHT = 40;\nconst ENTRY_PADDING = 40;\n\n/**\n * Displays an icon and message describing a document's completion status. For convenience, the status may be passed in either\n * directly as a status field or the whole document object may be passed in.\n *\n * If the document is provided, the status flag will indicate the document's overall status. This also makes the component clickable\n * to display a popup panel with per-recipient status data.\n *\n * If the status is provided as a string it can be either a `TRecipientStatus` or `TDocumentStatus` value.\n */\n@Component({\n tag: 'verdocs-status-indicator',\n styleUrl: 'verdocs-status-indicator.scss',\n})\nexport class VerdocsStatusIndicator {\n private summaryComponent?: HTMLButtonElement;\n private detailPanel?: HTMLDivElement;\n private popper?: Instance;\n\n /**\n * The size (height) of the indicator. The small variant is suitable for use in densely populated components such as table rows.\n */\n @Prop() size: 'small' | 'normal' = 'normal';\n\n /**\n * The theme to use for diplay.\n */\n @Prop() theme?: 'dark' | 'light' = 'light';\n\n /**\n * The status to display.\n */\n // The accepted override is here because we don't actually have an official status for that yet, but we plan to add it\n @Prop() status?: TEnvelopeStatus | TRecipientStatus | 'accepted';\n\n /**\n * The document to display status for. Ignored if `status` is set directly.\n */\n @Prop() envelope?: IEnvelope;\n\n @State() isOpen: boolean;\n\n @State() containerId = `verdocs-status-indicator-${Math.random().toString(36).substring(2, 11)}`;\n\n recipientStatusIcons = [];\n\n componentDidLoad() {\n this.popper = createPopper(this.summaryComponent, this.detailPanel, {placement: 'bottom-start', modifiers: [{name: 'offset', options: {offset: [0, 10]}}]});\n\n if (this.envelope?.recipients) {\n const recipientsAtLevel = [];\n this.envelope.recipients.forEach(recipient => {\n const level = recipient.sequence - 1;\n recipientsAtLevel[level] ||= [];\n const id = `r-${level}-${recipientsAtLevel[level].length}`;\n recipientsAtLevel[level].push({...recipient, id});\n });\n\n const levelCount = Object.keys(recipientsAtLevel).length;\n\n const canvasHeight = levelCount * ENTRY_HEIGHT + (levelCount + 1) * ENTRY_PADDING;\n let canvasWidth = 0;\n Object.values(recipientsAtLevel).forEach(recipients => {\n let minW = recipients.length * ENTRY_WIDTH + (recipients.length + 1) * ENTRY_PADDING;\n if (minW > canvasWidth) {\n canvasWidth = minW;\n }\n });\n\n const entities = [];\n const lines = [];\n const statusIcons = [];\n\n let y = ENTRY_PADDING;\n Object.entries(recipientsAtLevel).forEach(([level, recipients]) => {\n // To center align here, we figure out how many items are per line and how much leftover space there would be if we just\n // drew them left-to-right. We add half of that as a left offset.\n const renderedItemsWidth = recipients.length * (ENTRY_WIDTH + ENTRY_PADDING);\n const leftoverSpace = canvasWidth - renderedItemsWidth;\n const leftOffset = ENTRY_PADDING / 2 + leftoverSpace / 2;\n\n recipients.forEach((recipient, index) => {\n const fullName = formatFullName(recipient);\n const entity = {\n id: recipient.id,\n text: fullName,\n icon: this.getStatusIcon(recipient.status),\n x: index * (ENTRY_WIDTH + ENTRY_PADDING) + leftOffset,\n y,\n width: ENTRY_WIDTH,\n height: ENTRY_HEIGHT,\n color: this.getStatusColor(recipient.status),\n radius: 8,\n };\n entities.push(entity);\n\n statusIcons.push({\n icon: this.getStatusIcon(recipient.status),\n x: index * (ENTRY_WIDTH + ENTRY_PADDING) + leftOffset + (ENTRY_WIDTH - 32),\n y: y + ENTRY_HEIGHT / 2 - 13,\n });\n\n recipientsAtLevel[+level - 1]?.forEach(prevRecip => {\n const line = {\n id: `line-${prevRecip.id}-${entity.id}`,\n from: {element: prevRecip.id, point: 'bottom'},\n to: {element: entity.id, point: 'top'},\n color: this.getStatusColor(recipient.status),\n };\n lines.push(line);\n });\n });\n\n y += ENTRY_HEIGHT + ENTRY_PADDING;\n });\n\n this.recipientStatusIcons = statusIcons;\n\n const diagram = RecipientFlow();\n diagram.initalize(`#${this.containerId}`, canvasWidth, canvasHeight);\n diagram.update({entities, lines});\n }\n }\n\n // See https://popper.js.org/docs/v2/tutorial/\n // What we're doing here is clearing event listeners when they aren't needed, to increase performance in lists\n showDropdown() {\n this.isOpen = true;\n this.detailPanel.setAttribute('data-show', '');\n this.detailPanel.removeAttribute('aria-hidden');\n\n this.popper?.setOptions(options => ({\n ...options,\n modifiers: [...options.modifiers, {name: 'eventListeners', enabled: true}],\n }));\n\n this.popper?.update();\n }\n\n handleHideDropdown(e: any) {\n if (e?.target?.localName === 'button' && e?.target?.className === 'arrow') {\n // This event is fired when a menu element is clicked because the button \"loses focus\" then too\n return;\n }\n\n this.hide();\n }\n\n toggleDropdown() {\n if (this.isOpen) {\n this.hide();\n } else {\n this.showDropdown();\n }\n }\n\n hide() {\n this.isOpen = false;\n this.detailPanel.removeAttribute('data-show');\n this.detailPanel.setAttribute('aria-hidden', 'true');\n this.popper?.setOptions(options => ({\n ...options,\n modifiers: [...options.modifiers, {name: 'eventListeners', enabled: false}],\n }));\n }\n\n getStatusColor(status: string) {\n switch (status) {\n case 'invited':\n case 'opened':\n case 'accepted':\n case 'signed':\n return '#654dcb';\n case 'some-signed':\n case 'submitted':\n case 'complete':\n return '#55bc81';\n case 'declined':\n return '#ff0000';\n case 'canceled':\n case 'in progress':\n case 'pending':\n default:\n return '#999999';\n }\n }\n\n getStatusIcon(status: string) {\n switch (status) {\n case 'accepted':\n return this.theme === 'light' ? AcceptedLight : AcceptedDark;\n case 'complete':\n return this.theme === 'light' ? CompletedLight : CompletedDark;\n case 'in progress':\n return this.theme === 'light' ? InProgressLight : InProgressDark;\n case 'canceled':\n return this.theme === 'light' ? CanceledLight : CanceledDark;\n case 'declined':\n return this.theme === 'light' ? DeclinedLight : DeclinedDark;\n case 'invited':\n return this.theme === 'light' ? InProgressLight : InProgressDark;\n case 'opened':\n return this.theme === 'light' ? OpenedLight : OpenedDark;\n case 'signed':\n return this.theme === 'light' ? SignedLight : SignedDark;\n case 'submitted':\n return this.theme === 'light' ? SubmittedLight : SubmittedDark;\n case 'some-signed':\n return this.theme === 'light' ? SomeSignedLight : SomeSignedDark;\n default:\n case 'pending':\n return this.theme === 'light' ? PendingLight : PendingDark;\n }\n }\n\n getStatusMessage(status: string) {\n switch (status) {\n case 'accepted':\n return 'Accepted';\n case 'complete':\n return 'Completed';\n case 'in progress':\n return 'In Progress';\n case 'canceled':\n return 'Cancelled';\n case 'declined':\n return 'Declined';\n case 'invited':\n return 'Invited';\n case 'opened':\n return 'Opened';\n case 'signed':\n return 'Signed';\n case 'submitted':\n return 'Submitted';\n case 'some-signed':\n return 'Partly Signed';\n case 'pending':\n return 'Pending';\n default:\n return status;\n }\n }\n\n render() {\n // The extra fallback for accepted is to future proof for when we add that.\n let status: string = this.status || this.envelope?.status || 'pending' || 'accepted';\n if (!this.status && this.envelope?.recipients) {\n const submittedRecipients = this.envelope.recipients.filter(r => r.status === 'submitted');\n if (submittedRecipients.length > 0 && submittedRecipients.length !== this.envelope.recipients.length) {\n status = 'some-signed';\n }\n }\n\n const icon = this.getStatusIcon(status);\n const statusMessage = this.getStatusMessage(status);\n\n return (\n <Host\n ref={el => (this.summaryComponent = el as HTMLButtonElement)}\n class={`${this.theme} ${this.size} ${this.envelope ? 'has-document' : ''}`}\n aria-label=\"Click to View Details\"\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.envelope && this.toggleDropdown();\n }}\n onBlur={e => this.envelope && this.handleHideDropdown(e)}\n >\n <span class=\"icon\" innerHTML={icon} />\n <span class=\"content\">{statusMessage}</span>\n\n <div class=\"detail-panel\" ref={el => (this.detailPanel = el as HTMLDivElement)}>\n <div id={`${this.containerId}`} />\n {this.recipientStatusIcons.map(icon => (\n <span innerHTML={icon.icon} style={{position: 'absolute', top: `${icon.y}px`, left: `${icon.x}px`}} />\n ))}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}