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
@@ -29,6 +29,7 @@
29
29
  </template>
30
30
 
31
31
  <script>
32
+ import { isTouchDevice } from '@primeuix/utils/dom';
32
33
  import InputText from 'primevue/inputtext';
33
34
  import BaseInputOtp from './BaseInputOtp.vue';
34
35
 
@@ -71,7 +72,7 @@ export default {
71
72
 
72
73
  if (event.inputType === 'deleteContentBackward') {
73
74
  this.moveToPrev(event);
74
- } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward') {
75
+ } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward' || (isTouchDevice() && event instanceof CustomEvent)) {
75
76
  this.moveToNext(event);
76
77
  }
77
78
  },
@@ -1,3 +1,4 @@
1
+ import { isTouchDevice } from '@primeuix/utils/dom';
1
2
  import InputText from 'primevue/inputtext';
2
3
  import BaseInput from '@primevue/core/baseinput';
3
4
  import InputOtpStyle from 'primevue/inputotp/style';
@@ -86,7 +87,7 @@ var script = {
86
87
  this.updateModel(event);
87
88
  if (event.inputType === 'deleteContentBackward') {
88
89
  this.moveToPrev(event);
89
- } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward') {
90
+ } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward' || isTouchDevice() && event instanceof CustomEvent) {
90
91
  this.moveToNext(event);
91
92
  }
92
93
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/inputotp/BaseInputOtp.vue","../../src/inputotp/InputOtp.vue","../../src/inputotp/InputOtp.vue?vue&type=template&id=4eebf078&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport InputOtpStyle from 'primevue/inputotp/style';\n\nexport default {\n name: 'BaseInputOtp',\n extends: BaseInput,\n props: {\n readonly: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: null\n },\n length: {\n type: Number,\n default: 4\n },\n mask: {\n type: Boolean,\n default: false\n },\n integerOnly: {\n type: Boolean,\n default: false\n }\n },\n style: InputOtpStyle,\n provide() {\n return {\n $pcInputOtp: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"i in length\" :key=\"i\">\n <slot :events=\"getTemplateEvents(i - 1)\" :attrs=\"getTemplateAttrs(i - 1)\" :index=\"i\">\n <OtpInputText\n :value=\"tokens[i - 1]\"\n :type=\"inputType\"\n :class=\"cx('pcInputText')\"\n :name=\"$formName\"\n :inputmode=\"inputMode\"\n :variant=\"variant\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :size=\"size\"\n :invalid=\"invalid\"\n :tabindex=\"tabindex\"\n :unstyled=\"unstyled\"\n @input=\"onInput($event, i - 1)\"\n @focus=\"onFocus($event)\"\n @blur=\"onBlur($event)\"\n @paste=\"onPaste($event)\"\n @keydown=\"onKeyDown($event)\"\n @click=\"onClick($event)\"\n :pt=\"ptm('pcInputText')\"\n />\n </slot>\n </template>\n </div>\n</template>\n\n<script>\nimport InputText from 'primevue/inputtext';\nimport BaseInputOtp from './BaseInputOtp.vue';\n\nexport default {\n name: 'InputOtp',\n extends: BaseInputOtp,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n tokens: []\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newValue) {\n this.tokens = newValue ? newValue.split('') : new Array(this.length);\n }\n }\n },\n methods: {\n getTemplateAttrs(index) {\n return {\n value: this.tokens[index]\n };\n },\n getTemplateEvents(index) {\n return {\n input: (event) => this.onInput(event, index),\n keydown: (event) => this.onKeyDown(event),\n focus: (event) => this.onFocus(event),\n blur: (event) => this.onBlur(event),\n paste: (event) => this.onPaste(event)\n };\n },\n onInput(event, index) {\n this.tokens[index] = event.target.value;\n this.updateModel(event);\n\n if (event.inputType === 'deleteContentBackward') {\n this.moveToPrev(event);\n } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward') {\n this.moveToNext(event);\n }\n },\n updateModel(event) {\n const newValue = this.tokens.join('');\n\n this.writeValue(newValue, event);\n this.$emit('change', {\n originalEvent: event,\n value: newValue\n });\n },\n moveToPrev(event) {\n let prevInput = this.findPrevInput(event.target);\n\n if (prevInput) {\n prevInput.focus();\n prevInput.select();\n }\n },\n moveToNext(event) {\n let nextInput = this.findNextInput(event.target);\n\n if (nextInput) {\n nextInput.focus();\n nextInput.select();\n }\n },\n findNextInput(element) {\n let nextElement = element.nextElementSibling;\n\n if (!nextElement) return;\n\n return nextElement.nodeName === 'INPUT' ? nextElement : this.findNextInput(nextElement);\n },\n findPrevInput(element) {\n let prevElement = element.previousElementSibling;\n\n if (!prevElement) return;\n\n return prevElement.nodeName === 'INPUT' ? prevElement : this.findPrevInput(prevElement);\n },\n onFocus(event) {\n event.target.select();\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.$emit('blur', event);\n },\n onClick(event) {\n setTimeout(() => event.target.select(), 1);\n },\n onKeyDown(event) {\n if (event.ctrlKey || event.metaKey) {\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.moveToPrev(event);\n event.preventDefault();\n\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n\n break;\n\n case 'Backspace':\n if (event.target.value.length === 0) {\n this.moveToPrev(event);\n event.preventDefault();\n }\n\n break;\n\n case 'ArrowRight':\n this.moveToNext(event);\n event.preventDefault();\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Tab':\n break;\n\n default:\n if ((this.integerOnly && !(event.code !== 'Space' && Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {\n event.preventDefault();\n }\n\n break;\n }\n },\n onPaste(event) {\n let paste = event.clipboardData.getData('text');\n\n if (paste.length) {\n let pastedCode = paste.substring(0, this.length);\n\n if (!this.integerOnly || !isNaN(pastedCode)) {\n this.tokens = pastedCode.split('');\n this.updateModel(event);\n }\n }\n\n event.preventDefault();\n }\n },\n computed: {\n inputMode() {\n return this.integerOnly ? 'numeric' : 'text';\n },\n inputType() {\n return this.mask ? 'password' : 'text';\n }\n },\n components: {\n OtpInputText: InputText\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"i in length\" :key=\"i\">\n <slot :events=\"getTemplateEvents(i - 1)\" :attrs=\"getTemplateAttrs(i - 1)\" :index=\"i\">\n <OtpInputText\n :value=\"tokens[i - 1]\"\n :type=\"inputType\"\n :class=\"cx('pcInputText')\"\n :name=\"$formName\"\n :inputmode=\"inputMode\"\n :variant=\"variant\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :size=\"size\"\n :invalid=\"invalid\"\n :tabindex=\"tabindex\"\n :unstyled=\"unstyled\"\n @input=\"onInput($event, i - 1)\"\n @focus=\"onFocus($event)\"\n @blur=\"onBlur($event)\"\n @paste=\"onPaste($event)\"\n @keydown=\"onKeyDown($event)\"\n @click=\"onClick($event)\"\n :pt=\"ptm('pcInputText')\"\n />\n </slot>\n </template>\n </div>\n</template>\n\n<script>\nimport InputText from 'primevue/inputtext';\nimport BaseInputOtp from './BaseInputOtp.vue';\n\nexport default {\n name: 'InputOtp',\n extends: BaseInputOtp,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n tokens: []\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newValue) {\n this.tokens = newValue ? newValue.split('') : new Array(this.length);\n }\n }\n },\n methods: {\n getTemplateAttrs(index) {\n return {\n value: this.tokens[index]\n };\n },\n getTemplateEvents(index) {\n return {\n input: (event) => this.onInput(event, index),\n keydown: (event) => this.onKeyDown(event),\n focus: (event) => this.onFocus(event),\n blur: (event) => this.onBlur(event),\n paste: (event) => this.onPaste(event)\n };\n },\n onInput(event, index) {\n this.tokens[index] = event.target.value;\n this.updateModel(event);\n\n if (event.inputType === 'deleteContentBackward') {\n this.moveToPrev(event);\n } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward') {\n this.moveToNext(event);\n }\n },\n updateModel(event) {\n const newValue = this.tokens.join('');\n\n this.writeValue(newValue, event);\n this.$emit('change', {\n originalEvent: event,\n value: newValue\n });\n },\n moveToPrev(event) {\n let prevInput = this.findPrevInput(event.target);\n\n if (prevInput) {\n prevInput.focus();\n prevInput.select();\n }\n },\n moveToNext(event) {\n let nextInput = this.findNextInput(event.target);\n\n if (nextInput) {\n nextInput.focus();\n nextInput.select();\n }\n },\n findNextInput(element) {\n let nextElement = element.nextElementSibling;\n\n if (!nextElement) return;\n\n return nextElement.nodeName === 'INPUT' ? nextElement : this.findNextInput(nextElement);\n },\n findPrevInput(element) {\n let prevElement = element.previousElementSibling;\n\n if (!prevElement) return;\n\n return prevElement.nodeName === 'INPUT' ? prevElement : this.findPrevInput(prevElement);\n },\n onFocus(event) {\n event.target.select();\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.$emit('blur', event);\n },\n onClick(event) {\n setTimeout(() => event.target.select(), 1);\n },\n onKeyDown(event) {\n if (event.ctrlKey || event.metaKey) {\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.moveToPrev(event);\n event.preventDefault();\n\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n\n break;\n\n case 'Backspace':\n if (event.target.value.length === 0) {\n this.moveToPrev(event);\n event.preventDefault();\n }\n\n break;\n\n case 'ArrowRight':\n this.moveToNext(event);\n event.preventDefault();\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Tab':\n break;\n\n default:\n if ((this.integerOnly && !(event.code !== 'Space' && Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {\n event.preventDefault();\n }\n\n break;\n }\n },\n onPaste(event) {\n let paste = event.clipboardData.getData('text');\n\n if (paste.length) {\n let pastedCode = paste.substring(0, this.length);\n\n if (!this.integerOnly || !isNaN(pastedCode)) {\n this.tokens = pastedCode.split('');\n this.updateModel(event);\n }\n }\n\n event.preventDefault();\n }\n },\n computed: {\n inputMode() {\n return this.integerOnly ? 'numeric' : 'text';\n },\n inputType() {\n return this.mask ? 'password' : 'text';\n }\n },\n components: {\n OtpInputText: InputText\n }\n};\n</script>\n"],"names":["name","BaseInput","props","readonly","type","Boolean","tabindex","Number","length","mask","integerOnly","style","InputOtpStyle","provide","$pcInputOtp","$parentInstance","BaseInputOtp","inheritAttrs","emits","data","tokens","watch","modelValue","immediate","handler","newValue","split","Array","methods","getTemplateAttrs","index","value","getTemplateEvents","_this","input","event","onInput","keydown","onKeyDown","focus","onFocus","blur","onBlur","paste","onPaste","target","updateModel","inputType","moveToPrev","moveToNext","join","writeValue","$emit","originalEvent","prevInput","findPrevInput","select","nextInput","findNextInput","element","nextElement","nextElementSibling","nodeName","prevElement","previousElementSibling","onClick","setTimeout","ctrlKey","metaKey","code","preventDefault","key","clipboardData","getData","pastedCode","substring","isNaN","computed","inputMode","components","OtpInputText","InputText","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","_Fragment","_renderList","i","_renderSlot","$slots","events","$options","attrs","_createVNode","_component_OtpInputText","$data","$formName","inputmode","variant","disabled","size","invalid","unstyled","$event","_cache","onKeydown","pt","ptm"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/inputotp/BaseInputOtp.vue","../../src/inputotp/InputOtp.vue","../../src/inputotp/InputOtp.vue?vue&type=template&id=05b21321&lang.js"],"sourcesContent":["<script>\nimport BaseInput from '@primevue/core/baseinput';\nimport InputOtpStyle from 'primevue/inputotp/style';\n\nexport default {\n name: 'BaseInputOtp',\n extends: BaseInput,\n props: {\n readonly: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: null\n },\n length: {\n type: Number,\n default: 4\n },\n mask: {\n type: Boolean,\n default: false\n },\n integerOnly: {\n type: Boolean,\n default: false\n }\n },\n style: InputOtpStyle,\n provide() {\n return {\n $pcInputOtp: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"i in length\" :key=\"i\">\n <slot :events=\"getTemplateEvents(i - 1)\" :attrs=\"getTemplateAttrs(i - 1)\" :index=\"i\">\n <OtpInputText\n :value=\"tokens[i - 1]\"\n :type=\"inputType\"\n :class=\"cx('pcInputText')\"\n :name=\"$formName\"\n :inputmode=\"inputMode\"\n :variant=\"variant\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :size=\"size\"\n :invalid=\"invalid\"\n :tabindex=\"tabindex\"\n :unstyled=\"unstyled\"\n @input=\"onInput($event, i - 1)\"\n @focus=\"onFocus($event)\"\n @blur=\"onBlur($event)\"\n @paste=\"onPaste($event)\"\n @keydown=\"onKeyDown($event)\"\n @click=\"onClick($event)\"\n :pt=\"ptm('pcInputText')\"\n />\n </slot>\n </template>\n </div>\n</template>\n\n<script>\nimport { isTouchDevice } from '@primeuix/utils/dom';\nimport InputText from 'primevue/inputtext';\nimport BaseInputOtp from './BaseInputOtp.vue';\n\nexport default {\n name: 'InputOtp',\n extends: BaseInputOtp,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n tokens: []\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newValue) {\n this.tokens = newValue ? newValue.split('') : new Array(this.length);\n }\n }\n },\n methods: {\n getTemplateAttrs(index) {\n return {\n value: this.tokens[index]\n };\n },\n getTemplateEvents(index) {\n return {\n input: (event) => this.onInput(event, index),\n keydown: (event) => this.onKeyDown(event),\n focus: (event) => this.onFocus(event),\n blur: (event) => this.onBlur(event),\n paste: (event) => this.onPaste(event)\n };\n },\n onInput(event, index) {\n this.tokens[index] = event.target.value;\n this.updateModel(event);\n\n if (event.inputType === 'deleteContentBackward') {\n this.moveToPrev(event);\n } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward' || (isTouchDevice() && event instanceof CustomEvent)) {\n this.moveToNext(event);\n }\n },\n updateModel(event) {\n const newValue = this.tokens.join('');\n\n this.writeValue(newValue, event);\n this.$emit('change', {\n originalEvent: event,\n value: newValue\n });\n },\n moveToPrev(event) {\n let prevInput = this.findPrevInput(event.target);\n\n if (prevInput) {\n prevInput.focus();\n prevInput.select();\n }\n },\n moveToNext(event) {\n let nextInput = this.findNextInput(event.target);\n\n if (nextInput) {\n nextInput.focus();\n nextInput.select();\n }\n },\n findNextInput(element) {\n let nextElement = element.nextElementSibling;\n\n if (!nextElement) return;\n\n return nextElement.nodeName === 'INPUT' ? nextElement : this.findNextInput(nextElement);\n },\n findPrevInput(element) {\n let prevElement = element.previousElementSibling;\n\n if (!prevElement) return;\n\n return prevElement.nodeName === 'INPUT' ? prevElement : this.findPrevInput(prevElement);\n },\n onFocus(event) {\n event.target.select();\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.$emit('blur', event);\n },\n onClick(event) {\n setTimeout(() => event.target.select(), 1);\n },\n onKeyDown(event) {\n if (event.ctrlKey || event.metaKey) {\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.moveToPrev(event);\n event.preventDefault();\n\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n\n break;\n\n case 'Backspace':\n if (event.target.value.length === 0) {\n this.moveToPrev(event);\n event.preventDefault();\n }\n\n break;\n\n case 'ArrowRight':\n this.moveToNext(event);\n event.preventDefault();\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Tab':\n break;\n\n default:\n if ((this.integerOnly && !(event.code !== 'Space' && Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {\n event.preventDefault();\n }\n\n break;\n }\n },\n onPaste(event) {\n let paste = event.clipboardData.getData('text');\n\n if (paste.length) {\n let pastedCode = paste.substring(0, this.length);\n\n if (!this.integerOnly || !isNaN(pastedCode)) {\n this.tokens = pastedCode.split('');\n this.updateModel(event);\n }\n }\n\n event.preventDefault();\n }\n },\n computed: {\n inputMode() {\n return this.integerOnly ? 'numeric' : 'text';\n },\n inputType() {\n return this.mask ? 'password' : 'text';\n }\n },\n components: {\n OtpInputText: InputText\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"i in length\" :key=\"i\">\n <slot :events=\"getTemplateEvents(i - 1)\" :attrs=\"getTemplateAttrs(i - 1)\" :index=\"i\">\n <OtpInputText\n :value=\"tokens[i - 1]\"\n :type=\"inputType\"\n :class=\"cx('pcInputText')\"\n :name=\"$formName\"\n :inputmode=\"inputMode\"\n :variant=\"variant\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :size=\"size\"\n :invalid=\"invalid\"\n :tabindex=\"tabindex\"\n :unstyled=\"unstyled\"\n @input=\"onInput($event, i - 1)\"\n @focus=\"onFocus($event)\"\n @blur=\"onBlur($event)\"\n @paste=\"onPaste($event)\"\n @keydown=\"onKeyDown($event)\"\n @click=\"onClick($event)\"\n :pt=\"ptm('pcInputText')\"\n />\n </slot>\n </template>\n </div>\n</template>\n\n<script>\nimport { isTouchDevice } from '@primeuix/utils/dom';\nimport InputText from 'primevue/inputtext';\nimport BaseInputOtp from './BaseInputOtp.vue';\n\nexport default {\n name: 'InputOtp',\n extends: BaseInputOtp,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n tokens: []\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newValue) {\n this.tokens = newValue ? newValue.split('') : new Array(this.length);\n }\n }\n },\n methods: {\n getTemplateAttrs(index) {\n return {\n value: this.tokens[index]\n };\n },\n getTemplateEvents(index) {\n return {\n input: (event) => this.onInput(event, index),\n keydown: (event) => this.onKeyDown(event),\n focus: (event) => this.onFocus(event),\n blur: (event) => this.onBlur(event),\n paste: (event) => this.onPaste(event)\n };\n },\n onInput(event, index) {\n this.tokens[index] = event.target.value;\n this.updateModel(event);\n\n if (event.inputType === 'deleteContentBackward') {\n this.moveToPrev(event);\n } else if (event.inputType === 'insertText' || event.inputType === 'deleteContentForward' || (isTouchDevice() && event instanceof CustomEvent)) {\n this.moveToNext(event);\n }\n },\n updateModel(event) {\n const newValue = this.tokens.join('');\n\n this.writeValue(newValue, event);\n this.$emit('change', {\n originalEvent: event,\n value: newValue\n });\n },\n moveToPrev(event) {\n let prevInput = this.findPrevInput(event.target);\n\n if (prevInput) {\n prevInput.focus();\n prevInput.select();\n }\n },\n moveToNext(event) {\n let nextInput = this.findNextInput(event.target);\n\n if (nextInput) {\n nextInput.focus();\n nextInput.select();\n }\n },\n findNextInput(element) {\n let nextElement = element.nextElementSibling;\n\n if (!nextElement) return;\n\n return nextElement.nodeName === 'INPUT' ? nextElement : this.findNextInput(nextElement);\n },\n findPrevInput(element) {\n let prevElement = element.previousElementSibling;\n\n if (!prevElement) return;\n\n return prevElement.nodeName === 'INPUT' ? prevElement : this.findPrevInput(prevElement);\n },\n onFocus(event) {\n event.target.select();\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.$emit('blur', event);\n },\n onClick(event) {\n setTimeout(() => event.target.select(), 1);\n },\n onKeyDown(event) {\n if (event.ctrlKey || event.metaKey) {\n return;\n }\n\n switch (event.code) {\n case 'ArrowLeft':\n this.moveToPrev(event);\n event.preventDefault();\n\n break;\n\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n\n break;\n\n case 'Backspace':\n if (event.target.value.length === 0) {\n this.moveToPrev(event);\n event.preventDefault();\n }\n\n break;\n\n case 'ArrowRight':\n this.moveToNext(event);\n event.preventDefault();\n\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Tab':\n break;\n\n default:\n if ((this.integerOnly && !(event.code !== 'Space' && Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {\n event.preventDefault();\n }\n\n break;\n }\n },\n onPaste(event) {\n let paste = event.clipboardData.getData('text');\n\n if (paste.length) {\n let pastedCode = paste.substring(0, this.length);\n\n if (!this.integerOnly || !isNaN(pastedCode)) {\n this.tokens = pastedCode.split('');\n this.updateModel(event);\n }\n }\n\n event.preventDefault();\n }\n },\n computed: {\n inputMode() {\n return this.integerOnly ? 'numeric' : 'text';\n },\n inputType() {\n return this.mask ? 'password' : 'text';\n }\n },\n components: {\n OtpInputText: InputText\n }\n};\n</script>\n"],"names":["name","BaseInput","props","readonly","type","Boolean","tabindex","Number","length","mask","integerOnly","style","InputOtpStyle","provide","$pcInputOtp","$parentInstance","BaseInputOtp","inheritAttrs","emits","data","tokens","watch","modelValue","immediate","handler","newValue","split","Array","methods","getTemplateAttrs","index","value","getTemplateEvents","_this","input","event","onInput","keydown","onKeyDown","focus","onFocus","blur","onBlur","paste","onPaste","target","updateModel","inputType","moveToPrev","isTouchDevice","CustomEvent","moveToNext","join","writeValue","$emit","originalEvent","prevInput","findPrevInput","select","nextInput","findNextInput","element","nextElement","nextElementSibling","nodeName","prevElement","previousElementSibling","onClick","setTimeout","ctrlKey","metaKey","code","preventDefault","key","clipboardData","getData","pastedCode","substring","isNaN","computed","inputMode","components","OtpInputText","InputText","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","_Fragment","_renderList","i","_renderSlot","$slots","events","$options","attrs","_createVNode","_component_OtpInputText","$data","$formName","inputmode","variant","disabled","size","invalid","unstyled","$event","_cache","onKeydown","pt","ptm"],"mappings":"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"}
@@ -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 { InputHTMLAttributes } from 'vue';
13
+ import 'vue';
14
14
 
15
15
  export declare type InputTextPassThroughOptionType<T = any> = InputTextPassThroughAttributes | ((options: InputTextPassThroughMethodOptions<T>) => InputTextPassThroughAttributes | string) | string | null | undefined;
16
16
 
@@ -82,7 +82,7 @@ export interface InputTextContext {
82
82
  /**
83
83
  * Defines valid properties in InputText component.
84
84
  */
85
- export interface InputTextProps extends InputHTMLAttributes {
85
+ export interface InputTextProps {
86
86
  /**
87
87
  * Value of the component.
88
88
  */
@@ -98,22 +98,22 @@ export interface InputTextProps extends InputHTMLAttributes {
98
98
  /**
99
99
  * Defines the size of the component.
100
100
  */
101
- size?: 'small' | 'large' | undefined;
101
+ size?: 'small' | 'large' | undefined | null;
102
102
  /**
103
103
  * When present, it specifies that the component should have invalid state style.
104
104
  * @defaultValue false
105
105
  */
106
- invalid?: boolean | undefined;
106
+ invalid?: boolean | undefined | null;
107
107
  /**
108
108
  * Specifies the input variant of the component.
109
109
  * @defaultValue outlined
110
110
  */
111
- variant?: 'outlined' | 'filled' | undefined;
111
+ variant?: 'outlined' | 'filled' | undefined | null;
112
112
  /**
113
113
  * Spans 100% width of the container when enabled.
114
114
  * @defaultValue null
115
115
  */
116
- fluid?: boolean | undefined;
116
+ fluid?: boolean | undefined | null;
117
117
  /**
118
118
  * Form control object, typically used for handling validation and form state.
119
119
  */
@@ -411,7 +411,7 @@ export default {
411
411
  }
412
412
  },
413
413
  onFilterChange(event) {
414
- this.$emit('filter', { originalEvent: event, value: event.target.value });
414
+ this.$emit('filter', { originalEvent: event, value: event.target.value, filterValue: this.visibleOptions });
415
415
  this.focusedOptionIndex = this.startRangeIndex = -1;
416
416
  },
417
417
  onFilterBlur() {
@@ -703,17 +703,6 @@ export default {
703
703
  this.writeValue(value, event);
704
704
  this.$emit('change', { originalEvent: event, value });
705
705
  },
706
- flatOptions(options) {
707
- return (options || []).reduce((result, option, index) => {
708
- result.push({ optionGroup: option, group: true, index });
709
-
710
- const optionGroupChildren = this.getOptionGroupChildren(option);
711
-
712
- optionGroupChildren && optionGroupChildren.forEach((o) => result.push(o));
713
-
714
- return result;
715
- }, []);
716
- },
717
706
  listRef(el, contentRef) {
718
707
  this.list = el;
719
708
  contentRef && contentRef(el); // For VirtualScroller
@@ -723,10 +712,25 @@ export default {
723
712
  }
724
713
  },
725
714
  computed: {
726
- visibleOptions() {
727
- const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];
715
+ optionsListFlat() {
716
+ return this.filterValue ? FilterService.filter(this.options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : this.options;
717
+ },
718
+ optionsListGroup() {
719
+ const filteredOptions = [];
728
720
 
729
- return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;
721
+ (this.options || []).forEach((optionGroup) => {
722
+ const optionGroupChildren = this.getOptionGroupChildren(optionGroup) || [];
723
+ const filteredChildren = this.filterValue ? FilterService.filter(optionGroupChildren, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : optionGroupChildren;
724
+
725
+ if (filteredChildren?.length) {
726
+ filteredOptions.push({ optionGroup, group: true }, ...filteredChildren);
727
+ }
728
+ });
729
+
730
+ return filteredOptions;
731
+ },
732
+ visibleOptions() {
733
+ return this.optionGroupLabel ? this.optionsListGroup : this.optionsListFlat;
730
734
  },
731
735
  // @deprecated use $filled instead
732
736
  hasSelectedOption() {
@@ -109,6 +109,10 @@ export interface ListboxFilterEvent {
109
109
  * Filter value
110
110
  */
111
111
  value: string;
112
+ /**
113
+ * Filtered options
114
+ */
115
+ filterValue: any[];
112
116
  }
113
117
 
114
118
  /**
package/listbox/index.mjs CHANGED
@@ -380,7 +380,8 @@ var script = {
380
380
  onFilterChange: function onFilterChange(event) {
381
381
  this.$emit('filter', {
382
382
  originalEvent: event,
383
- value: event.target.value
383
+ value: event.target.value,
384
+ filterValue: this.visibleOptions
384
385
  });
385
386
  this.focusedOptionIndex = this.startRangeIndex = -1;
386
387
  },
@@ -693,21 +694,6 @@ var script = {
693
694
  value: value
694
695
  });
695
696
  },
696
- flatOptions: function flatOptions(options) {
697
- var _this17 = this;
698
- return (options || []).reduce(function (result, option, index) {
699
- result.push({
700
- optionGroup: option,
701
- group: true,
702
- index: index
703
- });
704
- var optionGroupChildren = _this17.getOptionGroupChildren(option);
705
- optionGroupChildren && optionGroupChildren.forEach(function (o) {
706
- return result.push(o);
707
- });
708
- return result;
709
- }, []);
710
- },
711
697
  listRef: function listRef(el, contentRef) {
712
698
  this.list = el;
713
699
  contentRef && contentRef(el); // For VirtualScroller
@@ -717,9 +703,26 @@ var script = {
717
703
  }
718
704
  },
719
705
  computed: {
706
+ optionsListFlat: function optionsListFlat() {
707
+ return this.filterValue ? FilterService.filter(this.options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : this.options;
708
+ },
709
+ optionsListGroup: function optionsListGroup() {
710
+ var _this17 = this;
711
+ var filteredOptions = [];
712
+ (this.options || []).forEach(function (optionGroup) {
713
+ var optionGroupChildren = _this17.getOptionGroupChildren(optionGroup) || [];
714
+ var filteredChildren = _this17.filterValue ? FilterService.filter(optionGroupChildren, _this17.searchFields, _this17.filterValue, _this17.filterMatchMode, _this17.filterLocale) : optionGroupChildren;
715
+ if (filteredChildren !== null && filteredChildren !== void 0 && filteredChildren.length) {
716
+ filteredOptions.push.apply(filteredOptions, [{
717
+ optionGroup: optionGroup,
718
+ group: true
719
+ }].concat(_toConsumableArray(filteredChildren)));
720
+ }
721
+ });
722
+ return filteredOptions;
723
+ },
720
724
  visibleOptions: function visibleOptions() {
721
- var options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];
722
- return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;
725
+ return this.optionGroupLabel ? this.optionsListGroup : this.optionsListFlat;
723
726
  },
724
727
  // @deprecated use $filled instead
725
728
  hasSelectedOption: function hasSelectedOption() {