q2-tecton-elements 1.53.1 → 1.53.2

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 (413) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +59 -60
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
  4. package/dist/cjs/index-76f63767.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-badge_7.cjs.entry.js +4 -4
  10. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  13. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
  29. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  33. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-option.cjs.entry.js +2 -2
  36. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  37. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  38. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  43. package/dist/cjs/q2-select.cjs.entry.js +89 -13
  44. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  48. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  50. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  51. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  52. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  53. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  54. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  55. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  56. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  57. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  58. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  59. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  60. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  61. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  62. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  63. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  64. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  65. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  66. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  67. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  68. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  69. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  70. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  71. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  72. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  73. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  74. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  75. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  76. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  77. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
  78. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  79. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  80. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  81. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  82. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  83. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  84. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  85. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  86. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  87. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  88. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  89. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  90. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  91. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  92. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  93. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  94. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  95. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  96. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  97. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  98. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  99. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  100. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  101. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  102. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  103. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  104. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  105. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  106. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  107. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  108. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  109. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  110. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +5 -17
  111. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  112. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  113. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  114. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  115. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  116. package/dist/collection/components/q2-example/q2-example.js +1 -1
  117. package/dist/collection/components/q2-example/q2-example.js.map +1 -1
  118. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
  119. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
  120. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  121. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  122. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  123. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  124. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
  125. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
  126. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  127. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  128. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  129. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  130. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
  131. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  132. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
  133. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  134. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  135. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  136. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
  137. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  138. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
  139. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  140. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  141. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  142. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
  143. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  144. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
  145. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  146. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
  147. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  148. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
  149. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  150. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
  151. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  152. package/dist/collection/components/q2-input/q2-input.js +1 -1
  153. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  154. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  155. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  156. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
  157. package/dist/collection/components/q2-item/q2-item.js +1 -1
  158. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  159. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  160. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  161. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  162. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  163. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  164. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  165. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  166. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  167. package/dist/collection/components/q2-list/q2-list.js +1 -1
  168. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  169. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  170. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  171. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  172. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  173. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  174. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  175. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  176. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  177. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  178. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
  179. package/dist/collection/components/q2-message/q2-message.js +1 -1
  180. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  181. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  182. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  183. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  184. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  185. package/dist/collection/components/q2-option/q2-option.js +1 -1
  186. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  187. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  188. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  189. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  190. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  191. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  192. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  193. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
  194. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  195. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  196. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  197. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
  198. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  199. package/dist/collection/components/q2-popover/q2-popover.css +18 -10
  200. package/dist/collection/components/q2-popover/q2-popover.js +59 -59
  201. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  202. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
  203. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  204. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
  205. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  206. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  207. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  208. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  209. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  210. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  211. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  212. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  213. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  214. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
  215. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
  216. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
  217. package/dist/collection/components/q2-section/q2-section.js +2 -2
  218. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  219. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  220. package/dist/collection/components/q2-select/q2-select.js +110 -15
  221. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  222. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -1
  223. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  224. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +412 -0
  225. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  226. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  227. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  228. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  229. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  230. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  231. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  232. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  233. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  234. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  235. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  236. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  237. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  238. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  239. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  240. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  241. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  242. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  243. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +6 -1
  244. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  245. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  246. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  247. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  248. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  249. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  250. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  251. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  252. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  253. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  254. package/dist/collection/index.js.map +1 -1
  255. package/dist/collection/utils/action-sheet.js.map +1 -1
  256. package/dist/collection/utils/charting.js.map +1 -1
  257. package/dist/collection/utils/helpers.js.map +1 -1
  258. package/dist/collection/utils/index.js.map +1 -1
  259. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  260. package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
  261. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  262. package/dist/collection/utils/test/index.spec.js.map +1 -1
  263. package/dist/components/index2.js +1 -20
  264. package/dist/components/index2.js.map +1 -1
  265. package/dist/components/q2-action-group.js +1 -1
  266. package/dist/components/q2-action-sheet.js +1 -1
  267. package/dist/components/q2-avatar2.js +1 -1
  268. package/dist/components/q2-carousel-pane.js +2 -2
  269. package/dist/components/q2-chart-area.js +1 -1
  270. package/dist/components/q2-chart-bar.js +1 -1
  271. package/dist/components/q2-chart-donut.js +1 -1
  272. package/dist/components/q2-currency.js +1 -1
  273. package/dist/components/q2-detail.js +1 -1
  274. package/dist/components/q2-example.js +1 -1
  275. package/dist/components/q2-formatted-text.js +1 -1
  276. package/dist/components/q2-input2.js +1 -1
  277. package/dist/components/q2-item2.js +1 -1
  278. package/dist/components/q2-legend2.js +1 -1
  279. package/dist/components/q2-list2.js +1 -1
  280. package/dist/components/q2-loc.js +1 -1
  281. package/dist/components/q2-message2.js +1 -1
  282. package/dist/components/q2-month-picker.js +2 -2
  283. package/dist/components/q2-optgroup2.js +1 -1
  284. package/dist/components/q2-option2.js +1 -1
  285. package/dist/components/q2-pagination.js +3 -3
  286. package/dist/components/q2-pill.js +1 -1
  287. package/dist/components/q2-popover2.js +58 -59
  288. package/dist/components/q2-popover2.js.map +1 -1
  289. package/dist/components/q2-relative-time.js +1 -1
  290. package/dist/components/q2-resize-observer2.js +1 -1
  291. package/dist/components/q2-section.js +2 -2
  292. package/dist/components/q2-select2.js +92 -16
  293. package/dist/components/q2-select2.js.map +1 -1
  294. package/dist/components/q2-stepper-vertical.js +1 -1
  295. package/dist/components/q2-stepper.js +1 -1
  296. package/dist/components/q2-tab-container.js +1 -1
  297. package/dist/components/q2-tab-pane.js +1 -1
  298. package/dist/components/q2-tag.js +1 -1
  299. package/dist/components/q2-textarea.js +1 -1
  300. package/dist/components/tecton-tab-pane.js +2 -2
  301. package/dist/esm/click-elsewhere_2.entry.js +59 -60
  302. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  303. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  304. package/dist/esm/index-504f1a9e.js.map +1 -0
  305. package/dist/esm/loader.js +1 -1
  306. package/dist/esm/q2-action-group.entry.js +2 -2
  307. package/dist/esm/q2-action-sheet.entry.js +2 -2
  308. package/dist/esm/q2-avatar.entry.js +1 -1
  309. package/dist/esm/q2-badge_7.entry.js +4 -4
  310. package/dist/esm/q2-calendar.entry.js +1 -1
  311. package/dist/esm/q2-card.entry.js +1 -1
  312. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  313. package/dist/esm/q2-carousel.entry.js +1 -1
  314. package/dist/esm/q2-chart-area.entry.js +2 -2
  315. package/dist/esm/q2-chart-bar.entry.js +2 -2
  316. package/dist/esm/q2-chart-donut.entry.js +2 -2
  317. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  318. package/dist/esm/q2-checkbox.entry.js +1 -1
  319. package/dist/esm/q2-currency.entry.js +1 -1
  320. package/dist/esm/q2-data-table.entry.js +1 -1
  321. package/dist/esm/q2-detail.entry.js +2 -2
  322. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  323. package/dist/esm/q2-dropdown.entry.js +1 -1
  324. package/dist/esm/q2-editable-field.entry.js +1 -1
  325. package/dist/esm/q2-example.entry.js +1 -1
  326. package/dist/esm/q2-file-picker.entry.js +1 -1
  327. package/dist/esm/q2-formatted-text.entry.js +1 -1
  328. package/dist/esm/q2-item_3.entry.js +3 -3
  329. package/dist/esm/q2-legend.entry.js +1 -1
  330. package/dist/esm/q2-loc.entry.js +2 -2
  331. package/dist/esm/q2-message.entry.js +2 -2
  332. package/dist/esm/q2-month-picker.entry.js +3 -3
  333. package/dist/esm/q2-optgroup.entry.js +2 -2
  334. package/dist/esm/q2-option-list.entry.js +1 -1
  335. package/dist/esm/q2-option.entry.js +2 -2
  336. package/dist/esm/q2-pagination.entry.js +4 -4
  337. package/dist/esm/q2-pill.entry.js +2 -2
  338. package/dist/esm/q2-radio-group.entry.js +1 -1
  339. package/dist/esm/q2-radio.entry.js +1 -1
  340. package/dist/esm/q2-relative-time.entry.js +2 -2
  341. package/dist/esm/q2-resize-observer.entry.js +1 -1
  342. package/dist/esm/q2-section.entry.js +3 -3
  343. package/dist/esm/q2-select.entry.js +90 -14
  344. package/dist/esm/q2-select.entry.js.map +1 -1
  345. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  346. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  347. package/dist/esm/q2-stepper.entry.js +2 -2
  348. package/dist/esm/q2-tag.entry.js +2 -2
  349. package/dist/esm/q2-tecton-elements.js +1 -1
  350. package/dist/esm/q2-textarea.entry.js +2 -2
  351. package/dist/esm/q2-tooltip.entry.js +1 -1
  352. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  353. package/dist/jest.setup.js +22 -0
  354. package/dist/jest.setup.js.map +1 -0
  355. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +170 -164
  356. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
  357. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  358. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  359. package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
  360. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +34 -34
  361. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  362. package/dist/q2-tecton-elements/q2-badge_7.entry.js +17 -17
  363. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  364. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  365. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
  366. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  367. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  368. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  369. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +101 -101
  370. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  371. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  372. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  373. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  374. package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
  375. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  376. package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
  377. package/dist/q2-tecton-elements/q2-editable-field.entry.js +8 -8
  378. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  379. package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
  380. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  381. package/dist/q2-tecton-elements/q2-item_3.entry.js +19 -19
  382. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  383. package/dist/q2-tecton-elements/q2-loc.entry.js +5 -5
  384. package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
  385. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  386. package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
  387. package/dist/q2-tecton-elements/q2-option-list.entry.js +1 -1
  388. package/dist/q2-tecton-elements/q2-option.entry.js +14 -14
  389. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  390. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  391. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  392. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  393. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  394. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  395. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  396. package/dist/q2-tecton-elements/q2-select.entry.js +156 -92
  397. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  398. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  399. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  400. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  401. package/dist/q2-tecton-elements/q2-tag.entry.js +25 -25
  402. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  403. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  404. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
  405. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  406. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  407. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  408. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
  409. package/dist/types/components/q2-select/q2-select.d.ts +19 -0
  410. package/package.json +3 -3
  411. package/dist/cjs/index-07285783.js.map +0 -1
  412. package/dist/esm/index-d18e2a20.js.map +0 -1
  413. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-icon.js","sourceRoot":"","sources":["../../../src/components/q2-icon/q2-icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, h, Element, Watch, getAssetPath, State } from '@stencil/core';\nimport { createGuid } from 'src/utils';\nimport iconMap from './assets/icon-map.json';\n\n@Component({ tag: 'q2-icon', shadow: true, styleUrl: 'q2-icon.scss', assetsDirs: ['assets'] })\nexport class Q2Icon implements ComponentInterface {\n // #region Own Properties\n\n spriteGroup: SVGElement;\n spriteUse: SVGElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconClone: SVGSymbolElement;\n\n // #endregion\n // #region Public Property API\n\n /** Styles the component to have a `height` and `width` of `1em`, making it easy to place alongside text. */\n @Prop({ reflect: true })\n inline: boolean;\n\n /** The text that is presented by screen-readers when they encounter the icon. */\n @Prop({ reflect: true })\n label: string;\n\n /** The name of the icon to be displayed. */\n @Prop({ reflect: true })\n type: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcon();\n }\n\n componentDidRender(): void {\n if (!this.iconClone) return;\n this.spriteGroup?.firstElementChild?.remove();\n const appendedClone = this.spriteGroup?.appendChild(this.iconClone);\n\n // We have to set the `href` attribute after the symbol is appended to the DOM to avoid a bug in Safari\n this.spriteUse?.setAttribute('href', `#${appendedClone.id}`);\n }\n\n disconnectedCallback(): void {\n this.spriteGroup = null;\n this.spriteUse = null;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('type')\n handleIcon() {\n if (this.isCustom) {\n this.setCustomSVGAttrs();\n } else if (this.type) {\n this.fetchSprite();\n } else {\n this.iconClone = null;\n this.spriteGroup?.firstElementChild?.remove();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get iconCloneViewBox() {\n return this.iconClone?.getAttribute('viewBox') ?? '0 0 24 24';\n }\n\n get isCustom() {\n return this.type === 'custom';\n }\n\n get spriteElement() {\n const { spriteId } = this;\n if (!spriteId) return;\n return document.querySelector<HTMLElement>(`#${spriteId}`);\n }\n\n get spriteEventName() {\n const { spriteFileName } = this;\n if (!spriteFileName) return;\n return `tct-loaded-${spriteFileName}`;\n }\n\n get spriteFileName() {\n if (this.isCustom) return;\n return iconMap[this.type];\n }\n\n get spriteId() {\n const { spriteFileName } = this;\n if (!spriteFileName) return;\n return `tecton-sprite-${spriteFileName}`;\n }\n\n checkForSprite() {\n const { spriteId, spriteEventName } = this;\n const spriteContainer = this.getOrCreateSpriteContainer();\n let spriteElement: HTMLElement = document.querySelector(`#${spriteId}`);\n\n // If the sprite element exists and has the `data-loaded` attribute, we know we have everything we need\n if (spriteElement?.hasAttribute('data-loaded') ?? false) {\n this.cloneSpriteNode();\n return true;\n }\n\n // If the sprite element exists but does not have the `data-loaded` attribute, we know it's being loaded\n // We'll listen for the event that will be dispatched when the sprite is loaded\n spriteContainer.addEventListener(\n spriteEventName,\n () => {\n this.cloneSpriteNode();\n },\n { once: true }\n );\n\n // If the sprite element exists, we know it's being loaded and will be handled by the event listener\n if (spriteElement) return true;\n\n // If sprite element does not exist, create a placeholder\n // This will let other icons know the sprite is being loaded\n spriteElement = document.createElement('div');\n spriteElement.id = spriteId;\n spriteContainer.appendChild(spriteElement);\n return false;\n }\n\n cloneSpriteNode() {\n const spriteContainer = this.getOrCreateSpriteContainer();\n const spriteNode = spriteContainer.querySelector<HTMLElement>(`#tct-${this.type}`);\n this.iconClone = spriteNode ? (spriteNode.cloneNode(true) as SVGSymbolElement) : undefined;\n }\n\n async fetchSprite() {\n const { spriteFileName, spriteId, spriteEventName } = this;\n\n const spriteExists = this.checkForSprite();\n if (spriteExists) return;\n\n if (!spriteFileName) return;\n const spritePath = getAssetPath(`assets/${spriteFileName}.symbol.svg`);\n const response = await fetch(spritePath);\n const data = await response.text();\n const wrappingDiv = document.createElement('div');\n wrappingDiv.innerHTML = data;\n const svg = wrappingDiv.querySelector('svg');\n\n svg.id = spriteId;\n svg.setAttribute('data-loaded', '');\n\n let { spriteElement } = this;\n if (spriteElement?.tagName === 'SVG') return;\n\n if (typeof spriteElement.replaceWith === 'function') {\n spriteElement.replaceWith(svg);\n } else {\n spriteElement.parentNode.replaceChild(svg, spriteElement);\n }\n\n spriteElement = document.querySelector(`#${spriteId}`);\n spriteElement.dispatchEvent(new CustomEvent(spriteEventName, { bubbles: true }));\n }\n\n /**\n * Checks for the sprite container element in the global DOM\n * If it does not exist, it creates and appends it to the body\n */\n getOrCreateSpriteContainer() {\n const spriteContainerId = 'tecton-sprites';\n let spriteContainer: HTMLDivElement = document.querySelector(`#${spriteContainerId}`);\n\n if (spriteContainer) return spriteContainer;\n spriteContainer = document.createElement('div');\n spriteContainer.id = spriteContainerId;\n spriteContainer.style.display = 'none';\n document.body.appendChild(spriteContainer);\n return spriteContainer;\n }\n\n setCustomSVGAttrs() {\n const innerSVG = this.hostElement.querySelector('svg');\n\n if (!innerSVG) return;\n\n innerSVG.setAttribute('role', 'img');\n innerSVG.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n const { label } = this;\n if (label) {\n const title = document.createElement('title');\n const labelId = `label-${createGuid()}`;\n title.id = labelId;\n title.textContent = label;\n innerSVG.appendChild(title);\n innerSVG.setAttribute('aria-labelledby', labelId);\n } else {\n innerSVG.setAttribute('aria-hidden', 'true');\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { label, type } = this;\n return this.isCustom ? (\n <slot />\n ) : (\n <svg\n aria-hidden={!!label ? undefined : 'true'}\n role={!!label ? 'img' : undefined}\n aria-labelledby={!!label ? 'label' : undefined}\n viewBox={this.iconCloneViewBox}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {!!label && <title id=\"label\">{label}</title>}\n {!!type && <use ref={el => (this.spriteUse = el)} />}\n <g ref={el => (this.spriteGroup = el)}></g>\n </svg>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-icon.js","sourceRoot":"","sources":["../../../../src/components/q2-icon/q2-icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, h, Element, Watch, getAssetPath, State } from '@stencil/core';\nimport { createGuid } from 'src/utils';\nimport iconMap from './assets/icon-map.json';\n\n@Component({ tag: 'q2-icon', shadow: true, styleUrl: 'q2-icon.scss', assetsDirs: ['assets'] })\nexport class Q2Icon implements ComponentInterface {\n // #region Own Properties\n\n spriteGroup: SVGElement;\n spriteUse: SVGElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconClone: SVGSymbolElement;\n\n // #endregion\n // #region Public Property API\n\n /** Styles the component to have a `height` and `width` of `1em`, making it easy to place alongside text. */\n @Prop({ reflect: true })\n inline: boolean;\n\n /** The text that is presented by screen-readers when they encounter the icon. */\n @Prop({ reflect: true })\n label: string;\n\n /** The name of the icon to be displayed. */\n @Prop({ reflect: true })\n type: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcon();\n }\n\n componentDidRender(): void {\n if (!this.iconClone) return;\n this.spriteGroup?.firstElementChild?.remove();\n const appendedClone = this.spriteGroup?.appendChild(this.iconClone);\n\n // We have to set the `href` attribute after the symbol is appended to the DOM to avoid a bug in Safari\n this.spriteUse?.setAttribute('href', `#${appendedClone.id}`);\n }\n\n disconnectedCallback(): void {\n this.spriteGroup = null;\n this.spriteUse = null;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('type')\n handleIcon() {\n if (this.isCustom) {\n this.setCustomSVGAttrs();\n } else if (this.type) {\n this.fetchSprite();\n } else {\n this.iconClone = null;\n this.spriteGroup?.firstElementChild?.remove();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get iconCloneViewBox() {\n return this.iconClone?.getAttribute('viewBox') ?? '0 0 24 24';\n }\n\n get isCustom() {\n return this.type === 'custom';\n }\n\n get spriteElement() {\n const { spriteId } = this;\n if (!spriteId) return;\n return document.querySelector<HTMLElement>(`#${spriteId}`);\n }\n\n get spriteEventName() {\n const { spriteFileName } = this;\n if (!spriteFileName) return;\n return `tct-loaded-${spriteFileName}`;\n }\n\n get spriteFileName() {\n if (this.isCustom) return;\n return iconMap[this.type];\n }\n\n get spriteId() {\n const { spriteFileName } = this;\n if (!spriteFileName) return;\n return `tecton-sprite-${spriteFileName}`;\n }\n\n checkForSprite() {\n const { spriteId, spriteEventName } = this;\n const spriteContainer = this.getOrCreateSpriteContainer();\n let spriteElement: HTMLElement = document.querySelector(`#${spriteId}`);\n\n // If the sprite element exists and has the `data-loaded` attribute, we know we have everything we need\n if (spriteElement?.hasAttribute('data-loaded') ?? false) {\n this.cloneSpriteNode();\n return true;\n }\n\n // If the sprite element exists but does not have the `data-loaded` attribute, we know it's being loaded\n // We'll listen for the event that will be dispatched when the sprite is loaded\n spriteContainer.addEventListener(\n spriteEventName,\n () => {\n this.cloneSpriteNode();\n },\n { once: true }\n );\n\n // If the sprite element exists, we know it's being loaded and will be handled by the event listener\n if (spriteElement) return true;\n\n // If sprite element does not exist, create a placeholder\n // This will let other icons know the sprite is being loaded\n spriteElement = document.createElement('div');\n spriteElement.id = spriteId;\n spriteContainer.appendChild(spriteElement);\n return false;\n }\n\n cloneSpriteNode() {\n const spriteContainer = this.getOrCreateSpriteContainer();\n const spriteNode = spriteContainer.querySelector<HTMLElement>(`#tct-${this.type}`);\n this.iconClone = spriteNode ? (spriteNode.cloneNode(true) as SVGSymbolElement) : undefined;\n }\n\n async fetchSprite() {\n const { spriteFileName, spriteId, spriteEventName } = this;\n\n const spriteExists = this.checkForSprite();\n if (spriteExists) return;\n\n if (!spriteFileName) return;\n const spritePath = getAssetPath(`assets/${spriteFileName}.symbol.svg`);\n const response = await fetch(spritePath);\n const data = await response.text();\n const wrappingDiv = document.createElement('div');\n wrappingDiv.innerHTML = data;\n const svg = wrappingDiv.querySelector('svg');\n\n svg.id = spriteId;\n svg.setAttribute('data-loaded', '');\n\n let { spriteElement } = this;\n if (spriteElement?.tagName === 'SVG') return;\n\n if (typeof spriteElement.replaceWith === 'function') {\n spriteElement.replaceWith(svg);\n } else {\n spriteElement.parentNode.replaceChild(svg, spriteElement);\n }\n\n spriteElement = document.querySelector(`#${spriteId}`);\n spriteElement.dispatchEvent(new CustomEvent(spriteEventName, { bubbles: true }));\n }\n\n /**\n * Checks for the sprite container element in the global DOM\n * If it does not exist, it creates and appends it to the body\n */\n getOrCreateSpriteContainer() {\n const spriteContainerId = 'tecton-sprites';\n let spriteContainer: HTMLDivElement = document.querySelector(`#${spriteContainerId}`);\n\n if (spriteContainer) return spriteContainer;\n spriteContainer = document.createElement('div');\n spriteContainer.id = spriteContainerId;\n spriteContainer.style.display = 'none';\n document.body.appendChild(spriteContainer);\n return spriteContainer;\n }\n\n setCustomSVGAttrs() {\n const innerSVG = this.hostElement.querySelector('svg');\n\n if (!innerSVG) return;\n\n innerSVG.setAttribute('role', 'img');\n innerSVG.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n const { label } = this;\n if (label) {\n const title = document.createElement('title');\n const labelId = `label-${createGuid()}`;\n title.id = labelId;\n title.textContent = label;\n innerSVG.appendChild(title);\n innerSVG.setAttribute('aria-labelledby', labelId);\n } else {\n innerSVG.setAttribute('aria-hidden', 'true');\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { label, type } = this;\n return this.isCustom ? (\n <slot />\n ) : (\n <svg\n aria-hidden={!!label ? undefined : 'true'}\n role={!!label ? 'img' : undefined}\n aria-labelledby={!!label ? 'label' : undefined}\n viewBox={this.iconCloneViewBox}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {!!label && <title id=\"label\">{label}</title>}\n {!!type && <use ref={el => (this.spriteUse = el)} />}\n <g ref={el => (this.spriteGroup = el)}></g>\n </svg>\n );\n }\n\n // #endregion\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-icon-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-icon/test/q2-icon-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, EventSpy, newSpecPage, SpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, mockIconFetch, setup } from '@/utils/helpers';\nimport { Q2Icon } from '../q2-icon';\n\ndescribe('q2-icon', () => {\n let e2ePage: E2EPage;\n let specPage: SpecPage;\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-icon></q2-icon>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-icon')).toHaveLength(0);\n });\n\n describe('SVG Sprite', () => {\n let standardLoadedEventSpy: EventSpy;\n let statusLoadedEventSpy: EventSpy;\n\n beforeEach(async () => {\n e2ePage = await setup({\n html: '',\n });\n e2ePage.setDefaultTimeout(5000);\n e2ePage.setContent(`<q2-icon type=\"close\"></q2-icon>`);\n standardLoadedEventSpy = await e2ePage.spyOnEvent('tct-loaded-standard');\n statusLoadedEventSpy = await e2ePage.spyOnEvent('tct-loaded-status');\n await e2ePage.waitForSelector('#tecton-sprites');\n await e2ePage.waitForSelector('#tecton-sprite-standard');\n await e2ePage.waitForChanges();\n });\n\n it('creates the sprite container', async () => {\n const spriteContainers = await e2ePage.findAll('#tecton-sprites');\n expect(spriteContainers).toHaveLength(1);\n\n const spriteContainer = spriteContainers[0];\n expect(spriteContainer).toBeTruthy();\n expect((await spriteContainer.getComputedStyle()).display).toEqual('none');\n });\n\n it('adds the sprite', async () => {\n const spriteElements = await e2ePage.findAll('#tecton-sprites > svg');\n expect(spriteElements).toHaveLength(1);\n\n const spriteElement = spriteElements[0];\n expect(spriteElement).toBeTruthy();\n expect(spriteElement).toEqualAttribute('id', 'tecton-sprite-standard');\n expect(spriteElement).toHaveAttribute('data-loaded');\n });\n\n it('fires the loaded event', async () => {\n expect(standardLoadedEventSpy).toHaveReceivedEventTimes(1);\n expect(statusLoadedEventSpy).toHaveReceivedEventTimes(0);\n });\n\n it('renders the use element to the SVG', async () => {\n const useElement = await e2ePage.find('q2-icon >>> use');\n expect(useElement).toBeTruthy();\n expect(useElement).toEqualAttribute('href', '#tct-close');\n });\n\n it('renders the symbol element to the SVG', async () => {\n const symbolElements = await e2ePage.findAll('q2-icon >>> symbol');\n\n expect(symbolElements).toHaveLength(1);\n\n const symbolElement = symbolElements[0];\n expect(symbolElement).toBeTruthy();\n expect(symbolElement).toEqualAttribute('id', 'tct-close');\n expect(symbolElement).toEqualHtml(`\n <symbol fill=\"none\" id=\"tct-close\" viewbox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"stroke-primary\">\n <path d=\"m17.875 6-12 12m0-12 12 12\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n </symbol>\n `);\n });\n\n describe('when icon is updated to one in a separate sprite', () => {\n beforeEach(async () => {\n const icon = await e2ePage.find('q2-icon');\n await icon.setProperty('type', 'success');\n await e2ePage.waitForChanges();\n await e2ePage.waitForSelector('#tecton-sprite-status');\n });\n\n it('does not create a new sprite container', async () => {\n const spriteContainers = await e2ePage.findAll('#tecton-sprites');\n expect(spriteContainers).toHaveLength(1);\n\n const spriteContainer = spriteContainers[0];\n expect(spriteContainer).toBeTruthy();\n expect((await spriteContainer.getComputedStyle()).display).toEqual('none');\n });\n\n it('adds a new sprite without removing previous one', async () => {\n const spriteElements = await e2ePage.findAll('#tecton-sprites > svg');\n expect(spriteElements).toHaveLength(2);\n\n const oldSpriteElement = spriteElements[0];\n expect(oldSpriteElement).toEqualAttribute('id', 'tecton-sprite-standard');\n\n const newSpriteElement = spriteElements[1];\n expect(newSpriteElement).toBeTruthy();\n expect(newSpriteElement).toEqualAttribute('id', 'tecton-sprite-status');\n expect(newSpriteElement).toHaveAttribute('data-loaded');\n });\n\n it('fires the loaded event', async () => {\n expect(standardLoadedEventSpy).toHaveReceivedEventTimes(1);\n expect(statusLoadedEventSpy).toHaveReceivedEventTimes(1);\n });\n\n it('renders the use element to the SVG', async () => {\n const useElement = await e2ePage.find('q2-icon >>> use');\n expect(useElement).toBeTruthy();\n expect(useElement).toEqualAttribute('href', '#tct-success');\n });\n\n it('renders the symbol element to the SVG', async () => {\n const symbolElements = await e2ePage.findAll('q2-icon >>> symbol');\n expect(symbolElements).toHaveLength(1);\n\n const symbolElement = symbolElements[0];\n expect(symbolElement).toBeTruthy();\n expect(symbolElement).toEqualAttribute('id', 'tct-success');\n expect(symbolElement).toEqualHtml(`\n <symbol fill=\"none\" id=\"tct-success\" viewbox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 21.244a9.244 9.244 0 1 0 0-18.488 9.244 9.244 0 0 0 0 18.488Z\" stroke=\"var(--comp-status-color)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"m7.754 12.739 2.613 2.613 5.88-5.88\" stroke=\"var(--comp-status-color)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </symbol>\n `);\n });\n });\n });\n\n describe('Props', () => {\n describe('inline', () => {\n it('uses the default width and height when false', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"a11y\"></q2-icon>`,\n });\n const icon = await e2ePage.find('q2-icon');\n const iconComputedStyle = await icon.getComputedStyle();\n expect(iconComputedStyle.width).toEqual('24px');\n expect(iconComputedStyle.height).toEqual('24px');\n });\n\n it('sets the width and height to 1em when true', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"a11y\" inline></q2-icon>`,\n });\n const icon = await e2ePage.find('q2-icon');\n const iconComputedStyle = await icon.getComputedStyle();\n expect(iconComputedStyle.width).toEqual('16px');\n expect(iconComputedStyle.height).toEqual('16px');\n });\n });\n\n describe('label', () => {\n beforeEach(async () => {\n mockIconFetch(`\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n `);\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('renders the expected output when provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon label=\"Iron Man\" type=\"close\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(`\n <q2-icon label=\"Iron Man\" type=\"close\">\n <mock:shadow-root>\n <svg aria-labelledby=\"label\" role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <title id=\"label\">\n Iron Man\n </title>\n <use href=\"#tct-close\"></use>\n <g>\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n </g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n `);\n });\n });\n\n describe('type', () => {\n beforeEach(async () => {\n mockIconFetch(`\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n `);\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('renders nothing when not provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(emptyIconMarkup);\n });\n\n it('renders expected output when provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon type=\"close\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(closeIconMarkup);\n });\n\n it('clears the content when removed', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon type=\"close\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(closeIconMarkup);\n\n specPage.root.type = undefined;\n await specPage.waitForChanges();\n\n expect(specPage.root).toEqualHtml(emptyIconMarkup);\n });\n\n it('updates the content when added', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(emptyIconMarkup);\n\n specPage.root.type = 'close';\n await specPage.waitForChanges();\n\n expect(specPage.root).toEqualHtml(closeIconMarkup);\n });\n\n it('does not add the href to the use element if the icon is not found', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon type=\"not-found\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(notFoundIconMarkup);\n });\n\n describe(\"when type is 'custom'\", () => {\n it('it renders in a slot and adds necessary attributes', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: `\n <q2-icon type=\"custom\">\n <svg viewBox=\"0 0 34 34\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n </svg>\n </q2-icon>\n `,\n });\n\n const svg = specPage.root.querySelector('svg');\n\n expect(svg).toEqualAttribute('role', 'img');\n expect(svg).toEqualAttribute('xmlns', 'http://www.w3.org/2000/svg');\n expect(svg).toEqualAttribute('aria-hidden', 'true');\n expect(svg).not.toHaveAttribute('aria-labelledby');\n\n expect(specPage.root).toEqualHtml(`\n <q2-icon type=\"custom\">\n <mock:shadow-root>\n <slot />\n </mock:shadow-root>\n <svg aria-hidden=\"true\" role=\"img\" viewBox=\"0 0 34 34\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n </svg>\n </q2-icon>\n `);\n });\n\n it('it renders in a slot and adds necessary attributes when label is provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: `\n <q2-icon type=\"custom\" label=\"Iron Man\">\n <svg viewBox=\"0 0 34 34\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n </svg>\n </q2-icon>\n `,\n });\n\n const svg = specPage.root.querySelector('svg');\n\n expect(svg).toEqualAttribute('role', 'img');\n expect(svg).toEqualAttribute('xmlns', 'http://www.w3.org/2000/svg');\n expect(svg).not.toHaveAttribute('aria-hidden');\n expect(svg).toHaveAttribute('aria-labelledby');\n\n expect(specPage.root).toEqualHtml(`\n <q2-icon label=\"Iron Man\" type=\"custom\">\n <mock:shadow-root>\n <slot />\n </mock:shadow-root>\n <svg aria-labelledby=\"label-1000\" role=\"img\" viewBox=\"0 0 34 34\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n <title id=\"label-1000\">\n Iron Man\n </title>\n </svg>\n </q2-icon>\n `);\n });\n });\n });\n });\n\n describe('Styling', () => {\n describe('fill', () => {\n it('uses fallback color when override not provided', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"brand-facebook-color\"></q2-icon>`,\n });\n const pathElements = await e2ePage.findAll('q2-icon >>> path');\n const pathOneStyle = await pathElements[0].getComputedStyle();\n const pathTwoStyle = await pathElements[1].getComputedStyle();\n expect(pathOneStyle.fill).toEqual('rgb(57, 87, 154)');\n expect(pathTwoStyle.fill).toEqual('rgb(255, 255, 255)');\n });\n\n it('uses override color when provided', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"brand-facebook-color\" style=\"--tct-icon-brand-fill-primary: blue; --tct-icon-brand-fill-secondary: red;\"></q2-icon>`,\n });\n const pathElements = await e2ePage.findAll('q2-icon >>> path');\n const pathOneStyle = await pathElements[0].getComputedStyle();\n const pathTwoStyle = await pathElements[1].getComputedStyle();\n expect(pathOneStyle.fill).toEqual('rgb(0, 0, 255)');\n expect(pathTwoStyle.fill).toEqual('rgb(255, 0, 0)');\n });\n });\n });\n\n describe('Getters', () => {\n describe('isCustom', () => {\n it(\"returns true when type is 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'custom';\n expect(icon.isCustom).toBeTruthy();\n });\n\n it(\"returns false when type is not 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.isCustom).toBeFalsy();\n });\n });\n\n describe('spriteFileName', () => {\n it(\"returns undefined when type is 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'custom';\n expect(icon.spriteFileName).toBeUndefined();\n });\n\n it('returns undefined when type does not map to a file', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteFileName).toBeUndefined();\n });\n\n it(\"returns the sprite filename when type is not 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.spriteFileName).toEqual('standard');\n });\n });\n\n describe('spriteId', () => {\n it(\"returns undefined when type is 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'custom';\n expect(icon.spriteId).toBeUndefined();\n });\n\n it('returns undefined when spriteFileName is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteId).toBeUndefined();\n });\n\n it('returns the sprite ID when spriteFileName is defined', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.spriteId).toEqual('tecton-sprite-standard');\n });\n });\n\n describe('spriteElement', () => {\n it('returns undefined when spriteId is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteElement).toBeUndefined();\n });\n\n it('returns the sprite element when spriteId is defined', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n const element = document.createElement('div');\n element.id = 'tecton-sprite-standard';\n document.body.appendChild(element);\n\n expect(icon.spriteElement).toBeTruthy();\n\n element.remove();\n });\n });\n\n describe('spriteEventName', () => {\n it('returns undefined when spriteFileName is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteEventName).toBeUndefined();\n });\n\n it('returns the event name when spriteFileName is defined', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.spriteEventName).toEqual('tct-loaded-standard');\n });\n });\n });\n\n describe('Methods', () => {\n describe('getOrCreateSpriteContainer', () => {\n it('returns the existing sprite container', () => {\n const icon = new Q2Icon();\n const spriteContainer = document.createElement('div');\n spriteContainer.id = 'tecton-sprites';\n document.body.appendChild(spriteContainer);\n\n expect(icon.getOrCreateSpriteContainer()).toEqual(spriteContainer);\n\n spriteContainer.remove();\n });\n\n it('creates and returns a new sprite container', () => {\n const icon = new Q2Icon();\n const spriteContainer = icon.getOrCreateSpriteContainer();\n\n expect(spriteContainer).toBeTruthy();\n expect(spriteContainer).toEqualAttribute('id', 'tecton-sprites');\n });\n });\n\n describe('fetchSprite', () => {\n beforeEach(async () => {\n mockIconFetch();\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('does nothing when type is not defined', async () => {\n const icon = new Q2Icon();\n icon.fetchSprite();\n expect(icon.spriteElement).toBeUndefined();\n });\n\n it('does not try to recreate sprite element if it already exists', async () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n const container = icon.getOrCreateSpriteContainer();\n const spriteElement = document.createElement('SVG');\n spriteElement.id = 'tecton-sprite-standard';\n spriteElement.setAttribute('data-loaded', '');\n container.appendChild(spriteElement);\n\n expect(icon.spriteElement).toEqual(spriteElement);\n\n await icon.fetchSprite();\n\n expect(icon.spriteElement).toEqual(spriteElement);\n\n spriteElement.remove();\n });\n\n it('fetches the sprite when type is defined', async () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n await icon.fetchSprite();\n\n expect(icon.spriteElement.tagName.toUpperCase()).toEqual('SVG');\n });\n });\n\n describe('cloneSpriteNode', () => {\n it('returns undefined when spriteElement is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n icon.cloneSpriteNode();\n expect(icon.iconClone).toBeUndefined();\n });\n\n it('returns a clone of the sprite element', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n const container = icon.getOrCreateSpriteContainer();\n\n const element = document.createElement('div');\n element.id = 'tct-close';\n container.appendChild(element);\n\n icon.cloneSpriteNode();\n\n expect(icon.iconClone).toBeTruthy();\n expect(icon.iconClone).toEqualAttribute('id', 'tct-close');\n\n element.remove();\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-icon type=\"close\"></q2-icon>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n\nconst notFoundIconMarkup = `\n <q2-icon type=\"not-found\">\n <mock:shadow-root>\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <use></use>\n <g></g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n`;\n\nconst closeIconMarkup = `\n <q2-icon type=\"close\">\n <mock:shadow-root>\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <use href=\"#tct-close\"></use>\n <g>\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n </g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n`;\n\nconst emptyIconMarkup = `\n <q2-icon>\n <mock:shadow-root>\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g></g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n`;\n"]}
1
+ {"version":3,"file":"q2-icon-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-icon/test/q2-icon-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, EventSpy, newSpecPage, SpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, mockIconFetch, setup } from '@/utils/helpers';\nimport { Q2Icon } from '../q2-icon';\n\ndescribe('q2-icon', () => {\n let e2ePage: E2EPage;\n let specPage: SpecPage;\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-icon></q2-icon>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-icon')).toHaveLength(0);\n });\n\n describe('SVG Sprite', () => {\n let standardLoadedEventSpy: EventSpy;\n let statusLoadedEventSpy: EventSpy;\n\n beforeEach(async () => {\n e2ePage = await setup({\n html: '',\n });\n e2ePage.setDefaultTimeout(5000);\n e2ePage.setContent(`<q2-icon type=\"close\"></q2-icon>`);\n standardLoadedEventSpy = await e2ePage.spyOnEvent('tct-loaded-standard');\n statusLoadedEventSpy = await e2ePage.spyOnEvent('tct-loaded-status');\n await e2ePage.waitForSelector('#tecton-sprites');\n await e2ePage.waitForSelector('#tecton-sprite-standard');\n await e2ePage.waitForChanges();\n });\n\n it('creates the sprite container', async () => {\n const spriteContainers = await e2ePage.findAll('#tecton-sprites');\n expect(spriteContainers).toHaveLength(1);\n\n const spriteContainer = spriteContainers[0];\n expect(spriteContainer).toBeTruthy();\n expect((await spriteContainer.getComputedStyle()).display).toEqual('none');\n });\n\n it('adds the sprite', async () => {\n const spriteElements = await e2ePage.findAll('#tecton-sprites > svg');\n expect(spriteElements).toHaveLength(1);\n\n const spriteElement = spriteElements[0];\n expect(spriteElement).toBeTruthy();\n expect(spriteElement).toEqualAttribute('id', 'tecton-sprite-standard');\n expect(spriteElement).toHaveAttribute('data-loaded');\n });\n\n it('fires the loaded event', async () => {\n expect(standardLoadedEventSpy).toHaveReceivedEventTimes(1);\n expect(statusLoadedEventSpy).toHaveReceivedEventTimes(0);\n });\n\n it('renders the use element to the SVG', async () => {\n const useElement = await e2ePage.find('q2-icon >>> use');\n expect(useElement).toBeTruthy();\n expect(useElement).toEqualAttribute('href', '#tct-close');\n });\n\n it('renders the symbol element to the SVG', async () => {\n const symbolElements = await e2ePage.findAll('q2-icon >>> symbol');\n\n expect(symbolElements).toHaveLength(1);\n\n const symbolElement = symbolElements[0];\n expect(symbolElement).toBeTruthy();\n expect(symbolElement).toEqualAttribute('id', 'tct-close');\n expect(symbolElement).toEqualHtml(`\n <symbol fill=\"none\" id=\"tct-close\" viewbox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"stroke-primary\">\n <path d=\"m17.875 6-12 12m0-12 12 12\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n </symbol>\n `);\n });\n\n describe('when icon is updated to one in a separate sprite', () => {\n beforeEach(async () => {\n const icon = await e2ePage.find('q2-icon');\n await icon.setProperty('type', 'success');\n await e2ePage.waitForChanges();\n await e2ePage.waitForSelector('#tecton-sprite-status');\n });\n\n it('does not create a new sprite container', async () => {\n const spriteContainers = await e2ePage.findAll('#tecton-sprites');\n expect(spriteContainers).toHaveLength(1);\n\n const spriteContainer = spriteContainers[0];\n expect(spriteContainer).toBeTruthy();\n expect((await spriteContainer.getComputedStyle()).display).toEqual('none');\n });\n\n it('adds a new sprite without removing previous one', async () => {\n const spriteElements = await e2ePage.findAll('#tecton-sprites > svg');\n expect(spriteElements).toHaveLength(2);\n\n const oldSpriteElement = spriteElements[0];\n expect(oldSpriteElement).toEqualAttribute('id', 'tecton-sprite-standard');\n\n const newSpriteElement = spriteElements[1];\n expect(newSpriteElement).toBeTruthy();\n expect(newSpriteElement).toEqualAttribute('id', 'tecton-sprite-status');\n expect(newSpriteElement).toHaveAttribute('data-loaded');\n });\n\n it('fires the loaded event', async () => {\n expect(standardLoadedEventSpy).toHaveReceivedEventTimes(1);\n expect(statusLoadedEventSpy).toHaveReceivedEventTimes(1);\n });\n\n it('renders the use element to the SVG', async () => {\n const useElement = await e2ePage.find('q2-icon >>> use');\n expect(useElement).toBeTruthy();\n expect(useElement).toEqualAttribute('href', '#tct-success');\n });\n\n it('renders the symbol element to the SVG', async () => {\n const symbolElements = await e2ePage.findAll('q2-icon >>> symbol');\n expect(symbolElements).toHaveLength(1);\n\n const symbolElement = symbolElements[0];\n expect(symbolElement).toBeTruthy();\n expect(symbolElement).toEqualAttribute('id', 'tct-success');\n expect(symbolElement).toEqualHtml(`\n <symbol fill=\"none\" id=\"tct-success\" viewbox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 21.244a9.244 9.244 0 1 0 0-18.488 9.244 9.244 0 0 0 0 18.488Z\" stroke=\"var(--comp-status-color)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"m7.754 12.739 2.613 2.613 5.88-5.88\" stroke=\"var(--comp-status-color)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </symbol>\n `);\n });\n });\n });\n\n describe('Props', () => {\n describe('inline', () => {\n it('uses the default width and height when false', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"a11y\"></q2-icon>`,\n });\n const icon = await e2ePage.find('q2-icon');\n const iconComputedStyle = await icon.getComputedStyle();\n expect(iconComputedStyle.width).toEqual('24px');\n expect(iconComputedStyle.height).toEqual('24px');\n });\n\n it('sets the width and height to 1em when true', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"a11y\" inline></q2-icon>`,\n });\n const icon = await e2ePage.find('q2-icon');\n const iconComputedStyle = await icon.getComputedStyle();\n expect(iconComputedStyle.width).toEqual('16px');\n expect(iconComputedStyle.height).toEqual('16px');\n });\n });\n\n describe('label', () => {\n beforeEach(async () => {\n mockIconFetch(`\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n `);\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('renders the expected output when provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon label=\"Iron Man\" type=\"close\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(`\n <q2-icon label=\"Iron Man\" type=\"close\">\n <mock:shadow-root>\n <svg aria-labelledby=\"label\" role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <title id=\"label\">\n Iron Man\n </title>\n <use href=\"#tct-close\"></use>\n <g>\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n </g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n `);\n });\n });\n\n describe('type', () => {\n beforeEach(async () => {\n mockIconFetch(`\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n `);\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('renders nothing when not provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(emptyIconMarkup);\n });\n\n it('renders expected output when provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon type=\"close\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(closeIconMarkup);\n });\n\n it('clears the content when removed', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon type=\"close\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(closeIconMarkup);\n\n specPage.root.type = undefined;\n await specPage.waitForChanges();\n\n expect(specPage.root).toEqualHtml(emptyIconMarkup);\n });\n\n it('updates the content when added', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(emptyIconMarkup);\n\n specPage.root.type = 'close';\n await specPage.waitForChanges();\n\n expect(specPage.root).toEqualHtml(closeIconMarkup);\n });\n\n it('does not add the href to the use element if the icon is not found', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: '<q2-icon type=\"not-found\"></q2-icon>',\n });\n\n expect(specPage.root).toEqualHtml(notFoundIconMarkup);\n });\n\n describe(\"when type is 'custom'\", () => {\n it('it renders in a slot and adds necessary attributes', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: `\n <q2-icon type=\"custom\">\n <svg viewBox=\"0 0 34 34\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n </svg>\n </q2-icon>\n `,\n });\n\n const svg = specPage.root.querySelector('svg');\n\n expect(svg).toEqualAttribute('role', 'img');\n expect(svg).toEqualAttribute('xmlns', 'http://www.w3.org/2000/svg');\n expect(svg).toEqualAttribute('aria-hidden', 'true');\n expect(svg).not.toHaveAttribute('aria-labelledby');\n\n expect(specPage.root).toEqualHtml(`\n <q2-icon type=\"custom\">\n <mock:shadow-root>\n <slot />\n </mock:shadow-root>\n <svg aria-hidden=\"true\" role=\"img\" viewBox=\"0 0 34 34\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n </svg>\n </q2-icon>\n `);\n });\n\n it('it renders in a slot and adds necessary attributes when label is provided', async () => {\n specPage = await newSpecPage({\n components: [Q2Icon],\n html: `\n <q2-icon type=\"custom\" label=\"Iron Man\">\n <svg viewBox=\"0 0 34 34\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n </svg>\n </q2-icon>\n `,\n });\n\n const svg = specPage.root.querySelector('svg');\n\n expect(svg).toEqualAttribute('role', 'img');\n expect(svg).toEqualAttribute('xmlns', 'http://www.w3.org/2000/svg');\n expect(svg).not.toHaveAttribute('aria-hidden');\n expect(svg).toHaveAttribute('aria-labelledby');\n\n expect(specPage.root).toEqualHtml(`\n <q2-icon label=\"Iron Man\" type=\"custom\">\n <mock:shadow-root>\n <slot />\n </mock:shadow-root>\n <svg aria-labelledby=\"label-1000\" role=\"img\" viewBox=\"0 0 34 34\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"17\" cy=\"17\" r=\"10\" />\n <title id=\"label-1000\">\n Iron Man\n </title>\n </svg>\n </q2-icon>\n `);\n });\n });\n });\n });\n\n describe('Styling', () => {\n describe('fill', () => {\n it('uses fallback color when override not provided', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"brand-facebook-color\"></q2-icon>`,\n });\n const pathElements = await e2ePage.findAll('q2-icon >>> path');\n const pathOneStyle = await pathElements[0].getComputedStyle();\n const pathTwoStyle = await pathElements[1].getComputedStyle();\n expect(pathOneStyle.fill).toEqual('rgb(57, 87, 154)');\n expect(pathTwoStyle.fill).toEqual('rgb(255, 255, 255)');\n });\n\n it('uses override color when provided', async () => {\n e2ePage = await setup({\n html: `<q2-icon type=\"brand-facebook-color\" style=\"--tct-icon-brand-fill-primary: blue; --tct-icon-brand-fill-secondary: red;\"></q2-icon>`,\n });\n const pathElements = await e2ePage.findAll('q2-icon >>> path');\n const pathOneStyle = await pathElements[0].getComputedStyle();\n const pathTwoStyle = await pathElements[1].getComputedStyle();\n expect(pathOneStyle.fill).toEqual('rgb(0, 0, 255)');\n expect(pathTwoStyle.fill).toEqual('rgb(255, 0, 0)');\n });\n });\n });\n\n describe('Getters', () => {\n describe('isCustom', () => {\n it(\"returns true when type is 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'custom';\n expect(icon.isCustom).toBeTruthy();\n });\n\n it(\"returns false when type is not 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.isCustom).toBeFalsy();\n });\n });\n\n describe('spriteFileName', () => {\n it(\"returns undefined when type is 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'custom';\n expect(icon.spriteFileName).toBeUndefined();\n });\n\n it('returns undefined when type does not map to a file', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteFileName).toBeUndefined();\n });\n\n it(\"returns the sprite filename when type is not 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.spriteFileName).toEqual('standard');\n });\n });\n\n describe('spriteId', () => {\n it(\"returns undefined when type is 'custom'\", () => {\n const icon = new Q2Icon();\n icon.type = 'custom';\n expect(icon.spriteId).toBeUndefined();\n });\n\n it('returns undefined when spriteFileName is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteId).toBeUndefined();\n });\n\n it('returns the sprite ID when spriteFileName is defined', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.spriteId).toEqual('tecton-sprite-standard');\n });\n });\n\n describe('spriteElement', () => {\n it('returns undefined when spriteId is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteElement).toBeUndefined();\n });\n\n it('returns the sprite element when spriteId is defined', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n const element = document.createElement('div');\n element.id = 'tecton-sprite-standard';\n document.body.appendChild(element);\n\n expect(icon.spriteElement).toBeTruthy();\n\n element.remove();\n });\n });\n\n describe('spriteEventName', () => {\n it('returns undefined when spriteFileName is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n expect(icon.spriteEventName).toBeUndefined();\n });\n\n it('returns the event name when spriteFileName is defined', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n expect(icon.spriteEventName).toEqual('tct-loaded-standard');\n });\n });\n });\n\n describe('Methods', () => {\n describe('getOrCreateSpriteContainer', () => {\n it('returns the existing sprite container', () => {\n const icon = new Q2Icon();\n const spriteContainer = document.createElement('div');\n spriteContainer.id = 'tecton-sprites';\n document.body.appendChild(spriteContainer);\n\n expect(icon.getOrCreateSpriteContainer()).toEqual(spriteContainer);\n\n spriteContainer.remove();\n });\n\n it('creates and returns a new sprite container', () => {\n const icon = new Q2Icon();\n const spriteContainer = icon.getOrCreateSpriteContainer();\n\n expect(spriteContainer).toBeTruthy();\n expect(spriteContainer).toEqualAttribute('id', 'tecton-sprites');\n });\n });\n\n describe('fetchSprite', () => {\n beforeEach(async () => {\n mockIconFetch();\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('does nothing when type is not defined', async () => {\n const icon = new Q2Icon();\n icon.fetchSprite();\n expect(icon.spriteElement).toBeUndefined();\n });\n\n it('does not try to recreate sprite element if it already exists', async () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n const container = icon.getOrCreateSpriteContainer();\n const spriteElement = document.createElement('SVG');\n spriteElement.id = 'tecton-sprite-standard';\n spriteElement.setAttribute('data-loaded', '');\n container.appendChild(spriteElement);\n\n expect(icon.spriteElement).toEqual(spriteElement);\n\n await icon.fetchSprite();\n\n expect(icon.spriteElement).toEqual(spriteElement);\n\n spriteElement.remove();\n });\n\n it('fetches the sprite when type is defined', async () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n await icon.fetchSprite();\n\n expect(icon.spriteElement.tagName.toUpperCase()).toEqual('SVG');\n });\n });\n\n describe('cloneSpriteNode', () => {\n it('returns undefined when spriteElement is undefined', () => {\n const icon = new Q2Icon();\n icon.type = 'foobar';\n icon.cloneSpriteNode();\n expect(icon.iconClone).toBeUndefined();\n });\n\n it('returns a clone of the sprite element', () => {\n const icon = new Q2Icon();\n icon.type = 'close';\n\n const container = icon.getOrCreateSpriteContainer();\n\n const element = document.createElement('div');\n element.id = 'tct-close';\n container.appendChild(element);\n\n icon.cloneSpriteNode();\n\n expect(icon.iconClone).toBeTruthy();\n expect(icon.iconClone).toEqualAttribute('id', 'tct-close');\n\n element.remove();\n });\n });\n });\n\n describe('Accessibility', () => {\n describe('aXe DevTools', () => {\n it('does not have accessibility violations', async () => {\n const page = await setup({\n html: `<q2-icon type=\"close\"></q2-icon>`,\n });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n describe('Accessibility Tree', () => {});\n describe('Keyboard Controls', () => {});\n describe('Other', () => {});\n });\n});\n\nconst notFoundIconMarkup = `\n <q2-icon type=\"not-found\">\n <mock:shadow-root>\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <use></use>\n <g></g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n`;\n\nconst closeIconMarkup = `\n <q2-icon type=\"close\">\n <mock:shadow-root>\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <use href=\"#tct-close\"></use>\n <g>\n <symbol fill=\"none\" id=\"tct-close\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g class=\"close\">\n <path class=\"stroke-primary\" d=\"m17.875 6-12 12m0-12 12 12\"></path>\n </g>\n </symbol>\n </g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n`;\n\nconst emptyIconMarkup = `\n <q2-icon>\n <mock:shadow-root>\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g></g>\n </svg>\n </mock:shadow-root>\n </q2-icon>\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.js","sourceRoot":"","sources":["../../../../src/components/q2-input/formatting/alpha.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAa,EAAE,QAAiB;IAChE,IAAI,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;IAEtB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import formatValue from './generic';\n\nexport default function formatAlpha(value: string, modifier?: string) {\n let val = value || '';\n\n if (modifier === 'spaced') {\n val = val.replace(/[^a-zA-Z ]/g, '');\n } else {\n val = val.replace(/[^a-zA-Z]/g, '');\n }\n\n return formatValue(val);\n}\n"]}
1
+ {"version":3,"file":"alpha.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/formatting/alpha.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAa,EAAE,QAAiB;IAChE,IAAI,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;IAEtB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import formatValue from './generic';\n\nexport default function formatAlpha(value: string, modifier?: string) {\n let val = value || '';\n\n if (modifier === 'spaced') {\n val = val.replace(/[^a-zA-Z ]/g, '');\n } else {\n val = val.replace(/[^a-zA-Z]/g, '');\n }\n\n return formatValue(val);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-input/formatting/alpha.spec.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,SAAS,CAAC;AAElC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import formatAlpha from './alpha';\n\ndescribe('formatAlpha', () => {\n it('should format alpha values correctly', () => {\n expect(formatAlpha('a b c 1 2 3 - . ? #').fullyFormattedValue).toBe('abc');\n });\n it('should apply format modifiers correctly', () => {\n expect(formatAlpha('a b c123', 'spaced').fullyFormattedValue).toBe('a b c');\n });\n});\n"]}
1
+ {"version":3,"file":"alpha.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/formatting/alpha.spec.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,SAAS,CAAC;AAElC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import formatAlpha from './alpha';\n\ndescribe('formatAlpha', () => {\n it('should format alpha values correctly', () => {\n expect(formatAlpha('a b c 1 2 3 - . ? #').fullyFormattedValue).toBe('abc');\n });\n it('should apply format modifiers correctly', () => {\n expect(formatAlpha('a b c123', 'spaced').fullyFormattedValue).toBe('a b c');\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"alphanumeric.js","sourceRoot":"","sources":["../../../../src/components/q2-input/formatting/alphanumeric.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAa;IACpD,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import formatValue from './generic';\n\nexport default function formatAlphanumeric(value: string) {\n const val = (value || '').replace(/[^\\da-zA-Z]/g, '');\n return formatValue(val);\n}\n"]}
1
+ {"version":3,"file":"alphanumeric.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/formatting/alphanumeric.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAa;IACpD,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import formatValue from './generic';\n\nexport default function formatAlphanumeric(value: string) {\n const val = (value || '').replace(/[^\\da-zA-Z]/g, '');\n return formatValue(val);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"alphanumeric.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-input/formatting/alphanumeric.spec.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,gBAAgB,CAAC;AAEhD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import formatAlphanumeric from './alphanumeric';\n\ndescribe('formatAlphanumeric', () => {\n it('should format alphanumeric values correctly', () => {\n expect(formatAlphanumeric('a b c 1 2 3 - . ? #').fullyFormattedValue).toBe('abc123');\n });\n});\n"]}
1
+ {"version":3,"file":"alphanumeric.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/formatting/alphanumeric.spec.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,gBAAgB,CAAC;AAEhD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import formatAlphanumeric from './alphanumeric';\n\ndescribe('formatAlphanumeric', () => {\n it('should format alphanumeric values correctly', () => {\n expect(formatAlphanumeric('a b c 1 2 3 - . ? #').fullyFormattedValue).toBe('abc123');\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"credit-card.js","sourceRoot":"","sources":["../../../../src/components/q2-input/formatting/credit-card.ts"],"names":[],"mappings":"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","sourcesContent":["import formatValue from './generic';\nimport { IFormatterValueObject } from '../q2-input-types';\n\ninterface FormattedCreditCardObject extends IFormatterValueObject {\n type: string;\n leftIcon: string;\n leftIconMuted: boolean;\n}\n\ntype Formatter = (value: string) => FormattedCreditCardObject;\n\nfunction format(value: string): FormattedCreditCardObject {\n // have a initial generic mask which then converts to specific mask\n const detectedType = formatCreditCard.detectCreditCardTypeFromValue(value);\n const formattedValueObject = creditCardFormatters[detectedType](value);\n\n if (value.length < 2 && detectedType === 'unknown') {\n formattedValueObject.leftIcon = 'card';\n }\n return formattedValueObject;\n}\n\nconst unknownFormatter: Formatter = function unknownFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'unknown',\n leftIcon: 'card-unknown',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst amexFormatter: Formatter = function amexFn(value) {\n const valueObject = formatValue(value, '#### ###### #####');\n\n return {\n ...valueObject,\n type: 'amex',\n leftIcon: 'card-amex-color',\n leftIconMuted: value.length < 15,\n };\n};\n\nconst discoverFormatter: Formatter = function discoverFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'discover',\n leftIcon: 'card-discover-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst masterCardFormatter: Formatter = function masterCardFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'masterCard',\n leftIcon: 'card-mastercard-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst visaFormatter: Formatter = function visaFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'visa',\n leftIcon: 'card-visa-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst dinersClubInternationalFormatter: Formatter = function dinersClub(value) {\n const valueObject = formatValue(value, '#### ###### ####');\n\n return {\n ...valueObject,\n type: 'dinersClub',\n leftIcon: 'card-dinersclub-color',\n leftIconMuted: value.length < 14,\n };\n};\n\nconst creditCardFormatters = {\n discover: discoverFormatter,\n amex: amexFormatter,\n masterCard: masterCardFormatter,\n visa: visaFormatter,\n dinersClub: dinersClubInternationalFormatter,\n unknown: unknownFormatter,\n};\n\n/* tslint:disable:cyclomatic-complexity */\nfunction detectCreditCardTypeFromValue(value: string): string {\n // use value and some algorithm from the internet to detect and return card type based on string\n // return string 'unknown' if algorithm cannot detect or returns a type that is not one of our 5 supported types\n const firstInt = parseInt(value.charAt(0));\n const secondInt = parseInt(value.charAt(1));\n\n switch (firstInt) {\n case 2:\n if (secondInt > 1 && secondInt < 8) {\n if (value.length >= 4) {\n const firstfour = parseInt(value.substr(0, 4));\n if (firstfour >= 2221 && firstfour < 2721) {\n return 'masterCard';\n }\n } else {\n return 'masterCard';\n }\n }\n break;\n case 3:\n if (secondInt === 4 || secondInt === 7) {\n return 'amex';\n }\n if (secondInt === 0) {\n if (value.length > 2) {\n const thirdInt = parseInt(value.charAt(2));\n if (thirdInt < 6 || thirdInt === 9) {\n return 'dinersClub';\n }\n } else {\n return 'dinersClub';\n }\n }\n if (secondInt === 6 || secondInt === 8 || secondInt === 9) {\n return 'dinersClub';\n }\n break;\n case 4:\n return 'visa';\n case 5:\n if (secondInt > 0 && secondInt < 6) {\n return 'masterCard';\n }\n break;\n case 6:\n if (secondInt === 0) {\n if (value.length > 3) {\n const firstfour = value.substr(0, 4);\n if (firstfour === '6011') {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 4) {\n if (value.length > 2) {\n const firstthree = parseInt(value.substr(0, 3));\n if (firstthree > 643) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 5) {\n return 'discover';\n }\n if (secondInt === 2) {\n if (value.length > 5) {\n const firstsix = parseInt(value.substr(0, 6));\n if (firstsix >= 622126 && firstsix <= 622925) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n break;\n default:\n return 'unknown';\n }\n return 'unknown';\n}\n/* tslint:enable:cyclomatic-complexity */\n\nconst formatCreditCard = {\n detectCreditCardTypeFromValue,\n format,\n amexFormatter,\n dinersClubInternationalFormatter,\n discoverFormatter,\n masterCardFormatter,\n visaFormatter,\n unknownFormatter,\n};\n\nexport default formatCreditCard;\n"]}
1
+ {"version":3,"file":"credit-card.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/formatting/credit-card.ts"],"names":[],"mappings":"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","sourcesContent":["import formatValue from './generic';\nimport { IFormatterValueObject } from '../q2-input-types';\n\ninterface FormattedCreditCardObject extends IFormatterValueObject {\n type: string;\n leftIcon: string;\n leftIconMuted: boolean;\n}\n\ntype Formatter = (value: string) => FormattedCreditCardObject;\n\nfunction format(value: string): FormattedCreditCardObject {\n // have a initial generic mask which then converts to specific mask\n const detectedType = formatCreditCard.detectCreditCardTypeFromValue(value);\n const formattedValueObject = creditCardFormatters[detectedType](value);\n\n if (value.length < 2 && detectedType === 'unknown') {\n formattedValueObject.leftIcon = 'card';\n }\n return formattedValueObject;\n}\n\nconst unknownFormatter: Formatter = function unknownFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'unknown',\n leftIcon: 'card-unknown',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst amexFormatter: Formatter = function amexFn(value) {\n const valueObject = formatValue(value, '#### ###### #####');\n\n return {\n ...valueObject,\n type: 'amex',\n leftIcon: 'card-amex-color',\n leftIconMuted: value.length < 15,\n };\n};\n\nconst discoverFormatter: Formatter = function discoverFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'discover',\n leftIcon: 'card-discover-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst masterCardFormatter: Formatter = function masterCardFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'masterCard',\n leftIcon: 'card-mastercard-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst visaFormatter: Formatter = function visaFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'visa',\n leftIcon: 'card-visa-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst dinersClubInternationalFormatter: Formatter = function dinersClub(value) {\n const valueObject = formatValue(value, '#### ###### ####');\n\n return {\n ...valueObject,\n type: 'dinersClub',\n leftIcon: 'card-dinersclub-color',\n leftIconMuted: value.length < 14,\n };\n};\n\nconst creditCardFormatters = {\n discover: discoverFormatter,\n amex: amexFormatter,\n masterCard: masterCardFormatter,\n visa: visaFormatter,\n dinersClub: dinersClubInternationalFormatter,\n unknown: unknownFormatter,\n};\n\n/* tslint:disable:cyclomatic-complexity */\nfunction detectCreditCardTypeFromValue(value: string): string {\n // use value and some algorithm from the internet to detect and return card type based on string\n // return string 'unknown' if algorithm cannot detect or returns a type that is not one of our 5 supported types\n const firstInt = parseInt(value.charAt(0));\n const secondInt = parseInt(value.charAt(1));\n\n switch (firstInt) {\n case 2:\n if (secondInt > 1 && secondInt < 8) {\n if (value.length >= 4) {\n const firstfour = parseInt(value.substr(0, 4));\n if (firstfour >= 2221 && firstfour < 2721) {\n return 'masterCard';\n }\n } else {\n return 'masterCard';\n }\n }\n break;\n case 3:\n if (secondInt === 4 || secondInt === 7) {\n return 'amex';\n }\n if (secondInt === 0) {\n if (value.length > 2) {\n const thirdInt = parseInt(value.charAt(2));\n if (thirdInt < 6 || thirdInt === 9) {\n return 'dinersClub';\n }\n } else {\n return 'dinersClub';\n }\n }\n if (secondInt === 6 || secondInt === 8 || secondInt === 9) {\n return 'dinersClub';\n }\n break;\n case 4:\n return 'visa';\n case 5:\n if (secondInt > 0 && secondInt < 6) {\n return 'masterCard';\n }\n break;\n case 6:\n if (secondInt === 0) {\n if (value.length > 3) {\n const firstfour = value.substr(0, 4);\n if (firstfour === '6011') {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 4) {\n if (value.length > 2) {\n const firstthree = parseInt(value.substr(0, 3));\n if (firstthree > 643) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 5) {\n return 'discover';\n }\n if (secondInt === 2) {\n if (value.length > 5) {\n const firstsix = parseInt(value.substr(0, 6));\n if (firstsix >= 622126 && firstsix <= 622925) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n break;\n default:\n return 'unknown';\n }\n return 'unknown';\n}\n/* tslint:enable:cyclomatic-complexity */\n\nconst formatCreditCard = {\n detectCreditCardTypeFromValue,\n format,\n amexFormatter,\n dinersClubInternationalFormatter,\n discoverFormatter,\n masterCardFormatter,\n visaFormatter,\n unknownFormatter,\n};\n\nexport default formatCreditCard;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"credit-card.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-input/formatting/credit-card.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import formatCreditCard from './credit-card';\n\ndescribe('q2-input credit card unit tests', () => {\n describe('amex function tests', () => {\n const actual = formatCreditCard.amexFormatter('378282246310005');\n it('should return amex', () => {\n expect(actual.type).toEqual('amex');\n });\n it('should return a value in 4/6/5 format', () => {\n expect(actual.fullyFormattedValue).toEqual('3782 822463 10005');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the amex color icon', () => {\n expect(actual.leftIcon).toEqual('card-amex-color');\n });\n it('should have a formatted max length of 17', () => {\n expect(actual.maxlength).toEqual(17);\n });\n });\n describe('diners club function tests', () => {\n const actual = formatCreditCard.dinersClubInternationalFormatter('30569309025904');\n it('should return dinersClub', () => {\n expect(actual.type).toEqual('dinersClub');\n });\n it('should return a value in 4/6/4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('3056 930902 5904');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the diners club color icon', () => {\n expect(actual.leftIcon).toEqual('card-dinersclub-color');\n });\n it('should have a formatted max length of 16', () => {\n expect(actual.maxlength).toEqual(16);\n });\n });\n describe('discover function tests', () => {\n const actual = formatCreditCard.discoverFormatter('6011111111111117');\n it('should return discover', () => {\n expect(actual.type).toEqual('discover');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('6011 1111 1111 1117');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the discover color icon', () => {\n expect(actual.leftIcon).toEqual('card-discover-color');\n });\n it('should have a formatted max length of 17', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('mastercard function tests', () => {\n const actual = formatCreditCard.masterCardFormatter('5105105105105100');\n it('should return mastercard', () => {\n expect(actual.type).toEqual('masterCard');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('5105 1051 0510 5100');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the mastercard color icon', () => {\n expect(actual.leftIcon).toEqual('card-mastercard-color');\n });\n it('should have a formatted max length of 19', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('visa function tests', () => {\n const actual = formatCreditCard.visaFormatter('4111111111111111');\n it('should return visa', () => {\n expect(actual.type).toEqual('visa');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('4111 1111 1111 1111');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the visa color icon', () => {\n expect(actual.leftIcon).toEqual('card-visa-color');\n });\n it('should have a formatted max length of 19', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('unknown function tests', () => {\n const actual = formatCreditCard.unknownFormatter('2111111111111111');\n it('should return unknown', () => {\n expect(actual.type).toEqual('unknown');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('2111 1111 1111 1111');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the unknown icon', () => {\n expect(actual.leftIcon).toEqual('card-unknown');\n });\n it('should have a formatted max length of 19', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('detect card type from value tests', () => {\n const detect = formatCreditCard.detectCreditCardTypeFromValue;\n it('should show mastercard if the value length is greater than two, less than four and starts with two', () => {\n let actual = detect('22');\n expect(actual).toEqual('masterCard');\n\n actual = detect('222');\n expect(actual).toEqual('masterCard');\n\n actual = detect('2220');\n expect(actual).not.toEqual('masterCard');\n });\n it('should show mastercard if the card begins with 222100-272099', () => {\n let actual = detect('2220');\n expect(actual).not.toEqual('masterCard');\n\n actual = detect('2221');\n expect(actual).toEqual('masterCard');\n\n actual = detect('272099');\n expect(actual).toEqual('masterCard');\n\n actual = detect('272100');\n expect(actual).not.toEqual('masterCard');\n });\n it('should show amex if the card begins with 34 or 37', () => {\n let actual = detect('33');\n expect(actual).not.toEqual('amex');\n\n actual = detect('34');\n expect(actual).toEqual('amex');\n\n actual = detect('35');\n expect(actual).not.toEqual('amex');\n\n actual = detect('37');\n expect(actual).toEqual('amex');\n\n actual = detect('38');\n expect(actual).not.toEqual('amex');\n });\n it('should show dinersClub if the card begins with 36, 38-39, 300-305 or 309', () => {\n let actual = detect('35');\n expect(actual).not.toEqual('dinersClub');\n\n actual = detect('36');\n expect(actual).toEqual('dinersClub');\n\n actual = detect('37');\n expect(actual).not.toEqual('dinersClub');\n\n actual = detect('38');\n expect(actual).toEqual('dinersClub');\n\n actual = detect('39');\n expect(actual).toEqual('dinersClub');\n });\n it('should show visa if the card begins with 4', () => {\n const actual = detect('4');\n expect(actual).toEqual('visa');\n });\n it('should show mastercard if the card begins with 51-55', () => {\n let actual = detect('50');\n expect(actual).not.toEqual('masterCard');\n\n actual = detect('51');\n expect(actual).toEqual('masterCard');\n\n actual = detect('55');\n expect(actual).toEqual('masterCard');\n\n actual = detect('56');\n expect(actual).not.toEqual('masterCard');\n });\n it('should show discover if the value length is less than 6 and starts with 62', () => {\n let actual = detect('62');\n expect(actual).toEqual('discover');\n\n actual = detect('622');\n expect(actual).toEqual('discover');\n\n actual = detect('6221');\n expect(actual).toEqual('discover');\n\n actual = detect('62212');\n expect(actual).toEqual('discover');\n\n actual = detect('622125');\n expect(actual).not.toEqual('discover');\n });\n it('should show discover if the card begins with 644-649 or 65', () => {\n let actual = detect('643');\n expect(actual).not.toEqual('discover');\n\n actual = detect('644');\n expect(actual).toEqual('discover');\n\n actual = detect('649');\n expect(actual).toEqual('discover');\n\n actual = detect('65');\n expect(actual).toEqual('discover');\n\n actual = detect('66');\n expect(actual).not.toEqual('discover');\n });\n it('should show discover if the card begins with 6011', () => {\n let actual = detect('6010');\n expect(actual).not.toEqual('discover');\n\n actual = detect('6011');\n expect(actual).toEqual('discover');\n\n actual = detect('6012');\n expect(actual).not.toEqual('discover');\n });\n it('should show discover if the card begins with 622126-622925', () => {\n let actual = detect('622125');\n expect(actual).not.toEqual('discover');\n\n actual = detect('622126');\n expect(actual).toEqual('discover');\n\n actual = detect('622925');\n expect(actual).toEqual('discover');\n\n actual = detect('622926');\n expect(actual).not.toEqual('discover');\n });\n });\n describe('default settings', () => {\n it('should look up the card type by value', () => {\n const detectSpy = jest.spyOn(formatCreditCard, 'detectCreditCardTypeFromValue');\n\n const actual = formatCreditCard.format('4');\n\n expect(detectSpy).toHaveBeenCalled();\n expect(actual.type).toEqual('visa');\n });\n it(\"should show the blank card icon until 2 characters are entered or card type is ID'ed\", () => {\n const actual = formatCreditCard.format('2');\n expect(actual.leftIcon).toEqual('card');\n });\n });\n});\n"]}
1
+ {"version":3,"file":"credit-card.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-input/formatting/credit-card.spec.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,eAAe,CAAC;AAE7C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC7C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACjE,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;QACnF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACtE,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACxE,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAClE,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACrE,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,6BAA6B,CAAC;QAC9D,EAAE,CAAC,oGAAoG,EAAE,GAAG,EAAE;YAC1G,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACpE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEzC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YACzD,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE/B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;YAChF,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEzC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEzC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEzC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YAClF,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YAClE,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YACzD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YAClE,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;YAEhF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE5C,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;YAC5F,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import formatCreditCard from './credit-card';\n\ndescribe('q2-input credit card unit tests', () => {\n describe('amex function tests', () => {\n const actual = formatCreditCard.amexFormatter('378282246310005');\n it('should return amex', () => {\n expect(actual.type).toEqual('amex');\n });\n it('should return a value in 4/6/5 format', () => {\n expect(actual.fullyFormattedValue).toEqual('3782 822463 10005');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the amex color icon', () => {\n expect(actual.leftIcon).toEqual('card-amex-color');\n });\n it('should have a formatted max length of 17', () => {\n expect(actual.maxlength).toEqual(17);\n });\n });\n describe('diners club function tests', () => {\n const actual = formatCreditCard.dinersClubInternationalFormatter('30569309025904');\n it('should return dinersClub', () => {\n expect(actual.type).toEqual('dinersClub');\n });\n it('should return a value in 4/6/4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('3056 930902 5904');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the diners club color icon', () => {\n expect(actual.leftIcon).toEqual('card-dinersclub-color');\n });\n it('should have a formatted max length of 16', () => {\n expect(actual.maxlength).toEqual(16);\n });\n });\n describe('discover function tests', () => {\n const actual = formatCreditCard.discoverFormatter('6011111111111117');\n it('should return discover', () => {\n expect(actual.type).toEqual('discover');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('6011 1111 1111 1117');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the discover color icon', () => {\n expect(actual.leftIcon).toEqual('card-discover-color');\n });\n it('should have a formatted max length of 17', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('mastercard function tests', () => {\n const actual = formatCreditCard.masterCardFormatter('5105105105105100');\n it('should return mastercard', () => {\n expect(actual.type).toEqual('masterCard');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('5105 1051 0510 5100');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the mastercard color icon', () => {\n expect(actual.leftIcon).toEqual('card-mastercard-color');\n });\n it('should have a formatted max length of 19', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('visa function tests', () => {\n const actual = formatCreditCard.visaFormatter('4111111111111111');\n it('should return visa', () => {\n expect(actual.type).toEqual('visa');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('4111 1111 1111 1111');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the visa color icon', () => {\n expect(actual.leftIcon).toEqual('card-visa-color');\n });\n it('should have a formatted max length of 19', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('unknown function tests', () => {\n const actual = formatCreditCard.unknownFormatter('2111111111111111');\n it('should return unknown', () => {\n expect(actual.type).toEqual('unknown');\n });\n it('should return a value in 4x4 format', () => {\n expect(actual.fullyFormattedValue).toEqual('2111 1111 1111 1111');\n });\n it('should have a full-color icon', () => {\n expect(actual.leftIconMuted).toEqual(false);\n });\n it('should return the unknown icon', () => {\n expect(actual.leftIcon).toEqual('card-unknown');\n });\n it('should have a formatted max length of 19', () => {\n expect(actual.maxlength).toEqual(19);\n });\n });\n describe('detect card type from value tests', () => {\n const detect = formatCreditCard.detectCreditCardTypeFromValue;\n it('should show mastercard if the value length is greater than two, less than four and starts with two', () => {\n let actual = detect('22');\n expect(actual).toEqual('masterCard');\n\n actual = detect('222');\n expect(actual).toEqual('masterCard');\n\n actual = detect('2220');\n expect(actual).not.toEqual('masterCard');\n });\n it('should show mastercard if the card begins with 222100-272099', () => {\n let actual = detect('2220');\n expect(actual).not.toEqual('masterCard');\n\n actual = detect('2221');\n expect(actual).toEqual('masterCard');\n\n actual = detect('272099');\n expect(actual).toEqual('masterCard');\n\n actual = detect('272100');\n expect(actual).not.toEqual('masterCard');\n });\n it('should show amex if the card begins with 34 or 37', () => {\n let actual = detect('33');\n expect(actual).not.toEqual('amex');\n\n actual = detect('34');\n expect(actual).toEqual('amex');\n\n actual = detect('35');\n expect(actual).not.toEqual('amex');\n\n actual = detect('37');\n expect(actual).toEqual('amex');\n\n actual = detect('38');\n expect(actual).not.toEqual('amex');\n });\n it('should show dinersClub if the card begins with 36, 38-39, 300-305 or 309', () => {\n let actual = detect('35');\n expect(actual).not.toEqual('dinersClub');\n\n actual = detect('36');\n expect(actual).toEqual('dinersClub');\n\n actual = detect('37');\n expect(actual).not.toEqual('dinersClub');\n\n actual = detect('38');\n expect(actual).toEqual('dinersClub');\n\n actual = detect('39');\n expect(actual).toEqual('dinersClub');\n });\n it('should show visa if the card begins with 4', () => {\n const actual = detect('4');\n expect(actual).toEqual('visa');\n });\n it('should show mastercard if the card begins with 51-55', () => {\n let actual = detect('50');\n expect(actual).not.toEqual('masterCard');\n\n actual = detect('51');\n expect(actual).toEqual('masterCard');\n\n actual = detect('55');\n expect(actual).toEqual('masterCard');\n\n actual = detect('56');\n expect(actual).not.toEqual('masterCard');\n });\n it('should show discover if the value length is less than 6 and starts with 62', () => {\n let actual = detect('62');\n expect(actual).toEqual('discover');\n\n actual = detect('622');\n expect(actual).toEqual('discover');\n\n actual = detect('6221');\n expect(actual).toEqual('discover');\n\n actual = detect('62212');\n expect(actual).toEqual('discover');\n\n actual = detect('622125');\n expect(actual).not.toEqual('discover');\n });\n it('should show discover if the card begins with 644-649 or 65', () => {\n let actual = detect('643');\n expect(actual).not.toEqual('discover');\n\n actual = detect('644');\n expect(actual).toEqual('discover');\n\n actual = detect('649');\n expect(actual).toEqual('discover');\n\n actual = detect('65');\n expect(actual).toEqual('discover');\n\n actual = detect('66');\n expect(actual).not.toEqual('discover');\n });\n it('should show discover if the card begins with 6011', () => {\n let actual = detect('6010');\n expect(actual).not.toEqual('discover');\n\n actual = detect('6011');\n expect(actual).toEqual('discover');\n\n actual = detect('6012');\n expect(actual).not.toEqual('discover');\n });\n it('should show discover if the card begins with 622126-622925', () => {\n let actual = detect('622125');\n expect(actual).not.toEqual('discover');\n\n actual = detect('622126');\n expect(actual).toEqual('discover');\n\n actual = detect('622925');\n expect(actual).toEqual('discover');\n\n actual = detect('622926');\n expect(actual).not.toEqual('discover');\n });\n });\n describe('default settings', () => {\n it('should look up the card type by value', () => {\n const detectSpy = jest.spyOn(formatCreditCard, 'detectCreditCardTypeFromValue');\n\n const actual = formatCreditCard.format('4');\n\n expect(detectSpy).toHaveBeenCalled();\n expect(actual.type).toEqual('visa');\n });\n it(\"should show the blank card icon until 2 characters are entered or card type is ID'ed\", () => {\n const actual = formatCreditCard.format('2');\n expect(actual.leftIcon).toEqual('card');\n });\n });\n});\n"]}