{"version":3,"file":"list_search_controller-D7imJsl1.js","sources":["../../../app/javascript/controllers/automation/list_search_controller.js"],"sourcesContent":["import { get } from '@rails/request.js'\nimport PopoverController from '../ui/popover_controller'\n\nexport default class extends PopoverController {\n static values = {\n url: String,\n }\n\n static targets = [\n 'input',\n 'item',\n 'pill',\n ]\n\n debounceAndSearch({ target }) {\n this.debounce(() => {\n this.search(target.value)\n }, 300)\n }\n\n async search(value) {\n if(!value) {\n return this.hide()\n }\n\n await get(this.urlValue, {\n responseKind: 'turbo-stream',\n query: {\n element: this.element.id,\n search: value,\n ignore: this.pillTargets.map(pill => pill.dataset.name).join(',')\n }\n })\n\n this.show()\n }\n\n add({ currentTarget }) {\n const pill = currentTarget.querySelector('[data-pill]').cloneNode(true)\n\n if(this.pillTargets.filter(p => p.dataset.id).find(p => p.dataset.id === pill.dataset.id)) {\n this.inputTarget.value = ''\n super.focus(this.inputTarget)\n\n currentTarget.remove()\n\n if(this.itemTargets.length === 0) {\n this.hide()\n }\n\n return\n }\n\n pill.removeAttribute('data-pill')\n pill.classList.remove('hidden')\n\n pill.setAttribute('data-automation--list-search-target', 'pill')\n\n if(this.pillTargets.length === 0) {\n this.triggerTarget.prepend(pill)\n } else {\n this.pillTargets[this.pillTargets.length - 1].insertAdjacentElement('afterend', pill)\n }\n\n currentTarget.remove()\n\n if(this.itemTargets.length === 0) {\n this.hide()\n }\n\n this.inputTarget.value = ''\n super.focus(this.inputTarget)\n\n this.listIds = this.pillTargets.map(pill => pill.dataset.name)\n\n this.dispatch('set', {\n detail: this.listIds,\n })\n }\n\n submitFirstItem() {\n if(this.itemTargets.length > 0) {\n this.add({ currentTarget: this.itemTargets[0] })\n } else {\n this.dispatch('keydown.enter')\n }\n }\n\n removeLastItem() {\n if(this.inputTarget.value || this.pillTargets.length === 0) return\n this.pillTargets[this.pillTargets.length - 1].remove()\n\n if(this.itemTargets.length === 0) {\n this.hide()\n }\n }\n\n remove({ currentTarget }) {\n currentTarget.closest('[data-automation--list-search-target=\"pill\"]').remove()\n super.focus(this.inputTarget)\n }\n\n focus() {\n super.focus(this.inputTarget)\n }\n\n clear() {\n this.pillTargets.forEach(pill => pill.remove())\n this.inputTarget.value = ''\n\n this.hide()\n }\n\n pillTargetDisconnected() {\n this.listIds = this.pillTargets.map(pill => pill.dataset.name)\n\n this.dispatch('set', {\n detail: this.listIds,\n })\n }\n}\n"],"names":["list_search_controller","PopoverController","target","value","get","pill","currentTarget","p","__publicField"],"mappings":"4QAGe,MAAKA,UAASC,CAAkB,CAW7C,kBAAkB,CAAE,OAAAC,GAAU,CAC5B,KAAK,SAAS,IAAM,CAClB,KAAK,OAAOA,EAAO,KAAK,CAC9B,EAAO,GAAG,CACV,CAEE,MAAM,OAAOC,EAAO,CAClB,GAAG,CAACA,EACF,OAAO,KAAK,KAAI,EAGlB,MAAMC,EAAI,KAAK,SAAU,CACvB,aAAc,eACd,MAAO,CACL,QAAS,KAAK,QAAQ,GACtB,OAAQD,EACR,OAAQ,KAAK,YAAY,IAAIE,GAAQA,EAAK,QAAQ,IAAI,EAAE,KAAK,GAAG,CACxE,CACK,CAAA,EAED,KAAK,KAAI,CACb,CAEE,IAAI,CAAE,cAAAC,GAAiB,CACrB,MAAMD,EAAOC,EAAc,cAAc,aAAa,EAAE,UAAU,EAAI,EAEtE,GAAG,KAAK,YAAY,OAAOC,GAAKA,EAAE,QAAQ,EAAE,EAAE,KAAKA,GAAKA,EAAE,QAAQ,KAAOF,EAAK,QAAQ,EAAE,EAAG,CACzF,KAAK,YAAY,MAAQ,GACzB,MAAM,MAAM,KAAK,WAAW,EAE5BC,EAAc,OAAM,EAEjB,KAAK,YAAY,SAAW,GAC7B,KAAK,KAAI,EAGX,MACN,CAEID,EAAK,gBAAgB,WAAW,EAChCA,EAAK,UAAU,OAAO,QAAQ,EAE9BA,EAAK,aAAa,sCAAuC,MAAM,EAE5D,KAAK,YAAY,SAAW,EAC7B,KAAK,cAAc,QAAQA,CAAI,EAE/B,KAAK,YAAY,KAAK,YAAY,OAAS,CAAC,EAAE,sBAAsB,WAAYA,CAAI,EAGtFC,EAAc,OAAM,EAEjB,KAAK,YAAY,SAAW,GAC7B,KAAK,KAAI,EAGX,KAAK,YAAY,MAAQ,GACzB,MAAM,MAAM,KAAK,WAAW,EAE5B,KAAK,QAAU,KAAK,YAAY,IAAID,GAAQA,EAAK,QAAQ,IAAI,EAE7D,KAAK,SAAS,MAAO,CACnB,OAAQ,KAAK,OACd,CAAA,CACL,CAEE,iBAAkB,CACb,KAAK,YAAY,OAAS,EAC3B,KAAK,IAAI,CAAE,cAAe,KAAK,YAAY,CAAC,CAAG,CAAA,EAE/C,KAAK,SAAS,eAAe,CAEnC,CAEE,gBAAiB,CACZ,KAAK,YAAY,OAAS,KAAK,YAAY,SAAW,IACzD,KAAK,YAAY,KAAK,YAAY,OAAS,CAAC,EAAE,OAAM,EAEjD,KAAK,YAAY,SAAW,GAC7B,KAAK,KAAI,EAEf,CAEE,OAAO,CAAE,cAAAC,GAAiB,CACxBA,EAAc,QAAQ,8CAA8C,EAAE,OAAM,EAC5E,MAAM,MAAM,KAAK,WAAW,CAChC,CAEE,OAAQ,CACN,MAAM,MAAM,KAAK,WAAW,CAChC,CAEE,OAAQ,CACN,KAAK,YAAY,QAAQD,GAAQA,EAAK,OAAQ,CAAA,EAC9C,KAAK,YAAY,MAAQ,GAEzB,KAAK,KAAI,CACb,CAEE,wBAAyB,CACvB,KAAK,QAAU,KAAK,YAAY,IAAIA,GAAQA,EAAK,QAAQ,IAAI,EAE7D,KAAK,SAAS,MAAO,CACnB,OAAQ,KAAK,OACd,CAAA,CACL,CACA,CApHEG,EADkBR,EACX,SAAS,CACd,IAAK,MACT,GAEEQ,EALkBR,EAKX,UAAU,CACf,QACA,OACA,MACJ"}