directus-extension-field-actions
Version:
Add advanced link & copy functionalities to your directus fields. Supports interfaces as well as displays.
2 lines (1 loc) • 22.8 kB
JavaScript
import{useStores as e,defineInterface as t,defineDisplay as n}from"@directus/extensions-sdk";import{computed as o,defineComponent as a,ref as i,resolveComponent as l,openBlock as c,createElementBlock as d,renderSlot as r,createVNode as s,withCtx as p,createTextVNode as u,toDisplayString as f,unref as m,createElementVNode as y,resolveDirective as k,createCommentVNode as v,withDirectives as h,createBlock as g,withModifiers as b,createSlots as _,normalizeClass as w,mergeDefaults as L,resolveDynamicComponent as C}from"vue";import{useI18n as T}from"vue-i18n";function x(){const{t:t}=T(),{useNotificationsStore:n}=e(),a=n(),i=o(()=>!!navigator?.clipboard?.writeText),l=o(()=>!!navigator?.clipboard?.readText);return{isCopySupported:i,isPasteSupported:l,copyToClipboard:async function(e,n){try{if(!i.value)throw new Error("Clipboard API not supported");return await navigator.clipboard.writeText(e),a.add({title:n?.success??t("copy_raw_value_success")}),!0}catch(e){return a.add({type:"error",title:n?.fail??t("copy_raw_value_fail")}),!1}},pasteFromClipboard:async function(e,n){try{const o=await(navigator?.clipboard?.readText());return e.add({title:n?.success??t("paste_raw_value_success")}),o}catch(o){return e.add({type:"error",title:n?.fail??t("paste_raw_value_fail")}),null}}}}function S(e,t){return e.replace(/(\{\{\s*(\w+)\s*\}\})/g,(e,n,o)=>t.hasOwnProperty(o)&&"string"==typeof t[o]?t[o]:e)}function A(t){const n={project_url:e().useSettingsStore().settings?.project_url||""};return{computedLink:o(()=>{if(!t.linkPrefix)return t.value;return`${S(t.linkPrefix,n)}${t.value}`}),computedCopyValue:o(()=>{if(!t.copyPrefix)return t.value;return`${S(t.copyPrefix,n)}${t.value}`})}}const B={class:"defa-link-preview"};var P=a({__name:"LinkWrapper",props:{target:{type:String,default:"_blank"},href:{type:[String,null],required:!0},safeMode:{type:Boolean,default:!1}},setup(e){const t=e,{t:n}=T(),o=i(!1);function a(e){if(!t.href)return;const n=new URL(t.href,window.location.origin).origin!==window.location.origin;t.safeMode&&n?o.value=!0:window.open(t.href,t.target,"noopener, noreferrer")}return(i,k)=>{const v=l("v-card-title"),h=l("v-card-text"),g=l("v-button"),b=l("v-card-actions"),_=l("v-card"),w=l("v-dialog");return c(),d("div",{class:"defa-link-wrapper",onClick:a},[r(i.$slots,"default",{},void 0,!0),s(w,{"model-value":o.value,onEsc:k[2]||(k[2]=e=>o.value=!1),"onUpdate:modelValue":k[3]||(k[3]=e=>o.value=!1)},{default:p(()=>[s(_,null,{default:p(()=>[s(v,null,{default:p(()=>[u(f(m(n)("field_actions.open_link_confirm")),1)]),_:1}),s(h,null,{default:p(()=>[y("div",B,[y("code",null,f(t.href),1)]),y("em",null,f(m(n)("field_actions.note"))+": "+f(m(n)("field_actions.open_link_confirm_disable_note")),1)]),_:1}),s(b,null,{default:p(()=>[s(g,{secondary:"",onClick:k[0]||(k[0]=e=>o.value=!1)},{default:p(()=>[u(f(m(n)("cancel")),1)]),_:1}),s(g,{href:e.href,target:e.target,onClick:k[1]||(k[1]=e=>o.value=!1)},{default:p(()=>[...k[4]||(k[4]=[u(" Open link ",-1)])]),_:1},8,["href","target"])]),_:1})]),_:1})]),_:1},8,["model-value"])])}}}),E=[],M=[];function N(e,t){if(e&&"undefined"!=typeof document){var n,o=!0===t.prepend?"prepend":"append",a=!0===t.singleTag,i="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(a){var l=E.indexOf(i);-1===l&&(l=E.push(i)-1,M[l]={}),n=M[l]&&M[l][o]?M[l][o]:M[l][o]=c()}else n=c();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),a=0;a<n.length;a++)e.setAttribute(n[a],t.attributes[n[a]]);var l="prepend"===o?"afterbegin":"beforeend";return i.insertAdjacentElement(l,e),e}}N(".defa-link-preview[data-v-ba7f1fc2] {\n background-color: var(--theme--background-normal);\n padding: 1rem;\n}\n\nem[data-v-ba7f1fc2] {\n display: block;\n font-size: 0.875rem;\n margin-top: 0.5rem;\n}\n\ncode[data-v-ba7f1fc2] {\n overflow-wrap: break-word;\n}",{});var $=(e,t)=>{const n=e.__vccOpts||e;for(const[e,o]of t)n[e]=o;return n},I=$(P,[["__scopeId","data-v-ba7f1fc2"]]);const O={class:"defa-click-action-wrapper"};var j=a({__name:"ClickActionWrapper",props:{clickAction:{},computedLink:{},openLinkAsNewTab:{type:Boolean},openLinkSafeMode:{},actionTooltip:{},disabled:{type:Boolean}},emits:["copy"],setup(e,{emit:t}){const n=e,o=t;return(t,a)=>{const i=k("tooltip");return c(),d("div",O,[v(" NOTE: use @click.stop to prevent parent/item click handlers (e.g., opening the item page) "),"link"===e.clickAction?h((c(),g(I,{key:0,href:e.computedLink,target:e.openLinkAsNewTab?"_blank":"_self",safeMode:"always"===e.openLinkSafeMode,onClick:a[0]||(a[0]=b(()=>{},["stop"]))},{default:p(()=>[r(t.$slots,"default",{},void 0,!0)]),_:3},8,["href","target","safeMode"])),[[i,e.actionTooltip]]):h((c(),d("div",{key:1,onClick:a[1]||(a[1]=e=>function(e){"copy"===n.clickAction&&n.disabled&&(e.stopPropagation(),o("copy"))}(e))},[r(t.$slots,"default",{},void 0,!0)])),[[i,e.actionTooltip]])])}}});N(".defa-click-action-wrapper[data-v-b7396ec4],\n.defa-click-action-wrapper div[data-v-b7396ec4] {\n width: 100%;\n}",{});var U=$(j,[["__scopeId","data-v-b7396ec4"]]);function D(e){const{isCopySupported:t}=x(),{t:n}=T(),a=o(()=>!1===t.value?n("field_actions.copy_not_supported"):e.useCustomCopyTooltip?e.customCopyTooltip:n("field_actions.copy_value")),i=o(()=>e.useCustomLinkTooltip?e.customLinkTooltip:n("field_actions.open_link")),l=o(()=>"copy"===e.clickAction?a.value:"link"===e.clickAction?i.value:null);return{copyTooltip:a,linkTooltip:i,actionTooltip:l}}const V={field_actions:{copy_value:"Wert kopieren",copy_not_supported:"Kopieren nicht unterstützt",open_link:"Link öffnen",note:"Hinweis",open_link_confirm:"Möchten Sie diesen Link wirklich öffnen?",open_link_confirm_disable_note:"Sie können diese Warnung dauerhaft in den Anzeige- / Interface-Einstellungen deaktivieren"}},R={field_actions:{copy_value:"Copy value",copy_not_supported:"Copying not supported",open_link:"Open link",note:"Note",open_link_confirm:"Are you sure you want to open this link?",open_link_confirm_disable_note:"You can permanently disable this warning in the display / interface settings"}},W={field_actions:{copy_value:"Copiar valor",copy_not_supported:"Cópia não suportada",open_link:"Abrir link",note:"Nota",open_link_confirm:"Tem certeza de que deseja abrir este link?",open_link_confirm_disable_note:"Pode desativar permanentemente este aviso nas configurações de interface / visualização"}},z=new Set;function F(){const e={"en-CA":R,"en-GB":R,"en-US":R,"de-DE":V,"pt-BR":W,"pt-PT":W};return{loadLocaleMessages:function(){const{locale:t,mergeLocaleMessage:n}=T();z.has("en-US")||(n("en-US",e["en-US"]),z.add("en-US")),e[t.value]&&!z.has(t.value)&&(n(t.value,e[t.value]),z.add(t.value))}}}const q={showCopy:!1,copyPosition:"end",copyPrefix:"",useCustomCopyTooltip:!1,customCopyTooltip:"Copy value",showLink:!1,linkPosition:"end",linkPrefix:"",useCustomLinkTooltip:!1,customLinkTooltip:"Open link",openLinkAsNewTab:!0,openLinkSafeMode:"always"};function H(e,t){return[...[{field:"groupCopySettings",name:"Copy item settings",type:"alias",meta:{field:"groupCopySettings",interface:"group-detail",special:["alias","no-data","group"],options:{start:"closed",headerIcon:"content_copy"}}},{field:"groupLinkSettings",name:"Link item settings",type:"alias",meta:{field:"groupLinkSettings",interface:"group-detail",special:["alias","no-data","group"],options:{start:"closed",headerIcon:"open_in_new"}}},{field:"groupCopySettingsEnabled",type:"alias",meta:{field:"groupCopySettingsEnabled",interface:"group-raw",special:["alias","no-data","group"],group:"groupCopySettings",readonly:K(e,t,"showCopy",!1)}},{field:"groupLinkSettingsEnabled",type:"alias",meta:{field:"groupLinkSettingsEnabled",interface:"group-raw",special:["alias","no-data","group"],group:"groupLinkSettings",readonly:K(e,t,"showLink",!1)}}],...[{field:"showCopy",name:"Display copy icon",type:"boolean",meta:{width:"full",interface:"boolean",options:{label:"Display a copy button next to the item"},group:"groupCopySettings",sort:1},schema:{default_value:!1}},{field:"copyPosition",name:"Copy icon position",type:"string",meta:{width:"half",interface:"select-radio",options:{choices:[{text:"Start",value:"start"},{text:"End",value:"end"}]},group:"groupCopySettingsEnabled"},schema:{default_value:"end"}},{field:"copyPrefix",name:"Copy value prefix",type:"string",meta:{width:"half",interface:"select-dropdown",options:{placeholder:"Enter prefix or select variable",choices:[{text:"{{ project_url }}",value:"{{ project_url }}"},{text:"https://",value:"https://"}],allowOther:!0,allowNone:!0},note:"Copies the field value with the given prefix. Available variables: {{ project_url }}",group:"groupCopySettingsEnabled"},schema:{default_value:""}},{field:"useCustomCopyTooltip",name:"Custom Tooltip",type:"boolean",meta:{width:"half",interface:"boolean",options:{label:"Enable"},note:"Use a custom tooltip for the copy button",group:"groupCopySettingsEnabled"},schema:{default_value:!1}},{field:"customCopyTooltip",name:"Tooltip content",type:"string",meta:{width:"half",interface:"system-input-translated-string",group:"groupCopySettingsEnabled",hidden:K(e,t,"useCustomCopyTooltip",!1)},schema:{default_value:"Copy value"}}],...[{field:"showLink",name:"Display link icon",type:"boolean",meta:{width:"full",interface:"boolean",options:{label:"Display a link button next to the item"},group:"groupLinkSettings",sort:1},schema:{default_value:!1}},{field:"linkPosition",name:"Link icon position",type:"string",meta:{width:"half",interface:"select-radio",options:{choices:[{text:"Start",value:"start"},{text:"End",value:"end"}]},group:"groupLinkSettingsEnabled"},schema:{default_value:"end"}},{field:"linkPrefix",name:"Link value prefix",type:"string",meta:{width:"half",interface:"select-dropdown",options:{placeholder:"Enter prefix or select variable",choices:[{text:"{{ project_url }}",value:"{{ project_url }}"},{text:"Mail-Link (mailto:)",value:"mailto:"},{text:"Phone-Link (tel:)",value:"tel:"},{text:"https://",value:"https://"}],allowOther:!0,allowNone:!0},note:"Links to the field value with the given prefix. Available variables: {{ project_url }}",group:"groupLinkSettingsEnabled"},schema:{default_value:""}},{field:"useCustomLinkTooltip",name:"Custom Tooltip",type:"boolean",meta:{width:"half",interface:"boolean",options:{label:"Enable"},note:"Use a custom tooltip for the link button",group:"groupLinkSettingsEnabled"},schema:{default_value:!1}},{field:"customLinkTooltip",name:"Tooltip content",type:"string",meta:{width:"half",interface:"system-input-translated-string",group:"groupLinkSettingsEnabled",hidden:K(e,t,"useCustomLinkTooltip",!1)},schema:{default_value:"Open link"}},{field:"openLinkAsNewTab",name:"Link target",type:"boolean",meta:{width:"full",interface:"select-radio",options:{choices:[{text:"New Tab",value:!0},{text:"Current Tab",value:!1}]},group:"groupLinkSettingsEnabled"},schema:{default_value:!0}},{field:"openLinkSafeMode",name:"Link safe mode",type:"string",meta:{width:"full",interface:"select-radio",note:"Choose when to display a confirmation dialog before following external links. The dialog shows the target URL and requires user confirmation.",options:{choices:[{text:"Never",value:"never"},{text:"Always",value:"always"}]},group:"groupLinkSettingsEnabled"},schema:{default_value:"always"}}]]}function G(e){const t=[{text:"Copy to clipboard",value:"copy"},{text:"Default click action",value:"default"}];return e&&t.push({text:"Open link",value:"link"}),t}function K(e,t,n,o){const a="display"===t?e.meta?.display_options:e.meta?.options;return(a?.[n]??!1)===o}const Y={class:"defa-action-interface"};var J=a({__name:"interface",props:L({value:{},type:{},disabled:{type:Boolean},placeholder:{},iconLeft:{},iconRight:{},clickAction:{},min:{},max:{},step:{},showCopy:{type:Boolean},copyPosition:{},copyPrefix:{},useCustomCopyTooltip:{type:Boolean},customCopyTooltip:{},showLink:{type:Boolean},linkPosition:{},linkPrefix:{},useCustomLinkTooltip:{type:Boolean},customLinkTooltip:{},openLinkAsNewTab:{type:Boolean},openLinkSafeMode:{}},{value:null,disabled:!1,placeholder:null,iconLeft:null,iconRight:null,clickAction:"default",min:void 0,max:void 0,step:1,...q}),emits:["input"],setup(e,{emit:t}){const n=e;F().loadLocaleMessages();const{isCopySupported:a,copyToClipboard:i}=x(),{computedLink:r,computedCopyValue:u}=A(n),{copyTooltip:f,linkTooltip:y,actionTooltip:L}=D({clickAction:n.clickAction,useCustomCopyTooltip:n.useCustomCopyTooltip,customCopyTooltip:n.customCopyTooltip,useCustomLinkTooltip:n.useCustomLinkTooltip,customLinkTooltip:n.customLinkTooltip}),C=o(()=>["bigInteger","integer","float","decimal"].includes(n.type)?"number":"text");async function T(){await i(`${u.value}`)}return(t,n)=>{const o=l("v-icon"),i=l("v-input"),u=l("v-button"),x=k("tooltip");return c(),d("div",Y,[s(U,{"click-action":e.clickAction,"computed-link":m(r),"open-link-as-new-tab":e.openLinkAsNewTab,"open-link-safe-mode":e.openLinkSafeMode,"action-tooltip":m(L),disabled:e.disabled,onCopy:T},{default:p(()=>[s(i,{"model-value":e.value,disabled:e.disabled,type:C.value,placeholder:e.placeholder,min:e.min,max:e.max,step:e.step,"onUpdate:modelValue":n[0]||(n[0]=e=>t.$emit("input",e))},_({_:2},[e.iconLeft?{name:"prepend",fn:p(()=>[s(o,{name:e.iconLeft},null,8,["name"])]),key:"0"}:void 0,e.iconRight?{name:"append",fn:p(()=>[s(o,{name:e.iconRight},null,8,["name"])]),key:"1"}:void 0]),1032,["model-value","disabled","type","placeholder","min","max","step"])]),_:1},8,["click-action","computed-link","open-link-as-new-tab","open-link-safe-mode","action-tooltip","disabled"]),e.showCopy?h((c(),g(u,{key:0,disabled:!e.value||!m(a),icon:"",secondary:"",xLarge:"","data-testid":"copy-button",class:w("start"===e.copyPosition?"-defa-order-1":"defa-order-1"),onClick:b(T,["stop"])},{default:p(()=>[s(o,{name:"content_copy"})]),_:1},8,["disabled","class"])),[[x,m(f)]]):v("v-if",!0),e.showLink?(c(),g(I,{key:1,href:m(r),target:e.openLinkAsNewTab?"_blank":"_self",safeMode:"always"===e.openLinkSafeMode,class:w("start"===e.linkPosition?"-defa-order-1":"defa-order-1")},{default:p(()=>[h((c(),g(u,{disabled:!e.value,icon:"",secondary:"",xLarge:"","data-testid":"link-button"},{default:p(()=>[s(o,{name:"open_in_new"})]),_:1},8,["disabled"])),[[x,m(y)]])]),_:1},8,["href","target","safeMode","class"])):v("v-if",!0)])}}});N(".defa-action-interface .v-input input:disabled {\n /* disable click events on disabled inputs, so that the click event can be handled by the parent div\n \t * For some reason we can't go with a normal :deep() selector in the scoped stye\n */\n pointer-events: none;\n}",{});N(".defa-action-interface[data-v-adc9dd13] {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n.defa-action-interface .defa-click-action-wrapper[data-v-adc9dd13] {\n width: 100%;\n}\n.defa-action-interface > div[data-v-adc9dd13] {\n display: inherit;\n}\n.defa-action-interface > div.defa-order-1[data-v-adc9dd13] {\n order: 1;\n}\n.defa-action-interface > div.-defa-order-1[data-v-adc9dd13] {\n order: -1;\n}",{});var Q=t({id:"field-actions",name:"Action Interface",icon:"ads_click",description:"Display content with linking and copy to clipboard options",component:$(J,[["__scopeId","data-v-adc9dd13"]]),types:["string","uuid","text","bigInteger","integer","decimal","float"],group:"standard",recommendedDisplays:["field-actions"],options:({field:e})=>{const t=["string","text"].includes(e.type??"unknown"),n=["bigInteger","integer","float","decimal"].includes(e.type??"unknown"),o=H(e,"interface"),a=[{field:"clickAction",name:"Click Action (when clicking on the value)",type:"string",meta:{width:"full",interface:"select-dropdown",options:{choices:G(t)}},schema:{default_value:"default"}}];return[{field:"placeholder",name:"$t:placeholder",meta:{width:"half",interface:"system-input-translated-string",options:{placeholder:"$t:enter_a_placeholder"}}},{field:"iconLeft",name:"$t:icon_left",type:"string",meta:{width:"half",interface:"select-icon"}},{field:"iconRight",name:"$t:icon_right",type:"string",meta:{width:"half",interface:"select-icon"}},...n?[{field:"min",name:"$t:interfaces.input.minimum_value",type:"integer",meta:{width:"half",interface:"input"}},{field:"max",name:"$t:interfaces.input.maximum_value",type:"integer",meta:{width:"half",interface:"input"}},{field:"step",name:"$t:interfaces.input.step_interval",type:"integer",meta:{width:"half",interface:"input"},schema:{default_value:1}}]:[],...e.meta?.readonly?a:[],...o]}});const X={key:1,class:"defa-action-display"},Z={key:0,class:"defa-ml-2"},ee={key:0,class:"defa-ml-2"};var te=a({__name:"display",props:L({value:{},type:{},hideFieldValue:{type:Boolean},clickAction:{},copyButtonLabel:{},linkButtonLabel:{},showCopy:{type:Boolean},copyPosition:{},copyPrefix:{},useCustomCopyTooltip:{type:Boolean},customCopyTooltip:{},showLink:{type:Boolean},linkPosition:{},linkPrefix:{},useCustomLinkTooltip:{type:Boolean},customLinkTooltip:{},openLinkAsNewTab:{type:Boolean},openLinkSafeMode:{}},{value:null,hideFieldValue:!1,clickAction:"default",...q,copyButtonLabel:null,linkButtonLabel:null}),setup(e){const t=e;F().loadLocaleMessages();const{isCopySupported:n,copyToClipboard:a}=x(),{computedLink:i,computedCopyValue:r}=A(t),{copyTooltip:u,linkTooltip:_,actionTooltip:L}=D({clickAction:t.clickAction,useCustomCopyTooltip:t.useCustomCopyTooltip,customCopyTooltip:t.customCopyTooltip,useCustomLinkTooltip:t.useCustomLinkTooltip,customLinkTooltip:t.customLinkTooltip});async function T(){await a(r.value)}const S=o(()=>"default"!==t.clickAction&&(!("copy"!==t.clickAction||!n)||"link"===t.clickAction));return(t,o)=>{const a=l("value-null"),r=l("v-text-overflow"),x=l("v-icon"),A=k("tooltip");return e.value?(c(),d("span",X,[e.hideFieldValue?v("v-if",!0):(c(),g(U,{key:0,"click-action":e.clickAction,"computed-link":m(i),"open-link-as-new-tab":e.openLinkAsNewTab,"open-link-safe-mode":e.openLinkSafeMode,"action-tooltip":m(L),disabled:!0,onCopy:T},{default:p(()=>[y("span",{class:w(S.value?"defa-action-background":"")},[s(r,{text:e.value},null,8,["text"])],2)]),_:1},8,["click-action","computed-link","open-link-as-new-tab","open-link-safe-mode","action-tooltip"])),e.showCopy?h((c(),g(C(e.copyButtonLabel?"v-button":"span"),{key:1,disabled:!e.value||!m(n),outlined:"",xSmall:"",class:w("start"===e.copyPosition?"-defa-order-1":"defa-order-1"),onClick:b(T,["stop"]),"data-testid":"copy-button"},{default:p(()=>[s(x,{name:"content_copy",color:e.copyButtonLabel?"primary":""},null,8,["color"]),e.copyButtonLabel?(c(),d("span",Z,f(e.copyButtonLabel),1)):v("v-if",!0)]),_:1},8,["disabled","class"])),[[A,m(u)]]):v("v-if",!0),v(" NOTE: @click.stop to prevent the opening of item page "),e.showLink?(c(),g(I,{key:2,href:m(i),target:e.openLinkAsNewTab?"_blank":"_self",safeMode:"always"===e.openLinkSafeMode,class:w("start"===e.linkPosition?"-defa-order-1":"defa-order-1"),onClick:o[0]||(o[0]=b(()=>{},["stop"]))},{default:p(()=>[h((c(),g(C(e.linkButtonLabel?"v-button":"div"),{outlined:"",xSmall:"","data-testid":"link-button"},{default:p(()=>[s(x,{name:"open_in_new",color:e.linkButtonLabel?"primary":""},null,8,["color"]),e.linkButtonLabel?(c(),d("span",ee,f(e.linkButtonLabel),1)):v("v-if",!0)]),_:1})),[[A,m(_)]])]),_:1},8,["href","target","safeMode","class"])):v("v-if",!0)])):(c(),g(a,{key:0}))}}});N(".header-bar .title-container .defa-action-display .defa-action-background {\n line-height: 2rem;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.render-template:has(.defa-action-display) {\n display: flex;\n align-items: center;\n}",{});N(".defa-action-display[data-v-561c003f] {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n.defa-action-display span[data-v-561c003f],\n.defa-action-display a[data-v-561c003f],\n.defa-action-display div[data-v-561c003f] {\n display: inherit;\n}\n.defa-action-display span.defa-order-1[data-v-561c003f],\n.defa-action-display a.defa-order-1[data-v-561c003f],\n.defa-action-display div.defa-order-1[data-v-561c003f] {\n order: 1;\n}\n.defa-action-display span.-defa-order-1[data-v-561c003f],\n.defa-action-display a.-defa-order-1[data-v-561c003f],\n.defa-action-display div.-defa-order-1[data-v-561c003f] {\n order: -1;\n}\n.defa-action-display .defa-ml-2[data-v-561c003f] {\n margin-left: 0.5rem;\n}\n.defa-action-display [data-v-561c003f] .v-icon {\n --v-icon-size: 18px;\n --v-icon-color: var(--theme--foreground-subdued);\n}\n.defa-action-display [data-v-561c003f] .v-icon:hover {\n --v-icon-color: var(--theme--primary);\n}\n.defa-action-display .defa-click-action-wrapper[data-v-561c003f] {\n width: auto;\n min-width: 0;\n max-width: 100%;\n}\n.defa-action-display .defa-action-background[data-v-561c003f] {\n background-color: var(--theme--primary-background);\n color: var(--theme--primary);\n padding: 0.5rem 1rem;\n border-radius: 5rem; /* arbitrary value for a nice smooth rounding */\n}\n.defa-action-display .defa-action-background[data-v-561c003f]:hover {\n background-color: color-mix(in srgb, var(--theme--background), var(--theme--primary) 25%); /* like --theme--primary-background but with 25% */\n}",{});const ne=[Q],oe=[n({id:"field-actions",name:"Action Display",icon:"ads_click",description:"Display content with linking and copy to clipboard options",component:$(te,[["__scopeId","data-v-561c003f"]]),types:["uuid","string","text","bigInteger","integer","decimal","float"],group:"standard",options:({field:e})=>{const t=["string","text"].includes(e.type??"unknown"),n=H(e,"display");return[...[{field:"hideFieldValue",name:"Hide field value",type:"boolean",meta:{width:"full",interface:"v-checkbox",note:"When enabled the field value will be hidden. Can be used to only show the actions"},schema:{default_value:!1}},{field:"clickAction",name:"Click Action (when clicking on the value)",type:"string",meta:{width:"full",interface:"select-dropdown",options:{choices:G(t)}},schema:{default_value:"default"}}],...n,{field:"copyButtonLabel",name:"Copy button label",type:"string",meta:{width:"full",interface:"system-input-translated-string",group:"groupCopySettings",note:"When used the copy icon will be shown as button with the given label"},schema:{default_value:""}},{field:"linkButtonLabel",name:"Link button label",type:"string",meta:{width:"full",interface:"system-input-translated-string",group:"groupLinkSettings",note:"When used the link icon will be shown as button with the given label"},schema:{default_value:""}}]}})],ae=[],ie=[],le=[],ce=[],de=[];export{oe as displays,ne as interfaces,ae as layouts,ie as modules,de as operations,le as panels,ce as themes};