{"version":3,"file":"wms-w5qlclJj.js","sources":["../../../app/frontend/entrypoints/controllers/erp/warehouse/overview/show/wms.ts"],"sourcesContent":["\nimport Swal from 'sweetalert2';\nimport * as bootstrap from 'bootstrap'\nimport Utils from '../../../../../utils'\n\nexport default class WarehouseWMSOverview {\n private parent: any;\n private entity = \"\";\n private toastr: any;\n private element: HTMLElement;\n private dt: any;\n\n constructor(parent: any) {\n this.parent = parent\n this.toastr = parent.toastr\n this.element = document.querySelector(\"#warehouse_wms_configurator\") as HTMLElement;\n this.bindListeners();\n this.init();\n console.log(\"wms\", this)\n }\n\n async init() {\n let rawTableHtml = '
';\n rawTableHtml += '
'\n rawTableHtml += '
'\n this.element.innerHTML = rawTableHtml;\n if (!this.parent.data.wms_config ||this.parent.data.wms_config.length === 0) {\n for(let i=0;i < 10;i++) {\n this.addColumn();\n if (i <= 5) {\n this.addRow();\n }\n }\n } else {\n this.parent.data.wms_config.forEach((row: any, i: number) => {\n this.addRow();\n row.forEach((cell: any, k: number) => {\n if (i === 0) {\n this.addColumn();\n }\n const td = document.querySelector(`.wms_warehouse_configurator_table tr:nth-child(${i+1}) td:nth-child(${k+1})`) as HTMLTableCellElement | null\n if(td) {\n if (cell.mode && cell.id) {\n this.selectTd(td, cell.id, cell.mode, cell.name)\n }\n }\n })\n })\n }\n this.bindDragEvents();\n const warehouseLocationRequest = await Utils.entity.getAll(`warehouse_locations`, `erp/warehouses/${this.parent.id}`)\n if(warehouseLocationRequest.status === 200) {\n const warehouseLocationData = warehouseLocationRequest.data\n const parent = document.querySelector(\"#warehouse_wms_warehouse_locations\") as HTMLElement;\n warehouseLocationData.forEach((warehouseLocation: any) => {\n const button = document.createElement(\"button\");\n button.classList.add(\"btn\")\n button.classList.add(\"btn-primary\")\n button.style.marginRight = \"4px\"\n button.style.marginTop = \"4px\"\n button.setAttribute(\"data-mode\", \"LOCATION\")\n button.setAttribute(\"data-id\", warehouseLocation.id)\n button.setAttribute(\"data-name\", warehouseLocation.name)\n button.draggable = true\n button.innerHTML = warehouseLocation.name\n button.addEventListener(\"dragstart\", (e: any) => {\n e.dataTransfer.setData(\"mode\", button.getAttribute(\"data-mode\"));\n e.dataTransfer.setData(\"name\", button.getAttribute(\"data-name\"));\n e.dataTransfer.setData(\"id\", button.getAttribute(\"data-id\"));\n })\n parent.appendChild(button);\n })\n }\n }\n addRow() {\n const tbody = this.element.querySelector(\"tbody\");\n if (tbody) {\n let html = ''\n let columnCount = 0\n const firstRow = tbody.querySelectorAll(\"tr:first-child td\")\n if (firstRow && firstRow.length > 0) {\n columnCount = firstRow.length\n }\n for(let i=0;i < columnCount;i++) {\n html += ''\n }\n html += ''\n tbody.innerHTML = tbody.innerHTML + html\n }\n }\n\n removeRow() {\n const tbody = this.element.querySelector(\"tbody\");\n if (tbody) {\n let lastTr = tbody.querySelector(\"tr:last-child\")\n if (lastTr) {\n lastTr.remove()\n }\n }\n }\n addColumn() {\n const tbody = this.element.querySelector(\"tbody\");\n if (tbody) {\n const rows = tbody.querySelectorAll(\"tr\") as NodeListOf;\n if (rows && rows.length > 0) {\n rows.forEach((row) => {\n row.innerHTML = row.innerHTML + ''\n })\n }\n }\n }\n\n removeColumn() {\n const tbody = this.element.querySelector(\"tbody\");\n if (tbody) {\n let lastTds = tbody.querySelectorAll(\"tr td:last-child\") as NodeListOf\n if (lastTds && lastTds.length > 1) {\n lastTds.forEach((td) => {\n td.remove()\n })\n }\n }\n }\n\n getEntityData(elem: any) {\n return {}\n }\n\n removeFromAllCells(id: string) {\n (document.querySelectorAll(\".wms_warehouse_configurator_table td\") as NodeListOf).forEach((td) => {\n const tdId = td.getAttribute(\"data-id\");\n if (id === tdId) {\n td.removeAttribute(\"data-id\");\n td.style.background = '#FFFFFF'\n }\n });\n }\n\n bindDragEvents() {\n (document.querySelectorAll(\".wms_warehouse_configurator_table td\") as NodeListOf).forEach((td) => {\n td.draggable = true;\n td.addEventListener('click', (e: any) => {\n if (e.detail === 2) {\n td.removeAttribute(\"data-id\");\n td.style.background = '#FFFFFF'\n }\n });\n td.addEventListener(\"dragstart\", (e: any) => {\n e.dataTransfer.setData(\"mode\", td.getAttribute(\"data-mode\"));\n e.dataTransfer.setData(\"name\", td.innerHTML);\n e.dataTransfer.setData(\"id\", td.getAttribute(\"data-id\"));\n })\n\n td.addEventListener('drop', (e: any) => {\n e.preventDefault()\n const mode = e.dataTransfer.getData(\"mode\");\n const name = e.dataTransfer.getData(\"name\");\n const id = e.dataTransfer.getData(\"id\");\n if (mode && id) {\n this.selectTd(td, id, mode, name)\n }\n })\n td.addEventListener('dragover', (e) => {\n e.preventDefault()\n })\n });\n\n }\n selectTd(td: HTMLTableCellElement, id: string, mode: string, name: string) {\n if (id !== \"PATH\") {\n this.removeFromAllCells(id)\n }\n td.setAttribute(\"data-id\", id)\n td.setAttribute(\"data-name\", name)\n td.setAttribute(\"data-mode\", mode)\n\n td.innerHTML = ''\n if(mode === \"START\") {\n td.style.background = '#25B264'\n } else if(mode === \"END\") {\n td.style.background = '#EA5354'\n } else if(mode === \"PATH\") {\n td.style.background = '#A7AAAE'\n } else {\n td.innerHTML = name\n td.style.background = '#001BA0'\n }\n }\n\n async save() {\n const map: { mode: string | null; id: string | null; name: string | null; }[][] = [];\n (document.querySelectorAll(\".wms_warehouse_configurator_table tr\") as NodeListOf).forEach((tr) => {\n const trMap: { mode: string | null; id: string | null; name: string | null; }[] = [];\n (tr.querySelectorAll(\"td\") as NodeListOf).forEach((td) => {\n trMap.push({\n mode: td.getAttribute(\"data-mode\"),\n id: td.getAttribute(\"data-id\"),\n name: td.getAttribute(\"data-name\"),\n })\n })\n map.push(trMap)\n })\n await Utils.entity.upsert({\n uuid: this.parent.id,\n wms_config: map\n }, this.parent.entity)\n this.toastr.success(`${Utils.translate('erp.warehouse.name')} ${Utils.translate('generic.saved')}`, `${Utils.translate('generic.success')}`)\n\n }\n\n bindListeners() {\n (document.querySelector(\"#warehouse_wms_save\") as HTMLButtonElement).addEventListener(\"click\", (e) => {\n this.save();\n })\n document.querySelectorAll(\".btn[draggable='true']\").forEach((btn) => {\n btn.addEventListener(\"dragstart\", (e: any) => {\n e.dataTransfer.setData(\"mode\", btn.getAttribute(\"data-mode\"));\n e.dataTransfer.setData(\"name\", btn.getAttribute(\"data-name\"));\n e.dataTransfer.setData(\"id\", btn.getAttribute(\"data-id\"));\n })\n });\n\n document.addEventListener('click', (e) => {\n const target = e.target as undefined | HTMLElement\n if (target && target.closest('.btn-xs[data-mode]')) {\n const btn = target.closest('.btn-xs[data-mode]') as HTMLButtonElement\n const mode = btn.getAttribute(\"data-mode\")\n const action = btn.getAttribute(\"data-action\")\n if (mode === \"row\") {\n if (action === \"add\") {\n this.addRow()\n } else {\n this.removeRow()\n }\n } else {\n if (action === \"add\") {\n this.addColumn()\n } else {\n this.removeColumn()\n }\n }\n this.bindDragEvents();\n }\n })\n }\n}"],"names":[],"mappings":"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"}