@conduction/nextcloud-vue 2.98.0 → 2.99.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.
Files changed (84) hide show
  1. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue2.js +12 -0
  2. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue3.js +11 -2
  4. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue3.js.map +1 -1
  5. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue.js +1 -1
  6. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js.map +1 -1
  7. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js +1 -1
  8. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js.map +1 -1
  9. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  10. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +2 -1
  11. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  12. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +1 -1
  13. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +26 -7
  14. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -1
  15. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +78 -17
  16. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -1
  17. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +9 -0
  18. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js.map +1 -0
  19. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js +265 -0
  20. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -0
  21. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +191 -0
  22. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -0
  23. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue.js +9 -0
  24. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue.js.map +1 -0
  25. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue2.js +508 -0
  26. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue2.js.map +1 -0
  27. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue3.js +99 -0
  28. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue3.js.map +1 -0
  29. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
  30. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +18 -70
  31. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
  32. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js +6 -44
  33. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
  34. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  35. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  36. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js +9 -0
  37. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js.map +1 -0
  38. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue2.js +472 -0
  39. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue2.js.map +1 -0
  40. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue3.js +231 -0
  41. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue3.js.map +1 -0
  42. package/dist/esm/components/CnWorkingCalendarWidget/index.js +27 -0
  43. package/dist/esm/components/CnWorkingCalendarWidget/index.js.map +1 -0
  44. package/dist/esm/composables/useFlowStore.js +2 -1
  45. package/dist/esm/composables/useFlowStore.js.map +1 -1
  46. package/dist/esm/index.js +3 -0
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/l10n/en.json.js +95 -1
  49. package/dist/esm/l10n/en.json.js.map +1 -1
  50. package/dist/esm/l10n/nl.json.js +109 -1
  51. package/dist/esm/l10n/nl.json.js.map +1 -1
  52. package/dist/esm/library-style.js +1 -1
  53. package/dist/esm/nextcloud-vue.css +660 -81
  54. package/dist/esm/utils/libraryWidgetKeys.js +1 -0
  55. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  56. package/dist/esm/utils/workingCalendarMonth.js +85 -0
  57. package/dist/esm/utils/workingCalendarMonth.js.map +1 -0
  58. package/dist/nextcloud-vue.cjs.js +9355 -7303
  59. package/dist/nextcloud-vue.cjs.js.map +2 -2
  60. package/dist/nextcloud-vue.css +660 -81
  61. package/l10n/en.json +95 -1
  62. package/l10n/nl.json +109 -1
  63. package/package.json +1 -1
  64. package/src/components/CnActionsMenu/CnActionsMenu.vue +14 -1
  65. package/src/components/CnBreadcrumbs/CnBreadcrumbs.vue +1 -0
  66. package/src/components/CnDetailPage/CnDetailPage.vue +1 -0
  67. package/src/components/CnOrderedListField/CnOrderedListField.vue +81 -9
  68. package/src/components/CnSettingsField/CnSettingsField.vue +449 -0
  69. package/src/components/CnSettingsField/index.js +4 -0
  70. package/src/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue +613 -0
  71. package/src/components/CnSettingsFieldsSection/index.js +4 -0
  72. package/src/components/CnSettingsPage/CnSettingsPage.vue +6 -86
  73. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  74. package/src/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue +725 -0
  75. package/src/components/CnWorkingCalendarWidget/index.js +26 -0
  76. package/src/components/index.js +3 -0
  77. package/src/composables/useFlowStore.js +2 -1
  78. package/src/css/badge.css +32 -16
  79. package/src/css/look-board-detail.css +80 -8
  80. package/src/css/look-board-index.css +52 -8
  81. package/src/css/look-board.css +219 -1
  82. package/src/index.js +3 -0
  83. package/src/utils/libraryWidgetKeys.js +1 -0
  84. package/src/utils/workingCalendarMonth.js +82 -0
@@ -172,34 +172,9 @@
172
172
  :field="field"
173
173
  :value="formData[field.key]"
174
174
  :onInput="(v) => updateField(field.key, v)">
175
- <NcCheckboxRadioSwitch
176
- v-if="field.type === 'boolean'"
177
- :modelValue="!!formData[field.key]"
178
- @update:modelValue="updateField(field.key, $event)">
179
- {{ resolveLabel(field.label) }}
180
- </NcCheckboxRadioSwitch>
181
- <NcTextField
182
- v-else-if="field.type === 'number'"
183
- :label="resolveLabel(field.label)"
184
- type="number"
185
- :modelValue="String(fieldValue(field.key, ''))"
186
- @update:modelValue="updateField(field.key, $event === '' ? null : Number($event))" />
187
- <NcTextField
188
- v-else-if="field.type === 'password'"
189
- :label="resolveLabel(field.label)"
190
- type="password"
191
- :modelValue="fieldValue(field.key, '')"
192
- @update:modelValue="updateField(field.key, $event)" />
193
- <NcSelect
194
- v-else-if="field.type === 'enum' && Array.isArray(field.options)"
195
- :modelValue="selectedOption(field)"
196
- :options="field.options"
197
- :inputLabel="resolveLabel(field.label)"
198
- @update:modelValue="updateField(field.key, optionValue($event))" />
199
- <NcTextField
200
- v-else
201
- :label="resolveLabel(field.label)"
202
- :modelValue="fieldValue(field.key, '')"
175
+ <CnSettingsField
176
+ :field="{ ...field, label: resolveLabel(field.label) }"
177
+ :modelValue="formData[field.key]"
203
178
  @update:modelValue="updateField(field.key, $event)" />
204
179
  </slot>
205
180
  <small
@@ -297,14 +272,12 @@ import axios from '@nextcloud/axios'
297
272
  import { translate as t } from '@nextcloud/l10n'
298
273
  import {
299
274
  NcButton,
300
- NcCheckboxRadioSwitch,
301
275
  NcLoadingIcon,
302
- NcSelect,
303
- NcTextField,
304
276
  } from '@nextcloud/vue'
305
277
  import ContentSave from 'vue-material-design-icons/ContentSave.vue'
306
278
  import CnBuildiqEditButton from '../CnBuildiqEditButton/CnBuildiqEditButton.vue'
307
279
  import CnRegisterMapping from '../CnRegisterMapping/CnRegisterMapping.vue'
280
+ import CnSettingsField from '../CnSettingsField/CnSettingsField.vue'
308
281
  import CnToggleTableWidget from '../CnToggleTableWidget/CnToggleTableWidget.vue'
309
282
  import CnVersionInfoCard from '../CnVersionInfoCard/CnVersionInfoCard.vue'
310
283
  import { useLook } from '../../composables/useLook.js'
@@ -356,7 +329,7 @@ const BUILTIN_SETTINGS_WIDGETS = Object.freeze({
356
329
  * three body kinds:
357
330
  *
358
331
  * - `fields[]` — flat form fields (back-compat default).
359
- * Each field's `type` controls which input renders:
332
+ * Each field's `type` controls which input CnSettingsField renders:
360
333
  * - `boolean` → NcCheckboxRadioSwitch
361
334
  * - `number` → NcTextField (type=number)
362
335
  * - `string` → NcTextField (default)
@@ -409,11 +382,9 @@ export default {
409
382
 
410
383
  components: {
411
384
  NcButton,
412
- NcCheckboxRadioSwitch,
413
385
  NcLoadingIcon,
414
- NcSelect,
415
- NcTextField,
416
386
  ContentSave,
387
+ CnSettingsField,
417
388
  CnBuildiqEditButton,
418
389
  CnSettingsCard,
419
390
  CnSettingsSection,
@@ -823,57 +794,6 @@ export default {
823
794
  },
824
795
 
825
796
  methods: {
826
- // Coalesce a field value to a fallback when null / undefined.
827
- // Used in template bindings instead of `formData[key] ?? ''` because
828
- // vue-template-es2015-compiler (the Rollup VuePlugin's parser) does
829
- // not accept ES2020 nullish-coalescing inside template expressions.
830
- fieldValue(key, fallback) {
831
- const v = this.formData[key]
832
- return (v === null || v === undefined) ? fallback : v
833
- },
834
-
835
- // Resolve the currently-selected option for an enum field.
836
- // `field.options` may be an array of strings/numbers OR an array
837
- // of `{ label, value }`-shaped objects. NcSelect needs the actual
838
- // option entry (not the bare value) to render the selection
839
- // correctly, so this resolver looks up the matching object form
840
- // when a primitive value is stored. Returns `null` when nothing
841
- // is selected so NcSelect renders the empty state instead of
842
- // emitting a Vue warning about an undefined `value` prop.
843
- selectedOption(field) {
844
- const v = this.formData[field.key]
845
- if (v === null || v === undefined) {
846
- return null
847
- }
848
- if (!Array.isArray(field.options)) {
849
- return v
850
- }
851
- for (const opt of field.options) {
852
- if (opt && typeof opt === 'object') {
853
- if (opt.value === v) {
854
- return opt
855
- }
856
- } else if (opt === v) {
857
- return opt
858
- }
859
- }
860
- return v
861
- },
862
-
863
- // Inverse of `selectedOption` — extract the storable value from
864
- // whatever NcSelect emits. NcSelect emits the full option entry
865
- // when options are objects, the primitive when options are
866
- // primitives, or `null` on clear.
867
- optionValue(emitted) {
868
- if (emitted === null || emitted === undefined) {
869
- return null
870
- }
871
- if (typeof emitted === 'object' && 'value' in emitted) {
872
- return emitted.value
873
- }
874
- return emitted
875
- },
876
-
877
797
  cloneInitial() {
878
798
  const merged = { ...(this.initialValues || {}) }
879
799
  // Collect every section across both modes (flat
@@ -76,6 +76,7 @@ import '../CnSectionsWidget/index.js'
76
76
  import '../CnFactsWidget/index.js'
77
77
  import '../CnDeviceFramesWidget/index.js'
78
78
  import '../CnChecklistRunWidget/index.js'
79
+ import '../CnWorkingCalendarWidget/index.js'
79
80
  import '../CnPartyActionsWidget/index.js'
80
81
  import '../CnFieldListWidget/index.js'
81
82
  import '../CnSettingsFormWidget/index.js'