@nhtio/lucid-resourceful-vue-components 0.1.0-master-e14740ea → 1.20251107.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{VBtn-DhfYEt9V.mjs → VBtn-C_58hP1L.mjs} +7 -7
- package/{VBtn-DhfYEt9V.mjs.map → VBtn-C_58hP1L.mjs.map} +1 -1
- package/{VDatePicker-D0OTAyvJ.mjs → VDatePicker-CKxKmuCC.mjs} +165 -165
- package/{VDatePicker-D0OTAyvJ.mjs.map → VDatePicker-CKxKmuCC.mjs.map} +1 -1
- package/{VEmptyState-BFrXSTJ-.mjs → VEmptyState-CjqRy_Xt.mjs} +40 -40
- package/{VEmptyState-BFrXSTJ-.mjs.map → VEmptyState-CjqRy_Xt.mjs.map} +1 -1
- package/{VHover-DLvOmsjv.mjs → VHover-D-sydp3P.mjs} +3 -3
- package/{VHover-DLvOmsjv.mjs.map → VHover-D-sydp3P.mjs.map} +1 -1
- package/{VListItem-LNaoM8S4.mjs → VListItem-DNNkp2dc.mjs} +55 -55
- package/{VListItem-LNaoM8S4.mjs.map → VListItem-DNNkp2dc.mjs.map} +1 -1
- package/{VMenu-9rTbTKtH.mjs → VMenu-oGwvgLV1.mjs} +28 -28
- package/{VMenu-9rTbTKtH.mjs.map → VMenu-oGwvgLV1.mjs.map} +1 -1
- package/{VPicker-BGuRD0KW.mjs → VPicker-EfRj-X6U.mjs} +4 -4
- package/{VPicker-BGuRD0KW.mjs.map → VPicker-EfRj-X6U.mjs.map} +1 -1
- package/{VRadioGroup-Dx_wEqzl.mjs → VRadioGroup-CDf6CGwX.mjs} +21 -21
- package/{VRadioGroup-Dx_wEqzl.mjs.map → VRadioGroup-CDf6CGwX.mjs.map} +1 -1
- package/{VRow-DaLdbIGw.mjs → VRow-Da2fdUPu.mjs} +17 -17
- package/{VRow-DaLdbIGw.mjs.map → VRow-Da2fdUPu.mjs.map} +1 -1
- package/{VSheet-DnIfs-1c.mjs → VSheet-DdygPJlo.mjs} +13 -13
- package/{VSheet-DnIfs-1c.mjs.map → VSheet-DdygPJlo.mjs.map} +1 -1
- package/{actions-8bWGsB-p.mjs → actions-5gxlWcWt.mjs} +14 -14
- package/{actions-8bWGsB-p.mjs.map → actions-5gxlWcWt.mjs.map} +1 -1
- package/{alert-IW1AIWZw.mjs → alert-C6Dxm9jn.mjs} +13 -13
- package/{alert-IW1AIWZw.mjs.map → alert-C6Dxm9jn.mjs.map} +1 -1
- package/{bigint-Jmfa2L4S.mjs → bigint-CqXe_geE.mjs} +6 -6
- package/{bigint-Jmfa2L4S.mjs.map → bigint-CqXe_geE.mjs.map} +1 -1
- package/{boolean-BEY7eBxf.mjs → boolean-BaevWx3k.mjs} +39 -39
- package/{boolean-BEY7eBxf.mjs.map → boolean-BaevWx3k.mjs.map} +1 -1
- package/{clipboard-BoKd7mFG.mjs → clipboard-CGd9vMCV.mjs} +51 -51
- package/{clipboard-BoKd7mFG.mjs.map → clipboard-CGd9vMCV.mjs.map} +1 -1
- package/{colorUtils-DmtKYNgW.mjs → colorUtils-BdpqbLZS.mjs} +3 -3
- package/{colorUtils-DmtKYNgW.mjs.map → colorUtils-BdpqbLZS.mjs.map} +1 -1
- package/{common-BeDAn4wu.mjs → common-DrsZRUoj.mjs} +8881 -8880
- package/common-DrsZRUoj.mjs.map +1 -0
- package/common.css +1 -1
- package/{component-CjPpW_A2.mjs → component-DhEJuSE6.mjs} +2 -2
- package/{component-CjPpW_A2.mjs.map → component-DhEJuSE6.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 +8 -8
- package/{console-CRXioSFP.mjs → console-Dgoi3FwV.mjs} +2 -2
- package/{console-CRXioSFP.mjs.map → console-Dgoi3FwV.mjs.map} +1 -1
- package/{custom-Y1WJVKP9.mjs → custom-CXFDPB_N.mjs} +17 -17
- package/{custom-Y1WJVKP9.mjs.map → custom-CXFDPB_N.mjs.map} +1 -1
- package/{date-BxEeCNWD.mjs → date-BXNqToRH.mjs} +21 -21
- package/{date-BxEeCNWD.mjs.map → date-BXNqToRH.mjs.map} +1 -1
- package/{date_time-6kpv7eDF.mjs → date_time-DuRO8DS4.mjs} +299 -299
- package/{date_time-6kpv7eDF.mjs.map → date_time-DuRO8DS4.mjs.map} +1 -1
- package/{display-CO0pTIEs.mjs → display-BL-pquAI.mjs} +41 -41
- package/{display-CO0pTIEs.mjs.map → display-BL-pquAI.mjs.map} +1 -1
- package/{display-kAyhIPBH.mjs → display-DCHGPqrW.mjs} +7 -7
- package/{display-kAyhIPBH.mjs.map → display-DCHGPqrW.mjs.map} +1 -1
- package/{display-DvzWa1QO.mjs → display-TF26EjNQ.mjs} +40 -40
- package/{display-DvzWa1QO.mjs.map → display-TF26EjNQ.mjs.map} +1 -1
- package/{elevation-CMzO50xm.mjs → elevation-j7bb-vGU.mjs} +81 -81
- package/{elevation-CMzO50xm.mjs.map → elevation-j7bb-vGU.mjs.map} +1 -1
- package/{enum-noYU2Cqh.mjs → enum-CRgh6TfR.mjs} +22 -22
- package/{enum-noYU2Cqh.mjs.map → enum-CRgh6TfR.mjs.map} +1 -1
- package/factories.mjs +1 -1
- package/{field_composer-DpJx0Oz1.mjs → field_composer-CjKCvP50.mjs} +7 -7
- package/{field_composer-DpJx0Oz1.mjs.map → field_composer-CjKCvP50.mjs.map} +1 -1
- package/{form-CDLcDPyU.mjs → form-CFjPqvRf.mjs} +45 -45
- package/{form-CDLcDPyU.mjs.map → form-CFjPqvRf.mjs.map} +1 -1
- package/{guards-B99p3BPj.mjs → guards-Cby4QwzY.mjs} +2 -2
- package/{guards-B99p3BPj.mjs.map → guards-Cby4QwzY.mjs.map} +1 -1
- package/guards.mjs +4 -4
- package/helpers.mjs +6 -6
- package/{index-bXmNb9jX.mjs → index-B8OnsqN1.mjs} +10 -10
- package/{index-bXmNb9jX.mjs.map → index-B8OnsqN1.mjs.map} +1 -1
- package/{index-BaWthszI.mjs → index-C-PCfO1S.mjs} +2 -2
- package/{index-BaWthszI.mjs.map → index-C-PCfO1S.mjs.map} +1 -1
- package/{index-C9UuBVyI.mjs → index-CZg-HOo9.mjs} +12 -12
- package/{index-C9UuBVyI.mjs.map → index-CZg-HOo9.mjs.map} +1 -1
- package/{index-B2rKM3mR.mjs → index-ChVCZ8iE.mjs} +21 -21
- package/{index-B2rKM3mR.mjs.map → index-ChVCZ8iE.mjs.map} +1 -1
- package/{index-CzI9mHIx.mjs → index-Cou5qTHe.mjs} +13 -13
- package/{index-CzI9mHIx.mjs.map → index-Cou5qTHe.mjs.map} +1 -1
- package/{index-Bi050X9r.mjs → index-DM8E6faO.mjs} +8 -8
- package/{index-Bi050X9r.mjs.map → index-DM8E6faO.mjs.map} +1 -1
- package/{index-CIvylvfa.mjs → index-DSLt7-cJ.mjs} +43 -43
- package/{index-CIvylvfa.mjs.map → index-DSLt7-cJ.mjs.map} +1 -1
- package/{index-slHxe6b-.mjs → index-VpcXNOpn.mjs} +2 -2
- package/{index-slHxe6b-.mjs.map → index-VpcXNOpn.mjs.map} +1 -1
- package/{index-BUpccfIz.mjs → index-fiZltUBs.mjs} +3 -3
- package/{index-BUpccfIz.mjs.map → index-fiZltUBs.mjs.map} +1 -1
- package/index.mjs +31 -31
- package/{integer-BIJ4_I8y.mjs → integer-Dy0xpFif.mjs} +5 -5
- package/{integer-BIJ4_I8y.mjs.map → integer-Dy0xpFif.mjs.map} +1 -1
- package/{mdi-CqMJqgQi.mjs → mdi-BQSh-ess.mjs} +54 -54
- package/{mdi-CqMJqgQi.mjs.map → mdi-BQSh-ess.mjs.map} +1 -1
- package/{number-z_LAINPM.mjs → number-DWCew87L.mjs} +101 -101
- package/{number-z_LAINPM.mjs.map → number-DWCew87L.mjs.map} +1 -1
- package/package.json +38 -38
- package/{position-Ai5XksAO.mjs → position-B9VPkbhU.mjs} +2 -2
- package/{position-Ai5XksAO.mjs.map → position-B9VPkbhU.mjs.map} +1 -1
- package/{props-p4f5Pa5h.mjs → props-Cjpc9pre.mjs} +4 -4
- package/{props-p4f5Pa5h.mjs.map → props-Cjpc9pre.mjs.map} +1 -1
- package/{props-BYX22zcE.mjs → props-DQlQ6VDP.mjs} +6 -6
- package/{props-BYX22zcE.mjs.map → props-DQlQ6VDP.mjs.map} +1 -1
- package/{renderers-BKUvrrVm.mjs → renderers-hznWrh2D.mjs} +13 -13
- package/{renderers-BKUvrrVm.mjs.map → renderers-hznWrh2D.mjs.map} +1 -1
- package/{string-Dmr8SRMf.mjs → string-BTd_Gwx-.mjs} +136 -136
- package/{string-Dmr8SRMf.mjs.map → string-BTd_Gwx-.mjs.map} +1 -1
- package/{unsigned_integer-BliPiCXO.mjs → unsigned_integer-CfxxFKrO.mjs} +4 -4
- package/{unsigned_integer-BliPiCXO.mjs.map → unsigned_integer-CfxxFKrO.mjs.map} +1 -1
- package/useRender-CfNJA_8a.mjs +9 -0
- package/{useRender-BD1xw5zG.mjs.map → useRender-CfNJA_8a.mjs.map} +1 -1
- package/{utils-DqXWb-4f.mjs → utils-D3ZGaTyv.mjs} +48 -48
- package/{utils-DqXWb-4f.mjs.map → utils-D3ZGaTyv.mjs.map} +1 -1
- package/{validation-DS3tTSk5.mjs → validation-BobMyGeq.mjs} +4 -4
- package/{validation-DS3tTSk5.mjs.map → validation-BobMyGeq.mjs.map} +1 -1
- package/common-BeDAn4wu.mjs.map +0 -1
- package/useRender-BD1xw5zG.mjs +0 -9
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { a as c } from "./ioc-Du_Tgg-1.mjs";
|
|
2
2
|
import { defineComponent as p, toRefs as R, h as r } from "vue";
|
|
3
|
-
import { D as m } from "./common-
|
|
3
|
+
import { D as m } from "./common-DrsZRUoj.mjs";
|
|
4
4
|
import { v as x } from "./encoding-C1W2Cp3X-DzgQRCVx.mjs";
|
|
5
|
-
import { d as y, q as b, s as F } from "./utils-
|
|
6
|
-
import { R as v } from "./bigint-
|
|
7
|
-
import { R as g } from "./boolean-
|
|
8
|
-
import { R as O } from "./date_time-
|
|
9
|
-
import { R as A } from "./date-
|
|
10
|
-
import { R as D } from "./integer-
|
|
11
|
-
import { R as j } from "./number-
|
|
12
|
-
import { R as C } from "./string-
|
|
13
|
-
import { R as q } from "./unsigned_integer-
|
|
14
|
-
import { R as w } from "./enum-
|
|
15
|
-
import { V as I, a as P, b as T } from "./VRow-
|
|
5
|
+
import { d as y, q as b, s as F } from "./utils-D3ZGaTyv.mjs";
|
|
6
|
+
import { R as v } from "./bigint-CqXe_geE.mjs";
|
|
7
|
+
import { R as g } from "./boolean-BaevWx3k.mjs";
|
|
8
|
+
import { R as O } from "./date_time-DuRO8DS4.mjs";
|
|
9
|
+
import { R as A } from "./date-BXNqToRH.mjs";
|
|
10
|
+
import { R as D } from "./integer-Dy0xpFif.mjs";
|
|
11
|
+
import { R as j } from "./number-DWCew87L.mjs";
|
|
12
|
+
import { R as C } from "./string-BTd_Gwx-.mjs";
|
|
13
|
+
import { R as q } from "./unsigned_integer-CfxxFKrO.mjs";
|
|
14
|
+
import { R as w } from "./enum-CRgh6TfR.mjs";
|
|
15
|
+
import { V as I, a as P, b as T } from "./VRow-Da2fdUPu.mjs";
|
|
16
16
|
const V = (e, l) => {
|
|
17
17
|
try {
|
|
18
18
|
return e.extract(l);
|
|
@@ -202,4 +202,4 @@ export {
|
|
|
202
202
|
B as a,
|
|
203
203
|
$ as r
|
|
204
204
|
};
|
|
205
|
-
//# sourceMappingURL=renderers-
|
|
205
|
+
//# sourceMappingURL=renderers-hznWrh2D.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers-BKUvrrVm.mjs","sources":["../src/private/resourceful-record/renderers.ts"],"sourcesContent":["import { useI18n } from '../ioc'\nimport { h, defineComponent, toRefs } from 'vue'\nimport { DevErrorAlert } from '../fields/common'\nimport { joi } from '@nhtio/lucid-resourceful/joi'\nimport { propsAndEmitsFactory } from '../common/factories'\nimport { VContainer, VRow, VCol } from 'vuetify/components/VGrid'\nimport {\n stripUndefinedValuesFromObject,\n typeAndFormatToResourcefulFieldType,\n} from '../common/utils'\nimport {\n RBigIntField,\n RBooleanField,\n RDateTimeField,\n RDateField,\n RIntegerField,\n RNumberField,\n RStringField,\n RUnsignedIntegerField,\n REnumField,\n} from '../fields'\nimport type { FireAlertFn } from '../ux/alert'\nimport type { Schema } from '@nhtio/lucid-resourceful/joi'\nimport type { ScopedDisplayProps } from '../ux/validation'\nimport type { REnumFieldLoadedChoice } from '../fields/enum'\nimport type { ValidationFieldBindings } from '../ux/validation'\nimport type { CommonResourcefulFieldPublicProps } from '../fields/common'\nimport type { VNode, ComputedRef, PropType, ComponentPublicInstance, ExtractPropTypes } from 'vue'\nimport type {\n ResourcefulRecordViewMode,\n ResourcefulRecordModelSchema,\n ResourcefulRecordModelPropertySchema,\n ResourcefulRecordFormWithValidationDefaultSlotProps,\n} from './types'\nimport type {\n RBigIntFieldProps,\n RBooleanFieldProps,\n RDateTimeFieldProps,\n RDateFieldProps,\n RIntegerFieldProps,\n RNumberFieldProps,\n RStringFieldProps,\n RUnsignedIntegerFieldProps,\n REnumFieldProps,\n} from '../fields'\n\nconst extractKnownKeyFromJoiSchema = (schema: Schema, key: string): Schema => {\n try {\n return schema.extract(key)\n } catch {\n return joi.any()\n }\n}\n\nconst {\n makeProps: makeDefaultResourcefulRecordFormProps,\n emits: defaultResourcefulRecordFormEmits,\n} = propsAndEmitsFactory(\n {\n props: {\n type: Object as PropType<ResourcefulRecordFormWithValidationDefaultSlotProps>,\n required: true,\n },\n display: {\n type: Object as PropType<ScopedDisplayProps>,\n required: true,\n },\n model: {\n type: Object as PropType<ResourcefulRecordModelSchema>,\n required: true,\n },\n schema: {\n type: Object as PropType<Schema>,\n required: true,\n },\n mode: {\n type: String as PropType<ResourcefulRecordViewMode>,\n default: 'update',\n },\n fieldLabels: {\n type: Object as PropType<Record<string, string>>,\n default: () => ({}),\n },\n doRefreshChoices: {\n type: Object as PropType<Record<string, () => Promise<REnumFieldLoadedChoice[]>>>,\n default: () => ({}),\n },\n },\n {},\n 'ResourcefulRecordDefaultForm'\n)\n\ntype ResourcefulRecordDefaultFormInstanceProps = ExtractPropTypes<\n ReturnType<typeof makeDefaultResourcefulRecordFormProps>\n>\n\nexport const ResourcefulRecordDefaultForm = defineComponent({\n name: 'ResourcefulRecordDefaultForm',\n props: makeDefaultResourcefulRecordFormProps(),\n emits: defaultResourcefulRecordFormEmits,\n setup(instanceProps: ResourcefulRecordDefaultFormInstanceProps) {\n const { props, display, model, schema, mode, doRefreshChoices } = toRefs(instanceProps)\n return () =>\n h(VContainer, { fluid: true }, () =>\n Object.entries(model.value)\n .filter(([, propSchema]) => {\n switch (mode.value) {\n case 'create':\n return (\n !propSchema['x-resourceful-autocreated'] &&\n !propSchema['x-resourceful-primary-key']\n )\n\n case 'update':\n return (\n !propSchema['x-resourceful-autoupdated'] && !propSchema['x-resourceful-immutable']\n )\n default:\n return true\n }\n })\n .map(([key, propSchema]) =>\n h(VRow, {}, () =>\n h(VCol, {}, () =>\n renderResourcefulRecordModelPropertyField(\n propSchema,\n extractKnownKeyFromJoiSchema(schema.value, key),\n props.value.useField(key),\n mode.value,\n display.value,\n doRefreshChoices.value[key]\n )\n )\n )\n )\n )\n },\n})\n\nexport type ResourcefulRecordDefaultForm = typeof ResourcefulRecordDefaultForm &\n ComponentPublicInstance\n\nexport const renderDefaultResourcefulRecordForm = <TSchema extends Schema>(\n props: ResourcefulRecordFormWithValidationDefaultSlotProps,\n display: ScopedDisplayProps,\n model: ResourcefulRecordModelSchema,\n schema: TSchema,\n mode: ResourcefulRecordViewMode = 'update',\n _fire: FireAlertFn = () =>\n Promise.resolve({ isConfirmed: false, isDenied: false, isCanceled: true, value: null }),\n doRefreshChoices: Record<string, () => Promise<REnumFieldLoadedChoice[]>> = {}\n): VNode => {\n return h(ResourcefulRecordDefaultForm, {\n props,\n display,\n model,\n schema,\n mode,\n doRefreshChoices,\n })\n}\n\nexport const renderResourcefulRecordModelPropertyField = (\n schema: ResourcefulRecordModelPropertySchema,\n validator: Schema,\n bindings: ComputedRef<ValidationFieldBindings>,\n mode: ResourcefulRecordViewMode,\n display: ScopedDisplayProps,\n doRefreshChoices?: (() => Promise<REnumFieldLoadedChoice[]>) | undefined\n): VNode => {\n const t = useI18n()\n const renderableFieldType = typeAndFormatToResourcefulFieldType(schema.type, schema.format)\n let renderMode: CommonResourcefulFieldPublicProps['renderMode'] =\n mode === 'read' ? 'read' : 'edit'\n if (renderMode === 'edit') {\n /**\n * Force rendering of autocreated/autoupdated/immutable/primary-key fields as read-only\n */\n if (\n mode === 'create' &&\n (schema['x-resourceful-autocreated'] || schema['x-resourceful-primary-key'])\n ) {\n renderMode = 'read'\n }\n if (\n mode === 'update' &&\n (schema['x-resourceful-autoupdated'] || schema['x-resourceful-immutable'])\n ) {\n renderMode = 'read'\n }\n }\n const commonProps: CommonResourcefulFieldPublicProps = {\n renderMode,\n multiple: validator.type === 'array',\n choices: undefined,\n allowUnspecifiedChoices: false,\n density: display.xs ? 'compact' : display.lgAndUp ? 'default' : 'comfortable',\n ...bindings.value,\n }\n if (schema['x-resourceful-relationship']) {\n commonProps.label = schema['x-resourceful-relationship'].title\n commonProps.multiple = schema['x-resourceful-relationship'].multiple\n if (Array.isArray(schema['x-resourceful-relationship'].choices)) {\n commonProps.choices = schema['x-resourceful-relationship'].choices\n }\n } else if ('x-resourceful-choices' in schema && Array.isArray(schema['x-resourceful-choices'])) {\n commonProps.choices = schema['x-resourceful-choices'].map((c) => ({\n value: c.value,\n label: c.i18n ? t(c.title || c.value) : c.title || c.value,\n }))\n }\n if (\n validator.type !== 'array' &&\n (schema['x-resourceful-relationship'] ||\n ('x-resourceful-choices' in schema && Array.isArray(schema['x-resourceful-choices'])))\n ) {\n return h(REnumField, {\n // Field specifics\n clearable: schema.nullable || false,\n ...stripUndefinedValuesFromObject({\n doRefreshChoices,\n }),\n // Common props\n ...commonProps,\n } satisfies Partial<REnumFieldProps>)\n }\n switch (renderableFieldType) {\n case 'string':\n return h(RStringField, {\n // Field specifics\n format: schema.format as any,\n clearable: schema.nullable || false,\n // Common props\n ...commonProps,\n } satisfies Partial<RStringFieldProps>)\n case 'date':\n return h(RDateField, {\n // Field specifics\n clearable: schema.nullable || false,\n // Common props\n ...commonProps,\n } satisfies Partial<RDateFieldProps>)\n case 'dateTime':\n return h(RDateTimeField, {\n // Field specifics\n clearable: schema.nullable || false,\n // Common props\n ...commonProps,\n } satisfies Partial<RDateTimeFieldProps>)\n case 'binary':\n return h(DevErrorAlert, {})\n case 'number':\n return h(RNumberField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RNumberFieldProps>)\n case 'integer':\n return h(RIntegerField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RIntegerFieldProps>)\n case 'bigint':\n return h(RBigIntField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RBigIntFieldProps>)\n case 'unsignedInteger':\n return h(RUnsignedIntegerField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RUnsignedIntegerFieldProps>)\n case 'boolean':\n return h(RBooleanField, {\n // Field specifics\n choices: schema.nullable ? [true, false, null] : [true, false],\n // Common props\n ...commonProps,\n } satisfies Partial<RBooleanFieldProps>)\n default:\n return h(DevErrorAlert, {})\n }\n}\n"],"names":["extractKnownKeyFromJoiSchema","schema","key","joi","makeDefaultResourcefulRecordFormProps","defaultResourcefulRecordFormEmits","propsAndEmitsFactory","ResourcefulRecordDefaultForm","defineComponent","instanceProps","props","display","model","mode","doRefreshChoices","toRefs","h","VContainer","propSchema","VRow","VCol","renderResourcefulRecordModelPropertyField","renderDefaultResourcefulRecordForm","_fire","validator","bindings","t","useI18n","renderableFieldType","typeAndFormatToResourcefulFieldType","renderMode","commonProps","c","REnumField","stripUndefinedValuesFromObject","RStringField","RDateField","RDateTimeField","DevErrorAlert","RNumberField","RIntegerField","RBigIntField","RUnsignedIntegerField","RBooleanField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderers-hznWrh2D.mjs","sources":["../src/private/resourceful-record/renderers.ts"],"sourcesContent":["import { useI18n } from '../ioc'\nimport { h, defineComponent, toRefs } from 'vue'\nimport { DevErrorAlert } from '../fields/common'\nimport { joi } from '@nhtio/lucid-resourceful/joi'\nimport { propsAndEmitsFactory } from '../common/factories'\nimport { VContainer, VRow, VCol } from 'vuetify/components/VGrid'\nimport {\n stripUndefinedValuesFromObject,\n typeAndFormatToResourcefulFieldType,\n} from '../common/utils'\nimport {\n RBigIntField,\n RBooleanField,\n RDateTimeField,\n RDateField,\n RIntegerField,\n RNumberField,\n RStringField,\n RUnsignedIntegerField,\n REnumField,\n} from '../fields'\nimport type { FireAlertFn } from '../ux/alert'\nimport type { Schema } from '@nhtio/lucid-resourceful/joi'\nimport type { ScopedDisplayProps } from '../ux/validation'\nimport type { REnumFieldLoadedChoice } from '../fields/enum'\nimport type { ValidationFieldBindings } from '../ux/validation'\nimport type { CommonResourcefulFieldPublicProps } from '../fields/common'\nimport type { VNode, ComputedRef, PropType, ComponentPublicInstance, ExtractPropTypes } from 'vue'\nimport type {\n ResourcefulRecordViewMode,\n ResourcefulRecordModelSchema,\n ResourcefulRecordModelPropertySchema,\n ResourcefulRecordFormWithValidationDefaultSlotProps,\n} from './types'\nimport type {\n RBigIntFieldProps,\n RBooleanFieldProps,\n RDateTimeFieldProps,\n RDateFieldProps,\n RIntegerFieldProps,\n RNumberFieldProps,\n RStringFieldProps,\n RUnsignedIntegerFieldProps,\n REnumFieldProps,\n} from '../fields'\n\nconst extractKnownKeyFromJoiSchema = (schema: Schema, key: string): Schema => {\n try {\n return schema.extract(key)\n } catch {\n return joi.any()\n }\n}\n\nconst {\n makeProps: makeDefaultResourcefulRecordFormProps,\n emits: defaultResourcefulRecordFormEmits,\n} = propsAndEmitsFactory(\n {\n props: {\n type: Object as PropType<ResourcefulRecordFormWithValidationDefaultSlotProps>,\n required: true,\n },\n display: {\n type: Object as PropType<ScopedDisplayProps>,\n required: true,\n },\n model: {\n type: Object as PropType<ResourcefulRecordModelSchema>,\n required: true,\n },\n schema: {\n type: Object as PropType<Schema>,\n required: true,\n },\n mode: {\n type: String as PropType<ResourcefulRecordViewMode>,\n default: 'update',\n },\n fieldLabels: {\n type: Object as PropType<Record<string, string>>,\n default: () => ({}),\n },\n doRefreshChoices: {\n type: Object as PropType<Record<string, () => Promise<REnumFieldLoadedChoice[]>>>,\n default: () => ({}),\n },\n },\n {},\n 'ResourcefulRecordDefaultForm'\n)\n\ntype ResourcefulRecordDefaultFormInstanceProps = ExtractPropTypes<\n ReturnType<typeof makeDefaultResourcefulRecordFormProps>\n>\n\nexport const ResourcefulRecordDefaultForm = defineComponent({\n name: 'ResourcefulRecordDefaultForm',\n props: makeDefaultResourcefulRecordFormProps(),\n emits: defaultResourcefulRecordFormEmits,\n setup(instanceProps: ResourcefulRecordDefaultFormInstanceProps) {\n const { props, display, model, schema, mode, doRefreshChoices } = toRefs(instanceProps)\n return () =>\n h(VContainer, { fluid: true }, () =>\n Object.entries(model.value)\n .filter(([, propSchema]) => {\n switch (mode.value) {\n case 'create':\n return (\n !propSchema['x-resourceful-autocreated'] &&\n !propSchema['x-resourceful-primary-key']\n )\n\n case 'update':\n return (\n !propSchema['x-resourceful-autoupdated'] && !propSchema['x-resourceful-immutable']\n )\n default:\n return true\n }\n })\n .map(([key, propSchema]) =>\n h(VRow, {}, () =>\n h(VCol, {}, () =>\n renderResourcefulRecordModelPropertyField(\n propSchema,\n extractKnownKeyFromJoiSchema(schema.value, key),\n props.value.useField(key),\n mode.value,\n display.value,\n doRefreshChoices.value[key]\n )\n )\n )\n )\n )\n },\n})\n\nexport type ResourcefulRecordDefaultForm = typeof ResourcefulRecordDefaultForm &\n ComponentPublicInstance\n\nexport const renderDefaultResourcefulRecordForm = <TSchema extends Schema>(\n props: ResourcefulRecordFormWithValidationDefaultSlotProps,\n display: ScopedDisplayProps,\n model: ResourcefulRecordModelSchema,\n schema: TSchema,\n mode: ResourcefulRecordViewMode = 'update',\n _fire: FireAlertFn = () =>\n Promise.resolve({ isConfirmed: false, isDenied: false, isCanceled: true, value: null }),\n doRefreshChoices: Record<string, () => Promise<REnumFieldLoadedChoice[]>> = {}\n): VNode => {\n return h(ResourcefulRecordDefaultForm, {\n props,\n display,\n model,\n schema,\n mode,\n doRefreshChoices,\n })\n}\n\nexport const renderResourcefulRecordModelPropertyField = (\n schema: ResourcefulRecordModelPropertySchema,\n validator: Schema,\n bindings: ComputedRef<ValidationFieldBindings>,\n mode: ResourcefulRecordViewMode,\n display: ScopedDisplayProps,\n doRefreshChoices?: (() => Promise<REnumFieldLoadedChoice[]>) | undefined\n): VNode => {\n const t = useI18n()\n const renderableFieldType = typeAndFormatToResourcefulFieldType(schema.type, schema.format)\n let renderMode: CommonResourcefulFieldPublicProps['renderMode'] =\n mode === 'read' ? 'read' : 'edit'\n if (renderMode === 'edit') {\n /**\n * Force rendering of autocreated/autoupdated/immutable/primary-key fields as read-only\n */\n if (\n mode === 'create' &&\n (schema['x-resourceful-autocreated'] || schema['x-resourceful-primary-key'])\n ) {\n renderMode = 'read'\n }\n if (\n mode === 'update' &&\n (schema['x-resourceful-autoupdated'] || schema['x-resourceful-immutable'])\n ) {\n renderMode = 'read'\n }\n }\n const commonProps: CommonResourcefulFieldPublicProps = {\n renderMode,\n multiple: validator.type === 'array',\n choices: undefined,\n allowUnspecifiedChoices: false,\n density: display.xs ? 'compact' : display.lgAndUp ? 'default' : 'comfortable',\n ...bindings.value,\n }\n if (schema['x-resourceful-relationship']) {\n commonProps.label = schema['x-resourceful-relationship'].title\n commonProps.multiple = schema['x-resourceful-relationship'].multiple\n if (Array.isArray(schema['x-resourceful-relationship'].choices)) {\n commonProps.choices = schema['x-resourceful-relationship'].choices\n }\n } else if ('x-resourceful-choices' in schema && Array.isArray(schema['x-resourceful-choices'])) {\n commonProps.choices = schema['x-resourceful-choices'].map((c) => ({\n value: c.value,\n label: c.i18n ? t(c.title || c.value) : c.title || c.value,\n }))\n }\n if (\n validator.type !== 'array' &&\n (schema['x-resourceful-relationship'] ||\n ('x-resourceful-choices' in schema && Array.isArray(schema['x-resourceful-choices'])))\n ) {\n return h(REnumField, {\n // Field specifics\n clearable: schema.nullable || false,\n ...stripUndefinedValuesFromObject({\n doRefreshChoices,\n }),\n // Common props\n ...commonProps,\n } satisfies Partial<REnumFieldProps>)\n }\n switch (renderableFieldType) {\n case 'string':\n return h(RStringField, {\n // Field specifics\n format: schema.format as any,\n clearable: schema.nullable || false,\n // Common props\n ...commonProps,\n } satisfies Partial<RStringFieldProps>)\n case 'date':\n return h(RDateField, {\n // Field specifics\n clearable: schema.nullable || false,\n // Common props\n ...commonProps,\n } satisfies Partial<RDateFieldProps>)\n case 'dateTime':\n return h(RDateTimeField, {\n // Field specifics\n clearable: schema.nullable || false,\n // Common props\n ...commonProps,\n } satisfies Partial<RDateTimeFieldProps>)\n case 'binary':\n return h(DevErrorAlert, {})\n case 'number':\n return h(RNumberField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RNumberFieldProps>)\n case 'integer':\n return h(RIntegerField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RIntegerFieldProps>)\n case 'bigint':\n return h(RBigIntField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RBigIntFieldProps>)\n case 'unsignedInteger':\n return h(RUnsignedIntegerField, {\n // Field specifics\n min: schema.minimum,\n max: schema.maximum,\n step: schema.multipleOf,\n // Common props\n ...commonProps,\n } satisfies Partial<RUnsignedIntegerFieldProps>)\n case 'boolean':\n return h(RBooleanField, {\n // Field specifics\n choices: schema.nullable ? [true, false, null] : [true, false],\n // Common props\n ...commonProps,\n } satisfies Partial<RBooleanFieldProps>)\n default:\n return h(DevErrorAlert, {})\n }\n}\n"],"names":["extractKnownKeyFromJoiSchema","schema","key","joi","makeDefaultResourcefulRecordFormProps","defaultResourcefulRecordFormEmits","propsAndEmitsFactory","ResourcefulRecordDefaultForm","defineComponent","instanceProps","props","display","model","mode","doRefreshChoices","toRefs","h","VContainer","propSchema","VRow","VCol","renderResourcefulRecordModelPropertyField","renderDefaultResourcefulRecordForm","_fire","validator","bindings","t","useI18n","renderableFieldType","typeAndFormatToResourcefulFieldType","renderMode","commonProps","c","REnumField","stripUndefinedValuesFromObject","RStringField","RDateField","RDateTimeField","DevErrorAlert","RNumberField","RIntegerField","RBigIntField","RUnsignedIntegerField","RBooleanField"],"mappings":"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"}
|