{"version":3,"sources":["jsdelivr-header.js","/npm/sequential-workflow-editor@0.14.8/lib/esm/index.js"],"names":[],"mappings":"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","file":"/npm/sequential-workflow-editor@0.14.8/lib/esm/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/sequential-workflow-editor@0.14.8/lib/esm/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { SimpleEvent, DefaultValueContext, GeneratedStringContext, stringDictionaryValueModelId, sequenceValueModelId, branchesValueModelId, ValueContext, PropertyValidatorContext, defaultI18n, ModelActivator, DefinitionValidator, DefinitionContext, StepValidatorContext } from 'sequential-workflow-editor-model';\nimport { DefinitionWalker } from 'sequential-workflow-model';\n\nclass Html {\r\n    static attrs(element, attributes) {\r\n        Object.keys(attributes).forEach(name => {\r\n            const value = attributes[name];\r\n            element.setAttribute(name, typeof value === 'string' ? value : value.toString());\r\n        });\r\n    }\r\n    static element(name, attributes) {\r\n        const element = document.createElement(name);\r\n        if (attributes) {\r\n            Html.attrs(element, attributes);\r\n        }\r\n        return element;\r\n    }\r\n    static toggleClass(element, isEnabled, className) {\r\n        if (isEnabled) {\r\n            element.classList.add(className);\r\n        }\r\n        else {\r\n            element.classList.remove(className);\r\n        }\r\n    }\r\n}\n\nconst ns = 'http://www.w3.org/2000/svg';\r\nclass Icons {\r\n    static createSvg(icon, cls) {\r\n        const svg = document.createElementNS(ns, 'svg');\r\n        svg.setAttribute('viewBox', '0 -960 960 960');\r\n        svg.classList.add(cls);\r\n        const path = document.createElementNS(ns, 'path');\r\n        path.setAttribute('d', icon);\r\n        svg.appendChild(path);\r\n        return svg;\r\n    }\r\n}\r\nIcons.help = 'M419-334q1-87 20.5-129t65.5-76q39-31 57.5-61.109T581-666q0-39-25.5-64.5T486-756q-46 0-75 26t-43 67l-120-52q27-74 87-120.5T485.756-882q109.228 0 168.236 62.148Q713-757.703 713-669q0 60-21 105.5T625-478q-46 40-57 65.5T557-334H419Zm66.788 282Q447-52 420-79t-27-65.496q0-38.495 26.92-65.5Q446.841-237 485.92-237 525-237 552-209.996q27 27.005 27 65.5Q579-106 551.788-79q-27.213 27-66 27Z';\r\nIcons.close = 'm249-183-66-66 231-231-231-231 66-66 231 231 231-231 66 66-231 231 231 231-66 66-231-231-231 231Z';\r\nIcons.add = 'M433-183v-250H183v-94h250v-250h94v250h250v94H527v250h-94Z';\n\nfunction buttonComponent(label, configuration) {\r\n    function onClicked(e) {\r\n        e.preventDefault();\r\n        onClick.forward();\r\n    }\r\n    function setIcon(d) {\r\n        if (icon) {\r\n            icon.getElementsByTagName('path')[0].setAttribute('d', d);\r\n        }\r\n        else {\r\n            throw new Error('This button does not have icon');\r\n        }\r\n    }\r\n    function setLabel(label) {\r\n        if (configuration === null || configuration === void 0 ? void 0 : configuration.icon) {\r\n            throw new Error('Cannot change label on button with icon');\r\n        }\r\n        else {\r\n            view.innerText = label;\r\n        }\r\n    }\r\n    const onClick = new SimpleEvent();\r\n    let className = 'swe-button';\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.size) {\r\n        className += ` swe-button-${configuration.size}`;\r\n    }\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.theme) {\r\n        className += ` swe-button-${configuration.theme}`;\r\n    }\r\n    const view = Html.element('button', {\r\n        class: className,\r\n        title: label,\r\n        'aria-label': label\r\n    });\r\n    let icon;\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.icon) {\r\n        icon = Icons.createSvg(configuration.icon, 'swe-button-icon');\r\n        view.appendChild(icon);\r\n    }\r\n    else {\r\n        view.innerText = label;\r\n    }\r\n    view.addEventListener('click', onClicked, false);\r\n    return {\r\n        view,\r\n        onClick,\r\n        setIcon,\r\n        setLabel\r\n    };\r\n}\n\nfunction validationErrorComponent() {\r\n    const view = Html.element('div', {\r\n        class: 'swe-validation-error'\r\n    });\r\n    const onIsHiddenChanged = new SimpleEvent();\r\n    let child = null;\r\n    function isHidden() {\r\n        return child === null;\r\n    }\r\n    function setError(error) {\r\n        const oldState = isHidden();\r\n        if (child) {\r\n            view.removeChild(child);\r\n            child = null;\r\n        }\r\n        if (error) {\r\n            child = Html.element('div', {\r\n                class: 'swe-validation-error-text'\r\n            });\r\n            child.textContent = error;\r\n            view.appendChild(child);\r\n        }\r\n        const newState = isHidden();\r\n        if (oldState !== newState) {\r\n            onIsHiddenChanged.forward(newState);\r\n        }\r\n    }\r\n    function setDefaultError(result) {\r\n        setError(result && result['$']);\r\n    }\r\n    return {\r\n        onIsHiddenChanged,\r\n        view,\r\n        isHidden,\r\n        setError,\r\n        setDefaultError\r\n    };\r\n}\n\nfunction dynamicListComponent(initialItems, itemComponentFactory, context, configuration) {\r\n    const onChanged = new SimpleEvent();\r\n    const items = [...initialItems];\r\n    function forward() {\r\n        onChanged.forward([...items]);\r\n    }\r\n    function onItemChanged(newItem, index) {\r\n        items[index] = newItem;\r\n        forward();\r\n        validateList();\r\n    }\r\n    function onItemDeleted(index) {\r\n        if (configuration && configuration.canDelete) {\r\n            const error = configuration.canDelete(items[index]);\r\n            if (error) {\r\n                window.alert(error);\r\n                return;\r\n            }\r\n        }\r\n        items.splice(index, 1);\r\n        forward();\r\n        reloadList();\r\n    }\r\n    function add(item) {\r\n        items.push(item);\r\n        forward();\r\n        reloadList();\r\n    }\r\n    function forEach(callback) {\r\n        components.forEach(callback);\r\n    }\r\n    function reloadList() {\r\n        if (emptyRow) {\r\n            view.removeChild(emptyRow);\r\n            emptyRow = null;\r\n        }\r\n        components.forEach(component => view.removeChild(component.view));\r\n        components.length = 0;\r\n        if (items.length > 0) {\r\n            items.forEach((item, index) => {\r\n                const component = itemComponentFactory(item, context.i18n, index);\r\n                component.onItemChanged.subscribe(item => onItemChanged(item, index));\r\n                component.onDeleteClicked.subscribe(() => onItemDeleted(index));\r\n                view.insertBefore(component.view, validation.view);\r\n                components.push(component);\r\n            });\r\n        }\r\n        else if (configuration === null || configuration === void 0 ? void 0 : configuration.emptyMessage) {\r\n            emptyRow = Html.element('div', {\r\n                class: 'swe-dynamic-list-empty-row'\r\n            });\r\n            emptyRow.innerText = configuration.emptyMessage;\r\n            view.insertBefore(emptyRow, validation.view);\r\n        }\r\n        validateList();\r\n    }\r\n    function validateList() {\r\n        const result = context.validate();\r\n        for (let i = 0; i < components.length; i++) {\r\n            components[i].validate(result ? result[i] : null);\r\n        }\r\n        validation.setError(result && result.$ ? result.$ : null);\r\n    }\r\n    let emptyRow = null;\r\n    const view = Html.element('div', {\r\n        class: 'swe-dynamic-list'\r\n    });\r\n    const validation = validationErrorComponent();\r\n    view.appendChild(validation.view);\r\n    const components = [];\r\n    reloadList();\r\n    return {\r\n        onChanged,\r\n        view,\r\n        add,\r\n        forEach\r\n    };\r\n}\n\nfunction appendMultilineText(target, text) {\r\n    const lines = text.split(/\\r?\\n/g);\r\n    for (let i = 0; i < lines.length; i++) {\r\n        if (i > 0) {\r\n            target.appendChild(document.createElement('br'));\r\n        }\r\n        const line = document.createTextNode(lines[i]);\r\n        target.appendChild(line);\r\n    }\r\n}\n\nfunction filterValueTypes(types, allowedTypes) {\r\n    if (!allowedTypes) {\r\n        return types;\r\n    }\r\n    const result = [];\r\n    for (const type of types) {\r\n        if (allowedTypes.includes(type)) {\r\n            result.push(type);\r\n        }\r\n    }\r\n    return result;\r\n}\n\nclass StackedSimpleEvent {\r\n    constructor() {\r\n        this.event = new SimpleEvent();\r\n        this.stack = [];\r\n        this.to = null;\r\n    }\r\n    push(value) {\r\n        this.stack.push(value);\r\n        if (this.to) {\r\n            return;\r\n        }\r\n        this.to = setTimeout(() => {\r\n            this.to = null;\r\n            this.event.forward(this.stack);\r\n            this.stack.length = 0;\r\n        });\r\n    }\r\n    subscribe(listener) {\r\n        this.event.subscribe(listener);\r\n    }\r\n}\n\nfunction formatVariableName(name) {\r\n    return `$${name}`;\r\n}\r\nfunction formatVariableNameWithType(name, type) {\r\n    return `${formatVariableName(name)} (${type})`;\r\n}\n\nfunction inputComponent(startValue, configuration) {\r\n    var _a;\r\n    const onChanged = new SimpleEvent();\r\n    function setValue(value) {\r\n        view.value = value;\r\n    }\r\n    function getValue() {\r\n        return view.value;\r\n    }\r\n    function setReadonly(readonly) {\r\n        if (readonly) {\r\n            view.setAttribute('readonly', 'readonly');\r\n        }\r\n        else {\r\n            view.removeAttribute('readonly');\r\n        }\r\n    }\r\n    const view = Html.element('input', {\r\n        class: 'swe-input swe-stretched',\r\n        type: (_a = configuration === null || configuration === void 0 ? void 0 : configuration.type) !== null && _a !== void 0 ? _a : 'text'\r\n    });\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.placeholder) {\r\n        view.setAttribute('placeholder', configuration.placeholder);\r\n    }\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.isReadonly) {\r\n        setReadonly(true);\r\n    }\r\n    view.value = startValue;\r\n    view.addEventListener('input', () => {\r\n        onChanged.forward(view.value);\r\n    });\r\n    return {\r\n        view,\r\n        onChanged,\r\n        setValue,\r\n        getValue,\r\n        setReadonly\r\n    };\r\n}\n\nfunction prependedInputComponent(prefix, component) {\r\n    const view = Html.element('div', {\r\n        class: 'swe-prepended-input'\r\n    });\r\n    const pref = Html.element('span', {\r\n        class: 'swe-prepended-input-prefix'\r\n    });\r\n    pref.innerText = prefix;\r\n    view.appendChild(pref);\r\n    view.appendChild(component.view);\r\n    return Object.assign(Object.assign({}, component), { view });\r\n}\n\nfunction rowComponent(elements, configuration) {\r\n    let viewClass = 'swe-row';\r\n    if (configuration && configuration.class) {\r\n        viewClass += ' ' + configuration.class;\r\n    }\r\n    const view = Html.element('div', {\r\n        class: viewClass\r\n    });\r\n    elements.forEach((element, index) => {\r\n        const grow = configuration && configuration.cols ? configuration.cols[index] : 1;\r\n        let className = 'swe-col';\r\n        if (grow) {\r\n            className += ` swe-col-${grow}`;\r\n        }\r\n        const col = Html.element('div', {\r\n            class: className\r\n        });\r\n        col.appendChild(element);\r\n        view.appendChild(col);\r\n    });\r\n    return {\r\n        view\r\n    };\r\n}\n\nfunction selectComponent(configuration) {\r\n    function setValues(values) {\r\n        options.forEach(option => view.removeChild(option));\r\n        options.length = 0;\r\n        for (let i = 0; i < values.length; i++) {\r\n            const option = document.createElement('option');\r\n            option.value = values[i];\r\n            option.innerText = values[i];\r\n            view.appendChild(option);\r\n            options.push(option);\r\n        }\r\n    }\r\n    function getSelectedIndex() {\r\n        return view.selectedIndex;\r\n    }\r\n    function selectIndex(index) {\r\n        view.selectedIndex = index;\r\n    }\r\n    function onSelectChanged() {\r\n        onSelected.forward(getSelectedIndex());\r\n    }\r\n    const onSelected = new SimpleEvent();\r\n    let className = 'swe-select';\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.size) {\r\n        className += ` swe-select-${configuration.size}`;\r\n    }\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.stretched) {\r\n        className += ' swe-stretched';\r\n    }\r\n    const view = Html.element('select', {\r\n        class: className\r\n    });\r\n    const options = [];\r\n    view.addEventListener('change', onSelectChanged, false);\r\n    return {\r\n        view,\r\n        setValues,\r\n        getSelectedIndex,\r\n        selectIndex,\r\n        onSelected\r\n    };\r\n}\n\nfunction textareaComponent(startValue, configuration) {\r\n    var _a, _b;\r\n    const onChanged = new SimpleEvent();\r\n    function setValue(value) {\r\n        view.value = value;\r\n    }\r\n    function getValue() {\r\n        return view.value;\r\n    }\r\n    const view = Html.element('textarea', {\r\n        class: 'swe-textarea swe-stretched',\r\n        rows: (_b = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.rows) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '4'\r\n    });\r\n    if (configuration === null || configuration === void 0 ? void 0 : configuration.placeholder) {\r\n        view.setAttribute('placeholder', configuration.placeholder);\r\n    }\r\n    view.value = startValue;\r\n    view.addEventListener('input', () => {\r\n        onChanged.forward(view.value);\r\n    });\r\n    return {\r\n        view,\r\n        onChanged,\r\n        setValue,\r\n        getValue\r\n    };\r\n}\n\nfunction valueEditorContainerComponent(elements) {\r\n    const view = document.createElement('div');\r\n    view.className = 'swe-value-editor-container';\r\n    elements.forEach(element => view.appendChild(element));\r\n    return { view };\r\n}\n\nconst stringValueEditorId = 'string';\r\nconst defaultMultiline = 4;\r\nfunction createStringValueEditor(configuration) {\r\n    return (context) => {\r\n        function validate() {\r\n            validation.setDefaultError(context.validate());\r\n        }\r\n        const startValue = context.getValue();\r\n        const multiline = context.model.configuration.multiline;\r\n        const input = multiline\r\n            ? textareaComponent(startValue, {\r\n                rows: multiline === true ? defaultMultiline : multiline\r\n            })\r\n            : inputComponent(startValue);\r\n        input.onChanged.subscribe(value => {\r\n            context.setValue(value);\r\n            validate();\r\n        });\r\n        const row = rowComponent([input.view], {\r\n            class: configuration === null || configuration === void 0 ? void 0 : configuration.class\r\n        });\r\n        const validation = validationErrorComponent();\r\n        const container = valueEditorContainerComponent([row.view, validation.view]);\r\n        validate();\r\n        return {\r\n            view: container.view\r\n        };\r\n    };\r\n}\n\nclass StringValueEditorEditorExtension {\r\n    static create(configuration) {\r\n        return new StringValueEditorEditorExtension(configuration);\r\n    }\r\n    constructor(configuration) {\r\n        this.configuration = configuration;\r\n        this.valueEditors = [\r\n            {\r\n                editorId: this.configuration.editorId,\r\n                factory: createStringValueEditor(this.configuration)\r\n            }\r\n        ];\r\n    }\r\n}\n\nconst numberValueEditorId = 'number';\r\nfunction numberValueEditor(context) {\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    const startValue = String(context.getValue());\r\n    const input = inputComponent(startValue, {\r\n        type: 'number'\r\n    });\r\n    input.onChanged.subscribe(value => {\r\n        const num = value.length > 0 ? Number(value) : NaN;\r\n        context.setValue(num);\r\n        validate();\r\n    });\r\n    const row = rowComponent([input.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nfunction variableDefinitionItemComponent(variable, context) {\r\n    function validate(error) {\r\n        validation.setError(error);\r\n    }\r\n    function onTypeChanged(index) {\r\n        const type = valueTypes[index];\r\n        variable.type = type;\r\n        onItemChanged.forward(variable);\r\n    }\r\n    function onNameChanged(value) {\r\n        variable.name = value;\r\n        onItemChanged.forward(variable);\r\n    }\r\n    const onItemChanged = new SimpleEvent();\r\n    const onDeleteClicked = new SimpleEvent();\r\n    const view = Html.element('div', {\r\n        class: 'swe-variable-definition-item'\r\n    });\r\n    const input = prependedInputComponent('$', inputComponent(variable.name, {\r\n        placeholder: context.i18n('variableDefinitions.namePlaceholder', 'Variable name')\r\n    }));\r\n    input.onChanged.subscribe(onNameChanged);\r\n    const valueTypes = filterValueTypes(context.getValueTypes(), context.model.configuration.valueTypes);\r\n    const typeSelect = selectComponent({\r\n        stretched: true\r\n    });\r\n    typeSelect.setValues(valueTypes);\r\n    typeSelect.selectIndex(valueTypes.findIndex(type => type === variable.type));\r\n    typeSelect.onSelected.subscribe(onTypeChanged);\r\n    const deleteButton = buttonComponent(context.i18n('variableDefinitions.delete', 'Delete'), {\r\n        size: 'small',\r\n        theme: 'secondary',\r\n        icon: Icons.close\r\n    });\r\n    deleteButton.onClick.subscribe(() => onDeleteClicked.forward());\r\n    const validation = validationErrorComponent();\r\n    const row = rowComponent([input.view, typeSelect.view, deleteButton.view], {\r\n        cols: [2, 1, null]\r\n    });\r\n    view.appendChild(row.view);\r\n    view.appendChild(validation.view);\r\n    return {\r\n        view,\r\n        onItemChanged,\r\n        onDeleteClicked,\r\n        validate\r\n    };\r\n}\n\nconst variableDefinitionsValueEditorId = 'variableDefinitions';\r\nfunction variableDefinitionsValueEditor(context) {\r\n    function onChanged(variables) {\r\n        context.setValue({\r\n            variables\r\n        });\r\n    }\r\n    function onAddClicked() {\r\n        list.add({\r\n            name: '',\r\n            type: context.getValueTypes()[0]\r\n        });\r\n    }\r\n    const list = dynamicListComponent(context.getValue().variables, item => variableDefinitionItemComponent(item, context), context, {\r\n        emptyMessage: context.i18n('variableDefinitions.noVariablesDefined', 'No variables defined')\r\n    });\r\n    list.onChanged.subscribe(onChanged);\r\n    const addButton = buttonComponent(context.i18n('variableDefinitions.newVariable', 'New variable'), {\r\n        size: 'small',\r\n        icon: Icons.add\r\n    });\r\n    addButton.onClick.subscribe(onAddClicked);\r\n    const container = valueEditorContainerComponent([list.view]);\r\n    return {\r\n        view: container.view,\r\n        controlView: addButton.view\r\n    };\r\n}\n\nfunction filterVariablesByType(variables, valueType) {\r\n    if (!valueType) {\r\n        return variables;\r\n    }\r\n    const filter = Array.isArray(valueType)\r\n        ? (variable) => valueType.includes(variable.type)\r\n        : (variable) => variable.type === valueType;\r\n    return variables.filter(filter);\r\n}\n\nconst nullableVariableValueEditorId = 'nullableVariable';\r\nfunction nullableVariableValueEditor(context) {\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    function onChanged(selectedIndex) {\r\n        if (selectedIndex === 0) {\r\n            context.setValue(null);\r\n        }\r\n        else {\r\n            context.setValue({\r\n                name: variables[selectedIndex - 1].name\r\n            });\r\n        }\r\n        validate();\r\n    }\r\n    const startValue = context.getValue();\r\n    const variables = filterVariablesByType(context.getVariables(), context.model.configuration.valueType);\r\n    const select = selectComponent({\r\n        stretched: true\r\n    });\r\n    select.setValues([\r\n        context.i18n('nullableVariable.selectType', '- Select: :type -', {\r\n            type: context.model.configuration.valueType\r\n        }),\r\n        ...variables.map(variable => formatVariableNameWithType(variable.name, variable.type))\r\n    ]);\r\n    if (startValue) {\r\n        select.selectIndex(variables.findIndex(variable => variable.name === startValue.name) + 1);\r\n    }\r\n    else {\r\n        select.selectIndex(0);\r\n    }\r\n    select.onSelected.subscribe(index => onChanged(index));\r\n    const row = rowComponent([select.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nconst nullableVariableDefinitionValueEditorId = 'nullableVariableDefinition';\r\nfunction nullableVariableDefinitionValueEditor(context) {\r\n    var _a;\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    const startValue = ((_a = context.getValue()) === null || _a === void 0 ? void 0 : _a.name) || '';\r\n    const input = prependedInputComponent('$', inputComponent(startValue));\r\n    input.onChanged.subscribe(value => {\r\n        context.setValue(value\r\n            ? {\r\n                name: value,\r\n                type: context.model.configuration.valueType\r\n            }\r\n            : null);\r\n        validate();\r\n    });\r\n    const row = rowComponent([input.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nfunction anyVariableItemComponent(variable, i18n) {\r\n    function validate(error) {\r\n        validation.setError(error);\r\n    }\r\n    const onDeleteClicked = new SimpleEvent();\r\n    const view = Html.element('div');\r\n    const name = Html.element('span');\r\n    name.innerText = formatVariableNameWithType(variable.name, variable.type);\r\n    const deleteButton = buttonComponent(i18n('anyVariable.delete', 'Delete'), {\r\n        size: 'small',\r\n        theme: 'secondary',\r\n        icon: Icons.close\r\n    });\r\n    deleteButton.onClick.subscribe(() => onDeleteClicked.forward());\r\n    const validation = validationErrorComponent();\r\n    const row = rowComponent([name, deleteButton.view], {\r\n        cols: [1, null]\r\n    });\r\n    view.appendChild(row.view);\r\n    view.appendChild(validation.view);\r\n    return {\r\n        view,\r\n        onDeleteClicked,\r\n        onItemChanged: new SimpleEvent(),\r\n        validate\r\n    };\r\n}\n\nfunction anyVariableSelectorComponent(context) {\r\n    var _a;\r\n    function getSelectedValueType() {\r\n        return valueTypes[typeSelect.getSelectedIndex()];\r\n    }\r\n    function getSelectedVariableName() {\r\n        const index = variableSelect.getSelectedIndex();\r\n        return variables && index > 0 ? variables[index - 1].name : null;\r\n    }\r\n    function reloadVariableSelector() {\r\n        variables = filterVariablesByType(context.getVariables(), getSelectedValueType());\r\n        const variableNames = variables.map(variable => formatVariableName(variable.name));\r\n        variableSelect.setValues([context.i18n('anyVariable.select', '- Select -'), ...variableNames]);\r\n    }\r\n    function onAddClicked() {\r\n        const type = getSelectedValueType();\r\n        const name = getSelectedVariableName();\r\n        if (name) {\r\n            onAdded.forward({ type, name });\r\n            variableSelect.selectIndex(0);\r\n        }\r\n    }\r\n    const onAdded = new SimpleEvent();\r\n    const valueTypes = (_a = context.model.configuration.valueTypes) !== null && _a !== void 0 ? _a : context.getValueTypes();\r\n    const typeSelect = selectComponent({\r\n        stretched: true\r\n    });\r\n    typeSelect.setValues(valueTypes);\r\n    typeSelect.onSelected.subscribe(reloadVariableSelector);\r\n    const variableSelect = selectComponent({\r\n        stretched: true\r\n    });\r\n    let variables = null;\r\n    const addButton = buttonComponent(context.i18n('anyVariable.addVariable', 'Add variable'), {\r\n        icon: Icons.add\r\n    });\r\n    addButton.onClick.subscribe(onAddClicked);\r\n    const row = rowComponent([typeSelect.view, variableSelect.view, addButton.view], {\r\n        cols: [1, 1, null]\r\n    });\r\n    reloadVariableSelector();\r\n    return {\r\n        view: row.view,\r\n        onAdded\r\n    };\r\n}\n\nconst anyVariablesValueEditorId = 'anyVariables';\r\nfunction anyVariablesValueEditor(context) {\r\n    function onChanged(variables) {\r\n        context.setValue({\r\n            variables\r\n        });\r\n    }\r\n    function onNewAdded(newVariable) {\r\n        if (context.getValue().variables.some(v => v.name === newVariable.name)) {\r\n            // TODO: variable is already added, some message?\r\n            return;\r\n        }\r\n        list.add(newVariable);\r\n    }\r\n    const selector = anyVariableSelectorComponent(context);\r\n    selector.onAdded.subscribe(onNewAdded);\r\n    const list = dynamicListComponent(context.getValue().variables, anyVariableItemComponent, context, {\r\n        emptyMessage: context.i18n('anyVariables.noVariablesSelected', 'No variables selected')\r\n    });\r\n    list.onChanged.subscribe(onChanged);\r\n    const container = valueEditorContainerComponent([selector.view, list.view]);\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nconst dynamicValueEditorId = 'dynamic';\r\nfunction dynamicValueEditor(context, services) {\r\n    if (!context.model.subModels) {\r\n        throw new Error('subModels is required');\r\n    }\r\n    const subModels = context.model.subModels;\r\n    function reloadDependencies() {\r\n        if (editor && editor.reloadDependencies) {\r\n            editor.reloadDependencies();\r\n        }\r\n    }\r\n    function reloadEditor() {\r\n        if (editor) {\r\n            placeholder.removeChild(editor.view);\r\n            if (subControl) {\r\n                control.removeChild(subControl);\r\n                subControl = null;\r\n            }\r\n        }\r\n        const value = context.getValue();\r\n        const model = subModels.find(model => model.id === value.modelId);\r\n        if (!model || !model.id) {\r\n            throw new Error(`Model not found: ${value.modelId}`);\r\n        }\r\n        const childContext = context.createChildContext(model);\r\n        editor = services.valueEditorFactoryResolver.resolve(model.id, model.editorId)(childContext, services);\r\n        placeholder.appendChild(editor.view);\r\n        if (editor.controlView) {\r\n            subControl = Html.element('span', {\r\n                class: 'swe-dynamic-sub-control'\r\n            });\r\n            subControl.appendChild(editor.controlView);\r\n            control.appendChild(subControl);\r\n        }\r\n    }\r\n    function onTypeChanged() {\r\n        const newModel = subModels[subModelSelect.getSelectedIndex()];\r\n        const defaultValueContext = DefaultValueContext.create(services.activator, context.scopedPropertyContext.propertyContext);\r\n        const defaultValue = {\r\n            modelId: newModel.id,\r\n            value: newModel.getDefaultValue(defaultValueContext)\r\n        };\r\n        context.setValue(defaultValue);\r\n        reloadEditor();\r\n    }\r\n    const startValue = context.getValue();\r\n    const control = Html.element('div', {\r\n        class: 'swe-dynamic-control'\r\n    });\r\n    const subModelSelect = selectComponent({\r\n        size: 'small'\r\n    });\r\n    subModelSelect.setValues(context.model.subModels.map(model => {\r\n        return context.i18n(`dynamic.${model.id}.label`, model.label);\r\n    }));\r\n    subModelSelect.selectIndex(context.model.subModels.findIndex(model => model.id === startValue.modelId));\r\n    subModelSelect.onSelected.subscribe(onTypeChanged);\r\n    control.appendChild(subModelSelect.view);\r\n    const placeholder = Html.element('div', {\r\n        class: 'swe-dynamic-placeholder'\r\n    });\r\n    const container = valueEditorContainerComponent([placeholder]);\r\n    let editor = null;\r\n    let subControl = null;\r\n    reloadEditor();\r\n    return {\r\n        view: container.view,\r\n        controlView: control,\r\n        reloadDependencies\r\n    };\r\n}\n\nfunction createStepI18nPrefix(stepType) {\r\n    return stepType ? `step.${stepType}.property:` : 'root.property:';\r\n}\n\nconst choiceValueEditorId = 'choice';\r\nfunction choiceValueEditor(context) {\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    function onSelected(index) {\r\n        const value = choices[index];\r\n        context.setValue(value);\r\n        validate();\r\n    }\r\n    const select = selectComponent({\r\n        stretched: true\r\n    });\r\n    const stepType = context.tryGetStepType();\r\n    const i18nPrefix = createStepI18nPrefix(stepType);\r\n    const choices = context.model.configuration.choices;\r\n    const translatedChoices = choices.map(choice => {\r\n        const pathStr = context.model.path.toString();\r\n        const key = `${i18nPrefix}${pathStr}:choice:${choice}`;\r\n        return context.i18n(key, choice);\r\n    });\r\n    select.setValues(translatedChoices);\r\n    const startIndex = choices.indexOf(context.getValue());\r\n    select.selectIndex(startIndex);\r\n    select.onSelected.subscribe(onSelected);\r\n    const row = rowComponent([select.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nconst nullableAnyVariableValueEditorId = 'nullableAnyVariable';\r\nfunction nullableAnyVariableValueEditor(context) {\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    function onChanged(selectedIndex) {\r\n        if (selectedIndex === 0) {\r\n            context.setValue(null);\r\n        }\r\n        else {\r\n            const variable = variables[selectedIndex - 1];\r\n            context.setValue({\r\n                name: variable.name,\r\n                type: variable.type\r\n            });\r\n        }\r\n        validate();\r\n    }\r\n    const startValue = context.getValue();\r\n    const variables = filterVariablesByType(context.getVariables(), context.model.configuration.valueTypes);\r\n    const select = selectComponent({\r\n        stretched: true\r\n    });\r\n    const expectedTypes = context.model.configuration.valueTypes ? context.model.configuration.valueTypes.join(', ') : null;\r\n    const actionText = expectedTypes\r\n        ? context.i18n('nullableAnyVariable.selectTypes', '- Select: :types -', {\r\n            types: expectedTypes\r\n        })\r\n        : context.i18n('nullableAnyVariable.select', '- Select -');\r\n    select.setValues([actionText, ...variables.map(variable => formatVariableNameWithType(variable.name, variable.type))]);\r\n    if (startValue) {\r\n        select.selectIndex(variables.findIndex(variable => variable.name === startValue.name) + 1);\r\n    }\r\n    else {\r\n        select.selectIndex(0);\r\n    }\r\n    select.onSelected.subscribe(index => onChanged(index));\r\n    const row = rowComponent([select.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nconst booleanValueEditorId = 'boolean';\r\nfunction booleanValueEditor(context) {\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    function onSelected(index) {\r\n        context.setValue(index === 1);\r\n        validate();\r\n    }\r\n    const select = selectComponent({\r\n        stretched: true\r\n    });\r\n    select.setValues([context.i18n('boolean.false', 'False'), context.i18n('boolean.true', 'True')]);\r\n    select.selectIndex(context.getValue() ? 1 : 0);\r\n    select.onSelected.subscribe(onSelected);\r\n    const row = rowComponent([select.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view\r\n    };\r\n}\n\nconst generatedStringValueEditorId = 'generatedString';\r\nfunction generatedStringValueEditor(context) {\r\n    const generatedContext = GeneratedStringContext.create(context);\r\n    function validate() {\r\n        validation.setDefaultError(context.validate());\r\n    }\r\n    function reloadDependencies() {\r\n        generate();\r\n        validate();\r\n    }\r\n    function generate() {\r\n        const generated = context.model.configuration.generator(generatedContext);\r\n        if (input.getValue() !== generated) {\r\n            input.setValue(generated);\r\n            context.setValue(generated);\r\n        }\r\n    }\r\n    const startValue = context.getValue();\r\n    const input = inputComponent(startValue, {\r\n        isReadonly: true\r\n    });\r\n    const row = rowComponent([input.view]);\r\n    const validation = validationErrorComponent();\r\n    const container = valueEditorContainerComponent([row.view, validation.view]);\r\n    validate();\r\n    return {\r\n        view: container.view,\r\n        reloadDependencies\r\n    };\r\n}\n\nfunction stringDictionaryItemComponent(item, i18n) {\r\n    function validate(error) {\r\n        validation.setError(error);\r\n    }\r\n    function onChanged() {\r\n        onItemChanged.forward({ key: keyInput.getValue(), value: valueInput.getValue() });\r\n    }\r\n    const onItemChanged = new SimpleEvent();\r\n    const onDeleteClicked = new SimpleEvent();\r\n    const keyInput = inputComponent(item.key, {\r\n        placeholder: i18n('stringDictionary.key', 'Key')\r\n    });\r\n    keyInput.onChanged.subscribe(onChanged);\r\n    const valueInput = inputComponent(item.value, {\r\n        placeholder: i18n('stringDictionary.value', 'Value')\r\n    });\r\n    valueInput.onChanged.subscribe(onChanged);\r\n    const deleteButton = buttonComponent(i18n('stringDictionary.delete', 'Delete'), {\r\n        size: 'small',\r\n        theme: 'secondary',\r\n        icon: Icons.close\r\n    });\r\n    deleteButton.onClick.subscribe(onDeleteClicked.forward);\r\n    const row = rowComponent([keyInput.view, valueInput.view, deleteButton.view], {\r\n        cols: [2, 3, null]\r\n    });\r\n    const validation = validationErrorComponent();\r\n    const view = Html.element('div', {\r\n        class: 'swe-dictionary-item'\r\n    });\r\n    view.appendChild(row.view);\r\n    view.appendChild(validation.view);\r\n    return {\r\n        view,\r\n        onItemChanged,\r\n        onDeleteClicked,\r\n        validate\r\n    };\r\n}\n\nfunction stringDictionaryValueEditor(context) {\r\n    function onChanged(items) {\r\n        context.setValue({\r\n            items\r\n        });\r\n    }\r\n    function onAddClicked() {\r\n        list.add({\r\n            key: '',\r\n            value: ''\r\n        });\r\n    }\r\n    const list = dynamicListComponent(context.getValue().items, stringDictionaryItemComponent, context, {\r\n        emptyMessage: context.i18n('stringDictionary.noItems', 'No items')\r\n    });\r\n    list.onChanged.subscribe(onChanged);\r\n    const container = valueEditorContainerComponent([list.view]);\r\n    const addButton = buttonComponent(context.i18n('stringDictionary.addItem', 'Add item'), {\r\n        size: 'small',\r\n        icon: Icons.add\r\n    });\r\n    addButton.onClick.subscribe(onAddClicked);\r\n    return {\r\n        view: container.view,\r\n        controlView: addButton.view\r\n    };\r\n}\n\nfunction hiddenValueEditor() {\r\n    const container = valueEditorContainerComponent([]);\r\n    return {\r\n        view: container.view,\r\n        isHidden: () => true\r\n    };\r\n}\n\nconst defaultMap = {\r\n    [anyVariablesValueEditorId]: anyVariablesValueEditor,\r\n    [booleanValueEditorId]: booleanValueEditor,\r\n    [choiceValueEditorId]: choiceValueEditor,\r\n    [nullableAnyVariableValueEditorId]: nullableAnyVariableValueEditor,\r\n    [dynamicValueEditorId]: dynamicValueEditor,\r\n    [generatedStringValueEditorId]: generatedStringValueEditor,\r\n    [nullableVariableValueEditorId]: nullableVariableValueEditor,\r\n    [nullableVariableDefinitionValueEditorId]: nullableVariableDefinitionValueEditor,\r\n    [stringValueEditorId]: createStringValueEditor(),\r\n    [stringDictionaryValueModelId]: stringDictionaryValueEditor,\r\n    [numberValueEditorId]: numberValueEditor,\r\n    [variableDefinitionsValueEditorId]: variableDefinitionsValueEditor,\r\n    [sequenceValueModelId]: hiddenValueEditor,\r\n    [branchesValueModelId]: hiddenValueEditor\r\n};\r\nclass ValueEditorFactoryResolver {\r\n    static create(extensions) {\r\n        let map;\r\n        if (extensions) {\r\n            map = Object.assign({}, defaultMap);\r\n            extensions.forEach(extension => {\r\n                if (extension.valueEditors) {\r\n                    extension.valueEditors.forEach(e => (map[e.editorId] = e.factory));\r\n                }\r\n            });\r\n        }\r\n        else {\r\n            map = defaultMap;\r\n        }\r\n        return new ValueEditorFactoryResolver(map);\r\n    }\r\n    constructor(map) {\r\n        this.map = map;\r\n    }\r\n    resolve(valueModelId, editorId) {\r\n        const id = editorId !== null && editorId !== void 0 ? editorId : valueModelId;\r\n        const editor = this.map[id];\r\n        if (!editor) {\r\n            throw new Error(`Editor id ${id} is not supported`);\r\n        }\r\n        return editor;\r\n    }\r\n}\n\nfunction propertyValidationErrorComponent(validator, context) {\r\n    const validation = validationErrorComponent();\r\n    function validate() {\r\n        const error = validator.validate(context);\r\n        validation.setError(error);\r\n    }\r\n    validate();\r\n    return {\r\n        view: validation.view,\r\n        validate,\r\n        isHidden: validation.isHidden\r\n    };\r\n}\n\nfunction propertyHint(text) {\r\n    let content = null;\r\n    const view = Html.element('div', {\r\n        class: 'swe-property-hint'\r\n    });\r\n    function toggle() {\r\n        if (content) {\r\n            view.removeChild(content);\r\n            content = null;\r\n        }\r\n        else {\r\n            content = Html.element('div', {\r\n                class: 'swe-property-hint-text'\r\n            });\r\n            appendMultilineText(content, text);\r\n            view.appendChild(content);\r\n        }\r\n    }\r\n    return {\r\n        view,\r\n        toggle\r\n    };\r\n}\n\nclass PropertyEditor {\r\n    static create(propertyModel, stepType, definitionContext, editorServices) {\r\n        const valueContext = ValueContext.createFromDefinitionContext(propertyModel.value, propertyModel, definitionContext, editorServices.i18n);\r\n        const valueEditorFactory = editorServices.valueEditorFactoryResolver.resolve(propertyModel.value.id, propertyModel.value.editorId);\r\n        const valueEditor = valueEditorFactory(valueContext, editorServices);\r\n        let hint = null;\r\n        const nameClassName = propertyModel.path.last();\r\n        const pathStr = propertyModel.path.toString();\r\n        const view = Html.element('div', {\r\n            class: `swe-property swe-name-${nameClassName}`\r\n        });\r\n        view.setAttribute('data-path', pathStr);\r\n        const header = Html.element('div', {\r\n            class: 'swe-property-header'\r\n        });\r\n        const label = Html.element('h4', {\r\n            class: 'swe-property-header-label'\r\n        });\r\n        const i18nPrefix = createStepI18nPrefix(stepType);\r\n        label.innerText = editorServices.i18n(i18nPrefix + pathStr, propertyModel.label);\r\n        header.appendChild(label);\r\n        view.appendChild(header);\r\n        if (propertyModel.hint) {\r\n            const toggle = Html.element('span', {\r\n                class: 'swe-property-header-hint-toggle'\r\n            });\r\n            const toggleIcon = Icons.createSvg(Icons.help, 'swe-property-header-hint-toggle-icon');\r\n            toggle.appendChild(toggleIcon);\r\n            toggle.addEventListener('click', () => hint === null || hint === void 0 ? void 0 : hint.toggle(), false);\r\n            header.appendChild(toggle);\r\n            hint = propertyHint(propertyModel.hint);\r\n            view.appendChild(hint.view);\r\n        }\r\n        view.appendChild(valueEditor.view);\r\n        let control = null;\r\n        if (valueEditor.controlView) {\r\n            control = Html.element('div', {\r\n                class: 'swe-property-header-control'\r\n            });\r\n            control.appendChild(valueEditor.controlView);\r\n            header.appendChild(control);\r\n        }\r\n        let propertyValidationError = null;\r\n        if (propertyModel.validator) {\r\n            const valueContext = ValueContext.createFromDefinitionContext(propertyModel.value, propertyModel, definitionContext, editorServices.i18n);\r\n            const validatorContext = PropertyValidatorContext.create(valueContext);\r\n            propertyValidationError = propertyValidationErrorComponent(propertyModel.validator, validatorContext);\r\n            view.appendChild(propertyValidationError.view);\r\n        }\r\n        const editor = new PropertyEditor(view, valueContext.onValueChanged, valueEditor, control, propertyValidationError);\r\n        if (propertyValidationError) {\r\n            valueContext.onValueChanged.subscribe(editor.onValueChangedHandler);\r\n        }\r\n        if (valueEditor.onIsHiddenChanged) {\r\n            valueEditor.onIsHiddenChanged.subscribe(editor.onEditorIsHiddenChanged);\r\n        }\r\n        editor.reloadVisibility();\r\n        return editor;\r\n    }\r\n    constructor(view, onValueChanged, valueEditor, control, propertyValidationError) {\r\n        this.view = view;\r\n        this.onValueChanged = onValueChanged;\r\n        this.valueEditor = valueEditor;\r\n        this.control = control;\r\n        this.propertyValidationError = propertyValidationError;\r\n        this.onReloadVisibilityRequested = new StackedSimpleEvent();\r\n        this.reloadVisibility = () => {\r\n            const isValueEditorHidden = this.valueEditor.isHidden ? this.valueEditor.isHidden() : false;\r\n            const isValidationErrorHidden = this.propertyValidationError ? this.propertyValidationError.isHidden() : true;\r\n            const isPropertyEditorHidden = isValueEditorHidden && isValidationErrorHidden;\r\n            Html.toggleClass(this.view, isPropertyEditorHidden, 'swe-hidden');\r\n            Html.toggleClass(this.valueEditor.view, isValueEditorHidden, 'swe-hidden');\r\n            if (this.control) {\r\n                Html.toggleClass(this.control, isValueEditorHidden, 'swe-hidden');\r\n            }\r\n        };\r\n        this.onValueChangedHandler = () => {\r\n            this.validateProperty();\r\n        };\r\n        this.onEditorIsHiddenChanged = () => {\r\n            this.onReloadVisibilityRequested.push();\r\n        };\r\n        this.onReloadVisibilityRequested.subscribe(this.reloadVisibility);\r\n    }\r\n    reloadDependencies() {\r\n        if (this.valueEditor.reloadDependencies) {\r\n            this.valueEditor.reloadDependencies();\r\n        }\r\n        this.validateProperty();\r\n        this.onReloadVisibilityRequested.push();\r\n    }\r\n    validateProperty() {\r\n        if (this.propertyValidationError) {\r\n            this.propertyValidationError.validate();\r\n        }\r\n    }\r\n}\n\nclass EditorHeader {\r\n    static create(data, stepType, i18n) {\r\n        const view = Html.element('div', { class: 'swe-editor-header' });\r\n        const title = Html.element('h3', { class: 'swe-editor-header-title' });\r\n        title.textContent = i18n(`step.${stepType}.name`, data.label);\r\n        view.appendChild(title);\r\n        if (data.description) {\r\n            const description = i18n(`step.${stepType}.description`, data.description);\r\n            const p = Html.element('p', { class: 'swe-editor-header-description' });\r\n            appendMultilineText(p, description);\r\n            view.appendChild(p);\r\n        }\r\n        return new EditorHeader(view);\r\n    }\r\n    constructor(view) {\r\n        this.view = view;\r\n    }\r\n}\n\nclass Editor {\r\n    static create(headerData, validator, propertyModels, stepType, definitionContext, editorServices) {\r\n        const root = document.createElement('div');\r\n        root.className = `swe-editor swe-type-${stepType !== null && stepType !== void 0 ? stepType : 'root'}`;\r\n        if (headerData) {\r\n            const header = EditorHeader.create(headerData, stepType !== null && stepType !== void 0 ? stepType : 'root', editorServices.i18n);\r\n            root.appendChild(header.view);\r\n        }\r\n        let validationComponent = null;\r\n        if (validator) {\r\n            validationComponent = validationErrorComponent();\r\n            root.appendChild(validationComponent.view);\r\n        }\r\n        const editors = new Map();\r\n        for (const propertyModel of propertyModels) {\r\n            const propertyEditor = PropertyEditor.create(propertyModel, stepType, definitionContext, editorServices);\r\n            root.appendChild(propertyEditor.view);\r\n            editors.set(propertyModel, propertyEditor);\r\n        }\r\n        const editor = new Editor(root, editors, validator, validationComponent);\r\n        editors.forEach(e => e.onValueChanged.subscribe(editor.onValueChangedHandler));\r\n        editor.validate();\r\n        return editor;\r\n    }\r\n    constructor(root, editors, validator, validationErrorComponent) {\r\n        this.root = root;\r\n        this.editors = editors;\r\n        this.validator = validator;\r\n        this.validationErrorComponent = validationErrorComponent;\r\n        this.onValuesChanged = new StackedSimpleEvent();\r\n        this.onValueChangedHandler = (path) => {\r\n            this.onValuesChanged.push(path);\r\n            // console.log('onValueChangedHandler', path.toString());\r\n            this.editors.forEach((editor, propertyModel) => {\r\n                if (path.startsWith(propertyModel.path)) {\r\n                    // Skip self\r\n                    return;\r\n                }\r\n                if (propertyModel.dependencies.some(dependency => path.startsWith(dependency))) {\r\n                    editor.reloadDependencies();\r\n                }\r\n            });\r\n        };\r\n    }\r\n    validate() {\r\n        if (this.validator && this.validationErrorComponent) {\r\n            const error = this.validator();\r\n            this.validationErrorComponent.setError(error);\r\n        }\r\n    }\r\n}\n\nconst sortToolboxGroups = (groups) => {\r\n    groups.forEach(group => {\r\n        group.steps.sort((a, b) => a.name.localeCompare(b.name));\r\n    });\r\n    groups.sort((a, b) => a.name.localeCompare(b.name));\r\n};\n\nclass EditorProvider {\r\n    /**\r\n     * Creates an editor provider.\r\n     * @param definitionModel The definition model.\r\n     * @param configuration The configuration.\r\n     * @returns The editor provider.\r\n     */\r\n    static create(definitionModel, configuration) {\r\n        var _a, _b;\r\n        const definitionWalker = (_a = configuration.definitionWalker) !== null && _a !== void 0 ? _a : new DefinitionWalker();\r\n        const i18n = (_b = configuration.i18n) !== null && _b !== void 0 ? _b : defaultI18n;\r\n        const activator = ModelActivator.create(definitionModel, configuration.uidGenerator);\r\n        const validator = DefinitionValidator.create(definitionModel, definitionWalker);\r\n        const valueEditorFactoryResolver = ValueEditorFactoryResolver.create(configuration.extensions);\r\n        return new EditorProvider(activator, validator, definitionModel, definitionWalker, i18n, valueEditorFactoryResolver, configuration);\r\n    }\r\n    constructor(activator, validator, definitionModel, definitionWalker, i18n, valueEditorFactoryResolver, configuration) {\r\n        this.activator = activator;\r\n        this.validator = validator;\r\n        this.definitionModel = definitionModel;\r\n        this.definitionWalker = definitionWalker;\r\n        this.i18n = i18n;\r\n        this.valueEditorFactoryResolver = valueEditorFactoryResolver;\r\n        this.configuration = configuration;\r\n        this.services = {\r\n            activator: this.activator,\r\n            valueEditorFactoryResolver: this.valueEditorFactoryResolver,\r\n            i18n: this.i18n\r\n        };\r\n    }\r\n    createRootEditorProvider() {\r\n        return (definition, context) => {\r\n            const rootContext = DefinitionContext.createForRoot(definition, this.definitionModel, this.definitionWalker, this.i18n);\r\n            const editor = Editor.create(null, null, this.definitionModel.root.properties, null, rootContext, this.services);\r\n            editor.onValuesChanged.subscribe(() => {\r\n                context.notifyPropertiesChanged();\r\n            });\r\n            return editor.root;\r\n        };\r\n    }\r\n    createStepEditorProvider() {\r\n        return (step, context, definition) => {\r\n            const definitionContext = DefinitionContext.createForStep(step, definition, this.definitionModel, this.definitionWalker, this.i18n);\r\n            const stepModel = this.definitionModel.steps[step.type];\r\n            const propertyModels = [stepModel.name, ...stepModel.properties];\r\n            const headerData = this.configuration.isHeaderHidden\r\n                ? null\r\n                : {\r\n                    label: stepModel.label,\r\n                    description: stepModel.description\r\n                };\r\n            let validator = null;\r\n            if (stepModel.validator) {\r\n                const stepValidator = stepModel.validator;\r\n                const stepValidatorContext = StepValidatorContext.create(definitionContext);\r\n                validator = () => stepValidator.validate(stepValidatorContext);\r\n            }\r\n            const editor = Editor.create(headerData, validator, propertyModels, stepModel.type, definitionContext, this.services);\r\n            editor.onValuesChanged.subscribe((paths) => {\r\n                const isNameChanged = paths.some(path => path.equals(stepModel.name.value.path));\r\n                if (isNameChanged) {\r\n                    context.notifyNameChanged();\r\n                    return;\r\n                }\r\n                const areBranchesChanged = paths.some(path => path.equals('branches'));\r\n                if (areBranchesChanged) {\r\n                    context.notifyChildrenChanged();\r\n                    return;\r\n                }\r\n                context.notifyPropertiesChanged();\r\n            });\r\n            return editor.root;\r\n        };\r\n    }\r\n    createStepValidator() {\r\n        return (step, _, definition) => {\r\n            return this.validator.validateStep(step, definition) === null;\r\n        };\r\n    }\r\n    createRootValidator() {\r\n        return (definition) => {\r\n            return this.validator.validateRoot(definition) === null;\r\n        };\r\n    }\r\n    /**\r\n     * Activates the definition (creates a new instance of the definition with the default values).\r\n     * @returns The activated definition.\r\n     */\r\n    activateDefinition() {\r\n        return this.activator.activateDefinition();\r\n    }\r\n    /**\r\n     * Activates a step with the default values.\r\n     * @param type The type of the step to activate.\r\n     * @returns The activated step.\r\n     */\r\n    activateStep(type) {\r\n        return this.activator.activateStep(type);\r\n    }\r\n    getToolboxGroups() {\r\n        const stepModels = Object.values(this.definitionModel.steps).filter(step => step.toolbox);\r\n        const groups = [];\r\n        const categories = new Set(stepModels.map(step => step.category));\r\n        categories.forEach((category) => {\r\n            const name = category !== null && category !== void 0 ? category : this.i18n('toolbox.defaultGroupName', 'Others');\r\n            const groupStepModels = stepModels.filter(step => step.category === category);\r\n            const groupSteps = groupStepModels.map(step => this.activateStep(step.type));\r\n            groups.push({\r\n                name,\r\n                steps: groupSteps\r\n            });\r\n        });\r\n        const sort = this.configuration.toolboxSorter || sortToolboxGroups;\r\n        sort(groups);\r\n        return groups;\r\n    }\r\n    createStepLabelProvider() {\r\n        return (step) => {\r\n            const stepModel = this.definitionModel.steps[step.type];\r\n            return stepModel.label;\r\n        };\r\n    }\r\n}\n\nexport { EditorProvider, Html, Icons, StackedSimpleEvent, StringValueEditorEditorExtension, ValueEditorFactoryResolver, appendMultilineText, buttonComponent, createStringValueEditor, dynamicListComponent, filterValueTypes, formatVariableName, formatVariableNameWithType, inputComponent, prependedInputComponent, rowComponent, selectComponent, stringValueEditorId, textareaComponent, validationErrorComponent, valueEditorContainerComponent };\n"]}