primevue 4.2.1 → 4.2.3

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 (141) hide show
  1. package/autocomplete/AutoComplete.vue +3 -2
  2. package/autocomplete/BaseAutoComplete.vue +4 -0
  3. package/autocomplete/index.d.ts +5 -0
  4. package/autocomplete/index.mjs +8 -2
  5. package/autocomplete/index.mjs.map +1 -1
  6. package/button/Button.vue +2 -2
  7. package/button/index.d.ts +1 -1
  8. package/button/index.mjs +7 -7
  9. package/button/index.mjs.map +1 -1
  10. package/buttongroup/style/index.mjs +1 -1
  11. package/buttongroup/style/index.mjs.map +1 -1
  12. package/checkbox/index.d.ts +5 -0
  13. package/colorpicker/ColorPicker.vue +1 -1
  14. package/colorpicker/index.mjs +1 -0
  15. package/colorpicker/index.mjs.map +1 -1
  16. package/confirmpopup/ConfirmPopup.vue +1 -1
  17. package/confirmpopup/index.mjs +1 -1
  18. package/confirmpopup/index.mjs.map +1 -1
  19. package/contextmenu/ContextMenuSub.vue +1 -2
  20. package/contextmenu/index.mjs +1 -2
  21. package/contextmenu/index.mjs.map +1 -1
  22. package/datatable/BodyCell.vue +2 -11
  23. package/datatable/DataTable.vue +3 -24
  24. package/datatable/FooterCell.vue +3 -12
  25. package/datatable/HeaderCell.vue +2 -11
  26. package/datatable/index.mjs +49 -98
  27. package/datatable/index.mjs.map +1 -1
  28. package/datatable/style/index.mjs +1 -1
  29. package/datatable/style/index.mjs.map +1 -1
  30. package/datepicker/DatePicker.vue +6 -1
  31. package/datepicker/index.mjs +5 -1
  32. package/datepicker/index.mjs.map +1 -1
  33. package/datepicker/style/index.mjs +1 -1
  34. package/datepicker/style/index.mjs.map +1 -1
  35. package/dock/DockSub.vue +2 -3
  36. package/dock/index.mjs +1 -2
  37. package/dock/index.mjs.map +1 -1
  38. package/drawer/Drawer.vue +4 -3
  39. package/drawer/index.d.ts +10 -1
  40. package/drawer/index.mjs +5 -2
  41. package/drawer/index.mjs.map +1 -1
  42. package/drawer/style/index.mjs +8 -3
  43. package/drawer/style/index.mjs.map +1 -1
  44. package/dynamicdialog/DynamicDialog.vue +1 -0
  45. package/dynamicdialog/index.mjs +1 -0
  46. package/dynamicdialog/index.mjs.map +1 -1
  47. package/editor/Editor.vue +1 -1
  48. package/editor/index.mjs +1 -1
  49. package/editor/index.mjs.map +1 -1
  50. package/imagecompare/ImageCompare.vue +3 -33
  51. package/imagecompare/index.mjs +3 -35
  52. package/imagecompare/index.mjs.map +1 -1
  53. package/imagecompare/style/index.mjs +1 -1
  54. package/imagecompare/style/index.mjs.map +1 -1
  55. package/inputgroup/style/index.mjs +1 -1
  56. package/inputgroup/style/index.mjs.map +1 -1
  57. package/inputnumber/InputNumber.vue +2 -1
  58. package/inputnumber/index.mjs +2 -1
  59. package/inputnumber/index.mjs.map +1 -1
  60. package/inputotp/InputOtp.vue +2 -1
  61. package/inputotp/index.mjs +2 -1
  62. package/inputotp/index.mjs.map +1 -1
  63. package/inputtext/index.d.ts +6 -6
  64. package/listbox/Listbox.vue +19 -15
  65. package/listbox/index.d.ts +4 -0
  66. package/listbox/index.mjs +21 -18
  67. package/listbox/index.mjs.map +1 -1
  68. package/megamenu/MegaMenuSub.vue +1 -2
  69. package/megamenu/index.d.ts +1 -1
  70. package/megamenu/index.mjs +1 -2
  71. package/megamenu/index.mjs.map +1 -1
  72. package/menu/Menuitem.vue +1 -2
  73. package/menu/index.mjs +1 -2
  74. package/menu/index.mjs.map +1 -1
  75. package/menubar/MenubarSub.vue +1 -2
  76. package/menubar/index.mjs +1 -2
  77. package/menubar/index.mjs.map +1 -1
  78. package/menubar/style/index.mjs +1 -1
  79. package/menubar/style/index.mjs.map +1 -1
  80. package/metergroup/index.d.ts +1 -1
  81. package/package.json +5 -5
  82. package/paginator/style/index.mjs +1 -1
  83. package/paginator/style/index.mjs.map +1 -1
  84. package/panelmenu/PanelMenu.vue +6 -3
  85. package/panelmenu/PanelMenuSub.vue +1 -2
  86. package/panelmenu/index.mjs +6 -4
  87. package/panelmenu/index.mjs.map +1 -1
  88. package/panelmenu/style/index.mjs +1 -1
  89. package/panelmenu/style/index.mjs.map +1 -1
  90. package/password/index.d.ts +1 -1
  91. package/scrollpanel/ScrollPanel.vue +4 -35
  92. package/scrollpanel/index.mjs +27 -57
  93. package/scrollpanel/index.mjs.map +1 -1
  94. package/scrollpanel/style/index.mjs +1 -1
  95. package/scrollpanel/style/index.mjs.map +1 -1
  96. package/select/Select.vue +2 -2
  97. package/select/index.mjs +2 -2
  98. package/select/index.mjs.map +1 -1
  99. package/slider/Slider.vue +15 -39
  100. package/slider/index.mjs +17 -51
  101. package/slider/index.mjs.map +1 -1
  102. package/splitter/Splitter.vue +3 -24
  103. package/splitter/index.mjs +21 -43
  104. package/splitter/index.mjs.map +1 -1
  105. package/step/Step.vue +2 -2
  106. package/step/index.mjs +2 -2
  107. package/step/index.mjs.map +1 -1
  108. package/tablist/TabList.vue +11 -43
  109. package/tablist/index.mjs +11 -42
  110. package/tablist/index.mjs.map +1 -1
  111. package/tabs/index.d.ts +3 -3
  112. package/textarea/Textarea.vue +14 -3
  113. package/textarea/index.d.ts +2 -3
  114. package/textarea/index.mjs +14 -3
  115. package/textarea/index.mjs.map +1 -1
  116. package/tieredmenu/TieredMenuSub.vue +1 -2
  117. package/tieredmenu/index.mjs +1 -2
  118. package/tieredmenu/index.mjs.map +1 -1
  119. package/timeline/style/index.mjs +1 -1
  120. package/timeline/style/index.mjs.map +1 -1
  121. package/togglebutton/ToggleButton.vue +1 -1
  122. package/togglebutton/index.mjs +1 -1
  123. package/togglebutton/index.mjs.map +1 -1
  124. package/tree/Tree.vue +1 -1
  125. package/tree/index.mjs +29 -23
  126. package/tree/index.mjs.map +1 -1
  127. package/tree/style/index.mjs +1 -1
  128. package/tree/style/index.mjs.map +1 -1
  129. package/treeselect/TreeSelect.vue +4 -3
  130. package/treeselect/index.mjs +9 -8
  131. package/treeselect/index.mjs.map +1 -1
  132. package/treetable/BodyCell.vue +2 -11
  133. package/treetable/FooterCell.vue +3 -12
  134. package/treetable/HeaderCell.vue +3 -12
  135. package/treetable/TreeTable.vue +3 -26
  136. package/treetable/index.mjs +24 -75
  137. package/treetable/index.mjs.map +1 -1
  138. package/treetable/style/index.mjs +1 -1
  139. package/treetable/style/index.mjs.map +1 -1
  140. package/umd/primevue.min.js +1 -1
  141. package/web-types.json +1 -1
@@ -36,7 +36,7 @@
36
36
  </template>
37
37
 
38
38
  <script>
39
- import { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';
39
+ import { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth, isRTL } from '@primeuix/utils/dom';
40
40
  import ChevronLeftIcon from '@primevue/icons/chevronleft';
41
41
  import ChevronRightIcon from '@primevue/icons/chevronright';
42
42
  import Ripple from 'primevue/ripple';
@@ -47,12 +47,10 @@ export default {
47
47
  extends: BaseTabList,
48
48
  inheritAttrs: false,
49
49
  inject: ['$pcTabs'],
50
- mutationObserver: null,
51
50
  data() {
52
51
  return {
53
52
  isPrevButtonEnabled: false,
54
- isNextButtonEnabled: true,
55
- isRTL: false
53
+ isNextButtonEnabled: true
56
54
  };
57
55
  },
58
56
  resizeObserver: undefined,
@@ -76,19 +74,12 @@ export default {
76
74
  this.updateButtonState();
77
75
  this.bindResizeObserver();
78
76
  }
79
-
80
- this.updateDirection();
81
- this.observeDirectionChanges();
82
77
  },
83
78
  updated() {
84
79
  this.showNavigators && this.updateButtonState();
85
80
  },
86
81
  beforeUnmount() {
87
82
  this.unbindResizeObserver();
88
-
89
- if (this.mutationObserver) {
90
- this.mutationObserver.disconnect();
91
- }
92
83
  },
93
84
  methods: {
94
85
  onScroll(event) {
@@ -99,30 +90,19 @@ export default {
99
90
  onPrevButtonClick() {
100
91
  const content = this.$refs.content;
101
92
  const width = getWidth(content);
102
- let pos;
93
+ const pos = Math.abs(content.scrollLeft) - width;
94
+ const scrollLeft = pos <= 0 ? 0 : pos;
103
95
 
104
- if (this.isRTL) {
105
- pos = content.scrollLeft + width;
106
- } else {
107
- pos = content.scrollLeft - width;
108
- }
109
-
110
- content.scrollLeft = pos <= 0 ? 0 : pos;
96
+ content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;
111
97
  },
112
98
  onNextButtonClick() {
113
99
  const content = this.$refs.content;
114
100
  const width = getWidth(content) - this.getVisibleButtonWidths();
115
- let pos, lastPos;
101
+ const pos = width + Math.abs(content.scrollLeft);
102
+ const lastPos = content.scrollWidth - width;
103
+ const scrollLeft = pos >= lastPos ? lastPos : pos;
116
104
 
117
- if (this.isRTL) {
118
- pos = content.scrollLeft - width;
119
- lastPos = content.scrollWidth + width;
120
- } else {
121
- pos = content.scrollLeft + width;
122
- lastPos = content.scrollWidth - width;
123
- }
124
-
125
- content.scrollLeft = pos >= lastPos ? lastPos : pos;
105
+ content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;
126
106
  },
127
107
  bindResizeObserver() {
128
108
  this.resizeObserver = new ResizeObserver(() => this.updateButtonState());
@@ -146,7 +126,8 @@ export default {
146
126
  },
147
127
  updateButtonState() {
148
128
  const { list, content } = this.$refs;
149
- const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;
129
+ const { scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;
130
+ const scrollLeft = Math.abs(content.scrollLeft);
150
131
  const [width, height] = [getWidth(content), getHeight(content)];
151
132
 
152
133
  if (this.$pcTabs.isVertical()) {
@@ -161,19 +142,6 @@ export default {
161
142
  const { prevBtn, nextBtn } = this.$refs;
162
143
 
163
144
  return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);
164
- },
165
- updateDirection() {
166
- this.isRTL = !!this.$el.closest('[dir="rtl"]');
167
- },
168
- observeDirectionChanges() {
169
- const targetNode = document.documentElement;
170
- const config = { attributes: true, attributeFilter: ['dir'] };
171
-
172
- this.mutationObserver = new MutationObserver(() => {
173
- this.updateDirection();
174
- });
175
-
176
- this.mutationObserver.observe(targetNode, config);
177
145
  }
178
146
  },
179
147
  computed: {
package/tablist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { getWidth, findSingle, getOuterHeight, getOffset, getOuterWidth, getHeight } from '@primeuix/utils/dom';
1
+ import { getWidth, isRTL, findSingle, getOuterHeight, getOffset, getOuterWidth, getHeight } from '@primeuix/utils/dom';
2
2
  import ChevronLeftIcon from '@primevue/icons/chevronleft';
3
3
  import ChevronRightIcon from '@primevue/icons/chevronright';
4
4
  import Ripple from 'primevue/ripple';
@@ -24,12 +24,10 @@ var script = {
24
24
  "extends": script$1,
25
25
  inheritAttrs: false,
26
26
  inject: ['$pcTabs'],
27
- mutationObserver: null,
28
27
  data: function data() {
29
28
  return {
30
29
  isPrevButtonEnabled: false,
31
- isNextButtonEnabled: true,
32
- isRTL: false
30
+ isNextButtonEnabled: true
33
31
  };
34
32
  },
35
33
  resizeObserver: undefined,
@@ -53,17 +51,12 @@ var script = {
53
51
  this.updateButtonState();
54
52
  this.bindResizeObserver();
55
53
  }
56
- this.updateDirection();
57
- this.observeDirectionChanges();
58
54
  },
59
55
  updated: function updated() {
60
56
  this.showNavigators && this.updateButtonState();
61
57
  },
62
58
  beforeUnmount: function beforeUnmount() {
63
59
  this.unbindResizeObserver();
64
- if (this.mutationObserver) {
65
- this.mutationObserver.disconnect();
66
- }
67
60
  },
68
61
  methods: {
69
62
  onScroll: function onScroll(event) {
@@ -73,26 +66,17 @@ var script = {
73
66
  onPrevButtonClick: function onPrevButtonClick() {
74
67
  var content = this.$refs.content;
75
68
  var width = getWidth(content);
76
- var pos;
77
- if (this.isRTL) {
78
- pos = content.scrollLeft + width;
79
- } else {
80
- pos = content.scrollLeft - width;
81
- }
82
- content.scrollLeft = pos <= 0 ? 0 : pos;
69
+ var pos = Math.abs(content.scrollLeft) - width;
70
+ var scrollLeft = pos <= 0 ? 0 : pos;
71
+ content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;
83
72
  },
84
73
  onNextButtonClick: function onNextButtonClick() {
85
74
  var content = this.$refs.content;
86
75
  var width = getWidth(content) - this.getVisibleButtonWidths();
87
- var pos, lastPos;
88
- if (this.isRTL) {
89
- pos = content.scrollLeft - width;
90
- lastPos = content.scrollWidth + width;
91
- } else {
92
- pos = content.scrollLeft + width;
93
- lastPos = content.scrollWidth - width;
94
- }
95
- content.scrollLeft = pos >= lastPos ? lastPos : pos;
76
+ var pos = width + Math.abs(content.scrollLeft);
77
+ var lastPos = content.scrollWidth - width;
78
+ var scrollLeft = pos >= lastPos ? lastPos : pos;
79
+ content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;
96
80
  },
97
81
  bindResizeObserver: function bindResizeObserver() {
98
82
  var _this2 = this;
@@ -124,12 +108,12 @@ var script = {
124
108
  var _this$$refs2 = this.$refs,
125
109
  list = _this$$refs2.list,
126
110
  content = _this$$refs2.content;
127
- var scrollLeft = content.scrollLeft,
128
- scrollTop = content.scrollTop,
111
+ var scrollTop = content.scrollTop,
129
112
  scrollWidth = content.scrollWidth,
130
113
  scrollHeight = content.scrollHeight,
131
114
  offsetWidth = content.offsetWidth,
132
115
  offsetHeight = content.offsetHeight;
116
+ var scrollLeft = Math.abs(content.scrollLeft);
133
117
  var _ref = [getWidth(content), getHeight(content)],
134
118
  width = _ref[0],
135
119
  height = _ref[1];
@@ -148,21 +132,6 @@ var script = {
148
132
  return [prevBtn, nextBtn].reduce(function (acc, el) {
149
133
  return el ? acc + getWidth(el) : acc;
150
134
  }, 0);
151
- },
152
- updateDirection: function updateDirection() {
153
- this.isRTL = !!this.$el.closest('[dir="rtl"]');
154
- },
155
- observeDirectionChanges: function observeDirectionChanges() {
156
- var _this3 = this;
157
- var targetNode = document.documentElement;
158
- var config = {
159
- attributes: true,
160
- attributeFilter: ['dir']
161
- };
162
- this.mutationObserver = new MutationObserver(function () {
163
- _this3.updateDirection();
164
- });
165
- this.mutationObserver.observe(targetNode, config);
166
135
  }
167
136
  },
168
137
  computed: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/tablist/BaseTabList.vue","../../src/tablist/TabList.vue","../../src/tablist/TabList.vue?vue&type=template&id=04812e3a&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\n\nexport default {\n name: 'BaseTabList',\n extends: BaseComponent,\n props: {},\n style: TabListStyle,\n provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n mutationObserver: null,\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true,\n isRTL: false\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n let pos;\n\n if (this.isRTL) {\n pos = content.scrollLeft + width;\n } else {\n pos = content.scrollLeft - width;\n }\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n let pos, lastPos;\n\n if (this.isRTL) {\n pos = content.scrollLeft - width;\n lastPos = content.scrollWidth + width;\n } else {\n pos = content.scrollLeft + width;\n lastPos = content.scrollWidth - width;\n }\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n },\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n mutationObserver: null,\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true,\n isRTL: false\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n let pos;\n\n if (this.isRTL) {\n pos = content.scrollLeft + width;\n } else {\n pos = content.scrollLeft - width;\n }\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n let pos, lastPos;\n\n if (this.isRTL) {\n pos = content.scrollLeft - width;\n lastPos = content.scrollWidth + width;\n } else {\n pos = content.scrollLeft + width;\n lastPos = content.scrollWidth - width;\n }\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n },\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","style","TabListStyle","provide","$pcTabList","$parentInstance","BaseTabList","inheritAttrs","inject","mutationObserver","data","isPrevButtonEnabled","isNextButtonEnabled","isRTL","resizeObserver","undefined","watch","showNavigators","newValue","bindResizeObserver","unbindResizeObserver","activeValue","flush","handler","updateInkBar","mounted","_this","$nextTick","updateButtonState","updateDirection","observeDirectionChanges","updated","beforeUnmount","disconnect","methods","onScroll","event","preventDefault","onPrevButtonClick","content","$refs","width","getWidth","pos","scrollLeft","onNextButtonClick","getVisibleButtonWidths","lastPos","scrollWidth","_this2","ResizeObserver","observe","list","_this$resizeObserver","unobserve","_this$$refs","inkbar","tabs","activeTab","findSingle","$pcTabs","isVertical","height","getOuterHeight","top","getOffset","getOuterWidth","left","_this$$refs2","scrollTop","scrollHeight","offsetWidth","offsetHeight","_ref","getHeight","parseInt","_this$$refs3","prevBtn","nextBtn","reduce","acc","el","$el","closest","_this3","targetNode","document","documentElement","config","attributes","attributeFilter","MutationObserver","computed","templates","$slots","d_value","scrollable","prevButtonAriaLabel","$primevue","locale","aria","previous","nextButtonAriaLabel","next","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","ptmi","$options","$data","_withDirectives","tabindex","onClick","apply","arguments","ptm","_createBlock","_resolveDynamicComponent","previcon","_createElementVNode","role","orientation","_renderSlot","nexticon"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/tablist/BaseTabList.vue","../../src/tablist/TabList.vue","../../src/tablist/TabList.vue?vue&type=template&id=631ca37f&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\n\nexport default {\n name: 'BaseTabList',\n extends: BaseComponent,\n props: {},\n style: TabListStyle,\n provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth, isRTL } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n const pos = Math.abs(content.scrollLeft) - width;\n const scrollLeft = pos <= 0 ? 0 : pos;\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n const pos = width + Math.abs(content.scrollLeft);\n const lastPos = content.scrollWidth - width;\n const scrollLeft = pos >= lastPos ? lastPos : pos;\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const scrollLeft = Math.abs(content.scrollLeft);\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth, isRTL } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content);\n const pos = Math.abs(content.scrollLeft) - width;\n const scrollLeft = pos <= 0 ? 0 : pos;\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n const pos = width + Math.abs(content.scrollLeft);\n const lastPos = content.scrollWidth - width;\n const scrollLeft = pos >= lastPos ? lastPos : pos;\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const scrollLeft = Math.abs(content.scrollLeft);\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","style","TabListStyle","provide","$pcTabList","$parentInstance","BaseTabList","inheritAttrs","inject","data","isPrevButtonEnabled","isNextButtonEnabled","resizeObserver","undefined","watch","showNavigators","newValue","bindResizeObserver","unbindResizeObserver","activeValue","flush","handler","updateInkBar","mounted","_this","$nextTick","updateButtonState","updated","beforeUnmount","methods","onScroll","event","preventDefault","onPrevButtonClick","content","$refs","width","getWidth","pos","Math","abs","scrollLeft","isRTL","onNextButtonClick","getVisibleButtonWidths","lastPos","scrollWidth","_this2","ResizeObserver","observe","list","_this$resizeObserver","unobserve","_this$$refs","inkbar","tabs","activeTab","findSingle","$pcTabs","isVertical","height","getOuterHeight","top","getOffset","getOuterWidth","left","_this$$refs2","scrollTop","scrollHeight","offsetWidth","offsetHeight","_ref","getHeight","parseInt","_this$$refs3","prevBtn","nextBtn","reduce","acc","el","computed","templates","$slots","d_value","scrollable","prevButtonAriaLabel","$primevue","config","locale","aria","previous","nextButtonAriaLabel","next","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","ptmi","$options","$data","_withDirectives","tabindex","onClick","apply","arguments","ptm","_createBlock","_resolveDynamicComponent","previcon","_createElementVNode","role","orientation","_renderSlot","nexticon"],"mappings":"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"}
package/tabs/index.d.ts CHANGED
@@ -74,7 +74,7 @@ export interface TabsState {
74
74
  /**
75
75
  * Current active value state.
76
76
  */
77
- d_value: number;
77
+ d_value: string | number;
78
78
  /**
79
79
  * Unique id for the Tabs component.
80
80
  */
@@ -159,9 +159,9 @@ export interface TabsSlots {
159
159
  export interface TabsEmitsOptions {
160
160
  /**
161
161
  * Emitted when the value changes.
162
- * @param {string} value - Current value.
162
+ * @param {string | number} value - Current value.
163
163
  */
164
- 'update:value'(value: number): void;
164
+ 'update:value'(value: string | number): void;
165
165
  }
166
166
 
167
167
  export declare type TabsEmits = EmitFn<TabsEmitsOptions>;
@@ -10,18 +10,29 @@ export default {
10
10
  name: 'Textarea',
11
11
  extends: BaseTextarea,
12
12
  inheritAttrs: false,
13
+ observer: null,
13
14
  mounted() {
14
- if (this.$el.offsetParent && this.autoResize) {
15
- this.resize();
15
+ if (this.autoResize) {
16
+ this.observer = new ResizeObserver(() => {
17
+ this.resize();
18
+ });
19
+ this.observer.observe(this.$el);
16
20
  }
17
21
  },
18
22
  updated() {
19
- if (this.$el.offsetParent && this.autoResize) {
23
+ if (this.autoResize) {
20
24
  this.resize();
21
25
  }
22
26
  },
27
+ beforeUnmount() {
28
+ if (this.observer) {
29
+ this.observer.disconnect();
30
+ }
31
+ },
23
32
  methods: {
24
33
  resize() {
34
+ if (!this.$el.offsetParent) return;
35
+
25
36
  this.$el.style.height = 'auto';
26
37
  this.$el.style.height = this.$el.scrollHeight + 'px';
27
38
 
@@ -10,7 +10,7 @@
10
10
  import type { DefineComponent, DesignToken, EmitFn, Nullable, PassThrough } from '@primevue/core';
11
11
  import type { ComponentHooks } from '@primevue/core/basecomponent';
12
12
  import type { PassThroughOptions } from 'primevue/passthrough';
13
- import { TextareaHTMLAttributes } from 'vue';
13
+ import 'vue';
14
14
 
15
15
  export declare type TextareaPassThroughOptionType = TextareaPassThroughAttributes | ((options: TextareaPassThroughMethodOptions) => TextareaPassThroughAttributes | string) | string | null | undefined;
16
16
 
@@ -85,9 +85,8 @@ export interface TextareaContext {
85
85
 
86
86
  /**
87
87
  * Defines valid properties in Textarea component. In addition to these, all properties of TextareaHTMLAttributes can be used in this component.
88
- * @extends TextareaHTMLAttributes
89
88
  */
90
- export interface TextareaProps extends TextareaHTMLAttributes {
89
+ export interface TextareaProps {
91
90
  /**
92
91
  * Value of the component.
93
92
  */
@@ -21,18 +21,29 @@ var script = {
21
21
  name: 'Textarea',
22
22
  "extends": script$1,
23
23
  inheritAttrs: false,
24
+ observer: null,
24
25
  mounted: function mounted() {
25
- if (this.$el.offsetParent && this.autoResize) {
26
- this.resize();
26
+ var _this = this;
27
+ if (this.autoResize) {
28
+ this.observer = new ResizeObserver(function () {
29
+ _this.resize();
30
+ });
31
+ this.observer.observe(this.$el);
27
32
  }
28
33
  },
29
34
  updated: function updated() {
30
- if (this.$el.offsetParent && this.autoResize) {
35
+ if (this.autoResize) {
31
36
  this.resize();
32
37
  }
33
38
  },
39
+ beforeUnmount: function beforeUnmount() {
40
+ if (this.observer) {
41
+ this.observer.disconnect();
42
+ }
43
+ },
34
44
  methods: {
35
45
  resize: function resize() {
46
+ if (!this.$el.offsetParent) return;
36
47
  this.$el.style.height = 'auto';
37
48
  this.$el.style.height = this.$el.scrollHeight + 'px';
38
49
  if (parseFloat(this.$el.style.height) >= parseFloat(this.$el.style.maxHeight)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/textarea/BaseTextarea.vue","../../src/textarea/Textarea.vue","../../src/textarea/Textarea.vue?vue&type=template&id=28a9ca42&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport TextareaStyle from 'primevue/textarea/style';\n\nexport default {\n name: 'BaseTextarea',\n extends: BaseInput,\n props: {\n autoResize: Boolean\n },\n style: TextareaStyle,\n provide() {\n return {\n $pcTextarea: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <textarea :class=\"cx('root')\" :value=\"d_value\" :disabled=\"disabled\" :aria-invalid=\"invalid || undefined\" @input=\"onInput\" v-bind=\"attrs\"></textarea>\n</template>\n\n<script>\nimport { mergeProps } from 'vue';\nimport BaseTextarea from './BaseTextarea.vue';\n\nexport default {\n name: 'Textarea',\n extends: BaseTextarea,\n inheritAttrs: false,\n mounted() {\n if (this.$el.offsetParent && this.autoResize) {\n this.resize();\n }\n },\n updated() {\n if (this.$el.offsetParent && this.autoResize) {\n this.resize();\n }\n },\n methods: {\n resize() {\n this.$el.style.height = 'auto';\n this.$el.style.height = this.$el.scrollHeight + 'px';\n\n if (parseFloat(this.$el.style.height) >= parseFloat(this.$el.style.maxHeight)) {\n this.$el.style.overflowY = 'scroll';\n this.$el.style.height = this.$el.style.maxHeight;\n } else {\n this.$el.style.overflow = 'hidden';\n }\n },\n onInput(event) {\n if (this.autoResize) {\n this.resize();\n }\n\n this.writeValue(event.target.value, event);\n }\n },\n computed: {\n attrs() {\n return mergeProps(\n this.ptmi('root', {\n context: {\n filled: this.$filled,\n disabled: this.disabled\n }\n }),\n this.formField\n );\n }\n }\n};\n</script>\n","<template>\n <textarea :class=\"cx('root')\" :value=\"d_value\" :disabled=\"disabled\" :aria-invalid=\"invalid || undefined\" @input=\"onInput\" v-bind=\"attrs\"></textarea>\n</template>\n\n<script>\nimport { mergeProps } from 'vue';\nimport BaseTextarea from './BaseTextarea.vue';\n\nexport default {\n name: 'Textarea',\n extends: BaseTextarea,\n inheritAttrs: false,\n mounted() {\n if (this.$el.offsetParent && this.autoResize) {\n this.resize();\n }\n },\n updated() {\n if (this.$el.offsetParent && this.autoResize) {\n this.resize();\n }\n },\n methods: {\n resize() {\n this.$el.style.height = 'auto';\n this.$el.style.height = this.$el.scrollHeight + 'px';\n\n if (parseFloat(this.$el.style.height) >= parseFloat(this.$el.style.maxHeight)) {\n this.$el.style.overflowY = 'scroll';\n this.$el.style.height = this.$el.style.maxHeight;\n } else {\n this.$el.style.overflow = 'hidden';\n }\n },\n onInput(event) {\n if (this.autoResize) {\n this.resize();\n }\n\n this.writeValue(event.target.value, event);\n }\n },\n computed: {\n attrs() {\n return mergeProps(\n this.ptmi('root', {\n context: {\n filled: this.$filled,\n disabled: this.disabled\n }\n }),\n this.formField\n );\n }\n }\n};\n</script>\n"],"names":["name","BaseInput","props","autoResize","Boolean","style","TextareaStyle","provide","$pcTextarea","$parentInstance","BaseTextarea","inheritAttrs","mounted","$el","offsetParent","resize","updated","methods","height","scrollHeight","parseFloat","maxHeight","overflowY","overflow","onInput","event","writeValue","target","value","computed","attrs","mergeProps","ptmi","context","filled","$filled","disabled","formField","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","d_value","invalid","undefined","$options","apply","arguments","_hoisted_1"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/textarea/BaseTextarea.vue","../../src/textarea/Textarea.vue","../../src/textarea/Textarea.vue?vue&type=template&id=1950f9e4&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport TextareaStyle from 'primevue/textarea/style';\n\nexport default {\n name: 'BaseTextarea',\n extends: BaseInput,\n props: {\n autoResize: Boolean\n },\n style: TextareaStyle,\n provide() {\n return {\n $pcTextarea: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <textarea :class=\"cx('root')\" :value=\"d_value\" :disabled=\"disabled\" :aria-invalid=\"invalid || undefined\" @input=\"onInput\" v-bind=\"attrs\"></textarea>\n</template>\n\n<script>\nimport { mergeProps } from 'vue';\nimport BaseTextarea from './BaseTextarea.vue';\n\nexport default {\n name: 'Textarea',\n extends: BaseTextarea,\n inheritAttrs: false,\n observer: null,\n mounted() {\n if (this.autoResize) {\n this.observer = new ResizeObserver(() => {\n this.resize();\n });\n this.observer.observe(this.$el);\n }\n },\n updated() {\n if (this.autoResize) {\n this.resize();\n }\n },\n beforeUnmount() {\n if (this.observer) {\n this.observer.disconnect();\n }\n },\n methods: {\n resize() {\n if (!this.$el.offsetParent) return;\n\n this.$el.style.height = 'auto';\n this.$el.style.height = this.$el.scrollHeight + 'px';\n\n if (parseFloat(this.$el.style.height) >= parseFloat(this.$el.style.maxHeight)) {\n this.$el.style.overflowY = 'scroll';\n this.$el.style.height = this.$el.style.maxHeight;\n } else {\n this.$el.style.overflow = 'hidden';\n }\n },\n onInput(event) {\n if (this.autoResize) {\n this.resize();\n }\n\n this.writeValue(event.target.value, event);\n }\n },\n computed: {\n attrs() {\n return mergeProps(\n this.ptmi('root', {\n context: {\n filled: this.$filled,\n disabled: this.disabled\n }\n }),\n this.formField\n );\n }\n }\n};\n</script>\n","<template>\n <textarea :class=\"cx('root')\" :value=\"d_value\" :disabled=\"disabled\" :aria-invalid=\"invalid || undefined\" @input=\"onInput\" v-bind=\"attrs\"></textarea>\n</template>\n\n<script>\nimport { mergeProps } from 'vue';\nimport BaseTextarea from './BaseTextarea.vue';\n\nexport default {\n name: 'Textarea',\n extends: BaseTextarea,\n inheritAttrs: false,\n observer: null,\n mounted() {\n if (this.autoResize) {\n this.observer = new ResizeObserver(() => {\n this.resize();\n });\n this.observer.observe(this.$el);\n }\n },\n updated() {\n if (this.autoResize) {\n this.resize();\n }\n },\n beforeUnmount() {\n if (this.observer) {\n this.observer.disconnect();\n }\n },\n methods: {\n resize() {\n if (!this.$el.offsetParent) return;\n\n this.$el.style.height = 'auto';\n this.$el.style.height = this.$el.scrollHeight + 'px';\n\n if (parseFloat(this.$el.style.height) >= parseFloat(this.$el.style.maxHeight)) {\n this.$el.style.overflowY = 'scroll';\n this.$el.style.height = this.$el.style.maxHeight;\n } else {\n this.$el.style.overflow = 'hidden';\n }\n },\n onInput(event) {\n if (this.autoResize) {\n this.resize();\n }\n\n this.writeValue(event.target.value, event);\n }\n },\n computed: {\n attrs() {\n return mergeProps(\n this.ptmi('root', {\n context: {\n filled: this.$filled,\n disabled: this.disabled\n }\n }),\n this.formField\n );\n }\n }\n};\n</script>\n"],"names":["name","BaseInput","props","autoResize","Boolean","style","TextareaStyle","provide","$pcTextarea","$parentInstance","BaseTextarea","inheritAttrs","observer","mounted","_this","ResizeObserver","resize","observe","$el","updated","beforeUnmount","disconnect","methods","offsetParent","height","scrollHeight","parseFloat","maxHeight","overflowY","overflow","onInput","event","writeValue","target","value","computed","attrs","mergeProps","ptmi","context","filled","$filled","disabled","formField","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","d_value","invalid","undefined","$options","apply","arguments","_hoisted_1"],"mappings":"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"}
@@ -189,8 +189,7 @@ export default {
189
189
  action: mergeProps(
190
190
  {
191
191
  class: this.cx('itemLink'),
192
- tabindex: -1,
193
- 'aria-hidden': true
192
+ tabindex: -1
194
193
  },
195
194
  this.getPTOptions(processedItem, index, 'itemLink')
196
195
  ),
@@ -190,8 +190,7 @@ var script$1 = {
190
190
  return {
191
191
  action: mergeProps({
192
192
  "class": this.cx('itemLink'),
193
- tabindex: -1,
194
- 'aria-hidden': true
193
+ tabindex: -1
195
194
  }, this.getPTOptions(processedItem, index, 'itemLink')),
196
195
  icon: mergeProps({
197
196
  "class": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]