{"version":3,"file":"jena-utilities.umd.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}\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]}