UNPKG

reka-ui

Version:

Vue port for Radix UI Primitives.

1 lines 3.56 kB
{"version":3,"file":"VisuallyHiddenInput.cjs","sources":["../../src/VisuallyHidden/VisuallyHiddenInput.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T\">\nimport { computed } from 'vue'\nimport VisuallyHiddenInputBubble, { type VisuallyHiddenInputBubbleProps } from './VisuallyHiddenInputBubble.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst isFormArrayEmptyAndRequired = computed(() =>\n typeof props.value === 'object'\n && Array.isArray(props.value)\n && props.value.length === 0\n && props.required,\n)\n\nconst parsedValue = computed(() => {\n // if primitive value\n if (typeof props.value === 'string' || typeof props.value === 'number' || typeof props.value === 'boolean') {\n return [{ name: props.name, value: props.value }]\n }\n\n // if array value\n else if (typeof props.value === 'object' && Array.isArray(props.value)) {\n return props.value.flatMap((obj, index) => {\n // if item in array is object\n if (typeof obj === 'object')\n return Object.entries(obj).map(([key, value]) => ({ name: `[${props.name}][${index}][${key}]`, value }))\n // if item in array is not object, may be primitive\n else\n return ({ name: `[${props.name}][${index}]`, value: obj })\n })\n }\n\n // if object value\n else if (props.value !== null && typeof props.value === 'object' && !Array.isArray(props.value)) {\n return Object.entries(props.value as object).map(([key, value]) => ({ name: `[${props.name}][${key}]`, value }))\n }\n\n return []\n})\n</script>\n\n<template>\n <!-- We render single input if it's required -->\n <VisuallyHiddenInputBubble\n v-if=\"isFormArrayEmptyAndRequired\"\n :key=\"name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"name\"\n :value=\"value\"\n />\n\n <VisuallyHiddenInputBubble\n v-for=\"parsed in parsedValue\"\n v-else\n :key=\"parsed.name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"parsed.name\"\n :value=\"parsed.value\"\n />\n</template>\n"],"names":["computed"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,2BAA8B,GAAAA,YAAA;AAAA,MAAS,MAC3C,OAAO,KAAM,CAAA,KAAA,KAAU,YACpB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CACzB,IAAA,KAAA,CAAM,KAAM,CAAA,MAAA,KAAW,KACvB,KAAM,CAAA;AAAA,KACX;AAEA,IAAM,MAAA,WAAA,GAAcA,aAAS,MAAM;AAEjC,MAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,SAAW,EAAA;AAC1G,QAAO,OAAA,CAAC,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,KAAO,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,OAClD,MAAA,IAGS,OAAO,KAAM,CAAA,KAAA,KAAU,YAAY,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CAAG,EAAA;AACtE,QAAA,OAAO,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,KAAK,KAAU,KAAA;AAEzC,UAAA,IAAI,OAAO,GAAQ,KAAA,QAAA;AACjB,YAAO,OAAA,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,EAAA,EAAK,KAAK,CAAK,EAAA,EAAA,GAAG,CAAK,CAAA,CAAA,EAAA,KAAA,EAAQ,CAAA,CAAA;AAAA;AAGvG,YAAQ,OAAA,EAAE,MAAM,CAAI,CAAA,EAAA,KAAA,CAAM,IAAI,CAAK,EAAA,EAAA,KAAK,CAAK,CAAA,CAAA,EAAA,KAAA,EAAO,GAAI,EAAA;AAAA,SAC3D,CAAA;AAAA,OAIM,MAAA,IAAA,KAAA,CAAM,KAAU,KAAA,IAAA,IAAQ,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC/F,QAAO,OAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,KAAe,EAAE,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,OAAO,EAAE,IAAA,EAAM,IAAI,KAAM,CAAA,IAAI,KAAK,GAAG,CAAA,CAAA,CAAA,EAAK,OAAQ,CAAA,CAAA;AAAA;AAGjH,MAAA,OAAO,EAAC;AAAA,KACT,CAAA;;;;;;;;;;;;;;;;;;;;"}