{"version":3,"sources":["webpack:///./app/webpacker/src/javascripts/_history.ts","webpack:///./node_modules/moment/locale sync \\b\\B","webpack:///./app/webpacker/src/javascripts/data/availability_locations.js","webpack:///./app/webpacker/src/javascripts/data/service_desks.js","webpack:///./app/webpacker/src/javascripts/_availability_util.ts","webpack:///./app/webpacker/src/javascripts/data/availability_statuses.js"],"names":["setDocHistory","document","querySelector","docElement","docId","dataset","sessionStorage","setItem","getDocHistory","documentsEl","querySelectorAll","forEach","thisDoc","classList","contains","seen","createElement","className","bsTitle","bsToggle","getItem","docTitle","add","appendChild","webpackEmptyContext","req","e","Error","code","keys","resolve","module","exports","id","serviceDeskData","r","name","url","s","czm","w4m","w4spe","xspe","default","locationData","abbr","linkText","btnClass","czmrf","czmrs","czwww","dcare","dfic","djuv","dmed","dref","dresv","fip","frsco","flfdc","flgrn","flrs","flmak","flind","flix","gwww","hscfw","ill","jlf","statusText","kpeb","kpacs","lawcl","lawh","lawrf","lawrs","lawtx","lawww","libr","lwww","mail","mwww","pwww","rfbks","rind","rmak","rmkme","rst","rzzpb","rzzrf","rzzrs","s1fdc","s1ndc","scbg","sckit","scmc","sd","sd1dc","sdai","sdbi","sdcd","sdmc","sdmp","sdnb","sdndc","sdov","sdtx","sdtov","sdus","sdvf","sdzmr","sdzrf","sdzrs","sdzsd","sfin","sjbg","sjuv","spe","smls","spec","swr","szmp","szzov","szzrf","szzrs","szzsd","tamc","test","twu","txsha","unt","w","w1fdc","w1grn","w1grs","w1gwt","w1ia","w1idl","w1ind","w1ix","w1mak","w1mdc","w1mls","w1ndc","w1upr","w2awt","w2lan","w3big","w3dai","w3grn","w3lab","w3per","w433a","w4422","w4438","w4fil","w4lok","w4mai","w4mau","w4mav","w4mbg","w4mfb","w4mft","w4mla","w4moc","w4mov","w4mr1","w4mr2","w4mr3","w4mrb","w4mrf","w4mrs","w4mrx","w4mts","w4mwf","w4mwr","w4spc","w4srf","modalText","wgrc","wlbig","wllok","wlmic","xcmc","xdmic","xdmp","xdoc","xjuv","xmau","xmed","xmic","xmus","xprsv","xspc","xts","zzzzz","statusDescData","a","label","desc","b","d","f","g","h","i","j","k","m","n","o","p","t","x","y","z","$","getPlaceholderItemsElements","getItemsIDs","itemEls","arr","chunkSize","arguments","length","undefined","chunkedArray","push","splice","chunkArray","Array","from","map","el","itemId","replace","findMissing","allItems","foundIDs","filter","includes","getLocationData","locationCode","exactMatch","Object","hasOwnProperty","call","wildcardMatches","key","endsWith","sort","wildcardMatch","wildcard","startsWith","slice","getStatusData","statusCode","getServiceDeskData","serviceDesk","entries","_ref","value","updateAeonRequestUrl","itemURL","itemLocation","locationName","aeonUrl","URL","queryString","search","params","URLSearchParams","toString","append","itemsFromPromises","result","response","status","item","flat","async","callSierraApi","itemBibs","tokenEl","token","getAttribute","data","item_id","fetch","method","headers","body","JSON","stringify","catch","console","log","ok","text","jsonResponse","json","httpStatus"],"mappings":"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","file":"js/index~show-e2f3fc43c6f726905fd4.chunk.js","sourcesContent":["// When a user visits an item URL, add the ID of the object to localStorage so that subsequent\n// search results are annotated.\nfunction setDocHistory(): void {\n const bodyElement: HTMLElement | null = document.querySelector('body.blacklight-catalog-show');\n if (!bodyElement) return;\n\n const docElement: HTMLElement | null = document.querySelector('#document');\n if (docElement) {\n const { docId } = docElement.dataset as { docId: string };\n sessionStorage.setItem(`doc-history-${docId}`, docId);\n }\n}\n\nfunction getDocHistory(): void {\n const indexBodyElement = document.querySelector('body.blacklight-catalog-index');\n if (!indexBodyElement) return;\n\n const documentsEl = document.querySelector('#documents');\n if (!documentsEl) return;\n\n const documents: NodeListOf = documentsEl.querySelectorAll('.document');\n documents.forEach((thisDoc) => {\n if (thisDoc.classList.contains('seen')) return;\n\n const { docId } = thisDoc.dataset as { docId: string };\n const seen = document.createElement('i');\n seen.className = 'fas fa-check';\n seen.dataset.bsTitle = 'Previously viewed this session.';\n seen.dataset.bsToggle = 'tooltip';\n\n if (sessionStorage.getItem(`doc-history-${docId}`)) {\n const docTitle = thisDoc.querySelector('.document-title-heading');\n if (docTitle) {\n thisDoc.classList.add('seen');\n docTitle.appendChild(seen);\n }\n }\n });\n}\n\nexport {\n setDocHistory,\n getDocHistory,\n};\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 266;","/**\n* Data structure for looking up information based on location codes\n * Object key is used for lookup and should match the `code` in the Sierra API\n * Keys with asterisks are used for fallback and merge into matching key/objects\n *\n * Example: When looking for `czmrf`, we also capture the closest matching wildcard, `czm*`. The\n * objects are then merged, with specificity taking precedence. If a property is absent from\n * `czmrf`, the value from `czm*` will be used. This allows us to inherit things like abbreviations\n * and urls, but means that a property must be present with an empty string value to effectively\n * omit it.\n *\n * *** Wildcard lookup only goes 1 deep ***\n * This means that if you have wildcards `s*` and `szz*`, location `szzm` will only inherit `szz*`\n *\n * Object values (name and abbr are required, the rest are optional, but will inherit if possible)\n * {\n * name: 'Chilton Media Library', // Specific name for availability table\n * abbr: 'Media', // Shorter name used in places like availability buttons\n * linkText: 'Media Library Map', // Title attribute used on linked `name`\n * url: '//library.unt.edu/assets/images/spaces/floor-maps/media.png', // href of `name`\n * }\n*/\n\nconst locationData = {\n 'czm*': {\n name: 'Media Library',\n abbr: 'Media',\n linkText: 'Media Library Directory',\n url: 'https://library.unt.edu/willis/second-floor/#directory',\n btnClass: 'media',\n },\n czmrf: {\n name: 'Media Library Reference',\n },\n czmrs: {\n name: 'Media Library Reserves',\n },\n czwww: {\n name: 'Media Online Resources', abbr: 'Media Online', linkText: '', url: '',\n },\n 'd*': {\n name: 'UNT Dallas Campus',\n abbr: 'UNT Dallas',\n linkText: 'UNT Dallas Library',\n url: 'https://www.untdallas.edu/library',\n },\n dcare: {\n name: 'Dallas Campus Career Development',\n },\n dfic: {\n name: 'Dallas Campus Fiction',\n },\n djuv: {\n name: 'Dallas Campus Juvenile Collection',\n },\n dmed: {\n name: 'Dallas Campus Media',\n },\n dref: {\n name: 'Dallas Campus Reference',\n },\n dresv: {\n name: 'Dallas Campus Reserves',\n },\n 'f*': {\n name: '',\n abbr: '',\n linkText: '',\n url: '',\n btnClass: 'frisco',\n },\n fip: {\n name: 'Frisco Inspire Park',\n abbr: 'Frisco Inspire Park',\n linkText: 'Frisco Inspire Park Map',\n url: 'https://frisco.unt.edu/location/inspire-park#map',\n },\n frsco: {\n name: 'Frisco Hall Park',\n abbr: 'Frisco Hall Park',\n linkText: 'Frisco Hall Park',\n url: 'https://frisco.unt.edu/location/hall-park',\n },\n 'fl*': {\n name: 'Frisco Landing Library',\n abbr: 'Frisco Landing',\n linkText: 'Frisco Landing Library',\n url: 'https://library.unt.edu/frisco/',\n btnClass: 'frisco',\n },\n flfdc: {\n name: 'Frisco Landing Library Featured Books',\n abbr: 'Frisco Landing Featured Books',\n linkText: 'Frisco Landing Library Featured Books',\n },\n flgrn: {\n name: 'Frisco Landing Library Graphic Novels',\n linkText: 'Frisco Landing Library Graphic Novels',\n },\n flrs: {\n name: 'Frisco Landing Library Reserves',\n abbr: 'Frisco Landing Reserves',\n linkText: 'Frisco Landing Library Reserves',\n url: 'https://library.unt.edu/frisco/',\n },\n flmak: {\n name: 'Frisco Landing The Spark',\n abbr: 'The Spark @ Frisco',\n linkText: 'The Spark @ Frisco Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n flind: {\n name: 'Frisco Landing Spark Technology Desk',\n linkText: 'The Spark @ Frisco Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n flix: {\n name: 'Frisco Landing Tech Desk 2 Week Laptops',\n linkText: 'The Spark @ Frisco Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n gwww: {\n name: 'Govt Online Resources', abbr: ' Govt Online', linkText: '', url: '',\n },\n hscfw: {\n name: 'UNTHSC Fort Worth',\n abbr: 'UNT HSC FW',\n linkText: 'Gibson D. Lewis Health Science Library',\n url: 'http://library.hsc.unt.edu/content/visit-lewis-library\"',\n },\n ill: {\n name: 'Willis 1FL ILL', abbr: 'Willis 1st', linkText: '', url: '',\n },\n 'j*': {\n name: '', abbr: '', linkText: '', url: '',\n },\n jlf: {\n name: 'Joint Library Facility Remote Storage',\n abbr: 'JLF Storage',\n btnClass: 'remote-storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n 'k*': {\n name: '', abbr: '', linkText: '', url: '',\n },\n 'kmat*': {\n name: 'Matthews Hall 307 Lab',\n abbr: 'Matthews Hall',\n },\n kpeb: {\n name: 'Physical Education Building 220 Lab',\n abbr: 'Phys Ed Bldg',\n },\n kpacs: {\n name: 'Chilton Hall 255 Lab',\n abbr: 'Chilton Hall',\n },\n 'law*': {\n name: 'Law Library',\n abbr: 'Law Library',\n linkText: 'UNT Law Library Information',\n url: 'https://lawschool.untdallas.edu/law-library',\n },\n lawcl: {\n name: 'Law Library Clinic',\n },\n lawh: {\n name: 'Law Library Historical',\n },\n lawrf: {\n name: 'Law Library Reference',\n },\n lawrs: {\n name: 'Law Library Reserves',\n },\n lawtx: {\n name: 'Law Library Texas Materials',\n },\n lawww: {\n name: 'Law Library Online Resources',\n },\n libr: {\n name: 'Library',\n abbr: 'Library',\n linkText: '',\n url: '',\n },\n lwww: {\n name: 'UNT Online Resources',\n abbr: 'Online',\n linkText: '',\n url: '',\n },\n mail: {\n name: 'Faculty Mail Delivery (Do Not Delete)',\n abbr: 'Mail',\n },\n mwww: {\n name: 'Music Online Resources',\n abbr: 'Music Online',\n linkText: '',\n url: '',\n },\n pwww: {\n name: 'Special Collections Online Resources',\n abbr: 'Special Collections Online',\n linkText: '',\n url: '',\n },\n 'r*': {\n name: 'Discovery Park Library',\n abbr: 'DPL',\n linkText: 'Discovery Park Library Directory',\n url: 'https://library.unt.edu/discovery-park/#directory',\n btnClass: 'discovery-park',\n },\n rfbks: {\n name: 'Discovery Park Library Featured Books',\n },\n rind: {\n name: 'Discovery Park Spark Technology Desk',\n abbr: 'The Spark @ DP',\n linkText: 'The Spark @ Discovery Park Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n rmak: {\n name: 'The Spark @ Discovery Park',\n abbr: 'The Spark @ DP',\n linkText: 'The Spark @ Discovery Park Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n rmkme: {\n name: 'Discovery Park The Spark Mechanical Engineering',\n abbr: 'The Spark @ DP',\n linkText: 'The Spark @ Discovery Park Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n rst: {\n name: 'Discovery Park Library Storage',\n abbr: 'DPL Storage',\n },\n rzzpb: {\n name: 'Discovery Park Library',\n },\n rzzrf: {\n name: 'Discovery Park Library Reference',\n },\n rzzrs: {\n name: 'Discovery Park Library Reserves',\n },\n 's*': {\n name: 'Sycamore Library',\n abbr: 'Sycamore',\n linkText: 'Sycamore Library Directory',\n url: 'https://library.unt.edu/sycamore/#directory\"',\n btnClass: 'sycamore',\n },\n s1fdc: {\n name: 'Sycamore Library 1FL Display',\n },\n s1ndc: {\n name: 'Sycamore Library 1FL New Books',\n },\n scbg: {\n name: 'Sycamore Library CMC & Juvenile Oversized Books',\n },\n sckit: {\n name: 'Sycamore Library CMC Kits',\n },\n scmc: {\n name: 'Sycamore Library Curriculum Materials Collection',\n },\n sd: {\n name: 'Sycamore Library Government Documents',\n },\n sd1dc: {\n name: 'Sycamore Library 1FL Display',\n },\n sdai: {\n name: 'Sycamore Library Docs A&I',\n },\n sdbi: {\n name: 'Sycamore Library Docs Bib Center',\n },\n sdcd: {\n name: 'Sycamore Library Docs CD',\n },\n sdmc: {\n name: 'Sycamore Library Docs Microform',\n },\n sdmp: {\n name: 'Sycamore Library Docs Maps',\n },\n sdnb: {\n name: 'Sycamore Library Docs-NOBARCODE',\n },\n sdndc: {\n name: 'Sycamore Library Docs New Books',\n },\n sdov: {\n name: 'Sycamore Library Docs Oversize',\n },\n sdtx: {\n name: 'Sycamore Library TX Documents',\n },\n sdtov: {\n name: 'Sycamore Library TX Docs Oversize',\n },\n sdus: {\n name: 'Sycamore Library US Documents',\n },\n sdvf: {\n name: 'Sycamore Library Docs Vertical File',\n },\n sdzmr: {\n name: 'Sycamore Library Map Reserves',\n },\n sdzrf: {\n name: 'Sycamore Library Reference',\n },\n sdzrs: {\n name: 'Sycamore Library Docs Reserves',\n },\n sdzsd: {\n name: 'Sycamore Library Service Desk',\n },\n sfin: {\n name: 'Sycamore Library Funding Information Network',\n },\n sjbg: {\n name: 'Sycamore Library CMC & Juvenile Oversized Books',\n },\n sjuv: {\n name: 'Sycamore Library Juvenile Collection',\n },\n spe: {\n name: 'Sycamore Library Periodicals',\n },\n smls: {\n name: 'Sycamore Library Best Sellers',\n },\n spec: {\n name: 'Special ID',\n abbr: 'Special',\n linkText: '',\n url: '',\n },\n swr: {\n name: 'Sycamore Library Workroom',\n },\n szmp: {\n name: 'Sycamore Library Maps',\n },\n 'szz*': {\n name: 'Sycamore Library',\n abbr: 'Sycamore',\n linkText: 'Sycamore Library Directory',\n url: 'https://library.unt.edu/sycamore/#directory',\n btnClass: 'sycamore',\n },\n szzov: {\n name: 'Sycamore Library Oversize Books',\n },\n szzrf: {\n name: 'Sycamore Library Reference',\n },\n szzrs: {\n name: 'Sycamore Library Reserves',\n abbr: 'Sycamore Reserves',\n },\n szzsd: {\n name: 'Sycamore Library Service Desk',\n },\n tamc: {\n name: 'Texas A and M Commerce',\n abbr: 'TAMC',\n linkText: '',\n url: '',\n },\n test: {\n name: 'Testing-do not use',\n abbr: '',\n linkText: '',\n url: '',\n },\n twu: {\n name: 'Texas Women\\'s University',\n abbr: 'TWU',\n linkText: '',\n url: '',\n },\n txsha: {\n name: 'TexShare',\n abbr: 'TexShare',\n linkText: '',\n url: '',\n },\n unt: {\n name: 'University of North Texas',\n abbr: 'UNT',\n linkText: '',\n url: '',\n },\n w: {\n name: 'Willis Library',\n abbr: 'Willis',\n url: 'https://library.unt.edu/willis/',\n btnClass: 'willis',\n },\n 'w1*': {\n name: 'Willis 1st Floor',\n abbr: 'Willis 1st',\n linkText: 'Willis Library 1st Floor Directory',\n url: 'https://library.unt.edu/willis/first-floor/#directory',\n btnClass: 'willis',\n },\n w1fdc: {\n name: 'Willis 1FL Featured Books',\n },\n w1grn: {\n name: 'Willis 1FL Graphic Novels',\n },\n w1grs: {\n name: 'Willis 1FL Library Services Desk',\n },\n w1gwt: {\n name: 'Willis 1st Floor',\n },\n w1ia: {\n name: 'Willis 1FL Forum',\n },\n w1idl: {\n name: 'Willis 1FL Tech Desk Longterm Laptops',\n },\n w1ind: {\n name: 'Willis 1FL Spark Technology Desk',\n },\n w1ix: {\n name: 'Willis 1FL Tech Desk 2 Week Laptops',\n },\n w1mak: {\n name: 'The Spark @ Willis Library',\n abbr: 'The Spark',\n linkText: 'The Spark Guide',\n url: 'https://guides.library.unt.edu/spark',\n },\n w1mdc: {\n name: 'Willis 1FL Monthly Display',\n },\n w1mls: {\n name: 'Willis 1FL Best Sellers',\n abbr: 'Willis 1st',\n linkText: 'Willis Library 1st Floor Directory',\n url: 'https://library.unt.edu/willis/first-floor/#directory',\n },\n w1ndc: {\n name: 'Willis 1FL New Books',\n },\n w1upr: {\n name: 'Willis 1FL UNT Press',\n abbr: 'Willis UNT Press',\n },\n 'w2*': {\n name: 'Willis 2nd Floor',\n abbr: 'Willis 2nd',\n linkText: 'Willis Library 2nd Floor Directory',\n url: 'https://library.unt.edu/willis/second-floor/#directory',\n btnClass: 'willis',\n },\n w2awt: {\n name: 'Willis 2nd Admin Office Work tool',\n },\n w2lan: {\n name: 'Willis 2nd Floor Lib TACO',\n abbr: 'Lib TACO',\n },\n 'w3*': {\n name: 'Willis 3rd Floor',\n abbr: 'Willis 3rd',\n linkText: 'Willis Library 3rd Floor Directory',\n url: 'https://library.unt.edu/willis/third-floor/#directory',\n btnClass: 'willis',\n },\n w3big: {\n name: 'Willis 3FL Oversize',\n },\n w3dai: {\n name: 'Willis 3rd Floor',\n },\n w3grn: {\n name: 'Willis 3FL Graphic Novels',\n },\n w3lab: {\n name: 'Willis 3rd Floor Digital Lab',\n },\n w3per: {\n name: 'Willis 3FL Periodicals',\n },\n 'w4*': {\n name: 'Willis 4th Floor',\n abbr: 'Willis 4th',\n linkText: 'Willis Library 4th Floor Directory',\n url: 'https://library.unt.edu/willis/fourth-floor/',\n btnClass: 'willis',\n },\n w433a: {\n name: 'Willis 4FL Music Room 433A',\n },\n w4422: {\n name: 'The Soundbox (Willis 422)',\n },\n w4438: {\n name: 'Willis 4th Floor Music Room 438',\n },\n w4fil: {\n name: 'Willis 4FL Music Microfilm',\n },\n w4lok: {\n name: 'Willis 4FL Lockers',\n },\n w4m: {\n name: 'Willis 4FL Music Library',\n },\n w4mai: {\n name: 'Willis 4FL Music A&I',\n },\n w4mau: {\n name: 'Willis 4FL Music Audio Coll',\n },\n w4mav: {\n name: 'Willis 4FL Music Audio Oversize',\n },\n w4mbg: {\n name: 'Willis 4FL Bragg Coll',\n },\n w4mfb: {\n name: 'Willis 4FL Music Fake Book',\n },\n w4mft: {\n name: 'Willis 4FL Music Featured Items',\n },\n w4mla: {\n name: 'Willis 4FL Music Limited Access',\n },\n w4moc: {\n name: 'Willis 4FL Music Ozier Coll',\n },\n w4mov: {\n name: 'Willis 4FL Music Oversize',\n },\n w4mr1: {\n name: 'Willis 4th Floor Music Sandborn Miniature',\n },\n w4mr2: {\n name: 'Willis 4FL Music Sandborn Oversize',\n },\n w4mr3: {\n name: 'Willis 4FL Music Sandborn Reading Room',\n },\n w4mrb: {\n name: 'Willis 4FL Music Sandborn Coll',\n },\n w4mrf: {\n name: 'Willis 4FL Music Reference',\n },\n w4mrs: {\n name: 'Willis 4FL Music Reserves',\n },\n w4mrx: {\n name: 'Willis 4FL Music Sandborn Brittle',\n },\n w4mts: {\n name: 'Willis 4FL Music Technical Services',\n },\n w4mwf: {\n name: 'Willis 4th Floor Music WFAA Collection',\n },\n w4mwr: {\n name: 'Willis 4th Floor Music Workroom',\n },\n w4spc: {\n name: 'Willis 4FL Special Collections',\n },\n w4spe: {\n name: 'Willis 4FL Special Collections',\n },\n w4srf: {\n name: 'Willis 4FL Special Collections Reference',\n },\n 'wex*': {\n name: 'Library Temporary Event',\n abbr: 'Library Temporary Event',\n modalText: 'This item is available but currently in use for an event. '\n + 'Please use the Request Pickup button to have the item pulled and delivered to your '\n + 'preferred pickup location. Please see a library services desk for more information.',\n btnClass: 'willis',\n },\n wgrc: {\n name: 'Willis Graduate Reserve',\n abbr: 'Willis Grad Reserve',\n linkText: '',\n url: '',\n btnClass: 'willis',\n },\n 'wl*': {\n name: 'Willis Lower Level',\n abbr: 'Willis LL',\n linkText: 'Willis Library Lower Level Floor Directory',\n url: 'https://library.unt.edu/willis/lower-level/#directory',\n btnClass: 'willis',\n },\n wlbig: {\n name: 'Willis LL Oversize',\n },\n wllok: {\n name: 'Willis LL Lockers',\n },\n wlmic: {\n name: 'Willis LL Microforms',\n },\n 'x*': {\n name: 'Remote Storage',\n abbr: 'Remote Storage',\n linkText: '',\n url: '',\n btnClass: 'remote-storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xcmc: {\n name: 'Curriculum Materials Collection Remote Storage',\n abbr: 'Curriculum Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xdmic: {\n name: 'Government Documents Remote Storage Microforms',\n abbr: 'Gov Docs Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xdmp: {\n name: 'Government Documents Remote Storage Maps',\n abbr: 'Gov Docs Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xdoc: {\n name: 'Government Documents Remote Storage',\n abbr: 'Gov Docs Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xjuv: {\n name: 'Juvenile Collection Remote Storage',\n abbr: 'Juvenile Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xmau: {\n name: 'Music Audio Coll Remote Storage',\n abbr: 'Music Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xmed: {\n name: 'Media Library Remote Storage',\n abbr: 'Media Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xmic: {\n name: 'Remote Storage Microforms',\n abbr: 'Storage Microforms',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xmus: {\n name: 'Music Remote Storage',\n abbr: 'Music Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xprsv: {\n name: 'Preservation Lab',\n abbr: 'Preservation Lab',\n },\n xspc: {\n name: 'Special Collections Remote Storage',\n abbr: 'Special Collections Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xspe: {\n name: 'Special Collections Remote Storage',\n abbr: 'Special Collections Storage',\n statusText: 'This item is located off campus and will take time for processing and delivery.',\n },\n xts: {\n name: 'Collection Management Work Room',\n abbr: 'Collection Management',\n },\n zzzzz: {\n name: 'Error',\n abbr: '',\n linkText: '',\n url: '',\n },\n};\n\nexport {\n // eslint-disable-next-line import/prefer-default-export\n locationData,\n};\n","const serviceDeskData = {\n r: {\n name: 'Discovery Park Library Service Desk',\n url: 'https://library.unt.edu/discovery-park/service-desk/',\n },\n s: {\n name: 'Sycamore Library Service Desk',\n url: 'https://library.unt.edu/sycamore/service-desk/',\n },\n czm: {\n name: 'Media Library Service Desk',\n url: 'https://library.unt.edu/media/service-desk/',\n },\n w4m: {\n name: 'Music Library Service Desk',\n url: 'https://library.unt.edu/music/service-desk/',\n },\n w4spe: {\n name: 'Special Collections',\n url: 'https://library.unt.edu/special-collections/',\n },\n xspe: {\n name: 'Special Collections',\n url: 'https://library.unt.edu/special-collections/',\n },\n default: {\n name: 'Willis Library Services Desk',\n url: 'https://library.unt.edu/willis/service-desk/',\n },\n};\n\nexport {\n // eslint-disable-next-line import/prefer-default-export\n serviceDeskData,\n};\n","import { locationData as locationDataRaw } from './data/availability_locations';\nimport { statusDescData as statusDescDataRaw } from './data/availability_statuses';\nimport { serviceDeskData } from './data/service_desks';\nimport {\n LocationData, StatusData, ApiEntry,\n} from './@typings/interfaces.d';\n\nconst locationData: LocationData = locationDataRaw;\nconst statusDescData: StatusData = statusDescDataRaw;\n\n/**\n * Splits an array into chunks of a specified size for more manageable API calls.\n * @param arr - The input array to be chunked.\n * @param chunkSize - The size of the chunks to be created (default: 50).\n * @returns An array containing the chunked arrays.\n */\nfunction chunkArray(arr: any[], chunkSize = 50): any[][] {\n const chunkedArray = [];\n while (arr.length) {\n chunkedArray.push(arr.splice(0, chunkSize));\n }\n return chunkedArray;\n}\n\n/**\n * Gets the elements for \"fake\" items that exist when there are no items to check on Sierra.\n * @returns A NodeList of elements with the 'data-no-api-request' attribute.\n */\n// eslint-disable-next-line no-undef\nfunction getPlaceholderItemsElements(): NodeListOf {\n return document.querySelectorAll('[data-no-api-request]');\n}\n\n/**\n * Crawls the DOM to find IDs for every item.\n * @returns An array of chunked item IDs.\n */\nfunction getItemsIDs(): string[][] {\n const itemEls: NodeListOf = document.querySelectorAll('[data-item-id]:not([data-item-id=\"\"])');\n const itemsArray: HTMLElement[] = Array.from(itemEls);\n\n const itemBibs = itemsArray.map((el: HTMLElement) => el.dataset.itemId?.replace(/\\D/g, ''));\n return chunkArray(itemBibs, 50);\n}\n\n/**\n * Filters the items that were not returned by the Sierra API to determine what is missing.\n * @param foundItems - The items found in the API response.\n * @param allItems - The items present in the DOM.\n * @returns An array containing the missing items.\n */\n// eslint-disable-next-line default-param-last\nfunction findMissing(foundItems: ApiEntry[] = [], allItems: string[]): string[] {\n const foundIDs = foundItems.map((el) => {\n if (el !== undefined) {\n return el.id;\n }\n return null;\n });\n return allItems.filter((el) => !foundIDs.includes(el));\n}\n\n/**\n * Searches the mapped location data to find the closest matching key.\n * @param locationCode - The location code to match.\n * @returns An object containing location data (merged from exact and wildcard matches).\n */\nfunction getLocationData(locationCode: string): LocationData[keyof LocationData] {\n let exactMatch = {};\n if (Object.hasOwnProperty.call(locationData, locationCode)) {\n exactMatch = locationData[locationCode];\n }\n\n const wildcardMatches = Object.keys(locationData).filter((key) => key[0] === locationCode[0] && key.endsWith('*'));\n wildcardMatches.sort((a, b) => b.length - a.length);\n\n let wildcardMatch = {};\n for (let i = 0; i < wildcardMatches.length; i += 1) {\n const wildcard = wildcardMatches[i];\n if (locationCode.startsWith(wildcard.slice(0, -1))) {\n wildcardMatch = locationData[wildcard];\n break;\n }\n }\n\n return { ...wildcardMatch, ...exactMatch };\n}\n\n/**\n * Retrieves status data for a given status code.\n * @param statusCode - The status code to search for.\n * @returns The status data object for the provided status code.\n */\nfunction getStatusData(statusCode: string): StatusData[keyof StatusData] | null {\n return statusDescData[statusCode];\n}\n\n// Define a new interface for ServiceDeskData\ninterface ServiceDeskData {\n [key: string]: {\n name: string;\n url: string;\n };\n}\n\n/**\n * Retrieves service desk data for a given location code.\n * @param locationCode - The location code to search for.\n * @returns The service desk data object for the provided location code.\n */\nfunction getServiceDeskData(locationCode: string): ServiceDeskData[keyof ServiceDeskData] {\n let serviceDesk;\n Object.entries(serviceDeskData).forEach(([key, value]) => {\n if (locationCode.startsWith(key)) {\n serviceDesk = value;\n }\n });\n\n if (serviceDesk === undefined) {\n serviceDesk = serviceDeskData.default;\n }\n return serviceDesk;\n}\n\n/**\n * Appends required query string parameters to an Aeon URL that require the Sierra API call.\n * @param itemURL - The item URL to be updated.\n * @param itemLocation - The item location data.\n * @returns The updated URL string with added query parameters.\n */\nfunction updateAeonRequestUrl(\n itemURL: string,\n itemLocation: { code: string, name: string },\n): string {\n const locationCode = itemLocation.code.startsWith('w4m') ? 'UNTMUSIC' : 'UNTSPECCOLL';\n const locationName = itemLocation.name;\n const aeonUrl = new URL(itemURL);\n const queryString = aeonUrl.search;\n const params = new URLSearchParams(queryString);\n\n aeonUrl.search = params.toString();\n\n params.append('Location', locationName);\n params.append('Site', locationCode);\n aeonUrl.search = params.toString();\n return aeonUrl.toString();\n}\n\n/**\n * Transforms fulfilled Promises from API response to an array of data objects.\n * @param result - An array of Promises from API response.\n * @returns An array of item data returned by the Sierra API.\n */\nfunction itemsFromPromises(result: Array): ApiEntry[] {\n return result\n .filter((response) => response.status === 'fulfilled')\n .map((item) => item.value.entries)\n .flat(1);\n}\n\n/**\n * Entry point to update availability of items through the Sierra API.\n * @param itemBibs - An array of item bib numbers.\n * @returns A Promise resolving to the Sierra API response.\n */\nasync function callSierraApi(itemBibs: string[]): Promise {\n const tokenEl = document.querySelector('meta[name=\"csrf-token\"]');\n\n if (!tokenEl) {\n throw new Error('Token element not found');\n }\n\n const token = tokenEl.getAttribute('content');\n\n if (!token) {\n throw new Error('Token content is null');\n }\n\n const data = {\n item_id: itemBibs,\n };\n\n // @ts-ignore\n const response: Response = await fetch('/availability/items', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': token,\n },\n body: JSON.stringify(data),\n }).catch((e) => console.log(e));\n\n if (!response.ok) {\n console.log('Error from API');\n console.log(await response.text());\n throw new Error(response.statusText);\n }\n\n const jsonResponse = await response.json();\n\n if (jsonResponse.httpStatus) {\n throw jsonResponse;\n }\n\n return jsonResponse;\n}\n\nexport {\n callSierraApi,\n findMissing,\n getItemsIDs,\n getLocationData,\n getServiceDeskData,\n getStatusData,\n getPlaceholderItemsElements,\n itemsFromPromises,\n updateAeonRequestUrl,\n};\n","const statusDescData = {\n a: {\n label: 'To Bindery',\n desc: 'The item is being processed and is not currently available.',\n btnClass: 'unavailable',\n },\n b: {\n label: 'Pam Binding',\n desc: 'The item is being processed and is not currently available.',\n btnClass: 'unavailable',\n },\n d: {\n label: 'Discarded',\n desc: 'The item is no longer part of our collection.',\n btnClass: 'unavailable',\n },\n e: {\n label: 'At Offsite Cataloging',\n desc: 'The item is being processed off site and is not currently available. It cannot be requested.',\n btnClass: 'unavailable',\n },\n f: {\n label: 'At Offsite Processing',\n desc: 'The item is being processed off site and is not currently available. It cannot be requested.',\n btnClass: 'unavailable',\n },\n g: {\n label: 'Music Processing',\n desc: 'The music library is currently processing this item.',\n btnClass: 'unavailable',\n },\n h: {\n label: 'Bindery Prep',\n desc: 'The item is being processed and is not currently available.',\n btnClass: 'unavailable',\n },\n i: {\n label: 'Media Processing',\n desc: 'The media library is currently processing this item.',\n btnClass: 'unavailable',\n },\n j: {\n label: 'Lost',\n desc: 'A patron lost the item, and we are no longer looking for it. It cannot be requested.',\n btnClass: 'unavailable',\n },\n k: {\n label: 'On Order',\n desc: 'A new item has been ordered but has not yet been received by the library.',\n btnClass: 'unavailable',\n },\n m: {\n label: 'On Search',\n desc: 'The item has recently been reported lost or missing and we\\'re actively looking for it.',\n btnClass: 'unavailable',\n },\n n: {\n label: 'Billed',\n desc: 'The item was checked out and never returned. The last person to have the item was sent a bill. The item '\n + 'cannot be requested.',\n btnClass: 'unavailable',\n },\n o: {\n label: 'Library Use Only',\n desc: 'The item should be available on the shelf at the given location, but it can only be used in the library. It '\n + 'cannot be checked out or requested.',\n btnClass: 'unavailable',\n },\n p: {\n label: 'Preservation',\n desc: 'The item is being processed and is not currently available.',\n btnClass: 'unavailable',\n },\n r: {\n label: 'Requestable',\n desc: 'The item can be requested.',\n btnClass: 'available',\n },\n t: {\n label: 'In Transit',\n desc: 'Item is being moved between locations because it\\'s new or because of a request.',\n btnClass: 'unavailable',\n },\n w: {\n label: 'Linked above',\n desc: 'This item or copy is available online--look for the FIND IT button. You may need to be on campus or '\n + 'authenticate using your EUID to access it.',\n btnClass: 'online',\n },\n x: {\n label: 'In Transit Too Long',\n desc: 'The item has been IN TRANSIT for longer than five days. It may have been lost, or it '\n + 'may have not been checked in properly when it arrived at its destination.',\n btnClass: 'unavailable',\n },\n y: {\n label: 'Missing',\n desc: 'We cannot find the item, and we do not know what happened to it. We are no longer looking for it. '\n + 'It cannot be requested.',\n btnClass: 'unavailable',\n },\n z: {\n label: 'Claims Returned',\n desc: 'The item was checked out, and the person claims to have returned it, but we cannot find it. It cannot be '\n + 'requested.',\n btnClass: 'unavailable',\n },\n '-': {\n label: 'Available',\n desc: 'The item is available for checkout. It should be on the shelf at the listed location; if you can\\'t find '\n + 'it, please ask for help at a Service Desk.',\n btnClass: 'available',\n },\n '!': {\n label: 'On Holdshelf',\n desc: 'Somebody requested this item and it has been pulled for them. It is now waiting at the pickup location for '\n + 'the person who requested it to pick it up and check it out.',\n btnClass: 'unavailable',\n },\n $: {\n label: 'Lost and Paid',\n desc: 'A patron lost the item, and we are no longer looking for it. It cannot be requested.',\n btnClass: 'unavailable',\n },\n '*': {\n label: 'Digi Projects',\n desc: 'The item is being used internally and is temporarily unavailable.',\n btnClass: 'unavailable',\n },\n};\n\nexport {\n // eslint-disable-next-line import/prefer-default-export\n statusDescData,\n};\n"],"sourceRoot":""}