primevue 4.0.7 → 4.1.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 (238) hide show
  1. package/autocomplete/AutoComplete.vue +50 -50
  2. package/autocomplete/index.d.ts +5 -1
  3. package/autocomplete/index.mjs +11 -8
  4. package/autocomplete/index.mjs.map +1 -1
  5. package/autocomplete/style/index.d.ts +4 -0
  6. package/autocomplete/style/index.mjs +3 -2
  7. package/autocomplete/style/index.mjs.map +1 -1
  8. package/button/BaseButton.vue +2 -2
  9. package/button/Button.vue +1 -1
  10. package/button/index.d.ts +2 -2
  11. package/button/index.mjs +7 -6
  12. package/button/index.mjs.map +1 -1
  13. package/carousel/Carousel.vue +2 -7
  14. package/carousel/index.mjs +2 -7
  15. package/carousel/index.mjs.map +1 -1
  16. package/carousel/style/index.mjs +1 -1
  17. package/carousel/style/index.mjs.map +1 -1
  18. package/cascadeselect/BaseCascadeSelect.vue +4 -0
  19. package/cascadeselect/CascadeSelect.vue +53 -10
  20. package/cascadeselect/CascadeSelectSub.vue +24 -27
  21. package/cascadeselect/index.d.ts +41 -1
  22. package/cascadeselect/index.mjs +114 -73
  23. package/cascadeselect/index.mjs.map +1 -1
  24. package/cascadeselect/style/index.mjs +13 -6
  25. package/cascadeselect/style/index.mjs.map +1 -1
  26. package/colorpicker/BaseColorPicker.vue +2 -1
  27. package/colorpicker/ColorPicker.vue +3 -3
  28. package/colorpicker/index.d.ts +6 -1
  29. package/colorpicker/index.mjs +11 -4
  30. package/colorpicker/index.mjs.map +1 -1
  31. package/config/index.d.ts +9 -3
  32. package/confirmationoptions/index.d.ts +12 -0
  33. package/confirmdialog/ConfirmDialog.vue +11 -1
  34. package/confirmdialog/index.d.ts +3 -7
  35. package/confirmdialog/index.mjs +12 -2
  36. package/confirmdialog/index.mjs.map +1 -1
  37. package/contextmenu/BaseContextMenu.vue +4 -0
  38. package/contextmenu/ContextMenu.vue +37 -10
  39. package/contextmenu/index.d.ts +10 -5
  40. package/contextmenu/index.mjs +57 -28
  41. package/contextmenu/index.mjs.map +1 -1
  42. package/contextmenu/style/index.mjs +10 -5
  43. package/contextmenu/style/index.mjs.map +1 -1
  44. package/datatable/BaseDataTable.vue +4 -0
  45. package/datatable/DataTable.vue +5 -10
  46. package/datatable/HeaderCheckbox.vue +1 -1
  47. package/datatable/TableBody.vue +1 -1
  48. package/datatable/TableHeader.vue +51 -51
  49. package/datatable/index.d.ts +5 -0
  50. package/datatable/index.mjs +90 -87
  51. package/datatable/index.mjs.map +1 -1
  52. package/datatable/style/index.mjs +1 -1
  53. package/datatable/style/index.mjs.map +1 -1
  54. package/datepicker/DatePicker.vue +13 -11
  55. package/datepicker/index.d.ts +2 -10
  56. package/datepicker/index.mjs +12 -10
  57. package/datepicker/index.mjs.map +1 -1
  58. package/datepicker/style/index.mjs +3 -3
  59. package/datepicker/style/index.mjs.map +1 -1
  60. package/dialog/Dialog.vue +4 -10
  61. package/dialog/index.mjs +3 -10
  62. package/dialog/index.mjs.map +1 -1
  63. package/drawer/index.d.ts +5 -1
  64. package/fieldset/index.d.ts +2 -6
  65. package/fileupload/index.d.ts +1 -1
  66. package/floatlabel/BaseFloatLabel.vue +6 -1
  67. package/floatlabel/index.d.ts +7 -2
  68. package/floatlabel/index.mjs +6 -1
  69. package/floatlabel/index.mjs.map +1 -1
  70. package/floatlabel/style/index.d.ts +2 -2
  71. package/floatlabel/style/index.mjs +10 -2
  72. package/floatlabel/style/index.mjs.map +1 -1
  73. package/focustrap/index.d.ts +1 -1
  74. package/galleria/index.d.ts +8 -8
  75. package/galleria/style/index.mjs +2 -2
  76. package/galleria/style/index.mjs.map +1 -1
  77. package/iftalabel/BaseIftaLabel.vue +16 -0
  78. package/iftalabel/IftaLabel.vue +15 -0
  79. package/iftalabel/index.d.ts +130 -0
  80. package/iftalabel/index.mjs +32 -0
  81. package/iftalabel/index.mjs.map +1 -0
  82. package/iftalabel/package.json +11 -0
  83. package/iftalabel/style/index.d.ts +19 -0
  84. package/iftalabel/style/index.mjs +17 -0
  85. package/iftalabel/style/index.mjs.map +1 -0
  86. package/iftalabel/style/package.json +6 -0
  87. package/imagecompare/BaseImageCompare.vue +30 -0
  88. package/imagecompare/ImageCompare.vue +24 -0
  89. package/imagecompare/index.d.ts +149 -0
  90. package/imagecompare/index.mjs +61 -0
  91. package/imagecompare/index.mjs.map +1 -0
  92. package/imagecompare/package.json +11 -0
  93. package/imagecompare/style/index.d.ts +23 -0
  94. package/imagecompare/style/index.mjs +18 -0
  95. package/imagecompare/style/index.mjs.map +1 -0
  96. package/imagecompare/style/package.json +6 -0
  97. package/inputgroup/BaseInputGroup.vue +0 -6
  98. package/inputgroup/InputGroup.vue +1 -10
  99. package/inputgroup/index.d.ts +0 -5
  100. package/inputgroup/index.mjs +1 -18
  101. package/inputgroup/index.mjs.map +1 -1
  102. package/inputgroup/style/index.mjs +2 -7
  103. package/inputgroup/style/index.mjs.map +1 -1
  104. package/inputmask/InputMask.vue +23 -17
  105. package/inputmask/index.mjs +21 -16
  106. package/inputmask/index.mjs.map +1 -1
  107. package/inputnumber/InputNumber.vue +2 -2
  108. package/inputnumber/index.d.ts +1 -1
  109. package/inputnumber/index.mjs +2 -2
  110. package/inputnumber/index.mjs.map +1 -1
  111. package/inputnumber/style/index.mjs +2 -2
  112. package/inputnumber/style/index.mjs.map +1 -1
  113. package/inputotp/BaseInputOtp.vue +1 -1
  114. package/inputotp/InputOtp.vue +6 -12
  115. package/inputotp/index.d.ts +2 -2
  116. package/inputotp/index.mjs +11 -12
  117. package/inputotp/index.mjs.map +1 -1
  118. package/inputotp/style/index.mjs +1 -1
  119. package/inputotp/style/index.mjs.map +1 -1
  120. package/inputtext/style/index.mjs +1 -1
  121. package/inputtext/style/index.mjs.map +1 -1
  122. package/keyfilter/index.d.ts +153 -0
  123. package/keyfilter/index.mjs +127 -0
  124. package/keyfilter/index.mjs.map +1 -0
  125. package/keyfilter/package.json +5 -0
  126. package/keyfilter/style/index.d.ts +14 -0
  127. package/keyfilter/style/index.mjs +8 -0
  128. package/keyfilter/style/index.mjs.map +1 -0
  129. package/keyfilter/style/package.json +6 -0
  130. package/megamenu/MegaMenu.vue +4 -4
  131. package/megamenu/index.d.ts +4 -0
  132. package/megamenu/index.mjs +2 -2
  133. package/megamenu/index.mjs.map +1 -1
  134. package/message/Message.vue +3 -19
  135. package/message/index.mjs +4 -20
  136. package/message/index.mjs.map +1 -1
  137. package/multiselect/BaseMultiSelect.vue +1 -5
  138. package/multiselect/MultiSelect.vue +16 -14
  139. package/multiselect/index.d.ts +2 -20
  140. package/multiselect/index.mjs +15 -17
  141. package/multiselect/index.mjs.map +1 -1
  142. package/multiselect/style/index.mjs +1 -1
  143. package/multiselect/style/index.mjs.map +1 -1
  144. package/orderlist/OrderList.vue +4 -8
  145. package/orderlist/index.d.ts +1 -5
  146. package/orderlist/index.mjs +3 -7
  147. package/orderlist/index.mjs.map +1 -1
  148. package/package.json +5 -5
  149. package/paginator/JumpToPageInput.vue +1 -1
  150. package/paginator/Paginator.vue +4 -16
  151. package/paginator/index.d.ts +1 -1
  152. package/paginator/index.mjs +4 -21
  153. package/paginator/index.mjs.map +1 -1
  154. package/paginator/style/index.d.ts +1 -1
  155. package/paginator/style/index.mjs +1 -1
  156. package/paginator/style/index.mjs.map +1 -1
  157. package/panelmenu/index.d.ts +1 -1
  158. package/password/BasePassword.vue +4 -0
  159. package/password/Password.vue +4 -3
  160. package/password/index.d.ts +6 -1
  161. package/password/index.mjs +10 -5
  162. package/password/index.mjs.map +1 -1
  163. package/password/style/index.mjs +1 -1
  164. package/password/style/index.mjs.map +1 -1
  165. package/picklist/PickList.vue +4 -8
  166. package/picklist/index.d.ts +1 -13
  167. package/picklist/index.mjs +3 -7
  168. package/picklist/index.mjs.map +1 -1
  169. package/popover/Popover.vue +4 -10
  170. package/popover/index.d.ts +1 -1
  171. package/popover/index.mjs +3 -9
  172. package/popover/index.mjs.map +1 -1
  173. package/progressspinner/index.d.ts +1 -1
  174. package/rating/style/index.mjs +1 -1
  175. package/rating/style/index.mjs.map +1 -1
  176. package/scrolltop/ScrollTop.vue +2 -9
  177. package/scrolltop/index.d.ts +1 -6
  178. package/scrolltop/index.mjs +3 -9
  179. package/scrolltop/index.mjs.map +1 -1
  180. package/select/Select.vue +13 -6
  181. package/select/index.mjs +54 -45
  182. package/select/index.mjs.map +1 -1
  183. package/select/style/index.mjs +1 -1
  184. package/select/style/index.mjs.map +1 -1
  185. package/speeddial/SpeedDial.vue +3 -1
  186. package/speeddial/index.d.ts +16 -1
  187. package/speeddial/index.mjs +10 -5
  188. package/speeddial/index.mjs.map +1 -1
  189. package/splitter/Splitter.vue +31 -25
  190. package/splitter/index.d.ts +8 -1
  191. package/splitter/index.mjs +28 -22
  192. package/splitter/index.mjs.map +1 -1
  193. package/tieredmenu/BaseTieredMenu.vue +4 -0
  194. package/tieredmenu/TieredMenu.vue +31 -4
  195. package/tieredmenu/TieredMenuSub.vue +3 -1
  196. package/tieredmenu/index.d.ts +5 -0
  197. package/tieredmenu/index.mjs +63 -34
  198. package/tieredmenu/index.mjs.map +1 -1
  199. package/tieredmenu/style/index.mjs +5 -4
  200. package/tieredmenu/style/index.mjs.map +1 -1
  201. package/toast/Toast.vue +2 -9
  202. package/toast/index.mjs +1 -8
  203. package/toast/index.mjs.map +1 -1
  204. package/toggleswitch/ToggleSwitch.vue +5 -1
  205. package/toggleswitch/index.d.ts +17 -1
  206. package/toggleswitch/index.mjs +7 -3
  207. package/toggleswitch/index.mjs.map +1 -1
  208. package/toggleswitch/style/index.d.ts +9 -1
  209. package/toggleswitch/style/index.mjs +3 -2
  210. package/toggleswitch/style/index.mjs.map +1 -1
  211. package/tooltip/index.mjs +6 -1
  212. package/tooltip/index.mjs.map +1 -1
  213. package/tree/BaseTree.vue +1 -1
  214. package/tree/Tree.vue +4 -2
  215. package/tree/TreeNode.vue +16 -4
  216. package/tree/index.d.ts +52 -3
  217. package/tree/index.mjs +23 -10
  218. package/tree/index.mjs.map +1 -1
  219. package/treeselect/BaseTreeSelect.vue +36 -0
  220. package/treeselect/TreeSelect.vue +31 -16
  221. package/treeselect/index.d.ts +73 -4
  222. package/treeselect/index.mjs +82 -25
  223. package/treeselect/index.mjs.map +1 -1
  224. package/treeselect/style/index.mjs +1 -1
  225. package/treeselect/style/index.mjs.map +1 -1
  226. package/treetable/BaseTreeTable.vue +8 -0
  227. package/treetable/TreeTable.vue +19 -11
  228. package/treetable/TreeTableRow.vue +28 -2
  229. package/treetable/index.d.ts +34 -0
  230. package/treetable/index.mjs +63 -19
  231. package/treetable/index.mjs.map +1 -1
  232. package/treetable/style/index.mjs +5 -3
  233. package/treetable/style/index.mjs.map +1 -1
  234. package/umd/primevue.min.js +1 -1
  235. package/vetur-attributes.json +3 -3
  236. package/virtualscroller/style/index.mjs +3 -1
  237. package/virtualscroller/style/index.mjs.map +1 -1
  238. package/web-types.json +4 -4
@@ -14,8 +14,10 @@
14
14
  @click="onClick"
15
15
  @keydown="onKeyDown"
16
16
  @touchend="onTouchEnd"
17
+ @contextmenu="onRowRightClick"
17
18
  v-bind="ptm('row', ptmOptions)"
18
19
  :data-p-selected="selected"
20
+ :data-p-selected-contextmenu="contextMenuSelection && isSelectedWithContextMenu"
19
21
  >
20
22
  <template v-for="(col, i) of columns" :key="columnProp(col, 'columnKey') || columnProp(col, 'field') || i">
21
23
  <TTBodyCell
@@ -51,12 +53,15 @@
51
53
  :expandedKeys="expandedKeys"
52
54
  :selectionMode="selectionMode"
53
55
  :selectionKeys="selectionKeys"
56
+ :contextMenu="contextMenu"
57
+ :contextMenuSelection="contextMenuSelection"
54
58
  :indentation="indentation"
55
59
  :ariaPosInset="node.children.indexOf(childNode) + 1"
56
60
  :ariaSetSize="node.children.length"
57
61
  :templates="templates"
58
62
  @node-toggle="$emit('node-toggle', $event)"
59
63
  @node-click="$emit('node-click', $event)"
64
+ @row-rightclick="$emit('row-rightclick', $event)"
60
65
  @checkbox-change="onCheckboxChange"
61
66
  :unstyled="unstyled"
62
67
  :pt="pt"
@@ -66,7 +71,7 @@
66
71
 
67
72
  <script>
68
73
  import { find, findSingle, focus, getAttribute, isClickable } from '@primeuix/utils/dom';
69
- import { resolveFieldData } from '@primeuix/utils/object';
74
+ import { equals, resolveFieldData } from '@primeuix/utils/object';
70
75
  import BaseComponent from '@primevue/core/basecomponent';
71
76
  import { getVNodeProp } from '@primevue/core/utils';
72
77
  import BodyCell from './BodyCell.vue';
@@ -75,7 +80,7 @@ export default {
75
80
  name: 'TreeTableRow',
76
81
  hostName: 'TreeTable',
77
82
  extends: BaseComponent,
78
- emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange'],
83
+ emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],
79
84
  props: {
80
85
  node: {
81
86
  type: null,
@@ -132,6 +137,14 @@ export default {
132
137
  templates: {
133
138
  type: Object,
134
139
  default: null
140
+ },
141
+ contextMenu: {
142
+ type: Boolean,
143
+ default: false
144
+ },
145
+ contextMenuSelection: {
146
+ type: Object,
147
+ default: null
135
148
  }
136
149
  },
137
150
  nodeTouched: false,
@@ -156,6 +169,12 @@ export default {
156
169
  });
157
170
  this.nodeTouched = false;
158
171
  },
172
+ onRowRightClick(event) {
173
+ this.$emit('row-rightclick', {
174
+ originalEvent: event,
175
+ node: this.node
176
+ });
177
+ },
159
178
  onTouchEnd() {
160
179
  this.nodeTouched = true;
161
180
  },
@@ -426,6 +445,13 @@ export default {
426
445
  selected() {
427
446
  return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;
428
447
  },
448
+ isSelectedWithContextMenu() {
449
+ if (this.node && this.contextMenuSelection) {
450
+ return equals(this.node, this.contextMenuSelection, this.dataKey);
451
+ }
452
+
453
+ return false;
454
+ },
429
455
  checked() {
430
456
  return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;
431
457
  },
@@ -173,6 +173,21 @@ export interface TreeTableFilterEvent extends TreeTableSortEvent {
173
173
  filteredValue: any;
174
174
  }
175
175
 
176
+ /**
177
+ * Custom row context menu event.
178
+ * @see {@link TreeTableEmitsOptions['row-contextmenu']}
179
+ */
180
+ export interface TreeTableRowContextMenuEvent {
181
+ /**
182
+ * Browser event.
183
+ */
184
+ originalEvent: Event;
185
+ /**
186
+ * Selected row data.
187
+ */
188
+ node: TreeNode;
189
+ }
190
+
176
191
  /**
177
192
  * Custom sort metadata.
178
193
  */
@@ -420,6 +435,15 @@ export interface TreeTableProps {
420
435
  * @defaultValue false
421
436
  */
422
437
  metaKeySelection?: boolean | undefined;
438
+ /**
439
+ * Enables context menu integration.
440
+ * @defaultValue false
441
+ */
442
+ contextMenu?: boolean | undefined;
443
+ /**
444
+ * Selected row instance with the ContextMenu.
445
+ */
446
+ contextMenuSelection?: any | any[] | undefined;
423
447
  /**
424
448
  * Number of rows to display per page.
425
449
  */
@@ -730,6 +754,11 @@ export interface TreeTableEmitsOptions {
730
754
  * @param {TreeSelectionKeys} value - New selection keys.
731
755
  */
732
756
  'update:selectionKeys'(event: TreeTableSelectionKeys): void;
757
+ /**
758
+ * Emitted when the contextMenuSelection changes.
759
+ * @param {*} value - New value.
760
+ */
761
+ 'update:contextMenuSelection'(value: any[] | any | undefined): void;
733
762
  /**
734
763
  * Emitted when the first changes.
735
764
  * @param {number} value - New value.
@@ -795,6 +824,11 @@ export interface TreeTableEmitsOptions {
795
824
  * @param {Event} event - Browser event.
796
825
  */
797
826
  'column-resize-end'(event: Event): void;
827
+ /**
828
+ * Callback to invoke when a row is selected with a ContextMenu.
829
+ * @param {TreeTableRowContextMenuEvent} event - Custom row context menu event.
830
+ */
831
+ 'row-contextmenu'(event: TreeTableRowContextMenuEvent): void;
798
832
  }
799
833
 
800
834
  export declare type TreeTableEmits = EmitFn<TreeTableEmitsOptions>;
@@ -1,7 +1,7 @@
1
- import { FilterService } from '@primevue/core/api';
2
- import { getVNodeProp, HelperSet, UniqueComponentId } from '@primevue/core/utils';
3
1
  import { getNextElementSibling, getOuterWidth, getPreviousElementSibling, getIndex, getAttribute, isClickable, findSingle, focus, find, clearSelection, getOffset, addStyle, setAttribute } from '@primeuix/utils/dom';
4
- import { resolveFieldData, localeComparator, sort } from '@primeuix/utils/object';
2
+ import { resolveFieldData, equals, localeComparator, sort } from '@primeuix/utils/object';
3
+ import { FilterService } from '@primevue/core/api';
4
+ import { getVNodeProp, HelperSet } from '@primevue/core/utils';
5
5
  import SpinnerIcon from '@primevue/icons/spinner';
6
6
  import Paginator from 'primevue/paginator';
7
7
  import BaseComponent from '@primevue/core/basecomponent';
@@ -46,6 +46,14 @@ var script$5 = {
46
46
  type: Boolean,
47
47
  "default": false
48
48
  },
49
+ contextMenu: {
50
+ type: Boolean,
51
+ "default": false
52
+ },
53
+ contextMenuSelection: {
54
+ type: Object,
55
+ "default": null
56
+ },
49
57
  rows: {
50
58
  type: Number,
51
59
  "default": 0
@@ -846,7 +854,7 @@ var script$1 = {
846
854
  name: 'TreeTableRow',
847
855
  hostName: 'TreeTable',
848
856
  "extends": BaseComponent,
849
- emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange'],
857
+ emits: ['node-click', 'node-toggle', 'checkbox-change', 'nodeClick', 'nodeToggle', 'checkboxChange', 'row-rightclick', 'rowRightclick'],
850
858
  props: {
851
859
  node: {
852
860
  type: null,
@@ -903,6 +911,14 @@ var script$1 = {
903
911
  templates: {
904
912
  type: Object,
905
913
  "default": null
914
+ },
915
+ contextMenu: {
916
+ type: Boolean,
917
+ "default": false
918
+ },
919
+ contextMenuSelection: {
920
+ type: Object,
921
+ "default": null
906
922
  }
907
923
  },
908
924
  nodeTouched: false,
@@ -925,6 +941,12 @@ var script$1 = {
925
941
  });
926
942
  this.nodeTouched = false;
927
943
  },
944
+ onRowRightClick: function onRowRightClick(event) {
945
+ this.$emit('row-rightclick', {
946
+ originalEvent: event,
947
+ node: this.node
948
+ });
949
+ },
928
950
  onTouchEnd: function onTouchEnd() {
929
951
  this.nodeTouched = true;
930
952
  },
@@ -1191,6 +1213,12 @@ var script$1 = {
1191
1213
  selected: function selected() {
1192
1214
  return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] === true : false;
1193
1215
  },
1216
+ isSelectedWithContextMenu: function isSelectedWithContextMenu() {
1217
+ if (this.node && this.contextMenuSelection) {
1218
+ return equals(this.node, this.contextMenuSelection, this.dataKey);
1219
+ }
1220
+ return false;
1221
+ },
1194
1222
  checked: function checked() {
1195
1223
  return this.selectionKeys ? this.selectionKeys[this.nodeKey(this.node)] && this.selectionKeys[this.nodeKey(this.node)].checked : false;
1196
1224
  },
@@ -1215,7 +1243,7 @@ var script$1 = {
1215
1243
  }
1216
1244
  };
1217
1245
 
1218
- var _hoisted_1$1 = ["tabindex", "aria-expanded", "aria-level", "aria-setsize", "aria-posinset", "aria-selected", "aria-checked", "data-p-selected"];
1246
+ var _hoisted_1$1 = ["tabindex", "aria-expanded", "aria-level", "aria-setsize", "aria-posinset", "aria-selected", "aria-checked", "data-p-selected", "data-p-selected-contextmenu"];
1219
1247
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1220
1248
  var _component_TTBodyCell = resolveComponent("TTBodyCell");
1221
1249
  var _component_TreeTableRow = resolveComponent("TreeTableRow", true);
@@ -1239,9 +1267,13 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1239
1267
  }),
1240
1268
  onTouchend: _cache[3] || (_cache[3] = function () {
1241
1269
  return $options.onTouchEnd && $options.onTouchEnd.apply($options, arguments);
1270
+ }),
1271
+ onContextmenu: _cache[4] || (_cache[4] = function () {
1272
+ return $options.onRowRightClick && $options.onRowRightClick.apply($options, arguments);
1242
1273
  })
1243
1274
  }, _ctx.ptm('row', $options.ptmOptions), {
1244
- "data-p-selected": $options.selected
1275
+ "data-p-selected": $options.selected,
1276
+ "data-p-selected-contextmenu": $props.contextMenuSelection && $options.isSelectedWithContextMenu
1245
1277
  }), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {
1246
1278
  return openBlock(), createElementBlock(Fragment, {
1247
1279
  key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i
@@ -1279,20 +1311,25 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1279
1311
  expandedKeys: $props.expandedKeys,
1280
1312
  selectionMode: $props.selectionMode,
1281
1313
  selectionKeys: $props.selectionKeys,
1314
+ contextMenu: $props.contextMenu,
1315
+ contextMenuSelection: $props.contextMenuSelection,
1282
1316
  indentation: $props.indentation,
1283
1317
  ariaPosInset: $props.node.children.indexOf(childNode) + 1,
1284
1318
  ariaSetSize: $props.node.children.length,
1285
1319
  templates: $props.templates,
1286
- onNodeToggle: _cache[4] || (_cache[4] = function ($event) {
1320
+ onNodeToggle: _cache[5] || (_cache[5] = function ($event) {
1287
1321
  return _ctx.$emit('node-toggle', $event);
1288
1322
  }),
1289
- onNodeClick: _cache[5] || (_cache[5] = function ($event) {
1323
+ onNodeClick: _cache[6] || (_cache[6] = function ($event) {
1290
1324
  return _ctx.$emit('node-click', $event);
1291
1325
  }),
1326
+ onRowRightclick: _cache[7] || (_cache[7] = function ($event) {
1327
+ return _ctx.$emit('row-rightclick', $event);
1328
+ }),
1292
1329
  onCheckboxChange: $options.onCheckboxChange,
1293
1330
  unstyled: _ctx.unstyled,
1294
1331
  pt: _ctx.pt
1295
- }, null, 8, ["dataKey", "columns", "node", "parentNode", "level", "expandedKeys", "selectionMode", "selectionKeys", "indentation", "ariaPosInset", "ariaSetSize", "templates", "onCheckboxChange", "unstyled", "pt"]);
1332
+ }, null, 8, ["dataKey", "columns", "node", "parentNode", "level", "expandedKeys", "selectionMode", "selectionKeys", "contextMenu", "contextMenuSelection", "indentation", "ariaPosInset", "ariaSetSize", "templates", "onCheckboxChange", "unstyled", "pt"]);
1296
1333
  }), 128)) : createCommentVNode("", true)], 64);
1297
1334
  }
1298
1335
 
@@ -1315,7 +1352,7 @@ var script = {
1315
1352
  name: 'TreeTable',
1316
1353
  "extends": script$5,
1317
1354
  inheritAttrs: false,
1318
- emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'update:first', 'update:rows', 'page', 'update:sortField', 'update:sortOrder', 'update:multiSortMeta', 'sort', 'filter', 'column-resize-end'],
1355
+ emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'update:first', 'update:rows', 'page', 'update:sortField', 'update:sortOrder', 'update:multiSortMeta', 'sort', 'filter', 'column-resize-end', 'update:contextMenuSelection', 'row-contextmenu'],
1319
1356
  provide: function provide() {
1320
1357
  return {
1321
1358
  $columns: this.d_columns
@@ -1359,9 +1396,6 @@ var script = {
1359
1396
  this.d_multiSortMeta = newValue;
1360
1397
  }
1361
1398
  },
1362
- mounted: function mounted() {
1363
- this.$el.setAttribute(this.attributeSelector, '');
1364
- },
1365
1399
  beforeUnmount: function beforeUnmount() {
1366
1400
  this.destroyStyleElement();
1367
1401
  this.d_columns.clear();
@@ -1456,6 +1490,14 @@ var script = {
1456
1490
  this.$emit('update:selectionKeys', event.selectionKeys);
1457
1491
  if (event.check) this.$emit('node-select', event.node);else this.$emit('node-unselect', event.node);
1458
1492
  },
1493
+ onRowRightClick: function onRowRightClick(event) {
1494
+ if (this.contextMenu) {
1495
+ clearSelection();
1496
+ event.originalEvent.target.focus();
1497
+ }
1498
+ this.$emit('update:contextMenuSelection', event.node);
1499
+ this.$emit('row-contextmenu', event);
1500
+ },
1459
1501
  isSingleSelectionMode: function isSingleSelectionMode() {
1460
1502
  return this.selectionMode === 'single';
1461
1503
  },
@@ -1777,7 +1819,7 @@ var script = {
1777
1819
  this.destroyStyleElement();
1778
1820
  this.createStyleElement();
1779
1821
  var innerHTML = '';
1780
- var selector = "[data-pc-name=\"treetable\"][".concat(this.attributeSelector, "] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]");
1822
+ var selector = "[data-pc-name=\"treetable\"][".concat(this.$attrSelector, "] > [data-pc-section=\"tablecontainer\"] > table[data-pc-section=\"table\"]");
1781
1823
  widths.forEach(function (width, index) {
1782
1824
  var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;
1783
1825
  var style = "width: ".concat(colWidth, "px !important; max-width: ").concat(colWidth, "px !important");
@@ -1951,9 +1993,6 @@ var script = {
1951
1993
  var data = this.processedData;
1952
1994
  return data ? data.length : 0;
1953
1995
  }
1954
- },
1955
- attributeSelector: function attributeSelector() {
1956
- return UniqueComponentId();
1957
1996
  }
1958
1997
  },
1959
1998
  components: {
@@ -2147,13 +2186,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2147
2186
  ariaPosInset: index + 1,
2148
2187
  tabindex: $options.setTabindex(node, index),
2149
2188
  loadingMode: _ctx.loadingMode,
2189
+ contextMenu: _ctx.contextMenu,
2190
+ contextMenuSelection: _ctx.contextMenuSelection,
2150
2191
  templates: _ctx.$slots,
2151
2192
  onNodeToggle: $options.onNodeToggle,
2152
2193
  onNodeClick: $options.onNodeClick,
2153
2194
  onCheckboxChange: $options.onCheckboxChange,
2195
+ onRowRightclick: _cache[3] || (_cache[3] = function ($event) {
2196
+ return $options.onRowRightClick($event);
2197
+ }),
2154
2198
  unstyled: _ctx.unstyled,
2155
2199
  pt: _ctx.pt
2156
- }, null, 8, ["dataKey", "columns", "node", "expandedKeys", "indentation", "selectionMode", "selectionKeys", "ariaSetSize", "ariaPosInset", "tabindex", "loadingMode", "templates", "onNodeToggle", "onNodeClick", "onCheckboxChange", "unstyled", "pt"]);
2200
+ }, null, 8, ["dataKey", "columns", "node", "expandedKeys", "indentation", "selectionMode", "selectionKeys", "ariaSetSize", "ariaPosInset", "tabindex", "loadingMode", "contextMenu", "contextMenuSelection", "templates", "onNodeToggle", "onNodeClick", "onCheckboxChange", "unstyled", "pt"]);
2157
2201
  }), 128)) : (openBlock(), createElementBlock("tr", mergeProps({
2158
2202
  key: 1,
2159
2203
  "class": _ctx.cx('emptyMessage')
@@ -2188,7 +2232,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2188
2232
  "class": normalizeClass(_ctx.cx('pcPaginator', {
2189
2233
  position: 'bottom'
2190
2234
  })),
2191
- onPage: _cache[3] || (_cache[3] = function ($event) {
2235
+ onPage: _cache[4] || (_cache[4] = function ($event) {
2192
2236
  return $options.onPage($event);
2193
2237
  }),
2194
2238
  alwaysShow: _ctx.alwaysShowPaginator,