{"version":3,"file":"text-revealer-DB84XQ8F.js","sources":["../src/lib/participants-modal.js","../src/webcomponents/text-revealer.js"],"sourcesContent":["import { WireupHandlers } from \"./data-wireup\";\r\nimport { LoadElementAsync, PostJSON } from \"./fetchers\";\r\n\r\n// TODO: At some point, this would be better served with a web component that loads the data via JSON, rather than a flat HTML load\r\n\r\n/**\r\n * Show the participants modal\r\n * @param {string} modalId ID of the modal element to populate and show\r\n */\r\nexport async function ShowParticipantsModal(modalId, siteAdmin) {\r\n await LoadElementAsync(modalId, \"/trains/\" + window.CurrentTrain.Id + \"/participants\" + (siteAdmin ? \"?siteAdmin=true\" : \"\"), true);\r\n // Wire up the remove buttons\r\n WireupHandlers(\"removeparticipant\", \"click\", e => RemoveParticipant(e.currentTarget.dataset[\"wireupRemoveparticipant\"], e.currentTarget));\r\n}\r\n\r\n/**\r\n * Remove the selected participant\r\n * @param {string} participantId The participant's hashed ID\r\n * @param {HTMLElement} caller The calling HTMLElement, should be \"this\"\r\n */\r\nasync function RemoveParticipant(participantId, caller) {\r\n caller.classList.add(\"button-loading\");\r\n const row = caller.closest(\".participant-row\");\r\n try {\r\n await PostJSON(\"/trains/\" + window.CurrentTrain.Id + \"/participants/\" + participantId + \"/remove\");\r\n row.remove();\r\n } catch (err) {\r\n const errorRow = row.querySelector(\".participant-row__error\");\r\n if (err && err.message) {\r\n errorRow.querySelector(\".alert-message\").innerText = err.message;\r\n }\r\n errorRow.classList.remove(\"hidden\");\r\n } finally {\r\n caller.classList.remove(\"button-loading\");\r\n }\r\n}","import { UnshadowedElement, html } from \"../lib/unshadowed.js\";\r\n\r\n/** Basic revealable text block */\r\nexport class TextRevealer extends UnshadowedElement {\r\n static elementName() { return \"text-revealer\" }\r\n\r\n static properties = {\r\n cutoff: { type: Number },\r\n text: { type: String },\r\n expanded: { type: Boolean },\r\n }\r\n\r\n constructor() {\r\n super();\r\n // Defaults\r\n this.cutoff = 140;\r\n this.text = \"\";\r\n }\r\n\r\n readMore() {\r\n this.expanded = true;\r\n }\r\n\r\n render() {\r\n if (this.expanded || this.text.length < this.cutoff) {\r\n return html`${this.text}`;\r\n } else {\r\n const searcharea = this.text.substring(0, this.cutoff - 5);\r\n // Find whitespace before the cutoff\r\n const regex = /\\s(?=[^\\s]*$)/g;\r\n regex.test(searcharea);\r\n const spaceIdx = regex.lastIndex;\r\n // Include the hidden text for SEO. No whitespace in case we're in pre-wrap\r\n return html`${this.text.substring(0, spaceIdx)}${this.text.substring(spaceIdx)}...`;\r\n }\r\n }\r\n}\r\n"],"names":["ShowParticipantsModal","_x","_x2","_ShowParticipantsModal","apply","this","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","modalId","siteAdmin","wrap","_context","prev","next","LoadElementAsync","window","CurrentTrain","Id","WireupHandlers","e","RemoveParticipant","currentTarget","dataset","stop","_x3","_x4","_RemoveParticipant","_callee2","participantId","caller","row","errorRow","_context2","classList","add","closest","PostJSON","remove","t0","querySelector","message","innerText","finish","TextRevealer","_UnshadowedElement","_this","_classCallCheck","_callSuper","cutoff","text","_inherits","UnshadowedElement","_createClass","key","value","expanded","length","html","_templateObject","_taggedTemplateLiteral","searcharea","substring","regex","test","spaceIdx","lastIndex","_templateObject2","readMore","_defineProperty","type","Number","String","Boolean"],"mappings":"4MASA,SAAsBA,EAAqBC,EAAAC,GAAA,OAAAC,EAAAC,MAAAC,KAAAC,UAAA,CAM3C,SAAAH,IAFC,OAEDA,EAAAI,EAAAC,IAAAC,MANO,SAAAC,EAAqCC,EAASC,GAAS,OAAAJ,IAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EACpDC,EAAiBN,EAAS,WAAaO,OAAOC,aAAaC,GAAK,iBAAmBR,EAAY,kBAAoB,KAAK,GAAK,KAAA,EAEnIS,EAAe,oBAAqB,SAAS,SAAAC,GAAC,OAAIC,EAAkBD,EAAEE,cAAcC,QAAiC,wBAAGH,EAAEE,kBAAgB,KAAA,EAAA,IAAA,MAAA,OAAAV,EAAAY,OAAA,GAAAhB,QAC7IN,MAAAC,KAAAC,UAAA,CAAA,SAOciB,EAAiBI,EAAAC,GAAA,OAAAC,EAAAzB,MAAAC,KAAAC,UAAA,CAAA,SAAAuB,IAe/B,OAf+BA,EAAAtB,EAAAC,IAAAC,MAAhC,SAAAqB,EAAiCC,EAAeC,GAAM,IAAAC,EAAAC,EAAA,OAAA1B,IAAAK,MAAA,SAAAsB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,KAAA,EAEJ,OAD9CgB,EAAOI,UAAUC,IAAI,kBACfJ,EAAMD,EAAOM,QAAQ,oBAAmBH,EAAApB,KAAA,EAAAoB,EAAAnB,KAAA,EAEpCuB,EAAS,WAAarB,OAAOC,aAAaC,GAAK,iBAAmBW,EAAgB,WAAU,KAAA,EAClGE,EAAIO,SAASL,EAAAnB,KAAA,GAAA,MAAA,KAAA,EAAAmB,EAAApB,KAAA,EAAAoB,EAAAM,GAAAN,EAAA,MAAA,GAEPD,EAAWD,EAAIS,cAAc,2BAC/BP,EAAAM,IAAON,EAAAM,GAAIE,UACXT,EAASQ,cAAc,kBAAkBE,UAAYT,EAAAM,GAAIE,SAE7DT,EAASE,UAAUI,OAAO,UAAU,KAAA,GAEM,OAFNL,EAAApB,KAAA,GAEpCiB,EAAOI,UAAUI,OAAO,kBAAkBL,EAAAU,OAAA,IAAA,KAAA,GAAA,IAAA,MAAA,OAAAV,EAAAT,OAAA,GAAAI,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,GAAA,WAEjD1B,MAAAC,KAAAC,UAAA,SChCYwC,WAAYC,GASrB,SAAAD,IAAc,IAAAE,EAIK,OAJLC,OAAAH,IACVE,EAAAE,EAAA7C,KAAAyC,IAEKK,OAAS,IACdH,EAAKI,KAAO,GAAGJ,CACnB,CAAC,OAAAK,EAAAP,EAd6BQ,GAc7BC,EAAAT,EAAA,CAAA,CAAAU,IAAA,WAAAC,MAED,WACIpD,KAAKqD,UAAW,CACpB,GAAC,CAAAF,IAAA,SAAAC,MAED,WACI,GAAIpD,KAAKqD,UAAYrD,KAAK+C,KAAKO,OAAStD,KAAK8C,OACzC,OAAOS,EAAIC,IAAAA,EAAAC,EAAA,CAAA,GAAA,MAAGzD,KAAK+C,MAEnB,IAAMW,EAAa1D,KAAK+C,KAAKY,UAAU,EAAG3D,KAAK8C,OAAS,GAElDc,EAAQ,iBACdA,EAAMC,KAAKH,GACX,IAAMI,EAAWF,EAAMG,UAEvB,OAAOR,EAAIS,IAAAA,EAAAP,EAAA,CAAA,SAAA,sCAAA,yCAAA,yBAASzD,KAAK+C,KAAKY,UAAU,EAAGG,GAA+C9D,KAAK+C,KAAKY,UAAUG,GAAkD9D,KAAKiE,SAE7K,IAAC,CAAA,CAAAd,IAAA,cAAAC,MA/BD,WAAuB,MAAO,eAAgB,IAAC,IAgClDc,EAjCYzB,EAGW,aAAA,CAChBK,OAAQ,CAAEqB,KAAMC,QAChBrB,KAAM,CAAEoB,KAAME,QACdhB,SAAU,CAAEc,KAAMG"}