@donotdev/crud 0.0.10 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/components/EntityDisplayRenderer.d.ts +2 -2
  2. package/dist/components/EntityDisplayRenderer.d.ts.map +1 -1
  3. package/dist/components/EntityFilters.d.ts.map +1 -1
  4. package/dist/components/EntityFilters.js +1 -1
  5. package/dist/components/EntityFormRenderer.d.ts.map +1 -1
  6. package/dist/components/EntityFormRenderer.js +1 -1
  7. package/dist/components/controlled/input/ControlledDurationField.d.ts +7 -0
  8. package/dist/components/controlled/input/ControlledDurationField.d.ts.map +1 -0
  9. package/dist/components/controlled/input/ControlledDurationField.js +1 -0
  10. package/dist/components/controlled/input/index.d.ts +1 -0
  11. package/dist/components/controlled/input/index.d.ts.map +1 -1
  12. package/dist/components/controlled/input/index.js +1 -1
  13. package/dist/components/form/fields/DurationFieldComponent.d.ts +42 -0
  14. package/dist/components/form/fields/DurationFieldComponent.d.ts.map +1 -0
  15. package/dist/components/form/fields/DurationFieldComponent.js +1 -0
  16. package/dist/components/form/fields/PhoneNumberComponent.d.ts.map +1 -1
  17. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  18. package/dist/components/form/fields/index.d.ts +3 -0
  19. package/dist/components/form/fields/index.d.ts.map +1 -1
  20. package/dist/components/form/fields/index.js +1 -1
  21. package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
  22. package/dist/forms/hooks/useEntityForm.js +1 -1
  23. package/dist/forms/types.d.ts +13 -4
  24. package/dist/forms/types.d.ts.map +1 -1
  25. package/dist/forms/utils/buildInitialValues.d.ts +30 -0
  26. package/dist/forms/utils/buildInitialValues.d.ts.map +1 -0
  27. package/dist/forms/utils/buildInitialValues.js +1 -0
  28. package/dist/forms/utils/getFieldsForOperation.d.ts +2 -3
  29. package/dist/forms/utils/getFieldsForOperation.d.ts.map +1 -1
  30. package/dist/forms/utils/getFieldsForOperation.js +1 -1
  31. package/dist/forms/utils/isFieldEditable.d.ts +1 -1
  32. package/dist/forms/utils/isFieldEditable.d.ts.map +1 -1
  33. package/dist/forms/utils/translateFieldLabel.d.ts +11 -5
  34. package/dist/forms/utils/translateFieldLabel.d.ts.map +1 -1
  35. package/dist/forms/utils/translateFieldLabel.js +1 -1
  36. package/dist/registerBuiltinFieldTypes.d.ts.map +1 -1
  37. package/dist/registerBuiltinFieldTypes.js +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"registerBuiltinFieldTypes.d.ts","sourceRoot":"","sources":["../src/registerBuiltinFieldTypes.tsx"],"names":[],"mappings":"AAkuBA;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAmqBnD"}
1
+ {"version":3,"file":"registerBuiltinFieldTypes.d.ts","sourceRoot":"","sources":["../src/registerBuiltinFieldTypes.tsx"],"names":[],"mappings":"AAk1BA;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA6sBnD"}
@@ -1 +1 @@
1
- "use client";import{jsx as s,jsxs as u}from"react/jsx-runtime";import{Text as m,Stack as g,ImageGallery as I,Rating as $}from"@donotdev/components";import{formatCurrency as T}from"@donotdev/core";import{ControlledCheckboxField as w,ControlledComboboxField as M,ControlledDateField as b,ControlledDropdownField as R,ControlledFileField as N,ControlledMultiFileField as P,ControlledDocumentField as V,ControlledMultiDocumentField as _,ControlledGeoPointField as B,ControlledImageField as E,ControlledMapField as U,ControlledMultiDropdownField as H,ControlledMultiInputField as K,ControlledNumberField as Y,ControlledPasswordField as G,ControlledPhoneField as O,ControlledRangeField as W,ControlledRatingField as q,ControlledRadioField as J,ControlledYearField as Q,ControlledTextField as y,ControlledTextareaField as X,ControlledRichTextField as Z,ControlledTimestampField as ee,ControlledAddressField as te,ControlledSwitchField as re,ControlledMultiImageField as le,ControlledGdprConsentField as ne,ControlledCurrencyField as oe,ControlledPriceField as ae}from"./components/controlled";import{AvatarFieldComponent as ie,BadgeFieldComponent as ce,ButtonFieldComponent as k,HiddenFieldComponent as se,TextAreaComponent as pe,RichTextComponent as de,TextFieldComponent as F}from"./components/form/fields";import{registerBuiltinFieldType as a}from"./fieldTypeRegistry";import{translateLabel as f}from"./forms/utils";function p(e){return e?s("span",{style:{color:"var(--muted-foreground)"},children:"\u2014"}):s(m,{variant:"muted",children:"\u2014"})}const c={timestamp:(e,l,n,t)=>{const r=t?.compact??!1;if(e==null||e==="")return p(r);try{return(e instanceof Date?e:new Date(e)).toLocaleString()}catch{return String(e)}},date:(e,l,n,t)=>{const r=t?.compact??!1;if(e==null||e==="")return p(r);try{return(e instanceof Date?e:new Date(e)).toLocaleDateString()}catch{return String(e)}},"datetime-local":(e,l,n,t)=>{const r=t?.compact??!1;if(e==null||e==="")return p(r);try{return(e instanceof Date?e:new Date(e)).toLocaleString()}catch{return String(e)}},time:(e,l,n,t)=>{const r=t?.compact??!1;if(e==null||e==="")return p(r);try{return(e instanceof Date?e:new Date(e)).toLocaleTimeString()}catch{return String(e)}},week:(e,l,n,t)=>{const r=t?.compact??!1;return e==null||e===""?p(r):String(e)},month:(e,l,n,t)=>{const r=t?.compact??!1;return e==null||e===""?p(r):String(e)},boolean:(e,l,n)=>e?"Yes":"No",checkbox:(e,l,n)=>e?"Yes":"No",switch:(e,l,n)=>{const t=l.options?.fieldSpecific;if(t){const r=t.uncheckedValue??!1,o=t.checkedValue??!0;if(e===o&&t.checkedLabel)return f(t.checkedLabel,n);if(e===r&&t.uncheckedLabel)return f(t.uncheckedLabel,n)}return e?"Yes":"No"},year:(e,l,n)=>String(e),number:(e,l,n)=>typeof e=="number"?e.toLocaleString():String(e),currency:(e,l,n)=>{if(e==null||isNaN(e))return"";const t=(l.options||{}).fieldSpecific?.currency||"EUR";return T(e,t)},price:(e,l,n,t)=>{const r=t?.compact??!1,o=t?.asString??!1,i=e!=null&&typeof e=="number"?{amount:e,currency:"EUR",vatIncluded:!0,discountPercent:0}:e;if(i==null||typeof i!="object")return p(r);const d=i.amount;if(d==null||isNaN(d))return p(r);const C=i.currency||"EUR",z=i.vatIncluded??!0,v=i.discountPercent??0,D=v>0?d*(1-v/100):d,h=z?` ${n("crud:price.vatIncluded",{defaultValue:"VAT Incl."})}`:"";if(v>0){const L=T(d,C),x=T(D,C),S=` ${n("crud:price.discountPercent",{percent:Math.round(v),defaultValue:"-{{percent}}%"})}`;return o?`${x}${h}${S}`:r?u(m,{variant:"success",weight:"bold",children:[x,h,S]}):u(g,{direction:"column",gap:"tight",align:"end",children:[s(m,{variant:"muted",style:{textDecoration:"line-through",fontSize:"var(--font-size-sm)"},children:L}),u(m,{variant:"success",weight:"bold",children:[x,h]})]})}return`${T(d,C)}${h}`},range:(e,l,n)=>typeof e=="number"?e.toLocaleString():String(e),rating:(e,l,n,t)=>{const r=t?.compact??!1;if(e==null)return p(r);const o=typeof e=="number"?e:parseFloat(e);if(isNaN(o))return p(r);const i=l.validation?.max??5;return s($,{value:o,max:i,readonly:!0,"aria-label":`${o} out of ${i} stars`})},select:(e,l,n)=>{const t=l.validation?.options;if(Array.isArray(t)){const r=t.find(o=>o.value===e)?.label;return r?f(r,n):String(e)}return String(e)},radio:(e,l,n)=>{const t=l.validation?.options;if(Array.isArray(t)){const r=t.find(o=>o.value===e)?.label;return r?f(r,n):String(e)}return String(e)},combobox:(e,l,n)=>{const t=l.validation?.options;if(Array.isArray(t)){const r=t.find(o=>o.value===e)?.label;return r?f(r,n):String(e)}return String(e)},multiselect:(e,l,n)=>{if(Array.isArray(e)){const t=l.validation?.options;if(Array.isArray(t))return e.map(r=>{const o=t.find(i=>i.value===r)?.label;return o?f(o,n):r}).join(", ")}return String(e)},image:(e,l,n,t)=>{const r=t?.compact??!1;return e==null||e===""?p(r):typeof e=="string"?s("img",{src:e,alt:l.label||"",style:{width:r?"40px":void 0,height:r?"40px":void 0,maxWidth:r?void 0:"200px",maxHeight:r?void 0:"150px",objectFit:"cover",borderRadius:"var(--radius-sm)"}}):p(r)},images:(e,l,n,t)=>{const r=t?.compact??!1;if(!Array.isArray(e)||e.length===0)return p(r);const o=e[0],i=typeof o=="object"&&o.thumbUrl?o.thumbUrl:o;return r?u("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-xs)"},children:[s("img",{src:i,alt:"",style:{width:"40px",height:"40px",objectFit:"cover",borderRadius:"var(--radius-sm)"}}),e.length>1&&u("span",{style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:["+",e.length-1]})]}):s(I,{images:e,altPrefix:l.label||"Image"})},files:(e,l,n,t)=>{const r=t?.compact??!1;return!Array.isArray(e)||e.length===0?p(r):s(g,{gap:"tight",children:e.map((o,i)=>u("a",{href:o.url||o,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none",display:"flex",alignItems:"center",fontSize:"var(--font-size-sm)"},children:[o.filename||`File ${i+1}`,o.size&&u(m,{level:"caption",variant:"muted",style:{marginLeft:"var(--gap-sm)"},children:["(",Math.round(o.size/1024)," KB)"]})]},i))})},documents:(e,l,n,t)=>{const r=t?.compact??!1;return!Array.isArray(e)||e.length===0?p(r):s(g,{gap:"tight",children:e.map((o,i)=>u("a",{href:o.url||o,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none",display:"flex",alignItems:"center",fontSize:"var(--font-size-sm)"},children:[o.filename||`File ${i+1}`,o.size&&u(m,{level:"caption",variant:"muted",style:{marginLeft:"var(--gap-sm)"},children:["(",Math.round(o.size/1024)," KB)"]})]},i))})},file:(e,l,n,t)=>{const r=t?.compact??!1;if(!e)return p(r);const o=typeof e=="string"?e:e.url,i=typeof e=="string"?"View file":e.filename||"View file";return u("a",{href:o,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none"},children:[i,typeof e=="object"&&e.size&&u("span",{style:{color:"var(--muted-foreground)",marginLeft:"var(--gap-sm)"},children:["(",Math.round(e.size/1024)," KB)"]})]})},document:(e,l,n,t)=>{const r=t?.compact??!1;if(!e)return p(r);const o=typeof e=="string"?e:e.url,i=typeof e=="string"?"View file":e.filename||"View file";return u("a",{href:o,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none"},children:[i,typeof e=="object"&&e.size&&u("span",{style:{color:"var(--muted-foreground)",marginLeft:"var(--gap-sm)"},children:["(",Math.round(e.size/1024)," KB)"]})]})},reference:(e,l,n)=>String(e),geopoint:(e,l,n,t)=>{const r=t?.compact??!1;return e&&typeof e=="object"&&"lat"in e&&"lng"in e?`${e.lat.toFixed(6)}, ${e.lng.toFixed(6)}`:p(r)},address:(e,l,n)=>e&&typeof e=="object"&&"formatted_address"in e?e.formatted_address:String(e),map:(e,l,n,t)=>{const r=t?.compact??!1;if(e&&typeof e=="object"){const o=Object.entries(e);return o.length===0?p(r):u(g,{direction:"column",gap:"tight",children:[o.slice(0,5).map(([i,d])=>u(m,{style:{fontSize:"var(--font-size-sm)"},children:[u("strong",{children:[i,":"]})," ",String(d)]},i)),o.length>5&&u(m,{variant:"muted",children:["+",o.length-5," more"]})]})}return p(r)},array:(e,l,n,t)=>{const r=t?.compact??!1;return Array.isArray(e)?e.length===0?p(r):e.join(", "):p(r)},password:()=>"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",email:(e,l,n)=>s("a",{href:`mailto:${e}`,style:{color:"var(--primary)"},onClick:t=>t.stopPropagation(),children:e}),tel:(e,l,n)=>s("a",{href:`tel:${e}`,style:{color:"var(--primary)"},onClick:t=>t.stopPropagation(),children:e}),url:(e,l,n)=>s("a",{href:e,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)"},children:e}),color:(e,l,n)=>u(g,{direction:"row",gap:"tight",align:"center",children:[s("div",{style:{width:"20px",height:"20px",backgroundColor:e,borderRadius:"var(--radius-sm)",border:"1px solid var(--border)"}}),s(m,{children:e})]}),textarea:(e,l,n)=>String(e),text:(e,l,n)=>String(e),richtext:(e,l,n,t)=>{const r=t?.compact??!1;return e&&typeof e=="string"?r?e.replace(/<[^>]*>/g,"").trim()||s("span",{style:{color:"var(--muted-foreground)"},children:"\u2014"}):s("div",{dangerouslySetInnerHTML:{__html:e},style:{padding:"var(--gap-sm)",fontSize:"var(--font-size-sm)",lineHeight:"1.6"}}):p(r)}};function ue(e){return e.type==="avatar"}function ye(e){return e.type==="badge"}let A=!1;function j(){A||(A=!0,a({type:"text",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.text,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:n,label:t,error:r,config:o}=e;return s(F,{label:t||"",value:typeof l=="string"?l:"",onChange:i=>{const d=i.target.value;n(d)},error:r,...o.options})}}}),a({type:"email",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.email,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:n,label:t,error:r,config:o}=e;return s(F,{label:t||"",value:typeof l=="string"?l:"",onChange:i=>{const d=i.target.value;n(d)},error:r,type:"email",...o.options})}}}),a({type:"url",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.url,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:n,label:t,error:r,config:o}=e;return s(F,{label:t||"",value:typeof l=="string"?l:"",onChange:i=>{const d=i.target.value;n(d)},error:r,type:"url",...o.options})}}}),a({type:"color",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.color,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:n,label:t,error:r,config:o}=e;return s(F,{label:t||"",value:typeof l=="string"?l:"",onChange:i=>{const d=i.target.value;n(d)},error:r,type:"color",...o.options})}}}),a({type:"textarea",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.textarea,components:{controlled:X,uncontrolled:e=>{const{value:l,onChange:n,label:t,error:r,config:o}=e;return s(pe,{label:t||"",value:typeof l=="string"?l:"",onChange:i=>{const d=i.target.value;n(d)},error:r,...o.options})}}}),a({type:"richtext",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.richtext,components:{controlled:Z,uncontrolled:e=>{const{value:l,onChange:n,label:t,error:r,config:o}=e;return s(de,{label:t||"",value:typeof l=="string"?l:"",onChange:i=>{const d=i.target.value;n(d)},error:r,...o.options})}}}),a({type:"password",filterable:!1,filterType:"none",valueType:"string",displayFormatter:c.password,components:{controlled:G}}),a({type:"tel",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.tel,components:{controlled:O}}),a({type:"number",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.number,components:{controlled:Y}}),a({type:"currency",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.currency,components:{controlled:oe}}),a({type:"price",filterable:!0,filterType:"range",valueType:"object",displayFormatter:c.price,components:{controlled:ae}}),a({type:"range",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.range,components:{controlled:W}}),a({type:"year",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.year,components:{controlled:Q}}),a({type:"rating",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.rating,components:{controlled:q}}),a({type:"boolean",filterable:!0,filterType:"select",valueType:"boolean",displayFormatter:c.boolean,components:{controlled:w}}),a({type:"checkbox",filterable:!0,filterType:"select",valueType:"boolean",displayFormatter:c.checkbox,components:{controlled:w}}),a({type:"gdprConsent",filterable:!0,filterType:"select",valueType:"object",components:{controlled:ne}}),a({type:"switch",filterable:!0,filterType:"select",valueType:"boolean",displayFormatter:c.switch,components:{controlled:re}}),a({type:"date",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.date,components:{controlled:b}}),a({type:"datetime-local",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c["datetime-local"],components:{controlled:b}}),a({type:"time",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.time,components:{controlled:b}}),a({type:"week",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.week,components:{controlled:b}}),a({type:"month",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.month,components:{controlled:b}}),a({type:"timestamp",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.timestamp,components:{controlled:ee}}),a({type:"file",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.file,components:{controlled:N}}),a({type:"files",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.files,components:{controlled:P}}),a({type:"document",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.document,components:{controlled:V}}),a({type:"documents",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.documents,components:{controlled:_}}),a({type:"image",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.image,components:{controlled:E}}),a({type:"images",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.images,components:{controlled:le}}),a({type:"geopoint",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.geopoint,components:{controlled:B}}),a({type:"address",filterable:!0,filterType:"address",valueType:"object",displayFormatter:c.address,components:{controlled:te}}),a({type:"map",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.map,components:{controlled:U}}),a({type:"array",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.array,components:{controlled:K}}),a({type:"select",filterable:!0,filterType:"select",valueType:"string",displayFormatter:c.select,components:{controlled:R}}),a({type:"combobox",filterable:!0,filterType:"select",valueType:"string",displayFormatter:c.combobox,components:{controlled:M}}),a({type:"multiselect",filterable:!0,filterType:"multiselect",valueType:"array",displayFormatter:c.multiselect,components:{controlled:H}}),a({type:"radio",filterable:!0,filterType:"select",valueType:"string",displayFormatter:c.radio,components:{controlled:J}}),a({type:"reference",filterable:!0,filterType:"text",valueType:"string",components:{controlled:y}}),a({type:"hidden",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{name:l,value:n}=e;return s(se,{name:l,value:typeof n=="string"?n:""})}}}),a({type:"avatar",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:n,error:t,config:r,t:o}=e;if(!ue(r))throw new Error("Invalid config type for avatar field");return s(ie,{config:r,value:typeof l=="string"?l:"",onChange:i=>{n(i)},error:!!t,helperText:t||void 0,t:o,...r.options})}}}),a({type:"badge",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:n,error:t,config:r,t:o}=e;if(!ye(r))throw new Error("Invalid config type for badge field");return s(ce,{config:r,value:typeof l=="string"?l:"",onChange:i=>{n(i)},error:!!t,helperText:t||void 0,t:o,...r.options})}}}),a({type:"submit",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{name:l,label:n,config:t}=e;return s(k,{label:n||l,type:"submit",onClick:()=>{},...t.options})}}}),a({type:"reset",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{name:l,label:n,config:t}=e;return s(k,{label:n||l,type:"reset",onClick:()=>{},...t.options})}}}))}j();export{j as registerAllBuiltinFieldTypes};
1
+ "use client";import{jsx as p,jsxs as u}from"react/jsx-runtime";import{Text as m,Stack as b,ImageGallery as I,Rating as $,CopyToClipboard as k}from"@donotdev/components";import{formatCurrency as x}from"@donotdev/core";import{ControlledCheckboxField as A,ControlledComboboxField as v,ControlledDateField as T,ControlledDropdownField as N,ControlledFileField as P,ControlledMultiFileField as M,ControlledDocumentField as _,ControlledMultiDocumentField as R,ControlledGeoPointField as B,ControlledImageField as E,ControlledMapField as U,ControlledMultiDropdownField as H,ControlledMultiInputField as K,ControlledNumberField as O,ControlledPasswordField as Y,ControlledPhoneField as G,ControlledRangeField as W,ControlledRatingField as q,ControlledDurationField as J,ControlledRadioField as Q,ControlledYearField as X,ControlledTextField as y,ControlledTextareaField as Z,ControlledRichTextField as ee,ControlledTimestampField as te,ControlledAddressField as re,ControlledSwitchField as ne,ControlledMultiImageField as oe,ControlledGdprConsentField as le,ControlledCurrencyField as ie,ControlledPriceField as ae}from"./components/controlled";import{AvatarFieldComponent as ce,BadgeFieldComponent as se,ButtonFieldComponent as D,HiddenFieldComponent as pe,TextAreaComponent as de,RichTextComponent as fe,TextFieldComponent as C}from"./components/form/fields";import{registerBuiltinFieldType as a}from"./fieldTypeRegistry";import{translateLabel as h}from"./forms/utils";function d(e){return e?p("span",{style:{color:"var(--muted-foreground)"},children:"\u2014"}):p(m,{variant:"muted",children:"\u2014"})}const c={timestamp:(e,l,o,t)=>{const r=t?.compact??!1;if(e==null||e==="")return d(r);try{return(e instanceof Date?e:new Date(e)).toLocaleString()}catch{return String(e)}},date:(e,l,o,t)=>{const r=t?.compact??!1;if(e==null||e==="")return d(r);try{return(e instanceof Date?e:new Date(e)).toLocaleDateString()}catch{return String(e)}},"datetime-local":(e,l,o,t)=>{const r=t?.compact??!1;if(e==null||e==="")return d(r);try{return(e instanceof Date?e:new Date(e)).toLocaleString()}catch{return String(e)}},time:(e,l,o,t)=>{const r=t?.compact??!1;if(e==null||e==="")return d(r);try{return(e instanceof Date?e:new Date(e)).toLocaleTimeString()}catch{return String(e)}},week:(e,l,o,t)=>{const r=t?.compact??!1;return e==null||e===""?d(r):String(e)},month:(e,l,o,t)=>{const r=t?.compact??!1;return e==null||e===""?d(r):String(e)},boolean:(e,l,o)=>e?"Yes":"No",checkbox:(e,l,o)=>e?"Yes":"No",switch:(e,l,o)=>{const t=l.options?.fieldSpecific;if(t){const r=t.uncheckedValue??!1,n=t.checkedValue??!0;if(e===n&&t.checkedLabel)return h(t.checkedLabel,o);if(e===r&&t.uncheckedLabel)return h(t.uncheckedLabel,o)}return e?"Yes":"No"},year:(e,l,o)=>String(e),number:(e,l,o)=>typeof e=="number"?e.toLocaleString():String(e),currency:(e,l,o)=>{if(e==null||isNaN(e))return"";const n=(l.options||{}).fieldSpecific?.currency||"EUR";return x(e,n)},price:(e,l,o,t)=>{const r=t?.compact??!1,n=t?.asString??!1,i=e!=null&&typeof e=="number"?{amount:e,currency:"EUR",vatIncluded:!0,discountPercent:0}:e;if(i==null||typeof i!="object")return d(r);const s=i.amount;if(s==null||isNaN(s))return d(r);const f=i.currency||"EUR",V=i.vatIncluded??!0,g=i.discountPercent??0,S=g>0?s*(1-g/100):s,F=V?` ${o("crud:price.vatIncluded",{defaultValue:"VAT Incl."})}`:"";if(g>0){const z=x(s,f),w=x(S,f),j=` ${o("crud:price.discountPercent",{percent:Math.round(g),defaultValue:"-{{percent}}%"})}`;return n?`${w}${F}${j}`:r?u(m,{variant:"success",weight:"bold",children:[w,F,j]}):u(b,{direction:"column",gap:"tight",align:"end",children:[p(m,{variant:"muted",style:{textDecoration:"line-through",fontSize:"var(--font-size-sm)"},children:z}),u(m,{variant:"success",weight:"bold",children:[w,F]})]})}return`${x(s,f)}${F}`},range:(e,l,o)=>typeof e=="number"?e.toLocaleString():String(e),rating:(e,l,o,t)=>{const r=t?.compact??!1;if(e==null)return d(r);const n=typeof e=="number"?e:parseFloat(e);if(isNaN(n))return d(r);const i=l.validation?.max??5;return p($,{value:n,max:i,readonly:!0,"aria-label":`${n} out of ${i} stars`})},duration:(e,l,o,t)=>{const r=t?.compact??!1;if(e==null)return d(r);const n=typeof e=="number"?e:parseInt(String(e),10);if(Number.isNaN(n))return d(r);if(n===0)return o("crud:duration.zero",{defaultValue:"\u2014"});if(n<60)return o("crud:duration.minutes",{count:n,defaultValue:`${n} min`});const i=Math.floor(n/60),s=n%60;return o("crud:duration.hoursMinutes",{hours:i,minutes:s,defaultValue:s===0?`${i}h`:`${i}h ${s}min`})},gdprConsent:(e,l,o,t)=>{const r=t?.compact??!1;if(!e||typeof e!="object")return d(r);const n=e.gdprConsent===!0,i=e.gdprConsentDate,s=e.gdprConsentVersion,f=o("crud:gdprConsent.display.yes",{defaultValue:"Consented"}),V=o("crud:gdprConsent.display.no",{defaultValue:"Not consented"});if(!n)return V;const g=[f];if(i)try{const S=new Date(i);g.push(S.toLocaleDateString())}catch{g.push(i)}return s&&g.push(`v${s}`),g.join(" \xB7 ")},select:(e,l,o)=>{const t=l.validation?.options;if(Array.isArray(t)){const n=t.find(i=>i.value===e)?.label;return n?h(n,o):String(e)}return String(e)},radio:(e,l,o)=>{const t=l.validation?.options;if(Array.isArray(t)){const n=t.find(i=>i.value===e)?.label;return n?h(n,o):String(e)}return String(e)},combobox:(e,l,o)=>{const t=l.validation?.options;if(Array.isArray(t)){const n=t.find(i=>i.value===e)?.label;return n?h(n,o):String(e)}return String(e)},multiselect:(e,l,o)=>{if(Array.isArray(e)){const t=l.validation?.options;if(Array.isArray(t))return e.map(n=>{const s=t.find(f=>f.value===n)?.label;return s?h(s,o):n}).join(", ")}return String(e)},image:(e,l,o,t)=>{const r=t?.compact??!1;return e==null||e===""?d(r):typeof e=="string"?p("img",{src:e,alt:l.label||"",style:{width:r?"40px":void 0,height:r?"40px":void 0,maxWidth:r?void 0:"200px",maxHeight:r?void 0:"150px",objectFit:"cover",borderRadius:"var(--radius-sm)"}}):d(r)},images:(e,l,o,t)=>{const r=t?.compact??!1;if(!Array.isArray(e)||e.length===0)return d(r);const n=e[0],i=typeof n=="object"&&n.thumbUrl?n.thumbUrl:n;return r?u("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-xs)"},children:[p("img",{src:i,alt:"",style:{width:"40px",height:"40px",objectFit:"cover",borderRadius:"var(--radius-sm)"}}),e.length>1&&u("span",{style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:["+",e.length-1]})]}):p(I,{images:e,altPrefix:l.label||"Image"})},files:(e,l,o,t)=>{const r=t?.compact??!1;return!Array.isArray(e)||e.length===0?d(r):p(b,{gap:"tight",children:e.map((n,i)=>u("a",{href:n.url||n,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none",display:"flex",alignItems:"center",fontSize:"var(--font-size-sm)"},children:[n.filename||`File ${i+1}`,n.size&&u(m,{level:"caption",variant:"muted",style:{marginLeft:"var(--gap-sm)"},children:["(",Math.round(n.size/1024)," KB)"]})]},i))})},documents:(e,l,o,t)=>{const r=t?.compact??!1;return!Array.isArray(e)||e.length===0?d(r):p(b,{gap:"tight",children:e.map((n,i)=>u("a",{href:n.url||n,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none",display:"flex",alignItems:"center",fontSize:"var(--font-size-sm)"},children:[n.filename||`File ${i+1}`,n.size&&u(m,{level:"caption",variant:"muted",style:{marginLeft:"var(--gap-sm)"},children:["(",Math.round(n.size/1024)," KB)"]})]},i))})},file:(e,l,o,t)=>{const r=t?.compact??!1;if(!e)return d(r);const n=typeof e=="string"?e:e.url,i=typeof e=="string"?"View file":e.filename||"View file";return u("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none"},children:[i,typeof e=="object"&&e.size&&u("span",{style:{color:"var(--muted-foreground)",marginLeft:"var(--gap-sm)"},children:["(",Math.round(e.size/1024)," KB)"]})]})},document:(e,l,o,t)=>{const r=t?.compact??!1;if(!e)return d(r);const n=typeof e=="string"?e:e.url,i=typeof e=="string"?"View file":e.filename||"View file";return u("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"none"},children:[i,typeof e=="object"&&e.size&&u("span",{style:{color:"var(--muted-foreground)",marginLeft:"var(--gap-sm)"},children:["(",Math.round(e.size/1024)," KB)"]})]})},reference:(e,l,o,t)=>{const r=t?.compact??!1;if(!e)return d(r);if(typeof e=="object"&&e!==null){const n=e.displayName||e.name||e.id||String(e);return String(n)}return String(e)},geopoint:(e,l,o,t)=>{const r=t?.compact??!1;return e&&typeof e=="object"&&"lat"in e&&"lng"in e?`${e.lat.toFixed(6)}, ${e.lng.toFixed(6)}`:d(r)},address:(e,l,o)=>e&&typeof e=="object"&&"formatted_address"in e?e.formatted_address:String(e),map:(e,l,o,t)=>{const r=t?.compact??!1;if(e&&typeof e=="object"){const n=Object.entries(e);return n.length===0?d(r):u(b,{direction:"column",gap:"tight",children:[n.slice(0,5).map(([i,s])=>u(m,{style:{fontSize:"var(--font-size-sm)"},children:[u("strong",{children:[i,":"]})," ",String(s)]},i)),n.length>5&&u(m,{variant:"muted",children:["+",n.length-5," more"]})]})}return d(r)},array:(e,l,o,t)=>{const r=t?.compact??!1;return Array.isArray(e)?e.length===0?d(r):e.join(", "):d(r)},password:()=>"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",email:(e,l,o)=>u(b,{direction:"row",gap:"tight",align:"center",children:[p("a",{href:`mailto:${e}`,style:{color:"var(--primary)",flex:1},onClick:t=>t.stopPropagation(),children:e}),p(k,{text:e,tooltipText:o("crud:copyToClipboard",{defaultValue:"Copy to clipboard"}),ariaLabel:o("crud:actions.copyEmail",{defaultValue:"Copy email"}),onClick:t=>t.stopPropagation()})]}),tel:(e,l,o)=>u(b,{direction:"row",gap:"tight",align:"center",children:[p("a",{href:`tel:${e}`,style:{color:"var(--primary)",flex:1},onClick:t=>t.stopPropagation(),children:e}),p(k,{text:e,tooltipText:o("crud:copyToClipboard",{defaultValue:"Copy to clipboard"}),ariaLabel:o("crud:actions.copyPhone",{defaultValue:"Copy phone"}),onClick:t=>t.stopPropagation()})]}),iban:(e,l,o,t)=>{const r=t?.compact??!1;return e?u(b,{direction:"row",gap:"tight",align:"center",children:[p(m,{style:{flex:1},children:e}),p(k,{text:e,tooltipText:o("crud:copyToClipboard",{defaultValue:"Copy to clipboard"}),ariaLabel:o("crud:actions.copyIban",{defaultValue:"Copy IBAN"}),onClick:n=>n.stopPropagation()})]}):d(r)},url:(e,l,o)=>p("a",{href:e,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)"},children:e}),color:(e,l,o)=>u(b,{direction:"row",gap:"tight",align:"center",children:[p("div",{style:{width:"20px",height:"20px",backgroundColor:e,borderRadius:"var(--radius-sm)",border:"1px solid var(--border)"}}),p(m,{children:e})]}),textarea:(e,l,o)=>String(e),text:(e,l,o)=>String(e),richtext:(e,l,o,t)=>{const r=t?.compact??!1;return e&&typeof e=="string"?r?e.replace(/<[^>]*>/g,"").trim()||p("span",{style:{color:"var(--muted-foreground)"},children:"\u2014"}):p("div",{dangerouslySetInnerHTML:{__html:e},style:{padding:"var(--gap-sm)",fontSize:"var(--font-size-sm)",lineHeight:"1.6"}}):d(r)}};function ue(e){return e.type==="avatar"}function ye(e){return e.type==="badge"}let L=!1;function me(){L||(L=!0,a({type:"text",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.text,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(C,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value;o(f)},error:r,...n.options})}}}),a({type:"email",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.email,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(C,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value;o(f)},error:r,type:"email",...n.options})}}}),a({type:"url",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.url,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(C,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value;o(f)},error:r,type:"url",...n.options})}}}),a({type:"color",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.color,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(C,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value;o(f)},error:r,type:"color",...n.options})}}}),a({type:"textarea",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.textarea,components:{controlled:Z,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(de,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value;o(f)},error:r,...n.options})}}}),a({type:"richtext",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.richtext,components:{controlled:ee,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(fe,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value;o(f)},error:r,...n.options})}}}),a({type:"password",filterable:!1,filterType:"none",valueType:"string",displayFormatter:c.password,components:{controlled:Y}}),a({type:"tel",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.tel,components:{controlled:G}}),a({type:"iban",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.iban,components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,label:t,error:r,config:n}=e;return p(C,{label:t||"",value:typeof l=="string"?l:"",onChange:s=>{const f=s.target.value.replace(/\s/g,"").toUpperCase();o(f)},error:r,...n.options})}}}),a({type:"number",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.number,components:{controlled:O}}),a({type:"currency",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.currency,components:{controlled:ie}}),a({type:"price",filterable:!0,filterType:"range",valueType:"object",displayFormatter:c.price,components:{controlled:ae}}),a({type:"range",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.range,components:{controlled:W}}),a({type:"year",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.year,components:{controlled:X}}),a({type:"rating",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.rating,components:{controlled:q}}),a({type:"duration",filterable:!0,filterType:"range",valueType:"number",displayFormatter:c.duration,components:{controlled:J}}),a({type:"boolean",filterable:!0,filterType:"select",valueType:"boolean",displayFormatter:c.boolean,components:{controlled:A}}),a({type:"checkbox",filterable:!0,filterType:"select",valueType:"boolean",displayFormatter:c.checkbox,components:{controlled:A}}),a({type:"gdprConsent",filterable:!0,filterType:"select",valueType:"object",displayFormatter:c.gdprConsent,components:{controlled:le}}),a({type:"switch",filterable:!0,filterType:"select",valueType:"boolean",displayFormatter:c.switch,components:{controlled:ne}}),a({type:"date",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.date,components:{controlled:T}}),a({type:"datetime-local",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c["datetime-local"],components:{controlled:T}}),a({type:"time",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.time,components:{controlled:T}}),a({type:"week",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.week,components:{controlled:T}}),a({type:"month",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.month,components:{controlled:T}}),a({type:"timestamp",filterable:!0,filterType:"range",valueType:"date",displayFormatter:c.timestamp,components:{controlled:te}}),a({type:"file",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.file,components:{controlled:P}}),a({type:"files",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.files,components:{controlled:M}}),a({type:"document",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.document,components:{controlled:_}}),a({type:"documents",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.documents,components:{controlled:R}}),a({type:"image",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.image,components:{controlled:E}}),a({type:"images",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.images,components:{controlled:oe}}),a({type:"geopoint",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.geopoint,components:{controlled:B}}),a({type:"address",filterable:!0,filterType:"address",valueType:"object",displayFormatter:c.address,components:{controlled:re}}),a({type:"map",filterable:!1,filterType:"none",valueType:"object",displayFormatter:c.map,components:{controlled:U}}),a({type:"array",filterable:!1,filterType:"none",valueType:"array",displayFormatter:c.array,components:{controlled:K}}),a({type:"select",filterable:!0,filterType:"select",valueType:"string",displayFormatter:c.select,components:{controlled:N}}),a({type:"combobox",filterable:!0,filterType:"select",valueType:"string",displayFormatter:c.combobox,components:{controlled:v}}),a({type:"multiselect",filterable:!0,filterType:"multiselect",valueType:"array",displayFormatter:c.multiselect,components:{controlled:H}}),a({type:"radio",filterable:!0,filterType:"select",valueType:"string",displayFormatter:c.radio,components:{controlled:Q}}),a({type:"reference",filterable:!0,filterType:"text",valueType:"string",displayFormatter:c.reference,components:{controlled:y}}),a({type:"hidden",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{name:l,value:o}=e;return p(pe,{name:l,value:typeof o=="string"?o:""})}}}),a({type:"avatar",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,error:t,config:r,t:n}=e;if(!ue(r))throw new Error("Invalid config type for avatar field");return p(ce,{config:r,value:typeof l=="string"?l:"",onChange:s=>{o(s)},error:!!t,helperText:t||void 0,t:n,...r.options})}}}),a({type:"badge",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{value:l,onChange:o,error:t,config:r,t:n}=e;if(!ye(r))throw new Error("Invalid config type for badge field");return p(se,{config:r,value:typeof l=="string"?l:"",onChange:s=>{o(s)},error:!!t,helperText:t||void 0,t:n,...r.options})}}}),a({type:"submit",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{name:l,label:o,config:t}=e;return p(D,{label:o||l,type:"submit",onClick:()=>{},...t.options})}}}),a({type:"reset",filterable:!1,filterType:"none",valueType:"string",components:{controlled:y,uncontrolled:e=>{const{name:l,label:o,config:t}=e;return p(D,{label:o||l,type:"reset",onClick:()=>{},...t.options})}}}))}me();export{me as registerAllBuiltinFieldTypes};