{"version":3,"file":"VDatePickerYears.mjs","names":["VBtn","useDate","computed","onMounted","ref","convertToUnit","createRange","genericComponent","propsFactory","useRender","makeVDatePickerYearsProps","color","String","min","Number","max","height","displayDate","VDatePickerYears","name","props","emits","date","setup","_ref","emit","adapter","displayYear","getYear","Date","years","value","yearRef","$el","scrollIntoView","block","_createVNode","map","year","undefined","onClick","setYear","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerYears.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerYears.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed, onMounted, ref } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVDatePickerYearsProps = propsFactory({\n  color: String,\n  min: Number,\n  max: Number,\n  height: [String, Number],\n  displayDate: null,\n}, 'VDatePickerYears')\n\nexport const VDatePickerYears = genericComponent()({\n  name: 'VDatePickerYears',\n\n  props: makeVDatePickerYearsProps(),\n\n  emits: {\n    'update:displayDate': (date: any) => true,\n    'update:viewMode': (date: any) => true,\n  },\n\n  setup (props, { emit }) {\n    const adapter = useDate()\n    const displayYear = computed(() => adapter.getYear(props.displayDate ?? new Date()))\n    const years = computed(() => {\n      const min = props.min ?? displayYear.value - 50 - 2\n      const max = props.max ?? displayYear.value + 50\n\n      return createRange(max - min, min)\n    })\n\n    const yearRef = ref<VBtn>()\n    onMounted(() => {\n      yearRef.value?.$el.scrollIntoView({ block: 'center' })\n    })\n\n    useRender(() => (\n      <div\n        class=\"v-date-picker-years\"\n        style={{\n          height: convertToUnit(props.height),\n        }}\n      >\n        <div class=\"v-date-picker-years__content\">\n          { years.value.map(year => (\n            <VBtn\n              ref={ year === displayYear.value ? yearRef : undefined }\n              variant={ year === displayYear.value ? 'flat' : 'text' }\n              rounded=\"xl\"\n              active={ year === displayYear.value }\n              color={ year === displayYear.value ? props.color : undefined }\n              onClick={ () => {\n                emit('update:displayDate', adapter.setYear(props.displayDate, year))\n                emit('update:viewMode', 'month')\n              }}\n            >{ year }</VBtn>\n          ))}\n        </div>\n      </div>\n    ))\n\n    return {}\n  },\n})\n\nexport type VDatePickerYears = InstanceType<typeof VDatePickerYears>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI,2CAEb;AAAA,SACSC,OAAO,6BAEhB;AACA,SAASC,QAAQ,EAAEC,SAAS,EAAEC,GAAG,QAAQ,KAAK;AAAA,SACrCC,aAAa,EAAEC,WAAW,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAE9E,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,KAAK,EAAEC,MAAM;EACbC,GAAG,EAAEC,MAAM;EACXC,GAAG,EAAED,MAAM;EACXE,MAAM,EAAE,CAACJ,MAAM,EAAEE,MAAM,CAAC;EACxBG,WAAW,EAAE;AACf,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMC,gBAAgB,GAAGX,gBAAgB,EAAE,CAAC;EACjDY,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEV,yBAAyB,EAAE;EAElCW,KAAK,EAAE;IACL,oBAAoB,EAAGC,IAAS,IAAK,IAAI;IACzC,iBAAiB,EAAGA,IAAS,IAAK;EACpC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpB,MAAME,OAAO,GAAGzB,OAAO,EAAE;IACzB,MAAM0B,WAAW,GAAGzB,QAAQ,CAAC,MAAMwB,OAAO,CAACE,OAAO,CAACR,KAAK,CAACH,WAAW,IAAI,IAAIY,IAAI,EAAE,CAAC,CAAC;IACpF,MAAMC,KAAK,GAAG5B,QAAQ,CAAC,MAAM;MAC3B,MAAMW,GAAG,GAAGO,KAAK,CAACP,GAAG,IAAIc,WAAW,CAACI,KAAK,GAAG,EAAE,GAAG,CAAC;MACnD,MAAMhB,GAAG,GAAGK,KAAK,CAACL,GAAG,IAAIY,WAAW,CAACI,KAAK,GAAG,EAAE;MAE/C,OAAOzB,WAAW,CAACS,GAAG,GAAGF,GAAG,EAAEA,GAAG,CAAC;IACpC,CAAC,CAAC;IAEF,MAAMmB,OAAO,GAAG5B,GAAG,EAAQ;IAC3BD,SAAS,CAAC,MAAM;MACd6B,OAAO,CAACD,KAAK,EAAEE,GAAG,CAACC,cAAc,CAAC;QAAEC,KAAK,EAAE;MAAS,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF1B,SAAS,CAAC,MAAA2B,YAAA;MAAA,SAEA,qBAAqB;MAAA,SACpB;QACLpB,MAAM,EAAEX,aAAa,CAACe,KAAK,CAACJ,MAAM;MACpC;IAAC,IAAAoB,YAAA;MAAA,SAEU;IAA8B,IACrCN,KAAK,CAACC,KAAK,CAACM,GAAG,CAACC,IAAI,IAAAF,YAAA,CAAApC,IAAA;MAAA,OAEZsC,IAAI,KAAKX,WAAW,CAACI,KAAK,GAAGC,OAAO,GAAGO,SAAS;MAAA,WAC5CD,IAAI,KAAKX,WAAW,CAACI,KAAK,GAAG,MAAM,GAAG,MAAM;MAAA,WAC9C,IAAI;MAAA,UACHO,IAAI,KAAKX,WAAW,CAACI,KAAK;MAAA,SAC3BO,IAAI,KAAKX,WAAW,CAACI,KAAK,GAAGX,KAAK,CAACT,KAAK,GAAG4B,SAAS;MAAA,WAClDC,CAAA,KAAM;QACdf,IAAI,CAAC,oBAAoB,EAAEC,OAAO,CAACe,OAAO,CAACrB,KAAK,CAACH,WAAW,EAAEqB,IAAI,CAAC,CAAC;QACpEb,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;MAClC;IAAC;MAAAiB,OAAA,EAAAA,CAAA,MACAJ,IAAI;IAAA,EACR,CAAC,IAGP,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}