@conduction/nextcloud-vue 2.56.0-beta.36 → 2.56.0-beta.38

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 (382) hide show
  1. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
  2. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js +131 -3
  3. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  4. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +54 -18
  5. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  6. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue.js +1 -1
  7. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js +3 -2
  8. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js.map +1 -1
  9. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue3.js.map +1 -1
  10. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue.js +1 -1
  11. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js +5 -4
  12. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js.map +1 -1
  13. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue3.js.map +1 -1
  14. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue.js +1 -1
  15. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js +2 -1
  16. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js.map +1 -1
  17. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue3.js.map +1 -1
  18. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue.js +1 -1
  19. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +2 -1
  20. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
  21. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
  22. package/dist/esm/components/CnBoardView/CnBoardView.vue.js +1 -1
  23. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +376 -6
  24. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
  25. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +146 -71
  26. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
  27. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue.js +1 -1
  28. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js +2 -1
  29. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js.map +1 -1
  30. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue3.js.map +1 -1
  31. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue.js +1 -1
  32. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js +2 -1
  33. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js.map +1 -1
  34. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue3.js.map +1 -1
  35. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  36. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +6 -5
  37. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  38. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  39. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue.js +1 -1
  40. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js +2 -1
  41. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js.map +1 -1
  42. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue3.js.map +1 -1
  43. package/dist/esm/components/CnConversationThread/CnConversationThread.vue.js +1 -1
  44. package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js +2 -1
  45. package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js.map +1 -1
  46. package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js.map +1 -1
  47. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue.js +1 -1
  48. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js +2 -1
  49. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js.map +1 -1
  50. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue3.js.map +1 -1
  51. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  52. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +47 -1
  53. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  54. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +22 -12
  55. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  56. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue.js +1 -1
  57. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js +3 -1
  58. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js.map +1 -1
  59. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue3.js.map +1 -1
  60. package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js +2 -1
  61. package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js.map +1 -1
  62. package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue3.js.map +1 -1
  63. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +23 -4
  64. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  65. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  66. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  67. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +3 -1
  68. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  69. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  70. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue.js +1 -1
  71. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js +2 -1
  72. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js.map +1 -1
  73. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue3.js.map +1 -1
  74. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
  75. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +18 -5
  76. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
  77. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
  78. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue.js +1 -1
  79. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js +3 -1
  80. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js.map +1 -1
  81. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue3.js.map +1 -1
  82. package/dist/esm/components/CnFileManager/CnFileManager.vue.js +1 -1
  83. package/dist/esm/components/CnFileManager/CnFileManager.vue2.js +3 -1
  84. package/dist/esm/components/CnFileManager/CnFileManager.vue2.js.map +1 -1
  85. package/dist/esm/components/CnFileManager/CnFileManager.vue3.js.map +1 -1
  86. package/dist/esm/components/CnFilePreview/CnFilePreview.vue.js +1 -1
  87. package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js +2 -1
  88. package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js.map +1 -1
  89. package/dist/esm/components/CnFilePreview/CnFilePreview.vue3.js.map +1 -1
  90. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  91. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +49 -1
  92. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  93. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +3 -3
  94. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  95. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue.js +1 -1
  96. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js +2 -1
  97. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js.map +1 -1
  98. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue3.js.map +1 -1
  99. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +571 -77
  100. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  101. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +191 -82
  102. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  103. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +11 -2
  104. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  105. package/dist/esm/components/CnNotesCard/CnNotesCard.vue.js +1 -1
  106. package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js +2 -1
  107. package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js.map +1 -1
  108. package/dist/esm/components/CnNotesCard/CnNotesCard.vue3.js.map +1 -1
  109. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue.js +1 -1
  110. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js +3 -2
  111. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js.map +1 -1
  112. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue3.js.map +1 -1
  113. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue.js +1 -1
  114. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +28 -0
  115. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
  116. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js +82 -75
  117. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
  118. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue.js +1 -1
  119. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js +5 -4
  120. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js.map +1 -1
  121. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue3.js.map +1 -1
  122. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue.js +1 -1
  123. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js +2 -1
  124. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js.map +1 -1
  125. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue3.js.map +1 -1
  126. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue.js +1 -1
  127. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js +2 -1
  128. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js.map +1 -1
  129. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue3.js.map +1 -1
  130. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue.js +1 -1
  131. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js +2 -1
  132. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js.map +1 -1
  133. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js.map +1 -1
  134. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue.js +1 -1
  135. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js +2 -1
  136. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js.map +1 -1
  137. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue3.js.map +1 -1
  138. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue.js +1 -1
  139. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js +2 -1
  140. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js.map +1 -1
  141. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue3.js.map +1 -1
  142. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
  143. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +70 -2
  144. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
  145. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
  146. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue.js +1 -1
  147. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js +67 -5
  148. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js.map +1 -1
  149. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js +181 -124
  150. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js.map +1 -1
  151. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue.js +1 -1
  152. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js +2 -1
  153. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js.map +1 -1
  154. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue3.js.map +1 -1
  155. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js +2 -0
  156. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js.map +1 -1
  157. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js +2 -2
  158. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js.map +1 -1
  159. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
  160. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +5 -1
  161. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
  162. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
  163. package/dist/esm/components/CnStatWidget/CnStatWidget.vue.js +1 -1
  164. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +134 -10
  165. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
  166. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +6 -2
  167. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
  168. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue.js +1 -1
  169. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js +2 -1
  170. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js.map +1 -1
  171. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue3.js.map +1 -1
  172. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue.js +1 -1
  173. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js +2 -1
  174. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js.map +1 -1
  175. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue3.js.map +1 -1
  176. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
  177. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +6 -3
  178. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  179. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  180. package/dist/esm/components/CnTasksCard/CnTasksCard.vue.js +1 -1
  181. package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js +2 -1
  182. package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js.map +1 -1
  183. package/dist/esm/components/CnTasksCard/CnTasksCard.vue3.js.map +1 -1
  184. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +1 -1
  185. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +2 -1
  186. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -1
  187. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -1
  188. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js +1 -1
  189. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js +140 -7
  190. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js.map +1 -1
  191. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js.map +1 -1
  192. package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue.js +1 -1
  193. package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js +2 -1
  194. package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js.map +1 -1
  195. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue.js +1 -1
  196. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js +2 -1
  197. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js.map +1 -1
  198. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue3.js.map +1 -1
  199. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
  200. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +37 -9
  201. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
  202. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +6 -5
  203. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
  204. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js +53 -1
  205. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js.map +1 -1
  206. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js +3 -2
  207. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js.map +1 -1
  208. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
  209. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +135 -0
  210. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  211. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  212. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue.js +1 -1
  213. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +19 -0
  214. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
  215. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js +37 -19
  216. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
  217. package/dist/esm/composables/useListView.js +21 -0
  218. package/dist/esm/composables/useListView.js.map +1 -1
  219. package/dist/esm/dialogs/CnNoteHistoryDialog.vue.js +1 -1
  220. package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js +2 -1
  221. package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js.map +1 -1
  222. package/dist/esm/dialogs/CnNoteHistoryDialog.vue3.js.map +1 -1
  223. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue.js +1 -1
  224. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js +3 -2
  225. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js.map +1 -1
  226. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue3.js.map +1 -1
  227. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue.js +1 -1
  228. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js +4 -3
  229. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js.map +1 -1
  230. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue3.js.map +1 -1
  231. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue.js +1 -1
  232. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js +3 -2
  233. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js.map +1 -1
  234. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue3.js.map +1 -1
  235. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue.js +1 -1
  236. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js +2 -1
  237. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js.map +1 -1
  238. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue3.js.map +1 -1
  239. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue.js +1 -1
  240. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js +6 -5
  241. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js.map +1 -1
  242. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue3.js.map +1 -1
  243. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue.js +1 -1
  244. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js +2 -1
  245. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js.map +1 -1
  246. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue3.js.map +1 -1
  247. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue.js +1 -1
  248. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js +2 -1
  249. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js.map +1 -1
  250. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue3.js.map +1 -1
  251. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue.js +1 -1
  252. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js +2 -1
  253. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js.map +1 -1
  254. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue3.js.map +1 -1
  255. package/dist/esm/integrations/builtin/email/CnEmailCard.vue.js +1 -1
  256. package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js +2 -1
  257. package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js.map +1 -1
  258. package/dist/esm/integrations/builtin/email/CnEmailCard.vue3.js.map +1 -1
  259. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue.js +1 -1
  260. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +2 -1
  261. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
  262. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
  263. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue.js +1 -1
  264. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js +2 -1
  265. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js.map +1 -1
  266. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue3.js.map +1 -1
  267. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue.js +1 -1
  268. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js +2 -1
  269. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js.map +1 -1
  270. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue3.js.map +1 -1
  271. package/dist/esm/l10n/en.json.js +57 -2
  272. package/dist/esm/l10n/en.json.js.map +1 -1
  273. package/dist/esm/l10n/nl.json.js +78 -2
  274. package/dist/esm/l10n/nl.json.js.map +1 -1
  275. package/dist/esm/library-style.js +1 -1
  276. package/dist/esm/nextcloud-vue.css +1541 -1166
  277. package/dist/esm/store/useObjectStore.js +23 -4
  278. package/dist/esm/store/useObjectStore.js.map +1 -1
  279. package/dist/esm/utils/boardColumns.js +58 -2
  280. package/dist/esm/utils/boardColumns.js.map +1 -1
  281. package/dist/esm/utils/boardReferenceColumns.js +330 -0
  282. package/dist/esm/utils/boardReferenceColumns.js.map +1 -0
  283. package/dist/esm/utils/buildManifest.js +4 -1
  284. package/dist/esm/utils/buildManifest.js.map +1 -1
  285. package/dist/esm/utils/schema.js +5 -4
  286. package/dist/esm/utils/schema.js.map +1 -1
  287. package/dist/esm/utils/userLocale.js +30 -0
  288. package/dist/esm/utils/userLocale.js.map +1 -0
  289. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  290. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  291. package/dist/esm/utils/widgetDispatch.js +8 -2
  292. package/dist/esm/utils/widgetDispatch.js.map +1 -1
  293. package/dist/nextcloud-vue.cjs.js +30291 -27618
  294. package/dist/nextcloud-vue.cjs.js.map +2 -2
  295. package/dist/nextcloud-vue.css +1541 -1166
  296. package/l10n/en.json +57 -2
  297. package/l10n/nl.json +78 -2
  298. package/package.json +1 -1
  299. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +160 -8
  300. package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +3 -2
  301. package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +5 -4
  302. package/src/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue +2 -1
  303. package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +2 -1
  304. package/src/components/CnBoardView/CnBoardView.vue +433 -12
  305. package/src/components/CnCalendarEventPicker/CnCalendarEventPicker.vue +2 -1
  306. package/src/components/CnCalendarWidget/CnCalendarWidget.vue +2 -1
  307. package/src/components/CnChartWidget/CnChartWidget.vue +6 -5
  308. package/src/components/CnCollectivePagePicker/CnCollectivePagePicker.vue +2 -1
  309. package/src/components/CnConversationThread/CnConversationThread.vue +2 -1
  310. package/src/components/CnCountdownWidget/CnCountdownWidget.vue +2 -1
  311. package/src/components/CnDashboardPage/CnDashboardPage.vue +59 -3
  312. package/src/components/CnDataMatrix/CnDataMatrix.vue +2 -1
  313. package/src/components/CnDetailPage/CnDetailHeaderChips.vue +2 -1
  314. package/src/components/CnDetailPage/CnDetailPage.md +1 -1
  315. package/src/components/CnDetailPage/CnDetailPage.vue +23 -4
  316. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +3 -1
  317. package/src/components/CnEmailPicker/CnEmailPicker.vue +2 -1
  318. package/src/components/CnFactsWidget/CnFactsWidget.vue +18 -5
  319. package/src/components/CnFederationStatus/CnFederationStatus.vue +3 -1
  320. package/src/components/CnFileManager/CnFileManager.vue +2 -1
  321. package/src/components/CnFilePreview/CnFilePreview.vue +2 -1
  322. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +54 -6
  323. package/src/components/CnFollowToggle/CnFollowToggle.vue +2 -1
  324. package/src/components/CnIndexPage/CnIndexPage.vue +610 -25
  325. package/src/components/CnIndexPage/useSelfFetchList.js +10 -1
  326. package/src/components/CnNotesCard/CnNotesCard.vue +2 -1
  327. package/src/components/CnObjectCalendar/CnObjectCalendar.vue +3 -2
  328. package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +36 -0
  329. package/src/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue +5 -4
  330. package/src/components/CnObjectSidebar/CnAuditTrailTab.vue +2 -1
  331. package/src/components/CnObjectSidebar/CnFlowTasksPanel.vue +2 -1
  332. package/src/components/CnObjectSidebar/CnNotesTab.vue +2 -1
  333. package/src/components/CnObjectSidebar/CnTasksTab.vue +2 -1
  334. package/src/components/CnPropertySourceField/CnPropertySourceField.vue +2 -1
  335. package/src/components/CnRecordListWidget/CnRecordListWidget.vue +70 -2
  336. package/src/components/CnRegisterMapping/CnRegisterMapping.md +5 -0
  337. package/src/components/CnRegisterMapping/CnRegisterMapping.vue +231 -96
  338. package/src/components/CnRoadmapItem/CnRoadmapItem.vue +2 -1
  339. package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +4 -2
  340. package/src/components/CnSettingsPage/CnSettingsPage.vue +5 -1
  341. package/src/components/CnStatWidget/CnStatWidget.vue +136 -11
  342. package/src/components/CnStatsBlock/CnStatsBlock.vue +2 -1
  343. package/src/components/CnSummaryAggregates/CnSummaryAggregates.vue +2 -1
  344. package/src/components/CnTabsWidget/CnTabsWidget.vue +6 -3
  345. package/src/components/CnTasksCard/CnTasksCard.vue +2 -1
  346. package/src/components/CnTimelineWidget/CnTimelineWidget.vue +2 -1
  347. package/src/components/CnToggleTableWidget/CnToggleTableWidget.vue +140 -7
  348. package/src/components/CnTranslatedBadge/CnTranslatedBadge.vue +2 -1
  349. package/src/components/CnVersionHistory/CnVersionHistory.vue +2 -1
  350. package/src/components/CnVersionInfoCard/CnVersionInfoCard.md +2 -1
  351. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +42 -13
  352. package/src/components/CnWidgetCardGrid/CnWidgetCardGrid.vue +55 -2
  353. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +135 -0
  354. package/src/components/CnWidgetWrapper/CnWidgetWrapper.md +10 -0
  355. package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +44 -1
  356. package/src/composables/useListView.js +21 -0
  357. package/src/css/board.css +105 -4
  358. package/src/css/dialog.css +4 -2
  359. package/src/css/index-page.css +49 -0
  360. package/src/css/look-board.css +77 -7
  361. package/src/dialogs/CnNoteHistoryDialog.vue +2 -1
  362. package/src/integrations/builtin/activity/CnActivityCard.vue +3 -2
  363. package/src/integrations/builtin/activity/CnActivityTab.vue +4 -3
  364. package/src/integrations/builtin/analytics/CnAnalyticsTab.vue +3 -2
  365. package/src/integrations/builtin/calendar/CnCalendarCard.vue +2 -1
  366. package/src/integrations/builtin/calendar/CnCalendarTab.vue +6 -5
  367. package/src/integrations/builtin/contactmoment/CnContactmomentCard.vue +2 -1
  368. package/src/integrations/builtin/cospend/CnCospendTab.vue +2 -1
  369. package/src/integrations/builtin/deck/CnDeckTab.vue +2 -1
  370. package/src/integrations/builtin/email/CnEmailCard.vue +2 -1
  371. package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +2 -1
  372. package/src/integrations/builtin/field-inspection/CnFieldInspectionTab.vue +2 -1
  373. package/src/integrations/builtin/photos/CnPhotosTab.vue +2 -1
  374. package/src/schemas/app-manifest-v2.schema.json +116 -5
  375. package/src/store/useObjectStore.js +23 -4
  376. package/src/utils/boardColumns.js +57 -1
  377. package/src/utils/boardReferenceColumns.js +326 -0
  378. package/src/utils/buildManifest.js +4 -1
  379. package/src/utils/schema.js +5 -4
  380. package/src/utils/userLocale.js +26 -0
  381. package/src/utils/validateManifestV2.compiled.js +3 -3
  382. package/src/utils/widgetDispatch.js +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"CnPropertyValueCell.vue2.js","sources":["../../../../src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue"],"sourcesContent":["<template>\n\t<div class=\"cn-advanced-form-dialog__value-cell-wrapper\">\n\t\t<!-- Edit mode -->\n\t\t<div\n\t\t\tv-if=\"isEditable && (resolvedWidget === 'boolean' || isEditing)\"\n\t\t\tclass=\"cn-advanced-form-dialog__value-input-container\"\n\t\t\t@click.stop>\n\t\t\t<div\n\t\t\t\tv-if=\"resolvedWidget === 'boolean'\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__boolean-input-row\">\n\t\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\t\t:modelValue=\"!!value\"\n\t\t\t\t\ttype=\"switch\"\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__boolean-input-row__input\"\n\t\t\t\t\t@update:modelValue=\"emit($event)\">\n\t\t\t\t\t{{ displayName }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<InformationOutline\n\t\t\t\t\tv-if=\"schemaProp && schemaProp.description\"\n\t\t\t\t\t:title=\"schemaProp.description\"\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__info-icon\"\n\t\t\t\t\t:size=\"16\" />\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-else-if=\"resolvedWidget === 'color'\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__color-input-row\">\n\t\t\t\t<CnColorPicker\n\t\t\t\t\t:value=\"chromePickerValue\"\n\t\t\t\t\t:disableAlpha=\"!hasAlpha\"\n\t\t\t\t\t:mode=\"colorPickerMode\"\n\t\t\t\t\t@input=\"onChromeColorInput\" />\n\t\t\t\t<NcTextField\n\t\t\t\t\tref=\"inputRef\"\n\t\t\t\t\t:modelValue=\"colorTextValue\"\n\t\t\t\t\t:placeholder=\"colorPlaceholder\"\n\t\t\t\t\t@update:modelValue=\"onColorTextInput($event)\" />\n\t\t\t</div>\n\t\t\t<NcDateTimePicker\n\t\t\t\tv-else-if=\"resolvedWidget === 'datetime'\"\n\t\t\t\t:modelValue=\"datetimeValue\"\n\t\t\t\t:type=\"datetimePickerType\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t:inputLabel=\"displayName\"\n\t\t\t\t@update:modelValue=\"emitDatetime($event)\" />\n\t\t\t<NcTextArea\n\t\t\t\tv-else-if=\"resolvedWidget === 'textarea'\"\n\t\t\t\tref=\"inputRef\"\n\t\t\t\t:modelValue=\"stringValue\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t:rows=\"textareaRows\"\n\t\t\t\t:maxlength=\"maxLengthAttr\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__textarea\"\n\t\t\t\t@update:modelValue=\"emit($event)\" />\n\t\t\t<NcSelect\n\t\t\t\tv-else-if=\"resolvedWidget === 'select'\"\n\t\t\t\t:modelValue=\"effectiveSelectValue\"\n\t\t\t\t:options=\"effectiveSelectOptions\"\n\t\t\t\t:multiple=\"effectiveSelectMultiple\"\n\t\t\t\t:taggable=\"effectiveSelectTaggable\"\n\t\t\t\t:pushTags=\"effectiveSelectTaggable\"\n\t\t\t\t:keepOpen=\"effectiveSelectMultiple\"\n\t\t\t\t:inputLabel=\"displayName\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t@update:modelValue=\"emitSelect($event)\" />\n\t\t\t<CnJsonViewer\n\t\t\t\tv-else-if=\"resolvedWidget === 'object'\"\n\t\t\t\t:value=\"objectJsonString\"\n\t\t\t\t:height=\"objectEditorHeight\"\n\t\t\t\tlanguage=\"json\"\n\t\t\t\t@update:value=\"emitObject($event)\" />\n\t\t\t<div\n\t\t\t\tv-else-if=\"resolvedWidget === 'objectArray'\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__object-array\">\n\t\t\t\t<div class=\"cn-advanced-form-dialog__object-array-chips\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tv-for=\"(item, idx) in objectArrayItems\"\n\t\t\t\t\t\t:key=\"idx\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"cn-advanced-form-dialog__object-array-chip\"\n\t\t\t\t\t\t:title=\"t('nextcloud-vue', 'Edit item')\"\n\t\t\t\t\t\t@click.stop=\"openObjectArrayItem(idx)\">\n\t\t\t\t\t\t<span class=\"cn-advanced-form-dialog__object-array-chip-label\">{{ objectArrayItemLabel(item, idx) }}</span>\n\t\t\t\t\t\t<NcButton\n\t\t\t\t\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t\t\t\t\t:aria-label=\"t('nextcloud-vue', 'Remove item')\"\n\t\t\t\t\t\t\t:title=\"t('nextcloud-vue', 'Remove item')\"\n\t\t\t\t\t\t\tclass=\"cn-advanced-form-dialog__object-array-chip-remove\"\n\t\t\t\t\t\t\t@click.stop=\"removeObjectArrayItem(idx)\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Close :size=\"14\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<NcButton\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__object-array-add\"\n\t\t\t\t\t@click.stop=\"openObjectArrayItem(null)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Plus :size=\"16\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('nextcloud-vue', 'Add item') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<CnAdvancedFormDialog\n\t\t\t\t\tv-if=\"objectArrayDialogOpen\"\n\t\t\t\t\t:schema=\"schemaProp.items\"\n\t\t\t\t\t:item=\"objectArrayDialogItem\"\n\t\t\t\t\t:dialogTitle=\"objectArrayDialogTitle\"\n\t\t\t\t\t:show-metadata-tab=\"false\"\n\t\t\t\t\t@confirm=\"onObjectArrayConfirm\"\n\t\t\t\t\t@close=\"closeObjectArrayDialog\" />\n\t\t\t</div>\n\t\t\t<NcTextField\n\t\t\t\tv-else\n\t\t\t\tref=\"inputRef\"\n\t\t\t\t:modelValue=\"stringValue\"\n\t\t\t\t:type=\"inputType\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t:min=\"minimum\"\n\t\t\t\t:max=\"maximum\"\n\t\t\t\t:step=\"step\"\n\t\t\t\t:pattern=\"pattern\"\n\t\t\t\t:minlength=\"minLengthAttr\"\n\t\t\t\t:maxlength=\"maxLengthAttr\"\n\t\t\t\t@update:modelValue=\"emitConverted($event)\" />\n\t\t</div>\n\n\t\t<!-- Display mode -->\n\t\t<div\n\t\t\tv-else\n\t\t\t:title=\"editabilityWarning\">\n\t\t\t<pre\n\t\t\t\tv-if=\"typeof value === 'object' && value !== null\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__json-value\">{{ formattedObjectValue }}</pre>\n\t\t\t<span\n\t\t\t\tv-else-if=\"resolvedWidget === 'datetime' && isValidDate(value)\">{{\n\t\t\t\tformattedDateValue\n\t\t\t}}</span>\n\t\t\t<span\n\t\t\t\tv-else-if=\"resolvedWidget === 'color' && value\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__color-display\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__color-swatch cn-advanced-form-dialog__color-swatch--readonly\"\n\t\t\t\t\t:style=\"colorSwatchStyle\" />\n\t\t\t\t<span>{{ displayValue }}</span>\n\t\t\t</span>\n\t\t\t<span v-else>{{ displayValue }}</span>\n\t\t</div>\n\n\t\t<!-- Help text: description + example -->\n\t\t<div\n\t\t\tv-if=\"showHelpText && (helpDescription || helpExample)\"\n\t\t\tclass=\"cn-advanced-form-dialog__field-help\">\n\t\t\t<span\n\t\t\t\tv-if=\"helpDescription\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__field-description\">{{ helpDescription }}</span>\n\t\t\t<span\n\t\t\t\tv-if=\"helpExample\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__field-example\">{{ t('nextcloud-vue', 'e.g.') }} {{ helpExample }}</span>\n\t\t</div>\n\n\t\t<!-- Inline validation error -->\n\t\t<div\n\t\t\tv-if=\"showHelpText && fieldError\"\n\t\t\tclass=\"cn-advanced-form-dialog__field-error\"\n\t\t\trole=\"alert\">\n\t\t\t{{ fieldError }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport {\n\tNcButton,\n\tNcCheckboxRadioSwitch,\n\tNcDateTimePicker,\n\tNcSelect,\n\tNcTextArea,\n\tNcTextField,\n} from '@nextcloud/vue'\nimport { defineAsyncComponent } from 'vue'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport InformationOutline from 'vue-material-design-icons/InformationOutline.vue'\nimport Plus from 'vue-material-design-icons/Plus.vue'\nimport CnColorPicker from '../CnColorPicker/CnColorPicker.vue'\nimport CnJsonViewer from '../CnJsonViewer/CnJsonViewer.vue'\nimport { formatValue, validateValue } from '../../utils/schema.js'\n\nconst SUPPORTED_WIDGETS = ['text', 'number', 'boolean', 'datetime', 'textarea', 'array', 'select', 'object', 'objectArray', 'color']\n\n/** String formats that map to HTML5 `<input type=\"url\">`. */\nconst URL_FORMATS = new Set([\n\t'url',\n\t'uri',\n\t'uri-reference',\n\t'iri',\n\t'iri-reference',\n\t'uri-template',\n\t'accessUrl',\n\t'shareUrl',\n\t'downloadUrl',\n])\n\n/** All color-related string formats — rendered with the `color` widget (swatch + text input). */\nconst COLOR_FORMATS = new Set([\n\t'color',\n\t'color-hex',\n\t'color-hex-alpha',\n\t'color-rgb',\n\t'color-rgba',\n\t'color-hsl',\n\t'color-hsla',\n])\n\n/** String formats that render as a multi-line textarea instead of a single-line input. */\nconst TEXTAREA_FORMATS = new Set(['html', 'markdown'])\n\nexport default {\n\tname: 'CnPropertyValueCell',\n\n\tcomponents: {\n\t\tNcTextField,\n\t\tNcTextArea,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSelect,\n\t\tNcButton,\n\t\tNcDateTimePicker,\n\t\tInformationOutline,\n\t\tPlus,\n\t\tClose,\n\t\tCnJsonViewer,\n\t\tCnColorPicker,\n\t\t// Lazy-required to break the circular dep with CnAdvancedFormDialog.\n\t\t// defineAsyncComponent is MANDATORY under Vue 3: a bare function in\n\t\t// `components:` is a functional component, so Vue CALLS it on render\n\t\t// and prints the returned Promise as text instead of mounting the\n\t\t// dialog (the same \"[object Promise]\" bug CnActionsMenu shipped).\n\t\t// `.then(m => m.default || m)` unwraps the dynamic-import module namespace\n\t\t// before Vue receives it — with rollup's `inlineDynamicImports: true`\n\t\t// the namespace is frozen, and downstream code attaching bookkeeping\n\t\t// to a frozen object throws.\n\t\tCnAdvancedFormDialog: defineAsyncComponent(() => import('./CnAdvancedFormDialog.vue').then((m) => m.default || m)),\n\t},\n\n\tprops: {\n\t\t/** The schema property key */\n\t\tpropertyKey: { type: String, required: true },\n\t\t/** Full JSON schema object */\n\t\tschema: { type: Object, default: null },\n\t\t/** Resolved current value (formData[key] ?? objectValue) */\n\t\tvalue: { type: [Boolean, String, Number, Object, Array], default: null },\n\t\t/** Whether this property is editable at all */\n\t\tisEditable: { type: Boolean, default: true },\n\t\t/** Whether this row is currently selected for editing */\n\t\tisEditing: { type: Boolean, default: false },\n\t\t/** Display name for the property (used in labels/placeholders) */\n\t\tdisplayName: { type: String, default: '' },\n\t\t/** Editability warning message shown as title when not editable */\n\t\teditabilityWarning: { type: String, default: null },\n\t\t/**\n\t\t * Override the auto-detected widget for this cell. When null (default),\n\t\t * the widget is derived from the schema (boolean/datetime/text/number),\n\t\t * with auto-detection for `format: 'text'` (textarea) and `type: 'array'`.\n\t\t * Accepted: 'text', 'number', 'boolean', 'datetime', 'textarea', 'array', 'select'.\n\t\t */\n\t\twidget: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (v) => v === null || SUPPORTED_WIDGETS.includes(v),\n\t\t},\n\n\t\t/** Options for the `select` widget. Each option may be a string, or `{ id, label }`. */\n\t\tselectOptions: { type: Array, default: null },\n\t\t/** Whether the `select` widget allows multiple values. */\n\t\tselectMultiple: { type: Boolean, default: true },\n\t\t/** Number of rows for the `textarea` widget. */\n\t\ttextareaRows: { type: Number, default: 4 },\n\t\t/** CSS height for the `object` widget's CodeMirror editor. */\n\t\tobjectEditorHeight: { type: String, default: '300px' },\n\t},\n\n\temits: ['update:value'],\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Optimistic color value while the user is dragging the native picker.\n\t\t\t * Used for the swatch preview to feel instant; the upstream\n\t\t\t * `update:value` emit is debounced so validation/re-renders don't\n\t\t\t * fire on every drag tick.\n\t\t\t */\n\t\t\tpendingColor: null,\n\t\t\tpendingColorTimer: null,\n\t\t\tcolorPickerOpen: false,\n\t\t\t/** State for the object-array sub-dialog. `null` index means \"add new\". */\n\t\t\tobjectArrayDialogOpen: false,\n\t\t\tobjectArrayDialogIndex: null,\n\t\t\tobjectArrayDialogItem: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tschemaProp() {\n\t\t\treturn this.schema?.properties?.[this.propertyKey] || null\n\t\t},\n\n\t\t/**\n\t\t * Resolved widget after applying explicit override + schema auto-detection.\n\t\t * Arrays and string-with-enum become a `select` widget; the array/enum\n\t\t * shape is inferred from the schema by the `effectiveSelect*` computeds.\n\t\t *\n\t\t * @return {string} one of SUPPORTED_WIDGETS\n\t\t */\n\t\tresolvedWidget() {\n\t\t\tif (this.widget === 'array') {\n\t\t\t\treturn 'select'\n\t\t\t}\n\t\t\tif (this.widget) {\n\t\t\t\treturn this.widget\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn 'text'\n\t\t\t}\n\t\t\tif (prop.type === 'boolean') {\n\t\t\t\treturn 'boolean'\n\t\t\t}\n\t\t\tif (prop.type === 'array') {\n\t\t\t\tif (prop.items?.type === 'object') {\n\t\t\t\t\treturn 'objectArray'\n\t\t\t\t}\n\t\t\t\treturn 'select'\n\t\t\t}\n\t\t\tif (prop.type === 'object') {\n\t\t\t\treturn 'object'\n\t\t\t}\n\t\t\tif (prop.type === 'string') {\n\t\t\t\tif (Array.isArray(prop.enum) && prop.enum.length > 0) {\n\t\t\t\t\treturn 'select'\n\t\t\t\t}\n\t\t\t\tconst fmt = prop.format || ''\n\t\t\t\tif (['date', 'time', 'date-time'].includes(fmt)) {\n\t\t\t\t\treturn 'datetime'\n\t\t\t\t}\n\t\t\t\tif (TEXTAREA_FORMATS.has(fmt)) {\n\t\t\t\t\treturn 'textarea'\n\t\t\t\t}\n\t\t\t\tif (COLOR_FORMATS.has(fmt)) {\n\t\t\t\t\treturn 'color'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prop.type === 'number' || prop.type === 'integer') {\n\t\t\t\treturn 'number'\n\t\t\t}\n\t\t\treturn 'text'\n\t\t},\n\n\t\tinputType() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn 'text'\n\t\t\t}\n\t\t\tconst fmt = prop.format || ''\n\t\t\tif (prop.type === 'string') {\n\t\t\t\tif (fmt === 'email' || fmt === 'idn-email') {\n\t\t\t\t\treturn 'email'\n\t\t\t\t}\n\t\t\t\tif (URL_FORMATS.has(fmt)) {\n\t\t\t\t\treturn 'url'\n\t\t\t\t}\n\t\t\t\tif (fmt === 'password') {\n\t\t\t\t\treturn 'password'\n\t\t\t\t}\n\t\t\t\tif (fmt === 'telephone' || fmt === 'phone') {\n\t\t\t\t\treturn 'tel'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prop.type === 'number' || prop.type === 'integer') {\n\t\t\t\treturn 'number'\n\t\t\t}\n\t\t\treturn 'text'\n\t\t},\n\n\t\tpattern() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop || prop.type !== 'string') {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (prop.pattern) {\n\t\t\t\treturn prop.pattern\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tcolorPlaceholder() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tswitch (fmt) {\n\t\t\t\tcase 'color-hex': return '#rrggbb'\n\t\t\t\tcase 'color-hex-alpha': return '#rrggbbaa'\n\t\t\t\tcase 'color-rgb': return 'rgb(0, 0, 0)'\n\t\t\t\tcase 'color-rgba': return 'rgba(0, 0, 0, 1)'\n\t\t\t\tcase 'color-hsl': return 'hsl(0, 0%, 0%)'\n\t\t\t\tcase 'color-hsla': return 'hsla(0, 0%, 0%, 1)'\n\t\t\t\tdefault: return this.displayName || '#rrggbb'\n\t\t\t}\n\t\t},\n\n\t\t/** CSS-renderable representation of the current color value (raw value works for all standard formats). */\n\t\tcolorPreviewValue() {\n\t\t\tif (this.pendingColor) {\n\t\t\t\treturn this.pendingColor\n\t\t\t}\n\t\t\tconst v = this.stringValue\n\t\t\tif (!v) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\treturn v\n\t\t},\n\n\t\t/** Text-field value: shows the optimistic pendingColor while the picker is dragging. */\n\t\tcolorTextValue() {\n\t\t\tif (this.pendingColor) {\n\t\t\t\treturn this.pendingColor\n\t\t\t}\n\t\t\treturn this.stringValue\n\t\t},\n\n\t\t/** True when the schema-declared format includes an alpha channel. */\n\t\thasAlpha() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\treturn fmt === 'color-hex-alpha' || fmt === 'color-rgba' || fmt === 'color-hsla'\n\t\t},\n\n\t\t/**\n\t\t * Lock the picker's numeric-field mode to match the schema format so\n\t\t * the user can't edit, say, an `rgba()` value via hex inputs.\n\t\t */\n\t\tcolorPickerMode() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tif (fmt === 'color-rgb' || fmt === 'color-rgba') {\n\t\t\t\treturn 'rgb'\n\t\t\t}\n\t\t\tif (fmt === 'color-hsl' || fmt === 'color-hsla') {\n\t\t\t\treturn 'hsl'\n\t\t\t}\n\t\t\treturn 'hex'\n\t\t},\n\n\t\t/**\n\t\t * Value passed to vue-color's `Chrome` picker. We feed the picker the\n\t\t * latest displayable value (pending or committed) so dragging the\n\t\t * picker stays smooth even while the upstream emit is debounced.\n\t\t */\n\t\tchromePickerValue() {\n\t\t\tconst v = this.pendingColor || this.stringValue\n\t\t\tif (v) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\treturn { hex: this.hexColorValue, a: 1 }\n\t\t},\n\n\t\t/**\n\t\t * Inline style for the color swatch: layers a solid color over the checker\n\t\t * background-image so alpha colors render against the checker pattern.\n\t\t */\n\t\tcolorSwatchStyle() {\n\t\t\tconst c = this.colorPreviewValue\n\t\t\tif (!c) {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t\tconst fill = `linear-gradient(${c}, ${c})`\n\t\t\treturn {\n\t\t\t\tbackgroundImage: `${fill}, var(--cn-color-swatch-checker)`,\n\t\t\t\tbackgroundSize: '100% 100%, 8px 8px',\n\t\t\t\tbackgroundPosition: '0 0, 0 0',\n\t\t\t}\n\t\t},\n\n\t\t/** Hex string used as the value of the native `<input type=\"color\">`. */\n\t\thexColorValue() {\n\t\t\tconst v = this.stringValue\n\t\t\tif (!v) {\n\t\t\t\treturn '#000000'\n\t\t\t}\n\t\t\tconst trimmed = v.trim()\n\t\t\tconst hexMatch = trimmed.match(/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i)\n\t\t\tif (hexMatch) {\n\t\t\t\tconst h = hexMatch[1]\n\t\t\t\tif (h.length === 3 || h.length === 4) {\n\t\t\t\t\treturn '#' + h.slice(0, 3).split('').map((c) => c + c).join('')\n\t\t\t\t}\n\t\t\t\treturn '#' + h.slice(0, 6)\n\t\t\t}\n\t\t\tconst computed = this.cssColorToHex(trimmed)\n\t\t\treturn computed || '#000000'\n\t\t},\n\n\t\tminimum() {\n\t\t\treturn this.schemaProp?.minimum\n\t\t},\n\n\t\tmaximum() {\n\t\t\treturn this.schemaProp?.maximum\n\t\t},\n\n\t\tstep() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (prop?.type === 'integer') {\n\t\t\t\treturn '1'\n\t\t\t}\n\t\t\tif (prop?.type === 'number') {\n\t\t\t\treturn 'any'\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tminLengthAttr() {\n\t\t\tconst v = this.schemaProp?.minLength\n\t\t\treturn typeof v === 'number' ? v : undefined\n\t\t},\n\n\t\tmaxLengthAttr() {\n\t\t\tconst v = this.schemaProp?.maxLength\n\t\t\treturn typeof v === 'number' ? v : undefined\n\t\t},\n\n\t\tshowHelpText() {\n\t\t\treturn this.isEditable && (this.resolvedWidget === 'boolean' || this.isEditing)\n\t\t},\n\n\t\thelpDescription() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\treturn prop.userDescription || prop.description || ''\n\t\t},\n\n\t\thelpExample() {\n\t\t\tconst ex = this.schemaProp?.example\n\t\t\tif (ex === undefined || ex === null || ex === '') {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tif (typeof ex === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.stringify(ex)\n\t\t\t\t} catch {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn String(ex)\n\t\t},\n\n\t\t/**\n\t\t * Inline validation message for the current value, or null when valid.\n\t\t * Required-ness is owned by the parent form so it isn't surfaced here.\n\t\t */\n\t\tfieldError() {\n\t\t\tconst raw = validateValue(this.value, this.schemaProp || {})\n\t\t\treturn raw ? t('nextcloud-vue', raw) : null\n\t\t},\n\n\t\t/** Resolved option list for the `select` widget (explicit prop, schema enum, or items.enum). */\n\t\teffectiveSelectOptions() {\n\t\t\tif (this.selectOptions) {\n\t\t\t\treturn this.selectOptions\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tif (Array.isArray(prop.enum) && prop.enum.length > 0) {\n\t\t\t\treturn prop.enum\n\t\t\t}\n\t\t\tif (prop.type === 'array' && Array.isArray(prop.items?.enum) && prop.items.enum.length > 0) {\n\t\t\t\treturn prop.items.enum\n\t\t\t}\n\t\t\treturn []\n\t\t},\n\n\t\t/** Whether the `select` widget allows multiple values. */\n\t\teffectiveSelectMultiple() {\n\t\t\tif (this.widget === 'select') {\n\t\t\t\treturn this.selectMultiple\n\t\t\t}\n\t\t\tif (this.widget === 'array') {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (prop?.type === 'array') {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/** Whether the `select` widget accepts free-form tags (no fixed enum). */\n\t\teffectiveSelectTaggable() {\n\t\t\tif (this.widget === 'select') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tconst isArray = this.widget === 'array' || prop?.type === 'array'\n\t\t\treturn isArray && this.effectiveSelectOptions.length === 0\n\t\t},\n\n\t\t/** Selected-value object(s) for NcSelect, mapping ids back to option objects when needed. */\n\t\teffectiveSelectValue() {\n\t\t\tconst v = this.value\n\t\t\tconst opts = this.effectiveSelectOptions\n\t\t\tconst lookup = (id) => {\n\t\t\t\tconst match = opts.find((o) => (typeof o === 'object' ? o.id : o) === id)\n\t\t\t\treturn match !== undefined ? match : id\n\t\t\t}\n\t\t\tif (this.effectiveSelectMultiple) {\n\t\t\t\tif (!Array.isArray(v)) {\n\t\t\t\t\treturn []\n\t\t\t\t}\n\t\t\t\treturn v.map(lookup)\n\t\t\t}\n\t\t\tif (v === null || v === undefined || v === '') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn lookup(v)\n\t\t},\n\n\t\t/** Items array for the `objectArray` widget. Always an array. */\n\t\tobjectArrayItems() {\n\t\t\treturn Array.isArray(this.value) ? this.value : []\n\t\t},\n\n\t\t/** Title shown in the sub-dialog when adding/editing an object item. */\n\t\tobjectArrayDialogTitle() {\n\t\t\tconst itemTitle = this.schemaProp?.items?.title || this.displayName || t('nextcloud-vue', 'Item')\n\t\t\treturn this.objectArrayDialogIndex === null\n\t\t\t\t? t('nextcloud-vue', 'Add {title}', { title: itemTitle })\n\t\t\t\t: t('nextcloud-vue', 'Edit {title}', { title: itemTitle })\n\t\t},\n\n\t\t/**\n\t\t * NcDateTimePicker `type` mapped from the schema's string `format`.\n\t\t * Falls back to `datetime` for unknown date-ish formats.\n\t\t */\n\t\tdatetimePickerType() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tif (fmt === 'date') {\n\t\t\t\treturn 'date'\n\t\t\t}\n\t\t\tif (fmt === 'time') {\n\t\t\t\treturn 'time'\n\t\t\t}\n\t\t\treturn 'datetime'\n\t\t},\n\n\t\t/** Current value as a `Date` instance for NcDateTimePicker, or null. */\n\t\tdatetimeValue() {\n\t\t\tconst v = this.value\n\t\t\tif (!v) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t// Date-only strings (YYYY-MM-DD) are parsed as UTC midnight by the spec,\n\t\t\t// which shifts to the previous day in positive-UTC-offset timezones when\n\t\t\t// fed to a picker that renders in local time. Parse them as local midnight.\n\t\t\tif (this.schemaProp?.format === 'date'\n\t\t\t\t&& typeof v === 'string'\n\t\t\t\t&& /^\\d{4}-\\d{2}-\\d{2}$/.test(v)) {\n\t\t\t\tconst [year, month, day] = v.split('-').map(Number)\n\t\t\t\treturn new Date(year, month - 1, day)\n\t\t\t}\n\t\t\tconst d = new Date(v)\n\t\t\treturn Number.isNaN(d.getTime()) ? null : d\n\t\t},\n\n\t\tstringValue() {\n\t\t\tconst v = this.value\n\t\t\tif (v === null || v === undefined) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tif (typeof v === 'string') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (typeof v === 'object') {\n\t\t\t\treturn JSON.stringify(v)\n\t\t\t}\n\t\t\treturn String(v)\n\t\t},\n\n\t\tobjectJsonString() {\n\t\t\tconst v = this.value\n\t\t\tif (v === null || v === undefined) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tif (typeof v === 'string') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(v, null, 2)\n\t\t\t} catch {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\n\t\tformattedObjectValue() {\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(this.value, null, 2)\n\t\t\t} catch {\n\t\t\t\treturn formatValue(this.value, this.schemaProp || {})\n\t\t\t}\n\t\t},\n\n\t\tdisplayValue() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (prop?.const !== undefined) {\n\t\t\t\treturn prop.const\n\t\t\t}\n\t\t\tconst v = this.value\n\t\t\tif (v === null || v === undefined || v === '') {\n\t\t\t\treturn '—'\n\t\t\t}\n\t\t\treturn formatValue(v, prop || {})\n\t\t},\n\n\t\tformattedDateValue() {\n\t\t\tconst v = this.value\n\t\t\tif (!v) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\t// Same local-midnight parse as datetimeValue to avoid UTC-shift in display.\n\t\t\tif (fmt === 'date' && typeof v === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(v)) {\n\t\t\t\tconst [year, month, day] = v.split('-').map(Number)\n\t\t\t\treturn new Date(year, month - 1, day).toLocaleDateString()\n\t\t\t}\n\t\t\tconst d = new Date(v)\n\t\t\tif (Number.isNaN(d.getTime())) {\n\t\t\t\treturn String(v)\n\t\t\t}\n\t\t\tif (fmt === 'date') {\n\t\t\t\treturn d.toLocaleDateString()\n\t\t\t}\n\t\t\tif (fmt === 'time') {\n\t\t\t\treturn d.toLocaleTimeString()\n\t\t\t}\n\t\t\treturn d.toLocaleString()\n\t\t},\n\t},\n\n\tbeforeUnmount() {\n\t\tif (this.pendingColorTimer) {\n\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\tthis.pendingColorTimer = null\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/** Focus the underlying text input (called by parent after row click) */\n\t\tfocus() {\n\t\t\tconst ref = this.$refs.inputRef\n\t\t\tif (!ref) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst el = ref.$el || ref\n\t\t\tconst input = el?.querySelector?.('input,textarea')\n\t\t\tif (input) {\n\t\t\t\tinput.focus()\n\t\t\t\tif (typeof input.select === 'function') {\n\t\t\t\t\tinput.select()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\temit(newVal) {\n\t\t\tthis.$emit('update:value', newVal)\n\t\t},\n\n\t\temitConverted(newVal) {\n\t\t\tconst prop = this.schemaProp\n\t\t\tlet converted = newVal\n\t\t\tif (prop) {\n\t\t\t\tswitch (prop.type) {\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\tconverted = newVal === '' ? null : parseFloat(newVal)\n\t\t\t\t\t\tif (Number.isNaN(converted)) {\n\t\t\t\t\t\t\tconverted = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'integer':\n\t\t\t\t\t\tconverted = newVal === '' ? null : parseInt(newVal, 10)\n\t\t\t\t\t\tif (Number.isNaN(converted)) {\n\t\t\t\t\t\t\tconverted = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tconverted = Boolean(newVal)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tconverted = newVal\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.$emit('update:value', converted)\n\t\t},\n\n\t\t/**\n\t\t * Emit a `Date` from NcDateTimePicker as the schema-appropriate string:\n\t\t * `date` → `YYYY-MM-DD`, `time` → `HH:MM:SS`, `date-time` → ISO 8601.\n\t\t *\n\t\t * @param {Date|null} date - Date emitted by the picker.\n\t\t */\n\t\temitDatetime(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.$emit('update:value', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tif (fmt === 'date') {\n\t\t\t\t// Use local-time accessors — toISOString() converts to UTC first,\n\t\t\t\t// which shifts midnight local time to the previous day in UTC+n zones.\n\t\t\t\tconst year = date.getFullYear()\n\t\t\t\tconst month = String(date.getMonth() + 1).padStart(2, '0')\n\t\t\t\tconst day = String(date.getDate()).padStart(2, '0')\n\t\t\t\tthis.$emit('update:value', `${year}-${month}-${day}`)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (fmt === 'time') {\n\t\t\t\tthis.$emit('update:value', date.toTimeString().slice(0, 8))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$emit('update:value', date.toISOString())\n\t\t},\n\n\t\temitObject(jsonString) {\n\t\t\tif (typeof jsonString !== 'string') {\n\t\t\t\tthis.$emit('update:value', jsonString)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst trimmed = jsonString.trim()\n\t\t\tif (trimmed === '') {\n\t\t\t\tthis.$emit('update:value', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.$emit('update:value', JSON.parse(trimmed))\n\t\t\t} catch {\n\t\t\t\t// Invalid JSON: keep the raw string so the user sees what they typed.\n\t\t\t\t// CnJsonViewer surfaces a parse error inline; the parent's save path\n\t\t\t\t// can refuse non-object values if it requires structured data.\n\t\t\t\tthis.$emit('update:value', jsonString)\n\t\t\t}\n\t\t},\n\n\t\temitSelect(selected) {\n\t\t\tconst toId = (item) => (item && typeof item === 'object' ? item.id : item)\n\t\t\tif (this.effectiveSelectMultiple) {\n\t\t\t\tconst arr = Array.isArray(selected) ? selected : []\n\t\t\t\tconst itemType = this.schemaProp?.items?.type\n\t\t\t\t// Coerce taggable input (always emitted as strings) to the\n\t\t\t\t// declared `items.type`. Drop entries that fail to coerce.\n\t\t\t\tconst coerced = arr\n\t\t\t\t\t.map(toId)\n\t\t\t\t\t.map((v) => this.coerceItem(v, itemType))\n\t\t\t\t\t.filter((v) => v !== undefined)\n\t\t\t\tthis.$emit('update:value', coerced)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$emit('update:value', selected === null || selected === undefined ? null : toId(selected))\n\t\t},\n\n\t\t/**\n\t\t * Coerce a raw select-emitted value (typically a string from a\n\t\t * taggable NcSelect) into the array's declared `items.type`. Returns\n\t\t * `undefined` for entries that can't be coerced so the caller can drop\n\t\t * them from the array.\n\t\t *\n\t\t * @param {unknown} v - The raw value.\n\t\t * @param {string} [itemType] - Schema `items.type` (string, number, integer, boolean).\n\t\t * @return {unknown}\n\t\t */\n\t\tcoerceItem(v, itemType) {\n\t\t\tif (v === null || v === undefined) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\t// No declared item type — pass through untouched (preserves the\n\t\t\t// shape consumers may have set up via `selectOptions` etc).\n\t\t\tif (!itemType) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\t// Already the right shape — pass through.\n\t\t\tif (itemType === 'number' && typeof v === 'number') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (itemType === 'integer' && typeof v === 'number' && Number.isInteger(v)) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (itemType === 'boolean' && typeof v === 'boolean') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (itemType === 'string' && typeof v === 'string') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tconst s = String(v).trim()\n\t\t\tif (s === '') {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (itemType === 'number') {\n\t\t\t\tconst n = Number(s)\n\t\t\t\treturn Number.isFinite(n) ? n : undefined\n\t\t\t}\n\t\t\tif (itemType === 'integer') {\n\t\t\t\tconst n = Number(s)\n\t\t\t\treturn Number.isFinite(n) && Number.isInteger(n) ? n : undefined\n\t\t\t}\n\t\t\tif (itemType === 'boolean') {\n\t\t\t\tif (/^(true|1|yes|on)$/i.test(s)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (/^(false|0|no|off)$/i.test(s)) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn s\n\t\t},\n\n\t\t/**\n\t\t * Open the sub-dialog to add a new object item or edit an existing\n\t\t * one. `idx === null` means add.\n\t\t *\n\t\t * @param {number|null} idx - Index of the item to edit, or `null`.\n\t\t */\n\t\topenObjectArrayItem(idx) {\n\t\t\tthis.objectArrayDialogIndex = idx\n\t\t\tthis.objectArrayDialogItem = idx === null\n\t\t\t\t? null\n\t\t\t\t: JSON.parse(JSON.stringify(this.objectArrayItems[idx] || {}))\n\t\t\tthis.objectArrayDialogOpen = true\n\t\t},\n\n\t\tcloseObjectArrayDialog() {\n\t\t\tthis.objectArrayDialogOpen = false\n\t\t\tthis.objectArrayDialogIndex = null\n\t\t\tthis.objectArrayDialogItem = null\n\t\t},\n\n\t\t/**\n\t\t * Confirmed object from the sub-dialog. Replace the existing item or\n\t\t * append a new one, then emit the updated array.\n\t\t *\n\t\t * @param {object} formData - Form data emitted by CnAdvancedFormDialog.\n\t\t */\n\t\tonObjectArrayConfirm(formData) {\n\t\t\tconst next = [...this.objectArrayItems]\n\t\t\tif (this.objectArrayDialogIndex === null) {\n\t\t\t\tnext.push(formData)\n\t\t\t} else {\n\t\t\t\tnext.splice(this.objectArrayDialogIndex, 1, formData)\n\t\t\t}\n\t\t\tthis.$emit('update:value', next)\n\t\t\tthis.closeObjectArrayDialog()\n\t\t},\n\n\t\t/**\n\t\t * Remove an item from the object array.\n\t\t *\n\t\t * @param {number} idx - Index of the item to remove.\n\t\t */\n\t\tremoveObjectArrayItem(idx) {\n\t\t\tconst next = [...this.objectArrayItems]\n\t\t\tnext.splice(idx, 1)\n\t\t\tthis.$emit('update:value', next)\n\t\t},\n\n\t\t/**\n\t\t * Pick a human-readable label for an item chip. Tries the schema-\n\t\t * declared name field first, then the first non-empty primitive\n\t\t * property, then falls back to \"Item N\".\n\t\t *\n\t\t * @param {object} item - The array item.\n\t\t * @param {number} idx - Index of the item (used for fallback label).\n\t\t * @return {string}\n\t\t */\n\t\tobjectArrayItemLabel(item, idx) {\n\t\t\tconst items = this.schemaProp?.items\n\t\t\tconst nameField = items?.objectConfiguration?.objectNameField\n\t\t\t\t|| items?.configuration?.objectNameField\n\t\t\tif (nameField && item && item[nameField] !== null && item[nameField] !== undefined && item[nameField] !== '') {\n\t\t\t\treturn String(item[nameField])\n\t\t\t}\n\t\t\tif (item && typeof item === 'object') {\n\t\t\t\tfor (const v of Object.values(item)) {\n\t\t\t\t\tif (v === null || v === undefined || v === '') {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {\n\t\t\t\t\t\treturn String(v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn t('nextcloud-vue', 'Item {n}', { n: idx + 1 })\n\t\t},\n\n\t\tisValidDate(v) {\n\t\t\tif (!v) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst d = new Date(v)\n\t\t\treturn d instanceof Date && !Number.isNaN(d.getTime())\n\t\t},\n\n\t\t/**\n\t\t * Convert any CSS-recognized color string to a 6-digit hex string by\n\t\t * round-tripping through a detached DOM node. Returns null when the\n\t\t * browser cannot parse the input.\n\t\t *\n\t\t * @param {string} cssValue - The CSS color value to convert.\n\t\t * @return {string|null}\n\t\t */\n\t\tcssColorToHex(cssValue) {\n\t\t\ttry {\n\t\t\t\tconst el = document.createElement('div')\n\t\t\t\tel.style.color = ''\n\t\t\t\tel.style.color = cssValue\n\t\t\t\tif (!el.style.color) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tdocument.body.appendChild(el)\n\t\t\t\tconst rgb = getComputedStyle(el).color\n\t\t\t\tdocument.body.removeChild(el)\n\t\t\t\tconst m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/)\n\t\t\t\tif (!m) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tconst toHex = (n) => parseInt(n, 10).toString(16).padStart(2, '0')\n\t\t\t\treturn `#${toHex(m[1])}${toHex(m[2])}${toHex(m[3])}`\n\t\t\t} catch {\n\t\t\t\treturn null\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Continuous handler for vue-color's `Chrome` picker. Updates the\n\t\t * swatch + text input synchronously via `pendingColor`, but debounces\n\t\t * the upstream `update:value` emit so validation and parent re-renders\n\t\t * don't fire on every drag tick.\n\t\t *\n\t\t * @param {object} color - vue-color emitted color object.\n\t\t * @param {string} color.hex - `#rrggbb`.\n\t\t * @param {string} [color.hex8] - `#rrggbbaa`, when alpha is enabled.\n\t\t * @param {object} color.rgba - RGBA components (`r`, `g`, `b`, `a`).\n\t\t * @param {object} color.hsl - HSL components (`h`, `s`, `l`, `a`).\n\t\t * @param {number} [color.a] - Alpha 0–1.\n\t\t */\n\t\tonChromeColorInput(color) {\n\t\t\tthis.pendingColor = this.chromeColorToFormatValue(color)\n\t\t\tif (this.pendingColorTimer) {\n\t\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\t}\n\t\t\tthis.pendingColorTimer = setTimeout(() => this.flushPendingColor(), 120)\n\t\t},\n\n\t\t/**\n\t\t * Translate vue-color's emitted color object into the schema-declared\n\t\t * color format string.\n\t\t *\n\t\t * @param {object} color - vue-color color object.\n\t\t * @return {string}\n\t\t */\n\t\tchromeColorToFormatValue(color) {\n\t\t\tconst fmt = this.schemaProp?.format || 'color-hex'\n\t\t\tconst { rgba, hex, hex8 } = color || {}\n\t\t\tconst r = rgba?.r ?? 0\n\t\t\tconst g = rgba?.g ?? 0\n\t\t\tconst b = rgba?.b ?? 0\n\t\t\tconst a = rgba?.a ?? color?.a ?? 1\n\t\t\tif (fmt === 'color-hex' || fmt === 'color') {\n\t\t\t\treturn (hex || '#000000').toLowerCase()\n\t\t\t}\n\t\t\tif (fmt === 'color-hex-alpha') {\n\t\t\t\tif (hex8) {\n\t\t\t\t\treturn hex8.toLowerCase()\n\t\t\t\t}\n\t\t\t\tconst aHex = Math.round(a * 255).toString(16).padStart(2, '0')\n\t\t\t\treturn ((hex || '#000000') + aHex).toLowerCase()\n\t\t\t}\n\t\t\tif (fmt === 'color-rgb') {\n\t\t\t\treturn `rgb(${r}, ${g}, ${b})`\n\t\t\t}\n\t\t\tif (fmt === 'color-rgba') {\n\t\t\t\treturn `rgba(${r}, ${g}, ${b}, ${this.formatAlpha(a)})`\n\t\t\t}\n\t\t\tif (fmt === 'color-hsl' || fmt === 'color-hsla') {\n\t\t\t\tconst { h, s, l } = this.rgbToHsl(r, g, b)\n\t\t\t\tif (fmt === 'color-hsla') {\n\t\t\t\t\treturn `hsla(${h}, ${s}%, ${l}%, ${this.formatAlpha(a)})`\n\t\t\t\t}\n\t\t\t\treturn `hsl(${h}, ${s}%, ${l}%)`\n\t\t\t}\n\t\t\treturn hex || '#000000'\n\t\t},\n\n\t\t/** Emit the pending color upstream and clear local state. */\n\t\tflushPendingColor() {\n\t\t\tif (this.pendingColorTimer) {\n\t\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\t\tthis.pendingColorTimer = null\n\t\t\t}\n\t\t\tif (this.pendingColor === null) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst out = this.pendingColor\n\t\t\tthis.pendingColor = null\n\t\t\tthis.$emit('update:value', out)\n\t\t},\n\n\t\t/**\n\t\t * Manual text-field edit for a color value. Cancels any in-flight\n\t\t * picker debounce so the typed value isn't immediately overwritten.\n\t\t *\n\t\t * @param {string} v - The new text value.\n\t\t */\n\t\tonColorTextInput(v) {\n\t\t\tif (this.pendingColorTimer) {\n\t\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\t\tthis.pendingColorTimer = null\n\t\t\t}\n\t\t\tthis.pendingColor = null\n\t\t\tthis.$emit('update:value', v)\n\t\t},\n\n\t\t/**\n\t\t * Format an alpha 0–1 for CSS output (max 2 decimals, drops trailing zeros).\n\t\t *\n\t\t * @param {number} a - Alpha in 0–1 range.\n\t\t * @return {string}\n\t\t */\n\t\tformatAlpha(a) {\n\t\t\treturn Number.isInteger(a) ? String(a) : a.toFixed(2).replace(/\\.?0+$/, '') || '0'\n\t\t},\n\n\t\trgbToHsl(r, g, b) {\n\t\t\tconst rN = r / 255\n\t\t\tconst gN = g / 255\n\t\t\tconst bN = b / 255\n\t\t\tconst max = Math.max(rN, gN, bN)\n\t\t\tconst min = Math.min(rN, gN, bN)\n\t\t\tconst l = (max + min) / 2\n\t\t\tlet h = 0\n\t\t\tlet s = 0\n\t\t\tif (max !== min) {\n\t\t\t\tconst d = max - min\n\t\t\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\t\t\t\tswitch (max) {\n\t\t\t\t\tcase rN:\n\t\t\t\t\t\th = (gN - bN) / d + (gN < bN ? 6 : 0)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase gN:\n\t\t\t\t\t\th = (bN - rN) / d + 2\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase bN:\n\t\t\t\t\t\th = (rN - gN) / d + 4\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\th /= 6\n\t\t\t}\n\t\t\treturn {\n\t\t\t\th: Math.round(h * 360),\n\t\t\t\ts: Math.round(s * 100),\n\t\t\t\tl: Math.round(l * 100),\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n.cn-advanced-form-dialog__value-input-container {\n\twidth: 100%;\n\tmin-width: 0;\n}\n\n.cn-advanced-form-dialog__value-input-container :deep(.text-field) {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.cn-advanced-form-dialog__boolean-input-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n\n.cn-advanced-form-dialog__array-input-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n\n.cn-advanced-form-dialog__array-input-row > :first-child {\n\tflex: 1;\n}\n\n/* patch extreme size in field */\n.cn-advanced-form-dialog__boolean-input-row__input > span {\n\tpadding-left: 0;\n\tpadding-block: 0;\n}\n\n.cn-advanced-form-dialog__boolean-input-row__input > input {\n\tmargin: 0;\n}\n\n.cn-advanced-form-dialog__info-icon {\n\tflex-shrink: 0;\n\tcolor: var(--color-text-maxcontrast);\n\tcursor: help;\n}\n\n.cn-advanced-form-dialog__json-value {\n\tmax-height: 200px;\n\toverflow-y: auto;\n\twhite-space: pre-wrap;\n\tfont-family: monospace;\n\tfont-size: 12px;\n\tbackground: var(--color-background-dark);\n\tpadding: 8px;\n\tborder-radius: 4px;\n\tmargin: 0;\n}\n\n/* Textarea: keep it inside the table cell instead of overflowing.\n NcTextArea's wrapper has a fixed height (`calc(var(--default-clickable-area) * 2)`)\n that ignores the `rows` attribute, which causes the textarea to render with a\n too-small viewport. Let the wrapper grow with its content instead. */\n.cn-advanced-form-dialog__textarea {\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.cn-advanced-form-dialog__textarea :deep(.textarea__main-wrapper) {\n\theight: auto;\n\tmin-height: var(--default-clickable-area);\n}\n\n.cn-advanced-form-dialog__textarea :deep(textarea) {\n\twidth: 100%;\n\tmax-width: 100%;\n\tbox-sizing: border-box;\n\tresize: vertical;\n\tmin-height: 80px;\n\tmax-height: 240px;\n\tdisplay: block;\n}\n\n/* Color widget: clickable swatch (native picker) + visible text input */\n.cn-advanced-form-dialog__color-input-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\twidth: 100%;\n}\n\n.cn-advanced-form-dialog__color-input-row > :last-child {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.cn-advanced-form-dialog__color-swatch {\n\t--cn-color-swatch-checker:\n\t\tlinear-gradient(45deg, var(--color-background-dark) 25%, transparent 25%),\n\t\tlinear-gradient(-45deg, var(--color-background-dark) 25%, transparent 25%),\n\t\tlinear-gradient(45deg, transparent 75%, var(--color-background-dark) 75%),\n\t\tlinear-gradient(-45deg, transparent 75%, var(--color-background-dark) 75%);\n\tdisplay: inline-block;\n\twidth: 32px;\n\theight: 32px;\n\tflex-shrink: 0;\n\tpadding: 0;\n\tborder: 1px solid var(--color-border);\n\tborder-radius: var(--border-radius);\n\tcursor: pointer;\n\tbackground-image: var(--cn-color-swatch-checker);\n\tbackground-size: 8px 8px;\n\tbackground-position: 0 0, 0 4px, 4px -4px, -4px 0;\n\toverflow: hidden;\n\tposition: relative;\n}\n\n.cn-advanced-form-dialog__color-swatch:focus-visible {\n\toutline: 2px solid var(--color-primary-element);\n\toutline-offset: 2px;\n}\n\n.cn-advanced-form-dialog__color-swatch--readonly {\n\tcursor: default;\n\twidth: 20px;\n\theight: 20px;\n\tvertical-align: middle;\n\tmargin-inline-end: 6px;\n}\n\n.cn-advanced-form-dialog__color-display {\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n/* Help text & inline validation under the input */\n.cn-advanced-form-dialog__field-help {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmargin-top: 4px;\n\tfont-size: 0.85em;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.cn-advanced-form-dialog__field-example {\n\tfont-style: italic;\n}\n\n.cn-advanced-form-dialog__field-error {\n\tmargin-top: 4px;\n\tfont-size: 0.85em;\n\tcolor: var(--color-error-text);\n}\n\n.cn-advanced-form-dialog__value-cell-wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n}\n\n/* Object-array widget: chip list + add button */\n.cn-advanced-form-dialog__object-array {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n\twidth: 100%;\n}\n\n.cn-advanced-form-dialog__object-array-chips {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n}\n\n.cn-advanced-form-dialog__object-array-chip {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 2px 4px 2px 10px;\n\tbackground: var(--color-background-dark);\n\tborder: 1px solid var(--color-border);\n\tborder-radius: var(--border-radius-pill, 14px);\n\tcolor: var(--color-main-text);\n\tcursor: pointer;\n\tfont: inherit;\n\tmax-width: 240px;\n}\n\n.cn-advanced-form-dialog__object-array-chip:hover {\n\tbackground: var(--color-background-hover);\n}\n\n.cn-advanced-form-dialog__object-array-chip-label {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.cn-advanced-form-dialog__object-array-chip-remove {\n\tflex-shrink: 0;\n}\n\n.cn-advanced-form-dialog__object-array-add {\n\talign-self: flex-start;\n}\n</style>\n"],"names":["CnJsonViewer","CnColorPicker","t"],"mappings":"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"}
1
+ {"version":3,"file":"CnPropertyValueCell.vue2.js","sources":["../../../../src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue"],"sourcesContent":["<template>\n\t<div class=\"cn-advanced-form-dialog__value-cell-wrapper\">\n\t\t<!-- Edit mode -->\n\t\t<div\n\t\t\tv-if=\"isEditable && (resolvedWidget === 'boolean' || isEditing)\"\n\t\t\tclass=\"cn-advanced-form-dialog__value-input-container\"\n\t\t\t@click.stop>\n\t\t\t<div\n\t\t\t\tv-if=\"resolvedWidget === 'boolean'\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__boolean-input-row\">\n\t\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\t\t:modelValue=\"!!value\"\n\t\t\t\t\ttype=\"switch\"\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__boolean-input-row__input\"\n\t\t\t\t\t@update:modelValue=\"emit($event)\">\n\t\t\t\t\t{{ displayName }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<InformationOutline\n\t\t\t\t\tv-if=\"schemaProp && schemaProp.description\"\n\t\t\t\t\t:title=\"schemaProp.description\"\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__info-icon\"\n\t\t\t\t\t:size=\"16\" />\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-else-if=\"resolvedWidget === 'color'\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__color-input-row\">\n\t\t\t\t<CnColorPicker\n\t\t\t\t\t:value=\"chromePickerValue\"\n\t\t\t\t\t:disableAlpha=\"!hasAlpha\"\n\t\t\t\t\t:mode=\"colorPickerMode\"\n\t\t\t\t\t@input=\"onChromeColorInput\" />\n\t\t\t\t<NcTextField\n\t\t\t\t\tref=\"inputRef\"\n\t\t\t\t\t:modelValue=\"colorTextValue\"\n\t\t\t\t\t:placeholder=\"colorPlaceholder\"\n\t\t\t\t\t@update:modelValue=\"onColorTextInput($event)\" />\n\t\t\t</div>\n\t\t\t<NcDateTimePicker\n\t\t\t\tv-else-if=\"resolvedWidget === 'datetime'\"\n\t\t\t\t:modelValue=\"datetimeValue\"\n\t\t\t\t:type=\"datetimePickerType\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t:inputLabel=\"displayName\"\n\t\t\t\t@update:modelValue=\"emitDatetime($event)\" />\n\t\t\t<NcTextArea\n\t\t\t\tv-else-if=\"resolvedWidget === 'textarea'\"\n\t\t\t\tref=\"inputRef\"\n\t\t\t\t:modelValue=\"stringValue\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t:rows=\"textareaRows\"\n\t\t\t\t:maxlength=\"maxLengthAttr\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__textarea\"\n\t\t\t\t@update:modelValue=\"emit($event)\" />\n\t\t\t<NcSelect\n\t\t\t\tv-else-if=\"resolvedWidget === 'select'\"\n\t\t\t\t:modelValue=\"effectiveSelectValue\"\n\t\t\t\t:options=\"effectiveSelectOptions\"\n\t\t\t\t:multiple=\"effectiveSelectMultiple\"\n\t\t\t\t:taggable=\"effectiveSelectTaggable\"\n\t\t\t\t:pushTags=\"effectiveSelectTaggable\"\n\t\t\t\t:keepOpen=\"effectiveSelectMultiple\"\n\t\t\t\t:inputLabel=\"displayName\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t@update:modelValue=\"emitSelect($event)\" />\n\t\t\t<CnJsonViewer\n\t\t\t\tv-else-if=\"resolvedWidget === 'object'\"\n\t\t\t\t:value=\"objectJsonString\"\n\t\t\t\t:height=\"objectEditorHeight\"\n\t\t\t\tlanguage=\"json\"\n\t\t\t\t@update:value=\"emitObject($event)\" />\n\t\t\t<div\n\t\t\t\tv-else-if=\"resolvedWidget === 'objectArray'\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__object-array\">\n\t\t\t\t<div class=\"cn-advanced-form-dialog__object-array-chips\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tv-for=\"(item, idx) in objectArrayItems\"\n\t\t\t\t\t\t:key=\"idx\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"cn-advanced-form-dialog__object-array-chip\"\n\t\t\t\t\t\t:title=\"t('nextcloud-vue', 'Edit item')\"\n\t\t\t\t\t\t@click.stop=\"openObjectArrayItem(idx)\">\n\t\t\t\t\t\t<span class=\"cn-advanced-form-dialog__object-array-chip-label\">{{ objectArrayItemLabel(item, idx) }}</span>\n\t\t\t\t\t\t<NcButton\n\t\t\t\t\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t\t\t\t\t:aria-label=\"t('nextcloud-vue', 'Remove item')\"\n\t\t\t\t\t\t\t:title=\"t('nextcloud-vue', 'Remove item')\"\n\t\t\t\t\t\t\tclass=\"cn-advanced-form-dialog__object-array-chip-remove\"\n\t\t\t\t\t\t\t@click.stop=\"removeObjectArrayItem(idx)\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Close :size=\"14\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<NcButton\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__object-array-add\"\n\t\t\t\t\t@click.stop=\"openObjectArrayItem(null)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Plus :size=\"16\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('nextcloud-vue', 'Add item') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<CnAdvancedFormDialog\n\t\t\t\t\tv-if=\"objectArrayDialogOpen\"\n\t\t\t\t\t:schema=\"schemaProp.items\"\n\t\t\t\t\t:item=\"objectArrayDialogItem\"\n\t\t\t\t\t:dialogTitle=\"objectArrayDialogTitle\"\n\t\t\t\t\t:show-metadata-tab=\"false\"\n\t\t\t\t\t@confirm=\"onObjectArrayConfirm\"\n\t\t\t\t\t@close=\"closeObjectArrayDialog\" />\n\t\t\t</div>\n\t\t\t<NcTextField\n\t\t\t\tv-else\n\t\t\t\tref=\"inputRef\"\n\t\t\t\t:modelValue=\"stringValue\"\n\t\t\t\t:type=\"inputType\"\n\t\t\t\t:placeholder=\"displayName\"\n\t\t\t\t:min=\"minimum\"\n\t\t\t\t:max=\"maximum\"\n\t\t\t\t:step=\"step\"\n\t\t\t\t:pattern=\"pattern\"\n\t\t\t\t:minlength=\"minLengthAttr\"\n\t\t\t\t:maxlength=\"maxLengthAttr\"\n\t\t\t\t@update:modelValue=\"emitConverted($event)\" />\n\t\t</div>\n\n\t\t<!-- Display mode -->\n\t\t<div\n\t\t\tv-else\n\t\t\t:title=\"editabilityWarning\">\n\t\t\t<pre\n\t\t\t\tv-if=\"typeof value === 'object' && value !== null\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__json-value\">{{ formattedObjectValue }}</pre>\n\t\t\t<span\n\t\t\t\tv-else-if=\"resolvedWidget === 'datetime' && isValidDate(value)\">{{\n\t\t\t\tformattedDateValue\n\t\t\t}}</span>\n\t\t\t<span\n\t\t\t\tv-else-if=\"resolvedWidget === 'color' && value\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__color-display\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cn-advanced-form-dialog__color-swatch cn-advanced-form-dialog__color-swatch--readonly\"\n\t\t\t\t\t:style=\"colorSwatchStyle\" />\n\t\t\t\t<span>{{ displayValue }}</span>\n\t\t\t</span>\n\t\t\t<span v-else>{{ displayValue }}</span>\n\t\t</div>\n\n\t\t<!-- Help text: description + example -->\n\t\t<div\n\t\t\tv-if=\"showHelpText && (helpDescription || helpExample)\"\n\t\t\tclass=\"cn-advanced-form-dialog__field-help\">\n\t\t\t<span\n\t\t\t\tv-if=\"helpDescription\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__field-description\">{{ helpDescription }}</span>\n\t\t\t<span\n\t\t\t\tv-if=\"helpExample\"\n\t\t\t\tclass=\"cn-advanced-form-dialog__field-example\">{{ t('nextcloud-vue', 'e.g.') }} {{ helpExample }}</span>\n\t\t</div>\n\n\t\t<!-- Inline validation error -->\n\t\t<div\n\t\t\tv-if=\"showHelpText && fieldError\"\n\t\t\tclass=\"cn-advanced-form-dialog__field-error\"\n\t\t\trole=\"alert\">\n\t\t\t{{ fieldError }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport {\n\tNcButton,\n\tNcCheckboxRadioSwitch,\n\tNcDateTimePicker,\n\tNcSelect,\n\tNcTextArea,\n\tNcTextField,\n} from '@nextcloud/vue'\nimport { defineAsyncComponent } from 'vue'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport InformationOutline from 'vue-material-design-icons/InformationOutline.vue'\nimport Plus from 'vue-material-design-icons/Plus.vue'\nimport CnColorPicker from '../CnColorPicker/CnColorPicker.vue'\nimport CnJsonViewer from '../CnJsonViewer/CnJsonViewer.vue'\nimport { formatValue, validateValue } from '../../utils/schema.js'\nimport { userLocale } from '../../utils/userLocale.js'\n\nconst SUPPORTED_WIDGETS = ['text', 'number', 'boolean', 'datetime', 'textarea', 'array', 'select', 'object', 'objectArray', 'color']\n\n/** String formats that map to HTML5 `<input type=\"url\">`. */\nconst URL_FORMATS = new Set([\n\t'url',\n\t'uri',\n\t'uri-reference',\n\t'iri',\n\t'iri-reference',\n\t'uri-template',\n\t'accessUrl',\n\t'shareUrl',\n\t'downloadUrl',\n])\n\n/** All color-related string formats — rendered with the `color` widget (swatch + text input). */\nconst COLOR_FORMATS = new Set([\n\t'color',\n\t'color-hex',\n\t'color-hex-alpha',\n\t'color-rgb',\n\t'color-rgba',\n\t'color-hsl',\n\t'color-hsla',\n])\n\n/** String formats that render as a multi-line textarea instead of a single-line input. */\nconst TEXTAREA_FORMATS = new Set(['html', 'markdown'])\n\nexport default {\n\tname: 'CnPropertyValueCell',\n\n\tcomponents: {\n\t\tNcTextField,\n\t\tNcTextArea,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSelect,\n\t\tNcButton,\n\t\tNcDateTimePicker,\n\t\tInformationOutline,\n\t\tPlus,\n\t\tClose,\n\t\tCnJsonViewer,\n\t\tCnColorPicker,\n\t\t// Lazy-required to break the circular dep with CnAdvancedFormDialog.\n\t\t// defineAsyncComponent is MANDATORY under Vue 3: a bare function in\n\t\t// `components:` is a functional component, so Vue CALLS it on render\n\t\t// and prints the returned Promise as text instead of mounting the\n\t\t// dialog (the same \"[object Promise]\" bug CnActionsMenu shipped).\n\t\t// `.then(m => m.default || m)` unwraps the dynamic-import module namespace\n\t\t// before Vue receives it — with rollup's `inlineDynamicImports: true`\n\t\t// the namespace is frozen, and downstream code attaching bookkeeping\n\t\t// to a frozen object throws.\n\t\tCnAdvancedFormDialog: defineAsyncComponent(() => import('./CnAdvancedFormDialog.vue').then((m) => m.default || m)),\n\t},\n\n\tprops: {\n\t\t/** The schema property key */\n\t\tpropertyKey: { type: String, required: true },\n\t\t/** Full JSON schema object */\n\t\tschema: { type: Object, default: null },\n\t\t/** Resolved current value (formData[key] ?? objectValue) */\n\t\tvalue: { type: [Boolean, String, Number, Object, Array], default: null },\n\t\t/** Whether this property is editable at all */\n\t\tisEditable: { type: Boolean, default: true },\n\t\t/** Whether this row is currently selected for editing */\n\t\tisEditing: { type: Boolean, default: false },\n\t\t/** Display name for the property (used in labels/placeholders) */\n\t\tdisplayName: { type: String, default: '' },\n\t\t/** Editability warning message shown as title when not editable */\n\t\teditabilityWarning: { type: String, default: null },\n\t\t/**\n\t\t * Override the auto-detected widget for this cell. When null (default),\n\t\t * the widget is derived from the schema (boolean/datetime/text/number),\n\t\t * with auto-detection for `format: 'text'` (textarea) and `type: 'array'`.\n\t\t * Accepted: 'text', 'number', 'boolean', 'datetime', 'textarea', 'array', 'select'.\n\t\t */\n\t\twidget: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (v) => v === null || SUPPORTED_WIDGETS.includes(v),\n\t\t},\n\n\t\t/** Options for the `select` widget. Each option may be a string, or `{ id, label }`. */\n\t\tselectOptions: { type: Array, default: null },\n\t\t/** Whether the `select` widget allows multiple values. */\n\t\tselectMultiple: { type: Boolean, default: true },\n\t\t/** Number of rows for the `textarea` widget. */\n\t\ttextareaRows: { type: Number, default: 4 },\n\t\t/** CSS height for the `object` widget's CodeMirror editor. */\n\t\tobjectEditorHeight: { type: String, default: '300px' },\n\t},\n\n\temits: ['update:value'],\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Optimistic color value while the user is dragging the native picker.\n\t\t\t * Used for the swatch preview to feel instant; the upstream\n\t\t\t * `update:value` emit is debounced so validation/re-renders don't\n\t\t\t * fire on every drag tick.\n\t\t\t */\n\t\t\tpendingColor: null,\n\t\t\tpendingColorTimer: null,\n\t\t\tcolorPickerOpen: false,\n\t\t\t/** State for the object-array sub-dialog. `null` index means \"add new\". */\n\t\t\tobjectArrayDialogOpen: false,\n\t\t\tobjectArrayDialogIndex: null,\n\t\t\tobjectArrayDialogItem: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tschemaProp() {\n\t\t\treturn this.schema?.properties?.[this.propertyKey] || null\n\t\t},\n\n\t\t/**\n\t\t * Resolved widget after applying explicit override + schema auto-detection.\n\t\t * Arrays and string-with-enum become a `select` widget; the array/enum\n\t\t * shape is inferred from the schema by the `effectiveSelect*` computeds.\n\t\t *\n\t\t * @return {string} one of SUPPORTED_WIDGETS\n\t\t */\n\t\tresolvedWidget() {\n\t\t\tif (this.widget === 'array') {\n\t\t\t\treturn 'select'\n\t\t\t}\n\t\t\tif (this.widget) {\n\t\t\t\treturn this.widget\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn 'text'\n\t\t\t}\n\t\t\tif (prop.type === 'boolean') {\n\t\t\t\treturn 'boolean'\n\t\t\t}\n\t\t\tif (prop.type === 'array') {\n\t\t\t\tif (prop.items?.type === 'object') {\n\t\t\t\t\treturn 'objectArray'\n\t\t\t\t}\n\t\t\t\treturn 'select'\n\t\t\t}\n\t\t\tif (prop.type === 'object') {\n\t\t\t\treturn 'object'\n\t\t\t}\n\t\t\tif (prop.type === 'string') {\n\t\t\t\tif (Array.isArray(prop.enum) && prop.enum.length > 0) {\n\t\t\t\t\treturn 'select'\n\t\t\t\t}\n\t\t\t\tconst fmt = prop.format || ''\n\t\t\t\tif (['date', 'time', 'date-time'].includes(fmt)) {\n\t\t\t\t\treturn 'datetime'\n\t\t\t\t}\n\t\t\t\tif (TEXTAREA_FORMATS.has(fmt)) {\n\t\t\t\t\treturn 'textarea'\n\t\t\t\t}\n\t\t\t\tif (COLOR_FORMATS.has(fmt)) {\n\t\t\t\t\treturn 'color'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prop.type === 'number' || prop.type === 'integer') {\n\t\t\t\treturn 'number'\n\t\t\t}\n\t\t\treturn 'text'\n\t\t},\n\n\t\tinputType() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn 'text'\n\t\t\t}\n\t\t\tconst fmt = prop.format || ''\n\t\t\tif (prop.type === 'string') {\n\t\t\t\tif (fmt === 'email' || fmt === 'idn-email') {\n\t\t\t\t\treturn 'email'\n\t\t\t\t}\n\t\t\t\tif (URL_FORMATS.has(fmt)) {\n\t\t\t\t\treturn 'url'\n\t\t\t\t}\n\t\t\t\tif (fmt === 'password') {\n\t\t\t\t\treturn 'password'\n\t\t\t\t}\n\t\t\t\tif (fmt === 'telephone' || fmt === 'phone') {\n\t\t\t\t\treturn 'tel'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prop.type === 'number' || prop.type === 'integer') {\n\t\t\t\treturn 'number'\n\t\t\t}\n\t\t\treturn 'text'\n\t\t},\n\n\t\tpattern() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop || prop.type !== 'string') {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (prop.pattern) {\n\t\t\t\treturn prop.pattern\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tcolorPlaceholder() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tswitch (fmt) {\n\t\t\t\tcase 'color-hex': return '#rrggbb'\n\t\t\t\tcase 'color-hex-alpha': return '#rrggbbaa'\n\t\t\t\tcase 'color-rgb': return 'rgb(0, 0, 0)'\n\t\t\t\tcase 'color-rgba': return 'rgba(0, 0, 0, 1)'\n\t\t\t\tcase 'color-hsl': return 'hsl(0, 0%, 0%)'\n\t\t\t\tcase 'color-hsla': return 'hsla(0, 0%, 0%, 1)'\n\t\t\t\tdefault: return this.displayName || '#rrggbb'\n\t\t\t}\n\t\t},\n\n\t\t/** CSS-renderable representation of the current color value (raw value works for all standard formats). */\n\t\tcolorPreviewValue() {\n\t\t\tif (this.pendingColor) {\n\t\t\t\treturn this.pendingColor\n\t\t\t}\n\t\t\tconst v = this.stringValue\n\t\t\tif (!v) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\treturn v\n\t\t},\n\n\t\t/** Text-field value: shows the optimistic pendingColor while the picker is dragging. */\n\t\tcolorTextValue() {\n\t\t\tif (this.pendingColor) {\n\t\t\t\treturn this.pendingColor\n\t\t\t}\n\t\t\treturn this.stringValue\n\t\t},\n\n\t\t/** True when the schema-declared format includes an alpha channel. */\n\t\thasAlpha() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\treturn fmt === 'color-hex-alpha' || fmt === 'color-rgba' || fmt === 'color-hsla'\n\t\t},\n\n\t\t/**\n\t\t * Lock the picker's numeric-field mode to match the schema format so\n\t\t * the user can't edit, say, an `rgba()` value via hex inputs.\n\t\t */\n\t\tcolorPickerMode() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tif (fmt === 'color-rgb' || fmt === 'color-rgba') {\n\t\t\t\treturn 'rgb'\n\t\t\t}\n\t\t\tif (fmt === 'color-hsl' || fmt === 'color-hsla') {\n\t\t\t\treturn 'hsl'\n\t\t\t}\n\t\t\treturn 'hex'\n\t\t},\n\n\t\t/**\n\t\t * Value passed to vue-color's `Chrome` picker. We feed the picker the\n\t\t * latest displayable value (pending or committed) so dragging the\n\t\t * picker stays smooth even while the upstream emit is debounced.\n\t\t */\n\t\tchromePickerValue() {\n\t\t\tconst v = this.pendingColor || this.stringValue\n\t\t\tif (v) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\treturn { hex: this.hexColorValue, a: 1 }\n\t\t},\n\n\t\t/**\n\t\t * Inline style for the color swatch: layers a solid color over the checker\n\t\t * background-image so alpha colors render against the checker pattern.\n\t\t */\n\t\tcolorSwatchStyle() {\n\t\t\tconst c = this.colorPreviewValue\n\t\t\tif (!c) {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t\tconst fill = `linear-gradient(${c}, ${c})`\n\t\t\treturn {\n\t\t\t\tbackgroundImage: `${fill}, var(--cn-color-swatch-checker)`,\n\t\t\t\tbackgroundSize: '100% 100%, 8px 8px',\n\t\t\t\tbackgroundPosition: '0 0, 0 0',\n\t\t\t}\n\t\t},\n\n\t\t/** Hex string used as the value of the native `<input type=\"color\">`. */\n\t\thexColorValue() {\n\t\t\tconst v = this.stringValue\n\t\t\tif (!v) {\n\t\t\t\treturn '#000000'\n\t\t\t}\n\t\t\tconst trimmed = v.trim()\n\t\t\tconst hexMatch = trimmed.match(/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i)\n\t\t\tif (hexMatch) {\n\t\t\t\tconst h = hexMatch[1]\n\t\t\t\tif (h.length === 3 || h.length === 4) {\n\t\t\t\t\treturn '#' + h.slice(0, 3).split('').map((c) => c + c).join('')\n\t\t\t\t}\n\t\t\t\treturn '#' + h.slice(0, 6)\n\t\t\t}\n\t\t\tconst computed = this.cssColorToHex(trimmed)\n\t\t\treturn computed || '#000000'\n\t\t},\n\n\t\tminimum() {\n\t\t\treturn this.schemaProp?.minimum\n\t\t},\n\n\t\tmaximum() {\n\t\t\treturn this.schemaProp?.maximum\n\t\t},\n\n\t\tstep() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (prop?.type === 'integer') {\n\t\t\t\treturn '1'\n\t\t\t}\n\t\t\tif (prop?.type === 'number') {\n\t\t\t\treturn 'any'\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tminLengthAttr() {\n\t\t\tconst v = this.schemaProp?.minLength\n\t\t\treturn typeof v === 'number' ? v : undefined\n\t\t},\n\n\t\tmaxLengthAttr() {\n\t\t\tconst v = this.schemaProp?.maxLength\n\t\t\treturn typeof v === 'number' ? v : undefined\n\t\t},\n\n\t\tshowHelpText() {\n\t\t\treturn this.isEditable && (this.resolvedWidget === 'boolean' || this.isEditing)\n\t\t},\n\n\t\thelpDescription() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\treturn prop.userDescription || prop.description || ''\n\t\t},\n\n\t\thelpExample() {\n\t\t\tconst ex = this.schemaProp?.example\n\t\t\tif (ex === undefined || ex === null || ex === '') {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tif (typeof ex === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.stringify(ex)\n\t\t\t\t} catch {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn String(ex)\n\t\t},\n\n\t\t/**\n\t\t * Inline validation message for the current value, or null when valid.\n\t\t * Required-ness is owned by the parent form so it isn't surfaced here.\n\t\t */\n\t\tfieldError() {\n\t\t\tconst raw = validateValue(this.value, this.schemaProp || {})\n\t\t\treturn raw ? t('nextcloud-vue', raw) : null\n\t\t},\n\n\t\t/** Resolved option list for the `select` widget (explicit prop, schema enum, or items.enum). */\n\t\teffectiveSelectOptions() {\n\t\t\tif (this.selectOptions) {\n\t\t\t\treturn this.selectOptions\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (!prop) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tif (Array.isArray(prop.enum) && prop.enum.length > 0) {\n\t\t\t\treturn prop.enum\n\t\t\t}\n\t\t\tif (prop.type === 'array' && Array.isArray(prop.items?.enum) && prop.items.enum.length > 0) {\n\t\t\t\treturn prop.items.enum\n\t\t\t}\n\t\t\treturn []\n\t\t},\n\n\t\t/** Whether the `select` widget allows multiple values. */\n\t\teffectiveSelectMultiple() {\n\t\t\tif (this.widget === 'select') {\n\t\t\t\treturn this.selectMultiple\n\t\t\t}\n\t\t\tif (this.widget === 'array') {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (prop?.type === 'array') {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/** Whether the `select` widget accepts free-form tags (no fixed enum). */\n\t\teffectiveSelectTaggable() {\n\t\t\tif (this.widget === 'select') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst prop = this.schemaProp\n\t\t\tconst isArray = this.widget === 'array' || prop?.type === 'array'\n\t\t\treturn isArray && this.effectiveSelectOptions.length === 0\n\t\t},\n\n\t\t/** Selected-value object(s) for NcSelect, mapping ids back to option objects when needed. */\n\t\teffectiveSelectValue() {\n\t\t\tconst v = this.value\n\t\t\tconst opts = this.effectiveSelectOptions\n\t\t\tconst lookup = (id) => {\n\t\t\t\tconst match = opts.find((o) => (typeof o === 'object' ? o.id : o) === id)\n\t\t\t\treturn match !== undefined ? match : id\n\t\t\t}\n\t\t\tif (this.effectiveSelectMultiple) {\n\t\t\t\tif (!Array.isArray(v)) {\n\t\t\t\t\treturn []\n\t\t\t\t}\n\t\t\t\treturn v.map(lookup)\n\t\t\t}\n\t\t\tif (v === null || v === undefined || v === '') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn lookup(v)\n\t\t},\n\n\t\t/** Items array for the `objectArray` widget. Always an array. */\n\t\tobjectArrayItems() {\n\t\t\treturn Array.isArray(this.value) ? this.value : []\n\t\t},\n\n\t\t/** Title shown in the sub-dialog when adding/editing an object item. */\n\t\tobjectArrayDialogTitle() {\n\t\t\tconst itemTitle = this.schemaProp?.items?.title || this.displayName || t('nextcloud-vue', 'Item')\n\t\t\treturn this.objectArrayDialogIndex === null\n\t\t\t\t? t('nextcloud-vue', 'Add {title}', { title: itemTitle })\n\t\t\t\t: t('nextcloud-vue', 'Edit {title}', { title: itemTitle })\n\t\t},\n\n\t\t/**\n\t\t * NcDateTimePicker `type` mapped from the schema's string `format`.\n\t\t * Falls back to `datetime` for unknown date-ish formats.\n\t\t */\n\t\tdatetimePickerType() {\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tif (fmt === 'date') {\n\t\t\t\treturn 'date'\n\t\t\t}\n\t\t\tif (fmt === 'time') {\n\t\t\t\treturn 'time'\n\t\t\t}\n\t\t\treturn 'datetime'\n\t\t},\n\n\t\t/** Current value as a `Date` instance for NcDateTimePicker, or null. */\n\t\tdatetimeValue() {\n\t\t\tconst v = this.value\n\t\t\tif (!v) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t// Date-only strings (YYYY-MM-DD) are parsed as UTC midnight by the spec,\n\t\t\t// which shifts to the previous day in positive-UTC-offset timezones when\n\t\t\t// fed to a picker that renders in local time. Parse them as local midnight.\n\t\t\tif (this.schemaProp?.format === 'date'\n\t\t\t\t&& typeof v === 'string'\n\t\t\t\t&& /^\\d{4}-\\d{2}-\\d{2}$/.test(v)) {\n\t\t\t\tconst [year, month, day] = v.split('-').map(Number)\n\t\t\t\treturn new Date(year, month - 1, day)\n\t\t\t}\n\t\t\tconst d = new Date(v)\n\t\t\treturn Number.isNaN(d.getTime()) ? null : d\n\t\t},\n\n\t\tstringValue() {\n\t\t\tconst v = this.value\n\t\t\tif (v === null || v === undefined) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tif (typeof v === 'string') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (typeof v === 'object') {\n\t\t\t\treturn JSON.stringify(v)\n\t\t\t}\n\t\t\treturn String(v)\n\t\t},\n\n\t\tobjectJsonString() {\n\t\t\tconst v = this.value\n\t\t\tif (v === null || v === undefined) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tif (typeof v === 'string') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(v, null, 2)\n\t\t\t} catch {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\n\t\tformattedObjectValue() {\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(this.value, null, 2)\n\t\t\t} catch {\n\t\t\t\treturn formatValue(this.value, this.schemaProp || {})\n\t\t\t}\n\t\t},\n\n\t\tdisplayValue() {\n\t\t\tconst prop = this.schemaProp\n\t\t\tif (prop?.const !== undefined) {\n\t\t\t\treturn prop.const\n\t\t\t}\n\t\t\tconst v = this.value\n\t\t\tif (v === null || v === undefined || v === '') {\n\t\t\t\treturn '—'\n\t\t\t}\n\t\t\treturn formatValue(v, prop || {})\n\t\t},\n\n\t\tformattedDateValue() {\n\t\t\tconst v = this.value\n\t\t\tif (!v) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\t// Same local-midnight parse as datetimeValue to avoid UTC-shift in display.\n\t\t\tif (fmt === 'date' && typeof v === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(v)) {\n\t\t\t\tconst [year, month, day] = v.split('-').map(Number)\n\t\t\t\treturn new Date(year, month - 1, day).toLocaleDateString(userLocale())\n\t\t\t}\n\t\t\tconst d = new Date(v)\n\t\t\tif (Number.isNaN(d.getTime())) {\n\t\t\t\treturn String(v)\n\t\t\t}\n\t\t\tif (fmt === 'date') {\n\t\t\t\treturn d.toLocaleDateString(userLocale())\n\t\t\t}\n\t\t\tif (fmt === 'time') {\n\t\t\t\treturn d.toLocaleTimeString(userLocale())\n\t\t\t}\n\t\t\treturn d.toLocaleString(userLocale())\n\t\t},\n\t},\n\n\tbeforeUnmount() {\n\t\tif (this.pendingColorTimer) {\n\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\tthis.pendingColorTimer = null\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/** Focus the underlying text input (called by parent after row click) */\n\t\tfocus() {\n\t\t\tconst ref = this.$refs.inputRef\n\t\t\tif (!ref) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst el = ref.$el || ref\n\t\t\tconst input = el?.querySelector?.('input,textarea')\n\t\t\tif (input) {\n\t\t\t\tinput.focus()\n\t\t\t\tif (typeof input.select === 'function') {\n\t\t\t\t\tinput.select()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\temit(newVal) {\n\t\t\tthis.$emit('update:value', newVal)\n\t\t},\n\n\t\temitConverted(newVal) {\n\t\t\tconst prop = this.schemaProp\n\t\t\tlet converted = newVal\n\t\t\tif (prop) {\n\t\t\t\tswitch (prop.type) {\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\tconverted = newVal === '' ? null : parseFloat(newVal)\n\t\t\t\t\t\tif (Number.isNaN(converted)) {\n\t\t\t\t\t\t\tconverted = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'integer':\n\t\t\t\t\t\tconverted = newVal === '' ? null : parseInt(newVal, 10)\n\t\t\t\t\t\tif (Number.isNaN(converted)) {\n\t\t\t\t\t\t\tconverted = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tconverted = Boolean(newVal)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tconverted = newVal\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.$emit('update:value', converted)\n\t\t},\n\n\t\t/**\n\t\t * Emit a `Date` from NcDateTimePicker as the schema-appropriate string:\n\t\t * `date` → `YYYY-MM-DD`, `time` → `HH:MM:SS`, `date-time` → ISO 8601.\n\t\t *\n\t\t * @param {Date|null} date - Date emitted by the picker.\n\t\t */\n\t\temitDatetime(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.$emit('update:value', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst fmt = this.schemaProp?.format\n\t\t\tif (fmt === 'date') {\n\t\t\t\t// Use local-time accessors — toISOString() converts to UTC first,\n\t\t\t\t// which shifts midnight local time to the previous day in UTC+n zones.\n\t\t\t\tconst year = date.getFullYear()\n\t\t\t\tconst month = String(date.getMonth() + 1).padStart(2, '0')\n\t\t\t\tconst day = String(date.getDate()).padStart(2, '0')\n\t\t\t\tthis.$emit('update:value', `${year}-${month}-${day}`)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (fmt === 'time') {\n\t\t\t\tthis.$emit('update:value', date.toTimeString().slice(0, 8))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$emit('update:value', date.toISOString())\n\t\t},\n\n\t\temitObject(jsonString) {\n\t\t\tif (typeof jsonString !== 'string') {\n\t\t\t\tthis.$emit('update:value', jsonString)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst trimmed = jsonString.trim()\n\t\t\tif (trimmed === '') {\n\t\t\t\tthis.$emit('update:value', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.$emit('update:value', JSON.parse(trimmed))\n\t\t\t} catch {\n\t\t\t\t// Invalid JSON: keep the raw string so the user sees what they typed.\n\t\t\t\t// CnJsonViewer surfaces a parse error inline; the parent's save path\n\t\t\t\t// can refuse non-object values if it requires structured data.\n\t\t\t\tthis.$emit('update:value', jsonString)\n\t\t\t}\n\t\t},\n\n\t\temitSelect(selected) {\n\t\t\tconst toId = (item) => (item && typeof item === 'object' ? item.id : item)\n\t\t\tif (this.effectiveSelectMultiple) {\n\t\t\t\tconst arr = Array.isArray(selected) ? selected : []\n\t\t\t\tconst itemType = this.schemaProp?.items?.type\n\t\t\t\t// Coerce taggable input (always emitted as strings) to the\n\t\t\t\t// declared `items.type`. Drop entries that fail to coerce.\n\t\t\t\tconst coerced = arr\n\t\t\t\t\t.map(toId)\n\t\t\t\t\t.map((v) => this.coerceItem(v, itemType))\n\t\t\t\t\t.filter((v) => v !== undefined)\n\t\t\t\tthis.$emit('update:value', coerced)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$emit('update:value', selected === null || selected === undefined ? null : toId(selected))\n\t\t},\n\n\t\t/**\n\t\t * Coerce a raw select-emitted value (typically a string from a\n\t\t * taggable NcSelect) into the array's declared `items.type`. Returns\n\t\t * `undefined` for entries that can't be coerced so the caller can drop\n\t\t * them from the array.\n\t\t *\n\t\t * @param {unknown} v - The raw value.\n\t\t * @param {string} [itemType] - Schema `items.type` (string, number, integer, boolean).\n\t\t * @return {unknown}\n\t\t */\n\t\tcoerceItem(v, itemType) {\n\t\t\tif (v === null || v === undefined) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\t// No declared item type — pass through untouched (preserves the\n\t\t\t// shape consumers may have set up via `selectOptions` etc).\n\t\t\tif (!itemType) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\t// Already the right shape — pass through.\n\t\t\tif (itemType === 'number' && typeof v === 'number') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (itemType === 'integer' && typeof v === 'number' && Number.isInteger(v)) {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (itemType === 'boolean' && typeof v === 'boolean') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tif (itemType === 'string' && typeof v === 'string') {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tconst s = String(v).trim()\n\t\t\tif (s === '') {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (itemType === 'number') {\n\t\t\t\tconst n = Number(s)\n\t\t\t\treturn Number.isFinite(n) ? n : undefined\n\t\t\t}\n\t\t\tif (itemType === 'integer') {\n\t\t\t\tconst n = Number(s)\n\t\t\t\treturn Number.isFinite(n) && Number.isInteger(n) ? n : undefined\n\t\t\t}\n\t\t\tif (itemType === 'boolean') {\n\t\t\t\tif (/^(true|1|yes|on)$/i.test(s)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (/^(false|0|no|off)$/i.test(s)) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn s\n\t\t},\n\n\t\t/**\n\t\t * Open the sub-dialog to add a new object item or edit an existing\n\t\t * one. `idx === null` means add.\n\t\t *\n\t\t * @param {number|null} idx - Index of the item to edit, or `null`.\n\t\t */\n\t\topenObjectArrayItem(idx) {\n\t\t\tthis.objectArrayDialogIndex = idx\n\t\t\tthis.objectArrayDialogItem = idx === null\n\t\t\t\t? null\n\t\t\t\t: JSON.parse(JSON.stringify(this.objectArrayItems[idx] || {}))\n\t\t\tthis.objectArrayDialogOpen = true\n\t\t},\n\n\t\tcloseObjectArrayDialog() {\n\t\t\tthis.objectArrayDialogOpen = false\n\t\t\tthis.objectArrayDialogIndex = null\n\t\t\tthis.objectArrayDialogItem = null\n\t\t},\n\n\t\t/**\n\t\t * Confirmed object from the sub-dialog. Replace the existing item or\n\t\t * append a new one, then emit the updated array.\n\t\t *\n\t\t * @param {object} formData - Form data emitted by CnAdvancedFormDialog.\n\t\t */\n\t\tonObjectArrayConfirm(formData) {\n\t\t\tconst next = [...this.objectArrayItems]\n\t\t\tif (this.objectArrayDialogIndex === null) {\n\t\t\t\tnext.push(formData)\n\t\t\t} else {\n\t\t\t\tnext.splice(this.objectArrayDialogIndex, 1, formData)\n\t\t\t}\n\t\t\tthis.$emit('update:value', next)\n\t\t\tthis.closeObjectArrayDialog()\n\t\t},\n\n\t\t/**\n\t\t * Remove an item from the object array.\n\t\t *\n\t\t * @param {number} idx - Index of the item to remove.\n\t\t */\n\t\tremoveObjectArrayItem(idx) {\n\t\t\tconst next = [...this.objectArrayItems]\n\t\t\tnext.splice(idx, 1)\n\t\t\tthis.$emit('update:value', next)\n\t\t},\n\n\t\t/**\n\t\t * Pick a human-readable label for an item chip. Tries the schema-\n\t\t * declared name field first, then the first non-empty primitive\n\t\t * property, then falls back to \"Item N\".\n\t\t *\n\t\t * @param {object} item - The array item.\n\t\t * @param {number} idx - Index of the item (used for fallback label).\n\t\t * @return {string}\n\t\t */\n\t\tobjectArrayItemLabel(item, idx) {\n\t\t\tconst items = this.schemaProp?.items\n\t\t\tconst nameField = items?.objectConfiguration?.objectNameField\n\t\t\t\t|| items?.configuration?.objectNameField\n\t\t\tif (nameField && item && item[nameField] !== null && item[nameField] !== undefined && item[nameField] !== '') {\n\t\t\t\treturn String(item[nameField])\n\t\t\t}\n\t\t\tif (item && typeof item === 'object') {\n\t\t\t\tfor (const v of Object.values(item)) {\n\t\t\t\t\tif (v === null || v === undefined || v === '') {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {\n\t\t\t\t\t\treturn String(v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn t('nextcloud-vue', 'Item {n}', { n: idx + 1 })\n\t\t},\n\n\t\tisValidDate(v) {\n\t\t\tif (!v) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst d = new Date(v)\n\t\t\treturn d instanceof Date && !Number.isNaN(d.getTime())\n\t\t},\n\n\t\t/**\n\t\t * Convert any CSS-recognized color string to a 6-digit hex string by\n\t\t * round-tripping through a detached DOM node. Returns null when the\n\t\t * browser cannot parse the input.\n\t\t *\n\t\t * @param {string} cssValue - The CSS color value to convert.\n\t\t * @return {string|null}\n\t\t */\n\t\tcssColorToHex(cssValue) {\n\t\t\ttry {\n\t\t\t\tconst el = document.createElement('div')\n\t\t\t\tel.style.color = ''\n\t\t\t\tel.style.color = cssValue\n\t\t\t\tif (!el.style.color) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tdocument.body.appendChild(el)\n\t\t\t\tconst rgb = getComputedStyle(el).color\n\t\t\t\tdocument.body.removeChild(el)\n\t\t\t\tconst m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/)\n\t\t\t\tif (!m) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tconst toHex = (n) => parseInt(n, 10).toString(16).padStart(2, '0')\n\t\t\t\treturn `#${toHex(m[1])}${toHex(m[2])}${toHex(m[3])}`\n\t\t\t} catch {\n\t\t\t\treturn null\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Continuous handler for vue-color's `Chrome` picker. Updates the\n\t\t * swatch + text input synchronously via `pendingColor`, but debounces\n\t\t * the upstream `update:value` emit so validation and parent re-renders\n\t\t * don't fire on every drag tick.\n\t\t *\n\t\t * @param {object} color - vue-color emitted color object.\n\t\t * @param {string} color.hex - `#rrggbb`.\n\t\t * @param {string} [color.hex8] - `#rrggbbaa`, when alpha is enabled.\n\t\t * @param {object} color.rgba - RGBA components (`r`, `g`, `b`, `a`).\n\t\t * @param {object} color.hsl - HSL components (`h`, `s`, `l`, `a`).\n\t\t * @param {number} [color.a] - Alpha 0–1.\n\t\t */\n\t\tonChromeColorInput(color) {\n\t\t\tthis.pendingColor = this.chromeColorToFormatValue(color)\n\t\t\tif (this.pendingColorTimer) {\n\t\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\t}\n\t\t\tthis.pendingColorTimer = setTimeout(() => this.flushPendingColor(), 120)\n\t\t},\n\n\t\t/**\n\t\t * Translate vue-color's emitted color object into the schema-declared\n\t\t * color format string.\n\t\t *\n\t\t * @param {object} color - vue-color color object.\n\t\t * @return {string}\n\t\t */\n\t\tchromeColorToFormatValue(color) {\n\t\t\tconst fmt = this.schemaProp?.format || 'color-hex'\n\t\t\tconst { rgba, hex, hex8 } = color || {}\n\t\t\tconst r = rgba?.r ?? 0\n\t\t\tconst g = rgba?.g ?? 0\n\t\t\tconst b = rgba?.b ?? 0\n\t\t\tconst a = rgba?.a ?? color?.a ?? 1\n\t\t\tif (fmt === 'color-hex' || fmt === 'color') {\n\t\t\t\treturn (hex || '#000000').toLowerCase()\n\t\t\t}\n\t\t\tif (fmt === 'color-hex-alpha') {\n\t\t\t\tif (hex8) {\n\t\t\t\t\treturn hex8.toLowerCase()\n\t\t\t\t}\n\t\t\t\tconst aHex = Math.round(a * 255).toString(16).padStart(2, '0')\n\t\t\t\treturn ((hex || '#000000') + aHex).toLowerCase()\n\t\t\t}\n\t\t\tif (fmt === 'color-rgb') {\n\t\t\t\treturn `rgb(${r}, ${g}, ${b})`\n\t\t\t}\n\t\t\tif (fmt === 'color-rgba') {\n\t\t\t\treturn `rgba(${r}, ${g}, ${b}, ${this.formatAlpha(a)})`\n\t\t\t}\n\t\t\tif (fmt === 'color-hsl' || fmt === 'color-hsla') {\n\t\t\t\tconst { h, s, l } = this.rgbToHsl(r, g, b)\n\t\t\t\tif (fmt === 'color-hsla') {\n\t\t\t\t\treturn `hsla(${h}, ${s}%, ${l}%, ${this.formatAlpha(a)})`\n\t\t\t\t}\n\t\t\t\treturn `hsl(${h}, ${s}%, ${l}%)`\n\t\t\t}\n\t\t\treturn hex || '#000000'\n\t\t},\n\n\t\t/** Emit the pending color upstream and clear local state. */\n\t\tflushPendingColor() {\n\t\t\tif (this.pendingColorTimer) {\n\t\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\t\tthis.pendingColorTimer = null\n\t\t\t}\n\t\t\tif (this.pendingColor === null) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst out = this.pendingColor\n\t\t\tthis.pendingColor = null\n\t\t\tthis.$emit('update:value', out)\n\t\t},\n\n\t\t/**\n\t\t * Manual text-field edit for a color value. Cancels any in-flight\n\t\t * picker debounce so the typed value isn't immediately overwritten.\n\t\t *\n\t\t * @param {string} v - The new text value.\n\t\t */\n\t\tonColorTextInput(v) {\n\t\t\tif (this.pendingColorTimer) {\n\t\t\t\tclearTimeout(this.pendingColorTimer)\n\t\t\t\tthis.pendingColorTimer = null\n\t\t\t}\n\t\t\tthis.pendingColor = null\n\t\t\tthis.$emit('update:value', v)\n\t\t},\n\n\t\t/**\n\t\t * Format an alpha 0–1 for CSS output (max 2 decimals, drops trailing zeros).\n\t\t *\n\t\t * @param {number} a - Alpha in 0–1 range.\n\t\t * @return {string}\n\t\t */\n\t\tformatAlpha(a) {\n\t\t\treturn Number.isInteger(a) ? String(a) : a.toFixed(2).replace(/\\.?0+$/, '') || '0'\n\t\t},\n\n\t\trgbToHsl(r, g, b) {\n\t\t\tconst rN = r / 255\n\t\t\tconst gN = g / 255\n\t\t\tconst bN = b / 255\n\t\t\tconst max = Math.max(rN, gN, bN)\n\t\t\tconst min = Math.min(rN, gN, bN)\n\t\t\tconst l = (max + min) / 2\n\t\t\tlet h = 0\n\t\t\tlet s = 0\n\t\t\tif (max !== min) {\n\t\t\t\tconst d = max - min\n\t\t\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\t\t\t\tswitch (max) {\n\t\t\t\t\tcase rN:\n\t\t\t\t\t\th = (gN - bN) / d + (gN < bN ? 6 : 0)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase gN:\n\t\t\t\t\t\th = (bN - rN) / d + 2\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase bN:\n\t\t\t\t\t\th = (rN - gN) / d + 4\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\th /= 6\n\t\t\t}\n\t\t\treturn {\n\t\t\t\th: Math.round(h * 360),\n\t\t\t\ts: Math.round(s * 100),\n\t\t\t\tl: Math.round(l * 100),\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n.cn-advanced-form-dialog__value-input-container {\n\twidth: 100%;\n\tmin-width: 0;\n}\n\n.cn-advanced-form-dialog__value-input-container :deep(.text-field) {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.cn-advanced-form-dialog__boolean-input-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n\n.cn-advanced-form-dialog__array-input-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n\n.cn-advanced-form-dialog__array-input-row > :first-child {\n\tflex: 1;\n}\n\n/* patch extreme size in field */\n.cn-advanced-form-dialog__boolean-input-row__input > span {\n\tpadding-left: 0;\n\tpadding-block: 0;\n}\n\n.cn-advanced-form-dialog__boolean-input-row__input > input {\n\tmargin: 0;\n}\n\n.cn-advanced-form-dialog__info-icon {\n\tflex-shrink: 0;\n\tcolor: var(--color-text-maxcontrast);\n\tcursor: help;\n}\n\n.cn-advanced-form-dialog__json-value {\n\tmax-height: 200px;\n\toverflow-y: auto;\n\twhite-space: pre-wrap;\n\tfont-family: monospace;\n\tfont-size: 12px;\n\tbackground: var(--color-background-dark);\n\tpadding: 8px;\n\tborder-radius: 4px;\n\tmargin: 0;\n}\n\n/* Textarea: keep it inside the table cell instead of overflowing.\n NcTextArea's wrapper has a fixed height (`calc(var(--default-clickable-area) * 2)`)\n that ignores the `rows` attribute, which causes the textarea to render with a\n too-small viewport. Let the wrapper grow with its content instead. */\n.cn-advanced-form-dialog__textarea {\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.cn-advanced-form-dialog__textarea :deep(.textarea__main-wrapper) {\n\theight: auto;\n\tmin-height: var(--default-clickable-area);\n}\n\n.cn-advanced-form-dialog__textarea :deep(textarea) {\n\twidth: 100%;\n\tmax-width: 100%;\n\tbox-sizing: border-box;\n\tresize: vertical;\n\tmin-height: 80px;\n\tmax-height: 240px;\n\tdisplay: block;\n}\n\n/* Color widget: clickable swatch (native picker) + visible text input */\n.cn-advanced-form-dialog__color-input-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\twidth: 100%;\n}\n\n.cn-advanced-form-dialog__color-input-row > :last-child {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.cn-advanced-form-dialog__color-swatch {\n\t--cn-color-swatch-checker:\n\t\tlinear-gradient(45deg, var(--color-background-dark) 25%, transparent 25%),\n\t\tlinear-gradient(-45deg, var(--color-background-dark) 25%, transparent 25%),\n\t\tlinear-gradient(45deg, transparent 75%, var(--color-background-dark) 75%),\n\t\tlinear-gradient(-45deg, transparent 75%, var(--color-background-dark) 75%);\n\tdisplay: inline-block;\n\twidth: 32px;\n\theight: 32px;\n\tflex-shrink: 0;\n\tpadding: 0;\n\tborder: 1px solid var(--color-border);\n\tborder-radius: var(--border-radius);\n\tcursor: pointer;\n\tbackground-image: var(--cn-color-swatch-checker);\n\tbackground-size: 8px 8px;\n\tbackground-position: 0 0, 0 4px, 4px -4px, -4px 0;\n\toverflow: hidden;\n\tposition: relative;\n}\n\n.cn-advanced-form-dialog__color-swatch:focus-visible {\n\toutline: 2px solid var(--color-primary-element);\n\toutline-offset: 2px;\n}\n\n.cn-advanced-form-dialog__color-swatch--readonly {\n\tcursor: default;\n\twidth: 20px;\n\theight: 20px;\n\tvertical-align: middle;\n\tmargin-inline-end: 6px;\n}\n\n.cn-advanced-form-dialog__color-display {\n\tdisplay: inline-flex;\n\talign-items: center;\n}\n\n/* Help text & inline validation under the input */\n.cn-advanced-form-dialog__field-help {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmargin-top: 4px;\n\tfont-size: 0.85em;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.cn-advanced-form-dialog__field-example {\n\tfont-style: italic;\n}\n\n.cn-advanced-form-dialog__field-error {\n\tmargin-top: 4px;\n\tfont-size: 0.85em;\n\tcolor: var(--color-error-text);\n}\n\n.cn-advanced-form-dialog__value-cell-wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n}\n\n/* Object-array widget: chip list + add button */\n.cn-advanced-form-dialog__object-array {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n\twidth: 100%;\n}\n\n.cn-advanced-form-dialog__object-array-chips {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n}\n\n.cn-advanced-form-dialog__object-array-chip {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 2px 4px 2px 10px;\n\tbackground: var(--color-background-dark);\n\tborder: 1px solid var(--color-border);\n\tborder-radius: var(--border-radius-pill, 14px);\n\tcolor: var(--color-main-text);\n\tcursor: pointer;\n\tfont: inherit;\n\tmax-width: 240px;\n}\n\n.cn-advanced-form-dialog__object-array-chip:hover {\n\tbackground: var(--color-background-hover);\n}\n\n.cn-advanced-form-dialog__object-array-chip-label {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.cn-advanced-form-dialog__object-array-chip-remove {\n\tflex-shrink: 0;\n}\n\n.cn-advanced-form-dialog__object-array-add {\n\talign-self: flex-start;\n}\n</style>\n"],"names":["CnJsonViewer","CnColorPicker","t"],"mappings":"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"}