@conduction/nextcloud-vue 0.1.0-beta.3 → 0.1.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/README.md +226 -226
  2. package/dist/nextcloud-vue.cjs.js +60455 -8755
  3. package/dist/nextcloud-vue.cjs.js.map +1 -1
  4. package/dist/nextcloud-vue.css +2062 -528
  5. package/dist/nextcloud-vue.esm.js +60411 -8731
  6. package/dist/nextcloud-vue.esm.js.map +1 -1
  7. package/package.json +75 -62
  8. package/src/components/CnActionsBar/CnActionsBar.vue +235 -225
  9. package/src/components/CnActionsBar/index.js +1 -1
  10. package/src/components/CnAdvancedFormDialog/CnAdvancedFormDialog.vue +579 -0
  11. package/src/components/CnAdvancedFormDialog/CnDataTab.vue +217 -0
  12. package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +121 -0
  13. package/src/components/CnAdvancedFormDialog/CnPropertiesTab.vue +418 -0
  14. package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +247 -0
  15. package/src/components/CnAdvancedFormDialog/index.js +1 -0
  16. package/src/components/CnCardGrid/CnCardGrid.vue +152 -152
  17. package/src/components/CnCardGrid/index.js +1 -1
  18. package/src/components/CnCellRenderer/CnCellRenderer.vue +132 -132
  19. package/src/components/CnCellRenderer/index.js +1 -1
  20. package/src/components/CnChartWidget/CnChartWidget.vue +320 -0
  21. package/src/components/CnChartWidget/index.js +1 -0
  22. package/src/components/CnConfigurationCard/CnConfigurationCard.vue +77 -77
  23. package/src/components/CnConfigurationCard/index.js +1 -1
  24. package/src/components/CnDashboardGrid/CnDashboardGrid.vue +225 -0
  25. package/src/components/CnDashboardGrid/index.js +1 -0
  26. package/src/components/CnDashboardPage/CnDashboardPage.vue +390 -0
  27. package/src/components/CnDashboardPage/index.js +1 -0
  28. package/src/components/CnDataTable/CnDataTable.vue +349 -349
  29. package/src/components/CnDataTable/index.js +1 -1
  30. package/src/components/CnDetailCard/CnDetailCard.vue +214 -0
  31. package/src/components/CnDetailCard/index.js +1 -0
  32. package/src/components/CnDetailPage/CnDetailPage.vue +281 -0
  33. package/src/components/CnDetailPage/index.js +1 -0
  34. package/src/components/CnFacetSidebar/CnFacetSidebar.vue +231 -223
  35. package/src/components/CnFacetSidebar/index.js +1 -1
  36. package/src/components/CnFilterBar/CnFilterBar.vue +152 -152
  37. package/src/components/CnFilterBar/index.js +1 -1
  38. package/src/components/CnIcon/CnIcon.vue +89 -89
  39. package/src/components/CnIcon/index.js +1 -1
  40. package/src/components/CnIndexPage/CnIndexPage.vue +874 -816
  41. package/src/components/CnIndexPage/index.js +1 -1
  42. package/src/components/CnIndexSidebar/CnIndexSidebar.vue +503 -484
  43. package/src/components/CnIndexSidebar/index.js +1 -1
  44. package/src/components/CnItemCard/CnItemCard.vue +132 -0
  45. package/src/components/CnItemCard/index.js +1 -0
  46. package/src/components/CnKpiGrid/CnKpiGrid.vue +89 -89
  47. package/src/components/CnKpiGrid/index.js +1 -1
  48. package/src/components/CnMassActionBar/CnMassActionBar.vue +160 -160
  49. package/src/components/CnMassActionBar/index.js +1 -1
  50. package/src/components/CnMassCopyDialog/CnMassCopyDialog.vue +320 -320
  51. package/src/components/CnMassCopyDialog/index.js +1 -1
  52. package/src/components/CnMassDeleteDialog/CnMassDeleteDialog.vue +238 -238
  53. package/src/components/CnMassDeleteDialog/index.js +1 -1
  54. package/src/components/CnMassExportDialog/CnMassExportDialog.vue +190 -190
  55. package/src/components/CnMassExportDialog/index.js +1 -1
  56. package/src/components/CnMassImportDialog/CnMassImportDialog.vue +491 -491
  57. package/src/components/CnMassImportDialog/index.js +1 -1
  58. package/src/components/CnNoteCard/CnNoteCard.vue +149 -0
  59. package/src/components/CnNoteCard/index.js +1 -0
  60. package/src/components/CnNotesCard/CnNotesCard.vue +413 -0
  61. package/src/components/CnNotesCard/index.js +1 -0
  62. package/src/components/CnObjectCard/CnObjectCard.vue +292 -292
  63. package/src/components/CnObjectCard/index.js +1 -1
  64. package/src/components/CnObjectSidebar/CnObjectSidebar.vue +876 -0
  65. package/src/components/CnObjectSidebar/index.js +1 -0
  66. package/src/components/CnPageHeader/CnPageHeader.vue +57 -57
  67. package/src/components/CnPageHeader/index.js +1 -1
  68. package/src/components/CnPagination/CnPagination.vue +252 -252
  69. package/src/components/CnPagination/index.js +1 -1
  70. package/src/components/CnRowActions/CnRowActions.vue +73 -73
  71. package/src/components/CnRowActions/index.js +1 -1
  72. package/src/components/CnSchemaFormDialog/CnSchemaConfigurationTab.vue +226 -0
  73. package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +787 -0
  74. package/src/components/CnSchemaFormDialog/CnSchemaPropertiesTab.vue +305 -0
  75. package/src/components/CnSchemaFormDialog/CnSchemaPropertyActions.vue +1398 -0
  76. package/src/components/CnSchemaFormDialog/CnSchemaSecurityTab.vue +236 -0
  77. package/src/components/CnSchemaFormDialog/index.js +1 -0
  78. package/src/components/CnSettingsCard/CnSettingsCard.vue +92 -92
  79. package/src/components/CnSettingsCard/index.js +1 -1
  80. package/src/components/CnSettingsSection/CnSettingsSection.vue +266 -266
  81. package/src/components/CnSettingsSection/index.js +1 -1
  82. package/src/components/CnStatsBlock/CnStatsBlock.vue +420 -366
  83. package/src/components/CnStatsBlock/index.js +1 -1
  84. package/src/components/CnStatusBadge/CnStatusBadge.vue +77 -77
  85. package/src/components/CnStatusBadge/index.js +1 -1
  86. package/src/components/CnTabbedFormDialog/CnTabbedFormDialog.vue +540 -0
  87. package/src/components/CnTabbedFormDialog/index.js +1 -0
  88. package/src/components/CnTasksCard/CnTasksCard.vue +373 -0
  89. package/src/components/CnTasksCard/index.js +1 -0
  90. package/src/components/CnTileWidget/CnTileWidget.vue +159 -0
  91. package/src/components/CnTileWidget/index.js +1 -0
  92. package/src/components/CnTimelineStages/CnTimelineStages.vue +292 -0
  93. package/src/components/CnTimelineStages/index.js +1 -0
  94. package/src/components/CnUserActionMenu/CnUserActionMenu.vue +435 -0
  95. package/src/components/CnUserActionMenu/index.js +1 -0
  96. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +312 -312
  97. package/src/components/CnVersionInfoCard/index.js +1 -1
  98. package/src/components/CnWidgetRenderer/CnWidgetRenderer.vue +180 -0
  99. package/src/components/CnWidgetRenderer/index.js +1 -0
  100. package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +211 -0
  101. package/src/components/CnWidgetWrapper/index.js +1 -0
  102. package/src/components/index.js +43 -29
  103. package/src/composables/index.js +4 -3
  104. package/src/composables/useDashboardView.js +240 -0
  105. package/src/composables/useDetailView.js +289 -132
  106. package/src/composables/useListView.js +363 -362
  107. package/src/composables/useSubResource.js +142 -142
  108. package/src/constants/metadata.js +30 -30
  109. package/src/css/CnSchemaFormDialog.css +546 -0
  110. package/src/css/__sample_nextcloud_tokens.css +110 -0
  111. package/src/css/actions-bar.css +48 -48
  112. package/src/css/badge.css +51 -51
  113. package/src/css/card.css +128 -128
  114. package/src/css/dashboard.css +70 -0
  115. package/src/css/detail-page.css +168 -0
  116. package/src/css/detail.css +68 -68
  117. package/src/css/index-page.css +44 -32
  118. package/src/css/index-sidebar.css +193 -187
  119. package/src/css/index.css +16 -12
  120. package/src/css/layout.css +90 -90
  121. package/src/css/page-header.css +33 -33
  122. package/src/css/pagination.css +72 -72
  123. package/src/css/table.css +142 -142
  124. package/src/css/timeline-stages.css +218 -0
  125. package/src/css/utilities.css +46 -46
  126. package/src/index.js +72 -53
  127. package/src/store/createSubResourcePlugin.js +135 -135
  128. package/src/store/index.js +3 -3
  129. package/src/store/plugins/auditTrails.js +17 -17
  130. package/src/store/plugins/files.js +250 -186
  131. package/src/store/plugins/index.js +7 -5
  132. package/src/store/plugins/lifecycle.js +180 -180
  133. package/src/store/plugins/relations.js +68 -68
  134. package/src/store/plugins/search.js +372 -0
  135. package/src/store/plugins/selection.js +104 -0
  136. package/src/store/useObjectStore.js +829 -686
  137. package/src/types/auditTrail.d.ts +32 -32
  138. package/src/types/file.d.ts +23 -23
  139. package/src/types/index.d.ts +35 -35
  140. package/src/types/notification.d.ts +36 -36
  141. package/src/types/object.d.ts +40 -40
  142. package/src/types/organisation.d.ts +41 -41
  143. package/src/types/register.d.ts +25 -25
  144. package/src/types/schema.d.ts +39 -39
  145. package/src/types/shared.d.ts +79 -79
  146. package/src/types/source.d.ts +14 -14
  147. package/src/types/task.d.ts +31 -31
  148. package/src/utils/errors.js +96 -96
  149. package/src/utils/headers.js +68 -50
  150. package/src/utils/id.js +13 -0
  151. package/src/utils/index.js +3 -3
  152. package/src/utils/schema.js +422 -419
@@ -1,186 +1,250 @@
1
- import { createSubResourcePlugin } from '../createSubResourcePlugin.js'
2
- import { buildHeaders } from '../../utils/headers.js'
3
- import { parseResponseError, networkError } from '../../utils/errors.js'
4
-
5
- /**
6
- * Files plugin for the object store.
7
- *
8
- * Extends the generic sub-resource with file-specific actions:
9
- * upload (multipart), publish, unpublish, and delete.
10
- *
11
- * State: files, filesLoading, filesError
12
- * Actions: fetchFiles, uploadFiles, publishFile, unpublishFile, deleteFile, clearFiles
13
- * Getters: getFiles, isFilesLoading, getFilesError
14
- *
15
- * @param {object} [options={}] Plugin options
16
- * @param {number} [options.limit=20] Default page size
17
- * @return {Function} Plugin factory
18
- *
19
- * @example
20
- * const useStore = createObjectStore('object', {
21
- * plugins: [filesPlugin()],
22
- * })
23
- * const store = useStore()
24
- * await store.fetchFiles('case', caseId)
25
- * await store.uploadFiles('case', caseId, formData)
26
- * await store.publishFile('case', caseId, fileId)
27
- */
28
- export function filesPlugin(options = {}) {
29
- const base = createSubResourcePlugin('files', 'files', options)()
30
-
31
- return {
32
- ...base,
33
-
34
- actions: {
35
- ...base.actions,
36
-
37
- /**
38
- * Upload files to an object via multipart form data.
39
- *
40
- * @param {string} type The registered object type slug
41
- * @param {string} objectId The parent object ID
42
- * @param {FormData} formData FormData with files[] and optional tags/share fields
43
- * @return {Promise<object|null>} Upload response or null on error
44
- */
45
- async uploadFiles(type, objectId, formData) {
46
- this.filesLoading = true
47
- this.filesError = null
48
-
49
- try {
50
- const url = this._buildUrl(type, objectId) + '/filesMultipart'
51
-
52
- const response = await fetch(url, {
53
- method: 'POST',
54
- headers: buildHeaders(null),
55
- body: formData,
56
- })
57
-
58
- if (!response.ok) {
59
- this.filesError = await parseResponseError(response, 'files')
60
- console.error(`Error uploading files for ${type}/${objectId}:`, this.filesError)
61
- return null
62
- }
63
-
64
- const data = await response.json()
65
-
66
- await this.fetchFiles(type, objectId)
67
-
68
- return data
69
- } catch (error) {
70
- this.filesError = error.name === 'TypeError'
71
- ? networkError(error)
72
- : { status: null, message: error.message, details: null, isValidation: false, fields: null, toString() { return this.message } }
73
- console.error(`Error uploading files for ${type}/${objectId}:`, error)
74
- return null
75
- } finally {
76
- this.filesLoading = false
77
- }
78
- },
79
-
80
- /**
81
- * Publish a file (make it publicly accessible).
82
- *
83
- * @param {string} type The registered object type slug
84
- * @param {string} objectId The parent object ID
85
- * @param {string} fileId The file ID to publish
86
- * @return {Promise<boolean>} True if published successfully
87
- */
88
- async publishFile(type, objectId, fileId) {
89
- this.filesLoading = true
90
- this.filesError = null
91
-
92
- try {
93
- const url = this._buildUrl(type, objectId) + `/files/${fileId}/publish`
94
-
95
- const response = await fetch(url, {
96
- method: 'POST',
97
- headers: buildHeaders(),
98
- })
99
-
100
- if (!response.ok) {
101
- this.filesError = await parseResponseError(response, 'files')
102
- return false
103
- }
104
-
105
- await this.fetchFiles(type, objectId)
106
- return true
107
- } catch (error) {
108
- this.filesError = networkError(error)
109
- return false
110
- } finally {
111
- this.filesLoading = false
112
- }
113
- },
114
-
115
- /**
116
- * Unpublish a file (revoke public access).
117
- *
118
- * @param {string} type The registered object type slug
119
- * @param {string} objectId The parent object ID
120
- * @param {string} fileId The file ID to unpublish
121
- * @return {Promise<boolean>} True if unpublished successfully
122
- */
123
- async unpublishFile(type, objectId, fileId) {
124
- this.filesLoading = true
125
- this.filesError = null
126
-
127
- try {
128
- const url = this._buildUrl(type, objectId) + `/files/${fileId}/depublish`
129
-
130
- const response = await fetch(url, {
131
- method: 'POST',
132
- headers: buildHeaders(),
133
- })
134
-
135
- if (!response.ok) {
136
- this.filesError = await parseResponseError(response, 'files')
137
- return false
138
- }
139
-
140
- await this.fetchFiles(type, objectId)
141
- return true
142
- } catch (error) {
143
- this.filesError = networkError(error)
144
- return false
145
- } finally {
146
- this.filesLoading = false
147
- }
148
- },
149
-
150
- /**
151
- * Delete a file from an object.
152
- *
153
- * @param {string} type The registered object type slug
154
- * @param {string} objectId The parent object ID
155
- * @param {string} fileId The file ID to delete
156
- * @return {Promise<boolean>} True if deleted successfully
157
- */
158
- async deleteFile(type, objectId, fileId) {
159
- this.filesLoading = true
160
- this.filesError = null
161
-
162
- try {
163
- const url = this._buildUrl(type, objectId) + `/files/${fileId}`
164
-
165
- const response = await fetch(url, {
166
- method: 'DELETE',
167
- headers: buildHeaders(),
168
- })
169
-
170
- if (!response.ok) {
171
- this.filesError = await parseResponseError(response, 'files')
172
- return false
173
- }
174
-
175
- await this.fetchFiles(type, objectId)
176
- return true
177
- } catch (error) {
178
- this.filesError = networkError(error)
179
- return false
180
- } finally {
181
- this.filesLoading = false
182
- }
183
- },
184
- },
185
- }
186
- }
1
+ import { createSubResourcePlugin } from '../createSubResourcePlugin.js'
2
+ import { buildHeaders } from '../../utils/headers.js'
3
+ import { parseResponseError, networkError } from '../../utils/errors.js'
4
+
5
+ /**
6
+ * Files plugin for the object store.
7
+ *
8
+ * Extends the generic sub-resource with file-specific actions:
9
+ * upload (multipart), publish, unpublish, and delete.
10
+ *
11
+ * State: files, filesLoading, filesError, tags, tagsLoading, tagsError
12
+ * Actions: fetchFiles, uploadFiles, publishFile, unpublishFile, deleteFile, clearFiles, fetchTags
13
+ * Getters: getFiles, isFilesLoading, getFilesError, getTags, isTagsLoading, getTagsError
14
+ *
15
+ * @param {object} [options={}] Plugin options
16
+ * @param {number} [options.limit=20] Default page size
17
+ * @return {Function} Plugin factory
18
+ *
19
+ * @example
20
+ * const useStore = createObjectStore('object', {
21
+ * plugins: [filesPlugin()],
22
+ * })
23
+ * const store = useStore()
24
+ * await store.fetchFiles('case', caseId)
25
+ * await store.uploadFiles('case', caseId, formData)
26
+ * await store.publishFile('case', caseId, fileId)
27
+ */
28
+ const TAGS_PATH = '/tags'
29
+
30
+ /**
31
+ * Build the tags API URL from the store base URL (e.g. /apps/openregister/api/objects -> /apps/openregister/api/tags).
32
+ *
33
+ * @param {string} baseUrl Store base URL
34
+ * @return {string} Tags endpoint URL
35
+ */
36
+ function buildTagsUrl(baseUrl) {
37
+ return baseUrl.replace(/\/objects\/?$/, '') + TAGS_PATH
38
+ }
39
+
40
+ export function filesPlugin(options = {}) {
41
+ const base = createSubResourcePlugin('files', 'files', options)()
42
+
43
+ return {
44
+ ...base,
45
+
46
+ state: () => ({
47
+ ...base.state(),
48
+ tags: [],
49
+ tagsLoading: false,
50
+ tagsError: null,
51
+ }),
52
+
53
+ getters: {
54
+ ...base.getters,
55
+ getTags: (state) => state.tags || [],
56
+ isTagsLoading: (state) => state.tagsLoading || false,
57
+ getTagsError: (state) => state.tagsError || null,
58
+ },
59
+
60
+ actions: {
61
+ ...base.actions,
62
+
63
+ /**
64
+ * Fetch the list of tags (e.g. for file labels). API returns a plain array of strings.
65
+ * Result is stored in state.tags; use getTags getter to read.
66
+ *
67
+ * @return {Promise<string[]>} Array of tag strings, or [] on error
68
+ */
69
+ async fetchTags() {
70
+ this.tagsLoading = true
71
+ this.tagsError = null
72
+
73
+ try {
74
+ const url = buildTagsUrl(this._options.baseUrl)
75
+ const response = await fetch(url, {
76
+ method: 'GET',
77
+ headers: buildHeaders(),
78
+ })
79
+
80
+ if (!response.ok) {
81
+ this.tagsError = await parseResponseError(response, 'tags')
82
+ console.error('Error fetching tags:', this.tagsError)
83
+ return []
84
+ }
85
+
86
+ const data = await response.json()
87
+ const tags = Array.isArray(data) ? data : []
88
+ this.tags = tags
89
+ return tags
90
+ } catch (error) {
91
+ this.tagsError = error.name === 'TypeError'
92
+ ? networkError(error)
93
+ : { status: null, message: error.message, details: null, isValidation: false, fields: null, toString() { return this.message } }
94
+ console.error('Error fetching tags:', error)
95
+ return []
96
+ } finally {
97
+ this.tagsLoading = false
98
+ }
99
+ },
100
+
101
+ /**
102
+ * Upload files to an object via multipart form data.
103
+ *
104
+ * @param {string} type The registered object type slug
105
+ * @param {string} objectId The parent object ID
106
+ * @param {FormData} formData FormData with files[] and optional tags/share fields
107
+ * @return {Promise<object|null>} Upload response or null on error
108
+ */
109
+ async uploadFiles(type, objectId, formData) {
110
+ this.filesLoading = true
111
+ this.filesError = null
112
+
113
+ try {
114
+ const url = this._buildUrl(type, objectId) + '/filesMultipart'
115
+
116
+ const response = await fetch(url, {
117
+ method: 'POST',
118
+ headers: buildHeaders(null),
119
+ body: formData,
120
+ })
121
+
122
+ if (!response.ok) {
123
+ this.filesError = await parseResponseError(response, 'files')
124
+ console.error(`Error uploading files for ${type}/${objectId}:`, this.filesError)
125
+ return null
126
+ }
127
+
128
+ const data = await response.json()
129
+
130
+ await this.fetchFiles(type, objectId)
131
+
132
+ return data
133
+ } catch (error) {
134
+ this.filesError = error.name === 'TypeError'
135
+ ? networkError(error)
136
+ : { status: null, message: error.message, details: null, isValidation: false, fields: null, toString() { return this.message } }
137
+ console.error(`Error uploading files for ${type}/${objectId}:`, error)
138
+ return null
139
+ } finally {
140
+ this.filesLoading = false
141
+ }
142
+ },
143
+
144
+ /**
145
+ * Publish a file (make it publicly accessible).
146
+ *
147
+ * @param {string} type The registered object type slug
148
+ * @param {string} objectId The parent object ID
149
+ * @param {string} fileId The file ID to publish
150
+ * @return {Promise<boolean>} True if published successfully
151
+ */
152
+ async publishFile(type, objectId, fileId) {
153
+ this.filesLoading = true
154
+ this.filesError = null
155
+
156
+ try {
157
+ const url = this._buildUrl(type, objectId) + `/files/${fileId}/publish`
158
+
159
+ const response = await fetch(url, {
160
+ method: 'POST',
161
+ headers: buildHeaders(),
162
+ })
163
+
164
+ if (!response.ok) {
165
+ this.filesError = await parseResponseError(response, 'files')
166
+ return false
167
+ }
168
+
169
+ await this.fetchFiles(type, objectId)
170
+ return true
171
+ } catch (error) {
172
+ this.filesError = networkError(error)
173
+ return false
174
+ } finally {
175
+ this.filesLoading = false
176
+ }
177
+ },
178
+
179
+ /**
180
+ * Unpublish a file (revoke public access).
181
+ *
182
+ * @param {string} type The registered object type slug
183
+ * @param {string} objectId The parent object ID
184
+ * @param {string} fileId The file ID to unpublish
185
+ * @return {Promise<boolean>} True if unpublished successfully
186
+ */
187
+ async unpublishFile(type, objectId, fileId) {
188
+ this.filesLoading = true
189
+ this.filesError = null
190
+
191
+ try {
192
+ const url = this._buildUrl(type, objectId) + `/files/${fileId}/depublish`
193
+
194
+ const response = await fetch(url, {
195
+ method: 'POST',
196
+ headers: buildHeaders(),
197
+ })
198
+
199
+ if (!response.ok) {
200
+ this.filesError = await parseResponseError(response, 'files')
201
+ return false
202
+ }
203
+
204
+ await this.fetchFiles(type, objectId)
205
+ return true
206
+ } catch (error) {
207
+ this.filesError = networkError(error)
208
+ return false
209
+ } finally {
210
+ this.filesLoading = false
211
+ }
212
+ },
213
+
214
+ /**
215
+ * Delete a file from an object.
216
+ *
217
+ * @param {string} type The registered object type slug
218
+ * @param {string} objectId The parent object ID
219
+ * @param {string} fileId The file ID to delete
220
+ * @return {Promise<boolean>} True if deleted successfully
221
+ */
222
+ async deleteFile(type, objectId, fileId) {
223
+ this.filesLoading = true
224
+ this.filesError = null
225
+
226
+ try {
227
+ const url = this._buildUrl(type, objectId) + `/files/${fileId}`
228
+
229
+ const response = await fetch(url, {
230
+ method: 'DELETE',
231
+ headers: buildHeaders(),
232
+ })
233
+
234
+ if (!response.ok) {
235
+ this.filesError = await parseResponseError(response, 'files')
236
+ return false
237
+ }
238
+
239
+ await this.fetchFiles(type, objectId)
240
+ return true
241
+ } catch (error) {
242
+ this.filesError = networkError(error)
243
+ return false
244
+ } finally {
245
+ this.filesLoading = false
246
+ }
247
+ },
248
+ },
249
+ }
250
+ }
@@ -1,5 +1,7 @@
1
- export { auditTrailsPlugin } from './auditTrails.js'
2
- export { relationsPlugin } from './relations.js'
3
- export { filesPlugin } from './files.js'
4
- export { lifecyclePlugin } from './lifecycle.js'
5
- export { registerMappingPlugin } from './registerMapping.js'
1
+ export { auditTrailsPlugin } from './auditTrails.js'
2
+ export { relationsPlugin } from './relations.js'
3
+ export { filesPlugin } from './files.js'
4
+ export { lifecyclePlugin } from './lifecycle.js'
5
+ export { registerMappingPlugin } from './registerMapping.js'
6
+ export { selectionPlugin } from './selection.js'
7
+ export { searchPlugin, SEARCH_TYPE, getRegisterApiUrl, getSchemaApiUrl } from './search.js'