39dffeff52330d4c2fd9472f86ddb243e502b0161ae5f2a0a8e29487c8686450f0cb531c0bb1088a1b53682f45c1edb9d8954648314dc75d489512ce1cf624-exec 982 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <script>
  2. import { isNaN } from '../utils'
  3. function stringifyValue(value) {
  4. if (typeof value === 'string') return value
  5. // istanbul ignore else
  6. if (value != null && !isNaN(value)) return JSON.stringify(value)
  7. // istanbul ignore next
  8. return ''
  9. }
  10. export default {
  11. name: 'vue-treeselect--hidden-fields',
  12. inject: [ 'instance' ],
  13. functional: true,
  14. render(_, context) {
  15. const { instance } = context.injections
  16. if (!instance.name || instance.disabled || !instance.hasValue) return null
  17. let stringifiedValues = instance.internalValue.map(stringifyValue)
  18. if (instance.multiple && instance.joinValues) stringifiedValues = [
  19. stringifiedValues.join(instance.delimiter),
  20. ]
  21. return stringifiedValues.map((stringifiedValue, i) => (
  22. <input type="hidden"
  23. name={instance.name}
  24. value={stringifiedValue}
  25. key={'hidden-field-' + i}
  26. />
  27. ))
  28. },
  29. }
  30. </script>