{"version":3,"file":"track.cjs","sources":["../../../../../../packages/vue-components/vc-slick/src/track.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\nimport { classNames, deepCloneElement, flattenChildren } from '@antdv/utils';\nimport { createVNode } from 'vue';\nimport { getPreClones, lazyEndIndex, lazyStartIndex } from './utils/innerSliderUtils';\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nfunction getSlideClasses(spec) {\n  let slickActive, slickCenter;\n  let centerOffset, index;\n\n  if (spec.rtl)\n    index = spec.slideCount - 1 - spec.index;\n  else\n    index = spec.index;\n\n  const slickCloned = index < 0 || index >= spec.slideCount;\n  if (spec.centerMode) {\n    centerOffset = Math.floor(spec.slidesToShow / 2);\n    slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n    if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset)\n      slickActive = true;\n  } else {\n    slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n  }\n  let focusedSlide;\n  if (spec.targetSlide < 0)\n    focusedSlide = spec.targetSlide + spec.slideCount;\n  else if (spec.targetSlide >= spec.slideCount)\n    focusedSlide = spec.targetSlide - spec.slideCount;\n  else\n    focusedSlide = spec.targetSlide;\n\n  const slickCurrent = index === focusedSlide;\n  return {\n    'slick-slide': true,\n    'slick-active': slickActive,\n    'slick-center': slickCenter,\n    'slick-cloned': slickCloned,\n    'slick-current': slickCurrent, // dubious in case of RTL\n  };\n}\n\nconst getSlideStyle = function (spec) {\n  const style: CSSProperties = {};\n\n  if (spec.variableWidth === undefined || spec.variableWidth === false)\n    style.width = spec.slideWidth + (typeof spec.slideWidth === 'number' ? 'px' : '');\n\n  if (spec.fade) {\n    style.position = 'relative';\n    if (spec.vertical)\n      style.top = `${-spec.index * Number.parseInt(spec.slideHeight)}px`;\n    else\n      style.left = `${-spec.index * Number.parseInt(spec.slideWidth)}px`;\n\n    style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n    if (spec.useCSS) {\n      style.transition\n        = `opacity ${\n          spec.speed\n        }ms ${\n          spec.cssEase\n        }, `\n        + `visibility ${\n          spec.speed\n        }ms ${\n          spec.cssEase}`;\n    }\n  }\n\n  return style;\n};\n\nconst getKey = (child, fallbackKey) => `${child.key}-${fallbackKey}`;\n\nconst renderSlides = function (spec, children) {\n  let key;\n  const slides = [];\n  const preCloneSlides = [];\n  const postCloneSlides = [];\n  const childrenCount = children.length;\n  const startIndex = lazyStartIndex(spec);\n  const endIndex = lazyEndIndex(spec);\n  children.forEach((elem, index) => {\n    let child;\n    const childOnClickOptions = {\n      message: 'children',\n      index,\n      slidesToScroll: spec.slidesToScroll,\n      currentSlide: spec.currentSlide,\n    };\n\n    // in case of lazyLoad, whether or not we want to fetch the slide\n    if (!spec.lazyLoad || (spec.lazyLoad && spec.lazyLoadedList.includes(index)))\n      child = elem;\n    else\n      child = createVNode('div');\n\n    const childStyle = getSlideStyle({ ...spec, index });\n    const slideClass = child.props.class || '';\n    let slideClasses = getSlideClasses({ ...spec, index });\n    // push a cloned element of the desired slide\n    slides.push(\n      deepCloneElement(child, {\n        'key': `original${getKey(child, index)}`,\n        'tabindex': '-1',\n        'data-index': index,\n        'aria-hidden': !slideClasses['slick-active'],\n        'class': classNames(slideClasses, slideClass),\n        'style': { outline: 'none', ...(child.props.style || {}), ...childStyle },\n        'onClick': () => {\n          // child.props && child.props.onClick && child.props.onClick(e)\n          if (spec.focusOnSelect)\n            spec.focusOnSelect(childOnClickOptions);\n        },\n      }),\n    );\n\n    // if slide needs to be precloned or postcloned\n    if (spec.infinite && spec.fade === false) {\n      const preCloneNo = childrenCount - index;\n      if (preCloneNo <= getPreClones(spec) && childrenCount !== spec.slidesToShow) {\n        key = -preCloneNo;\n        if (key >= startIndex)\n          child = elem;\n\n        slideClasses = getSlideClasses({ ...spec, index: key });\n        preCloneSlides.push(\n          deepCloneElement(child, {\n            'key': `precloned${getKey(child, key)}`,\n            'class': classNames(slideClasses, slideClass),\n            'tabindex': '-1',\n            'data-index': key,\n            'aria-hidden': !slideClasses['slick-active'],\n            'style': { ...(child.props.style || {}), ...childStyle },\n            'onClick': () => {\n              // child.props && child.props.onClick && child.props.onClick(e)\n              if (spec.focusOnSelect)\n                spec.focusOnSelect(childOnClickOptions);\n            },\n          }),\n        );\n      }\n\n      if (childrenCount !== spec.slidesToShow) {\n        key = childrenCount + index;\n        if (key < endIndex)\n          child = elem;\n\n        slideClasses = getSlideClasses({ ...spec, index: key });\n        postCloneSlides.push(\n          deepCloneElement(child, {\n            'key': `postcloned${getKey(child, key)}`,\n            'tabindex': '-1',\n            'data-index': key,\n            'aria-hidden': !slideClasses['slick-active'],\n            'class': classNames(slideClasses, slideClass),\n            'style': { ...(child.props.style || {}), ...childStyle },\n            'onClick': () => {\n              // child.props && child.props.onClick && child.props.onClick(e)\n              if (spec.focusOnSelect)\n                spec.focusOnSelect(childOnClickOptions);\n            },\n          }),\n        );\n      }\n    }\n  });\n  if (spec.rtl)\n    return preCloneSlides.concat(slides, postCloneSlides).reverse();\n  else\n    return preCloneSlides.concat(slides, postCloneSlides);\n};\n\nfunction Track(_, { attrs, slots }) {\n  const slides = renderSlides(attrs, flattenChildren(slots?.default()));\n  // const slides = renderSlides(attrs,  slots?.default);\n  const { onMouseenter, onMouseover, onMouseleave } = attrs;\n  const mouseEvents = { onMouseenter, onMouseover, onMouseleave };\n  const trackProps = {\n    class: 'slick-track',\n    style: attrs.trackStyle,\n    ...mouseEvents,\n  };\n  return <div {...trackProps}>{slides}</div>;\n}\n\nTrack.inheritAttrs = false;\n\nexport default Track;\n"],"names":["getSlideClasses","spec","slickActive","slickCenter","centerOffset","index","rtl","slideCount","slickCloned","centerMode","Math","floor","slidesToShow","currentSlide","focusedSlide","targetSlide","slickCurrent","getSlideStyle","style","variableWidth","undefined","width","slideWidth","fade","position","vertical","top","Number","parseInt","slideHeight","left","opacity","useCSS","transition","speed","cssEase","getKey","child","fallbackKey","key","renderSlides","children","slides","preCloneSlides","postCloneSlides","childrenCount","length","startIndex","lazyStartIndex","endIndex","lazyEndIndex","forEach","elem","childOnClickOptions","message","slidesToScroll","lazyLoad","lazyLoadedList","includes","createVNode","childStyle","slideClass","props","class","slideClasses","push","deepCloneElement","classNames","outline","onClick","focusOnSelect","infinite","preCloneNo","getPreClones","concat","reverse","Track","_","attrs","slots","flattenChildren","default","onMouseenter","onMouseover","onMouseleave","mouseEvents","trackProps","trackStyle","_createVNode","inheritAttrs"],"mappings":";;;;;;;;;;;AAMA,SAASA,gBAAgBC,IAAM,EAAA;AAC7B,EAAA,IAAIC,WAAaC,EAAAA,WAAAA,CAAAA;AACjB,EAAA,IAAIC,YAAcC,EAAAA,KAAAA,CAAAA;AAElB,EAAA,IAAIJ,IAAKK,CAAAA,GAAAA;AACPD,IAAQJ,KAAAA,GAAAA,IAAAA,CAAKM,UAAa,GAAA,CAAA,GAAIN,IAAKI,CAAAA,KAAAA,CAAAA;AAAAA;AAEnCA,IAAAA,KAAAA,GAAQJ,IAAKI,CAAAA,KAAAA,CAAAA;AAEf,EAAA,MAAMG,WAAcH,GAAAA,KAAAA,GAAQ,CAAKA,IAAAA,KAAAA,IAASJ,IAAKM,CAAAA,UAAAA,CAAAA;AAC/C,EAAA,IAAIN,KAAKQ,UAAY,EAAA;AACnBL,IAAAA,YAAAA,GAAeM,IAAKC,CAAAA,KAAAA,CAAMV,IAAKW,CAAAA,YAAAA,GAAe,CAAC,CAAA,CAAA;AAC/CT,IAAAA,WAAAA,GAAAA,CAAeE,KAAQJ,GAAAA,IAAAA,CAAKY,YAAgBZ,IAAAA,IAAAA,CAAKM,UAAe,KAAA,CAAA,CAAA;AAChE,IAAA,IAAIF,QAAQJ,IAAKY,CAAAA,YAAAA,GAAeT,eAAe,CAAKC,IAAAA,KAAAA,IAASJ,KAAKY,YAAeT,GAAAA,YAAAA;AAC/EF,MAAc,WAAA,GAAA,IAAA,CAAA;AAAA,GACX,MAAA;AACLA,IAAAA,WAAAA,GAAcD,KAAKY,YAAgBR,IAAAA,KAAAA,IAASA,KAAQJ,GAAAA,IAAAA,CAAKY,eAAeZ,IAAKW,CAAAA,YAAAA,CAAAA;AAAAA,GAC/E;AACA,EAAIE,IAAAA,YAAAA,CAAAA;AACJ,EAAA,IAAIb,KAAKc,WAAc,GAAA,CAAA;AACrBD,IAAeb,YAAAA,GAAAA,IAAAA,CAAKc,cAAcd,IAAKM,CAAAA,UAAAA,CAAAA;AAAAA,OAChCN,IAAAA,IAAAA,CAAKc,eAAed,IAAKM,CAAAA,UAAAA;AAChCO,IAAeb,YAAAA,GAAAA,IAAAA,CAAKc,cAAcd,IAAKM,CAAAA,UAAAA,CAAAA;AAAAA;AAEvCO,IAAAA,YAAAA,GAAeb,IAAKc,CAAAA,WAAAA,CAAAA;AAEtB,EAAA,MAAMC,eAAeX,KAAUS,KAAAA,YAAAA,CAAAA;AAC/B,EAAO,OAAA;AAAA,IACL,aAAe,EAAA,IAAA;AAAA,IACf,cAAgBZ,EAAAA,WAAAA;AAAAA,IAChB,cAAgBC,EAAAA,WAAAA;AAAAA,IAChB,cAAgBK,EAAAA,WAAAA;AAAAA,IAChB,eAAiBQ,EAAAA,YAAAA;AAAAA;AAAAA,GACnB,CAAA;AACF,CAAA;AAEA,MAAMC,aAAAA,GAAgB,SAAUhB,IAAM,EAAA;AACpC,EAAA,MAAMiB,QAAuB,EAAC,CAAA;AAE9B,EAAA,IAAIjB,IAAKkB,CAAAA,aAAAA,KAAkBC,KAAanB,CAAAA,IAAAA,IAAAA,CAAKkB,aAAkB,KAAA,KAAA;AAC7DD,IAAAA,KAAAA,CAAMG,QAAQpB,IAAKqB,CAAAA,UAAAA,IAAc,OAAOrB,IAAKqB,CAAAA,UAAAA,KAAe,WAAW,IAAO,GAAA,EAAA,CAAA,CAAA;AAEhF,EAAA,IAAIrB,KAAKsB,IAAM,EAAA;AACbL,IAAAA,KAAAA,CAAMM,QAAW,GAAA,UAAA,CAAA;AACjB,IAAA,IAAIvB,IAAKwB,CAAAA,QAAAA;AACPP,MAAMQ,KAAAA,CAAAA,GAAAA,GAAO,GAAE,CAACzB,IAAAA,CAAKI,QAAQsB,MAAOC,CAAAA,QAAAA,CAAS3B,IAAK4B,CAAAA,WAAW,CAAE,CAAA,EAAA,CAAA,CAAA;AAAA;AAE/DX,MAAMY,KAAAA,CAAAA,IAAAA,GAAQ,GAAE,CAAC7B,IAAAA,CAAKI,QAAQsB,MAAOC,CAAAA,QAAAA,CAAS3B,IAAKqB,CAAAA,UAAU,CAAE,CAAA,EAAA,CAAA,CAAA;AAEjEJ,IAAAA,KAAAA,CAAMa,OAAU9B,GAAAA,IAAAA,CAAKY,YAAiBZ,KAAAA,IAAAA,CAAKI,QAAQ,CAAI,GAAA,CAAA,CAAA;AACvD,IAAA,IAAIJ,KAAK+B,MAAQ,EAAA;AACfd,MAAAA,KAAAA,CAAMe,UACD,GAAA,CAAA,QAAA,EACDhC,IAAKiC,CAAAA,KACN,CACCjC,GAAAA,EAAAA,IAAAA,CAAKkC,OACN,CAAA,aAAA,EAEClC,IAAKiC,CAAAA,KACN,CACCjC,GAAAA,EAAAA,IAAAA,CAAKkC,OAAQ,CAAA,CAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EAAOjB,OAAAA,KAAAA,CAAAA;AACT,CAAA,CAAA;AAEA,MAAMkB,MAAAA,GAASA,CAACC,KAAOC,EAAAA,WAAAA,KAAiB,GAAED,KAAME,CAAAA,GAAI,IAAGD,WAAY,CAAA,CAAA,CAAA;AAEnE,MAAME,YAAAA,GAAe,SAAUvC,IAAAA,EAAMwC,QAAU,EAAA;AAC7C,EAAIF,IAAAA,GAAAA,CAAAA;AACJ,EAAA,MAAMG,SAAS,EAAE,CAAA;AACjB,EAAA,MAAMC,iBAAiB,EAAE,CAAA;AACzB,EAAA,MAAMC,kBAAkB,EAAE,CAAA;AAC1B,EAAA,MAAMC,gBAAgBJ,QAASK,CAAAA,MAAAA,CAAAA;AAC/B,EAAMC,MAAAA,UAAAA,GAAaC,gCAAe/C,IAAI,CAAA,CAAA;AACtC,EAAMgD,MAAAA,QAAAA,GAAWC,8BAAajD,IAAI,CAAA,CAAA;AAClCwC,EAASU,QAAAA,CAAAA,OAAAA,CAAQ,CAACC,IAAAA,EAAM/C,KAAU,KAAA;AAChC,IAAIgC,IAAAA,KAAAA,CAAAA;AACJ,IAAA,MAAMgB,mBAAsB,GAAA;AAAA,MAC1BC,OAAS,EAAA,UAAA;AAAA,MACTjD,KAAAA;AAAAA,MACAkD,gBAAgBtD,IAAKsD,CAAAA,cAAAA;AAAAA,MACrB1C,cAAcZ,IAAKY,CAAAA,YAAAA;AAAAA,KACrB,CAAA;AAGA,IAAI,IAAA,CAACZ,KAAKuD,QAAavD,IAAAA,IAAAA,CAAKuD,YAAYvD,IAAKwD,CAAAA,cAAAA,CAAeC,SAASrD,KAAK,CAAA;AACxEgC,MAAQe,KAAAA,GAAAA,IAAAA,CAAAA;AAAAA;AAERf,MAAAA,KAAAA,GAAQsB,gBAAY,KAAK,CAAA,CAAA;AAE3B,IAAA,MAAMC,aAAa3C,aAAc,CAAA;AAAA,MAAE,GAAGhB,IAAAA;AAAAA,MAAMI,KAAAA;AAAAA,KAAO,CAAA,CAAA;AACnD,IAAMwD,MAAAA,UAAAA,GAAaxB,KAAMyB,CAAAA,KAAAA,CAAMC,KAAS,IAAA,EAAA,CAAA;AACxC,IAAA,IAAIC,eAAehE,eAAgB,CAAA;AAAA,MAAE,GAAGC,IAAAA;AAAAA,MAAMI,KAAAA;AAAAA,KAAO,CAAA,CAAA;AAErDqC,IAAOuB,MAAAA,CAAAA,IAAAA,CACLC,uBAAiB7B,KAAO,EAAA;AAAA,MACtB,KAAQ,EAAA,CAAA,QAAA,EAAUD,MAAOC,CAAAA,KAAAA,EAAOhC,KAAK,CAAE,CAAA,CAAA;AAAA,MACvC,UAAY,EAAA,IAAA;AAAA,MACZ,YAAcA,EAAAA,KAAAA;AAAAA,MACd,aAAA,EAAe,CAAC2D,YAAAA,CAAa,cAAc,CAAA;AAAA,MAC3C,OAAA,EAASG,iBAAWH,CAAAA,YAAAA,EAAcH,UAAU,CAAA;AAAA,MAC5C,OAAS,EAAA;AAAA,QAAEO,OAAS,EAAA,MAAA;AAAA,QAAQ,GAAI/B,KAAAA,CAAMyB,KAAM5C,CAAAA,KAAAA,IAAS,EAAC;AAAA,QAAI,GAAG0C,UAAAA;AAAAA,OAAW;AAAA,MACxE,WAAWS,MAAM;AAEf,QAAA,IAAIpE,IAAKqE,CAAAA,aAAAA;AACPrE,UAAAA,IAAAA,CAAKqE,cAAcjB,mBAAmB,CAAA,CAAA;AAAA,OAC1C;AAAA,KACD,CACH,CAAA,CAAA;AAGA,IAAA,IAAIpD,IAAKsE,CAAAA,QAAAA,IAAYtE,IAAKsB,CAAAA,IAAAA,KAAS,KAAO,EAAA;AACxC,MAAA,MAAMiD,aAAa3B,aAAgBxC,GAAAA,KAAAA,CAAAA;AACnC,MAAA,IAAImE,cAAcC,6BAAaxE,CAAAA,IAAI,CAAK4C,IAAAA,aAAAA,KAAkB5C,KAAKW,YAAc,EAAA;AAC3E2B,QAAAA,GAAAA,GAAM,CAACiC,UAAAA,CAAAA;AACP,QAAA,IAAIjC,GAAOQ,IAAAA,UAAAA;AACTV,UAAQe,KAAAA,GAAAA,IAAAA,CAAAA;AAEVY,QAAAA,YAAAA,GAAehE,eAAgB,CAAA;AAAA,UAAE,GAAGC,IAAAA;AAAAA,UAAMI,KAAOkC,EAAAA,GAAAA;AAAAA,SAAK,CAAA,CAAA;AACtDI,QAAesB,cAAAA,CAAAA,IAAAA,CACbC,uBAAiB7B,KAAO,EAAA;AAAA,UACtB,KAAQ,EAAA,CAAA,SAAA,EAAWD,MAAOC,CAAAA,KAAAA,EAAOE,GAAG,CAAE,CAAA,CAAA;AAAA,UACtC,OAAA,EAAS4B,iBAAWH,CAAAA,YAAAA,EAAcH,UAAU,CAAA;AAAA,UAC5C,UAAY,EAAA,IAAA;AAAA,UACZ,YAActB,EAAAA,GAAAA;AAAAA,UACd,aAAA,EAAe,CAACyB,YAAAA,CAAa,cAAc,CAAA;AAAA,UAC3C,OAAS,EAAA;AAAA,YAAE,GAAI3B,KAAAA,CAAMyB,KAAM5C,CAAAA,KAAAA,IAAS,EAAC;AAAA,YAAI,GAAG0C,UAAAA;AAAAA,WAAW;AAAA,UACvD,WAAWS,MAAM;AAEf,YAAA,IAAIpE,IAAKqE,CAAAA,aAAAA;AACPrE,cAAAA,IAAAA,CAAKqE,cAAcjB,mBAAmB,CAAA,CAAA;AAAA,WAC1C;AAAA,SACD,CACH,CAAA,CAAA;AAAA,OACF;AAEA,MAAIR,IAAAA,aAAAA,KAAkB5C,KAAKW,YAAc,EAAA;AACvC2B,QAAAA,GAAAA,GAAMM,aAAgBxC,GAAAA,KAAAA,CAAAA;AACtB,QAAA,IAAIkC,GAAMU,GAAAA,QAAAA;AACRZ,UAAQe,KAAAA,GAAAA,IAAAA,CAAAA;AAEVY,QAAAA,YAAAA,GAAehE,eAAgB,CAAA;AAAA,UAAE,GAAGC,IAAAA;AAAAA,UAAMI,KAAOkC,EAAAA,GAAAA;AAAAA,SAAK,CAAA,CAAA;AACtDK,QAAgBqB,eAAAA,CAAAA,IAAAA,CACdC,uBAAiB7B,KAAO,EAAA;AAAA,UACtB,KAAQ,EAAA,CAAA,UAAA,EAAYD,MAAOC,CAAAA,KAAAA,EAAOE,GAAG,CAAE,CAAA,CAAA;AAAA,UACvC,UAAY,EAAA,IAAA;AAAA,UACZ,YAAcA,EAAAA,GAAAA;AAAAA,UACd,aAAA,EAAe,CAACyB,YAAAA,CAAa,cAAc,CAAA;AAAA,UAC3C,OAAA,EAASG,iBAAWH,CAAAA,YAAAA,EAAcH,UAAU,CAAA;AAAA,UAC5C,OAAS,EAAA;AAAA,YAAE,GAAIxB,KAAAA,CAAMyB,KAAM5C,CAAAA,KAAAA,IAAS,EAAC;AAAA,YAAI,GAAG0C,UAAAA;AAAAA,WAAW;AAAA,UACvD,WAAWS,MAAM;AAEf,YAAA,IAAIpE,IAAKqE,CAAAA,aAAAA;AACPrE,cAAAA,IAAAA,CAAKqE,cAAcjB,mBAAmB,CAAA,CAAA;AAAA,WAC1C;AAAA,SACD,CACH,CAAA,CAAA;AAAA,OACF;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACD,EAAA,IAAIpD,IAAKK,CAAAA,GAAAA;AACP,IAAA,OAAOqC,cAAe+B,CAAAA,MAAAA,CAAOhC,MAAQE,EAAAA,eAAe,EAAE+B,OAAQ,EAAA,CAAA;AAAA;AAE9D,IAAOhC,OAAAA,cAAAA,CAAe+B,MAAOhC,CAAAA,MAAAA,EAAQE,eAAe,CAAA,CAAA;AACxD,CAAA,CAAA;AAEA,SAASgC,MAAMC,CAAG,EAAA;AAAA,EAAEC,KAAAA;AAAAA,EAAOC,KAAAA;AAAM,CAAG,EAAA;AAClC,EAAA,MAAMrC,SAASF,YAAasC,CAAAA,KAAAA,EAAOE,qBAAgBD,CAAAA,KAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAOE,SAAS,CAAC,CAAA,CAAA;AAEpE,EAAM,MAAA;AAAA,IAAEC,YAAAA;AAAAA,IAAcC,WAAAA;AAAAA,IAAaC,YAAAA;AAAAA,GAAiBN,GAAAA,KAAAA,CAAAA;AACpD,EAAA,MAAMO,WAAc,GAAA;AAAA,IAAEH,YAAAA;AAAAA,IAAcC,WAAAA;AAAAA,IAAaC,YAAAA;AAAAA,GAAa,CAAA;AAC9D,EAAA,MAAME,UAAa,GAAA;AAAA,IACjBvB,KAAO,EAAA,aAAA;AAAA,IACP7C,OAAO4D,KAAMS,CAAAA,UAAAA;AAAAA,IACb,GAAGF,WAAAA;AAAAA,GACL,CAAA;AACA,EAAA,OAAAG,eAAA,CAAA,KAAA,EAAgBF,UAAU,EAAA,CAAG5C,MAAM,CAAA,CAAA,CAAA;AACrC,CAAA;AAEAkC,KAAAA,CAAMa,YAAe,GAAA,KAAA;;;;"}