{"version":3,"file":"FileList-Be-FaHCL.js","sources":["../../src/components/findingAids/FileList.vue"],"sourcesContent":["<template>\n  <table :class=\"[{ indented: options.checkbox && isMobile() }, $style.findingAids, faTable]\">\n    <thead v-if=\"!isMobile()\">\n      <tr>\n        <th v-if=\"options.checkbox\" scope=\"col\">Select</th>\n        <th scope=\"col\">Title</th>\n        <th scope=\"col\">Status</th>\n        <th scope=\"col\">Date</th>\n        <th scope=\"col\">Box</th>\n        <th scope=\"col\">Folder/Item</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr v-for=\"(file, key) in files\" :key=\"key\">\n        <td v-if=\"file.type === 'file' && options.checkbox\">\n          <label :for=\"file.uid\">\n            <span v-if=\"isMobile()\" :class=\"$style.label\">Select:</span>\n            <input :id=\"file.id\" type=\"checkbox\" @change=\"addToCart(file, $event.target.checked)\" />\n          </label>\n        </td>\n        <td v-if=\"file.type !== 'file'\"></td>\n        <td\n          v-if=\"file.slug && file.type === 'file'\"\n          :class=\"{ ['indent-' + file.depth]: options.indent }\"\n        >\n          <router-link\n            :to=\"{ name: 'FindingAidsFile', params: { slug: file.slug } }\"\n            v-html=\"file.unittitle\"\n          ></router-link>\n          <span v-if=\"file.phystech\" :class=\"style.block\">{{ file.phystech }}</span>\n        </td>\n        <td\n          v-if=\"!file.slug && file.type === 'file'\"\n          :class=\"{ ['indent-' + file.depth]: options.indent }\"\n          v-html=\"title(file)\"\n        ></td>\n        <td\n          v-if=\"file.type === 'folder'\"\n          :class=\"[{ ['indent-' + file.depth]: options.indent }, 'heading-4']\"\n          colspan=\"4\"\n          v-html=\"file.label\"\n        ></td>\n        <td class=\"info\">{{ file.slug && file.type === 'file' ? 'digitized content' : '' }}</td>\n        <td v-if=\"file.type !== 'folder'\">\n          <span v-if=\"file.unitdate && isMobile()\" :class=\"$style.label\">Date:</span>\n          {{ file.unitdate }}\n        </td>\n        <td v-if=\"file.type !== 'folder'\">\n          <span v-if=\"file.box && isMobile()\" :class=\"$style.label\">Box:</span>\n          {{ file.box }}\n        </td>\n        <td v-if=\"file.type !== 'folder'\">\n          <span v-if=\"file.folder && isMobile()\" :class=\"$style.label\">Folder/Item:</span>\n          {{ file.folder }}\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</template>\n\n<script setup lang=\"ts\">\nimport { faTable } from '@/styles/findingAids.module.scss';\nimport { useCssModule } from 'vue';\nimport { useMainStore } from '@/stores/mainStore.js';\nimport { useScreenSize } from '@/composables/Common.js';\n\ninterface File {\n  box: string;\n  depth: string;\n  folder: string;\n  label: string;\n  id: string;\n  phystech: string;\n  slug: string;\n  type: string;\n  unitdate: string;\n  unittitle: string;\n  uid: string;\n}\n\nwithDefaults(\n  defineProps<{\n    files: File[];\n    options?: {\n      checkbox: boolean;\n      indent: boolean;\n    };\n  }>(),\n  {\n    options: {\n      checkbox: true,\n      indent: true,\n    },\n  },\n);\n\nconst store = useMainStore();\nconst { updateCart } = store;\nconst style = useCssModule();\n\nconst { isMobile } = useScreenSize();\n\nfunction title(file: File): string {\n  let str = '';\n\n  if (isMobile()) {\n    str += `<span class=\"${style.label}\">Title:</span> `;\n  }\n\n  str += file.phystech\n    ? `${file.unittitle}<span class=\"${style.block}\">${file.phystech}</span>`\n    : file.unittitle;\n\n  return str;\n}\n\nfunction addToCart(file: File, checked: boolean): void {\n  updateCart({ file, checked });\n}\n</script>\n\n<style lang=\"scss\" module>\n:global(.checkbox) {\n  left: 0;\n  padding: px-to-rem(10);\n  position: absolute;\n  top: 0;\n}\n\n:global(.folder) {\n  @include heading-4;\n}\n\n.block {\n  display: block;\n}\n\n.label {\n  @include info;\n\n  & {\n    text-transform: none;\n  }\n}\n\n@media (min-width: $break-point) {\n  :global(.checkbox) {\n    position: initial;\n  }\n\n  tr {\n    td,\n    th {\n      &:last-of-type {\n        padding-left: 1rem;\n      }\n    }\n  }\n}\n</style>\n"],"names":["store","useMainStore","updateCart","style","useCssModule","isMobile","useScreenSize","title","file","str","addToCart","checked"],"mappings":"2eAgGA,MAAMA,EAAQC,EAAa,EACrB,CAAE,WAAAC,GAAeF,EACjBG,EAAQC,EAAa,EAErB,CAAE,SAAAC,CAAS,EAAIC,EAAc,EAEnC,SAASC,EAAMC,EAAoB,CACjC,IAAIC,EAAM,GAEV,OAAIJ,MACKI,GAAA,gBAAgBN,EAAM,KAAK,oBAGpCM,GAAOD,EAAK,SACR,GAAGA,EAAK,SAAS,gBAAgBL,EAAM,KAAK,KAAKK,EAAK,QAAQ,UAC9DA,EAAK,UAEFC,CAAA,CAGA,SAAAC,EAAUF,EAAYG,EAAwB,CAC1CT,EAAA,CAAE,KAAAM,EAAM,QAAAG,EAAS,CAAA"}