@nhtio/lucid-resourceful-vue-components 0.1.0-master-3d82caeb → 0.1.0-master-daace769

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 (69) hide show
  1. package/{VRadioGroup-CeYTmvum.mjs → VRadioGroup-DBANAUmU.mjs} +2 -2
  2. package/{VRadioGroup-CeYTmvum.mjs.map → VRadioGroup-DBANAUmU.mjs.map} +1 -1
  3. package/actions-CdHv-6JS.mjs.map +1 -1
  4. package/{bigint-Bx-3PM_o.mjs → bigint-sArk7WLd.mjs} +4 -4
  5. package/{bigint-Bx-3PM_o.mjs.map → bigint-sArk7WLd.mjs.map} +1 -1
  6. package/{boolean-Cg0-6F79.mjs → boolean-DmdtYaiT.mjs} +4 -4
  7. package/{boolean-Cg0-6F79.mjs.map → boolean-DmdtYaiT.mjs.map} +1 -1
  8. package/{common-CmSn9ovn.mjs → common-Cbhwse5j.mjs} +3 -3
  9. package/{common-CmSn9ovn.mjs.map → common-Cbhwse5j.mjs.map} +1 -1
  10. package/components/custom_field.mjs +1 -1
  11. package/components/exporter.mjs +1 -1
  12. package/components/fields/bigint.mjs +1 -1
  13. package/components/fields/boolean.mjs +1 -1
  14. package/components/fields/date.mjs +1 -1
  15. package/components/fields/date_time.mjs +1 -1
  16. package/components/fields/enum.mjs +1 -1
  17. package/components/fields/integer.mjs +1 -1
  18. package/components/fields/number.mjs +1 -1
  19. package/components/fields/string.mjs +1 -1
  20. package/components/fields/unsigned_integer.mjs +1 -1
  21. package/components/fields.mjs +9 -9
  22. package/components/resourceful_index.mjs +1 -1
  23. package/components/resourceful_record.mjs +2 -2
  24. package/components/resourceful_record_default_form.mjs +1 -1
  25. package/components/resourceful_record_form.mjs +1 -1
  26. package/components/sortable.d.ts +1 -1
  27. package/components/sortable.mjs +1 -1
  28. package/components.mjs +15 -15
  29. package/composables.mjs +3 -3
  30. package/{custom-Bb2kI_Nb.mjs → custom-C2UjsW1W.mjs} +2 -2
  31. package/{custom-Bb2kI_Nb.mjs.map → custom-C2UjsW1W.mjs.map} +1 -1
  32. package/{date-DBcYnRAE.mjs → date-Q4_8hfZF.mjs} +3 -3
  33. package/{date-DBcYnRAE.mjs.map → date-Q4_8hfZF.mjs.map} +1 -1
  34. package/{date_time-BpZTCxIX.mjs → date_time-DsDL6kbA.mjs} +4 -4
  35. package/{date_time-BpZTCxIX.mjs.map → date_time-DsDL6kbA.mjs.map} +1 -1
  36. package/{enum-BXkCdNKH.mjs → enum-nxSMXf7s.mjs} +4 -4
  37. package/{enum-BXkCdNKH.mjs.map → enum-nxSMXf7s.mjs.map} +1 -1
  38. package/{field_composer-Bu3olAAh.mjs → field_composer-DDrc5sRp.mjs} +2 -2
  39. package/{field_composer-Bu3olAAh.mjs.map → field_composer-DDrc5sRp.mjs.map} +1 -1
  40. package/{form-6P4_miJS.mjs → form-CJfTBEm8.mjs} +4 -4
  41. package/{form-6P4_miJS.mjs.map → form-CJfTBEm8.mjs.map} +1 -1
  42. package/helpers.mjs +2 -2
  43. package/http-CyFrwtSL.mjs.map +1 -1
  44. package/{index-C9M8-nx9.mjs → index-BZnG0gPr.mjs} +3 -3
  45. package/{index-C9M8-nx9.mjs.map → index-BZnG0gPr.mjs.map} +1 -1
  46. package/{index-zrx3_d4W.mjs → index-BsNAZ8S2.mjs} +15 -15
  47. package/index-BsNAZ8S2.mjs.map +1 -0
  48. package/{index-De9Z3wRA.mjs → index-IOj-4KPv.mjs} +2 -2
  49. package/{index-De9Z3wRA.mjs.map → index-IOj-4KPv.mjs.map} +1 -1
  50. package/index.mjs +18 -18
  51. package/{integer-Dls6Z2c9.mjs → integer-C-TSnR_9.mjs} +2 -2
  52. package/{integer-Dls6Z2c9.mjs.map → integer-C-TSnR_9.mjs.map} +1 -1
  53. package/{number-jR6KmGNS.mjs → number-Btaw2Wma.mjs} +3 -3
  54. package/{number-jR6KmGNS.mjs.map → number-Btaw2Wma.mjs.map} +1 -1
  55. package/package.json +15 -15
  56. package/private/filtration/common.d.ts +1 -1
  57. package/private/resourceful-index/index.d.ts +1 -1
  58. package/private/resourceful-index/partials/_bulk_edit.d.ts +1 -1
  59. package/private/resourceful-index/partials/_table.d.ts +1 -1
  60. package/private/resourceful-record/index.d.ts +1 -1
  61. package/private/resourceful-record/props.d.ts +1 -1
  62. package/private/sortable/index.d.ts +1 -1
  63. package/{renderers-_dkrBigt.mjs → renderers-B9hOkZbq.mjs} +11 -11
  64. package/{renderers-_dkrBigt.mjs.map → renderers-B9hOkZbq.mjs.map} +1 -1
  65. package/{string-kQ3gLzf2.mjs → string-RG8eoWkx.mjs} +3 -3
  66. package/{string-kQ3gLzf2.mjs.map → string-RG8eoWkx.mjs.map} +1 -1
  67. package/{unsigned_integer-C321P2z9.mjs → unsigned_integer-D0-Tzk9z.mjs} +3 -3
  68. package/{unsigned_integer-C321P2z9.mjs.map → unsigned_integer-D0-Tzk9z.mjs.map} +1 -1
  69. package/index-zrx3_d4W.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { createVNode, mergeProps, useId, computed, ref, createElementVNode, Fragment } from "vue";
2
- import { j as VSelectionControl, k as makeVSelectionControlProps, g as VInput, l as VLabel, n as VSelectionControlGroup, o as makeVInputProps, p as makeSelectionControlGroupProps } from "./common-CmSn9ovn.mjs";
2
+ import { j as VSelectionControl, k as makeVSelectionControlProps, g as VInput, l as VLabel, n as VSelectionControlGroup, o as makeVInputProps, p as makeSelectionControlGroupProps } from "./common-Cbhwse5j.mjs";
3
3
  import { g as genericComponent, p as propsFactory, e as useRender, u as useProxiedModel, O as filterInputAttrs, s as IconValue, o as omit } from "./display-C8bGXYiq.mjs";
4
4
  import { p as forwardRefs } from "./mdi-BMAWtQdN.mjs";
5
5
  const makeVRadioProps = propsFactory({
@@ -118,4 +118,4 @@ export {
118
118
  VRadioGroup as V,
119
119
  VRadio as a
120
120
  };
121
- //# sourceMappingURL=VRadioGroup-CeYTmvum.mjs.map
121
+ //# sourceMappingURL=VRadioGroup-DBANAUmU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VRadioGroup-CeYTmvum.mjs","sources":["../node_modules/.pnpm/vuetify@3.11.3_typescript@5.9.3_vue@3.5.25_typescript@5.9.3_/node_modules/vuetify/lib/components/VRadio/VRadio.js","../node_modules/.pnpm/vuetify@3.11.3_typescript@5.9.3_vue@3.5.25_typescript@5.9.3_/node_modules/vuetify/lib/components/VRadioGroup/VRadioGroup.js"],"sourcesContent":["import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn'\n })\n}, 'VRadio');\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n props: makeVRadioProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"class\": ['v-radio', props.class],\n \"style\": props.style,\n \"type\": \"radio\"\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadio.js.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode } from \"vue\";\n// Styles\nimport \"./VRadioGroup.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.js\";\nimport { VLabel } from \"../VLabel/index.js\";\nimport { VSelectionControl } from \"../VSelectionControl/index.js\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from \"../VSelectionControlGroup/VSelectionControlGroup.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Utilities\nimport { computed, ref, useId } from 'vue';\nimport { filterInputAttrs, genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n trueIcon: {\n type: IconValue,\n default: '$radioOn'\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff'\n },\n type: {\n type: String,\n default: 'radio'\n }\n}, 'VRadioGroup');\nexport const VRadioGroup = genericComponent()({\n name: 'VRadioGroup',\n inheritAttrs: false,\n props: makeVRadioGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const uid = useId();\n const id = computed(() => props.id || `radio-group-${uid}`);\n const model = useProxiedModel(props, 'modelValue');\n const inputRef = ref();\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(VInput, _mergeProps({\n \"ref\": inputRef,\n \"class\": ['v-radio-group', props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly\n } = _ref2;\n return _createElementVNode(_Fragment, null, [label && _createVNode(VLabel, {\n \"id\": id.value\n }, {\n default: () => [label]\n }), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"defaultsTarget\": \"VRadio\",\n \"trueIcon\": props.trueIcon,\n \"falseIcon\": props.falseIcon,\n \"type\": props.type,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"aria-labelledby\": label ? id.value : undefined,\n \"multiple\": false\n }, controlAttrs, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event\n }), slots)]);\n }\n });\n });\n return forwardRefs({}, inputRef);\n }\n});\n//# sourceMappingURL=VRadioGroup.js.map"],"names":["_createVNode","_mergeProps","id","_createElementVNode","_Fragment"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"VRadioGroup-DBANAUmU.mjs","sources":["../node_modules/.pnpm/vuetify@3.11.3_typescript@5.9.3_vue@3.5.25_typescript@5.9.3_/node_modules/vuetify/lib/components/VRadio/VRadio.js","../node_modules/.pnpm/vuetify@3.11.3_typescript@5.9.3_vue@3.5.25_typescript@5.9.3_/node_modules/vuetify/lib/components/VRadioGroup/VRadioGroup.js"],"sourcesContent":["import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn'\n })\n}, 'VRadio');\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n props: makeVRadioProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"class\": ['v-radio', props.class],\n \"style\": props.style,\n \"type\": \"radio\"\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadio.js.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode } from \"vue\";\n// Styles\nimport \"./VRadioGroup.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.js\";\nimport { VLabel } from \"../VLabel/index.js\";\nimport { VSelectionControl } from \"../VSelectionControl/index.js\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from \"../VSelectionControlGroup/VSelectionControlGroup.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Utilities\nimport { computed, ref, useId } from 'vue';\nimport { filterInputAttrs, genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n trueIcon: {\n type: IconValue,\n default: '$radioOn'\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff'\n },\n type: {\n type: String,\n default: 'radio'\n }\n}, 'VRadioGroup');\nexport const VRadioGroup = genericComponent()({\n name: 'VRadioGroup',\n inheritAttrs: false,\n props: makeVRadioGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const uid = useId();\n const id = computed(() => props.id || `radio-group-${uid}`);\n const model = useProxiedModel(props, 'modelValue');\n const inputRef = ref();\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(VInput, _mergeProps({\n \"ref\": inputRef,\n \"class\": ['v-radio-group', props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly\n } = _ref2;\n return _createElementVNode(_Fragment, null, [label && _createVNode(VLabel, {\n \"id\": id.value\n }, {\n default: () => [label]\n }), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"defaultsTarget\": \"VRadio\",\n \"trueIcon\": props.trueIcon,\n \"falseIcon\": props.falseIcon,\n \"type\": props.type,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"aria-labelledby\": label ? id.value : undefined,\n \"multiple\": false\n }, controlAttrs, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event\n }), slots)]);\n }\n });\n });\n return forwardRefs({}, inputRef);\n }\n});\n//# sourceMappingURL=VRadioGroup.js.map"],"names":["_createVNode","_mergeProps","id","_createElementVNode","_Fragment"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +1 @@
1
- {"version":3,"file":"actions-CdHv-6JS.mjs","sources":["../node_modules/.pnpm/vuetify@3.11.3_typescript@5.9.3_vue@3.5.25_typescript@5.9.3_/node_modules/vuetify/lib/components/VTooltip/VTooltip.js","../src/private/resourceful-index/actions.ts"],"sourcesContent":["import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTooltip.css\";\n\n// Components\nimport { VOverlay } from \"../VOverlay/index.js\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\"; // Utilities\nimport { computed, mergeProps, ref, toRef, useId } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVTooltipProps = propsFactory({\n id: String,\n interactive: Boolean,\n text: String,\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end',\n locationStrategy: 'connected',\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto',\n scrim: false,\n scrollStrategy: 'reposition',\n transition: null\n }), ['absolute', 'retainFocus', 'captureFocus', 'disableInitialFocus'])\n}, 'VTooltip');\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n props: makeVTooltipProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const uid = useId();\n const id = toRef(() => props.id || `v-tooltip-${uid}`);\n const overlay = ref();\n const location = computed(() => {\n return props.location.split(' ').length > 1 ? props.location : props.location + ' center';\n });\n const origin = computed(() => {\n return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';\n });\n const transition = toRef(() => {\n if (props.transition != null) return props.transition;\n return isActive.value ? 'scale-transition' : 'fade-transition';\n });\n const activatorProps = computed(() => mergeProps({\n 'aria-describedby': id.value\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-tooltip', {\n 'v-tooltip--interactive': props.interactive\n }, props.class],\n \"style\": props.style,\n \"id\": id.value\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"transition\": transition.value,\n \"absolute\": true,\n \"location\": location.value,\n \"origin\": origin.value,\n \"role\": \"tooltip\",\n \"activatorProps\": activatorProps.value,\n \"_disableGlobalStack\": true\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return slots.default?.(...args) ?? props.text;\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VTooltip.js.map","import { useI18n } from '../ioc'\nimport { SvgIcon } from '../svg-icon'\nimport { isObject } from '../common/guards'\nimport { VBtn } from 'vuetify/components/VBtn'\nimport { useClipboard } from '../ux/clipboard'\nimport { VMenu } from 'vuetify/components/VMenu'\nimport { VCard } from 'vuetify/components/VCard'\nimport { validator as joi } from '@nhtio/validation'\nimport { VHover } from 'vuetify/components/VHover'\nimport { VListItem } from 'vuetify/components/VList'\nimport { VTooltip } from 'vuetify/components/VTooltip'\nimport { SUPPORTS_VISUAL_VIEWPORT } from '../ux/display'\nimport { convertToUnit } from '@nhtio/vuetifiable/util/helpers'\nimport { IconValue } from '@nhtio/vuetifiable/composables/icons'\nimport { VSlideYTransition } from 'vuetify/components/transitions'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport { stripUndefinedValuesFromObject, toUnreactive } from '../common/utils'\nimport { mdiDotsVertical, mdiOpenInApp, mdiOpenInNew, mdiContentCopy } from '@mdi/js'\nimport { warn, computed, h, toValue, ref, onMounted, onBeforeUnmount, nextTick } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport type { makeVBtnProps } from '@nhtio/vuetifiable/components/VBtn/VBtn'\nimport type { makeVMenuProps } from '@nhtio/vuetifiable/components/VMenu/VMenu'\nimport type { NamedSlotParameters, ExtractSlotDefinitions } from '../common/types'\nimport type { makeVListItemProps } from '@nhtio/vuetifiable/components/VList/VListItem'\nimport type { makeVTooltipProps } from '@nhtio/vuetifiable/components/VTooltip/VTooltip'\nimport type { PropType, Ref, MaybeRef, ExtractPublicPropTypes, VNode, ComputedRef } from 'vue'\nimport type { makeTransitionProps } from '@nhtio/vuetifiable/components/transitions/createTransition'\n\nconst openInAppIcon = h(SvgIcon, { d: mdiOpenInApp })\nconst openInNewIcon = h(SvgIcon, { d: mdiOpenInNew })\nconst copyLinkIcon = h(SvgIcon, { d: mdiContentCopy })\n\ntype VListItemPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVListItemProps>>\ntype VBtnPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVBtnProps>>\ntype VMenuPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVMenuProps>>\ntype VTooltipPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVTooltipProps>>\ntype VSlideYTransitionPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeTransitionProps>>\ntype ExtractedVHoverSlots = ExtractSlotDefinitions<typeof VHover.slots>\ntype VHoverDefaultSlotProps = NamedSlotParameters<ExtractedVHoverSlots, 'default'>\ntype ExtractedVMenuSlots = ExtractSlotDefinitions<typeof VMenu.slots>\ntype VMenuActivatorSlotProps = NamedSlotParameters<ExtractedVMenuSlots, 'activator'>\ntype ExtractedVTooltipSlots = ExtractSlotDefinitions<typeof VTooltip.slots>\ntype VTooltipActivatorSlotProps = NamedSlotParameters<ExtractedVTooltipSlots, 'activator'>\n\nexport type ActionableRecord = {\n id: string | number\n [key: string]: any\n}\n\nexport type ActionIsActionableValidator = (record: ActionableRecord) => boolean\n\nexport type TernaryOperator = boolean | null\n\nexport type ActionCallback = (\n record: ActionableRecord\n) => TernaryOperator | Promise<TernaryOperator> | PromiseLike<TernaryOperator>\n\nexport type BulkActionResults = Map<ActionableRecord, TernaryOperator>\n\nexport type BulkActionCallback = (\n records: ActionableRecord[],\n updateProgress: (completed: number, total: number) => void\n) => BulkActionResults | Promise<BulkActionResults> | PromiseLike<BulkActionResults>\n\nexport type SuccessCallback = (results: BulkActionResults) => void\n\nexport type UndeterminedCallback = (results: BulkActionResults) => void\n\nexport type FailureCallback = (results: BulkActionResults) => void\n\nexport type CompleteCallback = (results: BulkActionResults) => void\n\ntype DispositionCallback = SuccessCallback | UndeterminedCallback | FailureCallback\n\nexport type ProgressCallback = (completed: number, total: number) => void\n\ninterface ResourcefulIndexAction {\n icon: IconValue\n title: string\n subtitle?: string | undefined\n pinned?: boolean | undefined\n actionable?: boolean | ActionIsActionableValidator | undefined\n maxSafeBulkActionRecords?: number | undefined\n maxBulkActionRecords?: number | undefined\n singleAsBulkActionMaxConcurrency?: number | undefined\n singleAsBulkActionStopOnError?: boolean | undefined\n}\n\nexport interface ResourcefulIndexUrlAction extends ResourcefulIndexAction {\n url: string | ((record: ActionableRecord) => RouteLocationRaw | string | null | undefined)\n target?: '_self' | '_blank' | '_parent' | '_top' | string | undefined\n}\n\nexport interface ResourcefulIndexFunctionAction extends ResourcefulIndexAction {\n action: ActionCallback\n bulkAction?: BulkActionCallback | undefined\n onSuccess?: SuccessCallback | undefined\n onUndetermined?: UndeterminedCallback | undefined\n onFailure?: FailureCallback | undefined\n onComplete?: CompleteCallback | undefined\n onProgress?: ProgressCallback | undefined\n}\n\nconst resourcefulIndexActionCommonSchema = {\n icon: joi\n .alternatives()\n .try(joi.string(), joi.object().unknown(true), joi.array(), joi.function())\n .required(),\n title: joi.string().required(),\n subtitle: joi.string().optional(),\n pinned: joi.boolean().optional(),\n actionable: joi.alternatives().try(joi.boolean(), joi.function()).optional(),\n maxSafeBulkActionRecords: joi.number().integer().min(1).optional(),\n maxBulkActionRecords: joi.number().integer().min(1).optional(),\n singleAsBulkActionMaxConcurrency: joi.number().integer().min(1).optional(),\n singleAsBulkActionStopOnError: joi.boolean().optional(),\n}\n\nconst resourcefulIndexUrlActionSchema = joi\n .object({\n ...resourcefulIndexActionCommonSchema,\n url: joi.alternatives().try(joi.string(), joi.function()).required(),\n target: joi.string().optional(),\n })\n .unknown(false)\n\nconst resourcefulIndexFunctionActionSchema = joi\n .object({\n ...resourcefulIndexActionCommonSchema,\n action: joi.function().required(),\n bulkAction: joi.function().optional(),\n onSuccess: joi.function().optional(),\n onUndetermined: joi.function().optional(),\n onFailure: joi.function().optional(),\n onComplete: joi.function().optional(),\n onProgress: joi.function().optional(),\n })\n .unknown(false)\n\nconst resourcefulIndexActionSchema = joi\n .alternatives()\n .try(resourcefulIndexUrlActionSchema, resourcefulIndexFunctionActionSchema)\n\nconst resourcefulIndexActionsSchema = joi.array().items(resourcefulIndexActionSchema)\n\nexport const isResourcefulIndexUrlAction = (val: unknown): val is ResourcefulIndexUrlAction => {\n const { error } = resourcefulIndexUrlActionSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nexport const isResourcefulIndexFunctionAction = (\n val: unknown\n): val is ResourcefulIndexFunctionAction => {\n const { error } = resourcefulIndexFunctionActionSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nconst isResourcefulIndexAction = (\n val: unknown\n): val is ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction => {\n const { error } = resourcefulIndexActionSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nconst areResourcefulIndexActions = (\n val: unknown\n): val is Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction> => {\n const { error } = resourcefulIndexActionsSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nexport const makeResourcefulIndexActionsProps = propsFactory(\n {\n actions: {\n type: Array as PropType<Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction>>,\n validator: areResourcefulIndexActions,\n default: () => [],\n },\n },\n 'ResourcefulIndexActions'\n)\n\nconst canPerformActionForRecord = (record: ActionableRecord, action: unknown) => {\n if (!isResourcefulIndexAction(action)) {\n return false\n }\n if (typeof action.actionable === 'boolean') {\n return action.actionable\n } else if (typeof action.actionable === 'function') {\n try {\n return action.actionable(record)\n } catch (e) {\n warn('Error evaluating actionable function for action:', action, e)\n return false\n }\n }\n}\n\nexport const canPerformBulkActionForRecords = (records: ActionableRecord[], action: unknown) => {\n if (!isResourcefulIndexAction(action)) return false\n if (\n records.length < 2 ||\n (typeof action.maxBulkActionRecords === 'number' &&\n records.length > action.maxBulkActionRecords)\n )\n return false\n if (isResourcefulIndexUrlAction(action)) {\n if (typeof action.url === 'function') {\n const fn = action.url as (record: ActionableRecord) => string | null | undefined\n const urls = records.map((record) => fn(record))\n return urls.some((url) => 'string' === typeof url && url.trim().length > 0)\n } else if (typeof action.url === 'string') {\n return true\n }\n return false\n } else if (isResourcefulIndexFunctionAction(action)) {\n return true\n }\n return false\n}\n\nconst canPerformBulkActionForActionableCount = (action: unknown, count: number) => {\n if (!isResourcefulIndexAction(action)) return false\n if (\n count < 2 ||\n (typeof action.maxBulkActionRecords === 'number' && count > action.maxBulkActionRecords)\n )\n return false\n return isResourcefulIndexUrlAction(action) || isResourcefulIndexFunctionAction(action)\n}\n\nconst canDisplayInBulkActionsDropdown = (action: unknown) => {\n if (!isResourcefulIndexAction(action)) return false\n if (typeof action.maxBulkActionRecords === 'number' && action.maxBulkActionRecords <= 1)\n return false\n return isResourcefulIndexUrlAction(action) || isResourcefulIndexFunctionAction(action)\n}\n\ntype BulkActionListItemOptions = Omit<\n VListItemPublicProps,\n | 'title'\n | 'subtitle'\n | 'icon'\n | 'prependIcon'\n | 'appendIcon'\n | 'value'\n | 'active'\n | 'onClick'\n | 'href'\n | 'replace'\n | 'to'\n | 'exact'\n | 'onClickOnce'\n | 'activeClass'\n | 'activeColor'\n | 'appendAvatar'\n | 'prependAvatar'\n | 'link'\n | 'nav'\n | 'disabled'\n>\n\nexport const useBulkActions = (\n actions: Ref<Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction>>,\n allCount: Ref<number>,\n actionableCount: Ref<number>,\n onBulkActionInvoked: (\n action: ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction\n ) => void | Promise<void> | PromiseLike<void>,\n listItemOptions: MaybeRef<BulkActionListItemOptions> = {}\n) => {\n const bulkActionListItems: ComputedRef<Array<VNode>> = computed<Array<VNode>>(\n () =>\n Array.from(actions.value)\n .filter((v) => canDisplayInBulkActionsDropdown(v))\n .map((action, index) => {\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n disabled: !canPerformBulkActionForActionableCount(action, actionableCount.value),\n }\n return h(VListItem, {\n ...opts,\n key: `resourceful-index-bulk-action-${index}`,\n onClick: () => {\n if (onBulkActionInvoked) {\n onBulkActionInvoked(action)\n }\n },\n })\n }) as VNode[]\n )\n const canShowBulkActionList = computed(() => bulkActionListItems.value.length > 0)\n const bulkActionListDisabled = computed(\n () =>\n allCount.value === 0 ||\n Array.from(actions.value).every((a) => !canDisplayInBulkActionsDropdown(a))\n )\n\n return { bulkActionListItems, canShowBulkActionList, bulkActionListDisabled }\n}\n\nexport const useTableActions = (\n actions: Ref<Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction>>,\n disabled: MaybeRef<string | boolean | undefined>,\n listItemOptions: MaybeRef<BulkActionListItemOptions> = {}\n) => {\n const { copy: copyToClipboard, renderClipboardFeedback } = useClipboard()\n const t = useI18n()\n const contextMenuX = ref<number | null>(null)\n const contextMenuY = ref<number | null>(null)\n const contextRecord = ref<ActionableRecord | null>(null)\n const contextAction = ref<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction | null>(null)\n const closeContextMenu = () => {\n contextMenuX.value = null\n contextMenuY.value = null\n contextRecord.value = null\n contextAction.value = null\n }\n const contextMenuIsOpen = computed(() => {\n return (\n contextMenuX.value !== null &&\n contextMenuY.value !== null &&\n (contextRecord.value !== null || contextAction.value !== null)\n )\n })\n const contextMenuVariant = computed<'none' | 'record' | 'action'>(() => {\n if (contextMenuX.value === null || contextMenuY.value === null) return 'none'\n if (contextAction.value !== null) return 'action'\n if (contextRecord.value !== null) return 'record'\n return 'none'\n })\n const contextElement = ref<HTMLElement | null>(null)\n\n const recordsProcessingAction = ref<string[]>([])\n\n const processResourcefulIndexFunctionAction = async (\n action: ResourcefulIndexFunctionAction,\n record: ActionableRecord\n ) => {\n const recordId = String(record.id)\n if (recordsProcessingAction.value.includes(recordId)) return\n recordsProcessingAction.value.push(recordId)\n let result: TernaryOperator = null\n const callCallback = async (\n callback: DispositionCallback,\n rec: ActionableRecord,\n res: TernaryOperator\n ) => {\n const payload = new Map<ActionableRecord, TernaryOperator>([[rec, res]])\n try {\n await callback(payload)\n } catch (e) {\n warn('Error executing callback for action:', action, e)\n }\n }\n if (action.onProgress) {\n try {\n action.onProgress(0, 1)\n } catch (e) {\n warn('Error executing onProgress callback for action:', action, e)\n }\n }\n try {\n result = await action.action(record)\n } catch (e) {\n result = false\n warn('Error executing action function for record:', record, e)\n }\n const idx = recordsProcessingAction.value.indexOf(recordId)\n if (idx > -1) {\n recordsProcessingAction.value.splice(idx, 1)\n }\n if (action.onProgress) {\n try {\n action.onProgress(1, 1)\n } catch (e) {\n warn('Error executing onProgress callback for action:', action, e)\n }\n }\n const promises: Array<Promise<void>> = []\n if (action.onSuccess && result === true) {\n promises.push(callCallback(action.onSuccess, record, result))\n }\n if (action.onUndetermined && result === null) {\n promises.push(callCallback(action.onUndetermined, record, result))\n }\n if (action.onFailure && result === false) {\n promises.push(callCallback(action.onFailure, record, result))\n }\n if (action.onComplete) {\n promises.push(callCallback(action.onComplete, record, result))\n }\n if (promises.length > 0) {\n await Promise.all(promises)\n }\n return result\n }\n\n const actionForRecordIsProcessing = (record: ActionableRecord) => {\n if (record && 'id' in record) {\n const recordId = String(record.id)\n return recordsProcessingAction.value.includes(recordId)\n }\n return false\n }\n\n const actionsForRecordAreDisabled = (record: ActionableRecord) => {\n if (true === toValue(disabled)) return true\n return actionForRecordIsProcessing(record)\n }\n\n const isProcessing = computed(() => recordsProcessingAction.value.length > 0)\n\n const onPinnedActionContextMenuRequest = async (\n action: ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction,\n record: ActionableRecord,\n e: MouseEvent\n ) => {\n if (actionsForRecordAreDisabled(record)) return\n if (contextMenuIsOpen.value) {\n closeContextMenu()\n await nextTick()\n }\n contextMenuX.value = 'clientX' in e ? e.clientX : null\n contextMenuY.value = 'clientY' in e ? e.clientY : null\n contextRecord.value = record\n contextAction.value = action\n }\n const pinnedActions = computed(() =>\n actions.value.filter((a) => a.pinned && isResourcefulIndexAction(a))\n )\n const unpinnedActions = computed(() =>\n actions.value.filter((a) => !a.pinned && isResourcefulIndexAction(a))\n )\n const renderActionsForRecord = (record: ActionableRecord) => {\n const pinnedActionsForRecord = pinnedActions.value.filter((a) =>\n canPerformActionForRecord(record, a)\n )\n const unpinnedActionsForRecord = unpinnedActions.value.filter((a) =>\n canPerformActionForRecord(record, a)\n )\n if (pinnedActionsForRecord.length === 0 && unpinnedActionsForRecord.length === 0) return null\n const isActionProcessing = actionForRecordIsProcessing(record)\n return h(\n 'div',\n {\n class: ['__resourceful_index_actions_cell__actions', 'd-flex', 'align-center', 'mx-2'],\n },\n [\n ...pinnedActionsForRecord.map((action, index) => {\n const tooltipListItemOpts: VListItemPublicProps = {\n density: 'compact',\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n }\n const btnItemOpts: VBtnPublicProps = {\n // @ts-expect-error\n onContextmenu: (e: MouseEvent) => {\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n e.stopImmediatePropagation()\n if (actionsForRecordAreDisabled(record)) return\n onPinnedActionContextMenuRequest(action, record, e)\n }\n },\n }\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function' ? action.url(toUnreactive(record)) : action.url\n if (isObject(href)) {\n btnItemOpts.to = href\n } else {\n btnItemOpts.href = (href as string) || undefined\n }\n // @ts-expect-error\n btnItemOpts.target = action.target || undefined\n } else if (isResourcefulIndexFunctionAction(action)) {\n // @ts-expect-error\n btnItemOpts.onClick = () =>\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n // @ts-expect-error\n btnItemOpts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n }\n }\n }\n return h(\n VHover,\n { key: `pinned-action-${index}` },\n {\n default: ({ isHovering, props: hoverProvidedProps }: VHoverDefaultSlotProps[0]) =>\n h(\n VTooltip,\n {\n openDelay: 750,\n interactive: false,\n stickToTarget: true,\n } satisfies VTooltipPublicProps,\n {\n activator: ({\n isActive,\n props: tooltipActivatorProps,\n }: VTooltipActivatorSlotProps[0]) =>\n h(VBtn, {\n ...hoverProvidedProps,\n ...tooltipActivatorProps,\n ...btnItemOpts,\n variant: 'text',\n icon: action.icon,\n size: 'small',\n style: { opacity: isHovering || isActive ? 1 : 0.5 },\n class: [\n {\n 'me-2':\n index < pinnedActionsForRecord.length - 1 ||\n unpinnedActionsForRecord.length > 0,\n },\n ],\n disabled: Boolean(toValue(disabled)),\n } satisfies VBtnPublicProps),\n default: () =>\n h(VListItem, {\n ...tooltipListItemOpts,\n }),\n }\n ),\n }\n )\n }),\n unpinnedActionsForRecord.length === 0\n ? isActionProcessing\n ? h(VBtn, {\n icon: true,\n size: 'small',\n loading: true,\n variant: 'text',\n } satisfies VBtnPublicProps)\n : null\n : h(\n VHover,\n {},\n {\n default: ({ isHovering, props: hoverProvidedProps }: VHoverDefaultSlotProps[0]) =>\n h(VMenu, { closeOnContentClick: true } satisfies VMenuPublicProps, {\n activator: ({\n isActive,\n props: menuActivatorProps,\n }: VMenuActivatorSlotProps[0]) =>\n h(VBtn, {\n ...hoverProvidedProps,\n ...menuActivatorProps,\n variant: 'text',\n icon: () => h(SvgIcon, { d: mdiDotsVertical }),\n size: 'small',\n style: { opacity: isHovering || isActive ? 1 : 0.5 },\n class: [],\n loading: isActionProcessing,\n } satisfies VBtnPublicProps),\n default: () =>\n h(VCard, { color: 'surface' }, () => [\n ...unpinnedActionsForRecord.map((action, index) => {\n const key = `resourceful-index-action-${index}`\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n disabled: Boolean(toValue(disabled)),\n }\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function'\n ? action.url(toUnreactive(record))\n : action.url\n if (isObject(href)) {\n opts.to = href\n } else {\n opts.href = (href as string) || undefined\n }\n // @ts-expect-error\n opts.target = action.target || undefined\n opts.link = typeof href === 'string' && href.trim().length > 0\n } else if (isResourcefulIndexFunctionAction(action)) {\n opts.onClick = () =>\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n // @ts-expect-error\n opts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n }\n }\n }\n return h(VListItem, { ...opts, key })\n }),\n ]),\n }),\n }\n ),\n ]\n )\n }\n const reactiveContextMenuRenderer = () => {\n const additionalStyles =\n null === contextMenuY.value || null === contextMenuX.value\n ? { width: 0, height: 0, overflow: 'hidden' }\n : {}\n return h(\n 'div',\n {\n ref: contextElement,\n style: {\n position: 'fixed',\n top: null === contextMenuY.value ? 0 : convertToUnit(contextMenuY.value),\n left: null === contextMenuX.value ? 0 : convertToUnit(contextMenuX.value),\n zIndex: 5,\n ...additionalStyles,\n },\n },\n h(\n VSlideYTransition,\n {\n mode: 'in-out',\n } satisfies VSlideYTransitionPublicProps,\n () => {\n const variant = contextMenuVariant.value\n if (variant === 'action') {\n return h(VCard, { color: 'surface', minHeight: 40, minWidth: 50 }, () => {\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n disabled: Boolean(toValue(disabled)),\n }\n const action: ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction | null =\n toValue(contextAction.value)\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function'\n ? action.url(toUnreactive(contextRecord.value!))\n : action.url\n if (isObject(href)) {\n opts.to = href\n } else {\n opts.href = (href as string) || undefined\n }\n return [\n h(VListItem, {\n ...opts,\n title: t('resourceful.action.openInApp'),\n prependIcon: () => openInAppIcon,\n onClick: () => {\n closeContextMenu()\n },\n }),\n h(VListItem, {\n ...opts,\n title: t('resourceful.action.openInNew'),\n prependIcon: () => openInNewIcon,\n target: '_blank',\n onClick: () => {\n closeContextMenu()\n },\n }),\n h(\n VListItem,\n stripUndefinedValuesFromObject({\n ...opts,\n title: t('resourceful.action.copyLink'),\n prependIcon: () => copyLinkIcon,\n href: undefined,\n onClick: () => {\n if ('string' === typeof href && href.trim().length > 0) {\n copyToClipboard(href)\n }\n closeContextMenu()\n },\n })\n ),\n ]\n } else if (isResourcefulIndexFunctionAction(action)) {\n return [\n h(VListItem, {\n ...opts,\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n onClick: () => {\n processResourcefulIndexFunctionAction(\n action,\n toUnreactive(contextRecord.value!)\n )\n closeContextMenu()\n },\n }),\n ]\n }\n return null\n })\n } else if (variant === 'record') {\n return h(VCard, { color: 'surface', minHeight: 40, minWidth: 50 }, () =>\n Array.from(actions.value).map((action, index) => {\n const key = `resourceful-index-context-menu-action-${index}`\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n disabled: Boolean(toValue(disabled)),\n }\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function'\n ? action.url(toUnreactive(contextRecord.value!))\n : action.url\n if (isObject(href)) {\n opts.to = href\n } else {\n opts.href = (href as string) || undefined\n }\n // @ts-expect-error\n opts.target = action.target || undefined\n opts.link = typeof href === 'string' && href.trim().length > 0\n opts.onClick = () => {\n closeContextMenu()\n }\n // @ts-expect-error\n opts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n closeContextMenu()\n }\n }\n } else if (isResourcefulIndexFunctionAction(action)) {\n opts.onClick = () => {\n processResourcefulIndexFunctionAction(\n action,\n toUnreactive(contextRecord.value!)\n )\n closeContextMenu()\n }\n // @ts-expect-error\n opts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n processResourcefulIndexFunctionAction(\n action,\n toUnreactive(contextRecord.value!)\n )\n closeContextMenu()\n }\n }\n }\n return h(VListItem, { ...opts, key })\n })\n )\n }\n return null\n }\n )\n )\n }\n const openContextMenuForRecord = async (e: MouseEvent | TouchEvent, record: ActionableRecord) => {\n if (actionsForRecordAreDisabled(record)) return\n if (contextMenuIsOpen.value) {\n closeContextMenu()\n await nextTick()\n }\n contextMenuX.value =\n 'clientX' in e\n ? e.clientX\n : 'touches' in e && e.touches.length > 0\n ? e.touches[0].clientX\n : null\n contextMenuY.value =\n 'clientY' in e\n ? e.clientY\n : 'touches' in e && e.touches.length > 0\n ? e.touches[0].clientY\n : null\n contextAction.value = null\n contextRecord.value = record\n }\n const windowClickListener = (e: MouseEvent) => {\n if (contextElement.value === null) return\n if (contextElement.value?.contains(e.target as Node)) return\n closeContextMenu()\n }\n const windowContextMenuListener = (e: MouseEvent) => {\n if (contextElement.value === null) return\n if (contextElement.value?.contains(e.target as Node)) return\n closeContextMenu()\n }\n const windowTouchListener = (e: TouchEvent) => {\n if (contextElement.value === null) return\n if (contextElement.value?.contains(e.target as Node)) return\n closeContextMenu()\n }\n onMounted(() => {\n window.addEventListener('click', windowClickListener)\n window.addEventListener('contextmenu', windowContextMenuListener)\n window.addEventListener('touchstart', windowTouchListener)\n window.addEventListener('scroll', closeContextMenu)\n window.addEventListener('resize', closeContextMenu)\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.addEventListener('scroll', closeContextMenu)\n window.visualViewport!.addEventListener('resize', closeContextMenu)\n }\n })\n onBeforeUnmount(() => {\n closeContextMenu()\n window.removeEventListener('click', windowClickListener)\n window.removeEventListener('contextmenu', windowContextMenuListener)\n window.removeEventListener('touchstart', windowTouchListener)\n window.removeEventListener('scroll', closeContextMenu)\n window.removeEventListener('resize', closeContextMenu)\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.removeEventListener('scroll', closeContextMenu)\n window.visualViewport!.removeEventListener('resize', closeContextMenu)\n }\n })\n return {\n renderActionsForRecord,\n reactiveContextMenuRenderer,\n openContextMenuForRecord,\n renderClipboardFeedback,\n contextMenuIsOpen,\n actionForRecordIsProcessing,\n isProcessing,\n }\n}\n"],"names":["_createVNode","_mergeProps","joi","propsFactory"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"actions-CdHv-6JS.mjs","sources":["../node_modules/.pnpm/vuetify@3.11.3_typescript@5.9.3_vue@3.5.25_typescript@5.9.3_/node_modules/vuetify/lib/components/VTooltip/VTooltip.js","../src/private/resourceful-index/actions.ts"],"sourcesContent":["import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTooltip.css\";\n\n// Components\nimport { VOverlay } from \"../VOverlay/index.js\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\"; // Utilities\nimport { computed, mergeProps, ref, toRef, useId } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVTooltipProps = propsFactory({\n id: String,\n interactive: Boolean,\n text: String,\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end',\n locationStrategy: 'connected',\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto',\n scrim: false,\n scrollStrategy: 'reposition',\n transition: null\n }), ['absolute', 'retainFocus', 'captureFocus', 'disableInitialFocus'])\n}, 'VTooltip');\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n props: makeVTooltipProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const uid = useId();\n const id = toRef(() => props.id || `v-tooltip-${uid}`);\n const overlay = ref();\n const location = computed(() => {\n return props.location.split(' ').length > 1 ? props.location : props.location + ' center';\n });\n const origin = computed(() => {\n return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';\n });\n const transition = toRef(() => {\n if (props.transition != null) return props.transition;\n return isActive.value ? 'scale-transition' : 'fade-transition';\n });\n const activatorProps = computed(() => mergeProps({\n 'aria-describedby': id.value\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-tooltip', {\n 'v-tooltip--interactive': props.interactive\n }, props.class],\n \"style\": props.style,\n \"id\": id.value\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"transition\": transition.value,\n \"absolute\": true,\n \"location\": location.value,\n \"origin\": origin.value,\n \"role\": \"tooltip\",\n \"activatorProps\": activatorProps.value,\n \"_disableGlobalStack\": true\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return slots.default?.(...args) ?? props.text;\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VTooltip.js.map","import { useI18n } from '../ioc'\nimport { SvgIcon } from '../svg-icon'\nimport { isObject } from '../common/guards'\nimport { VBtn } from 'vuetify/components/VBtn'\nimport { useClipboard } from '../ux/clipboard'\nimport { VMenu } from 'vuetify/components/VMenu'\nimport { VCard } from 'vuetify/components/VCard'\nimport { VHover } from 'vuetify/components/VHover'\nimport { validator as joi } from '@nhtio/validation'\nimport { VListItem } from 'vuetify/components/VList'\nimport { VTooltip } from 'vuetify/components/VTooltip'\nimport { SUPPORTS_VISUAL_VIEWPORT } from '../ux/display'\nimport { convertToUnit } from '@nhtio/vuetifiable/util/helpers'\nimport { IconValue } from '@nhtio/vuetifiable/composables/icons'\nimport { VSlideYTransition } from 'vuetify/components/transitions'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport { stripUndefinedValuesFromObject, toUnreactive } from '../common/utils'\nimport { mdiDotsVertical, mdiOpenInApp, mdiOpenInNew, mdiContentCopy } from '@mdi/js'\nimport { warn, computed, h, toValue, ref, onMounted, onBeforeUnmount, nextTick } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport type { makeVBtnProps } from '@nhtio/vuetifiable/components/VBtn/VBtn'\nimport type { makeVMenuProps } from '@nhtio/vuetifiable/components/VMenu/VMenu'\nimport type { NamedSlotParameters, ExtractSlotDefinitions } from '../common/types'\nimport type { makeVListItemProps } from '@nhtio/vuetifiable/components/VList/VListItem'\nimport type { makeVTooltipProps } from '@nhtio/vuetifiable/components/VTooltip/VTooltip'\nimport type { PropType, Ref, MaybeRef, ExtractPublicPropTypes, VNode, ComputedRef } from 'vue'\nimport type { makeTransitionProps } from '@nhtio/vuetifiable/components/transitions/createTransition'\n\nconst openInAppIcon = h(SvgIcon, { d: mdiOpenInApp })\nconst openInNewIcon = h(SvgIcon, { d: mdiOpenInNew })\nconst copyLinkIcon = h(SvgIcon, { d: mdiContentCopy })\n\ntype VListItemPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVListItemProps>>\ntype VBtnPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVBtnProps>>\ntype VMenuPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVMenuProps>>\ntype VTooltipPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVTooltipProps>>\ntype VSlideYTransitionPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeTransitionProps>>\ntype ExtractedVHoverSlots = ExtractSlotDefinitions<typeof VHover.slots>\ntype VHoverDefaultSlotProps = NamedSlotParameters<ExtractedVHoverSlots, 'default'>\ntype ExtractedVMenuSlots = ExtractSlotDefinitions<typeof VMenu.slots>\ntype VMenuActivatorSlotProps = NamedSlotParameters<ExtractedVMenuSlots, 'activator'>\ntype ExtractedVTooltipSlots = ExtractSlotDefinitions<typeof VTooltip.slots>\ntype VTooltipActivatorSlotProps = NamedSlotParameters<ExtractedVTooltipSlots, 'activator'>\n\nexport type ActionableRecord = {\n id: string | number\n [key: string]: any\n}\n\nexport type ActionIsActionableValidator = (record: ActionableRecord) => boolean\n\nexport type TernaryOperator = boolean | null\n\nexport type ActionCallback = (\n record: ActionableRecord\n) => TernaryOperator | Promise<TernaryOperator> | PromiseLike<TernaryOperator>\n\nexport type BulkActionResults = Map<ActionableRecord, TernaryOperator>\n\nexport type BulkActionCallback = (\n records: ActionableRecord[],\n updateProgress: (completed: number, total: number) => void\n) => BulkActionResults | Promise<BulkActionResults> | PromiseLike<BulkActionResults>\n\nexport type SuccessCallback = (results: BulkActionResults) => void\n\nexport type UndeterminedCallback = (results: BulkActionResults) => void\n\nexport type FailureCallback = (results: BulkActionResults) => void\n\nexport type CompleteCallback = (results: BulkActionResults) => void\n\ntype DispositionCallback = SuccessCallback | UndeterminedCallback | FailureCallback\n\nexport type ProgressCallback = (completed: number, total: number) => void\n\ninterface ResourcefulIndexAction {\n icon: IconValue\n title: string\n subtitle?: string | undefined\n pinned?: boolean | undefined\n actionable?: boolean | ActionIsActionableValidator | undefined\n maxSafeBulkActionRecords?: number | undefined\n maxBulkActionRecords?: number | undefined\n singleAsBulkActionMaxConcurrency?: number | undefined\n singleAsBulkActionStopOnError?: boolean | undefined\n}\n\nexport interface ResourcefulIndexUrlAction extends ResourcefulIndexAction {\n url: string | ((record: ActionableRecord) => RouteLocationRaw | string | null | undefined)\n target?: '_self' | '_blank' | '_parent' | '_top' | string | undefined\n}\n\nexport interface ResourcefulIndexFunctionAction extends ResourcefulIndexAction {\n action: ActionCallback\n bulkAction?: BulkActionCallback | undefined\n onSuccess?: SuccessCallback | undefined\n onUndetermined?: UndeterminedCallback | undefined\n onFailure?: FailureCallback | undefined\n onComplete?: CompleteCallback | undefined\n onProgress?: ProgressCallback | undefined\n}\n\nconst resourcefulIndexActionCommonSchema = {\n icon: joi\n .alternatives()\n .try(joi.string(), joi.object().unknown(true), joi.array(), joi.function())\n .required(),\n title: joi.string().required(),\n subtitle: joi.string().optional(),\n pinned: joi.boolean().optional(),\n actionable: joi.alternatives().try(joi.boolean(), joi.function()).optional(),\n maxSafeBulkActionRecords: joi.number().integer().min(1).optional(),\n maxBulkActionRecords: joi.number().integer().min(1).optional(),\n singleAsBulkActionMaxConcurrency: joi.number().integer().min(1).optional(),\n singleAsBulkActionStopOnError: joi.boolean().optional(),\n}\n\nconst resourcefulIndexUrlActionSchema = joi\n .object({\n ...resourcefulIndexActionCommonSchema,\n url: joi.alternatives().try(joi.string(), joi.function()).required(),\n target: joi.string().optional(),\n })\n .unknown(false)\n\nconst resourcefulIndexFunctionActionSchema = joi\n .object({\n ...resourcefulIndexActionCommonSchema,\n action: joi.function().required(),\n bulkAction: joi.function().optional(),\n onSuccess: joi.function().optional(),\n onUndetermined: joi.function().optional(),\n onFailure: joi.function().optional(),\n onComplete: joi.function().optional(),\n onProgress: joi.function().optional(),\n })\n .unknown(false)\n\nconst resourcefulIndexActionSchema = joi\n .alternatives()\n .try(resourcefulIndexUrlActionSchema, resourcefulIndexFunctionActionSchema)\n\nconst resourcefulIndexActionsSchema = joi.array().items(resourcefulIndexActionSchema)\n\nexport const isResourcefulIndexUrlAction = (val: unknown): val is ResourcefulIndexUrlAction => {\n const { error } = resourcefulIndexUrlActionSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nexport const isResourcefulIndexFunctionAction = (\n val: unknown\n): val is ResourcefulIndexFunctionAction => {\n const { error } = resourcefulIndexFunctionActionSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nconst isResourcefulIndexAction = (\n val: unknown\n): val is ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction => {\n const { error } = resourcefulIndexActionSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nconst areResourcefulIndexActions = (\n val: unknown\n): val is Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction> => {\n const { error } = resourcefulIndexActionsSchema.validate(val, { abortEarly: true })\n return Boolean(!error)\n}\n\nexport const makeResourcefulIndexActionsProps = propsFactory(\n {\n actions: {\n type: Array as PropType<Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction>>,\n validator: areResourcefulIndexActions,\n default: () => [],\n },\n },\n 'ResourcefulIndexActions'\n)\n\nconst canPerformActionForRecord = (record: ActionableRecord, action: unknown) => {\n if (!isResourcefulIndexAction(action)) {\n return false\n }\n if (typeof action.actionable === 'boolean') {\n return action.actionable\n } else if (typeof action.actionable === 'function') {\n try {\n return action.actionable(record)\n } catch (e) {\n warn('Error evaluating actionable function for action:', action, e)\n return false\n }\n }\n}\n\nexport const canPerformBulkActionForRecords = (records: ActionableRecord[], action: unknown) => {\n if (!isResourcefulIndexAction(action)) return false\n if (\n records.length < 2 ||\n (typeof action.maxBulkActionRecords === 'number' &&\n records.length > action.maxBulkActionRecords)\n )\n return false\n if (isResourcefulIndexUrlAction(action)) {\n if (typeof action.url === 'function') {\n const fn = action.url as (record: ActionableRecord) => string | null | undefined\n const urls = records.map((record) => fn(record))\n return urls.some((url) => 'string' === typeof url && url.trim().length > 0)\n } else if (typeof action.url === 'string') {\n return true\n }\n return false\n } else if (isResourcefulIndexFunctionAction(action)) {\n return true\n }\n return false\n}\n\nconst canPerformBulkActionForActionableCount = (action: unknown, count: number) => {\n if (!isResourcefulIndexAction(action)) return false\n if (\n count < 2 ||\n (typeof action.maxBulkActionRecords === 'number' && count > action.maxBulkActionRecords)\n )\n return false\n return isResourcefulIndexUrlAction(action) || isResourcefulIndexFunctionAction(action)\n}\n\nconst canDisplayInBulkActionsDropdown = (action: unknown) => {\n if (!isResourcefulIndexAction(action)) return false\n if (typeof action.maxBulkActionRecords === 'number' && action.maxBulkActionRecords <= 1)\n return false\n return isResourcefulIndexUrlAction(action) || isResourcefulIndexFunctionAction(action)\n}\n\ntype BulkActionListItemOptions = Omit<\n VListItemPublicProps,\n | 'title'\n | 'subtitle'\n | 'icon'\n | 'prependIcon'\n | 'appendIcon'\n | 'value'\n | 'active'\n | 'onClick'\n | 'href'\n | 'replace'\n | 'to'\n | 'exact'\n | 'onClickOnce'\n | 'activeClass'\n | 'activeColor'\n | 'appendAvatar'\n | 'prependAvatar'\n | 'link'\n | 'nav'\n | 'disabled'\n>\n\nexport const useBulkActions = (\n actions: Ref<Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction>>,\n allCount: Ref<number>,\n actionableCount: Ref<number>,\n onBulkActionInvoked: (\n action: ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction\n ) => void | Promise<void> | PromiseLike<void>,\n listItemOptions: MaybeRef<BulkActionListItemOptions> = {}\n) => {\n const bulkActionListItems: ComputedRef<Array<VNode>> = computed<Array<VNode>>(\n () =>\n Array.from(actions.value)\n .filter((v) => canDisplayInBulkActionsDropdown(v))\n .map((action, index) => {\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n disabled: !canPerformBulkActionForActionableCount(action, actionableCount.value),\n }\n return h(VListItem, {\n ...opts,\n key: `resourceful-index-bulk-action-${index}`,\n onClick: () => {\n if (onBulkActionInvoked) {\n onBulkActionInvoked(action)\n }\n },\n })\n }) as VNode[]\n )\n const canShowBulkActionList = computed(() => bulkActionListItems.value.length > 0)\n const bulkActionListDisabled = computed(\n () =>\n allCount.value === 0 ||\n Array.from(actions.value).every((a) => !canDisplayInBulkActionsDropdown(a))\n )\n\n return { bulkActionListItems, canShowBulkActionList, bulkActionListDisabled }\n}\n\nexport const useTableActions = (\n actions: Ref<Array<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction>>,\n disabled: MaybeRef<string | boolean | undefined>,\n listItemOptions: MaybeRef<BulkActionListItemOptions> = {}\n) => {\n const { copy: copyToClipboard, renderClipboardFeedback } = useClipboard()\n const t = useI18n()\n const contextMenuX = ref<number | null>(null)\n const contextMenuY = ref<number | null>(null)\n const contextRecord = ref<ActionableRecord | null>(null)\n const contextAction = ref<ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction | null>(null)\n const closeContextMenu = () => {\n contextMenuX.value = null\n contextMenuY.value = null\n contextRecord.value = null\n contextAction.value = null\n }\n const contextMenuIsOpen = computed(() => {\n return (\n contextMenuX.value !== null &&\n contextMenuY.value !== null &&\n (contextRecord.value !== null || contextAction.value !== null)\n )\n })\n const contextMenuVariant = computed<'none' | 'record' | 'action'>(() => {\n if (contextMenuX.value === null || contextMenuY.value === null) return 'none'\n if (contextAction.value !== null) return 'action'\n if (contextRecord.value !== null) return 'record'\n return 'none'\n })\n const contextElement = ref<HTMLElement | null>(null)\n\n const recordsProcessingAction = ref<string[]>([])\n\n const processResourcefulIndexFunctionAction = async (\n action: ResourcefulIndexFunctionAction,\n record: ActionableRecord\n ) => {\n const recordId = String(record.id)\n if (recordsProcessingAction.value.includes(recordId)) return\n recordsProcessingAction.value.push(recordId)\n let result: TernaryOperator = null\n const callCallback = async (\n callback: DispositionCallback,\n rec: ActionableRecord,\n res: TernaryOperator\n ) => {\n const payload = new Map<ActionableRecord, TernaryOperator>([[rec, res]])\n try {\n await callback(payload)\n } catch (e) {\n warn('Error executing callback for action:', action, e)\n }\n }\n if (action.onProgress) {\n try {\n action.onProgress(0, 1)\n } catch (e) {\n warn('Error executing onProgress callback for action:', action, e)\n }\n }\n try {\n result = await action.action(record)\n } catch (e) {\n result = false\n warn('Error executing action function for record:', record, e)\n }\n const idx = recordsProcessingAction.value.indexOf(recordId)\n if (idx > -1) {\n recordsProcessingAction.value.splice(idx, 1)\n }\n if (action.onProgress) {\n try {\n action.onProgress(1, 1)\n } catch (e) {\n warn('Error executing onProgress callback for action:', action, e)\n }\n }\n const promises: Array<Promise<void>> = []\n if (action.onSuccess && result === true) {\n promises.push(callCallback(action.onSuccess, record, result))\n }\n if (action.onUndetermined && result === null) {\n promises.push(callCallback(action.onUndetermined, record, result))\n }\n if (action.onFailure && result === false) {\n promises.push(callCallback(action.onFailure, record, result))\n }\n if (action.onComplete) {\n promises.push(callCallback(action.onComplete, record, result))\n }\n if (promises.length > 0) {\n await Promise.all(promises)\n }\n return result\n }\n\n const actionForRecordIsProcessing = (record: ActionableRecord) => {\n if (record && 'id' in record) {\n const recordId = String(record.id)\n return recordsProcessingAction.value.includes(recordId)\n }\n return false\n }\n\n const actionsForRecordAreDisabled = (record: ActionableRecord) => {\n if (true === toValue(disabled)) return true\n return actionForRecordIsProcessing(record)\n }\n\n const isProcessing = computed(() => recordsProcessingAction.value.length > 0)\n\n const onPinnedActionContextMenuRequest = async (\n action: ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction,\n record: ActionableRecord,\n e: MouseEvent\n ) => {\n if (actionsForRecordAreDisabled(record)) return\n if (contextMenuIsOpen.value) {\n closeContextMenu()\n await nextTick()\n }\n contextMenuX.value = 'clientX' in e ? e.clientX : null\n contextMenuY.value = 'clientY' in e ? e.clientY : null\n contextRecord.value = record\n contextAction.value = action\n }\n const pinnedActions = computed(() =>\n actions.value.filter((a) => a.pinned && isResourcefulIndexAction(a))\n )\n const unpinnedActions = computed(() =>\n actions.value.filter((a) => !a.pinned && isResourcefulIndexAction(a))\n )\n const renderActionsForRecord = (record: ActionableRecord) => {\n const pinnedActionsForRecord = pinnedActions.value.filter((a) =>\n canPerformActionForRecord(record, a)\n )\n const unpinnedActionsForRecord = unpinnedActions.value.filter((a) =>\n canPerformActionForRecord(record, a)\n )\n if (pinnedActionsForRecord.length === 0 && unpinnedActionsForRecord.length === 0) return null\n const isActionProcessing = actionForRecordIsProcessing(record)\n return h(\n 'div',\n {\n class: ['__resourceful_index_actions_cell__actions', 'd-flex', 'align-center', 'mx-2'],\n },\n [\n ...pinnedActionsForRecord.map((action, index) => {\n const tooltipListItemOpts: VListItemPublicProps = {\n density: 'compact',\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n }\n const btnItemOpts: VBtnPublicProps = {\n // @ts-expect-error\n onContextmenu: (e: MouseEvent) => {\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n e.stopImmediatePropagation()\n if (actionsForRecordAreDisabled(record)) return\n onPinnedActionContextMenuRequest(action, record, e)\n }\n },\n }\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function' ? action.url(toUnreactive(record)) : action.url\n if (isObject(href)) {\n btnItemOpts.to = href\n } else {\n btnItemOpts.href = (href as string) || undefined\n }\n // @ts-expect-error\n btnItemOpts.target = action.target || undefined\n } else if (isResourcefulIndexFunctionAction(action)) {\n // @ts-expect-error\n btnItemOpts.onClick = () =>\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n // @ts-expect-error\n btnItemOpts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n }\n }\n }\n return h(\n VHover,\n { key: `pinned-action-${index}` },\n {\n default: ({ isHovering, props: hoverProvidedProps }: VHoverDefaultSlotProps[0]) =>\n h(\n VTooltip,\n {\n openDelay: 750,\n interactive: false,\n stickToTarget: true,\n } satisfies VTooltipPublicProps,\n {\n activator: ({\n isActive,\n props: tooltipActivatorProps,\n }: VTooltipActivatorSlotProps[0]) =>\n h(VBtn, {\n ...hoverProvidedProps,\n ...tooltipActivatorProps,\n ...btnItemOpts,\n variant: 'text',\n icon: action.icon,\n size: 'small',\n style: { opacity: isHovering || isActive ? 1 : 0.5 },\n class: [\n {\n 'me-2':\n index < pinnedActionsForRecord.length - 1 ||\n unpinnedActionsForRecord.length > 0,\n },\n ],\n disabled: Boolean(toValue(disabled)),\n } satisfies VBtnPublicProps),\n default: () =>\n h(VListItem, {\n ...tooltipListItemOpts,\n }),\n }\n ),\n }\n )\n }),\n unpinnedActionsForRecord.length === 0\n ? isActionProcessing\n ? h(VBtn, {\n icon: true,\n size: 'small',\n loading: true,\n variant: 'text',\n } satisfies VBtnPublicProps)\n : null\n : h(\n VHover,\n {},\n {\n default: ({ isHovering, props: hoverProvidedProps }: VHoverDefaultSlotProps[0]) =>\n h(VMenu, { closeOnContentClick: true } satisfies VMenuPublicProps, {\n activator: ({\n isActive,\n props: menuActivatorProps,\n }: VMenuActivatorSlotProps[0]) =>\n h(VBtn, {\n ...hoverProvidedProps,\n ...menuActivatorProps,\n variant: 'text',\n icon: () => h(SvgIcon, { d: mdiDotsVertical }),\n size: 'small',\n style: { opacity: isHovering || isActive ? 1 : 0.5 },\n class: [],\n loading: isActionProcessing,\n } satisfies VBtnPublicProps),\n default: () =>\n h(VCard, { color: 'surface' }, () => [\n ...unpinnedActionsForRecord.map((action, index) => {\n const key = `resourceful-index-action-${index}`\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n disabled: Boolean(toValue(disabled)),\n }\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function'\n ? action.url(toUnreactive(record))\n : action.url\n if (isObject(href)) {\n opts.to = href\n } else {\n opts.href = (href as string) || undefined\n }\n // @ts-expect-error\n opts.target = action.target || undefined\n opts.link = typeof href === 'string' && href.trim().length > 0\n } else if (isResourcefulIndexFunctionAction(action)) {\n opts.onClick = () =>\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n // @ts-expect-error\n opts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n processResourcefulIndexFunctionAction(action, toUnreactive(record))\n }\n }\n }\n return h(VListItem, { ...opts, key })\n }),\n ]),\n }),\n }\n ),\n ]\n )\n }\n const reactiveContextMenuRenderer = () => {\n const additionalStyles =\n null === contextMenuY.value || null === contextMenuX.value\n ? { width: 0, height: 0, overflow: 'hidden' }\n : {}\n return h(\n 'div',\n {\n ref: contextElement,\n style: {\n position: 'fixed',\n top: null === contextMenuY.value ? 0 : convertToUnit(contextMenuY.value),\n left: null === contextMenuX.value ? 0 : convertToUnit(contextMenuX.value),\n zIndex: 5,\n ...additionalStyles,\n },\n },\n h(\n VSlideYTransition,\n {\n mode: 'in-out',\n } satisfies VSlideYTransitionPublicProps,\n () => {\n const variant = contextMenuVariant.value\n if (variant === 'action') {\n return h(VCard, { color: 'surface', minHeight: 40, minWidth: 50 }, () => {\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n disabled: Boolean(toValue(disabled)),\n }\n const action: ResourcefulIndexUrlAction | ResourcefulIndexFunctionAction | null =\n toValue(contextAction.value)\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function'\n ? action.url(toUnreactive(contextRecord.value!))\n : action.url\n if (isObject(href)) {\n opts.to = href\n } else {\n opts.href = (href as string) || undefined\n }\n return [\n h(VListItem, {\n ...opts,\n title: t('resourceful.action.openInApp'),\n prependIcon: () => openInAppIcon,\n onClick: () => {\n closeContextMenu()\n },\n }),\n h(VListItem, {\n ...opts,\n title: t('resourceful.action.openInNew'),\n prependIcon: () => openInNewIcon,\n target: '_blank',\n onClick: () => {\n closeContextMenu()\n },\n }),\n h(\n VListItem,\n stripUndefinedValuesFromObject({\n ...opts,\n title: t('resourceful.action.copyLink'),\n prependIcon: () => copyLinkIcon,\n href: undefined,\n onClick: () => {\n if ('string' === typeof href && href.trim().length > 0) {\n copyToClipboard(href)\n }\n closeContextMenu()\n },\n })\n ),\n ]\n } else if (isResourcefulIndexFunctionAction(action)) {\n return [\n h(VListItem, {\n ...opts,\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n onClick: () => {\n processResourcefulIndexFunctionAction(\n action,\n toUnreactive(contextRecord.value!)\n )\n closeContextMenu()\n },\n }),\n ]\n }\n return null\n })\n } else if (variant === 'record') {\n return h(VCard, { color: 'surface', minHeight: 40, minWidth: 50 }, () =>\n Array.from(actions.value).map((action, index) => {\n const key = `resourceful-index-context-menu-action-${index}`\n const opts: VListItemPublicProps = {\n ...toValue(listItemOptions),\n title: action.title,\n subtitle: action.subtitle,\n prependIcon: action.icon,\n disabled: Boolean(toValue(disabled)),\n }\n if (isResourcefulIndexUrlAction(action)) {\n const href =\n typeof action.url === 'function'\n ? action.url(toUnreactive(contextRecord.value!))\n : action.url\n if (isObject(href)) {\n opts.to = href\n } else {\n opts.href = (href as string) || undefined\n }\n // @ts-expect-error\n opts.target = action.target || undefined\n opts.link = typeof href === 'string' && href.trim().length > 0\n opts.onClick = () => {\n closeContextMenu()\n }\n // @ts-expect-error\n opts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n closeContextMenu()\n }\n }\n } else if (isResourcefulIndexFunctionAction(action)) {\n opts.onClick = () => {\n processResourcefulIndexFunctionAction(\n action,\n toUnreactive(contextRecord.value!)\n )\n closeContextMenu()\n }\n // @ts-expect-error\n opts.onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n processResourcefulIndexFunctionAction(\n action,\n toUnreactive(contextRecord.value!)\n )\n closeContextMenu()\n }\n }\n }\n return h(VListItem, { ...opts, key })\n })\n )\n }\n return null\n }\n )\n )\n }\n const openContextMenuForRecord = async (e: MouseEvent | TouchEvent, record: ActionableRecord) => {\n if (actionsForRecordAreDisabled(record)) return\n if (contextMenuIsOpen.value) {\n closeContextMenu()\n await nextTick()\n }\n contextMenuX.value =\n 'clientX' in e\n ? e.clientX\n : 'touches' in e && e.touches.length > 0\n ? e.touches[0].clientX\n : null\n contextMenuY.value =\n 'clientY' in e\n ? e.clientY\n : 'touches' in e && e.touches.length > 0\n ? e.touches[0].clientY\n : null\n contextAction.value = null\n contextRecord.value = record\n }\n const windowClickListener = (e: MouseEvent) => {\n if (contextElement.value === null) return\n if (contextElement.value?.contains(e.target as Node)) return\n closeContextMenu()\n }\n const windowContextMenuListener = (e: MouseEvent) => {\n if (contextElement.value === null) return\n if (contextElement.value?.contains(e.target as Node)) return\n closeContextMenu()\n }\n const windowTouchListener = (e: TouchEvent) => {\n if (contextElement.value === null) return\n if (contextElement.value?.contains(e.target as Node)) return\n closeContextMenu()\n }\n onMounted(() => {\n window.addEventListener('click', windowClickListener)\n window.addEventListener('contextmenu', windowContextMenuListener)\n window.addEventListener('touchstart', windowTouchListener)\n window.addEventListener('scroll', closeContextMenu)\n window.addEventListener('resize', closeContextMenu)\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.addEventListener('scroll', closeContextMenu)\n window.visualViewport!.addEventListener('resize', closeContextMenu)\n }\n })\n onBeforeUnmount(() => {\n closeContextMenu()\n window.removeEventListener('click', windowClickListener)\n window.removeEventListener('contextmenu', windowContextMenuListener)\n window.removeEventListener('touchstart', windowTouchListener)\n window.removeEventListener('scroll', closeContextMenu)\n window.removeEventListener('resize', closeContextMenu)\n if (SUPPORTS_VISUAL_VIEWPORT) {\n window.visualViewport!.removeEventListener('scroll', closeContextMenu)\n window.visualViewport!.removeEventListener('resize', closeContextMenu)\n }\n })\n return {\n renderActionsForRecord,\n reactiveContextMenuRenderer,\n openContextMenuForRecord,\n renderClipboardFeedback,\n contextMenuIsOpen,\n actionForRecordIsProcessing,\n isProcessing,\n }\n}\n"],"names":["_createVNode","_mergeProps","joi","propsFactory"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,10 +1,10 @@
1
1
  import { B as Big, f as formatBigNumber } from "./big_number_formatter-Dwx4Jjuu.mjs";
2
- import { c as commonEmitsValidators, V as VTextField, a as VDivider } from "./common-CmSn9ovn.mjs";
3
- import { u as useFieldComposer } from "./field_composer-Bu3olAAh.mjs";
2
+ import { c as commonEmitsValidators, V as VTextField, a as VDivider } from "./common-Cbhwse5j.mjs";
3
+ import { u as useFieldComposer } from "./field_composer-DDrc5sRp.mjs";
4
4
  import { p as propsAndEmitsFactory, s as stripUndefinedValuesFromObject, a as useSlot } from "./utils-ZFyctPhc.mjs";
5
5
  import { defineComponent, toRefs, computed, h } from "vue";
6
6
  import { p as propsFactory, a as pick, o as omit, c as makeVTextFieldProps } from "./vendor-nhtio-vuetifiable-Bu8PvbAd.mjs";
7
- import { m as makeVNumberInputProps, a as makeRNumberFieldProps } from "./number-jR6KmGNS.mjs";
7
+ import { m as makeVNumberInputProps, a as makeRNumberFieldProps } from "./number-Btaw2Wma.mjs";
8
8
  import { c as VBtn } from "./display-C8bGXYiq.mjs";
9
9
  const makeRBigIntFieldBaseProps = propsFactory(
10
10
  {
@@ -522,4 +522,4 @@ const RBigIntField = defineComponent({
522
522
  export {
523
523
  RBigIntField as R
524
524
  };
525
- //# sourceMappingURL=bigint-Bx-3PM_o.mjs.map
525
+ //# sourceMappingURL=bigint-sArk7WLd.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bigint-Bx-3PM_o.mjs","sources":["../src/private/fields/bigint.ts"],"sourcesContent":["/*\n|--------------------------------------------------------------------------\n| Resourceful BigInt Field\n|--------------------------------------------------------------------------\n|\n| A sophisticated field component for handling unlimited precision integer values\n| using Big.js for arithmetic operations and JSON-safe serialization. This field\n| extends beyond JavaScript's Number.MAX_SAFE_INTEGER limitations while maintaining\n| full compatibility with the resourceful field ecosystem.\n|\n| ## Core Features\n|\n| - **Unlimited Precision**: Handles arbitrarily large integers using Big.js\n| - **JSON Safety**: Configurable serialization (string or native bigint)\n| - **VTextField Base**: Uses VTextField with recreated VNumberInput controls\n| - **Multiple Mode**: Combobox variant with deletable chips for arrays\n| - **Format Support**: Integration with numeral.js formatting options\n| - **Validation Pipeline**: Sophisticated boundary checking and type conversion\n|\n| ## Technical Implementation\n|\n| The field uses VTextField as its base component instead of VNumberInput due to\n| BigInt incompatibility with HTML number inputs. Custom increment/decrement\n| controls are recreated to match VNumberInput behavior with proper pointer\n| capture and keyboard navigation.\n|\n| Type conversion utilities (toEmitable/fromEmitable) handle the complex bridge\n| between BigInt values and the component's string-based internal representation,\n| ensuring JSON safety and precision preservation.\n|\n| ## Usage Examples\n|\n| ```vue\n| <!-- Basic BigInt field -->\n| <RBigIntField\n| v-model=\"largeNumber\"\n| label=\"Large Number\"\n| format=\"0,0\"\n| />\n|\n| <!-- Multiple BigInt values -->\n| <RBigIntField\n| v-model=\"largeNumbers\"\n| multiple\n| label=\"Large Numbers\"\n| format=\"0,0\"\n| />\n|\n| <!-- With constraints -->\n| <RBigIntField\n| v-model=\"constrainedNumber\"\n| label=\"Constrained Number\"\n| :min=\"1000000000000000n\"\n| :max=\"9999999999999999n\"\n| />\n|\n| <!-- Read-only display -->\n| <RBigIntField\n| v-model=\"displayNumber\"\n| label=\"Display Number\"\n| render-mode=\"read\"\n| format=\"0.0a\"\n| />\n| ```\n|\n| ## Control Variants\n|\n| - **default**: Stacked increment/decrement buttons on the right\n| - **split**: Decrement on left, increment on right \n| - **stacked**: Vertical arrangement of controls\n| - **hidden**: No increment/decrement controls\n|\n| ## JSON Safety\n|\n| When `jsonSafe` is true (default), values are emitted as strings to ensure\n| compatibility with JSON serialization. When false, native BigInt values are\n| used for maximum type safety.\n*/\n\nimport { default as Big } from 'big.js'\nimport { VBtn } from 'vuetify/components/VBtn'\nimport { commonEmitsValidators } from './common'\nimport { useFieldComposer } from './field_composer'\nimport { VDivider } from 'vuetify/components/VDivider'\nimport { propsAndEmitsFactory } from '../common/factories'\nimport { h, defineComponent, toRefs, computed } from 'vue'\nimport { VTextField } from 'vuetify/components/VTextField'\nimport { omit, pick } from '@nhtio/vuetifiable/util/helpers'\nimport { formatBigNumber } from '../common/big_number_formatter'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport { makeRNumberFieldProps, makeVNumberInputProps } from './number'\nimport { stripUndefinedValuesFromObject, useSlot } from '../common/utils'\nimport { makeVTextFieldProps } from '@nhtio/vuetifiable/components/VTextField/VTextField'\nimport type { VNumberInputSlots } from './number'\nimport type { SingleFieldRenderer } from './field_composer'\nimport type { LooseRequired } from '@vue/shared/dist/shared.d.ts'\nimport type { NamedSlotParameters, ExtractSlotDefinitions } from '../common/types'\nimport type { CommonResourcefulFieldPublicProps, RFieldStringifier } from './common'\nimport type {\n PropType,\n ExtractPublicPropTypes,\n ToRefs,\n SlotsType,\n ComponentPublicInstance,\n} from 'vue'\n\n/**\n * Creates the base props for RBigIntField component.\n *\n * Extends RNumberField props while replacing min/max/step/precision with BigInt-specific\n * implementations. Adds VTextField's reverse prop and VNumberInput's hideInput/inset props\n * for complete control over the field appearance and behavior.\n *\n * @returns Props factory function for RBigIntField base properties\n *\n * @example\n * ```typescript\n * const props = makeRBigIntFieldBaseProps()\n * // props.min accepts string | number | bigint\n * // props.max accepts string | number | bigint\n * // props.jsonSafe controls serialization format\n * ```\n */\nexport const makeRBigIntFieldBaseProps = propsFactory(\n {\n ...omit(makeRNumberFieldProps(), ['min', 'max', 'precision']),\n ...pick(makeVTextFieldProps(), ['reverse']),\n ...pick(makeVNumberInputProps(), ['hideInput', 'inset']),\n min: {\n type: [String, Number, BigInt] as PropType<string | number | bigint | undefined>,\n default: undefined,\n },\n max: {\n type: [String, Number, BigInt] as PropType<string | number | bigint | undefined>,\n default: undefined,\n },\n jsonSafe: {\n type: Boolean,\n default: true,\n },\n },\n 'RBigIntField'\n)\n\n/**\n * Represents the value types that can be handled by RBigIntField.\n *\n * Supports string, number, and bigint inputs for maximum flexibility.\n * All values are internally converted to Big.js instances for precision\n * arithmetic and then emitted according to the jsonSafe configuration.\n *\n * @example\n * ```typescript\n * const stringValue: RBigIntFieldValue = \"123456789012345678901234567890\"\n * const numberValue: RBigIntFieldValue = 42\n * const bigintValue: RBigIntFieldValue = 123456789012345678901234567890n\n * ```\n */\nexport type RBigIntFieldValue = string | number | bigint\n\nconst isValidSingleRBigIntFieldValue = (value: RBigIntFieldValue) => {\n if (typeof value === 'bigint') return true\n if (\n typeof value === 'number' &&\n !Number.isNaN(value) &&\n Number.isFinite(value) &&\n Number.isInteger(value)\n )\n return true\n try {\n const asBig = new Big(value.toString())\n if (asBig.toFixed(0) !== value.toString()) return false\n return true\n } catch (e) {\n return e instanceof Error ? false : false\n }\n}\n\nconst isValidRBigIntFieldValue = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n) => {\n if ('undefined' === typeof value || null === value) return true\n if (Array.isArray(value)) return value.every(isValidSingleRBigIntFieldValue)\n return isValidSingleRBigIntFieldValue(value)\n}\n\n/**\n * Creates the complete props and emits configuration for RBigIntField.\n *\n * Combines the base props with validation-enabled emits for model value updates.\n * All emit values are validated through isValidRBigIntFieldValue before emission.\n *\n * @returns Object containing makeProps function and emits configuration\n *\n * @example\n * ```typescript\n * const { makeProps, emits } = propsAndEmitsFactory(...)\n * // Use in component definition\n * export const RBigIntField = defineComponent({\n * props: makeProps(),\n * emits: emits,\n * // ...\n * })\n * ```\n */\nconst { makeProps: makeRBigIntFieldProps, emits: rBigIntFieldEmits } = propsAndEmitsFactory(\n {\n ...makeRBigIntFieldBaseProps(),\n },\n {\n 'update:modelValue': (value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined) =>\n isValidRBigIntFieldValue(value),\n 'update:model-value': (value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined) =>\n isValidRBigIntFieldValue(value),\n ...commonEmitsValidators,\n },\n ''\n)\n\n/**\n * Props factory function for RBigIntField component.\n *\n * @example\n * ```typescript\n * const props = makeRBigIntFieldProps()\n * ```\n */\n/**\n * Emits configuration for RBigIntField component with validation.\n *\n * @example\n * ```typescript\n * const emits = rBigIntFieldEmits\n * ```\n */\nexport { makeRBigIntFieldProps, rBigIntFieldEmits }\n\n/**\n * Type definition for RBigIntField component props.\n *\n * Extracted from the props factory function to provide type safety\n * for component usage and prop validation.\n *\n * @example\n * ```typescript\n * const props: RBigIntFieldProps = {\n * modelValue: \"123456789012345678901234567890\",\n * label: \"Large Number\",\n * format: \"0,0\",\n * jsonSafe: true\n * }\n * ```\n */\nexport type RBigIntFieldProps = ExtractPublicPropTypes<ReturnType<typeof makeRBigIntFieldProps>>\n\ntype VTextfieldPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVTextFieldProps>>\ntype VTextFieldSlots = ExtractSlotDefinitions<typeof VTextField.slots>\ntype VTextFieldAppendInnerArgs = NamedSlotParameters<VTextFieldSlots, 'append-inner'>\ntype VTextFieldPrependInnerArgs = NamedSlotParameters<VTextFieldSlots, 'prepend-inner'>\n\nconst safeGetAsBig = (value: RBigIntFieldValue): Big | Error => {\n try {\n return new Big(value.toString())\n } catch (error: unknown) {\n return new Error('Invalid BigInt value', {\n cause: error instanceof Error ? error : undefined,\n })\n }\n}\n\nconst isEmitable = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined,\n min: string | number | bigint | undefined,\n max: string | number | bigint | undefined\n) => {\n if (!isValidRBigIntFieldValue(value)) return false\n if ('undefined' === typeof value || null === value) return true\n if ('undefined' === typeof min && 'undefined' === typeof max) return true\n try {\n const minAsBig = 'undefined' === typeof min ? min : new Big(min.toString())\n const maxAsBig = 'undefined' === typeof max ? max : new Big(max.toString())\n const valueAsBig = Array.isArray(value)\n ? value.map((v) => safeGetAsBig(v))\n : safeGetAsBig(value)\n if (Array.isArray(valueAsBig)) {\n return valueAsBig.every((v) => {\n // if we caught and error, the value\n // is assumed to be not safe to emit\n if (v instanceof Error) return false\n if (minAsBig && v.lte(minAsBig)) return false\n if (maxAsBig && v.gte(maxAsBig)) return false\n return true\n })\n } else {\n // if we caught and error, the value\n // is assumed to be not safe to emit\n if (valueAsBig instanceof Error) return false\n if (minAsBig && valueAsBig.lte(minAsBig)) return false\n if (maxAsBig && valueAsBig.gte(maxAsBig)) return false\n return true\n }\n } catch {\n // if we caught and error, the value\n // is assumed to be not safe to emit\n return false\n }\n}\n\nexport const toEmitable = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined,\n jsonSafe: boolean = true\n): RBigIntFieldValue | RBigIntFieldValue[] | null | undefined => {\n if (Array.isArray(value)) {\n return value\n .map((v) => toEmitable(v, jsonSafe))\n .filter((v) => v !== undefined && v !== null) as RBigIntFieldValue[]\n }\n if ('undefined' === typeof value || null === value) return value\n try {\n const asBig = new Big(value.toString())\n if (jsonSafe) {\n return asBig.toFixed(0)\n }\n // if the number is outside of a Number objects boundaries, we must return a bigint\n if (asBig.gt(Number.MAX_SAFE_INTEGER) || asBig.lt(Number.MIN_SAFE_INTEGER)) {\n return BigInt(asBig.toFixed(0))\n }\n return 'number' === typeof value ? Number.parseInt(asBig.toFixed(0)) : BigInt(asBig.toFixed(0))\n } catch {\n return undefined\n }\n}\n\nconst fromEmitable = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n): string | string[] | null | undefined => {\n if (Array.isArray(value)) {\n return value\n .map((v) => fromEmitable(v))\n .filter((v) => v !== undefined && v !== null) as string[]\n }\n if ('undefined' === typeof value || null === value) return value\n try {\n const asBig = new Big(value.toString())\n return asBig.toFixed(0)\n } catch {\n return undefined\n }\n}\n\n/**\n * RBigIntField - A sophisticated Vue component for handling unlimited precision integers.\n *\n * This component provides a comprehensive solution for working with large integers that\n * exceed JavaScript's Number.MAX_SAFE_INTEGER. It uses Big.js for arithmetic operations\n * and provides seamless integration with the resourceful field ecosystem.\n *\n * ## Key Features\n *\n * - **Unlimited Precision**: Handle arbitrarily large integers using Big.js\n * - **JSON Compatibility**: Configurable serialization for API compatibility\n * - **Input Controls**: Custom increment/decrement buttons with proper accessibility\n * - **Multiple Values**: Support for arrays with chip-based interface\n * - **Validation**: Comprehensive boundary checking and type validation\n * - **Formatting**: Integration with numeral.js for display formatting\n *\n * ## Technical Details\n *\n * The component uses VTextField as its base instead of VNumberInput due to BigInt\n * incompatibility with HTML number inputs. Custom controls are recreated to match\n * VNumberInput behavior while supporting unlimited precision values.\n *\n * @example\n * ```vue\n * <template>\n * <!-- Basic usage -->\n * <RBigIntField\n * v-model=\"largeNumber\"\n * label=\"Large Number\"\n * format=\"0,0\"\n * />\n *\n * <!-- Multiple values -->\n * <RBigIntField\n * v-model=\"largeNumbers\"\n * multiple\n * label=\"Large Numbers\"\n * />\n *\n * <!-- With constraints -->\n * <RBigIntField\n * v-model=\"constrainedNumber\"\n * :min=\"1000000000000000n\"\n * :max=\"9999999999999999n\"\n * />\n * </template>\n * ```\n */\nexport const RBigIntField = defineComponent({\n name: 'RBigIntField',\n props: makeRBigIntFieldProps(),\n emits: rBigIntFieldEmits,\n slots: Object as SlotsType<VNumberInputSlots>,\n setup(props, { emit, slots }) {\n const {\n focused,\n disabled,\n error,\n errorMessages,\n maxErrors,\n name,\n label,\n readonly,\n validateOn,\n theme,\n width,\n maxWidth,\n minWidth,\n density,\n class: className,\n style,\n id,\n baseColor,\n color,\n glow,\n iconColor,\n hideDetails,\n hint,\n persistentHint,\n messages,\n direction,\n modelValue,\n renderMode,\n multiple,\n choices,\n allowUnspecifiedChoices,\n to,\n href,\n menuIcon,\n active,\n variant,\n prefix,\n persistentPlaceholder,\n suffix,\n role,\n noValuesText,\n clearIcon,\n controlVariant,\n format,\n incrementIcon,\n decrementIcon,\n collapseIcon,\n expandIcon,\n reverse,\n hideInput,\n inset,\n step,\n dirty,\n onBlur,\n onChange,\n onInput,\n } = toRefs(props)\n const fixedEmit: typeof emit = (event, ...args) => {\n switch (event) {\n case 'update:modelValue':\n case 'update:model-value': {\n const canEmit = args.every((v) =>\n isEmitable(\n v as RBigIntFieldValue | RBigIntFieldValue[] | null | undefined,\n props.min,\n props.max\n )\n )\n if (!canEmit) return\n // @ts-expect-error\n return emit(event, ...args.map((v) => toEmitable(v, props.jsonSafe)))\n }\n\n default:\n // @ts-expect-error\n return emit(event, ...args)\n }\n }\n const onUpdateModelValueCamelProp = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n ) => {\n if ('undefined' === typeof props['onUpdate:modelValue']) return\n const emitable = toEmitable(value, props.jsonSafe)\n if (!isEmitable(emitable, props.min, props.max)) return\n props['onUpdate:modelValue'](emitable)\n }\n const onUpdateModelValueKebabProp = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n ) => {\n if ('undefined' === typeof props['onUpdate:model-value']) return\n const emitable = toEmitable(value, props.jsonSafe)\n if (!isEmitable(emitable, props.min, props.max)) return\n props['onUpdate:model-value'](emitable)\n }\n const textifiedModelValue = computed(() => fromEmitable(modelValue.value))\n const stringifier = computed<RFieldStringifier<RBigIntFieldValue>>(() => {\n return (val: RBigIntFieldValue) => {\n if (!isValidSingleRBigIntFieldValue(val)) return ''\n try {\n const asBig = new Big(val.toString())\n // return numeral(asBig.toFixed(0)).format(format.value)\n return formatBigNumber(asBig, format.value)\n } catch {\n return ''\n }\n }\n })\n const commonProps: ToRefs<LooseRequired<Readonly<CommonResourcefulFieldPublicProps>>> = {\n style,\n label,\n density,\n renderMode,\n multiple,\n to,\n href,\n menuIcon,\n active,\n theme,\n disabled,\n variant,\n prefix,\n persistentPlaceholder,\n suffix,\n role,\n focused,\n noValuesText,\n choices,\n allowUnspecifiedChoices,\n 'class': className,\n 'onUpdate:focused': toRefs(props)['onUpdate:focused'],\n 'onClick:append': toRefs(props)['onClick:append'],\n 'onClick:appendInner': toRefs(props)['onClick:appendInner'],\n 'onClick:clear': toRefs(props)['onClick:clear'],\n 'onClick:prependInner': toRefs(props)['onClick:prependInner'],\n 'onClick:prepend': toRefs(props)['onClick:prepend'],\n 'onMousedown:control': toRefs(props)['onMousedown:control'],\n 'onClick:control': toRefs(props)['onClick:control'],\n error,\n errorMessages,\n dirty,\n onBlur,\n onChange,\n onInput,\n }\n const VNumberInputFieldBindings = computed<VTextfieldPublicProps>(() =>\n stripUndefinedValuesFromObject({\n focused: focused.value,\n disabled: disabled.value,\n error: error.value,\n errorMessages: errorMessages.value,\n maxErrors: maxErrors.value,\n name: name.value,\n label: label.value,\n readonly: readonly.value,\n validateOn: validateOn.value,\n theme: theme.value,\n width: width.value,\n maxWidth: maxWidth.value,\n minWidth: minWidth.value,\n density: density.value,\n class: className.value,\n style: style.value,\n id: id.value,\n baseColor: baseColor.value,\n color: color.value,\n glow: glow.value,\n iconColor: iconColor.value,\n hideDetails: hideDetails.value,\n hint: hint.value,\n persistentHint: persistentHint.value,\n messages: messages.value,\n direction: direction.value,\n variant: variant.value,\n clearIcon: clearIcon.value,\n controlVariant: controlVariant.value,\n active: active.value,\n prefix: prefix.value,\n persistentPlaceholder: persistentPlaceholder.value,\n suffix: suffix.value,\n role: role.value,\n dirty: dirty.value,\n onBlur: onBlur.value,\n onChange: onChange.value,\n onInput: onInput.value,\n })\n )\n const normalizedIncrementIcon = computed(() =>\n controlVariant.value === 'split' ? incrementIcon.value : collapseIcon.value\n )\n const normalizedDecrementIcon = computed(() =>\n controlVariant.value === 'split' ? decrementIcon.value : expandIcon.value\n )\n const normalizedControlNodeSize = computed(() =>\n controlVariant.value === 'split' ? 'default' : 'small'\n )\n const normalizedControlNodeDefaultHeight = computed(() =>\n controlVariant.value === 'stacked' ? 'auto' : '100%'\n )\n const normalizedControlsDisabled = computed(() => disabled.value || readonly.value)\n const normalizedStep = computed(() => {\n const stepValue = step.value ?? 1\n if (stepValue <= 0) return 1\n return Math.round(stepValue) || 1\n })\n const singleFieldRenderer: SingleFieldRenderer = ({\n props: fieldBindings,\n isMultiAdd,\n add,\n }) => {\n const canIncrease = computed(() => {\n if (normalizedControlsDisabled.value) return false\n const isBig = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (isBig instanceof Error) return false\n const maxAsBig = 'undefined' === typeof props.max ? undefined : safeGetAsBig(props.max)\n if (maxAsBig instanceof Error) return false\n if ('undefined' === typeof maxAsBig) return true\n return isBig.add(normalizedStep.value).lte(maxAsBig)\n })\n const canDecrease = computed(() => {\n if (normalizedControlsDisabled.value) return false\n const isBig = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (isBig instanceof Error) return false\n const minAsBig = 'undefined' === typeof props.min ? undefined : safeGetAsBig(props.min)\n if (minAsBig instanceof Error) return false\n if ('undefined' === typeof minAsBig) return true\n return isBig.sub(normalizedStep.value).gte(minAsBig)\n })\n const incrementSlot = useSlot<VNumberInputSlots>('increment', slots)\n const decrementSlot = useSlot<VNumberInputSlots>('decrement', slots)\n const incrementControlNode = () => {\n const slotProps = {\n props: {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerup: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n },\n onPointerdown: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n // Increment logic here\n if (canIncrease.value) {\n const current = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (!(current instanceof Error)) {\n fieldBindings['onUpdate:modelValue'](current.add(1).toFixed(0))\n }\n }\n },\n onPointercancel: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n },\n },\n }\n\n return incrementSlot\n ? // @ts-expect-error\n incrementSlot(slotProps)\n : h(VBtn, {\n disabled: !canIncrease.value,\n flat: true,\n height: normalizedControlNodeDefaultHeight.value,\n icon: normalizedIncrementIcon.value,\n size: normalizedControlNodeSize.value,\n tabindex: '-1',\n ...slotProps.props,\n })\n }\n const decrementControlNode = () => {\n const slotProps = {\n props: {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerup: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n },\n onPointerdown: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n // Decrement logic here\n if (canDecrease.value) {\n const current = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (!(current instanceof Error)) {\n fieldBindings['onUpdate:modelValue'](current.sub(1).toFixed(0))\n }\n }\n },\n onPointercancel: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n },\n },\n }\n\n return decrementSlot\n ? // @ts-expect-error\n decrementSlot(slotProps)\n : h(VBtn, {\n disabled: !canDecrease.value,\n flat: true,\n height: normalizedControlNodeDefaultHeight.value,\n icon: normalizedDecrementIcon.value,\n size: normalizedControlNodeSize.value,\n tabindex: '-1',\n ...slotProps.props,\n })\n }\n const appendInnerSlot = () => {\n if (controlVariant.value === 'split') {\n return h('div', { class: 'v-number-input__control' }, [\n h(VDivider, { vertical: true }),\n incrementControlNode(),\n ])\n } else if (!reverse.value && controlVariant.value !== 'hidden') {\n return [\n !hideInput.value && !inset.value && h(VDivider, { vertical: true }),\n h('div', { class: 'v-number-input__control' }, [\n decrementControlNode(),\n h(VDivider, { vertical: controlVariant.value !== 'stacked' }),\n incrementControlNode(),\n ]),\n ]\n }\n return undefined\n }\n const prependInnerSlot = () => {\n if (controlVariant.value === 'split') {\n return h('div', { class: 'v-number-input__control' }, [\n decrementControlNode(),\n h(VDivider, { vertical: true }),\n ])\n } else if (reverse.value && controlVariant.value !== 'hidden') {\n return [\n h('div', { class: 'v-number-input__control' }, [\n decrementControlNode(),\n h(VDivider, { vertical: controlVariant.value !== 'stacked' }),\n incrementControlNode(),\n ]),\n !hideInput.value && !inset.value && h(VDivider, { vertical: true }),\n ]\n }\n return undefined\n }\n return h(\n VTextField,\n {\n ...VNumberInputFieldBindings.value,\n ...fieldBindings,\n class: isMultiAdd\n ? []\n : [\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n VNumberInputFieldBindings.value.class,\n ],\n hideDetails: isMultiAdd ? true : VNumberInputFieldBindings.value.hideDetails,\n inputmode: 'decimal',\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' && isMultiAdd) {\n queueMicrotask(() => add())\n } else if (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n e.preventDefault()\n const current = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (!(current instanceof Error)) {\n if (e.key === 'ArrowUp' && canIncrease.value) {\n fieldBindings['onUpdate:modelValue'](current.add(1).toString())\n } else if (e.key === 'ArrowDown' && canDecrease.value) {\n fieldBindings['onUpdate:modelValue'](current.sub(1).toString())\n }\n }\n }\n },\n },\n // eslint-disable-next-line @nht/require-function-slots-for-programmatic-components\n {\n ...slots,\n 'append-inner': (...args: VTextFieldAppendInnerArgs) => [\n slots['append-inner']?.(...args),\n appendInnerSlot(),\n ],\n 'prepend-inner': (...args: VTextFieldPrependInnerArgs) => [\n prependInnerSlot(),\n slots['prepend-inner']?.(...args),\n ],\n }\n )\n }\n const { composed } = useFieldComposer(\n commonProps,\n stringifier,\n singleFieldRenderer,\n fixedEmit,\n onUpdateModelValueCamelProp,\n onUpdateModelValueKebabProp,\n textifiedModelValue,\n textifiedModelValue.value\n )\n return composed\n },\n})\n\nexport type RBigIntField = typeof RBigIntField & ComponentPublicInstance\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bigint-sArk7WLd.mjs","sources":["../src/private/fields/bigint.ts"],"sourcesContent":["/*\n|--------------------------------------------------------------------------\n| Resourceful BigInt Field\n|--------------------------------------------------------------------------\n|\n| A sophisticated field component for handling unlimited precision integer values\n| using Big.js for arithmetic operations and JSON-safe serialization. This field\n| extends beyond JavaScript's Number.MAX_SAFE_INTEGER limitations while maintaining\n| full compatibility with the resourceful field ecosystem.\n|\n| ## Core Features\n|\n| - **Unlimited Precision**: Handles arbitrarily large integers using Big.js\n| - **JSON Safety**: Configurable serialization (string or native bigint)\n| - **VTextField Base**: Uses VTextField with recreated VNumberInput controls\n| - **Multiple Mode**: Combobox variant with deletable chips for arrays\n| - **Format Support**: Integration with numeral.js formatting options\n| - **Validation Pipeline**: Sophisticated boundary checking and type conversion\n|\n| ## Technical Implementation\n|\n| The field uses VTextField as its base component instead of VNumberInput due to\n| BigInt incompatibility with HTML number inputs. Custom increment/decrement\n| controls are recreated to match VNumberInput behavior with proper pointer\n| capture and keyboard navigation.\n|\n| Type conversion utilities (toEmitable/fromEmitable) handle the complex bridge\n| between BigInt values and the component's string-based internal representation,\n| ensuring JSON safety and precision preservation.\n|\n| ## Usage Examples\n|\n| ```vue\n| <!-- Basic BigInt field -->\n| <RBigIntField\n| v-model=\"largeNumber\"\n| label=\"Large Number\"\n| format=\"0,0\"\n| />\n|\n| <!-- Multiple BigInt values -->\n| <RBigIntField\n| v-model=\"largeNumbers\"\n| multiple\n| label=\"Large Numbers\"\n| format=\"0,0\"\n| />\n|\n| <!-- With constraints -->\n| <RBigIntField\n| v-model=\"constrainedNumber\"\n| label=\"Constrained Number\"\n| :min=\"1000000000000000n\"\n| :max=\"9999999999999999n\"\n| />\n|\n| <!-- Read-only display -->\n| <RBigIntField\n| v-model=\"displayNumber\"\n| label=\"Display Number\"\n| render-mode=\"read\"\n| format=\"0.0a\"\n| />\n| ```\n|\n| ## Control Variants\n|\n| - **default**: Stacked increment/decrement buttons on the right\n| - **split**: Decrement on left, increment on right \n| - **stacked**: Vertical arrangement of controls\n| - **hidden**: No increment/decrement controls\n|\n| ## JSON Safety\n|\n| When `jsonSafe` is true (default), values are emitted as strings to ensure\n| compatibility with JSON serialization. When false, native BigInt values are\n| used for maximum type safety.\n*/\n\nimport { default as Big } from 'big.js'\nimport { VBtn } from 'vuetify/components/VBtn'\nimport { commonEmitsValidators } from './common'\nimport { useFieldComposer } from './field_composer'\nimport { VDivider } from 'vuetify/components/VDivider'\nimport { propsAndEmitsFactory } from '../common/factories'\nimport { h, defineComponent, toRefs, computed } from 'vue'\nimport { VTextField } from 'vuetify/components/VTextField'\nimport { omit, pick } from '@nhtio/vuetifiable/util/helpers'\nimport { formatBigNumber } from '../common/big_number_formatter'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport { makeRNumberFieldProps, makeVNumberInputProps } from './number'\nimport { stripUndefinedValuesFromObject, useSlot } from '../common/utils'\nimport { makeVTextFieldProps } from '@nhtio/vuetifiable/components/VTextField/VTextField'\nimport type { VNumberInputSlots } from './number'\nimport type { SingleFieldRenderer } from './field_composer'\nimport type { LooseRequired } from '@vue/shared/dist/shared.d.ts'\nimport type { NamedSlotParameters, ExtractSlotDefinitions } from '../common/types'\nimport type { CommonResourcefulFieldPublicProps, RFieldStringifier } from './common'\nimport type {\n PropType,\n ExtractPublicPropTypes,\n ToRefs,\n SlotsType,\n ComponentPublicInstance,\n} from 'vue'\n\n/**\n * Creates the base props for RBigIntField component.\n *\n * Extends RNumberField props while replacing min/max/step/precision with BigInt-specific\n * implementations. Adds VTextField's reverse prop and VNumberInput's hideInput/inset props\n * for complete control over the field appearance and behavior.\n *\n * @returns Props factory function for RBigIntField base properties\n *\n * @example\n * ```typescript\n * const props = makeRBigIntFieldBaseProps()\n * // props.min accepts string | number | bigint\n * // props.max accepts string | number | bigint\n * // props.jsonSafe controls serialization format\n * ```\n */\nexport const makeRBigIntFieldBaseProps = propsFactory(\n {\n ...omit(makeRNumberFieldProps(), ['min', 'max', 'precision']),\n ...pick(makeVTextFieldProps(), ['reverse']),\n ...pick(makeVNumberInputProps(), ['hideInput', 'inset']),\n min: {\n type: [String, Number, BigInt] as PropType<string | number | bigint | undefined>,\n default: undefined,\n },\n max: {\n type: [String, Number, BigInt] as PropType<string | number | bigint | undefined>,\n default: undefined,\n },\n jsonSafe: {\n type: Boolean,\n default: true,\n },\n },\n 'RBigIntField'\n)\n\n/**\n * Represents the value types that can be handled by RBigIntField.\n *\n * Supports string, number, and bigint inputs for maximum flexibility.\n * All values are internally converted to Big.js instances for precision\n * arithmetic and then emitted according to the jsonSafe configuration.\n *\n * @example\n * ```typescript\n * const stringValue: RBigIntFieldValue = \"123456789012345678901234567890\"\n * const numberValue: RBigIntFieldValue = 42\n * const bigintValue: RBigIntFieldValue = 123456789012345678901234567890n\n * ```\n */\nexport type RBigIntFieldValue = string | number | bigint\n\nconst isValidSingleRBigIntFieldValue = (value: RBigIntFieldValue) => {\n if (typeof value === 'bigint') return true\n if (\n typeof value === 'number' &&\n !Number.isNaN(value) &&\n Number.isFinite(value) &&\n Number.isInteger(value)\n )\n return true\n try {\n const asBig = new Big(value.toString())\n if (asBig.toFixed(0) !== value.toString()) return false\n return true\n } catch (e) {\n return e instanceof Error ? false : false\n }\n}\n\nconst isValidRBigIntFieldValue = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n) => {\n if ('undefined' === typeof value || null === value) return true\n if (Array.isArray(value)) return value.every(isValidSingleRBigIntFieldValue)\n return isValidSingleRBigIntFieldValue(value)\n}\n\n/**\n * Creates the complete props and emits configuration for RBigIntField.\n *\n * Combines the base props with validation-enabled emits for model value updates.\n * All emit values are validated through isValidRBigIntFieldValue before emission.\n *\n * @returns Object containing makeProps function and emits configuration\n *\n * @example\n * ```typescript\n * const { makeProps, emits } = propsAndEmitsFactory(...)\n * // Use in component definition\n * export const RBigIntField = defineComponent({\n * props: makeProps(),\n * emits: emits,\n * // ...\n * })\n * ```\n */\nconst { makeProps: makeRBigIntFieldProps, emits: rBigIntFieldEmits } = propsAndEmitsFactory(\n {\n ...makeRBigIntFieldBaseProps(),\n },\n {\n 'update:modelValue': (value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined) =>\n isValidRBigIntFieldValue(value),\n 'update:model-value': (value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined) =>\n isValidRBigIntFieldValue(value),\n ...commonEmitsValidators,\n },\n ''\n)\n\n/**\n * Props factory function for RBigIntField component.\n *\n * @example\n * ```typescript\n * const props = makeRBigIntFieldProps()\n * ```\n */\n/**\n * Emits configuration for RBigIntField component with validation.\n *\n * @example\n * ```typescript\n * const emits = rBigIntFieldEmits\n * ```\n */\nexport { makeRBigIntFieldProps, rBigIntFieldEmits }\n\n/**\n * Type definition for RBigIntField component props.\n *\n * Extracted from the props factory function to provide type safety\n * for component usage and prop validation.\n *\n * @example\n * ```typescript\n * const props: RBigIntFieldProps = {\n * modelValue: \"123456789012345678901234567890\",\n * label: \"Large Number\",\n * format: \"0,0\",\n * jsonSafe: true\n * }\n * ```\n */\nexport type RBigIntFieldProps = ExtractPublicPropTypes<ReturnType<typeof makeRBigIntFieldProps>>\n\ntype VTextfieldPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVTextFieldProps>>\ntype VTextFieldSlots = ExtractSlotDefinitions<typeof VTextField.slots>\ntype VTextFieldAppendInnerArgs = NamedSlotParameters<VTextFieldSlots, 'append-inner'>\ntype VTextFieldPrependInnerArgs = NamedSlotParameters<VTextFieldSlots, 'prepend-inner'>\n\nconst safeGetAsBig = (value: RBigIntFieldValue): Big | Error => {\n try {\n return new Big(value.toString())\n } catch (error: unknown) {\n return new Error('Invalid BigInt value', {\n cause: error instanceof Error ? error : undefined,\n })\n }\n}\n\nconst isEmitable = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined,\n min: string | number | bigint | undefined,\n max: string | number | bigint | undefined\n) => {\n if (!isValidRBigIntFieldValue(value)) return false\n if ('undefined' === typeof value || null === value) return true\n if ('undefined' === typeof min && 'undefined' === typeof max) return true\n try {\n const minAsBig = 'undefined' === typeof min ? min : new Big(min.toString())\n const maxAsBig = 'undefined' === typeof max ? max : new Big(max.toString())\n const valueAsBig = Array.isArray(value)\n ? value.map((v) => safeGetAsBig(v))\n : safeGetAsBig(value)\n if (Array.isArray(valueAsBig)) {\n return valueAsBig.every((v) => {\n // if we caught and error, the value\n // is assumed to be not safe to emit\n if (v instanceof Error) return false\n if (minAsBig && v.lte(minAsBig)) return false\n if (maxAsBig && v.gte(maxAsBig)) return false\n return true\n })\n } else {\n // if we caught and error, the value\n // is assumed to be not safe to emit\n if (valueAsBig instanceof Error) return false\n if (minAsBig && valueAsBig.lte(minAsBig)) return false\n if (maxAsBig && valueAsBig.gte(maxAsBig)) return false\n return true\n }\n } catch {\n // if we caught and error, the value\n // is assumed to be not safe to emit\n return false\n }\n}\n\nexport const toEmitable = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined,\n jsonSafe: boolean = true\n): RBigIntFieldValue | RBigIntFieldValue[] | null | undefined => {\n if (Array.isArray(value)) {\n return value\n .map((v) => toEmitable(v, jsonSafe))\n .filter((v) => v !== undefined && v !== null) as RBigIntFieldValue[]\n }\n if ('undefined' === typeof value || null === value) return value\n try {\n const asBig = new Big(value.toString())\n if (jsonSafe) {\n return asBig.toFixed(0)\n }\n // if the number is outside of a Number objects boundaries, we must return a bigint\n if (asBig.gt(Number.MAX_SAFE_INTEGER) || asBig.lt(Number.MIN_SAFE_INTEGER)) {\n return BigInt(asBig.toFixed(0))\n }\n return 'number' === typeof value ? Number.parseInt(asBig.toFixed(0)) : BigInt(asBig.toFixed(0))\n } catch {\n return undefined\n }\n}\n\nconst fromEmitable = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n): string | string[] | null | undefined => {\n if (Array.isArray(value)) {\n return value\n .map((v) => fromEmitable(v))\n .filter((v) => v !== undefined && v !== null) as string[]\n }\n if ('undefined' === typeof value || null === value) return value\n try {\n const asBig = new Big(value.toString())\n return asBig.toFixed(0)\n } catch {\n return undefined\n }\n}\n\n/**\n * RBigIntField - A sophisticated Vue component for handling unlimited precision integers.\n *\n * This component provides a comprehensive solution for working with large integers that\n * exceed JavaScript's Number.MAX_SAFE_INTEGER. It uses Big.js for arithmetic operations\n * and provides seamless integration with the resourceful field ecosystem.\n *\n * ## Key Features\n *\n * - **Unlimited Precision**: Handle arbitrarily large integers using Big.js\n * - **JSON Compatibility**: Configurable serialization for API compatibility\n * - **Input Controls**: Custom increment/decrement buttons with proper accessibility\n * - **Multiple Values**: Support for arrays with chip-based interface\n * - **Validation**: Comprehensive boundary checking and type validation\n * - **Formatting**: Integration with numeral.js for display formatting\n *\n * ## Technical Details\n *\n * The component uses VTextField as its base instead of VNumberInput due to BigInt\n * incompatibility with HTML number inputs. Custom controls are recreated to match\n * VNumberInput behavior while supporting unlimited precision values.\n *\n * @example\n * ```vue\n * <template>\n * <!-- Basic usage -->\n * <RBigIntField\n * v-model=\"largeNumber\"\n * label=\"Large Number\"\n * format=\"0,0\"\n * />\n *\n * <!-- Multiple values -->\n * <RBigIntField\n * v-model=\"largeNumbers\"\n * multiple\n * label=\"Large Numbers\"\n * />\n *\n * <!-- With constraints -->\n * <RBigIntField\n * v-model=\"constrainedNumber\"\n * :min=\"1000000000000000n\"\n * :max=\"9999999999999999n\"\n * />\n * </template>\n * ```\n */\nexport const RBigIntField = defineComponent({\n name: 'RBigIntField',\n props: makeRBigIntFieldProps(),\n emits: rBigIntFieldEmits,\n slots: Object as SlotsType<VNumberInputSlots>,\n setup(props, { emit, slots }) {\n const {\n focused,\n disabled,\n error,\n errorMessages,\n maxErrors,\n name,\n label,\n readonly,\n validateOn,\n theme,\n width,\n maxWidth,\n minWidth,\n density,\n class: className,\n style,\n id,\n baseColor,\n color,\n glow,\n iconColor,\n hideDetails,\n hint,\n persistentHint,\n messages,\n direction,\n modelValue,\n renderMode,\n multiple,\n choices,\n allowUnspecifiedChoices,\n to,\n href,\n menuIcon,\n active,\n variant,\n prefix,\n persistentPlaceholder,\n suffix,\n role,\n noValuesText,\n clearIcon,\n controlVariant,\n format,\n incrementIcon,\n decrementIcon,\n collapseIcon,\n expandIcon,\n reverse,\n hideInput,\n inset,\n step,\n dirty,\n onBlur,\n onChange,\n onInput,\n } = toRefs(props)\n const fixedEmit: typeof emit = (event, ...args) => {\n switch (event) {\n case 'update:modelValue':\n case 'update:model-value': {\n const canEmit = args.every((v) =>\n isEmitable(\n v as RBigIntFieldValue | RBigIntFieldValue[] | null | undefined,\n props.min,\n props.max\n )\n )\n if (!canEmit) return\n // @ts-expect-error\n return emit(event, ...args.map((v) => toEmitable(v, props.jsonSafe)))\n }\n\n default:\n // @ts-expect-error\n return emit(event, ...args)\n }\n }\n const onUpdateModelValueCamelProp = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n ) => {\n if ('undefined' === typeof props['onUpdate:modelValue']) return\n const emitable = toEmitable(value, props.jsonSafe)\n if (!isEmitable(emitable, props.min, props.max)) return\n props['onUpdate:modelValue'](emitable)\n }\n const onUpdateModelValueKebabProp = (\n value: RBigIntFieldValue | RBigIntFieldValue[] | null | undefined\n ) => {\n if ('undefined' === typeof props['onUpdate:model-value']) return\n const emitable = toEmitable(value, props.jsonSafe)\n if (!isEmitable(emitable, props.min, props.max)) return\n props['onUpdate:model-value'](emitable)\n }\n const textifiedModelValue = computed(() => fromEmitable(modelValue.value))\n const stringifier = computed<RFieldStringifier<RBigIntFieldValue>>(() => {\n return (val: RBigIntFieldValue) => {\n if (!isValidSingleRBigIntFieldValue(val)) return ''\n try {\n const asBig = new Big(val.toString())\n // return numeral(asBig.toFixed(0)).format(format.value)\n return formatBigNumber(asBig, format.value)\n } catch {\n return ''\n }\n }\n })\n const commonProps: ToRefs<LooseRequired<Readonly<CommonResourcefulFieldPublicProps>>> = {\n style,\n label,\n density,\n renderMode,\n multiple,\n to,\n href,\n menuIcon,\n active,\n theme,\n disabled,\n variant,\n prefix,\n persistentPlaceholder,\n suffix,\n role,\n focused,\n noValuesText,\n choices,\n allowUnspecifiedChoices,\n 'class': className,\n 'onUpdate:focused': toRefs(props)['onUpdate:focused'],\n 'onClick:append': toRefs(props)['onClick:append'],\n 'onClick:appendInner': toRefs(props)['onClick:appendInner'],\n 'onClick:clear': toRefs(props)['onClick:clear'],\n 'onClick:prependInner': toRefs(props)['onClick:prependInner'],\n 'onClick:prepend': toRefs(props)['onClick:prepend'],\n 'onMousedown:control': toRefs(props)['onMousedown:control'],\n 'onClick:control': toRefs(props)['onClick:control'],\n error,\n errorMessages,\n dirty,\n onBlur,\n onChange,\n onInput,\n }\n const VNumberInputFieldBindings = computed<VTextfieldPublicProps>(() =>\n stripUndefinedValuesFromObject({\n focused: focused.value,\n disabled: disabled.value,\n error: error.value,\n errorMessages: errorMessages.value,\n maxErrors: maxErrors.value,\n name: name.value,\n label: label.value,\n readonly: readonly.value,\n validateOn: validateOn.value,\n theme: theme.value,\n width: width.value,\n maxWidth: maxWidth.value,\n minWidth: minWidth.value,\n density: density.value,\n class: className.value,\n style: style.value,\n id: id.value,\n baseColor: baseColor.value,\n color: color.value,\n glow: glow.value,\n iconColor: iconColor.value,\n hideDetails: hideDetails.value,\n hint: hint.value,\n persistentHint: persistentHint.value,\n messages: messages.value,\n direction: direction.value,\n variant: variant.value,\n clearIcon: clearIcon.value,\n controlVariant: controlVariant.value,\n active: active.value,\n prefix: prefix.value,\n persistentPlaceholder: persistentPlaceholder.value,\n suffix: suffix.value,\n role: role.value,\n dirty: dirty.value,\n onBlur: onBlur.value,\n onChange: onChange.value,\n onInput: onInput.value,\n })\n )\n const normalizedIncrementIcon = computed(() =>\n controlVariant.value === 'split' ? incrementIcon.value : collapseIcon.value\n )\n const normalizedDecrementIcon = computed(() =>\n controlVariant.value === 'split' ? decrementIcon.value : expandIcon.value\n )\n const normalizedControlNodeSize = computed(() =>\n controlVariant.value === 'split' ? 'default' : 'small'\n )\n const normalizedControlNodeDefaultHeight = computed(() =>\n controlVariant.value === 'stacked' ? 'auto' : '100%'\n )\n const normalizedControlsDisabled = computed(() => disabled.value || readonly.value)\n const normalizedStep = computed(() => {\n const stepValue = step.value ?? 1\n if (stepValue <= 0) return 1\n return Math.round(stepValue) || 1\n })\n const singleFieldRenderer: SingleFieldRenderer = ({\n props: fieldBindings,\n isMultiAdd,\n add,\n }) => {\n const canIncrease = computed(() => {\n if (normalizedControlsDisabled.value) return false\n const isBig = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (isBig instanceof Error) return false\n const maxAsBig = 'undefined' === typeof props.max ? undefined : safeGetAsBig(props.max)\n if (maxAsBig instanceof Error) return false\n if ('undefined' === typeof maxAsBig) return true\n return isBig.add(normalizedStep.value).lte(maxAsBig)\n })\n const canDecrease = computed(() => {\n if (normalizedControlsDisabled.value) return false\n const isBig = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (isBig instanceof Error) return false\n const minAsBig = 'undefined' === typeof props.min ? undefined : safeGetAsBig(props.min)\n if (minAsBig instanceof Error) return false\n if ('undefined' === typeof minAsBig) return true\n return isBig.sub(normalizedStep.value).gte(minAsBig)\n })\n const incrementSlot = useSlot<VNumberInputSlots>('increment', slots)\n const decrementSlot = useSlot<VNumberInputSlots>('decrement', slots)\n const incrementControlNode = () => {\n const slotProps = {\n props: {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerup: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n },\n onPointerdown: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n // Increment logic here\n if (canIncrease.value) {\n const current = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (!(current instanceof Error)) {\n fieldBindings['onUpdate:modelValue'](current.add(1).toFixed(0))\n }\n }\n },\n onPointercancel: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n },\n },\n }\n\n return incrementSlot\n ? // @ts-expect-error\n incrementSlot(slotProps)\n : h(VBtn, {\n disabled: !canIncrease.value,\n flat: true,\n height: normalizedControlNodeDefaultHeight.value,\n icon: normalizedIncrementIcon.value,\n size: normalizedControlNodeSize.value,\n tabindex: '-1',\n ...slotProps.props,\n })\n }\n const decrementControlNode = () => {\n const slotProps = {\n props: {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerup: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n },\n onPointerdown: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n // Decrement logic here\n if (canDecrease.value) {\n const current = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (!(current instanceof Error)) {\n fieldBindings['onUpdate:modelValue'](current.sub(1).toFixed(0))\n }\n }\n },\n onPointercancel: (e: PointerEvent) => {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n },\n },\n }\n\n return decrementSlot\n ? // @ts-expect-error\n decrementSlot(slotProps)\n : h(VBtn, {\n disabled: !canDecrease.value,\n flat: true,\n height: normalizedControlNodeDefaultHeight.value,\n icon: normalizedDecrementIcon.value,\n size: normalizedControlNodeSize.value,\n tabindex: '-1',\n ...slotProps.props,\n })\n }\n const appendInnerSlot = () => {\n if (controlVariant.value === 'split') {\n return h('div', { class: 'v-number-input__control' }, [\n h(VDivider, { vertical: true }),\n incrementControlNode(),\n ])\n } else if (!reverse.value && controlVariant.value !== 'hidden') {\n return [\n !hideInput.value && !inset.value && h(VDivider, { vertical: true }),\n h('div', { class: 'v-number-input__control' }, [\n decrementControlNode(),\n h(VDivider, { vertical: controlVariant.value !== 'stacked' }),\n incrementControlNode(),\n ]),\n ]\n }\n return undefined\n }\n const prependInnerSlot = () => {\n if (controlVariant.value === 'split') {\n return h('div', { class: 'v-number-input__control' }, [\n decrementControlNode(),\n h(VDivider, { vertical: true }),\n ])\n } else if (reverse.value && controlVariant.value !== 'hidden') {\n return [\n h('div', { class: 'v-number-input__control' }, [\n decrementControlNode(),\n h(VDivider, { vertical: controlVariant.value !== 'stacked' }),\n incrementControlNode(),\n ]),\n !hideInput.value && !inset.value && h(VDivider, { vertical: true }),\n ]\n }\n return undefined\n }\n return h(\n VTextField,\n {\n ...VNumberInputFieldBindings.value,\n ...fieldBindings,\n class: isMultiAdd\n ? []\n : [\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n VNumberInputFieldBindings.value.class,\n ],\n hideDetails: isMultiAdd ? true : VNumberInputFieldBindings.value.hideDetails,\n inputmode: 'decimal',\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' && isMultiAdd) {\n queueMicrotask(() => add())\n } else if (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n e.preventDefault()\n const current = safeGetAsBig(fieldBindings.modelValue as RBigIntFieldValue)\n if (!(current instanceof Error)) {\n if (e.key === 'ArrowUp' && canIncrease.value) {\n fieldBindings['onUpdate:modelValue'](current.add(1).toString())\n } else if (e.key === 'ArrowDown' && canDecrease.value) {\n fieldBindings['onUpdate:modelValue'](current.sub(1).toString())\n }\n }\n }\n },\n },\n // eslint-disable-next-line @nht/require-function-slots-for-programmatic-components\n {\n ...slots,\n 'append-inner': (...args: VTextFieldAppendInnerArgs) => [\n slots['append-inner']?.(...args),\n appendInnerSlot(),\n ],\n 'prepend-inner': (...args: VTextFieldPrependInnerArgs) => [\n prependInnerSlot(),\n slots['prepend-inner']?.(...args),\n ],\n }\n )\n }\n const { composed } = useFieldComposer(\n commonProps,\n stringifier,\n singleFieldRenderer,\n fixedEmit,\n onUpdateModelValueCamelProp,\n onUpdateModelValueKebabProp,\n textifiedModelValue,\n textifiedModelValue.value\n )\n return composed\n },\n})\n\nexport type RBigIntField = typeof RBigIntField & ComponentPublicInstance\n"],"names":[],"mappings":";;;;;;;;AA2HO,MAAM,4BAA4B;AAAA,EACvC;AAAA,IACE,GAAG,KAAK,sBAAA,GAAyB,CAAC,OAAO,OAAO,WAAW,CAAC;AAAA,IAC5D,GAAG,KAAK,uBAAuB,CAAC,SAAS,CAAC;AAAA,IAC1C,GAAG,KAAK,sBAAA,GAAyB,CAAC,aAAa,OAAO,CAAC;AAAA,IACvD,KAAK;AAAA,MACH,MAAM,CAAC,QAAQ,QAAQ,MAAM;AAAA,MAC7B,SAAS;AAAA,IAAA;AAAA,IAEX,KAAK;AAAA,MACH,MAAM,CAAC,QAAQ,QAAQ,MAAM;AAAA,MAC7B,SAAS;AAAA,IAAA;AAAA,IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAkBA,MAAM,iCAAiC,CAAC,UAA6B;AACnE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MACE,OAAO,UAAU,YACjB,CAAC,OAAO,MAAM,KAAK,KACnB,OAAO,SAAS,KAAK,KACrB,OAAO,UAAU,KAAK;AAEtB,WAAO;AACT,MAAI;AACF,UAAM,QAAQ,IAAI,IAAI,MAAM,UAAU;AACtC,QAAI,MAAM,QAAQ,CAAC,MAAM,MAAM,SAAA,EAAY,QAAO;AAClD,WAAO;AAAA,EACT,SAAS,GAAG;AACV,WAAO,aAAa,QAAQ,QAAQ;AAAA,EACtC;AACF;AAEA,MAAM,2BAA2B,CAC/B,UACG;AACH,MAAI,gBAAgB,OAAO,SAAS,SAAS,MAAO,QAAO;AAC3D,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,MAAM,8BAA8B;AAC3E,SAAO,+BAA+B,KAAK;AAC7C;AAqBA,MAAM,EAAE,WAAW,uBAAuB,OAAO,sBAAsB;AAAA,EACrE;AAAA,IACE,GAAG,0BAAA;AAAA,EAA0B;AAAA,EAE/B;AAAA,IACE,qBAAqB,CAAC,UACpB,yBAAyB,KAAK;AAAA,IAChC,sBAAsB,CAAC,UACrB,yBAAyB,KAAK;AAAA,IAChC,GAAG;AAAA,EAAA;AAAA,EAEL;AACF;AA2CA,MAAM,eAAe,CAAC,UAA0C;AAC9D,MAAI;AACF,WAAO,IAAI,IAAI,MAAM,UAAU;AAAA,EACjC,SAAS,OAAgB;AACvB,WAAO,IAAI,MAAM,wBAAwB;AAAA,MACvC,OAAO,iBAAiB,QAAQ,QAAQ;AAAA,IAAA,CACzC;AAAA,EACH;AACF;AAEA,MAAM,aAAa,CACjB,OACA,KACA,QACG;AACH,MAAI,CAAC,yBAAyB,KAAK,EAAG,QAAO;AAC7C,MAAI,gBAAgB,OAAO,SAAS,SAAS,MAAO,QAAO;AAC3D,MAAI,gBAAgB,OAAO,OAAO,gBAAgB,OAAO,IAAK,QAAO;AACrE,MAAI;AACF,UAAM,WAAW,gBAAgB,OAAO,MAAM,MAAM,IAAI,IAAI,IAAI,UAAU;AAC1E,UAAM,WAAW,gBAAgB,OAAO,MAAM,MAAM,IAAI,IAAI,IAAI,UAAU;AAC1E,UAAM,aAAa,MAAM,QAAQ,KAAK,IAClC,MAAM,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,IAChC,aAAa,KAAK;AACtB,QAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,aAAO,WAAW,MAAM,CAAC,MAAM;AAG7B,YAAI,aAAa,MAAO,QAAO;AAC/B,YAAI,YAAY,EAAE,IAAI,QAAQ,EAAG,QAAO;AACxC,YAAI,YAAY,EAAE,IAAI,QAAQ,EAAG,QAAO;AACxC,eAAO;AAAA,MACT,CAAC;AAAA,IACH,OAAO;AAGL,UAAI,sBAAsB,MAAO,QAAO;AACxC,UAAI,YAAY,WAAW,IAAI,QAAQ,EAAG,QAAO;AACjD,UAAI,YAAY,WAAW,IAAI,QAAQ,EAAG,QAAO;AACjD,aAAO;AAAA,IACT;AAAA,EACF,QAAQ;AAGN,WAAO;AAAA,EACT;AACF;AAEO,MAAM,aAAa,CACxB,OACA,WAAoB,SAC2C;AAC/D,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MACJ,IAAI,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,EAClC,OAAO,CAAC,MAAM,MAAM,UAAa,MAAM,IAAI;AAAA,EAChD;AACA,MAAI,gBAAgB,OAAO,SAAS,SAAS,MAAO,QAAO;AAC3D,MAAI;AACF,UAAM,QAAQ,IAAI,IAAI,MAAM,UAAU;AACtC,QAAI,UAAU;AACZ,aAAO,MAAM,QAAQ,CAAC;AAAA,IACxB;AAEA,QAAI,MAAM,GAAG,OAAO,gBAAgB,KAAK,MAAM,GAAG,OAAO,gBAAgB,GAAG;AAC1E,aAAO,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAChC;AACA,WAAO,aAAa,OAAO,QAAQ,OAAO,SAAS,MAAM,QAAQ,CAAC,CAAC,IAAI,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,EAChG,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,MAAM,eAAe,CACnB,UACyC;AACzC,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MACJ,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,EAC1B,OAAO,CAAC,MAAM,MAAM,UAAa,MAAM,IAAI;AAAA,EAChD;AACA,MAAI,gBAAgB,OAAO,SAAS,SAAS,MAAO,QAAO;AAC3D,MAAI;AACF,UAAM,QAAQ,IAAI,IAAI,MAAM,UAAU;AACtC,WAAO,MAAM,QAAQ,CAAC;AAAA,EACxB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAkDO,MAAM,eAAe,gBAAgB;AAAA,EAC1C,MAAM;AAAA,EACN,OAAO,sBAAA;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,MAAM,SAAS;AAC5B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,OAAO,KAAK;AAChB,UAAM,YAAyB,CAAC,UAAU,SAAS;AACjD,cAAQ,OAAA;AAAA,QACN,KAAK;AAAA,QACL,KAAK,sBAAsB;AACzB,gBAAM,UAAU,KAAK;AAAA,YAAM,CAAC,MAC1B;AAAA,cACE;AAAA,cACA,MAAM;AAAA,cACN,MAAM;AAAA,YAAA;AAAA,UACR;AAEF,cAAI,CAAC,QAAS;AAEd,iBAAO,KAAK,OAAO,GAAG,KAAK,IAAI,CAAC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,CAAC;AAAA,QACtE;AAAA,QAEA;AAEE,iBAAO,KAAK,OAAO,GAAG,IAAI;AAAA,MAAA;AAAA,IAEhC;AACA,UAAM,8BAA8B,CAClC,UACG;AACH,UAAI,gBAAgB,OAAO,MAAM,qBAAqB,EAAG;AACzD,YAAM,WAAW,WAAW,OAAO,MAAM,QAAQ;AACjD,UAAI,CAAC,WAAW,UAAU,MAAM,KAAK,MAAM,GAAG,EAAG;AACjD,YAAM,qBAAqB,EAAE,QAAQ;AAAA,IACvC;AACA,UAAM,8BAA8B,CAClC,UACG;AACH,UAAI,gBAAgB,OAAO,MAAM,sBAAsB,EAAG;AAC1D,YAAM,WAAW,WAAW,OAAO,MAAM,QAAQ;AACjD,UAAI,CAAC,WAAW,UAAU,MAAM,KAAK,MAAM,GAAG,EAAG;AACjD,YAAM,sBAAsB,EAAE,QAAQ;AAAA,IACxC;AACA,UAAM,sBAAsB,SAAS,MAAM,aAAa,WAAW,KAAK,CAAC;AACzE,UAAM,cAAc,SAA+C,MAAM;AACvE,aAAO,CAAC,QAA2B;AACjC,YAAI,CAAC,+BAA+B,GAAG,EAAG,QAAO;AACjD,YAAI;AACF,gBAAM,QAAQ,IAAI,IAAI,IAAI,UAAU;AAEpC,iBAAO,gBAAgB,OAAO,OAAO,KAAK;AAAA,QAC5C,QAAQ;AACN,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,cAAkF;AAAA,MACtF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,oBAAoB,OAAO,KAAK,EAAE,kBAAkB;AAAA,MACpD,kBAAkB,OAAO,KAAK,EAAE,gBAAgB;AAAA,MAChD,uBAAuB,OAAO,KAAK,EAAE,qBAAqB;AAAA,MAC1D,iBAAiB,OAAO,KAAK,EAAE,eAAe;AAAA,MAC9C,wBAAwB,OAAO,KAAK,EAAE,sBAAsB;AAAA,MAC5D,mBAAmB,OAAO,KAAK,EAAE,iBAAiB;AAAA,MAClD,uBAAuB,OAAO,KAAK,EAAE,qBAAqB;AAAA,MAC1D,mBAAmB,OAAO,KAAK,EAAE,iBAAiB;AAAA,IAOpD;AACA,UAAM,4BAA4B;AAAA,MAAgC,MAChE,+BAA+B;AAAA,QAC7B,SAAS,QAAQ;AAAA,QACjB,UAAU,SAAS;AAAA,QACnB,OAAO,MAAM;AAAA,QACb,eAAe,cAAc;AAAA,QAC7B,WAAW,UAAU;AAAA,QACrB,MAAM,KAAK;AAAA,QACX,OAAO,MAAM;AAAA,QACb,UAAU,SAAS;AAAA,QACnB,YAAY,WAAW;AAAA,QACvB,OAAO,MAAM;AAAA,QACb,OAAO,MAAM;AAAA,QACb,UAAU,SAAS;AAAA,QACnB,UAAU,SAAS;AAAA,QACnB,SAAS,QAAQ;AAAA,QACjB,OAAO,UAAU;AAAA,QACjB,OAAO,MAAM;AAAA,QACb,IAAI,GAAG;AAAA,QACP,WAAW,UAAU;AAAA,QACrB,OAAO,MAAM;AAAA,QACb,MAAM,KAAK;AAAA,QACX,WAAW,UAAU;AAAA,QACrB,aAAa,YAAY;AAAA,QACzB,MAAM,KAAK;AAAA,QACX,gBAAgB,eAAe;AAAA,QAC/B,UAAU,SAAS;AAAA,QACnB,WAAW,UAAU;AAAA,QACrB,SAAS,QAAQ;AAAA,QACjB,WAAW,UAAU;AAAA,QACrB,gBAAgB,eAAe;AAAA,QAC/B,QAAQ,OAAO;AAAA,QACf,QAAQ,OAAO;AAAA,QACf,uBAAuB,sBAAsB;AAAA,QAC7C,QAAQ,OAAO;AAAA,QACf,MAAM,KAAK;AAAA,QACX,OAAO,MAAM;AAAA,QACb,QAAQ,OAAO;AAAA,QACf,UAAU,SAAS;AAAA,QACnB,SAAS,QAAQ;AAAA,MAAA,CAClB;AAAA,IAAA;AAEH,UAAM,0BAA0B;AAAA,MAAS,MACvC,eAAe,UAAU,UAAU,cAAc,QAAQ,aAAa;AAAA,IAAA;AAExE,UAAM,0BAA0B;AAAA,MAAS,MACvC,eAAe,UAAU,UAAU,cAAc,QAAQ,WAAW;AAAA,IAAA;AAEtE,UAAM,4BAA4B;AAAA,MAAS,MACzC,eAAe,UAAU,UAAU,YAAY;AAAA,IAAA;AAEjD,UAAM,qCAAqC;AAAA,MAAS,MAClD,eAAe,UAAU,YAAY,SAAS;AAAA,IAAA;AAEhD,UAAM,6BAA6B,SAAS,MAAM,SAAS,SAAS,SAAS,KAAK;AAClF,UAAM,iBAAiB,SAAS,MAAM;AACpC,YAAM,YAAY,KAAK,SAAS;AAChC,UAAI,aAAa,EAAG,QAAO;AAC3B,aAAO,KAAK,MAAM,SAAS,KAAK;AAAA,IAClC,CAAC;AACD,UAAM,sBAA2C,CAAC;AAAA,MAChD,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IAAA,MACI;AACJ,YAAM,cAAc,SAAS,MAAM;AACjC,YAAI,2BAA2B,MAAO,QAAO;AAC7C,cAAM,QAAQ,aAAa,cAAc,UAA+B;AACxE,YAAI,iBAAiB,MAAO,QAAO;AACnC,cAAM,WAAW,gBAAgB,OAAO,MAAM,MAAM,SAAY,aAAa,MAAM,GAAG;AACtF,YAAI,oBAAoB,MAAO,QAAO;AACtC,YAAI,gBAAgB,OAAO,SAAU,QAAO;AAC5C,eAAO,MAAM,IAAI,eAAe,KAAK,EAAE,IAAI,QAAQ;AAAA,MACrD,CAAC;AACD,YAAM,cAAc,SAAS,MAAM;AACjC,YAAI,2BAA2B,MAAO,QAAO;AAC7C,cAAM,QAAQ,aAAa,cAAc,UAA+B;AACxE,YAAI,iBAAiB,MAAO,QAAO;AACnC,cAAM,WAAW,gBAAgB,OAAO,MAAM,MAAM,SAAY,aAAa,MAAM,GAAG;AACtF,YAAI,oBAAoB,MAAO,QAAO;AACtC,YAAI,gBAAgB,OAAO,SAAU,QAAO;AAC5C,eAAO,MAAM,IAAI,eAAe,KAAK,EAAE,IAAI,QAAQ;AAAA,MACrD,CAAC;AACD,YAAM,gBAAgB,QAA2B,aAAa,KAAK;AACnE,YAAM,gBAAgB,QAA2B,aAAa,KAAK;AACnE,YAAM,uBAAuB,MAAM;AACjC,cAAM,YAAY;AAAA,UAChB,OAAO;AAAA,YACL,SAAS,CAAC,MAAkB,EAAE,gBAAA;AAAA,YAC9B,aAAa,CAAC,MAAoB;AAChC,oBAAM,KAAK,EAAE;AACb,kBAAI,sBAAsB,EAAE,SAAS;AACrC,gBAAE,eAAA;AACF,gBAAE,gBAAA;AAAA,YACJ;AAAA,YACA,eAAe,CAAC,MAAoB;AAClC,oBAAM,KAAK,EAAE;AACb,kBAAI,kBAAkB,EAAE,SAAS;AACjC,gBAAE,eAAA;AACF,gBAAE,gBAAA;AAEF,kBAAI,YAAY,OAAO;AACrB,sBAAM,UAAU,aAAa,cAAc,UAA+B;AAC1E,oBAAI,EAAE,mBAAmB,QAAQ;AAC/B,gCAAc,qBAAqB,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,gBAChE;AAAA,cACF;AAAA,YACF;AAAA,YACA,iBAAiB,CAAC,MAAoB;AACpC,oBAAM,KAAK,EAAE;AACb,kBAAI,sBAAsB,EAAE,SAAS;AAAA,YACvC;AAAA,UAAA;AAAA,QACF;AAGF,eAAO;AAAA;AAAA,UAEH,cAAc,SAAS;AAAA,YACvB,EAAE,MAAM;AAAA,UACN,UAAU,CAAC,YAAY;AAAA,UACvB,MAAM;AAAA,UACN,QAAQ,mCAAmC;AAAA,UAC3C,MAAM,wBAAwB;AAAA,UAC9B,MAAM,0BAA0B;AAAA,UAChC,UAAU;AAAA,UACV,GAAG,UAAU;AAAA,QAAA,CACd;AAAA,MACP;AACA,YAAM,uBAAuB,MAAM;AACjC,cAAM,YAAY;AAAA,UAChB,OAAO;AAAA,YACL,SAAS,CAAC,MAAkB,EAAE,gBAAA;AAAA,YAC9B,aAAa,CAAC,MAAoB;AAChC,oBAAM,KAAK,EAAE;AACb,kBAAI,sBAAsB,EAAE,SAAS;AACrC,gBAAE,eAAA;AACF,gBAAE,gBAAA;AAAA,YACJ;AAAA,YACA,eAAe,CAAC,MAAoB;AAClC,oBAAM,KAAK,EAAE;AACb,kBAAI,kBAAkB,EAAE,SAAS;AACjC,gBAAE,eAAA;AACF,gBAAE,gBAAA;AAEF,kBAAI,YAAY,OAAO;AACrB,sBAAM,UAAU,aAAa,cAAc,UAA+B;AAC1E,oBAAI,EAAE,mBAAmB,QAAQ;AAC/B,gCAAc,qBAAqB,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,gBAChE;AAAA,cACF;AAAA,YACF;AAAA,YACA,iBAAiB,CAAC,MAAoB;AACpC,oBAAM,KAAK,EAAE;AACb,kBAAI,sBAAsB,EAAE,SAAS;AAAA,YACvC;AAAA,UAAA;AAAA,QACF;AAGF,eAAO;AAAA;AAAA,UAEH,cAAc,SAAS;AAAA,YACvB,EAAE,MAAM;AAAA,UACN,UAAU,CAAC,YAAY;AAAA,UACvB,MAAM;AAAA,UACN,QAAQ,mCAAmC;AAAA,UAC3C,MAAM,wBAAwB;AAAA,UAC9B,MAAM,0BAA0B;AAAA,UAChC,UAAU;AAAA,UACV,GAAG,UAAU;AAAA,QAAA,CACd;AAAA,MACP;AACA,YAAM,kBAAkB,MAAM;AAC5B,YAAI,eAAe,UAAU,SAAS;AACpC,iBAAO,EAAE,OAAO,EAAE,OAAO,6BAA6B;AAAA,YACpD,EAAE,UAAU,EAAE,UAAU,MAAM;AAAA,YAC9B,qBAAA;AAAA,UAAqB,CACtB;AAAA,QACH,WAAW,CAAC,QAAQ,SAAS,eAAe,UAAU,UAAU;AAC9D,iBAAO;AAAA,YACL,CAAC,UAAU,SAAS,CAAC,MAAM,SAAS,EAAE,UAAU,EAAE,UAAU,MAAM;AAAA,YAClE,EAAE,OAAO,EAAE,OAAO,6BAA6B;AAAA,cAC7C,qBAAA;AAAA,cACA,EAAE,UAAU,EAAE,UAAU,eAAe,UAAU,WAAW;AAAA,cAC5D,qBAAA;AAAA,YAAqB,CACtB;AAAA,UAAA;AAAA,QAEL;AACA,eAAO;AAAA,MACT;AACA,YAAM,mBAAmB,MAAM;AAC7B,YAAI,eAAe,UAAU,SAAS;AACpC,iBAAO,EAAE,OAAO,EAAE,OAAO,6BAA6B;AAAA,YACpD,qBAAA;AAAA,YACA,EAAE,UAAU,EAAE,UAAU,MAAM;AAAA,UAAA,CAC/B;AAAA,QACH,WAAW,QAAQ,SAAS,eAAe,UAAU,UAAU;AAC7D,iBAAO;AAAA,YACL,EAAE,OAAO,EAAE,OAAO,6BAA6B;AAAA,cAC7C,qBAAA;AAAA,cACA,EAAE,UAAU,EAAE,UAAU,eAAe,UAAU,WAAW;AAAA,cAC5D,qBAAA;AAAA,YAAqB,CACtB;AAAA,YACD,CAAC,UAAU,SAAS,CAAC,MAAM,SAAS,EAAE,UAAU,EAAE,UAAU,KAAA,CAAM;AAAA,UAAA;AAAA,QAEtE;AACA,eAAO;AAAA,MACT;AACA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,UACE,GAAG,0BAA0B;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,aACH,KACA;AAAA,YACE;AAAA,YACA;AAAA,cACE,2BAA2B,eAAe,UAAU;AAAA,cACpD,8BAA8B,MAAM;AAAA,cACpC,yBAAyB,MAAM;AAAA,cAC/B,2BAA2B,MAAM;AAAA,cACjC,yBAAyB,eAAe,UAAU;AAAA,cAClD,2BAA2B,eAAe,UAAU;AAAA,YAAA;AAAA,YAEtD,0BAA0B,MAAM;AAAA,UAAA;AAAA,UAEtC,aAAa,aAAa,OAAO,0BAA0B,MAAM;AAAA,UACjE,WAAW;AAAA,UACX,WAAW,CAAC,MAAqB;AAC/B,gBAAI,EAAE,QAAQ,WAAW,YAAY;AACnC,6BAAe,MAAM,KAAK;AAAA,YAC5B,WAAW,CAAC,WAAW,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG;AACnD,gBAAE,eAAA;AACF,oBAAM,UAAU,aAAa,cAAc,UAA+B;AAC1E,kBAAI,EAAE,mBAAmB,QAAQ;AAC/B,oBAAI,EAAE,QAAQ,aAAa,YAAY,OAAO;AAC5C,gCAAc,qBAAqB,EAAE,QAAQ,IAAI,CAAC,EAAE,UAAU;AAAA,gBAChE,WAAW,EAAE,QAAQ,eAAe,YAAY,OAAO;AACrD,gCAAc,qBAAqB,EAAE,QAAQ,IAAI,CAAC,EAAE,UAAU;AAAA,gBAChE;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QAAA;AAAA;AAAA,QAGF;AAAA,UACE,GAAG;AAAA,UACH,gBAAgB,IAAI,SAAoC;AAAA,YACtD,MAAM,cAAc,IAAI,GAAG,IAAI;AAAA,YAC/B,gBAAA;AAAA,UAAgB;AAAA,UAElB,iBAAiB,IAAI,SAAqC;AAAA,YACxD,iBAAA;AAAA,YACA,MAAM,eAAe,IAAI,GAAG,IAAI;AAAA,UAAA;AAAA,QAClC;AAAA,MACF;AAAA,IAEJ;AACA,UAAM,EAAE,aAAa;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,IAAA;AAEtB,WAAO;AAAA,EACT;AACF,CAAC;"}
@@ -1,12 +1,12 @@
1
1
  import { a as useI18n } from "./ioc-BcUnOms_.mjs";
2
2
  import { S as SvgIcon } from "./index-B-yLwEN9.mjs";
3
- import { u as useFieldComposer } from "./field_composer-Bu3olAAh.mjs";
3
+ import { u as useFieldComposer } from "./field_composer-DDrc5sRp.mjs";
4
4
  import { p as propsAndEmitsFactory, s as stripUndefinedValuesFromObject } from "./utils-ZFyctPhc.mjs";
5
5
  import { o as omit$1, b as IconValue, a as pick, f as makeVFieldProps, g as makeVInputProps$1 } from "./vendor-nhtio-vuetifiable-Bu8PvbAd.mjs";
6
6
  import { ref, useId, createVNode, mergeProps, toRef, createElementVNode, Fragment, normalizeStyle, normalizeClass, h, defineComponent, toRefs, computed } from "vue";
7
- import { s as useFocus, g as VInput, t as VCheckboxBtn, o as makeVInputProps, v as makeVCheckboxBtnProps, j as VSelectionControl, k as makeVSelectionControlProps, c as commonEmitsValidators, m as makeCommonResourcefulFieldProps, w as VSelect } from "./common-CmSn9ovn.mjs";
7
+ import { s as useFocus, g as VInput, t as VCheckboxBtn, o as makeVInputProps, v as makeVCheckboxBtnProps, j as VSelectionControl, k as makeVSelectionControlProps, c as commonEmitsValidators, m as makeCommonResourcefulFieldProps, w as VSelect } from "./common-Cbhwse5j.mjs";
8
8
  import { p as forwardRefs, g as mdiMenuDown, h as mdiCheckboxBlankCircleOutline, i as mdiCircleSlice8, G as mdiCheckboxIntermediateVariant, H as mdiCheckboxBlankOutline, I as mdiCheckboxMarked, a as mdiClose } from "./mdi-BMAWtQdN.mjs";
9
- import { V as VRadioGroup, a as VRadio } from "./VRadioGroup-CeYTmvum.mjs";
9
+ import { V as VRadioGroup, a as VRadio } from "./VRadioGroup-DBANAUmU.mjs";
10
10
  import { g as genericComponent, p as propsFactory, u as useProxiedModel, e as useRender, O as filterInputAttrs, o as omit, _ as useLoader, $ as SUPPORTS_MATCH_MEDIA, f as VDefaultsProvider, a0 as VScaleTransition, d as VIcon, a1 as LoaderSlot, b as VProgressCircular } from "./display-C8bGXYiq.mjs";
11
11
  const makeVCheckboxProps = propsFactory({
12
12
  ...makeVInputProps(),
@@ -641,4 +641,4 @@ export {
641
641
  RBooleanFieldValue as a,
642
642
  RBooleanFieldRenderable as b
643
643
  };
644
- //# sourceMappingURL=boolean-Cg0-6F79.mjs.map
644
+ //# sourceMappingURL=boolean-DmdtYaiT.mjs.map