{"version":3,"file":"assignment_pane_controller-BagskbSZ.js","sources":["../../../app/javascript/controllers/automation/assignment_pane_controller.js"],"sourcesContent":["import ApplicationController from \"@/controllers/application_controller\"\nimport {commaSeperatedListWithAndConjunction} from \"~/controllers/models/sentence\";\n\nexport default class extends ApplicationController {\n static values = {\n kinds: Array,\n sentence: String,\n stepName: String,\n }\n\n static targets = [\n 'item',\n 'template',\n 'content',\n 'submit',\n 'removeButton',\n 'openModal',\n 'removedActionsInput',\n 'notice',\n 'stepNameInput',\n ]\n\n connect() {\n this.sentenceValue ||= this.toSentence\n super.connect()\n }\n\n insertNewAction({ srcElement, detail: kind }) {\n this.kindsValue = Array.from(new Set([...this.kindsValue, kind]))\n this.submitTarget.disabled = false\n\n if(srcElement !== this.itemTargets[this.itemTargets.length - 1]) return\n\n this.insertNewItem()\n }\n\n insertNewItem() {\n if(this.itemTargets.length === 5) return\n\n const item = this.templateTarget.cloneNode(true)\n\n item.setAttribute('data-controller', 'automation--assignment-action')\n item.setAttribute('data-automation--assignment-pane-target', 'item')\n\n item.classList.remove('hidden')\n item.querySelectorAll('input').forEach(this.enable)\n\n this.contentTarget.appendChild(item)\n\n const tagsSearchElement = item.querySelector('[data-automation--assignment-action-target=\"tags\"]')\n\n tagsSearchElement.id = `${this.element.id}_${this.itemTargets.length + 1}`\n tagsSearchElement.querySelector('[popover]').id = `${tagsSearchElement.id}_popover`\n\n this.nextTick(() => {\n this.dispatch('kinds:hide', {\n target: item,\n detail: this.kindsValue,\n })\n }, 1)\n }\n\n save() {\n const sentence = this.toSentence\n const name = this.stepNameInputTarget.value\n\n this.dispatch('save', {\n target: this.elementStep,\n detail: {\n sentence,\n name,\n },\n })\n\n this.show(this.removeButtonTarget)\n\n this.sentenceValue = sentence\n this.stepNameValue = name\n\n if(sentence && this.hasNoticeTarget) {\n this.noticeTarget.remove()\n }\n }\n\n onClickOutside({ target }) {\n if(this.isPaneInvisible || this.element.contains(target)) return\n\n if(this.hasUnsavedChanges) {\n return this.openModalTarget.click()\n }\n\n this.abortChanges()\n }\n\n abortChanges() {\n this.dispatch('abort', {\n target: this.elementStep,\n })\n }\n\n remove() {\n this.dispatch('remove', {\n target: this.elementStep,\n })\n }\n\n itemTargetDisconnected(item) {\n this.kindsValue = this.kindsValue.filter(kind => kind !== item.dataset.kind)\n\n if(this.kindsValue.length === 4) {\n this.insertNewItem()\n }\n\n this.dispatch('kinds:hide', {\n target: this.itemTargets[this.itemTargets.length - 1],\n detail: this.kindsValue,\n })\n\n if(item.dataset.id) {\n const removedActionIds = this.removedActionsInputTarget.value ? this.removedActionsInputTarget.value.split(',') : []\n removedActionIds.push(item.dataset.id)\n\n this.removedActionsInputTarget.value = removedActionIds.join(',')\n }\n }\n\n get hasUnsavedChanges() {\n return this.sentenceValue !== this.toSentence || this.stepNameInputTarget.value.trim() !== this.stepNameValue\n }\n\n get toSentence() {\n const clauses = this.itemTargets\n .map(item => (\n this.application\n .getControllerForElementAndIdentifier(item, 'automation--assignment-action')\n ?.toSentence()\n ))\n .filter(clause => clause)\n\n return commaSeperatedListWithAndConjunction(clauses)\n }\n\n get elementStep() {\n return document.getElementById(this.element.id.replace('_pane', ''))\n }\n\n get isPaneVisible() {\n return this.element.classList.contains(\"right-0\")\n }\n\n get isPaneInvisible() {\n return this.element.classList.contains(\"-right-full\")\n }\n}\n"],"names":["assignment_pane_controller","ApplicationController","srcElement","kind","item","tagsSearchElement","sentence","name","target","removedActionIds","clauses","_a","clause","commaSeperatedListWithAndConjunction","__publicField"],"mappings":"kQAGe,MAAKA,UAASC,CAAsB,CAmBjD,SAAU,CACR,KAAK,gBAAL,KAAK,cAAkB,KAAK,YAC5B,MAAM,QAAO,CACjB,CAEE,gBAAgB,CAAE,WAAAC,EAAY,OAAQC,CAAI,EAAI,CAC5C,KAAK,WAAa,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,WAAYA,CAAI,CAAC,CAAC,EAChE,KAAK,aAAa,SAAW,GAE1BD,IAAe,KAAK,YAAY,KAAK,YAAY,OAAS,CAAC,GAE9D,KAAK,cAAa,CACtB,CAEE,eAAgB,CACd,GAAG,KAAK,YAAY,SAAW,EAAG,OAElC,MAAME,EAAO,KAAK,eAAe,UAAU,EAAI,EAE/CA,EAAK,aAAa,kBAAmB,+BAA+B,EACpEA,EAAK,aAAa,0CAA2C,MAAM,EAEnEA,EAAK,UAAU,OAAO,QAAQ,EAC9BA,EAAK,iBAAiB,OAAO,EAAE,QAAQ,KAAK,MAAM,EAElD,KAAK,cAAc,YAAYA,CAAI,EAEnC,MAAMC,EAAoBD,EAAK,cAAc,oDAAoD,EAEjGC,EAAkB,GAAK,GAAG,KAAK,QAAQ,EAAE,IAAI,KAAK,YAAY,OAAS,CAAC,GACxEA,EAAkB,cAAc,WAAW,EAAE,GAAK,GAAGA,EAAkB,EAAE,WAEzE,KAAK,SAAS,IAAM,CAClB,KAAK,SAAS,aAAc,CAC1B,OAAQD,EACR,OAAQ,KAAK,UACd,CAAA,CACP,EAAO,CAAC,CACR,CAEE,MAAO,CACL,MAAME,EAAW,KAAK,WAChBC,EAAO,KAAK,oBAAoB,MAEtC,KAAK,SAAS,OAAQ,CACpB,OAAQ,KAAK,YACb,OAAQ,CACN,SAAAD,EACA,KAAAC,CACD,CACF,CAAA,EAED,KAAK,KAAK,KAAK,kBAAkB,EAEjC,KAAK,cAAgBD,EACrB,KAAK,cAAgBC,EAElBD,GAAY,KAAK,iBAClB,KAAK,aAAa,OAAM,CAE9B,CAEE,eAAe,CAAE,OAAAE,GAAU,CACzB,GAAG,OAAK,iBAAmB,KAAK,QAAQ,SAASA,CAAM,GAEvD,IAAG,KAAK,kBACN,OAAO,KAAK,gBAAgB,MAAK,EAGnC,KAAK,aAAY,EACrB,CAEE,cAAe,CACb,KAAK,SAAS,QAAS,CACrB,OAAQ,KAAK,WACd,CAAA,CACL,CAEE,QAAS,CACP,KAAK,SAAS,SAAU,CACtB,OAAQ,KAAK,WACd,CAAA,CACL,CAEE,uBAAuBJ,EAAM,CAY3B,GAXA,KAAK,WAAa,KAAK,WAAW,OAAOD,GAAQA,IAASC,EAAK,QAAQ,IAAI,EAExE,KAAK,WAAW,SAAW,GAC5B,KAAK,cAAa,EAGpB,KAAK,SAAS,aAAc,CAC1B,OAAQ,KAAK,YAAY,KAAK,YAAY,OAAS,CAAC,EACpD,OAAQ,KAAK,UACd,CAAA,EAEEA,EAAK,QAAQ,GAAI,CAClB,MAAMK,EAAmB,KAAK,0BAA0B,MAAQ,KAAK,0BAA0B,MAAM,MAAM,GAAG,EAAI,CAAA,EAClHA,EAAiB,KAAKL,EAAK,QAAQ,EAAE,EAErC,KAAK,0BAA0B,MAAQK,EAAiB,KAAK,GAAG,CACtE,CACA,CAEE,IAAI,mBAAoB,CACtB,OAAO,KAAK,gBAAkB,KAAK,YAAc,KAAK,oBAAoB,MAAM,KAAM,IAAK,KAAK,aACpG,CAEE,IAAI,YAAa,CACf,MAAMC,EAAU,KAAK,YAClB,IAAIN,GAAI,OACP,OAAAO,EAAA,KAAK,YACF,qCAAqCP,EAAM,+BAA+B,IAD7E,YAAAO,EAEI,aACL,EACA,OAAOC,GAAUA,CAAM,EAE1B,OAAOC,EAAqCH,CAAO,CACvD,CAEE,IAAI,aAAc,CAChB,OAAO,SAAS,eAAe,KAAK,QAAQ,GAAG,QAAQ,QAAS,EAAE,CAAC,CACvE,CAEE,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAQ,UAAU,SAAS,SAAS,CACpD,CAEE,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAQ,UAAU,SAAS,aAAa,CACxD,CACA,CArJEI,EADkBd,EACX,SAAS,CACd,MAAO,MACP,SAAU,OACV,SAAU,MACd,GAEEc,EAPkBd,EAOX,UAAU,CACf,OACA,WACA,UACA,SACA,eACA,YACA,sBACA,SACA,eACJ"}