@davincihealthcare/elty-design-system-vue 2.10.0 → 2.10.1

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.
@@ -12,6 +12,7 @@ export interface ElIconButtonProps {
12
12
  badgeColor?: ElBadgeColors;
13
13
  error?: boolean;
14
14
  showTooltipOnMobile?: boolean;
15
+ hideTooltipOnChange?: boolean;
15
16
  }
16
17
  export declare const elIconButtonSizes: readonly ["xs", "sm", "base", "l", "xl"];
17
18
  export type ElIconButtonSize = (typeof elIconButtonSizes)[number];
@@ -25,6 +26,7 @@ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_T
25
26
  badge: boolean;
26
27
  error: boolean;
27
28
  showTooltipOnMobile: boolean;
29
+ hideTooltipOnChange: boolean;
28
30
  }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
29
31
  click: () => void;
30
32
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ElIconButtonProps>, {
@@ -37,6 +39,7 @@ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_T
37
39
  badge: boolean;
38
40
  error: boolean;
39
41
  showTooltipOnMobile: boolean;
42
+ hideTooltipOnChange: boolean;
40
43
  }>>> & {
41
44
  onClick?: (() => any) | undefined;
42
45
  }, {
@@ -49,6 +52,7 @@ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_T
49
52
  tooltipDelay: string | number;
50
53
  badgeColor: ElBadgeColors;
51
54
  showTooltipOnMobile: boolean;
55
+ hideTooltipOnChange: boolean;
52
56
  }, {}>;
53
57
  export default _default;
54
58
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -6,11 +6,14 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
6
6
  position?: ElTooltipPosition;
7
7
  /** Time in ms before the tooltip appears */
8
8
  delayTime?: string | number;
9
+ /** Hide tooltip when tooltip's title changes */
10
+ hideOnChange?: boolean;
9
11
  hideOnMobile?: boolean;
10
12
  }>, {
11
13
  content: undefined;
12
14
  position: string;
13
15
  delayTime: number;
16
+ hideOnChange: boolean;
14
17
  hideOnMobile: boolean;
15
18
  }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
16
19
  title: string;
@@ -18,16 +21,20 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
18
21
  position?: ElTooltipPosition;
19
22
  /** Time in ms before the tooltip appears */
20
23
  delayTime?: string | number;
24
+ /** Hide tooltip when tooltip's title changes */
25
+ hideOnChange?: boolean;
21
26
  hideOnMobile?: boolean;
22
27
  }>, {
23
28
  content: undefined;
24
29
  position: string;
25
30
  delayTime: number;
31
+ hideOnChange: boolean;
26
32
  hideOnMobile: boolean;
27
33
  }>>>, {
28
34
  position: ElTooltipPosition;
29
35
  content: string;
30
36
  delayTime: string | number;
37
+ hideOnChange: boolean;
31
38
  hideOnMobile: boolean;
32
39
  }, {}>, {
33
40
  default?(_: {}): any;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),d=require("./ElIcon.vue.cjs2.js"),u=require("./ElBadge.vue.cjs2.js"),p=require("./ElTooltip.vue.cjs2.js"),c=["data-cy"],m={key:0,class:"inline-flex items-center justify-center"},h=o.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),g=o.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),v=[h,g],b=["xs","sm","base","l","xl"],f=o.defineComponent({__name:"ElIconButton",props:{icon:{},tooltip:{default:void 0},tooltipDelay:{default:600},disabled:{type:Boolean,default:!1},size:{default:"base"},loading:{type:Boolean,default:!1},badge:{type:[String,Boolean],default:!1},badgeColor:{default:"primary"},error:{type:Boolean,default:!1},showTooltipOnMobile:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:a}){const l=i,r=a,n=o.computed(()=>l.badge!==!1&&!l.error&&!l.disabled&&!l.loading),t=o.computed(()=>l.disabled||l.loading||!1);return(e,s)=>(o.openBlock(),o.createBlock(p.default,{title:e.tooltip??"",position:"top-right","delay-time":l.tooltipDelay,"hide-on-mobile":!e.showTooltipOnMobile},{default:o.withCtx(()=>[o.createElementVNode("button",{class:o.normalizeClass(["relative flex items-center justify-center outline-none",{"h-6 w-6 rounded":e.size==="xs","h-7 w-7 rounded":e.size==="sm","h-8 w-8 rounded-md":e.size==="base","h-10 w-10 rounded-md":e.size==="l","h-12 w-12 rounded-md":e.size==="xl","cursor-not-allowed":t.value,"text-neutral-inactive":t.value,"hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent":!t.value&&e.error,"text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed":!t.value&&!e.error}]),type:"button","data-cy":e.tooltip?`${e.tooltip.trim().replaceAll(" ","")}-icon-button`:"icon-button",onClick:s[0]||(s[0]=y=>t.value?void 0:r("click"))},[e.loading?(o.openBlock(),o.createElementBlock("span",m,[(o.openBlock(),o.createElementBlock("svg",{class:o.normalizeClass(["animate-spin",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},v,2))])):(o.openBlock(),o.createBlock(d.default,{key:1,disabled:t.value,name:e.icon.name,solid:e.icon.solid,class:o.normalizeClass(["transition duration-150 ease-in-out",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}])},null,8,["disabled","name","solid","class"])),n.value?(o.openBlock(),o.createBlock(u.default,{key:2,color:l.badgeColor,value:typeof e.badge=="string"?e.badge:void 0,class:o.normalizeClass({"top-[2px] right-[1px]":e.size==="xs","top-[2px] right-[2px]":e.size==="sm","top-[4px] right-[4px]":e.size==="base","top-[5px] right-[5px]":e.size==="l","top-[6px] right-[6px]":e.size==="xl"})},null,8,["color","value","class"])):o.createCommentVNode("",!0)],10,c)]),_:1},8,["title","delay-time","hide-on-mobile"]))}});exports.default=f;exports.elIconButtonSizes=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),d=require("./ElIcon.vue.cjs2.js"),u=require("./ElBadge.vue.cjs2.js"),p=require("./ElTooltip.vue.cjs2.js"),c=["data-cy"],h={key:0,class:"inline-flex items-center justify-center"},m=o.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),g=o.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),v=[m,g],f=["xs","sm","base","l","xl"],b=o.defineComponent({__name:"ElIconButton",props:{icon:{},tooltip:{default:void 0},tooltipDelay:{default:600},disabled:{type:Boolean,default:!1},size:{default:"base"},loading:{type:Boolean,default:!1},badge:{type:[String,Boolean],default:!1},badgeColor:{default:"primary"},error:{type:Boolean,default:!1},showTooltipOnMobile:{type:Boolean,default:!1},hideTooltipOnChange:{type:Boolean,default:!1}},emits:["click"],setup(s,{emit:a}){const l=s,n=a,r=o.computed(()=>l.badge!==!1&&!l.error&&!l.disabled&&!l.loading),t=o.computed(()=>l.disabled||l.loading||!1);return(e,i)=>(o.openBlock(),o.createBlock(p.default,{title:e.tooltip??"",position:"top-right","delay-time":l.tooltipDelay,"hide-on-mobile":!e.showTooltipOnMobile,"hide-on-change":!!e.hideTooltipOnChange},{default:o.withCtx(()=>[o.createElementVNode("button",{class:o.normalizeClass(["relative flex items-center justify-center outline-none",{"h-6 w-6 rounded":e.size==="xs","h-7 w-7 rounded":e.size==="sm","h-8 w-8 rounded-md":e.size==="base","h-10 w-10 rounded-md":e.size==="l","h-12 w-12 rounded-md":e.size==="xl","cursor-not-allowed":t.value,"text-neutral-inactive":t.value,"hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent":!t.value&&e.error,"text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed":!t.value&&!e.error}]),type:"button","data-cy":e.tooltip?`${e.tooltip.trim().replaceAll(" ","")}-icon-button`:"icon-button",onClick:i[0]||(i[0]=y=>t.value?void 0:n("click"))},[e.loading?(o.openBlock(),o.createElementBlock("span",h,[(o.openBlock(),o.createElementBlock("svg",{class:o.normalizeClass(["animate-spin",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},v,2))])):(o.openBlock(),o.createBlock(d.default,{key:1,disabled:t.value,name:e.icon.name,solid:e.icon.solid,class:o.normalizeClass(["transition duration-150 ease-in-out",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}])},null,8,["disabled","name","solid","class"])),r.value?(o.openBlock(),o.createBlock(u.default,{key:2,color:l.badgeColor,value:typeof e.badge=="string"?e.badge:void 0,class:o.normalizeClass({"top-[2px] right-[1px]":e.size==="xs","top-[2px] right-[2px]":e.size==="sm","top-[4px] right-[4px]":e.size==="base","top-[5px] right-[5px]":e.size==="l","top-[6px] right-[6px]":e.size==="xl"})},null,8,["color","value","class"])):o.createCommentVNode("",!0)],10,c)]),_:1},8,["title","delay-time","hide-on-mobile","hide-on-change"]))}});exports.default=b;exports.elIconButtonSizes=f;
2
2
  //# sourceMappingURL=ElIconButton.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElIconButton.vue.cjs2.js","sources":["../../src/ElIconButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elIconButtonSizes = ['xs', 'sm', 'base', 'l', 'xl'] as const;\nexport type ElIconButtonSize = (typeof elIconButtonSizes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport { computed } from 'vue';\nimport ElBadge, { ElBadgeColors } from '@/ElBadge.vue';\nimport ElTooltip from '@/ElTooltip.vue';\n\nexport interface ElIconButtonProps {\n icon: ElIconProps;\n tooltip?: string;\n tooltipDelay?: string | number;\n disabled?: boolean;\n size?: ElIconButtonSize;\n loading?: boolean;\n badge?: string | boolean;\n badgeColor?: ElBadgeColors;\n error?: boolean;\n showTooltipOnMobile?: boolean;\n}\n\nconst props = withDefaults(defineProps<ElIconButtonProps>(), {\n tooltip: undefined,\n tooltipDelay: 600,\n size: 'base',\n badgeColor: 'primary',\n disabled: false,\n loading: false,\n badge: false,\n error: false,\n showTooltipOnMobile: false,\n});\n\nconst emit = defineEmits<{\n (event: 'click'): void;\n}>();\n\nconst showBadge = computed(() => props.badge !== false && !props.error && !props.disabled && !props.loading);\nconst disabled = computed(() => props.disabled || props.loading || false);\n</script>\n\n<template>\n <ElTooltip :title=\"tooltip ?? ''\" position=\"top-right\" :delay-time=\"props.tooltipDelay\" :hide-on-mobile=\"!showTooltipOnMobile\">\n <button\n class=\"relative flex items-center justify-center outline-none\"\n :class=\"{\n 'h-6 w-6 rounded': size === 'xs',\n 'h-7 w-7 rounded': size === 'sm',\n 'h-8 w-8 rounded-md': size === 'base',\n 'h-10 w-10 rounded-md': size === 'l',\n 'h-12 w-12 rounded-md': size === 'xl',\n 'cursor-not-allowed': disabled,\n 'text-neutral-inactive': disabled,\n 'hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent': !disabled && error,\n 'text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed':\n !disabled && !error,\n }\"\n type=\"button\"\n :data-cy=\"tooltip ? `${tooltip.trim().replaceAll(' ', '')}-icon-button` : 'icon-button'\"\n @click=\"disabled ? undefined : emit('click')\"\n >\n <span v-if=\"loading\" class=\"inline-flex items-center justify-center\">\n <svg\n class=\"animate-spin\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n </span>\n\n <ElIcon\n v-else\n :disabled=\"disabled\"\n :name=\"icon.name\"\n :solid=\"icon.solid\"\n class=\"transition duration-150 ease-in-out\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n />\n <ElBadge\n v-if=\"showBadge\"\n :color=\"props.badgeColor\"\n :value=\"typeof badge === 'string' ? badge : undefined\"\n :class=\"{\n 'top-[2px] right-[1px]': size === 'xs',\n 'top-[2px] right-[2px]': size === 'sm',\n 'top-[4px] right-[4px]': size === 'base',\n 'top-[5px] right-[5px]': size === 'l',\n 'top-[6px] right-[6px]': size === 'xl',\n }\"\n />\n </button>\n </ElTooltip>\n</template>\n"],"names":["elIconButtonSizes","props","__props","emit","__emit","showBadge","computed","disabled"],"mappings":"+nBACaA,EAAoB,CAAC,KAAM,KAAM,OAAQ,IAAK,IAAI,oYAuB/D,MAAMC,EAAQC,EAYRC,EAAOC,EAIPC,EAAYC,EAAA,SAAS,IAAML,EAAM,QAAU,IAAS,CAACA,EAAM,OAAS,CAACA,EAAM,UAAY,CAACA,EAAM,OAAO,EACrGM,EAAWD,EAAS,SAAA,IAAML,EAAM,UAAYA,EAAM,SAAW,EAAK"}
1
+ {"version":3,"file":"ElIconButton.vue.cjs2.js","sources":["../../src/ElIconButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elIconButtonSizes = ['xs', 'sm', 'base', 'l', 'xl'] as const;\nexport type ElIconButtonSize = (typeof elIconButtonSizes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport { computed } from 'vue';\nimport ElBadge, { ElBadgeColors } from '@/ElBadge.vue';\nimport ElTooltip from '@/ElTooltip.vue';\n\nexport interface ElIconButtonProps {\n icon: ElIconProps;\n tooltip?: string;\n tooltipDelay?: string | number;\n disabled?: boolean;\n size?: ElIconButtonSize;\n loading?: boolean;\n badge?: string | boolean;\n badgeColor?: ElBadgeColors;\n error?: boolean;\n showTooltipOnMobile?: boolean;\n hideTooltipOnChange?: boolean;\n}\n\nconst props = withDefaults(defineProps<ElIconButtonProps>(), {\n tooltip: undefined,\n tooltipDelay: 600,\n size: 'base',\n badgeColor: 'primary',\n disabled: false,\n loading: false,\n badge: false,\n error: false,\n showTooltipOnMobile: false,\n hideTooltipOnChange: false,\n});\n\nconst emit = defineEmits<{\n (event: 'click'): void;\n}>();\n\nconst showBadge = computed(() => props.badge !== false && !props.error && !props.disabled && !props.loading);\nconst disabled = computed(() => props.disabled || props.loading || false);\n</script>\n\n<template>\n <ElTooltip\n :title=\"tooltip ?? ''\"\n position=\"top-right\"\n :delay-time=\"props.tooltipDelay\"\n :hide-on-mobile=\"!showTooltipOnMobile\"\n :hide-on-change=\"!!hideTooltipOnChange\"\n >\n <button\n class=\"relative flex items-center justify-center outline-none\"\n :class=\"{\n 'h-6 w-6 rounded': size === 'xs',\n 'h-7 w-7 rounded': size === 'sm',\n 'h-8 w-8 rounded-md': size === 'base',\n 'h-10 w-10 rounded-md': size === 'l',\n 'h-12 w-12 rounded-md': size === 'xl',\n 'cursor-not-allowed': disabled,\n 'text-neutral-inactive': disabled,\n 'hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent': !disabled && error,\n 'text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed':\n !disabled && !error,\n }\"\n type=\"button\"\n :data-cy=\"tooltip ? `${tooltip.trim().replaceAll(' ', '')}-icon-button` : 'icon-button'\"\n @click=\"disabled ? undefined : emit('click')\"\n >\n <span v-if=\"loading\" class=\"inline-flex items-center justify-center\">\n <svg\n class=\"animate-spin\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n </span>\n\n <ElIcon\n v-else\n :disabled=\"disabled\"\n :name=\"icon.name\"\n :solid=\"icon.solid\"\n class=\"transition duration-150 ease-in-out\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n />\n <ElBadge\n v-if=\"showBadge\"\n :color=\"props.badgeColor\"\n :value=\"typeof badge === 'string' ? badge : undefined\"\n :class=\"{\n 'top-[2px] right-[1px]': size === 'xs',\n 'top-[2px] right-[2px]': size === 'sm',\n 'top-[4px] right-[4px]': size === 'base',\n 'top-[5px] right-[5px]': size === 'l',\n 'top-[6px] right-[6px]': size === 'xl',\n }\"\n />\n </button>\n </ElTooltip>\n</template>\n"],"names":["elIconButtonSizes","props","__props","emit","__emit","showBadge","computed","disabled"],"mappings":"+nBACaA,EAAoB,CAAC,KAAM,KAAM,OAAQ,IAAK,IAAI,kbAwB/D,MAAMC,EAAQC,EAaRC,EAAOC,EAIPC,EAAYC,EAAA,SAAS,IAAML,EAAM,QAAU,IAAS,CAACA,EAAM,OAAS,CAACA,EAAM,UAAY,CAACA,EAAM,OAAO,EACrGM,EAAWD,EAAS,SAAA,IAAML,EAAM,UAAYA,EAAM,SAAW,EAAK"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as c,computed as n,openBlock as i,createBlock as t,withCtx as f,createElementVNode as a,normalizeClass as s,createElementBlock as d,createCommentVNode as b}from"vue";import g from"./ElIcon.vue.esm2.js";import y from"./ElBadge.vue.esm2.js";import v from"./ElTooltip.vue.esm2.js";const w=["data-cy"],z={key:0,class:"inline-flex items-center justify-center"},B=a("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),k=a("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),C=[B,k],x=["xs","sm","base","l","xl"],A=c({__name:"ElIconButton",props:{icon:{},tooltip:{default:void 0},tooltipDelay:{default:600},disabled:{type:Boolean,default:!1},size:{default:"base"},loading:{type:Boolean,default:!1},badge:{type:[String,Boolean],default:!1},badgeColor:{default:"primary"},error:{type:Boolean,default:!1},showTooltipOnMobile:{type:Boolean,default:!1}},emits:["click"],setup(p,{emit:m}){const o=p,u=m,h=n(()=>o.badge!==!1&&!o.error&&!o.disabled&&!o.loading),l=n(()=>o.disabled||o.loading||!1);return(e,r)=>(i(),t(v,{title:e.tooltip??"",position:"top-right","delay-time":o.tooltipDelay,"hide-on-mobile":!e.showTooltipOnMobile},{default:f(()=>[a("button",{class:s(["relative flex items-center justify-center outline-none",{"h-6 w-6 rounded":e.size==="xs","h-7 w-7 rounded":e.size==="sm","h-8 w-8 rounded-md":e.size==="base","h-10 w-10 rounded-md":e.size==="l","h-12 w-12 rounded-md":e.size==="xl","cursor-not-allowed":l.value,"text-neutral-inactive":l.value,"hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent":!l.value&&e.error,"text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed":!l.value&&!e.error}]),type:"button","data-cy":e.tooltip?`${e.tooltip.trim().replaceAll(" ","")}-icon-button`:"icon-button",onClick:r[0]||(r[0]=$=>l.value?void 0:u("click"))},[e.loading?(i(),d("span",z,[(i(),d("svg",{class:s(["animate-spin",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},C,2))])):(i(),t(g,{key:1,disabled:l.value,name:e.icon.name,solid:e.icon.solid,class:s(["transition duration-150 ease-in-out",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}])},null,8,["disabled","name","solid","class"])),h.value?(i(),t(y,{key:2,color:o.badgeColor,value:typeof e.badge=="string"?e.badge:void 0,class:s({"top-[2px] right-[1px]":e.size==="xs","top-[2px] right-[2px]":e.size==="sm","top-[4px] right-[4px]":e.size==="base","top-[5px] right-[5px]":e.size==="l","top-[6px] right-[6px]":e.size==="xl"})},null,8,["color","value","class"])):b("",!0)],10,w)]),_:1},8,["title","delay-time","hide-on-mobile"]))}});export{A as default,x as elIconButtonSizes};
1
+ import{defineComponent as f,computed as n,openBlock as l,createBlock as t,withCtx as c,createElementVNode as a,normalizeClass as s,createElementBlock as d,createCommentVNode as g}from"vue";import b from"./ElIcon.vue.esm2.js";import y from"./ElBadge.vue.esm2.js";import v from"./ElTooltip.vue.esm2.js";const w=["data-cy"],z={key:0,class:"inline-flex items-center justify-center"},B=a("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),C=a("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1),k=[B,C],V=["xs","sm","base","l","xl"],j=f({__name:"ElIconButton",props:{icon:{},tooltip:{default:void 0},tooltipDelay:{default:600},disabled:{type:Boolean,default:!1},size:{default:"base"},loading:{type:Boolean,default:!1},badge:{type:[String,Boolean],default:!1},badgeColor:{default:"primary"},error:{type:Boolean,default:!1},showTooltipOnMobile:{type:Boolean,default:!1},hideTooltipOnChange:{type:Boolean,default:!1}},emits:["click"],setup(p,{emit:h}){const o=p,u=h,m=n(()=>o.badge!==!1&&!o.error&&!o.disabled&&!o.loading),i=n(()=>o.disabled||o.loading||!1);return(e,r)=>(l(),t(v,{title:e.tooltip??"",position:"top-right","delay-time":o.tooltipDelay,"hide-on-mobile":!e.showTooltipOnMobile,"hide-on-change":!!e.hideTooltipOnChange},{default:c(()=>[a("button",{class:s(["relative flex items-center justify-center outline-none",{"h-6 w-6 rounded":e.size==="xs","h-7 w-7 rounded":e.size==="sm","h-8 w-8 rounded-md":e.size==="base","h-10 w-10 rounded-md":e.size==="l","h-12 w-12 rounded-md":e.size==="xl","cursor-not-allowed":i.value,"text-neutral-inactive":i.value,"hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent":!i.value&&e.error,"text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed":!i.value&&!e.error}]),type:"button","data-cy":e.tooltip?`${e.tooltip.trim().replaceAll(" ","")}-icon-button`:"icon-button",onClick:r[0]||(r[0]=$=>i.value?void 0:u("click"))},[e.loading?(l(),d("span",z,[(l(),d("svg",{class:s(["animate-spin",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},k,2))])):(l(),t(b,{key:1,disabled:i.value,name:e.icon.name,solid:e.icon.solid,class:s(["transition duration-150 ease-in-out",{"h-4 w-4":e.size==="xs","h-5 w-5":e.size==="sm","h-6 w-6":e.size==="base","h-8 w-8":e.size==="l","h-10 w-10":e.size==="xl"}])},null,8,["disabled","name","solid","class"])),m.value?(l(),t(y,{key:2,color:o.badgeColor,value:typeof e.badge=="string"?e.badge:void 0,class:s({"top-[2px] right-[1px]":e.size==="xs","top-[2px] right-[2px]":e.size==="sm","top-[4px] right-[4px]":e.size==="base","top-[5px] right-[5px]":e.size==="l","top-[6px] right-[6px]":e.size==="xl"})},null,8,["color","value","class"])):g("",!0)],10,w)]),_:1},8,["title","delay-time","hide-on-mobile","hide-on-change"]))}});export{j as default,V as elIconButtonSizes};
2
2
  //# sourceMappingURL=ElIconButton.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElIconButton.vue.esm2.js","sources":["../../src/ElIconButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elIconButtonSizes = ['xs', 'sm', 'base', 'l', 'xl'] as const;\nexport type ElIconButtonSize = (typeof elIconButtonSizes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport { computed } from 'vue';\nimport ElBadge, { ElBadgeColors } from '@/ElBadge.vue';\nimport ElTooltip from '@/ElTooltip.vue';\n\nexport interface ElIconButtonProps {\n icon: ElIconProps;\n tooltip?: string;\n tooltipDelay?: string | number;\n disabled?: boolean;\n size?: ElIconButtonSize;\n loading?: boolean;\n badge?: string | boolean;\n badgeColor?: ElBadgeColors;\n error?: boolean;\n showTooltipOnMobile?: boolean;\n}\n\nconst props = withDefaults(defineProps<ElIconButtonProps>(), {\n tooltip: undefined,\n tooltipDelay: 600,\n size: 'base',\n badgeColor: 'primary',\n disabled: false,\n loading: false,\n badge: false,\n error: false,\n showTooltipOnMobile: false,\n});\n\nconst emit = defineEmits<{\n (event: 'click'): void;\n}>();\n\nconst showBadge = computed(() => props.badge !== false && !props.error && !props.disabled && !props.loading);\nconst disabled = computed(() => props.disabled || props.loading || false);\n</script>\n\n<template>\n <ElTooltip :title=\"tooltip ?? ''\" position=\"top-right\" :delay-time=\"props.tooltipDelay\" :hide-on-mobile=\"!showTooltipOnMobile\">\n <button\n class=\"relative flex items-center justify-center outline-none\"\n :class=\"{\n 'h-6 w-6 rounded': size === 'xs',\n 'h-7 w-7 rounded': size === 'sm',\n 'h-8 w-8 rounded-md': size === 'base',\n 'h-10 w-10 rounded-md': size === 'l',\n 'h-12 w-12 rounded-md': size === 'xl',\n 'cursor-not-allowed': disabled,\n 'text-neutral-inactive': disabled,\n 'hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent': !disabled && error,\n 'text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed':\n !disabled && !error,\n }\"\n type=\"button\"\n :data-cy=\"tooltip ? `${tooltip.trim().replaceAll(' ', '')}-icon-button` : 'icon-button'\"\n @click=\"disabled ? undefined : emit('click')\"\n >\n <span v-if=\"loading\" class=\"inline-flex items-center justify-center\">\n <svg\n class=\"animate-spin\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n </span>\n\n <ElIcon\n v-else\n :disabled=\"disabled\"\n :name=\"icon.name\"\n :solid=\"icon.solid\"\n class=\"transition duration-150 ease-in-out\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n />\n <ElBadge\n v-if=\"showBadge\"\n :color=\"props.badgeColor\"\n :value=\"typeof badge === 'string' ? badge : undefined\"\n :class=\"{\n 'top-[2px] right-[1px]': size === 'xs',\n 'top-[2px] right-[2px]': size === 'sm',\n 'top-[4px] right-[4px]': size === 'base',\n 'top-[5px] right-[5px]': size === 'l',\n 'top-[6px] right-[6px]': size === 'xl',\n }\"\n />\n </button>\n </ElTooltip>\n</template>\n"],"names":["elIconButtonSizes","props","__props","emit","__emit","showBadge","computed","disabled"],"mappings":"+pBACaA,EAAoB,CAAC,KAAM,KAAM,OAAQ,IAAK,IAAI,oXAuB/D,MAAMC,EAAQC,EAYRC,EAAOC,EAIPC,EAAYC,EAAS,IAAML,EAAM,QAAU,IAAS,CAACA,EAAM,OAAS,CAACA,EAAM,UAAY,CAACA,EAAM,OAAO,EACrGM,EAAWD,EAAS,IAAML,EAAM,UAAYA,EAAM,SAAW,EAAK"}
1
+ {"version":3,"file":"ElIconButton.vue.esm2.js","sources":["../../src/ElIconButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elIconButtonSizes = ['xs', 'sm', 'base', 'l', 'xl'] as const;\nexport type ElIconButtonSize = (typeof elIconButtonSizes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport { computed } from 'vue';\nimport ElBadge, { ElBadgeColors } from '@/ElBadge.vue';\nimport ElTooltip from '@/ElTooltip.vue';\n\nexport interface ElIconButtonProps {\n icon: ElIconProps;\n tooltip?: string;\n tooltipDelay?: string | number;\n disabled?: boolean;\n size?: ElIconButtonSize;\n loading?: boolean;\n badge?: string | boolean;\n badgeColor?: ElBadgeColors;\n error?: boolean;\n showTooltipOnMobile?: boolean;\n hideTooltipOnChange?: boolean;\n}\n\nconst props = withDefaults(defineProps<ElIconButtonProps>(), {\n tooltip: undefined,\n tooltipDelay: 600,\n size: 'base',\n badgeColor: 'primary',\n disabled: false,\n loading: false,\n badge: false,\n error: false,\n showTooltipOnMobile: false,\n hideTooltipOnChange: false,\n});\n\nconst emit = defineEmits<{\n (event: 'click'): void;\n}>();\n\nconst showBadge = computed(() => props.badge !== false && !props.error && !props.disabled && !props.loading);\nconst disabled = computed(() => props.disabled || props.loading || false);\n</script>\n\n<template>\n <ElTooltip\n :title=\"tooltip ?? ''\"\n position=\"top-right\"\n :delay-time=\"props.tooltipDelay\"\n :hide-on-mobile=\"!showTooltipOnMobile\"\n :hide-on-change=\"!!hideTooltipOnChange\"\n >\n <button\n class=\"relative flex items-center justify-center outline-none\"\n :class=\"{\n 'h-6 w-6 rounded': size === 'xs',\n 'h-7 w-7 rounded': size === 'sm',\n 'h-8 w-8 rounded-md': size === 'base',\n 'h-10 w-10 rounded-md': size === 'l',\n 'h-12 w-12 rounded-md': size === 'xl',\n 'cursor-not-allowed': disabled,\n 'text-neutral-inactive': disabled,\n 'hover:bg-error-light-hover focus:bg-error-light-pressed text-error bg-transparent': !disabled && error,\n 'text-primary hover:text-primary-hover active:text-primary-pressed hover:bg-primary-light-hover active:bg-primary-light-pressed':\n !disabled && !error,\n }\"\n type=\"button\"\n :data-cy=\"tooltip ? `${tooltip.trim().replaceAll(' ', '')}-icon-button` : 'icon-button'\"\n @click=\"disabled ? undefined : emit('click')\"\n >\n <span v-if=\"loading\" class=\"inline-flex items-center justify-center\">\n <svg\n class=\"animate-spin\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n </span>\n\n <ElIcon\n v-else\n :disabled=\"disabled\"\n :name=\"icon.name\"\n :solid=\"icon.solid\"\n class=\"transition duration-150 ease-in-out\"\n :class=\"{\n 'h-4 w-4': size === 'xs',\n 'h-5 w-5': size === 'sm',\n 'h-6 w-6': size === 'base',\n 'h-8 w-8': size === 'l',\n 'h-10 w-10': size === 'xl',\n }\"\n />\n <ElBadge\n v-if=\"showBadge\"\n :color=\"props.badgeColor\"\n :value=\"typeof badge === 'string' ? badge : undefined\"\n :class=\"{\n 'top-[2px] right-[1px]': size === 'xs',\n 'top-[2px] right-[2px]': size === 'sm',\n 'top-[4px] right-[4px]': size === 'base',\n 'top-[5px] right-[5px]': size === 'l',\n 'top-[6px] right-[6px]': size === 'xl',\n }\"\n />\n </button>\n </ElTooltip>\n</template>\n"],"names":["elIconButtonSizes","props","__props","emit","__emit","showBadge","computed","disabled"],"mappings":"+pBACaA,EAAoB,CAAC,KAAM,KAAM,OAAQ,IAAK,IAAI,kaAwB/D,MAAMC,EAAQC,EAaRC,EAAOC,EAIPC,EAAYC,EAAS,IAAML,EAAM,QAAU,IAAS,CAACA,EAAM,OAAS,CAACA,EAAM,UAAY,CAACA,EAAM,OAAO,EACrGM,EAAWD,EAAS,IAAML,EAAM,UAAYA,EAAM,SAAW,EAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("./_CustomTransition.vue.cjs2.js"),a=require("./ElClipToAnchor.vue.cjs2.js"),f=require("./composable/mobileComposable.cjs.js"),_={class:"font-semibold"},h={key:0,class:"mt-1"},v=a.elClipToAnchorPositions,y=e.defineComponent({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnMobile:{type:Boolean,default:!1}},setup(r){const t=r,i=e.ref(),n=e.ref(!1);let o;const{isMobile:u}=f.useMobile(),c=e.computed(()=>typeof t.delayTime=="string"&&isNaN(Number(t.delayTime))?200:Number(t.delayTime)),d=()=>{!t.title.length||t.hideOnMobile&&u.value||(o=setTimeout(()=>{o&&clearTimeout(o),n.value=!0},c.value))},p=()=>{n.value=!1,o&&clearTimeout(o)};return e.watch(()=>t.title,()=>{t.title.length||(n.value=!1)}),(l,T)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{ref_key:"anchor",ref:i,onMouseenter:d,onMouseleave:p},[e.renderSlot(l.$slots,"default")],544),e.createVNode(m.default,{name:"slide-y-fade"},{default:e.withCtx(()=>[i.value&&n.value?(e.openBlock(),e.createBlock(a.default,{key:0,anchor:i.value,position:l.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:e.withCtx(()=>{var s;return[e.createElementVNode("p",_,e.toDisplayString(l.title),1),(s=l.content)!=null&&s.length?(e.openBlock(),e.createElementBlock("p",h,e.toDisplayString(l.content),1)):e.createCommentVNode("",!0)]}),_:1},8,["anchor","position"])):e.createCommentVNode("",!0)]),_:1})]))}});exports.default=y;exports.elTooltipPositions=v;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("./_CustomTransition.vue.cjs2.js"),s=require("./ElClipToAnchor.vue.cjs2.js"),h=require("./composable/mobileComposable.cjs.js"),_={class:"font-semibold"},v={key:0,class:"mt-1"},y=s.elClipToAnchorPositions,T=e.defineComponent({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnChange:{type:Boolean,default:!1},hideOnMobile:{type:Boolean,default:!1}},setup(r){const o=r,i=e.ref(),n=e.ref(!1);let l;const{isMobile:u}=h.useMobile(),c=e.computed(()=>typeof o.delayTime=="string"&&isNaN(Number(o.delayTime))?200:Number(o.delayTime)),d=()=>{!o.title.length||o.hideOnMobile&&u.value||(l=setTimeout(()=>{l&&clearTimeout(l),n.value=!0},c.value))},p=()=>{n.value=!1,l&&clearTimeout(l)};return e.watch(()=>o.title,t=>{t.length||(n.value=!1)}),e.watch([()=>o.hideOnChange,()=>o.title],t=>{t[0]&&(n.value=!1)}),(t,f)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{ref_key:"anchor",ref:i,onMouseenter:d,onMouseleave:p},[e.renderSlot(t.$slots,"default")],544),e.createVNode(m.default,{name:"slide-y-fade"},{default:e.withCtx(()=>[i.value&&n.value?(e.openBlock(),e.createBlock(s.default,{key:0,anchor:i.value,position:t.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:e.withCtx(()=>{var a;return[e.createElementVNode("p",_,e.toDisplayString(t.title),1),(a=t.content)!=null&&a.length?(e.openBlock(),e.createElementBlock("p",v,e.toDisplayString(t.content),1)):e.createCommentVNode("",!0)]}),_:1},8,["anchor","position"])):e.createCommentVNode("",!0)]),_:1})]))}});exports.default=T;exports.elTooltipPositions=y;
2
2
  //# sourceMappingURL=ElTooltip.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElTooltip.vue.cjs2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n hideOnMobile?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnMobile: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n () => {\n if (!props.title.length) show.value = false;\n },\n);\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch"],"mappings":"6TAGaA,EAAqBC,EAAA,2MAOlC,MAAMC,EAAQC,EAiBRC,EAASC,EAAAA,MACTC,EAAOD,MAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,EAAAA,YAEfC,EAAqBC,EAAA,SAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3DO,OAAAA,EAAA,MACE,IAAMZ,EAAM,MACZ,IAAM,CACCA,EAAM,MAAM,SAAQI,EAAK,MAAQ,GACxC,CAAA"}
1
+ {"version":3,"file":"ElTooltip.vue.cjs2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n /** Hide tooltip when tooltip's title changes */\n hideOnChange?: boolean;\n hideOnMobile?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnChange: false,\n hideOnMobile: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n v => {\n if (!v.length) show.value = false;\n },\n);\nwatch([() => props.hideOnChange, () => props.title], v => {\n const hideOnChange = v[0];\n if (hideOnChange) {\n show.value = false;\n }\n});\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch","v"],"mappings":"6TAGaA,EAAqBC,EAAA,kPAOlC,MAAMC,EAAQC,EAoBRC,EAASC,EAAAA,MACTC,EAAOD,MAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,EAAAA,YAEfC,EAAqBC,EAAA,SAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3DO,OAAAA,EAAA,MACE,IAAMZ,EAAM,MACPa,GAAA,CACEA,EAAE,SAAQT,EAAK,MAAQ,GAC9B,CAAA,EAEIQ,QAAA,CAAC,IAAMZ,EAAM,aAAc,IAAMA,EAAM,KAAK,EAAQa,GAAA,CACnCA,EAAE,CAAC,IAEtBT,EAAK,MAAQ,GACf,CACD"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as T,ref as s,computed as _,watch as b,openBlock as i,createElementBlock as r,createElementVNode as u,renderSlot as M,createVNode as k,withCtx as c,createBlock as N,toDisplayString as d,createCommentVNode as m}from"vue";import g from"./_CustomTransition.vue.esm2.js";import w,{elClipToAnchorPositions as B}from"./ElClipToAnchor.vue.esm2.js";import{useMobile as C}from"./composable/mobileComposable.esm.js";const E={class:"font-semibold"},x={key:0,class:"mt-1"},S=B,z=T({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnMobile:{type:Boolean,default:!1}},setup(f){const e=f,l=s(),n=s(!1);let t;const{isMobile:p}=C(),h=_(()=>typeof e.delayTime=="string"&&isNaN(Number(e.delayTime))?200:Number(e.delayTime)),v=()=>{!e.title.length||e.hideOnMobile&&p.value||(t=setTimeout(()=>{t&&clearTimeout(t),n.value=!0},h.value))},y=()=>{n.value=!1,t&&clearTimeout(t)};return b(()=>e.title,()=>{e.title.length||(n.value=!1)}),(o,D)=>(i(),r("div",null,[u("div",{ref_key:"anchor",ref:l,onMouseenter:v,onMouseleave:y},[M(o.$slots,"default")],544),k(g,{name:"slide-y-fade"},{default:c(()=>[l.value&&n.value?(i(),N(w,{key:0,anchor:l.value,position:o.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:c(()=>{var a;return[u("p",E,d(o.title),1),(a=o.content)!=null&&a.length?(i(),r("p",x,d(o.content),1)):m("",!0)]}),_:1},8,["anchor","position"])):m("",!0)]),_:1})]))}});export{z as default,S as elTooltipPositions};
1
+ import{defineComponent as g,ref as s,computed as b,watch as r,openBlock as a,createElementBlock as u,createElementVNode as d,renderSlot as C,createVNode as M,withCtx as c,createBlock as k,toDisplayString as f,createCommentVNode as m}from"vue";import N from"./_CustomTransition.vue.esm2.js";import w,{elClipToAnchorPositions as O}from"./ElClipToAnchor.vue.esm2.js";import{useMobile as B}from"./composable/mobileComposable.esm.js";const E={class:"font-semibold"},x={key:0,class:"mt-1"},S=O,z=g({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnChange:{type:Boolean,default:!1},hideOnMobile:{type:Boolean,default:!1}},setup(p){const t=p,l=s(),o=s(!1);let n;const{isMobile:h}=B(),v=b(()=>typeof t.delayTime=="string"&&isNaN(Number(t.delayTime))?200:Number(t.delayTime)),y=()=>{!t.title.length||t.hideOnMobile&&h.value||(n=setTimeout(()=>{n&&clearTimeout(n),o.value=!0},v.value))},T=()=>{o.value=!1,n&&clearTimeout(n)};return r(()=>t.title,e=>{e.length||(o.value=!1)}),r([()=>t.hideOnChange,()=>t.title],e=>{e[0]&&(o.value=!1)}),(e,_)=>(a(),u("div",null,[d("div",{ref_key:"anchor",ref:l,onMouseenter:y,onMouseleave:T},[C(e.$slots,"default")],544),M(N,{name:"slide-y-fade"},{default:c(()=>[l.value&&o.value?(a(),k(w,{key:0,anchor:l.value,position:e.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:c(()=>{var i;return[d("p",E,f(e.title),1),(i=e.content)!=null&&i.length?(a(),u("p",x,f(e.content),1)):m("",!0)]}),_:1},8,["anchor","position"])):m("",!0)]),_:1})]))}});export{z as default,S as elTooltipPositions};
2
2
  //# sourceMappingURL=ElTooltip.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElTooltip.vue.esm2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n hideOnMobile?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnMobile: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n () => {\n if (!props.title.length) show.value = false;\n },\n);\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch"],"mappings":"oeAGaA,EAAqBC,qKAOlC,MAAMC,EAAQC,EAiBRC,EAASC,IACTC,EAAOD,EAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,IAEfC,EAAqBC,EAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3D,OAAAO,EACE,IAAMZ,EAAM,MACZ,IAAM,CACCA,EAAM,MAAM,SAAQI,EAAK,MAAQ,GACxC,CAAA"}
1
+ {"version":3,"file":"ElTooltip.vue.esm2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n /** Hide tooltip when tooltip's title changes */\n hideOnChange?: boolean;\n hideOnMobile?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnChange: false,\n hideOnMobile: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n v => {\n if (!v.length) show.value = false;\n },\n);\nwatch([() => props.hideOnChange, () => props.title], v => {\n const hideOnChange = v[0];\n if (hideOnChange) {\n show.value = false;\n }\n});\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch","v"],"mappings":"oeAGaA,EAAqBC,4MAOlC,MAAMC,EAAQC,EAoBRC,EAASC,IACTC,EAAOD,EAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,IAEfC,EAAqBC,EAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3D,OAAAO,EACE,IAAMZ,EAAM,MACPa,GAAA,CACEA,EAAE,SAAQT,EAAK,MAAQ,GAC9B,CAAA,EAEIQ,EAAA,CAAC,IAAMZ,EAAM,aAAc,IAAMA,EAAM,KAAK,EAAQa,GAAA,CACnCA,EAAE,CAAC,IAEtBT,EAAK,MAAQ,GACf,CACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("./input.cjs.js"),g=require("../ElIcon.vue.cjs2.js"),M=require("./ElInputContainer.vue.cjs2.js"),B=require("../ElIconButton.vue.cjs2.js"),$={class:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3"},q={key:0},V=["id","name","type","placeholder","disabled","autocomplete","data-cy"],N={key:0},P={key:1},T=["text","password"],w=e.defineComponent({__name:"ElInputText",props:{...d.withTextualElInputProps(),type:{type:String,default:"text"},leadingIcon:{type:Object,default:void 0,required:!1},trailingIcon:{type:Object,default:void 0,required:!1},focusOnMount:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"}},emits:["update:modelValue"],setup(l,{emit:y}){const a=l,o=e.ref(a.type),c=e.ref(null);e.onMounted(()=>{var t;a.focusOnMount&&((t=c.value)==null||t.focus())});const I=y,h=e.computed(()=>a.modelValue),k=e.computed(()=>[a.validation]),{value:r,errorMessage:b,uuid:u,fieldContext:E}=d.useInput(h,k,a.name,t=>{I("update:modelValue",t==null?void 0:t.trim())}),i=e.computed(()=>a.label?a.label.trim().replaceAll(" ",""):a.type),C=()=>{o.value=o.value==="text"?"password":"text"};return(t,s)=>(e.openBlock(),e.createBlock(M.default,e.mergeProps(t.$attrs,{"model-value":e.unref(r),name:t.id||`${e.unref(u)}-${i.value}`,label:t.label,"error-message":a.errorMessage===!1?!1:a.errorMessage||e.unref(b),"hidden-error-message":t.hiddenErrorMessage,"set-required-mark":e.unref(d.showRequiredMark)([t.validation]),color:t.color,class:"relative"}),{leading:e.withCtx(({error:n})=>{var m,p,f;return[e.createElementVNode("div",$,[l.leadingIcon?(e.openBlock(),e.createElementBlock("div",q,[e.createVNode(g.default,{name:l.leadingIcon.name,solid:l.leadingIcon.solid,class:e.normalizeClass(["h-5 w-5",{"text-neutral-lighter":!n,"text-error":n}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):e.createCommentVNode("",!0)]),e.renderSlot(t.$slots,"leading",e.normalizeProps(e.guardReactiveProps({error:n}))),e.withDirectives(e.createElementVNode("input",{id:t.id||`${e.unref(u)}-${i.value}`,ref_key:"inputRef",ref:c,"onUpdate:modelValue":s[0]||(s[0]=v=>e.isRef(r)?r.value=v:null),name:a.name||t.id||`${e.unref(u)}-${i.value}`,type:o.value,class:e.normalizeClass(["el-input truncate",{error:n,"!pl-10":(m=l.leadingIcon)==null?void 0:m.name,"!pl-3":!((p=l.leadingIcon)!=null&&p.name),"!pr-10":(f=l.trailingIcon)==null?void 0:f.name}]),placeholder:t.placeholder,disabled:t.disabled,autocomplete:l.autocomplete,"data-cy":`${i.value}-input`,onBlur:s[1]||(s[1]=v=>e.unref(E).validate())},null,42,V),[[e.vModelDynamic,e.unref(r)]])]}),trailing:e.withCtx(({error:n})=>[l.trailingIcon?(e.openBlock(),e.createElementBlock("span",N,[e.createVNode(g.default,{name:l.trailingIcon.name,solid:l.trailingIcon.solid,class:e.normalizeClass(["h-5 w-5",{"text-neutral-lighter":!n,"text-error":n}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):e.createCommentVNode("",!0),l.type==="password"?(e.openBlock(),e.createElementBlock("span",P,[e.createVNode(B.default,{error:n,icon:{name:o.value==="text"?"EyeSlashIcon":"EyeIcon"},type:"button",tooltip:o.value==="text"?"Nascondi":"Mostra",onClick:C},null,8,["error","icon","tooltip"])])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"trailing",e.normalizeProps(e.guardReactiveProps({error:n})))]),_:3},16,["model-value","name","label","error-message","hidden-error-message","set-required-mark","color"]))}});exports.default=w;exports.elInputTextTypes=T;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("./input.cjs.js"),g=require("../ElIcon.vue.cjs2.js"),M=require("./ElInputContainer.vue.cjs2.js"),B=require("../ElIconButton.vue.cjs2.js"),$={class:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3"},q={key:0},V=["id","name","type","placeholder","disabled","autocomplete","data-cy"],N={key:0},P={key:1},T=["text","password"],w=e.defineComponent({__name:"ElInputText",props:{...d.withTextualElInputProps(),type:{type:String,default:"text"},leadingIcon:{type:Object,default:void 0,required:!1},trailingIcon:{type:Object,default:void 0,required:!1},focusOnMount:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"}},emits:["update:modelValue"],setup(l,{emit:y}){const a=l,o=e.ref(a.type),c=e.ref(null);e.onMounted(()=>{var t;a.focusOnMount&&((t=c.value)==null||t.focus())});const h=y,I=e.computed(()=>a.modelValue),k=e.computed(()=>[a.validation]),{value:r,errorMessage:b,uuid:s,fieldContext:E}=d.useInput(I,k,a.name,t=>{h("update:modelValue",t==null?void 0:t.trim())}),i=e.computed(()=>a.label?a.label.trim().replaceAll(" ",""):a.type),C=()=>{o.value=o.value==="text"?"password":"text"};return(t,u)=>(e.openBlock(),e.createBlock(M.default,e.mergeProps(t.$attrs,{"model-value":e.unref(r),name:t.id||`${e.unref(s)}-${i.value}`,label:t.label,"error-message":a.errorMessage===!1?!1:a.errorMessage||e.unref(b),"hidden-error-message":t.hiddenErrorMessage,"set-required-mark":e.unref(d.showRequiredMark)([t.validation]),color:t.color,class:"relative"}),{leading:e.withCtx(({error:n})=>{var m,p,f;return[e.createElementVNode("div",$,[l.leadingIcon?(e.openBlock(),e.createElementBlock("div",q,[e.createVNode(g.default,{name:l.leadingIcon.name,solid:l.leadingIcon.solid,class:e.normalizeClass(["h-5 w-5",{"text-neutral-lighter":!n,"text-error":n}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):e.createCommentVNode("",!0)]),e.renderSlot(t.$slots,"leading",e.normalizeProps(e.guardReactiveProps({error:n}))),e.withDirectives(e.createElementVNode("input",{id:t.id||`${e.unref(s)}-${i.value}`,ref_key:"inputRef",ref:c,"onUpdate:modelValue":u[0]||(u[0]=v=>e.isRef(r)?r.value=v:null),name:a.name||t.id||`${e.unref(s)}-${i.value}`,type:o.value,class:e.normalizeClass(["el-input truncate",{error:n,"!pl-10":(m=l.leadingIcon)==null?void 0:m.name,"!pl-3":!((p=l.leadingIcon)!=null&&p.name),"!pr-10":(f=l.trailingIcon)==null?void 0:f.name}]),placeholder:t.placeholder,disabled:t.disabled,autocomplete:l.autocomplete,"data-cy":`${i.value}-input`,onBlur:u[1]||(u[1]=v=>e.unref(E).validate())},null,42,V),[[e.vModelDynamic,e.unref(r)]])]}),trailing:e.withCtx(({error:n})=>[l.trailingIcon?(e.openBlock(),e.createElementBlock("span",N,[e.createVNode(g.default,{name:l.trailingIcon.name,solid:l.trailingIcon.solid,class:e.normalizeClass(["h-5 w-5",{"text-neutral-lighter":!n,"text-error":n}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):e.createCommentVNode("",!0),l.type==="password"?(e.openBlock(),e.createElementBlock("span",P,[e.createVNode(B.default,{error:n,icon:{name:o.value==="text"?"EyeSlashIcon":"EyeIcon"},type:"button","hide-tooltip-on-change":!0,tooltip:o.value==="text"?"Nascondi":"Mostra",onClick:C},null,8,["error","icon","tooltip"])])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"trailing",e.normalizeProps(e.guardReactiveProps({error:n})))]),_:3},16,["model-value","name","label","error-message","hidden-error-message","set-required-mark","color"]))}});exports.default=w;exports.elInputTextTypes=T;
2
2
  //# sourceMappingURL=ElInputText.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElInputText.vue.cjs2.js","sources":["../../../src/forms/ElInputText.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInputTextTypes = ['text', 'password'] as const;\nexport type ElInputTextType = (typeof elInputTextTypes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport { useInput, showRequiredMark, TextualValueType, withTextualElInputProps } from '@/forms/input';\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport ElInputContainer from '@/forms/ElInputContainer.vue';\nimport ElIconButton from '@/ElIconButton.vue';\n\nconst props = defineProps({\n ...withTextualElInputProps(),\n type: {\n type: String as PropType<ElInputTextType>,\n default: 'text',\n },\n leadingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n trailingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n});\n\nconst inputType = ref<ElInputTextType>(props.type);\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nonMounted(() => {\n if (props.focusOnMount) {\n inputRef.value?.focus();\n }\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n}>();\n\nconst computedModelValue = computed(() => props.modelValue);\nconst computedValidation = computed(() => [props.validation]);\n\nconst { value, errorMessage, uuid, fieldContext } = useInput(computedModelValue, computedValidation, props.name, newValue => {\n emit('update:modelValue', newValue?.trim());\n});\n\nconst defaultId = computed(() => (props.label ? props.label.trim().replaceAll(' ', '') : props.type));\n\nconst handleEyesPasswordClick = () => {\n inputType.value = inputType.value === 'text' ? 'password' : 'text';\n};\n</script>\n\n<template>\n <ElInputContainer\n v-bind=\"$attrs\"\n :model-value=\"value\"\n :name=\"id || `${uuid}-${defaultId}`\"\n :label=\"label\"\n :error-message=\"props.errorMessage === false ? false : props.errorMessage || errorMessage\"\n :hidden-error-message=\"hiddenErrorMessage\"\n :set-required-mark=\"showRequiredMark([validation])\"\n :color=\"color\"\n class=\"relative\"\n >\n <template #leading=\"{ error }\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <div v-if=\"leadingIcon\">\n <ElIcon\n :name=\"leadingIcon.name\"\n :solid=\"leadingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </div>\n </div>\n\n <slot name=\"leading\" v-bind=\"{ error }\" />\n\n <input\n :id=\"id || `${uuid}-${defaultId}`\"\n ref=\"inputRef\"\n v-model=\"value\"\n :name=\"props.name || id || `${uuid}-${defaultId}`\"\n :type=\"inputType\"\n class=\"el-input truncate\"\n :class=\"{\n error,\n '!pl-10': leadingIcon?.name,\n '!pl-3': !leadingIcon?.name,\n '!pr-10': trailingIcon?.name,\n }\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :autocomplete=\"autocomplete\"\n :data-cy=\"`${defaultId}-input`\"\n @blur=\"fieldContext.validate()\"\n />\n </template>\n\n <template #trailing=\"{ error }\">\n <span v-if=\"trailingIcon\">\n <ElIcon\n :name=\"trailingIcon.name\"\n :solid=\"trailingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </span>\n\n <span v-if=\"type === 'password'\">\n <ElIconButton\n :error=\"error\"\n :icon=\"{\n name: inputType === 'text' ? 'EyeSlashIcon' : 'EyeIcon',\n }\"\n type=\"button\"\n :tooltip=\"inputType === 'text' ? 'Nascondi' : 'Mostra'\"\n @click=\"handleEyesPasswordClick\"\n />\n </span>\n\n <slot name=\"trailing\" v-bind=\"{ error }\" />\n </template>\n </ElInputContainer>\n</template>\n"],"names":["elInputTextTypes","props","__props","inputType","ref","inputRef","onMounted","_a","emit","__emit","computedModelValue","computed","computedValidation","value","errorMessage","uuid","fieldContext","useInput","newValue","defaultId","handleEyesPasswordClick"],"mappings":"+cACaA,EAAmB,CAAC,OAAQ,UAAU,8VAWnD,MAAMC,EAAQC,EA0BRC,EAAYC,EAAAA,IAAqBH,EAAM,IAAI,EAC3CI,EAAWD,MAA6B,IAAI,EAElDE,EAAAA,UAAU,IAAM,OACVL,EAAM,gBACRM,EAAAF,EAAS,QAAT,MAAAE,EAAgB,QAClB,CACD,EAED,MAAMC,EAAOC,EAIPC,EAAqBC,EAAA,SAAS,IAAMV,EAAM,UAAU,EACpDW,EAAqBD,EAAAA,SAAS,IAAM,CAACV,EAAM,UAAU,CAAC,EAEtD,CAAE,MAAAY,EAAO,aAAAC,EAAc,KAAAC,EAAM,aAAAC,CAAiB,EAAAC,WAASP,EAAoBE,EAAoBX,EAAM,KAAkBiB,GAAA,CACtHV,EAAA,oBAAqBU,GAAA,YAAAA,EAAU,MAAM,CAAA,CAC3C,EAEKC,EAAYR,EAAAA,SAAS,IAAOV,EAAM,MAAQA,EAAM,MAAM,KAAK,EAAE,WAAW,IAAK,EAAE,EAAIA,EAAM,IAAK,EAE9FmB,EAA0B,IAAM,CACpCjB,EAAU,MAAQA,EAAU,QAAU,OAAS,WAAa,MAAA"}
1
+ {"version":3,"file":"ElInputText.vue.cjs2.js","sources":["../../../src/forms/ElInputText.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInputTextTypes = ['text', 'password'] as const;\nexport type ElInputTextType = (typeof elInputTextTypes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport { useInput, showRequiredMark, TextualValueType, withTextualElInputProps } from '@/forms/input';\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport ElInputContainer from '@/forms/ElInputContainer.vue';\nimport ElIconButton from '@/ElIconButton.vue';\n\nconst props = defineProps({\n ...withTextualElInputProps(),\n type: {\n type: String as PropType<ElInputTextType>,\n default: 'text',\n },\n leadingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n trailingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n});\n\nconst inputType = ref<ElInputTextType>(props.type);\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nonMounted(() => {\n if (props.focusOnMount) {\n inputRef.value?.focus();\n }\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n}>();\n\nconst computedModelValue = computed(() => props.modelValue);\nconst computedValidation = computed(() => [props.validation]);\n\nconst { value, errorMessage, uuid, fieldContext } = useInput(computedModelValue, computedValidation, props.name, newValue => {\n emit('update:modelValue', newValue?.trim());\n});\n\nconst defaultId = computed(() => (props.label ? props.label.trim().replaceAll(' ', '') : props.type));\n\nconst handleEyesPasswordClick = () => {\n inputType.value = inputType.value === 'text' ? 'password' : 'text';\n};\n</script>\n\n<template>\n <ElInputContainer\n v-bind=\"$attrs\"\n :model-value=\"value\"\n :name=\"id || `${uuid}-${defaultId}`\"\n :label=\"label\"\n :error-message=\"props.errorMessage === false ? false : props.errorMessage || errorMessage\"\n :hidden-error-message=\"hiddenErrorMessage\"\n :set-required-mark=\"showRequiredMark([validation])\"\n :color=\"color\"\n class=\"relative\"\n >\n <template #leading=\"{ error }\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <div v-if=\"leadingIcon\">\n <ElIcon\n :name=\"leadingIcon.name\"\n :solid=\"leadingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </div>\n </div>\n\n <slot name=\"leading\" v-bind=\"{ error }\" />\n\n <input\n :id=\"id || `${uuid}-${defaultId}`\"\n ref=\"inputRef\"\n v-model=\"value\"\n :name=\"props.name || id || `${uuid}-${defaultId}`\"\n :type=\"inputType\"\n class=\"el-input truncate\"\n :class=\"{\n error,\n '!pl-10': leadingIcon?.name,\n '!pl-3': !leadingIcon?.name,\n '!pr-10': trailingIcon?.name,\n }\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :autocomplete=\"autocomplete\"\n :data-cy=\"`${defaultId}-input`\"\n @blur=\"fieldContext.validate()\"\n />\n </template>\n\n <template #trailing=\"{ error }\">\n <span v-if=\"trailingIcon\">\n <ElIcon\n :name=\"trailingIcon.name\"\n :solid=\"trailingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </span>\n\n <span v-if=\"type === 'password'\">\n <ElIconButton\n :error=\"error\"\n :icon=\"{\n name: inputType === 'text' ? 'EyeSlashIcon' : 'EyeIcon',\n }\"\n type=\"button\"\n :hide-tooltip-on-change=\"true\"\n :tooltip=\"inputType === 'text' ? 'Nascondi' : 'Mostra'\"\n @click=\"handleEyesPasswordClick\"\n />\n </span>\n\n <slot name=\"trailing\" v-bind=\"{ error }\" />\n </template>\n </ElInputContainer>\n</template>\n"],"names":["elInputTextTypes","props","__props","inputType","ref","inputRef","onMounted","_a","emit","__emit","computedModelValue","computed","computedValidation","value","errorMessage","uuid","fieldContext","useInput","newValue","defaultId","handleEyesPasswordClick"],"mappings":"+cACaA,EAAmB,CAAC,OAAQ,UAAU,8VAWnD,MAAMC,EAAQC,EA0BRC,EAAYC,EAAAA,IAAqBH,EAAM,IAAI,EAC3CI,EAAWD,MAA6B,IAAI,EAElDE,EAAAA,UAAU,IAAM,OACVL,EAAM,gBACRM,EAAAF,EAAS,QAAT,MAAAE,EAAgB,QAClB,CACD,EAED,MAAMC,EAAOC,EAIPC,EAAqBC,EAAA,SAAS,IAAMV,EAAM,UAAU,EACpDW,EAAqBD,EAAAA,SAAS,IAAM,CAACV,EAAM,UAAU,CAAC,EAEtD,CAAE,MAAAY,EAAO,aAAAC,EAAc,KAAAC,EAAM,aAAAC,CAAiB,EAAAC,WAASP,EAAoBE,EAAoBX,EAAM,KAAkBiB,GAAA,CACtHV,EAAA,oBAAqBU,GAAA,YAAAA,EAAU,MAAM,CAAA,CAC3C,EAEKC,EAAYR,EAAAA,SAAS,IAAOV,EAAM,MAAQA,EAAM,MAAM,KAAK,EAAE,WAAW,IAAK,EAAE,EAAIA,EAAM,IAAK,EAE9FmB,EAA0B,IAAM,CACpCjB,EAAU,MAAQA,EAAU,QAAU,OAAS,WAAa,MAAA"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as O,ref as b,onMounted as S,computed as m,openBlock as r,createBlock as j,mergeProps as z,unref as o,withCtx as k,createElementVNode as M,createElementBlock as c,createVNode as p,normalizeClass as f,createCommentVNode as g,renderSlot as E,normalizeProps as C,guardReactiveProps as w,withDirectives as D,isRef as A,vModelDynamic as U}from"vue";import{withTextualElInputProps as F,useInput as G,showRequiredMark as H}from"./input.esm.js";import x from"../ElIcon.vue.esm2.js";import J from"./ElInputContainer.vue.esm2.js";import K from"../ElIconButton.vue.esm2.js";const L={class:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3"},Q={key:0},W=["id","name","type","placeholder","disabled","autocomplete","data-cy"],X={key:0},Y={key:1},ae=["text","password"],oe=O({__name:"ElInputText",props:{...F(),type:{type:String,default:"text"},leadingIcon:{type:Object,default:void 0,required:!1},trailingIcon:{type:Object,default:void 0,required:!1},focusOnMount:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"}},emits:["update:modelValue"],setup(t,{emit:q}){const l=t,n=b(l.type),v=b(null);S(()=>{var e;l.focusOnMount&&((e=v.value)==null||e.focus())});const B=q,P=m(()=>l.modelValue),R=m(()=>[l.validation]),{value:i,errorMessage:T,uuid:u,fieldContext:V}=G(P,R,l.name,e=>{B("update:modelValue",e==null?void 0:e.trim())}),s=m(()=>l.label?l.label.trim().replaceAll(" ",""):l.type),N=()=>{n.value=n.value==="text"?"password":"text"};return(e,d)=>(r(),j(J,z(e.$attrs,{"model-value":o(i),name:e.id||`${o(u)}-${s.value}`,label:e.label,"error-message":l.errorMessage===!1?!1:l.errorMessage||o(T),"hidden-error-message":e.hiddenErrorMessage,"set-required-mark":o(H)([e.validation]),color:e.color,class:"relative"}),{leading:k(({error:a})=>{var y,h,I;return[M("div",L,[t.leadingIcon?(r(),c("div",Q,[p(x,{name:t.leadingIcon.name,solid:t.leadingIcon.solid,class:f(["h-5 w-5",{"text-neutral-lighter":!a,"text-error":a}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):g("",!0)]),E(e.$slots,"leading",C(w({error:a}))),D(M("input",{id:e.id||`${o(u)}-${s.value}`,ref_key:"inputRef",ref:v,"onUpdate:modelValue":d[0]||(d[0]=$=>A(i)?i.value=$:null),name:l.name||e.id||`${o(u)}-${s.value}`,type:n.value,class:f(["el-input truncate",{error:a,"!pl-10":(y=t.leadingIcon)==null?void 0:y.name,"!pl-3":!((h=t.leadingIcon)!=null&&h.name),"!pr-10":(I=t.trailingIcon)==null?void 0:I.name}]),placeholder:e.placeholder,disabled:e.disabled,autocomplete:t.autocomplete,"data-cy":`${s.value}-input`,onBlur:d[1]||(d[1]=$=>o(V).validate())},null,42,W),[[U,o(i)]])]}),trailing:k(({error:a})=>[t.trailingIcon?(r(),c("span",X,[p(x,{name:t.trailingIcon.name,solid:t.trailingIcon.solid,class:f(["h-5 w-5",{"text-neutral-lighter":!a,"text-error":a}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):g("",!0),t.type==="password"?(r(),c("span",Y,[p(K,{error:a,icon:{name:n.value==="text"?"EyeSlashIcon":"EyeIcon"},type:"button",tooltip:n.value==="text"?"Nascondi":"Mostra",onClick:N},null,8,["error","icon","tooltip"])])):g("",!0),E(e.$slots,"trailing",C(w({error:a})))]),_:3},16,["model-value","name","label","error-message","hidden-error-message","set-required-mark","color"]))}});export{oe as default,ae as elInputTextTypes};
1
+ import{defineComponent as O,ref as b,onMounted as S,computed as m,openBlock as r,createBlock as j,mergeProps as z,unref as o,withCtx as k,createElementVNode as M,createElementBlock as c,createVNode as p,normalizeClass as f,createCommentVNode as g,renderSlot as E,normalizeProps as C,guardReactiveProps as w,withDirectives as D,isRef as A,vModelDynamic as U}from"vue";import{withTextualElInputProps as F,useInput as G,showRequiredMark as H}from"./input.esm.js";import x from"../ElIcon.vue.esm2.js";import J from"./ElInputContainer.vue.esm2.js";import K from"../ElIconButton.vue.esm2.js";const L={class:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3"},Q={key:0},W=["id","name","type","placeholder","disabled","autocomplete","data-cy"],X={key:0},Y={key:1},ae=["text","password"],oe=O({__name:"ElInputText",props:{...F(),type:{type:String,default:"text"},leadingIcon:{type:Object,default:void 0,required:!1},trailingIcon:{type:Object,default:void 0,required:!1},focusOnMount:{type:Boolean,default:!1},autocomplete:{type:String,default:"off"}},emits:["update:modelValue"],setup(t,{emit:q}){const l=t,n=b(l.type),v=b(null);S(()=>{var e;l.focusOnMount&&((e=v.value)==null||e.focus())});const B=q,P=m(()=>l.modelValue),R=m(()=>[l.validation]),{value:i,errorMessage:T,uuid:u,fieldContext:V}=G(P,R,l.name,e=>{B("update:modelValue",e==null?void 0:e.trim())}),s=m(()=>l.label?l.label.trim().replaceAll(" ",""):l.type),N=()=>{n.value=n.value==="text"?"password":"text"};return(e,d)=>(r(),j(J,z(e.$attrs,{"model-value":o(i),name:e.id||`${o(u)}-${s.value}`,label:e.label,"error-message":l.errorMessage===!1?!1:l.errorMessage||o(T),"hidden-error-message":e.hiddenErrorMessage,"set-required-mark":o(H)([e.validation]),color:e.color,class:"relative"}),{leading:k(({error:a})=>{var y,h,I;return[M("div",L,[t.leadingIcon?(r(),c("div",Q,[p(x,{name:t.leadingIcon.name,solid:t.leadingIcon.solid,class:f(["h-5 w-5",{"text-neutral-lighter":!a,"text-error":a}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):g("",!0)]),E(e.$slots,"leading",C(w({error:a}))),D(M("input",{id:e.id||`${o(u)}-${s.value}`,ref_key:"inputRef",ref:v,"onUpdate:modelValue":d[0]||(d[0]=$=>A(i)?i.value=$:null),name:l.name||e.id||`${o(u)}-${s.value}`,type:n.value,class:f(["el-input truncate",{error:a,"!pl-10":(y=t.leadingIcon)==null?void 0:y.name,"!pl-3":!((h=t.leadingIcon)!=null&&h.name),"!pr-10":(I=t.trailingIcon)==null?void 0:I.name}]),placeholder:e.placeholder,disabled:e.disabled,autocomplete:t.autocomplete,"data-cy":`${s.value}-input`,onBlur:d[1]||(d[1]=$=>o(V).validate())},null,42,W),[[U,o(i)]])]}),trailing:k(({error:a})=>[t.trailingIcon?(r(),c("span",X,[p(x,{name:t.trailingIcon.name,solid:t.trailingIcon.solid,class:f(["h-5 w-5",{"text-neutral-lighter":!a,"text-error":a}]),"aria-hidden":"true"},null,8,["name","solid","class"])])):g("",!0),t.type==="password"?(r(),c("span",Y,[p(K,{error:a,icon:{name:n.value==="text"?"EyeSlashIcon":"EyeIcon"},type:"button","hide-tooltip-on-change":!0,tooltip:n.value==="text"?"Nascondi":"Mostra",onClick:N},null,8,["error","icon","tooltip"])])):g("",!0),E(e.$slots,"trailing",C(w({error:a})))]),_:3},16,["model-value","name","label","error-message","hidden-error-message","set-required-mark","color"]))}});export{oe as default,ae as elInputTextTypes};
2
2
  //# sourceMappingURL=ElInputText.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElInputText.vue.esm2.js","sources":["../../../src/forms/ElInputText.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInputTextTypes = ['text', 'password'] as const;\nexport type ElInputTextType = (typeof elInputTextTypes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport { useInput, showRequiredMark, TextualValueType, withTextualElInputProps } from '@/forms/input';\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport ElInputContainer from '@/forms/ElInputContainer.vue';\nimport ElIconButton from '@/ElIconButton.vue';\n\nconst props = defineProps({\n ...withTextualElInputProps(),\n type: {\n type: String as PropType<ElInputTextType>,\n default: 'text',\n },\n leadingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n trailingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n});\n\nconst inputType = ref<ElInputTextType>(props.type);\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nonMounted(() => {\n if (props.focusOnMount) {\n inputRef.value?.focus();\n }\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n}>();\n\nconst computedModelValue = computed(() => props.modelValue);\nconst computedValidation = computed(() => [props.validation]);\n\nconst { value, errorMessage, uuid, fieldContext } = useInput(computedModelValue, computedValidation, props.name, newValue => {\n emit('update:modelValue', newValue?.trim());\n});\n\nconst defaultId = computed(() => (props.label ? props.label.trim().replaceAll(' ', '') : props.type));\n\nconst handleEyesPasswordClick = () => {\n inputType.value = inputType.value === 'text' ? 'password' : 'text';\n};\n</script>\n\n<template>\n <ElInputContainer\n v-bind=\"$attrs\"\n :model-value=\"value\"\n :name=\"id || `${uuid}-${defaultId}`\"\n :label=\"label\"\n :error-message=\"props.errorMessage === false ? false : props.errorMessage || errorMessage\"\n :hidden-error-message=\"hiddenErrorMessage\"\n :set-required-mark=\"showRequiredMark([validation])\"\n :color=\"color\"\n class=\"relative\"\n >\n <template #leading=\"{ error }\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <div v-if=\"leadingIcon\">\n <ElIcon\n :name=\"leadingIcon.name\"\n :solid=\"leadingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </div>\n </div>\n\n <slot name=\"leading\" v-bind=\"{ error }\" />\n\n <input\n :id=\"id || `${uuid}-${defaultId}`\"\n ref=\"inputRef\"\n v-model=\"value\"\n :name=\"props.name || id || `${uuid}-${defaultId}`\"\n :type=\"inputType\"\n class=\"el-input truncate\"\n :class=\"{\n error,\n '!pl-10': leadingIcon?.name,\n '!pl-3': !leadingIcon?.name,\n '!pr-10': trailingIcon?.name,\n }\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :autocomplete=\"autocomplete\"\n :data-cy=\"`${defaultId}-input`\"\n @blur=\"fieldContext.validate()\"\n />\n </template>\n\n <template #trailing=\"{ error }\">\n <span v-if=\"trailingIcon\">\n <ElIcon\n :name=\"trailingIcon.name\"\n :solid=\"trailingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </span>\n\n <span v-if=\"type === 'password'\">\n <ElIconButton\n :error=\"error\"\n :icon=\"{\n name: inputType === 'text' ? 'EyeSlashIcon' : 'EyeIcon',\n }\"\n type=\"button\"\n :tooltip=\"inputType === 'text' ? 'Nascondi' : 'Mostra'\"\n @click=\"handleEyesPasswordClick\"\n />\n </span>\n\n <slot name=\"trailing\" v-bind=\"{ error }\" />\n </template>\n </ElInputContainer>\n</template>\n"],"names":["elInputTextTypes","props","__props","inputType","ref","inputRef","onMounted","_a","emit","__emit","computedModelValue","computed","computedValidation","value","errorMessage","uuid","fieldContext","useInput","newValue","defaultId","handleEyesPasswordClick"],"mappings":"wwBACaA,GAAmB,CAAC,OAAQ,UAAU,uTAWnD,MAAMC,EAAQC,EA0BRC,EAAYC,EAAqBH,EAAM,IAAI,EAC3CI,EAAWD,EAA6B,IAAI,EAElDE,EAAU,IAAM,OACVL,EAAM,gBACRM,EAAAF,EAAS,QAAT,MAAAE,EAAgB,QAClB,CACD,EAED,MAAMC,EAAOC,EAIPC,EAAqBC,EAAS,IAAMV,EAAM,UAAU,EACpDW,EAAqBD,EAAS,IAAM,CAACV,EAAM,UAAU,CAAC,EAEtD,CAAE,MAAAY,EAAO,aAAAC,EAAc,KAAAC,EAAM,aAAAC,CAAiB,EAAAC,EAASP,EAAoBE,EAAoBX,EAAM,KAAkBiB,GAAA,CACtHV,EAAA,oBAAqBU,GAAA,YAAAA,EAAU,MAAM,CAAA,CAC3C,EAEKC,EAAYR,EAAS,IAAOV,EAAM,MAAQA,EAAM,MAAM,KAAK,EAAE,WAAW,IAAK,EAAE,EAAIA,EAAM,IAAK,EAE9FmB,EAA0B,IAAM,CACpCjB,EAAU,MAAQA,EAAU,QAAU,OAAS,WAAa,MAAA"}
1
+ {"version":3,"file":"ElInputText.vue.esm2.js","sources":["../../../src/forms/ElInputText.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInputTextTypes = ['text', 'password'] as const;\nexport type ElInputTextType = (typeof elInputTextTypes)[number];\n</script>\n\n<script lang=\"ts\" setup>\nimport { useInput, showRequiredMark, TextualValueType, withTextualElInputProps } from '@/forms/input';\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport ElIcon, { ElIconProps } from '@/ElIcon.vue';\nimport ElInputContainer from '@/forms/ElInputContainer.vue';\nimport ElIconButton from '@/ElIconButton.vue';\n\nconst props = defineProps({\n ...withTextualElInputProps(),\n type: {\n type: String as PropType<ElInputTextType>,\n default: 'text',\n },\n leadingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n trailingIcon: {\n type: Object as PropType<ElIconProps>,\n default: undefined,\n required: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n});\n\nconst inputType = ref<ElInputTextType>(props.type);\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nonMounted(() => {\n if (props.focusOnMount) {\n inputRef.value?.focus();\n }\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n}>();\n\nconst computedModelValue = computed(() => props.modelValue);\nconst computedValidation = computed(() => [props.validation]);\n\nconst { value, errorMessage, uuid, fieldContext } = useInput(computedModelValue, computedValidation, props.name, newValue => {\n emit('update:modelValue', newValue?.trim());\n});\n\nconst defaultId = computed(() => (props.label ? props.label.trim().replaceAll(' ', '') : props.type));\n\nconst handleEyesPasswordClick = () => {\n inputType.value = inputType.value === 'text' ? 'password' : 'text';\n};\n</script>\n\n<template>\n <ElInputContainer\n v-bind=\"$attrs\"\n :model-value=\"value\"\n :name=\"id || `${uuid}-${defaultId}`\"\n :label=\"label\"\n :error-message=\"props.errorMessage === false ? false : props.errorMessage || errorMessage\"\n :hidden-error-message=\"hiddenErrorMessage\"\n :set-required-mark=\"showRequiredMark([validation])\"\n :color=\"color\"\n class=\"relative\"\n >\n <template #leading=\"{ error }\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <div v-if=\"leadingIcon\">\n <ElIcon\n :name=\"leadingIcon.name\"\n :solid=\"leadingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </div>\n </div>\n\n <slot name=\"leading\" v-bind=\"{ error }\" />\n\n <input\n :id=\"id || `${uuid}-${defaultId}`\"\n ref=\"inputRef\"\n v-model=\"value\"\n :name=\"props.name || id || `${uuid}-${defaultId}`\"\n :type=\"inputType\"\n class=\"el-input truncate\"\n :class=\"{\n error,\n '!pl-10': leadingIcon?.name,\n '!pl-3': !leadingIcon?.name,\n '!pr-10': trailingIcon?.name,\n }\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :autocomplete=\"autocomplete\"\n :data-cy=\"`${defaultId}-input`\"\n @blur=\"fieldContext.validate()\"\n />\n </template>\n\n <template #trailing=\"{ error }\">\n <span v-if=\"trailingIcon\">\n <ElIcon\n :name=\"trailingIcon.name\"\n :solid=\"trailingIcon.solid\"\n class=\"h-5 w-5\"\n aria-hidden=\"true\"\n :class=\"{\n 'text-neutral-lighter': !error,\n 'text-error': error,\n }\"\n />\n </span>\n\n <span v-if=\"type === 'password'\">\n <ElIconButton\n :error=\"error\"\n :icon=\"{\n name: inputType === 'text' ? 'EyeSlashIcon' : 'EyeIcon',\n }\"\n type=\"button\"\n :hide-tooltip-on-change=\"true\"\n :tooltip=\"inputType === 'text' ? 'Nascondi' : 'Mostra'\"\n @click=\"handleEyesPasswordClick\"\n />\n </span>\n\n <slot name=\"trailing\" v-bind=\"{ error }\" />\n </template>\n </ElInputContainer>\n</template>\n"],"names":["elInputTextTypes","props","__props","inputType","ref","inputRef","onMounted","_a","emit","__emit","computedModelValue","computed","computedValidation","value","errorMessage","uuid","fieldContext","useInput","newValue","defaultId","handleEyesPasswordClick"],"mappings":"wwBACaA,GAAmB,CAAC,OAAQ,UAAU,uTAWnD,MAAMC,EAAQC,EA0BRC,EAAYC,EAAqBH,EAAM,IAAI,EAC3CI,EAAWD,EAA6B,IAAI,EAElDE,EAAU,IAAM,OACVL,EAAM,gBACRM,EAAAF,EAAS,QAAT,MAAAE,EAAgB,QAClB,CACD,EAED,MAAMC,EAAOC,EAIPC,EAAqBC,EAAS,IAAMV,EAAM,UAAU,EACpDW,EAAqBD,EAAS,IAAM,CAACV,EAAM,UAAU,CAAC,EAEtD,CAAE,MAAAY,EAAO,aAAAC,EAAc,KAAAC,EAAM,aAAAC,CAAiB,EAAAC,EAASP,EAAoBE,EAAoBX,EAAM,KAAkBiB,GAAA,CACtHV,EAAA,oBAAqBU,GAAA,YAAAA,EAAU,MAAM,CAAA,CAC3C,EAEKC,EAAYR,EAAS,IAAOV,EAAM,MAAQA,EAAM,MAAM,KAAK,EAAE,WAAW,IAAK,EAAE,EAAIA,EAAM,IAAK,EAE9FmB,EAA0B,IAAM,CACpCjB,EAAU,MAAQA,EAAU,QAAU,OAAS,WAAa,MAAA"}
@@ -157,6 +157,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToRu
157
157
  tooltipDelay?: (string | number) | undefined;
158
158
  badgeColor?: import('..').ElBadgeColors | undefined;
159
159
  showTooltipOnMobile?: boolean | undefined;
160
+ hideTooltipOnChange?: boolean | undefined;
160
161
  key?: (string | number | symbol) | undefined;
161
162
  ref?: any;
162
163
  ref_for?: boolean | undefined;
@@ -225,6 +226,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToRu
225
226
  tooltipDelay?: (string | number) | undefined;
226
227
  badgeColor?: import('..').ElBadgeColors | undefined;
227
228
  showTooltipOnMobile?: boolean | undefined;
229
+ hideTooltipOnChange?: boolean | undefined;
228
230
  key?: (string | number | symbol) | undefined;
229
231
  ref?: any;
230
232
  ref_for?: boolean | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davincihealthcare/elty-design-system-vue",
3
- "version": "2.10.0",
3
+ "version": "2.10.1",
4
4
  "license": "UNLICENSED",
5
5
  "main": "dist/index.umd.cjs",
6
6
  "types": "dist/index.d.ts",