@conduction/nextcloud-vue 2.62.0 → 2.63.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 (154) hide show
  1. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js +10 -0
  2. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js.map +1 -0
  3. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js +189 -0
  4. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js.map +1 -0
  5. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js +72 -0
  6. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js.map +1 -0
  7. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +271 -32
  8. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  9. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  10. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +99 -9
  11. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  12. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +39 -18
  13. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  14. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  15. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +53 -37
  16. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  17. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -2
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  20. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js +10 -0
  21. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js.map +1 -0
  22. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +293 -0
  23. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -0
  24. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +189 -0
  25. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -0
  26. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +216 -8
  27. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  28. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +118 -50
  29. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  30. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  31. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
  32. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  33. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js +3 -1
  34. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js.map +1 -1
  35. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js +1 -1
  36. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js.map +1 -1
  37. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +234 -9
  38. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  39. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +96 -57
  40. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  41. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +51 -2
  42. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  43. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +5 -1
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  45. package/dist/esm/components/CnIndexPage/selfModeActions.js +3 -3
  46. package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
  47. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +36 -1
  48. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  49. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +4 -1
  50. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  51. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js +121 -12
  52. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js.map +1 -1
  53. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js +3 -1
  54. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js.map +1 -1
  55. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +326 -1
  56. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  57. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +112 -26
  58. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  59. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +10 -0
  60. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js.map +1 -0
  61. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +337 -0
  62. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -0
  63. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js +102 -0
  64. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -0
  65. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +34 -0
  66. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -0
  67. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +131 -8
  68. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
  69. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js +40 -38
  70. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
  71. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +8 -6
  72. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  73. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  74. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  75. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
  76. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
  77. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
  78. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
  79. package/dist/esm/composables/useDependencyCheck.js +65 -0
  80. package/dist/esm/composables/useDependencyCheck.js.map +1 -0
  81. package/dist/esm/composables/useWalkthrough.js +218 -6
  82. package/dist/esm/composables/useWalkthrough.js.map +1 -1
  83. package/dist/esm/index.js +2 -0
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/l10n/en.json.js +43 -0
  86. package/dist/esm/l10n/en.json.js.map +1 -1
  87. package/dist/esm/l10n/nl.json.js +43 -0
  88. package/dist/esm/l10n/nl.json.js.map +1 -1
  89. package/dist/esm/nextcloud-vue.css +449 -0
  90. package/dist/esm/store/useObjectStore.js +8 -0
  91. package/dist/esm/store/useObjectStore.js.map +1 -1
  92. package/dist/esm/utils/columnFilters.js +311 -0
  93. package/dist/esm/utils/columnFilters.js.map +1 -0
  94. package/dist/esm/utils/groupAutocomplete.js +123 -0
  95. package/dist/esm/utils/groupAutocomplete.js.map +1 -0
  96. package/dist/esm/utils/libraryWidgetKeys.js +2 -0
  97. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  98. package/dist/esm/utils/pickerOptions.js +198 -0
  99. package/dist/esm/utils/pickerOptions.js.map +1 -0
  100. package/dist/esm/utils/schema.js +83 -7
  101. package/dist/esm/utils/schema.js.map +1 -1
  102. package/dist/esm/utils/timelineEvents.js +174 -0
  103. package/dist/esm/utils/timelineEvents.js.map +1 -0
  104. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  105. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  106. package/dist/esm/utils/walkthroughSignals.js +88 -0
  107. package/dist/esm/utils/walkthroughSignals.js.map +1 -0
  108. package/dist/nextcloud-vue.cjs.js +9369 -5193
  109. package/dist/nextcloud-vue.cjs.js.map +2 -2
  110. package/dist/nextcloud-vue.css +449 -0
  111. package/l10n/en.json +43 -0
  112. package/l10n/nl.json +43 -0
  113. package/package.json +1 -1
  114. package/src/components/CnAdminActionCard/CnAdminActionCard.vue +234 -0
  115. package/src/components/CnAdminActionCard/index.js +4 -0
  116. package/src/components/CnAppNav/CnAppNav.vue +271 -32
  117. package/src/components/CnAppRoot/CnAppRoot.vue +129 -15
  118. package/src/components/CnChoiceCards/CnChoiceCards.vue +56 -31
  119. package/src/components/CnDashboardPage/CnDashboardPage.vue +2 -2
  120. package/src/components/CnDataTable/CnColumnFilterPopover.vue +524 -0
  121. package/src/components/CnDataTable/CnDataTable.md +3 -0
  122. package/src/components/CnDataTable/CnDataTable.vue +260 -4
  123. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +2 -2
  124. package/src/components/CnFieldHelper/CnFieldHelper.vue +4 -2
  125. package/src/components/CnFormDialog/CnFormDialog.vue +290 -31
  126. package/src/components/CnIndexPage/CnIndexPage.vue +55 -2
  127. package/src/components/CnIndexPage/selfModeActions.js +3 -3
  128. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +39 -1
  129. package/src/components/CnResourceSelect/CnResourceSelect.vue +123 -12
  130. package/src/components/CnSetupWizard/CnSetupWizard.vue +392 -3
  131. package/src/components/CnTimelineWidget/CnTimelineWidget.vue +477 -0
  132. package/src/components/CnTimelineWidget/dashboardRegistration.js +32 -0
  133. package/src/components/CnTimelineWidget/index.js +4 -0
  134. package/src/components/CnWalkthrough/CnWalkthrough.vue +143 -10
  135. package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
  136. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  137. package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
  138. package/src/components/index.js +2 -0
  139. package/src/composables/useDependencyCheck.js +61 -0
  140. package/src/composables/useWalkthrough.js +217 -5
  141. package/src/css/dashboard.css +49 -0
  142. package/src/css/detail-page.css +19 -0
  143. package/src/css/table.css +81 -0
  144. package/src/index.js +2 -0
  145. package/src/schemas/app-manifest-v2.schema.json +23 -1
  146. package/src/store/useObjectStore.js +8 -0
  147. package/src/utils/columnFilters.js +324 -0
  148. package/src/utils/groupAutocomplete.js +119 -0
  149. package/src/utils/libraryWidgetKeys.js +2 -0
  150. package/src/utils/pickerOptions.js +194 -0
  151. package/src/utils/schema.js +83 -7
  152. package/src/utils/timelineEvents.js +171 -0
  153. package/src/utils/validateManifestV2.compiled.js +2 -2
  154. package/src/utils/walkthroughSignals.js +94 -0
@@ -1,4 +1,4 @@
1
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode, createVNode, Fragment, renderList, normalizeStyle, withKeys, renderSlot, createTextVNode, withModifiers, createBlock } from 'vue';
1
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode, Fragment, renderList, createBlock, createVNode, normalizeStyle, withKeys, withModifiers, renderSlot, createTextVNode } from 'vue';
2
2
 
3
3
  const _hoisted_1 = {
4
4
  key: 0,
@@ -9,62 +9,68 @@ const _hoisted_3 = {
9
9
  key: 0,
10
10
  class: "cn-data-table__count"
11
11
  };
12
- const _hoisted_4 = {
13
- key: 1,
12
+ const _hoisted_4 = ["aria-label"];
13
+ const _hoisted_5 = ["aria-label", "onClick"];
14
+ const _hoisted_6 = {
15
+ key: 3,
14
16
  class: "cn-table-loading",
15
17
  "data-testid": "cn-object-list-loading"
16
18
  };
17
- const _hoisted_5 = ["tabindex", "role", "aria-label"];
18
- const _hoisted_6 = { key: 0 };
19
- const _hoisted_7 = {
19
+ const _hoisted_7 = ["tabindex", "role", "aria-label"];
20
+ const _hoisted_8 = { key: 0 };
21
+ const _hoisted_9 = {
20
22
  key: 0,
21
23
  class: "cn-table-col--checkbox"
22
24
  };
23
- const _hoisted_8 = {
25
+ const _hoisted_10 = {
24
26
  key: 1,
25
27
  class: "cn-table-col--icon"
26
28
  };
27
- const _hoisted_9 = ["tabindex", "aria-sort", "title", "onClick", "onKeydown"];
28
- const _hoisted_10 = {
29
+ const _hoisted_11 = ["tabindex", "aria-sort", "data-filtered", "title", "onClick", "onKeydown"];
30
+ const _hoisted_12 = {
29
31
  key: 0,
30
32
  class: "cn-table-sort-indicator"
31
33
  };
32
- const _hoisted_11 = {
34
+ const _hoisted_13 = {
33
35
  key: 1,
34
36
  class: "cn-table-sort-badge"
35
37
  };
36
- const _hoisted_12 = {
38
+ const _hoisted_14 = ["aria-label", "aria-expanded", "onClick"];
39
+ const _hoisted_15 = {
37
40
  key: 2,
38
41
  class: "cn-table-col--actions"
39
42
  };
40
- const _hoisted_13 = {
43
+ const _hoisted_16 = {
41
44
  key: 0,
42
45
  class: "cn-table-empty",
43
46
  "data-testid": "cn-object-list-empty"
44
47
  };
45
- const _hoisted_14 = ["colspan"];
46
- const _hoisted_15 = ["data-testid-row-id", "onClick", "onAuxclick", "onContextmenu"];
47
- const _hoisted_16 = {
48
+ const _hoisted_17 = ["colspan"];
49
+ const _hoisted_18 = ["data-testid-row-id", "onClick", "onAuxclick", "onContextmenu"];
50
+ const _hoisted_19 = {
48
51
  key: 1,
49
52
  class: "cn-table-col--icon"
50
53
  };
51
- const _hoisted_17 = ["href", "aria-label", "onClick"];
52
- const _hoisted_18 = {
54
+ const _hoisted_20 = ["href", "aria-label", "onClick"];
55
+ const _hoisted_21 = {
53
56
  key: 2,
54
57
  class: "cn-table-row-indicators",
55
58
  "data-testid": "cn-row-indicators"
56
59
  };
57
- const _hoisted_19 = ["title", "data-testid"];
58
- const _hoisted_20 = { class: "hidden-visually" };
59
- const _hoisted_21 = {
60
- key: 3,
60
+ const _hoisted_22 = ["title", "data-testid"];
61
+ const _hoisted_23 = { class: "hidden-visually" };
62
+ const _hoisted_24 = {
63
+ key: 5,
61
64
  class: "cn-data-table__footer"
62
65
  };
63
- const _hoisted_22 = ["href"];
66
+ const _hoisted_25 = ["href"];
64
67
 
65
68
  function render(_ctx, _cache, $props, $setup, $data, $options) {
69
+ const _component_CnColumnFilterPopover = resolveComponent("CnColumnFilterPopover");
66
70
  const _component_NcLoadingIcon = resolveComponent("NcLoadingIcon");
67
71
  const _component_NcCheckboxRadioSwitch = resolveComponent("NcCheckboxRadioSwitch");
72
+ const _component_FilterIcon = resolveComponent("FilterIcon");
73
+ const _component_FilterOutline = resolveComponent("FilterOutline");
68
74
  const _component_CnIcon = resolveComponent("CnIcon");
69
75
  const _component_CnLockIndicator = resolveComponent("CnLockIndicator");
70
76
  const _component_CnCellRenderer = resolveComponent("CnCellRenderer");
@@ -85,8 +91,44 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
85
91
  : createCommentVNode("v-if", true)
86
92
  ]))
87
93
  : createCommentVNode("v-if", true),
94
+ (!$options.isLoading && $options.activeColumnFilterChips.length > 0)
95
+ ? (openBlock(), createElementBlock("ul", {
96
+ key: 1,
97
+ class: "cn-data-table__filter-chips",
98
+ "aria-label": $options.activeFiltersLabel,
99
+ "data-testid": "cn-table-filter-chips"
100
+ }, [
101
+ (openBlock(true), createElementBlock(Fragment, null, renderList($options.activeColumnFilterChips, (chip) => {
102
+ return (openBlock(), createElementBlock("li", {
103
+ key: chip.key,
104
+ class: "cn-data-table__filter-chip"
105
+ }, [
106
+ createElementVNode("span", null, toDisplayString(chip.text), 1 /* TEXT */),
107
+ createElementVNode("button", {
108
+ type: "button",
109
+ class: "cn-data-table__filter-chip-remove",
110
+ "aria-label": chip.removeLabel,
111
+ "data-testid": "cn-table-filter-chip-remove",
112
+ onClick: $event => ($options.clearColumnFilter(chip.col))
113
+ }, " × ", 8 /* PROPS */, _hoisted_5)
114
+ ]))
115
+ }), 128 /* KEYED_FRAGMENT */))
116
+ ], 8 /* PROPS */, _hoisted_4))
117
+ : createCommentVNode("v-if", true),
118
+ ($options.openFilterColumn)
119
+ ? (openBlock(), createBlock(_component_CnColumnFilterPopover, {
120
+ key: $data.openFilterKey,
121
+ def: $options.filterDefFor($options.openFilterColumn),
122
+ state: $options.columnFilterStateFor($options.openFilterColumn),
123
+ label: $options.translateLabel($options.openFilterColumn.label),
124
+ anchorRect: $data.filterAnchorRect,
125
+ register: $props.filterRegister,
126
+ onApply: _cache[0] || (_cache[0] = (state) => $options.applyColumnFilter($options.openFilterColumn, state)),
127
+ onClose: $options.closeColumnFilter
128
+ }, null, 8 /* PROPS */, ["def", "state", "label", "anchorRect", "register", "onClose"]))
129
+ : createCommentVNode("v-if", true),
88
130
  ($options.isLoading)
89
- ? (openBlock(), createElementBlock("div", _hoisted_4, [
131
+ ? (openBlock(), createElementBlock("div", _hoisted_6, [
90
132
  createVNode(_component_NcLoadingIcon, {
91
133
  size: 32,
92
134
  "aria-hidden": "true"
@@ -94,7 +136,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
94
136
  createElementVNode("p", null, toDisplayString($props.loadingText), 1 /* TEXT */)
95
137
  ]))
96
138
  : (openBlock(), createElementBlock("div", {
97
- key: 2,
139
+ key: 4,
98
140
  ref: "scrollEl",
99
141
  class: "cn-data-table__scroll",
100
142
  tabindex: $data.isScrollable ? 0 : undefined,
@@ -106,10 +148,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
106
148
  "data-testid": "cn-object-list-table"
107
149
  }, [
108
150
  (!$props.hideHeader)
109
- ? (openBlock(), createElementBlock("thead", _hoisted_6, [
151
+ ? (openBlock(), createElementBlock("thead", _hoisted_8, [
110
152
  createElementVNode("tr", null, [
111
153
  ($props.selectable)
112
- ? (openBlock(), createElementBlock("th", _hoisted_7, [
154
+ ? (openBlock(), createElementBlock("th", _hoisted_9, [
113
155
  createVNode(_component_NcCheckboxRadioSwitch, {
114
156
  modelValue: $options.allSelected,
115
157
  indeterminate: $options.someSelected && !$options.allSelected,
@@ -119,7 +161,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
119
161
  ]))
120
162
  : createCommentVNode("v-if", true),
121
163
  ($props.rowIcon)
122
- ? (openBlock(), createElementBlock("th", _hoisted_8))
164
+ ? (openBlock(), createElementBlock("th", _hoisted_10))
123
165
  : createCommentVNode("v-if", true),
124
166
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.effectiveColumns, (col) => {
125
167
  return (openBlock(), createElementBlock("th", {
@@ -131,6 +173,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
131
173
  style: normalizeStyle(col.width ? { width: col.width } : {}),
132
174
  tabindex: col.sortable ? 0 : null,
133
175
  "aria-sort": $options.ariaSortFor(col),
176
+ "data-filtered": $options.isColumnFiltered(col) ? 'true' : null,
134
177
  title: $options.translateLabel(col.description) || null,
135
178
  onClick: $event => (col.sortable ? $options.onHeaderClick(col.key, $event) : null),
136
179
  onKeydown: withKeys($event => (col.sortable ? $options.onHeaderKeydown(col.key, $event) : null), ["enter"])
@@ -139,15 +182,40 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
139
182
  class: normalizeClass(col.description ? 'cn-table-header--described' : '')
140
183
  }, toDisplayString($options.translateLabel(col.label)), 3 /* TEXT, CLASS */),
141
184
  (col.sortable && $options.sortKeyIndex(col.key) !== -1)
142
- ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString($options.effectiveSortKeys[$options.sortKeyIndex(col.key)].order === 'asc' ? '▲' : '▼'), 1 /* TEXT */))
185
+ ? (openBlock(), createElementBlock("span", _hoisted_12, toDisplayString($options.effectiveSortKeys[$options.sortKeyIndex(col.key)].order === 'asc' ? '▲' : '▼'), 1 /* TEXT */))
143
186
  : createCommentVNode("v-if", true),
144
187
  (col.sortable && $options.sortBadgeFor(col.key) !== null)
145
- ? (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString($options.sortBadgeFor(col.key)), 1 /* TEXT */))
188
+ ? (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString($options.sortBadgeFor(col.key)), 1 /* TEXT */))
189
+ : createCommentVNode("v-if", true),
190
+ ($options.filterDefFor(col))
191
+ ? (openBlock(), createElementBlock("button", {
192
+ key: 2,
193
+ ref_for: true,
194
+ ref: 'filterButton-' + col.key,
195
+ type: "button",
196
+ class: normalizeClass(["cn-table-header__filter", { 'cn-table-header__filter--active': $options.isColumnFiltered(col) }]),
197
+ "aria-label": $options.filterButtonLabel(col),
198
+ "aria-haspopup": "dialog",
199
+ "aria-expanded": $data.openFilterKey === col.key ? 'true' : 'false',
200
+ "data-testid": "cn-table-header-filter",
201
+ onClick: withModifiers($event => ($options.toggleColumnFilter(col, $event)), ["stop"]),
202
+ onKeydown: _cache[1] || (_cache[1] = withKeys(withModifiers(() => {}, ["stop"]), ["enter"]))
203
+ }, [
204
+ ($options.isColumnFiltered(col))
205
+ ? (openBlock(), createBlock(_component_FilterIcon, {
206
+ key: 0,
207
+ size: 16
208
+ }))
209
+ : (openBlock(), createBlock(_component_FilterOutline, {
210
+ key: 1,
211
+ size: 16
212
+ }))
213
+ ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_14))
146
214
  : createCommentVNode("v-if", true)
147
- ], 46 /* CLASS, STYLE, PROPS, NEED_HYDRATION */, _hoisted_9))
215
+ ], 46 /* CLASS, STYLE, PROPS, NEED_HYDRATION */, _hoisted_11))
148
216
  }), 128 /* KEYED_FRAGMENT */)),
149
217
  (_ctx.$slots['row-actions'])
150
- ? (openBlock(), createElementBlock("th", _hoisted_12, [
218
+ ? (openBlock(), createElementBlock("th", _hoisted_15, [
151
219
  renderSlot(_ctx.$slots, "actions-header")
152
220
  ]))
153
221
  : createCommentVNode("v-if", true)
@@ -156,12 +224,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
156
224
  : createCommentVNode("v-if", true),
157
225
  createElementVNode("tbody", null, [
158
226
  ($options.effectiveRows.length === 0)
159
- ? (openBlock(), createElementBlock("tr", _hoisted_13, [
227
+ ? (openBlock(), createElementBlock("tr", _hoisted_16, [
160
228
  createElementVNode("td", { colspan: $options.totalColumns }, [
161
229
  renderSlot(_ctx.$slots, "empty", {}, () => [
162
230
  createTextVNode(toDisplayString($options.translateLabel($props.emptyText)), 1 /* TEXT */)
163
231
  ])
164
- ], 8 /* PROPS */, _hoisted_14)
232
+ ], 8 /* PROPS */, _hoisted_17)
165
233
  ]))
166
234
  : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList($options.effectiveRows, (row) => {
167
235
  return (openBlock(), createElementBlock("tr", {
@@ -173,7 +241,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
173
241
  ]]),
174
242
  "data-testid": "cn-object-row",
175
243
  "data-testid-row-id": row[$props.rowKey],
176
- onMousedown: _cache[5] || (_cache[5] = (...args) => ($options.onRowMouseDown && $options.onRowMouseDown(...args))),
244
+ onMousedown: _cache[7] || (_cache[7] = (...args) => ($options.onRowMouseDown && $options.onRowMouseDown(...args))),
177
245
  onClick: $event => ($options.onRowClick(row, $event)),
178
246
  onAuxclick: $event => ($options.onRowAuxClick(row, $event)),
179
247
  onContextmenu: $event => ($options.onRowContextMenu(row, $event))
@@ -182,8 +250,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
182
250
  ? (openBlock(), createElementBlock("td", {
183
251
  key: 0,
184
252
  class: "cn-table-col--checkbox",
185
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"])),
186
- onAuxclick: _cache[1] || (_cache[1] = withModifiers(() => {}, ["stop"]))
253
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => {}, ["stop"])),
254
+ onAuxclick: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"]))
187
255
  }, [
188
256
  createVNode(_component_NcCheckboxRadioSwitch, {
189
257
  modelValue: $options.isSelected(row),
@@ -193,7 +261,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
193
261
  ], 32 /* NEED_HYDRATION */))
194
262
  : createCommentVNode("v-if", true),
195
263
  ($props.rowIcon)
196
- ? (openBlock(), createElementBlock("td", _hoisted_16, [
264
+ ? (openBlock(), createElementBlock("td", _hoisted_19, [
197
265
  createVNode(_component_CnIcon, {
198
266
  name: $options.getRowIcon(row),
199
267
  size: 20
@@ -205,7 +273,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
205
273
  key: col.key,
206
274
  class: normalizeClass([col.class || '', col.cellClass || '', $props.cellClass ? $props.cellClass(row, col) : '']),
207
275
  style: normalizeStyle(col.width ? { maxWidth: col.width } : {}),
208
- onMouseenter: _cache[2] || (_cache[2] = (...args) => ($options.titleWhenClipped && $options.titleWhenClipped(...args)))
276
+ onMouseenter: _cache[4] || (_cache[4] = (...args) => ($options.titleWhenClipped && $options.titleWhenClipped(...args)))
209
277
  }, [
210
278
  (colIndex === 0 && $options.rowLinks[String(row[$props.rowKey])])
211
279
  ? (openBlock(), createElementBlock("a", {
@@ -216,7 +284,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
216
284
  draggable: "false",
217
285
  "data-testid": "cn-row-link",
218
286
  onClick: $event => ($options.onRowLinkClick(row, $event))
219
- }, null, 8 /* PROPS */, _hoisted_17))
287
+ }, null, 8 /* PROPS */, _hoisted_20))
220
288
  : createCommentVNode("v-if", true),
221
289
  (colIndex === 0)
222
290
  ? (openBlock(), createBlock(_component_CnLockIndicator, {
@@ -226,7 +294,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
226
294
  }, null, 8 /* PROPS */, ["object"]))
227
295
  : createCommentVNode("v-if", true),
228
296
  (colIndex === 0 && $options.indicatorsFor(row).shown.length > 0)
229
- ? (openBlock(), createElementBlock("span", _hoisted_18, [
297
+ ? (openBlock(), createElementBlock("span", _hoisted_21, [
230
298
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.indicatorsFor(row).shown, (indicator) => {
231
299
  return (openBlock(), createElementBlock("span", {
232
300
  key: indicator.id || indicator.field,
@@ -238,8 +306,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
238
306
  name: indicator.icon || 'InformationOutline',
239
307
  size: 16
240
308
  }, null, 8 /* PROPS */, ["name"]),
241
- createElementVNode("span", _hoisted_20, toDisplayString(indicator.text), 1 /* TEXT */)
242
- ], 8 /* PROPS */, _hoisted_19))
309
+ createElementVNode("span", _hoisted_23, toDisplayString(indicator.text), 1 /* TEXT */)
310
+ ], 8 /* PROPS */, _hoisted_22))
243
311
  }), 128 /* KEYED_FRAGMENT */))
244
312
  ]))
245
313
  : createCommentVNode("v-if", true),
@@ -265,19 +333,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
265
333
  ? (openBlock(), createElementBlock("td", {
266
334
  key: 2,
267
335
  class: normalizeClass(["cn-table-col--actions", [$props.cellClass ? $props.cellClass(row, { key: 'actions' }) : '']]),
268
- onClick: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"])),
269
- onAuxclick: _cache[4] || (_cache[4] = withModifiers(() => {}, ["stop"]))
336
+ onClick: _cache[5] || (_cache[5] = withModifiers(() => {}, ["stop"])),
337
+ onAuxclick: _cache[6] || (_cache[6] = withModifiers(() => {}, ["stop"]))
270
338
  }, [
271
339
  renderSlot(_ctx.$slots, "row-actions", { row: row })
272
340
  ], 34 /* CLASS, NEED_HYDRATION */))
273
341
  : createCommentVNode("v-if", true)
274
- ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_15))
342
+ ], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_18))
275
343
  }), 128 /* KEYED_FRAGMENT */))
276
344
  ])
277
345
  ], 2 /* CLASS */)
278
- ], 8 /* PROPS */, _hoisted_5)),
346
+ ], 8 /* PROPS */, _hoisted_7)),
279
347
  (_ctx.$slots.footer || ($props.viewAllRoute && $options.totalRowCount > $options.effectiveRows.length))
280
- ? (openBlock(), createElementBlock("div", _hoisted_21, [
348
+ ? (openBlock(), createElementBlock("div", _hoisted_24, [
281
349
  renderSlot(_ctx.$slots, "footer", {
282
350
  total: $options.totalRowCount,
283
351
  shown: $options.effectiveRows.length
@@ -287,13 +355,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
287
355
  key: 0,
288
356
  class: "cn-data-table__view-all",
289
357
  href: $options.viewAllHref,
290
- onClick: _cache[6] || (_cache[6] = (...args) => ($options.onViewAll && $options.onViewAll(...args)))
291
- }, toDisplayString($props.viewAllLabel), 9 /* TEXT, PROPS */, _hoisted_22))
358
+ onClick: _cache[8] || (_cache[8] = (...args) => ($options.onViewAll && $options.onViewAll(...args)))
359
+ }, toDisplayString($props.viewAllLabel), 9 /* TEXT, PROPS */, _hoisted_25))
292
360
  : (openBlock(), createElementBlock("button", {
293
361
  key: 1,
294
362
  type: "button",
295
363
  class: "cn-data-table__view-all",
296
- onClick: _cache[7] || (_cache[7] = (...args) => ($options.onViewAll && $options.onViewAll(...args)))
364
+ onClick: _cache[9] || (_cache[9] = (...args) => ($options.onViewAll && $options.onViewAll(...args)))
297
365
  }, toDisplayString($props.viewAllLabel), 1 /* TEXT */))
298
366
  ])
299
367
  ]))