{"version":3,"file":"jena-utilities.esm.js","sources":["../lib/form/fillForm.js","../lib/form/getStyle.js","../lib/form/getForm.js","../lib/instruments.js","../lib/form/getInstruments.js","../node_modules/screening/lib/generateIconNMRFile.js","../lib/form/updateIconNMR.js","../lib/form/ExperimentForm.js"],"sourcesContent":["function collectFormData(form) {\n    const formData = {};\n    const experimentsDiv = form.document.querySelector(`#${form.id}`);\n    const activeTab = experimentsDiv.querySelector('.tab-content.active');\n    const instrumentId = activeTab?.dataset.instrument;\n    if (!instrumentId)\n        return formData;\n    formData.instrument = instrumentId;\n    formData.experiments = [];\n    const experiments = activeTab.querySelectorAll('.experiment-item');\n    for (const exp of experiments) {\n        const checkbox = exp.querySelector('.experiment-toggle');\n        const experimentData = {\n            name: checkbox.dataset.experiment,\n            enabled: checkbox.checked,\n            parameters: {},\n        };\n        for (const input of exp.querySelectorAll('.parameter-input')) {\n            experimentData.parameters[input.dataset.label] = input.value;\n        }\n        formData.experiments.push(experimentData);\n    }\n    return formData;\n}\nfunction createExperimentElement(document, experiment) {\n    const div = document.createElement('div');\n    div.className = 'experiment-item';\n    const header = document.createElement('div');\n    header.className = 'experiment-header';\n    const checkbox = document.createElement('input');\n    checkbox.type = 'checkbox';\n    checkbox.className = 'experiment-toggle';\n    checkbox.dataset.experiment = experiment.experiment;\n    checkbox.checked = experiment.enabled || false;\n    const label = document.createElement('label');\n    label.textContent = experiment.experiment;\n    label.style.cursor = 'pointer';\n    header.append(checkbox);\n    header.append(label);\n    const paramsDiv = document.createElement('div');\n    paramsDiv.className = 'experiment-parameters';\n    paramsDiv.style.display = experiment.enabled || false ? 'block' : 'none';\n    for (const param of experiment.parameters) {\n        const paramDiv = document.createElement('div');\n        paramDiv.className = 'parameter-item';\n        const paramLabel = document.createElement('label');\n        paramLabel.textContent = param.label;\n        const input = document.createElement('input');\n        input.type = 'text';\n        input.className = 'parameter-input';\n        input.dataset.label = param.label;\n        input.value = param.value;\n        paramDiv.append(paramLabel);\n        paramDiv.append(input);\n        paramsDiv.append(paramDiv);\n    }\n    div.append(header);\n    div.append(paramsDiv);\n    return div;\n}\nfunction createTabContent(form, instrumentId, instrumentData) {\n    const content = form.document.createElement('div');\n    content.className = 'tab-content';\n    content.dataset.instrument = instrumentId;\n    for (const experiment of instrumentData.experiments) {\n        content.append(createExperimentElement(form.document, experiment));\n    }\n    return content;\n}\nfunction switchTab(form, instrumentId) {\n    const experimentsDiv = form.document.querySelector(`#${form.id}`);\n    for (const tab of experimentsDiv.querySelectorAll('.tab')) {\n        tab.classList.toggle('active', tab.dataset.instrument === instrumentId);\n    }\n    for (const content of experimentsDiv.querySelectorAll('.tab-content')) {\n        content.classList.toggle('active', content.dataset.instrument === instrumentId);\n    }\n    form.onFormChange(collectFormData(form));\n}\nexport function fillForm(form, instruments) {\n    const experimentsDiv = form.document.querySelector(`#${form.id}`);\n    const tabsContainer = experimentsDiv.querySelector('#tabs');\n    const formContainer = experimentsDiv.querySelector('#form-container');\n    // Clear existing content\n    tabsContainer.innerHTML = '';\n    formContainer.innerHTML = '';\n    const instrumentIds = Object.keys(instruments);\n    for (const [index, instrumentId] of instrumentIds.entries()) {\n        const tab = form.document.createElement('button');\n        tab.className = 'tab';\n        tab.dataset.instrument = instrumentId;\n        tab.textContent = instrumentId;\n        if (index === 0)\n            tab.classList.add('active');\n        tabsContainer.append(tab);\n        const content = createTabContent(form, instrumentId, instruments[instrumentId]);\n        if (index === 0)\n            content.classList.add('active');\n        formContainer.append(content);\n    }\n    // Event delegation at experiments div level\n    experimentsDiv.addEventListener('click', (e) => {\n        if (e.target.classList.contains('tab')) {\n            switchTab(form, e.target.dataset.instrument);\n        }\n        else if (e.target.classList.contains('experiment-header') ||\n            e.target.closest('.experiment-header label')) {\n            const checkbox = e.currentTarget\n                .querySelector('.experiment-item')\n                ?.querySelector('.experiment-toggle');\n            if (checkbox &&\n                (e.target.tagName === 'LABEL' || e.target.closest('.experiment-header'))) {\n                const experimentItem = e.target.closest('.experiment-item');\n                if (experimentItem) {\n                    const checkboxInItem = experimentItem.querySelector('.experiment-toggle');\n                    if (checkboxInItem) {\n                        checkboxInItem.click();\n                    }\n                }\n            }\n        }\n    });\n    experimentsDiv.addEventListener('change', (e) => {\n        if (e.target.classList.contains('experiment-toggle')) {\n            const experimentItem = e.target.closest('.experiment-item');\n            const params = experimentItem.querySelector('.experiment-parameters');\n            params.style.display = e.target.checked ? 'block' : 'none';\n            form.onFormChange(collectFormData(form));\n        }\n    });\n    experimentsDiv.addEventListener('input', (e) => {\n        if (e.target.classList.contains('parameter-input')) {\n            form.onFormChange(collectFormData(form));\n        }\n    });\n    form.onFormChange(collectFormData(form));\n}\n//# sourceMappingURL=fillForm.js.map","export function getStyle(id) {\n    return `#${id} {\n  max-width: 800px;\n  margin: 0 auto;\n  background-color: white;\n  padding: 20px;\n  border-radius: 8px;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n  box-sizing: border-box;\n}\n\n#${id} .tabs {\n  display: flex;\n  gap: 5px;\n  border-bottom: 2px solid #ddd;\n  margin-bottom: 20px;\n}\n\n#${id} .tab {\n  padding: 10px 20px;\n  background-color: #f0f0f0;\n  border: none;\n  border-radius: 5px 5px 0 0;\n  cursor: pointer;\n  font-size: 14px;\n  transition: background-color 0.3s;\n}\n\n#${id} .tab:hover {\n  background-color: #e0e0e0;\n}\n\n#${id} .tab.active {\n  background-color: #007bff;\n  color: white;\n}\n\n#${id} .tab-content {\n  display: none;\n}\n\n#${id} .tab-content.active {\n  display: block;\n}\n\n#${id} .experiment-item {\n  border: 1px solid #ddd;\n  border-radius: 5px;\n  padding: 15px;\n  margin-bottom: 10px;\n  background-color: #fafafa;\n}\n\n#${id} .experiment-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n}\n\n#${id} .experiment-toggle {\n  width: 18px;\n  height: 18px;\n  cursor: pointer;\n}\n\n#${id} .experiment-header label {\n  font-weight: bold;\n  color: #333;\n  user-select: none;\n}\n\n#${id} .experiment-parameters {\n  margin-top: 15px;\n  padding-left: 28px;\n}\n\n#${id} .parameter-item {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 10px;\n}\n\n#${id} .parameter-item label {\n  min-width: 150px;\n  color: #555;\n  font-size: 14px;\n}\n\n#${id} .parameter-input {\n  flex: 1;\n  padding: 8px;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  font-size: 14px;\n}\n\n#${id} .parameter-input:focus {\n  outline: none;\n  border-color: #007bff;\n}\n`;\n}\n//# sourceMappingURL=getStyle.js.map","import { getStyle } from \"./getStyle.js\";\nexport function getForm(options = {}) {\n    const { id = `instrument-${crypto.randomUUID()}` } = options;\n    return {\n        id,\n        html: `<style>${getStyle(id)}</style>\n<div id=\"${id}\">\n  <div id=\"tabs\" class=\"tabs\"></div>\n  <div id=\"form-container\" class=\"form-container\"></div>\n</div>`,\n    };\n}\n//# sourceMappingURL=getForm.js.map","export const instruments = {\n    instrument1: {\n        solventMapping: {\n            CDCl3: 'CDCl3',\n            'DMSO-d6': 'DMSO-d6',\n        },\n        defaultExperiments: [\n            { key: '1H', isPolymer: false, experiment: '1H_CSE_LL' },\n            { key: '13C', isPolymer: false, experiment: '13C{1H}_CSE_LL' },\n            { key: 'COSY', isPolymer: false, experiment: 'COSY_NUS_CSE_LL' },\n            { key: 'HSQC', isPolymer: false, experiment: 'HSQCed_NUS_CSE_LL' },\n            { key: 'HMBC', isPolymer: false, experiment: 'HMBC_NUS_CSE_LL' },\n            { key: 'NOESY', isPolymer: false, experiment: 'NOESY' },\n            { key: '31P', isPolymer: false, experiment: '31P{1H}' },\n            { key: '11B', isPolymer: false, experiment: '11B{1H}' },\n            { key: '13C', isPolymer: true, experiment: '13C{1H}_POLYMER' },\n            { key: 'APT', isPolymer: true, experiment: '13C{1H}-APT-POLY' },\n            { key: 'DEPT135', isPolymer: true, experiment: 'DEPT135-POLYMER' },\n        ],\n        experiments: [\n            {\n                experiment: '1H_CSE_LL',\n                parameters: [\n                    { label: 'd1', value: '1.2' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '6.5' },\n                    { label: 'sw', value: '20' },\n                    { label: 'ns', value: '16' },\n                    { label: 'ds', value: '2' },\n                ],\n            },\n            {\n                experiment: '13C{1H}_CSE_LL',\n                parameters: [\n                    { label: 'd1', value: '2.5' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '115' },\n                    { label: 'sw', value: '282' },\n                    { label: 'ns', value: '128' },\n                    { label: 'ds', value: '4' },\n                ],\n            },\n            {\n                experiment: 'DEPT135',\n                parameters: [\n                    { label: 'd1', value: '2' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '115' },\n                    { label: 'sw', value: '282' },\n                    { label: 'ns', value: '128' },\n                    { label: 'ds', value: '8' },\n                ],\n            },\n            {\n                experiment: '13C_APT',\n                parameters: [\n                    { label: 'd1', value: '2' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '100' },\n                    { label: 'sw', value: '282' },\n                    { label: 'ns', value: '256' },\n                    { label: 'ds', value: '4' },\n                    { label: 'cnst2', value: '145' },\n                ],\n            },\n            {\n                experiment: '1H_gradsup',\n                parameters: [\n                    { label: 'd1', value: '2' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '4.7' },\n                    { label: 'sw', value: '24' },\n                    { label: 'ns', value: '32' },\n                    { label: 'ds', value: '26' },\n                ],\n            },\n            {\n                experiment: 'COSY_NUS_CSE_LL',\n                parameters: [\n                    { label: 'd1', value: '1.5' },\n                    { label: 'td', value: '2k' },\n                    { label: 'o1p', value: '6.5' },\n                    { label: 'sw', value: '15' },\n                    { label: 'ns', value: '4' },\n                    { label: 'ds', value: '16' },\n                ],\n            },\n            {\n                experiment: 'HSQCed_NUS_CSE_LL',\n                parameters: [\n                    { label: 'd1', value: '1.2' },\n                    { label: 'td', value: '2k' },\n                    { label: 'o1p', value: '6.5' },\n                    { label: 'sw', value: '15' },\n                    { label: 'ns', value: '4' },\n                    { label: 'ds', value: '16' },\n                    { label: 'cnst2', value: '145' },\n                ],\n            },\n            {\n                experiment: 'HMBC_NUS_CSE_LL',\n                parameters: [\n                    { label: 'd1', value: '1.5' },\n                    { label: 'td', value: '1k' },\n                    { label: 'o1p', value: '6.5' },\n                    { label: 'sw', value: '15' },\n                    { label: 'ns', value: '8' },\n                    { label: 'ds', value: '16' },\n                    { label: 'cnst6', value: '120' },\n                    { label: 'cnst7', value: '170' },\n                    { label: 'cnst13', value: '8' },\n                ],\n            },\n            {\n                experiment: 'NOESY',\n                parameters: [\n                    { label: 'd1', value: '2' },\n                    { label: 'td', value: '2k' },\n                    { label: 'o1p', value: '6.5' },\n                    { label: 'sw', value: '15' },\n                    { label: 'ns', value: '32' },\n                    { label: 'ds', value: '16' },\n                    { label: 'd8', value: '0.3' },\n                ],\n            },\n            {\n                experiment: '31P{1H}',\n                parameters: [\n                    { label: 'd1', value: '2' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '0' },\n                    { label: 'sw', value: '400' },\n                    { label: 'ns', value: '256' },\n                    { label: 'ds', value: '4' },\n                ],\n            },\n            {\n                experiment: '11B{1H}',\n                parameters: [\n                    { label: 'd1', value: '2' },\n                    { label: 'td', value: '64k' },\n                    { label: 'o1p', value: '0' },\n                    { label: 'sw', value: '300' },\n                    { label: 'ns', value: '256' },\n                    { label: 'ds', value: '4' },\n                ],\n            },\n            {\n                experiment: '13C{1H}_POLYMER',\n                parameters: [\n                    { label: 'd1', value: '0.7' },\n                    { label: 'td', value: '16k' },\n                    { label: 'o1p', value: '115' },\n                    { label: 'sw', value: '282' },\n                    { label: 'ns', value: '10k' },\n                    { label: 'ds', value: '4' },\n                ],\n            },\n            {\n                experiment: '13C{1H}-APT-POLY',\n                parameters: [\n                    { label: 'd1', value: '0.7' },\n                    { label: 'td', value: '16k' },\n                    { label: 'o1p', value: '115' },\n                    { label: 'sw', value: '282' },\n                    { label: 'ns', value: '10k' },\n                    { label: 'ds', value: '4' },\n                    { label: 'cnst2', value: '145' },\n                ],\n            },\n            {\n                experiment: 'DEPT135-POLYMER',\n                parameters: [\n                    { label: 'd1', value: '0.75' },\n                    { label: 'td', value: '16k' },\n                    { label: 'o1p', value: '115' },\n                    { label: 'sw', value: '282' },\n                    { label: 'ns', value: '2500' },\n                    { label: 'ds', value: '8' },\n                ],\n            },\n        ],\n    },\n    instrument2: {\n        solventMapping: {\n            CDCl3: 'Chloroform-d',\n            'DMSO-d6': 'Dimethyl sulfoxide-d6',\n        },\n        defaultExperiments: [\n            { key: '1h', isPolymer: false, experiment: 'H1 NMR' },\n            { key: '13c', isPolymer: false, experiment: 'C13 NMR' },\n            { key: 'hsqc', isPolymer: false, experiment: 'HSQC' },\n        ],\n        experiments: [\n            {\n                experiment: 'H1 NMR',\n                parameters: [\n                    { label: 'd1', value: '' },\n                    { label: 'number of scans', value: '' },\n                ],\n            },\n            {\n                experiment: 'C13 NMR',\n                parameters: [\n                    { label: 'ds', value: '' },\n                    { label: 'ns', value: '' },\n                    { label: 'd1', value: '' },\n                ],\n            },\n            {\n                experiment: 'HSQC',\n                parameters: [],\n            },\n        ],\n    },\n};\n//# sourceMappingURL=instruments.js.map","import { instruments as originalInstruments } from \"../instruments.js\";\n/**\n * This method not only retrieve the list of instruments but also based on the user\n * request set some active experiments for all the instruments\n * @param preferences\n * @param request\n * @returns\n */\nexport function getInstruments(request) {\n    if (!request) {\n        return structuredClone(originalInstruments);\n    }\n    const isPolymer = request.analysis.data.isPolymer;\n    const requestedExperiments = new Set(Object.entries(request.analysis.data.experiments)\n        .filter(([_, value]) => value === true)\n        .map(([key, _]) => key));\n    console.log({ isPolymer, requestedExperiments });\n    const instruments = structuredClone(originalInstruments);\n    for (const instrumentKey in instruments) {\n        const instrument = instruments[String(instrumentKey)];\n        const selectedExperiments = new Set(instrument.defaultExperiments\n            .filter((exp) => {\n            return (exp.isPolymer === isPolymer && requestedExperiments.has(exp.key));\n        })\n            .map((exp) => exp.experiment));\n        for (const experiment of instrument.experiments) {\n            if (selectedExperiments.has(experiment.experiment)) {\n                experiment.enabled = true;\n            }\n            else {\n                experiment.enabled = false;\n            }\n        }\n    }\n    return instruments;\n}\n//# sourceMappingURL=getInstruments.js.map","/**\n * Generate iconNMR text file from requests\n * @param requests - array of PlateRequest objects\n * @param options - options for generating the file\n * @returns iconNMR text file\n */\nexport function generateIconNMRFile(requests, options = {}) {\n    const { eol = '\\r\\n', deleteExistingHolder = false, autoSubmit = false, } = options;\n    const textFile = [];\n    for (const request of requests) {\n        let experimentNumberCounter = 1;\n        const { holder } = request;\n        if (deleteExistingHolder) {\n            textFile.push(`USER ${request.user}`, `HOLDER ${holder}`, 'DELETE'); // this is required to delete already existing entries\n        }\n        textFile.push(`USER ${request.user}`, `HOLDER ${holder}`);\n        if (!autoSubmit)\n            textFile.push('NO_SUBMIT');\n        textFile.push(`NAME ${request.name}`, `TITLE ${request.title}`);\n        for (const experiment of request.experiments) {\n            let experimentNumber = experiment.experimentNumber || experimentNumberCounter++;\n            textFile.push(`EXPNO ${experimentNumber++}`, `SOLVENT ${experiment.solvent}`, `EXPERIMENT ${experiment.experiment}`);\n            if (experiment.parameters && experiment.parameters.length > 0) {\n                const parameters = [];\n                for (const parameter of experiment.parameters) {\n                    parameters.push(parameter.label, parameter.value);\n                }\n                textFile.push(`PARAMETERS ${parameters.join(',')}`);\n            }\n        }\n        textFile.push('');\n    }\n    return textFile.join(eol);\n}\n//# sourceMappingURL=generateIconNMRFile.js.map","import { generateIconNMRFile } from 'screening';\nexport function updateIconNMR(form) {\n    const { experiments, iconNMROptions } = form;\n    const { user, name, title, holder, solvent, deleteExistingHolder, autoSubmit, } = iconNMROptions;\n    const data = {\n        user,\n        name,\n        title,\n        holder,\n        experiments: [],\n    };\n    for (const experiment of experiments) {\n        const parameters = [];\n        for (const key in experiment.parameters) {\n            parameters.push({ label: key, value: experiment.parameters[key] });\n        }\n        data.experiments.push({\n            experiment: experiment.name,\n            solvent,\n            parameters,\n        });\n    }\n    form.iconNMR = generateIconNMRFile([data], {\n        deleteExistingHolder,\n        autoSubmit,\n    });\n}\n//# sourceMappingURL=updateIconNMR.js.map","/* eslint-disable unicorn/prefer-structured-clone */\nimport { fillForm } from './fillForm.js';\nimport { getForm } from \"./getForm.js\";\nimport { getInstruments } from \"./getInstruments.js\";\nimport { updateIconNMR } from \"./updateIconNMR.js\";\nexport class ExperimentForm {\n    document;\n    id;\n    html;\n    instrument = null;\n    experiments = [];\n    iconNMR;\n    iconNMROptions;\n    onFormChange;\n    constructor(document, options = {}) {\n        this.document = document;\n        const form = getForm(options);\n        this.id = options.id ?? form.id;\n        this.html = form.html;\n        this.iconNMR = '';\n        this.iconNMROptions = {\n            user: 'defaultUser',\n            name: 'defaultName',\n            title: 'defaultTitle',\n            holder: 0,\n            solvent: 'defaultSolvent',\n            deleteExistingHolder: false,\n            autoSubmit: false,\n        };\n        updateIconNMR(this);\n        this.onFormChange = (formData) => {\n            this.instrument = formData.instrument;\n            this.experiments = JSON.parse(JSON.stringify(formData.experiments)).filter((experiment) => experiment.enabled);\n            updateIconNMR(this);\n            if (options.onFormChange) {\n                options.onFormChange(formData);\n            }\n            else {\n                console.log('Form changed:', formData);\n            }\n        };\n    }\n    updateIconNMROptions(options) {\n        this.iconNMROptions = options;\n        updateIconNMR(this);\n    }\n    fillForm(request) {\n        const instruments = getInstruments(request);\n        console.log(instruments);\n        fillForm(this, instruments);\n    }\n}\n//# sourceMappingURL=ExperimentForm.js.map"],"names":["collectFormData","form","formData","experimentsDiv","document","querySelector","id","activeTab","instrumentId","dataset","instrument","experiments","querySelectorAll","exp","checkbox","experimentData","name","experiment","enabled","checked","parameters","input","label","value","push","createExperimentElement","div","createElement","className","header","type","textContent","style","cursor","append","paramsDiv","display","param","paramDiv","paramLabel","createTabContent","instrumentData","content","switchTab","tab","classList","toggle","onFormChange","fillForm","instruments","tabsContainer","formContainer","innerHTML","instrumentIds","Object","keys","index","entries","add","addEventListener","e","target","contains","closest","currentTarget","tagName","experimentItem","checkboxInItem","click","params","getStyle","getForm","options","crypto","randomUUID","html","instrument1","solventMapping","CDCl3","defaultExperiments","key","isPolymer","instrument2","getInstruments","request","structuredClone","originalInstruments","analysis","data","requestedExperiments","Set","filter","_","map","console","log","instrumentKey","String","selectedExperiments","has","generateIconNMRFile","requests","eol","deleteExistingHolder","autoSubmit","textFile","experimentNumberCounter","holder","user","title","experimentNumber","solvent","length","parameter","join","updateIconNMR","iconNMROptions","iconNMR","ExperimentForm","constructor","JSON","parse","stringify","updateIconNMROptions"],"mappings":"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","x_google_ignoreList":[5]}