q2-tecton-elements 1.55.4 → 1.55.6

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 (302) hide show
  1. package/dist/bundle-report.json +421 -363
  2. package/dist/cjs/{index-e0aba375.js → index-f69742cf.js} +1 -1
  3. package/dist/cjs/{index-e0aba375.js.map → index-f69742cf.js.map} +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-badge_7.cjs.entry.js +11 -3
  9. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  11. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  12. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-dropdown.cjs.entry.js +32 -31
  22. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-editable-field.cjs.entry.js +6 -7
  24. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-form.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 +2 -2
  29. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-modal.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  33. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-option-list_2.cjs.entry.js +64 -61
  35. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  37. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  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 +2 -2
  43. package/dist/cjs/q2-select.cjs.entry.js +80 -10
  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 +1 -1
  47. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  50. package/dist/cjs/q2-textarea.cjs.entry.js +2 -1
  51. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  52. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  53. package/dist/collection/collection-manifest.json +6 -6
  54. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  55. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  56. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  57. package/dist/collection/components/q2-btn/q2-btn.js +4 -0
  58. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  59. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  60. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  61. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
  62. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  63. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  64. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  65. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  66. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  67. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  68. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  69. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  70. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  71. package/dist/collection/components/q2-data-table/q2-data-table.js +8 -8
  72. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  73. package/dist/collection/components/q2-dropdown/q2-dropdown.js +33 -31
  74. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  75. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +34 -32
  76. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  77. package/dist/collection/components/q2-editable-field/q2-editable-field.js +12 -7
  78. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  79. package/dist/collection/components/q2-example/q2-example.js +1 -1
  80. package/dist/collection/components/q2-file-picker/q2-file-picker.js +5 -5
  81. package/dist/collection/components/q2-form/q2-form.js +1 -1
  82. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  83. package/dist/collection/components/q2-icon/q2-icon.js +4 -0
  84. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  85. package/dist/collection/components/q2-input/q2-input.js +2 -2
  86. package/dist/collection/components/q2-item/q2-item.js +1 -1
  87. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  88. package/dist/collection/components/q2-list/q2-list.js +1 -1
  89. package/dist/collection/components/q2-message/q2-message.js +1 -1
  90. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  91. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  92. package/dist/collection/components/q2-option-list/q2-option-list.js +7 -7
  93. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  94. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
  95. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  96. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  97. package/dist/collection/components/q2-popover/q2-popover.css +18 -10
  98. package/dist/collection/components/q2-popover/q2-popover.js +64 -60
  99. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  100. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
  101. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  102. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
  103. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  104. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  105. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  106. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  107. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  108. package/dist/collection/components/q2-section/q2-section.js +2 -2
  109. package/dist/collection/components/q2-select/q2-select.js +96 -14
  110. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  111. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +327 -0
  112. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -1
  113. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  114. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  115. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  116. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  117. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  118. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  119. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +5 -0
  120. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  121. package/dist/collection/components/q2-textarea/q2-textarea.js +2 -1
  122. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  123. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  124. package/dist/components/q2-action-group2.js +1 -1
  125. package/dist/components/q2-action-sheet.js +1 -1
  126. package/dist/components/q2-avatar2.js +1 -1
  127. package/dist/components/q2-btn2.js +4 -0
  128. package/dist/components/q2-btn2.js.map +1 -1
  129. package/dist/components/q2-calendar.js +1 -1
  130. package/dist/components/q2-carousel-pane.js +2 -2
  131. package/dist/components/q2-carousel.js +1 -1
  132. package/dist/components/q2-chart-area.js +1 -1
  133. package/dist/components/q2-chart-bar.js +1 -1
  134. package/dist/components/q2-chart-donut.js +1 -1
  135. package/dist/components/q2-checkbox-group.js +1 -1
  136. package/dist/components/q2-checkbox2.js +1 -1
  137. package/dist/components/q2-currency.js +1 -1
  138. package/dist/components/q2-data-table.js +1 -1
  139. package/dist/components/q2-detail.js +1 -1
  140. package/dist/components/q2-dropdown.js +32 -31
  141. package/dist/components/q2-dropdown.js.map +1 -1
  142. package/dist/components/q2-editable-field.js +7 -8
  143. package/dist/components/q2-editable-field.js.map +1 -1
  144. package/dist/components/q2-example.js +1 -1
  145. package/dist/components/q2-form.js +1 -1
  146. package/dist/components/q2-formatted-text.js +1 -1
  147. package/dist/components/q2-icon2.js +4 -0
  148. package/dist/components/q2-icon2.js.map +1 -1
  149. package/dist/components/q2-input2.js +1 -1
  150. package/dist/components/q2-item2.js +1 -1
  151. package/dist/components/q2-legend2.js +1 -1
  152. package/dist/components/q2-list2.js +1 -1
  153. package/dist/components/q2-message2.js +1 -1
  154. package/dist/components/q2-modal.js +1 -1
  155. package/dist/components/q2-month-picker.js +2 -2
  156. package/dist/components/q2-optgroup2.js +1 -1
  157. package/dist/components/q2-option-list2.js +1 -1
  158. package/dist/components/q2-pagination.js +3 -3
  159. package/dist/components/q2-pill.js +1 -1
  160. package/dist/components/q2-popover2.js +63 -60
  161. package/dist/components/q2-popover2.js.map +1 -1
  162. package/dist/components/q2-radio-group.js +1 -1
  163. package/dist/components/q2-radio.js +1 -1
  164. package/dist/components/q2-relative-time.js +1 -1
  165. package/dist/components/q2-resize-observer2.js +1 -1
  166. package/dist/components/q2-section.js +2 -2
  167. package/dist/components/q2-select2.js +84 -14
  168. package/dist/components/q2-select2.js.map +1 -1
  169. package/dist/components/q2-stepper-pane.js +1 -1
  170. package/dist/components/q2-stepper-vertical.js +1 -1
  171. package/dist/components/q2-stepper.js +1 -1
  172. package/dist/components/q2-tab-container.js +1 -1
  173. package/dist/components/q2-tab-pane.js +1 -1
  174. package/dist/components/q2-tag.js +1 -1
  175. package/dist/components/q2-textarea.js +2 -1
  176. package/dist/components/q2-textarea.js.map +1 -1
  177. package/dist/components/tecton-tab-pane.js +2 -2
  178. package/dist/esm/{index-3bb7a785.js → index-3184c760.js} +1 -1
  179. package/dist/esm/{index-3bb7a785.js.map → index-3184c760.js.map} +1 -1
  180. package/dist/esm/loader.js +1 -1
  181. package/dist/esm/q2-action-group.entry.js +1 -1
  182. package/dist/esm/q2-action-sheet.entry.js +1 -1
  183. package/dist/esm/q2-avatar.entry.js +1 -1
  184. package/dist/esm/q2-badge_7.entry.js +11 -3
  185. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  186. package/dist/esm/q2-calendar.entry.js +2 -2
  187. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  188. package/dist/esm/q2-carousel.entry.js +1 -1
  189. package/dist/esm/q2-chart-area.entry.js +1 -1
  190. package/dist/esm/q2-chart-bar.entry.js +1 -1
  191. package/dist/esm/q2-chart-donut.entry.js +1 -1
  192. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  193. package/dist/esm/q2-checkbox.entry.js +1 -1
  194. package/dist/esm/q2-currency.entry.js +1 -1
  195. package/dist/esm/q2-data-table.entry.js +1 -1
  196. package/dist/esm/q2-detail.entry.js +1 -1
  197. package/dist/esm/q2-dropdown.entry.js +32 -31
  198. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  199. package/dist/esm/q2-editable-field.entry.js +6 -7
  200. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  201. package/dist/esm/q2-example.entry.js +1 -1
  202. package/dist/esm/q2-form.entry.js +1 -1
  203. package/dist/esm/q2-formatted-text.entry.js +1 -1
  204. package/dist/esm/q2-item_3.entry.js +2 -2
  205. package/dist/esm/q2-legend.entry.js +1 -1
  206. package/dist/esm/q2-message.entry.js +1 -1
  207. package/dist/esm/q2-modal.entry.js +1 -1
  208. package/dist/esm/q2-month-picker.entry.js +2 -2
  209. package/dist/esm/q2-optgroup.entry.js +1 -1
  210. package/dist/esm/q2-option-list_2.entry.js +64 -61
  211. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  212. package/dist/esm/q2-pagination.entry.js +3 -3
  213. package/dist/esm/q2-pill.entry.js +1 -1
  214. package/dist/esm/q2-radio-group.entry.js +1 -1
  215. package/dist/esm/q2-radio.entry.js +1 -1
  216. package/dist/esm/q2-relative-time.entry.js +2 -2
  217. package/dist/esm/q2-resize-observer.entry.js +1 -1
  218. package/dist/esm/q2-section.entry.js +2 -2
  219. package/dist/esm/q2-select.entry.js +82 -12
  220. package/dist/esm/q2-select.entry.js.map +1 -1
  221. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  222. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  223. package/dist/esm/q2-stepper.entry.js +1 -1
  224. package/dist/esm/q2-tag.entry.js +1 -1
  225. package/dist/esm/q2-tecton-elements.js +1 -1
  226. package/dist/esm/q2-textarea.entry.js +2 -1
  227. package/dist/esm/q2-textarea.entry.js.map +1 -1
  228. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  229. package/dist/q2-tecton-elements/{index-3bb7a785.js → index-3184c760.js} +1 -1
  230. package/dist/q2-tecton-elements/q2-action-group.entry.js +3 -3
  231. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +62 -62
  232. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  233. package/dist/q2-tecton-elements/q2-badge_7.entry.js +24 -16
  234. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  235. package/dist/q2-tecton-elements/q2-calendar.entry.js +3 -3
  236. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +3 -3
  237. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  238. package/dist/q2-tecton-elements/q2-chart-area.entry.js +2 -2
  239. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
  240. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +6 -6
  241. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +13 -13
  242. package/dist/q2-tecton-elements/q2-checkbox.entry.js +7 -7
  243. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  244. package/dist/q2-tecton-elements/q2-data-table.entry.js +3 -3
  245. package/dist/q2-tecton-elements/q2-detail.entry.js +3 -3
  246. package/dist/q2-tecton-elements/q2-dropdown.entry.js +34 -32
  247. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  248. package/dist/q2-tecton-elements/q2-editable-field.entry.js +26 -17
  249. package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
  250. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  251. package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
  252. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  253. package/dist/q2-tecton-elements/q2-item_3.entry.js +18 -18
  254. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  255. package/dist/q2-tecton-elements/q2-message.entry.js +20 -20
  256. package/dist/q2-tecton-elements/q2-modal.entry.js +17 -17
  257. package/dist/q2-tecton-elements/q2-month-picker.entry.js +30 -30
  258. package/dist/q2-tecton-elements/q2-optgroup.entry.js +4 -4
  259. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +138 -127
  260. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  261. package/dist/q2-tecton-elements/q2-pagination.entry.js +24 -24
  262. package/dist/q2-tecton-elements/q2-pill.entry.js +13 -13
  263. package/dist/q2-tecton-elements/q2-radio-group.entry.js +33 -33
  264. package/dist/q2-tecton-elements/q2-radio.entry.js +8 -8
  265. package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
  266. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  267. package/dist/q2-tecton-elements/q2-section.entry.js +11 -11
  268. package/dist/q2-tecton-elements/q2-select.entry.js +146 -88
  269. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  270. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +11 -11
  271. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +28 -28
  272. package/dist/q2-tecton-elements/q2-stepper.entry.js +12 -12
  273. package/dist/q2-tecton-elements/q2-tag.entry.js +5 -5
  274. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  275. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  276. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -2
  277. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  278. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
  279. package/dist/types/components/q2-action-group/q2-action-group.d.ts +1 -0
  280. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  281. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -0
  282. package/dist/types/components/q2-calendar/q2-calendar.d.ts +327 -0
  283. package/dist/types/components/q2-carousel/q2-carousel.d.ts +95 -0
  284. package/dist/types/components/q2-data-table/q2-data-table.d.ts +261 -0
  285. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +180 -0
  286. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +141 -0
  287. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  288. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  289. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  290. package/dist/types/components/q2-option-list/q2-option-list.d.ts +100 -0
  291. package/dist/types/components/q2-pagination/q2-pagination.d.ts +117 -0
  292. package/dist/types/components/q2-pill/q2-pill.d.ts +143 -0
  293. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
  294. package/dist/types/components/q2-select/q2-select.d.ts +256 -0
  295. package/dist/types/components/q2-stepper/q2-stepper.d.ts +61 -0
  296. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +68 -0
  297. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
  298. package/dist/types/components/q2-tag/q2-tag.d.ts +91 -0
  299. package/dist/types/utils/action-sheet.d.ts +12 -0
  300. package/package.json +4 -3
  301. /package/dist/q2-tecton-elements/{index-3bb7a785.js.map → index-3184c760.js.map} +0 -0
  302. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
@@ -90,7 +90,6 @@ const c = class {
90
90
  componentDidRender() {
91
91
  this.scheduledAfterRender.forEach((t => t()));
92
92
  this.scheduledAfterRender = [];
93
- this.formattedValue = this.inputElement.formattedValue;
94
93
  }
95
94
  // #endregion
96
95
  // #region Listeners
@@ -122,6 +121,9 @@ const c = class {
122
121
  if (!h(t, this.hostElement)) return;
123
122
  this.hostElement.shadowRoot.querySelector(this.editing ? "q2-input" : "q2-btn.begin-edit").focus();
124
123
  }
124
+ inputFormatted(t) {
125
+ this.formattedValue = t.detail.formattedValue;
126
+ }
125
127
  // #endregion
126
128
  // #region Public Methods API
127
129
  /**
@@ -200,19 +202,6 @@ const c = class {
200
202
  get wrapperClass() {
201
203
  return `q2-editable-field-wrapper ${this.editing ? "editing" : ""}`;
202
204
  }
203
- generateEditBtn() {
204
- return e("q2-btn", {
205
- ref: t => this.editBtnElement = t,
206
- class: "begin-edit",
207
- label: `${d("tecton.element.editableField.edit")} ${this.locLabel}`,
208
- "hide-label": true,
209
- disabled: this.disabled,
210
- "test-id": "editButton",
211
- onClick: this.editClick
212
- }, e("q2-icon", {
213
- type: "edit"
214
- }));
215
- }
216
205
  generateEditStateDOM() {
217
206
  return e("div", {
218
207
  class: this.wrapperClass,
@@ -262,20 +251,40 @@ const c = class {
262
251
  class: "read-state-label"
263
252
  }, this.locLabel), e("dd", null, e("span", {
264
253
  class: "text-wrapper"
265
- }, this.formattedValue || this.value), this.generateEditBtn())));
254
+ }, this.formattedValue || this.value), e("q2-btn", {
255
+ ref: t => this.editBtnElement = t,
256
+ class: "begin-edit",
257
+ label: `${d("tecton.element.editableField.edit")} ${this.locLabel}`,
258
+ "hide-label": true,
259
+ disabled: this.disabled,
260
+ "test-id": "editButton",
261
+ onClick: this.editClick
262
+ }, e("q2-icon", {
263
+ type: "edit"
264
+ })))));
266
265
  }
267
266
  return e("div", {
268
267
  class: this.wrapperClass,
269
268
  hidden: this.editing
270
269
  }, e("div", {
271
270
  class: "text-wrapper"
272
- }, this.formattedValue || this.value), this.generateEditBtn());
271
+ }, this.formattedValue || this.value), e("q2-btn", {
272
+ ref: t => this.editBtnElement = t,
273
+ class: "begin-edit",
274
+ label: `${d("tecton.element.editableField.edit")} ${this.locLabel}`,
275
+ "hide-label": true,
276
+ disabled: this.disabled,
277
+ "test-id": "editButton",
278
+ onClick: this.editClick
279
+ }, e("q2-icon", {
280
+ type: "edit"
281
+ })));
273
282
  }
274
283
  // #endregion
275
284
  // #region Render Methods
276
285
  render() {
277
286
  return e("div", {
278
- key: "e4537652284887776f863a690eef445a3bdaa3c6"
287
+ key: "4dd832e58ab37f49b7026b6b297de802c83f630b"
279
288
  }, this.generateEditStateDOM(), this.generateReadStateDOM());
280
289
  }
281
290
  get hostElement() {
@@ -1 +1 @@
1
- {"version":3,"names":["q2EditableFieldCss","Q2EditableFieldStyle0","Q2EditableField","this","scheduledAfterRender","cancelClick","event","stopPropagation","change","emit","editing","name","inputElement","setValue","defaultValue","editClick","inputChange","e","inputClick","inputInput","input","detail","formattedValue","innerValue","value","inputKeyDown","key","preventDefault","saveClick","valueFromInputProp","hostElement","shadowRoot","querySelector","componentWillLoad","handleAriaLabel","componentDidLoad","overrideFocus","componentDidRender","forEach","fn","onHostElementChange","isEventFromElement","onchange","queueMicrotask","hasErrors","focus","delegateFocus","clickCancel","_a","cancelBtnElement","click","clickEdit","editBtnElement","clickSave","saveBtnElement","options","waitForNextPaint","ariaLabelObserver","observesEditing","newValue","oldValue","push","errorsObserver","focusedElement","activeElement","isInputFocused","tagName","Array","isArray","errors","length","hasHints","hints","locLabel","label","loc","wrapperClass","generateEditBtn","h","ref","el","class","disabled","onClick","type","generateEditStateDOM","hidden","hideLabel","undefined","formatModifier","maxlength","onInput","onChange","onKeyDown","generateReadStateDOM","persistentLabel","render"],"sources":["src/components/q2-editable-field/q2-editable-field.scss?tag=q2-editable-field&encapsulation=shadow","src/components/q2-editable-field/q2-editable-field.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n\n:host {\n display: inline-block;\n max-width: 100%;\n}\n\n.q2-editable-field-wrapper:not([hidden]) {\n display: flex;\n}\n\n.q2-editable-field-wrapper.editing {\n align-items: flex-end;\n}\n\n:host([block]) {\n display:block;\n width: 100%;\n .q2-editable-field-wrapper:not([hidden]) {\n display: grid;\n grid-template-columns: 1fr auto auto;\n }\n}\n\nq2-input,\n.text-wrapper {\n margin: 0 var(--tct-scale-2, var(--app-scale-2x, 10px)) 0 0;\n}\n\nq2-input {\n flex: 1 1 auto;\n min-width: 170px;\n}\n\n.text-wrapper {\n flex: 0 auto;\n align-self: center;\n display: inline-block;\n}\n\n:host([truncated]) .text-wrapper {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nq2-btn {\n flex: 0 0 44px;\n}\n\ndl {\n margin: var(--tct-scale-0, var(--app-scale-0x, 0));\n}\n\ndt {\n font-weight: 600;\n}\n\ndd {\n margin-left: var(--tct-scale-0, var(--app-scale-0x, 0));\n display: flex;\n align-items: center;\n}\n","import { Component, State, Prop, h, Listen, Element, Event, EventEmitter, Method, Watch } from '@stencil/core';\nimport { IEventDetail, Q2InputCustomEvent } from 'src/components';\nimport { handleAriaLabel, isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';\nimport { Q2Input } from '../q2-input/q2-input';\nimport { IFormatterValueObject } from '../q2-input/q2-input-types';\n\ninterface IExtendedQ2InputElement extends HTMLQ2InputElement {\n formattedValue: IFormatterValueObject['formattedValue'];\n}\n\n@Component({ tag: 'q2-editable-field', shadow: true, styleUrl: 'q2-editable-field.scss' })\nexport class Q2EditableField {\n // #region Own Properties\n\n cancelBtnElement: HTMLQ2BtnElement;\n defaultValue: string;\n editBtnElement: HTMLQ2BtnElement;\n innerValue: string;\n inputElement: HTMLQ2InputElement;\n saveBtnElement: HTMLQ2BtnElement;\n scheduledAfterRender: (() => void)[] = [];\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 formattedValue: string;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** Disables the edit button and field. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** Controls the edit state of the element. */\n @Prop({ reflect: true, mutable: true })\n editing: boolean = false;\n\n /**\n * Determines the `errors` applied to the `q2-input` element.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop()\n errors: string[];\n\n /**\n * Determines the `formatModifier` applied to the `q2-input` element.\n * @info\n * Only applicable when `type=\"currency\"`.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop({ reflect: true })\n formatModifier: string;\n\n /** Hide's the field's `<label>` element from view. */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Determines the `hints` applied to the `q2-input` element.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop()\n hints: string[];\n\n /**\n * The visible descriptor for the element.\n * Serves as the input label while in the edit state and as a decorative label for the read state when `persistentLabel` is `true`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string = '';\n\n /**\n * Determines the `maxLength` applied to the `q2-input`.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop({ reflect: true })\n maxlength: number;\n\n /** Displays the provided label in the read state. */\n @Prop({ reflect: true })\n persistentLabel: boolean;\n\n /** Shortens long values with ellipses instead of splitting into multiple lines. */\n @Prop({ reflect: true })\n truncated: boolean;\n\n /**\n * Determines the `type` applied to the `q2-input` element.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for all `type` values.\n */\n @Prop({ reflect: true })\n type: Q2Input['type'];\n\n /** Serves as the visible text while in the read state, and the default value of the input while in the edit state. */\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the 'Edit', 'Cancel', or 'Save' buttons are clicked.\n *\n * The event detail will not include a `value` or `formattedValue` if the event name is 'edit' or 'cancel'.\n *@info\n * If you are utilizing events to provide input validation, it is recommended you use the `input` event, not the `change` event.\n */\n @Event()\n change: EventEmitter<{\n editing: boolean;\n name: 'edit' | 'cancel' | 'save';\n value?: string;\n formattedValue?: string;\n }>;\n\n /**\n * Emitted when the user updates the `q2-input` element in the editing state.\n */\n @Event()\n input: EventEmitter<{ formattedValue: string; value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n\n this.defaultValue = this.value;\n }\n\n componentDidLoad() {\n overrideFocus(this.hostElement);\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n this.formattedValue = (this.inputElement as IExtendedQ2InputElement).formattedValue;\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (!isEventFromElement(event, this.hostElement) || this.hostElement.onchange) return;\n queueMicrotask(() => {\n switch (event.detail.name) {\n case 'save':\n if (this.hasErrors) {\n this.inputElement.focus();\n break;\n }\n this.value = event.detail.value;\n this.editing = event.detail.editing;\n break;\n\n case 'cancel':\n this.inputElement.value = this.value;\n this.editing = event.detail.editing;\n break;\n\n case 'edit':\n this.editing = event.detail.editing;\n break;\n }\n });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector<HTMLElement>(this.editing ? 'q2-input' : 'q2-btn.begin-edit').focus();\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the cancel button, which will hide the `<q2-input>` field.\n *\n * @testOnly\n */\n @Method()\n clickCancel() {\n if (!this.editing) return;\n this.cancelBtnElement?.click();\n }\n\n /**\n * Emulates clicking the edit button, which will display the `<q2-input>` field.\n *\n * @testOnly\n */\n @Method()\n clickEdit() {\n if (this.editing) return;\n this.editBtnElement?.click();\n }\n\n /**\n * Emulates clicking the save button, saving value in the `<q2-input>` field, and emitting a `change` event.\n *\n * @testOnly\n */\n @Method()\n clickSave() {\n if (!this.editing) return;\n this.saveBtnElement?.click();\n }\n\n /**\n * Emulates clicking the edit button, and setting the value of the `<q2-input>` field.\n *\n * If the `clickSave` argument is `true` (default), the save button will be clicked after the value is set, and a\\\n * `change` event will be emitted.\n *\n * @testOnly\n */\n @Method()\n async setValue(value: string, options: { clickSave?: boolean } = { clickSave: true }) {\n await this.clickEdit();\n await waitForNextPaint();\n\n await this.inputElement.setValue(value);\n\n if (options.clickSave) {\n await this.clickSave();\n await waitForNextPaint();\n }\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('editing')\n observesEditing(newValue: boolean, oldValue: boolean) {\n if (newValue === oldValue) return;\n this.scheduledAfterRender.push(this.hostElement.focus);\n }\n\n @Watch('errors')\n errorsObserver() {\n const { editing, hasErrors } = this;\n const focusedElement = this.hostElement.shadowRoot.activeElement;\n const isInputFocused = focusedElement?.tagName === 'Q2-INPUT';\n if (isInputFocused || !focusedElement || !editing || !hasErrors) return;\n this.inputElement.focus();\n }\n\n // #endregion\n // #region Local Methods\n\n get hasErrors(): boolean {\n return Array.isArray(this.errors) && !!this.errors.length;\n }\n\n get hasHints(): boolean {\n return Array.isArray(this.hints) && !!this.hints.length;\n }\n\n get locLabel() {\n return (this.label && loc(this.label)) || '';\n }\n\n get wrapperClass() {\n return `q2-editable-field-wrapper ${this.editing ? 'editing' : ''}`;\n }\n\n cancelClick = (event?: MouseEvent) => {\n event?.stopPropagation();\n this.change.emit({ editing: false, name: 'cancel' });\n this.inputElement.setValue(this.defaultValue);\n };\n\n editClick = (event: MouseEvent) => {\n event?.stopPropagation();\n this.change.emit({ editing: true, name: 'edit' });\n };\n\n generateEditBtn() {\n return (\n <q2-btn\n ref={el => (this.editBtnElement = el)}\n class=\"begin-edit\"\n label={`${loc('tecton.element.editableField.edit')} ${this.locLabel}`}\n hide-label\n disabled={this.disabled}\n test-id=\"editButton\"\n onClick={this.editClick}\n >\n <q2-icon type=\"edit\" />\n </q2-btn>\n );\n }\n\n generateEditStateDOM() {\n return (\n <div\n class={this.wrapperClass}\n hidden={!this.editing}\n >\n <q2-input\n ref={el => (this.inputElement = el)}\n label={this.locLabel}\n hideLabel={this.hideLabel}\n value={this.value}\n hints={this.hasHints ? this.hints : undefined}\n errors={this.hasErrors ? this.errors : undefined}\n type={this.type}\n disabled={this.disabled}\n formatModifier={this.formatModifier}\n maxlength={this.maxlength}\n test-id=\"editableInput\"\n onInput={this.inputInput}\n onChange={this.inputChange}\n onKeyDown={this.inputKeyDown}\n onClick={this.inputClick}\n />\n <q2-btn\n ref={el => (this.cancelBtnElement = el)}\n class=\"cancel-edit\"\n label={`${loc('tecton.element.editableField.cancel')} ${this.locLabel}`}\n hide-label\n test-id=\"cancelButton\"\n onClick={this.cancelClick}\n >\n <q2-icon type=\"close\" />\n </q2-btn>\n <q2-btn\n ref={el => (this.saveBtnElement = el)}\n class=\"save-edit\"\n label={`${loc('tecton.element.editableField.save')} ${this.locLabel}`}\n hide-label\n test-id=\"saveButton\"\n onClick={this.saveClick}\n >\n <q2-icon type=\"checkmark\" />\n </q2-btn>\n </div>\n );\n }\n\n generateReadStateDOM() {\n if (this.persistentLabel && this.locLabel) {\n return (\n <div\n class={this.wrapperClass}\n hidden={this.editing}\n >\n <dl>\n <dt class=\"read-state-label\">{this.locLabel}</dt>\n <dd>\n <span class=\"text-wrapper\">{this.formattedValue || this.value}</span>\n {this.generateEditBtn()}\n </dd>\n </dl>\n </div>\n );\n }\n return (\n <div\n class={this.wrapperClass}\n hidden={this.editing}\n >\n <div class=\"text-wrapper\">{this.formattedValue || this.value}</div>\n {this.generateEditBtn()}\n </div>\n );\n }\n\n inputChange = (e: CustomEvent) => {\n e.stopPropagation();\n };\n\n inputClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n inputInput = (event: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n event.stopPropagation();\n this.input.emit(event.detail);\n this.formattedValue = event.detail.formattedValue;\n this.innerValue = event.detail.value;\n };\n\n inputKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' || e.key === 'Esc') {\n e.preventDefault();\n this.cancelClick();\n return;\n }\n\n if (e.key === 'Enter') {\n e.preventDefault();\n this.saveClick();\n return;\n }\n };\n\n saveClick = (event?: MouseEvent) => {\n event && event.stopPropagation();\n const valueFromInputProp = this.hostElement.shadowRoot.querySelector('q2-input').value;\n this.defaultValue = valueFromInputProp;\n this.change.emit({\n editing: false,\n name: 'save',\n value: this.innerValue || valueFromInputProp,\n formattedValue: this.formattedValue || valueFromInputProp,\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div>\n {this.generateEditStateDOM()}\n {this.generateReadStateDOM()}\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["q2EditableFieldCss","Q2EditableFieldStyle0","Q2EditableField","this","scheduledAfterRender","cancelClick","event","stopPropagation","change","emit","editing","name","inputElement","setValue","defaultValue","editClick","inputChange","e","inputClick","inputInput","input","detail","formattedValue","innerValue","value","inputKeyDown","key","preventDefault","saveClick","valueFromInputProp","hostElement","shadowRoot","querySelector","componentWillLoad","handleAriaLabel","componentDidLoad","overrideFocus","componentDidRender","forEach","fn","onHostElementChange","isEventFromElement","onchange","queueMicrotask","hasErrors","focus","delegateFocus","inputFormatted","clickCancel","_a","cancelBtnElement","click","clickEdit","editBtnElement","clickSave","saveBtnElement","options","waitForNextPaint","ariaLabelObserver","observesEditing","newValue","oldValue","push","errorsObserver","focusedElement","activeElement","isInputFocused","tagName","Array","isArray","errors","length","hasHints","hints","locLabel","label","loc","wrapperClass","generateEditStateDOM","h","class","hidden","ref","el","hideLabel","undefined","type","disabled","formatModifier","maxlength","onInput","onChange","onKeyDown","onClick","generateReadStateDOM","persistentLabel","render"],"sources":["src/components/q2-editable-field/q2-editable-field.scss?tag=q2-editable-field&encapsulation=shadow","src/components/q2-editable-field/q2-editable-field.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n\n:host {\n display: inline-block;\n max-width: 100%;\n}\n\n.q2-editable-field-wrapper:not([hidden]) {\n display: flex;\n}\n\n.q2-editable-field-wrapper.editing {\n align-items: flex-end;\n}\n\n:host([block]) {\n display:block;\n width: 100%;\n .q2-editable-field-wrapper:not([hidden]) {\n display: grid;\n grid-template-columns: 1fr auto auto;\n }\n}\n\nq2-input,\n.text-wrapper {\n margin: 0 var(--tct-scale-2, var(--app-scale-2x, 10px)) 0 0;\n}\n\nq2-input {\n flex: 1 1 auto;\n min-width: 170px;\n}\n\n.text-wrapper {\n flex: 0 auto;\n align-self: center;\n display: inline-block;\n}\n\n:host([truncated]) .text-wrapper {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nq2-btn {\n flex: 0 0 44px;\n}\n\ndl {\n margin: var(--tct-scale-0, var(--app-scale-0x, 0));\n}\n\ndt {\n font-weight: 600;\n}\n\ndd {\n margin-left: var(--tct-scale-0, var(--app-scale-0x, 0));\n display: flex;\n align-items: center;\n}\n","import { Component, State, Prop, h, Listen, Element, Event, EventEmitter, Method, Watch } from '@stencil/core';\nimport { IEventDetail, Q2InputCustomEvent } from 'src/components';\nimport { handleAriaLabel, isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';\nimport { Q2Input } from '../q2-input/q2-input';\nimport { IFormatterValueObject } from '../q2-input/q2-input-types';\n\n@Component({ tag: 'q2-editable-field', shadow: true, styleUrl: 'q2-editable-field.scss' })\nexport class Q2EditableField {\n // #region Own Properties\n\n cancelBtnElement: HTMLQ2BtnElement;\n defaultValue: string;\n editBtnElement: HTMLQ2BtnElement;\n innerValue: string;\n inputElement: HTMLQ2InputElement;\n saveBtnElement: HTMLQ2BtnElement;\n scheduledAfterRender: (() => void)[] = [];\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 formattedValue: string;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** Disables the edit button and field. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** Controls the edit state of the element. */\n @Prop({ reflect: true, mutable: true })\n editing: boolean = false;\n\n /**\n * Determines the `errors` applied to the `q2-input` element.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop()\n errors: string[];\n\n /**\n * Determines the `formatModifier` applied to the `q2-input` element.\n * @info\n * Only applicable when `type=\"currency\"`.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop({ reflect: true })\n formatModifier: string;\n\n /** Hide's the field's `<label>` element from view. */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Determines the `hints` applied to the `q2-input` element.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop()\n hints: string[];\n\n /**\n * The visible descriptor for the element.\n * Serves as the input label while in the edit state and as a decorative label for the read state when `persistentLabel` is `true`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string = '';\n\n /**\n * Determines the `maxLength` applied to the `q2-input`.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for more information.\n */\n @Prop({ reflect: true })\n maxlength: number;\n\n /** Displays the provided label in the read state. */\n @Prop({ reflect: true })\n persistentLabel: boolean;\n\n /** Shortens long values with ellipses instead of splitting into multiple lines. */\n @Prop({ reflect: true })\n truncated: boolean;\n\n /**\n * Determines the `type` applied to the `q2-input` element.\n *\n * See [q2-input](https://tecton.q2developer.com/design-system/q2-input/) for all `type` values.\n */\n @Prop({ reflect: true })\n type: Q2Input['type'];\n\n /** Serves as the visible text while in the read state, and the default value of the input while in the edit state. */\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the 'Edit', 'Cancel', or 'Save' buttons are clicked.\n *\n * The event detail will not include a `value` or `formattedValue` if the event name is 'edit' or 'cancel'.\n *@info\n * If you are utilizing events to provide input validation, it is recommended you use the `input` event, not the `change` event.\n */\n @Event()\n change: EventEmitter<{\n editing: boolean;\n name: 'edit' | 'cancel' | 'save';\n value?: string;\n formattedValue?: string;\n }>;\n\n /**\n * Emitted when the user updates the `q2-input` element in the editing state.\n */\n @Event()\n input: EventEmitter<{ formattedValue: string; value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n\n this.defaultValue = this.value;\n }\n\n componentDidLoad() {\n overrideFocus(this.hostElement);\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (!isEventFromElement(event, this.hostElement) || this.hostElement.onchange) return;\n queueMicrotask(() => {\n switch (event.detail.name) {\n case 'save':\n if (this.hasErrors) {\n this.inputElement.focus();\n break;\n }\n this.value = event.detail.value;\n this.editing = event.detail.editing;\n break;\n\n case 'cancel':\n this.inputElement.value = this.value;\n this.editing = event.detail.editing;\n break;\n\n case 'edit':\n this.editing = event.detail.editing;\n break;\n }\n });\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector<HTMLElement>(this.editing ? 'q2-input' : 'q2-btn.begin-edit').focus();\n }\n\n @Listen('formatted')\n inputFormatted(event: CustomEvent<IFormatterValueObject>) {\n this.formattedValue = event.detail.formattedValue;\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the cancel button, which will hide the `<q2-input>` field.\n *\n * @testOnly\n */\n @Method()\n clickCancel() {\n if (!this.editing) return;\n this.cancelBtnElement?.click();\n }\n\n /**\n * Emulates clicking the edit button, which will display the `<q2-input>` field.\n *\n * @testOnly\n */\n @Method()\n clickEdit() {\n if (this.editing) return;\n this.editBtnElement?.click();\n }\n\n /**\n * Emulates clicking the save button, saving value in the `<q2-input>` field, and emitting a `change` event.\n *\n * @testOnly\n */\n @Method()\n clickSave() {\n if (!this.editing) return;\n this.saveBtnElement?.click();\n }\n\n /**\n * Emulates clicking the edit button, and setting the value of the `<q2-input>` field.\n *\n * If the `clickSave` argument is `true` (default), the save button will be clicked after the value is set, and a\\\n * `change` event will be emitted.\n *\n * @testOnly\n */\n @Method()\n async setValue(value: string, options: { clickSave?: boolean } = { clickSave: true }) {\n await this.clickEdit();\n await waitForNextPaint();\n\n await this.inputElement.setValue(value);\n\n if (options.clickSave) {\n await this.clickSave();\n await waitForNextPaint();\n }\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('editing')\n observesEditing(newValue: boolean, oldValue: boolean) {\n if (newValue === oldValue) return;\n this.scheduledAfterRender.push(this.hostElement.focus);\n }\n\n @Watch('errors')\n errorsObserver() {\n const { editing, hasErrors } = this;\n const focusedElement = this.hostElement.shadowRoot.activeElement;\n const isInputFocused = focusedElement?.tagName === 'Q2-INPUT';\n if (isInputFocused || !focusedElement || !editing || !hasErrors) return;\n this.inputElement.focus();\n }\n\n // #endregion\n // #region Local Methods\n\n get hasErrors(): boolean {\n return Array.isArray(this.errors) && !!this.errors.length;\n }\n\n get hasHints(): boolean {\n return Array.isArray(this.hints) && !!this.hints.length;\n }\n\n get locLabel() {\n return (this.label && loc(this.label)) || '';\n }\n\n get wrapperClass() {\n return `q2-editable-field-wrapper ${this.editing ? 'editing' : ''}`;\n }\n\n cancelClick = (event?: MouseEvent) => {\n event?.stopPropagation();\n this.change.emit({ editing: false, name: 'cancel' });\n this.inputElement.setValue(this.defaultValue);\n };\n\n editClick = (event: MouseEvent) => {\n event?.stopPropagation();\n this.change.emit({ editing: true, name: 'edit' });\n };\n\n generateEditStateDOM() {\n return (\n <div\n class={this.wrapperClass}\n hidden={!this.editing}\n >\n <q2-input\n ref={el => (this.inputElement = el)}\n label={this.locLabel}\n hideLabel={this.hideLabel}\n value={this.value}\n hints={this.hasHints ? this.hints : undefined}\n errors={this.hasErrors ? this.errors : undefined}\n type={this.type}\n disabled={this.disabled}\n formatModifier={this.formatModifier}\n maxlength={this.maxlength}\n test-id=\"editableInput\"\n onInput={this.inputInput}\n onChange={this.inputChange}\n onKeyDown={this.inputKeyDown}\n onClick={this.inputClick}\n />\n <q2-btn\n ref={el => (this.cancelBtnElement = el)}\n class=\"cancel-edit\"\n label={`${loc('tecton.element.editableField.cancel')} ${this.locLabel}`}\n hide-label\n test-id=\"cancelButton\"\n onClick={this.cancelClick}\n >\n <q2-icon type=\"close\" />\n </q2-btn>\n <q2-btn\n ref={el => (this.saveBtnElement = el)}\n class=\"save-edit\"\n label={`${loc('tecton.element.editableField.save')} ${this.locLabel}`}\n hide-label\n test-id=\"saveButton\"\n onClick={this.saveClick}\n >\n <q2-icon type=\"checkmark\" />\n </q2-btn>\n </div>\n );\n }\n\n generateReadStateDOM() {\n if (this.persistentLabel && this.locLabel) {\n return (\n <div\n class={this.wrapperClass}\n hidden={this.editing}\n >\n <dl>\n <dt class=\"read-state-label\">{this.locLabel}</dt>\n <dd>\n <span class=\"text-wrapper\">{this.formattedValue || this.value}</span>\n <q2-btn\n ref={el => (this.editBtnElement = el)}\n class=\"begin-edit\"\n label={`${loc('tecton.element.editableField.edit')} ${this.locLabel}`}\n hide-label\n disabled={this.disabled}\n test-id=\"editButton\"\n onClick={this.editClick}\n >\n <q2-icon type=\"edit\" />\n </q2-btn>\n </dd>\n </dl>\n </div>\n );\n }\n return (\n <div\n class={this.wrapperClass}\n hidden={this.editing}\n >\n <div class=\"text-wrapper\">{this.formattedValue || this.value}</div>\n <q2-btn\n ref={el => (this.editBtnElement = el)}\n class=\"begin-edit\"\n label={`${loc('tecton.element.editableField.edit')} ${this.locLabel}`}\n hide-label\n disabled={this.disabled}\n test-id=\"editButton\"\n onClick={this.editClick}\n >\n <q2-icon type=\"edit\" />\n </q2-btn>\n </div>\n );\n }\n\n inputChange = (e: CustomEvent) => {\n e.stopPropagation();\n };\n\n inputClick = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n inputInput = (event: Q2InputCustomEvent<IEventDetail> & InputEvent) => {\n event.stopPropagation();\n this.input.emit(event.detail);\n this.formattedValue = event.detail.formattedValue;\n this.innerValue = event.detail.value;\n };\n\n inputKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' || e.key === 'Esc') {\n e.preventDefault();\n this.cancelClick();\n return;\n }\n\n if (e.key === 'Enter') {\n e.preventDefault();\n this.saveClick();\n return;\n }\n };\n\n saveClick = (event?: MouseEvent) => {\n event && event.stopPropagation();\n const valueFromInputProp = this.hostElement.shadowRoot.querySelector('q2-input').value;\n this.defaultValue = valueFromInputProp;\n this.change.emit({\n editing: false,\n name: 'save',\n value: this.innerValue || valueFromInputProp,\n formattedValue: this.formattedValue || valueFromInputProp,\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div>\n {this.generateEditStateDOM()}\n {this.generateReadStateDOM()}\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
@@ -131,7 +131,7 @@ const d = class {
131
131
  }
132
132
  render() {
133
133
  return n(o, {
134
- key: "a89b3080a47ebc5401317f5620c918ff2c34bac2",
134
+ key: "2a8810e8b8152257cb5f710570a7b60708f76bde",
135
135
  attribute: "navigation"
136
136
  }, this.renderMenuInner());
137
137
  }
@@ -11,10 +11,10 @@ const i = class {
11
11
  }
12
12
  render() {
13
13
  return o("div", {
14
- key: "377fbc8245a6d6734536a37f3d733384801fd00b",
14
+ key: "caf601b969251105caec706267978caae64478c7",
15
15
  class: "container"
16
16
  }, o("slot", {
17
- key: "73d1054f5ca1af44c78a4f85b1009143989a5530"
17
+ key: "72983087473bc5c1eb88e0d610f54a414bad02d4"
18
18
  }));
19
19
  }
20
20
  };
@@ -49,11 +49,11 @@ const s = class {
49
49
  render() {
50
50
  const {formattedTextClasses: t} = this;
51
51
  return e("div", {
52
- key: "29aac8ea5e737d01243d42d0a9790d18a11f768c",
52
+ key: "5361b448c2dcd9deb0b52e97c399fe70402739b6",
53
53
  class: t,
54
54
  "aria-label": this.formattedValue
55
55
  }, e("span", {
56
- key: "613fe3f2d365edd4a2ffefd37ac2ec4f05220978"
56
+ key: "989054158a669360d1908cd9bd613078d3fcfcb2"
57
57
  }, this.formattedValue));
58
58
  }
59
59
  static get watchers() {
@@ -106,44 +106,44 @@ const d = class {
106
106
  render() {
107
107
  const {clickable: t} = this;
108
108
  return e("div", {
109
- key: "4afba65f3586f010f5e6f6faa72ab04d6ec79fb8",
109
+ key: "bc07c660098ad5236aeb3a925541bb655272ad1d",
110
110
  "test-id": "itemContainer",
111
111
  class: this.itemClasses,
112
112
  ref: t => this.itemElement = t,
113
113
  role: t ? "button" : undefined,
114
114
  tabIndex: t ? 0 : undefined
115
115
  }, this.hasBulletSlotContent && e("div", {
116
- key: "778ec58acfdc9a57662cb070028c5efbaced8056",
116
+ key: "9f4fc9b8d77c4ceebd1c1532288bf4f74b5ec619",
117
117
  class: this.bulletClasses
118
118
  }, e("slot", {
119
- key: "6429ec996adb7b400f7dbc37e66196394b2e4c5d",
119
+ key: "b244c86afa4ce153a49eadf1ff0f975c7c22873f",
120
120
  name: "bullet"
121
121
  })), e("div", {
122
- key: "2a81129ad24d95857183c72813d60eb785ee1b2d",
122
+ key: "bd94e2e41171c738cc120bcac21e313d10a92d86",
123
123
  class: this.mainClasses
124
124
  }, this.hasHeaderSlotContent && e("div", {
125
- key: "53315a1d62bc8ffc6f2f910e881659d61c670fbf",
125
+ key: "a45a52eb18000754a27c9dfb5db34cd1ac7117d2",
126
126
  class: "header"
127
127
  }, e("slot", {
128
- key: "a11063eda67cd353a7742397a4701c7939193d09",
128
+ key: "1caa04a58064ddadfe9838d6537e7c85860b2671",
129
129
  name: "header"
130
130
  })), this.hasBodySlotContent && e("div", {
131
- key: "903998a8a296b11c60ce105b6bb181badee3580c",
131
+ key: "5420a4bb0b8f79ddcbe7f83f35543c66a38a6eaf",
132
132
  class: "body"
133
133
  }, e("slot", {
134
- key: "c47b8387918feea518d56b25d2f4770a1cae9c00",
134
+ key: "e21252069146947cdcfca63c42ebd9f5dabb4f64",
135
135
  name: "body"
136
136
  }))), this.hasActionSlotContent && e("div", {
137
- key: "7b44a3c72b6d8cca1b409b9a37764a317ba8acb7",
137
+ key: "cdb5a454b1017fd64fe535cc843dac0498220690",
138
138
  class: this.actionClasses
139
139
  }, e("slot", {
140
- key: "ea50fb238aeae9c96276cf53234cfe2bdea55b42",
140
+ key: "e519a4e72b11096f941bc68d1f334afaecdf61a2",
141
141
  name: "action"
142
142
  })), this.hasFooterSlotContent && e("div", {
143
- key: "636e87198073af605443840a79ef2640ad7d4552",
143
+ key: "c03d5bd27317087e8bbdf61a3b4a6ed489070ea6",
144
144
  class: this.footerClasses
145
145
  }, e("slot", {
146
- key: "9b9112e049d8e6f2d5983ad499ad27ee6ec08b14",
146
+ key: "010ef88185cc77bd471fdd1e5b0746ea77ecf5d0",
147
147
  name: "footer"
148
148
  })));
149
149
  }
@@ -302,23 +302,23 @@ const f = class {
302
302
  // #region Render Methods
303
303
  render() {
304
304
  return e("div", {
305
- key: "815b7bb01cdd74d76d2390a9e969484189682c6b",
305
+ key: "647fd58f76aef5077994f9a23a1741d10fb5f256",
306
306
  class: this.listClasses,
307
307
  ref: t => this.listElement = t
308
308
  }, (this.hasFilterSlot || this.hasLabelContent) && e("div", {
309
- key: "3495d4aa9461d655f0c5bf5c67ce26b320324675",
309
+ key: "463450b42ec44b2ac1f22ad6b620ecc98d6db8f8",
310
310
  class: this.headerClasses
311
311
  }, e("div", {
312
- key: "9b5f21524fc50f41a38b7ff234cca04142e4783b",
312
+ key: "792da568158522281d8c204759f4cfb49a62f5cc",
313
313
  class: "label"
314
314
  }, this.label), this.hasFilterSlot && e("slot", {
315
- key: "4765b21b09161cad072e90f351e55d210c07a33c",
315
+ key: "ae70aee4513869c1cdc77fafeb645b4fb0a1f272",
316
316
  name: "filter"
317
317
  })), e("div", {
318
- key: "9157531d4ee7d3362fd23ae665dcc8f4ca28fd8d",
318
+ key: "6d6be3031adf8dd8a491c7a945f350d50665cbed",
319
319
  role: "list"
320
320
  }, e("slot", {
321
- key: "6cfa2724ee61b1b2271d673b6b71113e7bfd06e7"
321
+ key: "f81aa4bb6a4d5973bd84eb482782df5da9f0fb07"
322
322
  })));
323
323
  }
324
324
  get hostElement() {
@@ -103,10 +103,10 @@ const a = class {
103
103
  // #region Render Methods
104
104
  render() {
105
105
  return i("click-elsewhere", {
106
- key: "1253e1dba3334134aa16432ef4dd7e71a87d1420",
106
+ key: "541be05761592ed685067cf99e9e5a9b7ce9f445",
107
107
  onChange: () => this.onClickElsewhere(this)
108
108
  }, i("ul", {
109
- key: "d9252af5543da55989ec69b18b4438624c39a90e"
109
+ key: "92fbbc5ae4d9ca2803645285c2faca4c9356a319"
110
110
  }, this.dataWithClasses.map((t => i("li", {
111
111
  class: "item"
112
112
  }, i("button", {
@@ -1,4 +1,4 @@
1
- import { r as t, h as e, g as a } from "./index-7a5365e2.js";
1
+ import { r as t, h as a, g as e } from "./index-7a5365e2.js";
2
2
 
3
3
  import { o as s, i as o, n as r, t as i, l as n } from "./index-f2a66217.js";
4
4
 
@@ -7,8 +7,8 @@ const c = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;bo
7
7
  const p = c;
8
8
 
9
9
  const d = class {
10
- constructor(e) {
11
- t(this, e);
10
+ constructor(a) {
11
+ t(this, a);
12
12
  this.presentToggle = undefined;
13
13
  this.appearance = "standard";
14
14
  this.description = false;
@@ -44,15 +44,15 @@ const d = class {
44
44
  return i();
45
45
  }
46
46
  messageIcon(t) {
47
- const a = {
47
+ const e = {
48
48
  success: "success",
49
49
  warning: "warning",
50
50
  danger: "error",
51
51
  error: "error",
52
52
  info: "info"
53
53
  };
54
- const s = a[t] || a.info;
55
- return e("q2-icon", {
54
+ const s = e[t] || e.info;
55
+ return a("q2-icon", {
56
56
  type: s,
57
57
  class: "message-icon"
58
58
  });
@@ -61,35 +61,35 @@ const d = class {
61
61
  // #region Render Methods
62
62
  render() {
63
63
  const {isFirefox: t} = this;
64
- const a = t && this.presentToggle;
64
+ const e = t && this.presentToggle;
65
65
  const s = !t && this.presentToggle;
66
66
  const {description: o} = this;
67
67
  const r = n(`tecton.element.message.type.${this.type ? this.type : "info"}`);
68
- return e("div", {
69
- key: "e74bbda0808b5430f9f3533d5cfe32463c246fb7",
68
+ return a("div", {
69
+ key: "f4161e85adba8c023d8ad135c955a312e145ad9a",
70
70
  tabindex: "-1",
71
71
  class: "message",
72
72
  role: o ? undefined : "alert",
73
73
  "aria-live": o ? undefined : "assertive",
74
74
  "aria-atomic": o ? undefined : "true",
75
- "aria-relevant": o && a ? undefined : "all",
75
+ "aria-relevant": o && e ? undefined : "all",
76
76
  "test-id": "messageContainer"
77
- }, this.appearance === "standard" ? this.messageIcon(this.type) : "", s && e("div", {
78
- key: "11f8a2db8016024dc4cd51567a6e95a1eaea8e75",
77
+ }, this.appearance === "standard" ? this.messageIcon(this.type) : "", s && a("div", {
78
+ key: "75a17b9f1d17e1c051e7ed986d1382f83da6747b",
79
79
  class: "sr"
80
- }), e("div", {
81
- key: "e6c4f2f7aff57d19e0da9f5d6240f14ae881ddb8",
80
+ }), a("div", {
81
+ key: "4d1761c6d6391d2f6ed982add6effc441f7284f3",
82
82
  class: "sr message-label"
83
- }, r), e("div", {
84
- key: "e473b74d78048bc8c370f724356066e963b8667e",
83
+ }, r), a("div", {
84
+ key: "035a1040c019d8aa6eb6899e275469ab9edfc69d",
85
85
  class: "message-content",
86
- "aria-hidden": a ? "true" : undefined
87
- }, e("slot", {
88
- key: "adcaf51ebf8a023b8b1d5a6556c79b3c2b64d8cc"
86
+ "aria-hidden": e ? "true" : undefined
87
+ }, a("slot", {
88
+ key: "59187a716f498e899c6c5bf6c81aca27dbfb32c2"
89
89
  })));
90
90
  }
91
91
  get hostElement() {
92
- return a(this);
92
+ return e(this);
93
93
  }
94
94
  };
95
95
 
@@ -156,62 +156,62 @@ const l = class {
156
156
  const t = `interior`;
157
157
  const i = `${this.renderStatus || ""}`;
158
158
  return o("dialog", {
159
- key: "23605420f182cf36687c22f5d9a25512fe12aa1f",
159
+ key: "14c7d74be95682be1c6523d495a2b35bcc247e4a",
160
160
  ref: t => this.dialogElement = t,
161
161
  class: i,
162
162
  onClick: this.onClick
163
163
  }, o("div", {
164
- key: "e0bd45778d125c39028e9a7e999b36cdd920d471",
164
+ key: "64d3d8d9e01f4e8fee2ae452714e4eedd2570e68",
165
165
  class: t
166
166
  }, this.title && o("header", {
167
- key: "4658009b1bd010941c7d3128306ab44a1da80194"
167
+ key: "d36f931c9f7ae0f14817abb9a6dedee6257a5664"
168
168
  }, this.title && o("h2", {
169
- key: "ec33e00aa837cd0033f3a5f84f292ee7fb59fb45",
169
+ key: "39097ca1ee788258b9e349b8bc374b190ecaa8a5",
170
170
  class: "title"
171
171
  }, this.title), !!this.closable && o("q2-btn", {
172
- key: "19a02dda7a62729b20d79d7b380ac5225427a25b",
172
+ key: "d1c9a7bd159e4c7fdfa557efca9204593f27803d",
173
173
  class: "btn-close",
174
174
  "test-id": "btnClose",
175
175
  onClick: this.onCancel,
176
176
  label: "tecton.element.modal.close",
177
177
  "hide-label": true
178
178
  }, o("q2-icon", {
179
- key: "513d17ba802c6681ec399e44fc07180568695cfb",
179
+ key: "6225815f507315357b545a3177727f9f3438bccf",
180
180
  type: "close"
181
181
  }))), o("div", {
182
- key: "d291afd421f5a4f4bcccb1e7762cf633f84ffce2",
182
+ key: "4988151b63997614a382f7241f60af147b120e88",
183
183
  class: "content",
184
184
  ref: t => this.contentElement = t
185
185
  }, this.icon && o("div", {
186
- key: "3e4256c22f6b1a0c4da33c6e950ad682115c0be8",
186
+ key: "a54460f79a828bed7630108dd6f04ca1929dfbfb",
187
187
  class: "icon"
188
188
  }, o("q2-icon", {
189
- key: "9440c8af3d66157a1f66dbdbc15490e61d086ca8",
189
+ key: "3bd18a8787e40183f1d71ddd48e6ca207062588b",
190
190
  type: this.icon,
191
191
  style: this.iconStyle()
192
192
  })), this.imageSrc && o("div", {
193
- key: "a6a8451fea0accc0ebf1236bce6581db59af53e8",
193
+ key: "074f8bda9529d16d06630b4107a51e478a07d156",
194
194
  class: "image"
195
195
  }, o("img", {
196
- key: "a512e1803682e81187647ecddc8ac77d0d07240c",
196
+ key: "608a63353a935f44dfe3c2b809f4f28b89c38b31",
197
197
  src: this.imageSrc
198
198
  })), s(this.hostElement, "content") && o("slot", {
199
- key: "128d28110b50319c978b96598f73b204a8b36c68",
199
+ key: "4f23c254881c6840e05ac24b0ff712fd6e1f90df",
200
200
  name: "content"
201
201
  }), this.description && o("p", {
202
- key: "498bc624e6187e76365d03e50ad7aeaed23c9a18",
202
+ key: "af66d8b53f300ff96b68d59a4e47bf5fe5a535ea",
203
203
  class: "description"
204
204
  }, this.description), this.customMarkup && o("p", {
205
- key: "68c58bc1abbf26ed2729fd420b56db3e8b8cce10",
205
+ key: "bae1c644d7e41fd6389cf40689afe3c62dada367",
206
206
  class: "customMarkup",
207
207
  innerHTML: d(this.customMarkup)
208
208
  })), o("footer", {
209
- key: "090a95b0eae17b929781cea8292cc531f67f0cb7"
209
+ key: "f5b4756a03b61a192074100ca8d0e2162a95ba58"
210
210
  }, o("q2-action-group", {
211
- key: "f2b72a7b97df9771be3eeb7d09d8baca6522a2f6",
211
+ key: "3586e0321e11e3a97ee2d640d55d71fc502ee50f",
212
212
  "full-width": true
213
213
  }, o("slot", {
214
- key: "b6eca7b862e41fecd08516ade207a6d444c08ed3",
214
+ key: "3a66978962bfdafe16dc1948d3fd31f8088c0100",
215
215
  name: "action"
216
216
  })))));
217
217
  }