@nextcloud/vue 9.0.0-rc.3 → 9.0.0-rc.4

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 (278) hide show
  1. package/CHANGELOG.md +70 -7
  2. package/dist/assets/{NcActionText-CWAPsJmz.css → NcActionText-BtzLDZeJ.css} +18 -18
  3. package/dist/assets/{NcActions-DxcpMfrs.css → NcActions-DfCOtp0b.css} +11 -11
  4. package/dist/assets/{NcAppContent-Zgn8-wsd.css → NcAppContent-RmHDNYBp.css} +23 -23
  5. package/dist/assets/{NcAppNavigationItem-B27WFnUV.css → NcAppNavigationItem-B-slGJHZ.css} +31 -31
  6. package/dist/assets/{NcAppNavigationNewItem-BrLekTMb.css → NcAppNavigationNewItem-CYsA6ZGQ.css} +33 -33
  7. package/dist/assets/{NcAppSidebar-PG3qIdkG.css → NcAppSidebar-BeRME1Bx.css} +44 -44
  8. package/dist/assets/{NcAppSidebarTab-BFy7uyWe.css → NcAppSidebarTab-cWhpTGp7.css} +4 -4
  9. package/dist/assets/{NcAvatar-C01qP9VA.css → NcAvatar-g7MoHyFd.css} +24 -24
  10. package/dist/assets/{NcCollectionList-DTJgOfCk.css → NcCollectionList-DVlSPO13.css} +27 -27
  11. package/dist/assets/{NcContent-C12jLe34.css → NcContent-1ivDf2e_.css} +9 -9
  12. package/dist/assets/NcDateTimePicker-_rRYVngX.css +1228 -0
  13. package/dist/assets/{NcEmojiPicker-kxoeGEM5.css → NcEmojiPicker-vTc7_EDA.css} +4 -4
  14. package/dist/assets/{NcIconSvgWrapper-cYxhjYue.css → NcIconSvgWrapper-CJfAwN6-.css} +11 -11
  15. package/dist/assets/{NcListItem-ff6bfJFE.css → NcListItem-BBaZDZQK.css} +44 -44
  16. package/dist/assets/{NcMentionBubble-DLOTFwpl.css → NcMentionBubble-lpms2_3A.css} +9 -9
  17. package/dist/assets/{NcNoteCard-C387qsQO.css → NcNoteCard-DlW6RBOO.css} +9 -9
  18. package/dist/assets/{NcPasswordField-DVV6Eiwf.css → NcPasswordField-D7XrnwDs.css} +2 -2
  19. package/dist/assets/{NcRelatedResourcesPanel-DXfywiqL.css → NcRelatedResourcesPanel-BQkQvMMD.css} +3 -3
  20. package/dist/assets/{NcRichContenteditable-KsmFPJmm.css → NcRichContenteditable-1zTxLjsG.css} +20 -20
  21. package/dist/assets/{NcRichText-Fi_WAwSP.css → NcRichText-cO2UCM_o.css} +86 -84
  22. package/dist/assets/{NcSettingsSection-Dyrgo_fF.css → NcSettingsSection-DLjgl3j1.css} +7 -7
  23. package/dist/assets/{referencePickerModal-CUVCkTmZ.css → referencePickerModal-DIHQ6_wW.css} +20 -20
  24. package/dist/chunks/{NcActionButton-BECWgEPr.mjs → NcActionButton-Bd35_0n4.mjs} +3 -3
  25. package/dist/chunks/{NcActionButton-BECWgEPr.mjs.map → NcActionButton-Bd35_0n4.mjs.map} +1 -1
  26. package/dist/chunks/{NcActionButtonGroup-e4F30E5Z.mjs → NcActionButtonGroup-BVbWDFaC.mjs} +2 -2
  27. package/dist/chunks/{NcActionButtonGroup-e4F30E5Z.mjs.map → NcActionButtonGroup-BVbWDFaC.mjs.map} +1 -1
  28. package/dist/chunks/{NcActionInput-DYLqm7AP.mjs → NcActionInput-B_f8z2fo.mjs} +8 -8
  29. package/dist/chunks/{NcActionInput-DYLqm7AP.mjs.map → NcActionInput-B_f8z2fo.mjs.map} +1 -1
  30. package/dist/chunks/{NcActionText-DJWBefhJ.mjs → NcActionText-16Mj4-P1.mjs} +3 -4
  31. package/dist/chunks/NcActionText-16Mj4-P1.mjs.map +1 -0
  32. package/dist/chunks/{NcActionTextEditable-ByA0z9nO.mjs → NcActionTextEditable-B4nTAiHu.mjs} +3 -3
  33. package/dist/chunks/{NcActionTextEditable-ByA0z9nO.mjs.map → NcActionTextEditable-B4nTAiHu.mjs.map} +1 -1
  34. package/dist/chunks/{NcActions-iwG1Tj-I.mjs → NcActions-BM3DmGLW.mjs} +6 -6
  35. package/dist/chunks/{NcActions-iwG1Tj-I.mjs.map → NcActions-BM3DmGLW.mjs.map} +1 -1
  36. package/dist/chunks/{NcAppContent-B2qF2-YG.mjs → NcAppContent-BZZyPqOo.mjs} +54 -52
  37. package/dist/chunks/NcAppContent-BZZyPqOo.mjs.map +1 -0
  38. package/dist/chunks/{NcAppNavigation-JoRJnwqf.mjs → NcAppNavigation-BmACVQVW.mjs} +2 -2
  39. package/dist/chunks/{NcAppNavigation-JoRJnwqf.mjs.map → NcAppNavigation-BmACVQVW.mjs.map} +1 -1
  40. package/dist/chunks/{NcAppNavigationCaption-DhwvNbx1.mjs → NcAppNavigationCaption-BrCiN8XK.mjs} +2 -2
  41. package/dist/chunks/{NcAppNavigationCaption-DhwvNbx1.mjs.map → NcAppNavigationCaption-BrCiN8XK.mjs.map} +1 -1
  42. package/dist/chunks/{NcAppNavigationItem-B51Guztu.mjs → NcAppNavigationItem-ClySLuSM.mjs} +9 -9
  43. package/dist/chunks/{NcAppNavigationItem-B51Guztu.mjs.map → NcAppNavigationItem-ClySLuSM.mjs.map} +1 -1
  44. package/dist/chunks/{NcAppNavigationNewItem-DyzpvBOb.mjs → NcAppNavigationNewItem-BUgPntuN.mjs} +6 -6
  45. package/dist/chunks/{NcAppNavigationNewItem-DyzpvBOb.mjs.map → NcAppNavigationNewItem-BUgPntuN.mjs.map} +1 -1
  46. package/dist/chunks/{NcAppNavigationSearch-CvHp92E-.mjs → NcAppNavigationSearch-DpjlWi9j.mjs} +3 -3
  47. package/dist/chunks/{NcAppNavigationSearch-CvHp92E-.mjs.map → NcAppNavigationSearch-DpjlWi9j.mjs.map} +1 -1
  48. package/dist/chunks/{NcAppNavigationSettings-iJ84_lwr.mjs → NcAppNavigationSettings-DGATbBqy.mjs} +2 -2
  49. package/dist/chunks/{NcAppNavigationSettings-iJ84_lwr.mjs.map → NcAppNavigationSettings-DGATbBqy.mjs.map} +1 -1
  50. package/dist/chunks/{NcAppNavigationToggle-D3UGt5TV.mjs → NcAppNavigationToggle-D9pouVyS.mjs} +2 -2
  51. package/dist/chunks/{NcAppNavigationToggle-D3UGt5TV.mjs.map → NcAppNavigationToggle-D9pouVyS.mjs.map} +1 -1
  52. package/dist/chunks/{NcAppSettingsDialog-CQnZ29WZ.mjs → NcAppSettingsDialog-Dgh5jydA.mjs} +3 -3
  53. package/dist/chunks/{NcAppSettingsDialog-CQnZ29WZ.mjs.map → NcAppSettingsDialog-Dgh5jydA.mjs.map} +1 -1
  54. package/dist/chunks/{NcAppSidebar-QEkYs8pt.mjs → NcAppSidebar-DWRmX_-Y.mjs} +12 -12
  55. package/dist/chunks/{NcAppSidebar-QEkYs8pt.mjs.map → NcAppSidebar-DWRmX_-Y.mjs.map} +1 -1
  56. package/dist/chunks/{NcAppSidebarTab-DG51ajic.mjs → NcAppSidebarTab-D1RmFRTu.mjs} +5 -5
  57. package/dist/chunks/NcAppSidebarTab-D1RmFRTu.mjs.map +1 -0
  58. package/dist/chunks/{NcAvatar-BadoF6cb.mjs → NcAvatar-PCbT0J_-.mjs} +39 -25
  59. package/dist/chunks/NcAvatar-PCbT0J_-.mjs.map +1 -0
  60. package/dist/chunks/{NcBreadcrumb-BH4XQJ8K.mjs → NcBreadcrumb-D9gRzaYP.mjs} +2 -2
  61. package/dist/chunks/{NcBreadcrumb-BH4XQJ8K.mjs.map → NcBreadcrumb-D9gRzaYP.mjs.map} +1 -1
  62. package/dist/chunks/{NcBreadcrumbs-DyWyrhrJ.mjs → NcBreadcrumbs-DjqDBMn-.mjs} +4 -4
  63. package/dist/chunks/{NcBreadcrumbs-DyWyrhrJ.mjs.map → NcBreadcrumbs-DjqDBMn-.mjs.map} +1 -1
  64. package/dist/chunks/{NcCheckboxRadioSwitch-Di0xbf6d.mjs → NcCheckboxRadioSwitch-D9N_BDHh.mjs} +2 -2
  65. package/dist/chunks/{NcCheckboxRadioSwitch-Di0xbf6d.mjs.map → NcCheckboxRadioSwitch-D9N_BDHh.mjs.map} +1 -1
  66. package/dist/chunks/{NcChip-DfDlpsAh.mjs → NcChip-BPresRp1.mjs} +6 -6
  67. package/dist/chunks/{NcChip-DfDlpsAh.mjs.map → NcChip-BPresRp1.mjs.map} +1 -1
  68. package/dist/chunks/{NcCollectionList-B2PzNHzw.mjs → NcCollectionList-BPDCogsB.mjs} +14 -11
  69. package/dist/chunks/NcCollectionList-BPDCogsB.mjs.map +1 -0
  70. package/dist/chunks/{NcColorPicker-CoteX_0P.mjs → NcColorPicker-BNpZzN-p.mjs} +3 -3
  71. package/dist/chunks/{NcColorPicker-CoteX_0P.mjs.map → NcColorPicker-BNpZzN-p.mjs.map} +1 -1
  72. package/dist/chunks/{NcContent-BImnEnMI.mjs → NcContent-CZKDyVcI.mjs} +8 -6
  73. package/dist/chunks/{NcContent-BImnEnMI.mjs.map → NcContent-CZKDyVcI.mjs.map} +1 -1
  74. package/dist/chunks/{NcDashboardWidget-DJtdcW-W.mjs → NcDashboardWidget-DhZ5c4oF.mjs} +4 -4
  75. package/dist/chunks/{NcDashboardWidget-DJtdcW-W.mjs.map → NcDashboardWidget-DhZ5c4oF.mjs.map} +1 -1
  76. package/dist/chunks/{NcDashboardWidgetItem-CZaWF40u.mjs → NcDashboardWidgetItem-pJ-PctjL.mjs} +4 -4
  77. package/dist/chunks/{NcDashboardWidgetItem-CZaWF40u.mjs.map → NcDashboardWidgetItem-pJ-PctjL.mjs.map} +1 -1
  78. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs +36 -0
  79. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs.map → NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs.map} +1 -1
  80. package/dist/chunks/{NcDateTimePicker-BB--HQog.mjs → NcDateTimePicker-CKOTExmB.mjs} +149 -94
  81. package/dist/chunks/NcDateTimePicker-CKOTExmB.mjs.map +1 -0
  82. package/dist/chunks/{NcDateTimePickerNative-DaPzFiYH.mjs → NcDateTimePickerNative-NVYPDSmf.mjs} +2 -2
  83. package/dist/chunks/{NcDateTimePickerNative-DaPzFiYH.mjs.map → NcDateTimePickerNative-NVYPDSmf.mjs.map} +1 -1
  84. package/dist/chunks/{NcDialog-CXVaeWJf.mjs → NcDialog-DTbCOARa.mjs} +3 -3
  85. package/dist/chunks/{NcDialog-CXVaeWJf.mjs.map → NcDialog-DTbCOARa.mjs.map} +1 -1
  86. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs} +3 -3
  87. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs.map} +1 -1
  88. package/dist/chunks/{NcEmojiPicker-BGO0v-D5.mjs → NcEmojiPicker-DHXabPDE.mjs} +10 -10
  89. package/dist/chunks/{NcEmojiPicker-BGO0v-D5.mjs.map → NcEmojiPicker-DHXabPDE.mjs.map} +1 -1
  90. package/dist/chunks/{NcHeaderMenu-DmpJfS86.mjs → NcHeaderMenu-Bf_rW093.mjs} +2 -2
  91. package/dist/chunks/{NcHeaderMenu-DmpJfS86.mjs.map → NcHeaderMenu-Bf_rW093.mjs.map} +1 -1
  92. package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs → NcIconSvgWrapper-CprKb_SE.mjs} +4 -4
  93. package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs.map → NcIconSvgWrapper-CprKb_SE.mjs.map} +1 -1
  94. package/dist/chunks/{NcInputConfirmCancel-B7gAZ7U1.mjs → NcInputConfirmCancel-DCUXeKPz.mjs} +2 -2
  95. package/dist/chunks/{NcInputConfirmCancel-B7gAZ7U1.mjs.map → NcInputConfirmCancel-DCUXeKPz.mjs.map} +1 -1
  96. package/dist/chunks/{NcInputField-DH5ybroK.mjs → NcInputField-BZWRHkmQ.mjs} +3 -3
  97. package/dist/chunks/{NcInputField-DH5ybroK.mjs.map → NcInputField-BZWRHkmQ.mjs.map} +1 -1
  98. package/dist/chunks/{NcListItem-50hUlVlb.mjs → NcListItem-7BHAmqB0.mjs} +5 -5
  99. package/dist/chunks/{NcListItem-50hUlVlb.mjs.map → NcListItem-7BHAmqB0.mjs.map} +1 -1
  100. package/dist/chunks/{NcListItemIcon-BGEA45de.mjs → NcListItemIcon-gkuv5FT8.mjs} +6 -4
  101. package/dist/chunks/{NcListItemIcon-BGEA45de.mjs.map → NcListItemIcon-gkuv5FT8.mjs.map} +1 -1
  102. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs +16 -0
  103. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs.map +1 -0
  104. package/dist/chunks/{NcModal-CWRw1hyF.mjs → NcModal-CX28vCtF.mjs} +5 -5
  105. package/dist/chunks/{NcModal-CWRw1hyF.mjs.map → NcModal-CX28vCtF.mjs.map} +1 -1
  106. package/dist/chunks/{NcNoteCard-DmhVICGO.mjs → NcNoteCard-oGt6biyJ.mjs} +7 -6
  107. package/dist/chunks/{NcNoteCard-DmhVICGO.mjs.map → NcNoteCard-oGt6biyJ.mjs.map} +1 -1
  108. package/dist/chunks/NcPasswordField-w13_Lpyn.mjs +128 -0
  109. package/dist/chunks/NcPasswordField-w13_Lpyn.mjs.map +1 -0
  110. package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs → NcRelatedResourcesPanel-CpOgjo9h.mjs} +9 -9
  111. package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs.map → NcRelatedResourcesPanel-CpOgjo9h.mjs.map} +1 -1
  112. package/dist/chunks/{NcRichContenteditable-CGP8KN41.mjs → NcRichContenteditable-J9ILu0dF.mjs} +36 -29
  113. package/dist/chunks/NcRichContenteditable-J9ILu0dF.mjs.map +1 -0
  114. package/dist/chunks/{NcRichText-DDllQirJ.mjs → NcRichText-DvbC3aUR.mjs} +7 -9
  115. package/dist/chunks/{NcRichText-DDllQirJ.mjs.map → NcRichText-DvbC3aUR.mjs.map} +1 -1
  116. package/dist/chunks/{NcSelect-Bkg2rrDQ.mjs → NcSelect-D6XzjG4n.mjs} +2 -2
  117. package/dist/chunks/{NcSelect-Bkg2rrDQ.mjs.map → NcSelect-D6XzjG4n.mjs.map} +1 -1
  118. package/dist/chunks/{NcSelectTags-gJMICSS2.mjs → NcSelectTags-SNTGRj-n.mjs} +3 -3
  119. package/dist/chunks/{NcSelectTags-gJMICSS2.mjs.map → NcSelectTags-SNTGRj-n.mjs.map} +1 -1
  120. package/dist/chunks/{NcSelectUsers-mRdIiG7L.mjs → NcSelectUsers-D_eu9Uqb.mjs} +3 -3
  121. package/dist/chunks/{NcSelectUsers-mRdIiG7L.mjs.map → NcSelectUsers-D_eu9Uqb.mjs.map} +1 -1
  122. package/dist/chunks/{NcSettingsInputText-P8cEi0aP.mjs → NcSettingsInputText-D5N9XxkW.mjs} +2 -2
  123. package/dist/chunks/{NcSettingsInputText-P8cEi0aP.mjs.map → NcSettingsInputText-D5N9XxkW.mjs.map} +1 -1
  124. package/dist/chunks/{NcSettingsSection-DkDLjL_G.mjs → NcSettingsSection-93UQoiwe.mjs} +40 -65
  125. package/dist/chunks/NcSettingsSection-93UQoiwe.mjs.map +1 -0
  126. package/dist/chunks/{NcSettingsSelectGroup-BvYxv8aw.mjs → NcSettingsSelectGroup-Dr4IRbi_.mjs} +3 -3
  127. package/dist/chunks/{NcSettingsSelectGroup-BvYxv8aw.mjs.map → NcSettingsSelectGroup-Dr4IRbi_.mjs.map} +1 -1
  128. package/dist/chunks/{NcTextArea-D4hJqp6W.mjs → NcTextArea-CWqnvMl2.mjs} +3 -3
  129. package/dist/chunks/{NcTextArea-D4hJqp6W.mjs.map → NcTextArea-CWqnvMl2.mjs.map} +1 -1
  130. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs → NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs} +5 -5
  131. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs.map} +1 -1
  132. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs +30 -0
  133. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map +1 -0
  134. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs} +3 -3
  135. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs.map} +1 -1
  136. package/dist/chunks/{NcUserBubble-CKN4C4kP.mjs → NcUserBubble-BW0qu6mW.mjs} +2 -2
  137. package/dist/chunks/{NcUserBubble-CKN4C4kP.mjs.map → NcUserBubble-BW0qu6mW.mjs.map} +1 -1
  138. package/dist/chunks/{NcUserStatusIcon-BX9ILG2r.mjs → NcUserStatusIcon-DqQYA-EE.mjs} +2 -2
  139. package/dist/chunks/{NcUserStatusIcon-BX9ILG2r.mjs.map → NcUserStatusIcon-DqQYA-EE.mjs.map} +1 -1
  140. package/dist/chunks/{_l10n-B4AgnzNC.mjs → _l10n-tXci8WM1.mjs} +37 -43
  141. package/dist/chunks/_l10n-tXci8WM1.mjs.map +1 -0
  142. package/dist/chunks/{colors-fFK6HkHZ.mjs → colors-BaTbJhvg.mjs} +2 -2
  143. package/dist/chunks/{colors-fFK6HkHZ.mjs.map → colors-BaTbJhvg.mjs.map} +1 -1
  144. package/dist/chunks/constants-Bls5liKo.mjs +9 -0
  145. package/dist/chunks/constants-Bls5liKo.mjs.map +1 -0
  146. package/dist/chunks/{index-BF8joS9W.mjs → customPickerElements-CH9vlHLd.mjs} +46 -45
  147. package/dist/chunks/customPickerElements-CH9vlHLd.mjs.map +1 -0
  148. package/dist/chunks/{mdi-CWpCzTmH.mjs → mdi-D6fu5i4r.mjs} +10 -6
  149. package/dist/chunks/{mdi-CWpCzTmH.mjs.map → mdi-D6fu5i4r.mjs.map} +1 -1
  150. package/dist/chunks/{referencePickerModal-uLIBRHIc.mjs → referencePickerModal-DREcDQKg.mjs} +53 -59
  151. package/dist/chunks/referencePickerModal-DREcDQKg.mjs.map +1 -0
  152. package/dist/chunks/{usernameToColor-Bik5PNni.mjs → usernameToColor-2yV_Zdvb.mjs} +2 -2
  153. package/dist/chunks/{usernameToColor-Bik5PNni.mjs.map → usernameToColor-2yV_Zdvb.mjs.map} +1 -1
  154. package/dist/components/NcActionButton/NcActionButton.vue.d.ts +1 -1
  155. package/dist/components/NcActionButton/index.mjs +1 -1
  156. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  157. package/dist/components/NcActionInput/index.mjs +1 -1
  158. package/dist/components/NcActionText/index.mjs +1 -1
  159. package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +1 -1
  160. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  161. package/dist/components/NcActions/index.mjs +1 -1
  162. package/dist/components/NcAppContent/NcAppContent.vue.d.ts +34 -33
  163. package/dist/components/NcAppContent/index.mjs +1 -1
  164. package/dist/components/NcAppNavigation/index.mjs +1 -1
  165. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  166. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  167. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  168. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +6 -6
  169. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  170. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  171. package/dist/components/NcAppNavigationToggle/index.mjs +1 -1
  172. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  173. package/dist/components/NcAppSidebar/index.mjs +1 -1
  174. package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +3 -3
  175. package/dist/components/NcAppSidebarTab/index.mjs +1 -1
  176. package/dist/components/NcAvatar/index.mjs +1 -1
  177. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  178. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  179. package/dist/components/NcButton/NcButton.vue.d.ts +1 -1
  180. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  181. package/dist/components/NcChip/index.mjs +1 -1
  182. package/dist/components/NcCollectionList/index.mjs +1 -1
  183. package/dist/components/NcColorPicker/index.mjs +1 -1
  184. package/dist/components/NcContent/index.mjs +1 -1
  185. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  186. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  187. package/dist/components/NcDateTime/index.mjs +1 -1
  188. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +1072 -4
  189. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  190. package/dist/components/NcDateTimePickerNative/NcDateTimePickerNative.vue.d.ts +1 -1
  191. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  192. package/dist/components/NcDialog/index.mjs +1 -1
  193. package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +1 -1
  194. package/dist/components/NcDialogButton/index.mjs +1 -1
  195. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  196. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  197. package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +1 -1
  198. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  199. package/dist/components/NcInputField/NcInputField.vue.d.ts +1 -1
  200. package/dist/components/NcInputField/index.mjs +1 -1
  201. package/dist/components/NcListItem/index.mjs +1 -1
  202. package/dist/components/NcListItemIcon/index.mjs +1 -1
  203. package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
  204. package/dist/components/NcModal/index.mjs +1 -1
  205. package/dist/components/NcNoteCard/index.mjs +1 -1
  206. package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +10 -7
  207. package/dist/components/NcPasswordField/index.mjs +1 -1
  208. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  209. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +4 -4
  210. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +4 -4
  211. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +2 -2
  212. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  213. package/dist/components/NcRichText/index.d.ts +3 -3
  214. package/dist/components/NcRichText/index.mjs +10 -10
  215. package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +1 -1
  216. package/dist/components/NcSelect/index.mjs +1 -1
  217. package/dist/components/NcSelectTags/index.mjs +1 -1
  218. package/dist/components/NcSelectUsers/index.mjs +1 -1
  219. package/dist/components/NcSettingsInputText/index.mjs +1 -1
  220. package/dist/components/NcSettingsSection/NcSettingsSection.vue.d.ts +40 -34
  221. package/dist/components/NcSettingsSection/index.d.ts +4 -0
  222. package/dist/components/NcSettingsSection/index.mjs +1 -1
  223. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  224. package/dist/components/NcTextArea/index.mjs +1 -1
  225. package/dist/components/NcTextField/NcTextField.vue.d.ts +6 -6
  226. package/dist/components/NcTextField/index.mjs +1 -1
  227. package/dist/components/NcThemeProvider/NcThemeProvider.vue.d.ts +27 -0
  228. package/dist/components/NcThemeProvider/index.d.ts +5 -0
  229. package/dist/components/NcThemeProvider/index.mjs +5 -0
  230. package/dist/components/NcThemeProvider/index.mjs.map +1 -0
  231. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  232. package/dist/components/NcUserBubble/index.mjs +1 -1
  233. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  234. package/dist/components/index.d.ts +2 -1
  235. package/dist/composables/index.d.ts +1 -1
  236. package/dist/composables/useFormatDateTime/index.d.ts +40 -0
  237. package/dist/composables/useFormatDateTime/index.mjs +49 -0
  238. package/dist/composables/useFormatDateTime/index.mjs.map +1 -0
  239. package/dist/composables/useHotKey/index.mjs +13 -1
  240. package/dist/composables/useHotKey/index.mjs.map +1 -1
  241. package/dist/composables/useIsDarkTheme/constants.d.ts +7 -0
  242. package/dist/composables/useIsDarkTheme/index.d.ts +7 -4
  243. package/dist/composables/useIsDarkTheme/index.mjs +23 -6
  244. package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
  245. package/dist/functions/reference/customPickerElements.d.ts +48 -13
  246. package/dist/functions/reference/index.d.ts +8 -5
  247. package/dist/functions/reference/index.mjs +7 -7
  248. package/dist/functions/reference/providerHelper.d.ts +26 -15
  249. package/dist/functions/reference/referencePickerModal.d.ts +7 -4
  250. package/dist/functions/reference/widgets.d.ts +47 -28
  251. package/dist/functions/registerReference/index.d.ts +6 -2
  252. package/dist/functions/registerReference/index.mjs +4 -4
  253. package/dist/functions/usernameToColor/index.mjs +1 -1
  254. package/dist/index.mjs +71 -68
  255. package/dist/index.mjs.map +1 -1
  256. package/dist/utils/getAvatarUrl.d.ts +23 -1
  257. package/package.json +2 -2
  258. package/dist/assets/NcDateTimePicker-pmbCzZnb.css +0 -83
  259. package/dist/chunks/NcActionText-DJWBefhJ.mjs.map +0 -1
  260. package/dist/chunks/NcAppContent-B2qF2-YG.mjs.map +0 -1
  261. package/dist/chunks/NcAppSidebarTab-DG51ajic.mjs.map +0 -1
  262. package/dist/chunks/NcAvatar-BadoF6cb.mjs.map +0 -1
  263. package/dist/chunks/NcCollectionList-B2PzNHzw.mjs.map +0 -1
  264. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs +0 -31
  265. package/dist/chunks/NcDateTimePicker-BB--HQog.mjs.map +0 -1
  266. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs +0 -13
  267. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs.map +0 -1
  268. package/dist/chunks/NcPasswordField-DY-wDP9m.mjs +0 -211
  269. package/dist/chunks/NcPasswordField-DY-wDP9m.mjs.map +0 -1
  270. package/dist/chunks/NcRichContenteditable-CGP8KN41.mjs.map +0 -1
  271. package/dist/chunks/NcSettingsSection-DkDLjL_G.mjs.map +0 -1
  272. package/dist/chunks/_l10n-B4AgnzNC.mjs.map +0 -1
  273. package/dist/chunks/index-BF8joS9W.mjs.map +0 -1
  274. package/dist/chunks/referencePickerModal-uLIBRHIc.mjs.map +0 -1
  275. package/dist/chunks/useFormatDateTime-DmnI1ENQ.mjs +0 -87
  276. package/dist/chunks/useFormatDateTime-DmnI1ENQ.mjs.map +0 -1
  277. package/dist/composables/useFormatDateTime.d.ts +0 -84
  278. /package/dist/components/NcAppContent/{NcAppDetailsToggle.vue.d.ts → NcAppContentDetailsToggle.vue.d.ts} +0 -0
package/dist/index.mjs CHANGED
@@ -1,96 +1,97 @@
1
- import { N } from "./chunks/NcActionButton-BECWgEPr.mjs";
2
- import { N as N2 } from "./chunks/NcActionButtonGroup-e4F30E5Z.mjs";
1
+ import { N } from "./chunks/NcActionButton-Bd35_0n4.mjs";
2
+ import { N as N2 } from "./chunks/NcActionButtonGroup-BVbWDFaC.mjs";
3
3
  import { N as N3 } from "./chunks/NcActionCaption-Fumfjzxj.mjs";
4
4
  import { N as N4 } from "./chunks/NcActionCheckbox-DLPDTACR.mjs";
5
- import { N as N5 } from "./chunks/NcActionInput-DYLqm7AP.mjs";
5
+ import { N as N5 } from "./chunks/NcActionInput-B_f8z2fo.mjs";
6
6
  import { N as N6 } from "./chunks/NcActionLink-BEo7zmXX.mjs";
7
7
  import { N as N7 } from "./chunks/NcActionRadio-CPoWB58D.mjs";
8
8
  import { N as N8 } from "./chunks/NcActionRouter-ERoQjJKv.mjs";
9
- import { N as N9 } from "./chunks/NcActions-iwG1Tj-I.mjs";
9
+ import { N as N9 } from "./chunks/NcActions-BM3DmGLW.mjs";
10
10
  import { N as N10 } from "./chunks/NcActionSeparator-Doekl1NX.mjs";
11
- import { N as N11 } from "./chunks/NcActionText-DJWBefhJ.mjs";
12
- import { N as N12 } from "./chunks/NcActionTextEditable-ByA0z9nO.mjs";
13
- import { N as N13 } from "./chunks/NcAppContent-B2qF2-YG.mjs";
11
+ import { N as N11 } from "./chunks/NcActionText-16Mj4-P1.mjs";
12
+ import { N as N12 } from "./chunks/NcActionTextEditable-B4nTAiHu.mjs";
13
+ import { N as N13 } from "./chunks/NcAppContent-BZZyPqOo.mjs";
14
14
  import { _ } from "./chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs";
15
15
  import { N as N14 } from "./chunks/NcAppContentList-DnLY_sWw.mjs";
16
- import { N as N15 } from "./chunks/NcAppNavigation-JoRJnwqf.mjs";
17
- import { N as N16 } from "./chunks/NcAppNavigationCaption-DhwvNbx1.mjs";
16
+ import { N as N15 } from "./chunks/NcAppNavigation-BmACVQVW.mjs";
17
+ import { N as N16 } from "./chunks/NcAppNavigationCaption-BrCiN8XK.mjs";
18
18
  import { N as N17 } from "./chunks/NcAppNavigationIconBullet-B1kc4u65.mjs";
19
- import { N as N18 } from "./chunks/NcAppNavigationItem-B51Guztu.mjs";
19
+ import { N as N18 } from "./chunks/NcAppNavigationItem-ClySLuSM.mjs";
20
20
  import { N as N19 } from "./chunks/NcAppNavigationList-DX_Yo23V.mjs";
21
21
  import { N as N20 } from "./chunks/NcAppNavigationNew-CMjaAY5A.mjs";
22
- import { N as N21 } from "./chunks/NcAppNavigationNewItem-DyzpvBOb.mjs";
23
- import { N as N22 } from "./chunks/NcAppNavigationSearch-CvHp92E-.mjs";
24
- import { N as N23 } from "./chunks/NcAppNavigationSettings-iJ84_lwr.mjs";
22
+ import { N as N21 } from "./chunks/NcAppNavigationNewItem-BUgPntuN.mjs";
23
+ import { N as N22 } from "./chunks/NcAppNavigationSearch-DpjlWi9j.mjs";
24
+ import { N as N23 } from "./chunks/NcAppNavigationSettings-DGATbBqy.mjs";
25
25
  import { N as N24 } from "./chunks/NcAppNavigationSpacer-BvkBfuVw.mjs";
26
- import { N as N25 } from "./chunks/NcAppSettingsDialog-CQnZ29WZ.mjs";
26
+ import { N as N25 } from "./chunks/NcAppSettingsDialog-Dgh5jydA.mjs";
27
27
  import { N as N26 } from "./chunks/NcAppSettingsSection-CssmXyZ0.mjs";
28
- import { N as N27 } from "./chunks/NcAppSidebar-QEkYs8pt.mjs";
28
+ import { N as N27 } from "./chunks/NcAppSidebar-DWRmX_-Y.mjs";
29
29
  import { _ as _2 } from "./chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs";
30
- import { N as N28 } from "./chunks/NcAppSidebarTab-DG51ajic.mjs";
31
- import { N as N29 } from "./chunks/NcAvatar-BadoF6cb.mjs";
30
+ import { N as N28 } from "./chunks/NcAppSidebarTab-D1RmFRTu.mjs";
31
+ import { N as N29 } from "./chunks/NcAvatar-PCbT0J_-.mjs";
32
32
  import { N as N30 } from "./chunks/NcBlurHash-BiFktE2N.mjs";
33
- import { N as N31 } from "./chunks/NcBreadcrumb-BH4XQJ8K.mjs";
34
- import { N as N32 } from "./chunks/NcBreadcrumbs-DyWyrhrJ.mjs";
33
+ import { N as N31 } from "./chunks/NcBreadcrumb-D9gRzaYP.mjs";
34
+ import { N as N32 } from "./chunks/NcBreadcrumbs-DjqDBMn-.mjs";
35
35
  import { N as N33 } from "./chunks/NcButton-yN4vYgXb.mjs";
36
- import { N as N34 } from "./chunks/NcCheckboxRadioSwitch-Di0xbf6d.mjs";
37
- import { N as N35 } from "./chunks/NcChip-DfDlpsAh.mjs";
38
- import { N as N36 } from "./chunks/NcCollectionList-B2PzNHzw.mjs";
39
- import { N as N37 } from "./chunks/NcColorPicker-CoteX_0P.mjs";
40
- import { N as N38 } from "./chunks/NcContent-BImnEnMI.mjs";
36
+ import { N as N34 } from "./chunks/NcCheckboxRadioSwitch-D9N_BDHh.mjs";
37
+ import { N as N35 } from "./chunks/NcChip-BPresRp1.mjs";
38
+ import { N as N36 } from "./chunks/NcCollectionList-BPDCogsB.mjs";
39
+ import { N as N37 } from "./chunks/NcColorPicker-BNpZzN-p.mjs";
40
+ import { N as N38 } from "./chunks/NcContent-CZKDyVcI.mjs";
41
41
  import { N as N39 } from "./chunks/NcCounterBubble-PBdqn9Nf.mjs";
42
- import { N as N40 } from "./chunks/NcDashboardWidget-DJtdcW-W.mjs";
43
- import { N as N41 } from "./chunks/NcDashboardWidgetItem-CZaWF40u.mjs";
44
- import { _ as _3 } from "./chunks/NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs";
45
- import { N as N42 } from "./chunks/NcDateTimePicker-BB--HQog.mjs";
46
- import { N as N43 } from "./chunks/NcDateTimePickerNative-DaPzFiYH.mjs";
47
- import { N as N44 } from "./chunks/NcDialog-CXVaeWJf.mjs";
48
- import { _ as _4 } from "./chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs";
42
+ import { N as N40 } from "./chunks/NcDashboardWidget-DhZ5c4oF.mjs";
43
+ import { N as N41 } from "./chunks/NcDashboardWidgetItem-pJ-PctjL.mjs";
44
+ import { _ as _3 } from "./chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs";
45
+ import { N as N42 } from "./chunks/NcDateTimePicker-CKOTExmB.mjs";
46
+ import { N as N43 } from "./chunks/NcDateTimePickerNative-NVYPDSmf.mjs";
47
+ import { N as N44 } from "./chunks/NcDialog-DTbCOARa.mjs";
48
+ import { _ as _4 } from "./chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs";
49
49
  import { N as N45 } from "./chunks/NcEllipsisedOption-C8uNDC-j.mjs";
50
- import { N as N46 } from "./chunks/NcEmojiPicker-BGO0v-D5.mjs";
50
+ import { N as N46 } from "./chunks/NcEmojiPicker-DHXabPDE.mjs";
51
51
  import { N as N47 } from "./chunks/NcEmptyContent-BdOezubv.mjs";
52
52
  import { N as N48 } from "./chunks/NcGuestContent-B_S2nyJ4.mjs";
53
53
  import { N as N49 } from "./chunks/NcHeaderButton-BTZ1WNux.mjs";
54
- import { N as N50 } from "./chunks/NcHeaderMenu-DmpJfS86.mjs";
54
+ import { N as N50 } from "./chunks/NcHeaderMenu-Bf_rW093.mjs";
55
55
  import { _ as _5 } from "./chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs";
56
- import { N as N51 } from "./chunks/NcIconSvgWrapper-BOiCKv0b.mjs";
57
- import { N as N52 } from "./chunks/NcInputField-DH5ybroK.mjs";
58
- import { N as N53 } from "./chunks/NcListItem-50hUlVlb.mjs";
59
- import { N as N54 } from "./chunks/NcListItemIcon-BGEA45de.mjs";
56
+ import { N as N51 } from "./chunks/NcIconSvgWrapper-CprKb_SE.mjs";
57
+ import { N as N52 } from "./chunks/NcInputField-BZWRHkmQ.mjs";
58
+ import { N as N53 } from "./chunks/NcListItem-7BHAmqB0.mjs";
59
+ import { N as N54 } from "./chunks/NcListItemIcon-gkuv5FT8.mjs";
60
60
  import { N as N55 } from "./chunks/NcLoadingIcon-Dm3kRPrf.mjs";
61
- import { N as N56 } from "./chunks/NcModal-CWRw1hyF.mjs";
62
- import { N as N57 } from "./chunks/NcNoteCard-DmhVICGO.mjs";
63
- import { N as N58 } from "./chunks/NcPasswordField-DY-wDP9m.mjs";
61
+ import { N as N56 } from "./chunks/NcModal-CX28vCtF.mjs";
62
+ import { N as N57 } from "./chunks/NcNoteCard-oGt6biyJ.mjs";
63
+ import { N as N58 } from "./chunks/NcPasswordField-w13_Lpyn.mjs";
64
64
  import { N as N59 } from "./chunks/NcPopover-BUlWWIxc.mjs";
65
65
  import { N as N60 } from "./chunks/NcProgressBar-Bx8bMkd4.mjs";
66
- import { N as N61 } from "./chunks/NcRelatedResourcesPanel-BUasditW.mjs";
67
- import { a, N as N62, b } from "./chunks/NcRichContenteditable-CGP8KN41.mjs";
68
- import { N as N63 } from "./chunks/NcRichText-DDllQirJ.mjs";
69
- import { N as N64, h, d, i, b as b2, r, c, a as a2 } from "./chunks/index-BF8joS9W.mjs";
66
+ import { N as N61 } from "./chunks/NcRelatedResourcesPanel-CpOgjo9h.mjs";
67
+ import { a, N as N62, b } from "./chunks/NcRichContenteditable-J9ILu0dF.mjs";
68
+ import { N as N63 } from "./chunks/NcRichText-DvbC3aUR.mjs";
69
+ import { N as N64, h, f, i, b as b2, r, c, a as a2 } from "./chunks/customPickerElements-CH9vlHLd.mjs";
70
70
  import "@vueuse/core";
71
71
  import "vue";
72
72
  import "vue-router";
73
- import { a as a3, g, b as b3, c as c2, d as d2, s } from "./chunks/referencePickerModal-uLIBRHIc.mjs";
73
+ import { d, g, a as a3, b as b3, c as c2, s } from "./chunks/referencePickerModal-DREcDQKg.mjs";
74
74
  import "./chunks/autolink-CKPk5rzg.mjs";
75
75
  import "@nextcloud/axios";
76
76
  import "@nextcloud/sharing/public";
77
77
  import "@nextcloud/auth";
78
78
  import "@nextcloud/router";
79
- import { N as N65 } from "./chunks/NcSelect-Bkg2rrDQ.mjs";
80
- import { _ as _6 } from "./chunks/NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs";
79
+ import { N as N65 } from "./chunks/NcSelect-D6XzjG4n.mjs";
80
+ import { _ as _6 } from "./chunks/NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs";
81
81
  import "@nextcloud/event-bus";
82
82
  import { _ as _7 } from "./chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs";
83
- import { N as N66 } from "./chunks/NcSelectTags-gJMICSS2.mjs";
84
- import { N as N67 } from "./chunks/NcSelectUsers-mRdIiG7L.mjs";
85
- import { N as N68 } from "./chunks/NcSettingsInputText-P8cEi0aP.mjs";
86
- import { N as N69 } from "./chunks/NcSettingsSection-DkDLjL_G.mjs";
87
- import { N as N70 } from "./chunks/NcSettingsSelectGroup-BvYxv8aw.mjs";
88
- import { N as N71 } from "./chunks/NcTextArea-D4hJqp6W.mjs";
89
- import { _ as _8 } from "./chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs";
90
- import { N as N72 } from "./chunks/NcUserBubble-CKN4C4kP.mjs";
91
- import { N as N73 } from "./chunks/NcUserStatusIcon-BX9ILG2r.mjs";
92
- import { _ as _9 } from "./chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
93
- import { u } from "./chunks/useFormatDateTime-DmnI1ENQ.mjs";
83
+ import { N as N66 } from "./chunks/NcSelectTags-SNTGRj-n.mjs";
84
+ import { N as N67 } from "./chunks/NcSelectUsers-D_eu9Uqb.mjs";
85
+ import { N as N68 } from "./chunks/NcSettingsInputText-D5N9XxkW.mjs";
86
+ import { N as N69 } from "./chunks/NcSettingsSection-93UQoiwe.mjs";
87
+ import { N as N70 } from "./chunks/NcSettingsSelectGroup-Dr4IRbi_.mjs";
88
+ import { N as N71 } from "./chunks/NcTextArea-CWqnvMl2.mjs";
89
+ import { _ as _8 } from "./chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs";
90
+ import { _ as _9 } from "./chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs";
91
+ import { N as N72 } from "./chunks/NcUserBubble-BW0qu6mW.mjs";
92
+ import { N as N73 } from "./chunks/NcUserStatusIcon-DqQYA-EE.mjs";
93
+ import { _ as _10 } from "./chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
94
+ import { useFormatRelativeTime, useFormatTime } from "./composables/useFormatDateTime/index.mjs";
94
95
  import { useHotKey } from "./composables/useHotKey/index.mjs";
95
96
  import { useIsDarkTheme, useIsDarkThemeElement } from "./composables/useIsDarkTheme/index.mjs";
96
97
  import { useIsFullscreen } from "./composables/useIsFullscreen/index.mjs";
@@ -101,7 +102,7 @@ import { spawnDialog } from "./functions/dialog/index.mjs";
101
102
  import { E, a as a4, e, g as g2, s as s2 } from "./chunks/emoji-BY_D0V5K.mjs";
102
103
  import { checkIfDarkTheme, isDarkTheme } from "./functions/isDarkTheme/index.mjs";
103
104
  import { preloadImage } from "./functions/preloadImage/index.mjs";
104
- import { u as u2 } from "./chunks/usernameToColor-Bik5PNni.mjs";
105
+ import { u } from "./chunks/usernameToColor-2yV_Zdvb.mjs";
105
106
  import { default as default2 } from "./directives/Focus/index.mjs";
106
107
  import { default as default3 } from "./directives/Linkify/index.mjs";
107
108
  export {
@@ -190,22 +191,23 @@ export {
190
191
  N70 as NcSettingsSelectGroup,
191
192
  N71 as NcTextArea,
192
193
  _6 as NcTextField,
193
- _8 as NcTimezonePicker,
194
+ _8 as NcThemeProvider,
195
+ _9 as NcTimezonePicker,
194
196
  N72 as NcUserBubble,
195
197
  N73 as NcUserStatusIcon,
196
- _9 as NcVNodes,
197
- a3 as anyLinkProviderId,
198
+ _10 as NcVNodes,
199
+ d as anyLinkProviderId,
198
200
  checkIfDarkTheme,
199
201
  a4 as emojiAddRecent,
200
202
  e as emojiSearch,
201
203
  g2 as getCurrentSkinTone,
202
204
  getEnabledContactsMenuActions,
203
205
  g as getLinkWithPicker,
204
- b3 as getProvider,
205
- c2 as getProviders,
206
+ a3 as getProvider,
207
+ b3 as getProviders,
206
208
  h as hasInteractiveView,
207
209
  isA11yActivation,
208
- d as isCustomPickerElementRegistered,
210
+ f as isCustomPickerElementRegistered,
209
211
  isDarkTheme,
210
212
  i as isWidgetRegistered,
211
213
  preloadImage,
@@ -214,17 +216,18 @@ export {
214
216
  r as registerWidget,
215
217
  c as renderCustomPickerElement,
216
218
  a2 as renderWidget,
217
- d2 as searchProvider,
219
+ c2 as searchProvider,
218
220
  s2 as setCurrentSkinTone,
219
221
  s as sortProviders,
220
222
  spawnDialog,
221
- u as useFormatDateTime,
223
+ useFormatRelativeTime,
224
+ useFormatTime,
222
225
  useHotKey,
223
226
  useIsDarkTheme,
224
227
  useIsDarkThemeElement,
225
228
  useIsFullscreen,
226
229
  useIsMobile,
227
230
  useIsSmallMobile,
228
- u2 as usernameToColor
231
+ u as usernameToColor
229
232
  };
230
233
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,4 +2,26 @@
2
2
  * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
3
3
  * SPDX-License-Identifier: AGPL-3.0-or-later
4
4
  */
5
- export declare const getAvatarUrl: (user: string, size: number | string, isGuest?: boolean) => string;
5
+ interface AvatarUrlOptions {
6
+ /**
7
+ * Should the dark theme variant be used.
8
+ */
9
+ isDarkTheme?: boolean;
10
+ /**
11
+ * Is the user a guest user.
12
+ */
13
+ isGuest?: boolean;
14
+ /**
15
+ * Size of the avatar.
16
+ * @default 64
17
+ */
18
+ size?: 64 | 512;
19
+ }
20
+ /**
21
+ * Get the avatar URL for a given user.
22
+ *
23
+ * @param user - The user id
24
+ * @param options - Adjustments for the avatar format
25
+ */
26
+ export declare function getAvatarUrl(user: string, options?: AvatarUrlOptions): string;
27
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextcloud/vue",
3
- "version": "9.0.0-rc.3",
3
+ "version": "9.0.0-rc.4",
4
4
  "description": "Nextcloud vue components",
5
5
  "keywords": [
6
6
  "vuejs",
@@ -75,7 +75,7 @@
75
75
  "@nextcloud/capabilities": "^1.2.0",
76
76
  "@nextcloud/event-bus": "^3.3.2",
77
77
  "@nextcloud/initial-state": "^2.2.0",
78
- "@nextcloud/l10n": "^3.2.0",
78
+ "@nextcloud/l10n": "^3.4.0",
79
79
  "@nextcloud/logger": "^3.0.2",
80
80
  "@nextcloud/router": "^3.0.1",
81
81
  "@nextcloud/sharing": "^0.2.4",
@@ -1,83 +0,0 @@
1
- .dp__input_wrap[data-v-629e70a5]{position:relative;width:100%;box-sizing:unset}.dp__input_wrap[data-v-629e70a5]:focus{border-color:var(--dp-border-color-hover);outline:none}.dp__input_valid[data-v-629e70a5]{box-shadow:0 0 var(--dp-border-radius) var(--dp-success-color);border-color:var(--dp-success-color)}.dp__input_valid[data-v-629e70a5]:hover{border-color:var(--dp-success-color)}.dp__input_invalid[data-v-629e70a5]{box-shadow:0 0 var(--dp-border-radius) var(--dp-danger-color);border-color:var(--dp-danger-color)}.dp__input_invalid[data-v-629e70a5]:hover{border-color:var(--dp-danger-color)}.dp__input[data-v-629e70a5]{background-color:var(--dp-background-color);border-radius:var(--dp-border-radius);font-family:var(--dp-font-family);border:1px solid var(--dp-border-color);outline:none;transition:border-color .2s cubic-bezier(0.645, 0.045, 0.355, 1);width:100%;font-size:var(--dp-font-size);line-height:calc(var(--dp-font-size)*1.5);padding:var(--dp-input-padding);color:var(--dp-text-color);box-sizing:border-box}.dp__input[data-v-629e70a5]::placeholder{opacity:.7}.dp__input[data-v-629e70a5]:hover:not(.dp__input_focus){border-color:var(--dp-border-color-hover)}.dp__input_reg[data-v-629e70a5]{caret-color:rgba(0,0,0,0)}.dp__input_focus[data-v-629e70a5]{border-color:var(--dp-border-color-focus)}.dp__disabled[data-v-629e70a5]{background:var(--dp-disabled-color)}.dp__disabled[data-v-629e70a5]::placeholder{color:var(--dp-disabled-color-text)}.dp__input_icons[data-v-629e70a5]{display:inline-block;width:var(--dp-font-size);height:var(--dp-font-size);stroke-width:0;font-size:var(--dp-font-size);line-height:calc(var(--dp-font-size)*1.5);padding:6px 12px;color:var(--dp-icon-color);box-sizing:content-box}.dp__input_icon[data-v-629e70a5]{cursor:pointer;position:absolute;top:50%;inset-inline-start:0;transform:translateY(-50%);color:var(--dp-icon-color)}.dp--clear-btn[data-v-629e70a5]{position:absolute;top:50%;inset-inline-end:0;transform:translateY(-50%);cursor:pointer;color:var(--dp-icon-color);background:rgba(0,0,0,0);border:none;display:inline-flex;align-items:center;padding:0;margin:0}.dp__input_icon_pad[data-v-629e70a5]{padding-inline-start:var(--dp-input-icon-padding)}.dp__menu[data-v-629e70a5]{background:var(--dp-background-color);border-radius:var(--dp-border-radius);min-width:var(--dp-menu-min-width);font-family:var(--dp-font-family);font-size:var(--dp-font-size);user-select:none;border:1px solid var(--dp-menu-border-color);box-sizing:border-box}.dp__menu[data-v-629e70a5]::after{box-sizing:border-box}.dp__menu[data-v-629e70a5]::before{box-sizing:border-box}.dp__menu[data-v-629e70a5]:focus{border:1px solid var(--dp-menu-border-color);outline:none}.dp--menu-wrapper[data-v-629e70a5]{position:absolute;z-index:99999}.dp__menu_inner[data-v-629e70a5]{padding:var(--dp-menu-padding)}.dp--menu--inner-stretched[data-v-629e70a5]{padding:6px 0}.dp__menu_index[data-v-629e70a5]{z-index:99999}.dp-menu-loading[data-v-629e70a5],.dp__menu_readonly[data-v-629e70a5],.dp__menu_disabled[data-v-629e70a5]{position:absolute;inset:0;z-index:999999}.dp__menu_disabled[data-v-629e70a5]{background:hsla(0,0%,100%,.5);cursor:not-allowed}.dp__menu_readonly[data-v-629e70a5]{background:rgba(0,0,0,0);cursor:default}.dp-menu-loading[data-v-629e70a5]{background:hsla(0,0%,100%,.5);cursor:default}.dp--menu-load-container[data-v-629e70a5]{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.dp--menu-loader[data-v-629e70a5]{width:48px;height:48px;border:var(--dp-loader);border-bottom-color:rgba(0,0,0,0);border-radius:50%;display:inline-block;box-sizing:border-box;animation:dp-load-rotation-629e70a5 1s linear infinite;position:absolute}@keyframes dp-load-rotation-629e70a5{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.dp__arrow_top[data-v-629e70a5]{left:var(--dp-arrow-left);top:0;height:12px;width:12px;background-color:var(--dp-background-color);position:absolute;border-inline-end:1px solid var(--dp-menu-border-color);border-top:1px solid var(--dp-menu-border-color);transform:translate(-50%, -50%) rotate(-45deg)}.dp__arrow_bottom[data-v-629e70a5]{left:var(--dp-arrow-left);bottom:0;height:12px;width:12px;background-color:var(--dp-background-color);position:absolute;border-inline-end:1px solid var(--dp-menu-border-color);border-bottom:1px solid var(--dp-menu-border-color);transform:translate(-50%, 50%) rotate(45deg)}.dp__action_extra[data-v-629e70a5]{text-align:center;padding:2px 0}.dp--preset-dates[data-v-629e70a5]{padding:5px;border-inline-end:1px solid var(--dp-border-color)}.dp--preset-dates[data-dp-mobile][data-v-629e70a5]{display:flex;align-self:center;border:none;overflow-x:auto;max-width:calc(var(--dp-menu-width) - var(--dp-action-row-padding)*2)}.dp--preset-dates-collapsed[data-v-629e70a5]{display:flex;align-self:center;border:none;overflow-x:auto;max-width:calc(var(--dp-menu-width) - var(--dp-action-row-padding)*2)}.dp__sidebar_left[data-v-629e70a5]{padding:5px;border-inline-end:1px solid var(--dp-border-color)}.dp__sidebar_right[data-v-629e70a5]{padding:5px;margin-inline-end:1px solid var(--dp-border-color)}.dp--preset-range[data-v-629e70a5]{display:block;width:100%;padding:5px;text-align:left;white-space:nowrap;color:var(--dp-text-color);border-radius:var(--dp-border-radius);transition:var(--dp-common-transition)}.dp--preset-range[data-v-629e70a5]:hover{background-color:var(--dp-hover-color);color:var(--dp-hover-text-color);cursor:pointer}.dp--preset-range[data-dp-mobile][data-v-629e70a5]{border:1px solid var(--dp-border-color);margin:0 3px}.dp--preset-range[data-dp-mobile][data-v-629e70a5]:first-child{margin-left:0}.dp--preset-range[data-dp-mobile][data-v-629e70a5]:last-child{margin-right:0}.dp--preset-range-collapsed[data-v-629e70a5]{border:1px solid var(--dp-border-color);margin:0 3px}.dp--preset-range-collapsed[data-v-629e70a5]:first-child{margin-left:0}.dp--preset-range-collapsed[data-v-629e70a5]:last-child{margin-right:0}.dp__menu_content_wrapper[data-v-629e70a5]{display:flex}.dp__menu_content_wrapper[data-dp-mobile][data-v-629e70a5]{flex-direction:column-reverse}.dp--menu-content-wrapper-collapsed[data-v-629e70a5]{flex-direction:column-reverse}.dp__calendar_header[data-v-629e70a5]{position:relative;display:flex;justify-content:center;align-items:center;color:var(--dp-text-color);white-space:nowrap;font-weight:bold}.dp__calendar_header_item[data-v-629e70a5]{text-align:center;flex-grow:1;height:var(--dp-cell-size);padding:var(--dp-cell-padding);width:var(--dp-cell-size);box-sizing:border-box}.dp__calendar_row[data-v-629e70a5]{display:flex;justify-content:center;align-items:center;margin:var(--dp-row-margin)}.dp__calendar_item[data-v-629e70a5]{text-align:center;flex-grow:1;box-sizing:border-box;color:var(--dp-text-color)}.dp__calendar[data-v-629e70a5]{position:relative}.dp__calendar_header_cell[data-v-629e70a5]{border-bottom:thin solid var(--dp-border-color);padding:var(--dp-calendar-header-cell-padding)}.dp__cell_inner[data-v-629e70a5]{display:flex;align-items:center;text-align:center;justify-content:center;border-radius:var(--dp-cell-border-radius);height:var(--dp-cell-size);padding:var(--dp-cell-padding);width:var(--dp-cell-size);border:1px solid rgba(0,0,0,0);box-sizing:border-box;position:relative}.dp__cell_inner[data-v-629e70a5]:hover{transition:all .2s}.dp__cell_auto_range_start[data-v-629e70a5],.dp__date_hover_start[data-v-629e70a5]:hover,.dp__range_start[data-v-629e70a5]{border-end-end-radius:0;border-start-end-radius:0}.dp__cell_auto_range_end[data-v-629e70a5],.dp__date_hover_end[data-v-629e70a5]:hover,.dp__range_end[data-v-629e70a5]{border-end-start-radius:0;border-start-start-radius:0}.dp__range_end[data-v-629e70a5],.dp__range_start[data-v-629e70a5],.dp__active_date[data-v-629e70a5]{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp__date_hover_end[data-v-629e70a5]:hover,.dp__date_hover_start[data-v-629e70a5]:hover,.dp__date_hover[data-v-629e70a5]:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.dp__cell_offset[data-v-629e70a5]{color:var(--dp-secondary-color)}.dp__cell_disabled[data-v-629e70a5]{color:var(--dp-secondary-color);cursor:not-allowed}.dp__range_between[data-v-629e70a5]{background:var(--dp-range-between-dates-background-color);color:var(--dp-range-between-dates-text-color);border-radius:0;border:1px solid var(--dp-range-between-border-color)}.dp__range_between_week[data-v-629e70a5]{background:var(--dp-primary-color);color:var(--dp-primary-text-color);border-radius:0;border-top:1px solid var(--dp-primary-color);border-bottom:1px solid var(--dp-primary-color)}.dp__today[data-v-629e70a5]{border:1px solid var(--dp-primary-color)}.dp__week_num[data-v-629e70a5]{color:var(--dp-secondary-color);text-align:center}.dp__cell_auto_range[data-v-629e70a5]{border-radius:0;border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color)}.dp__cell_auto_range_start[data-v-629e70a5]{border-start-start-radius:var(--dp-cell-border-radius);border-end-start-radius:var(--dp-cell-border-radius);border-inline-start:1px dashed var(--dp-primary-color);border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color)}.dp__cell_auto_range_end[data-v-629e70a5]{border-start-end-radius:var(--dp-cell-border-radius);border-end-end-radius:var(--dp-cell-border-radius);border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color);border-inline-end:1px dashed var(--dp-primary-color)}.dp__calendar_header_separator[data-v-629e70a5]{width:100%;height:1px;background:var(--dp-border-color)}.dp__calendar_next[data-v-629e70a5]{margin-inline-start:var(--dp-multi-calendars-spacing)}.dp__marker_line[data-v-629e70a5],.dp__marker_dot[data-v-629e70a5]{height:5px;background-color:var(--dp-marker-color);position:absolute;bottom:0}.dp__marker_dot[data-v-629e70a5]{width:5px;border-radius:50%;left:50%;transform:translateX(-50%)}.dp__marker_line[data-v-629e70a5]{width:100%;left:0}.dp__marker_tooltip[data-v-629e70a5]{position:absolute;border-radius:var(--dp-border-radius);background-color:var(--dp-tooltip-color);padding:5px;border:1px solid var(--dp-border-color);z-index:99999;box-sizing:border-box;cursor:default}.dp__tooltip_content[data-v-629e70a5]{white-space:nowrap}.dp__tooltip_text[data-v-629e70a5]{display:flex;align-items:center;flex-flow:row nowrap;color:var(--dp-text-color)}.dp__tooltip_mark[data-v-629e70a5]{height:5px;width:5px;border-radius:50%;background-color:var(--dp-text-color);color:var(--dp-text-color);margin-inline-end:5px}.dp__arrow_bottom_tp[data-v-629e70a5]{bottom:0;height:8px;width:8px;background-color:var(--dp-tooltip-color);position:absolute;border-inline-end:1px solid var(--dp-border-color);border-bottom:1px solid var(--dp-border-color);transform:translate(-50%, 50%) rotate(45deg)}.dp__instance_calendar[data-v-629e70a5]{position:relative;width:100%}.dp__flex_display[data-dp-mobile][data-v-629e70a5]{flex-direction:column}.dp--flex-display-collapsed[data-v-629e70a5]{flex-direction:column}.dp__cell_highlight[data-v-629e70a5]{background-color:var(--dp-highlight-color)}.dp__month_year_row[data-v-629e70a5]{display:flex;align-items:center;height:var(--dp-month-year-row-height);color:var(--dp-text-color);box-sizing:border-box}.dp__inner_nav[data-v-629e70a5]{display:flex;align-items:center;justify-content:center;cursor:pointer;height:var(--dp-month-year-row-button-size);width:var(--dp-month-year-row-button-size);color:var(--dp-icon-color);text-align:center;border-radius:50%}.dp__inner_nav svg[data-v-629e70a5]{height:var(--dp-button-icon-height);width:var(--dp-button-icon-height)}.dp__inner_nav[data-v-629e70a5]:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}[dir=rtl] .dp__inner_nav[data-v-629e70a5]{transform:rotate(180deg)}.dp__inner_nav_disabled[data-v-629e70a5]:hover,.dp__inner_nav_disabled[data-v-629e70a5]{background:var(--dp-disabled-color);color:var(--dp-disabled-color-text);cursor:not-allowed}.dp--year-select[data-v-629e70a5],.dp__month_year_select[data-v-629e70a5]{text-align:center;cursor:pointer;height:var(--dp-month-year-row-height);display:flex;align-items:center;justify-content:center;border-radius:var(--dp-border-radius);box-sizing:border-box;color:var(--dp-text-color)}.dp--year-select[data-v-629e70a5]:hover,.dp__month_year_select[data-v-629e70a5]:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.dp__month_year_select[data-v-629e70a5]{width:50%}.dp--year-select[data-v-629e70a5]{width:100%}.dp__month_year_wrap[data-v-629e70a5]{display:flex;flex-direction:row;width:100%}.dp__year_disable_select[data-v-629e70a5]{justify-content:space-around}.dp--header-wrap[data-v-629e70a5]{display:flex;width:100%;flex-direction:column}.dp__overlay[data-v-629e70a5]{width:100%;background:var(--dp-background-color);transition:opacity 1s ease-out;z-index:99999;font-family:var(--dp-font-family);color:var(--dp-text-color);box-sizing:border-box}.dp--overlay-absolute[data-v-629e70a5]{position:absolute;height:100%;top:0;left:0}.dp--overlay-relative[data-v-629e70a5]{position:relative}.dp__overlay_container[data-v-629e70a5]::-webkit-scrollbar-track{box-shadow:var(--dp-scroll-bar-background);background-color:var(--dp-scroll-bar-background)}.dp__overlay_container[data-v-629e70a5]::-webkit-scrollbar{width:5px;background-color:var(--dp-scroll-bar-background)}.dp__overlay_container[data-v-629e70a5]::-webkit-scrollbar-thumb{background-color:var(--dp-scroll-bar-color);border-radius:10px}.dp__overlay[data-v-629e70a5]:focus{border:none;outline:none}.dp__container_flex[data-v-629e70a5]{display:flex}.dp__container_block[data-v-629e70a5]{display:block}.dp__overlay_container[data-v-629e70a5]{flex-direction:column;overflow-y:auto;height:var(--dp-overlay-height)}.dp__time_picker_overlay_container[data-v-629e70a5]{height:100%}.dp__overlay_row[data-v-629e70a5]{padding:0;box-sizing:border-box;display:flex;margin-inline:auto;flex-wrap:wrap;max-width:100%;width:100%;align-items:center}.dp__flex_row[data-v-629e70a5]{flex:1}.dp__overlay_col[data-v-629e70a5]{box-sizing:border-box;width:33%;padding:var(--dp-overlay-col-padding);white-space:nowrap}.dp__overlay_cell_pad[data-v-629e70a5]{padding:var(--dp-common-padding) 0}.dp__overlay_cell_active[data-v-629e70a5]{cursor:pointer;border-radius:var(--dp-border-radius);text-align:center;background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp__overlay_cell[data-v-629e70a5]{cursor:pointer;border-radius:var(--dp-border-radius);text-align:center}.dp__overlay_cell[data-v-629e70a5]:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.dp__cell_in_between[data-v-629e70a5]{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.dp__over_action_scroll[data-v-629e70a5]{right:5px;box-sizing:border-box}.dp__overlay_cell_disabled[data-v-629e70a5]{cursor:not-allowed;background:var(--dp-disabled-color)}.dp__overlay_cell_disabled[data-v-629e70a5]:hover{background:var(--dp-disabled-color)}.dp__overlay_cell_active_disabled[data-v-629e70a5]{cursor:not-allowed;background:var(--dp-primary-disabled-color)}.dp__overlay_cell_active_disabled[data-v-629e70a5]:hover{background:var(--dp-primary-disabled-color)}.dp__btn[data-v-629e70a5],.dp--qr-btn[data-v-629e70a5],.dp--time-overlay-btn[data-v-629e70a5],.dp--time-invalid[data-v-629e70a5]{border:none;font:inherit;transition:var(--dp-common-transition);line-height:normal}.dp--year-mode-picker[data-v-629e70a5]{display:flex;width:100%;align-items:center;justify-content:space-between;height:var(--dp-cell-size)}.dp--tp-wrap[data-v-629e70a5]{max-width:var(--dp-menu-min-width)}.dp--tp-wrap[data-dp-mobile][data-v-629e70a5]{max-width:100%}.dp__time_input[data-v-629e70a5]{width:100%;display:flex;align-items:center;justify-content:center;user-select:none;font-family:var(--dp-font-family);color:var(--dp-text-color)}.dp__time_col_reg_block[data-v-629e70a5]{padding:0 20px}.dp__time_col_reg_inline[data-v-629e70a5]{padding:0 10px}.dp__time_col_reg_with_button[data-v-629e70a5]{padding:0 15px}.dp__time_col_reg_with_button[data-compact~=true][data-v-629e70a5]{padding:0 5px}.dp__time_col_sec[data-v-629e70a5]{padding:0 10px}.dp__time_col_sec_with_button[data-v-629e70a5]{padding:0 5px}.dp__time_col_sec_with_button[data-collapsed~=true][data-v-629e70a5]{padding:0}.dp__time_col[data-v-629e70a5]{text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.dp__time_col_block[data-v-629e70a5]{font-size:var(--dp-time-font-size)}.dp__time_display_block[data-v-629e70a5]{padding:0 3px}.dp__time_display_inline[data-v-629e70a5]{padding:5px}.dp__time_picker_inline_container[data-v-629e70a5]{display:flex;width:100%;justify-content:center}.dp__inc_dec_button[data-v-629e70a5]{padding:5px;margin:0;height:var(--dp-time-inc-dec-button-size);width:var(--dp-time-inc-dec-button-size);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;color:var(--dp-icon-color);box-sizing:border-box}.dp__inc_dec_button svg[data-v-629e70a5]{height:var(--dp-time-inc-dec-button-size);width:var(--dp-time-inc-dec-button-size)}.dp__inc_dec_button[data-v-629e70a5]:hover{background:var(--dp-hover-color);color:var(--dp-primary-color)}.dp__time_display[data-v-629e70a5]{cursor:pointer;color:var(--dp-text-color);border-radius:var(--dp-border-radius);display:flex;align-items:center;justify-content:center}.dp__time_display[data-v-629e70a5]:hover:enabled{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.dp__inc_dec_button_inline[data-v-629e70a5]{width:100%;padding:0;height:8px;cursor:pointer;display:flex;align-items:center}.dp__inc_dec_button_disabled[data-v-629e70a5],.dp__inc_dec_button_disabled[data-v-629e70a5]:hover{background:var(--dp-disabled-color);color:var(--dp-disabled-color-text);cursor:not-allowed}.dp__pm_am_button[data-v-629e70a5]{background:var(--dp-primary-color);color:var(--dp-primary-text-color);border:none;padding:var(--dp-common-padding);border-radius:var(--dp-border-radius);cursor:pointer}.dp__pm_am_button[data-compact~=true][data-v-629e70a5]{padding:7px}.dp__tp_inline_btn_bar[data-v-629e70a5]{width:100%;height:4px;background-color:var(--dp-secondary-color);transition:var(--dp-common-transition);border-collapse:collapse}.dp__tp_inline_btn_top:hover .dp__tp_btn_in_r[data-v-629e70a5]{background-color:var(--dp-primary-color);transform:rotate(12deg) scale(1.15) translateY(-2px)}.dp__tp_inline_btn_top:hover .dp__tp_btn_in_l[data-v-629e70a5]{background-color:var(--dp-primary-color);transform:rotate(-12deg) scale(1.15) translateY(-2px)}.dp__tp_inline_btn_bottom:hover .dp__tp_btn_in_r[data-v-629e70a5]{background-color:var(--dp-primary-color);transform:rotate(-12deg) scale(1.15) translateY(-2px)}.dp__tp_inline_btn_bottom:hover .dp__tp_btn_in_l[data-v-629e70a5]{background-color:var(--dp-primary-color);transform:rotate(12deg) scale(1.15) translateY(-2px)}.dp--time-overlay-btn[data-v-629e70a5]{background:none}.dp--time-invalid[data-v-629e70a5]{background-color:var(--dp-disabled-color)}.dp__action_row[data-v-629e70a5]{display:flex;align-items:center;width:100%;padding:var(--dp-action-row-padding);box-sizing:border-box;color:var(--dp-text-color);flex-flow:row nowrap}.dp__action_row svg[data-v-629e70a5]{height:var(--dp-button-icon-height);width:auto}.dp__selection_preview[data-v-629e70a5]{display:block;color:var(--dp-text-color);font-size:var(--dp-preview-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dp__action_buttons[data-v-629e70a5]{display:flex;flex:0;white-space:nowrap;align-items:center;justify-content:flex-end;margin-inline-start:auto}.dp__action_button[data-v-629e70a5]{display:inline-flex;align-items:center;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:var(--dp-action-buttons-padding);line-height:var(--dp-action-button-height);margin-inline-start:3px;height:var(--dp-action-button-height);cursor:pointer;border-radius:var(--dp-border-radius);font-size:var(--dp-preview-font-size);font-family:var(--dp-font-family)}.dp__action_cancel[data-v-629e70a5]{color:var(--dp-text-color);border:1px solid var(--dp-border-color)}.dp__action_cancel[data-v-629e70a5]:hover{border-color:var(--dp-primary-color);transition:var(--dp-action-row-transtion)}.dp__action_buttons .dp__action_select[data-v-629e70a5]{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp__action_buttons .dp__action_select[data-v-629e70a5]:hover{background:var(--dp-primary-color);transition:var(--dp-action-row-transtion)}.dp__action_buttons .dp__action_select[data-v-629e70a5]:disabled{background:var(--dp-primary-disabled-color);cursor:not-allowed}.dp-quarter-picker-wrap[data-v-629e70a5]{display:flex;flex-direction:column;height:100%;min-width:var(--dp-menu-min-width)}.dp--qr-btn-disabled[data-v-629e70a5]{cursor:not-allowed;background:var(--dp-disabled-color)}.dp--qr-btn-disabled[data-v-629e70a5]:hover{background:var(--dp-disabled-color)}.dp--qr-btn[data-v-629e70a5]{width:100%;padding:var(--dp-common-padding)}.dp--qr-btn[data-v-629e70a5]:not(.dp--highlighted,.dp--qr-btn-active,.dp--qr-btn-disabled,.dp--qr-btn-between){background:none}.dp--qr-btn[data-v-629e70a5]:hover:not(.dp--qr-btn-active,.dp--qr-btn-disabled){background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.dp--quarter-items[data-v-629e70a5]{display:flex;flex-direction:column;flex:1;width:100%;height:100%;justify-content:space-evenly}.dp--qr-btn-active[data-v-629e70a5]{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp--qr-btn-between[data-v-629e70a5]{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}[data-v-629e70a5]:root{--dp-common-transition: all 0.1s ease-in;--dp-menu-padding: 6px 8px;--dp-animation-duration: 0.1s;--dp-menu-appear-transition-timing: cubic-bezier(.4, 0, 1, 1);--dp-transition-timing: ease-out;--dp-action-row-transtion: all 0.2s ease-in;--dp-font-family: -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Open Sans", "Helvetica Neue", sans-serif;--dp-border-radius: 4px;--dp-cell-border-radius: 4px;--dp-transition-length: 22px;--dp-transition-timing-general: 0.1s;--dp-button-height: 35px;--dp-month-year-row-height: 35px;--dp-month-year-row-button-size: 25px;--dp-button-icon-height: 20px;--dp-calendar-wrap-padding: 0 5px;--dp-cell-size: 35px;--dp-cell-padding: 5px;--dp-common-padding: 10px;--dp-input-icon-padding: 35px;--dp-input-padding: 6px 30px 6px 12px;--dp-menu-min-width: 260px;--dp-action-buttons-padding: 1px 6px;--dp-row-margin: 5px 0;--dp-calendar-header-cell-padding: 0.5rem;--dp-multi-calendars-spacing: 10px;--dp-overlay-col-padding: 3px;--dp-time-inc-dec-button-size: 32px;--dp-font-size: 1rem;--dp-preview-font-size: 0.8rem;--dp-time-font-size: 2rem;--dp-action-button-height: 22px;--dp-action-row-padding: 8px;--dp-direction: ltr}.dp__theme_dark[data-v-629e70a5]{--dp-background-color: #212121;--dp-text-color: #fff;--dp-hover-color: #484848;--dp-hover-text-color: #fff;--dp-hover-icon-color: #959595;--dp-primary-color: #005cb2;--dp-primary-disabled-color: #61a8ea;--dp-primary-text-color: #fff;--dp-secondary-color: #a9a9a9;--dp-border-color: #2d2d2d;--dp-menu-border-color: #2d2d2d;--dp-border-color-hover: #aaaeb7;--dp-border-color-focus: #aaaeb7;--dp-disabled-color: #737373;--dp-disabled-color-text: #d0d0d0;--dp-scroll-bar-background: #212121;--dp-scroll-bar-color: #484848;--dp-success-color: #00701a;--dp-success-color-disabled: #428f59;--dp-icon-color: #959595;--dp-danger-color: #e53935;--dp-marker-color: #e53935;--dp-tooltip-color: #3e3e3e;--dp-highlight-color: rgb(0 92 178 / 20%);--dp-range-between-dates-background-color: var(--dp-hover-color, #484848);--dp-range-between-dates-text-color: var(--dp-hover-text-color, #fff);--dp-range-between-border-color: var(--dp-hover-color, #fff);--dp-loader: 5px solid #005cb2}.dp__theme_light[data-v-629e70a5]{--dp-background-color: #fff;--dp-text-color: #212121;--dp-hover-color: #f3f3f3;--dp-hover-text-color: #212121;--dp-hover-icon-color: #959595;--dp-primary-color: #1976d2;--dp-primary-disabled-color: #6bacea;--dp-primary-text-color: #fff;--dp-secondary-color: #c0c4cc;--dp-border-color: #ddd;--dp-menu-border-color: #ddd;--dp-border-color-hover: #aaaeb7;--dp-border-color-focus: #aaaeb7;--dp-disabled-color: #f6f6f6;--dp-scroll-bar-background: #f3f3f3;--dp-scroll-bar-color: #959595;--dp-success-color: #76d275;--dp-success-color-disabled: #a3d9b1;--dp-icon-color: #959595;--dp-danger-color: #ff6f60;--dp-marker-color: #ff6f60;--dp-tooltip-color: #fafafa;--dp-disabled-color-text: #8e8e8e;--dp-highlight-color: rgb(25 118 210 / 10%);--dp-range-between-dates-background-color: var(--dp-hover-color, #f3f3f3);--dp-range-between-dates-text-color: var(--dp-hover-text-color, #212121);--dp-range-between-border-color: var(--dp-hover-color, #f3f3f3);--dp-loader: 5px solid #1976d2}.dp__flex[data-v-629e70a5]{display:flex;align-items:center}.dp__btn[data-v-629e70a5]{background:none}.dp__main[data-v-629e70a5]{font-family:var(--dp-font-family);user-select:none;box-sizing:border-box;position:relative;width:100%}.dp__main[data-v-629e70a5] *{direction:var(--dp-direction, ltr)}.dp__pointer[data-v-629e70a5]{cursor:pointer}.dp__icon[data-v-629e70a5]{stroke:currentcolor;fill:currentcolor}.dp__button[data-v-629e70a5]{width:100%;text-align:center;color:var(--dp-icon-color);cursor:pointer;display:flex;align-items:center;place-content:center center;padding:var(--dp-common-padding);box-sizing:border-box;height:var(--dp-button-height)}.dp__button.dp__overlay_action[data-v-629e70a5]{position:absolute;bottom:0}.dp__button[data-v-629e70a5]:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.dp__button svg[data-v-629e70a5]{height:var(--dp-button-icon-height);width:auto}.dp__button_bottom[data-v-629e70a5]{border-bottom-left-radius:var(--dp-border-radius);border-bottom-right-radius:var(--dp-border-radius)}.dp__flex_display[data-v-629e70a5]{display:flex}.dp__flex_display_with_input[data-v-629e70a5]{flex-direction:column;align-items:flex-start}.dp__relative[data-v-629e70a5]{position:relative}.calendar-next-enter-active[data-v-629e70a5],.calendar-next-leave-active[data-v-629e70a5],.calendar-prev-enter-active[data-v-629e70a5],.calendar-prev-leave-active[data-v-629e70a5]{transition:all var(--dp-transition-timing-general) ease-out}.calendar-next-enter-from[data-v-629e70a5]{opacity:0;transform:translateX(var(--dp-transition-length))}.calendar-next-leave-to[data-v-629e70a5]{opacity:0;transform:translateX(calc(var(--dp-transition-length) * -1))}.calendar-prev-enter-from[data-v-629e70a5]{opacity:0;transform:translateX(calc(var(--dp-transition-length) * -1))}.calendar-prev-leave-to[data-v-629e70a5]{opacity:0;transform:translateX(var(--dp-transition-length))}.dp-menu-appear-bottom-enter-active[data-v-629e70a5],.dp-menu-appear-bottom-leave-active[data-v-629e70a5],.dp-menu-appear-top-enter-active[data-v-629e70a5],.dp-menu-appear-top-leave-active[data-v-629e70a5],.dp-slide-up-enter-active[data-v-629e70a5],.dp-slide-up-leave-active[data-v-629e70a5],.dp-slide-down-enter-active[data-v-629e70a5],.dp-slide-down-leave-active[data-v-629e70a5]{transition:all var(--dp-animation-duration) var(--dp-transition-timing)}.dp-menu-appear-top-enter-from[data-v-629e70a5],.dp-menu-appear-top-leave-to[data-v-629e70a5],.dp-slide-down-leave-to[data-v-629e70a5],.dp-slide-up-enter-from[data-v-629e70a5]{opacity:0;transform:translateY(var(--dp-transition-length))}.dp-menu-appear-bottom-enter-from[data-v-629e70a5],.dp-menu-appear-bottom-leave-to[data-v-629e70a5],.dp-slide-down-enter-from[data-v-629e70a5],.dp-slide-up-leave-to[data-v-629e70a5]{opacity:0;transform:translateY(calc(var(--dp-transition-length) * -1))}.dp--arrow-btn-nav[data-v-629e70a5]{transition:var(--dp-common-transition)}.dp--highlighted[data-v-629e70a5]{background-color:var(--dp-highlight-color)}.dp--hidden-el[data-v-629e70a5]{visibility:hidden}/*# sourceMappingURL=main.css.map *//**
2
- * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
3
- * SPDX-License-Identifier: AGPL-3.0-or-later
4
- *//**
5
- * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
6
- * SPDX-License-Identifier: AGPL-3.0-or-later
7
- *//*
8
- * Ensure proper alignment of the vue material icons
9
- */.material-design-icon[data-v-629e70a5] {
10
- display: flex;
11
- align-self: center;
12
- justify-self: center;
13
- align-items: center;
14
- justify-content: center;
15
- }.vue-date-time-picker[data-v-629e70a5] {
16
- --dp-border-radius: var(--border-radius-element);
17
- --dp-input-icon-padding: var(--default-clickable-area);
18
- }.vue-date-time-picker .vue-date-time-picker__timezone[data-v-629e70a5] {
19
- min-width: unset;
20
- width: 100%;
21
- }.vue-date-time-picker[data-v-629e70a5] .icon-vue {
22
- opacity: 1 !important;
23
- }.vue-date-time-picker[data-v-629e70a5] .dp--tp-wrap,
24
- .vue-date-time-picker[data-v-629e70a5] .dp__action_extra {
25
- padding: var(--dp-menu-padding);
26
- padding-top: 0;
27
- }.vue-date-time-picker[data-v-629e70a5] .dp__overlay.dp--overlay-absolute {
28
- padding: var(--dp-menu-padding);
29
- }.vue-date-time-picker[data-v-629e70a5] .dp__overlay.dp--overlay-absolute .dp__btn.dp__button.dp__button_bottom {
30
- inset-block-end: 6px;
31
- }.vue-date-time-picker[data-v-629e70a5] .dp__btn.dp__button.dp__button_bottom,
32
- .vue-date-time-picker[data-v-629e70a5] .dp--tp-wrap .dp__button {
33
- width: 100%;
34
- }.vue-date-time-picker[data-v-629e70a5] .dp__btn.dp__button.dp__overlay_action {
35
- width: calc(100% - 16px);
36
- }.vue-date-time-picker[data-v-629e70a5] input {
37
- padding-inline-start: var(--dp-input-icon-padding) !important;
38
- }.vue-date-time-picker[data-v-629e70a5] .dp__btn {
39
- padding: calc((var(--default-clickable-area) - 20px) / 2);
40
- margin: 0;
41
- }.vue-date-time-picker[data-v-629e70a5] .dp__inner_nav {
42
- height: fit-content;
43
- width: fit-content;
44
- }.vue-date-time-picker[data-v-629e70a5] .dp--header-wrap .dp__btn:not(.dp__button_bottom),
45
- .vue-date-time-picker[data-v-629e70a5] .dp__time_col .dp__btn {
46
- background-color: var(--color-main-background);
47
- }.vue-date-time-picker[data-v-629e70a5] .dp--header-wrap .dp__btn:not(.dp__button_bottom):hover,
48
- .vue-date-time-picker[data-v-629e70a5] .dp__time_col .dp__btn:hover {
49
- background-color: var(--color-background-hover);
50
- }.vue-date-time-picker[data-v-629e70a5] .dp__month_year_select {
51
- flex: 1;
52
- }.vue-date-time-picker[data-v-629e70a5] .dp--time-overlay-btn {
53
- font-size: calc(2 * var(--default-font-size)) !important;
54
- }.vue-date-time-picker[data-v-629e70a5] .dp__time_input .dp__time_col_reg_block {
55
- padding: 0 calc(4 * var(--default-grid-baseline));
56
- }.vue-date-time-picker.dp__theme_dark[data-v-629e70a5], .vue-date-time-picker.dp__theme_light[data-v-629e70a5],
57
- .vue-date-time-picker[data-v-629e70a5] .dp__theme_dark,
58
- .vue-date-time-picker[data-v-629e70a5] .dp__theme_light {
59
- --dp-background-color: var(--color-main-background);
60
- --dp-text-color: var(--color-main-text);
61
- --dp-hover-color: var(--color-background-hover);
62
- --dp-hover-text-color: var(--color-main-text);
63
- --dp-hover-icon-color: var(--color-main-text);
64
- --dp-primary-color: var(--color-primary-element);
65
- --dp-primary-disabled-color: var(--color-primary-element-hover);
66
- --dp-primary-text-color: var(--color-primary-element-text);
67
- --dp-secondary-color: var(--color-text-maxcontrast);
68
- --dp-border-color: var(--color-border);
69
- --dp-menu-border-color: var(--color-border-dark);
70
- --dp-border-color-hover: var(--color-border-maxcontrast);
71
- --dp-border-color-focus: var(--color-border-maxcontrast);
72
- --dp-disabled-color: var(--color-background-dark);
73
- --dp-disabled-color-text: var(--color-text-maxcontrast);
74
- --dp-scroll-bar-background: var(--color-scrollbar);
75
- --dp-scroll-bar-color: var(--color-scrollbar);
76
- --dp-success-color: var(--color-success);
77
- --dp-success-color-disabled: var(--color-success-hover);
78
- --dp-icon-color: var(--color-main-text);
79
- --dp-danger-color: var(--color-error);
80
- --dp-marker-color: var(--color-error);
81
- --dp-tooltip-color: var(--color-main-text);
82
- --dp-highlight-color: var(--color-main-text);
83
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcActionText-DJWBefhJ.mjs","sources":["../../src/components/NcActionText/NcActionText.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"action\" :role=\"isInSemanticMenu && 'presentation'\">\n\t\t<span class=\"action-text\"\n\t\t\t@click=\"onClick\">\n\t\t\t<!-- @slot Manually provide icon -->\n\t\t\t<slot name=\"icon\">\n\t\t\t\t<span v-if=\"icon !== ''\"\n\t\t\t\t\t:class=\"[isIconUrl ? 'action-text__icon--url' : icon]\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t:style=\"{ backgroundImage: isIconUrl ? `url(${icon})` : null }\"\n\t\t\t\t\tclass=\"action-text__icon\" />\n\t\t\t</slot>\n\n\t\t\t<!-- long text with name -->\n\t\t\t<span v-if=\"name\"\n\t\t\t\tclass=\"action-text__longtext-wrapper\">\n\t\t\t\t<strong class=\"action-text__name\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</strong>\n\t\t\t\t<br>\n\t\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t\t<span class=\"action-text__longtext\" v-text=\"text\" />\n\t\t\t</span>\n\n\t\t\t<!-- long text only -->\n\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t<span v-else-if=\"isLongText\"\n\t\t\t\tclass=\"action-text__longtext\"\n\t\t\t\tv-text=\"text\" />\n\n\t\t\t<!-- default text display -->\n\t\t\t<span v-else class=\"action-text__text\">{{ text }}</span>\n\n\t\t\t<!-- fake slot to gather inner text -->\n\t\t\t<slot v-if=\"false\" />\n\t\t</span>\n\t</li>\n</template>\n\n<script>\nimport ActionTextMixin from '../../mixins/actionText.js'\nimport { NC_ACTIONS_IS_SEMANTIC_MENU } from '../NcActions/useNcActions.ts'\n\nexport default {\n\tname: 'NcActionText',\n\n\tmixins: [ActionTextMixin],\n\n\tinject: {\n\t\tisInSemanticMenu: {\n\t\t\tfrom: NC_ACTIONS_IS_SEMANTIC_MENU,\n\t\t\tdefault: false,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../../assets/action.scss' as *;\n@include action-active;\n@include action-item('text');\n@include action--disabled;\n\n.action-text {\n\t&,\n\tspan {\n\t\tcursor: default;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_createElementVNode","_renderSlot","_normalizeClass","_normalizeStyle","_createCommentVNode","_openBlock","_toDisplayString"],"mappings":";;;;AAkDA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,QAAQ,CAAC,eAAe;AAAA,EAExB,QAAQ;AAAA,IACP,kBAAkB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AACF;AA7DA,MAAA,aAAA,CAAA,MAAA;;EAAA,KAAA;AAAA,EAoBI,OAAM;;AACE,MAAA,aAAA,EAAA,OAAM,oBAAmB;AArBrC,MAAA,aAAA,CAAA,aAAA;AAAA,MAAA,aAAA,CAAA,aAAA;;EAAA,KAAA;AAAA,EAsCgB,OAAM;;;sBAhCrBA,mBAqCK,MAAA;AAAA,IArCD,OAAM;AAAA,IAAU,MAAM,SAAgB,oBAAA;AAAA;IACzCC,mBAmCO,QAAA;AAAA,MAnCD,OAAM;AAAA,MACV,gDAAO,KAAO,WAAA,KAAA,QAAA,GAAA,IAAA;AAAA;MAEfC,WAMO,yBANP,MAMO;AAAA,QALM,KAAI,SAAA,mBAAhBF,mBAI6B,QAAA;AAAA,UAfjC,KAAA;AAAA,UAYM,OAZNG,eAYc,CAAA,CAAA,KAAA,YAAuC,2BAAA,KAAA,IAAI,GAG9C,mBAAmB,CAAA;AAAA,UAFzB,eAAY;AAAA,UACX,OAdNC,eAAA,EAAA,iBAcgC,KAAS,YAAA,OAAU,KAAI,IAAA,MAAA,KAAA,CAAA;AAAA,uBAdvDC,mBAAA,IAAA,IAAA;AAAA;MAmBe,KAAI,QAAhBC,aAAAN,mBASO,QATP,YASO;AAAA,QAPNC,mBAES,UAFT,YAESM,gBADL,KAAI,IAAA,GAAA,CAAA;AAAA,kCAERN,mBAAI,MAAA,MAAA,MAAA,EAAA;AAAA,QAGJA,mBAAoD,QAAA;AAAA,UAA9C,OAAM;AAAA,UA3BhB,aA2BwCM,gBAAa,KAAD,IAAA;AAAA,QA3BpD,GAAA,MAAA,GAAA,UAAA;AAAA,YAiCoB,KAAU,2BAA3BP,mBAEiB,QAAA;AAAA,QAnCpB,KAAA;AAAA,QAkCI,OAAM;AAAA,QAlCV,aAmCIO,gBAAa,KAAD,IAAA;AAAA,MAnChB,GAAA,MAAA,GAAA,UAAA,mBAsCGP,mBAAwD,QAAxD,YAAwDO,gBAAd,KAAI,IAAA,GAAA,CAAA;AAAA,MAtCjDF,mBAAA,IAAA,IAAA;AAAA;EAAA,GAAA,GAAA,UAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcAppContent-B2qF2-YG.mjs","sources":["../../src/utils/appName.ts","../../src/components/NcAppContent/NcAppDetailsToggle.vue","../../src/components/NcAppContent/NcAppContent.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.ts'\n\nlet realAppName = 'missing-app-name'\n\ntry {\n\trealAppName = appName\n} catch {\n\tlogger.error('The `@nextcloud/vue` library was used without setting / replacing the `appName`.')\n}\n\nexport const APP_NAME = realAppName\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { mdiArrowRight } from '@mdi/js'\nimport { emit } from '@nextcloud/event-bus'\nimport { onBeforeUnmount, watch } from 'vue'\nimport NcButton from '../NcButton/index.ts'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/index.ts'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nconst isMobile = useIsMobile()\nwatch(isMobile, toggleAppNavigationButton, { immediate: true })\n\nonBeforeUnmount(() => {\n\tif (isMobile.value) {\n\t\ttoggleAppNavigationButton(false)\n\t}\n})\n\n/**\n * Toggle the app navigation button and hide it if needed.\n *\n * @param hide - if true the navigation toggle is visually hidden\n */\nfunction toggleAppNavigationButton(hide = true) {\n\tconst appNavigationToggle = document.querySelector<HTMLElement>('.app-navigation .app-navigation-toggle')\n\tif (appNavigationToggle) {\n\t\tappNavigationToggle.style.display = hide ? 'none' : ''\n\n\t\t// If we hide the NavigationToggle, we need to make sure the Navigation is also closed\n\t\tif (hide === true) {\n\t\t\temit('toggle-navigation', { open: false })\n\t\t}\n\t}\n}\n</script>\n\n<template>\n\t<NcButton :aria-label=\"t('Go back to the list')\"\n\t\tclass=\"app-details-toggle\"\n\t\t:class=\"{ 'app-details-toggle--mobile': isMobile }\"\n\t\t:title=\"t('Go back to the list')\"\n\t\tvariant=\"tertiary\">\n\t\t<template #icon>\n\t\t\t<NcIconSvgWrapper directional :path=\"mdiArrowRight\" />\n\t\t</template>\n\t</NcButton>\n</template>\n\n<style lang=\"scss\" scoped>\n.app-details-toggle {\n\tposition: sticky;\n\twidth: var(--default-clickable-area);\n\theight: var(--default-clickable-area);\n\tpadding: $icon-margin;\n\tcursor: pointer;\n\topacity: .6;\n\ttransform: rotate(180deg);\n\tbackground-color: var(--color-main-background);\n\tz-index: 2000;\n\n\ttop: var(--app-navigation-padding);\n\t// Navigation Toggle button width + 2 paddings around\n\tinset-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\n\t&--mobile {\n\t\t// There is no NavigationToggle button\n\t\tinset-inline-start: var(--app-navigation-padding);\n\t}\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis components provides a wrapper around the main app's content.\n\nSingle-column layouts can just use the default slot. A resizable column\ncan be added by providing content to the named slot `list`.\n\n### CSS variables\nIn the css section some css variables are declared and will be available for\nall the children of the NcAppContent component\n\n### Examples\n\n#### Usage: Single-column content\n```vue\n<template>\n\t<NcAppContent>\n\t\t<h2>Single-column main content</h2>\n\t</NcAppContent>\n</template>\n```\n\n#### Usage: Two resizable columns\n```vue\n<template>\n\t<NcAppContent>\n\t\t<template #list>\n\t\t\t<div>Resizable list content</div>\n\t\t</template>\n\n\t\t<div>Main content</div>\n\t</NcAppContent>\n</template>\n```\n\n#### Overriding Defaults\nThe default, min and max sizes (in percent) of the resizable list column can be overridden.\nThe list size must be between the min and the max width value.\n\n```\n<NcAppContent\n\t:list-size=\"35\"\n\t:list-min-width=\"20\"\n\t:list-max-width=\"45\"\n>...</NcAppContent>\n```\n\n#### Usage: Custom document title\nFor accessibility reasons every document should have a `h1` heading,\nthis is visually hidden, but required for a semantically correct document.\nYou can use your app name or current view for the heading.\n\nAdditionally you can set a custom document title, e.g. to show the current status.\n\n```vue\n<template>\n\t<NcAppContent :pageHeading=\"heading ? 'Heading' : undefined\" :pageTitle=\"title ? 'Title' : undefined\" >\n\t\t<NcCheckboxRadioSwitch type=\"switch\" :checked.sync=\"title\">\n\t\t\tToggle title\n\t\t</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch type=\"switch\" :checked.sync=\"heading\">\n\t\t\tToggle Heading\n\t\t</NcCheckboxRadioSwitch>\n\t\t<NcButton @click=\"reset\">Reset</NcButton>\n\t</NcAppContent>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\theading: false,\n\t\t\ttitle: false,\n\t\t}\n\t},\n\tmethods: {\n\t\treset() {\n\t\t\tthis.heading = false\n\t\t\tthis.title = false\n\t\t\tdocument.title = ''\n\t\t},\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<main id=\"app-content-vue\" class=\"app-content no-snapper\" :class=\"{ 'app-content--has-list': hasList }\">\n\t\t<h1 v-if=\"pageHeading\" class=\"hidden-visually\">\n\t\t\t{{ pageHeading }}\n\t\t</h1>\n\n\t\t<template v-if=\"hasList\">\n\t\t\t<!-- Mobile view does not allow resizeable panes -->\n\t\t\t<div v-if=\"isMobile || layout === 'no-split'\"\n\t\t\t\tclass=\"app-content-wrapper app-content-wrapper--no-split\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'app-content-wrapper--show-details': showDetails,\n\t\t\t\t\t'app-content-wrapper--show-list': !showDetails,\n\t\t\t\t\t'app-content-wrapper--mobile': isMobile,}\">\n\t\t\t\t<NcAppDetailsToggle v-if=\"showDetails\" @click.stop.prevent=\"hideDetails\" />\n\n\t\t\t\t<div v-show=\"!showDetails\">\n\t\t\t\t\t<slot name=\"list\" />\n\t\t\t\t</div>\n\t\t\t\t<slot v-if=\"showDetails\" />\n\t\t\t</div>\n\t\t\t<div v-else-if=\"layout === 'vertical-split' || layout === 'horizontal-split'\" class=\"app-content-wrapper\">\n\t\t\t\t<Splitpanes :horizontal=\"layout === 'horizontal-split'\"\n\t\t\t\t\tclass=\"default-theme\"\n\t\t\t\t\t:class=\"{ 'splitpanes--horizontal': layout === 'horizontal-split',\n\t\t\t\t\t\t'splitpanes--vertical': layout === 'vertical-split'\n\t\t\t\t\t}\"\n\t\t\t\t\t:rtl=\"isRtl\"\n\t\t\t\t\t@resized=\"handlePaneResize\">\n\t\t\t\t\t<Pane class=\"splitpanes__pane-list\"\n\t\t\t\t\t\t:size=\"listPaneSize || paneDefaults.list.size\"\n\t\t\t\t\t\t:min-size=\"paneDefaults.list.min\"\n\t\t\t\t\t\t:max-size=\"paneDefaults.list.max\">\n\t\t\t\t\t\t<!-- @slot Provide a list to the app content -->\n\t\t\t\t\t\t<slot name=\"list\" />\n\t\t\t\t\t</Pane>\n\n\t\t\t\t\t<Pane class=\"splitpanes__pane-details\"\n\t\t\t\t\t\t:size=\"detailsPaneSize\"\n\t\t\t\t\t\t:min-size=\"paneDefaults.details.min\"\n\t\t\t\t\t\t:max-size=\"paneDefaults.details.max\">\n\t\t\t\t\t\t<!-- @slot Provide the main content to the app content -->\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</Pane>\n\t\t\t\t</Splitpanes>\n\t\t\t</div>\n\t\t</template>\n\t\t<!-- @slot Provide the main content to the app content -->\n\t\t<slot v-if=\"!hasList\" />\n\t</main>\n</template>\n\n<script>\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { emit } from '@nextcloud/event-bus'\nimport { loadState } from '@nextcloud/initial-state'\nimport { useSwipe } from '@vueuse/core'\nimport { Splitpanes, Pane } from 'splitpanes'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { APP_NAME } from '../../utils/appName.ts'\nimport { isRtl } from '../../utils/rtl.ts'\n\nimport NcAppDetailsToggle from './NcAppDetailsToggle.vue'\n\nimport 'splitpanes/dist/splitpanes.css'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\nconst { name: productName } = loadState('theming', 'data', { name: 'Nextcloud' })\nconst activeApp = loadState('core', 'active-app', APP_NAME)\nconst localizedAppName = loadState('core', 'apps', []).find(app => app.id === activeApp)?.name ?? APP_NAME\n\n/**\n * App content container to be used for the main content of your app\n *\n */\nexport default {\n\tname: 'NcAppContent',\n\n\tcomponents: {\n\t\tNcAppDetailsToggle,\n\t\tPane,\n\t\tSplitpanes,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Allows to disable the control by swipe of the app navigation open state.\n\t\t */\n\t\tdisableSwipe: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Allows you to set the default width of the resizable list in % on vertical-split\n\t\t * Allows you to set the default height of the resizable list in % on horizontal-split\n\t\t * Must be between listMinWidth and listMaxWidth\n\t\t */\n\t\tlistSize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\n\t\t/**\n\t\t * Allows you to set the minimum width of the list column in % on vertical-split\n\t\t * Allows you to set the minimum height of the list column in % on horizontal-split\n\t\t */\n\t\tlistMinWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 15,\n\t\t},\n\n\t\t/**\n\t\t * Allows you to set the maximum width of the list column in % on vertical-split\n\t\t * Allows you to set the maximum height of the list column in % on horizontal-split\n\t\t */\n\t\tlistMaxWidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 40,\n\t\t},\n\n\t\t/**\n\t\t * Specify the config key for the pane config sizes\n\t\t * Default is the global var appName if you use the webpack-vue-config\n\t\t */\n\t\tpaneConfigKey: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * When in mobile view, only the list or the details are shown.\n\t\t *\n\t\t * If you provide a list, you need to provide a variable\n\t\t * that will be set to true by the user when an element of\n\t\t * the list gets selected. The details will then show a back\n\t\t * arrow to return to the list that will update this prop to false.\n\t\t */\n\t\tshowDetails: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Specify the `<h1>` page heading\n\t\t */\n\t\tpageHeading: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Content layout used when there is a list together with content:\n\t\t * - `vertical-split` - a 2-column layout with list and default content separated vertically\n\t\t * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n\t\t * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n\t\t * On mobile screen `no-split` layout is forced.\n\t\t */\n\t\tlayout: {\n\t\t\ttype: String,\n\t\t\tdefault: 'vertical-split',\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['no-split', 'vertical-split', 'horizontal-split'].includes(value)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Allow setting the page's `<title>`\n\t\t *\n\t\t * If a page heading is set it defaults to `{pageHeading} - {appName} - {productName}` e.g. `Favorites - Files - Nextcloud`.\n\t\t * When the page heading and the app name is the same only one is used, e.g. `Files - Files - Nextcloud` is shown as `Files - Nextcloud`.\n\t\t * When setting the prop then the following format will be used: `{pageTitle} - {pageHeading || appName} - {productName}`\n\t\t */\n\t\tpageTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'update:showDetails',\n\t\t'resize-list',\n\t\t'resize:list',\n\t],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t\tisRtl,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcontentHeight: 0,\n\t\t\thasList: false,\n\t\t\thasContent: false,\n\t\t\tswiping: {},\n\t\t\tlistPaneSize: this.restorePaneConfig(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpaneConfigID() {\n\t\t\t// If provided, let's use it\n\t\t\tif (this.paneConfigKey !== '') {\n\t\t\t\treturn `pane-list-size-${this.paneConfigKey}`\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Using the webpack-vue-config, appName is a global variable\n\t\t\t\t// This will throw a ReferenceError when the global variable is missing\n\t\t\t\t// In that case either you provide paneConfigKey or else it fallback\n\t\t\t\t// to a global storage key\n\t\t\t\treturn `pane-list-size-${APP_NAME}`\n\t\t\t} catch (e) {\n\t\t\t\tconsole.info('[INFO] AppContent:', 'falling back to global nextcloud pane config')\n\t\t\t\treturn 'pane-list-size-nextcloud'\n\t\t\t}\n\t\t},\n\n\t\tdetailsPaneSize() {\n\t\t\tif (this.listPaneSize) {\n\t\t\t\treturn 100 - this.listPaneSize\n\t\t\t}\n\t\t\treturn this.paneDefaults.details.size\n\t\t},\n\n\t\tpaneDefaults() {\n\t\t\treturn {\n\t\t\t\tlist: {\n\t\t\t\t\tsize: this.listSize,\n\t\t\t\t\tmin: this.listMinWidth,\n\t\t\t\t\tmax: this.listMaxWidth,\n\t\t\t\t},\n\n\t\t\t\t// set the inverse values of the details column\n\t\t\t\t// based on the provided (or default) values of the list column\n\t\t\t\tdetails: {\n\t\t\t\t\tsize: 100 - this.listSize,\n\t\t\t\t\tmin: 100 - this.listMaxWidth,\n\t\t\t\t\tmax: 100 - this.listMinWidth,\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\trealPageTitle() {\n\t\t\tconst entries = new Set()\n\t\t\tif (this.pageTitle) {\n\t\t\t\tentries.add(this.pageTitle)\n\t\t\t}\n\t\t\tif (this.pageHeading) {\n\t\t\t\tentries.add(this.pageHeading)\n\t\t\t}\n\t\t\tif (entries.size === 0) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tif (entries.size < 2) {\n\t\t\t\t// Only add if not already pageHeading and pageTitle are included\n\t\t\t\tentries.add(localizedAppName)\n\t\t\t}\n\t\t\tentries.add(productName)\n\t\t\treturn [...entries.values()].join(' - ')\n\t\t},\n\t},\n\n\twatch: {\n\t\trealPageTitle: {\n\t\t\timmediate: true,\n\t\t\thandler() {\n\t\t\t\tif (this.realPageTitle !== null) {\n\t\t\t\t\tdocument.title = this.realPageTitle\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tupdated() {\n\t\tthis.checkSlots()\n\t},\n\n\tmounted() {\n\t\tif (!this.disableSwipe) {\n\t\t\tthis.swiping = useSwipe(this.$el, {\n\t\t\t\tonSwipeEnd: this.handleSwipe,\n\t\t\t})\n\t\t}\n\n\t\tthis.checkSlots()\n\t\tthis.restorePaneConfig()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * handle the swipe event\n\t\t *\n\t\t * @param {TouchEvent} e The touch event\n\t\t * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n\t\t */\n\t\thandleSwipe(e, direction) {\n\t\t\tconst minSwipeX = 70\n\t\t\tconst touchZone = 300\n\t\t\tif (Math.abs(this.swiping.lengthX) > minSwipeX) {\n\t\t\t\tif (this.swiping.coordsStart.x < (touchZone / 2) && direction === 'right') {\n\t\t\t\t\temit('toggle-navigation', {\n\t\t\t\t\t\topen: true,\n\t\t\t\t\t})\n\t\t\t\t} else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === 'left') {\n\t\t\t\t\temit('toggle-navigation', {\n\t\t\t\t\t\topen: false,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thandlePaneResize(event) {\n\t\t\tconst listPaneSize = parseInt(event.panes[0].size, 10)\n\t\t\tbrowserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize))\n\t\t\tthis.listPaneSize = listPaneSize\n\t\t\t/**\n\t\t\t * Emitted when the list pane is resized by the user\n\t\t\t *\n\t\t\t * @deprecated listen on `resize-list` instead\n\t\t\t */\n\t\t\tthis.$emit('resize:list', { size: listPaneSize })\n\t\t\t/**\n\t\t\t * Emitted when the list pane is resized by the user\n\t\t\t */\n\t\t\tthis.$emit('resize-list', { size: listPaneSize })\n\t\t\tconsole.debug('AppContent pane config', listPaneSize)\n\t\t},\n\n\t\t// $slots is not reactive, we need to update this manually\n\t\tcheckSlots() {\n\t\t\tthis.hasList = !!this.$slots.list\n\t\t\tthis.hasContent = !!this.$slots.default\n\t\t},\n\n\t\t// browserStorage is not reactive, we need to update this manually\n\t\trestorePaneConfig() {\n\t\t\tconst listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10)\n\t\t\tif (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n\t\t\t\tconsole.debug('AppContent pane config', listPaneSize)\n\t\t\t\tthis.listPaneSize = listPaneSize\n\t\t\t\treturn listPaneSize\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * The user clicked the back arrow from the details view\n\t\t */\n\t\thideDetails() {\n\t\t\tthis.$emit('update:showDetails', false)\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\n.app-content {\n\tposition: initial;\n\tz-index: 1000;\n\tflex-basis: 100vw;\n\theight: 100%;\n\t// Overriding server styles TODO: cleanup!\n\tmargin: 0 !important;\n\tbackground-color: var(--color-main-background);\n\tmin-width: 0;\n\n\t&:not(.app-content--has-list) {\n\t\toverflow: auto;\n\t}\n}\n\n.app-content-wrapper {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n// Mobile list/details handling\n.app-content-wrapper--no-split {\n\t&.app-content-wrapper--show-list :deep() {\n\t\t.app-content-list {\n\t\t\tdisplay: flex;\n\t\t}\n\t\t.app-content-details {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\t&.app-content-wrapper--show-details :deep() {\n\t\t.app-content-list {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.app-content-details {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n:deep(.splitpanes.default-theme) {\n\t.app-content-list {\n\t\tmax-width: none;\n\t\t/* Thin scrollbar is hard to catch on resizable columns */\n\t\tscrollbar-width: auto;\n\t}\n\n\t.splitpanes__pane {\n\t\tbackground-color: transparent;\n\t\ttransition: none;\n\n\t\t&-list {\n\t\t\tmin-width: 300px;\n\t\t\tposition: sticky;\n\n\t\t\t@media only screen and (width < $breakpoint-mobile) {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t&-details {\n\t\t\toverflow-y: auto;\n\n\t\t\t@media only screen and (width < $breakpoint-mobile) {\n\t\t\t\tmin-width: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.splitpanes__splitter {\n\t\tbackground-color: var(--color-main-background);\n\t\t&::before, &::after {\n\t\t\tbackground-color: var(--color-border);\n\t\t}\n\t}\n\n\t&.splitpanes--vertical .splitpanes__splitter {\n\t\tborder-inline-start: 1px solid var(--color-border);\n\t}\n\n\t&.splitpanes--horizontal .splitpanes__splitter {\n\t\tborder-top: 1px solid var(--color-border);\n\t}\n}\n\n.app-content-wrapper--show-list {\n\t:deep(.app-content-list) {\n\t\tmax-width: none;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_toDisplayString","_createCommentVNode","_openBlock","_Fragment","_createBlock","_withModifiers","_createElementVNode","_renderSlot","_createVNode","_withCtx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcAppSidebarTab-DG51ajic.mjs","sources":["../../src/components/NcAppSidebarTab/NcAppSidebarTab.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<!-- Follows the tab aria guidelines\n\thttps://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html -->\n\n<template>\n\t<section :id=\"`tab-${id}`\"\n\t\t:class=\"{'app-sidebar__tab--active': isActive}\"\n\t\t:aria-hidden=\"!isActive\"\n\t\t:aria-label=\"isTablistShown() ? undefined : name\"\n\t\t:aria-labelledby=\"isTablistShown() ? `tab-button-${id}` : undefined\"\n\t\tclass=\"app-sidebar__tab\"\n\t\t:tabindex=\"isTablistShown() ? 0 : -1\"\n\t\t:role=\"isTablistShown() ? 'tabpanel' : undefined\"\n\t\t@scroll=\"onScroll\">\n\t\t<h3 class=\"hidden-visually\">\n\t\t\t{{ name }}\n\t\t</h3>\n\t\t<!-- @slot Tab panel content -->\n\t\t<slot />\n\t</section>\n</template>\n\n<script>\nexport default {\n\tname: 'NcAppSidebarTab',\n\n\tinject: ['registerTab', 'unregisterTab', 'getActiveTab', 'isTablistShown'],\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Tab name in navigation\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Tab icon's html class in navigation. Used if #icon slot is not provided\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Tab order in navigation. If not provided, name is used.\n\t\t */\n\t\torder: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\n\temits: [\n\t\t'bottom-reached',\n\t\t'scroll',\n\t],\n\n\texpose: ['id', 'name', 'icon', 'order', 'renderIcon'],\n\n\tcomputed: {\n\t\t/**\n\t\t * Is the current tab an active tab, that should be shown?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisActive() {\n\t\t\treturn this.getActiveTab() === this.id\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// As the tab is created - register it in the tabs component\n\t\t// It's better to provide computed tab object, not component instance as it easy\n\t\tthis.registerTab(this)\n\t},\n\n\tbeforeUnmount() {\n\t\t// Unregister the tab from tabs\n\t\tthis.unregisterTab(this.id)\n\t},\n\n\tmethods: {\n\t\tonScroll(event) {\n\t\t\t// Are we scrolled to the very bottom ?\n\t\t\tif (this.$el.scrollHeight - this.$el.scrollTop === this.$el.clientHeight) {\n\t\t\t\t/**\n\t\t\t\t * Bottom scroll is reached\n\t\t\t\t *\n\t\t\t\t * @property {Event} event Native scroll event\n\t\t\t\t */\n\t\t\t\tthis.$emit('bottom-reached', event)\n\t\t\t}\n\t\t\t/**\n\t\t\t * @property {Event} event Native scroll event\n\t\t\t */\n\t\t\tthis.$emit('scroll', event)\n\t\t},\n\n\t\t/**\n\t\t * Render tab's icon slot if any\n\t\t *\n\t\t * @return {import('vue').VNode[]}\n\t\t */\n\t\trenderIcon() {\n\t\t\treturn this.$slots.icon?.()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.app-sidebar__tab {\n\tdisplay: none;\n\tpadding: 10px;\n\tmin-height: 100%; // fill available height\n\tmax-height: 100%; // scroll inside\n\theight: 100%;\n\toverflow: auto;\n\n\t&:focus {\n\t\tborder-color: var(--color-primary-element);\n\t\tbox-shadow: 0 0 0.2em var(--color-primary-element);\n\t\toutline: 0;\n\t}\n\n\t&--active {\n\t\tdisplay: block;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_renderSlot"],"mappings":";;AA2BA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,QAAQ,CAAC,eAAe,iBAAiB,gBAAgB,gBAAgB;AAAA,EAEzE,OAAO;AAAA,IACN,IAAI;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,IACA;AAAA,EACA;AAAA,EAED,QAAQ,CAAC,MAAM,QAAQ,QAAQ,SAAS,YAAY;AAAA,EAEpD,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMT,WAAW;AACV,aAAO,KAAK,aAAe,MAAI,KAAK;AAAA,IACpC;AAAA,EACD;AAAA,EAED,UAAU;AAGT,SAAK,YAAY,IAAI;AAAA,EACrB;AAAA,EAED,gBAAgB;AAEf,SAAK,cAAc,KAAK,EAAE;AAAA,EAC1B;AAAA,EAED,SAAS;AAAA,IACR,SAAS,OAAO;AAEf,UAAI,KAAK,IAAI,eAAe,KAAK,IAAI,cAAc,KAAK,IAAI,cAAc;AAMzE,aAAK,MAAM,kBAAkB,KAAK;AAAA,MACnC;AAIA,WAAK,MAAM,UAAU,KAAK;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,aAAa;AACZ,aAAO,KAAK,OAAO,OAAI;AAAA,IACvB;AAAA,EACD;AACF;AAtHA,MAAA,aAAA,CAAA,MAAA,eAAA,cAAA,mBAAA,YAAA,MAAA;AAkBM,MAAA,aAAA,EAAA,OAAM,kBAAiB;;sBAT5BA,mBAcU,WAAA;AAAA,IAdA,WAAW,OAAE,EAAA;AAAA,IACrB,OAVHC,eAAA,CAAA,EAAA,4BAUuC,SAAQ,SAAA,GAIvC,kBAAkB,CAAA;AAAA,IAHvB,gBAAc,SAAQ;AAAA,IACtB,cAAY,SAAA,eAAmB,IAAA,SAAY,OAAI;AAAA,IAC/C,mBAAiB,SAAA,mBAAiC,cAAA,OAAA,EAAE,KAAK;AAAA,IAEzD,UAAU,SAAc,eAAA,IAAA,IAAA;AAAA,IACxB,MAAM,SAAc,eAAA,IAAA,aAAkB;AAAA,IACtC,iDAAQ,SAAQ,YAAA,SAAA,SAAA,GAAA,IAAA;AAAA;IACjBC,mBAEK,MAFL,YAEKC,gBADD,OAAI,IAAA,GAAA,CAAA;AAAA,IAGRC,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,EAtBV,GAAA,IAAA,UAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcAvatar-BadoF6cb.mjs","sources":["../../src/mixins/userStatus.js","../../src/components/NcAvatar/NcAvatar.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\thasStatus: false,\n\t\t\tuserStatus: {\n\t\t\t\tstatus: null,\n\t\t\t\tmessage: null,\n\t\t\t\ticon: null,\n\t\t\t},\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Fetches the user-status from the server\n\t\t *\n\t\t * @param {string} userId UserId of the user to fetch the status for\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync fetchUserStatus(userId) {\n\t\t\tif (!userId) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst capabilities = getCapabilities()\n\t\t\tif (!Object.prototype.hasOwnProperty.call(capabilities, 'user_status') || !capabilities.user_status.enabled) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// User status endpoint is not available for guests.\n\t\t\tif (!getCurrentUser()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.get(generateOcsUrl('apps/user_status/api/v1/statuses/{userId}', { userId }))\n\t\t\t\tconst {\n\t\t\t\t\tstatus,\n\t\t\t\t\tmessage,\n\t\t\t\t\ticon,\n\t\t\t\t} = data.ocs.data\n\t\t\t\tthis.userStatus.status = status\n\t\t\t\tthis.userStatus.message = message || ''\n\t\t\t\tthis.userStatus.icon = icon || ''\n\t\t\t\tthis.hasStatus = true\n\t\t\t} catch (e) {\n\t\t\t\tif (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n\t\t\t\t\t// User just has no status set, so don't log it\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t},\n\t},\n}\n","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### Basic user avatar\n\n```vue\n\t<NcAvatar user=\"willywonka\" display-name=\"Willy Wonka\" />\n```\n\n### Avatar with image\n\n```vue\n\t<NcAvatar url=\"favicon-touch.png\" />\n```\n\n### Avatar with material design icon\n\n```\n<template>\n\t<NcAvatar>\n\t\t<template #icon>\n\t\t\t<AccountMultiple :size=\"20\" />\n\t\t</template>\n\t</NcAvatar>\n</template>\n<script>\nimport AccountMultiple from 'vue-material-design-icons/AccountMultiple.vue'\n\nexport default {\n\tcomponents: {\n\t\tAccountMultiple,\n\t},\n}\n</script>\n```\n\n### Avatar with preloaded status\n```\n<template>\n<div class=\"grid\">\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:size=\"44\"\n\t\t:preloaded-user-status=\"status.online\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:size=\"44\"\n\t\t:preloaded-user-status=\"status.away\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:size=\"44\"\n\t\t:preloaded-user-status=\"status.dnd\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:size=\"44\"\n\t\t:preloaded-user-status=\"status.custom\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:preloaded-user-status=\"status.online\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:preloaded-user-status=\"status.away\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:preloaded-user-status=\"status.dnd\">\n\t</NcAvatar>\n\t<NcAvatar user=\"janedoe\"\n\t\tdisplay-name=\"Jane Doe\"\n\t\t:preloaded-user-status=\"status.custom\">\n\t</NcAvatar>\n</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tstatus: {\n\t\t\t\tonline: {\n\t\t\t\t\ticon: '',\n\t\t\t\t\tstatus: 'online',\n\t\t\t\t\tmessage: 'Available',\n\t\t\t\t},\n\t\t\t\taway: {\n\t\t\t\t\ticon: '',\n\t\t\t\t\tstatus: 'away',\n\t\t\t\t\tmessage: 'Away',\n\t\t\t\t},\n\t\t\t\tdnd: {\n\t\t\t\t\ticon: '',\n\t\t\t\t\tstatus: 'dnd',\n\t\t\t\t\tmessage: 'Busy',\n\t\t\t\t},\n\t\t\t\tcustom: {\n\t\t\t\t\ticon: '📆',\n\t\t\t\t\tstatus: 'online',\n\t\t\t\t\tmessage: 'In a meeting',\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n}\n</script>\n<style>\n\t.grid {\n\t\twidth: fit-content;\n\t\tdisplay: grid;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tgrid-template-columns: repeat(4, 1fr);\n\t}\n</style>\n```\n\n### Avatar for non-users\n\n```vue\n\t<NcAvatar display-name=\"Robbie Hyeon-Jeong\" :is-no-user=\"true\" />\n```\n\n### Avatar on complex background\n\n```\n<template>\n\t<div class=\"avatar-background\">\n\t\t<NcAvatar class=\"avatar\" :is-no-user=\"true\" display-name=\"Cecilia Rohese\" />\n\t</div>\n</template>\n<style scoped>\n.avatar-background {\n\twidth: 80px;\n\theight: 60px;\n\tbackground: linear-gradient(to bottom, #0057b8 0%, #0057b8 49.99%, #ffd700 50%, #ffd700 100%);\n}\n\n.avatar {\n\tmargin: 15px 25px;\n}\n</style>\n```\n\n</docs>\n<template>\n\t<span ref=\"main\"\n\t\tv-click-outside=\"closeMenu\"\n\t\t:title=\"tooltip\"\n\t\t:class=\"{\n\t\t\t'avatardiv--unknown': userDoesNotExist,\n\t\t\t'avatardiv--with-menu': hasMenu,\n\t\t\t'avatardiv--with-menu-loading': contactsMenuLoading\n\t\t}\"\n\t\t:style=\"avatarStyle\"\n\t\tclass=\"avatardiv popovermenu-wrapper\"\n\t\t:tabindex=\"hasMenu ? '0' : undefined\"\n\t\t:aria-label=\"avatarAriaLabel\"\n\t\t:role=\"hasMenu ? 'button' : undefined\"\n\t\tv-on=\"hasMenu ? {\n\t\t\tclick: toggleMenu,\n\t\t\tkeydown: toggleMenu,\n\t\t} : {}\">\n\t\t<!-- @slot Icon slot -->\n\t\t<slot name=\"icon\">\n\t\t\t<!-- Avatar icon or image -->\n\t\t\t<span v-if=\"iconClass\" :class=\"iconClass\" class=\"avatar-class-icon\" />\n\t\t\t<img v-else-if=\"isAvatarLoaded && !userDoesNotExist\"\n\t\t\t\t:src=\"avatarUrlLoaded\"\n\t\t\t\t:srcset=\"avatarSrcSetLoaded\"\n\t\t\t\talt=\"\">\n\t\t</slot>\n\n\t\t<!-- Contact menu -->\n\t\t<!-- We show a button if the menu is not loaded yet. -->\n\t\t<NcButton v-if=\"hasMenu && menu.length === 0\"\n\t\t\t:aria-label=\"avatarAriaLabel\"\n\t\t\tclass=\"action-item action-item__menutoggle\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click=\"toggleMenu\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon v-if=\"contactsMenuLoading\" />\n\t\t\t\t<DotsHorizontal v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcActions v-else-if=\"hasMenu\"\n\t\t\tv-model:open=\"contactsMenuOpenState\"\n\t\t\t:aria-label=\"avatarAriaLabel\"\n\t\t\t:container=\"menuContainer\"\n\t\t\tforce-menu\n\t\t\tmanual-open\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click=\"toggleMenu\">\n\t\t\t<component :is=\"item.ncActionComponent\"\n\t\t\t\tv-for=\"(item, key) in menu\"\n\t\t\t\t:key=\"key\"\n\t\t\t\tv-bind=\"item.ncActionComponentProps\">\n\t\t\t\t<template v-if=\"item.iconSvg\" #icon>\n\t\t\t\t\t<NcIconSvgWrapper :svg=\"item.iconSvg\" />\n\t\t\t\t</template>\n\t\t\t\t{{ item.text }}\n\t\t\t</component>\n\t\t\t<template v-if=\"contactsMenuLoading\" #icon>\n\t\t\t\t<NcLoadingIcon />\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Avatar status -->\n\t\t<span v-if=\"showUserStatusIconOnAvatar\" class=\"avatardiv__user-status avatardiv__user-status--icon\">\n\t\t\t{{ userStatus.icon }}\n\t\t</span>\n\t\t<NcUserStatusIcon v-else-if=\"canDisplayUserStatus\"\n\t\t\tclass=\"avatardiv__user-status\"\n\t\t\t:status=\"userStatus.status\"\n\t\t\t:aria-hidden=\"String(hasMenu)\" />\n\n\t\t<!-- Show the letter if no avatar nor icon class -->\n\t\t<span v-if=\"showInitials\"\n\t\t\t:style=\"initialsWrapperStyle\"\n\t\t\tclass=\"avatardiv__initials-wrapper\">\n\t\t\t<span :style=\"initialsStyle\" class=\"avatardiv__initials\">\n\t\t\t\t{{ initials }}\n\t\t\t</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport NcActions from '../NcActions/index.js'\nimport NcActionLink from '../NcActionLink/index.js'\nimport NcActionRouter from '../NcActionRouter/index.js'\nimport NcActionText from '../NcActionText/index.js'\nimport NcButton from '../NcButton/index.ts'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/index.ts'\nimport NcLoadingIcon from '../NcLoadingIcon/index.ts'\nimport NcUserStatusIcon from '../NcUserStatusIcon/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\nimport usernameToColor from '../../functions/usernameToColor/index.js'\nimport { getEnabledContactsMenuActions } from '../../functions/contactsMenu/index.ts'\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\nimport { userStatus } from '../../mixins/index.js'\nimport { t } from '../../l10n.js'\nimport { getRoute } from '../../components/NcRichText/autolink.ts'\nimport logger from '../../utils/logger.ts'\n\nimport axios from '@nextcloud/axios'\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { generateUrl } from '@nextcloud/router'\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nconst browserStorage = getBuilder('nextcloud').persist().build()\n\n/**\n * @param {string} userId The id of the user\n */\nfunction getUserHasAvatar(userId) {\n\tconst flag = browserStorage.getItem('user-has-avatar.' + userId)\n\tif (typeof flag === 'string') {\n\t\treturn Boolean(flag)\n\t}\n\treturn null\n}\n\n/**\n * @param {string} userId The id of the user\n * @param {boolean} flag Has the user an avatar\n */\nfunction setUserHasAvatar(userId, flag) {\n\tif (userId) {\n\t\tbrowserStorage.setItem('user-has-avatar.' + userId, flag)\n\t}\n}\n\nexport default {\n\tname: 'NcAvatar',\n\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tDotsHorizontal,\n\t\tNcActions,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t\tNcLoadingIcon,\n\t\tNcUserStatusIcon,\n\t},\n\tmixins: [userStatus],\n\tprops: {\n\t\t/**\n\t\t * Set a custom url to the avatar image\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a css icon-class for an icon to be used instead of the avatar.\n\t\t */\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set the user id to fetch the avatar\n\t\t * either the url, user or displayName property must be defined\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Do not show the user status on the avatar.\n\t\t */\n\t\thideStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n\t\t */\n\t\tverboseStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * When the user status was preloaded via another source it can be handed in with this property to save the request.\n\t\t * If this property is not set the status will be fetched automatically.\n\t\t * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n\t\t */\n\t\tpreloadedUserStatus: {\n\t\t\ttype: Object,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Is the user a guest user (then we have to user a different endpoint)\n\t\t */\n\t\tisGuest: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Set a display name that will be rendered as a tooltip\n\t\t * either the url, user or displayName property must be defined\n\t\t * specify just the displayname to generate a placeholder avatar without\n\t\t * trying to fetch the avatar based on the user id\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/**\n\t\t * Set a size in px for the rendered avatar\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 32,\n\t\t},\n\t\t/**\n\t\t * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n\t\t */\n\t\tnoPlaceholder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Disable the tooltip\n\t\t */\n\t\tdisableTooltip: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Disable the menu\n\t\t */\n\t\tdisableMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declares a custom tooltip when not null\n\t\t * Fallback will be the displayName\n\t\t *\n\t\t * requires disableTooltip not to be set to true\n\t\t */\n\t\ttooltipMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Declares username is not a user's name, when true.\n\t\t * Prevents loading user's avatar from server and forces generating colored initials,\n\t\t * i.e. if the user is a group\n\t\t */\n\t\tisNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover menu container\n\t\t */\n\t\tmenuContainer: {\n\t\t\ttype: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavatarUrlLoaded: null,\n\t\t\tavatarSrcSetLoaded: null,\n\t\t\tuserDoesNotExist: false,\n\t\t\tisAvatarLoaded: false,\n\t\t\tisMenuLoaded: false,\n\t\t\tcontactsMenuLoading: false,\n\t\t\tcontactsMenuData: {},\n\t\t\tcontactsMenuActions: [],\n\t\t\tcontactsMenuOpenState: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tavatarAriaLabel() {\n\t\t\t// aria-label is only allowed on interactive elements\n\t\t\tif (!this.hasMenu) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n\t\t\t\treturn t('Avatar of {displayName}, {status}', { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) })\n\t\t\t}\n\t\t\treturn t('Avatar of {displayName}', { displayName: this.displayName ?? this.user })\n\t\t},\n\t\tcanDisplayUserStatus() {\n\t\t\treturn !this.hideStatus\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& ['online', 'away', 'busy', 'dnd'].includes(this.userStatus.status)\n\t\t},\n\t\tshowUserStatusIconOnAvatar() {\n\t\t\treturn !this.hideStatus\n\t\t\t\t&& !this.verboseStatus\n\t\t\t\t&& this.hasStatus\n\t\t\t\t&& this.userStatus.status !== 'dnd'\n\t\t\t\t&& this.userStatus.icon\n\t\t},\n\t\t/**\n\t\t * The user identifier, either the display name if set or the user property\n\t\t * If both properties are not set an empty string is returned\n\t\t */\n\t\tuserIdentifier() {\n\t\t\tif (this.isDisplayNameDefined) {\n\t\t\t\treturn this.displayName\n\t\t\t}\n\t\t\tif (this.isUserDefined) {\n\t\t\t\treturn this.user\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tisUserDefined() {\n\t\t\treturn typeof this.user !== 'undefined'\n\t\t},\n\t\tisDisplayNameDefined() {\n\t\t\treturn typeof this.displayName !== 'undefined'\n\t\t},\n\t\tisUrlDefined() {\n\t\t\treturn typeof this.url !== 'undefined'\n\t\t},\n\t\thasMenu() {\n\t\t\tif (this.disableMenu) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.isMenuLoaded) {\n\t\t\t\treturn this.menu.length > 0\n\t\t\t}\n\t\t\treturn !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url)\n\t\t},\n\n\t\t/**\n\t\t * True if initials should be shown as the user icon fallback\n\t\t */\n\t\tshowInitials() {\n\t\t\treturn !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon?.())\n\t\t},\n\n\t\tavatarStyle() {\n\t\t\treturn {\n\t\t\t\t'--size': this.size + 'px',\n\t\t\t\tlineHeight: this.showInitials ? (this.size + 'px') : 0,\n\t\t\t\tfontSize: Math.round(this.size * 0.45) + 'px',\n\t\t\t}\n\t\t},\n\t\tinitialsWrapperStyle() {\n\t\t\tconst { r, g, b } = usernameToColor(this.userIdentifier)\n\t\t\treturn {\n\t\t\t\tbackgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`,\n\t\t\t}\n\t\t},\n\t\tinitialsStyle() {\n\t\t\tconst { r, g, b } = usernameToColor(this.userIdentifier)\n\t\t\treturn {\n\t\t\t\tcolor: `rgb(${r}, ${g}, ${b})`,\n\t\t\t}\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.disableTooltip) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tif (this.tooltipMessage) {\n\t\t\t\treturn this.tooltipMessage\n\t\t\t}\n\n\t\t\treturn this.displayName\n\t\t},\n\n\t\t/**\n\t\t * Get the (max. two) initials of the user as uppcase string\n\t\t */\n\t\tinitials() {\n\t\t\tlet initials = '?'\n\t\t\tif (this.showInitials) {\n\t\t\t\tconst user = this.userIdentifier.trim()\n\t\t\t\tif (user === '') {\n\t\t\t\t\treturn initials\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Filtered user name, without special characters so only letters and numbers are allowed (prevent e.g. '(' as an initial)\n\t\t\t\t * \\p{L}: Letters of all languages\n\t\t\t\t * \\p{N}: Numbers of all languages\n\t\t\t\t * \\s: White space for breaking the string\n\t\t\t\t * @type {string}\n\t\t\t\t */\n\t\t\t\tconst filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu)\n\t\t\t\tif (filteredChars == null) {\n\t\t\t\t\treturn initials\n\t\t\t\t}\n\n\t\t\t\tconst filtered = filteredChars.join('')\n\t\t\t\tconst idx = filtered.lastIndexOf(' ')\n\t\t\t\tinitials = String.fromCodePoint(filtered.codePointAt(0))\n\t\t\t\tif (idx !== -1) {\n\t\t\t\t\tinitials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)))\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn initials.toLocaleUpperCase()\n\t\t},\n\t\tmenu() {\n\t\t\tconst actions = this.contactsMenuActions.map((item) => {\n\t\t\t\tconst route = getRoute(this.$router, item.hyperlink)\n\t\t\t\treturn {\n\t\t\t\t\tncActionComponent: route ? NcActionRouter : NcActionLink,\n\t\t\t\t\tncActionComponentProps: route\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\tto: route,\n\t\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\thref: item.hyperlink,\n\t\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\t},\n\t\t\t\t\ttext: item.title,\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tfor (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n\t\t\t\ttry {\n\t\t\t\t\tactions.push({\n\t\t\t\t\t\tncActionComponent: NcActionButton,\n\t\t\t\t\t\tncActionComponentProps: {\n\t\t\t\t\t\t\tonClick: () => action.callback(this.contactsMenuData),\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttext: action.displayName(this.contactsMenuData),\n\t\t\t\t\t\ticonSvg: action.iconSvg(this.contactsMenuData),\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error(`Failed to render ContactsMenu action ${action.id}`, {\n\t\t\t\t\t\terror,\n\t\t\t\t\t\taction,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @param {string} html The HTML to escape\n\t\t\t */\n\t\t\tfunction escape(html) {\n\t\t\t\tconst text = document.createTextNode(html)\n\t\t\t\tconst p = document.createElement('p')\n\t\t\t\tp.appendChild(text)\n\t\t\t\treturn p.innerHTML\n\t\t\t}\n\n\t\t\tif (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n\t\t\t\t// NcAction's URL icons are inverted in dark mode, so we need to pass SVG image in the icon slot\n\t\t\t\tconst emojiIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" text-anchor=\"middle\" style=\"dominant-baseline: central; font-size: 85%\">${escape(this.userStatus.icon)}</text>\n\t\t\t\t</svg>`\n\t\t\t\treturn [{\n\t\t\t\t\tncActionComponent: NcActionText,\n\t\t\t\t\tncActionComponentProps: {},\n\t\t\t\t\ticonSvg: this.userStatus.icon ? emojiIcon : undefined,\n\t\t\t\t\ttext: `${this.userStatus.message}`,\n\t\t\t\t}].concat(actions)\n\t\t\t}\n\n\t\t\treturn actions\n\t\t},\n\t},\n\n\twatch: {\n\t\turl() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t\tuser() {\n\t\t\tthis.userDoesNotExist = false\n\t\t\tthis.isMenuLoaded = false\n\t\t\tthis.loadAvatarUrl()\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.loadAvatarUrl()\n\t\tsubscribe('settings:avatar:updated', this.loadAvatarUrl)\n\t\tsubscribe('settings:display-name:updated', this.loadAvatarUrl)\n\t\tif (!this.hideStatus && this.user && !this.isNoUser) {\n\t\t\tif (!this.preloadedUserStatus) {\n\t\t\t\tthis.fetchUserStatus(this.user)\n\t\t\t} else {\n\t\t\t\tthis.userStatus.status = this.preloadedUserStatus.status || ''\n\t\t\t\tthis.userStatus.message = this.preloadedUserStatus.message || ''\n\t\t\t\tthis.userStatus.icon = this.preloadedUserStatus.icon || ''\n\t\t\t\tthis.hasStatus = this.preloadedUserStatus.status !== null\n\t\t\t}\n\t\t\tsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tbeforeUnmount() {\n\t\tunsubscribe('settings:avatar:updated', this.loadAvatarUrl)\n\t\tunsubscribe('settings:display-name:updated', this.loadAvatarUrl)\n\t\tif (!this.hideStatus && this.user && !this.isNoUser) {\n\t\t\tunsubscribe('user_status:status.updated', this.handleUserStatusUpdated)\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\t\thandleUserStatusUpdated(state) {\n\t\t\tif (this.user === state.userId) {\n\t\t\t\tthis.userStatus = {\n\t\t\t\t\tstatus: state.status,\n\t\t\t\t\ticon: state.icon,\n\t\t\t\t\tmessage: state.message,\n\t\t\t\t}\n\t\t\t\tthis.hasStatus = state.status !== null\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the popover menu on click or enter\n\t\t * @param {KeyboardEvent|MouseEvent} event the UI event\n\t\t */\n\t\tasync toggleMenu(event) {\n\t\t\tif (event.type === 'keydown' && event.key !== 'Enter') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!this.contactsMenuOpenState) {\n\t\t\t\tawait this.fetchContactsMenu()\n\t\t\t}\n\t\t\tthis.contactsMenuOpenState = !this.contactsMenuOpenState\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.contactsMenuOpenState = false\n\t\t},\n\t\tasync fetchContactsMenu() {\n\t\t\tthis.contactsMenuLoading = true\n\t\t\ttry {\n\t\t\t\tconst user = encodeURIComponent(this.user)\n\t\t\t\tconst { data } = await axios.post(generateUrl('contactsmenu/findOne'), `shareType=0&shareWith=${user}`)\n\t\t\t\tthis.contactsMenuData = data\n\t\t\t\tthis.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions\n\t\t\t} catch (e) {\n\t\t\t\tthis.contactsMenuOpenState = false\n\t\t\t}\n\t\t\tthis.contactsMenuLoading = false\n\t\t\tthis.isMenuLoaded = true\n\t\t},\n\n\t\t/**\n\t\t * Handle avatar loading if user or url defined\n\t\t */\n\t\tloadAvatarUrl() {\n\t\t\tthis.isAvatarLoaded = false\n\n\t\t\t/** Only run avatar image loading if either user or url property is defined */\n\t\t\tif (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass)) {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Directly use the url if defined\n\t\t\tif (this.isUrlDefined) {\n\t\t\t\tthis.updateImageIfValid(this.url)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.size <= 64) {\n\t\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, 64)\n\t\t\t\tconst srcset = [\n\t\t\t\t\tavatarUrl + ' 1x',\n\t\t\t\t\tthis.avatarUrlGenerator(this.user, 512) + ' 8x',\n\t\t\t\t].join(', ')\n\n\t\t\t\tthis.updateImageIfValid(avatarUrl, srcset)\n\t\t\t} else {\n\t\t\t\tconst avatarUrl = this.avatarUrlGenerator(this.user, 512)\n\t\t\t\tthis.updateImageIfValid(avatarUrl)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Generate an avatar url from the server's avatar endpoint\n\t\t *\n\t\t * @param {string} user the user id\n\t\t * @param {number} size the desired size\n\t\t * @return {string}\n\t\t */\n\t\tavatarUrlGenerator(user, size) {\n\t\t\tlet avatarUrl = getAvatarUrl(user, size, this.isGuest)\n\n\t\t\t// eslint-disable-next-line camelcase\n\t\t\tif (user === getCurrentUser()?.uid && typeof oc_userconfig !== 'undefined') {\n\t\t\t\tavatarUrl += '?v=' + oc_userconfig.avatar.version\n\t\t\t}\n\n\t\t\treturn avatarUrl\n\t\t},\n\n\t\t/**\n\t\t * Check if the provided url is valid and update Avatar if so\n\t\t *\n\t\t * @param {string} url the avatar url\n\t\t * @param {Array} srcset the avatar srcset\n\t\t */\n\t\tupdateImageIfValid(url, srcset = null) {\n\t\t\t// skip loading\n\t\t\tconst userHasAvatar = getUserHasAvatar(this.user)\n\t\t\tif (this.isUserDefined && typeof userHasAvatar === 'boolean') {\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tif (userHasAvatar === false) {\n\t\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst img = new Image()\n\t\t\timg.onload = () => {\n\t\t\t\tthis.avatarUrlLoaded = url\n\t\t\t\tif (srcset) {\n\t\t\t\t\tthis.avatarSrcSetLoaded = srcset\n\t\t\t\t}\n\t\t\t\tthis.isAvatarLoaded = true\n\t\t\t\t// re-get to avoid concurrent access\n\t\t\t\tsetUserHasAvatar(this.user, true)\n\t\t\t}\n\t\t\timg.onerror = () => {\n\t\t\t\tconsole.debug('Invalid avatar url', url)\n\t\t\t\t// Avatar is invalid, reset\n\t\t\t\tthis.avatarUrlLoaded = null\n\t\t\t\tthis.avatarSrcSetLoaded = null\n\n\t\t\t\tthis.userDoesNotExist = true\n\t\t\t\tthis.isAvatarLoaded = false\n\t\t\t\tsetUserHasAvatar(this.user, false)\n\t\t\t}\n\n\t\t\tif (srcset) {\n\t\t\t\timg.srcset = srcset\n\t\t\t}\n\t\t\timg.src = url\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: var(--size);\n\theight: var(--size);\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-main-background);\n\t\twhite-space: normal;\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White/black background for avatars with transparency\n\t\tbackground-color: var(--color-main-background) !important;\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t.action-item {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tinset-inline-start: 0;\n\t\t}\n\t\t:deep(.action-item__menutoggle) {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t}\n\t\t&:focus-within,\n\t\t&:hover,\n\t\t&#{&}-loading {\n\t\t\t:deep(.action-item__menutoggle) {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t:deep(.action-item__menutoggle),\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t\t:deep() {\n\t\t\t.button-vue,\n\t\t\t.button-vue__icon {\n\t\t\t\theight: var(--size);\n\t\t\t\tmin-height: var(--size);\n\t\t\t\twidth: var(--size) !important;\n\t\t\t\tmin-width: var(--size);\n\t\t\t}\n\t\t}\n\t\t& > :deep(.button-vue),\n\t\t& > :deep(.action-item .button-vue) {\n\t\t\t--button-radius: calc(var(--size) / 2);\n\t\t}\n\t}\n\n\t.avatardiv__initials-wrapper {\n\t\tdisplay: block;\n\t\theight: var(--size);\n\t\twidth: var(--size);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: calc(var(--size) / 2);\n\n\t\t.avatardiv__initials {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tinset-inline-start: 0;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.material-design-icon {\n\t\twidth: var(--size);\n\t\theight: var(--size);\n\t}\n\n\t.avatardiv__user-status {\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tinset-inline-end: -4px;\n\t\tbottom: -4px;\n\t\tmin-height: 14px;\n\t\tmin-width: 14px;\n\t\tmax-height: 18px;\n\t\tmax-width: 18px;\n\t\theight: 40%;\n\t\twidth: 40%;\n\t\tline-height: 1;\n\t\tfont-size: clamp(var(--font-size-small, 13px), 85%, var(--default-font-size));\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 16px;\n\t\tbackground-position: center;\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-element-light);\n\t\t\tbackground-color: var(--color-primary-element-light);\n\t\t}\n\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n}\n\n.avatar-class-icon {\n\tdisplay: block;\n\tborder-radius: calc(var(--size) / 2);\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n</style>\n"],"names":["ClickOutside","DotsHorizontal","_withDirectives","_openBlock","_createElementBlock","_mergeProps","_toHandlers","_renderSlot","_normalizeClass","_createCommentVNode","_createBlock","_createSlots","_withCtx","_Fragment","_renderList","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_createVNode","_normalizeStyle","_createElementVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAe,aAAA;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,QACX,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MACN;AAAA,IACJ;AAAA,EACE;AAAA,EACD,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQR,MAAM,gBAAgB,QAAQ;AAC7B,UAAI,CAAC,QAAQ;AACZ;AAAA,MACJ;AACG,YAAM,eAAe,gBAAe;AACpC,UAAI,CAAC,OAAO,UAAU,eAAe,KAAK,cAAc,aAAa,KAAK,CAAC,aAAa,YAAY,SAAS;AAC5G;AAAA,MACJ;AAGG,UAAI,CAAC,eAAc,GAAI;AACtB;AAAA,MACJ;AAEG,UAAI;AACH,cAAM,EAAE,KAAM,IAAG,MAAM,MAAM,IAAI,eAAe,6CAA6C,EAAE,QAAQ,CAAC;AACxG,cAAM;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACL,IAAQ,KAAK,IAAI;AACb,aAAK,WAAW,SAAS;AACzB,aAAK,WAAW,UAAU,WAAW;AACrC,aAAK,WAAW,OAAO,QAAQ;AAC/B,aAAK,YAAY;AAAA,MACjB,SAAQ,GAAG;AACX,YAAI,EAAE,SAAS,WAAW,OAAO,EAAE,SAAS,KAAK,KAAK,MAAM,WAAW,GAAG;AAEzE;AAAA,QACL;AACI,gBAAQ,MAAM,CAAC;AAAA,MACnB;AAAA,IACG;AAAA,EACD;AACF;;ACwMA,MAAM,iBAAiB,WAAW,WAAW,EAAE,QAAS,EAAC,MAAK;AAK9D,SAAS,iBAAiB,QAAQ;AACjC,QAAM,OAAO,eAAe,QAAQ,qBAAqB,MAAM;AAC/D,MAAI,OAAO,SAAS,UAAU;AAC7B,WAAO,QAAQ,IAAI;AAAA,EACpB;AACA,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAQ,MAAM;AACvC,MAAI,QAAQ;AACX,mBAAe,QAAQ,qBAAqB,QAAQ,IAAI;AAAA,EACzD;AACD;AAEA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,YAAY;AAAA,kBACXA;AAAAA,EACA;AAAA,EACD,YAAY;AAAA,IACX,gBAAAC;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EACD,QAAQ,CAAC,UAAU;AAAA,EACnB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKN,KAAK;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,qBAAqB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,SAAS;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,eAAe;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,gBAAgB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,gBAAgB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,UAAU;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,eAAe;AAAA,MACd,MAAM,CAAC,QAAQ,QAAQ,SAAS,OAAO;AAAA,MACvC,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EACD,OAAO;AACN,WAAO;AAAA,MACN,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,kBAAkB,CAAE;AAAA,MACpB,qBAAqB,CAAE;AAAA,MACvB,uBAAuB;AAAA,IACxB;AAAA,EACA;AAAA,EACD,UAAU;AAAA,IACT,kBAAkB;AAEjB,UAAI,CAAC,KAAK,SAAS;AAClB;AAAA,MACD;AACA,UAAI,KAAK,wBAAwB,KAAK,4BAA4B;AACjE,eAAO,EAAE,qCAAqC,EAAE,aAAa,KAAK,eAAe,KAAK,MAAM,QAAQ,kBAAkB,KAAK,WAAW,MAAM,EAAG,CAAA;AAAA,MAChJ;AACA,aAAO,EAAE,2BAA2B,EAAE,aAAa,KAAK,eAAe,KAAK,KAAM,CAAA;AAAA,IAClF;AAAA,IACD,uBAAuB;AACtB,aAAO,CAAC,KAAK,cACT,KAAK,aACL,CAAC,UAAU,QAAQ,QAAQ,KAAK,EAAE,SAAS,KAAK,WAAW,MAAM;AAAA,IACrE;AAAA,IACD,6BAA6B;AAC5B,aAAO,CAAC,KAAK,cACT,CAAC,KAAK,iBACN,KAAK,aACL,KAAK,WAAW,WAAW,SAC3B,KAAK,WAAW;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKD,iBAAiB;AAChB,UAAI,KAAK,sBAAsB;AAC9B,eAAO,KAAK;AAAA,MACb;AACA,UAAI,KAAK,eAAe;AACvB,eAAO,KAAK;AAAA,MACb;AACA,aAAO;AAAA,IACP;AAAA,IACD,gBAAgB;AACf,aAAO,OAAO,KAAK,SAAS;AAAA,IAC5B;AAAA,IACD,uBAAuB;AACtB,aAAO,OAAO,KAAK,gBAAgB;AAAA,IACnC;AAAA,IACD,eAAe;AACd,aAAO,OAAO,KAAK,QAAQ;AAAA,IAC3B;AAAA,IACD,UAAU;AACT,UAAI,KAAK,aAAa;AACrB,eAAO;AAAA,MACR;AACA,UAAI,KAAK,cAAc;AACtB,eAAO,KAAK,KAAK,SAAS;AAAA,MAC3B;AACA,aAAO,EAAE,KAAK,SAAS,eAAc,GAAI,OAAO,KAAK,oBAAoB,KAAK;AAAA,IAC9E;AAAA;AAAA;AAAA;AAAA,IAKD,eAAe;AACd,aAAO,CAAC,KAAK,iBAAiB,KAAK,oBAAoB,EAAE,KAAK,aAAa,KAAK,OAAO,OAAQ;AAAA,IAC/F;AAAA,IAED,cAAc;AACb,aAAO;AAAA,QACN,UAAU,KAAK,OAAO;AAAA,QACtB,YAAY,KAAK,eAAgB,KAAK,OAAO,OAAQ;AAAA,QACrD,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,IAAI;AAAA,MAC1C;AAAA,IACA;AAAA,IACD,uBAAuB;AACtB,YAAM,EAAE,GAAG,GAAG,EAAA,IAAM,gBAAgB,KAAK,cAAc;AACvD,aAAO;AAAA,QACN,iBAAiB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAAA,MACvC;AAAA,IACA;AAAA,IACD,gBAAgB;AACf,YAAM,EAAE,GAAG,GAAG,EAAA,IAAM,gBAAgB,KAAK,cAAc;AACvD,aAAO;AAAA,QACN,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAAA,MAC5B;AAAA,IACA;AAAA,IACD,UAAU;AACT,UAAI,KAAK,gBAAgB;AACxB,eAAO;AAAA,MACR;AACA,UAAI,KAAK,gBAAgB;AACxB,eAAO,KAAK;AAAA,MACb;AAEA,aAAO,KAAK;AAAA,IACZ;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AACV,UAAI,WAAW;AACf,UAAI,KAAK,cAAc;AACtB,cAAM,OAAO,KAAK,eAAe,KAAI;AACrC,YAAI,SAAS,IAAI;AAChB,iBAAO;AAAA,QACR;AASA,cAAM,gBAAgB,KAAK,MAAM,kBAAkB;AACnD,YAAI,iBAAiB,MAAM;AAC1B,iBAAO;AAAA,QACR;AAEA,cAAM,WAAW,cAAc,KAAK,EAAE;AACtC,cAAM,MAAM,SAAS,YAAY,GAAG;AACpC,mBAAW,OAAO,cAAc,SAAS,YAAY,CAAC,CAAC;AACvD,YAAI,QAAQ,IAAI;AACf,qBAAW,SAAS,OAAO,OAAO,cAAc,SAAS,YAAY,MAAM,CAAC,CAAC,CAAC;AAAA,QAC/E;AAAA,MACD;AACA,aAAO,SAAS,kBAAiB;AAAA,IACjC;AAAA,IACD,OAAO;AACN,YAAM,UAAU,KAAK,oBAAoB,IAAI,CAAC,SAAS;AACtD,cAAM,QAAQ,SAAS,KAAK,SAAS,KAAK,SAAS;AACnD,eAAO;AAAA,UACN,mBAAmB,QAAQ,iBAAiB;AAAA,UAC5C,wBAAwB,QACrB;AAAA,YACD,IAAI;AAAA,YACJ,MAAM,KAAK;AAAA,UACZ,IACE;AAAA,YACD,MAAM,KAAK;AAAA,YACX,MAAM,KAAK;AAAA,UACX;AAAA,UACF,MAAM,KAAK;AAAA,QACZ;AAAA,MACA,CAAA;AAED,iBAAW,UAAU,8BAA8B,KAAK,gBAAgB,GAAG;AAC1E,YAAI;AACH,kBAAQ,KAAK;AAAA,YACZ,mBAAmB;AAAA,YACnB,wBAAwB;AAAA,cACvB,SAAS,MAAM,OAAO,SAAS,KAAK,gBAAgB;AAAA,YACpD;AAAA,YACD,MAAM,OAAO,YAAY,KAAK,gBAAgB;AAAA,YAC9C,SAAS,OAAO,QAAQ,KAAK,gBAAgB;AAAA,UAC7C,CAAA;AAAA,QACA,SAAO,OAAO;AACf,iBAAO,MAAM,wCAAwC,OAAO,EAAE,IAAI;AAAA,YACjE;AAAA,YACA;AAAA,UACA,CAAA;AAAA,QACF;AAAA,MACD;AAKA,eAAS,OAAO,MAAM;AACrB,cAAM,OAAO,SAAS,eAAe,IAAI;AACzC,cAAM,IAAI,SAAS,cAAc,GAAG;AACpC,UAAE,YAAY,IAAI;AAClB,eAAO,EAAE;AAAA,MACV;AAEA,UAAI,CAAC,KAAK,eAAe,KAAK,WAAW,QAAQ,KAAK,WAAW,UAAU;AAE1E,cAAM,YAAY;AAAA,qGAC+E,OAAO,KAAK,WAAW,IAAI,CAAC;AAAA;AAE7H,eAAO,CAAC;AAAA,UACP,mBAAmB;AAAA,UACnB,wBAAwB,CAAE;AAAA,UAC1B,SAAS,KAAK,WAAW,OAAO,YAAY;AAAA,UAC5C,MAAM,GAAG,KAAK,WAAW,OAAO;AAAA,QACjC,CAAC,EAAE,OAAO,OAAO;AAAA,MAClB;AAEA,aAAO;AAAA,IACP;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN,MAAM;AACL,WAAK,mBAAmB;AACxB,WAAK,cAAa;AAAA,IAClB;AAAA,IACD,OAAO;AACN,WAAK,mBAAmB;AACxB,WAAK,eAAe;AACpB,WAAK,cAAa;AAAA,IAClB;AAAA,EACD;AAAA,EAED,UAAU;AACT,SAAK,cAAa;AAClB,cAAU,2BAA2B,KAAK,aAAa;AACvD,cAAU,iCAAiC,KAAK,aAAa;AAC7D,QAAI,CAAC,KAAK,cAAc,KAAK,QAAQ,CAAC,KAAK,UAAU;AACpD,UAAI,CAAC,KAAK,qBAAqB;AAC9B,aAAK,gBAAgB,KAAK,IAAI;AAAA,aACxB;AACN,aAAK,WAAW,SAAS,KAAK,oBAAoB,UAAU;AAC5D,aAAK,WAAW,UAAU,KAAK,oBAAoB,WAAW;AAC9D,aAAK,WAAW,OAAO,KAAK,oBAAoB,QAAQ;AACxD,aAAK,YAAY,KAAK,oBAAoB,WAAW;AAAA,MACtD;AACA,gBAAU,8BAA8B,KAAK,uBAAuB;AAAA,IACrE;AAAA,EACA;AAAA,EAED,gBAAgB;AACf,gBAAY,2BAA2B,KAAK,aAAa;AACzD,gBAAY,iCAAiC,KAAK,aAAa;AAC/D,QAAI,CAAC,KAAK,cAAc,KAAK,QAAQ,CAAC,KAAK,UAAU;AACpD,kBAAY,8BAA8B,KAAK,uBAAuB;AAAA,IACvE;AAAA,EACA;AAAA,EAED,SAAS;AAAA,IACR;AAAA,IACA,wBAAwB,OAAO;AAC9B,UAAI,KAAK,SAAS,MAAM,QAAQ;AAC/B,aAAK,aAAa;AAAA,UACjB,QAAQ,MAAM;AAAA,UACd,MAAM,MAAM;AAAA,UACZ,SAAS,MAAM;AAAA,QAChB;AACA,aAAK,YAAY,MAAM,WAAW;AAAA,MACnC;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,MAAM,WAAW,OAAO;AACvB,UAAI,MAAM,SAAS,aAAa,MAAM,QAAQ,SAAS;AACtD;AAAA,MACD;AACA,UAAI,CAAC,KAAK,uBAAuB;AAChC,cAAM,KAAK,kBAAiB;AAAA,MAC7B;AACA,WAAK,wBAAwB,CAAC,KAAK;AAAA,IACnC;AAAA,IACD,YAAY;AACX,WAAK,wBAAwB;AAAA,IAC7B;AAAA,IACD,MAAM,oBAAoB;AACzB,WAAK,sBAAsB;AAC3B,UAAI;AACH,cAAM,OAAO,mBAAmB,KAAK,IAAI;AACzC,cAAM,EAAE,KAAK,IAAI,MAAM,MAAM,KAAK,YAAY,sBAAsB,GAAG,yBAAyB,IAAI,EAAE;AACtG,aAAK,mBAAmB;AACxB,aAAK,sBAAsB,KAAK,YAAY,CAAC,KAAK,SAAS,EAAE,OAAO,KAAK,OAAO,IAAI,KAAK;AAAA,MAC1F,SAAS,GAAG;AACX,aAAK,wBAAwB;AAAA,MAC9B;AACA,WAAK,sBAAsB;AAC3B,WAAK,eAAe;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA,IAKD,gBAAgB;AACf,WAAK,iBAAiB;AAGtB,UAAI,CAAC,KAAK,iBAAiB,CAAC,KAAK,iBAAiB,KAAK,YAAY,KAAK,YAAY;AACnF,aAAK,iBAAiB;AACtB,aAAK,mBAAmB;AACxB;AAAA,MACD;AAGA,UAAI,KAAK,cAAc;AACtB,aAAK,mBAAmB,KAAK,GAAG;AAChC;AAAA,MACD;AAEA,UAAI,KAAK,QAAQ,IAAI;AACpB,cAAM,YAAY,KAAK,mBAAmB,KAAK,MAAM,EAAE;AACvD,cAAM,SAAS;AAAA,UACd,YAAY;AAAA,UACZ,KAAK,mBAAmB,KAAK,MAAM,GAAG,IAAI;AAAA,QAC1C,EAAC,KAAK,IAAI;AAEX,aAAK,mBAAmB,WAAW,MAAM;AAAA,aACnC;AACN,cAAM,YAAY,KAAK,mBAAmB,KAAK,MAAM,GAAG;AACxD,aAAK,mBAAmB,SAAS;AAAA,MAClC;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASD,mBAAmB,MAAM,MAAM;AAC9B,UAAI,YAAY,aAAa,MAAM,MAAM,KAAK,OAAO;AAGrD,UAAI,SAAS,eAAgB,GAAE,OAAO,OAAO,kBAAkB,aAAa;AAC3E,qBAAa,QAAQ,cAAc,OAAO;AAAA,MAC3C;AAEA,aAAO;AAAA,IACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQD,mBAAmB,KAAK,SAAS,MAAM;AAEtC,YAAM,gBAAgB,iBAAiB,KAAK,IAAI;AAChD,UAAI,KAAK,iBAAiB,OAAO,kBAAkB,WAAW;AAC7D,aAAK,iBAAiB;AACtB,aAAK,kBAAkB;AACvB,YAAI,QAAQ;AACX,eAAK,qBAAqB;AAAA,QAC3B;AACA,YAAI,kBAAkB,OAAO;AAC5B,eAAK,mBAAmB;AAAA,QACzB;AACA;AAAA,MACD;AAEA,YAAM,MAAM,IAAI,MAAK;AACrB,UAAI,SAAS,MAAM;AAClB,aAAK,kBAAkB;AACvB,YAAI,QAAQ;AACX,eAAK,qBAAqB;AAAA,QAC3B;AACA,aAAK,iBAAiB;AAEtB,yBAAiB,KAAK,MAAM,IAAI;AAAA,MACjC;AACA,UAAI,UAAU,MAAM;AACnB,gBAAQ,MAAM,sBAAsB,GAAG;AAEvC,aAAK,kBAAkB;AACvB,aAAK,qBAAqB;AAE1B,aAAK,mBAAmB;AACxB,aAAK,iBAAiB;AACtB,yBAAiB,KAAK,MAAM,KAAK;AAAA,MAClC;AAEA,UAAI,QAAQ;AACX,YAAI,SAAS;AAAA,MACd;AACA,UAAI,MAAM;AAAA,IACV;AAAA,EACD;AACF;AAjyBA,MAAA,aAAA,CAAA,SAAA,YAAA,cAAA,MAAA;AAAA,MAAA,aAAA,CAAA,OAAA,QAAA;;EAAA,KAAA;AAAA,EAwN0C,OAAM;;;;;;;;;;AA9D/C,SAAAC,gBAAAC,UAAA,GAAAC,mBA8EO,QA9EPC,WA8EO;AAAA,IA9ED,KAAI;AAAA,IAER,OAAO,SAAO;AAAA,IACd,OAAK,CAAA;AAAA,4BAA6B,MAAgB;AAAA,8BAA6B,SAAO;AAAA,sCAAqC,MAAmB;AAAA,OAMzI,+BAA+B;AAAA,IADpC,OAAO,SAAW;AAAA,IAElB,UAAU,SAAO,UAAA,MAAS;AAAA,IAC1B,cAAY,SAAe;AAAA,IAC3B,MAAM,SAAO,UAAA,WAAc;AAAA,EAC5B,GAAAC,WAGO,SAHM,UAAA;AAAA,WAAe,SAAU;AAAA,aAAc,SAAU;AAAA;IAK9DC,WAOO,yBAPP,MAOO;AAAA,MALM,OAAS,0BAArBH,mBAAsE,QAAA;AAAA,QA9KzE,KAAA;AAAA,QA8K2B,OA9K3BI,eAAA,CA8KkC,OAAS,WAAQ,mBAAmB,CAAA;AAAA,qBACnD,MAAA,mBAAmB,MAAgB,iCAAnDJ,mBAGQ,OAAA;AAAA,QAlLX,KAAA;AAAA,QAgLK,KAAK,MAAe;AAAA,QACpB,QAAQ,MAAkB;AAAA,QAC3B,KAAI;AAAA,MAlLR,GAAA,MAAA,GAAA,UAAA,KAAAK,mBAAA,IAAA,IAAA;AAAA;IAuLkB,SAAO,WAAI,SAAI,KAAC,WAAM,kBAAtCC,YASW,qBAAA;AAAA,MAhMb,KAAA;AAAA,MAwLI,cAAY,SAAe;AAAA,MAC5B,OAAM;AAAA,MACN,SAAQ;AAAA,MACP,SAAO,SAAU;AAAA;MACP,cACV,MAA4C;AAAA,QAAvB,MAAmB,uBAAxCP,UAAA,GAAAO,YAA4C,4BA7LhD,KAAA,EAAA,CAAA,mBA8LIA,YAAoC,2BAAA;AAAA,UA9LxC,KAAA;AAAA,UA8L4B,MAAM;AAAA;;MA9LlC,GAAA;AAAA,wCAiMwB,SAAO,wBAA7BA,YAoBY,sBAAA;AAAA,MArNd,KAAA;AAAA,MAkMW,MAAM,MAAqB;AAAA,MAlMtC,iBAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAkMiB,MAAqB,wBAAA;AAAA,MAClC,cAAY,SAAe;AAAA,MAC3B,WAAW,OAAa;AAAA,MACzB,cAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAQ;AAAA,MACP,SAAO,SAAU;AAAA,IAxMrB,GAAAC,YAAA;AAAA,MAAA,SAAAC,QA0MI,MAA2B;AAAA,SAD5BT,UAAA,IAAA,GAAAC,mBAQYS,gBAjNfC,WA0M0B,SAAA,MA1M1B,CA0MY,MAAM,QAAG;AADlB,iBAAAX,UAAA,GAAAO,YAQYK,wBARI,KAAK,iBAAiB,GAAtCV,WAQY;AAAA,YANV;AAAA,YA3ML,SAAA;AAAA,aA4MY,KAAK,sBAAsB,GA5MvCM,YAAA;AAAA,YAAA,SAAAC,QA+Me,MACX;AAAA,cAhNJI,gBA+Me,MACXC,gBAAG,KAAK,IAAI,GAAA,CAAA;AAAA;YAhNhB,GAAA;AAAA;YA6MoB,KAAK;cA7MzB,MA6MmC;AAAA,cA7MnC,IAAAL,QA8MK,MAAwC;AAAA,gBAAxCM,YAAwC,6BAAA;AAAA,kBAArB,KAAK,KAAK;AAAA;;cA9MlC,KAAA;AAAA,gBAAA;AAAA;;;MAAA,GAAA;AAAA;MAkNmB,MAAmB;QAlNtC,MAkNyC;AAAA,QAlNzC,IAAAN,QAmNI,MAAiB;AAAA,UAAjBM,YAAiB,wBAAA;AAAA;QAnNrB,KAAA;AAAA,UAAA;AAAA,iEAAAT,mBAAA,IAAA,IAAA;AAAA,IAwNc,SAA0B,8BAAtCN,UAAA,GAAAC,mBAEO,QAFP,YACIa,gBAAA,KAAA,WAAW,IAAI,GAAA,CAAA,KAEU,SAAoB,qCAAjDP,YAGkC,6BAAA;AAAA,MA9NpC,KAAA;AAAA,MA4NG,OAAM;AAAA,MACL,QAAQ,KAAU,WAAC;AAAA,MACnB,eAAa,OAAO,SAAO,OAAA;AAAA,8CA9N/BD,mBAAA,IAAA,IAAA;AAAA,IAiOc,SAAY,6BAAxBL,mBAMO,QAAA;AAAA,MAvOT,KAAA;AAAA,MAkOI,OAlOJe,eAkOW,SAAoB,oBAAA;AAAA,MAC5B,OAAM;AAAA;MACNC,mBAEO,QAAA;AAAA,QAFA,OApOVD,eAoOiB,SAAa,aAAA;AAAA,QAAE,OAAM;AAAA,yBAC/B,SAAQ,QAAA,GAAA,CAAA;AAAA,aArOfV,mBAAA,IAAA,IAAA;AAAA,EAAA,GAAA,IAAA,UAAA,IAAA;AAAA,+BA2JmB,SAAS,SAAA;AAAA;;;"}