{ "version": 3, "sources": ["sort_last_name_field_controller-37725dad.js"], "sourcesContent": ["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"winnerField\", \"loserField\" ]\n \n getReversedLastNameFromString(someString) {\n const spaceChar = \" \"\n const parts = someString.split(spaceChar)\n const wordCount = parts.length\n \n if (wordCount === 1) {\n return someString\n }\n \n const lastWordIdx = (wordCount - 1)\n const lastWord = parts[lastWordIdx]\n const penultimateWordIx = (wordCount - 2)\n const wordsThroughPenult = parts.slice(0, lastWordIdx)\n const givenName = wordsThroughPenult.join(spaceChar)\n \n return `${lastWord}, ${givenName}`\n }\n \n processString(someString) {\n if (this.stringAppearsToBeTwoJoinedFullNames(someString)) {\n const separateNames = this.getSeparateNamesFromJoinedNamesString(someString)\n \n const firstNameReversed = this.getReversedLastNameFromString(separateNames[0])\n const lastNameReversed = this.getReversedLastNameFromString(separateNames[1])\n\n return `${firstNameReversed} & ${lastNameReversed}`\n } else {\n const sortNamesFromSingleLastNameWithDoubleName = this.getSortNamesFromDoubleNameWithSingleLastName(someString)\n \n if (sortNamesFromSingleLastNameWithDoubleName == null) {\n return this.getReversedLastNameFromString(someString)\n }\n \n return sortNamesFromSingleLastNameWithDoubleName\n }\n }\n \n getSeparateNamesFromJoinedNamesString(someString) {\n return someString.split(\" & \")\n }\n \n getSortNamesFromDoubleNameWithSingleLastName(someString) {\n const ampersandedParts = someString.split(\" & \")\n \n if (ampersandedParts.length == 2) {\n const firstSubname = ampersandedParts[0]\n const lastSubname = ampersandedParts[1]\n \n const firstSubnameParts = firstSubname.split(\" \")\n const lastSubnameParts = lastSubname.split(\" \")\n \n if ((firstSubnameParts.length === 1) && (lastSubnameParts.length === 2)) {\n const firstPersonsFirstName = firstSubname\n const secondPersonsFirstName = lastSubnameParts[0]\n const lastName = lastSubnameParts[1]\n \n return `${lastName}, ${firstPersonsFirstName} & ${lastName}, ${secondPersonsFirstName}`\n }\n \n return null\n }\n \n return null\n }\n \n stringAppearsToBeTwoJoinedFullNames(someString) {\n const splits = someString.split(\" & \")\n const ampersandCount = (splits.length - 1)\n \n if (ampersandCount === 1) {\n let foundViolation = false\n let i = 0\n \n while ((i < splits.length) && !foundViolation) {\n const potentialName = splits[i]\n const subparts = potentialName.split(\" \")\n \n if (subparts.length !== 2) {\n foundViolation = true\n }\n \n i++\n }\n \n return (!foundViolation)\n }\n \n return false\n }\n \n countSubstringAppearancesInString(substring, someString) {\n const splits = someString.split(substring)\n return (splits.length - 1)\n }\n \n update() {\n const winnerFieldValue = this.winnerFieldTarget.value\n const newLoserFieldValue = this.processString(winnerFieldValue)\n this.loserFieldTarget.value = newLoserFieldValue\n }\n}"], "mappings": "wKAAA,gDAEA,qBAAO,SAAsB,EAAW,CAGtC,8BAA8B,EAAY,CACxC,KAAM,GAAY,IACZ,EAAQ,EAAW,MAAM,CAAS,EAClC,EAAY,EAAM,OAExB,GAAI,IAAc,EAChB,MAAO,GAGT,KAAM,GAAe,EAAY,EAC3B,EAAW,EAAM,GACjB,EAAqB,EAAY,EAEjC,EAAY,AADS,EAAM,MAAM,EAAG,CAAW,EAChB,KAAK,CAAS,EAEnD,MAAO,GAAG,MAAa,GACzB,CAEA,cAAc,EAAY,CACxB,GAAI,KAAK,oCAAoC,CAAU,EAAG,CACxD,KAAM,GAAgB,KAAK,sCAAsC,CAAU,EAErE,EAAoB,KAAK,8BAA8B,EAAc,EAAE,EACvE,EAAmB,KAAK,8BAA8B,EAAc,EAAE,EAE5E,MAAO,GAAG,OAAuB,GACnC,KAAO,CACL,KAAM,GAA4C,KAAK,6CAA6C,CAAU,EAE9G,MAAI,IACK,KAAK,8BAA8B,CAAU,CAIxD,CACF,CAEA,sCAAsC,EAAY,CAChD,MAAO,GAAW,MAAM,KAAK,CAC/B,CAEA,6CAA6C,EAAY,CACvD,KAAM,GAAmB,EAAW,MAAM,KAAK,EAE/C,GAAI,EAAiB,QAAU,EAAG,CAChC,KAAM,GAAe,EAAiB,GAChC,EAAc,EAAiB,GAE/B,EAAoB,EAAa,MAAM,GAAG,EAC1C,EAAmB,EAAY,MAAM,GAAG,EAE9C,GAAK,EAAkB,SAAW,GAAO,EAAiB,SAAW,EAAI,CACvE,KAAM,GAAwB,EACxB,EAAyB,EAAiB,GAC1C,EAAW,EAAiB,GAElC,MAAO,GAAG,MAAa,OAA2B,MAAa,GACjE,CAEA,MAAO,KACT,CAEA,MAAO,KACT,CAEA,oCAAoC,EAAY,CAC9C,KAAM,GAAS,EAAW,MAAM,KAAK,EAGrC,GAAI,AAFoB,EAAO,OAAS,IAEjB,EAAG,CACxB,GAAI,GAAiB,GACjB,EAAI,EAER,KAAQ,EAAI,EAAO,QAAW,CAAC,GAI7B,AAAI,AAFa,AADK,EAAO,GACE,MAAM,GAAG,EAE3B,SAAW,GACtB,GAAiB,IAGnB,IAGF,MAAQ,CAAC,CACX,CAEA,MAAO,EACT,CAEA,kCAAkC,EAAW,EAAY,CAEvD,MAAQ,AADO,GAAW,MAAM,CAAS,EAC1B,OAAS,CAC1B,CAEA,QAAS,CACP,KAAM,GAAmB,KAAK,kBAAkB,MAC1C,EAAqB,KAAK,cAAc,CAAgB,EAC9D,KAAK,iBAAiB,MAAQ,CAChC,CACF,CAtGS,EADT,EACS,UAAU,CAAE,cAAe,YAAa", "names": [] }