@conduction/nextcloud-vue 2.102.0 → 2.104.0
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.
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +23 -0
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +94 -72
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +18 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +3 -3
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue.js +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js +73 -0
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js +99 -64
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue.js +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js +46 -0
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue3.js +37 -2
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +29 -6
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +39 -2
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +14 -0
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +40 -2
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue.js +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +113 -20
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +387 -359
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +173 -3
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +107 -87
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js +7 -2
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +10 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectRow/CnObjectRow.vue.js +1 -1
- package/dist/esm/components/CnObjectRow/CnObjectRow.vue2.js +57 -5
- package/dist/esm/components/CnObjectRow/CnObjectRow.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectRow/CnObjectRow.vue3.js +37 -4
- package/dist/esm/components/CnObjectRow/CnObjectRow.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +97 -3
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +46 -2
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue.js +9 -0
- package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue.js.map +1 -0
- package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue2.js +165 -0
- package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue2.js.map +1 -0
- package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue3.js +85 -0
- package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue3.js.map +1 -0
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +54 -6
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +3 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +8 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue.js +1 -1
- package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +18 -2
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue.js +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
- package/dist/esm/composables/indexSources.js +7 -7
- package/dist/esm/composables/indexSources.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +4 -0
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +4 -0
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/mixins/pageViews.js +8 -1
- package/dist/esm/mixins/pageViews.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +586 -416
- package/dist/esm/utils/nextcloudDirectory.js +18 -1
- package/dist/esm/utils/nextcloudDirectory.js.map +1 -1
- package/dist/esm/utils/sortOrder.js +61 -0
- package/dist/esm/utils/sortOrder.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/visibleWhen.js +13 -2
- package/dist/esm/utils/visibleWhen.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +12270 -10936
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +586 -416
- package/l10n/en.json +4 -0
- package/l10n/nl.json +4 -0
- package/package.json +1 -1
- package/src/components/CnActionsBar/CnActionsBar.md +1 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +39 -2
- package/src/components/CnAppRoot/CnAppRoot.md +1 -1
- package/src/components/CnAppRoot/CnAppRoot.vue +21 -4
- package/src/components/CnConversationThread/CnConversationThread.md +17 -0
- package/src/components/CnConversationThread/CnConversationThread.vue +113 -8
- package/src/components/CnConversationThread/CnConversationWidget.vue +60 -1
- package/src/components/CnDashboardPage/CnDashboardPage.md +4 -1
- package/src/components/CnDashboardPage/CnDashboardPage.vue +29 -6
- package/src/components/CnDataTable/CnDataTable.md +1 -0
- package/src/components/CnDataTable/CnDataTable.vue +49 -0
- package/src/components/CnDetailPage/CnDetailPage.md +2 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +40 -2
- package/src/components/CnFormDialog/CnFormDialog.md +1 -1
- package/src/components/CnFormDialog/CnFormDialog.vue +127 -0
- package/src/components/CnIndexPage/CnIndexPage.md +14 -2
- package/src/components/CnIndexPage/CnIndexPage.vue +192 -11
- package/src/components/CnIndexPage/useSelfFetchList.js +6 -1
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +10 -1
- package/src/components/CnObjectRow/CnObjectRow.vue +95 -1
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +134 -2
- package/src/components/CnSearchSelect/CnSearchSelect.vue +283 -0
- package/src/components/CnSearchSelect/index.js +12 -0
- package/src/components/CnSetupWizard/CnSetupWizard.vue +56 -6
- package/src/components/CnTabsWidget/CnTabsWidget.vue +8 -1
- package/src/components/CnUserSettingsDialog/CnUserSettingsDialog.vue +7 -2
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +18 -2
- package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
- package/src/components/index.js +1 -0
- package/src/composables/indexSources.js +7 -7
- package/src/css/dialog.css +5 -3
- package/src/css/index-page.css +19 -0
- package/src/css/look-board-index.css +48 -0
- package/src/index.js +1 -0
- package/src/mixins/pageViews.js +8 -1
- package/src/schemas/app-manifest-v2.schema.json +75 -6
- package/src/utils/nextcloudDirectory.js +17 -0
- package/src/utils/sortOrder.js +58 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/visibleWhen.js +13 -2
|
@@ -2,7 +2,7 @@ import script from './CnFormDialog.vue2.js';
|
|
|
2
2
|
import { render } from './CnFormDialog.vue3.js';
|
|
3
3
|
|
|
4
4
|
script.render = render;
|
|
5
|
-
script.__scopeId = "data-v-
|
|
5
|
+
script.__scopeId = "data-v-6927cedc";
|
|
6
6
|
const __sfc_main = script;
|
|
7
7
|
|
|
8
8
|
export { __sfc_main as default };
|
|
@@ -4,19 +4,20 @@ import { generateUrl } from '@nextcloud/router';
|
|
|
4
4
|
import { NcButton, NcNoteCard, NcLoadingIcon, NcTextField, NcSelect, NcSelectUsers, NcDateTimePickerNative, NcCheckboxRadioSwitch } from '@nextcloud/vue';
|
|
5
5
|
import ContentSaveOutline from 'vue-material-design-icons/ContentSaveOutline.vue';
|
|
6
6
|
import Plus from 'vue-material-design-icons/Plus.vue';
|
|
7
|
-
import __sfc_main$
|
|
8
|
-
import __sfc_main$
|
|
9
|
-
import __sfc_main$
|
|
7
|
+
import __sfc_main$4 from '../../dialogs/CnReplaceValuesDialog.vue.js';
|
|
8
|
+
import __sfc_main$6 from '../CnChildRecordsField/CnChildRecordsField.vue.js';
|
|
9
|
+
import __sfc_main$7 from '../CnDialog/CnDialog.vue.js';
|
|
10
10
|
import __sfc_main$1 from '../CnDurationField/CnDurationField.vue.js';
|
|
11
|
-
import __sfc_main$
|
|
11
|
+
import __sfc_main$d from '../CnFieldHelper/CnFieldHelper.vue.js';
|
|
12
12
|
import __sfc_main from '../CnFileField/CnFileField.vue.js';
|
|
13
|
-
import __sfc_main$
|
|
14
|
-
import __sfc_main$
|
|
15
|
-
import __sfc_main$
|
|
16
|
-
import __sfc_main$
|
|
13
|
+
import __sfc_main$9 from '../CnFormField/CnFormField.vue.js';
|
|
14
|
+
import __sfc_main$8 from '../CnIcon/CnIcon.vue.js';
|
|
15
|
+
import __sfc_main$b from '../CnIconBrowser/CnIconBrowser.vue.js';
|
|
16
|
+
import __sfc_main$a from '../CnJsonViewer/CnJsonViewer.vue.js';
|
|
17
17
|
import __sfc_main$2 from '../CnPropertySourceField/CnPropertySourceField.vue.js';
|
|
18
|
-
import __sfc_main$
|
|
19
|
-
import __sfc_main$
|
|
18
|
+
import __sfc_main$c from '../CnResourceSelect/CnResourceSelect.vue.js';
|
|
19
|
+
import __sfc_main$3 from '../CnSearchSelect/CnSearchSelect.vue.js';
|
|
20
|
+
import __sfc_main$5 from '../CnSubObjectsField/CnSubObjectsField.vue.js';
|
|
20
21
|
import { describeRowProblem, useChildRecords } from '../../composables/useChildRecords.js';
|
|
21
22
|
import { formDraftMixin, draftKey, resolveDraftUserId, draftIndicatorText, hasDraftChanges, clearAnonymousDrafts, readDraft } from '../../composables/useFormDraft.js';
|
|
22
23
|
import { splitHeldFiles, uploadHeldFiles, heldFromFailures } from '../../composables/useHeldFileUpload.js';
|
|
@@ -30,6 +31,7 @@ import { resolveCreateOverrideHandler } from '../../utils/actionsDispatcher.js';
|
|
|
30
31
|
import { loadCurrentUserProfile } from '../../utils/currentUserProfile.js';
|
|
31
32
|
import { extendsFormDeclarations, prefillDeclarations, definitionQueryParams, propertiesFromDefinitions, prefillValues, splitDynamicFormData, DYNAMIC_KEY_PREFIX } from '../../utils/dynamicProperties.js';
|
|
32
33
|
import { shouldShow } from '../../utils/fieldCondition.js';
|
|
34
|
+
import { fillTemplate } from '../../utils/fillTemplate.js';
|
|
33
35
|
import { computeAssignments } from '../../utils/formAssign.js';
|
|
34
36
|
import { resolveNextcloudGroup, searchNextcloudGroups } from '../../utils/groupAutocomplete.js';
|
|
35
37
|
import { durationSeconds } from '../../utils/isoDuration.js';
|
|
@@ -52,6 +54,36 @@ import { resolveNextcloudUser, searchNextcloudUsers } from '../../utils/userAuto
|
|
|
52
54
|
*/
|
|
53
55
|
const WIDE_WIDGETS = ['textarea', 'json', 'code'];
|
|
54
56
|
|
|
57
|
+
// The widget names the form draws itself; a registered component cannot take one over.
|
|
58
|
+
const BUILT_IN_WIDGETS = new Set([
|
|
59
|
+
'text',
|
|
60
|
+
'email',
|
|
61
|
+
'url',
|
|
62
|
+
'number',
|
|
63
|
+
'textarea',
|
|
64
|
+
'switch',
|
|
65
|
+
'select',
|
|
66
|
+
'user',
|
|
67
|
+
'group',
|
|
68
|
+
'multiselect',
|
|
69
|
+
'user-multiselect',
|
|
70
|
+
'group-multiselect',
|
|
71
|
+
'tags',
|
|
72
|
+
'checkbox',
|
|
73
|
+
'date',
|
|
74
|
+
'datetime',
|
|
75
|
+
'json',
|
|
76
|
+
'code',
|
|
77
|
+
'file',
|
|
78
|
+
'duration',
|
|
79
|
+
'child-records',
|
|
80
|
+
'sub-objects',
|
|
81
|
+
'property-source',
|
|
82
|
+
'icon',
|
|
83
|
+
'language',
|
|
84
|
+
'timezone',
|
|
85
|
+
]);
|
|
86
|
+
|
|
55
87
|
/** Largest file carried inline in the saved payload; bigger ones upload after save. */
|
|
56
88
|
const INLINE_FILE_CAP = 1024 * 1024;
|
|
57
89
|
|
|
@@ -241,12 +273,13 @@ var script = {
|
|
|
241
273
|
CnFileField: __sfc_main,
|
|
242
274
|
CnDurationField: __sfc_main$1,
|
|
243
275
|
CnPropertySourceField: __sfc_main$2,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
276
|
+
CnSearchSelect: __sfc_main$3,
|
|
277
|
+
CnReplaceValuesDialog: __sfc_main$4,
|
|
278
|
+
CnSubObjectsField: __sfc_main$5,
|
|
279
|
+
CnChildRecordsField: __sfc_main$6,
|
|
280
|
+
CnDialog: __sfc_main$7,
|
|
281
|
+
CnIcon: __sfc_main$8,
|
|
282
|
+
CnFormField: __sfc_main$9,
|
|
250
283
|
NcButton,
|
|
251
284
|
NcNoteCard,
|
|
252
285
|
NcLoadingIcon,
|
|
@@ -255,10 +288,10 @@ var script = {
|
|
|
255
288
|
NcSelectUsers,
|
|
256
289
|
NcDateTimePickerNative,
|
|
257
290
|
NcCheckboxRadioSwitch,
|
|
258
|
-
CnJsonViewer: __sfc_main$
|
|
259
|
-
CnIconBrowser: __sfc_main$
|
|
260
|
-
CnResourceSelect: __sfc_main$
|
|
261
|
-
CnFieldHelper: __sfc_main$
|
|
291
|
+
CnJsonViewer: __sfc_main$a,
|
|
292
|
+
CnIconBrowser: __sfc_main$b,
|
|
293
|
+
CnResourceSelect: __sfc_main$c,
|
|
294
|
+
CnFieldHelper: __sfc_main$d,
|
|
262
295
|
Plus,
|
|
263
296
|
ContentSaveOutline,
|
|
264
297
|
},
|
|
@@ -1237,6 +1270,28 @@ var script = {
|
|
|
1237
1270
|
},
|
|
1238
1271
|
|
|
1239
1272
|
methods: {
|
|
1273
|
+
/**
|
|
1274
|
+
* Resolve the registered component a field's `widget` names: the v2
|
|
1275
|
+
* registry (any entry with a `component`) first, then the legacy
|
|
1276
|
+
* customComponents map. Built-in widget names never resolve here.
|
|
1277
|
+
*
|
|
1278
|
+
* @param {object} field A resolved field descriptor.
|
|
1279
|
+
* @return {object|null} Vue component, or null.
|
|
1280
|
+
*/
|
|
1281
|
+
resolveFieldComponent(field) {
|
|
1282
|
+
const name = field && field.widget;
|
|
1283
|
+
if (typeof name !== 'string' || name === '' || BUILT_IN_WIDGETS.has(name)) {
|
|
1284
|
+
return null
|
|
1285
|
+
}
|
|
1286
|
+
const entry = this.cnRegistry && this.cnRegistry[name];
|
|
1287
|
+
if (entry && entry.component) {
|
|
1288
|
+
return entry.component
|
|
1289
|
+
}
|
|
1290
|
+
const legacy = this.cnCustomComponents && this.cnCustomComponents[name];
|
|
1291
|
+
// A bare function in the legacy map is a handler, not a component.
|
|
1292
|
+
return legacy && typeof legacy === 'object' ? legacy : null
|
|
1293
|
+
},
|
|
1294
|
+
|
|
1240
1295
|
/**
|
|
1241
1296
|
* Resolve a field's reference integration widget, if any.
|
|
1242
1297
|
* Returns the integration's single-entity widget component
|
|
@@ -3545,6 +3600,44 @@ var script = {
|
|
|
3545
3600
|
* @param {object} field The field definition
|
|
3546
3601
|
* @return {Array}
|
|
3547
3602
|
*/
|
|
3603
|
+
/**
|
|
3604
|
+
* The options of a `look: "search"` field as CnSearchSelect rows: each
|
|
3605
|
+
* option's own `secondary` / `icon` / `avatar`, else the field's
|
|
3606
|
+
* `optionSecondary` template (filled from the option), `optionIcon` and
|
|
3607
|
+
* `optionAvatar`.
|
|
3608
|
+
*
|
|
3609
|
+
* @spec openspec/changes/search-select-look/specs/search-select/spec.md#requirement-a-single-picker-can-take-the-search-look
|
|
3610
|
+
* @param {object} field The field definition.
|
|
3611
|
+
* @return {Array<object>}
|
|
3612
|
+
*/
|
|
3613
|
+
searchSelectOptions(field) {
|
|
3614
|
+
const template = typeof field.optionSecondary === 'string' ? field.optionSecondary : '';
|
|
3615
|
+
return this.getEffectiveOptions(field).map((option) => ({
|
|
3616
|
+
...option,
|
|
3617
|
+
secondary: option.secondary || (template ? fillTemplate(template, option).trim() : ''),
|
|
3618
|
+
icon: option.icon || field.optionIcon || '',
|
|
3619
|
+
avatar: option.avatar ?? (field.optionAvatar === true),
|
|
3620
|
+
}))
|
|
3621
|
+
},
|
|
3622
|
+
|
|
3623
|
+
/**
|
|
3624
|
+
* Pick the option a CnSearchSelect field emitted by its id, and hand
|
|
3625
|
+
* it to the select change handler.
|
|
3626
|
+
*
|
|
3627
|
+
* @spec openspec/changes/search-select-look/specs/search-select/spec.md#requirement-a-single-picker-can-take-the-search-look
|
|
3628
|
+
* @param {object} field The field definition.
|
|
3629
|
+
* @param {string|number|null} id The chosen option's id.
|
|
3630
|
+
*/
|
|
3631
|
+
onSearchSelectChange(field, id) {
|
|
3632
|
+
if (id === null || id === undefined) {
|
|
3633
|
+
this.onEffectiveSelectChange(field, null);
|
|
3634
|
+
return
|
|
3635
|
+
}
|
|
3636
|
+
const option = this.searchSelectOptions(field).find((o) => String(o.id ?? o.value) === String(id)) || { id, label: String(id) };
|
|
3637
|
+
const { secondary, icon, avatar, ...plain } = option;
|
|
3638
|
+
this.onEffectiveSelectChange(field, plain);
|
|
3639
|
+
},
|
|
3640
|
+
|
|
3548
3641
|
getEffectiveOptions(field) {
|
|
3549
3642
|
if (this.isAsyncEnum(field)) {
|
|
3550
3643
|
// TODO: restore to `this.asyncState[field.key]?.options || []` once on Vue 3 (buble doesn't support optional chaining)
|