@nhtio/lucid-resourceful-vue-components 0.1.0-master-0d659775 → 0.1.0-master-9802f3a9
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.
- package/{VChip-DWwcL8cL.mjs → VChip-COQck2AV.mjs} +2 -2
- package/{VChip-DWwcL8cL.mjs.map → VChip-COQck2AV.mjs.map} +1 -1
- package/{VDatePicker-C7_ULYfO.mjs → VDatePicker-DJFZcev9.mjs} +4 -4
- package/{VDatePicker-C7_ULYfO.mjs.map → VDatePicker-DJFZcev9.mjs.map} +1 -1
- package/{VDialog-BVRDhoD7.mjs → VDialog-JGibK5Rl.mjs} +3 -3
- package/{VDialog-BVRDhoD7.mjs.map → VDialog-JGibK5Rl.mjs.map} +1 -1
- package/{VEmptyState-C2B0Znk9.mjs → VEmptyState-DKODfacQ.mjs} +2 -2
- package/{VEmptyState-C2B0Znk9.mjs.map → VEmptyState-DKODfacQ.mjs.map} +1 -1
- package/{VHover-DnB1GlWG.mjs → VHover-DGMoUvi7.mjs} +3 -3
- package/{VHover-DnB1GlWG.mjs.map → VHover-DGMoUvi7.mjs.map} +1 -1
- package/{VListItem-DojRgtpe.mjs → VListItem-ZmExdT37.mjs} +3 -3
- package/{VListItem-DojRgtpe.mjs.map → VListItem-ZmExdT37.mjs.map} +1 -1
- package/{VMenu-D2biKkpd.mjs → VMenu-DCDIKpqX.mjs} +3 -3
- package/{VMenu-D2biKkpd.mjs.map → VMenu-DCDIKpqX.mjs.map} +1 -1
- package/{VPicker-dxKS1KK4.mjs → VPicker-CAvKVtUE.mjs} +4 -4
- package/{VPicker-dxKS1KK4.mjs.map → VPicker-CAvKVtUE.mjs.map} +1 -1
- package/{VRadioGroup-lC_c6Ath.mjs → VRadioGroup-BPByWwud.mjs} +4 -4
- package/{VRadioGroup-lC_c6Ath.mjs.map → VRadioGroup-BPByWwud.mjs.map} +1 -1
- package/{VRow-BBY2gEjT.mjs → VRow-BwokRy3H.mjs} +2 -2
- package/{VRow-BBY2gEjT.mjs.map → VRow-BwokRy3H.mjs.map} +1 -1
- package/{VSheet-B4SA9_dv.mjs → VSheet-CHO05eqU.mjs} +2 -2
- package/{VSheet-B4SA9_dv.mjs.map → VSheet-CHO05eqU.mjs.map} +1 -1
- package/{actions-CXhEUJp6.mjs → actions-CpgDJP6D.mjs} +12 -12
- package/{actions-CXhEUJp6.mjs.map → actions-CpgDJP6D.mjs.map} +1 -1
- package/{alert-B0j6GH3V.mjs → alert-C-iwLX_v.mjs} +11 -11
- package/{alert-B0j6GH3V.mjs.map → alert-C-iwLX_v.mjs.map} +1 -1
- package/{bigint-DXS_rVbG.mjs → bigint-DatNMKMQ.mjs} +7 -7
- package/{bigint-DXS_rVbG.mjs.map → bigint-DatNMKMQ.mjs.map} +1 -1
- package/{boolean-J55jiDD7.mjs → boolean-B0IH8K9C.mjs} +11 -11
- package/{boolean-J55jiDD7.mjs.map → boolean-B0IH8K9C.mjs.map} +1 -1
- package/{clipboard-C6YTX8YB.mjs → clipboard-DWKPq79h.mjs} +7 -7
- package/{clipboard-C6YTX8YB.mjs.map → clipboard-DWKPq79h.mjs.map} +1 -1
- package/{common-a_cd4SQg.mjs → common-Dzn-bQuK.mjs} +15 -15
- package/{common-a_cd4SQg.mjs.map → common-Dzn-bQuK.mjs.map} +1 -1
- package/components/autorefresh_controller.mjs +1 -1
- package/components/control_button.mjs +1 -1
- package/components/control_button_bar.mjs +2 -2
- package/components/control_menu.mjs +1 -1
- package/components/custom_field.mjs +1 -1
- package/components/exporter.mjs +1 -1
- package/components/fields/bigint.mjs +1 -1
- package/components/fields/boolean.mjs +1 -1
- package/components/fields/date.mjs +1 -1
- package/components/fields/date_time.mjs +1 -1
- package/components/fields/enum.mjs +1 -1
- package/components/fields/integer.mjs +1 -1
- package/components/fields/number.mjs +1 -1
- package/components/fields/string.mjs +1 -1
- package/components/fields/unsigned_integer.mjs +1 -1
- package/components/fields.mjs +9 -9
- package/components/form_with_validation.mjs +1 -1
- package/components/resourceful_alerter.mjs +1 -1
- package/components/resourceful_index.mjs +1 -1
- package/components/resourceful_record.mjs +2 -2
- package/components/resourceful_record_default_form.mjs +1 -1
- package/components/resourceful_record_form.mjs +1 -1
- package/components/sortable.mjs +1 -1
- package/components/svg_icon.mjs +1 -1
- package/components/timezone_picker.mjs +1 -1
- package/components.mjs +23 -23
- package/composables.mjs +11 -11
- package/{custom-CgyU3A_B.mjs → custom-B_tvJRGH.mjs} +7 -7
- package/{custom-CgyU3A_B.mjs.map → custom-B_tvJRGH.mjs.map} +1 -1
- package/{date-B8edF8kU.mjs → date-4kOMkpPK.mjs} +10 -10
- package/{date-B8edF8kU.mjs.map → date-4kOMkpPK.mjs.map} +1 -1
- package/{date_time-BNsYnH-e.mjs → date_time-D96QVf1U.mjs} +18 -18
- package/{date_time-BNsYnH-e.mjs.map → date_time-D96QVf1U.mjs.map} +1 -1
- package/{display-pfXaBUr6.mjs → display-D5DX6q0x.mjs} +4 -4
- package/{display-pfXaBUr6.mjs.map → display-D5DX6q0x.mjs.map} +1 -1
- package/{display-CHspVOz6.mjs → display-XSB3T9Jj.mjs} +25 -25
- package/{display-CHspVOz6.mjs.map → display-XSB3T9Jj.mjs.map} +1 -1
- package/{enum-DoxJn16e.mjs → enum-0BP9v0N5.mjs} +9 -9
- package/{enum-DoxJn16e.mjs.map → enum-0BP9v0N5.mjs.map} +1 -1
- package/{exceptions-BeFuVcrH.mjs → exceptions-eIayR6I-.mjs} +2 -2
- package/{exceptions-BeFuVcrH.mjs.map → exceptions-eIayR6I-.mjs.map} +1 -1
- package/exceptions.mjs +2 -2
- package/factories.mjs +2 -2
- package/{field_composer-CPqM1aSV.mjs → field_composer-ohZKjFvR.mjs} +3 -3
- package/{field_composer-CPqM1aSV.mjs.map → field_composer-ohZKjFvR.mjs.map} +1 -1
- package/{form-BkQlevYR.mjs → form-Bn6xP2j6.mjs} +15 -15
- package/{form-BkQlevYR.mjs.map → form-Bn6xP2j6.mjs.map} +1 -1
- package/{guards-D0G8CU2m.mjs → guards-2UyYIEIu.mjs} +2 -2
- package/{guards-D0G8CU2m.mjs.map → guards-2UyYIEIu.mjs.map} +1 -1
- package/guards.mjs +4 -4
- package/helpers.mjs +12 -12
- package/{http-C15bx-Gn.mjs → http-BCSx8rC5.mjs} +6 -6
- package/{http-C15bx-Gn.mjs.map → http-BCSx8rC5.mjs.map} +1 -1
- package/{http-ChBUYgv8.mjs → http-BPAApU10.mjs} +2 -2
- package/{http-ChBUYgv8.mjs.map → http-BPAApU10.mjs.map} +1 -1
- package/http.mjs +1 -1
- package/{index-DHoLuRuJ.mjs → index-BACipeG5.mjs} +6 -6
- package/{index-DHoLuRuJ.mjs.map → index-BACipeG5.mjs.map} +1 -1
- package/{index-De0W4KPF.mjs → index-BL6_XmCt.mjs} +8 -8
- package/{index-De0W4KPF.mjs.map → index-BL6_XmCt.mjs.map} +1 -1
- package/{index-CduefDwU.mjs → index-BPddr1wp.mjs} +3 -3
- package/{index-CduefDwU.mjs.map → index-BPddr1wp.mjs.map} +1 -1
- package/{index-CvhhGjZn.mjs → index-BfgMbbzT.mjs} +3 -3
- package/{index-CvhhGjZn.mjs.map → index-BfgMbbzT.mjs.map} +1 -1
- package/{index-DLzoBhUb.mjs → index-BzKOotZB.mjs} +4 -4
- package/{index-DLzoBhUb.mjs.map → index-BzKOotZB.mjs.map} +1 -1
- package/{index-DGWcBN5e.mjs → index-CGcmZuao.mjs} +15 -15
- package/{index-DGWcBN5e.mjs.map → index-CGcmZuao.mjs.map} +1 -1
- package/{index-CHELe70a.mjs → index-CIi2Afdj.mjs} +8 -8
- package/{index-CHELe70a.mjs.map → index-CIi2Afdj.mjs.map} +1 -1
- package/{index-DcCK7tW-.mjs → index-dd1icY6k.mjs} +43 -43
- package/{index-DcCK7tW-.mjs.map → index-dd1icY6k.mjs.map} +1 -1
- package/{index-BcDX9w4T.mjs → index-omu1xByg.mjs} +8 -8
- package/{index-BcDX9w4T.mjs.map → index-omu1xByg.mjs.map} +1 -1
- package/index.mjs +37 -37
- package/{integer-BWdmDp7S.mjs → integer-DUt4-3uq.mjs} +3 -3
- package/{integer-BWdmDp7S.mjs.map → integer-DUt4-3uq.mjs.map} +1 -1
- package/{ioc-Q-KAX6x1.mjs → ioc-De3kv3aq.mjs} +2 -2
- package/{ioc-Q-KAX6x1.mjs.map → ioc-De3kv3aq.mjs.map} +1 -1
- package/ioc.mjs +1 -1
- package/{mdi-jw9Ee7p6.mjs → mdi-CicdOYKA.mjs} +15 -15
- package/{mdi-jw9Ee7p6.mjs.map → mdi-CicdOYKA.mjs.map} +1 -1
- package/{number-Chf-qQs7.mjs → number-UcQrSUBH.mjs} +8 -8
- package/{number-Chf-qQs7.mjs.map → number-UcQrSUBH.mjs.map} +1 -1
- package/package.json +16 -16
- package/{props-fFnbtBgH.mjs → props-DtG7gC-5.mjs} +6 -6
- package/{props-fFnbtBgH.mjs.map → props-DtG7gC-5.mjs.map} +1 -1
- package/{props-eYGYq1uo.mjs → props-KjN-Kdb9.mjs} +4 -4
- package/{props-eYGYq1uo.mjs.map → props-KjN-Kdb9.mjs.map} +1 -1
- package/{renderers-bwWUs06k.mjs → renderers-B4GBzuIN.mjs} +14 -14
- package/{renderers-bwWUs06k.mjs.map → renderers-B4GBzuIN.mjs.map} +1 -1
- package/{string-D-UsgMTx.mjs → string-C4_hGKOb.mjs} +13 -13
- package/{string-D-UsgMTx.mjs.map → string-C4_hGKOb.mjs.map} +1 -1
- package/{unsigned_integer-7R2vw_Qn.mjs → unsigned_integer-59LqwDCe.mjs} +4 -4
- package/{unsigned_integer-7R2vw_Qn.mjs.map → unsigned_integer-59LqwDCe.mjs.map} +1 -1
- package/{utils-DehfJ8pT.mjs → utils-C5k3feJf.mjs} +2 -2
- package/{utils-DehfJ8pT.mjs.map → utils-C5k3feJf.mjs.map} +1 -1
- package/{validation-41gHTtyY.mjs → validation-D4B5S8pa.mjs} +5 -5
- package/{validation-41gHTtyY.mjs.map → validation-D4B5S8pa.mjs.map} +1 -1
- package/{vendor-nhtio-vuetifiable-CS-KbH1h.mjs → vendor-nhtio-vuetifiable-D1pLdLSx.mjs} +16 -16
- package/{vendor-nhtio-vuetifiable-CS-KbH1h.mjs.map → vendor-nhtio-vuetifiable-D1pLdLSx.mjs.map} +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-B0j6GH3V.mjs","sources":["../src/private/ux/alert.ts"],"sourcesContent":["/* eslint-disable vue/one-component-per-file */\nimport { SvgIcon } from '../svg-icon'\nimport { useI18n, useBrowser } from '../ioc'\nimport { useScopedDisplay } from './display'\nimport { VImg } from 'vuetify/components/VImg'\nimport { useLocale, useDisplay } from 'vuetify'\nimport { isHTMLElement } from '../common/guards'\nimport { VCard } from 'vuetify/components/VCard'\nimport { makeIdentifier } from '../common/utils'\nimport { ControlButton } from '../control-button'\nimport { VDialog } from 'vuetify/components/VDialog'\nimport { pick } from '@nhtio/vuetifiable/util/helpers'\nimport { mdiCheck, mdiClose, mdiOctagon } from '@mdi/js'\nimport { propsAndEmitsFactory } from '../common/factories'\nimport { default as infoSvg } from '../icons/info.svg?url'\nimport { default as errorSvg } from '../icons/error.svg?url'\nimport { useRender } from '@nhtio/vuetifiable/util/useRender'\nimport { TypedEventEmitter } from '@nhtio/tiny-typed-emitter'\nimport { default as successSvg } from '../icons/success.svg?url'\nimport { default as warningSvg } from '../icons/warning.svg?url'\nimport { IconValue } from '@nhtio/vuetifiable/composables/icons'\nimport { VContainer, VRow, VCol } from 'vuetify/components/VGrid'\nimport { default as questionSvg } from '../icons/question.svg?url'\nimport { makeVEmptyStateProps } from '@nhtio/vuetifiable/components/VEmptyState/VEmptyState'\nimport { defineComponent, h, isRef, ref, toRefs, computed, toValue, getCurrentInstance } from 'vue'\nimport type { EventMap } from '@nhtio/tiny-typed-emitter'\nimport type { makeVImgProps } from '@nhtio/vuetifiable/components/VImg/VImg'\nimport type { makeVRowProps } from '@nhtio/vuetifiable/components/VGrid/VRow'\nimport type { makeVCardProps } from '@nhtio/vuetifiable/components/VCard/VCard'\nimport type { makeVDialogProps } from '@nhtio/vuetifiable/components/VDialog/VDialog'\nimport type { makeVContainerProps } from '@nhtio/vuetifiable/components/VGrid/VContainer'\nimport type { ExtractPublicPropTypes, MaybeRef, ComponentPublicInstance, PropType } from 'vue'\n\ntype VEmptyStatePublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVEmptyStateProps>>\nexport type VImgPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVImgProps>>\ntype VDialogPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVDialogProps>>\ntype VCardPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVCardProps>>\ntype VContainerPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVContainerProps>>\ntype VRowPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVRowProps>>\ntype ScopedDisplayInstance = ReturnType<typeof useScopedDisplay>\n\n// type PropertiesOfRenderVNode = Parameters<typeof h>\n// type AlertOptionRenderable = PropertiesOfRenderVNode[0] | (() => PropertiesOfRenderVNode[0])\n\nexport type TernaryOperator = boolean | null\n\nexport type AlertIcon =\n | 'info'\n | 'error'\n | 'success'\n | 'warning'\n | 'question'\n | NonNullable<VImgPublicProps['src']>\n\nexport interface AlertOptions {\n icon: MaybeRef<AlertIcon>\n headline?: MaybeRef<VEmptyStatePublicProps['headline']>\n title?: MaybeRef<VEmptyStatePublicProps['title']>\n text?: MaybeRef<VEmptyStatePublicProps['text']>\n showConfirmButton?: MaybeRef<boolean>\n showDenyButton?: MaybeRef<boolean>\n showCancelButton?: MaybeRef<boolean>\n confirmButtonCta?: MaybeRef<string | undefined>\n denyButtonCta?: MaybeRef<string | undefined>\n cancelButtonCta?: MaybeRef<string | undefined>\n confirmButtonIcon?: MaybeRef<IconValue | undefined>\n denyButtonIcon?: MaybeRef<IconValue | undefined>\n cancelButtonIcon?: MaybeRef<IconValue | undefined>\n signal?: AbortSignal | undefined\n}\n\nexport interface AlertResult {\n isConfirmed: boolean\n isDenied: boolean\n isCanceled: boolean\n value: TernaryOperator\n}\n\nconst { makeProps: makeAlertComposableDialog, emits: alertComposableDialogEmits } =\n propsAndEmitsFactory(\n {\n icon: {\n type: [String, Function, Object] as PropType<AlertIcon | undefined>,\n default: undefined,\n },\n ...pick(makeVEmptyStateProps(), ['headline', 'title', 'text']),\n showConfirmButton: {\n type: Boolean,\n default: true,\n },\n showDenyButton: {\n type: Boolean,\n default: false,\n },\n showCancelButton: {\n type: Boolean,\n default: false,\n },\n confirmButtonCta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n denyButtonCta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n cancelButtonCta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n confirmButtonIcon: {\n type: IconValue,\n default: () => h(SvgIcon, { d: mdiCheck }),\n },\n denyButtonIcon: {\n type: IconValue,\n default: () => h(SvgIcon, { d: mdiClose }),\n },\n cancelButtonIcon: {\n type: IconValue,\n default: () => h(SvgIcon, { d: mdiOctagon }),\n },\n contained: {\n type: Boolean,\n default: false,\n },\n dividePrependIcon: {\n type: Boolean,\n default: true,\n },\n scopedDisplay: {\n type: Object as PropType<ReturnType<typeof useScopedDisplay>>,\n required: true,\n },\n uuid: {\n type: String as PropType<string>,\n required: true,\n },\n container: {\n type: [Object] as PropType<HTMLElement | ComponentPublicInstance | null | undefined>,\n default: undefined,\n },\n },\n {\n 'click:confirm': (uuid: string) => 'string' === typeof uuid,\n 'click:deny': (uuid: string) => 'string' === typeof uuid,\n 'click:cancel': (uuid: string) => 'string' === typeof uuid,\n },\n 'AlertComposableDialog'\n )\n\nconst AlertComposableDialog = defineComponent({\n name: 'AlertComposableDialog',\n props: makeAlertComposableDialog(),\n emits: alertComposableDialogEmits,\n setup(props, { emit }) {\n const t = useI18n()\n const {\n icon,\n headline,\n title,\n text,\n showConfirmButton,\n showDenyButton,\n showCancelButton,\n confirmButtonCta,\n denyButtonCta,\n cancelButtonCta,\n confirmButtonIcon,\n denyButtonIcon,\n cancelButtonIcon,\n contained,\n dividePrependIcon,\n scopedDisplay,\n uuid,\n container,\n } = toRefs(props)\n const { isRtl } = useLocale()\n const { width, height } = useDisplay()\n const normalizedOrientation = computed<'landscape' | 'portrait' | 'square'>(() => {\n if (container.value && contained.value) {\n return scopedDisplay.value.orientation.value\n }\n if (width.value === height.value) return 'square'\n return width.value > height.value ? 'landscape' : 'portrait'\n })\n const normalizedIcon = computed<NonNullable<VImgPublicProps['src']>>(() => {\n if ('info' === icon.value) return infoSvg\n if ('error' === icon.value) return errorSvg\n if ('success' === icon.value) return successSvg\n if ('warning' === icon.value) return warningSvg\n if ('question' === icon.value) return questionSvg\n return icon.value as NonNullable<VImgPublicProps['src']>\n })\n const normalizedConfirmButtonCta = computed(() =>\n 'string' === typeof confirmButtonCta.value\n ? confirmButtonCta.value\n : showDenyButton.value\n ? t('resourceful.alert.disposition.confirm')\n : t('resourceful.alert.disposition.ok')\n )\n const normalizedDenyButtonCta = computed(\n () => denyButtonCta.value ?? t('resourceful.alert.disposition.deny')\n )\n const normalizedCancelButtonCta = computed(\n () => cancelButtonCta.value ?? t('resourceful.alert.disposition.cancel')\n )\n const getContainerHtmlElement = (): HTMLElement | null => {\n const browser = useBrowser()\n if (!browser.ssr && isHTMLElement(container.value)) return container.value\n if (\n !browser.ssr &&\n container.value &&\n '$el' in container.value &&\n isHTMLElement(container.value.$el)\n )\n return container.value.$el\n return null\n }\n const dialogBindings = computed<VDialogPublicProps>(() => ({\n attach: contained.value && container.value ? (getContainerHtmlElement() ?? 'body') : 'body',\n absolute: contained.value,\n closeOnBack: false,\n closeOnContentClick: false,\n contained: contained.value,\n modelValue: true,\n persistent: true,\n retainFocus: true,\n scrim: true,\n maxWidth: 500,\n }))\n const cardBindings = computed<VCardPublicProps>(() => ({\n color: 'surface',\n }))\n const containerBindings = computed<VContainerPublicProps>(() => ({\n fluid: true,\n }))\n const rowBindings = computed<VRowPublicProps>(() => ({\n align: 'center',\n }))\n const imgBindings = computed<VImgPublicProps>(() => ({\n src: normalizedIcon.value,\n }))\n const actionsSlotContent = () => {\n const isReversed = true === isRtl.value || normalizedOrientation.value === 'landscape'\n let buttons = [\n showCancelButton.value\n ? h(ControlButton, {\n class: [\n {\n 'me-2': !isReversed && (showConfirmButton.value || showDenyButton.value),\n 'ms-2': isReversed && (showConfirmButton.value || showDenyButton.value),\n },\n 'mb-2',\n ],\n prependIcon: cancelButtonIcon.value,\n dividePrependIcon: dividePrependIcon.value,\n cta: normalizedCancelButtonCta.value,\n onClick: () => emit('click:cancel', uuid.value),\n color: 'surface-light',\n })\n : null,\n showDenyButton.value\n ? h(ControlButton, {\n class: [\n {\n 'me-2': !isReversed && showConfirmButton.value,\n 'ms-2': isReversed && showConfirmButton.value,\n },\n 'mb-2',\n ],\n prependIcon: denyButtonIcon.value,\n dividePrependIcon: dividePrependIcon.value,\n cta: normalizedDenyButtonCta.value,\n onClick: () => emit('click:deny', uuid.value),\n color: 'surface-light',\n })\n : null,\n showConfirmButton.value\n ? h(ControlButton, {\n class: ['mb-2'],\n prependIcon: confirmButtonIcon.value,\n dividePrependIcon: dividePrependIcon.value,\n cta: normalizedConfirmButtonCta.value,\n onClick: () => emit('click:confirm', uuid.value),\n color: 'surface-light',\n })\n : null,\n ]\n if (true === isReversed) {\n buttons = buttons.reverse()\n }\n return h(\n 'div',\n {\n class: [\n 'd-flex',\n 'w-100',\n 'flex-wrap',\n {\n 'justify-end': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n buttons\n )\n }\n const cardRef = ref<VCard | null>(null)\n useRender(() =>\n h(VDialog, dialogBindings.value, () =>\n h(\n VCard,\n {\n ref: cardRef,\n ...cardBindings.value,\n },\n () =>\n h(VContainer, containerBindings.value, () =>\n h(VRow, rowBindings.value, () => [\n normalizedOrientation.value === 'landscape'\n ? h(VCol, { cols: 4, class: ['d-flex', 'align-center'] }, () =>\n h(VImg, imgBindings.value)\n )\n : null,\n h(\n VCol,\n {\n cols: normalizedOrientation.value === 'landscape' ? 8 : 12,\n class: ['d-flex', 'flex-column', 'align-center', 'justify-center'],\n },\n () => [\n normalizedOrientation.value !== 'landscape'\n ? h(\n VRow,\n {\n justify: 'center',\n class: ['w-100'],\n },\n () => h(VCol, { cols: 6 }, () => h(VImg, imgBindings.value))\n )\n : null,\n headline.value\n ? h(\n VRow,\n {\n class: ['w-100'],\n },\n () =>\n h(\n VCol,\n {\n cols: 12,\n class: [\n 'd-flex',\n 'w-100',\n 'v-empty-state__headline',\n {\n 'justify-start': normalizedOrientation.value === 'landscape',\n 'text-start': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n () => headline.value\n )\n )\n : null,\n title.value\n ? h(\n VRow,\n {\n class: ['w-100'],\n },\n () =>\n h(\n VCol,\n {\n cols: 12,\n class: [\n 'd-flex',\n 'w-100',\n 'v-empty-state__title',\n {\n 'justify-start': normalizedOrientation.value === 'landscape',\n 'text-start': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n () => title.value\n )\n )\n : null,\n text.value\n ? h(\n VRow,\n {\n class: ['w-100'],\n },\n () =>\n h(\n VCol,\n {\n cols: 12,\n class: [\n 'd-flex',\n 'w-100',\n 'v-empty-state__text',\n {\n 'justify-start': normalizedOrientation.value === 'landscape',\n 'text-start': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n () => text.value\n )\n )\n : null,\n h(\n VRow,\n {\n class: ['w-100'],\n },\n () => h(VCol, { cols: 12 }, () => actionsSlotContent())\n ),\n ]\n ),\n ])\n )\n )\n )\n )\n return {\n normalizedOrientation,\n }\n },\n})\n\ntype AlertComposableDialogProps = ExtractPublicPropTypes<\n ReturnType<typeof makeAlertComposableDialog>\n>\n\ntype EnqueueableAlert = Omit<\n AlertComposableDialogProps,\n 'scopedDisplay' | 'contained' | 'dividePrependIcon'\n>\n\ntype AlertDialogEvents = EventMap<{\n disposition: [uuid: string, result: TernaryOperator]\n}>\n\nexport type FireAlertFn = (options: AlertOptions) => Promise<AlertResult>\n\nexport const useAlert = (\n container: MaybeRef<HTMLElement | ComponentPublicInstance | null> = null,\n contained: MaybeRef<boolean> = false,\n dividePrependIcon: MaybeRef<boolean> = true\n) => {\n const containerRef = isRef(container) ? container : ref(container)\n const scopedDisplay: ScopedDisplayInstance = useScopedDisplay(containerRef)\n const bus = new TypedEventEmitter<AlertDialogEvents>()\n const pendingAlerts = ref<EnqueueableAlert[]>([])\n const renderDialogs = () =>\n Array.from(pendingAlerts.value).map((opts) =>\n h(AlertComposableDialog, {\n ...opts,\n contained: toValue(contained),\n container: containerRef.value,\n dividePrependIcon: toValue(dividePrependIcon),\n scopedDisplay,\n key: opts.uuid,\n })\n )\n const fire: FireAlertFn = async (options: AlertOptions): Promise<AlertResult> => {\n const uuid = makeIdentifier('alert', 'alerts')\n const promise = new Promise<AlertResult>((resolve) => {\n const listener = (emittedUuid: string, result: TernaryOperator) => {\n if (emittedUuid === uuid) {\n bus.off('disposition', listener)\n resolve({\n isConfirmed: true === result,\n isDenied: false === result,\n isCanceled: null === result,\n value: result,\n })\n }\n }\n bus.on('disposition', listener)\n })\n const props: EnqueueableAlert = {\n 'icon': toValue(options.icon),\n 'headline': toValue(options.headline),\n 'title': toValue(options.title),\n 'text': toValue(options.text),\n 'showConfirmButton': toValue(options.showConfirmButton),\n 'showDenyButton': toValue(options.showDenyButton),\n 'showCancelButton': toValue(options.showCancelButton),\n 'confirmButtonCta': toValue(options.confirmButtonCta),\n 'denyButtonCta': toValue(options.denyButtonCta),\n 'cancelButtonCta': toValue(options.cancelButtonCta),\n 'confirmButtonIcon': toValue(options.confirmButtonIcon),\n 'denyButtonIcon': toValue(options.denyButtonIcon),\n 'cancelButtonIcon': toValue(options.cancelButtonIcon),\n 'uuid': uuid,\n 'onClick:cancel': () => bus.emit('disposition', uuid, null),\n 'onClick:confirm': () => bus.emit('disposition', uuid, true),\n 'onClick:deny': () => bus.emit('disposition', uuid, false),\n }\n if (options.signal) {\n if (options.signal.aborted) {\n // already aborted\n return {\n isConfirmed: false,\n isDenied: false,\n isCanceled: true,\n value: null,\n }\n }\n const abortListener = () => {\n bus.emit('disposition', uuid, null)\n }\n options.signal.addEventListener('abort', abortListener, { once: true })\n }\n pendingAlerts.value.push(props)\n const result = await promise\n const pendingAlertsIndex = pendingAlerts.value.findIndex((a) => a.uuid === uuid)\n if (pendingAlertsIndex > -1) {\n pendingAlerts.value.splice(pendingAlertsIndex, 1)\n }\n return result\n }\n return { renderDialogs, fire }\n}\n\nexport const UseAlertExample = defineComponent({\n name: 'UseAlertExample',\n setup() {\n const containerRef = ref<HTMLElement | null>(null)\n const { renderDialogs, fire } = useAlert(containerRef)\n return () =>\n h('div', { ref: containerRef }, [\n h('div', { class: ['w-100', 'd-flex'] }, [\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: errorSvg }),\n cta: 'Error',\n onClick: () =>\n fire({\n icon: 'error',\n headline: 'Error',\n title: 'This is an error alert',\n text: 'Something went wrong!',\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: infoSvg }),\n cta: 'Info',\n onClick: () =>\n fire({\n icon: 'info',\n headline: 'Info',\n title: 'This is an info alert',\n text: 'Just so you know...',\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: questionSvg }),\n cta: 'Question',\n onClick: () =>\n fire({\n icon: 'question',\n headline: 'Question',\n title: 'This is a question alert',\n text: 'Do you like questions?',\n showCancelButton: true,\n showDenyButton: true,\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: successSvg }),\n cta: 'Success',\n onClick: () =>\n fire({\n icon: 'success',\n headline: 'Success',\n title: 'This is a success alert',\n text: 'Everything is working as expected!',\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: warningSvg }),\n cta: 'Warning',\n onClick: () =>\n fire({\n icon: 'warning',\n headline: 'Warning',\n title: 'This is a warning alert',\n text: 'Be careful!',\n showCancelButton: true,\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n ]),\n renderDialogs(),\n ])\n },\n})\n\nexport const ResourcefulAlerter = defineComponent({\n name: 'ResourcefulAlerter',\n setup() {\n const current = getCurrentInstance()\n const containerRef = ref<HTMLElement | null>(null)\n const container = computed(() => current?.proxy?.$el ?? containerRef.value)\n const { renderDialogs, fire } = useAlert(container)\n useRender(() => h('div', { ref: containerRef }, [renderDialogs()]))\n return {\n fire,\n }\n },\n})\n\nexport type ResourcefulAlerter = typeof ResourcefulAlerter & ComponentPublicInstance\n"],"names":["TypedEventEmitter","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert-C-iwLX_v.mjs","sources":["../src/private/ux/alert.ts"],"sourcesContent":["/* eslint-disable vue/one-component-per-file */\nimport { SvgIcon } from '../svg-icon'\nimport { useI18n, useBrowser } from '../ioc'\nimport { useScopedDisplay } from './display'\nimport { VImg } from 'vuetify/components/VImg'\nimport { useLocale, useDisplay } from 'vuetify'\nimport { isHTMLElement } from '../common/guards'\nimport { VCard } from 'vuetify/components/VCard'\nimport { makeIdentifier } from '../common/utils'\nimport { ControlButton } from '../control-button'\nimport { VDialog } from 'vuetify/components/VDialog'\nimport { pick } from '@nhtio/vuetifiable/util/helpers'\nimport { mdiCheck, mdiClose, mdiOctagon } from '@mdi/js'\nimport { propsAndEmitsFactory } from '../common/factories'\nimport { default as infoSvg } from '../icons/info.svg?url'\nimport { default as errorSvg } from '../icons/error.svg?url'\nimport { useRender } from '@nhtio/vuetifiable/util/useRender'\nimport { TypedEventEmitter } from '@nhtio/tiny-typed-emitter'\nimport { default as successSvg } from '../icons/success.svg?url'\nimport { default as warningSvg } from '../icons/warning.svg?url'\nimport { IconValue } from '@nhtio/vuetifiable/composables/icons'\nimport { VContainer, VRow, VCol } from 'vuetify/components/VGrid'\nimport { default as questionSvg } from '../icons/question.svg?url'\nimport { makeVEmptyStateProps } from '@nhtio/vuetifiable/components/VEmptyState/VEmptyState'\nimport { defineComponent, h, isRef, ref, toRefs, computed, toValue, getCurrentInstance } from 'vue'\nimport type { EventMap } from '@nhtio/tiny-typed-emitter'\nimport type { makeVImgProps } from '@nhtio/vuetifiable/components/VImg/VImg'\nimport type { makeVRowProps } from '@nhtio/vuetifiable/components/VGrid/VRow'\nimport type { makeVCardProps } from '@nhtio/vuetifiable/components/VCard/VCard'\nimport type { makeVDialogProps } from '@nhtio/vuetifiable/components/VDialog/VDialog'\nimport type { makeVContainerProps } from '@nhtio/vuetifiable/components/VGrid/VContainer'\nimport type { ExtractPublicPropTypes, MaybeRef, ComponentPublicInstance, PropType } from 'vue'\n\ntype VEmptyStatePublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVEmptyStateProps>>\nexport type VImgPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVImgProps>>\ntype VDialogPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVDialogProps>>\ntype VCardPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVCardProps>>\ntype VContainerPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVContainerProps>>\ntype VRowPublicProps = ExtractPublicPropTypes<ReturnType<typeof makeVRowProps>>\ntype ScopedDisplayInstance = ReturnType<typeof useScopedDisplay>\n\n// type PropertiesOfRenderVNode = Parameters<typeof h>\n// type AlertOptionRenderable = PropertiesOfRenderVNode[0] | (() => PropertiesOfRenderVNode[0])\n\nexport type TernaryOperator = boolean | null\n\nexport type AlertIcon =\n | 'info'\n | 'error'\n | 'success'\n | 'warning'\n | 'question'\n | NonNullable<VImgPublicProps['src']>\n\nexport interface AlertOptions {\n icon: MaybeRef<AlertIcon>\n headline?: MaybeRef<VEmptyStatePublicProps['headline']>\n title?: MaybeRef<VEmptyStatePublicProps['title']>\n text?: MaybeRef<VEmptyStatePublicProps['text']>\n showConfirmButton?: MaybeRef<boolean>\n showDenyButton?: MaybeRef<boolean>\n showCancelButton?: MaybeRef<boolean>\n confirmButtonCta?: MaybeRef<string | undefined>\n denyButtonCta?: MaybeRef<string | undefined>\n cancelButtonCta?: MaybeRef<string | undefined>\n confirmButtonIcon?: MaybeRef<IconValue | undefined>\n denyButtonIcon?: MaybeRef<IconValue | undefined>\n cancelButtonIcon?: MaybeRef<IconValue | undefined>\n signal?: AbortSignal | undefined\n}\n\nexport interface AlertResult {\n isConfirmed: boolean\n isDenied: boolean\n isCanceled: boolean\n value: TernaryOperator\n}\n\nconst { makeProps: makeAlertComposableDialog, emits: alertComposableDialogEmits } =\n propsAndEmitsFactory(\n {\n icon: {\n type: [String, Function, Object] as PropType<AlertIcon | undefined>,\n default: undefined,\n },\n ...pick(makeVEmptyStateProps(), ['headline', 'title', 'text']),\n showConfirmButton: {\n type: Boolean,\n default: true,\n },\n showDenyButton: {\n type: Boolean,\n default: false,\n },\n showCancelButton: {\n type: Boolean,\n default: false,\n },\n confirmButtonCta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n denyButtonCta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n cancelButtonCta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n confirmButtonIcon: {\n type: IconValue,\n default: () => h(SvgIcon, { d: mdiCheck }),\n },\n denyButtonIcon: {\n type: IconValue,\n default: () => h(SvgIcon, { d: mdiClose }),\n },\n cancelButtonIcon: {\n type: IconValue,\n default: () => h(SvgIcon, { d: mdiOctagon }),\n },\n contained: {\n type: Boolean,\n default: false,\n },\n dividePrependIcon: {\n type: Boolean,\n default: true,\n },\n scopedDisplay: {\n type: Object as PropType<ReturnType<typeof useScopedDisplay>>,\n required: true,\n },\n uuid: {\n type: String as PropType<string>,\n required: true,\n },\n container: {\n type: [Object] as PropType<HTMLElement | ComponentPublicInstance | null | undefined>,\n default: undefined,\n },\n },\n {\n 'click:confirm': (uuid: string) => 'string' === typeof uuid,\n 'click:deny': (uuid: string) => 'string' === typeof uuid,\n 'click:cancel': (uuid: string) => 'string' === typeof uuid,\n },\n 'AlertComposableDialog'\n )\n\nconst AlertComposableDialog = defineComponent({\n name: 'AlertComposableDialog',\n props: makeAlertComposableDialog(),\n emits: alertComposableDialogEmits,\n setup(props, { emit }) {\n const t = useI18n()\n const {\n icon,\n headline,\n title,\n text,\n showConfirmButton,\n showDenyButton,\n showCancelButton,\n confirmButtonCta,\n denyButtonCta,\n cancelButtonCta,\n confirmButtonIcon,\n denyButtonIcon,\n cancelButtonIcon,\n contained,\n dividePrependIcon,\n scopedDisplay,\n uuid,\n container,\n } = toRefs(props)\n const { isRtl } = useLocale()\n const { width, height } = useDisplay()\n const normalizedOrientation = computed<'landscape' | 'portrait' | 'square'>(() => {\n if (container.value && contained.value) {\n return scopedDisplay.value.orientation.value\n }\n if (width.value === height.value) return 'square'\n return width.value > height.value ? 'landscape' : 'portrait'\n })\n const normalizedIcon = computed<NonNullable<VImgPublicProps['src']>>(() => {\n if ('info' === icon.value) return infoSvg\n if ('error' === icon.value) return errorSvg\n if ('success' === icon.value) return successSvg\n if ('warning' === icon.value) return warningSvg\n if ('question' === icon.value) return questionSvg\n return icon.value as NonNullable<VImgPublicProps['src']>\n })\n const normalizedConfirmButtonCta = computed(() =>\n 'string' === typeof confirmButtonCta.value\n ? confirmButtonCta.value\n : showDenyButton.value\n ? t('resourceful.alert.disposition.confirm')\n : t('resourceful.alert.disposition.ok')\n )\n const normalizedDenyButtonCta = computed(\n () => denyButtonCta.value ?? t('resourceful.alert.disposition.deny')\n )\n const normalizedCancelButtonCta = computed(\n () => cancelButtonCta.value ?? t('resourceful.alert.disposition.cancel')\n )\n const getContainerHtmlElement = (): HTMLElement | null => {\n const browser = useBrowser()\n if (!browser.ssr && isHTMLElement(container.value)) return container.value\n if (\n !browser.ssr &&\n container.value &&\n '$el' in container.value &&\n isHTMLElement(container.value.$el)\n )\n return container.value.$el\n return null\n }\n const dialogBindings = computed<VDialogPublicProps>(() => ({\n attach: contained.value && container.value ? (getContainerHtmlElement() ?? 'body') : 'body',\n absolute: contained.value,\n closeOnBack: false,\n closeOnContentClick: false,\n contained: contained.value,\n modelValue: true,\n persistent: true,\n retainFocus: true,\n scrim: true,\n maxWidth: 500,\n }))\n const cardBindings = computed<VCardPublicProps>(() => ({\n color: 'surface',\n }))\n const containerBindings = computed<VContainerPublicProps>(() => ({\n fluid: true,\n }))\n const rowBindings = computed<VRowPublicProps>(() => ({\n align: 'center',\n }))\n const imgBindings = computed<VImgPublicProps>(() => ({\n src: normalizedIcon.value,\n }))\n const actionsSlotContent = () => {\n const isReversed = true === isRtl.value || normalizedOrientation.value === 'landscape'\n let buttons = [\n showCancelButton.value\n ? h(ControlButton, {\n class: [\n {\n 'me-2': !isReversed && (showConfirmButton.value || showDenyButton.value),\n 'ms-2': isReversed && (showConfirmButton.value || showDenyButton.value),\n },\n 'mb-2',\n ],\n prependIcon: cancelButtonIcon.value,\n dividePrependIcon: dividePrependIcon.value,\n cta: normalizedCancelButtonCta.value,\n onClick: () => emit('click:cancel', uuid.value),\n color: 'surface-light',\n })\n : null,\n showDenyButton.value\n ? h(ControlButton, {\n class: [\n {\n 'me-2': !isReversed && showConfirmButton.value,\n 'ms-2': isReversed && showConfirmButton.value,\n },\n 'mb-2',\n ],\n prependIcon: denyButtonIcon.value,\n dividePrependIcon: dividePrependIcon.value,\n cta: normalizedDenyButtonCta.value,\n onClick: () => emit('click:deny', uuid.value),\n color: 'surface-light',\n })\n : null,\n showConfirmButton.value\n ? h(ControlButton, {\n class: ['mb-2'],\n prependIcon: confirmButtonIcon.value,\n dividePrependIcon: dividePrependIcon.value,\n cta: normalizedConfirmButtonCta.value,\n onClick: () => emit('click:confirm', uuid.value),\n color: 'surface-light',\n })\n : null,\n ]\n if (true === isReversed) {\n buttons = buttons.reverse()\n }\n return h(\n 'div',\n {\n class: [\n 'd-flex',\n 'w-100',\n 'flex-wrap',\n {\n 'justify-end': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n buttons\n )\n }\n const cardRef = ref<VCard | null>(null)\n useRender(() =>\n h(VDialog, dialogBindings.value, () =>\n h(\n VCard,\n {\n ref: cardRef,\n ...cardBindings.value,\n },\n () =>\n h(VContainer, containerBindings.value, () =>\n h(VRow, rowBindings.value, () => [\n normalizedOrientation.value === 'landscape'\n ? h(VCol, { cols: 4, class: ['d-flex', 'align-center'] }, () =>\n h(VImg, imgBindings.value)\n )\n : null,\n h(\n VCol,\n {\n cols: normalizedOrientation.value === 'landscape' ? 8 : 12,\n class: ['d-flex', 'flex-column', 'align-center', 'justify-center'],\n },\n () => [\n normalizedOrientation.value !== 'landscape'\n ? h(\n VRow,\n {\n justify: 'center',\n class: ['w-100'],\n },\n () => h(VCol, { cols: 6 }, () => h(VImg, imgBindings.value))\n )\n : null,\n headline.value\n ? h(\n VRow,\n {\n class: ['w-100'],\n },\n () =>\n h(\n VCol,\n {\n cols: 12,\n class: [\n 'd-flex',\n 'w-100',\n 'v-empty-state__headline',\n {\n 'justify-start': normalizedOrientation.value === 'landscape',\n 'text-start': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n () => headline.value\n )\n )\n : null,\n title.value\n ? h(\n VRow,\n {\n class: ['w-100'],\n },\n () =>\n h(\n VCol,\n {\n cols: 12,\n class: [\n 'd-flex',\n 'w-100',\n 'v-empty-state__title',\n {\n 'justify-start': normalizedOrientation.value === 'landscape',\n 'text-start': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n () => title.value\n )\n )\n : null,\n text.value\n ? h(\n VRow,\n {\n class: ['w-100'],\n },\n () =>\n h(\n VCol,\n {\n cols: 12,\n class: [\n 'd-flex',\n 'w-100',\n 'v-empty-state__text',\n {\n 'justify-start': normalizedOrientation.value === 'landscape',\n 'text-start': normalizedOrientation.value === 'landscape',\n 'justify-center': normalizedOrientation.value !== 'landscape',\n 'text-center': normalizedOrientation.value !== 'landscape',\n },\n ],\n },\n () => text.value\n )\n )\n : null,\n h(\n VRow,\n {\n class: ['w-100'],\n },\n () => h(VCol, { cols: 12 }, () => actionsSlotContent())\n ),\n ]\n ),\n ])\n )\n )\n )\n )\n return {\n normalizedOrientation,\n }\n },\n})\n\ntype AlertComposableDialogProps = ExtractPublicPropTypes<\n ReturnType<typeof makeAlertComposableDialog>\n>\n\ntype EnqueueableAlert = Omit<\n AlertComposableDialogProps,\n 'scopedDisplay' | 'contained' | 'dividePrependIcon'\n>\n\ntype AlertDialogEvents = EventMap<{\n disposition: [uuid: string, result: TernaryOperator]\n}>\n\nexport type FireAlertFn = (options: AlertOptions) => Promise<AlertResult>\n\nexport const useAlert = (\n container: MaybeRef<HTMLElement | ComponentPublicInstance | null> = null,\n contained: MaybeRef<boolean> = false,\n dividePrependIcon: MaybeRef<boolean> = true\n) => {\n const containerRef = isRef(container) ? container : ref(container)\n const scopedDisplay: ScopedDisplayInstance = useScopedDisplay(containerRef)\n const bus = new TypedEventEmitter<AlertDialogEvents>()\n const pendingAlerts = ref<EnqueueableAlert[]>([])\n const renderDialogs = () =>\n Array.from(pendingAlerts.value).map((opts) =>\n h(AlertComposableDialog, {\n ...opts,\n contained: toValue(contained),\n container: containerRef.value,\n dividePrependIcon: toValue(dividePrependIcon),\n scopedDisplay,\n key: opts.uuid,\n })\n )\n const fire: FireAlertFn = async (options: AlertOptions): Promise<AlertResult> => {\n const uuid = makeIdentifier('alert', 'alerts')\n const promise = new Promise<AlertResult>((resolve) => {\n const listener = (emittedUuid: string, result: TernaryOperator) => {\n if (emittedUuid === uuid) {\n bus.off('disposition', listener)\n resolve({\n isConfirmed: true === result,\n isDenied: false === result,\n isCanceled: null === result,\n value: result,\n })\n }\n }\n bus.on('disposition', listener)\n })\n const props: EnqueueableAlert = {\n 'icon': toValue(options.icon),\n 'headline': toValue(options.headline),\n 'title': toValue(options.title),\n 'text': toValue(options.text),\n 'showConfirmButton': toValue(options.showConfirmButton),\n 'showDenyButton': toValue(options.showDenyButton),\n 'showCancelButton': toValue(options.showCancelButton),\n 'confirmButtonCta': toValue(options.confirmButtonCta),\n 'denyButtonCta': toValue(options.denyButtonCta),\n 'cancelButtonCta': toValue(options.cancelButtonCta),\n 'confirmButtonIcon': toValue(options.confirmButtonIcon),\n 'denyButtonIcon': toValue(options.denyButtonIcon),\n 'cancelButtonIcon': toValue(options.cancelButtonIcon),\n 'uuid': uuid,\n 'onClick:cancel': () => bus.emit('disposition', uuid, null),\n 'onClick:confirm': () => bus.emit('disposition', uuid, true),\n 'onClick:deny': () => bus.emit('disposition', uuid, false),\n }\n if (options.signal) {\n if (options.signal.aborted) {\n // already aborted\n return {\n isConfirmed: false,\n isDenied: false,\n isCanceled: true,\n value: null,\n }\n }\n const abortListener = () => {\n bus.emit('disposition', uuid, null)\n }\n options.signal.addEventListener('abort', abortListener, { once: true })\n }\n pendingAlerts.value.push(props)\n const result = await promise\n const pendingAlertsIndex = pendingAlerts.value.findIndex((a) => a.uuid === uuid)\n if (pendingAlertsIndex > -1) {\n pendingAlerts.value.splice(pendingAlertsIndex, 1)\n }\n return result\n }\n return { renderDialogs, fire }\n}\n\nexport const UseAlertExample = defineComponent({\n name: 'UseAlertExample',\n setup() {\n const containerRef = ref<HTMLElement | null>(null)\n const { renderDialogs, fire } = useAlert(containerRef)\n return () =>\n h('div', { ref: containerRef }, [\n h('div', { class: ['w-100', 'd-flex'] }, [\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: errorSvg }),\n cta: 'Error',\n onClick: () =>\n fire({\n icon: 'error',\n headline: 'Error',\n title: 'This is an error alert',\n text: 'Something went wrong!',\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: infoSvg }),\n cta: 'Info',\n onClick: () =>\n fire({\n icon: 'info',\n headline: 'Info',\n title: 'This is an info alert',\n text: 'Just so you know...',\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: questionSvg }),\n cta: 'Question',\n onClick: () =>\n fire({\n icon: 'question',\n headline: 'Question',\n title: 'This is a question alert',\n text: 'Do you like questions?',\n showCancelButton: true,\n showDenyButton: true,\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: successSvg }),\n cta: 'Success',\n onClick: () =>\n fire({\n icon: 'success',\n headline: 'Success',\n title: 'This is a success alert',\n text: 'Everything is working as expected!',\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n h(ControlButton, {\n class: ['me-2'],\n prependIcon: () => h(VImg, { src: warningSvg }),\n cta: 'Warning',\n onClick: () =>\n fire({\n icon: 'warning',\n headline: 'Warning',\n title: 'This is a warning alert',\n text: 'Be careful!',\n showCancelButton: true,\n }).then((result) => {\n console.log('Alert result', result)\n alert(`Got Result: ${String(result.value)}`)\n }),\n }),\n ]),\n renderDialogs(),\n ])\n },\n})\n\nexport const ResourcefulAlerter = defineComponent({\n name: 'ResourcefulAlerter',\n setup() {\n const current = getCurrentInstance()\n const containerRef = ref<HTMLElement | null>(null)\n const container = computed(() => current?.proxy?.$el ?? containerRef.value)\n const { renderDialogs, fire } = useAlert(container)\n useRender(() => h('div', { ref: containerRef }, [renderDialogs()]))\n return {\n fire,\n }\n },\n})\n\nexport type ResourcefulAlerter = typeof ResourcefulAlerter & ComponentPublicInstance\n"],"names":["TypedEventEmitter","result"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { B as Big, f as formatBigNumber } from "./big_number_formatter-Y4TivQxi.mjs";
|
|
2
|
-
import { c as commonEmitsValidators, V as VTextField, a as VDivider } from "./common-
|
|
3
|
-
import { u as useFieldComposer } from "./field_composer-
|
|
4
|
-
import { p as propsAndEmitsFactory, s as stripUndefinedValuesFromObject, a as useSlot } from "./utils-
|
|
2
|
+
import { c as commonEmitsValidators, V as VTextField, a as VDivider } from "./common-Dzn-bQuK.mjs";
|
|
3
|
+
import { u as useFieldComposer } from "./field_composer-ohZKjFvR.mjs";
|
|
4
|
+
import { p as propsAndEmitsFactory, s as stripUndefinedValuesFromObject, a as useSlot } from "./utils-C5k3feJf.mjs";
|
|
5
5
|
import { defineComponent, toRefs, computed, h } from "vue";
|
|
6
|
-
import { p as propsFactory, a as pick, o as omit,
|
|
7
|
-
import { m as makeVNumberInputProps, a as makeRNumberFieldProps } from "./number-
|
|
8
|
-
import { c as VBtn } from "./display-
|
|
6
|
+
import { p as propsFactory, a as pick, o as omit, e as makeVTextFieldProps } from "./vendor-nhtio-vuetifiable-D1pLdLSx.mjs";
|
|
7
|
+
import { m as makeVNumberInputProps, a as makeRNumberFieldProps } from "./number-UcQrSUBH.mjs";
|
|
8
|
+
import { c as VBtn } from "./display-XSB3T9Jj.mjs";
|
|
9
9
|
const makeRBigIntFieldBaseProps = propsFactory(
|
|
10
10
|
{
|
|
11
11
|
...omit(makeRNumberFieldProps(), ["min", "max", "precision"]),
|
|
@@ -522,4 +522,4 @@ const RBigIntField = defineComponent({
|
|
|
522
522
|
export {
|
|
523
523
|
RBigIntField as R
|
|
524
524
|
};
|
|
525
|
-
//# sourceMappingURL=bigint-
|
|
525
|
+
//# sourceMappingURL=bigint-DatNMKMQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint-DXS_rVbG.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-DatNMKMQ.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,13 +1,13 @@
|
|
|
1
|
-
import { a as useI18n } from "./ioc-
|
|
2
|
-
import { S as SvgIcon } from "./index-
|
|
3
|
-
import { u as useFieldComposer } from "./field_composer-
|
|
4
|
-
import { p as propsAndEmitsFactory, s as stripUndefinedValuesFromObject } from "./utils-
|
|
5
|
-
import { o as omit$1, b as IconValue, a as pick,
|
|
1
|
+
import { a as useI18n } from "./ioc-De3kv3aq.mjs";
|
|
2
|
+
import { S as SvgIcon } from "./index-BPddr1wp.mjs";
|
|
3
|
+
import { u as useFieldComposer } from "./field_composer-ohZKjFvR.mjs";
|
|
4
|
+
import { p as propsAndEmitsFactory, s as stripUndefinedValuesFromObject } from "./utils-C5k3feJf.mjs";
|
|
5
|
+
import { o as omit$1, b as IconValue, a as pick, h as makeVFieldProps, i as makeVInputProps$1 } from "./vendor-nhtio-vuetifiable-D1pLdLSx.mjs";
|
|
6
6
|
import { ref, useId, createVNode, mergeProps, toRef, createElementVNode, Fragment, normalizeStyle, normalizeClass, h, defineComponent, toRefs, computed } from "vue";
|
|
7
|
-
import { s as useFocus,
|
|
8
|
-
import { p as forwardRefs,
|
|
9
|
-
import { V as VRadioGroup, a as VRadio } from "./VRadioGroup-
|
|
10
|
-
import { g as genericComponent, p as propsFactory, u as useProxiedModel,
|
|
7
|
+
import { s as useFocus, f 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-Dzn-bQuK.mjs";
|
|
8
|
+
import { p as forwardRefs, b as mdiMenuDown, h as mdiCheckboxBlankCircleOutline, i as mdiCircleSlice8, G as mdiCheckboxIntermediateVariant, H as mdiCheckboxBlankOutline, I as mdiCheckboxMarked, g as mdiClose } from "./mdi-CicdOYKA.mjs";
|
|
9
|
+
import { V as VRadioGroup, a as VRadio } from "./VRadioGroup-BPByWwud.mjs";
|
|
10
|
+
import { g as genericComponent, p as propsFactory, u as useProxiedModel, j as useRender, M as filterInputAttrs, s as omit, _ as useLoader, $ as SUPPORTS_MATCH_MEDIA, k as VDefaultsProvider, a0 as VScaleTransition, d as VIcon, a1 as LoaderSlot, b as VProgressCircular } from "./display-XSB3T9Jj.mjs";
|
|
11
11
|
const makeVCheckboxProps = propsFactory({
|
|
12
12
|
...makeVInputProps(),
|
|
13
13
|
...omit(makeVCheckboxBtnProps(), ["inline"])
|
|
@@ -481,7 +481,7 @@ const RBooleanField = defineComponent({
|
|
|
481
481
|
() => RBooleanFieldValue.map((v) => ({
|
|
482
482
|
value: v,
|
|
483
483
|
label: stringifier.value(v)
|
|
484
|
-
}))
|
|
484
|
+
})).filter((item) => computedChoices.value.includes(item.value))
|
|
485
485
|
);
|
|
486
486
|
const commonFieldBindings = computed(() => ({
|
|
487
487
|
focused: focused.value,
|
|
@@ -641,4 +641,4 @@ export {
|
|
|
641
641
|
RBooleanFieldValue as a,
|
|
642
642
|
RBooleanFieldRenderable as b
|
|
643
643
|
};
|
|
644
|
-
//# sourceMappingURL=boolean-
|
|
644
|
+
//# sourceMappingURL=boolean-B0IH8K9C.mjs.map
|