{"version":3,"file":"VStepperItem.mjs","names":["VAvatar","VIcon","makeGroupItemProps","useGroupItem","IconValue","genOverlays","Ripple","computed","VStepperSymbol","genericComponent","propsFactory","useRender","makeStepperItemProps","color","String","title","subtitle","complete","Boolean","completeIcon","type","default","editable","editIcon","error","errorIcon","icon","ripple","Object","rules","Array","makeVStepperItemProps","VStepperItem","name","directives","props","emits","val","setup","_ref","slots","group","step","value","isValid","every","handler","isClickable","disabled","canEdit","hasError","hasCompleted","length","isSelected","slotProps","hasColor","hasTitle","hasSubtitle","onClick","toggle","_withDirectives","_createVNode","selectedClass","undefined","_resolveDirective"],"sources":["../../../src/components/VStepper/VStepperItem.tsx"],"sourcesContent":["// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { genOverlays } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './shared'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItem = string | Record\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string | number\n subtitle?: string | number\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: IconValue,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: IconValue,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: IconValue,\n default: '$error',\n },\n icon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n rules: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'StepperItem')\n\nexport const makeVStepperItemProps = propsFactory({\n ...makeStepperItemProps(),\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const isClickable = computed(() => !props.disabled && props.editable)\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (group.isSelected.value && props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n \n { isClickable.value && genOverlays(true, 'v-stepper-item') }\n\n \n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n \n ) : step.value\n )}\n \n\n
\n { hasTitle && (\n \n { slots.title?.(slotProps.value) ?? props.title }\n
\n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n \n )}\n\n { slots.default?.(slotProps.value) }\n \n \n )\n })\n return {}\n },\n})\n\nexport type VStepperItem = InstanceType\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,OAAO;AAAA,SACPC,KAAK,8BAEd;AAAA,SACSC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,SAAS;AAAA,SACTC,WAAW,yCAEpB;AAAA,SACSC,MAAM,6CAEf;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,cAAc;AAAA,SACdC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAwBA,OAAO,MAAMC,oBAAoB,GAAGF,YAAY,CAAC;EAC/CG,KAAK,EAAEC,MAAM;EACbC,KAAK,EAAED,MAAM;EACbE,QAAQ,EAAEF,MAAM;EAChBG,QAAQ,EAAEC,OAAO;EACjBC,YAAY,EAAE;IACZC,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAEJ,OAAO;EACjBK,QAAQ,EAAE;IACRH,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDG,KAAK,EAAEN,OAAO;EACdO,SAAS,EAAE;IACTL,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDK,IAAI,EAAEtB,SAAS;EACfuB,MAAM,EAAE;IACNP,IAAI,EAAE,CAACF,OAAO,EAAEU,MAAM,CAA8C;IACpEP,OAAO,EAAE;EACX,CAAC;EACDQ,KAAK,EAAE;IACLT,IAAI,EAAEU,KAA4C;IAClDT,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMU,qBAAqB,GAAGrB,YAAY,CAAC;EAChD,GAAGE,oBAAoB,CAAC,CAAC;EACzB,GAAGV,kBAAkB,CAAC;AACxB,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAM8B,YAAY,GAAGvB,gBAAgB,CAAoB,CAAC,CAAC;EAChEwB,IAAI,EAAE,cAAc;EAEpBC,UAAU,EAAE;IAAE5B;EAAO,CAAC;EAEtB6B,KAAK,EAAEJ,qBAAqB,CAAC,CAAC;EAE9BK,KAAK,EAAE;IACL,gBAAgB,EAAGC,GAAuB,IAAK;EACjD,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGtC,YAAY,CAACgC,KAAK,EAAE3B,cAAc,EAAE,IAAI,CAAC;IACvD,MAAMkC,IAAI,GAAGnC,QAAQ,CAAC,MAAMkC,KAAK,EAAEE,KAAK,CAACA,KAAK,IAAIR,KAAK,CAACQ,KAAK,CAAC;IAC9D,MAAMC,OAAO,GAAGrC,QAAQ,CAAC,MAAM4B,KAAK,CAACN,KAAK,CAACgB,KAAK,CAACC,OAAO,IAAIA,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAChF,MAAMC,WAAW,GAAGxC,QAAQ,CAAC,MAAM,CAAC4B,KAAK,CAACa,QAAQ,IAAIb,KAAK,CAACb,QAAQ,CAAC;IACrE,MAAM2B,OAAO,GAAG1C,QAAQ,CAAC,MAAM,CAAC4B,KAAK,CAACa,QAAQ,IAAIb,KAAK,CAACb,QAAQ,CAAC;IACjE,MAAM4B,QAAQ,GAAG3C,QAAQ,CAAC,MAAM4B,KAAK,CAACX,KAAK,IAAI,CAACoB,OAAO,CAACD,KAAK,CAAC;IAC9D,MAAMQ,YAAY,GAAG5C,QAAQ,CAAC,MAAM4B,KAAK,CAAClB,QAAQ,IAAKkB,KAAK,CAACN,KAAK,CAACuB,MAAM,GAAG,CAAC,IAAIR,OAAO,CAACD,KAAM,CAAC;IAChG,MAAMjB,IAAI,GAAGnB,QAAQ,CAAC,MAAM;MAC1B,IAAI2C,QAAQ,CAACP,KAAK,EAAE,OAAOR,KAAK,CAACV,SAAS;MAC1C,IAAI0B,YAAY,CAACR,KAAK,EAAE,OAAOR,KAAK,CAAChB,YAAY;MACjD,IAAIsB,KAAK,CAACY,UAAU,CAACV,KAAK,IAAIR,KAAK,CAACb,QAAQ,EAAE,OAAOa,KAAK,CAACZ,QAAQ;MAEnE,OAAOY,KAAK,CAACT,IAAI;IACnB,CAAC,CAAC;IACF,MAAM4B,SAAS,GAAG/C,QAAQ,CAAC,OAAO;MAChC0C,OAAO,EAAEA,OAAO,CAACN,KAAK;MACtBO,QAAQ,EAAEA,QAAQ,CAACP,KAAK;MACxBQ,YAAY,EAAEA,YAAY,CAACR,KAAK;MAChC5B,KAAK,EAAEoB,KAAK,CAACpB,KAAK;MAClBC,QAAQ,EAAEmB,KAAK,CAACnB,QAAQ;MACxB0B,IAAI,EAAEA,IAAI,CAACC,KAAK;MAChBA,KAAK,EAAER,KAAK,CAACQ;IACf,CAAC,CAAC,CAAC;IAEHhC,SAAS,CAAC,MAAM;MACd,MAAM4C,QAAQ,GAAG,CACf,CAACd,KAAK,IACNA,KAAK,CAACY,UAAU,CAACV,KAAK,IACtBQ,YAAY,CAACR,KAAK,IAClBM,OAAO,CAACN,KAAK,KAEb,CAACO,QAAQ,CAACP,KAAK,IACf,CAACR,KAAK,CAACa,QACR;MACD,MAAMQ,QAAQ,GAAG,CAAC,EAAErB,KAAK,CAACpB,KAAK,IAAI,IAAI,IAAIyB,KAAK,CAACzB,KAAK,CAAC;MACvD,MAAM0C,WAAW,GAAG,CAAC,EAAEtB,KAAK,CAACnB,QAAQ,IAAI,IAAI,IAAIwB,KAAK,CAACxB,QAAQ,CAAC;MAEhE,SAAS0C,OAAOA,CAAA,EAAI;QAClBjB,KAAK,EAAEkB,MAAM,CAAC,CAAC;MACjB;MAEA,OAAAC,eAAA,CAAAC,YAAA;QAAA,SAEW,CACL,gBAAgB,EAChB;UACE,0BAA0B,EAAEV,YAAY,CAACR,KAAK;UAC9C,0BAA0B,EAAER,KAAK,CAACa,QAAQ;UAC1C,uBAAuB,EAAEE,QAAQ,CAACP;QACpC,CAAC,EACDF,KAAK,EAAEqB,aAAa,CAACnB,KAAK,CAC3B;QAAA,YACU,CAACR,KAAK,CAACb,QAAQ;QAAA,WAMhBoC;MAAO,IAEfX,WAAW,CAACJ,KAAK,IAAItC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAAwD,YAAA,CAAA7D,OAAA;QAAA;QAAA;QAAA,SAKhDuD,QAAQ,GAAGpB,KAAK,CAACtB,KAAK,GAAGkD,SAAS;QAAA,QACnC;MAAE;QAAA1C,OAAA,EAAAA,CAAA,MAEPmB,KAAK,CAACd,IAAI,GAAG4B,SAAS,CAACX,KAAK,CAAC,KAC7BjB,IAAI,CAACiB,KAAK,GAAAkB,YAAA,CAAA5D,KAAA;UAAA,QACMyB,IAAI,CAACiB;QAAK,WACtBD,IAAI,CAACC,KAAK,CACf;MAAA,IAAAkB,YAAA;QAAA;MAAA,IAICL,QAAQ,IAAAK,YAAA;QAAA;QAAA;MAAA,IAKJrB,KAAK,CAACzB,KAAK,GAAGuC,SAAS,CAACX,KAAK,CAAC,IAAIR,KAAK,CAACpB,KAAK,EAElD,EAEC0C,WAAW,IAAAI,YAAA;QAAA;QAAA;MAAA,IAKPrB,KAAK,CAACxB,QAAQ,GAAGsC,SAAS,CAACX,KAAK,CAAC,IAAIR,KAAK,CAACnB,QAAQ,EAExD,EAECwB,KAAK,CAACnB,OAAO,GAAGiC,SAAS,CAACX,KAAK,CAAC,QAAAqB,iBAAA,YAxClC7B,KAAK,CAACR,MAAM,IAAIQ,KAAK,CAACb,QAAQ,EAC9B,IAAI;IA2CZ,CAAC,CAAC;IACF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}