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

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 (136) 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/CnBoardView/CnBoardView.vue.js +1 -1
  7. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +232 -4
  8. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
  9. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +95 -51
  10. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
  11. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  12. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +45 -0
  13. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  14. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +22 -12
  15. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  16. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +23 -4
  17. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  19. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  20. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +3 -1
  21. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  22. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  23. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
  24. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +18 -5
  25. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
  26. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
  27. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +548 -77
  28. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  29. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +191 -82
  30. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  31. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +11 -2
  32. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  33. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
  34. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +70 -2
  35. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
  36. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
  37. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue.js +1 -1
  38. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js +67 -5
  39. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js.map +1 -1
  40. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js +181 -124
  41. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js.map +1 -1
  42. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
  43. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +5 -1
  44. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
  45. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
  46. package/dist/esm/components/CnStatWidget/CnStatWidget.vue.js +1 -1
  47. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +134 -10
  48. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
  49. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +6 -2
  50. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
  51. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
  52. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +6 -3
  53. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  54. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  55. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js +1 -1
  56. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js +140 -7
  57. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js.map +1 -1
  58. package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js.map +1 -1
  59. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
  60. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +37 -9
  61. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
  62. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +6 -5
  63. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
  64. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js +53 -1
  65. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js.map +1 -1
  66. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js +3 -2
  67. package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js.map +1 -1
  68. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
  69. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +135 -0
  70. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  71. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  72. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue.js +1 -1
  73. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +19 -0
  74. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
  75. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js +37 -19
  76. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
  77. package/dist/esm/composables/useListView.js +21 -0
  78. package/dist/esm/composables/useListView.js.map +1 -1
  79. package/dist/esm/l10n/en.json.js +23 -1
  80. package/dist/esm/l10n/en.json.js.map +1 -1
  81. package/dist/esm/l10n/nl.json.js +41 -1
  82. package/dist/esm/l10n/nl.json.js.map +1 -1
  83. package/dist/esm/library-style.js +1 -1
  84. package/dist/esm/nextcloud-vue.css +622 -332
  85. package/dist/esm/store/useObjectStore.js +16 -2
  86. package/dist/esm/store/useObjectStore.js.map +1 -1
  87. package/dist/esm/utils/boardColumns.js +8 -1
  88. package/dist/esm/utils/boardColumns.js.map +1 -1
  89. package/dist/esm/utils/boardReferenceColumns.js +278 -0
  90. package/dist/esm/utils/boardReferenceColumns.js.map +1 -0
  91. package/dist/esm/utils/buildManifest.js +4 -1
  92. package/dist/esm/utils/buildManifest.js.map +1 -1
  93. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  94. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  95. package/dist/esm/utils/widgetDispatch.js +8 -2
  96. package/dist/esm/utils/widgetDispatch.js.map +1 -1
  97. package/dist/nextcloud-vue.cjs.js +27964 -25769
  98. package/dist/nextcloud-vue.cjs.js.map +2 -2
  99. package/dist/nextcloud-vue.css +622 -332
  100. package/l10n/en.json +23 -1
  101. package/l10n/nl.json +41 -1
  102. package/package.json +1 -1
  103. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +160 -8
  104. package/src/components/CnBoardView/CnBoardView.vue +262 -6
  105. package/src/components/CnDashboardPage/CnDashboardPage.vue +57 -2
  106. package/src/components/CnDetailPage/CnDetailPage.md +1 -1
  107. package/src/components/CnDetailPage/CnDetailPage.vue +23 -4
  108. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +3 -1
  109. package/src/components/CnFactsWidget/CnFactsWidget.vue +18 -5
  110. package/src/components/CnIndexPage/CnIndexPage.vue +586 -25
  111. package/src/components/CnIndexPage/useSelfFetchList.js +10 -1
  112. package/src/components/CnRecordListWidget/CnRecordListWidget.vue +70 -2
  113. package/src/components/CnRegisterMapping/CnRegisterMapping.md +5 -0
  114. package/src/components/CnRegisterMapping/CnRegisterMapping.vue +231 -96
  115. package/src/components/CnSettingsPage/CnSettingsPage.vue +5 -1
  116. package/src/components/CnStatWidget/CnStatWidget.vue +136 -11
  117. package/src/components/CnTabsWidget/CnTabsWidget.vue +6 -3
  118. package/src/components/CnToggleTableWidget/CnToggleTableWidget.vue +140 -7
  119. package/src/components/CnVersionInfoCard/CnVersionInfoCard.md +2 -1
  120. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +42 -13
  121. package/src/components/CnWidgetCardGrid/CnWidgetCardGrid.vue +55 -2
  122. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +135 -0
  123. package/src/components/CnWidgetWrapper/CnWidgetWrapper.md +10 -0
  124. package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +44 -1
  125. package/src/composables/useListView.js +21 -0
  126. package/src/css/board.css +65 -4
  127. package/src/css/dialog.css +4 -2
  128. package/src/css/index-page.css +49 -0
  129. package/src/css/look-board.css +77 -7
  130. package/src/schemas/app-manifest-v2.schema.json +115 -5
  131. package/src/store/useObjectStore.js +16 -2
  132. package/src/utils/boardColumns.js +8 -1
  133. package/src/utils/boardReferenceColumns.js +274 -0
  134. package/src/utils/buildManifest.js +4 -1
  135. package/src/utils/validateManifestV2.compiled.js +3 -3
  136. package/src/utils/widgetDispatch.js +8 -2
@@ -8,7 +8,7 @@ const _hoisted_1 = {
8
8
  const _hoisted_2 = ["data-lane"];
9
9
  const _hoisted_3 = ["aria-expanded", "onClick"];
10
10
  const _hoisted_4 = ["aria-label"];
11
- const _hoisted_5 = ["data-column", "onDrop"];
11
+ const _hoisted_5 = ["data-column", "data-unreachable", "onDrop"];
12
12
  const _hoisted_6 = {
13
13
  key: 0,
14
14
  class: "cn-board-view__column-head"
@@ -39,48 +39,59 @@ const _hoisted_13 = {
39
39
  const _hoisted_14 = ["aria-label"];
40
40
  const _hoisted_15 = ["data-card-id", "draggable", "onDragstart", "onKeydown"];
41
41
  const _hoisted_16 = { class: "cn-board-view__card-head" };
42
- const _hoisted_17 = ["data-card-id", "aria-label", "onClick", "onAuxclick"];
43
- const _hoisted_18 = { class: "cn-board-view__menu-wrap" };
44
- const _hoisted_19 = ["data-card-id", "aria-expanded", "aria-label", "onClick"];
45
- const _hoisted_20 = ["aria-label", "onKeydown"];
46
- const _hoisted_21 = ["aria-label"];
47
- const _hoisted_22 = {
42
+ const _hoisted_17 = ["data-card-id", "checked", "aria-label", "onChange"];
43
+ const _hoisted_18 = ["data-card-id", "aria-label", "onClick", "onAuxclick"];
44
+ const _hoisted_19 = { class: "cn-board-view__menu-wrap" };
45
+ const _hoisted_20 = ["data-card-id", "aria-expanded", "aria-label", "onClick"];
46
+ const _hoisted_21 = ["aria-label", "onKeydown"];
47
+ const _hoisted_22 = ["aria-label"];
48
+ const _hoisted_23 = {
48
49
  class: "cn-board-view__menu-heading",
49
50
  "aria-hidden": "true"
50
51
  };
51
- const _hoisted_23 = ["data-target", "onClick"];
52
- const _hoisted_24 = ["onClick"];
52
+ const _hoisted_24 = ["data-target", "aria-disabled", "onClick"];
53
53
  const _hoisted_25 = {
54
+ key: 0,
55
+ class: "cn-board-view__menu-note",
56
+ "data-testid": "cn-board-menu-blocked"
57
+ };
58
+ const _hoisted_26 = ["onClick"];
59
+ const _hoisted_27 = {
54
60
  key: 0,
55
61
  class: "cn-board-view__card-sub",
56
62
  "data-testid": "cn-board-card-sub"
57
63
  };
58
- const _hoisted_26 = {
64
+ const _hoisted_28 = {
59
65
  key: 1,
60
66
  class: "cn-board-view__card-pills"
61
67
  };
62
- const _hoisted_27 = {
68
+ const _hoisted_29 = {
63
69
  key: 2,
64
70
  class: "cn-board-view__card-footer",
65
71
  "data-testid": "cn-board-card-footer"
66
72
  };
67
- const _hoisted_28 = ["title", "aria-label"];
68
- const _hoisted_29 = { "aria-hidden": "true" };
69
- const _hoisted_30 = ["data-card-id", "aria-label", "onClick", "onAuxclick"];
70
- const _hoisted_31 = {
71
- key: 1,
72
- class: "cn-board-view__move"
73
+ const _hoisted_30 = ["title", "aria-label"];
74
+ const _hoisted_31 = { "aria-hidden": "true" };
75
+ const _hoisted_32 = {
76
+ key: 0,
77
+ class: "cn-board-view__select-label"
73
78
  };
74
- const _hoisted_32 = { class: "cn-board-view__move-label" };
75
- const _hoisted_33 = ["data-card-id", "value", "onChange"];
76
- const _hoisted_34 = ["value"];
79
+ const _hoisted_33 = ["data-card-id", "checked", "aria-label", "onChange"];
80
+ const _hoisted_34 = ["data-card-id", "aria-label", "onClick", "onAuxclick"];
77
81
  const _hoisted_35 = {
82
+ key: 2,
83
+ class: "cn-board-view__move"
84
+ };
85
+ const _hoisted_36 = { class: "cn-board-view__move-label" };
86
+ const _hoisted_37 = ["data-card-id", "value", "onChange"];
87
+ const _hoisted_38 = ["value"];
88
+ const _hoisted_39 = {
78
89
  key: 3,
79
90
  class: "cn-board-view__empty",
80
91
  "data-testid": "cn-board-column-empty"
81
92
  };
82
- const _hoisted_36 = ["onClick"];
83
- const _hoisted_37 = {
93
+ const _hoisted_40 = ["onClick"];
94
+ const _hoisted_41 = {
84
95
  key: 2,
85
96
  class: "cn-board-view__refusal",
86
97
  "data-testid": "cn-board-refusal",
@@ -91,7 +102,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
91
102
  const _component_CnStatusBadge = resolveComponent("CnStatusBadge");
92
103
 
93
104
  return (openBlock(), createElementBlock("div", {
94
- class: normalizeClass(["cn-board-view", { 'cn-board-view--board': $options.isBoardLook }]),
105
+ class: normalizeClass(["cn-board-view", { 'cn-board-view--board': $options.isBoardLook, 'cn-board-view--wrap': $props.wrapColumns, 'cn-board-view--selecting': $options.selectedKeys.length > 0 }]),
95
106
  "data-testid": "cn-board-view"
96
107
  }, [
97
108
  (!$options.usable)
@@ -120,11 +131,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
120
131
  (openBlock(true), createElementBlock(Fragment, null, renderList(lane.columns, (column) => {
121
132
  return (openBlock(), createElementBlock("section", {
122
133
  key: `col-${lane.key}-${column.key}`,
123
- class: "cn-board-view__column",
134
+ class: normalizeClass(["cn-board-view__column", { 'cn-board-view__column--unreachable': $options.isUnreachable(column) }]),
124
135
  role: "listitem",
125
136
  "data-testid": "cn-board-column",
126
137
  "data-column": column.key,
127
- onDragover: _cache[2] || (_cache[2] = withModifiers(() => {}, ["prevent"])),
138
+ "data-unreachable": $options.isUnreachable(column) ? 'true' : null,
139
+ onDragover: _cache[3] || (_cache[3] = withModifiers(() => {}, ["prevent"])),
128
140
  onDrop: $event => ($options.onDrop(column, $event))
129
141
  }, [
130
142
  ($options.isBoardLook)
@@ -171,11 +183,24 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
171
183
  "data-card-id": $options.cardKey(card),
172
184
  draggable: $options.canMove,
173
185
  onDragstart: $event => ($options.onDragStart(card, column, $event)),
186
+ onDragend: _cache[2] || (_cache[2] = (...args) => ($options.onDragEnd && $options.onDragEnd(...args))),
174
187
  onKeydown: $event => ($options.onCardKeydown(card, column, lane, $event))
175
188
  }, [
176
189
  ($options.isBoardLook)
177
190
  ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
178
191
  createElementVNode("div", _hoisted_16, [
192
+ ($props.selectable)
193
+ ? (openBlock(), createElementBlock("input", {
194
+ key: 0,
195
+ type: "checkbox",
196
+ class: "cn-board-view__select",
197
+ "data-testid": "cn-board-card-select",
198
+ "data-card-id": $options.cardKey(card),
199
+ checked: $options.isSelected(card),
200
+ "aria-label": $options.selectLabel(card),
201
+ onChange: $event => ($options.toggleSelected(card))
202
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_17))
203
+ : createCommentVNode("v-if", true),
179
204
  createElementVNode("a", {
180
205
  href: "#",
181
206
  class: "cn-board-view__card-title",
@@ -185,8 +210,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
185
210
  onClick: withModifiers($event => ($options.openCard(card, $event)), ["prevent"]),
186
211
  onMousedown: _cache[0] || (_cache[0] = (...args) => ($options.preventMiddleClickAutoscroll && $options.preventMiddleClickAutoscroll(...args))),
187
212
  onAuxclick: $event => ($options.onCardAuxClick(card, $event))
188
- }, toDisplayString($options.roleText(card, $options.roles.title) || $options.cardKey(card)), 41 /* TEXT, PROPS, NEED_HYDRATION */, _hoisted_17),
189
- createElementVNode("span", _hoisted_18, [
213
+ }, toDisplayString($options.roleText(card, $options.roles.title) || $options.cardKey(card)), 41 /* TEXT, PROPS, NEED_HYDRATION */, _hoisted_18),
214
+ createElementVNode("span", _hoisted_19, [
190
215
  createElementVNode("button", {
191
216
  type: "button",
192
217
  class: "cn-board-view__menu-button",
@@ -196,12 +221,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
196
221
  "aria-expanded": String($options.isMenuOpen(card)),
197
222
  "aria-label": $options.menuButtonLabel(card),
198
223
  onClick: $event => ($options.toggleMenu(card))
199
- }, [...(_cache[3] || (_cache[3] = [
224
+ }, [...(_cache[4] || (_cache[4] = [
200
225
  createElementVNode("span", {
201
226
  class: "cn-board-view__menu-dots",
202
227
  "aria-hidden": "true"
203
228
  }, "⋯", -1 /* CACHED */)
204
- ]))], 8 /* PROPS */, _hoisted_19),
229
+ ]))], 8 /* PROPS */, _hoisted_20),
205
230
  ($options.isMenuOpen(card))
206
231
  ? (openBlock(), createElementBlock("div", {
207
232
  key: 0,
@@ -217,19 +242,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
217
242
  role: "group",
218
243
  "aria-label": $options.moveLabel
219
244
  }, [
220
- createElementVNode("span", _hoisted_22, toDisplayString($options.moveLabel), 1 /* TEXT */),
245
+ createElementVNode("span", _hoisted_23, toDisplayString($options.moveLabel), 1 /* TEXT */),
221
246
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.moveTargets(lane, column), (target) => {
222
247
  return (openBlock(), createElementBlock("button", {
223
248
  key: `m-${$options.cardKey(card)}-${target.key}`,
224
249
  type: "button",
225
250
  role: "menuitem",
226
- class: "cn-board-view__menu-item",
251
+ class: normalizeClass(["cn-board-view__menu-item", { 'cn-board-view__menu-item--blocked': !$options.isMoveAllowed(card, target) }]),
227
252
  "data-testid": "cn-board-menu-move",
228
253
  "data-target": target.key,
229
- onClick: $event => ($options.onMenuMove(card, column, target))
230
- }, toDisplayString(target.label), 9 /* TEXT, PROPS */, _hoisted_23))
254
+ "aria-disabled": $options.isMoveAllowed(card, target) ? null : 'true',
255
+ onClick: $event => ($options.isMoveAllowed(card, target) && $options.onMenuMove(card, column, target))
256
+ }, [
257
+ createTextVNode(toDisplayString(target.label) + " ", 1 /* TEXT */),
258
+ (!$options.isMoveAllowed(card, target))
259
+ ? (openBlock(), createElementBlock("span", _hoisted_25, toDisplayString($options.notAllowedLabel), 1 /* TEXT */))
260
+ : createCommentVNode("v-if", true)
261
+ ], 10 /* CLASS, PROPS */, _hoisted_24))
231
262
  }), 128 /* KEYED_FRAGMENT */))
232
- ], 8 /* PROPS */, _hoisted_21))
263
+ ], 8 /* PROPS */, _hoisted_22))
233
264
  : createCommentVNode("v-if", true),
234
265
  createElementVNode("button", {
235
266
  type: "button",
@@ -237,16 +268,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
237
268
  class: "cn-board-view__menu-item",
238
269
  "data-testid": "cn-board-menu-new-tab",
239
270
  onClick: $event => ($options.onMenuOpenNewTab(card))
240
- }, toDisplayString($options.openInNewTabLabel), 9 /* TEXT, PROPS */, _hoisted_24)
241
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_20))
271
+ }, toDisplayString($options.openInNewTabLabel), 9 /* TEXT, PROPS */, _hoisted_26)
272
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_21))
242
273
  : createCommentVNode("v-if", true)
243
274
  ])
244
275
  ]),
245
276
  ($options.roleText(card, $options.roles.sub) !== '')
246
- ? (openBlock(), createElementBlock("span", _hoisted_25, toDisplayString($options.roleText(card, $options.roles.sub)), 1 /* TEXT */))
277
+ ? (openBlock(), createElementBlock("span", _hoisted_27, toDisplayString($options.roleText(card, $options.roles.sub)), 1 /* TEXT */))
247
278
  : createCommentVNode("v-if", true),
248
279
  ($options.roleText(card, $options.roles.pill) !== '')
249
- ? (openBlock(), createElementBlock("span", _hoisted_26, [
280
+ ? (openBlock(), createElementBlock("span", _hoisted_28, [
250
281
  createVNode(_component_CnStatusBadge, {
251
282
  class: "cn-board-view__pill",
252
283
  "data-testid": "cn-board-card-pill",
@@ -256,7 +287,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
256
287
  ]))
257
288
  : createCommentVNode("v-if", true),
258
289
  ($options.dueText(card) !== '' || $options.ownerName(card) !== '')
259
- ? (openBlock(), createElementBlock("span", _hoisted_27, [
290
+ ? (openBlock(), createElementBlock("span", _hoisted_29, [
260
291
  createElementVNode("span", {
261
292
  class: normalizeClass(["cn-board-view__due-text", $options.cardDueState(card) ? `cn-board-view__due-text--${$options.cardDueState(card)}` : null]),
262
293
  "data-testid": "cn-board-card-due"
@@ -270,16 +301,29 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
270
301
  role: "img",
271
302
  "aria-label": $options.ownerName(card)
272
303
  }, [
273
- createElementVNode("span", _hoisted_29, toDisplayString($options.ownerInitials(card)), 1 /* TEXT */)
274
- ], 8 /* PROPS */, _hoisted_28))
304
+ createElementVNode("span", _hoisted_31, toDisplayString($options.ownerInitials(card)), 1 /* TEXT */)
305
+ ], 8 /* PROPS */, _hoisted_30))
275
306
  : createCommentVNode("v-if", true)
276
307
  ]))
277
308
  : createCommentVNode("v-if", true)
278
309
  ], 64 /* STABLE_FRAGMENT */))
279
310
  : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
311
+ ($props.selectable)
312
+ ? (openBlock(), createElementBlock("label", _hoisted_32, [
313
+ createElementVNode("input", {
314
+ type: "checkbox",
315
+ class: "cn-board-view__select",
316
+ "data-testid": "cn-board-card-select",
317
+ "data-card-id": $options.cardKey(card),
318
+ checked: $options.isSelected(card),
319
+ "aria-label": $options.selectLabel(card),
320
+ onChange: $event => ($options.toggleSelected(card))
321
+ }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_33)
322
+ ]))
323
+ : createCommentVNode("v-if", true),
280
324
  ($options.dueLabel(card))
281
325
  ? (openBlock(), createElementBlock("span", {
282
- key: 0,
326
+ key: 1,
283
327
  class: normalizeClass(["cn-board-view__due", `cn-board-view__due--${$options.dueState(card)}`]),
284
328
  "data-testid": "cn-board-due"
285
329
  }, toDisplayString($options.dueLabel(card)), 3 /* TEXT, CLASS */))
@@ -299,10 +343,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
299
343
  onClick: $event => ($options.openCard(card, $event)),
300
344
  onMousedown: _cache[1] || (_cache[1] = (...args) => ($options.preventMiddleClickAutoscroll && $options.preventMiddleClickAutoscroll(...args))),
301
345
  onAuxclick: $event => ($options.onCardAuxClick(card, $event))
302
- }, toDisplayString($options.openLabel), 41 /* TEXT, PROPS, NEED_HYDRATION */, _hoisted_30),
346
+ }, toDisplayString($options.openLabel), 41 /* TEXT, PROPS, NEED_HYDRATION */, _hoisted_34),
303
347
  ($options.canMove)
304
- ? (openBlock(), createElementBlock("label", _hoisted_31, [
305
- createElementVNode("span", _hoisted_32, toDisplayString($options.moveLabel), 1 /* TEXT */),
348
+ ? (openBlock(), createElementBlock("label", _hoisted_35, [
349
+ createElementVNode("span", _hoisted_36, toDisplayString($options.moveLabel), 1 /* TEXT */),
306
350
  createElementVNode("select", {
307
351
  "data-testid": "cn-board-move",
308
352
  "data-card-id": $options.cardKey(card),
@@ -313,16 +357,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
313
357
  return (openBlock(), createElementBlock("option", {
314
358
  key: `t-${$options.cardKey(card)}-${target.key}`,
315
359
  value: target.key
316
- }, toDisplayString(target.label), 9 /* TEXT, PROPS */, _hoisted_34))
360
+ }, toDisplayString(target.label), 9 /* TEXT, PROPS */, _hoisted_38))
317
361
  }), 128 /* KEYED_FRAGMENT */))
318
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_33)
362
+ ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_37)
319
363
  ]))
320
364
  : createCommentVNode("v-if", true)
321
365
  ], 64 /* STABLE_FRAGMENT */))
322
366
  ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_15))
323
367
  }), 128 /* KEYED_FRAGMENT */))
324
368
  ], 8 /* PROPS */, _hoisted_14))
325
- : (openBlock(), createElementBlock("p", _hoisted_35, toDisplayString($options.emptyColumnText), 1 /* TEXT */)),
369
+ : (openBlock(), createElementBlock("p", _hoisted_39, toDisplayString($options.emptyColumnText), 1 /* TEXT */)),
326
370
  ($options.hiddenCount(lane, column) > 0)
327
371
  ? (openBlock(), createElementBlock("button", {
328
372
  key: 4,
@@ -330,9 +374,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
330
374
  class: "cn-board-view__show-more",
331
375
  "data-testid": "cn-board-show-more",
332
376
  onClick: $event => ($options.showMore(lane, column))
333
- }, toDisplayString($options.showMoreLabel($options.hiddenCount(lane, column))), 9 /* TEXT, PROPS */, _hoisted_36))
377
+ }, toDisplayString($options.showMoreLabel($options.hiddenCount(lane, column))), 9 /* TEXT, PROPS */, _hoisted_40))
334
378
  : createCommentVNode("v-if", true)
335
- ], 40 /* PROPS, NEED_HYDRATION */, _hoisted_5))
379
+ ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_5))
336
380
  }), 128 /* KEYED_FRAGMENT */))
337
381
  ], 8 /* PROPS */, _hoisted_4), [
338
382
  [vShow, !$options.isCollapsed(lane.key)]
@@ -340,7 +384,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
340
384
  ], 8 /* PROPS */, _hoisted_2))
341
385
  }), 128 /* KEYED_FRAGMENT */)),
342
386
  ($data.refusal)
343
- ? (openBlock(), createElementBlock("p", _hoisted_37, toDisplayString($data.refusal), 1 /* TEXT */))
387
+ ? (openBlock(), createElementBlock("p", _hoisted_41, toDisplayString($data.refusal), 1 /* TEXT */))
344
388
  : createCommentVNode("v-if", true)
345
389
  ], 2 /* CLASS */))
346
390
  }