primevue 4.3.8 → 4.4.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 (118) hide show
  1. package/autocomplete/AutoComplete.vue +18 -3
  2. package/autocomplete/BaseAutoComplete.vue +4 -0
  3. package/autocomplete/index.d.ts +20 -0
  4. package/autocomplete/index.mjs +34 -7
  5. package/autocomplete/index.mjs.map +1 -1
  6. package/autocomplete/style/index.d.ts +4 -0
  7. package/autocomplete/style/index.mjs +3 -1
  8. package/autocomplete/style/index.mjs.map +1 -1
  9. package/cascadeselect/CascadeSelect.vue +1 -1
  10. package/cascadeselect/index.mjs +1 -1
  11. package/cascadeselect/index.mjs.map +1 -1
  12. package/checkbox/Checkbox.vue +15 -2
  13. package/checkbox/index.mjs +14 -2
  14. package/checkbox/index.mjs.map +1 -1
  15. package/colorpicker/ColorPicker.vue +5 -6
  16. package/colorpicker/index.mjs +5 -5
  17. package/colorpicker/index.mjs.map +1 -1
  18. package/column/index.d.ts +2 -2
  19. package/confirmdialog/ConfirmDialog.vue +1 -1
  20. package/confirmdialog/index.d.ts +5 -0
  21. package/confirmdialog/index.mjs +3 -2
  22. package/confirmdialog/index.mjs.map +1 -1
  23. package/datatable/BodyCell.vue +1 -1
  24. package/datatable/ColumnFilter.vue +1 -1
  25. package/datatable/DataTable.vue +6 -3
  26. package/datatable/HeaderCheckbox.vue +3 -3
  27. package/datatable/index.mjs +19 -9
  28. package/datatable/index.mjs.map +1 -1
  29. package/datepicker/BaseDatePicker.vue +8 -0
  30. package/datepicker/DatePicker.vue +200 -82
  31. package/datepicker/index.d.ts +25 -0
  32. package/datepicker/index.mjs +263 -155
  33. package/datepicker/index.mjs.map +1 -1
  34. package/datepicker/style/index.d.ts +4 -0
  35. package/datepicker/style/index.mjs +5 -2
  36. package/datepicker/style/index.mjs.map +1 -1
  37. package/dialog/Dialog.vue +1 -1
  38. package/dialog/index.d.ts +5 -0
  39. package/dialog/index.mjs +2 -1
  40. package/dialog/index.mjs.map +1 -1
  41. package/drawer/BaseDrawer.vue +4 -0
  42. package/drawer/Drawer.vue +4 -4
  43. package/drawer/index.d.ts +5 -0
  44. package/drawer/index.mjs +8 -4
  45. package/drawer/index.mjs.map +1 -1
  46. package/editor/Editor.vue +5 -1
  47. package/editor/index.mjs +5 -0
  48. package/editor/index.mjs.map +1 -1
  49. package/fileupload/FileUpload.vue +2 -2
  50. package/fileupload/index.mjs +2 -2
  51. package/fileupload/index.mjs.map +1 -1
  52. package/image/index.d.ts +5 -11
  53. package/inputmask/InputMask.vue +1 -2
  54. package/inputmask/index.mjs +1 -1
  55. package/inputmask/index.mjs.map +1 -1
  56. package/inputnumber/BaseInputNumber.vue +4 -0
  57. package/inputnumber/InputNumber.vue +33 -5
  58. package/inputnumber/index.d.ts +20 -0
  59. package/inputnumber/index.mjs +48 -7
  60. package/inputnumber/index.mjs.map +1 -1
  61. package/inputnumber/style/index.mjs +1 -0
  62. package/inputnumber/style/index.mjs.map +1 -1
  63. package/inputotp/InputOtp.vue +7 -3
  64. package/inputotp/index.mjs +6 -3
  65. package/inputotp/index.mjs.map +1 -1
  66. package/keyfilter/index.mjs +14 -1
  67. package/keyfilter/index.mjs.map +1 -1
  68. package/listbox/Listbox.vue +8 -14
  69. package/listbox/index.mjs +13 -19
  70. package/listbox/index.mjs.map +1 -1
  71. package/multiselect/MultiSelect.vue +15 -12
  72. package/multiselect/index.mjs +21 -18
  73. package/multiselect/index.mjs.map +1 -1
  74. package/package.json +5 -5
  75. package/panel/Panel.vue +1 -1
  76. package/panel/index.d.ts +4 -0
  77. package/panel/index.mjs +2 -1
  78. package/panel/index.mjs.map +1 -1
  79. package/password/BasePassword.vue +4 -0
  80. package/password/Password.vue +12 -1
  81. package/password/index.d.ts +20 -0
  82. package/password/index.mjs +23 -1
  83. package/password/index.mjs.map +1 -1
  84. package/password/style/index.d.ts +4 -0
  85. package/password/style/index.mjs +1 -0
  86. package/password/style/index.mjs.map +1 -1
  87. package/select/Select.vue +5 -4
  88. package/select/index.mjs +6 -5
  89. package/select/index.mjs.map +1 -1
  90. package/tab/Tab.vue +0 -1
  91. package/tab/index.mjs +0 -1
  92. package/tab/index.mjs.map +1 -1
  93. package/togglebutton/BaseToggleButton.vue +0 -4
  94. package/togglebutton/index.d.ts +0 -5
  95. package/togglebutton/index.mjs +0 -4
  96. package/togglebutton/index.mjs.map +1 -1
  97. package/tooltip/index.mjs +5 -1
  98. package/tooltip/index.mjs.map +1 -1
  99. package/tree/BaseTree.vue +16 -0
  100. package/tree/Tree.vue +179 -4
  101. package/tree/TreeNode.vue +225 -3
  102. package/tree/index.d.ts +65 -0
  103. package/tree/index.mjs +499 -22
  104. package/tree/index.mjs.map +1 -1
  105. package/tree/style/index.mjs +9 -4
  106. package/tree/style/index.mjs.map +1 -1
  107. package/treenode/index.d.ts +12 -0
  108. package/treeselect/TreeSelect.vue +2 -2
  109. package/treeselect/index.mjs +2 -2
  110. package/treeselect/index.mjs.map +1 -1
  111. package/treetable/TreeTable.vue +15 -1
  112. package/treetable/index.d.ts +58 -4
  113. package/treetable/index.mjs +19 -6
  114. package/treetable/index.mjs.map +1 -1
  115. package/umd/primevue.min.js +1 -1
  116. package/vetur-attributes.json +0 -4
  117. package/vetur-tags.json +0 -1
  118. package/web-types.json +1 -11
@@ -16,6 +16,7 @@ var classes = {
16
16
  }];
17
17
  },
18
18
  pcInputText: 'p-inputnumber-input',
19
+ clearIcon: 'p-inputnumber-clear-icon',
19
20
  buttonGroup: 'p-inputnumber-button-group',
20
21
  incrementButton: function incrementButton(_ref2) {
21
22
  var instance = _ref2.instance,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/inputnumber/style/InputNumberStyle.js"],"sourcesContent":["import { style } from '@primeuix/styles/inputnumber';\nimport BaseStyle from '@primevue/core/base/style';\n\nconst classes = {\n root: ({ instance, props }) => [\n 'p-inputnumber p-component p-inputwrapper',\n {\n 'p-invalid': instance.$invalid,\n 'p-inputwrapper-filled': instance.$filled || props.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': props.showButtons && props.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': props.showButtons && props.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': props.showButtons && props.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.$fluid\n }\n ],\n pcInputText: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: ({ instance, props }) => [\n 'p-inputnumber-button p-inputnumber-increment-button',\n {\n 'p-disabled': props.showButtons && props.max !== null && instance.maxBoundry()\n }\n ],\n decrementButton: ({ instance, props }) => [\n 'p-inputnumber-button p-inputnumber-decrement-button',\n {\n 'p-disabled': props.showButtons && props.min !== null && instance.minBoundry()\n }\n ]\n};\n\nexport default BaseStyle.extend({\n name: 'inputnumber',\n style,\n classes\n});\n"],"names":["classes","root","_ref","instance","props","$invalid","$filled","allowEmpty","focused","showButtons","buttonLayout","$fluid","pcInputText","buttonGroup","incrementButton","_ref2","max","maxBoundry","decrementButton","_ref3","min","minBoundry","BaseStyle","extend","name","style"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG;AACZC,EAAAA,IAAI,EAAE,SAANA,IAAIA,CAAAC,IAAA,EAAA;AAAA,IAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAA,OAAO,CAC3B,0CAA0C,EAC1C;MACI,WAAW,EAAED,QAAQ,CAACE,QAAQ;MAC9B,uBAAuB,EAAEF,QAAQ,CAACG,OAAO,IAAIF,KAAK,CAACG,UAAU,KAAK,KAAK;MACvE,sBAAsB,EAAEJ,QAAQ,CAACK,OAAO;MACxC,uBAAuB,EAAEJ,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACM,YAAY,KAAK,SAAS;MAC9E,0BAA0B,EAAEN,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACM,YAAY,KAAK,YAAY;MACpF,wBAAwB,EAAEN,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACM,YAAY,KAAK,UAAU;MAChF,qBAAqB,EAAEP,QAAQ,CAACQ;AACpC,KAAC,CACJ;AAAA,EAAA,CAAA;AACDC,EAAAA,WAAW,EAAE,qBAAqB;AAClCC,EAAAA,WAAW,EAAE,4BAA4B;AACzCC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAAC,KAAA,EAAA;AAAA,IAAA,IAAKZ,QAAQ,GAAAY,KAAA,CAARZ,QAAQ;MAAEC,KAAK,GAAAW,KAAA,CAALX,KAAK;IAAA,OAAO,CACtC,qDAAqD,EACrD;AACI,MAAA,YAAY,EAAEA,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACY,GAAG,KAAK,IAAI,IAAIb,QAAQ,CAACc,UAAU;AAChF,KAAC,CACJ;AAAA,EAAA,CAAA;AACDC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAAC,KAAA,EAAA;AAAA,IAAA,IAAKhB,QAAQ,GAAAgB,KAAA,CAARhB,QAAQ;MAAEC,KAAK,GAAAe,KAAA,CAALf,KAAK;IAAA,OAAO,CACtC,qDAAqD,EACrD;AACI,MAAA,YAAY,EAAEA,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACgB,GAAG,KAAK,IAAI,IAAIjB,QAAQ,CAACkB,UAAU;AAChF,KAAC,CACJ;AAAA,EAAA;AACL,CAAC;AAED,uBAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,aAAa;AACnBC,EAAAA,KAAK,EAALA,KAAK;AACLzB,EAAAA,OAAO,EAAPA;AACJ,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/inputnumber/style/InputNumberStyle.js"],"sourcesContent":["import { style } from '@primeuix/styles/inputnumber';\nimport BaseStyle from '@primevue/core/base/style';\n\nconst classes = {\n root: ({ instance, props }) => [\n 'p-inputnumber p-component p-inputwrapper',\n {\n 'p-invalid': instance.$invalid,\n 'p-inputwrapper-filled': instance.$filled || props.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': props.showButtons && props.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': props.showButtons && props.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': props.showButtons && props.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.$fluid\n }\n ],\n pcInputText: 'p-inputnumber-input',\n clearIcon: 'p-inputnumber-clear-icon',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: ({ instance, props }) => [\n 'p-inputnumber-button p-inputnumber-increment-button',\n {\n 'p-disabled': props.showButtons && props.max !== null && instance.maxBoundry()\n }\n ],\n decrementButton: ({ instance, props }) => [\n 'p-inputnumber-button p-inputnumber-decrement-button',\n {\n 'p-disabled': props.showButtons && props.min !== null && instance.minBoundry()\n }\n ]\n};\n\nexport default BaseStyle.extend({\n name: 'inputnumber',\n style,\n classes\n});\n"],"names":["classes","root","_ref","instance","props","$invalid","$filled","allowEmpty","focused","showButtons","buttonLayout","$fluid","pcInputText","clearIcon","buttonGroup","incrementButton","_ref2","max","maxBoundry","decrementButton","_ref3","min","minBoundry","BaseStyle","extend","name","style"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG;AACZC,EAAAA,IAAI,EAAE,SAANA,IAAIA,CAAAC,IAAA,EAAA;AAAA,IAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAA,OAAO,CAC3B,0CAA0C,EAC1C;MACI,WAAW,EAAED,QAAQ,CAACE,QAAQ;MAC9B,uBAAuB,EAAEF,QAAQ,CAACG,OAAO,IAAIF,KAAK,CAACG,UAAU,KAAK,KAAK;MACvE,sBAAsB,EAAEJ,QAAQ,CAACK,OAAO;MACxC,uBAAuB,EAAEJ,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACM,YAAY,KAAK,SAAS;MAC9E,0BAA0B,EAAEN,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACM,YAAY,KAAK,YAAY;MACpF,wBAAwB,EAAEN,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACM,YAAY,KAAK,UAAU;MAChF,qBAAqB,EAAEP,QAAQ,CAACQ;AACpC,KAAC,CACJ;AAAA,EAAA,CAAA;AACDC,EAAAA,WAAW,EAAE,qBAAqB;AAClCC,EAAAA,SAAS,EAAE,0BAA0B;AACrCC,EAAAA,WAAW,EAAE,4BAA4B;AACzCC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAAC,KAAA,EAAA;AAAA,IAAA,IAAKb,QAAQ,GAAAa,KAAA,CAARb,QAAQ;MAAEC,KAAK,GAAAY,KAAA,CAALZ,KAAK;IAAA,OAAO,CACtC,qDAAqD,EACrD;AACI,MAAA,YAAY,EAAEA,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACa,GAAG,KAAK,IAAI,IAAId,QAAQ,CAACe,UAAU;AAChF,KAAC,CACJ;AAAA,EAAA,CAAA;AACDC,EAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAAC,KAAA,EAAA;AAAA,IAAA,IAAKjB,QAAQ,GAAAiB,KAAA,CAARjB,QAAQ;MAAEC,KAAK,GAAAgB,KAAA,CAALhB,KAAK;IAAA,OAAO,CACtC,qDAAqD,EACrD;AACI,MAAA,YAAY,EAAEA,KAAK,CAACK,WAAW,IAAIL,KAAK,CAACiB,GAAG,KAAK,IAAI,IAAIlB,QAAQ,CAACmB,UAAU;AAChF,KAAC,CACJ;AAAA,EAAA;AACL,CAAC;AAED,uBAAeC,SAAS,CAACC,MAAM,CAAC;AAC5BC,EAAAA,IAAI,EAAE,aAAa;AACnBC,EAAAA,KAAK,EAALA,KAAK;AACL1B,EAAAA,OAAO,EAAPA;AACJ,CAAC,CAAC;;;;"}
@@ -130,7 +130,7 @@ export default {
130
130
  return;
131
131
  }
132
132
 
133
- switch (event.code) {
133
+ switch (event.key) {
134
134
  case 'ArrowLeft':
135
135
  this.moveToPrev(event);
136
136
  event.preventDefault();
@@ -158,12 +158,16 @@ export default {
158
158
  break;
159
159
 
160
160
  case 'Enter':
161
- case 'NumpadEnter':
162
161
  case 'Tab':
163
162
  break;
164
163
 
165
164
  default:
166
- if ((this.integerOnly && !(event.code !== 'Space' && Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {
165
+ const target = event.target;
166
+ const hasSelection = target.selectionStart !== target.selectionEnd;
167
+ const isAtMaxLength = this.tokens.join('').length >= this.length;
168
+ const isValidKey = this.integerOnly ? /^[0-9]$/.test(event.key) : true;
169
+
170
+ if (!isValidKey || (isAtMaxLength && event.key !== 'Delete' && !hasSelection)) {
167
171
  event.preventDefault();
168
172
  }
169
173
 
@@ -139,7 +139,7 @@ var script = {
139
139
  if (event.ctrlKey || event.metaKey) {
140
140
  return;
141
141
  }
142
- switch (event.code) {
142
+ switch (event.key) {
143
143
  case 'ArrowLeft':
144
144
  this.moveToPrev(event);
145
145
  event.preventDefault();
@@ -159,11 +159,14 @@ var script = {
159
159
  event.preventDefault();
160
160
  break;
161
161
  case 'Enter':
162
- case 'NumpadEnter':
163
162
  case 'Tab':
164
163
  break;
165
164
  default:
166
- if (this.integerOnly && !(event.code !== 'Space' && Number(event.key) >= 0 && Number(event.key) <= 9) || this.tokens.join('').length >= this.length && event.code !== 'Delete') {
165
+ var target = event.target;
166
+ var hasSelection = target.selectionStart !== target.selectionEnd;
167
+ var isAtMaxLength = this.tokens.join('').length >= this.length;
168
+ var isValidKey = this.integerOnly ? /^[0-9]$/.test(event.key) : true;
169
+ if (!isValidKey || isAtMaxLength && event.key !== 'Delete' && !hasSelection) {
167
170
  event.preventDefault();
168
171
  }
169
172
  break;
@@ -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=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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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/inputotp/BaseInputOtp.vue","../../src/inputotp/InputOtp.vue","../../src/inputotp/InputOtp.vue?vue&type=template&id=71101059&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.key) {\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 'Tab':\n break;\n\n default:\n const target = event.target;\n const hasSelection = target.selectionStart !== target.selectionEnd;\n const isAtMaxLength = this.tokens.join('').length >= this.length;\n const isValidKey = this.integerOnly ? /^[0-9]$/.test(event.key) : true;\n\n if (!isValidKey || (isAtMaxLength && event.key !== 'Delete' && !hasSelection)) {\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.key) {\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 'Tab':\n break;\n\n default:\n const target = event.target;\n const hasSelection = target.selectionStart !== target.selectionEnd;\n const isAtMaxLength = this.tokens.join('').length >= this.length;\n const isValidKey = this.integerOnly ? /^[0-9]$/.test(event.key) : true;\n\n if (!isValidKey || (isAtMaxLength && event.key !== 'Delete' && !hasSelection)) {\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","key","preventDefault","hasSelection","selectionStart","selectionEnd","isAtMaxLength","isValidKey","test","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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"}
@@ -51,7 +51,7 @@ var KeyFilter = BaseKeyFilter.extend('keyfilter', {
51
51
  },
52
52
  getModifiers: function getModifiers(options) {
53
53
  if (options.modifiers && Object.keys(options.modifiers).length) {
54
- return Object.keys(options.modifiers)[Object.keys.length - 1];
54
+ return Object.keys(options.modifiers)[Object.keys(options.modifiers).length - 1];
55
55
  }
56
56
  return '';
57
57
  },
@@ -66,14 +66,27 @@ var KeyFilter = BaseKeyFilter.extend('keyfilter', {
66
66
  el.$_keyfilterPasteEvent = function (event) {
67
67
  return _this.onPaste(event, el);
68
68
  };
69
+ el.$_keyfilterInputEvent = function (event) {
70
+ return _this.onInput(event, el);
71
+ };
69
72
  el.addEventListener('keypress', el.$_keyfilterKeydownEvent);
70
73
  el.addEventListener('paste', el.$_keyfilterPasteEvent);
74
+ el.addEventListener('input', el.$_keyfilterInputEvent);
71
75
  },
72
76
  unbindEvents: function unbindEvents(el) {
73
77
  el.removeEventListener('keypress', el.$_keyfilterKeydownEvent);
74
78
  el.removeEventListener('paste', el.$_keyfilterPasteEvent);
79
+ el.removeEventListener('input', el.$_keyfilterInputEvent);
75
80
  el.$_keyfilterKeydownEvent = null;
76
81
  el.$_keyfilterPasteEvent = null;
82
+ el.$_keyfilterInputEvent = null;
83
+ },
84
+ onInput: function onInput(event, target) {
85
+ var regex = this.getRegex(target);
86
+ if (regex && !regex.test(target.value)) {
87
+ // remove invalid character e.g. ~ "
88
+ target.value = target.value.slice(0, -1);
89
+ }
77
90
  },
78
91
  onKeydown: function onKeydown(event, target) {
79
92
  if (event.ctrlKey || event.altKey || event.metaKey || event.key === 'Tab') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/keyfilter/BaseKeyFilter.js","../../src/keyfilter/KeyFilter.js"],"sourcesContent":["import BaseDirective from '@primevue/core/basedirective';\nimport KeyFilterStyle from 'primevue/keyfilter/style';\n\nconst BaseKeyFilter = BaseDirective.extend({\n style: KeyFilterStyle\n});\n\nexport default BaseKeyFilter;\n","import { isAttributeEquals } from '@primeuix/utils/dom';\nimport BaseKeyFilter from './BaseKeyFilter';\n\nconst KeyFilter = BaseKeyFilter.extend('keyfilter', {\n beforeMount(el, options) {\n let target = this.getTarget(el);\n\n if (!target) return;\n\n target.$_pkeyfilterModifier = this.getModifiers(options);\n\n if (options.value !== undefined) {\n target.$_pkeyfilterPattern = options.value?.pattern || options.value;\n target.$_pkeyfilterValidateOnly = options.value?.validateOnly || false;\n }\n\n this.bindEvents(target);\n\n target.setAttribute('data-pd-keyfilter', true);\n },\n updated(el, options) {\n let target = this.getTarget(el);\n\n if (!target) return;\n\n target.$_pkeyfilterModifier = this.getModifiers(options);\n this.unbindEvents(el, options);\n\n if (options.value !== undefined) {\n target.$_pkeyfilterPattern = options.value?.pattern || options.value;\n target.$_pkeyfilterValidateOnly = options.value?.validateOnly || false;\n }\n\n this.bindEvents(target);\n },\n unmounted(el, options) {\n this.unbindEvents(el, options);\n },\n DEFAULT_PATTERNS: {\n pint: /[\\d]/,\n int: /[\\d-]/,\n pnum: /[\\d.]/,\n money: /[\\d.\\s,]/,\n num: /[\\d-.]/,\n hex: /[0-9a-f]/i,\n email: /[a-z0-9_.-@]/i,\n alpha: /[a-z_]/i,\n alphanum: /[a-z0-9_]/\n },\n methods: {\n getTarget(el) {\n return isAttributeEquals(el, 'data-pc-name', 'inputtext') || isAttributeEquals(el, 'data-pc-name', 'textarea') ? el : null;\n },\n getModifiers(options) {\n if (options.modifiers && Object.keys(options.modifiers).length) {\n return Object.keys(options.modifiers)[Object.keys.length - 1];\n }\n\n return '';\n },\n getRegex(target) {\n return target.$_pkeyfilterPattern ? target.$_pkeyfilterPattern : target.$_pkeyfilterModifier ? this.DEFAULT_PATTERNS[target.$_pkeyfilterModifier] : /./;\n },\n bindEvents(el) {\n el.$_keyfilterKeydownEvent = (event) => this.onKeydown(event, el);\n el.$_keyfilterPasteEvent = (event) => this.onPaste(event, el);\n\n el.addEventListener('keypress', el.$_keyfilterKeydownEvent);\n el.addEventListener('paste', el.$_keyfilterPasteEvent);\n },\n unbindEvents(el) {\n el.removeEventListener('keypress', el.$_keyfilterKeydownEvent);\n el.removeEventListener('paste', el.$_keyfilterPasteEvent);\n\n el.$_keyfilterKeydownEvent = null;\n el.$_keyfilterPasteEvent = null;\n },\n onKeydown(event, target) {\n if (event.ctrlKey || event.altKey || event.metaKey || event.key === 'Tab') {\n return;\n }\n\n let regex = this.getRegex(target);\n\n if (regex === '') {\n return;\n }\n\n let testKey = `${event.key}`;\n\n if (target.$_pkeyfilterValidateOnly) {\n testKey = `${target.value.substring(0, target.selectionStart)}${event.key}${target.value.substring(target.selectionEnd)}`;\n }\n\n if (!regex.test(testKey)) {\n // runs before @update:modelValue emit\n event.preventDefault();\n }\n },\n onPaste(event, target) {\n let regex = this.getRegex(target);\n\n if (regex === '') {\n return;\n }\n\n const clipboard = event.clipboardData.getData('text');\n\n if (target.$_pkeyfilterValidateOnly) {\n const newValue = `${target.value.substring(0, target.selectionStart)}${clipboard}${target.value.substring(target.selectionEnd)}`;\n\n if (!regex.test(newValue)) {\n event.preventDefault();\n }\n } else {\n for (let i = 0; i < clipboard.length; i++) {\n if (!regex.test(clipboard[i])) {\n event.preventDefault();\n\n return;\n }\n }\n }\n }\n }\n});\n\nexport default KeyFilter;\n"],"names":["BaseKeyFilter","BaseDirective","extend","style","KeyFilterStyle","KeyFilter","beforeMount","el","options","target","getTarget","$_pkeyfilterModifier","getModifiers","value","undefined","_options$value","_options$value2","$_pkeyfilterPattern","pattern","$_pkeyfilterValidateOnly","validateOnly","bindEvents","setAttribute","updated","unbindEvents","_options$value3","_options$value4","unmounted","DEFAULT_PATTERNS","pint","pnum","money","num","hex","email","alpha","alphanum","methods","isAttributeEquals","modifiers","Object","keys","length","getRegex","_this","$_keyfilterKeydownEvent","event","onKeydown","$_keyfilterPasteEvent","onPaste","addEventListener","removeEventListener","ctrlKey","altKey","metaKey","key","regex","testKey","concat","substring","selectionStart","selectionEnd","test","preventDefault","clipboard","clipboardData","getData","newValue","i"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/keyfilter/BaseKeyFilter.js","../../src/keyfilter/KeyFilter.js"],"sourcesContent":["import BaseDirective from '@primevue/core/basedirective';\nimport KeyFilterStyle from 'primevue/keyfilter/style';\n\nconst BaseKeyFilter = BaseDirective.extend({\n style: KeyFilterStyle\n});\n\nexport default BaseKeyFilter;\n","import { isAttributeEquals } from '@primeuix/utils/dom';\nimport BaseKeyFilter from './BaseKeyFilter';\n\nconst KeyFilter = BaseKeyFilter.extend('keyfilter', {\n beforeMount(el, options) {\n let target = this.getTarget(el);\n\n if (!target) return;\n\n target.$_pkeyfilterModifier = this.getModifiers(options);\n\n if (options.value !== undefined) {\n target.$_pkeyfilterPattern = options.value?.pattern || options.value;\n target.$_pkeyfilterValidateOnly = options.value?.validateOnly || false;\n }\n\n this.bindEvents(target);\n\n target.setAttribute('data-pd-keyfilter', true);\n },\n updated(el, options) {\n let target = this.getTarget(el);\n\n if (!target) return;\n\n target.$_pkeyfilterModifier = this.getModifiers(options);\n this.unbindEvents(el, options);\n\n if (options.value !== undefined) {\n target.$_pkeyfilterPattern = options.value?.pattern || options.value;\n target.$_pkeyfilterValidateOnly = options.value?.validateOnly || false;\n }\n\n this.bindEvents(target);\n },\n unmounted(el, options) {\n this.unbindEvents(el, options);\n },\n DEFAULT_PATTERNS: {\n pint: /[\\d]/,\n int: /[\\d-]/,\n pnum: /[\\d.]/,\n money: /[\\d.\\s,]/,\n num: /[\\d-.]/,\n hex: /[0-9a-f]/i,\n email: /[a-z0-9_.-@]/i,\n alpha: /[a-z_]/i,\n alphanum: /[a-z0-9_]/\n },\n methods: {\n getTarget(el) {\n return isAttributeEquals(el, 'data-pc-name', 'inputtext') || isAttributeEquals(el, 'data-pc-name', 'textarea') ? el : null;\n },\n getModifiers(options) {\n if (options.modifiers && Object.keys(options.modifiers).length) {\n return Object.keys(options.modifiers)[Object.keys(options.modifiers).length - 1];\n }\n\n return '';\n },\n getRegex(target) {\n return target.$_pkeyfilterPattern ? target.$_pkeyfilterPattern : target.$_pkeyfilterModifier ? this.DEFAULT_PATTERNS[target.$_pkeyfilterModifier] : /./;\n },\n bindEvents(el) {\n el.$_keyfilterKeydownEvent = (event) => this.onKeydown(event, el);\n el.$_keyfilterPasteEvent = (event) => this.onPaste(event, el);\n el.$_keyfilterInputEvent = (event) => this.onInput(event, el);\n\n el.addEventListener('keypress', el.$_keyfilterKeydownEvent);\n el.addEventListener('paste', el.$_keyfilterPasteEvent);\n el.addEventListener('input', el.$_keyfilterInputEvent);\n },\n unbindEvents(el) {\n el.removeEventListener('keypress', el.$_keyfilterKeydownEvent);\n el.removeEventListener('paste', el.$_keyfilterPasteEvent);\n el.removeEventListener('input', el.$_keyfilterInputEvent);\n\n el.$_keyfilterKeydownEvent = null;\n el.$_keyfilterPasteEvent = null;\n el.$_keyfilterInputEvent = null;\n },\n onInput(event, target) {\n const regex = this.getRegex(target);\n\n if (regex && !regex.test(target.value)) {\n // remove invalid character e.g. ~ \"\n target.value = target.value.slice(0, -1);\n }\n },\n onKeydown(event, target) {\n if (event.ctrlKey || event.altKey || event.metaKey || event.key === 'Tab') {\n return;\n }\n\n let regex = this.getRegex(target);\n\n if (regex === '') {\n return;\n }\n\n let testKey = `${event.key}`;\n\n if (target.$_pkeyfilterValidateOnly) {\n testKey = `${target.value.substring(0, target.selectionStart)}${event.key}${target.value.substring(target.selectionEnd)}`;\n }\n\n if (!regex.test(testKey)) {\n // runs before @update:modelValue emit\n event.preventDefault();\n }\n },\n onPaste(event, target) {\n let regex = this.getRegex(target);\n\n if (regex === '') {\n return;\n }\n\n const clipboard = event.clipboardData.getData('text');\n\n if (target.$_pkeyfilterValidateOnly) {\n const newValue = `${target.value.substring(0, target.selectionStart)}${clipboard}${target.value.substring(target.selectionEnd)}`;\n\n if (!regex.test(newValue)) {\n event.preventDefault();\n }\n } else {\n for (let i = 0; i < clipboard.length; i++) {\n if (!regex.test(clipboard[i])) {\n event.preventDefault();\n\n return;\n }\n }\n }\n }\n }\n});\n\nexport default KeyFilter;\n"],"names":["BaseKeyFilter","BaseDirective","extend","style","KeyFilterStyle","KeyFilter","beforeMount","el","options","target","getTarget","$_pkeyfilterModifier","getModifiers","value","undefined","_options$value","_options$value2","$_pkeyfilterPattern","pattern","$_pkeyfilterValidateOnly","validateOnly","bindEvents","setAttribute","updated","unbindEvents","_options$value3","_options$value4","unmounted","DEFAULT_PATTERNS","pint","pnum","money","num","hex","email","alpha","alphanum","methods","isAttributeEquals","modifiers","Object","keys","length","getRegex","_this","$_keyfilterKeydownEvent","event","onKeydown","$_keyfilterPasteEvent","onPaste","$_keyfilterInputEvent","onInput","addEventListener","removeEventListener","regex","test","slice","ctrlKey","altKey","metaKey","key","testKey","concat","substring","selectionStart","selectionEnd","preventDefault","clipboard","clipboardData","getData","newValue","i"],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  :data-p-hidden-accessible="true"
12
12
  :data-p-hidden-focusable="true"
13
13
  ></span>
14
- <div v-if="$slots.header" :class="cx('header')">
14
+ <div v-if="$slots.header" :class="cx('header')" v-bind="ptm('header')">
15
15
  <slot name="header" :value="d_value" :options="visibleOptions"></slot>
16
16
  </div>
17
17
  <div v-if="filter" :class="cx('header')" v-bind="ptm('header')">
@@ -29,7 +29,6 @@
29
29
  :aria-activedescendant="focusedOptionId"
30
30
  :tabindex="!disabled && !focused ? tabindex : -1"
31
31
  @input="onFilterChange"
32
- @blur="onFilterBlur"
33
32
  @keydown="onFilterKeyDown"
34
33
  :pt="ptm('pcFilter')"
35
34
  />
@@ -177,7 +176,7 @@ export default {
177
176
  return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];
178
177
  },
179
178
  getOptionLabel(option) {
180
- return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;
179
+ return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' || typeof option === 'number' || typeof option === 'boolean' ? option : null;
181
180
  },
182
181
  getOptionValue(option) {
183
182
  return this.optionValue ? resolveFieldData(option, this.optionValue) : option;
@@ -349,7 +348,6 @@ export default {
349
348
  let valueChanged = false;
350
349
  let value = null;
351
350
  let metaSelection = this.optionTouched ? false : this.metaKeySelection;
352
- const _value = this.getOptionValue(option) !== '' ? this.getOptionValue(option) : this.getOptionLabel(option);
353
351
 
354
352
  if (metaSelection) {
355
353
  let metaKey = event && (event.metaKey || event.ctrlKey);
@@ -360,11 +358,11 @@ export default {
360
358
  valueChanged = true;
361
359
  }
362
360
  } else {
363
- value = _value;
361
+ value = this.getOptionValue(option);
364
362
  valueChanged = true;
365
363
  }
366
364
  } else {
367
- value = selected ? null : _value;
365
+ value = selected ? null : this.getOptionValue(option);
368
366
  valueChanged = true;
369
367
  }
370
368
 
@@ -376,19 +374,18 @@ export default {
376
374
  let selected = this.isSelected(option);
377
375
  let value = null;
378
376
  let metaSelection = this.optionTouched ? false : this.metaKeySelection;
379
- const _value = this.getOptionValue(option) !== '' ? this.getOptionValue(option) : this.getOptionLabel(option);
380
377
 
381
378
  if (metaSelection) {
382
379
  let metaKey = event.metaKey || event.ctrlKey;
383
380
 
384
381
  if (selected) {
385
- value = metaKey ? this.removeOption(option) : [_value];
382
+ value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];
386
383
  } else {
387
384
  value = metaKey ? this.d_value || [] : [];
388
- value = [...value, _value];
385
+ value = [...value, this.getOptionValue(option)];
389
386
  }
390
387
  } else {
391
- value = selected ? this.removeOption(option) : [...(this.d_value || []), _value];
388
+ value = selected ? this.removeOption(option) : [...(this.d_value || []), this.getOptionValue(option)];
392
389
  }
393
390
 
394
391
  this.updateModel(event, value);
@@ -412,9 +409,6 @@ export default {
412
409
  this.$emit('filter', { originalEvent: event, value: event.target.value, filterValue: this.visibleOptions });
413
410
  this.focusedOptionIndex = this.startRangeIndex = -1;
414
411
  },
415
- onFilterBlur() {
416
- this.focusedOptionIndex = this.startRangeIndex = -1;
417
- },
418
412
  onFilterKeyDown(event) {
419
413
  switch (event.code) {
420
414
  case 'ArrowDown':
@@ -557,7 +551,7 @@ export default {
557
551
  return equals(value1, value2, this.equalityKey);
558
552
  },
559
553
  isSelected(option) {
560
- const optionValue = this.getOptionValue(option) !== '' ? this.getOptionValue(option) : this.getOptionLabel(option);
554
+ const optionValue = this.getOptionValue(option);
561
555
 
562
556
  if (this.multiple) return (this.d_value || []).some((value) => this.isEquals(value, optionValue));
563
557
  else return this.isEquals(this.d_value, optionValue);
package/listbox/index.mjs CHANGED
@@ -12,7 +12,7 @@ import Ripple from 'primevue/ripple';
12
12
  import VirtualScroller from 'primevue/virtualscroller';
13
13
  import BaseEditableHolder from '@primevue/core/baseeditableholder';
14
14
  import ListboxStyle from 'primevue/listbox/style';
15
- import { resolveComponent, resolveDirective, createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, renderSlot, normalizeClass, createVNode, withCtx, createBlock, normalizeProps, toDisplayString, createSlots, Fragment, renderList, withDirectives, createTextVNode } from 'vue';
15
+ import { resolveComponent, resolveDirective, createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, renderSlot, createVNode, withCtx, normalizeClass, createBlock, normalizeProps, toDisplayString, createSlots, Fragment, renderList, withDirectives, createTextVNode } from 'vue';
16
16
 
17
17
  var script$1 = {
18
18
  name: 'BaseListbox',
@@ -164,7 +164,7 @@ var script = {
164
164
  return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];
165
165
  },
166
166
  getOptionLabel: function getOptionLabel(option) {
167
- return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;
167
+ return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' || typeof option === 'number' || typeof option === 'boolean' ? option : null;
168
168
  },
169
169
  getOptionValue: function getOptionValue(option) {
170
170
  return this.optionValue ? resolveFieldData(option, this.optionValue) : option;
@@ -324,7 +324,6 @@ var script = {
324
324
  var valueChanged = false;
325
325
  var value = null;
326
326
  var metaSelection = this.optionTouched ? false : this.metaKeySelection;
327
- var _value = this.getOptionValue(option) !== '' ? this.getOptionValue(option) : this.getOptionLabel(option);
328
327
  if (metaSelection) {
329
328
  var metaKey = event && (event.metaKey || event.ctrlKey);
330
329
  if (selected) {
@@ -333,11 +332,11 @@ var script = {
333
332
  valueChanged = true;
334
333
  }
335
334
  } else {
336
- value = _value;
335
+ value = this.getOptionValue(option);
337
336
  valueChanged = true;
338
337
  }
339
338
  } else {
340
- value = selected ? null : _value;
339
+ value = selected ? null : this.getOptionValue(option);
341
340
  valueChanged = true;
342
341
  }
343
342
  if (valueChanged) {
@@ -348,17 +347,16 @@ var script = {
348
347
  var selected = this.isSelected(option);
349
348
  var value = null;
350
349
  var metaSelection = this.optionTouched ? false : this.metaKeySelection;
351
- var _value = this.getOptionValue(option) !== '' ? this.getOptionValue(option) : this.getOptionLabel(option);
352
350
  if (metaSelection) {
353
351
  var metaKey = event.metaKey || event.ctrlKey;
354
352
  if (selected) {
355
- value = metaKey ? this.removeOption(option) : [_value];
353
+ value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];
356
354
  } else {
357
355
  value = metaKey ? this.d_value || [] : [];
358
- value = [].concat(_toConsumableArray(value), [_value]);
356
+ value = [].concat(_toConsumableArray(value), [this.getOptionValue(option)]);
359
357
  }
360
358
  } else {
361
- value = selected ? this.removeOption(option) : [].concat(_toConsumableArray(this.d_value || []), [_value]);
359
+ value = selected ? this.removeOption(option) : [].concat(_toConsumableArray(this.d_value || []), [this.getOptionValue(option)]);
362
360
  }
363
361
  this.updateModel(event, value);
364
362
  },
@@ -387,9 +385,6 @@ var script = {
387
385
  });
388
386
  this.focusedOptionIndex = this.startRangeIndex = -1;
389
387
  },
390
- onFilterBlur: function onFilterBlur() {
391
- this.focusedOptionIndex = this.startRangeIndex = -1;
392
- },
393
388
  onFilterKeyDown: function onFilterKeyDown(event) {
394
389
  switch (event.code) {
395
390
  case 'ArrowDown':
@@ -514,7 +509,7 @@ var script = {
514
509
  },
515
510
  isSelected: function isSelected(option) {
516
511
  var _this4 = this;
517
- var optionValue = this.getOptionValue(option) !== '' ? this.getOptionValue(option) : this.getOptionLabel(option);
512
+ var optionValue = this.getOptionValue(option);
518
513
  if (this.multiple) return (this.d_value || []).some(function (value) {
519
514
  return _this4.isEquals(value, optionValue);
520
515
  });else return this.isEquals(this.d_value, optionValue);
@@ -824,13 +819,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
824
819
  }, _ctx.ptm('hiddenFirstFocusableEl'), {
825
820
  "data-p-hidden-accessible": true,
826
821
  "data-p-hidden-focusable": true
827
- }), null, 16, _hoisted_2), _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
822
+ }), null, 16, _hoisted_2), _ctx.$slots.header ? (openBlock(), createElementBlock("div", mergeProps({
828
823
  key: 0,
829
- "class": normalizeClass(_ctx.cx('header'))
830
- }, [renderSlot(_ctx.$slots, "header", {
824
+ "class": _ctx.cx('header')
825
+ }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, "header", {
831
826
  value: _ctx.d_value,
832
827
  options: $options.visibleOptions
833
- })], 2)) : createCommentVNode("", true), _ctx.filter ? (openBlock(), createElementBlock("div", mergeProps({
828
+ })], 16)) : createCommentVNode("", true), _ctx.filter ? (openBlock(), createElementBlock("div", mergeProps({
834
829
  key: 1,
835
830
  "class": _ctx.cx('header')
836
831
  }, _ctx.ptm('header')), [createVNode(_component_IconField, {
@@ -854,10 +849,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
854
849
  "aria-activedescendant": $options.focusedOptionId,
855
850
  tabindex: !_ctx.disabled && !$data.focused ? _ctx.tabindex : -1,
856
851
  onInput: $options.onFilterChange,
857
- onBlur: $options.onFilterBlur,
858
852
  onKeydown: $options.onFilterKeyDown,
859
853
  pt: _ctx.ptm('pcFilter')
860
- }, null, 8, ["modelValue", "class", "placeholder", "disabled", "unstyled", "aria-owns", "aria-activedescendant", "tabindex", "onInput", "onBlur", "onKeydown", "pt"]), createVNode(_component_InputIcon, {
854
+ }, null, 8, ["modelValue", "class", "placeholder", "disabled", "unstyled", "aria-owns", "aria-activedescendant", "tabindex", "onInput", "onKeydown", "pt"]), createVNode(_component_InputIcon, {
861
855
  unstyled: _ctx.unstyled,
862
856
  pt: _ctx.ptm('pcFilterIconContainer')
863
857
  }, {