@nylas/web-elements 2.5.5 → 2.5.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 (346) hide show
  1. package/dist/cdn/input-color-picker/input-color-picker.es.js +3516 -3480
  2. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +5431 -5395
  3. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +7606 -7551
  4. package/dist/cjs/{abstract-provider-NL9mvsRm.js → abstract-provider-f3JKAnoC.js} +3 -3
  5. package/dist/cjs/{abstract-provider-NL9mvsRm.js.map → abstract-provider-f3JKAnoC.js.map} +1 -1
  6. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +2 -2
  7. package/dist/cjs/checkbox-group_4.cjs.entry.js +3 -3
  8. package/dist/cjs/checkmark-icon_14.cjs.entry.js +2 -2
  9. package/dist/cjs/{customParseFormat-OQPjPVhj.js → customParseFormat-5f0XwO0N.js} +3 -3
  10. package/dist/cjs/{customParseFormat-OQPjPVhj.js.map → customParseFormat-5f0XwO0N.js.map} +1 -1
  11. package/dist/cjs/globe-icon_3.cjs.entry.js +2 -2
  12. package/dist/cjs/google-logo-icon_6.cjs.entry.js +3 -3
  13. package/dist/cjs/index.cjs.js +2 -2
  14. package/dist/cjs/input-component.cjs.entry.js +1 -1
  15. package/dist/cjs/input-dropdown_2.cjs.entry.js +1 -1
  16. package/dist/cjs/input-image-url_2.cjs.entry.js +2 -2
  17. package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
  18. package/dist/cjs/{nylas-api-request-Cva9mkSo.js → nylas-api-request-Cbo-19Nf.js} +3 -3
  19. package/dist/cjs/{nylas-api-request-Cva9mkSo.js.map → nylas-api-request-Cbo-19Nf.js.map} +1 -1
  20. package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +18 -13
  21. package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nylas-form-card.cjs.entry.js +2 -2
  23. package/dist/cjs/nylas-notification_2.cjs.entry.js +1 -1
  24. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +4 -4
  25. package/dist/cjs/nylas-scheduling.cjs.entry.js +28 -14
  26. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
  28. package/dist/cjs/{register-component-Cu3tKKKD.js → register-component-3z1jbXx-.js} +3 -3
  29. package/dist/cjs/{register-component-Cu3tKKKD.js.map → register-component-3z1jbXx-.js.map} +1 -1
  30. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  31. package/dist/cjs/{utils-DMqnHqF8.js → utils-C5qGWVDr.js} +68 -8
  32. package/dist/cjs/{utils-DMqnHqF8.js.map → utils-C5qGWVDr.js.map} +1 -1
  33. package/dist/cjs/{version-y-IXeOX1.js → version-CJ5046pS.js} +3 -3
  34. package/dist/cjs/{version-y-IXeOX1.js.map → version-CJ5046pS.js.map} +1 -1
  35. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +6 -2
  36. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
  37. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js +11 -10
  38. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js.map +1 -1
  39. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +23 -10
  40. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
  41. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +4 -3
  42. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -1
  43. package/dist/collection/connector/shared/api/scheduler.js +5 -3
  44. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  45. package/dist/collection/stores/scheduler-store.js +3 -2
  46. package/dist/collection/stores/scheduler-store.js.map +1 -1
  47. package/dist/collection/utils/utils.js +11 -6
  48. package/dist/collection/utils/utils.js.map +1 -1
  49. package/dist/collection/version.js +1 -1
  50. package/dist/collection/version.js.map +1 -1
  51. package/dist/components/index.js +1 -1
  52. package/dist/components/input-color-picker.js +1 -1
  53. package/dist/components/input-component.js +1 -1
  54. package/dist/components/input-image-url.js +1 -1
  55. package/dist/components/multi-select-dropdown.js +1 -1
  56. package/dist/components/nylas-additional-participants.js +1 -1
  57. package/dist/components/nylas-availability-picker.js +1 -1
  58. package/dist/components/nylas-booked-event-card.js +1 -1
  59. package/dist/components/nylas-booking-calendar-picker.js +1 -1
  60. package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
  61. package/dist/components/nylas-booking-confirmation-type.js +1 -1
  62. package/dist/components/nylas-booking-form-config.js +1 -1
  63. package/dist/components/nylas-booking-form.js +1 -1
  64. package/dist/components/nylas-buffer-time.js +1 -1
  65. package/dist/components/nylas-calendar-picker.js +1 -1
  66. package/dist/components/nylas-cancel-booking-form.js +1 -1
  67. package/dist/components/nylas-cancellation-policy.js +1 -1
  68. package/dist/components/nylas-cancelled-event-card.js +1 -1
  69. package/dist/components/nylas-confirmation-email.js +1 -1
  70. package/dist/components/nylas-confirmed-event-card.js +1 -1
  71. package/dist/components/nylas-connected-calendars.js +1 -1
  72. package/dist/components/nylas-custom-booking-flow.js +1 -1
  73. package/dist/components/nylas-custom-event-slug.js +1 -1
  74. package/dist/components/nylas-customize-booking-settings.js +1 -1
  75. package/dist/components/nylas-date-component.js +1 -1
  76. package/dist/components/nylas-date-picker.js +1 -1
  77. package/dist/components/nylas-disable-emails.js +1 -1
  78. package/dist/components/nylas-editor-tabs-group.js +1 -1
  79. package/dist/components/nylas-editor-tabs.js +1 -1
  80. package/dist/components/nylas-event-calendar.js +1 -1
  81. package/dist/components/nylas-event-capacity.js +1 -1
  82. package/dist/components/nylas-event-description.js +1 -1
  83. package/dist/components/nylas-event-duration.js +1 -1
  84. package/dist/components/nylas-event-info.js +1 -1
  85. package/dist/components/nylas-event-limits.js +1 -1
  86. package/dist/components/nylas-event-location.js +1 -1
  87. package/dist/components/nylas-event-timeslot.js +1 -1
  88. package/dist/components/nylas-event-title.js +1 -1
  89. package/dist/components/nylas-feedback-form.js +1 -1
  90. package/dist/components/nylas-form-card.js +1 -1
  91. package/dist/components/nylas-limit-future-bookings.js +1 -1
  92. package/dist/components/nylas-list-configurations.js +1 -1
  93. package/dist/components/nylas-locale-switch.js +1 -1
  94. package/dist/components/nylas-min-booking-notice.js +1 -1
  95. package/dist/components/nylas-min-cancellation-notice.js +1 -1
  96. package/dist/components/nylas-notetaker-config.js +1 -1
  97. package/dist/components/nylas-notification.js +1 -1
  98. package/dist/components/nylas-only-specific-time-availability.js +1 -1
  99. package/dist/components/nylas-organizer-confirmation-card.js +1 -1
  100. package/dist/components/nylas-page-name.js +1 -1
  101. package/dist/components/nylas-page-styling.js +1 -1
  102. package/dist/components/nylas-participant-booking-calendars.js +1 -1
  103. package/dist/components/nylas-participants-custom-availability.js +1 -1
  104. package/dist/components/nylas-reminder-emails.js +1 -1
  105. package/dist/components/nylas-reminder-time.js +1 -1
  106. package/dist/components/nylas-scheduler-editor.js +58 -58
  107. package/dist/components/nylas-scheduling-method.js +1 -1
  108. package/dist/components/nylas-scheduling.js +45 -31
  109. package/dist/components/nylas-scheduling.js.map +1 -1
  110. package/dist/components/nylas-select-event-type.js +1 -1
  111. package/dist/components/nylas-selected-event-card.js +1 -1
  112. package/dist/components/nylas-specific-time-availability-picker.js +1 -1
  113. package/dist/components/nylas-time-window-picker.js +1 -1
  114. package/dist/components/nylas-timeslot-interval.js +1 -1
  115. package/dist/components/nylas-timeslot-picker.js +1 -1
  116. package/dist/components/{p-DyFJlXYY.js → p-5ZYkWuBH.js} +5 -5
  117. package/dist/components/{p-DyFJlXYY.js.map → p-5ZYkWuBH.js.map} +1 -1
  118. package/dist/components/{p-D2Tc9Auy.js → p-6buYtCek.js} +5 -5
  119. package/dist/components/{p-D2Tc9Auy.js.map → p-6buYtCek.js.map} +1 -1
  120. package/dist/components/{p-aA5xBZ4y.js → p-8jVEXvkn.js} +6 -6
  121. package/dist/components/{p-aA5xBZ4y.js.map → p-8jVEXvkn.js.map} +1 -1
  122. package/dist/components/{p-Czz4qXvH.js → p-B0eXe4fu.js} +9 -9
  123. package/dist/components/{p-Czz4qXvH.js.map → p-B0eXe4fu.js.map} +1 -1
  124. package/dist/components/{p-BOo4c1sq.js → p-B54mNgSc.js} +6 -6
  125. package/dist/components/{p-BOo4c1sq.js.map → p-B54mNgSc.js.map} +1 -1
  126. package/dist/components/{p-0CHYtuce.js → p-BCdaMIEZ.js} +6 -6
  127. package/dist/components/{p-0CHYtuce.js.map → p-BCdaMIEZ.js.map} +1 -1
  128. package/dist/components/{p-DHDBkOA6.js → p-BIbAx1y2.js} +3 -3
  129. package/dist/components/{p-DHDBkOA6.js.map → p-BIbAx1y2.js.map} +1 -1
  130. package/dist/components/{p-D2Zt-T9i.js → p-BNfHz7A2.js} +6 -6
  131. package/dist/components/{p-D2Zt-T9i.js.map → p-BNfHz7A2.js.map} +1 -1
  132. package/dist/components/{p-CA-CDvvH.js → p-B_HtmTBC.js} +6 -6
  133. package/dist/components/{p-CA-CDvvH.js.map → p-B_HtmTBC.js.map} +1 -1
  134. package/dist/components/{p-CaPXccMa.js → p-Begx19Z9.js} +3 -3
  135. package/dist/components/{p-CaPXccMa.js.map → p-Begx19Z9.js.map} +1 -1
  136. package/dist/components/{p-DIYyA3tv.js → p-BhY18Huj.js} +5 -5
  137. package/dist/components/{p-DIYyA3tv.js.map → p-BhY18Huj.js.map} +1 -1
  138. package/dist/components/{p-CFk78OEk.js → p-BjxQTsOy.js} +56 -2
  139. package/dist/components/{p-CFk78OEk.js.map → p-BjxQTsOy.js.map} +1 -1
  140. package/dist/components/{p-DfJPUV12.js → p-BpDfyvY4.js} +3 -3
  141. package/dist/components/{p-DfJPUV12.js.map → p-BpDfyvY4.js.map} +1 -1
  142. package/dist/components/{p-B2qD9GvB.js → p-BqcSDTPa.js} +6 -6
  143. package/dist/components/{p-B2qD9GvB.js.map → p-BqcSDTPa.js.map} +1 -1
  144. package/dist/components/{p-DWH9lxNw.js → p-ByIpuB6X.js} +6 -6
  145. package/dist/components/{p-DWH9lxNw.js.map → p-ByIpuB6X.js.map} +1 -1
  146. package/dist/components/{p-DDnT7nCe.js → p-Bye3Di82.js} +3 -3
  147. package/dist/components/{p-DDnT7nCe.js.map → p-Bye3Di82.js.map} +1 -1
  148. package/dist/components/{p-CugpjY9p.js → p-Bzhy3cc5.js} +3 -3
  149. package/dist/components/{p-CugpjY9p.js.map → p-Bzhy3cc5.js.map} +1 -1
  150. package/dist/components/{p-S6AbMZpH.js → p-C1IR0LII.js} +8 -8
  151. package/dist/components/{p-S6AbMZpH.js.map → p-C1IR0LII.js.map} +1 -1
  152. package/dist/components/{p-677FcYj-.js → p-C8K-8dJ0.js} +52 -52
  153. package/dist/components/{p-677FcYj-.js.map → p-C8K-8dJ0.js.map} +1 -1
  154. package/dist/components/{p-sjyMT8di.js → p-CABFxRgm.js} +5 -5
  155. package/dist/components/{p-sjyMT8di.js.map → p-CABFxRgm.js.map} +1 -1
  156. package/dist/components/{p-BkEoeb5s.js → p-CHMf20sF.js} +5 -5
  157. package/dist/components/{p-BkEoeb5s.js.map → p-CHMf20sF.js.map} +1 -1
  158. package/dist/components/{p--MwFi8VI.js → p-CIiKlhjq.js} +5 -5
  159. package/dist/components/{p--MwFi8VI.js.map → p-CIiKlhjq.js.map} +1 -1
  160. package/dist/components/{p-B-fT9puv.js → p-CKPYi9FX.js} +4 -4
  161. package/dist/components/{p-B-fT9puv.js.map → p-CKPYi9FX.js.map} +1 -1
  162. package/dist/components/{p-D0h0sso6.js → p-CLMQXVmv.js} +5 -5
  163. package/dist/components/{p-D0h0sso6.js.map → p-CLMQXVmv.js.map} +1 -1
  164. package/dist/components/{p-BB1ko_uE.js → p-CMF0O-Fp.js} +7 -7
  165. package/dist/components/{p-BB1ko_uE.js.map → p-CMF0O-Fp.js.map} +1 -1
  166. package/dist/components/{p-CCA4ZVjd.js → p-CSqqWusO.js} +10 -7
  167. package/dist/components/p-CSqqWusO.js.map +1 -0
  168. package/dist/components/{p-OCI2J8gy.js → p-CTDkYArQ.js} +9 -9
  169. package/dist/components/{p-OCI2J8gy.js.map → p-CTDkYArQ.js.map} +1 -1
  170. package/dist/components/{p-Btoob5w4.js → p-CUL-OCAu.js} +6 -6
  171. package/dist/components/{p-Btoob5w4.js.map → p-CUL-OCAu.js.map} +1 -1
  172. package/dist/components/{p-CNep2hQ8.js → p-CXqwQnQF.js} +5 -5
  173. package/dist/components/{p-CNep2hQ8.js.map → p-CXqwQnQF.js.map} +1 -1
  174. package/dist/components/{p-BJFo54WS.js → p-CXxRydPc.js} +5 -5
  175. package/dist/components/{p-BJFo54WS.js.map → p-CXxRydPc.js.map} +1 -1
  176. package/dist/components/{p-D_ge-nYu.js → p-CYy1pa_3.js} +5 -5
  177. package/dist/components/{p-D_ge-nYu.js.map → p-CYy1pa_3.js.map} +1 -1
  178. package/dist/components/{p-2Mq6VEeK.js → p-ClGGIEMi.js} +6 -6
  179. package/dist/components/{p-2Mq6VEeK.js.map → p-ClGGIEMi.js.map} +1 -1
  180. package/dist/components/{p-DAnwHL85.js → p-CpMfG8zc.js} +18 -18
  181. package/dist/components/{p-DAnwHL85.js.map → p-CpMfG8zc.js.map} +1 -1
  182. package/dist/components/{p-y6oP8jW5.js → p-CrXOqjIw.js} +8 -7
  183. package/dist/components/p-CrXOqjIw.js.map +1 -0
  184. package/dist/components/{p-CzVKC2Lf.js → p-CsyEOZaq.js} +3 -3
  185. package/dist/components/{p-CzVKC2Lf.js.map → p-CsyEOZaq.js.map} +1 -1
  186. package/dist/components/{p-DjXPd1-l.js → p-D-3RU2oS.js} +5 -5
  187. package/dist/components/{p-DjXPd1-l.js.map → p-D-3RU2oS.js.map} +1 -1
  188. package/dist/components/{p-DxIVEThE.js → p-D19TzH-m.js} +6 -6
  189. package/dist/components/{p-DxIVEThE.js.map → p-D19TzH-m.js.map} +1 -1
  190. package/dist/components/{p-Cpuo7KDZ.js → p-D1laIpmv.js} +8 -8
  191. package/dist/components/{p-Cpuo7KDZ.js.map → p-D1laIpmv.js.map} +1 -1
  192. package/dist/components/{p-B1YSZBvC.js → p-D4C1TKzq.js} +5 -5
  193. package/dist/components/{p-B1YSZBvC.js.map → p-D4C1TKzq.js.map} +1 -1
  194. package/dist/components/{p-gDuYV0jU.js → p-D8Gq0LJd.js} +5 -5
  195. package/dist/components/{p-gDuYV0jU.js.map → p-D8Gq0LJd.js.map} +1 -1
  196. package/dist/components/{p-D8Qul6Vu.js → p-DBEvFYf0.js} +6 -6
  197. package/dist/components/{p-D8Qul6Vu.js.map → p-DBEvFYf0.js.map} +1 -1
  198. package/dist/components/{p-Dz6ZS9T7.js → p-DBwy7Snv.js} +4 -4
  199. package/dist/components/{p-Dz6ZS9T7.js.map → p-DBwy7Snv.js.map} +1 -1
  200. package/dist/components/{p-JjXUnTze.js → p-DDjhKQi2.js} +5 -5
  201. package/dist/components/{p-JjXUnTze.js.map → p-DDjhKQi2.js.map} +1 -1
  202. package/dist/components/{p-C6AxpIio.js → p-DFSt8wfH.js} +6 -6
  203. package/dist/components/{p-C6AxpIio.js.map → p-DFSt8wfH.js.map} +1 -1
  204. package/dist/components/{p-DEtEu7ce.js → p-DPBfMry4.js} +7 -7
  205. package/dist/components/{p-DEtEu7ce.js.map → p-DPBfMry4.js.map} +1 -1
  206. package/dist/components/{p-BJPokpdk.js → p-DR_UXNMx.js} +13 -12
  207. package/dist/components/p-DR_UXNMx.js.map +1 -0
  208. package/dist/components/{p-Dwqu7m_I.js → p-DRgnghCP.js} +5 -5
  209. package/dist/components/{p-Dwqu7m_I.js.map → p-DRgnghCP.js.map} +1 -1
  210. package/dist/components/{p-C7QOS5b4.js → p-D_ZAV9If.js} +7 -7
  211. package/dist/components/{p-C7QOS5b4.js.map → p-D_ZAV9If.js.map} +1 -1
  212. package/dist/components/{p-BUEZ6uxG.js → p-Dj4JDZ9W.js} +5 -5
  213. package/dist/components/{p-BUEZ6uxG.js.map → p-Dj4JDZ9W.js.map} +1 -1
  214. package/dist/components/{p-C_cuGb0d.js → p-DtHKroeT.js} +5 -5
  215. package/dist/components/{p-C_cuGb0d.js.map → p-DtHKroeT.js.map} +1 -1
  216. package/dist/components/{p-BmyZZVvG.js → p-DxYfbkxH.js} +4 -4
  217. package/dist/components/{p-BmyZZVvG.js.map → p-DxYfbkxH.js.map} +1 -1
  218. package/dist/components/{p-CoLVT2ul.js → p-Dxtgg1gN.js} +3 -3
  219. package/dist/components/{p-CoLVT2ul.js.map → p-Dxtgg1gN.js.map} +1 -1
  220. package/dist/components/{p-a6EsfrCF.js → p-DzkCpPXX.js} +9 -9
  221. package/dist/components/{p-a6EsfrCF.js.map → p-DzkCpPXX.js.map} +1 -1
  222. package/dist/components/{p-XoA6r1Sp.js → p-FYD-tPqw.js} +8 -8
  223. package/dist/components/{p-XoA6r1Sp.js.map → p-FYD-tPqw.js.map} +1 -1
  224. package/dist/components/{p-C0pHjJtj.js → p-NkqnymW3.js} +9 -9
  225. package/dist/components/{p-C0pHjJtj.js.map → p-NkqnymW3.js.map} +1 -1
  226. package/dist/components/{p-Du5g5VR_.js → p-SbxgHNeG.js} +6 -6
  227. package/dist/components/{p-Du5g5VR_.js.map → p-SbxgHNeG.js.map} +1 -1
  228. package/dist/components/{p-C7ZVu1Nd.js → p-SjPGcPOD.js} +6 -6
  229. package/dist/components/{p-C7ZVu1Nd.js.map → p-SjPGcPOD.js.map} +1 -1
  230. package/dist/components/{p-CigXeIp5.js → p-U-EdxzfX.js} +3 -3
  231. package/dist/components/{p-CigXeIp5.js.map → p-U-EdxzfX.js.map} +1 -1
  232. package/dist/components/{p-BW6mh3NI.js → p-Uj5eg-r1.js} +42 -42
  233. package/dist/components/{p-BW6mh3NI.js.map → p-Uj5eg-r1.js.map} +1 -1
  234. package/dist/components/{p-elpxqGIV.js → p-cIIaCJPC.js} +3 -3
  235. package/dist/components/{p-elpxqGIV.js.map → p-cIIaCJPC.js.map} +1 -1
  236. package/dist/components/{p-BiyP1P0p.js → p-fOr8r1Zc.js} +6 -6
  237. package/dist/components/{p-BiyP1P0p.js.map → p-fOr8r1Zc.js.map} +1 -1
  238. package/dist/components/{p-DBECHub0.js → p-irdXl5Fp.js} +6 -6
  239. package/dist/components/{p-DBECHub0.js.map → p-irdXl5Fp.js.map} +1 -1
  240. package/dist/components/{p-CdMky78w.js → p-jHq8WTky.js} +3 -3
  241. package/dist/components/{p-CdMky78w.js.map → p-jHq8WTky.js.map} +1 -1
  242. package/dist/components/{p-CDVJMEhz.js → p-mElO3u2v.js} +5 -5
  243. package/dist/components/{p-CDVJMEhz.js.map → p-mElO3u2v.js.map} +1 -1
  244. package/dist/components/{p-Co55qdnC.js → p-nozjdB6e.js} +5 -5
  245. package/dist/components/{p-Co55qdnC.js.map → p-nozjdB6e.js.map} +1 -1
  246. package/dist/components/{p-MiuL2YAY.js → p-sKaBe5Hr.js} +6 -6
  247. package/dist/components/{p-MiuL2YAY.js.map → p-sKaBe5Hr.js.map} +1 -1
  248. package/dist/components/{p-BJXl7RY2.js → p-wJcvwuFy.js} +6 -6
  249. package/dist/components/{p-BJXl7RY2.js.map → p-wJcvwuFy.js.map} +1 -1
  250. package/dist/components/{p-DBE6FcDx.js → p-xxFdByBn.js} +15 -10
  251. package/dist/components/p-xxFdByBn.js.map +1 -0
  252. package/dist/components/{p-BPZfpfqz.js → p-zzOzXpMC.js} +7 -7
  253. package/dist/components/{p-BPZfpfqz.js.map → p-zzOzXpMC.js.map} +1 -1
  254. package/dist/components/textarea-component.js +1 -1
  255. package/dist/components/time-period-selector.js +1 -1
  256. package/dist/esm/{abstract-provider-Bxd_4MUD.js → abstract-provider-Dbnlk0Q8.js} +3 -3
  257. package/dist/esm/{abstract-provider-Bxd_4MUD.js.map → abstract-provider-Dbnlk0Q8.js.map} +1 -1
  258. package/dist/esm/calendar-agenda-fill-icon_39.entry.js +2 -2
  259. package/dist/esm/checkbox-group_4.entry.js +3 -3
  260. package/dist/esm/checkmark-icon_14.entry.js +2 -2
  261. package/dist/esm/{customParseFormat-AHaK_YU_.js → customParseFormat-xZjyidlk.js} +3 -3
  262. package/dist/esm/{customParseFormat-AHaK_YU_.js.map → customParseFormat-xZjyidlk.js.map} +1 -1
  263. package/dist/esm/globe-icon_3.entry.js +2 -2
  264. package/dist/esm/google-logo-icon_6.entry.js +3 -3
  265. package/dist/esm/index.js +2 -2
  266. package/dist/esm/input-component.entry.js +1 -1
  267. package/dist/esm/input-dropdown_2.entry.js +1 -1
  268. package/dist/esm/input-image-url_2.entry.js +2 -2
  269. package/dist/esm/multi-select-dropdown.entry.js +1 -1
  270. package/dist/esm/{nylas-api-request-BUmT2J5X.js → nylas-api-request-tYrM5hQX.js} +3 -3
  271. package/dist/esm/{nylas-api-request-BUmT2J5X.js.map → nylas-api-request-tYrM5hQX.js.map} +1 -1
  272. package/dist/esm/nylas-booked-event-card_11.entry.js +18 -13
  273. package/dist/esm/nylas-booked-event-card_11.entry.js.map +1 -1
  274. package/dist/esm/nylas-form-card.entry.js +2 -2
  275. package/dist/esm/nylas-notification_2.entry.js +1 -1
  276. package/dist/esm/nylas-scheduler-editor.entry.js +4 -4
  277. package/dist/esm/nylas-scheduling.entry.js +28 -14
  278. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  279. package/dist/esm/{register-component-DVA2Alyc.js → register-component-3SZ7gAeK.js} +3 -3
  280. package/dist/esm/{register-component-DVA2Alyc.js.map → register-component-3SZ7gAeK.js.map} +1 -1
  281. package/dist/esm/textarea-component.entry.js +1 -1
  282. package/dist/esm/{utils-BW6igRcf.js → utils-DDKV6-nQ.js} +68 -9
  283. package/dist/esm/{utils-BW6igRcf.js.map → utils-DDKV6-nQ.js.map} +1 -1
  284. package/dist/esm/{version-CqK6_Oc7.js → version-Xc-4F4Ta.js} +3 -3
  285. package/dist/esm/{version-CqK6_Oc7.js.map → version-Xc-4F4Ta.js.map} +1 -1
  286. package/dist/nylas-web-elements/index.esm.js +1 -1
  287. package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
  288. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  289. package/dist/nylas-web-elements/{p-04000a4f.entry.js → p-2e34476b.entry.js} +2 -2
  290. package/dist/nylas-web-elements/{p-61828a18.entry.js → p-42432de0.entry.js} +2 -2
  291. package/dist/nylas-web-elements/p-469c232b.entry.js +2 -0
  292. package/dist/nylas-web-elements/p-469c232b.entry.js.map +1 -0
  293. package/dist/nylas-web-elements/{p-da0d3be5.entry.js → p-473a9f48.entry.js} +2 -2
  294. package/dist/nylas-web-elements/p-49510dd2.entry.js +2 -0
  295. package/dist/nylas-web-elements/p-49510dd2.entry.js.map +1 -0
  296. package/dist/nylas-web-elements/{p-e63c997e.entry.js → p-4c51d165.entry.js} +2 -2
  297. package/dist/nylas-web-elements/{p-a5cc8de4.entry.js → p-6245bad4.entry.js} +3 -3
  298. package/dist/nylas-web-elements/{p-ca41de7e.entry.js → p-7186d262.entry.js} +2 -2
  299. package/dist/nylas-web-elements/{p-34fde935.entry.js → p-90569d2b.entry.js} +2 -2
  300. package/dist/nylas-web-elements/{p-54521b2b.entry.js → p-926c0f10.entry.js} +2 -2
  301. package/dist/nylas-web-elements/{p-dlIPw-hO.js → p-CONX24aJ.js} +2 -2
  302. package/dist/nylas-web-elements/{p-dlIPw-hO.js.map → p-CONX24aJ.js.map} +1 -1
  303. package/dist/nylas-web-elements/{p-CRHgCWIn.js → p-CZUjPf2B.js} +2 -2
  304. package/dist/nylas-web-elements/{p-CRHgCWIn.js.map → p-CZUjPf2B.js.map} +1 -1
  305. package/dist/nylas-web-elements/p-CpfLRTv0.js +2 -0
  306. package/dist/nylas-web-elements/{p-DGwaF706.js.map → p-CpfLRTv0.js.map} +1 -1
  307. package/dist/nylas-web-elements/{p-or8kjH6q.js → p-Cz68LNCB.js} +2 -2
  308. package/dist/nylas-web-elements/{p-or8kjH6q.js.map → p-Cz68LNCB.js.map} +1 -1
  309. package/dist/nylas-web-elements/p-DDKV6-nQ.js +8 -0
  310. package/dist/nylas-web-elements/{p-BW6igRcf.js.map → p-DDKV6-nQ.js.map} +1 -1
  311. package/dist/nylas-web-elements/{p-CqK6_Oc7.js → p-Xc-4F4Ta.js} +2 -2
  312. package/dist/nylas-web-elements/{p-CqK6_Oc7.js.map → p-Xc-4F4Ta.js.map} +1 -1
  313. package/dist/nylas-web-elements/p-b877c010.entry.js +2 -0
  314. package/dist/nylas-web-elements/{p-7fb5c45e.entry.js.map → p-b877c010.entry.js.map} +1 -1
  315. package/dist/nylas-web-elements/{p-5d8287eb.entry.js → p-b9a991fe.entry.js} +2 -2
  316. package/dist/nylas-web-elements/{p-38051452.entry.js → p-bb4b9655.entry.js} +2 -2
  317. package/dist/nylas-web-elements/{p-196717a0.entry.js → p-c71c04d0.entry.js} +3 -3
  318. package/dist/nylas-web-elements/{p-400d16e6.entry.js → p-f74f3a8d.entry.js} +2 -2
  319. package/dist/types/components/scheduler/nylas-scheduling/nylas-scheduling.d.ts +3 -0
  320. package/dist/types/components.d.ts +2 -2
  321. package/dist/types/utils/utils.d.ts +2 -1
  322. package/dist/types/version.d.ts +1 -1
  323. package/package.json +1 -1
  324. package/dist/components/p-BJPokpdk.js.map +0 -1
  325. package/dist/components/p-CCA4ZVjd.js.map +0 -1
  326. package/dist/components/p-DBE6FcDx.js.map +0 -1
  327. package/dist/components/p-y6oP8jW5.js.map +0 -1
  328. package/dist/nylas-web-elements/p-7fb5c45e.entry.js +0 -2
  329. package/dist/nylas-web-elements/p-BW6igRcf.js +0 -8
  330. package/dist/nylas-web-elements/p-DGwaF706.js +0 -2
  331. package/dist/nylas-web-elements/p-a6579faa.entry.js +0 -2
  332. package/dist/nylas-web-elements/p-a6579faa.entry.js.map +0 -1
  333. package/dist/nylas-web-elements/p-d1dc06a1.entry.js +0 -2
  334. package/dist/nylas-web-elements/p-d1dc06a1.entry.js.map +0 -1
  335. /package/dist/nylas-web-elements/{p-04000a4f.entry.js.map → p-2e34476b.entry.js.map} +0 -0
  336. /package/dist/nylas-web-elements/{p-61828a18.entry.js.map → p-42432de0.entry.js.map} +0 -0
  337. /package/dist/nylas-web-elements/{p-da0d3be5.entry.js.map → p-473a9f48.entry.js.map} +0 -0
  338. /package/dist/nylas-web-elements/{p-e63c997e.entry.js.map → p-4c51d165.entry.js.map} +0 -0
  339. /package/dist/nylas-web-elements/{p-a5cc8de4.entry.js.map → p-6245bad4.entry.js.map} +0 -0
  340. /package/dist/nylas-web-elements/{p-ca41de7e.entry.js.map → p-7186d262.entry.js.map} +0 -0
  341. /package/dist/nylas-web-elements/{p-34fde935.entry.js.map → p-90569d2b.entry.js.map} +0 -0
  342. /package/dist/nylas-web-elements/{p-54521b2b.entry.js.map → p-926c0f10.entry.js.map} +0 -0
  343. /package/dist/nylas-web-elements/{p-5d8287eb.entry.js.map → p-b9a991fe.entry.js.map} +0 -0
  344. /package/dist/nylas-web-elements/{p-38051452.entry.js.map → p-bb4b9655.entry.js.map} +0 -0
  345. /package/dist/nylas-web-elements/{p-196717a0.entry.js.map → p-c71c04d0.entry.js.map} +0 -0
  346. /package/dist/nylas-web-elements/{p-400d16e6.entry.js.map → p-f74f3a8d.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"p-elpxqGIV.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/design-system/input-component/input-component.scss?tag=input-component&encapsulation=shadow","src/components/design-system/input-component/input-component.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/inputs' as *;\n\n:host {\n display: block;\n height: auto;\n @include default-css-variables;\n width: 100%;\n}\n\nlabel {\n @include input-label;\n flex-direction: column;\n gap: 4px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n color: var(--nylas-base-800);\n\n p {\n margin: 0;\n }\n\n .error {\n color: var(--nylas-error);\n }\n}\n\n.input_wrapper {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\ninput[type='text'],\ninput[type='number'],\ninput[type='email'],\ninput[type='phone_number'] {\n @include textfield;\n width: -moz-available;\n width: -webkit-fill-available;\n}\n\ninput:read-only {\n background-color: var(--nylas-base-100);\n cursor: not-allowed;\n}","import { Component, h, Prop, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\nimport { sanitize } from '@/utils/utils';\nimport { ThemeConfig } from '@nylas/core';\n\nconst DefaultPattern = {\n email: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,\n phone_number: /^\\+?\\d{1,15}$/,\n};\n\nconst DefaultPlaceholder = {\n email: 'name@example.com',\n phone_number: '1234567890',\n};\n\n/**\n * The `input-component` component is a UI component that allows users to input text, email, or phone number values.\n * This component is used in the scheduling form to input text, email and phone number type inputs.\n */\n\n@Component({\n tag: 'input-component',\n styleUrl: 'input-component.scss',\n shadow: true,\n})\nexport class InputComponent {\n /**\n * The host element\n */\n @Element() el!: HTMLElement;\n /**\n * The name of the input. This is used to identify the input when submitting a form.\n */\n @Prop() name: string = 'input';\n /**\n * The default value of the input. This is the value that is displayed when the input is rendered.\n */\n @Prop() defaultValue?: string;\n /**\n * The label of the input. This is displayed above the input.\n */\n @Prop() label: string = '';\n /**\n * The type of the input. This is used to determine the input's behavior.\n * Supported types are 'text', 'email', and 'phone_number'.\n */\n @Prop() type: 'text' | 'email' | 'phone_number' | 'number' = 'text';\n /**\n * The placeholder of the input. This is displayed when the input is empty.\n */\n @Prop() placeholder: string = DefaultPlaceholder[this.type];\n /**\n * Whether the input is required. If true, the input must have a value when submitting a form.\n * Default is false. If the input is required and the value is empty, an error message is displayed.\n */\n @Prop() required: boolean = false;\n /**\n * Whether the input is read-only. If true, the input cannot be edited.\n * Default is false.\n */\n @Prop() readOnly: boolean = false;\n /**\n * Whether the input should be focused when rendered.\n * Default is false. If true, the input is focused when rendered.\n * Use this to set the focus on the first input in a form.\n */\n @Prop() autoFocus: boolean = false;\n /**\n * The pattern to validate the input value. If the value does not match the pattern, an error message is displayed.\n * Default is null. If the pattern is not set, the pattern is determined by the input type for 'email' and 'phone_number'.\n */\n @Prop() pattern?: RegExp;\n /**\n * The maximum length of the input value. If the value is longer than the maximum length, an error message is displayed.\n * Default is 255.\n */\n @Prop() maxLength: number = 255;\n /**\n * The error message to display when the value does not match the pattern.\n * Default is 'Invalid <field> format.' where <field> is the input label.\n */\n @Prop() patternError: string = '';\n\n /**\n * This error message is displayed when the input value is empty and the input is required.\n */\n @Prop() requiredError: string = '';\n @Prop() maxValue?: number; // Optional max value for 'number'\n @Prop() minValue?: number; // Optional min value for 'number'\n\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * The input value state.\n */\n @State() value!: string;\n /**\n * The error message state.\n */\n @State() error: string = '';\n\n /**\n * This event is fired when the input value is changed.\n * The scheduling form listens for this event to validate the input value and submit the form.\n * If using outside of the scheduling form, listen for this event to validate the input value\n * and handle the input value change.\n */\n @Event() nylasFormInputChanged!: EventEmitter<{\n value: string;\n name: string;\n label: string;\n type: string;\n error: string;\n }>;\n\n @Event() nylasFormInputFocused!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n @Event() nylasFormInputBlurred!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n // Lifecycle methods\n @Watch('defaultValue')\n handleDefaultValueChange(newValue: string) {\n this.value = sanitize(newValue);\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.el.style.setProperty(`${key}`, value);\n }\n }\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.el.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n // Theme already applied in connectedCallback\n }\n\n componentDidLoad() {\n this.value = sanitize(this.defaultValue || '');\n if (this.type !== 'text' && !this.pattern) {\n this.pattern = DefaultPattern[this.type];\n }\n\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n // Event listeners\n /**\n * Listen for the bookingFormSubmitted event to validate the input value when the form is submitted.\n */\n @Listen('bookingFormSubmitted', { target: 'document' })\n handleBookingFormSubmitted(event: CustomEvent) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n @Listen('formSubmitted', { target: 'document' })\n async handleFormSubmitted(event: CustomEvent) {\n if (this.el?.getAttribute('data-page-styling')) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n }\n\n // Methods\n handleInput(e: Event) {\n this.error = '';\n const inputValue = (e.target as HTMLInputElement).value;\n\n // For 'number', ensure the value is valid\n if (this.type === 'number') {\n const numericValue = parseFloat(inputValue);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n if (this.minValue === undefined) {\n this.error = `Value must be less than ${this.maxValue}`;\n } else if (this.maxValue === undefined) {\n this.error = `Value must be greater than ${this.minValue}`;\n } else {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n }\n } else if (isNaN(numericValue)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n this.value = sanitize(inputValue);\n this.nylasFormInputChanged.emit({\n value: this.value,\n name: this.name,\n label: this.label,\n error: this.error,\n type: this.type,\n });\n }\n\n handleBlur() {\n this.nylasFormInputBlurred.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n handleFocus() {\n this.nylasFormInputFocused.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n validatePattern(value: string) {\n // Reset error\n this.error = '';\n\n if (this.required && !value) {\n this.error = this.requiredError || 'This field is required.';\n return;\n }\n\n if (this.type === 'number' && value) {\n const numericValue = parseFloat(value);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n return;\n }\n }\n\n if (this.pattern && value && !this.pattern.test(value)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n render() {\n return (\n <label part={this.error ? 'ic__label ic__label--error' : 'ic__label'} class={{ error: !!this.error }}>\n {this.label && (\n <p>\n <span class=\"label\">{this.label}</span>\n {this.required && <span class=\"required\">*</span>}\n </p>\n )}\n <div part=\"ic__input_wrapper\" class=\"input_wrapper\">\n <input\n type={this.type}\n name={this.name}\n part={this.error ? 'ic__input ic__input--error' : 'ic__input'}\n title={this.readOnly ? 'read-only field' : undefined}\n readOnly={this.readOnly}\n autoFocus={this.autoFocus}\n value={this.value}\n maxLength={this.maxLength}\n max={this.type === 'number' ? this.maxValue : undefined}\n min={this.type === 'number' ? this.minValue : undefined}\n placeholder={this.placeholder}\n class={{ error: !!this.error }}\n onInput={e => this.handleInput(e)}\n onFocus={() => this.handleFocus()}\n onBlur={() => this.handleBlur()}\n />\n <slot name=\"additional-input\"></slot>\n </div>\n {this.error && (\n <span class=\"error help-text\" part=\"ic__error_message\">\n {this.error}\n </span>\n )}\n </label>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-cIIaCJPC.js","mappings":";;;AAAA,MAAM,iBAAiB,GAAG,42HAA42H;;ACIt4H,MAAM,cAAc,GAAG;AACrB,IAAA,KAAK,EAAE,sIAAsI;AAC7I,IAAA,YAAY,EAAE,eAAe;CAC9B;AAED,MAAM,kBAAkB,GAAG;AACzB,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,YAAY,EAAE,YAAY;CAC3B;MAYY,cAAc,GAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;AAL3B,IAAA,WAAA,GAAA;;;;;;;AAaU,QAAA,IAAI,CAAA,IAAA,GAAW,OAAO;AAQtB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAKlB,QAAA,IAAI,CAAA,IAAA,GAAiD,MAAM;QAI3D,IAAA,CAAA,WAAW,GAAW,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAKnD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAKzB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAMzB,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAU1B,QAAA,IAAS,CAAA,SAAA,GAAW,GAAG;AAKvB,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE;AAKzB,QAAA,IAAa,CAAA,aAAA,GAAW,EAAE;AAgBzB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAyM5B;AA7KC,IAAA,wBAAwB,CAAC,QAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAKpC,yBAAyB,CAAC,MAAmB,EAAE,MAAmB,EAAA;QAChE,IAAI,MAAM,KAAK,MAAM;YAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAG/B,IAAA,gBAAgB,CAAC,WAAyB,EAAA;QACxC,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,KAAK,CAAC;;;;IAKhD,iBAAiB,GAAA;QAGf,cAAc,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;;AAE3C,SAAC,CAAC;;IAGJ,iBAAiB,GAAA;;IAIjB,gBAAgB,GAAA;QACd,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG1C,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;;AASpC,IAAA,0BAA0B,CAAC,KAAkB,EAAA;AAC3C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,cAAc,EAAE;;;IAK1B,MAAM,mBAAmB,CAAC,KAAkB,EAAA;QAC1C,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,KAAK,CAAC,cAAc,EAAE;;;;AAM5B,IAAA,WAAW,CAAC,CAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,MAAM,UAAU,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;AAGvD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC;AAC3C,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE;AAClI,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;oBAC/B,IAAI,CAAC,KAAK,GAAG,CAAA,wBAAA,EAA2B,IAAI,CAAC,QAAQ,EAAE;;AAClD,qBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;oBACtC,IAAI,CAAC,KAAK,GAAG,CAAA,2BAAA,EAA8B,IAAI,CAAC,QAAQ,EAAE;;qBACrD;AACL,oBAAA,IAAI,CAAC,KAAK,GAAG,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAA,KAAA,EAAQ,IAAI,CAAC,QAAQ,CAAA,CAAE;;;AAEvE,iBAAA,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;gBAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,iBAAiB;;;AAIvD,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;AACjC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;;IAGJ,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;;AAGJ,IAAA,eAAe,CAAC,KAAa,EAAA;AAE3B,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,yBAAyB;YAC5D;;QAGF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,EAAE;AACnC,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE;AAClI,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAA,KAAA,EAAQ,IAAI,CAAC,QAAQ,CAAA,CAAE;gBAC1E;;;AAIJ,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,iBAAiB;;;IAIvD,MAAM,GAAA;AACJ,QAAA,QACE,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,4BAA4B,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAA,EACjG,IAAI,CAAC,KAAK,KACT,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,EACtC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,UAAU,EAAS,EAAA,GAAA,CAAA,CAC/C,CACL,EACD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,mBAAmB,EAAC,KAAK,EAAC,eAAe,EAAA,EACjD,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,4BAA4B,GAAG,WAAW,EAC7D,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,iBAAiB,GAAG,SAAS,EACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,EACvD,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,EACvD,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAC9B,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACjC,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,EAC/B,CAAA,EACF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,kBAAkB,EAAA,CAAQ,CACjC,EACL,IAAI,CAAC,KAAK,KACT,6DAAM,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,mBAAmB,EAAA,EACnD,IAAI,CAAC,KAAK,CACN,CACR,CACK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/design-system/input-component/input-component.scss?tag=input-component&encapsulation=shadow","src/components/design-system/input-component/input-component.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/inputs' as *;\n\n:host {\n display: block;\n height: auto;\n @include default-css-variables;\n width: 100%;\n}\n\nlabel {\n @include input-label;\n flex-direction: column;\n gap: 4px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n color: var(--nylas-base-800);\n\n p {\n margin: 0;\n }\n\n .error {\n color: var(--nylas-error);\n }\n}\n\n.input_wrapper {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\ninput[type='text'],\ninput[type='number'],\ninput[type='email'],\ninput[type='phone_number'] {\n @include textfield;\n width: -moz-available;\n width: -webkit-fill-available;\n}\n\ninput:read-only {\n background-color: var(--nylas-base-100);\n cursor: not-allowed;\n}","import { Component, h, Prop, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\nimport { sanitize } from '@/utils/utils';\nimport { ThemeConfig } from '@nylas/core';\n\nconst DefaultPattern = {\n email: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,\n phone_number: /^\\+?\\d{1,15}$/,\n};\n\nconst DefaultPlaceholder = {\n email: 'name@example.com',\n phone_number: '1234567890',\n};\n\n/**\n * The `input-component` component is a UI component that allows users to input text, email, or phone number values.\n * This component is used in the scheduling form to input text, email and phone number type inputs.\n */\n\n@Component({\n tag: 'input-component',\n styleUrl: 'input-component.scss',\n shadow: true,\n})\nexport class InputComponent {\n /**\n * The host element\n */\n @Element() el!: HTMLElement;\n /**\n * The name of the input. This is used to identify the input when submitting a form.\n */\n @Prop() name: string = 'input';\n /**\n * The default value of the input. This is the value that is displayed when the input is rendered.\n */\n @Prop() defaultValue?: string;\n /**\n * The label of the input. This is displayed above the input.\n */\n @Prop() label: string = '';\n /**\n * The type of the input. This is used to determine the input's behavior.\n * Supported types are 'text', 'email', and 'phone_number'.\n */\n @Prop() type: 'text' | 'email' | 'phone_number' | 'number' = 'text';\n /**\n * The placeholder of the input. This is displayed when the input is empty.\n */\n @Prop() placeholder: string = DefaultPlaceholder[this.type];\n /**\n * Whether the input is required. If true, the input must have a value when submitting a form.\n * Default is false. If the input is required and the value is empty, an error message is displayed.\n */\n @Prop() required: boolean = false;\n /**\n * Whether the input is read-only. If true, the input cannot be edited.\n * Default is false.\n */\n @Prop() readOnly: boolean = false;\n /**\n * Whether the input should be focused when rendered.\n * Default is false. If true, the input is focused when rendered.\n * Use this to set the focus on the first input in a form.\n */\n @Prop() autoFocus: boolean = false;\n /**\n * The pattern to validate the input value. If the value does not match the pattern, an error message is displayed.\n * Default is null. If the pattern is not set, the pattern is determined by the input type for 'email' and 'phone_number'.\n */\n @Prop() pattern?: RegExp;\n /**\n * The maximum length of the input value. If the value is longer than the maximum length, an error message is displayed.\n * Default is 255.\n */\n @Prop() maxLength: number = 255;\n /**\n * The error message to display when the value does not match the pattern.\n * Default is 'Invalid <field> format.' where <field> is the input label.\n */\n @Prop() patternError: string = '';\n\n /**\n * This error message is displayed when the input value is empty and the input is required.\n */\n @Prop() requiredError: string = '';\n @Prop() maxValue?: number; // Optional max value for 'number'\n @Prop() minValue?: number; // Optional min value for 'number'\n\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * The input value state.\n */\n @State() value!: string;\n /**\n * The error message state.\n */\n @State() error: string = '';\n\n /**\n * This event is fired when the input value is changed.\n * The scheduling form listens for this event to validate the input value and submit the form.\n * If using outside of the scheduling form, listen for this event to validate the input value\n * and handle the input value change.\n */\n @Event() nylasFormInputChanged!: EventEmitter<{\n value: string;\n name: string;\n label: string;\n type: string;\n error: string;\n }>;\n\n @Event() nylasFormInputFocused!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n @Event() nylasFormInputBlurred!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n // Lifecycle methods\n @Watch('defaultValue')\n handleDefaultValueChange(newValue: string) {\n this.value = sanitize(newValue);\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.el.style.setProperty(`${key}`, value);\n }\n }\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.el.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n // Theme already applied in connectedCallback\n }\n\n componentDidLoad() {\n this.value = sanitize(this.defaultValue || '');\n if (this.type !== 'text' && !this.pattern) {\n this.pattern = DefaultPattern[this.type];\n }\n\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n // Event listeners\n /**\n * Listen for the bookingFormSubmitted event to validate the input value when the form is submitted.\n */\n @Listen('bookingFormSubmitted', { target: 'document' })\n handleBookingFormSubmitted(event: CustomEvent) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n @Listen('formSubmitted', { target: 'document' })\n async handleFormSubmitted(event: CustomEvent) {\n if (this.el?.getAttribute('data-page-styling')) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n }\n\n // Methods\n handleInput(e: Event) {\n this.error = '';\n const inputValue = (e.target as HTMLInputElement).value;\n\n // For 'number', ensure the value is valid\n if (this.type === 'number') {\n const numericValue = parseFloat(inputValue);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n if (this.minValue === undefined) {\n this.error = `Value must be less than ${this.maxValue}`;\n } else if (this.maxValue === undefined) {\n this.error = `Value must be greater than ${this.minValue}`;\n } else {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n }\n } else if (isNaN(numericValue)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n this.value = sanitize(inputValue);\n this.nylasFormInputChanged.emit({\n value: this.value,\n name: this.name,\n label: this.label,\n error: this.error,\n type: this.type,\n });\n }\n\n handleBlur() {\n this.nylasFormInputBlurred.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n handleFocus() {\n this.nylasFormInputFocused.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n validatePattern(value: string) {\n // Reset error\n this.error = '';\n\n if (this.required && !value) {\n this.error = this.requiredError || 'This field is required.';\n return;\n }\n\n if (this.type === 'number' && value) {\n const numericValue = parseFloat(value);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n return;\n }\n }\n\n if (this.pattern && value && !this.pattern.test(value)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n render() {\n return (\n <label part={this.error ? 'ic__label ic__label--error' : 'ic__label'} class={{ error: !!this.error }}>\n {this.label && (\n <p>\n <span class=\"label\">{this.label}</span>\n {this.required && <span class=\"required\">*</span>}\n </p>\n )}\n <div part=\"ic__input_wrapper\" class=\"input_wrapper\">\n <input\n type={this.type}\n name={this.name}\n part={this.error ? 'ic__input ic__input--error' : 'ic__input'}\n title={this.readOnly ? 'read-only field' : undefined}\n readOnly={this.readOnly}\n autoFocus={this.autoFocus}\n value={this.value}\n maxLength={this.maxLength}\n max={this.type === 'number' ? this.maxValue : undefined}\n min={this.type === 'number' ? this.minValue : undefined}\n placeholder={this.placeholder}\n class={{ error: !!this.error }}\n onInput={e => this.handleInput(e)}\n onFocus={() => this.handleFocus()}\n onBlur={() => this.handleBlur()}\n />\n <slot name=\"additional-input\"></slot>\n </div>\n {this.error && (\n <span class=\"error help-text\" part=\"ic__error_message\">\n {this.error}\n </span>\n )}\n </label>\n );\n }\n}\n"],"version":3}
@@ -1,8 +1,8 @@
1
1
  import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-Bht9ktsW.js';
2
- import { R as RegisterComponent } from './p-CdMky78w.js';
3
- import { a as debug, M as parsePreviewLink, Z as getCalendarRange, N as CONFIGURATION_EVENT_TYPE } from './p-DBE6FcDx.js';
2
+ import { R as RegisterComponent } from './p-jHq8WTky.js';
3
+ import { a as debug, M as parsePreviewLink, Z as getCalendarRange, N as CONFIGURATION_EVENT_TYPE } from './p-xxFdByBn.js';
4
4
  import { E as ErrorCategory, u } from './p-CWplx7sA.js';
5
- import { i as instance } from './p-CFk78OEk.js';
5
+ import { i as instance } from './p-BjxQTsOy.js';
6
6
  import { d as defineCustomElement$d } from './p-BVH0Klhu.js';
7
7
  import { d as defineCustomElement$c } from './p-BAKh5tMf.js';
8
8
  import { d as defineCustomElement$b } from './p-ao6VxuAL.js';
@@ -12,7 +12,7 @@ import { d as defineCustomElement$8 } from './p-C9Mlv9rC.js';
12
12
  import { d as defineCustomElement$7 } from './p-CvLWbTI_.js';
13
13
  import { d as defineCustomElement$6 } from './p-B2LU95MT.js';
14
14
  import { d as defineCustomElement$5 } from './p-C7ZpwRD0.js';
15
- import { d as defineCustomElement$4 } from './p-CugpjY9p.js';
15
+ import { d as defineCustomElement$4 } from './p-Bzhy3cc5.js';
16
16
  import { d as defineCustomElement$3 } from './p-DBHtQK2b.js';
17
17
  import { d as defineCustomElement$2 } from './p-wphqTozF.js';
18
18
  import { d as defineCustomElement$1 } from './p-OhUC7F_g.js';
@@ -452,6 +452,6 @@ function defineCustomElement() {
452
452
  }
453
453
 
454
454
  export { NylasListConfigurations as N, defineCustomElement as d };
455
- //# sourceMappingURL=p-BiyP1P0p.js.map
455
+ //# sourceMappingURL=p-fOr8r1Zc.js.map
456
456
 
457
- //# sourceMappingURL=p-BiyP1P0p.js.map
457
+ //# sourceMappingURL=p-fOr8r1Zc.js.map
@@ -1 +1 @@
1
- {"file":"p-BiyP1P0p.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","NotificationType","i18next"],"sources":["src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.scss?tag=nylas-list-configurations&encapsulation=shadow","src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: grid;\n grid-auto-flow: row;\n width: 100%;\n font-family: inherit;\n font-optical-sizing: auto;\n @include default-css-variables;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n align-items: unset;\n }\n\n h2 {\n margin: 0;\n font-size: 1.25rem;\n color: var(--nylas-base-900);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 16px;\n color: var(--nylas-base-700);\n }\n\n .actions {\n justify-self: end;\n\n @media #{$mobile} {\n width: 100%;\n }\n }\n}\n\n.configurations {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n background: var(--nylas-base-0);\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-y: hidden;\n\n .table-container {\n overflow-y: auto;\n flex: 1;\n\n @media #{$mobile} {\n min-height: 624px; // This is to ensure the dropdowns are not cut off\n }\n\n table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: inherit;\n height: max-content;\n\n &.no-configurations {\n height: 100%;\n }\n\n tr {\n color: var(--nylas-base-800);\n border-bottom: 1px solid var(--nylas-base-200);\n font-family: inherit;\n\n &.hide {\n display: none;\n }\n }\n\n th {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 20px;\n }\n\n tr.no-configurations {\n td {\n > div {\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n padding: var(--nylas-border-radius-3x);\n\n h3 {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-700);\n }\n\n p {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-600);\n }\n\n calendar-icon {\n margin-bottom: 1rem;\n color: var(--nylas-base-200);\n }\n }\n }\n }\n\n th,\n td {\n text-align: left;\n padding: 1rem;\n font-family: inherit;\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n text-align: right;\n button-component.edit-button {\n min-width: 98px;\n }\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n select-dropdown.last {\n &::part(sd_dropdown-content) {\n bottom: 54px;\n }\n }\n }\n\n .title {\n width: 100%;\n max-width: 300px;\n\n @media #{$mobile} {\n max-width: 96px;\n }\n\n div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.config-event-title {\n font-weight: 600;\n }\n\n &.config-event-description {\n font-size: 0.75rem;\n }\n }\n }\n }\n }\n\n .pagination {\n padding: 1rem;\n position: sticky;\n top: 100%;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n background: var(--nylas-base-0);\n width: calc(100% - 2rem);\n z-index: 2;\n\n td.arrows {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n button {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 3vh;\n width: 3vh;\n min-width: 3em;\n min-height: 3em;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-300);\n\n background-color: transparent;\n color: var(--nylas-base-800);\n cursor: pointer;\n\n &:hover:not(:disabled) {\n border: 1px solid var(--nylas-primary);\n }\n\n &:active {\n border: 1px solid var(--nylas-base-800);\n }\n\n &:disabled {\n border: 1px solid var(--nylas-base-100);\n background-color: transparent;\n color: var(--nylas-base-300);\n cursor: not-allowed;\n }\n\n &.right {\n transform: rotate(180deg);\n }\n }\n }\n}\n\n.error-container {\n margin-top: 1.5rem;\n\n .error {\n color: var(--nylas-error);\n padding: 0.5rem 0;\n margin: 1rem 0 0;\n }\n}\n\nbutton-component#copy {\n button {\n width: 108px;\n }\n}\n\nselect-dropdown {\n width: auto;\n color: inherit;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n display: block;\n height: 48px;\n padding: 0px 16px 8px;\n\n @media #{$mobile} {\n width: 92px;\n }\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n width: 120px;\n right: 0;\n}\n\nselect-dropdown::part(sd_dropdown-labelhtml) {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n color: var(--nylas-primary);\n }\n}\n\n.card-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n height: calc(100% + 4rem);\n width: -webkit-fill-available;\n width: -moz-available;\n width: fill-available;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n\n border-radius: var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n justify-content: start;\n height: 100%;\n }\n}\n\n.card-modal {\n background: var(--nylas-base-0);\n display: flex;\n flex-direction: column;\n font-family: var(--nylas-font-family);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-900);\n border-radius: var(--nylas-border-radius-3x);\n padding: 32px;\n width: 562px;\n\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n width: auto;\n border-radius: 0px;\n }\n}\n\n.description {\n &.title-desc {\n margin-bottom: 2rem;\n }\n\n p {\n margin: 0;\n font-size: 18px;\n color: var(--nylas-base-600);\n }\n}\n\n.footer {\n margin-top: 1rem;\n padding-top: 1rem;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n box-sizing: border-box;\n background-color: var(--nylas-base-25);\n width: 100%;\n border-radius: 0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x);\n}\n\n.close-button {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n\n button-component {\n button {\n padding: 0;\n height: auto;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\nbutton-component {\n --dot-color: var(--nylas-base-700);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, getCalendarRange, parsePreviewLink } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, GroupConfiguration, Notification, NotificationType, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, LANGUAGE_CODE } from '@/common/constants';\nimport { ErrorCategory } from '@/types/index';\n\n/**\n * The `nylas-list-configurations` component displays a list of scheduling pages.\n *\n * @part nlc__create-new-cta - The create new configuration CTA.\n */\n@Component({\n tag: 'nylas-list-configurations',\n styleUrl: 'nylas-list-configurations.scss',\n shadow: true,\n})\nexport class NylasListConfigurations {\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasListConfigurationsElement;\n\n /**\n * The list of configurations to display.\n */\n @Prop() configurations: (Configuration | GroupConfiguration)[] = [];\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use a placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The next cursor for list configurations, if any.\n */\n @Prop() listConfigurationsNextCursor?: string | null;\n\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * Event emitted when the component is initialized.\n */\n @Event() initListConfigurations!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n cursor?: string;\n }>;\n\n /**\n * Event emitted when the user clicks the create event button.\n */\n @Event() createButtonClick!: EventEmitter<HTMLNylasListConfigurationsElement>;\n\n /**\n * Event emitted when the user clicks the edit event button.\n */\n @Event() editButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * Event emitted when the user clicks the delete event button.\n */\n @Event() deleteButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * This event is fired when there is an error in the component.\n */\n @Event({ cancelable: false }) readonly nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n /**\n * Event emitted when the user dismisses the error notification.\n */\n @Event({ cancelable: false }) dismissNotification!: EventEmitter<{ id: string; host: HTMLNylasListConfigurationsElement }>;\n\n /**\n * The current state of the component.\n */\n @State() private state: 'loading' | 'loaded' | 'error' = 'loading';\n\n /**\n * The error message to display.\n */\n @State() error?: {\n message: string;\n type: NotificationType | undefined;\n category: ErrorCategory | undefined;\n title: string;\n } = {\n message: '',\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: '',\n };\n\n /**\n * Current cursor for list configurations\n */\n @State() currentCursor: string | null = null;\n\n /**\n * The list of previous cursors for list configurations\n */\n @State() previousCursors: string[] = [];\n\n /**\n * State to identiy if the next button should be disabled\n */\n @State() disableNextPageButton: boolean = false;\n\n /**\n * State to store the configuration id to delete and to show the delete confirmation modal\n */\n @State() deleteConfigurationId: string = '';\n\n /**\n * State to show Delete button loading state\n */\n @State() showDeleteButtonLoading: boolean = false;\n\n /**\n * State to show Edit button loading state\n */\n @State() editButtonLoadingId: string = '';\n\n @Watch('listConfigurationsNextCursor')\n listConfigurationsNextCursorChangedHandler(newVal: string | null, oldVal: string | null) {\n if (!newVal || newVal === oldVal) {\n if (newVal === null) {\n this.disableNextPageButton = true;\n }\n return;\n }\n this.disableNextPageButton = false;\n this.currentCursor = newVal;\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n connectedCallback() {\n debug('[nylas-list-configurations]', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n debug('[nylas-list-configurations]', 'componentWillLoad');\n\n // If we have configurations, we will set the state to loaded.\n if (this.configurations && this.configurations.length > 0) {\n this.state = 'loaded';\n }\n }\n\n componentDidLoad() {\n debug('[nylas-list-configurations]', 'componentDidLoad');\n\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n disconnectedCallback() {\n debug('[nylas-list-configurations]', 'disconnectedCallback');\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @Listen('nylasFormDropdownChanged')\n async handleNylasFormDropdownChanged(event: CustomEvent) {\n debug('[nylas-list-configurations]', 'handleNylasFormDropdownChanged', event.detail);\n const { value } = event.detail;\n const [action, index] = value.split('-');\n event.preventDefault();\n switch (action) {\n case 'delete':\n this.deleteConfigurationId = this.configurations[index]?.id;\n break;\n case 'preview':\n window.open(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]), '_blank');\n break;\n case 'copy':\n await navigator.clipboard.writeText(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]));\n break;\n default:\n break;\n }\n }\n\n @Method()\n async registerCallback() {\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n @Method()\n async getState() {\n return this.state;\n }\n\n @Method()\n async setState(state: 'loading' | 'loaded' | 'error') {\n this.state = state;\n }\n\n @Method()\n async setError(error: { message: string; type: NotificationType; category: ErrorCategory; title: string }) {\n this.error = {\n message: error.message,\n type: error.type,\n category: error.category,\n title: error.title || i18next.t('genericErrorTitle'),\n };\n if (this.error?.message) {\n this.showErrorNotification(this.error);\n }\n }\n\n @Method()\n async hideDeleteConfirmation() {\n this.deleteConfigurationId = '';\n this.showDeleteButtonLoading = false;\n }\n\n @Method()\n async hideEditButtonLoading() {\n this.editButtonLoadingId = '';\n }\n\n showErrorNotification(error: { message: string; type: NotificationType | undefined; category: ErrorCategory | undefined; title: string }) {\n this.nylasSchedulerError.emit({\n notification: {\n id: error.message.split(' ').join('-'),\n type: error.type || NotificationType.Error,\n title: error.title,\n category: error.category || ErrorCategory.Component,\n description: error.message,\n ttl: 'none',\n } as Notification,\n host: this.host,\n });\n }\n\n closeModal(e: Event) {\n e.preventDefault();\n this.deleteConfigurationId = '';\n }\n\n handleConfirmDeleteButtonClicked(e: Event) {\n e.preventDefault();\n this.showDeleteButtonLoading = true;\n const config = this.configurations.find(config => config.id === this.deleteConfigurationId);\n if (config && config?.id) {\n this.deleteButtonClick.emit({ host: this.host, configuration: config });\n }\n }\n\n private getDurationString(duration: number) {\n if (!duration) return '—';\n const hours = Math.floor(duration / 60);\n const minutes = duration % 60;\n return `${hours ? hours : ''} ${hours ? `${hours > 1 ? 'hours' : 'hour'}` : ''} ${minutes ? minutes : ''} ${minutes ? `${minutes > 1 ? 'mins' : 'min'}` : ''}`;\n }\n\n getActionLabelHTML(action: string) {\n const actionStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n };\n const dangerStyle = {\n color: 'var(--nylas-error)',\n };\n switch (action) {\n case 'preview':\n return (\n <span style={actionStyle}>\n <eye-icon width=\"16\" height=\"16\"></eye-icon>\n {i18next.t('nylasListConfigurations.previewButtonText')}\n </span>\n );\n case 'copy':\n return (\n <span style={actionStyle}>\n <copy-icon width=\"16\" height=\"16\" />\n {i18next.t('nylasListConfigurations.copyLinkButtonText')}\n </span>\n );\n case 'delete':\n return (\n <span style={{ ...actionStyle, ...dangerStyle }}>\n <delete-icon width=\"15\" height=\"17\"></delete-icon>\n {i18next.t('nylasListConfigurations.deleteButtonText')}\n </span>\n );\n default:\n return '';\n }\n }\n\n previousPageClickedHandler() {\n if (this.previousCursors.length === 0) return;\n\n this.currentCursor = this.previousCursors.pop() || null;\n const prevCursor = this.previousCursors[this.previousCursors.length - 1] || undefined;\n this.initListConfigurations.emit({\n host: this.host,\n cursor: prevCursor,\n });\n }\n\n nextPageClickedHandler() {\n if (!this.currentCursor) return;\n\n this.previousCursors = [...this.previousCursors, this.currentCursor];\n this.initListConfigurations.emit({\n host: this.host,\n cursor: this.currentCursor,\n });\n }\n\n @RegisterComponent<NylasListConfigurations, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-list-configurations',\n stateToProps: new Map([\n ['schedulerConfig.configurations', 'configurations'],\n ['schedulerConfig.listConfigurationsNextCursor', 'listConfigurationsNextCursor'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n localPropsToProp: new Map([['schedulerPreviewLink', 'schedulerPreviewLink']]),\n eventToProps: {\n initListConfigurations: async (event, connector) => {\n const { host, cursor } = event.detail;\n await host.setState('loading');\n const [data, error] = await connector.schedulerConfig.getConfigurations(cursor);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.getConfigsError'),\n });\n return;\n }\n await host.setState('loaded');\n // setCursor here\n },\n createButtonClick: async (_, connector) => {\n connector.schedulerConfigStore.resetSelectedConfiguration();\n const enabledEventTypes = Object.entries(connector.schedulerConfigStore.state.enableEventTypes || {}).filter(([_key, value]) => value);\n if (enabledEventTypes.length === 1) {\n connector.schedulerConfigStore.state.action = 'create';\n connector.schedulerConfigStore.state.selectedEventType = CONFIGURATION_EVENT_TYPE[enabledEventTypes[0][0]];\n } else {\n connector.schedulerConfigStore.state.action = 'create-select';\n }\n },\n deleteButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n const [data, error] = await connector.schedulerConfig.deleteConfiguration(configuration.id);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.deleteConfigError'),\n });\n }\n await host.hideDeleteConfirmation();\n },\n editButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n if (configuration.type === 'group') {\n const { startTime, endTime } = getCalendarRange(new Date().toISOString(), 'week');\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: startTime.toString(),\n end_time: endTime.toString(),\n };\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configuration.id, configuration);\n if (!data && error && error.message) {\n // handle error\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabsGroup.getGroupEventsError'),\n });\n host.hideEditButtonLoading();\n return;\n }\n }\n connector.schedulerConfigStore.state.action = 'edit';\n connector.schedulerConfigStore.state.selectedConfiguration = configuration;\n host.hideEditButtonLoading();\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-notification></nylas-notification>\n <div class=\"header\">\n <div class=\"description\">\n <h2>{i18next.t('allSchedulingPages')}</h2>\n <p>{i18next.t('createAndManageSchedulingPages')}</p>\n </div>\n {this.configurations && this.configurations.length > 0 && (\n <div class=\"actions\">\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n )}\n </div>\n <div class=\"configurations\">\n <div class=\"table-container\">\n <table\n class={{\n 'no-configurations': this.state !== 'loading' && (!this.configurations || this.configurations.length === 0),\n }}\n >\n <tr\n class={{\n hide: this.state === 'loading' || (this.configurations && this.configurations.length === 0),\n }}\n >\n <th>{i18next.t('pageTitle')}</th>\n <th>{i18next.t('durationTitle')}</th>\n <th></th>\n </tr>\n {this.state === 'loading' && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <h3>{i18next.t('loading')}...</h3>\n <p>{i18next.t('loadingPagesDescription')}</p>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' && (!this.configurations || this.configurations.length === 0) && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <calendar-icon width=\"48\" height=\"48\"></calendar-icon>\n <h3>{i18next.t('noSchedulingPages')}</h3>\n <p>{i18next.t('createFirstSchedulingPage')}</p>\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' &&\n this.configurations?.map((config, i) => {\n const lastTwo = (i === this.configurations.length - 1 || i === this.configurations.length - 2) && this.configurations.length > 3;\n const groupConfig = config as GroupConfiguration;\n const regularConfig = config as Configuration;\n return (\n <tr key={config?.id}>\n <td>\n <div class=\"title\">\n <div class=\"config-event-title\" title={regularConfig?.event_booking?.title}>\n {regularConfig?.event_booking?.title || groupConfig?.name}\n </div>\n <div class={'config-event-description'}>{regularConfig?.event_booking?.description}</div>\n </div>\n </td>\n <td>\n <div class=\"duration\">{this.getDurationString(regularConfig?.availability?.duration_minutes)}</div>\n </td>\n <td>\n <div class=\"actions\">\n <button-component\n class=\"edit-button\"\n variant={'basic'}\n key={`edit-${i}`}\n disabled={this.editButtonLoadingId === `edit-${i}`}\n isLoading={this.editButtonLoadingId === `edit-${i}`}\n clickHandler={event => {\n event.preventDefault();\n this.editButtonLoadingId = `edit-${i}`;\n this.editButtonClick.emit({ host: this.host, configuration: config });\n }}\n >\n {this.editButtonLoadingId === `edit-${i}` ? null : <edit-icon width=\"16\" height=\"16\"></edit-icon>}\n {i18next.t('editSchedulingPageButtonText')}\n </button-component>\n <select-dropdown\n class={{\n last: lastTwo,\n }}\n name=\"actions\"\n options={[\n { value: `preview-${i}`, label: 'Preview', labelHTML: this.getActionLabelHTML('preview') },\n { value: `copy-${i}`, label: 'Copy link', labelHTML: this.getActionLabelHTML('copy') },\n { value: `delete-${i}`, label: 'Delete', labelHTML: this.getActionLabelHTML('delete') },\n ]}\n defaultSelectedOption={{ value: '', label: '' }}\n dropdownButtonText=\"...\"\n withSearch={false}\n withChevron={false}\n themeConfig={this.themeConfig}\n exportparts=\"sd_dropdown: actions__dropdown, sd_dropdown-button: actions__dropdown-button, sd_dropdown-content: actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"\n ></select-dropdown>\n </div>\n </td>\n </tr>\n );\n })}\n </table>\n </div>\n <div class=\"pagination\">\n <button class=\"arrow left\" onClick={() => this.previousPageClickedHandler()} disabled={this.previousCursors.length <= 0}>\n <chevron-icon />\n </button>\n <button class=\"arrow right\" onClick={() => this.nextPageClickedHandler()} disabled={this.disableNextPageButton}>\n <chevron-icon />\n </button>\n </div>\n </div>\n {!!this.deleteConfigurationId && (\n <div class=\"card-wrapper\">\n <div class=\"card-modal\">\n <div class=\"close-button\">\n <button-component tooltip=\"Close\" id=\"close\" variant={'invisible'} onClick={e => this.closeModal(e)} part=\"nfbf__close-button\">\n <close-icon />\n </button-component>\n </div>\n <div class=\"header\">\n <h2 slot=\"card-title\" part=\"nfbf__title\">\n {i18next.t('deleteSchedulingPageTitle')}\n </h2>\n </div>\n <div class=\"description title-desc\">\n <p>{i18next.t('deleteSchedulingPageDescription')}</p>\n </div>\n <div\n class={{\n footer: true,\n }}\n >\n <button-component variant={'basic'} onClick={e => this.closeModal(e)} part=\"nfbf__button-outline nfbf__cancel-cta\">\n {`${i18next.t('deleteSchedulingPageCancelButton')}`}\n </button-component>\n <button-component\n variant={'destructive'}\n onClick={e => this.handleConfirmDeleteButtonClicked(e)}\n disabled={this.showDeleteButtonLoading}\n isLoading={this.showDeleteButtonLoading}\n part=\"nfbf__button-outline nfbf__reschedule-cta\"\n >\n {`${i18next.t('deleteSchedulingPageConfirmButton')}`}\n </button-component>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-fOr8r1Zc.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","NotificationType","i18next"],"sources":["src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.scss?tag=nylas-list-configurations&encapsulation=shadow","src/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/buttons' as *;\n\n:host {\n display: grid;\n grid-auto-flow: row;\n width: 100%;\n font-family: inherit;\n font-optical-sizing: auto;\n @include default-css-variables;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n gap: 1rem;\n\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n align-items: unset;\n }\n\n h2 {\n margin: 0;\n font-size: 1.25rem;\n color: var(--nylas-base-900);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 16px;\n color: var(--nylas-base-700);\n }\n\n .actions {\n justify-self: end;\n\n @media #{$mobile} {\n width: 100%;\n }\n }\n}\n\n.configurations {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n background: var(--nylas-base-0);\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-y: hidden;\n\n .table-container {\n overflow-y: auto;\n flex: 1;\n\n @media #{$mobile} {\n min-height: 624px; // This is to ensure the dropdowns are not cut off\n }\n\n table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: inherit;\n height: max-content;\n\n &.no-configurations {\n height: 100%;\n }\n\n tr {\n color: var(--nylas-base-800);\n border-bottom: 1px solid var(--nylas-base-200);\n font-family: inherit;\n\n &.hide {\n display: none;\n }\n }\n\n th {\n font-weight: 600;\n text-transform: uppercase;\n font-size: 14px;\n line-height: 20px;\n }\n\n tr.no-configurations {\n td {\n > div {\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n padding: var(--nylas-border-radius-3x);\n\n h3 {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-700);\n }\n\n p {\n margin: 0 0 1rem 0;\n color: var(--nylas-base-600);\n }\n\n calendar-icon {\n margin-bottom: 1rem;\n color: var(--nylas-base-200);\n }\n }\n }\n }\n\n th,\n td {\n text-align: left;\n padding: 1rem;\n font-family: inherit;\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n text-align: right;\n button-component.edit-button {\n min-width: 98px;\n }\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n select-dropdown.last {\n &::part(sd_dropdown-content) {\n bottom: 54px;\n }\n }\n }\n\n .title {\n width: 100%;\n max-width: 300px;\n\n @media #{$mobile} {\n max-width: 96px;\n }\n\n div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.config-event-title {\n font-weight: 600;\n }\n\n &.config-event-description {\n font-size: 0.75rem;\n }\n }\n }\n }\n }\n\n .pagination {\n padding: 1rem;\n position: sticky;\n top: 100%;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n background: var(--nylas-base-0);\n width: calc(100% - 2rem);\n z-index: 2;\n\n td.arrows {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n button {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 3vh;\n width: 3vh;\n min-width: 3em;\n min-height: 3em;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-300);\n\n background-color: transparent;\n color: var(--nylas-base-800);\n cursor: pointer;\n\n &:hover:not(:disabled) {\n border: 1px solid var(--nylas-primary);\n }\n\n &:active {\n border: 1px solid var(--nylas-base-800);\n }\n\n &:disabled {\n border: 1px solid var(--nylas-base-100);\n background-color: transparent;\n color: var(--nylas-base-300);\n cursor: not-allowed;\n }\n\n &.right {\n transform: rotate(180deg);\n }\n }\n }\n}\n\n.error-container {\n margin-top: 1.5rem;\n\n .error {\n color: var(--nylas-error);\n padding: 0.5rem 0;\n margin: 1rem 0 0;\n }\n}\n\nbutton-component#copy {\n button {\n width: 108px;\n }\n}\n\nselect-dropdown {\n width: auto;\n color: inherit;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n display: block;\n height: 48px;\n padding: 0px 16px 8px;\n\n @media #{$mobile} {\n width: 92px;\n }\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n width: 120px;\n right: 0;\n}\n\nselect-dropdown::part(sd_dropdown-labelhtml) {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n color: var(--nylas-base-900);\n\n &:hover {\n color: var(--nylas-primary);\n }\n}\n\n.card-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n height: calc(100% + 4rem);\n width: -webkit-fill-available;\n width: -moz-available;\n width: fill-available;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.6);\n z-index: 2;\n\n border-radius: var(--nylas-border-radius-2x);\n\n @media #{$mobile} {\n justify-content: start;\n height: 100%;\n }\n}\n\n.card-modal {\n background: var(--nylas-base-0);\n display: flex;\n flex-direction: column;\n font-family: var(--nylas-font-family);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-900);\n border-radius: var(--nylas-border-radius-3x);\n padding: 32px;\n width: 562px;\n\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n width: auto;\n border-radius: 0px;\n }\n}\n\n.description {\n &.title-desc {\n margin-bottom: 2rem;\n }\n\n p {\n margin: 0;\n font-size: 18px;\n color: var(--nylas-base-600);\n }\n}\n\n.footer {\n margin-top: 1rem;\n padding-top: 1rem;\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n box-sizing: border-box;\n background-color: var(--nylas-base-25);\n width: 100%;\n border-radius: 0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x);\n}\n\n.close-button {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n\n button-component {\n button {\n padding: 0;\n height: auto;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\nbutton-component {\n --dot-color: var(--nylas-base-700);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug, getCalendarRange, parsePreviewLink } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, GroupConfiguration, Notification, NotificationType, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { CONFIGURATION_EVENT_TYPE, LANGUAGE_CODE } from '@/common/constants';\nimport { ErrorCategory } from '@/types/index';\n\n/**\n * The `nylas-list-configurations` component displays a list of scheduling pages.\n *\n * @part nlc__create-new-cta - The create new configuration CTA.\n */\n@Component({\n tag: 'nylas-list-configurations',\n styleUrl: 'nylas-list-configurations.scss',\n shadow: true,\n})\nexport class NylasListConfigurations {\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasListConfigurationsElement;\n\n /**\n * The list of configurations to display.\n */\n @Prop() configurations: (Configuration | GroupConfiguration)[] = [];\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n\n /**\n * The scheduler preview link to use when the user clicks on the preview button.\n * You can use a placeholder `{config.id}` to replace the configuration id anywhere in the link.\n */\n @Prop({ attribute: 'scheduler-preview-link' }) schedulerPreviewLink: string = '';\n\n /**\n * The next cursor for list configurations, if any.\n */\n @Prop() listConfigurationsNextCursor?: string | null;\n\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * Event emitted when the component is initialized.\n */\n @Event() initListConfigurations!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n cursor?: string;\n }>;\n\n /**\n * Event emitted when the user clicks the create event button.\n */\n @Event() createButtonClick!: EventEmitter<HTMLNylasListConfigurationsElement>;\n\n /**\n * Event emitted when the user clicks the edit event button.\n */\n @Event() editButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * Event emitted when the user clicks the delete event button.\n */\n @Event() deleteButtonClick!: EventEmitter<{\n host: HTMLNylasListConfigurationsElement;\n configuration: Configuration | GroupConfiguration;\n }>;\n\n /**\n * This event is fired when there is an error in the component.\n */\n @Event({ cancelable: false }) readonly nylasSchedulerError!: EventEmitter<{ notification: Notification; host: HTMLElement }>;\n\n /**\n * Event emitted when the user dismisses the error notification.\n */\n @Event({ cancelable: false }) dismissNotification!: EventEmitter<{ id: string; host: HTMLNylasListConfigurationsElement }>;\n\n /**\n * The current state of the component.\n */\n @State() private state: 'loading' | 'loaded' | 'error' = 'loading';\n\n /**\n * The error message to display.\n */\n @State() error?: {\n message: string;\n type: NotificationType | undefined;\n category: ErrorCategory | undefined;\n title: string;\n } = {\n message: '',\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: '',\n };\n\n /**\n * Current cursor for list configurations\n */\n @State() currentCursor: string | null = null;\n\n /**\n * The list of previous cursors for list configurations\n */\n @State() previousCursors: string[] = [];\n\n /**\n * State to identiy if the next button should be disabled\n */\n @State() disableNextPageButton: boolean = false;\n\n /**\n * State to store the configuration id to delete and to show the delete confirmation modal\n */\n @State() deleteConfigurationId: string = '';\n\n /**\n * State to show Delete button loading state\n */\n @State() showDeleteButtonLoading: boolean = false;\n\n /**\n * State to show Edit button loading state\n */\n @State() editButtonLoadingId: string = '';\n\n @Watch('listConfigurationsNextCursor')\n listConfigurationsNextCursorChangedHandler(newVal: string | null, oldVal: string | null) {\n if (!newVal || newVal === oldVal) {\n if (newVal === null) {\n this.disableNextPageButton = true;\n }\n return;\n }\n this.disableNextPageButton = false;\n this.currentCursor = newVal;\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n connectedCallback() {\n debug('[nylas-list-configurations]', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n debug('[nylas-list-configurations]', 'componentWillLoad');\n\n // If we have configurations, we will set the state to loaded.\n if (this.configurations && this.configurations.length > 0) {\n this.state = 'loaded';\n }\n }\n\n componentDidLoad() {\n debug('[nylas-list-configurations]', 'componentDidLoad');\n\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n disconnectedCallback() {\n debug('[nylas-list-configurations]', 'disconnectedCallback');\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @Listen('nylasFormDropdownChanged')\n async handleNylasFormDropdownChanged(event: CustomEvent) {\n debug('[nylas-list-configurations]', 'handleNylasFormDropdownChanged', event.detail);\n const { value } = event.detail;\n const [action, index] = value.split('-');\n event.preventDefault();\n switch (action) {\n case 'delete':\n this.deleteConfigurationId = this.configurations[index]?.id;\n break;\n case 'preview':\n window.open(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]), '_blank');\n break;\n case 'copy':\n await navigator.clipboard.writeText(parsePreviewLink(this.schedulerPreviewLink, this.configurations[index]));\n break;\n default:\n break;\n }\n }\n\n @Method()\n async registerCallback() {\n // Fire the init event. By default, we will fetch the configurations.\n // This is defined in the eventToProps object in the RegisterComponent decorator.\n this.initListConfigurations.emit({\n host: this.host,\n });\n }\n\n @Method()\n async getState() {\n return this.state;\n }\n\n @Method()\n async setState(state: 'loading' | 'loaded' | 'error') {\n this.state = state;\n }\n\n @Method()\n async setError(error: { message: string; type: NotificationType; category: ErrorCategory; title: string }) {\n this.error = {\n message: error.message,\n type: error.type,\n category: error.category,\n title: error.title || i18next.t('genericErrorTitle'),\n };\n if (this.error?.message) {\n this.showErrorNotification(this.error);\n }\n }\n\n @Method()\n async hideDeleteConfirmation() {\n this.deleteConfigurationId = '';\n this.showDeleteButtonLoading = false;\n }\n\n @Method()\n async hideEditButtonLoading() {\n this.editButtonLoadingId = '';\n }\n\n showErrorNotification(error: { message: string; type: NotificationType | undefined; category: ErrorCategory | undefined; title: string }) {\n this.nylasSchedulerError.emit({\n notification: {\n id: error.message.split(' ').join('-'),\n type: error.type || NotificationType.Error,\n title: error.title,\n category: error.category || ErrorCategory.Component,\n description: error.message,\n ttl: 'none',\n } as Notification,\n host: this.host,\n });\n }\n\n closeModal(e: Event) {\n e.preventDefault();\n this.deleteConfigurationId = '';\n }\n\n handleConfirmDeleteButtonClicked(e: Event) {\n e.preventDefault();\n this.showDeleteButtonLoading = true;\n const config = this.configurations.find(config => config.id === this.deleteConfigurationId);\n if (config && config?.id) {\n this.deleteButtonClick.emit({ host: this.host, configuration: config });\n }\n }\n\n private getDurationString(duration: number) {\n if (!duration) return '—';\n const hours = Math.floor(duration / 60);\n const minutes = duration % 60;\n return `${hours ? hours : ''} ${hours ? `${hours > 1 ? 'hours' : 'hour'}` : ''} ${minutes ? minutes : ''} ${minutes ? `${minutes > 1 ? 'mins' : 'min'}` : ''}`;\n }\n\n getActionLabelHTML(action: string) {\n const actionStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n };\n const dangerStyle = {\n color: 'var(--nylas-error)',\n };\n switch (action) {\n case 'preview':\n return (\n <span style={actionStyle}>\n <eye-icon width=\"16\" height=\"16\"></eye-icon>\n {i18next.t('nylasListConfigurations.previewButtonText')}\n </span>\n );\n case 'copy':\n return (\n <span style={actionStyle}>\n <copy-icon width=\"16\" height=\"16\" />\n {i18next.t('nylasListConfigurations.copyLinkButtonText')}\n </span>\n );\n case 'delete':\n return (\n <span style={{ ...actionStyle, ...dangerStyle }}>\n <delete-icon width=\"15\" height=\"17\"></delete-icon>\n {i18next.t('nylasListConfigurations.deleteButtonText')}\n </span>\n );\n default:\n return '';\n }\n }\n\n previousPageClickedHandler() {\n if (this.previousCursors.length === 0) return;\n\n this.currentCursor = this.previousCursors.pop() || null;\n const prevCursor = this.previousCursors[this.previousCursors.length - 1] || undefined;\n this.initListConfigurations.emit({\n host: this.host,\n cursor: prevCursor,\n });\n }\n\n nextPageClickedHandler() {\n if (!this.currentCursor) return;\n\n this.previousCursors = [...this.previousCursors, this.currentCursor];\n this.initListConfigurations.emit({\n host: this.host,\n cursor: this.currentCursor,\n });\n }\n\n @RegisterComponent<NylasListConfigurations, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-list-configurations',\n stateToProps: new Map([\n ['schedulerConfig.configurations', 'configurations'],\n ['schedulerConfig.listConfigurationsNextCursor', 'listConfigurationsNextCursor'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n localPropsToProp: new Map([['schedulerPreviewLink', 'schedulerPreviewLink']]),\n eventToProps: {\n initListConfigurations: async (event, connector) => {\n const { host, cursor } = event.detail;\n await host.setState('loading');\n const [data, error] = await connector.schedulerConfig.getConfigurations(cursor);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.getConfigsError'),\n });\n return;\n }\n await host.setState('loaded');\n // setCursor here\n },\n createButtonClick: async (_, connector) => {\n connector.schedulerConfigStore.resetSelectedConfiguration();\n const enabledEventTypes = Object.entries(connector.schedulerConfigStore.state.enableEventTypes || {}).filter(([_key, value]) => value);\n if (enabledEventTypes.length === 1) {\n connector.schedulerConfigStore.state.action = 'create';\n connector.schedulerConfigStore.state.selectedEventType = CONFIGURATION_EVENT_TYPE[enabledEventTypes[0][0]];\n } else {\n connector.schedulerConfigStore.state.action = 'create-select';\n }\n },\n deleteButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n const [data, error] = await connector.schedulerConfig.deleteConfiguration(configuration.id);\n if (!data && error && error.message) {\n await host.setState('error');\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabs.deleteConfigError'),\n });\n }\n await host.hideDeleteConfirmation();\n },\n editButtonClick: async (event, connector) => {\n const { host, configuration } = event.detail;\n if (configuration.type === 'group') {\n const { startTime, endTime } = getCalendarRange(new Date().toISOString(), 'week');\n connector.schedulerConfigStore.state.calendarViewDateRange = {\n start_time: startTime.toString(),\n end_time: endTime.toString(),\n };\n const [data, error] = await connector.schedulerConfig.getGroupEvents(configuration.id, configuration);\n if (!data && error && error.message) {\n // handle error\n await host.setError({\n message: error.message,\n type: NotificationType.Error,\n category: ErrorCategory.Component,\n title: i18next.t('nylasEditorTabsGroup.getGroupEventsError'),\n });\n host.hideEditButtonLoading();\n return;\n }\n }\n connector.schedulerConfigStore.state.action = 'edit';\n connector.schedulerConfigStore.state.selectedConfiguration = configuration;\n host.hideEditButtonLoading();\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-notification></nylas-notification>\n <div class=\"header\">\n <div class=\"description\">\n <h2>{i18next.t('allSchedulingPages')}</h2>\n <p>{i18next.t('createAndManageSchedulingPages')}</p>\n </div>\n {this.configurations && this.configurations.length > 0 && (\n <div class=\"actions\">\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n )}\n </div>\n <div class=\"configurations\">\n <div class=\"table-container\">\n <table\n class={{\n 'no-configurations': this.state !== 'loading' && (!this.configurations || this.configurations.length === 0),\n }}\n >\n <tr\n class={{\n hide: this.state === 'loading' || (this.configurations && this.configurations.length === 0),\n }}\n >\n <th>{i18next.t('pageTitle')}</th>\n <th>{i18next.t('durationTitle')}</th>\n <th></th>\n </tr>\n {this.state === 'loading' && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <h3>{i18next.t('loading')}...</h3>\n <p>{i18next.t('loadingPagesDescription')}</p>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' && (!this.configurations || this.configurations.length === 0) && (\n <tr class=\"no-configurations\">\n <td colSpan={3}>\n <div>\n <calendar-icon width=\"48\" height=\"48\"></calendar-icon>\n <h3>{i18next.t('noSchedulingPages')}</h3>\n <p>{i18next.t('createFirstSchedulingPage')}</p>\n <button-component\n part=\"nlc__create-new-cta\"\n clickHandler={() => {\n this.createButtonClick.emit(this.host);\n }}\n >\n {i18next.t('createNewSchedulingPageButtonText')}\n </button-component>\n </div>\n </td>\n </tr>\n )}\n {this.state !== 'loading' &&\n this.configurations?.map((config, i) => {\n const lastTwo = (i === this.configurations.length - 1 || i === this.configurations.length - 2) && this.configurations.length > 3;\n const groupConfig = config as GroupConfiguration;\n const regularConfig = config as Configuration;\n return (\n <tr key={config?.id}>\n <td>\n <div class=\"title\">\n <div class=\"config-event-title\" title={regularConfig?.event_booking?.title}>\n {regularConfig?.event_booking?.title || groupConfig?.name}\n </div>\n <div class={'config-event-description'}>{regularConfig?.event_booking?.description}</div>\n </div>\n </td>\n <td>\n <div class=\"duration\">{this.getDurationString(regularConfig?.availability?.duration_minutes)}</div>\n </td>\n <td>\n <div class=\"actions\">\n <button-component\n class=\"edit-button\"\n variant={'basic'}\n key={`edit-${i}`}\n disabled={this.editButtonLoadingId === `edit-${i}`}\n isLoading={this.editButtonLoadingId === `edit-${i}`}\n clickHandler={event => {\n event.preventDefault();\n this.editButtonLoadingId = `edit-${i}`;\n this.editButtonClick.emit({ host: this.host, configuration: config });\n }}\n >\n {this.editButtonLoadingId === `edit-${i}` ? null : <edit-icon width=\"16\" height=\"16\"></edit-icon>}\n {i18next.t('editSchedulingPageButtonText')}\n </button-component>\n <select-dropdown\n class={{\n last: lastTwo,\n }}\n name=\"actions\"\n options={[\n { value: `preview-${i}`, label: 'Preview', labelHTML: this.getActionLabelHTML('preview') },\n { value: `copy-${i}`, label: 'Copy link', labelHTML: this.getActionLabelHTML('copy') },\n { value: `delete-${i}`, label: 'Delete', labelHTML: this.getActionLabelHTML('delete') },\n ]}\n defaultSelectedOption={{ value: '', label: '' }}\n dropdownButtonText=\"...\"\n withSearch={false}\n withChevron={false}\n themeConfig={this.themeConfig}\n exportparts=\"sd_dropdown: actions__dropdown, sd_dropdown-button: actions__dropdown-button, sd_dropdown-content: actions__dropdown-content, actions-Copy, actions-Preview, actions-Delete\"\n ></select-dropdown>\n </div>\n </td>\n </tr>\n );\n })}\n </table>\n </div>\n <div class=\"pagination\">\n <button class=\"arrow left\" onClick={() => this.previousPageClickedHandler()} disabled={this.previousCursors.length <= 0}>\n <chevron-icon />\n </button>\n <button class=\"arrow right\" onClick={() => this.nextPageClickedHandler()} disabled={this.disableNextPageButton}>\n <chevron-icon />\n </button>\n </div>\n </div>\n {!!this.deleteConfigurationId && (\n <div class=\"card-wrapper\">\n <div class=\"card-modal\">\n <div class=\"close-button\">\n <button-component tooltip=\"Close\" id=\"close\" variant={'invisible'} onClick={e => this.closeModal(e)} part=\"nfbf__close-button\">\n <close-icon />\n </button-component>\n </div>\n <div class=\"header\">\n <h2 slot=\"card-title\" part=\"nfbf__title\">\n {i18next.t('deleteSchedulingPageTitle')}\n </h2>\n </div>\n <div class=\"description title-desc\">\n <p>{i18next.t('deleteSchedulingPageDescription')}</p>\n </div>\n <div\n class={{\n footer: true,\n }}\n >\n <button-component variant={'basic'} onClick={e => this.closeModal(e)} part=\"nfbf__button-outline nfbf__cancel-cta\">\n {`${i18next.t('deleteSchedulingPageCancelButton')}`}\n </button-component>\n <button-component\n variant={'destructive'}\n onClick={e => this.handleConfirmDeleteButtonClicked(e)}\n disabled={this.showDeleteButtonLoading}\n isLoading={this.showDeleteButtonLoading}\n part=\"nfbf__button-outline nfbf__reschedule-cta\"\n >\n {`${i18next.t('deleteSchedulingPageConfirmButton')}`}\n </button-component>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,13 +1,13 @@
1
1
  import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-Bht9ktsW.js';
2
- import { R as RegisterComponent } from './p-CdMky78w.js';
3
- import { a as debug } from './p-DBE6FcDx.js';
4
- import { i as instance } from './p-CFk78OEk.js';
2
+ import { R as RegisterComponent } from './p-jHq8WTky.js';
3
+ import { a as debug } from './p-xxFdByBn.js';
4
+ import { i as instance } from './p-BjxQTsOy.js';
5
5
  import { d as defineCustomElement$7 } from './p-ao6VxuAL.js';
6
6
  import { d as defineCustomElement$6 } from './p-d3kelm3z.js';
7
7
  import { d as defineCustomElement$5 } from './p-BF0muZ9G.js';
8
8
  import { d as defineCustomElement$4 } from './p-DBHtQK2b.js';
9
9
  import { d as defineCustomElement$3 } from './p-wphqTozF.js';
10
- import { d as defineCustomElement$2 } from './p-B-fT9puv.js';
10
+ import { d as defineCustomElement$2 } from './p-CKPYi9FX.js';
11
11
  import { d as defineCustomElement$1 } from './p-DxDoo-4C.js';
12
12
 
13
13
  const nylasMinCancellationNoticeCss = ":host{--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.nylas-min-cancellation-notice{display:flex;justify-content:space-between;font-family:var(--nylas-font-family)}@media screen and (max-width: 768px){.nylas-min-cancellation-notice{flex-direction:column;gap:0.5rem}}.nylas-min-cancellation-notice label{display:flex;align-items:center;color:var(--nylas-base-800);font-size:16px;font-style:normal;font-weight:400;line-height:150%;}.nylas-min-cancellation-notice label span.label-icon{margin-left:4px}.nylas-min-cancellation-notice label span.label-icon tooltip-component{display:flex}select-dropdown::part(sd_dropdown-button){border:none}";
@@ -252,6 +252,6 @@ function defineCustomElement() {
252
252
  }
253
253
 
254
254
  export { NylasMinCancellationNotice as N, defineCustomElement as d };
255
- //# sourceMappingURL=p-DBECHub0.js.map
255
+ //# sourceMappingURL=p-irdXl5Fp.js.map
256
256
 
257
- //# sourceMappingURL=p-DBECHub0.js.map
257
+ //# sourceMappingURL=p-irdXl5Fp.js.map
@@ -1 +1 @@
1
- {"file":"p-DBECHub0.js","mappings":";;;;;;;;;;;;AAAA,MAAM,6BAA6B,GAAG,4uFAA4uF;;;;;;;;;;;;;;;;MC2BrwF,0BAA0B,GAAAA,kBAAA,CAAA,MAAA,0BAAA,SAAAC,CAAA,CAAA;AANvC,IAAA,WAAA,GAAA;;;;;;AAgBU,QAAA,IAAI,CAAA,IAAA,GAAW,yBAAyB;AA2NjD;AAtLC,IAAA,yBAAyB,CAAC,QAAgB,EAAA;AACxC,QAAA,KAAK,CAAC,+BAA+B,EAAE,2BAA2B,EAAE,QAAQ,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;;AAI1C,IAAA,mCAAmC,CAAC,MAAqB,EAAA;QACvD,MAAM,qBAAqB,GAAG,OAAO,MAAM,EAAE,SAAS,EAAE,uBAAuB,KAAK,WAAW,GAAG,MAAM,EAAE,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,IAAI,CAAC;AAC9K,QAAA,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,gCAAgC,CAAC,qBAAqB,CAAC;;QAE9D,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,UAAU,EAAE;YACrD;;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,qBAAqB,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;;IAI3E,8BAA8B,CAAC,MAAqB,EAAE,MAAqB,EAAA;QACzE,IAAI,MAAM,KAAK,MAAM;YAAE;AACvB,QAAAC,QAAO,CAAC,cAAc,CAAC,MAAM,CAAC;;IAIhC,yBAAyB,CAAC,MAAmB,EAAE,MAAmB,EAAA;QAChE,IAAI,MAAM,KAAK,MAAM;YAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAG/B,IAAA,gBAAgB,CAAC,WAAyB,EAAA;QACxC,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,KAAK,CAAC;;;;IAalD,iBAAiB,GAAA;AACf,QAAA,KAAK,CAAC,+BAA+B,EAAE,mBAAmB,CAAC;QAG3D,cAAc,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;;AAE7C,SAAC,CAAC;;IAGJ,iBAAiB,GAAA;AACf,QAAA,KAAK,CAAC,+BAA+B,EAAE,mBAAmB,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;IAG3C,gBAAgB,GAAA;AACd,QAAA,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC;AAC1D,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,qBAAqB,CAAC;;aAC/D;YACL,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC;;;IAI1E,oBAAoB,GAAA;AAClB,QAAA,KAAK,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;;AAIhE,IAAA,wBAAwB,CACtB,KAGE,EAAA;QAEF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM;AACvC,QAAA,IAAI,YAAY;QAChB,MAAM,aAAa,GAAG,EAAE;AACxB,QAAA,MAAM,YAAY,GAAG,aAAa,GAAG,EAAE;AACvC,QAAA,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC;AACtC,QAAA,MAAM,cAAc,GAAG,YAAY,GAAG,EAAE;AAExC,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,YAAY,GAAG,MAAM;;AAChB,aAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AAC5B,YAAA,YAAY,GAAG,MAAM,GAAG,aAAa;;AAChC,aAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,YAAY,GAAG,MAAM,GAAG,YAAY;;AAC/B,aAAA,IAAI,MAAM,KAAK,MAAM,EAAE;AAC5B,YAAA,YAAY,GAAG,MAAM,GAAG,aAAa;;AAChC,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;AAC7B,YAAA,YAAY,GAAG,MAAM,GAAG,cAAc;;aACjC;YACL,YAAY,GAAG,CAAC;;AAElB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAChE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,UAAU,EAAE;YACrD;;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;;AAGzD,IAAA,gCAAgC,CAAC,OAAe,EAAA;QACtD,MAAM,aAAa,GAAG,EAAE;AACxB,QAAA,MAAM,YAAY,GAAG,aAAa,GAAG,EAAE;AACvC,QAAA,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC;AACtC,QAAA,MAAM,cAAc,GAAG,YAAY,GAAG,EAAE;QACxC,IAAI,MAAM,EAAE,MAAM;AAElB,QAAA,IAAI,OAAO,KAAK,CAAC,EAAE;YACjB,MAAM,GAAG,CAAC;YACV,MAAM,GAAG,QAAQ;;aACZ,IAAI,OAAO,GAAG,cAAc,KAAK,CAAC,IAAI,OAAO,IAAI,cAAc,EAAE;AACtE,YAAA,MAAM,GAAG,OAAO,GAAG,cAAc;YACjC,MAAM,GAAG,OAAO;;aACX,IAAI,OAAO,GAAG,aAAa,KAAK,CAAC,IAAI,OAAO,IAAI,aAAa,EAAE;AACpE,YAAA,MAAM,GAAG,OAAO,GAAG,aAAa;YAChC,MAAM,GAAG,MAAM;;aACV,IAAI,OAAO,GAAG,YAAY,KAAK,CAAC,IAAI,OAAO,IAAI,YAAY,EAAE;AAClE,YAAA,MAAM,GAAG,OAAO,GAAG,YAAY;YAC/B,MAAM,GAAG,KAAK;;aACT,IAAI,OAAO,GAAG,aAAa,KAAK,CAAC,IAAI,OAAO,IAAI,aAAa,EAAE;AACpE,YAAA,MAAM,GAAG,OAAO,GAAG,aAAa;YAChC,MAAM,GAAG,MAAM;;aACV;YACL,MAAM,GAAG,OAAO;YAChB,MAAM,GAAG,QAAQ;;AAEnB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;;IAa9B,MAAM,GAAA;AACJ,QAAA,MAAM,sBAAsB,GAAG,OAAO,IAAI,CAAC,cAAc,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,QAAQ;AAC/G,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,+BAA+B,EAAC,IAAI,EAAC,MAAM,EAAA,EACpD,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACGA,QAAO,CAAC,CAAC,CAAC,wCAAwC,CAAC,EACpD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACtB,CAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAW,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,cAAc,EAAG,CAAA,EACjC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,iBAAiB,EAAA,EAAEA,QAAO,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAQ,CACxE,CACf,CACD,EACP,sBAAsB,KACrB,CACE,CAAA,sBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAC,yBAAyB,EAC5B,WAAW,EAAC,0UAA0U,EACtV,WAAW,EAAE;AACX,gBAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAEA,QAAO,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE;AAC5E,gBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAEA,QAAO,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;AACxE,gBAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAEA,QAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;AACpE,gBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAEA,QAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;aACvE,EACD,qBAAqB,EAAE,IAAI,CAAC,cAAc,EAC1C,qBAAqB,EAAE,IAAI,CAAC,cAAc,EAC1C,WAAW,EAAE,IAAI,CAAC,WAAW,GAC7B,CACH,CACG,CACD;;;;;;;;;;;;;;;;;;;;;;;;;AA9BX,UAAA,CAAA;AAVC,IAAA,iBAAiB,CAAgH;AAChI,QAAA,IAAI,EAAE,+BAA+B;QACrC,YAAY,EAAE,IAAI,GAAG,CAAC;YACpB,CAAC,uCAAuC,EAAE,uBAAuB,CAAC;YAClE,CAAC,kCAAkC,EAAE,kBAAkB,CAAC;YACxD,CAAC,6BAA6B,EAAE,aAAa,CAAC;SAC/C,CAAC;AACF,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;CAiCD,EAAA,0BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.scss?tag=nylas-min-cancellation-notice&encapsulation=shadow","src/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n @include default-css-variables;\n}\n\n.nylas-min-cancellation-notice {\n display: flex;\n justify-content: space-between;\n font-family: var(--nylas-font-family);\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n label {\n display: flex;\n align-items: center;\n color: var(--nylas-base-800);\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%; /* 21px */\n span.label-icon {\n margin-left: 4px;\n tooltip-component {\n display: flex;\n }\n }\n }\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n border: none;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { AttachInternals, Component, Host, State, h, Element, Prop, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-min-cancellation-notice` component is a form input for the minimum period of notice (minutes) that a guest must\n * provide to cancel a booked event.\n *\n * @part nmcn - The minimum cancellation notice container\n * @part nmcn__number-dropdown - The number dropdown container\n * @part nmcn__number-dropdown-button - The number dropdown button\n * @part nmcn__number-dropdown-content - The number dropdown content\n * @part nmcn__period-dropdown - The period dropdown container\n * @part nmcn__period-dropdown-button - The period dropdown button\n * @part nmcn__period-dropdown-content - The period dropdown content\n */\n@Component({\n tag: 'nylas-min-cancellation-notice',\n styleUrl: 'nylas-min-cancellation-notice.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasMinCancellationNotice {\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The name of the min cancellation notice input.\n */\n @Prop() name: string = 'min-cancellation-notice';\n /**\n * @standalone\n * The minimum cancellation notice (minutes) stored in the configuration\n */\n @Prop() minCancellationNotice?: number;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n /**\n * The host element <nylas-min-cancellation-notice>\n */\n @Element() host!: HTMLElement;\n /**\n * The selected number of minutes for the min cancellation notice.\n */\n @State() selectedNumber;\n /**\n * The selected period for the min cancellation notice.\n */\n @State() selectedPeriod;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-min-cancellation-notice', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newVal: Configuration) {\n const minCancellationNotice = typeof newVal?.scheduler?.min_cancellation_notice !== 'undefined' ? newVal?.scheduler?.min_cancellation_notice : this.minCancellationNotice || 0;\n if (typeof minCancellationNotice === 'number') {\n this.updateNumberAndPeriodFromMinutes(minCancellationNotice);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(minCancellationNotice?.toString(), this.name);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n /**\n * This event is fired when the value of the min cancellation notice changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n connectedCallback() {\n debug('nylas-min-cancellation-notice', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n debug('nylas-min-cancellation-notice', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-min-cancellation-notice', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.updateNumberAndPeriodFromMinutes(this.minCancellationNotice || 0);\n }\n }\n\n disconnectedCallback() {\n debug('nylas-min-cancellation-notice', 'disconnectedCallback');\n }\n\n @Listen('timePeriodChanged')\n timePeriodChangedHandler(\n event: CustomEvent<{\n number: number;\n period: string;\n }>,\n ) {\n const { number, period } = event.detail;\n let totalMinutes;\n const minutesInHour = 60;\n const minutesInDay = minutesInHour * 24;\n const minutesInWeek = minutesInDay * 7;\n const minutesInMonth = minutesInDay * 30; // Assuming 30 days in a month for simplification\n\n if (period === 'minute') {\n totalMinutes = number;\n } else if (period === 'hour') {\n totalMinutes = number * minutesInHour;\n } else if (period === 'day') {\n totalMinutes = number * minutesInDay;\n } else if (period === 'week') {\n totalMinutes = number * minutesInWeek;\n } else if (period === 'month') {\n totalMinutes = number * minutesInMonth;\n } else {\n totalMinutes = 0;\n }\n this.valueChanged.emit({ value: totalMinutes, name: this.name });\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(totalMinutes.toString(), this.name);\n }\n\n private updateNumberAndPeriodFromMinutes(minutes: number): void {\n const minutesInHour = 60;\n const minutesInDay = minutesInHour * 24;\n const minutesInWeek = minutesInDay * 7;\n const minutesInMonth = minutesInDay * 30; // Assuming 30 days in a month for simplification\n let number, period;\n\n if (minutes === 0) {\n number = 0;\n period = 'minute';\n } else if (minutes % minutesInMonth === 0 && minutes >= minutesInMonth) {\n number = minutes / minutesInMonth;\n period = 'month';\n } else if (minutes % minutesInWeek === 0 && minutes >= minutesInWeek) {\n number = minutes / minutesInWeek;\n period = 'week';\n } else if (minutes % minutesInDay === 0 && minutes >= minutesInDay) {\n number = minutes / minutesInDay;\n period = 'day';\n } else if (minutes % minutesInHour === 0 && minutes >= minutesInHour) {\n number = minutes / minutesInHour;\n period = 'hour';\n } else {\n number = minutes;\n period = 'minute';\n }\n this.selectedNumber = number;\n this.selectedPeriod = period;\n }\n\n @RegisterComponent<NylasMinCancellationNotice, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-min-cancellation-notice',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n const showTimePeriodSelector = typeof this.selectedNumber == 'number' && typeof this.selectedPeriod == 'string';\n return (\n <Host>\n <div class=\"nylas-min-cancellation-notice\" part=\"nmcn\">\n <label>\n {i18next.t('nylasMinCancellationNotice.headerTitle')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasMinCancellationNotice.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n {showTimePeriodSelector && (\n <time-period-selector\n id=\"min-cancellation-notice\"\n exportparts=\"tps__number-dropdown: nmcn__number-dropdown, tps__number-dropdown-button: nmcn__number-dropdown-button, tps__number-dropdown-content: nmcn__number-dropdown-content, tps__period-dropdown: nmcn__period-dropdown, tps__period-dropdown-button: nmcn__period-dropdown-button, tps__period-dropdown-content: nmcn__period-dropdown-content\"\n timePeriods={[\n { value: 'minute', label: i18next.t('timeDuration', { context: 'minute' }) },\n { value: 'hour', label: i18next.t('timeDuration', { context: 'hour' }) },\n { value: 'day', label: i18next.t('timePeriod', { context: 'day' }) },\n { value: 'week', label: i18next.t('timePeriod', { context: 'week' }) },\n ]}\n defaultSelectedNumber={this.selectedNumber}\n defaultSelectedPeriod={this.selectedPeriod}\n themeConfig={this.themeConfig}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-irdXl5Fp.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.scss?tag=nylas-min-cancellation-notice&encapsulation=shadow","src/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n @include default-css-variables;\n}\n\n.nylas-min-cancellation-notice {\n display: flex;\n justify-content: space-between;\n font-family: var(--nylas-font-family);\n @media #{$mobile} {\n flex-direction: column;\n gap: 0.5rem;\n }\n label {\n display: flex;\n align-items: center;\n color: var(--nylas-base-800);\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%; /* 21px */\n span.label-icon {\n margin-left: 4px;\n tooltip-component {\n display: flex;\n }\n }\n }\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n border: none;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { AttachInternals, Component, Host, State, h, Element, Prop, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Configuration, ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\n/**\n * The `nylas-min-cancellation-notice` component is a form input for the minimum period of notice (minutes) that a guest must\n * provide to cancel a booked event.\n *\n * @part nmcn - The minimum cancellation notice container\n * @part nmcn__number-dropdown - The number dropdown container\n * @part nmcn__number-dropdown-button - The number dropdown button\n * @part nmcn__number-dropdown-content - The number dropdown content\n * @part nmcn__period-dropdown - The period dropdown container\n * @part nmcn__period-dropdown-button - The period dropdown button\n * @part nmcn__period-dropdown-content - The period dropdown content\n */\n@Component({\n tag: 'nylas-min-cancellation-notice',\n styleUrl: 'nylas-min-cancellation-notice.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasMinCancellationNotice {\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The name of the min cancellation notice input.\n */\n @Prop() name: string = 'min-cancellation-notice';\n /**\n * @standalone\n * The minimum cancellation notice (minutes) stored in the configuration\n */\n @Prop() minCancellationNotice?: number;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n /**\n * The host element <nylas-min-cancellation-notice>\n */\n @Element() host!: HTMLElement;\n /**\n * The selected number of minutes for the min cancellation notice.\n */\n @State() selectedNumber;\n /**\n * The selected period for the min cancellation notice.\n */\n @State() selectedPeriod;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-min-cancellation-notice', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n selectedConfigurationChangedHandler(newVal: Configuration) {\n const minCancellationNotice = typeof newVal?.scheduler?.min_cancellation_notice !== 'undefined' ? newVal?.scheduler?.min_cancellation_notice : this.minCancellationNotice || 0;\n if (typeof minCancellationNotice === 'number') {\n this.updateNumberAndPeriodFromMinutes(minCancellationNotice);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(minCancellationNotice?.toString(), this.name);\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n /**\n * This event is fired when the value of the min cancellation notice changes.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n connectedCallback() {\n debug('nylas-min-cancellation-notice', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n debug('nylas-min-cancellation-notice', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-min-cancellation-notice', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.selectedConfigurationChangedHandler(this.selectedConfiguration);\n } else {\n this.updateNumberAndPeriodFromMinutes(this.minCancellationNotice || 0);\n }\n }\n\n disconnectedCallback() {\n debug('nylas-min-cancellation-notice', 'disconnectedCallback');\n }\n\n @Listen('timePeriodChanged')\n timePeriodChangedHandler(\n event: CustomEvent<{\n number: number;\n period: string;\n }>,\n ) {\n const { number, period } = event.detail;\n let totalMinutes;\n const minutesInHour = 60;\n const minutesInDay = minutesInHour * 24;\n const minutesInWeek = minutesInDay * 7;\n const minutesInMonth = minutesInDay * 30; // Assuming 30 days in a month for simplification\n\n if (period === 'minute') {\n totalMinutes = number;\n } else if (period === 'hour') {\n totalMinutes = number * minutesInHour;\n } else if (period === 'day') {\n totalMinutes = number * minutesInDay;\n } else if (period === 'week') {\n totalMinutes = number * minutesInWeek;\n } else if (period === 'month') {\n totalMinutes = number * minutesInMonth;\n } else {\n totalMinutes = 0;\n }\n this.valueChanged.emit({ value: totalMinutes, name: this.name });\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(totalMinutes.toString(), this.name);\n }\n\n private updateNumberAndPeriodFromMinutes(minutes: number): void {\n const minutesInHour = 60;\n const minutesInDay = minutesInHour * 24;\n const minutesInWeek = minutesInDay * 7;\n const minutesInMonth = minutesInDay * 30; // Assuming 30 days in a month for simplification\n let number, period;\n\n if (minutes === 0) {\n number = 0;\n period = 'minute';\n } else if (minutes % minutesInMonth === 0 && minutes >= minutesInMonth) {\n number = minutes / minutesInMonth;\n period = 'month';\n } else if (minutes % minutesInWeek === 0 && minutes >= minutesInWeek) {\n number = minutes / minutesInWeek;\n period = 'week';\n } else if (minutes % minutesInDay === 0 && minutes >= minutesInDay) {\n number = minutes / minutesInDay;\n period = 'day';\n } else if (minutes % minutesInHour === 0 && minutes >= minutesInHour) {\n number = minutes / minutesInHour;\n period = 'hour';\n } else {\n number = minutes;\n period = 'minute';\n }\n this.selectedNumber = number;\n this.selectedPeriod = period;\n }\n\n @RegisterComponent<NylasMinCancellationNotice, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-min-cancellation-notice',\n stateToProps: new Map([\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n const showTimePeriodSelector = typeof this.selectedNumber == 'number' && typeof this.selectedPeriod == 'string';\n return (\n <Host>\n <div class=\"nylas-min-cancellation-notice\" part=\"nmcn\">\n <label>\n {i18next.t('nylasMinCancellationNotice.headerTitle')}\n <span class=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{i18next.t('nylasMinCancellationNotice.tooltip.desc')}</span>\n </tooltip-component>\n </span>\n </label>\n {showTimePeriodSelector && (\n <time-period-selector\n id=\"min-cancellation-notice\"\n exportparts=\"tps__number-dropdown: nmcn__number-dropdown, tps__number-dropdown-button: nmcn__number-dropdown-button, tps__number-dropdown-content: nmcn__number-dropdown-content, tps__period-dropdown: nmcn__period-dropdown, tps__period-dropdown-button: nmcn__period-dropdown-button, tps__period-dropdown-content: nmcn__period-dropdown-content\"\n timePeriods={[\n { value: 'minute', label: i18next.t('timeDuration', { context: 'minute' }) },\n { value: 'hour', label: i18next.t('timeDuration', { context: 'hour' }) },\n { value: 'day', label: i18next.t('timePeriod', { context: 'day' }) },\n { value: 'week', label: i18next.t('timePeriod', { context: 'week' }) },\n ]}\n defaultSelectedNumber={this.selectedNumber}\n defaultSelectedPeriod={this.selectedPeriod}\n themeConfig={this.themeConfig}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { a as debug, e as error } from './p-DBE6FcDx.js';
1
+ import { a as debug, e as error } from './p-xxFdByBn.js';
2
2
  import { j as getElement } from './p-Bht9ktsW.js';
3
3
 
4
4
  function createComponentEvent(instance, registeredComponent, eventName = 'registerComponent') {
@@ -197,6 +197,6 @@ function RegisterComponent(config) {
197
197
  }
198
198
 
199
199
  export { RegisterComponent as R };
200
- //# sourceMappingURL=p-CdMky78w.js.map
200
+ //# sourceMappingURL=p-jHq8WTky.js.map
201
201
 
202
- //# sourceMappingURL=p-CdMky78w.js.map
202
+ //# sourceMappingURL=p-jHq8WTky.js.map
@@ -1 +1 @@
1
- {"file":"p-CdMky78w.js","mappings":"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","names":[],"sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise<void>; registerCallback?(): Promise<void> };\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n localPropsToProp?: Map<string, keyof H>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean | ((host: H) => boolean);\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n registerCallback?: () => Promise<void>;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const originalComponentWillLoad = target.componentWillLoad;\n if (!originalComponentWillLoad) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalConnectCallback = target.connectedCallback;\n if (!originalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalDisconnectCallback = target.disconnectedCallback;\n if (!originalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = originalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, ensure properties are still set up\n // This handles the case where component was disconnected and reconnected\n // Properties may have been cleared during disconnect\n if (host.dataset.nylasId) {\n // Still set up properties in case they were cleared during disconnect\n // This ensures reconnected components have proper setup\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = originalComponentWillLoad?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = originalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n\n // Dispatch event before clearing nylasId to ensure it bubbles to provider\n // disconnectedCallback is called before element is fully detached, so event should bubble\n try {\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n } catch (error) {\n debug(`[${componentName}] Error dispatching unregistration event:`, error);\n }\n\n // Clear nylasId on disconnect so reconnection triggers fresh registration\n // This ensures reconnected components get proper property setup\n if (host.dataset.nylasId) {\n delete host.dataset.nylasId;\n debug(`[${componentName}] Cleared nylasId on disconnect for component ${componentName}`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"version":3}
1
+ {"file":"p-jHq8WTky.js","mappings":"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","names":[],"sources":["src/common/register-component.ts"],"sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise<void>; registerCallback?(): Promise<void> };\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n localPropsToProp?: Map<string, keyof H>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean | ((host: H) => boolean);\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n registerCallback?: () => Promise<void>;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const originalComponentWillLoad = target.componentWillLoad;\n if (!originalComponentWillLoad) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalConnectCallback = target.connectedCallback;\n if (!originalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const originalDisconnectCallback = target.disconnectedCallback;\n if (!originalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = originalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, ensure properties are still set up\n // This handles the case where component was disconnected and reconnected\n // Properties may have been cleared during disconnect\n if (host.dataset.nylasId) {\n // Still set up properties in case they were cleared during disconnect\n // This ensures reconnected components have proper setup\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'localPropsToProp', {\n get() {\n return config.localPropsToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = originalComponentWillLoad?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = originalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n\n // Dispatch event before clearing nylasId to ensure it bubbles to provider\n // disconnectedCallback is called before element is fully detached, so event should bubble\n try {\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n } catch (error) {\n debug(`[${componentName}] Error dispatching unregistration event:`, error);\n }\n\n // Clear nylasId on disconnect so reconnection triggers fresh registration\n // This ensures reconnected components get proper property setup\n if (host.dataset.nylasId) {\n delete host.dataset.nylasId;\n debug(`[${componentName}] Cleared nylasId on disconnect for component ${componentName}`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, h, i as Host } from './p-Bht9ktsW.js';
2
- import { R as RegisterComponent } from './p-CdMky78w.js';
3
- import { a as debug, T as TIMEZONE_MAP, l as capitalizeFirstLetter, n as formatBookedEventDate, o as LANGUAGE_CODE_TO_LOCALE_MAP } from './p-DBE6FcDx.js';
4
- import { i as instance } from './p-CFk78OEk.js';
2
+ import { R as RegisterComponent } from './p-jHq8WTky.js';
3
+ import { a as debug, T as TIMEZONE_MAP, l as capitalizeFirstLetter, n as formatBookedEventDate, o as LANGUAGE_CODE_TO_LOCALE_MAP } from './p-xxFdByBn.js';
4
+ import { i as instance } from './p-BjxQTsOy.js';
5
5
  import { d as defineCustomElement$2 } from './p-BAKh5tMf.js';
6
6
  import { d as defineCustomElement$1 } from './p-DS6Ijr4M.js';
7
7
 
@@ -166,6 +166,6 @@ function defineCustomElement() {
166
166
  }
167
167
 
168
168
  export { NylasSelectedEventCard as N, defineCustomElement as d };
169
- //# sourceMappingURL=p-CDVJMEhz.js.map
169
+ //# sourceMappingURL=p-mElO3u2v.js.map
170
170
 
171
- //# sourceMappingURL=p-CDVJMEhz.js.map
171
+ //# sourceMappingURL=p-mElO3u2v.js.map