/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js": /*!*****************************************************************************!*\ !*** ./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getSchemaVersion\": () => (/* binding */ getSchemaVersion),\n/* harmony export */ \"validate\": () => (/* binding */ validate),\n/* harmony export */ \"validateAll\": () => (/* binding */ validateAll)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar escapedChars = {\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\'\n};\n\nvar A_CODE = 'a'.charCodeAt();\n\n\nvar parse = function (source, _, options) {\n var pointers = {};\n var line = 0;\n var column = 0;\n var pos = 0;\n var bigint = options && options.bigint && typeof BigInt != 'undefined';\n return {\n data: _parse('', true),\n pointers: pointers\n };\n\n function _parse(ptr, topLevel) {\n whitespace();\n var data;\n map(ptr, 'value');\n var char = getChar();\n switch (char) {\n case 't': read('rue'); data = true; break;\n case 'f': read('alse'); data = false; break;\n case 'n': read('ull'); data = null; break;\n case '\"': data = parseString(); break;\n case '[': data = parseArray(ptr); break;\n case '{': data = parseObject(ptr); break;\n default:\n backChar();\n if ('-0123456789'.indexOf(char) >= 0)\n data = parseNumber();\n else\n unexpectedToken();\n }\n map(ptr, 'valueEnd');\n whitespace();\n if (topLevel && pos < source.length) unexpectedToken();\n return data;\n }\n\n function whitespace() {\n loop:\n while (pos < source.length) {\n switch (source[pos]) {\n case ' ': column++; break;\n case '\\t': column += 4; break;\n case '\\r': column = 0; break;\n case '\\n': column = 0; line++; break;\n default: break loop;\n }\n pos++;\n }\n }\n\n function parseString() {\n var str = '';\n var char;\n while (true) {\n char = getChar();\n if (char == '\"') {\n break;\n } else if (char == '\\\\') {\n char = getChar();\n if (char in escapedChars)\n str += escapedChars[char];\n else if (char == 'u')\n str += getCharCode();\n else\n wasUnexpectedToken();\n } else {\n str += char;\n }\n }\n return str;\n }\n\n function parseNumber() {\n var numStr = '';\n var integer = true;\n if (source[pos] == '-') numStr += getChar();\n\n numStr += source[pos] == '0'\n ? getChar()\n : getDigits();\n\n if (source[pos] == '.') {\n numStr += getChar() + getDigits();\n integer = false;\n }\n\n if (source[pos] == 'e' || source[pos] == 'E') {\n numStr += getChar();\n if (source[pos] == '+' || source[pos] == '-') numStr += getChar();\n numStr += getDigits();\n integer = false;\n }\n\n var result = +numStr;\n return bigint && integer && (result > Number.MAX_SAFE_INTEGER || result < Number.MIN_SAFE_INTEGER)\n ? BigInt(numStr)\n : result;\n }\n\n function parseArray(ptr) {\n whitespace();\n var arr = [];\n var i = 0;\n if (getChar() == ']') return arr;\n backChar();\n\n while (true) {\n var itemPtr = ptr + '/' + i;\n arr.push(_parse(itemPtr));\n whitespace();\n var char = getChar();\n if (char == ']') break;\n if (char != ',') wasUnexpectedToken();\n whitespace();\n i++;\n }\n return arr;\n }\n\n function parseObject(ptr) {\n whitespace();\n var obj = {};\n if (getChar() == '}') return obj;\n backChar();\n\n while (true) {\n var loc = getLoc();\n if (getChar() != '\"') wasUnexpectedToken();\n var key = parseString();\n var propPtr = ptr + '/' + escapeJsonPointer(key);\n mapLoc(propPtr, 'key', loc);\n map(propPtr, 'keyEnd');\n whitespace();\n if (getChar() != ':') wasUnexpectedToken();\n whitespace();\n obj[key] = _parse(propPtr);\n whitespace();\n var char = getChar();\n if (char == '}') break;\n if (char != ',') wasUnexpectedToken();\n whitespace();\n }\n return obj;\n }\n\n function read(str) {\n for (var i=0; i= 'a' && char <= 'f')\n code += char.charCodeAt() - A_CODE + 10;\n else if (char >= '0' && char <= '9')\n code += +char;\n else\n wasUnexpectedToken();\n }\n return String.fromCharCode(code);\n }\n\n function getDigits() {\n var digits = '';\n while (source[pos] >= '0' && source[pos] <= '9')\n digits += getChar();\n\n if (digits.length) return digits;\n checkUnexpectedEnd();\n unexpectedToken();\n }\n\n function map(ptr, prop) {\n mapLoc(ptr, prop, getLoc());\n }\n\n function mapLoc(ptr, prop, loc) {\n pointers[ptr] = pointers[ptr] || {};\n pointers[ptr][prop] = loc;\n }\n\n function getLoc() {\n return {\n line: line,\n column: column,\n pos: pos\n };\n }\n\n function unexpectedToken() {\n throw new SyntaxError('Unexpected token ' + source[pos] + ' in JSON at position ' + pos);\n }\n\n function wasUnexpectedToken() {\n backChar();\n unexpectedToken();\n }\n\n function checkUnexpectedEnd() {\n if (pos >= source.length)\n throw new SyntaxError('Unexpected end of JSON input');\n }\n};\n\n\nvar stringify = function (data, _, options) {\n if (!validType(data)) return;\n var wsLine = 0;\n var wsPos, wsColumn;\n var whitespace = typeof options == 'object'\n ? options.space\n : options;\n switch (typeof whitespace) {\n case 'number':\n var len = whitespace > 10\n ? 10\n : whitespace < 0\n ? 0\n : Math.floor(whitespace);\n whitespace = len && repeat(len, ' ');\n wsPos = len;\n wsColumn = len;\n break;\n case 'string':\n whitespace = whitespace.slice(0, 10);\n wsPos = 0;\n wsColumn = 0;\n for (var j=0; j= 0;\n}\n\n\nvar ESC_QUOTE = /\"|\\\\/g;\nvar ESC_B = /[\\b]/g;\nvar ESC_F = /\\f/g;\nvar ESC_N = /\\n/g;\nvar ESC_R = /\\r/g;\nvar ESC_T = /\\t/g;\nfunction quoted(str) {\n str = str.replace(ESC_QUOTE, '\\\\$&')\n .replace(ESC_F, '\\\\f')\n .replace(ESC_B, '\\\\b')\n .replace(ESC_N, '\\\\n')\n .replace(ESC_R, '\\\\r')\n .replace(ESC_T, '\\\\t');\n return '\"' + str + '\"';\n}\n\n\nvar ESC_0 = /~/g;\nvar ESC_1 = /\\//g;\nfunction escapeJsonPointer(str) {\n return str.replace(ESC_0, '~0')\n .replace(ESC_1, '~1');\n}\n\nvar jsonSourceMap = {\n\tparse: parse,\n\tstringify: stringify\n};\n\nvar version = \"0.3.1\";\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n// do NOT remove this file - it would break pre-compiled schemas\n// https://github.com/ajv-validator/ajv/issues/889\nvar equal = fastDeepEqual;\n\nvar standaloneValidator = validate14;var _default = validate14;const schema17 = {\"type\":\"object\",\"required\":[\"name\",\"id\",\"appliesTo\",\"properties\"],\"properties\":{\"name\":{\"$id\":\"#/name\",\"type\":\"string\",\"title\":\"element template name\",\"description\":\"The name of the element template\"},\"id\":{\"$id\":\"#/id\",\"type\":\"string\",\"title\":\"element template id\",\"description\":\"The identifier of the element template\"},\"description\":{\"$id\":\"#/description\",\"type\":\"string\",\"title\":\"element template description\",\"description\":\"The description of the element template\"},\"version\":{\"$id\":\"#/version\",\"type\":\"number\",\"title\":\"element template version\",\"description\":\"The version of the element template\"},\"isDefault\":{\"$id\":\"#/isDefault\",\"type\":\"boolean\",\"title\":\"element template is default\",\"description\":\"Indicates whether the element template is a default template\"},\"appliesTo\":{\"$id\":\"#/appliesTo\",\"type\":\"array\",\"title\":\"element template applies to\",\"description\":\"The definition for which element types the element template can be applied\",\"default\":[],\"items\":{\"$id\":\"#/appliesTo/items\",\"type\":\"string\",\"pattern\":\"^(.*?:)\",\"errorMessage\":{\"pattern\":\"invalid item for \\\"appliesTo\\\", should contain namespaced property, example: \\\"bpmn:Task\\\"\"}}},\"properties\":{\"$ref\":\"#/definitions/properties\",\"$id\":\"#/properties\"},\"metadata\":{\"$id\":\"#/metadata\",\"type\":\"object\",\"title\":\"element template metadata\",\"description\":\"Some metadata for further configuration\"},\"scopes\":{\"oneOf\":[{\"$ref\":\"#/definitions/scopes_old\"},{\"$ref\":\"#/definitions/scopes\"}]},\"entriesVisible\":{\"$id\":\"#/entriesVisible\",\"deprecated\":true,\"type\":[\"object\",\"boolean\"],\"title\":\"element template entries visible\",\"description\":\"@Deprecated - Select which entries are visible in the properties panel\"}},\"errorMessage\":{\"required\":{\"name\":\"missing template name\",\"id\":\"missing template id\",\"appliesTo\":\"missing appliesTo=[]\",\"properties\":\"missing properties=[]\"}}};const schema18 = {\"type\":\"array\",\"title\":\"element template properties\",\"description\":\"The properties of the element template\",\"default\":[],\"items\":{\"$id\":\"#/properties/property\",\"type\":\"object\",\"title\":\"element template property\",\"description\":\"A property defined for the element template\",\"default\":{},\"required\":[\"binding\"],\"errorMessage\":{\"required\":{\"binding\":\"missing binding for property \\\"${0#}\\\"\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"Dropdown\"}},\"required\":[\"type\"]},\"then\":{\"required\":[\"choices\"],\"errorMessage\":\"must provide choices=[] with \\\"Dropdown\\\" type\"}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"const\":\"property\"}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"String\",\"Text\",\"Hidden\",\"Dropdown\",\"Boolean\"],\"errorMessage\":\"invalid property type ${0} for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"}}}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"const\":\"camunda:executionListener\"}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"Hidden\"],\"errorMessage\":\"invalid property type ${1/type} for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"}}}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"enum\":[\"camunda:property\",\"camunda:outputParameter\",\"camunda:in\",\"camunda:in:businessKey\",\"camunda:out\",\"camunda:errorEventDefinition\"]}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"String\",\"Hidden\",\"Dropdown\"],\"errorMessage\":\"invalid property type ${0} for binding type ${1/binding/type}; must be any of { String, Hidden, Dropdown }\"}}}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"enum\":[\"camunda:inputParameter\",\"camunda:field\"]}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"String\",\"Text\",\"Hidden\",\"Dropdown\"],\"errorMessage\":\"invalid property type ${0} for binding type ${1/binding/type}; must be any of { String, Text, Hidden, Dropdown }\"}}}}],\"properties\":{\"value\":{\"$id\":\"#/properties/property/value\",\"type\":[\"string\",\"boolean\"],\"title\":\"property value\",\"description\":\"The value of the control field for the property\"},\"description\":{\"$id\":\"#/properties/property/description\",\"type\":\"string\",\"title\":\"property description\",\"description\":\"The description of the control field\"},\"label\":{\"$id\":\"#/properties/property/label\",\"type\":\"string\",\"title\":\"property label\",\"description\":\"The label of the control field for the property\"},\"type\":{\"$id\":\"#/properties/property/type\",\"type\":\"string\",\"title\":\"property type\",\"description\":\"The type of the control field\"},\"editable\":{\"$id\":\"#/properties/property/editable\",\"type\":\"boolean\",\"title\":\"property editable\",\"description\":\"Indicates whether the property is editable or not\"},\"choices\":{\"$id\":\"#/properties/property/choices\",\"type\":\"array\",\"title\":\"property choices\",\"description\":\"The choices for dropdown properties\",\"items\":{\"$id\":\"#/properties/property/choices/item\",\"type\":\"object\",\"properties\":{\"name\":{\"$id\":\"#/properties/property/choices/item/name\",\"type\":\"string\",\"title\":\"choice name\",\"description\":\"The name of the choice\"},\"value\":{\"$id\":\"#/properties/property/choices/item/value\",\"type\":\"string\",\"title\":\"choice value\",\"description\":\"The value of the choice\"}},\"required\":[\"value\",\"name\"],\"errorMessage\":\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"}},\"binding\":{\"$id\":\"#/properties/property/binding\",\"type\":\"object\",\"title\":\"property binding\",\"description\":\"A binding to a BPMN 2.0 property\",\"required\":[\"type\"],\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"enum\":[\"property\",\"camunda:property\",\"camunda:inputParameter\",\"camunda:field\"]}},\"required\":[\"type\"]},\"then\":{\"required\":[\"name\"],\"errorMessage\":\"property.binding ${0/type} requires name\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:outputParameter\"}},\"required\":[\"type\"]},\"then\":{\"required\":[\"source\"],\"errorMessage\":\"property.binding ${0/type} requires source\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:in\"}},\"required\":[\"type\"]},\"then\":{\"oneOf\":[{\"required\":[\"variables\"]},{\"required\":[\"target\"]}],\"errorMessage\":\"property.binding ${0/type} requires variables or target\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:out\"}},\"required\":[\"type\"]},\"then\":{\"oneOf\":[{\"required\":[\"variables\"]},{\"required\":[\"source\"]},{\"required\":[\"sourceExpression\"]}],\"errorMessage\":\"property.binding ${0/type} requires variables, sourceExpression or source\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:errorEventDefinition\"}},\"required\":[\"type\"]},\"then\":{\"oneOf\":[{\"required\":[\"errorRef\"]}],\"errorMessage\":\"property.binding ${0/type} requires errorRef\"}}],\"properties\":{\"type\":{\"$id\":\"#/properties/property/binding/type\",\"type\":\"string\",\"title\":\"property binding type\",\"enum\":[\"property\",\"camunda:property\",\"camunda:inputParameter\",\"camunda:outputParameter\",\"camunda:in\",\"camunda:out\",\"camunda:in:businessKey\",\"camunda:executionListener\",\"camunda:field\",\"camunda:errorEventDefinition\"],\"errorMessage\":\"invalid property.binding type ${0}; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\",\"description\":\"The type of the property binding\"},\"name\":{\"$id\":\"#/properties/property/binding/name\",\"type\":\"string\",\"title\":\"property binding name\",\"description\":\"The name of binding xml property\"},\"event\":{\"$id\":\"#/properties/property/binding/event\",\"type\":\"string\",\"title\":\"property binding event\",\"description\":\"The event type of an execution listener binding\"},\"scriptFormat\":{\"$id\":\"#/properties/property/binding/scriptFormat\",\"type\":\"string\",\"title\":\"property binding script format\",\"description\":\"The format of a script property binding (camunda:outputParameter, camunda:inputParameter)\"},\"source\":{\"$id\":\"#/properties/property/binding/source\",\"type\":\"string\",\"title\":\"property binding source\",\"description\":\"The source value of a property binding (camunda:outputParameter, camunda:out)\"},\"target\":{\"$id\":\"#/properties/property/binding/target\",\"type\":\"string\",\"title\":\"property binding target\",\"description\":\"The target value to be mapped to (camunda:in)\"},\"expression\":{\"$id\":\"#/properties/property/binding/expression\",\"type\":\"boolean\",\"title\":\"property binding expression\",\"description\":\"True indicates that the control field value is an expression (camunda:in, camunda:field)\"},\"variables\":{\"$id\":\"#/properties/property/binding/variables\",\"type\":\"string\",\"title\":\"property binding variables\",\"enum\":[\"all\",\"local\"],\"description\":\"Either all or local indicating the variable mapping (camunda:in)\"},\"sourceExpression\":{\"$id\":\"#/properties/property/binding/sourceExpression\",\"type\":\"string\",\"title\":\"property binding source expression\",\"description\":\"The string containing the expression for the source attribute (camunda:out)\"}}},\"constraints\":{\"$id\":\"#/properties/property/constraints\",\"type\":\"object\",\"title\":\"property constraints\",\"description\":\"The validation constraints\",\"properties\":{\"notEmpty\":{\"$id\":\"#/properties/property/constraints/notEmpty\",\"type\":\"boolean\",\"title\":\"property constraints not empty\",\"description\":\"The control field must not be empty\"},\"minLength\":{\"$id\":\"#/properties/property/constraints/minLength\",\"type\":\"number\",\"title\":\"property constraints min length\",\"description\":\"The minimal length for the control field value\"},\"maxLength\":{\"$id\":\"#/properties/property/constraints/maxLength\",\"type\":\"number\",\"title\":\"property constraints max length\",\"description\":\"The maximal length for the control field value\"},\"pattern\":{\"$id\":\"#/properties/property/constraints/pattern\",\"title\":\"property constraints pattern\",\"description\":\"A regular expression pattern for the constraints\",\"oneOf\":[{\"type\":\"object\",\"properties\":{\"value\":{\"$id\":\"#/properties/property/constraints/pattern/value\",\"type\":\"string\",\"title\":\"property constraints pattern value\",\"description\":\"The regular expression of the pattern constraint\"},\"message\":{\"$id\":\"#/properties/property/constraints/pattern/message\",\"type\":\"string\",\"title\":\"property constraints pattern message\",\"description\":\"The validation message of the pattern constraint\"}}},{\"type\":\"string\"}]}}}}}};const pattern0 = new RegExp(\"^(.*?:)\", \"u\");const obj0 = {\"required\":\"missingProperty\",\"dependencies\":\"property\",\"dependentRequired\":\"property\"};function validate16(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == \"object\" && !Array.isArray(data)){for(const key0 in data){if(!(key0 === \"camunda:Connector\")){const err0 = {keyword:\"not\",dataPath:dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/additionalProperties/not\",params:{},message:\"should NOT be valid\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;if(errors > 0){const emErrs0 = [];for(const err1 of vErrors){if(((((err1.keyword !== \"errorMessage\") && (!err1.emUsed)) && ((err1.dataPath === dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")) || ((err1.dataPath.indexOf(dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")) === 0) && (err1.dataPath[dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\").length] === \"/\")))) && (err1.schemaPath.indexOf(\"#/additionalProperties\") === 0)) && (err1.schemaPath[\"#/additionalProperties\".length] === \"/\")){emErrs0.push(err1);err1.emUsed = true;}}if(emErrs0.length){const err2 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/additionalProperties/errorMessage\",params:{errors: emErrs0},message:\"invalid scope \" + JSON.stringify(key0) + \", object descriptor is only supported for \\\"camunda:Connector\\\"\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}const emErrs1 = [];for(const err3 of vErrors){if(!err3.emUsed){emErrs1.push(err3);}}vErrors = emErrs1;errors = emErrs1.length;}}}if(data[\"camunda:Connector\"] !== undefined){let data1 = data[\"camunda:Connector\"];if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(data1.properties !== undefined){let data2 = data1.properties;if(Array.isArray(data2)){const len0 = data2.length;for(let i0=0; i0 0){const emErrs2 = [];for(const err7 of vErrors){if(((((err7.keyword !== \"errorMessage\") && (!err7.emUsed)) && ((err7.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0) || ((err7.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0) === 0) && (err7.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0.length] === \"/\")))) && (err7.schemaPath.indexOf(\"#/definitions/properties/items/allOf/0/then\") === 0)) && (err7.schemaPath[\"#/definitions/properties/items/allOf/0/then\".length] === \"/\")){emErrs2.push(err7);err7.emUsed = true;}}if(emErrs2.length){const err8 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/0/then/errorMessage\",params:{errors: emErrs2},message:\"must provide choices=[] with \\\"Dropdown\\\" type\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}const emErrs3 = [];for(const err9 of vErrors){if(!err9.emUsed){emErrs3.push(err9);}}vErrors = emErrs3;errors = emErrs3.length;}var _valid0 = _errs15 === errors;valid7 = _valid0;}if(!valid7){const err10 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}const _errs17 = errors;let valid9 = true;const _errs18 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err11 = {};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}else {if(data3.binding !== undefined){let data5 = data3.binding;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if((data5.type === undefined) && (\"type\")){const err12 = {};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {if(data5.type !== undefined){if(!equal(data5.type, \"property\")){const err13 = {};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}}}}}var _valid1 = _errs18 === errors;errors = _errs17;if(vErrors !== null){if(_errs17){vErrors.length = _errs17;}else {vErrors = null;}}if(_valid1){const _errs21 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){let data7 = data3.type;if(!(((((data7 === \"String\") || (data7 === \"Text\")) || (data7 === \"Hidden\")) || (data7 === \"Dropdown\")) || (data7 === \"Boolean\"))){const err14 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[1].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(errors > 0){const emErrs4 = [];for(const err15 of vErrors){if(((((err15.keyword !== \"errorMessage\") && (!err15.emUsed)) && ((err15.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err15.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err15.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err15.schemaPath.indexOf(\"#/definitions/properties/items/allOf/1/then/properties/type\") === 0)) && (err15.schemaPath[\"#/definitions/properties/items/allOf/1/then/properties/type\".length] === \"/\")){emErrs4.push(err15);err15.emUsed = true;}}if(emErrs4.length){const err16 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/errorMessage\",params:{errors: emErrs4},message:\"invalid property type \" + JSON.stringify(data7) + \" for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}const emErrs5 = [];for(const err17 of vErrors){if(!err17.emUsed){emErrs5.push(err17);}}vErrors = emErrs5;errors = emErrs5.length;}}}var _valid1 = _errs21 === errors;valid9 = _valid1;}if(!valid9){const err18 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}const _errs24 = errors;let valid13 = true;const _errs25 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err19 = {};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {if(data3.binding !== undefined){let data8 = data3.binding;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.type === undefined) && (\"type\")){const err20 = {};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}else {if(data8.type !== undefined){if(!equal(data8.type, \"camunda:executionListener\")){const err21 = {};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}}}}}var _valid2 = _errs25 === errors;errors = _errs24;if(vErrors !== null){if(_errs24){vErrors.length = _errs24;}else {vErrors = null;}}if(_valid2){const _errs28 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){if(!(data3.type === \"Hidden\")){const err22 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[2].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(errors > 0){const emErrs6 = [];for(const err23 of vErrors){if(((((err23.keyword !== \"errorMessage\") && (!err23.emUsed)) && ((err23.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err23.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err23.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err23.schemaPath.indexOf(\"#/definitions/properties/items/allOf/2/then/properties/type\") === 0)) && (err23.schemaPath[\"#/definitions/properties/items/allOf/2/then/properties/type\".length] === \"/\")){emErrs6.push(err23);err23.emUsed = true;}}if(emErrs6.length){const err24 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/errorMessage\",params:{errors: emErrs6},message:\"invalid property type \" + JSON.stringify(data3 && data3.type) + \" for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}const emErrs7 = [];for(const err25 of vErrors){if(!err25.emUsed){emErrs7.push(err25);}}vErrors = emErrs7;errors = emErrs7.length;}}}var _valid2 = _errs28 === errors;valid13 = _valid2;}if(!valid13){const err26 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}const _errs31 = errors;let valid17 = true;const _errs32 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err27 = {};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}else {if(data3.binding !== undefined){let data11 = data3.binding;if(data11 && typeof data11 == \"object\" && !Array.isArray(data11)){if((data11.type === undefined) && (\"type\")){const err28 = {};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}else {if(data11.type !== undefined){let data12 = data11.type;if(!((((((data12 === \"camunda:property\") || (data12 === \"camunda:outputParameter\")) || (data12 === \"camunda:in\")) || (data12 === \"camunda:in:businessKey\")) || (data12 === \"camunda:out\")) || (data12 === \"camunda:errorEventDefinition\"))){const err29 = {};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}}}}}var _valid3 = _errs32 === errors;errors = _errs31;if(vErrors !== null){if(_errs31){vErrors.length = _errs31;}else {vErrors = null;}}if(_valid3){const _errs35 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){let data13 = data3.type;if(!(((data13 === \"String\") || (data13 === \"Hidden\")) || (data13 === \"Dropdown\"))){const err30 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[3].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(errors > 0){const emErrs8 = [];for(const err31 of vErrors){if(((((err31.keyword !== \"errorMessage\") && (!err31.emUsed)) && ((err31.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err31.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err31.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err31.schemaPath.indexOf(\"#/definitions/properties/items/allOf/3/then/properties/type\") === 0)) && (err31.schemaPath[\"#/definitions/properties/items/allOf/3/then/properties/type\".length] === \"/\")){emErrs8.push(err31);err31.emUsed = true;}}if(emErrs8.length){const err32 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/errorMessage\",params:{errors: emErrs8},message:\"invalid property type \" + JSON.stringify(data13) + \" for binding type \" + JSON.stringify(data3 && data3.binding && data3.binding.type) + \"; must be any of { String, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}const emErrs9 = [];for(const err33 of vErrors){if(!err33.emUsed){emErrs9.push(err33);}}vErrors = emErrs9;errors = emErrs9.length;}}}var _valid3 = _errs35 === errors;valid17 = _valid3;}if(!valid17){const err34 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}const _errs38 = errors;let valid21 = true;const _errs39 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err35 = {};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {if(data3.binding !== undefined){let data14 = data3.binding;if(data14 && typeof data14 == \"object\" && !Array.isArray(data14)){if((data14.type === undefined) && (\"type\")){const err36 = {};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {if(data14.type !== undefined){let data15 = data14.type;if(!((data15 === \"camunda:inputParameter\") || (data15 === \"camunda:field\"))){const err37 = {};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}}}}}var _valid4 = _errs39 === errors;errors = _errs38;if(vErrors !== null){if(_errs38){vErrors.length = _errs38;}else {vErrors = null;}}if(_valid4){const _errs42 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){let data16 = data3.type;if(!((((data16 === \"String\") || (data16 === \"Text\")) || (data16 === \"Hidden\")) || (data16 === \"Dropdown\"))){const err38 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[4].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(errors > 0){const emErrs10 = [];for(const err39 of vErrors){if(((((err39.keyword !== \"errorMessage\") && (!err39.emUsed)) && ((err39.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err39.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err39.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err39.schemaPath.indexOf(\"#/definitions/properties/items/allOf/4/then/properties/type\") === 0)) && (err39.schemaPath[\"#/definitions/properties/items/allOf/4/then/properties/type\".length] === \"/\")){emErrs10.push(err39);err39.emUsed = true;}}if(emErrs10.length){const err40 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/errorMessage\",params:{errors: emErrs10},message:\"invalid property type \" + JSON.stringify(data16) + \" for binding type \" + JSON.stringify(data3 && data3.binding && data3.binding.type) + \"; must be any of { String, Text, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}const emErrs11 = [];for(const err41 of vErrors){if(!err41.emUsed){emErrs11.push(err41);}}vErrors = emErrs11;errors = emErrs11.length;}}}var _valid4 = _errs42 === errors;valid21 = _valid4;}if(!valid21){const err42 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.binding === undefined){const err43 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/required\",params:{missingProperty: \"binding\"},message:\"should have required property '\"+\"binding\"+\"'\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if(data3.value !== undefined){let data17 = data3.value;if((typeof data17 !== \"string\") && (typeof data17 !== \"boolean\")){const err44 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/value\",schemaPath:\"#/definitions/properties/items/properties/value/type\",params:{type: schema18.items.properties.value.type},message:\"should be string,boolean\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}if(data3.description !== undefined){if(typeof data3.description !== \"string\"){const err45 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/description\",schemaPath:\"#/definitions/properties/items/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}if(data3.label !== undefined){if(typeof data3.label !== \"string\"){const err46 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/label\",schemaPath:\"#/definitions/properties/items/properties/label/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}if(data3.type !== undefined){if(typeof data3.type !== \"string\"){const err47 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}if(data3.editable !== undefined){if(typeof data3.editable !== \"boolean\"){const err48 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/editable\",schemaPath:\"#/definitions/properties/items/properties/editable/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}if(data3.choices !== undefined){let data22 = data3.choices;if(Array.isArray(data22)){const len1 = data22.length;for(let i1=0; i1 0){const emErrs12 = [];for(const err54 of vErrors){if(((((err54.keyword !== \"errorMessage\") && (!err54.emUsed)) && ((err54.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1) || ((err54.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1) === 0) && (err54.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1.length] === \"/\")))) && (err54.schemaPath.indexOf(\"#/definitions/properties/items/properties/choices/items\") === 0)) && (err54.schemaPath[\"#/definitions/properties/items/properties/choices/items\".length] === \"/\")){emErrs12.push(err54);err54.emUsed = true;}}if(emErrs12.length){const err55 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1,schemaPath:\"#/definitions/properties/items/properties/choices/items/errorMessage\",params:{errors: emErrs12},message:\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}const emErrs13 = [];for(const err56 of vErrors){if(!err56.emUsed){emErrs13.push(err56);}}vErrors = emErrs13;errors = emErrs13.length;}}}else {const err57 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices\",schemaPath:\"#/definitions/properties/items/properties/choices/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data3.binding !== undefined){let data26 = data3.binding;const _errs65 = errors;let valid30 = true;const _errs66 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err58 = {};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}else {if(data26.type !== undefined){let data27 = data26.type;if(!((((data27 === \"property\") || (data27 === \"camunda:property\")) || (data27 === \"camunda:inputParameter\")) || (data27 === \"camunda:field\"))){const err59 = {};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}}}var _valid5 = _errs66 === errors;errors = _errs65;if(vErrors !== null){if(_errs65){vErrors.length = _errs65;}else {vErrors = null;}}if(_valid5){const _errs68 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.name === undefined){const err60 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}}if(errors > 0){const emErrs14 = [];for(const err61 of vErrors){if(((((err61.keyword !== \"errorMessage\") && (!err61.emUsed)) && ((err61.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err61.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err61.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err61.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/0/then\") === 0)) && (err61.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/0/then\".length] === \"/\")){emErrs14.push(err61);err61.emUsed = true;}}if(emErrs14.length){const err62 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/errorMessage\",params:{errors: emErrs14},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires name\"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}const emErrs15 = [];for(const err63 of vErrors){if(!err63.emUsed){emErrs15.push(err63);}}vErrors = emErrs15;errors = emErrs15.length;}var _valid5 = _errs68 === errors;valid30 = _valid5;}if(!valid30){const err64 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}const _errs70 = errors;let valid32 = true;const _errs71 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err65 = {};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:outputParameter\")){const err66 = {};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}}}}var _valid6 = _errs71 === errors;errors = _errs70;if(vErrors !== null){if(_errs70){vErrors.length = _errs70;}else {vErrors = null;}}if(_valid6){const _errs73 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.source === undefined){const err67 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}}if(errors > 0){const emErrs16 = [];for(const err68 of vErrors){if(((((err68.keyword !== \"errorMessage\") && (!err68.emUsed)) && ((err68.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err68.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err68.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err68.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/1/then\") === 0)) && (err68.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/1/then\".length] === \"/\")){emErrs16.push(err68);err68.emUsed = true;}}if(emErrs16.length){const err69 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/errorMessage\",params:{errors: emErrs16},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires source\"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}const emErrs17 = [];for(const err70 of vErrors){if(!err70.emUsed){emErrs17.push(err70);}}vErrors = emErrs17;errors = emErrs17.length;}var _valid6 = _errs73 === errors;valid32 = _valid6;}if(!valid32){const err71 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}const _errs75 = errors;let valid34 = true;const _errs76 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err72 = {};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:in\")){const err73 = {};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}}}}var _valid7 = _errs76 === errors;errors = _errs75;if(vErrors !== null){if(_errs75){vErrors.length = _errs75;}else {vErrors = null;}}if(_valid7){const _errs78 = errors;const _errs79 = errors;let valid36 = false;let passing0 = null;const _errs80 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.variables === undefined){const err74 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}}var _valid8 = _errs80 === errors;if(_valid8){valid36 = true;passing0 = 0;}const _errs81 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.target === undefined){const err75 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/1/required\",params:{missingProperty: \"target\"},message:\"should have required property '\"+\"target\"+\"'\"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}}var _valid8 = _errs81 === errors;if(_valid8 && valid36){valid36 = false;passing0 = [passing0, 1];}else {if(_valid8){valid36 = true;passing0 = 1;}}if(!valid36){const err76 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}else {errors = _errs79;if(vErrors !== null){if(_errs79){vErrors.length = _errs79;}else {vErrors = null;}}}if(errors > 0){const emErrs18 = [];for(const err77 of vErrors){if(((((err77.keyword !== \"errorMessage\") && (!err77.emUsed)) && ((err77.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err77.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err77.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err77.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/2/then\") === 0)) && (err77.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/2/then\".length] === \"/\")){emErrs18.push(err77);err77.emUsed = true;}}if(emErrs18.length){const err78 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/errorMessage\",params:{errors: emErrs18},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires variables or target\"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}const emErrs19 = [];for(const err79 of vErrors){if(!err79.emUsed){emErrs19.push(err79);}}vErrors = emErrs19;errors = emErrs19.length;}var _valid7 = _errs78 === errors;valid34 = _valid7;}if(!valid34){const err80 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}const _errs83 = errors;let valid37 = true;const _errs84 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err81 = {};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:out\")){const err82 = {};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}}}}var _valid9 = _errs84 === errors;errors = _errs83;if(vErrors !== null){if(_errs83){vErrors.length = _errs83;}else {vErrors = null;}}if(_valid9){const _errs86 = errors;const _errs87 = errors;let valid39 = false;let passing1 = null;const _errs88 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.variables === undefined){const err83 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}}var _valid10 = _errs88 === errors;if(_valid10){valid39 = true;passing1 = 0;}const _errs89 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.source === undefined){const err84 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/1/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}}var _valid10 = _errs89 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 1];}else {if(_valid10){valid39 = true;passing1 = 1;}const _errs90 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.sourceExpression === undefined){const err85 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/2/required\",params:{missingProperty: \"sourceExpression\"},message:\"should have required property '\"+\"sourceExpression\"+\"'\"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}}var _valid10 = _errs90 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 2];}else {if(_valid10){valid39 = true;passing1 = 2;}}}if(!valid39){const err86 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf\",params:{passingSchemas: passing1},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}else {errors = _errs87;if(vErrors !== null){if(_errs87){vErrors.length = _errs87;}else {vErrors = null;}}}if(errors > 0){const emErrs20 = [];for(const err87 of vErrors){if(((((err87.keyword !== \"errorMessage\") && (!err87.emUsed)) && ((err87.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err87.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err87.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err87.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/3/then\") === 0)) && (err87.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/3/then\".length] === \"/\")){emErrs20.push(err87);err87.emUsed = true;}}if(emErrs20.length){const err88 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/errorMessage\",params:{errors: emErrs20},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires variables, sourceExpression or source\"};if(vErrors === null){vErrors = [err88];}else {vErrors.push(err88);}errors++;}const emErrs21 = [];for(const err89 of vErrors){if(!err89.emUsed){emErrs21.push(err89);}}vErrors = emErrs21;errors = emErrs21.length;}var _valid9 = _errs86 === errors;valid37 = _valid9;}if(!valid37){const err90 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err90];}else {vErrors.push(err90);}errors++;}const _errs92 = errors;let valid40 = true;const _errs93 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err91 = {};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:errorEventDefinition\")){const err92 = {};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}}}}var _valid11 = _errs93 === errors;errors = _errs92;if(vErrors !== null){if(_errs92){vErrors.length = _errs92;}else {vErrors = null;}}if(_valid11){const _errs95 = errors;const _errs96 = errors;let valid42 = false;let passing2 = null;const _errs97 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.errorRef === undefined){const err93 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf/0/required\",params:{missingProperty: \"errorRef\"},message:\"should have required property '\"+\"errorRef\"+\"'\"};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}}var _valid12 = _errs97 === errors;if(_valid12){valid42 = true;passing2 = 0;}if(!valid42){const err94 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf\",params:{passingSchemas: passing2},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}else {errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}}if(errors > 0){const emErrs22 = [];for(const err95 of vErrors){if(((((err95.keyword !== \"errorMessage\") && (!err95.emUsed)) && ((err95.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err95.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err95.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err95.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/4/then\") === 0)) && (err95.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/4/then\".length] === \"/\")){emErrs22.push(err95);err95.emUsed = true;}}if(emErrs22.length){const err96 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/errorMessage\",params:{errors: emErrs22},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires errorRef\"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}const emErrs23 = [];for(const err97 of vErrors){if(!err97.emUsed){emErrs23.push(err97);}}vErrors = emErrs23;errors = emErrs23.length;}var _valid11 = _errs95 === errors;valid40 = _valid11;}if(!valid40){const err98 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err98];}else {vErrors.push(err98);}errors++;}if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.type === undefined){const err99 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err99];}else {vErrors.push(err99);}errors++;}if(data26.type !== undefined){let data32 = data26.type;if(typeof data32 !== \"string\"){const err100 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err100];}else {vErrors.push(err100);}errors++;}if(!((((((((((data32 === \"property\") || (data32 === \"camunda:property\")) || (data32 === \"camunda:inputParameter\")) || (data32 === \"camunda:outputParameter\")) || (data32 === \"camunda:in\")) || (data32 === \"camunda:out\")) || (data32 === \"camunda:in:businessKey\")) || (data32 === \"camunda:executionListener\")) || (data32 === \"camunda:field\")) || (data32 === \"camunda:errorEventDefinition\"))){const err101 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/enum\",params:{allowedValues: schema18.items.properties.binding.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}if(errors > 0){const emErrs24 = [];for(const err102 of vErrors){if(((((err102.keyword !== \"errorMessage\") && (!err102.emUsed)) && ((err102.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\") || ((err102.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\") === 0) && (err102.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\".length] === \"/\")))) && (err102.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/properties/type\") === 0)) && (err102.schemaPath[\"#/definitions/properties/items/properties/binding/properties/type\".length] === \"/\")){emErrs24.push(err102);err102.emUsed = true;}}if(emErrs24.length){const err103 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/errorMessage\",params:{errors: emErrs24},message:\"invalid property.binding type \" + JSON.stringify(data32) + \"; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\"};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}const emErrs25 = [];for(const err104 of vErrors){if(!err104.emUsed){emErrs25.push(err104);}}vErrors = emErrs25;errors = emErrs25.length;}}if(data26.name !== undefined){if(typeof data26.name !== \"string\"){const err105 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/name\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err105];}else {vErrors.push(err105);}errors++;}}if(data26.event !== undefined){if(typeof data26.event !== \"string\"){const err106 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/event\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/event/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err106];}else {vErrors.push(err106);}errors++;}}if(data26.scriptFormat !== undefined){if(typeof data26.scriptFormat !== \"string\"){const err107 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/scriptFormat\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/scriptFormat/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err107];}else {vErrors.push(err107);}errors++;}}if(data26.source !== undefined){if(typeof data26.source !== \"string\"){const err108 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/source\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/source/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err108];}else {vErrors.push(err108);}errors++;}}if(data26.target !== undefined){if(typeof data26.target !== \"string\"){const err109 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/target\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/target/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}}if(data26.expression !== undefined){if(typeof data26.expression !== \"boolean\"){const err110 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/expression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/expression/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}}if(data26.variables !== undefined){let data39 = data26.variables;if(typeof data39 !== \"string\"){const err111 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if(!((data39 === \"all\") || (data39 === \"local\"))){const err112 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/enum\",params:{allowedValues: schema18.items.properties.binding.properties.variables.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err112];}else {vErrors.push(err112);}errors++;}}if(data26.sourceExpression !== undefined){if(typeof data26.sourceExpression !== \"string\"){const err113 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/sourceExpression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/sourceExpression/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err113];}else {vErrors.push(err113);}errors++;}}}else {const err114 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err114];}else {vErrors.push(err114);}errors++;}}if(data3.constraints !== undefined){let data41 = data3.constraints;if(data41 && typeof data41 == \"object\" && !Array.isArray(data41)){if(data41.notEmpty !== undefined){if(typeof data41.notEmpty !== \"boolean\"){const err115 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/notEmpty\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/notEmpty/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err115];}else {vErrors.push(err115);}errors++;}}if(data41.minLength !== undefined){if(!(typeof data41.minLength == \"number\")){const err116 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/minLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/minLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data41.maxLength !== undefined){if(!(typeof data41.maxLength == \"number\")){const err117 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/maxLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/maxLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}if(data41.pattern !== undefined){let data45 = data41.pattern;const _errs125 = errors;let valid45 = false;let passing3 = null;const _errs126 = errors;if(data45 && typeof data45 == \"object\" && !Array.isArray(data45)){if(data45.value !== undefined){if(typeof data45.value !== \"string\"){const err118 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern/value\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}if(data45.message !== undefined){if(typeof data45.message !== \"string\"){const err119 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern/message\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/message/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}}else {const err120 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}var _valid13 = _errs126 === errors;if(_valid13){valid45 = true;passing3 = 0;}const _errs132 = errors;if(typeof data45 !== \"string\"){const err121 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/1/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}var _valid13 = _errs132 === errors;if(_valid13 && valid45){valid45 = false;passing3 = [passing3, 1];}else {if(_valid13){valid45 = true;passing3 = 1;}}if(!valid45){const err122 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf\",params:{passingSchemas: passing3},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}else {errors = _errs125;if(vErrors !== null){if(_errs125){vErrors.length = _errs125;}else {vErrors = null;}}}}}else {const err123 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints\",schemaPath:\"#/definitions/properties/items/properties/constraints/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}}}else {const err124 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}if(errors > 0){const emErrors0 = {\"required\":{\"binding\":[]}};const templates0 = {required:{binding:function(){return \"missing binding for property \\\"\" + JSON.stringify(i0) + \"\\\"\"}}};let emPropParams0;let emParamsErrors0;for(const err125 of vErrors){if((((((err125.keyword !== \"errorMessage\") && (!err125.emUsed)) && (err125.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0)) && (err125.keyword in emErrors0)) && (err125.schemaPath.indexOf(\"#/definitions/properties/items\") === 0)) && (/^\\/[^\\/]*$/.test(err125.schemaPath.slice(30)))){emPropParams0 = obj0[err125.keyword];emParamsErrors0 = emErrors0[err125.keyword][err125.params[emPropParams0]];if(emParamsErrors0){emParamsErrors0.push(err125);err125.emUsed = true;}}}for(const key1 in emErrors0){for(const keyProp0 in emErrors0[key1]){emParamsErrors0 = emErrors0[key1][keyProp0];if(emParamsErrors0.length){const tmpl0 = templates0[key1] && templates0[key1][keyProp0];const err126 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/errorMessage\",params:{errors: emParamsErrors0},message:tmpl0 ? tmpl0() : schema18.items.errorMessage[key1][keyProp0]};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}}}const emErrs26 = [];for(const err127 of vErrors){if(!err127.emUsed){emErrs26.push(err127);}}vErrors = emErrs26;errors = emErrs26.length;}}}else {const err128 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties\",schemaPath:\"#/definitions/properties/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}}}else {const err129 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector\",schemaPath:\"#/properties/camunda%3AConnector/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}}else {const err130 = {keyword:\"type\",dataPath,schemaPath:\"#/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}validate16.errors = vErrors;return errors === 0;}const schema21 = {\"$id\":\"#/definitions/scopes\",\"type\":\"array\",\"title\":\"element template scope\",\"description\":\"Special scoped bindings that allow you to configure nested elements\",\"items\":{\"$id\":\"#/scopes/item\",\"type\":\"object\",\"title\":\"element template scope item\",\"description\":\"Scoped binding to configure nested elements\",\"properties\":{\"type\":{\"$id\":\"#scopes/item/type\",\"type\":\"string\",\"enum\":[\"camunda:Connector\",\"bpmn:Error\"],\"errorMessage\":\"invalid scope type ${0}; must be any of { camunda:Connector, bpmn:Error }\"},\"properties\":{\"$ref\":\"#/definitions/properties\"}},\"required\":[\"type\",\"properties\"],\"errorMessage\":{\"required\":{\"type\":\"invalid scope, missing type\",\"properties\":\"invalid scope ${0/type}, missing properties=[]\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"enum\":[\"bpmn:Error\"]}},\"required\":[\"type\"]},\"then\":{\"required\":[\"id\"],\"errorMessage\":\"invalid scope ${0/type}, missing id\"}}]}};function validate18(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(Array.isArray(data)){const len0 = data.length;for(let i0=0; i0 0){const emErrs0 = [];for(const err3 of vErrors){if(((((err3.keyword !== \"errorMessage\") && (!err3.emUsed)) && ((err3.dataPath === dataPath+\"/\" + i0) || ((err3.dataPath.indexOf(dataPath+\"/\" + i0) === 0) && (err3.dataPath[dataPath+\"/\" + i0.length] === \"/\")))) && (err3.schemaPath.indexOf(\"#/items/allOf/0/then\") === 0)) && (err3.schemaPath[\"#/items/allOf/0/then\".length] === \"/\")){emErrs0.push(err3);err3.emUsed = true;}}if(emErrs0.length){const err4 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/allOf/0/then/errorMessage\",params:{errors: emErrs0},message:\"invalid scope \" + JSON.stringify(data0 && data0.type) + \", missing id\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}const emErrs1 = [];for(const err5 of vErrors){if(!err5.emUsed){emErrs1.push(err5);}}vErrors = emErrs1;errors = emErrs1.length;}var _valid0 = _errs7 === errors;valid3 = _valid0;}if(!valid3){const err6 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if(data0.type === undefined){const err7 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data0.properties === undefined){const err8 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/required\",params:{missingProperty: \"properties\"},message:\"should have required property '\"+\"properties\"+\"'\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data0.type !== undefined){let data2 = data0.type;if(typeof data2 !== \"string\"){const err9 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(!((data2 === \"camunda:Connector\") || (data2 === \"bpmn:Error\"))){const err10 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/enum\",params:{allowedValues: schema21.items.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(errors > 0){const emErrs2 = [];for(const err11 of vErrors){if(((((err11.keyword !== \"errorMessage\") && (!err11.emUsed)) && ((err11.dataPath === dataPath+\"/\" + i0+\"/type\") || ((err11.dataPath.indexOf(dataPath+\"/\" + i0+\"/type\") === 0) && (err11.dataPath[dataPath+\"/\" + i0+\"/type\".length] === \"/\")))) && (err11.schemaPath.indexOf(\"#/items/properties/type\") === 0)) && (err11.schemaPath[\"#/items/properties/type\".length] === \"/\")){emErrs2.push(err11);err11.emUsed = true;}}if(emErrs2.length){const err12 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/errorMessage\",params:{errors: emErrs2},message:\"invalid scope type \" + JSON.stringify(data2) + \"; must be any of { camunda:Connector, bpmn:Error }\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}const emErrs3 = [];for(const err13 of vErrors){if(!err13.emUsed){emErrs3.push(err13);}}vErrors = emErrs3;errors = emErrs3.length;}}if(data0.properties !== undefined){let data3 = data0.properties;if(Array.isArray(data3)){const len1 = data3.length;for(let i1=0; i1 0){const emErrs4 = [];for(const err17 of vErrors){if(((((err17.keyword !== \"errorMessage\") && (!err17.emUsed)) && ((err17.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1) || ((err17.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1) === 0) && (err17.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1.length] === \"/\")))) && (err17.schemaPath.indexOf(\"#/definitions/properties/items/allOf/0/then\") === 0)) && (err17.schemaPath[\"#/definitions/properties/items/allOf/0/then\".length] === \"/\")){emErrs4.push(err17);err17.emUsed = true;}}if(emErrs4.length){const err18 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/then/errorMessage\",params:{errors: emErrs4},message:\"must provide choices=[] with \\\"Dropdown\\\" type\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}const emErrs5 = [];for(const err19 of vErrors){if(!err19.emUsed){emErrs5.push(err19);}}vErrors = emErrs5;errors = emErrs5.length;}var _valid1 = _errs19 === errors;valid10 = _valid1;}if(!valid10){const err20 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}const _errs21 = errors;let valid12 = true;const _errs22 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err21 = {};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}else {if(data4.binding !== undefined){let data6 = data4.binding;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if((data6.type === undefined) && (\"type\")){const err22 = {};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {if(data6.type !== undefined){if(!equal(data6.type, \"property\")){const err23 = {};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}}}}}var _valid2 = _errs22 === errors;errors = _errs21;if(vErrors !== null){if(_errs21){vErrors.length = _errs21;}else {vErrors = null;}}if(_valid2){const _errs25 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){let data8 = data4.type;if(!(((((data8 === \"String\") || (data8 === \"Text\")) || (data8 === \"Hidden\")) || (data8 === \"Dropdown\")) || (data8 === \"Boolean\"))){const err24 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[1].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}if(errors > 0){const emErrs6 = [];for(const err25 of vErrors){if(((((err25.keyword !== \"errorMessage\") && (!err25.emUsed)) && ((err25.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err25.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err25.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err25.schemaPath.indexOf(\"#/definitions/properties/items/allOf/1/then/properties/type\") === 0)) && (err25.schemaPath[\"#/definitions/properties/items/allOf/1/then/properties/type\".length] === \"/\")){emErrs6.push(err25);err25.emUsed = true;}}if(emErrs6.length){const err26 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/errorMessage\",params:{errors: emErrs6},message:\"invalid property type \" + JSON.stringify(data8) + \" for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}const emErrs7 = [];for(const err27 of vErrors){if(!err27.emUsed){emErrs7.push(err27);}}vErrors = emErrs7;errors = emErrs7.length;}}}var _valid2 = _errs25 === errors;valid12 = _valid2;}if(!valid12){const err28 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}const _errs28 = errors;let valid16 = true;const _errs29 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err29 = {};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {if(data4.binding !== undefined){let data9 = data4.binding;if(data9 && typeof data9 == \"object\" && !Array.isArray(data9)){if((data9.type === undefined) && (\"type\")){const err30 = {};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}else {if(data9.type !== undefined){if(!equal(data9.type, \"camunda:executionListener\")){const err31 = {};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}}}}}var _valid3 = _errs29 === errors;errors = _errs28;if(vErrors !== null){if(_errs28){vErrors.length = _errs28;}else {vErrors = null;}}if(_valid3){const _errs32 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){if(!(data4.type === \"Hidden\")){const err32 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[2].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if(errors > 0){const emErrs8 = [];for(const err33 of vErrors){if(((((err33.keyword !== \"errorMessage\") && (!err33.emUsed)) && ((err33.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err33.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err33.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err33.schemaPath.indexOf(\"#/definitions/properties/items/allOf/2/then/properties/type\") === 0)) && (err33.schemaPath[\"#/definitions/properties/items/allOf/2/then/properties/type\".length] === \"/\")){emErrs8.push(err33);err33.emUsed = true;}}if(emErrs8.length){const err34 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/errorMessage\",params:{errors: emErrs8},message:\"invalid property type \" + JSON.stringify(data4 && data4.type) + \" for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}const emErrs9 = [];for(const err35 of vErrors){if(!err35.emUsed){emErrs9.push(err35);}}vErrors = emErrs9;errors = emErrs9.length;}}}var _valid3 = _errs32 === errors;valid16 = _valid3;}if(!valid16){const err36 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}const _errs35 = errors;let valid20 = true;const _errs36 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err37 = {};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(data4.binding !== undefined){let data12 = data4.binding;if(data12 && typeof data12 == \"object\" && !Array.isArray(data12)){if((data12.type === undefined) && (\"type\")){const err38 = {};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}else {if(data12.type !== undefined){let data13 = data12.type;if(!((((((data13 === \"camunda:property\") || (data13 === \"camunda:outputParameter\")) || (data13 === \"camunda:in\")) || (data13 === \"camunda:in:businessKey\")) || (data13 === \"camunda:out\")) || (data13 === \"camunda:errorEventDefinition\"))){const err39 = {};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}}}}}}var _valid4 = _errs36 === errors;errors = _errs35;if(vErrors !== null){if(_errs35){vErrors.length = _errs35;}else {vErrors = null;}}if(_valid4){const _errs39 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){let data14 = data4.type;if(!(((data14 === \"String\") || (data14 === \"Hidden\")) || (data14 === \"Dropdown\"))){const err40 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[3].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}if(errors > 0){const emErrs10 = [];for(const err41 of vErrors){if(((((err41.keyword !== \"errorMessage\") && (!err41.emUsed)) && ((err41.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err41.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err41.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err41.schemaPath.indexOf(\"#/definitions/properties/items/allOf/3/then/properties/type\") === 0)) && (err41.schemaPath[\"#/definitions/properties/items/allOf/3/then/properties/type\".length] === \"/\")){emErrs10.push(err41);err41.emUsed = true;}}if(emErrs10.length){const err42 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/errorMessage\",params:{errors: emErrs10},message:\"invalid property type \" + JSON.stringify(data14) + \" for binding type \" + JSON.stringify(data4 && data4.binding && data4.binding.type) + \"; must be any of { String, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}const emErrs11 = [];for(const err43 of vErrors){if(!err43.emUsed){emErrs11.push(err43);}}vErrors = emErrs11;errors = emErrs11.length;}}}var _valid4 = _errs39 === errors;valid20 = _valid4;}if(!valid20){const err44 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}const _errs42 = errors;let valid24 = true;const _errs43 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err45 = {};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}else {if(data4.binding !== undefined){let data15 = data4.binding;if(data15 && typeof data15 == \"object\" && !Array.isArray(data15)){if((data15.type === undefined) && (\"type\")){const err46 = {};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {if(data15.type !== undefined){let data16 = data15.type;if(!((data16 === \"camunda:inputParameter\") || (data16 === \"camunda:field\"))){const err47 = {};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}}}}}}var _valid5 = _errs43 === errors;errors = _errs42;if(vErrors !== null){if(_errs42){vErrors.length = _errs42;}else {vErrors = null;}}if(_valid5){const _errs46 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){let data17 = data4.type;if(!((((data17 === \"String\") || (data17 === \"Text\")) || (data17 === \"Hidden\")) || (data17 === \"Dropdown\"))){const err48 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[4].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}if(errors > 0){const emErrs12 = [];for(const err49 of vErrors){if(((((err49.keyword !== \"errorMessage\") && (!err49.emUsed)) && ((err49.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err49.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err49.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err49.schemaPath.indexOf(\"#/definitions/properties/items/allOf/4/then/properties/type\") === 0)) && (err49.schemaPath[\"#/definitions/properties/items/allOf/4/then/properties/type\".length] === \"/\")){emErrs12.push(err49);err49.emUsed = true;}}if(emErrs12.length){const err50 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/errorMessage\",params:{errors: emErrs12},message:\"invalid property type \" + JSON.stringify(data17) + \" for binding type \" + JSON.stringify(data4 && data4.binding && data4.binding.type) + \"; must be any of { String, Text, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}const emErrs13 = [];for(const err51 of vErrors){if(!err51.emUsed){emErrs13.push(err51);}}vErrors = emErrs13;errors = emErrs13.length;}}}var _valid5 = _errs46 === errors;valid24 = _valid5;}if(!valid24){const err52 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.binding === undefined){const err53 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/required\",params:{missingProperty: \"binding\"},message:\"should have required property '\"+\"binding\"+\"'\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if(data4.value !== undefined){let data18 = data4.value;if((typeof data18 !== \"string\") && (typeof data18 !== \"boolean\")){const err54 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/value\",schemaPath:\"#/definitions/properties/items/properties/value/type\",params:{type: schema18.items.properties.value.type},message:\"should be string,boolean\"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}}if(data4.description !== undefined){if(typeof data4.description !== \"string\"){const err55 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/description\",schemaPath:\"#/definitions/properties/items/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}if(data4.label !== undefined){if(typeof data4.label !== \"string\"){const err56 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/label\",schemaPath:\"#/definitions/properties/items/properties/label/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data4.type !== undefined){if(typeof data4.type !== \"string\"){const err57 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data4.editable !== undefined){if(typeof data4.editable !== \"boolean\"){const err58 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/editable\",schemaPath:\"#/definitions/properties/items/properties/editable/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}if(data4.choices !== undefined){let data23 = data4.choices;if(Array.isArray(data23)){const len2 = data23.length;for(let i2=0; i2 0){const emErrs14 = [];for(const err64 of vErrors){if(((((err64.keyword !== \"errorMessage\") && (!err64.emUsed)) && ((err64.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2) || ((err64.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2) === 0) && (err64.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2.length] === \"/\")))) && (err64.schemaPath.indexOf(\"#/definitions/properties/items/properties/choices/items\") === 0)) && (err64.schemaPath[\"#/definitions/properties/items/properties/choices/items\".length] === \"/\")){emErrs14.push(err64);err64.emUsed = true;}}if(emErrs14.length){const err65 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/errorMessage\",params:{errors: emErrs14},message:\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}const emErrs15 = [];for(const err66 of vErrors){if(!err66.emUsed){emErrs15.push(err66);}}vErrors = emErrs15;errors = emErrs15.length;}}}else {const err67 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices\",schemaPath:\"#/definitions/properties/items/properties/choices/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}}if(data4.binding !== undefined){let data27 = data4.binding;const _errs69 = errors;let valid33 = true;const _errs70 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err68 = {};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}else {if(data27.type !== undefined){let data28 = data27.type;if(!((((data28 === \"property\") || (data28 === \"camunda:property\")) || (data28 === \"camunda:inputParameter\")) || (data28 === \"camunda:field\"))){const err69 = {};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}}}}var _valid6 = _errs70 === errors;errors = _errs69;if(vErrors !== null){if(_errs69){vErrors.length = _errs69;}else {vErrors = null;}}if(_valid6){const _errs72 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.name === undefined){const err70 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}if(errors > 0){const emErrs16 = [];for(const err71 of vErrors){if(((((err71.keyword !== \"errorMessage\") && (!err71.emUsed)) && ((err71.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err71.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err71.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err71.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/0/then\") === 0)) && (err71.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/0/then\".length] === \"/\")){emErrs16.push(err71);err71.emUsed = true;}}if(emErrs16.length){const err72 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/errorMessage\",params:{errors: emErrs16},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires name\"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}const emErrs17 = [];for(const err73 of vErrors){if(!err73.emUsed){emErrs17.push(err73);}}vErrors = emErrs17;errors = emErrs17.length;}var _valid6 = _errs72 === errors;valid33 = _valid6;}if(!valid33){const err74 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}const _errs74 = errors;let valid35 = true;const _errs75 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err75 = {};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:outputParameter\")){const err76 = {};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}}}}var _valid7 = _errs75 === errors;errors = _errs74;if(vErrors !== null){if(_errs74){vErrors.length = _errs74;}else {vErrors = null;}}if(_valid7){const _errs77 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.source === undefined){const err77 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}}if(errors > 0){const emErrs18 = [];for(const err78 of vErrors){if(((((err78.keyword !== \"errorMessage\") && (!err78.emUsed)) && ((err78.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err78.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err78.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err78.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/1/then\") === 0)) && (err78.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/1/then\".length] === \"/\")){emErrs18.push(err78);err78.emUsed = true;}}if(emErrs18.length){const err79 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/errorMessage\",params:{errors: emErrs18},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires source\"};if(vErrors === null){vErrors = [err79];}else {vErrors.push(err79);}errors++;}const emErrs19 = [];for(const err80 of vErrors){if(!err80.emUsed){emErrs19.push(err80);}}vErrors = emErrs19;errors = emErrs19.length;}var _valid7 = _errs77 === errors;valid35 = _valid7;}if(!valid35){const err81 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}const _errs79 = errors;let valid37 = true;const _errs80 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err82 = {};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:in\")){const err83 = {};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}}}}var _valid8 = _errs80 === errors;errors = _errs79;if(vErrors !== null){if(_errs79){vErrors.length = _errs79;}else {vErrors = null;}}if(_valid8){const _errs82 = errors;const _errs83 = errors;let valid39 = false;let passing0 = null;const _errs84 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.variables === undefined){const err84 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}}var _valid9 = _errs84 === errors;if(_valid9){valid39 = true;passing0 = 0;}const _errs85 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.target === undefined){const err85 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/1/required\",params:{missingProperty: \"target\"},message:\"should have required property '\"+\"target\"+\"'\"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}}var _valid9 = _errs85 === errors;if(_valid9 && valid39){valid39 = false;passing0 = [passing0, 1];}else {if(_valid9){valid39 = true;passing0 = 1;}}if(!valid39){const err86 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}else {errors = _errs83;if(vErrors !== null){if(_errs83){vErrors.length = _errs83;}else {vErrors = null;}}}if(errors > 0){const emErrs20 = [];for(const err87 of vErrors){if(((((err87.keyword !== \"errorMessage\") && (!err87.emUsed)) && ((err87.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err87.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err87.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err87.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/2/then\") === 0)) && (err87.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/2/then\".length] === \"/\")){emErrs20.push(err87);err87.emUsed = true;}}if(emErrs20.length){const err88 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/errorMessage\",params:{errors: emErrs20},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires variables or target\"};if(vErrors === null){vErrors = [err88];}else {vErrors.push(err88);}errors++;}const emErrs21 = [];for(const err89 of vErrors){if(!err89.emUsed){emErrs21.push(err89);}}vErrors = emErrs21;errors = emErrs21.length;}var _valid8 = _errs82 === errors;valid37 = _valid8;}if(!valid37){const err90 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err90];}else {vErrors.push(err90);}errors++;}const _errs87 = errors;let valid40 = true;const _errs88 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err91 = {};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:out\")){const err92 = {};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}}}}var _valid10 = _errs88 === errors;errors = _errs87;if(vErrors !== null){if(_errs87){vErrors.length = _errs87;}else {vErrors = null;}}if(_valid10){const _errs90 = errors;const _errs91 = errors;let valid42 = false;let passing1 = null;const _errs92 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.variables === undefined){const err93 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}}var _valid11 = _errs92 === errors;if(_valid11){valid42 = true;passing1 = 0;}const _errs93 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.source === undefined){const err94 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/1/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}}var _valid11 = _errs93 === errors;if(_valid11 && valid42){valid42 = false;passing1 = [passing1, 1];}else {if(_valid11){valid42 = true;passing1 = 1;}const _errs94 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.sourceExpression === undefined){const err95 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/2/required\",params:{missingProperty: \"sourceExpression\"},message:\"should have required property '\"+\"sourceExpression\"+\"'\"};if(vErrors === null){vErrors = [err95];}else {vErrors.push(err95);}errors++;}}var _valid11 = _errs94 === errors;if(_valid11 && valid42){valid42 = false;passing1 = [passing1, 2];}else {if(_valid11){valid42 = true;passing1 = 2;}}}if(!valid42){const err96 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf\",params:{passingSchemas: passing1},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}else {errors = _errs91;if(vErrors !== null){if(_errs91){vErrors.length = _errs91;}else {vErrors = null;}}}if(errors > 0){const emErrs22 = [];for(const err97 of vErrors){if(((((err97.keyword !== \"errorMessage\") && (!err97.emUsed)) && ((err97.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err97.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err97.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err97.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/3/then\") === 0)) && (err97.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/3/then\".length] === \"/\")){emErrs22.push(err97);err97.emUsed = true;}}if(emErrs22.length){const err98 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/errorMessage\",params:{errors: emErrs22},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires variables, sourceExpression or source\"};if(vErrors === null){vErrors = [err98];}else {vErrors.push(err98);}errors++;}const emErrs23 = [];for(const err99 of vErrors){if(!err99.emUsed){emErrs23.push(err99);}}vErrors = emErrs23;errors = emErrs23.length;}var _valid10 = _errs90 === errors;valid40 = _valid10;}if(!valid40){const err100 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err100];}else {vErrors.push(err100);}errors++;}const _errs96 = errors;let valid43 = true;const _errs97 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err101 = {};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:errorEventDefinition\")){const err102 = {};if(vErrors === null){vErrors = [err102];}else {vErrors.push(err102);}errors++;}}}}var _valid12 = _errs97 === errors;errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}if(_valid12){const _errs99 = errors;const _errs100 = errors;let valid45 = false;let passing2 = null;const _errs101 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.errorRef === undefined){const err103 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf/0/required\",params:{missingProperty: \"errorRef\"},message:\"should have required property '\"+\"errorRef\"+\"'\"};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}}var _valid13 = _errs101 === errors;if(_valid13){valid45 = true;passing2 = 0;}if(!valid45){const err104 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf\",params:{passingSchemas: passing2},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err104];}else {vErrors.push(err104);}errors++;}else {errors = _errs100;if(vErrors !== null){if(_errs100){vErrors.length = _errs100;}else {vErrors = null;}}}if(errors > 0){const emErrs24 = [];for(const err105 of vErrors){if(((((err105.keyword !== \"errorMessage\") && (!err105.emUsed)) && ((err105.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err105.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err105.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err105.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/4/then\") === 0)) && (err105.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/4/then\".length] === \"/\")){emErrs24.push(err105);err105.emUsed = true;}}if(emErrs24.length){const err106 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/errorMessage\",params:{errors: emErrs24},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires errorRef\"};if(vErrors === null){vErrors = [err106];}else {vErrors.push(err106);}errors++;}const emErrs25 = [];for(const err107 of vErrors){if(!err107.emUsed){emErrs25.push(err107);}}vErrors = emErrs25;errors = emErrs25.length;}var _valid12 = _errs99 === errors;valid43 = _valid12;}if(!valid43){const err108 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err108];}else {vErrors.push(err108);}errors++;}if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.type === undefined){const err109 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}if(data27.type !== undefined){let data33 = data27.type;if(typeof data33 !== \"string\"){const err110 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}if(!((((((((((data33 === \"property\") || (data33 === \"camunda:property\")) || (data33 === \"camunda:inputParameter\")) || (data33 === \"camunda:outputParameter\")) || (data33 === \"camunda:in\")) || (data33 === \"camunda:out\")) || (data33 === \"camunda:in:businessKey\")) || (data33 === \"camunda:executionListener\")) || (data33 === \"camunda:field\")) || (data33 === \"camunda:errorEventDefinition\"))){const err111 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/enum\",params:{allowedValues: schema18.items.properties.binding.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if(errors > 0){const emErrs26 = [];for(const err112 of vErrors){if(((((err112.keyword !== \"errorMessage\") && (!err112.emUsed)) && ((err112.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\") || ((err112.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\") === 0) && (err112.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\".length] === \"/\")))) && (err112.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/properties/type\") === 0)) && (err112.schemaPath[\"#/definitions/properties/items/properties/binding/properties/type\".length] === \"/\")){emErrs26.push(err112);err112.emUsed = true;}}if(emErrs26.length){const err113 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/errorMessage\",params:{errors: emErrs26},message:\"invalid property.binding type \" + JSON.stringify(data33) + \"; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\"};if(vErrors === null){vErrors = [err113];}else {vErrors.push(err113);}errors++;}const emErrs27 = [];for(const err114 of vErrors){if(!err114.emUsed){emErrs27.push(err114);}}vErrors = emErrs27;errors = emErrs27.length;}}if(data27.name !== undefined){if(typeof data27.name !== \"string\"){const err115 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/name\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err115];}else {vErrors.push(err115);}errors++;}}if(data27.event !== undefined){if(typeof data27.event !== \"string\"){const err116 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/event\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/event/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data27.scriptFormat !== undefined){if(typeof data27.scriptFormat !== \"string\"){const err117 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/scriptFormat\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/scriptFormat/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}if(data27.source !== undefined){if(typeof data27.source !== \"string\"){const err118 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/source\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/source/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}if(data27.target !== undefined){if(typeof data27.target !== \"string\"){const err119 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/target\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/target/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}if(data27.expression !== undefined){if(typeof data27.expression !== \"boolean\"){const err120 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/expression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/expression/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}}if(data27.variables !== undefined){let data40 = data27.variables;if(typeof data40 !== \"string\"){const err121 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}if(!((data40 === \"all\") || (data40 === \"local\"))){const err122 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/enum\",params:{allowedValues: schema18.items.properties.binding.properties.variables.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}}if(data27.sourceExpression !== undefined){if(typeof data27.sourceExpression !== \"string\"){const err123 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/sourceExpression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/sourceExpression/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}}}else {const err124 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}}if(data4.constraints !== undefined){let data42 = data4.constraints;if(data42 && typeof data42 == \"object\" && !Array.isArray(data42)){if(data42.notEmpty !== undefined){if(typeof data42.notEmpty !== \"boolean\"){const err125 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/notEmpty\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/notEmpty/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err125];}else {vErrors.push(err125);}errors++;}}if(data42.minLength !== undefined){if(!(typeof data42.minLength == \"number\")){const err126 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/minLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/minLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}}if(data42.maxLength !== undefined){if(!(typeof data42.maxLength == \"number\")){const err127 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/maxLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/maxLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err127];}else {vErrors.push(err127);}errors++;}}if(data42.pattern !== undefined){let data46 = data42.pattern;const _errs129 = errors;let valid48 = false;let passing3 = null;const _errs130 = errors;if(data46 && typeof data46 == \"object\" && !Array.isArray(data46)){if(data46.value !== undefined){if(typeof data46.value !== \"string\"){const err128 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern/value\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}}if(data46.message !== undefined){if(typeof data46.message !== \"string\"){const err129 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern/message\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/message/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}}else {const err130 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}var _valid14 = _errs130 === errors;if(_valid14){valid48 = true;passing3 = 0;}const _errs136 = errors;if(typeof data46 !== \"string\"){const err131 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/1/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err131];}else {vErrors.push(err131);}errors++;}var _valid14 = _errs136 === errors;if(_valid14 && valid48){valid48 = false;passing3 = [passing3, 1];}else {if(_valid14){valid48 = true;passing3 = 1;}}if(!valid48){const err132 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf\",params:{passingSchemas: passing3},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err132];}else {vErrors.push(err132);}errors++;}else {errors = _errs129;if(vErrors !== null){if(_errs129){vErrors.length = _errs129;}else {vErrors = null;}}}}}else {const err133 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints\",schemaPath:\"#/definitions/properties/items/properties/constraints/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err133];}else {vErrors.push(err133);}errors++;}}}else {const err134 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err134];}else {vErrors.push(err134);}errors++;}if(errors > 0){const emErrors0 = {\"required\":{\"binding\":[]}};const templates0 = {required:{binding:function(){return \"missing binding for property \\\"\" + JSON.stringify(i1) + \"\\\"\"}}};let emPropParams0;let emParamsErrors0;for(const err135 of vErrors){if((((((err135.keyword !== \"errorMessage\") && (!err135.emUsed)) && (err135.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1)) && (err135.keyword in emErrors0)) && (err135.schemaPath.indexOf(\"#/definitions/properties/items\") === 0)) && (/^\\/[^\\/]*$/.test(err135.schemaPath.slice(30)))){emPropParams0 = obj0[err135.keyword];emParamsErrors0 = emErrors0[err135.keyword][err135.params[emPropParams0]];if(emParamsErrors0){emParamsErrors0.push(err135);err135.emUsed = true;}}}for(const key0 in emErrors0){for(const keyProp0 in emErrors0[key0]){emParamsErrors0 = emErrors0[key0][keyProp0];if(emParamsErrors0.length){const tmpl0 = templates0[key0] && templates0[key0][keyProp0];const err136 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/errorMessage\",params:{errors: emParamsErrors0},message:tmpl0 ? tmpl0() : schema18.items.errorMessage[key0][keyProp0]};if(vErrors === null){vErrors = [err136];}else {vErrors.push(err136);}errors++;}}}const emErrs28 = [];for(const err137 of vErrors){if(!err137.emUsed){emErrs28.push(err137);}}vErrors = emErrs28;errors = emErrs28.length;}}}else {const err138 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties\",schemaPath:\"#/definitions/properties/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err138];}else {vErrors.push(err138);}errors++;}}}else {const err139 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err139];}else {vErrors.push(err139);}errors++;}if(errors > 0){const emErrors1 = {\"required\":{\"type\":[],\"properties\":[]}};const templates1 = {required:{properties:function(){return \"invalid scope \" + JSON.stringify(data0 && data0.type) + \", missing properties=[]\"}}};let emPropParams1;let emParamsErrors1;for(const err140 of vErrors){if((((((err140.keyword !== \"errorMessage\") && (!err140.emUsed)) && (err140.dataPath === dataPath+\"/\" + i0)) && (err140.keyword in emErrors1)) && (err140.schemaPath.indexOf(\"#/items\") === 0)) && (/^\\/[^\\/]*$/.test(err140.schemaPath.slice(7)))){emPropParams1 = obj0[err140.keyword];emParamsErrors1 = emErrors1[err140.keyword][err140.params[emPropParams1]];if(emParamsErrors1){emParamsErrors1.push(err140);err140.emUsed = true;}}}for(const key1 in emErrors1){for(const keyProp1 in emErrors1[key1]){emParamsErrors1 = emErrors1[key1][keyProp1];if(emParamsErrors1.length){const tmpl1 = templates1[key1] && templates1[key1][keyProp1];const err141 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/errorMessage\",params:{errors: emParamsErrors1},message:tmpl1 ? tmpl1() : schema21.items.errorMessage[key1][keyProp1]};if(vErrors === null){vErrors = [err141];}else {vErrors.push(err141);}errors++;}}}const emErrs29 = [];for(const err142 of vErrors){if(!err142.emUsed){emErrs29.push(err142);}}vErrors = emErrs29;errors = emErrs29.length;}}}else {const err143 = {keyword:\"type\",dataPath,schemaPath:\"#/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err143];}else {vErrors.push(err143);}errors++;}validate18.errors = vErrors;return errors === 0;}function validate15(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.name === undefined){const err0 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.id === undefined){const err1 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"id\"},message:\"should have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.appliesTo === undefined){const err2 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"appliesTo\"},message:\"should have required property '\"+\"appliesTo\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.properties === undefined){const err3 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"properties\"},message:\"should have required property '\"+\"properties\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.name !== undefined){if(typeof data.name !== \"string\"){const err4 = {keyword:\"type\",dataPath:dataPath+\"/name\",schemaPath:\"#/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.id !== undefined){if(typeof data.id !== \"string\"){const err5 = {keyword:\"type\",dataPath:dataPath+\"/id\",schemaPath:\"#/properties/id/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.description !== undefined){if(typeof data.description !== \"string\"){const err6 = {keyword:\"type\",dataPath:dataPath+\"/description\",schemaPath:\"#/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.version !== undefined){if(!(typeof data.version == \"number\")){const err7 = {keyword:\"type\",dataPath:dataPath+\"/version\",schemaPath:\"#/properties/version/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.isDefault !== undefined){if(typeof data.isDefault !== \"boolean\"){const err8 = {keyword:\"type\",dataPath:dataPath+\"/isDefault\",schemaPath:\"#/properties/isDefault/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.appliesTo !== undefined){let data5 = data.appliesTo;if(Array.isArray(data5)){const len0 = data5.length;for(let i0=0; i0 0){const emErrors0 = {\"pattern\":[]};const templates0 = {};for(const err11 of vErrors){if((((((err11.keyword !== \"errorMessage\") && (!err11.emUsed)) && (err11.dataPath === dataPath+\"/appliesTo/\" + i0)) && (err11.keyword in emErrors0)) && (err11.schemaPath.indexOf(\"#/properties/appliesTo/items\") === 0)) && (/^\\/[^\\/]*$/.test(err11.schemaPath.slice(28)))){emErrors0[err11.keyword].push(err11);err11.emUsed = true;}}for(const key0 in emErrors0){if(emErrors0[key0].length){const err12 = {keyword:\"errorMessage\",dataPath:dataPath+\"/appliesTo/\" + i0,schemaPath:\"#/properties/appliesTo/items/errorMessage\",params:{errors: emErrors0[key0]},message:key0 in templates0 ? templates0[key0]() : schema17.properties.appliesTo.items.errorMessage[key0]};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}const emErrs0 = [];for(const err13 of vErrors){if(!err13.emUsed){emErrs0.push(err13);}}vErrors = emErrs0;errors = emErrs0.length;}}}else {const err14 = {keyword:\"type\",dataPath:dataPath+\"/appliesTo\",schemaPath:\"#/properties/appliesTo/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.properties !== undefined){let data7 = data.properties;if(Array.isArray(data7)){const len1 = data7.length;for(let i1=0; i1 0){const emErrs1 = [];for(const err18 of vErrors){if(((((err18.keyword !== \"errorMessage\") && (!err18.emUsed)) && ((err18.dataPath === dataPath+\"/properties/\" + i1) || ((err18.dataPath.indexOf(dataPath+\"/properties/\" + i1) === 0) && (err18.dataPath[dataPath+\"/properties/\" + i1.length] === \"/\")))) && (err18.schemaPath.indexOf(\"#/definitions/properties/items/allOf/0/then\") === 0)) && (err18.schemaPath[\"#/definitions/properties/items/allOf/0/then\".length] === \"/\")){emErrs1.push(err18);err18.emUsed = true;}}if(emErrs1.length){const err19 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/then/errorMessage\",params:{errors: emErrs1},message:\"must provide choices=[] with \\\"Dropdown\\\" type\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}const emErrs2 = [];for(const err20 of vErrors){if(!err20.emUsed){emErrs2.push(err20);}}vErrors = emErrs2;errors = emErrs2.length;}var _valid0 = _errs24 === errors;valid7 = _valid0;}if(!valid7){const err21 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}const _errs26 = errors;let valid9 = true;const _errs27 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err22 = {};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {if(data8.binding !== undefined){let data10 = data8.binding;if(data10 && typeof data10 == \"object\" && !Array.isArray(data10)){if((data10.type === undefined) && (\"type\")){const err23 = {};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data10.type !== undefined){if(!equal(data10.type, \"property\")){const err24 = {};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}}}}var _valid1 = _errs27 === errors;errors = _errs26;if(vErrors !== null){if(_errs26){vErrors.length = _errs26;}else {vErrors = null;}}if(_valid1){const _errs30 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){let data12 = data8.type;if(!(((((data12 === \"String\") || (data12 === \"Text\")) || (data12 === \"Hidden\")) || (data12 === \"Dropdown\")) || (data12 === \"Boolean\"))){const err25 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[1].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if(errors > 0){const emErrs3 = [];for(const err26 of vErrors){if(((((err26.keyword !== \"errorMessage\") && (!err26.emUsed)) && ((err26.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err26.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err26.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err26.schemaPath.indexOf(\"#/definitions/properties/items/allOf/1/then/properties/type\") === 0)) && (err26.schemaPath[\"#/definitions/properties/items/allOf/1/then/properties/type\".length] === \"/\")){emErrs3.push(err26);err26.emUsed = true;}}if(emErrs3.length){const err27 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/errorMessage\",params:{errors: emErrs3},message:\"invalid property type \" + JSON.stringify(data12) + \" for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}const emErrs4 = [];for(const err28 of vErrors){if(!err28.emUsed){emErrs4.push(err28);}}vErrors = emErrs4;errors = emErrs4.length;}}}var _valid1 = _errs30 === errors;valid9 = _valid1;}if(!valid9){const err29 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}const _errs33 = errors;let valid13 = true;const _errs34 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err30 = {};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}else {if(data8.binding !== undefined){let data13 = data8.binding;if(data13 && typeof data13 == \"object\" && !Array.isArray(data13)){if((data13.type === undefined) && (\"type\")){const err31 = {};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(data13.type !== undefined){if(!equal(data13.type, \"camunda:executionListener\")){const err32 = {};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}}}}}var _valid2 = _errs34 === errors;errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}if(_valid2){const _errs37 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){if(!(data8.type === \"Hidden\")){const err33 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[2].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(errors > 0){const emErrs5 = [];for(const err34 of vErrors){if(((((err34.keyword !== \"errorMessage\") && (!err34.emUsed)) && ((err34.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err34.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err34.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err34.schemaPath.indexOf(\"#/definitions/properties/items/allOf/2/then/properties/type\") === 0)) && (err34.schemaPath[\"#/definitions/properties/items/allOf/2/then/properties/type\".length] === \"/\")){emErrs5.push(err34);err34.emUsed = true;}}if(emErrs5.length){const err35 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/errorMessage\",params:{errors: emErrs5},message:\"invalid property type \" + JSON.stringify(data8 && data8.type) + \" for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}const emErrs6 = [];for(const err36 of vErrors){if(!err36.emUsed){emErrs6.push(err36);}}vErrors = emErrs6;errors = emErrs6.length;}}}var _valid2 = _errs37 === errors;valid13 = _valid2;}if(!valid13){const err37 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}const _errs40 = errors;let valid17 = true;const _errs41 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err38 = {};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}else {if(data8.binding !== undefined){let data16 = data8.binding;if(data16 && typeof data16 == \"object\" && !Array.isArray(data16)){if((data16.type === undefined) && (\"type\")){const err39 = {};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}else {if(data16.type !== undefined){let data17 = data16.type;if(!((((((data17 === \"camunda:property\") || (data17 === \"camunda:outputParameter\")) || (data17 === \"camunda:in\")) || (data17 === \"camunda:in:businessKey\")) || (data17 === \"camunda:out\")) || (data17 === \"camunda:errorEventDefinition\"))){const err40 = {};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}}}}}}var _valid3 = _errs41 === errors;errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}if(_valid3){const _errs44 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){let data18 = data8.type;if(!(((data18 === \"String\") || (data18 === \"Hidden\")) || (data18 === \"Dropdown\"))){const err41 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[3].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if(errors > 0){const emErrs7 = [];for(const err42 of vErrors){if(((((err42.keyword !== \"errorMessage\") && (!err42.emUsed)) && ((err42.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err42.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err42.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err42.schemaPath.indexOf(\"#/definitions/properties/items/allOf/3/then/properties/type\") === 0)) && (err42.schemaPath[\"#/definitions/properties/items/allOf/3/then/properties/type\".length] === \"/\")){emErrs7.push(err42);err42.emUsed = true;}}if(emErrs7.length){const err43 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/errorMessage\",params:{errors: emErrs7},message:\"invalid property type \" + JSON.stringify(data18) + \" for binding type \" + JSON.stringify(data8 && data8.binding && data8.binding.type) + \"; must be any of { String, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}const emErrs8 = [];for(const err44 of vErrors){if(!err44.emUsed){emErrs8.push(err44);}}vErrors = emErrs8;errors = emErrs8.length;}}}var _valid3 = _errs44 === errors;valid17 = _valid3;}if(!valid17){const err45 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}const _errs47 = errors;let valid21 = true;const _errs48 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err46 = {};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {if(data8.binding !== undefined){let data19 = data8.binding;if(data19 && typeof data19 == \"object\" && !Array.isArray(data19)){if((data19.type === undefined) && (\"type\")){const err47 = {};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}else {if(data19.type !== undefined){let data20 = data19.type;if(!((data20 === \"camunda:inputParameter\") || (data20 === \"camunda:field\"))){const err48 = {};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}}}}}}var _valid4 = _errs48 === errors;errors = _errs47;if(vErrors !== null){if(_errs47){vErrors.length = _errs47;}else {vErrors = null;}}if(_valid4){const _errs51 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){let data21 = data8.type;if(!((((data21 === \"String\") || (data21 === \"Text\")) || (data21 === \"Hidden\")) || (data21 === \"Dropdown\"))){const err49 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[4].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(errors > 0){const emErrs9 = [];for(const err50 of vErrors){if(((((err50.keyword !== \"errorMessage\") && (!err50.emUsed)) && ((err50.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err50.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err50.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err50.schemaPath.indexOf(\"#/definitions/properties/items/allOf/4/then/properties/type\") === 0)) && (err50.schemaPath[\"#/definitions/properties/items/allOf/4/then/properties/type\".length] === \"/\")){emErrs9.push(err50);err50.emUsed = true;}}if(emErrs9.length){const err51 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/errorMessage\",params:{errors: emErrs9},message:\"invalid property type \" + JSON.stringify(data21) + \" for binding type \" + JSON.stringify(data8 && data8.binding && data8.binding.type) + \"; must be any of { String, Text, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}const emErrs10 = [];for(const err52 of vErrors){if(!err52.emUsed){emErrs10.push(err52);}}vErrors = emErrs10;errors = emErrs10.length;}}}var _valid4 = _errs51 === errors;valid21 = _valid4;}if(!valid21){const err53 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.binding === undefined){const err54 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/required\",params:{missingProperty: \"binding\"},message:\"should have required property '\"+\"binding\"+\"'\"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}if(data8.value !== undefined){let data22 = data8.value;if((typeof data22 !== \"string\") && (typeof data22 !== \"boolean\")){const err55 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/value\",schemaPath:\"#/definitions/properties/items/properties/value/type\",params:{type: schema18.items.properties.value.type},message:\"should be string,boolean\"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}if(data8.description !== undefined){if(typeof data8.description !== \"string\"){const err56 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/description\",schemaPath:\"#/definitions/properties/items/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data8.label !== undefined){if(typeof data8.label !== \"string\"){const err57 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/label\",schemaPath:\"#/definitions/properties/items/properties/label/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data8.type !== undefined){if(typeof data8.type !== \"string\"){const err58 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}if(data8.editable !== undefined){if(typeof data8.editable !== \"boolean\"){const err59 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/editable\",schemaPath:\"#/definitions/properties/items/properties/editable/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}if(data8.choices !== undefined){let data27 = data8.choices;if(Array.isArray(data27)){const len2 = data27.length;for(let i2=0; i2 0){const emErrs11 = [];for(const err65 of vErrors){if(((((err65.keyword !== \"errorMessage\") && (!err65.emUsed)) && ((err65.dataPath === dataPath+\"/properties/\" + i1+\"/choices/\" + i2) || ((err65.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/choices/\" + i2) === 0) && (err65.dataPath[dataPath+\"/properties/\" + i1+\"/choices/\" + i2.length] === \"/\")))) && (err65.schemaPath.indexOf(\"#/definitions/properties/items/properties/choices/items\") === 0)) && (err65.schemaPath[\"#/definitions/properties/items/properties/choices/items\".length] === \"/\")){emErrs11.push(err65);err65.emUsed = true;}}if(emErrs11.length){const err66 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/errorMessage\",params:{errors: emErrs11},message:\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}const emErrs12 = [];for(const err67 of vErrors){if(!err67.emUsed){emErrs12.push(err67);}}vErrors = emErrs12;errors = emErrs12.length;}}}else {const err68 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/choices\",schemaPath:\"#/definitions/properties/items/properties/choices/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}}if(data8.binding !== undefined){let data31 = data8.binding;const _errs74 = errors;let valid30 = true;const _errs75 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err69 = {};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}else {if(data31.type !== undefined){let data32 = data31.type;if(!((((data32 === \"property\") || (data32 === \"camunda:property\")) || (data32 === \"camunda:inputParameter\")) || (data32 === \"camunda:field\"))){const err70 = {};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}}}var _valid5 = _errs75 === errors;errors = _errs74;if(vErrors !== null){if(_errs74){vErrors.length = _errs74;}else {vErrors = null;}}if(_valid5){const _errs77 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.name === undefined){const err71 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}if(errors > 0){const emErrs13 = [];for(const err72 of vErrors){if(((((err72.keyword !== \"errorMessage\") && (!err72.emUsed)) && ((err72.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err72.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err72.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err72.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/0/then\") === 0)) && (err72.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/0/then\".length] === \"/\")){emErrs13.push(err72);err72.emUsed = true;}}if(emErrs13.length){const err73 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/errorMessage\",params:{errors: emErrs13},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires name\"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}const emErrs14 = [];for(const err74 of vErrors){if(!err74.emUsed){emErrs14.push(err74);}}vErrors = emErrs14;errors = emErrs14.length;}var _valid5 = _errs77 === errors;valid30 = _valid5;}if(!valid30){const err75 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}const _errs79 = errors;let valid32 = true;const _errs80 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err76 = {};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:outputParameter\")){const err77 = {};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}}}}var _valid6 = _errs80 === errors;errors = _errs79;if(vErrors !== null){if(_errs79){vErrors.length = _errs79;}else {vErrors = null;}}if(_valid6){const _errs82 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.source === undefined){const err78 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}}if(errors > 0){const emErrs15 = [];for(const err79 of vErrors){if(((((err79.keyword !== \"errorMessage\") && (!err79.emUsed)) && ((err79.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err79.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err79.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err79.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/1/then\") === 0)) && (err79.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/1/then\".length] === \"/\")){emErrs15.push(err79);err79.emUsed = true;}}if(emErrs15.length){const err80 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/errorMessage\",params:{errors: emErrs15},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires source\"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}const emErrs16 = [];for(const err81 of vErrors){if(!err81.emUsed){emErrs16.push(err81);}}vErrors = emErrs16;errors = emErrs16.length;}var _valid6 = _errs82 === errors;valid32 = _valid6;}if(!valid32){const err82 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}const _errs84 = errors;let valid34 = true;const _errs85 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err83 = {};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:in\")){const err84 = {};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}}}}var _valid7 = _errs85 === errors;errors = _errs84;if(vErrors !== null){if(_errs84){vErrors.length = _errs84;}else {vErrors = null;}}if(_valid7){const _errs87 = errors;const _errs88 = errors;let valid36 = false;let passing0 = null;const _errs89 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.variables === undefined){const err85 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}}var _valid8 = _errs89 === errors;if(_valid8){valid36 = true;passing0 = 0;}const _errs90 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.target === undefined){const err86 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/1/required\",params:{missingProperty: \"target\"},message:\"should have required property '\"+\"target\"+\"'\"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}}var _valid8 = _errs90 === errors;if(_valid8 && valid36){valid36 = false;passing0 = [passing0, 1];}else {if(_valid8){valid36 = true;passing0 = 1;}}if(!valid36){const err87 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err87];}else {vErrors.push(err87);}errors++;}else {errors = _errs88;if(vErrors !== null){if(_errs88){vErrors.length = _errs88;}else {vErrors = null;}}}if(errors > 0){const emErrs17 = [];for(const err88 of vErrors){if(((((err88.keyword !== \"errorMessage\") && (!err88.emUsed)) && ((err88.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err88.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err88.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err88.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/2/then\") === 0)) && (err88.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/2/then\".length] === \"/\")){emErrs17.push(err88);err88.emUsed = true;}}if(emErrs17.length){const err89 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/errorMessage\",params:{errors: emErrs17},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires variables or target\"};if(vErrors === null){vErrors = [err89];}else {vErrors.push(err89);}errors++;}const emErrs18 = [];for(const err90 of vErrors){if(!err90.emUsed){emErrs18.push(err90);}}vErrors = emErrs18;errors = emErrs18.length;}var _valid7 = _errs87 === errors;valid34 = _valid7;}if(!valid34){const err91 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}const _errs92 = errors;let valid37 = true;const _errs93 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err92 = {};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:out\")){const err93 = {};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}}}}var _valid9 = _errs93 === errors;errors = _errs92;if(vErrors !== null){if(_errs92){vErrors.length = _errs92;}else {vErrors = null;}}if(_valid9){const _errs95 = errors;const _errs96 = errors;let valid39 = false;let passing1 = null;const _errs97 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.variables === undefined){const err94 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}}var _valid10 = _errs97 === errors;if(_valid10){valid39 = true;passing1 = 0;}const _errs98 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.source === undefined){const err95 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/1/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err95];}else {vErrors.push(err95);}errors++;}}var _valid10 = _errs98 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 1];}else {if(_valid10){valid39 = true;passing1 = 1;}const _errs99 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.sourceExpression === undefined){const err96 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/2/required\",params:{missingProperty: \"sourceExpression\"},message:\"should have required property '\"+\"sourceExpression\"+\"'\"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}}var _valid10 = _errs99 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 2];}else {if(_valid10){valid39 = true;passing1 = 2;}}}if(!valid39){const err97 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf\",params:{passingSchemas: passing1},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err97];}else {vErrors.push(err97);}errors++;}else {errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}}if(errors > 0){const emErrs19 = [];for(const err98 of vErrors){if(((((err98.keyword !== \"errorMessage\") && (!err98.emUsed)) && ((err98.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err98.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err98.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err98.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/3/then\") === 0)) && (err98.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/3/then\".length] === \"/\")){emErrs19.push(err98);err98.emUsed = true;}}if(emErrs19.length){const err99 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/errorMessage\",params:{errors: emErrs19},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires variables, sourceExpression or source\"};if(vErrors === null){vErrors = [err99];}else {vErrors.push(err99);}errors++;}const emErrs20 = [];for(const err100 of vErrors){if(!err100.emUsed){emErrs20.push(err100);}}vErrors = emErrs20;errors = emErrs20.length;}var _valid9 = _errs95 === errors;valid37 = _valid9;}if(!valid37){const err101 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}const _errs101 = errors;let valid40 = true;const _errs102 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err102 = {};if(vErrors === null){vErrors = [err102];}else {vErrors.push(err102);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:errorEventDefinition\")){const err103 = {};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}}}}var _valid11 = _errs102 === errors;errors = _errs101;if(vErrors !== null){if(_errs101){vErrors.length = _errs101;}else {vErrors = null;}}if(_valid11){const _errs104 = errors;const _errs105 = errors;let valid42 = false;let passing2 = null;const _errs106 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.errorRef === undefined){const err104 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf/0/required\",params:{missingProperty: \"errorRef\"},message:\"should have required property '\"+\"errorRef\"+\"'\"};if(vErrors === null){vErrors = [err104];}else {vErrors.push(err104);}errors++;}}var _valid12 = _errs106 === errors;if(_valid12){valid42 = true;passing2 = 0;}if(!valid42){const err105 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf\",params:{passingSchemas: passing2},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err105];}else {vErrors.push(err105);}errors++;}else {errors = _errs105;if(vErrors !== null){if(_errs105){vErrors.length = _errs105;}else {vErrors = null;}}}if(errors > 0){const emErrs21 = [];for(const err106 of vErrors){if(((((err106.keyword !== \"errorMessage\") && (!err106.emUsed)) && ((err106.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err106.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err106.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err106.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/4/then\") === 0)) && (err106.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/4/then\".length] === \"/\")){emErrs21.push(err106);err106.emUsed = true;}}if(emErrs21.length){const err107 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/errorMessage\",params:{errors: emErrs21},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires errorRef\"};if(vErrors === null){vErrors = [err107];}else {vErrors.push(err107);}errors++;}const emErrs22 = [];for(const err108 of vErrors){if(!err108.emUsed){emErrs22.push(err108);}}vErrors = emErrs22;errors = emErrs22.length;}var _valid11 = _errs104 === errors;valid40 = _valid11;}if(!valid40){const err109 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.type === undefined){const err110 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}if(data31.type !== undefined){let data37 = data31.type;if(typeof data37 !== \"string\"){const err111 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if(!((((((((((data37 === \"property\") || (data37 === \"camunda:property\")) || (data37 === \"camunda:inputParameter\")) || (data37 === \"camunda:outputParameter\")) || (data37 === \"camunda:in\")) || (data37 === \"camunda:out\")) || (data37 === \"camunda:in:businessKey\")) || (data37 === \"camunda:executionListener\")) || (data37 === \"camunda:field\")) || (data37 === \"camunda:errorEventDefinition\"))){const err112 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/enum\",params:{allowedValues: schema18.items.properties.binding.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err112];}else {vErrors.push(err112);}errors++;}if(errors > 0){const emErrs23 = [];for(const err113 of vErrors){if(((((err113.keyword !== \"errorMessage\") && (!err113.emUsed)) && ((err113.dataPath === dataPath+\"/properties/\" + i1+\"/binding/type\") || ((err113.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding/type\") === 0) && (err113.dataPath[dataPath+\"/properties/\" + i1+\"/binding/type\".length] === \"/\")))) && (err113.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/properties/type\") === 0)) && (err113.schemaPath[\"#/definitions/properties/items/properties/binding/properties/type\".length] === \"/\")){emErrs23.push(err113);err113.emUsed = true;}}if(emErrs23.length){const err114 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/errorMessage\",params:{errors: emErrs23},message:\"invalid property.binding type \" + JSON.stringify(data37) + \"; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\"};if(vErrors === null){vErrors = [err114];}else {vErrors.push(err114);}errors++;}const emErrs24 = [];for(const err115 of vErrors){if(!err115.emUsed){emErrs24.push(err115);}}vErrors = emErrs24;errors = emErrs24.length;}}if(data31.name !== undefined){if(typeof data31.name !== \"string\"){const err116 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/name\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data31.event !== undefined){if(typeof data31.event !== \"string\"){const err117 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/event\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/event/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}if(data31.scriptFormat !== undefined){if(typeof data31.scriptFormat !== \"string\"){const err118 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/scriptFormat\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/scriptFormat/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}if(data31.source !== undefined){if(typeof data31.source !== \"string\"){const err119 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/source\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/source/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}if(data31.target !== undefined){if(typeof data31.target !== \"string\"){const err120 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/target\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/target/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}}if(data31.expression !== undefined){if(typeof data31.expression !== \"boolean\"){const err121 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/expression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/expression/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}}if(data31.variables !== undefined){let data44 = data31.variables;if(typeof data44 !== \"string\"){const err122 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}if(!((data44 === \"all\") || (data44 === \"local\"))){const err123 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/enum\",params:{allowedValues: schema18.items.properties.binding.properties.variables.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}}if(data31.sourceExpression !== undefined){if(typeof data31.sourceExpression !== \"string\"){const err124 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/sourceExpression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/sourceExpression/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}}}else {const err125 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err125];}else {vErrors.push(err125);}errors++;}}if(data8.constraints !== undefined){let data46 = data8.constraints;if(data46 && typeof data46 == \"object\" && !Array.isArray(data46)){if(data46.notEmpty !== undefined){if(typeof data46.notEmpty !== \"boolean\"){const err126 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/notEmpty\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/notEmpty/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}}if(data46.minLength !== undefined){if(!(typeof data46.minLength == \"number\")){const err127 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/minLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/minLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err127];}else {vErrors.push(err127);}errors++;}}if(data46.maxLength !== undefined){if(!(typeof data46.maxLength == \"number\")){const err128 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/maxLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/maxLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}}if(data46.pattern !== undefined){let data50 = data46.pattern;const _errs134 = errors;let valid45 = false;let passing3 = null;const _errs135 = errors;if(data50 && typeof data50 == \"object\" && !Array.isArray(data50)){if(data50.value !== undefined){if(typeof data50.value !== \"string\"){const err129 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern/value\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}if(data50.message !== undefined){if(typeof data50.message !== \"string\"){const err130 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern/message\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/message/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}}}else {const err131 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err131];}else {vErrors.push(err131);}errors++;}var _valid13 = _errs135 === errors;if(_valid13){valid45 = true;passing3 = 0;}const _errs141 = errors;if(typeof data50 !== \"string\"){const err132 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/1/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err132];}else {vErrors.push(err132);}errors++;}var _valid13 = _errs141 === errors;if(_valid13 && valid45){valid45 = false;passing3 = [passing3, 1];}else {if(_valid13){valid45 = true;passing3 = 1;}}if(!valid45){const err133 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf\",params:{passingSchemas: passing3},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err133];}else {vErrors.push(err133);}errors++;}else {errors = _errs134;if(vErrors !== null){if(_errs134){vErrors.length = _errs134;}else {vErrors = null;}}}}}else {const err134 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints\",schemaPath:\"#/definitions/properties/items/properties/constraints/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err134];}else {vErrors.push(err134);}errors++;}}}else {const err135 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err135];}else {vErrors.push(err135);}errors++;}if(errors > 0){const emErrors1 = {\"required\":{\"binding\":[]}};const templates1 = {required:{binding:function(){return \"missing binding for property \\\"\" + JSON.stringify(i1) + \"\\\"\"}}};let emPropParams0;let emParamsErrors0;for(const err136 of vErrors){if((((((err136.keyword !== \"errorMessage\") && (!err136.emUsed)) && (err136.dataPath === dataPath+\"/properties/\" + i1)) && (err136.keyword in emErrors1)) && (err136.schemaPath.indexOf(\"#/definitions/properties/items\") === 0)) && (/^\\/[^\\/]*$/.test(err136.schemaPath.slice(30)))){emPropParams0 = obj0[err136.keyword];emParamsErrors0 = emErrors1[err136.keyword][err136.params[emPropParams0]];if(emParamsErrors0){emParamsErrors0.push(err136);err136.emUsed = true;}}}for(const key1 in emErrors1){for(const keyProp0 in emErrors1[key1]){emParamsErrors0 = emErrors1[key1][keyProp0];if(emParamsErrors0.length){const tmpl0 = templates1[key1] && templates1[key1][keyProp0];const err137 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/errorMessage\",params:{errors: emParamsErrors0},message:tmpl0 ? tmpl0() : schema18.items.errorMessage[key1][keyProp0]};if(vErrors === null){vErrors = [err137];}else {vErrors.push(err137);}errors++;}}}const emErrs25 = [];for(const err138 of vErrors){if(!err138.emUsed){emErrs25.push(err138);}}vErrors = emErrs25;errors = emErrs25.length;}}}else {const err139 = {keyword:\"type\",dataPath:dataPath+\"/properties\",schemaPath:\"#/definitions/properties/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err139];}else {vErrors.push(err139);}errors++;}}if(data.metadata !== undefined){let data53 = data.metadata;if(!(data53 && typeof data53 == \"object\" && !Array.isArray(data53))){const err140 = {keyword:\"type\",dataPath:dataPath+\"/metadata\",schemaPath:\"#/properties/metadata/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err140];}else {vErrors.push(err140);}errors++;}}if(data.scopes !== undefined){let data54 = data.scopes;const _errs146 = errors;let valid47 = false;let passing4 = null;const _errs147 = errors;if(!(validate16(data54, {dataPath:dataPath+\"/scopes\",parentData:data,parentDataProperty:\"scopes\",rootData}))){vErrors = vErrors === null ? validate16.errors : vErrors.concat(validate16.errors);errors = vErrors.length;}var _valid14 = _errs147 === errors;if(_valid14){valid47 = true;passing4 = 0;}const _errs148 = errors;if(!(validate18(data54, {dataPath:dataPath+\"/scopes\",parentData:data,parentDataProperty:\"scopes\",rootData}))){vErrors = vErrors === null ? validate18.errors : vErrors.concat(validate18.errors);errors = vErrors.length;}var _valid14 = _errs148 === errors;if(_valid14 && valid47){valid47 = false;passing4 = [passing4, 1];}else {if(_valid14){valid47 = true;passing4 = 1;}}if(!valid47){const err141 = {keyword:\"oneOf\",dataPath:dataPath+\"/scopes\",schemaPath:\"#/properties/scopes/oneOf\",params:{passingSchemas: passing4},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err141];}else {vErrors.push(err141);}errors++;}else {errors = _errs146;if(vErrors !== null){if(_errs146){vErrors.length = _errs146;}else {vErrors = null;}}}}if(data.entriesVisible !== undefined){let data55 = data.entriesVisible;if((!(data55 && typeof data55 == \"object\" && !Array.isArray(data55))) && (typeof data55 !== \"boolean\")){const err142 = {keyword:\"type\",dataPath:dataPath+\"/entriesVisible\",schemaPath:\"#/properties/entriesVisible/type\",params:{type: schema17.properties.entriesVisible.type},message:\"should be object,boolean\"};if(vErrors === null){vErrors = [err142];}else {vErrors.push(err142);}errors++;}}}else {const err143 = {keyword:\"type\",dataPath,schemaPath:\"#/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err143];}else {vErrors.push(err143);}errors++;}if(errors > 0){const emErrors2 = {\"required\":{\"name\":[],\"id\":[],\"appliesTo\":[],\"properties\":[]}};const templates2 = {required:{}};let emPropParams1;let emParamsErrors1;for(const err144 of vErrors){if((((((err144.keyword !== \"errorMessage\") && (!err144.emUsed)) && (err144.dataPath === dataPath)) && (err144.keyword in emErrors2)) && (err144.schemaPath.indexOf(\"#\") === 0)) && (/^\\/[^\\/]*$/.test(err144.schemaPath.slice(1)))){emPropParams1 = obj0[err144.keyword];emParamsErrors1 = emErrors2[err144.keyword][err144.params[emPropParams1]];if(emParamsErrors1){emParamsErrors1.push(err144);err144.emUsed = true;}}}for(const key2 in emErrors2){for(const keyProp1 in emErrors2[key2]){emParamsErrors1 = emErrors2[key2][keyProp1];if(emParamsErrors1.length){const tmpl1 = templates2[key2] && templates2[key2][keyProp1];const err145 = {keyword:\"errorMessage\",dataPath,schemaPath:\"#/errorMessage\",params:{errors: emParamsErrors1},message:tmpl1 ? tmpl1() : schema17.errorMessage[key2][keyProp1]};if(vErrors === null){vErrors = [err145];}else {vErrors.push(err145);}errors++;}}}const emErrs26 = [];for(const err146 of vErrors){if(!err146.emUsed){emErrs26.push(err146);}}vErrors = emErrs26;errors = emErrs26.length;}validate15.errors = vErrors;return errors === 0;}function validate14(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(!(validate15(data, {dataPath,parentData,parentDataProperty,rootData}))){vErrors = vErrors === null ? validate15.errors : vErrors.concat(validate15.errors);errors = vErrors.length;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;}const _errs2 = errors;if(Array.isArray(data)){const len0 = data.length;for(let i0=0; i0 extensions produces a couple of\n // unnecessary errors when using an attribute.\n // Therefore, we should flatten the produced errors a bit to not\n // confuse the consumer of this library.\n\n // (1) wrap raw errors in case of custom errorMessage attribute\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(errors, wrapRawErrors);\n\n // (2) ignore supportive error messages (e.g. \"if-then-rules\")\n errors = ignoreSupportiveErrors(errors);\n\n // (3) set data pointer for each error\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(errors, function(error) {\n setDataPointer(error, dataPointerMap);\n });\n }\n\n return {\n valid: valid,\n object: object,\n errors: errors\n };\n}\n\n/**\n * Validate a list of objects\n *\n * @param {Object[]} objects\n * @return {Object} list validation result\n */\nfunction validateAll(objects) {\n\n const results = [];\n\n let allValid = true;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(objects, function(object) {\n const result = validate(object);\n\n if (!result.valid) {\n allValid = false;\n }\n\n results.push(result);\n });\n\n return {\n valid: allValid,\n results: results\n };\n}\n\n\n// helper //////////////\nfunction wrapRawErrors(error) {\n const params = error.params;\n\n if (params && params.errors) {\n params.rawErrors = params.errors;\n delete params.errors;\n }\n}\n\nfunction setDataPointer(error, dataPointerMap) {\n const dataPath = error.dataPath;\n\n const pointer = dataPointerMap[dataPath];\n\n error.dataPointer = pointer;\n}\n\nfunction ignoreSupportiveErrors(errors) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(errors, function(error) {\n return error.keyword !== 'if';\n });\n}\n\n/**\n * Generates a key-pointer map for the object.\n *\n * Example:\n *\n * {\n * foo: 'bar'\n * }\n *\n * =>\n *\n * {\n * '': {\n * value: { line: 0, column: 0, pos: 0 },\n * valueEnd: { line: 2, column: 1, pos: 18 }\n * },\n * '/foo': {\n * key: { line: 1, column: 2, pos: 4 },\n * keyEnd: { line: 1, column: 7, pos: 9 },\n * value: { line: 1, column: 9, pos: 11 },\n * valueEnd: { line: 1, column: 14, pos: 16 }\n * }\n * }\n *\n * @param {Object} object\n * @return {Object}\n */\nfunction generateDataPointerMap(object) {\n return jsonSourceMap.stringify(object, null, 2).pointers;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js?"); /***/ }), /***/ "./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js": /*!***************************************************************************!*\ !*** ./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getProcessVariables\": () => (/* binding */ getProcessVariables),\n/* harmony export */ \"getVariablesForScope\": () => (/* binding */ getVariablesForScope)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Get a inputOutput from the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement} the inputOutput object\n */\nfunction getInputOutput(element) {\n return (getElements(element, 'camunda:InputOutput') || [])[0];\n}\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} a list of input parameter objects\n */\nfunction getInputParameters(element) {\n return getParameters(element, 'inputParameters');\n}\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n * @param {boolean} insideConnector\n *\n * @return {Array} a list of output parameter objects\n */\nfunction getOutputParameters(element) {\n return getParameters(element, 'outputParameters');\n}\n\n/**\n * Return all form fields existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} a list of form fields\n */\nfunction getFormFields(element) {\n var formData = getFormData(element);\n return (formData && formData.get('fields')) || [];\n}\n\n/**\n * Return form data existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement}\n */\nfunction getFormData(element) {\n return (getElements(element, 'camunda:FormData') || [])[0];\n}\n\n/**\n * Return out mappings existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {Array}\n */\nfunction getOutMappings(element) {\n return getElements(element, 'camunda:Out') || [];\n}\n\n\n// helpers //////////\n\nfunction getElements(element, type, property) {\n var elements = getExtensionElements(element, type) || [];\n\n return !property ? elements : (elements[0] || {})[property] || [];\n}\n\nfunction getParameters(element, property) {\n var inputOutput = getInputOutput(element);\n\n return (inputOutput && inputOutput.get(property)) || [];\n}\n\nfunction getExtensionElements(element, type) {\n var extensionElements = element.get('extensionElements');\n\n if (typeof extensionElements !== 'undefined') {\n var extensionValues = extensionElements.get('values');\n\n if (typeof extensionValues !== 'undefined') {\n var elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(extensionValues, function(value) {\n return is(value, type);\n });\n\n if (elements.length) {\n return elements;\n }\n }\n }\n}\n\nfunction is(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\n/**\n * Get all parent elements for a given element.\n *\n * @param {ModdleElement|string} element\n *\n * @returns {Array}\n */\nfunction getParents(element) {\n var parents = [];\n var current = element;\n\n while (current.$parent) {\n parents.push(current.$parent);\n current = current.$parent;\n }\n\n return parents;\n}\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param {Object|Array} elements\n * @param {Function} fn iterator function called with (element, index, recursionDepth)\n * @param {number} [depth] maximum recursion depth\n */\nfunction eachElement(elements, fn, depth) {\n depth = depth || 0;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [elements];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(s, i) {\n var filter = fn(s, i, depth);\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(filter) && filter.length) {\n eachElement(filter, fn, depth + 1);\n }\n });\n}\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Array} elements\n * @param {Object} e\n * @param {boolean} unique\n */\nfunction add(elements, e, unique) {\n var canAdd = !unique || elements.indexOf(e) === -1;\n\n if (canAdd) {\n elements.push(e);\n }\n\n return canAdd;\n}\n\n/**\n * Collects self + flow elements up to a given depth from a list of elements.\n *\n * @param {ModdleElement|Array} elements the elements to select the flowElements from\n * @param {boolean} unique whether to return a unique result set (no duplicates)\n * @param {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Array} found elements\n */\nfunction selfAndFlowElements(elements, unique, maxDepth) {\n var result = [],\n processedFlowElements = [];\n\n eachElement(elements, function(element, i, depth) {\n add(result, element, unique);\n\n var flowElements = element.flowElements;\n\n // max traversal depth not reached yet\n if (maxDepth === -1 || depth < maxDepth) {\n\n // flowElements exist && flowElements not yet processed\n if (flowElements && add(processedFlowElements, flowElements, unique)) {\n return flowElements;\n }\n }\n });\n\n return result;\n}\n\n/**\n * Return self + ALL flowElements for a number of elements\n *\n * @param {Array} elements to query\n * @param {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array} the collected elements\n */\nfunction selfAndAllFlowElements(elements, allowDuplicates) {\n return selfAndFlowElements(elements, !allowDuplicates, -1);\n}\n\n/**\n * Return full moddle element for given element id\n *\n * @param {string} elementId\n * @param {ModdleElement} rootElement\n *\n * @returns {ModdleElement}\n */\nfunction getElement(elementId, rootElement) {\n var allElements = selfAndAllFlowElements(rootElement);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(allElements, function(element) {\n return element.id === elementId;\n });\n}\n\nfunction addVariableToList(variablesList, newVariable) {\n var foundIdx = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.findIndex)(variablesList, function(variable) {\n return (\n variable.name === newVariable.name && variable.scope === newVariable.scope\n );\n });\n\n if (foundIdx >= 0) {\n variablesList[foundIdx].origin = combineArrays(\n variablesList[foundIdx].origin,\n newVariable.origin\n );\n } else {\n variablesList.push(newVariable);\n }\n}\n\n/**\n * Creates new process variable definition object\n * Identifies correct (highest) scope, in which variable is available\n *\n * @param {ModdleElement} flowElement\n * @param {String} name\n * @param {ModdleElement} defaultScope\n *\n * @returns {ProcessVariable}\n */\nfunction createProcessVariable(flowElement, name, defaultScope) {\n var scope = getScope(flowElement, defaultScope, name);\n\n return {\n name: name,\n origin: [flowElement],\n scope: scope,\n };\n}\n\n\n// helpers ////////////////////\n\n/**\n * Set parent container if it defines it's own scope for the variable, so\n * when it defines an input mapping for it. Otherwise returns the default global scope\n */\nfunction getScope(element, globalScope, variableName) {\n var parents = getParents(element);\n\n var scopedParent = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(parents, function(parent) {\n return (\n is$1(parent, 'bpmn:SubProcess') && hasInputParameter(parent, variableName)\n );\n });\n\n return scopedParent ? scopedParent : globalScope;\n}\n\nfunction is$1(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\nfunction hasInputParameter(element, name) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(getInputParameters(element), function(input) {\n return input.name === name;\n });\n}\n\nfunction combineArrays(a, b) {\n return a.concat(b);\n}\n\n/**\n * Retrieves process variables defined in output parameters, e.g.\n *\n * \n * 200\n * ${myLocalVar + 20}\n * \n *\n * => Adds two variables \"variable1\" & \"variable2\" to the list.\n *\n */\nfunction extractOutputParameters(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n // variables are created by output parameters\n var outputParameters = getOutputParameters(element);\n\n // extract all variables with correct scope\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(outputParameters, function(parameter) {\n var newVariable = createProcessVariable(\n element,\n parameter.name,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in result variables, e.g.\n *\n * \n *\n * => Adds one variable \"variable1\"to the list.\n *\n */\nfunction extractResultVariables(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n var resultVariable = getResultVariable(element);\n\n if (resultVariable) {\n var newVariable = createProcessVariable(\n element,\n resultVariable,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n }\n });\n\n return processVariables;\n}\n\n\n// helpers ///////////////////////\n\nfunction getResultVariable(element) {\n return element.get('camunda:resultVariable');\n}\n\n/**\n * Retrieves process variables defined in form fields, e.g.\n *\n * \n * \n * \n * \n *\n * => Adds two variables \"variable1\" & \"variable2\" to the list.\n *\n */\nfunction extractFormFields(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n var formFields = getFormFields(element);\n\n // extract all variables with correct scope\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(formFields, function(field) {\n var newVariable = createProcessVariable(\n element,\n field.id,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in output mappings and\n * ignores local variables, e.g.\n *\n * \n * \n * \n * \n *\n * => Adds one variable \"variable1\" to the list.\n *\n */\nfunction extractOutMappings(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n var outMappings = getOutMappings(element);\n\n // extract all variables with correct scope\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(outMappings, function(mapping) {\n\n // do not use variables marked as \n if (mapping.local) {\n return;\n }\n\n var newVariable = createProcessVariable(\n element,\n mapping.target,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n *\n * @param {ModdleElement} element\n * @param {string} [type] - optional\n *\n * @return {Array|undefined} collection of event definitions or none\n */\nfunction getEventDefinitions(element, type) {\n var eventDefinitions = element.eventDefinitions;\n\n if (!eventDefinitions || !type) {\n return eventDefinitions;\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(eventDefinitions, function(definition) {\n return is$2(definition, type);\n });\n}\n\n/**\n * Returns error event definitions for a given element.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} collection of error event definitions\n */\nfunction getErrorEventDefinitions(element) {\n return getEventDefinitions(element, 'bpmn:ErrorEventDefinition');\n}\n\n/**\n * Returns escalation event definitions for a given element.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} collection of escalation event definitions\n */\nfunction getEscalationEventDefinitions(element) {\n return getEventDefinitions(element, 'bpmn:EscalationEventDefinition');\n}\n\n\n// helper ////////////////\n\nfunction is$2(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\n/**\n * Retrieves process variables defined in event definitions, e.g.\n *\n * \n *\n * => Adds one variable \"variable1\" to the list.\n *\n * \n *\n * => Adds two variables \"variable2\" & \"variable3\" to the list.\n *\n */\nfunction extractEventDefinitionVariables(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n var addVariable = function(element, name) {\n var newVariable = createProcessVariable(\n element,\n name,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n };\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n // (1) error event code + message variable\n var errorEventDefinitions = getErrorEventDefinitions(element);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(errorEventDefinitions, function(definition) {\n\n var errorCodeVariable = definition.get('errorCodeVariable'),\n errorMessageVariable = definition.get('errorMessageVariable');\n\n if (errorCodeVariable) {\n addVariable(element, errorCodeVariable);\n }\n\n if (errorMessageVariable) {\n addVariable(element, errorMessageVariable);\n }\n });\n\n // (2) escalation code variable\n var escalationEventDefinitions = getEscalationEventDefinitions(element);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(escalationEventDefinitions, function(definition) {\n\n var escalationCodeVariable = definition.get('escalationCodeVariable');\n\n if (escalationCodeVariable) {\n addVariable(element, escalationCodeVariable);\n }\n });\n\n });\n\n return processVariables;\n}\n\nvar extractors = [\n extractOutputParameters,\n extractResultVariables,\n extractFormFields,\n extractOutMappings,\n extractEventDefinitionVariables\n];\n\n/**\n * @typedef {Object} ProcessVariable\n * @property {string} name\n * @property {Array} origin\n * @property {ModdleElement} scope\n */\n\n// api /////////////////////////\n\n/**\n * Retrieves all process variables for a given container element.\n * @param {ModdleElement} containerElement\n *\n * @returns {Array}\n */\nfunction getProcessVariables(containerElement) {\n var processVariables = [];\n\n // (1) extract all flow elements inside the container\n var elements = selfAndAllFlowElements([containerElement], false);\n\n // (2) extract all variables from the extractors\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(extractors, function(extractor) {\n extractor({\n elements: elements,\n containerElement: containerElement,\n processVariables: processVariables\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves all variables which are available in the given scope\n *\n * * Exclude variables which are only available in other scopes\n * * Exclude variables which are produced by the given element\n * * Include variables which are available in parent scopes\n *\n * @param {string} scope\n * @param {ModdleElement} rootElement element from where to extract all variables\n *\n * @returns {Array}\n */\nfunction getVariablesForScope(scope, rootElement) {\n\n var allVariables = getProcessVariables(rootElement);\n\n var scopeElement = getElement(scope, rootElement);\n\n // (1) get variables for given scope\n var scopeVariables = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(allVariables, function(variable) {\n return variable.scope.id === scopeElement.id;\n });\n\n // (2) get variables for parent scopes\n var parents = getParents(scopeElement);\n\n var parentsScopeVariables = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(allVariables, function(variable) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(parents, function(parent) {\n return parent.id === variable.scope.id;\n });\n });\n\n return combineArrays$1(scopeVariables, parentsScopeVariables);\n}\n\n// helpers ////////////////////\n\nfunction combineArrays$1(a, b) {\n return a.concat(b);\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/index.js": /*!********************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/index.js ***! \********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = __webpack_require__(/*! ./lib */ \"./node_modules/bpmn-js-properties-panel/lib/index.js\");\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js": /*!**************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js ***! \**************************************************************************/ /***/ ((module) => { "use strict"; eval("\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A component that decides upon the visibility / editable\n * state of properties in the properties panel.\n *\n * Implementors must subclass this component and override\n * {@link PropertiesActivator#isEntryVisible} and\n * {@link PropertiesActivator#isPropertyEditable} to provide\n * custom behavior.\n *\n * @class\n * @constructor\n *\n * @param {EventBus} eventBus\n * @param {Number} [priority] at which priority to hook into the activation\n */\nfunction PropertiesActivator(eventBus, priority) {\n var self = this;\n\n priority = priority || DEFAULT_PRIORITY;\n\n eventBus.on('propertiesPanel.isEntryVisible', priority, function(context) {\n var element = context.element,\n entry = context.entry,\n group = context.group,\n tab = context.tab;\n\n return self.isEntryVisible(element, entry, group, tab);\n });\n\n eventBus.on('propertiesPanel.isPropertyEditable', priority, function(context) {\n var element = context.element,\n entry = context.entry,\n group = context.group,\n propertyName = context.propertyName,\n tab = context.tab;\n\n return self.isPropertyEditable(propertyName, element, entry, group, tab);\n });\n}\n\nPropertiesActivator.$inject = [ 'eventBus' ];\n\nmodule.exports = PropertiesActivator;\n\n\n/**\n * Should the given entry be visible for the specified element.\n *\n * @method PropertiesActivator#isEntryVisible\n *\n * @param {ModdleElement} element\n * @param {Object} entry\n * @param {Object} group\n * @param {Object} tab\n *\n * @returns {boolean}\n */\nPropertiesActivator.prototype.isEntryVisible = function(element, entry, group, tab) {\n return true;\n};\n\n/**\n * Should the given property be editable for the specified element\n *\n * @method PropertiesActivator#isPropertyEditable\n *\n * @param {string} propertyName\n * @param {ModdleElement} element\n * @param {Object} entry\n * @param {Object} group\n * @param {Object} tab\n *\n * @returns {boolean}\n */\nPropertiesActivator.prototype.isPropertyEditable = function(propertyName, element, entry, group, tab) {\n return true;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js": /*!**********************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js ***! \**********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar createDropdown = __webpack_require__(/*! ./Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").createDropdown,\n escapeHTML = __webpack_require__(/*! ./Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n domQueryAll = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").queryAll,\n domRemove = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").remove,\n domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest,\n domAttr = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").attr,\n domDelegate = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").delegate,\n domMatches = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").matches;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\"),\n get = __webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"),\n keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\"),\n isEmpty = __webpack_require__(/*! lodash/isEmpty */ \"./node_modules/lodash/isEmpty.js\"),\n isArray = __webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"),\n isFunction = __webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"),\n isObject = __webpack_require__(/*! lodash/isObject */ \"./node_modules/lodash/isObject.js\"),\n xor = __webpack_require__(/*! lodash/xor */ \"./node_modules/lodash/xor.js\"),\n debounce = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\"),\n flattenDeep = __webpack_require__(/*! lodash/flattenDeep */ \"./node_modules/lodash/flattenDeep.js\"),\n keyBy = __webpack_require__(/*! lodash/keyBy */ \"./node_modules/lodash/keyBy.js\"),\n map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\"),\n reduce = __webpack_require__(/*! lodash/reduce */ \"./node_modules/lodash/reduce.js\");\n\nvar updateSelection = __webpack_require__(/*! selection-update */ \"./node_modules/selection-update/index.js\");\n\nvar scrollTabs = __webpack_require__(/*! scroll-tabs */ \"./node_modules/scroll-tabs/index.js\").default;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar HIDE_CLASS = 'bpp-hidden';\nvar DEBOUNCE_DELAY = 300;\n\nvar DEFAULT_PRIORITY = 1000;\n\nfunction isToggle(node) {\n return node.type === 'checkbox' || node.type === 'radio';\n}\n\nfunction isSelect(node) {\n return node.type === 'select-one';\n}\n\nfunction isContentEditable(node) {\n return domAttr(node, 'contenteditable');\n}\n\nfunction getPropertyPlaceholders(node) {\n var selector = 'input[name], textarea[name], [data-value], [contenteditable]';\n var placeholders = domQueryAll(selector, node);\n if ((!placeholders || !placeholders.length) && domMatches(node, selector)) {\n placeholders = [ node ];\n }\n return placeholders;\n}\n\n/**\n * Return all active form controls.\n * This excludes the invisible controls unless all is true\n *\n * @param {Element} node\n * @param {Boolean} [all=false]\n */\nfunction getFormControls(node, all) {\n var controls = domQueryAll('input[name], textarea[name], select[name], [contenteditable]', node);\n\n if (!controls || !controls.length) {\n controls = domMatches(node, 'option') ? [ node ] : controls;\n }\n\n if (!all) {\n controls = filter(controls, function(node) {\n return !domClosest(node, '.' + HIDE_CLASS);\n });\n }\n\n return controls;\n}\n\nfunction getFormControlValuesInScope(entryNode) {\n var values = {};\n\n var controlNodes = getFormControls(entryNode);\n\n forEach(controlNodes, function(controlNode) {\n var value = controlNode.value;\n\n var name = domAttr(controlNode, 'name') || domAttr(controlNode, 'data-name');\n\n // take toggle state into account for radio / checkboxes\n if (isToggle(controlNode)) {\n if (controlNode.checked) {\n if (!domAttr(controlNode, 'value')) {\n value = true;\n } else {\n value = controlNode.value;\n }\n } else {\n value = null;\n }\n } else\n if (isContentEditable(controlNode)) {\n value = controlNode.innerText;\n }\n\n if (value !== null) {\n\n // return the actual value\n // handle serialization in entry provider\n // (ie. if empty string should be serialized or not)\n values[name] = value;\n }\n });\n\n return values;\n\n}\n\n/**\n * Extract input values from entry node\n *\n * @param {DOMElement} entryNode\n * @returns {Object}\n */\nfunction getFormControlValues(entryNode) {\n\n var values;\n\n var listContainer = domQuery('[data-list-entry-container]', entryNode);\n if (listContainer) {\n values = [];\n var listNodes = listContainer.children || [];\n forEach(listNodes, function(listNode) {\n values.push(getFormControlValuesInScope(listNode));\n });\n } else {\n values = getFormControlValuesInScope(entryNode);\n }\n\n return values;\n}\n\n/**\n * Return true if the given form extracted value equals\n * to an old cached version.\n *\n * @param {Object} value\n * @param {Object} oldValue\n * @return {Boolean}\n */\nfunction valueEqual(value, oldValue) {\n\n if (value && !oldValue) {\n return false;\n }\n\n var allKeys = keys(value).concat(keys(oldValue));\n\n return allKeys.every(function(key) {\n return value[key] === oldValue[key];\n });\n}\n\n/**\n * Return true if the given form extracted value(s)\n * equal an old cached version.\n *\n * @param {Array|Object} values\n * @param {Array|Object} oldValues\n * @return {Boolean}\n */\nfunction valuesEqual(values, oldValues) {\n\n if (isArray(values)) {\n\n if (values.length !== oldValues.length) {\n return false;\n }\n\n return values.every(function(v, idx) {\n return valueEqual(v, oldValues[idx]);\n });\n }\n\n return valueEqual(values, oldValues);\n}\n\n/**\n * Return a mapping of { id: entry } for all entries in the given groups in the given tabs.\n *\n * @param {Object} tabs\n * @return {Object}\n */\nfunction extractEntries(tabs) {\n return keyBy(flattenDeep(map(flattenDeep(map(tabs, 'groups')), 'entries')), 'id');\n}\n\n/**\n * Return a mapping of { id: group } for all groups in the given tabs.\n *\n * @param {Object} tabs\n * @return {Object}\n */\nfunction extractGroups(tabs) {\n return keyBy(flattenDeep(map(tabs, 'groups')), 'id');\n}\n\n/**\n * A properties panel implementation.\n *\n * To use it provide a `propertiesProvider` component that knows\n * about which properties to display.\n *\n * Properties edit state / visibility can be intercepted\n * via a custom {@link PropertiesActivator}.\n *\n * @class\n * @constructor\n *\n * @param {Object} config\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Canvas} canvas\n * @param {CommandStack} commandStack\n */\nfunction PropertiesPanel(config, injector, eventBus, modeling, commandStack, canvas) {\n\n this._eventBus = eventBus;\n this._modeling = modeling;\n this._commandStack = commandStack;\n this._canvas = canvas;\n\n var propertiesProvider = injector.get('propertiesProvider', false);\n\n if (propertiesProvider) {\n this.registerProvider(propertiesProvider);\n }\n\n this._init(config);\n}\n\nPropertiesPanel.$inject = [\n 'config.propertiesPanel',\n 'injector',\n 'eventBus',\n 'modeling',\n 'commandStack',\n 'canvas'\n];\n\nmodule.exports = PropertiesPanel;\n\n/**\n * @param {number} [priority]\n * @param { { getTabs: any[] | (any) => (any[]) => any[]) } } provider\n */\nPropertiesPanel.prototype.registerProvider = function(priority, provider) {\n\n if (!provider) {\n provider = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n this._eventBus.on('propertiesPanel.getProviders', priority, function(event) {\n event.providers.push(provider);\n });\n\n this._eventBus.fire('propertiesPanel.providersChanged');\n};\n\nPropertiesPanel.prototype._init = function(config) {\n\n var canvas = this._canvas,\n eventBus = this._eventBus;\n\n var self = this;\n\n /**\n * Select the root element once it is added to the canvas\n */\n eventBus.on('root.added', function(e) {\n var element = e.element;\n\n if (isImplicitRoot(element)) {\n return;\n }\n\n self.update(element);\n });\n\n eventBus.on('selection.changed', function(e) {\n var newElement = e.newSelection[0];\n\n var rootElement = canvas.getRootElement();\n\n if (isImplicitRoot(rootElement)) {\n return;\n }\n\n self.update(newElement);\n });\n\n // add / update tab-bar scrolling\n eventBus.on([\n 'propertiesPanel.changed',\n 'propertiesPanel.resized'\n ], function(event) {\n\n var tabBarNode = domQuery('.bpp-properties-tab-bar', self._container);\n\n if (!tabBarNode) {\n return;\n }\n\n var scroller = scrollTabs.get(tabBarNode);\n\n if (!scroller) {\n\n // we did not initialize yet, do that\n // now and make sure we select the active\n // tab on scroll update\n scroller = scrollTabs(tabBarNode, {\n selectors: {\n tabsContainer: '.bpp-properties-tabs-links',\n tab: '.bpp-properties-tabs-links li',\n ignore: '.bpp-hidden',\n active: '.bpp-active'\n }\n });\n\n\n scroller.on('scroll', function(newActiveNode, oldActiveNode, direction) {\n\n var linkNode = domQuery('[data-tab-target]', newActiveNode);\n\n var tabId = domAttr(linkNode, 'data-tab-target');\n\n self.activateTab(tabId);\n });\n }\n\n // react on tab changes and or tabContainer resize\n // and make sure the active tab is shown completely\n scroller.update();\n });\n\n eventBus.on('elements.changed', function(e) {\n\n var current = self._current;\n var element = current && current.element;\n\n if (element) {\n if (e.elements.indexOf(element) !== -1) {\n self.update(element);\n }\n }\n });\n\n eventBus.on([\n 'elementTemplates.changed',\n 'propertiesPanel.providersChanged'\n ], function() {\n var current = self._current;\n var element = current && current.element;\n\n if (element) {\n self.update(element);\n }\n });\n\n eventBus.on('diagram.destroy', function() {\n self.detach();\n });\n\n this._container = domify('
');\n\n this._bindListeners(this._container);\n\n if (config && config.parent) {\n this.attachTo(config.parent);\n }\n};\n\n\nPropertiesPanel.prototype.attachTo = function(parentNode) {\n\n if (!parentNode) {\n throw new Error('parentNode required');\n }\n\n // ensure we detach from the\n // previous, old parent\n this.detach();\n\n // unwrap jQuery if provided\n if (parentNode.get && parentNode.constructor.prototype.jquery) {\n parentNode = parentNode.get(0);\n }\n\n if (typeof parentNode === 'string') {\n parentNode = domQuery(parentNode);\n }\n\n var container = this._container;\n\n parentNode.appendChild(container);\n\n this._emit('attach');\n};\n\nPropertiesPanel.prototype.detach = function() {\n\n var container = this._container,\n parentNode = container.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n this._emit('detach');\n\n parentNode.removeChild(container);\n};\n\n\n/**\n * Activate tab. Fall back to first visible tab.\n *\n * @param {Object|string} tabId\n */\nPropertiesPanel.prototype.activateTab = function(tabId) {\n if (isObject(tabId)) {\n tabId = tabId.id;\n }\n\n var tabs = domQueryAll('.bpp-properties-tab', this._current.panel),\n tabLinks = domQueryAll('.bpp-properties-tab-link', this._current.panel);\n\n // (1) Deactivate all tabs\n forEach(tabs, function(tab) {\n domClasses(tab).remove('bpp-active');\n });\n\n forEach(tabLinks, function(tabLink) {\n domClasses(tabLink).remove('bpp-active');\n });\n\n // (2) Activate tab, fall back to first visible tab\n var visibleTabs = filter(tabs, function(tab) {\n return !domClasses(tab).has(HIDE_CLASS);\n });\n\n var activeTab = reduce(visibleTabs, function(activeTab, tab) {\n if (domAttr(tab, 'data-tab') === tabId) {\n return tab;\n }\n\n return activeTab;\n }, visibleTabs[ 0 ]);\n\n if (activeTab) {\n domClasses(activeTab).add('bpp-active');\n }\n\n var visibleTabLinks = filter(tabLinks, function(tabLink) {\n return !domClasses(tabLink).has(HIDE_CLASS);\n });\n\n var activeTabLink = reduce(visibleTabLinks, function(activeTabLink, tabLink) {\n if (domAttr(domQuery('a[data-tab-target]', tabLink), 'data-tab-target') === tabId) {\n return tabLink;\n }\n\n return activeTabLink;\n }, visibleTabLinks[ 0 ]);\n\n if (activeTabLink) {\n domClasses(activeTabLink).add('bpp-active');\n }\n};\n\nPropertiesPanel.prototype._getProviders = function() {\n\n var event = this._eventBus.createEvent({\n type: 'propertiesPanel.getProviders',\n providers: []\n });\n\n this._eventBus.fire(event);\n\n return event.providers;\n};\n\nPropertiesPanel.prototype._getTabs = function(element) {\n var providers = this._getProviders();\n\n // loop through all providers and their entries.\n // group entries by id so that overriding an entry is possible\n return reduce(providers, function(tabs, provider) {\n var tabsOrUpdater = provider.getTabs(element);\n\n if (isFunction(tabsOrUpdater)) {\n return tabsOrUpdater(tabs);\n } else {\n return tabsOrUpdater;\n }\n }, []);\n};\n\n/**\n * Update properties panel to show properties of element. Create new properties panel if no previous\n * properties panel, element has changed or element has not changed but entries have.\n *\n * @param {ModdleElement|undefined} element\n */\nPropertiesPanel.prototype.update = function(element) {\n\n // (1) Fall back to root element\n if (!element) {\n element = this._canvas.getRootElement();\n }\n\n // (2) Get tabs\n var tabs = this._getTabs(element);\n\n var activeTabId,\n activeTabNode;\n\n if (this._current) {\n activeTabNode = domQuery('.bpp-properties-tab.bpp-active', this._current.panel);\n\n if (activeTabNode) {\n activeTabId = domAttr(activeTabNode, 'data-tab');\n }\n }\n\n // (3) Create new properties panel if necessary\n if (!this._current\n || this._current.element !== element\n || this._entriesChanged(this._current.entries, extractEntries(tabs))) {\n\n if (this._current) {\n domRemove(this._current.panel);\n }\n\n this._current = this._create(element, tabs);\n }\n\n // (4) Update visibility of tabs, groups and entries\n this._updateActivation(this._current);\n\n // (5) Update active tab\n if (activeTabId) {\n this.activateTab(activeTabId);\n } else {\n this.activateTab(this._current.tabs[ 0 ]);\n }\n\n this._emit('changed');\n};\n\n\n/**\n * Check whether entries have changes.\n *\n * @param {Array} prevEntries\n * @param {Array} entries\n *\n * @returns {Boolean}\n */\nPropertiesPanel.prototype._entriesChanged = function(prevEntries, entries) {\n var prevEntryIds = keys(prevEntries),\n entryIds = keys(entries);\n\n return !isEmpty(xor(prevEntryIds, entryIds));\n};\n\nPropertiesPanel.prototype._emit = function(event) {\n this._eventBus.fire('propertiesPanel.' + event, { panel: this, current: this._current });\n};\n\nPropertiesPanel.prototype._bindListeners = function(container) {\n\n var self = this;\n\n // handles a change for a given event\n var handleChange = function handleChange(event) {\n\n // see if we handle a change inside a [data-entry] element.\n // if not, drop out\n var inputNode = event.delegateTarget,\n entryNode = domClosest(inputNode, '[data-entry]'),\n entryId, entry;\n\n // change from outside a [data-entry] element, simply ignore\n if (!entryNode) {\n return;\n }\n\n entryId = domAttr(entryNode, 'data-entry');\n entry = self.getEntry(entryId);\n\n var values = getFormControlValues(entryNode);\n\n if (event.type === 'change') {\n\n // - if the \"data-on-change\" attribute is present and a value is changed,\n // then the associated action is performed.\n // - if the associated action returns \"true\" then an update to the business\n // object is done\n // - if it does not return \"true\", then only the DOM content is updated\n var onChangeAction = domAttr(inputNode, 'data-on-change');\n\n if (onChangeAction) {\n var isEntryDirty = self.executeAction(entry, entryNode, onChangeAction, event);\n\n if (!isEntryDirty) {\n return self.update(self._current.element);\n }\n }\n }\n self.applyChanges(entry, values, entryNode);\n self.updateState(entry, entryNode);\n };\n\n // debounce update only elements that are target of key events,\n // i.e. INPUT and TEXTAREA. SELECTs will trigger an immediate update anyway.\n domDelegate.bind(container, 'input, textarea, [contenteditable]', 'input', debounce(handleChange, DEBOUNCE_DELAY));\n domDelegate.bind(container, 'input, textarea, select, [contenteditable]', 'change', handleChange);\n\n // paste as plain text only\n domDelegate.bind(container, '[contenteditable]', 'paste', handlePaste);\n\n function handlePaste(event) {\n var text = (event.clipboardData || window.clipboardData).getData('text');\n document.execCommand('insertText', false, text);\n\n event.preventDefault();\n }\n\n // handle key events\n domDelegate.bind(container, 'select', 'keydown', function(e) {\n\n // DEL\n if (e.keyCode === 46) {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n\n function handleSuggestItems(event) {\n\n // triggers on all inputs\n var inputNode = event.delegateTarget;\n\n var entryNode = domClosest(inputNode, '[data-entry]');\n\n // only work on data entries\n if (!entryNode) {\n return;\n }\n\n var action = domAttr(inputNode, 'data-auto-suggest'),\n entryId = domAttr(entryNode, 'data-entry');\n\n var entry = self.getEntry(entryId);\n\n self.executeAction(entry, entryNode, action, event);\n }\n\n domDelegate.bind(container, '[data-auto-suggest]', 'input', handleSuggestItems, true);\n\n domDelegate.bind(container, '[data-action]', 'click', function onClick(event) {\n\n // triggers on all inputs\n var inputNode = event.delegateTarget,\n entryNode = domClosest(inputNode, '[data-entry]');\n\n var actionId = domAttr(inputNode, 'data-action'),\n entryId = domAttr(entryNode, 'data-entry');\n\n var entry = self.getEntry(entryId);\n\n var isEntryDirty = self.executeAction(entry, entryNode, actionId, event);\n\n if (!isEntryDirty) {\n return self.update(self._current.element);\n }\n\n var values = getFormControlValues(entryNode);\n\n self.applyChanges(entry, values, entryNode);\n self.updateState(entry, entryNode);\n });\n\n function handleInput(event, element) {\n\n // triggers on all inputs\n var inputNode = event.delegateTarget;\n\n var entryNode = domClosest(inputNode, '[data-entry]');\n\n // only work on data entries\n if (!entryNode) {\n return;\n }\n\n var eventHandlerId = domAttr(inputNode, 'data-blur'),\n entryId = domAttr(entryNode, 'data-entry');\n\n var entry = self.getEntry(entryId);\n\n var isEntryDirty = self.executeAction(entry, entryNode, eventHandlerId, event);\n\n if (isEntryDirty) {\n var values = getFormControlValues(entryNode);\n\n self.applyChanges(entry, values, entryNode);\n }\n\n self.updateState(entry, entryNode);\n }\n\n domDelegate.bind(container, '[data-blur]', 'blur', handleInput, true);\n\n // make tab links interactive\n domDelegate.bind(container, '.bpp-properties-tabs-links [data-tab-target]', 'click', function(event) {\n event.preventDefault();\n\n var delegateTarget = event.delegateTarget;\n\n var tabId = domAttr(delegateTarget, 'data-tab-target');\n\n // activate tab on link click\n self.activateTab(tabId);\n });\n\n};\n\nPropertiesPanel.prototype.updateState = function(entry, entryNode) {\n this.updateShow(entry, entryNode);\n this.updateDisable(entry, entryNode);\n};\n\n/**\n * Update the visibility of the entry node in the DOM\n */\nPropertiesPanel.prototype.updateShow = function(entry, node) {\n\n var current = this._current;\n\n if (!current) {\n return;\n }\n\n var showNodes = domQueryAll('[data-show]', node) || [];\n\n forEach(showNodes, function(showNode) {\n\n var expr = domAttr(showNode, 'data-show');\n var fn = get(entry, expr);\n if (fn) {\n var scope = domClosest(showNode, '[data-scope]') || node;\n var shouldShow = fn(current.element, node, showNode, scope) || false;\n if (shouldShow) {\n domClasses(showNode).remove(HIDE_CLASS);\n } else {\n domClasses(showNode).add(HIDE_CLASS);\n }\n }\n });\n};\n\n/**\n * Evaluates a given function. If it returns true, then the\n * node is marked as \"disabled\".\n */\nPropertiesPanel.prototype.updateDisable = function(entry, node) {\n var current = this._current;\n\n if (!current) {\n return;\n }\n\n var nodes = domQueryAll('[data-disable]', node) || [];\n\n forEach(nodes, function(currentNode) {\n var expr = domAttr(currentNode, 'data-disable');\n var fn = get(entry, expr);\n if (fn) {\n var scope = domClosest(currentNode, '[data-scope]') || node;\n var shouldDisable = fn(current.element, node, currentNode, scope) || false;\n domAttr(currentNode, 'disabled', shouldDisable ? '' : null);\n }\n });\n};\n\nPropertiesPanel.prototype.executeAction = function(entry, entryNode, actionId, event) {\n var current = this._current;\n\n if (!current) {\n return;\n }\n\n var fn = get(entry, actionId);\n if (fn) {\n var scopeNode = domClosest(event.target, '[data-scope]') || entryNode;\n return fn.apply(entry, [ current.element, entryNode, event, scopeNode ]);\n }\n};\n\n/**\n * Apply changes to the business object by executing a command\n */\nPropertiesPanel.prototype.applyChanges = function(entry, values, containerElement) {\n\n var element = this._current.element;\n\n // ensure we only update the model if we got dirty changes\n if (valuesEqual(values, entry.oldValues)) {\n return;\n }\n\n var command = entry.set(element, values, containerElement);\n\n var commandToExecute;\n\n if (isArray(command)) {\n if (command.length) {\n commandToExecute = {\n cmd: 'properties-panel.multi-command-executor',\n context: flattenDeep(command)\n };\n }\n } else {\n commandToExecute = command;\n }\n\n if (commandToExecute) {\n this._commandStack.execute(commandToExecute.cmd, commandToExecute.context || { element : element });\n } else {\n this.update(element);\n }\n};\n\n\n/**\n * apply validation errors in the DOM and show or remove an error message near the entry node.\n */\nPropertiesPanel.prototype.applyValidationErrors = function(validationErrors, entryNode) {\n\n var valid = true;\n\n var controlNodes = getFormControls(entryNode, true);\n\n forEach(controlNodes, function(controlNode) {\n\n var name = domAttr(controlNode, 'name') || domAttr(controlNode, 'data-name');\n\n var error = validationErrors && validationErrors[name];\n\n var errorMessageNode = domQuery('.bpp-error-message', controlNode.parentNode);\n\n if (error) {\n valid = false;\n\n if (!errorMessageNode) {\n errorMessageNode = domify('
');\n\n domClasses(errorMessageNode).add('bpp-error-message');\n\n // insert errorMessageNode after controlNode\n controlNode.parentNode.insertBefore(errorMessageNode, controlNode.nextSibling);\n }\n\n errorMessageNode.textContent = error;\n\n domClasses(controlNode).add('invalid');\n } else {\n domClasses(controlNode).remove('invalid');\n\n if (errorMessageNode) {\n controlNode.parentNode.removeChild(errorMessageNode);\n }\n }\n });\n\n return valid;\n};\n\n\n/**\n * Check if the entry contains valid input\n */\nPropertiesPanel.prototype.validate = function(entry, values, entryNode) {\n var self = this;\n\n var current = this._current;\n\n var valid = true;\n\n entryNode = entryNode || domQuery('[data-entry=\"' + entry.id + '\"]', current.panel);\n\n if (values instanceof Array) {\n var listContainer = domQuery('[data-list-entry-container]', entryNode),\n listEntryNodes = listContainer.children || [];\n\n // create new elements\n for (var i = 0; i < values.length; i++) {\n var listValue = values[i];\n\n if (entry.validateListItem) {\n\n var validationErrors = entry.validateListItem(current.element, listValue, entryNode, i),\n listEntryNode = listEntryNodes[i];\n\n valid = self.applyValidationErrors(validationErrors, listEntryNode) && valid;\n }\n }\n } else {\n if (entry.validate) {\n this.validationErrors = entry.validate(current.element, values, entryNode);\n\n valid = self.applyValidationErrors(this.validationErrors, entryNode) && valid;\n }\n }\n\n return valid;\n};\n\nPropertiesPanel.prototype.getEntry = function(id) {\n return this._current && this._current.entries[id];\n};\n\nPropertiesPanel.prototype._create = function(element, tabs) {\n\n if (!element) {\n return null;\n }\n\n var containerNode = this._container;\n\n var panelNode = this._createPanel(element, tabs);\n\n containerNode.appendChild(panelNode);\n\n var entries = extractEntries(tabs);\n var groups = extractGroups(tabs);\n\n return {\n tabs: tabs,\n groups: groups,\n entries: entries,\n element: element,\n panel: panelNode\n };\n};\n\n/**\n * Update variable parts of the entry node on element changes.\n *\n * @param {djs.model.Base} element\n * @param {EntryDescriptor} entry\n * @param {Object} values\n * @param {HTMLElement} entryNode\n * @param {Number} idx\n */\nPropertiesPanel.prototype._bindTemplate = function(element, entry, values, entryNode, idx) {\n\n var eventBus = this._eventBus;\n\n function isPropertyEditable(entry, propertyName) {\n return eventBus.fire('propertiesPanel.isPropertyEditable', {\n entry: entry,\n propertyName: propertyName,\n element: element\n });\n }\n\n var inputNodes = getPropertyPlaceholders(entryNode);\n\n forEach(inputNodes, function(node) {\n\n var name,\n newValue,\n editable;\n\n // we deal with an input element\n if ('value' in node || isContentEditable(node) === 'true') {\n name = domAttr(node, 'name') || domAttr(node, 'data-name');\n newValue = values[name];\n\n editable = isPropertyEditable(entry, name);\n if (editable && entry.editable) {\n editable = entry.editable(element, entryNode, node, name, newValue, idx);\n }\n\n domAttr(node, 'readonly', editable ? null : '');\n domAttr(node, 'disabled', editable ? null : '');\n\n // take full control over setting the value\n // and possibly updating the input in entry#setControlValue\n if (entry.setControlValue) {\n entry.setControlValue(element, entryNode, node, name, newValue, idx);\n } else if (isToggle(node)) {\n setToggleValue(node, newValue);\n } else if (isSelect(node)) {\n setSelectValue(node, newValue);\n } else {\n setInputValue(node, newValue);\n }\n }\n\n // we deal with some non-editable html element\n else {\n name = domAttr(node, 'data-value');\n newValue = values[name];\n if (entry.setControlValue) {\n entry.setControlValue(element, entryNode, node, name, newValue, idx);\n } else {\n setTextValue(node, newValue);\n }\n }\n });\n};\n\n// TODO(nikku): WTF freaking name? Change / clarify.\nPropertiesPanel.prototype._updateActivation = function(current) {\n var self = this;\n\n var eventBus = this._eventBus;\n\n var element = current.element;\n\n function isEntryVisible(entry, group, tab) {\n return eventBus.fire('propertiesPanel.isEntryVisible', {\n element: element,\n entry: entry,\n group: group,\n tab: tab\n });\n }\n\n function isGroupVisible(group, element, groupNode) {\n if (isFunction(group.enabled)) {\n return group.enabled(element, groupNode);\n } else {\n return true;\n }\n }\n\n function isTabVisible(tab, element) {\n if (isFunction(tab.enabled)) {\n return tab.enabled(element);\n } else {\n return true;\n }\n }\n\n function toggleVisible(node, visible) {\n domClasses(node).toggle(HIDE_CLASS, !visible);\n }\n\n function updateLabel(element, selector, text) {\n var labelNode = domQuery(selector, element);\n\n if (!labelNode) {\n return;\n }\n\n labelNode.textContent = text;\n }\n\n var panelNode = current.panel;\n\n forEach(current.tabs, function(tab) {\n\n var tabNode = domQuery('[data-tab=' + tab.id + ']', panelNode);\n var tabLinkNode = domQuery('[data-tab-target=' + tab.id + ']', panelNode).parentNode;\n\n var tabVisible = false;\n\n forEach(tab.groups, function(group) {\n\n var groupVisible = false;\n\n var groupNode = domQuery('[data-group=' + group.id + ']', tabNode);\n\n forEach(group.entries, function(entry) {\n\n var entryNode = domQuery('[data-entry=\"' + entry.id + '\"]', groupNode);\n\n var entryVisible = isEntryVisible(entry, group, tab);\n\n groupVisible = groupVisible || entryVisible;\n\n toggleVisible(entryNode, entryVisible);\n\n var values = 'get' in entry ? entry.get(element, entryNode) : {};\n\n if (values instanceof Array) {\n var listEntryContainer = domQuery('[data-list-entry-container]', entryNode);\n var existingElements = listEntryContainer.children || [];\n\n for (var i = 0; i < values.length; i++) {\n var listValue = values[i];\n var listItemNode = existingElements[i];\n if (!listItemNode) {\n listItemNode = domify(entry.createListEntryTemplate(listValue, i, listEntryContainer));\n listEntryContainer.appendChild(listItemNode);\n }\n domAttr(listItemNode, 'data-index', i);\n\n self._bindTemplate(element, entry, listValue, listItemNode, i);\n }\n\n var entriesToRemove = existingElements.length - values.length;\n\n for (var j = 0; j < entriesToRemove; j++) {\n\n // remove orphaned element\n listEntryContainer.removeChild(listEntryContainer.lastChild);\n }\n\n } else {\n self._bindTemplate(element, entry, values, entryNode);\n }\n\n // update conditionally visible elements\n self.updateState(entry, entryNode);\n self.validate(entry, values, entryNode);\n\n // remember initial state for later dirty checking\n entry.oldValues = getFormControlValues(entryNode);\n });\n\n if (typeof group.label === 'function') {\n updateLabel(groupNode, '.group-label', group.label(element, groupNode));\n }\n\n groupVisible = groupVisible && isGroupVisible(group, element, groupNode);\n\n tabVisible = tabVisible || groupVisible;\n\n toggleVisible(groupNode, groupVisible);\n });\n\n tabVisible = tabVisible && isTabVisible(tab, element);\n\n toggleVisible(tabNode, tabVisible);\n toggleVisible(tabLinkNode, tabVisible);\n });\n\n // inject elements id into header\n updateLabel(panelNode, '[data-label-id]', getBusinessObject(element).id || '');\n};\n\nPropertiesPanel.prototype._createPanel = function(element, tabs) {\n var self = this;\n\n var panelNode = domify('
'),\n headerNode = domify('
' +\n '
' +\n '
'),\n tabBarNode = domify('
'),\n tabLinksNode = domify('
    '),\n tabContainerNode = domify('
    ');\n\n panelNode.appendChild(headerNode);\n\n forEach(tabs, function(tab, tabIndex) {\n\n if (!tab.id) {\n throw new Error('tab must have an id');\n }\n\n var tabNode = domify('
    '),\n tabLinkNode = domify('
  • ' +\n '' + escapeHTML(tab.label) + '' +\n '
  • ');\n\n var groups = tab.groups;\n\n forEach(groups, function(group) {\n\n if (!group.id) {\n throw new Error('group must have an id');\n }\n\n var groupNode = domify('
    ' +\n '' +\n '
    ' +\n '' + escapeHTML(group.label) + '' +\n '
    ' +\n '
    ');\n\n if (group.dropdown) {\n domQuery('.group-header', groupNode).appendChild(createDropdown(group.dropdown));\n }\n\n // TODO(nre): use event delegation to handle that...\n groupNode.querySelector('.group-toggle').addEventListener('click', function(evt) {\n domClasses(groupNode).toggle('group-closed');\n evt.preventDefault();\n evt.stopPropagation();\n });\n groupNode.addEventListener('click', function(evt) {\n if (!evt.defaultPrevented && domClasses(groupNode).has('group-closed')) {\n domClasses(groupNode).remove('group-closed');\n }\n });\n\n forEach(group.entries, function(entry) {\n\n if (!entry.id) {\n throw new Error('entry must have an id');\n }\n\n var html = entry.html;\n\n if (typeof html === 'string') {\n html = domify(html);\n }\n\n // unwrap jquery\n if (html.get && html.constructor.prototype.jquery) {\n html = html.get(0);\n }\n\n var entryNode = domify('
    ');\n\n forEach(entry.cssClasses || [], function(cssClass) {\n domClasses(entryNode).add(cssClass);\n });\n\n entryNode.appendChild(html);\n\n groupNode.appendChild(entryNode);\n\n // update conditionally visible elements\n self.updateState(entry, entryNode);\n });\n\n tabNode.appendChild(groupNode);\n });\n\n tabLinksNode.appendChild(tabLinkNode);\n tabContainerNode.appendChild(tabNode);\n });\n\n tabBarNode.appendChild(tabLinksNode);\n\n panelNode.appendChild(tabBarNode);\n panelNode.appendChild(tabContainerNode);\n\n return panelNode;\n};\n\n\n\nfunction setInputValue(node, value) {\n\n var contentEditable = isContentEditable(node);\n\n var oldValue = contentEditable ? node.innerText : node.value;\n\n var selection;\n\n // prevents input fields from having the value 'undefined'\n if (value === undefined) {\n value = '';\n }\n\n if (oldValue === value) {\n return;\n }\n\n // update selection on undo/redo\n if (document.activeElement === node) {\n selection = updateSelection(getSelection(node), oldValue, value);\n }\n\n if (contentEditable) {\n node.innerText = value;\n } else {\n node.value = value;\n }\n\n if (selection) {\n setSelection(node, selection);\n }\n}\n\nfunction setSelectValue(node, value) {\n if (value !== undefined) {\n node.value = value;\n }\n}\n\nfunction setToggleValue(node, value) {\n var nodeValue = node.value;\n\n node.checked = (value === nodeValue) || (!domAttr(node, 'value') && value);\n}\n\nfunction setTextValue(node, value) {\n node.textContent = value;\n}\n\nfunction getSelection(node) {\n\n return isContentEditable(node) ? getContentEditableSelection(node) : {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n}\n\nfunction getContentEditableSelection(node) {\n\n var selection = window.getSelection();\n\n var focusNode = selection.focusNode,\n focusOffset = selection.focusOffset,\n anchorOffset = selection.anchorOffset;\n\n if (!focusNode) {\n throw new Error('not selected');\n }\n\n // verify we have selection on the current element\n if (!node.contains(focusNode)) {\n throw new Error('not selected');\n }\n\n return {\n start: Math.min(focusOffset, anchorOffset),\n end: Math.max(focusOffset, anchorOffset)\n };\n}\n\nfunction setSelection(node, selection) {\n\n if (isContentEditable(node)) {\n setContentEditableSelection(node, selection);\n } else {\n node.selectionStart = selection.start;\n node.selectionEnd = selection.end;\n }\n}\n\nfunction setContentEditableSelection(node, selection) {\n\n var focusNode,\n domRange,\n domSelection;\n\n focusNode = node.firstChild || node,\n domRange = document.createRange();\n domRange.setStart(focusNode, selection.start);\n domRange.setEnd(focusNode, selection.end);\n\n domSelection = window.getSelection();\n domSelection.removeAllRanges();\n domSelection.addRange(domRange);\n}\n\nfunction isImplicitRoot(element) {\n return element.id === '__implicitroot';\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/Utils.js": /*!************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/Utils.js ***! \************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n domClear = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").clear,\n domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n Ids = __webpack_require__(/*! ids */ \"./node_modules/ids/dist/index.esm.js\").default;\n\nvar SPACE_REGEX = /\\s/;\n\n// for QName validation as per http://www.w3.org/TR/REC-xml/#NT-NameChar\nvar QNAME_REGEX = /^([a-z][\\w-.]*:)?[a-z_][\\w-.]*$/i;\n\n// for ID validation as per BPMN Schema (QName - Namespace)\nvar ID_REGEX = /^[a-z_][\\w-.]*$/i;\n\nvar HTML_ESCAPE_MAP = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nfunction selectedOption(selectBox) {\n if (selectBox.selectedIndex >= 0) {\n return selectBox.options[selectBox.selectedIndex].value;\n }\n}\n\nmodule.exports.selectedOption = selectedOption;\n\n\nfunction selectedType(elementSyntax, inputNode) {\n var typeSelect = domQuery(elementSyntax, inputNode);\n return selectedOption(typeSelect);\n}\n\nmodule.exports.selectedType = selectedType;\n\n\n/**\n * Retrieve the root element the document this\n * business object is contained in.\n *\n * @return {ModdleElement}\n */\nfunction getRoot(businessObject) {\n var parent = businessObject;\n while (parent.$parent) {\n parent = parent.$parent;\n }\n return parent;\n}\n\nmodule.exports.getRoot = getRoot;\n\n\n/**\n * filters all elements in the list which have a given type.\n * removes a new list\n */\nfunction filterElementsByType(objectList, type) {\n var list = objectList || [];\n var result = [];\n forEach(list, function(obj) {\n if (is(obj, type)) {\n result.push(obj);\n }\n });\n return result;\n}\n\nmodule.exports.filterElementsByType = filterElementsByType;\n\n\nfunction findRootElementsByType(businessObject, referencedType) {\n var root = getRoot(businessObject);\n\n return filterElementsByType(root.rootElements, referencedType);\n}\n\nmodule.exports.findRootElementsByType = findRootElementsByType;\n\n\nfunction removeAllChildren(domElement) {\n while (domElement.firstChild) {\n domElement.removeChild(domElement.firstChild);\n }\n}\n\nmodule.exports.removeAllChildren = removeAllChildren;\n\n\n/**\n * adds an empty option to the list\n */\nfunction addEmptyParameter(list) {\n return list.push({ 'label': '', 'value': '', 'name': '' });\n}\n\nmodule.exports.addEmptyParameter = addEmptyParameter;\n\n\n/**\n * returns a dropdown option label depending on the defined event attributes\n */\nfunction getOptionLabel(obj) {\n var label = obj.name || '';\n\n if (obj.errorCode)\n label += ' (code=' + obj.errorCode + ')';\n if (obj.escalationCode)\n label += ' (code=' + obj.escalationCode + ')';\n\n return label;\n}\n\n/**\n * returns a list with all root elements for the given parameter 'referencedType'\n */\nfunction refreshOptionsModel(businessObject, referencedType) {\n var model = [];\n var referableObjects = findRootElementsByType(businessObject, referencedType);\n forEach(referableObjects, function(obj) {\n model.push({\n label: getOptionLabel(obj),\n value: obj.id,\n name: obj.name\n });\n });\n return model;\n}\n\nmodule.exports.refreshOptionsModel = refreshOptionsModel;\n\n\n/**\n * fills the drop down with options\n */\nfunction updateOptionsDropDown(domSelector, businessObject, referencedType, entryNode) {\n var options = refreshOptionsModel(businessObject, referencedType);\n addEmptyParameter(options);\n var selectBox = domQuery(domSelector, entryNode);\n domClear(selectBox);\n\n forEach(options, function(option) {\n var optionEntry = domify('');\n selectBox.appendChild(optionEntry);\n });\n return options;\n}\n\nmodule.exports.updateOptionsDropDown = updateOptionsDropDown;\n\n\n/**\n * checks whether the id value is valid\n *\n * @param {ModdleElement} bo\n * @param {String} idValue\n * @param {Function} translate\n *\n * @return {String} error message\n */\nfunction isIdValid(bo, idValue, translate) {\n var assigned = bo.$model.ids.assigned(idValue);\n\n var idExists = assigned && assigned !== bo;\n\n if (!idValue || idExists) {\n return translate('Element must have an unique id.');\n }\n\n return validateId(idValue, translate);\n}\n\nmodule.exports.isIdValid = isIdValid;\n\n\nfunction validateId(idValue, translate) {\n\n if (containsSpace(idValue)) {\n return translate('Id must not contain spaces.');\n }\n\n if (!ID_REGEX.test(idValue)) {\n\n if (QNAME_REGEX.test(idValue)) {\n return translate('Id must not contain prefix.');\n }\n\n return translate('Id must be a valid QName.');\n }\n}\n\nmodule.exports.validateId = validateId;\n\n\nfunction containsSpace(value) {\n return SPACE_REGEX.test(value);\n}\n\nmodule.exports.containsSpace = containsSpace;\n\n/**\n * generate a semantic id with given prefix\n */\nfunction nextId(prefix) {\n var ids = new Ids([32,32,1]);\n\n return ids.nextPrefixed(prefix);\n}\n\nmodule.exports.nextId = nextId;\n\n\nfunction triggerClickEvent(element) {\n var evt;\n var eventType = 'click';\n\n if (document.createEvent) {\n try {\n\n // Chrome, Safari, Firefox\n evt = new MouseEvent((eventType), { view: window, bubbles: true, cancelable: true });\n } catch (e) {\n\n // IE 11, PhantomJS (wat!)\n evt = document.createEvent('MouseEvent');\n\n evt.initEvent((eventType), true, true);\n }\n return element.dispatchEvent(evt);\n } else {\n\n // Welcome IE\n evt = document.createEventObject();\n\n return element.fireEvent('on' + eventType, evt);\n }\n}\n\nmodule.exports.triggerClickEvent = triggerClickEvent;\n\n\nfunction escapeHTML(str) {\n str = '' + str;\n\n return str && str.replace(/[&<>\"']/g, function(match) {\n return HTML_ESCAPE_MAP[match];\n });\n}\n\nmodule.exports.escapeHTML = escapeHTML;\n\nfunction createDropdown(dropdown) {\n var menu = dropdown.menu;\n\n var dropdownNode = domify(\n '
    ' +\n '' +\n '
    ' +\n '
    '\n );\n\n var buttonNode = domQuery('.group__dropdown-button', dropdownNode),\n menuNode = domQuery('.group__dropdown-menu', dropdownNode);\n\n buttonNode.addEventListener('click', function(event) {\n domClasses(dropdownNode).toggle('group__dropdown--open');\n\n createOnGlobalClick(event);\n });\n\n forEach(menu, function(menuItem) {\n var menuItemNode = domify('
    ' + escapeHTML(menuItem.label) + '
    ');\n\n menuItemNode.addEventListener('click', function() {\n menuItem.onClick();\n\n domClasses(dropdownNode).remove('group__dropdown--open');\n });\n\n menuNode.appendChild(menuItemNode);\n });\n\n var _onGlobalClick;\n\n function createOnGlobalClick(_event) {\n function onGlobalClick(event) {\n if (event === _event) {\n return;\n }\n\n var target = event.target;\n\n if (menuNode !== target && !menuNode.contains(target)) {\n domClasses(dropdownNode).remove('group__dropdown--open');\n\n document.removeEventListener('click', onGlobalClick);\n }\n }\n\n if (_onGlobalClick) {\n document.removeEventListener('click', _onGlobalClick);\n }\n\n document.addEventListener('click', onGlobalClick);\n\n _onGlobalClick = onGlobalClick;\n }\n\n return dropdownNode;\n}\n\nmodule.exports.createDropdown = createDropdown;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/Utils.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar elementHelper = __webpack_require__(/*! ../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\n/**\n * A handler capable of creating a new element under a provided parent\n * and updating / creating a reference to it in one atomic action.\n *\n * @class\n * @constructor\n */\nfunction CreateAndReferenceElementHandler(elementRegistry, bpmnFactory) {\n this._elementRegistry = elementRegistry;\n this._bpmnFactory = bpmnFactory;\n}\n\nCreateAndReferenceElementHandler.$inject = [ 'elementRegistry', 'bpmnFactory' ];\n\nmodule.exports = CreateAndReferenceElementHandler;\n\n\n// api ////////////////////\n\n/**\n * Creates a new element under a provided parent and updates / creates a reference to it in\n * one atomic action.\n *\n * @method CreateAndReferenceElementHandler#execute\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element which is the context for the reference\n * @param {moddle.referencingObject} context.referencingObject the object which creates the reference\n * @param {String} context.referenceProperty the property of the referencingObject which makes the reference\n * @param {moddle.newObject} context.newObject the new object to add\n * @param {moddle.newObjectContainer} context.newObjectContainer the container for the new object\n *\n * @returns {Array} the updated element\n */\nCreateAndReferenceElementHandler.prototype.execute = function(context) {\n\n var referencingObject = ensureNotNull(context.referencingObject, 'referencingObject'),\n referenceProperty = ensureNotNull(context.referenceProperty, 'referenceProperty'),\n newObject = ensureNotNull(context.newObject, 'newObject'),\n newObjectContainer = ensureNotNull(context.newObjectContainer, 'newObjectContainer'),\n newObjectParent = ensureNotNull(context.newObjectParent, 'newObjectParent'),\n changed = [ context.element ]; // this will not change any diagram-js elements\n\n // create new object\n var referencedObject = elementHelper\n .createElement(newObject.type, newObject.properties, newObjectParent, this._bpmnFactory);\n context.referencedObject = referencedObject;\n\n // add to containing list\n newObjectContainer.push(referencedObject);\n\n // adjust reference attribute\n context.previousReference = referencingObject[referenceProperty];\n referencingObject[referenceProperty] = referencedObject;\n\n context.changed = changed;\n\n // indicate changed on objects affected by the update\n return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method CreateAndReferenceElementHandler#revert\n *\n * @param {Object} context\n *\n * @returns {djs.mode.Base} the updated element\n */\nCreateAndReferenceElementHandler.prototype.revert = function(context) {\n\n var referencingObject = context.referencingObject,\n referenceProperty = context.referenceProperty,\n previousReference = context.previousReference,\n referencedObject = context.referencedObject,\n newObjectContainer = context.newObjectContainer;\n\n // reset reference\n referencingObject.set(referenceProperty, previousReference);\n\n // remove new element\n newObjectContainer.splice(newObjectContainer.indexOf(referencedObject), 1);\n\n return context.changed;\n};\n\n\n\n// helpers //////////////\n\nfunction ensureNotNull(prop, name) {\n if (!prop) {\n throw new Error(name + ' required');\n }\n return prop;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js ***! \******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar elementHelper = __webpack_require__(/*! ../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\n/**\n * A handler that implements a BPMN 2.0 property update\n * for business objects which are not represented in the\n * diagram.\n *\n * This is useful in the context of the properties panel in\n * order to update child elements of elements visible in\n * the diagram.\n *\n * Example: perform an update of a specific event definition\n * of an intermediate event.\n *\n * @class\n * @constructor\n */\nfunction CreateBusinessObjectListHandler(elementRegistry, bpmnFactory) {\n this._elementRegistry = elementRegistry;\n this._bpmnFactory = bpmnFactory;\n}\n\nCreateBusinessObjectListHandler.$inject = [ 'elementRegistry', 'bpmnFactory' ];\n\nmodule.exports = CreateBusinessObjectListHandler;\n\nfunction ensureNotNull(prop, name) {\n if (!prop) {\n throw new Error(name + ' required');\n }\n return prop;\n\n}\nfunction ensureList(prop, name) {\n if (!prop || Object.prototype.toString.call(prop) !== '[object Array]') {\n throw new Error(name + ' needs to be a list');\n }\n return prop;\n}\n\n// api /////////////////////////////////////////////\n\n/**\n * Creates a new element under a provided parent and updates / creates a reference to it in\n * one atomic action.\n *\n * @method CreateBusinessObjectListHandler#execute\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element which is the context for the reference\n * @param {moddle.referencingObject} context.referencingObject the object which creates the reference\n * @param {String} context.referenceProperty the property of the referencingObject which makes the reference\n * @param {moddle.newObject} context.newObject the new object to add\n * @param {moddle.newObjectContainer} context.newObjectContainer the container for the new object\n *\n * @return {Array} the updated element\n */\nCreateBusinessObjectListHandler.prototype.execute = function(context) {\n\n var currentObject = ensureNotNull(context.currentObject, 'currentObject'),\n propertyName = ensureNotNull(context.propertyName, 'propertyName'),\n newObjects = ensureList(context.newObjects, 'newObjects'),\n changed = [ context.element ]; // this will not change any diagram-js elements\n\n\n var childObjects = [];\n var self = this;\n\n // create new array of business objects\n forEach(newObjects, function(obj) {\n var element = elementHelper.createElement(obj.type, obj.properties, currentObject, self._bpmnFactory);\n\n childObjects.push(element);\n });\n context.childObject = childObjects;\n\n // adjust array reference in the parent business object\n context.previousChilds = currentObject[propertyName];\n currentObject[propertyName] = childObjects;\n\n context.changed = changed;\n\n // indicate changed on objects affected by the update\n return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method CreateBusinessObjectListHandler#revert\n *\n * @param {Object} context\n *\n * @return {djs.mode.Base} the updated element\n */\nCreateBusinessObjectListHandler.prototype.revert = function(context) {\n\n var currentObject = context.currentObject,\n propertyName = context.propertyName,\n previousChilds = context.previousChilds;\n\n // remove new element\n currentObject.set(propertyName, previousChilds);\n\n return context.changed;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js": /*!******************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js ***! \******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n/**\n * A handler that combines and executes multiple commands.\n *\n * All updates are bundled on the command stack and executed in one step.\n * This also makes it possible to revert the changes in one step.\n *\n * Example use case: remove the camunda:formKey attribute and in addition\n * add all form fields needed for the camunda:formData property.\n *\n * @class\n * @constructor\n */\nfunction MultiCommandHandler(commandStack) {\n this._commandStack = commandStack;\n}\n\nMultiCommandHandler.$inject = [ 'commandStack' ];\n\nmodule.exports = MultiCommandHandler;\n\nMultiCommandHandler.prototype.preExecute = function(context) {\n\n var commandStack = this._commandStack;\n\n forEach(context, function(command) {\n commandStack.execute(command.cmd, command.context);\n });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js": /*!**************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js ***! \**************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar reduce = __webpack_require__(/*! lodash/transform */ \"./node_modules/lodash/transform.js\"),\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\"),\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n/**\n * A handler that implements a BPMN 2.0 property update\n * for business objects which are not represented in the\n * diagram.\n *\n * This is useful in the context of the properties panel in\n * order to update child elements of elements visible in\n * the diagram.\n *\n * Example: perform an update of a specific event definition\n * of an intermediate event.\n *\n * @class\n * @constructor\n */\nfunction UpdateBusinessObjectHandler(elementRegistry) {\n this._elementRegistry = elementRegistry;\n}\n\nUpdateBusinessObjectHandler.$inject = [ 'elementRegistry' ];\n\nmodule.exports = UpdateBusinessObjectHandler;\n\n/**\n * returns the root element\n */\nfunction getRoot(businessObject) {\n var parent = businessObject;\n while (parent.$parent) {\n parent = parent.$parent;\n }\n return parent;\n}\n\nfunction getProperties(businessObject, propertyNames) {\n return reduce(propertyNames, function(result, key) {\n result[key] = businessObject.get(key);\n return result;\n }, {});\n}\n\n\nfunction setProperties(businessObject, properties) {\n forEach(properties, function(value, key) {\n businessObject.set(key, value);\n });\n}\n\n\n// api /////////////////////////////////////////////\n\n/**\n * Updates a business object with a list of new properties\n *\n * @method UpdateBusinessObjectHandler#execute\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element the element which has a child business object updated\n * @param {moddle.businessObject} context.businessObject the businessObject to update\n * @param {Object} context.properties a list of properties to set on the businessObject\n *\n * @return {Array} the updated element\n */\nUpdateBusinessObjectHandler.prototype.execute = function(context) {\n\n var element = context.element,\n businessObject = context.businessObject,\n rootElements = getRoot(businessObject).rootElements,\n referenceType = context.referenceType,\n referenceProperty = context.referenceProperty,\n changed = [ element ]; // this will not change any diagram-js elements\n\n if (!element) {\n throw new Error('element required');\n }\n\n if (!businessObject) {\n throw new Error('businessObject required');\n }\n\n var properties = context.properties,\n oldProperties = context.oldProperties || getProperties(businessObject, keys(properties));\n\n // check if there the update needs an external element for reference\n if (typeof referenceType !== 'undefined' && typeof referenceProperty !== 'undefined') {\n forEach(rootElements, function(rootElement) {\n if (is(rootElement, referenceType)) {\n if (rootElement.id === properties[referenceProperty]) {\n properties[referenceProperty] = rootElement;\n }\n }\n });\n }\n\n // update properties\n setProperties(businessObject, properties);\n\n // store old values\n context.oldProperties = oldProperties;\n context.changed = changed;\n\n // indicate changed on objects affected by the update\n return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method UpdateBusinessObjectHandler#revert\n *\n * @param {Object} context\n *\n * @return {djs.mode.Base} the updated element\n */\nUpdateBusinessObjectHandler.prototype.revert = function(context) {\n\n var oldProperties = context.oldProperties,\n businessObject = context.businessObject;\n\n // update properties\n setProperties(businessObject, oldProperties);\n\n return context.changed;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js ***! \******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n/**\n * A handler that implements a BPMN 2.0 property update\n * for business object lists which are not represented in the\n * diagram.\n *\n * This is useful in the context of the properties panel in\n * order to update child elements of elements visible in\n * the diagram.\n *\n * Example: perform an update of a specific event definition\n * of an intermediate event.\n *\n * @class\n * @constructor\n */\nfunction UpdateBusinessObjectListHandler(elementRegistry, bpmnFactory) {\n this._elementRegistry = elementRegistry;\n this._bpmnFactory = bpmnFactory;\n}\n\nUpdateBusinessObjectListHandler.$inject = [ 'elementRegistry', 'bpmnFactory' ];\n\nmodule.exports = UpdateBusinessObjectListHandler;\n\nfunction ensureNotNull(prop, name) {\n if (!prop) {\n throw new Error(name + 'required');\n }\n return prop;\n}\n\n// api /////////////////////////////////////////////\n\n/**\n * Updates a element under a provided parent.\n */\nUpdateBusinessObjectListHandler.prototype.execute = function(context) {\n\n var currentObject = ensureNotNull(context.currentObject, 'currentObject'),\n propertyName = ensureNotNull(context.propertyName, 'propertyName'),\n updatedObjectList = context.updatedObjectList,\n objectsToRemove = context.objectsToRemove || [],\n objectsToAdd = context.objectsToAdd || [],\n objectsToPrepend = context.objectsToPrepend || [],\n changed = [ context.element], // this will not change any diagram-js elements\n referencePropertyName;\n\n if (context.referencePropertyName) {\n referencePropertyName = context.referencePropertyName;\n }\n\n var objectList = currentObject[propertyName];\n\n // adjust array reference in the parent business object\n context.previousList = currentObject[propertyName];\n\n if (updatedObjectList) {\n currentObject[propertyName] = updatedObjectList;\n } else {\n\n // start with objects to prepend\n var listCopy = objectsToPrepend.slice();\n\n // remove all objects which should be removed\n forEach(objectList, function(object) {\n if (objectsToRemove.indexOf(object) == -1) {\n listCopy.push(object);\n }\n });\n\n // add all objects which should be added\n listCopy = listCopy.concat(objectsToAdd);\n\n // set property to new list\n if (listCopy.length > 0 || !referencePropertyName) {\n\n // as long as there are elements in the list update the list\n currentObject[propertyName] = listCopy;\n } else if (referencePropertyName) {\n\n // remove the list when it is empty\n var parentObject = currentObject.$parent;\n parentObject.set(referencePropertyName, undefined);\n }\n }\n\n context.changed = changed;\n\n // indicate changed on objects affected by the update\n return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method CreateBusinessObjectListHandler#revert\n *\n * @param {Object} context\n *\n * @return {djs.mode.Base} the updated element\n */\nUpdateBusinessObjectListHandler.prototype.revert = function(context) {\n\n var currentObject = context.currentObject,\n propertyName = context.propertyName,\n previousList = context.previousList,\n parentObject = currentObject.$parent;\n\n if (context.referencePropertyName) {\n parentObject.set(context.referencePropertyName, currentObject);\n }\n\n // remove new element\n currentObject.set(propertyName, previousList);\n\n return context.changed;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/index.js": /*!****************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/index.js ***! \****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar HANDLERS = {\n 'properties-panel.update-businessobject': __webpack_require__(/*! ./UpdateBusinessObjectHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js\"),\n 'properties-panel.create-and-reference': __webpack_require__(/*! ./CreateAndReferenceHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js\"),\n 'properties-panel.create-businessobject-list': __webpack_require__(/*! ./CreateBusinessObjectListHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js\"),\n 'properties-panel.update-businessobject-list': __webpack_require__(/*! ./UpdateBusinessObjectListHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js\"),\n 'properties-panel.multi-command-executor': __webpack_require__(/*! ./MultiCommandHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js\")\n};\n\n\nfunction CommandInitializer(eventBus, commandStack) {\n\n eventBus.on('diagram.init', function() {\n forEach(HANDLERS, function(handler, id) {\n commandStack.registerHandler(id, handler);\n });\n });\n}\n\nCommandInitializer.$inject = [ 'eventBus', 'commandStack' ];\n\nmodule.exports = {\n __init__: [ CommandInitializer ]\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js": /*!****************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js ***! \****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar assign = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").assign,\n find = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").find,\n forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n debounce = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").debounce;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar CLASS_ACTIVE = 'active';\n\nvar FOCUS_LEAVE_DELAY = '150';\n\nvar TEXT_NODE_NAME = '#text';\n\nvar SUGGESTION_LIST_BOX_THRESHOLD = 15;\n\nvar noop = function() {};\n\n\nvar autoSuggestTextBox = function(translate, options, defaultParameters) {\n\n var resource = defaultParameters,\n label = options.label || resource.id,\n canBeShown = !!options.show && typeof options.show === 'function',\n description = options.description;\n\n resource.html =\n domify('' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ');\n\n if (description) {\n domQuery('.bpp-field-wrapper', resource.html).appendChild(entryFieldDescription(translate, description));\n }\n\n if (canBeShown) {\n resource.isShown = function() {\n return options.show.apply(resource, arguments);\n };\n }\n\n /**\n * Ensure selected item got recognized before list got hidden\n */\n resource.handleFocusLeave = debounce(function(element, entryNode) {\n clearSuggestionList(entryNode);\n hideSuggestionList(entryNode);\n }, FOCUS_LEAVE_DELAY);\n\n /**\n * Fill the suggestion list relative to the current word under the cursor.\n *\n * @param {djs.model.Base} element\n * @param {HTMLElement} entryNode\n * @param {Event} event\n */\n resource.suggestItems = function(element, entryNode, event) {\n var editorNode = event.delegateTarget,\n range = getSelectionRange(),\n focusNode = range.focusNode,\n caretPosition = getCaretPosition(range.range),\n canSuggest = options.canSuggest || noop,\n getItems = options.getItems;\n\n function updateSuggestionList(items) {\n var listNode = domQuery('.bpp-autosuggest-list', entryNode);\n\n // (1) clear list before\n clearSuggestionList(entryNode);\n\n // (2) keep list invisible if no items\n if (!items.length) {\n return;\n }\n\n domClasses(listNode).add(CLASS_ACTIVE);\n\n // (3) create new items\n forEach(items, function(item) {\n createSuggestionItem(listNode, item);\n });\n\n // (4) place list relative to cursor\n var position = getSuggestionListPosition(listNode, document.body).position;\n setPosition(listNode, position.x, position.y);\n }\n\n function createSuggestionItem(parentNode, value) {\n var itemNode = domify('
    ');\n itemNode.innerText = escapeHTML(value);\n\n parentNode.appendChild(itemNode);\n\n itemNode.addEventListener('click', handleItemClick);\n }\n\n function handleItemClick(event) {\n var value = event.target.innerText,\n wordIndex = currentWord.index,\n start = wordIndex,\n end = wordIndex + currentWord[0].length;\n\n selectRange(focusNode, start, end);\n\n document.execCommand('insertText', false, value);\n\n clearSuggestionList(entryNode);\n hideSuggestionList(entryNode);\n }\n\n hideSuggestionList(entryNode);\n\n var currentWord = (getWordUnderCursor(focusNode, caretPosition) || []);\n\n if (currentWord && canSuggest(currentWord, editorNode, focusNode)) {\n var items = getItems(element, entryNode),\n results = [],\n value = currentWord[0];\n\n // sort matches by\n // (1) item starts with value (case insensitive)\n // (2) value is inside suggested item (case insensitive)\n forEach(items, function(item) {\n var itemLowerCase = item.toLowerCase(),\n valueLowerCase = value && value.toLowerCase();\n\n if (itemLowerCase.indexOf(valueLowerCase) === 0) {\n results.push(item);\n }\n });\n\n forEach(items, function(item) {\n var itemLowerCase = item.toLowerCase(item),\n valueLowerCase = value && value.toLowerCase();\n\n if (itemLowerCase.indexOf(valueLowerCase) >= 1) {\n results.push(item);\n }\n });\n\n updateSuggestionList(results);\n }\n };\n\n /**\n * Calculates the position coordinates of the suggestion list,\n * dependant on position of cursor\n *\n * @return {Object} coordinates\n */\n function getSuggestionListPosition(listNode, container) {\n var range = getSelectionRange().range,\n cursorBounds = range.getBoundingClientRect(),\n clientBounds = container.getBoundingClientRect(),\n listBounds = listNode.getBoundingClientRect();\n\n var coordinates = {\n 'top-left': {\n x: cursorBounds.right - listBounds.width,\n y: cursorBounds.top - listBounds.height\n },\n 'top-right': {\n x: cursorBounds.right,\n y: cursorBounds.top - listBounds.height\n },\n 'bottom-left': {\n x: cursorBounds.right - listBounds.width,\n y: cursorBounds.top + SUGGESTION_LIST_BOX_THRESHOLD\n },\n 'bottom-right': {\n x: cursorBounds.right,\n y: cursorBounds.top + SUGGESTION_LIST_BOX_THRESHOLD\n }\n };\n\n var orientation = '';\n\n if (cursorBounds.top + SUGGESTION_LIST_BOX_THRESHOLD + listBounds.height > (clientBounds.height + clientBounds.top)) {\n orientation = 'top-';\n } else {\n orientation = 'bottom-';\n }\n\n if (cursorBounds.right + listBounds.width > (clientBounds.width + clientBounds.left)) {\n orientation += 'left';\n } else {\n orientation += 'right';\n }\n\n return { orientation: orientation, position: coordinates[orientation] };\n }\n\n resource.getSuggestionListPosition = getSuggestionListPosition;\n\n\n resource.cssClasses = ['bpp-autosuggest-textbox'];\n\n return resource;\n};\n\nmodule.exports = autoSuggestTextBox;\n\n\n// helpers /////////////////////////////\n\nfunction getSelectionRange() {\n var selection = document.getSelection();\n\n return {\n range: selection.getRangeAt(0),\n focusNode: selection.focusNode\n };\n}\n\nfunction getCaretPosition(range) {\n return range.startOffset;\n}\n\nfunction selectRange(focusNode, start, end) {\n var range = document.createRange(),\n selection = window.getSelection();\n\n range.setStart(focusNode, start);\n range.setEnd(focusNode, end);\n\n selection.removeAllRanges();\n\n selection.addRange(range);\n}\n\nfunction hideSuggestionList(entryNode) {\n var listNode = domQuery('.bpp-autosuggest-list', entryNode);\n domClasses(listNode).remove(CLASS_ACTIVE);\n}\n\nfunction clearSuggestionList(entryNode) {\n var listNode = domQuery('.bpp-autosuggest-list', entryNode);\n while (listNode.firstChild) {\n listNode.removeChild(listNode.firstChild);\n }\n}\n\nfunction getWordUnderCursor(node, currentCursorPositon) {\n var value = node.nodeName === TEXT_NODE_NAME ? node.wholeText : node.innerText,\n allWords = findWords(value);\n\n return find(allWords, function(word) {\n var matchValue = word[0],\n wordStart = word.index,\n wordEnd = wordStart + matchValue.length - 1;\n\n return (\n wordStart <= (currentCursorPositon - 1) &&\n wordEnd >= (currentCursorPositon - 1)\n );\n });\n}\n\n/**\n * Retrieves all words inside a text (also inside clauses and after operators)\n *\n * @param {string} value\n *\n * @return {Array}\n */\nfunction findWords(value) {\n\n // eslint-disable-next-line no-useless-escape\n return matchAll(value, /[^\\s\\r\\(\\)\\,\\+\\-\\*\\/\\{\\}]+/g);\n}\n\nfunction matchAll(value, regex) {\n var regexp = RegExp(regex),\n match,\n matches = [];\n\n while ((match = regexp.exec(value)) !== null) {\n matches.push(match);\n }\n\n return matches;\n}\n\nfunction setPosition(el, x, y) {\n assign(el.style, { left: x + 'px', top: y + 'px' });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js ***! \***********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar checkbox = function(translate, options, defaultParameters) {\n var resource = defaultParameters,\n id = resource.id,\n label = options.label || id,\n canBeDisabled = !!options.disabled && typeof options.disabled === 'function',\n canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n description = options.description;\n\n resource.html =\n domify('' +\n '');\n\n // add description below checkbox entry field\n if (description) {\n resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeHidden && 'isHidden' }));\n }\n\n resource.get = function(element) {\n var bo = getBusinessObject(element),\n res = {};\n\n res[options.modelProperty] = bo.get(options.modelProperty);\n\n return res;\n };\n\n resource.set = function(element, values) {\n var res = {};\n\n res[options.modelProperty] = !!values[options.modelProperty];\n\n return cmdHelper.updateProperties(element, res);\n };\n\n if (typeof options.set === 'function') {\n resource.set = options.set;\n }\n\n if (typeof options.get === 'function') {\n resource.get = options.get;\n }\n\n if (canBeDisabled) {\n resource.isDisabled = function() {\n return options.disabled.apply(resource, arguments);\n };\n }\n\n if (canBeHidden) {\n resource.isHidden = function() {\n return !options.hidden.apply(resource, arguments);\n };\n }\n\n resource.cssClasses = ['bpp-checkbox'];\n\n return resource;\n};\n\nmodule.exports = checkbox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js": /*!**************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js ***! \**************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\n\n/**\n * @param {object} options\n * @param {string} options.id\n * @param {string} [options.title='']\n * @param {string} [options.description='']\n * @param {boolean} [options.open=false]\n * @param {Function} [options.onToggle]\n * @param {Function} [options.onRemove]\n *\n * @return {object}\n */\nfunction Collapsible(options) {\n\n var id = options.id,\n title = options.title || '',\n description = options.description || '',\n open = !!options.open || false,\n onToggle = options.onToggle || noop,\n onRemove = options.onRemove,\n cssClasses = options.cssClasses || [];\n\n\n var collapsibleEntry = {\n id: id,\n toggle: toggle,\n isOpen: isOpen,\n set: set,\n setOpen: setOpen,\n get: get\n };\n\n if (typeof onRemove === 'function') {\n collapsibleEntry.onRemove = function(entry, entryNode, actionId, event) {\n var commands = onRemove(entry, entryNode, actionId, event);\n\n if (commands) {\n scheduleCommands(commands, entryNode);\n return true;\n }\n };\n }\n\n function get(element, entryNode) {\n if (options.get) {\n return options.get(element, entryNode);\n }\n\n return {\n title: title || '',\n description: description || ''\n };\n }\n\n function set() {\n var commands = this._commands;\n\n if (commands) {\n delete this._commands;\n return commands;\n }\n }\n\n function toggle(element, entryNode, event, scope) {\n var value = !open;\n\n setOpen(value, entryNode);\n onToggle(value, entryNode);\n }\n\n /**\n * Set entry's open state.\n *\n * @param {boolean} value\n * @param {HTMLElement} entryNode\n */\n function setOpen(value, entryNode) {\n open = value;\n entryNode.classList.toggle('bpp-collapsible--collapsed', !value);\n }\n\n function isOpen() {\n return open;\n }\n\n /**\n * Schedule commands to be run with next `set` method call.\n *\n * @param {Array} commands\n * @param {HTMLElement} entryNode\n */\n function scheduleCommands(commands, entryNode) {\n collapsibleEntry._commands = commands;\n\n // @barmac: hack to make properties panel call `set`\n var input = domQuery('input[type=\"hidden\"]', entryNode);\n input.value = 1;\n }\n\n collapsibleEntry.html = '
    ' +\n '' +\n '' +\n '' +\n (onRemove ? '' : '') +\n '
    ';\n\n collapsibleEntry.cssClasses = cssClasses.concat(open ?\n [ 'bpp-collapsible' ] : [ 'bpp-collapsible', 'bpp-collapsible--collapsed' ]\n );\n\n return collapsibleEntry;\n}\n\nmodule.exports = Collapsible;\n\nfunction noop() {}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js": /*!********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js ***! \********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\"),\n find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar selectEntryFactory = __webpack_require__(/*! ./SelectEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js\"),\n entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\n/**\n * The combo box is a special implementation of the select entry and adds the option 'custom' to the\n * select box. If 'custom' is selected, an additional text input field is shown which allows to define\n * a custom value.\n *\n * @param {Object} options\n * @param {string} options.id\n * @param {string} options.label\n * @param {Array} options.selectOptions list of name/value pairs\n * @param {string} options.modelProperty\n * @param {function} options.get\n * @param {function} options.set\n * @param {string} [options.customValue] custom select option value (default: 'custom')\n * @param {string} [options.customName] custom select option name visible in the select box (default: 'custom')\n *\n * @return {Object}\n */\nvar comboBox = function(translate, options) {\n\n var selectOptions = options.selectOptions,\n modelProperty = options.modelProperty,\n customValue = options.customValue || 'custom',\n customName = options.customName || 'custom ' + modelProperty,\n description = options.description;\n\n // check if a value is not a built in value\n var isCustomValue = function(value) {\n if (typeof value[modelProperty] === 'undefined') {\n return false;\n }\n\n var isCustom = !find(selectOptions, function(option) {\n return value[modelProperty] === option.value;\n });\n\n return isCustom;\n };\n\n var comboOptions = assign({}, options);\n\n // true if the selected value in the select box is customValue\n comboOptions.showCustomInput = function(element, node) {\n var selectBox = domQuery('[data-entry=\"'+ options.id +'\"] select', node.parentNode);\n\n if (selectBox) {\n return selectBox.value === customValue;\n }\n\n return false;\n };\n\n comboOptions.get = function(element, node) {\n var value = options.get(element, node);\n\n var modifiedValues = {};\n\n if (!isCustomValue(value)) {\n modifiedValues[modelProperty] = value[modelProperty] || '';\n\n return modifiedValues;\n }\n\n modifiedValues[modelProperty] = customValue;\n modifiedValues['custom-'+modelProperty] = value[modelProperty];\n\n return modifiedValues;\n };\n\n comboOptions.set = function(element, values, node) {\n var modifiedValues = {};\n\n // if the custom select option has been selected\n // take the value from the text input field\n if (values[modelProperty] === customValue) {\n modifiedValues[modelProperty] = values['custom-' + modelProperty] || '';\n }\n else if (options.emptyParameter && values[modelProperty] === '') {\n modifiedValues[modelProperty] = undefined;\n } else {\n modifiedValues[modelProperty] = values[modelProperty];\n }\n return options.set(element, modifiedValues, node);\n };\n\n comboOptions.selectOptions.push({ name: customName, value: customValue });\n\n var comboBoxEntry = assign({}, selectEntryFactory(translate, comboOptions, comboOptions));\n\n var fragment = document.createDocumentFragment();\n\n fragment.appendChild(comboBoxEntry.html);\n\n comboBoxEntry.html = fragment;\n\n comboBoxEntry.html.appendChild(domify('
    ' +\n '' +\n '
    '));\n\n // add description below combo box entry field\n if (description) {\n comboBoxEntry.html.appendChild(entryFieldDescription(translate, description, { show: 'showCustomInput' }));\n }\n\n return comboBoxEntry;\n};\n\nmodule.exports = comboBox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js ***! \***************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n// input entities\nvar textInputField = __webpack_require__(/*! ./TextInputEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js\"),\n checkboxField = __webpack_require__(/*! ./CheckboxEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js\"),\n selectBoxField = __webpack_require__(/*! ./SelectEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js\"),\n comboBoxField = __webpack_require__(/*! ./ComboEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js\"),\n textBoxField = __webpack_require__(/*! ./TextBoxEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js\"),\n validationAwareTextInputField = __webpack_require__(/*! ./ValidationAwareTextInput */ \"./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js\"),\n tableField = __webpack_require__(/*! ./TableEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js\"),\n labelEntry = __webpack_require__(/*! ./LabelFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js\"),\n link = __webpack_require__(/*! ./LinkEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js\"),\n autoSuggestTextBoxField = __webpack_require__(/*! ./AutoSuggestTextBoxFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js\"),\n collapsible = __webpack_require__(/*! ./CollapsibleEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js\"),\n toggleSwitch = __webpack_require__(/*! ./ToggleSwitchEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n// helpers ////////////////////////////////////////\n\nfunction ensureNotNull(prop) {\n if (!prop) {\n throw new Error(prop + ' must be set.');\n }\n\n return prop;\n}\n\n/**\n * sets the default parameters which are needed to create an entry\n *\n * @param options\n * @returns {{id: *, description: (*|string), get: (*|Function), set: (*|Function),\n * validate: (*|Function), html: string}}\n */\nvar setDefaultParameters = function(options) {\n\n // default method to fetch the current value of the input field\n var defaultGet = function(element) {\n var bo = getBusinessObject(element),\n res = {},\n prop = ensureNotNull(options.modelProperty);\n res[prop] = bo.get(prop);\n\n return res;\n };\n\n // default method to set a new value to the input field\n var defaultSet = function(element, values) {\n var res = {},\n prop = ensureNotNull(options.modelProperty);\n if (values[prop] !== '') {\n res[prop] = values[prop];\n } else {\n res[prop] = undefined;\n }\n\n return cmdHelper.updateProperties(element, res);\n };\n\n // default validation method\n var defaultValidate = function() {\n return {};\n };\n\n return {\n id : options.id,\n description : (options.description || ''),\n get : (options.get || defaultGet),\n set : (options.set || defaultSet),\n validate : (options.validate || defaultValidate),\n html: ''\n };\n};\n\nfunction EntryFactory() {\n\n}\n\n/**\n * Generates an text input entry object for a property panel.\n * options are:\n * - id: id of the entry - String\n *\n * - description: description of the property - String\n *\n * - label: label for the input field - String\n *\n * - set: setter method - Function\n *\n * - get: getter method - Function\n *\n * - validate: validation mehtod - Function\n *\n * - modelProperty: name of the model property - String\n *\n * - buttonAction: Object which contains the following properties: - Object\n * ---- name: name of the [data-action] callback - String\n * ---- method: callback function for [data-action] - Function\n *\n * - buttonShow: Object which contains the following properties: - Object\n * ---- name: name of the [data-show] callback - String\n * ---- method: callback function for [data-show] - Function\n *\n * @param options\n * @returns the propertyPanel entry resource object\n */\nEntryFactory.textField = function(translate, options) {\n return textInputField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.validationAwareTextField = function(translate, options) {\n return validationAwareTextInputField(translate, options, setDefaultParameters(options));\n};\n\n/**\n * Generates a checkbox input entry object for a property panel.\n * options are:\n * - id: id of the entry - String\n *\n * - description: description of the property - String\n *\n * - label: label for the input field - String\n *\n * - set: setter method - Function\n *\n * - get: getter method - Function\n *\n * - validate: validation method - Function\n *\n * - modelProperty: name of the model property - String\n *\n * @param options\n * @returns the propertyPanel entry resource object\n */\nEntryFactory.checkbox = function(translate, options) {\n return checkboxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.textBox = function(translate, options) {\n return textBoxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.selectBox = function(translate, options) {\n return selectBoxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.comboBox = function(translate, options) {\n return comboBoxField(translate, options);\n};\n\nEntryFactory.table = function(translate, options) {\n return tableField(translate, options);\n};\n\nEntryFactory.label = function(options) {\n return labelEntry(options);\n};\n\nEntryFactory.link = function(translate, options) {\n return link(translate, options);\n};\n\nEntryFactory.autoSuggest = function(translate, options) {\n return autoSuggestTextBoxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.collapsible = function(options) {\n return collapsible(options);\n};\n\nEntryFactory.toggleSwitch = function(translate, options) {\n return toggleSwitch(translate, options, setDefaultParameters(options));\n};\n\nmodule.exports = EntryFactory;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar MAX_DESCRIPTION_LENGTH = 200;\n\n/**\n * Create a linkified and HTML escaped entry field description.\n *\n * As a special feature, this description may contain both markdown,\n * plain links and
    \n *\n * @param {string} description\n * @param {object} [options]\n * @param {string} [options.show] - name of callback to determine whether description is shown\n */\nmodule.exports = function entryFieldDescription(translate, description, options) {\n var show = options && options.show;\n\n // we tokenize the description to extract text, HTML and markdown links\n // text, links and new lines are handled seperately\n\n var escaped = [];\n\n // match markdown [{TEXT}]({URL}) and HTML links
    {TEXT}\n var pattern = /(?:\\[([^\\]]+)\\]\\((https?:\\/\\/[^)]+)\\))|(?:(.+?(?=<\\/))<\\/a>)/gi;\n\n var index = 0;\n var match;\n var link, text;\n\n while ((match = pattern.exec(description))) {\n\n // escape + insert text before match\n if (match.index > index) {\n escaped.push(escapeText(description.substring(index, match.index)));\n }\n\n link = match[2] && encodeURI(match[2]) || match[3];\n text = match[1] || match[4];\n\n // insert safe link\n escaped.push('' + escapeText(text) + '');\n\n index = match.index + match[0].length;\n }\n\n // escape and insert text after last match\n if (index < description.length) {\n escaped.push(escapeText(description.substring(index)));\n }\n\n description = escaped.join('');\n\n var html = domify(\n '
    ' : '>') +\n '
    '\n );\n\n var descriptionText = domify('' + description + '');\n\n html.appendChild(descriptionText);\n\n function toggleExpanded(expanded) {\n if (expanded) {\n domClasses(html).add('description--expanded');\n\n descriptionText.textContent = description + ' ';\n\n expand.textContent = translate('Less');\n } else {\n domClasses(html).remove('description--expanded');\n\n descriptionText.textContent = descriptionShortened + ' ... ';\n\n expand.textContent = translate('More');\n }\n }\n\n var descriptionShortened,\n expand,\n expanded = false;\n\n if (description.length > MAX_DESCRIPTION_LENGTH) {\n descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\n\n expand = domify(\n '' +\n translate('More') +\n ''\n );\n\n domEvent.bind(expand, 'click', function() {\n expanded = !expanded;\n\n toggleExpanded(expanded);\n });\n\n html.appendChild(expand);\n\n toggleExpanded(expanded);\n }\n\n return html;\n};\n\nfunction escapeText(text) {\n var match, index = 0, escaped = [];\n\n // match new line

    etc.\n var pattern = //gi;\n\n while ((match = pattern.exec(text))) {\n\n if (match.index > index) {\n escaped.push(escapeHTML(text.substring(index, match.index)));\n }\n\n escaped.push('
    ');\n\n index = match.index + match[0].length;\n }\n\n if (index < text.length) {\n escaped.push(escapeHTML(text.substring(index)));\n }\n\n return escaped.join('');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js ***! \***************************************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/**\n * The label factory provides a label entry. For the label text\n * it expects either a string provided by the options.labelText\n * parameter or it could be generated programmatically using a\n * function passed as the options.get parameter.\n *\n * @param {Object} options\n * @param {string} options.id\n * @param {string} [options.labelText]\n * @param {Function} [options.get]\n * @param {Function} [options.showLabel]\n * @param {Boolean} [options.divider] adds a divider at the top of the label if true; default: false\n */\nvar label = function(options) {\n return {\n id: options.id,\n html: '',\n get: function(element, node) {\n if (typeof options.get === 'function') {\n return options.get(element, node);\n }\n return { label: options.labelText };\n },\n showLabel: function(element, node) {\n if (typeof options.showLabel === 'function') {\n return options.showLabel(element, node);\n }\n return true;\n }\n };\n};\n\nmodule.exports = label;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js ***! \*******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar bind = __webpack_require__(/*! lodash/bind */ \"./node_modules/lodash/bind.js\");\n\n/**\n * An entry that renders a clickable link.\n *\n * A passed {@link options#handleClick} handler is responsible\n * to process the click.\n *\n * The link may be conditionally shown or hidden. This can be\n * controlled via the {@link options.showLink}.\n *\n * @param {Object} options\n * @param {String} options.id\n * @param {String} [options.buttonLabel]\n * @param {Function} options.handleClick\n * @param {Function} [options.showLink] returning false to hide link\n * @param {String} [options.description]\n *\n * @example\n *\n * var linkEntry = link({\n * id: 'foo',\n * description: 'Some Description',\n * handleClick: function(element, node, event) { ... },\n * showLink: function(element, node) { ... }\n * });\n *\n * @return {Entry} the newly created entry\n */\nfunction link(translate, options) {\n\n var id = options.id,\n buttonLabel = options.buttonLabel || id,\n showLink = options.showLink,\n handleClick = options.handleClick,\n description = options.description,\n label = options.label;\n\n if (showLink && typeof showLink !== 'function') {\n throw new Error('options.showLink must be a function');\n }\n\n if (typeof handleClick !== 'function') {\n throw new Error('options.handleClick must be a function');\n }\n\n var resource = {\n id: id,\n html: document.createDocumentFragment()\n };\n\n if (label) {\n resource.html.appendChild(domify(''));\n }\n\n resource.html.appendChild(domify(''));\n\n\n // add description below link entry field\n if (description) {\n resource.html.appendChild(entryFieldDescription(translate, description, { show: 'showLink' }));\n }\n\n resource.handleClick = bind(handleClick, resource);\n\n if (typeof showLink === 'function') {\n resource.showLink = function() {\n return showLink.apply(resource, arguments);\n };\n }\n\n return resource;\n}\n\nmodule.exports = link;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js ***! \*********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar isList = function(list) {\n return !(!list || Object.prototype.toString.call(list) !== '[object Array]');\n};\n\nvar addEmptyParameter = function(list) {\n return list.concat([ { name: '', value: '' } ]);\n};\n\nvar createOption = function(option) {\n return '';\n};\n\n/**\n * @param {Object} options\n * @param {string} options.id\n * @param {string} [options.label]\n * @param {Array} options.selectOptions\n * @param {string} options.modelProperty\n * @param {boolean} options.emptyParameter\n * @param {function} options.disabled\n * @param {function} options.hidden\n * @param {Object} defaultParameters\n *\n * @return {Object}\n */\nvar selectbox = function(translate, options, defaultParameters) {\n var resource = defaultParameters,\n label = options.label || resource.id,\n selectOptions = options.selectOptions || [ { name: '', value: '' } ],\n modelProperty = options.modelProperty,\n emptyParameter = options.emptyParameter,\n canBeDisabled = !!options.disabled && typeof options.disabled === 'function',\n canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n description = options.description;\n\n\n if (emptyParameter) {\n selectOptions = addEmptyParameter(selectOptions);\n }\n\n\n resource.html =\n domify('' +\n '');\n\n var select = domQuery('select', resource.html);\n\n if (isList(selectOptions)) {\n forEach(selectOptions, function(option) {\n select.appendChild(\n domify(\n ''\n )\n );\n });\n }\n\n // add description below select box entry field\n if (description && typeof options.showCustomInput !== 'function') {\n resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeHidden && 'isHidden' }));\n }\n\n /**\n * Fill the select box options dynamically.\n *\n * Calls the defined function #selectOptions in the entry to get the\n * values for the options and set the value to the inputNode.\n *\n * @param {djs.model.Base} element\n * @param {HTMLElement} entryNode\n * @param {EntryDescriptor} inputNode\n * @param {Object} inputName\n * @param {Object} newValue\n */\n resource.setControlValue = function(element, entryNode, inputNode, inputName, newValue) {\n if (typeof selectOptions === 'function') {\n\n var options = selectOptions(element, inputNode);\n\n if (options) {\n\n // remove existing options\n while (inputNode.firstChild) {\n inputNode.removeChild(inputNode.firstChild);\n }\n\n // add options\n forEach(options, function(option) {\n var template = domify(createOption(option));\n\n inputNode.appendChild(template);\n });\n\n\n }\n }\n\n // set select value\n if (newValue !== undefined) {\n inputNode.value = newValue;\n }\n\n };\n\n if (canBeDisabled) {\n resource.isDisabled = function() {\n return options.disabled.apply(resource, arguments);\n };\n }\n\n if (canBeHidden) {\n resource.isHidden = function() {\n return !options.hidden.apply(resource, arguments);\n };\n }\n\n resource.cssClasses = ['bpp-dropdown'];\n\n return resource;\n};\n\nmodule.exports = selectbox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js": /*!********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js ***! \********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n domAttr = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").attr,\n domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest;\n\nvar filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\"),\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\");\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar updateSelection = __webpack_require__(/*! selection-update */ \"./node_modules/selection-update/index.js\");\n\nvar TABLE_ROW_DIV_SNIPPET = '
    ';\nvar DELETE_ROW_BUTTON_SNIPPET = '';\n\nfunction createInputRowTemplate(properties, canRemove) {\n var template = TABLE_ROW_DIV_SNIPPET;\n template += createInputTemplate(properties, canRemove);\n template += canRemove ? DELETE_ROW_BUTTON_SNIPPET : '';\n template += '
    ';\n\n return template;\n}\n\nfunction createInputTemplate(properties, canRemove) {\n var columns = properties.length;\n var template = '';\n forEach(properties, function(prop) {\n template += '';\n });\n return template;\n}\n\nfunction createLabelRowTemplate(labels) {\n var template = TABLE_ROW_DIV_SNIPPET;\n template += createLabelTemplate(labels);\n template += '';\n\n return template;\n}\n\nfunction createLabelTemplate(labels) {\n var columns = labels.length;\n var template = '';\n forEach(labels, function(label) {\n template += '';\n });\n return template;\n}\n\nfunction pick(elements, properties) {\n return (elements || []).map(function(elem) {\n var newElement = {};\n forEach(properties, function(prop) {\n newElement[prop] = elem[prop] || '';\n });\n return newElement;\n });\n}\n\nfunction diff(element, node, values, oldValues, editable) {\n return filter(values, function(value, idx) {\n return !valueEqual(element, node, value, oldValues[idx], editable, idx);\n });\n}\n\nfunction valueEqual(element, node, value, oldValue, editable, idx) {\n if (value && !oldValue) {\n return false;\n }\n var allKeys = keys(value).concat(keys(oldValue));\n\n return allKeys.every(function(key) {\n var n = value[key] || undefined;\n var o = oldValue[key] || undefined;\n return !editable(element, node, key, idx) || n === o;\n });\n}\n\nfunction getEntryNode(node) {\n return domClosest(node, '[data-entry]', true);\n}\n\nfunction getContainer(node) {\n return domQuery('div[data-list-entry-container]', node);\n}\n\nfunction getSelection(node) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n}\n\nfunction setSelection(node, selection) {\n node.selectionStart = selection.start;\n node.selectionEnd = selection.end;\n}\n\n/**\n * @param {Object} options\n * @param {string} options.id\n * @param {string} options.description\n * @param {Array} options.modelProperties\n * @param {Array} options.labels\n * @param {Function} options.getElements - this callback function must return a list of business object items\n * @param {Function} options.removeElement\n * @param {Function} options.addElement\n * @param {Function} options.updateElement\n * @param {Function} options.editable\n * @param {Function} options.setControlValue\n * @param {Function} options.show\n *\n * @return {Object}\n */\nmodule.exports = function(translate, options) {\n\n var id = options.id,\n modelProperties = options.modelProperties,\n labels = options.labels,\n description = options.description;\n\n var labelRow = createLabelRowTemplate(labels);\n\n var getElements = options.getElements;\n\n var removeElement = options.removeElement,\n canRemove = typeof removeElement === 'function';\n\n var addElement = options.addElement,\n canAdd = typeof addElement === 'function',\n addLabel = options.addLabel || 'Add Value';\n\n var updateElement = options.updateElement,\n canUpdate = typeof updateElement === 'function';\n\n var editable = options.editable || function() { return true; },\n setControlValue = options.setControlValue;\n\n var show = options.show,\n canBeShown = typeof show === 'function';\n\n var elements = function(element, node) {\n return pick(getElements(element, node), modelProperties);\n };\n\n var html = domify((canAdd ?\n '
    ' +\n '' +\n '' +\n '
    ' : '') +\n '
    ' +\n '
    ' +\n labelRow +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ');\n\n if (description) {\n html.appendChild(entryFieldDescription(translate, description, { show: 'showTable' }));\n }\n\n var factory = {\n id: id,\n html: html,\n\n get: function(element, node) {\n var boElements = elements(element, node, this.__invalidValues);\n\n var invalidValues = this.__invalidValues;\n\n delete this.__invalidValues;\n\n forEach(invalidValues, function(value, idx) {\n var element = boElements[idx];\n\n forEach(modelProperties, function(prop) {\n element[prop] = value[prop];\n });\n });\n\n return boElements;\n },\n\n set: function(element, values, node) {\n var action = this.__action || {};\n delete this.__action;\n\n if (action.id === 'delete-element') {\n return removeElement(element, node, action.idx);\n }\n else if (action.id === 'add-element') {\n return addElement(element, node);\n }\n else if (canUpdate) {\n var commands = [],\n valuesToValidate = values;\n\n if (typeof options.validate !== 'function') {\n valuesToValidate = diff(element, node, values, elements(element, node), editable);\n }\n\n var self = this;\n\n forEach(valuesToValidate, function(value) {\n var validationError,\n idx = values.indexOf(value);\n\n if (typeof options.validate === 'function') {\n validationError = options.validate(element, value, node, idx);\n }\n\n if (!validationError) {\n var cmd = updateElement(element, value, node, idx);\n\n if (cmd) {\n commands.push(cmd);\n }\n } else {\n\n // cache invalid value in an object by index as key\n self.__invalidValues = self.__invalidValues || {};\n self.__invalidValues[idx] = value;\n\n // execute a command, which does not do anything\n commands.push(cmdHelper.updateProperties(element, {}));\n }\n });\n\n return commands;\n }\n },\n createListEntryTemplate: function(value, index, selectBox) {\n return createInputRowTemplate(modelProperties, canRemove);\n },\n\n addElement: function(element, node, event, scopeNode) {\n var template = domify(createInputRowTemplate(modelProperties, canRemove));\n\n var container = getContainer(node);\n container.appendChild(template);\n\n this.__action = {\n id: 'add-element'\n };\n\n return true;\n },\n\n deleteElement: function(element, node, event, scopeNode) {\n var container = getContainer(node);\n var rowToDelete = event.delegateTarget.parentNode;\n var idx = parseInt(domAttr(rowToDelete, 'data-index'), 10);\n\n container.removeChild(rowToDelete);\n\n this.__action = {\n id: 'delete-element',\n idx: idx\n };\n\n return true;\n },\n\n editable: function(element, rowNode, input, prop, value, idx) {\n var entryNode = domClosest(rowNode, '[data-entry]');\n return editable(element, entryNode, prop, idx);\n },\n\n show: function(element, entryNode, node, scopeNode) {\n entryNode = getEntryNode(entryNode);\n return show(element, entryNode, node, scopeNode);\n },\n\n showTable: function(element, entryNode, node, scopeNode) {\n entryNode = getEntryNode(entryNode);\n var elems = elements(element, entryNode);\n return elems && elems.length && (!canBeShown || show(element, entryNode, node, scopeNode));\n },\n\n validateListItem: function(element, value, node, idx) {\n if (typeof options.validate === 'function') {\n return options.validate(element, value, node, idx);\n }\n }\n\n };\n\n // Update/set the selection on the correct position.\n // It's the same code like for an input value in the PropertiesPanel.js.\n if (setControlValue) {\n factory.setControlValue = function(element, rowNode, input, prop, value, idx) {\n var entryNode = getEntryNode(rowNode);\n\n var isReadOnly = domAttr(input, 'readonly');\n var oldValue = input.value;\n\n var selection;\n\n // prevents input fields from having the value 'undefined'\n if (value === undefined) {\n value = '';\n }\n\n // when the attribute 'readonly' exists, ignore the comparison\n // with 'oldValue' and 'value'\n if (!!isReadOnly && oldValue === value) {\n return;\n }\n\n // update selection on undo/redo\n if (document.activeElement === input) {\n selection = updateSelection(getSelection(input), oldValue, value);\n }\n\n setControlValue(element, entryNode, input, prop, value, idx);\n\n if (selection) {\n setSelection(input, selection);\n }\n\n };\n }\n\n return factory;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js": /*!**********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar textBox = function(translate, options, defaultParameters) {\n\n var resource = defaultParameters,\n label = options.label || resource.id,\n canBeShown = !!options.show && typeof options.show === 'function',\n description = options.description;\n\n resource.html =\n domify('' +\n '
    ' +\n '
    ' +\n '
    ');\n\n // add description below text box entry field\n if (description) {\n resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeShown && 'isShown' }));\n }\n\n if (canBeShown) {\n resource.isShown = function() {\n return options.show.apply(resource, arguments);\n };\n }\n\n resource.cssClasses = ['bpp-textbox'];\n\n return resource;\n};\n\nmodule.exports = textBox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar textField = function(translate, options, defaultParameters) {\n\n // Default action for the button next to the input-field\n var defaultButtonAction = function(element, inputNode) {\n var input = domQuery('input[name=\"' + options.modelProperty + '\"]', inputNode);\n input.value = '';\n\n return true;\n };\n\n // default method to determine if the button should be visible\n var defaultButtonShow = function(element, inputNode) {\n var input = domQuery('input[name=\"' + options.modelProperty + '\"]', inputNode);\n\n return input.value !== '';\n };\n\n\n var resource = defaultParameters,\n label = options.label || resource.id,\n dataValueLabel = options.dataValueLabel,\n buttonLabel = (options.buttonLabel || 'X'),\n actionName = (typeof options.buttonAction != 'undefined') ? options.buttonAction.name : 'clear',\n actionMethod = (typeof options.buttonAction != 'undefined') ? options.buttonAction.method : defaultButtonAction,\n showName = (typeof options.buttonShow != 'undefined') ? options.buttonShow.name : 'canClear',\n showMethod = (typeof options.buttonShow != 'undefined') ? options.buttonShow.method : defaultButtonShow,\n canBeDisabled = !!options.disabled && typeof options.disabled === 'function',\n canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n description = options.description;\n\n resource.html =\n domify('' +\n '
    ' +\n '' +\n '' +\n '
    ');\n\n // add description below text input entry field\n if (description) {\n resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeHidden && 'isHidden' }));\n }\n\n resource[actionName] = actionMethod;\n resource[showName] = showMethod;\n\n if (canBeDisabled) {\n resource.isDisabled = function() {\n return options.disabled.apply(resource, arguments);\n };\n }\n\n if (canBeHidden) {\n resource.isHidden = function() {\n return !options.hidden.apply(resource, arguments);\n };\n }\n\n resource.cssClasses = ['bpp-textfield'];\n\n return resource;\n};\n\nmodule.exports = textField;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js ***! \***************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar toggleSwitch = function(translate, options, defaultParameters) {\n var resource = defaultParameters,\n id = resource.id,\n label = options.label || id,\n canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n isOn = options.isOn,\n descriptionOn = options.descriptionOn,\n descriptionOff = options.descriptionOff,\n labelOn = options.labelOn,\n labelOff = options.labelOff;\n\n resource.html = document.createDocumentFragment();\n\n resource.html.appendChild(domify('' +\n '
    ' +\n '' +\n '

    ' +\n escapeHTML(labelOn) +\n '

    ' +\n '

    ' +\n escapeHTML(labelOff) +\n '

    ' +\n '
    '));\n\n if (descriptionOn) {\n resource.html.appendChild(entryFieldDescription(translate, descriptionOn, { show: 'isOn' }));\n }\n\n if (descriptionOff) {\n resource.html.appendChild(entryFieldDescription(translate, descriptionOff, { show: 'isOff' }));\n }\n\n resource.get = function(element) {\n var bo = getBusinessObject(element),\n res = {};\n\n res[options.modelProperty] = bo.get(options.modelProperty);\n\n return res;\n };\n\n resource.set = function(element, values) {\n var res = {};\n\n res[options.modelProperty] = !!values[options.modelProperty];\n\n return cmdHelper.updateProperties(element, res);\n };\n\n if (typeof options.set === 'function') {\n resource.set = options.set;\n }\n\n if (typeof options.get === 'function') {\n resource.get = options.get;\n }\n\n if (canBeHidden) {\n resource.shouldShow = function() {\n return !options.hidden.apply(resource, arguments);\n };\n }\n\n resource.isOn = function() {\n if (canBeHidden && !resource.shouldShow()) {\n return false;\n }\n\n return isOn.apply(resource, arguments);\n };\n\n resource.isOff = function() {\n if (canBeHidden && !resource.shouldShow()) {\n return false;\n }\n\n return !resource.isOn();\n };\n\n resource.cssClasses = ['bpp-toggle-switch'];\n\n return resource;\n};\n\nmodule.exports = toggleSwitch;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js ***! \***************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar textField = __webpack_require__(/*! ./TextInputEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js\");\n\n/**\n * This function is a wrapper around TextInputEntryFactory.\n * It adds functionality to cache an invalid value entered in the\n * text input, instead of setting it on the business object.\n */\nvar validationAwareTextField = function(translate, options, defaultParameters) {\n\n var modelProperty = options.modelProperty;\n\n defaultParameters.get = function(element, node) {\n var value = this.__lastInvalidValue;\n\n delete this.__lastInvalidValue;\n\n var properties = {};\n\n properties[modelProperty] = value !== undefined ? value : options.getProperty(element, node);\n\n return properties;\n };\n\n defaultParameters.set = function(element, values, node) {\n var validationErrors = validate.apply(this, [ element, values, node ]),\n propertyValue = values[modelProperty];\n\n // make sure we do not update the id\n if (validationErrors && validationErrors[modelProperty]) {\n this.__lastInvalidValue = propertyValue;\n\n return options.setProperty(element, {}, node);\n } else {\n var properties = {};\n\n properties[modelProperty] = propertyValue;\n\n return options.setProperty(element, properties, node);\n }\n };\n\n var validate = defaultParameters.validate = function(element, values, node) {\n var value = values[modelProperty] || this.__lastInvalidValue;\n\n var property = {};\n property[modelProperty] = value;\n\n return options.validate(element, property, node);\n };\n\n return textField(translate, options, defaultParameters);\n};\n\nmodule.exports = validationAwareTextField;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js": /*!********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js ***! \********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n\nvar extensionElementsHelper = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\");\n\n/**\n * Returns true if the attribute 'camunda:asyncBefore' is set\n * to true.\n *\n * @param {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncBefore(bo) {\n return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));\n}\n\nmodule.exports.isAsyncBefore = isAsyncBefore;\n\n/**\n * Returns true if the attribute 'camunda:asyncAfter' is set\n * to true.\n *\n * @param {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncAfter(bo) {\n return !!bo.get('camunda:asyncAfter');\n}\n\nmodule.exports.isAsyncAfter = isAsyncAfter;\n\n/**\n * Returns true if the attribute 'camunda:exclusive' is set\n * to true.\n *\n * @param {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isExclusive(bo) {\n return !!bo.get('camunda:exclusive');\n}\n\nmodule.exports.isExclusive = isExclusive;\n\n/**\n * Get first 'camunda:FailedJobRetryTimeCycle' from the business object.\n *\n * @param {ModdleElement} bo\n *\n * @return {Array} a list of 'camunda:FailedJobRetryTimeCycle'\n */\nfunction getFailedJobRetryTimeCycle(bo) {\n return extensionElementsHelper.getExtensionElements(bo, 'camunda:FailedJobRetryTimeCycle')[0];\n}\n\nmodule.exports.getFailedJobRetryTimeCycle = getFailedJobRetryTimeCycle;\n\n/**\n * Removes all existing 'camunda:FailedJobRetryTimeCycle' from the business object\n *\n * @param {ModdleElement} bo\n *\n * @return {Array} a list of 'camunda:FailedJobRetryTimeCycle'\n */\nfunction removeFailedJobRetryTimeCycle(bo, element) {\n var retryTimeCycles = extensionElementsHelper.getExtensionElements(bo, 'camunda:FailedJobRetryTimeCycle');\n return map(retryTimeCycles, function(cycle) {\n return extensionElementsHelper.removeEntry(bo, element, cycle);\n });\n}\n\nmodule.exports.removeFailedJobRetryTimeCycle = removeFailedJobRetryTimeCycle;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js": /*!****************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js ***! \****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar collectionAdd = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\").add,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar CategoryHelper = {};\n\nmodule.exports = CategoryHelper;\n\n/**\n * Creates a new bpmn:CategoryValue inside a new bpmn:Category\n *\n * @param {ModdleElement} definitions\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement} categoryValue.\n */\nCategoryHelper.createCategoryValue = function(definitions, bpmnFactory) {\n var categoryValue = bpmnFactory.create('bpmn:CategoryValue'),\n category = bpmnFactory.create('bpmn:Category', {\n categoryValue: [ categoryValue ]\n });\n\n // add to correct place\n collectionAdd(definitions.get('rootElements'), category);\n getBusinessObject(category).$parent = definitions;\n getBusinessObject(categoryValue).$parent = category;\n\n return categoryValue;\n\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js": /*!***********************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js ***! \***********************************************************************/ /***/ ((module) => { "use strict"; eval("\n\nvar CmdHelper = {};\nmodule.exports = CmdHelper;\n\nCmdHelper.updateProperties = function(element, properties) {\n return {\n cmd: 'element.updateProperties',\n context: { element: element, properties: properties }\n };\n};\n\nCmdHelper.updateBusinessObject = function(element, businessObject, newProperties) {\n return {\n cmd: 'properties-panel.update-businessobject',\n context: {\n element: element,\n businessObject: businessObject,\n properties: newProperties\n }\n };\n};\n\nCmdHelper.addElementsTolist = function(element, businessObject, listPropertyName, objectsToAdd, objectsToPrepend) {\n return {\n cmd: 'properties-panel.update-businessobject-list',\n context: {\n element: element,\n currentObject: businessObject,\n propertyName: listPropertyName,\n objectsToPrepend: objectsToPrepend,\n objectsToAdd: objectsToAdd\n }\n };\n};\n\nCmdHelper.removeElementsFromList = function(element, businessObject, listPropertyName, referencePropertyName, objectsToRemove) {\n\n return {\n cmd: 'properties-panel.update-businessobject-list',\n context: {\n element: element,\n currentObject: businessObject,\n propertyName: listPropertyName,\n referencePropertyName: referencePropertyName,\n objectsToRemove: objectsToRemove\n }\n };\n};\n\n\nCmdHelper.addAndRemoveElementsFromList = function(element, businessObject, listPropertyName, referencePropertyName, objectsToAdd, objectsToRemove) {\n\n return {\n cmd: 'properties-panel.update-businessobject-list',\n context: {\n element: element,\n currentObject: businessObject,\n propertyName: listPropertyName,\n referencePropertyName: referencePropertyName,\n objectsToAdd: objectsToAdd,\n objectsToRemove: objectsToRemove\n }\n };\n};\n\n\nCmdHelper.setList = function(element, businessObject, listPropertyName, updatedObjectList) {\n return {\n cmd: 'properties-panel.update-businessobject-list',\n context: {\n element: element,\n currentObject: businessObject,\n propertyName: listPropertyName,\n updatedObjectList: updatedObjectList\n }\n };\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js ***! \***************************************************************************/ /***/ ((module) => { "use strict"; eval("\n\nvar ElementHelper = {};\nmodule.exports = ElementHelper;\n\n/**\n * Creates a new element and set the parent to it\n *\n * @method ElementHelper#createElement\n *\n * @param {String} elementType of the new element\n * @param {Object} properties of the new element in key-value pairs\n * @param {moddle.object} parent of the new element\n * @param {BpmnFactory} factory which creates the new element\n *\n * @returns {djs.model.Base} element which is created\n */\nElementHelper.createElement = function(elementType, properties, parent, factory) {\n var element = factory.create(elementType, properties);\n element.$parent = parent;\n\n return element;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js ***! \***********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar EventDefinitionHelper = {};\n\nmodule.exports = EventDefinitionHelper;\n\nEventDefinitionHelper.getEventDefinition = function(element, eventType) {\n\n var bo = getBusinessObject(element),\n eventDefinition = null;\n\n if (bo.eventDefinitions) {\n forEach(bo.eventDefinitions, function(event) {\n if (is(event, eventType)) {\n eventDefinition = event;\n }\n });\n }\n\n return eventDefinition;\n};\n\nEventDefinitionHelper.getTimerEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:TimerEventDefinition');\n};\n\nEventDefinitionHelper.getMessageEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:MessageEventDefinition');\n};\n\nEventDefinitionHelper.getSignalEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:SignalEventDefinition');\n};\n\nEventDefinitionHelper.getErrorEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:ErrorEventDefinition');\n};\n\nEventDefinitionHelper.getEscalationEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:EscalationEventDefinition');\n};\n\nEventDefinitionHelper.getCompensateEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:CompensateEventDefinition');\n};\n\nEventDefinitionHelper.getLinkEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:LinkEventDefinition');\n};\n\nEventDefinitionHelper.getConditionalEventDefinition = function(element) {\n return this.getEventDefinition(element, 'bpmn:ConditionalEventDefinition');\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js": /*!*************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js ***! \*************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar cmdHelper = __webpack_require__(/*! ./CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ./ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar ExtensionElementsHelper = {};\n\nExtensionElementsHelper.getExtensionElements = function(bo, type) {\n var elements = [];\n var extensionElements = bo.get('extensionElements');\n\n if (typeof extensionElements !== 'undefined') {\n var extensionValues = extensionElements.get('values');\n if (typeof extensionValues !== 'undefined') {\n elements = extensionValues.filter(function(value) {\n return is(value, type);\n });\n }\n }\n\n return elements;\n};\n\nExtensionElementsHelper.addEntry = function(bo, element, entry, bpmnFactory) {\n var extensionElements = bo.get('extensionElements');\n\n // if there is no extensionElements list, create one\n if (!extensionElements) {\n\n // TODO: Ask Daniel which operation costs more\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [entry] }, bo, bpmnFactory);\n return { extensionElements : extensionElements };\n } else {\n\n // add new failedJobRetryExtensionElement to existing extensionElements list\n return cmdHelper.addElementsTolist(element, extensionElements, 'values', [entry]);\n }\n};\n\nExtensionElementsHelper.removeEntry = function(bo, element, entry) {\n var extensionElements = bo.get('extensionElements');\n\n if (!extensionElements) {\n\n // return an empty command when there is no extensionElements list\n return {};\n }\n\n return cmdHelper.removeElementsFromList(element, extensionElements, 'values', 'extensionElements', [entry]);\n};\n\nmodule.exports = ExtensionElementsHelper;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js": /*!************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js ***! \************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n getExtensionElements = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\").getExtensionElements;\n\nvar FormHelper = {};\n\nmodule.exports = FormHelper;\n\n/**\n * Return form data from business object or undefined if none exist\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement|undefined} formData\n */\nFormHelper.getFormData = function(element) {\n var bo = getBusinessObject(element);\n\n var formData = getExtensionElements(bo, 'camunda:FormData');\n\n return formData[0];\n};\n\n\n/**\n * Return all form fields existing in the business object, and\n * an empty array if none exist.\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of form field objects\n */\nFormHelper.getFormFields = function(element) {\n var formData = this.getFormData(element);\n\n if (typeof formData === 'undefined') {\n return [];\n }\n\n return formData.fields || [];\n};\n\n\n/**\n * Get a form field from the business object at given index\n *\n * @param {djs.model.Base} element\n * @param {number} idx\n *\n * @return {ModdleElement} the form field\n */\nFormHelper.getFormField = function(element, idx) {\n\n var formFields = this.getFormFields(element);\n\n return formFields[idx];\n};\n\n\n/**\n * Get all constraints for a specific form field from the business object\n *\n * @param {ModdleElement} formField\n *\n * @return {Array} a list of constraint objects\n */\nFormHelper.getConstraints = function(formField) {\n if (formField && formField.validation && formField.validation.constraints) {\n return formField.validation.constraints;\n }\n return [];\n};\n\n\n/**\n * Get all camunda:value objects for a specific form field from the business object\n *\n * @param {ModdleElement} formField\n *\n * @return {Array} a list of camunda:value objects\n */\nFormHelper.getEnumValues = function(formField) {\n if (formField && formField.values) {\n return formField.values;\n }\n return [];\n};\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js": /*!**************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js ***! \**************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n is = ModelUtil.is,\n getBusinessObject = ModelUtil.getBusinessObject;\n\nvar eventDefinitionHelper = __webpack_require__(/*! ./EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\nvar extensionsElementHelper = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\");\n\nvar ImplementationTypeHelper = {};\n\nmodule.exports = ImplementationTypeHelper;\n\n/**\n * Returns 'true' if the given element is 'camunda:ServiceTaskLike'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isServiceTaskLike = function(element) {\n return is(element, 'camunda:ServiceTaskLike');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:DmnCapable'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isDmnCapable = function(element) {\n return is(element, 'camunda:DmnCapable');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:ExternalCapable'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isExternalCapable = function(element) {\n return is(element, 'camunda:ExternalCapable');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:TaskListener'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isTaskListener = function(element) {\n return is(element, 'camunda:TaskListener');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:ExecutionListener'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isExecutionListener = function(element) {\n return is(element, 'camunda:ExecutionListener');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:ExecutionListener' or\n * 'camunda:TaskListener'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isListener = function(element) {\n return this.isTaskListener(element) || this.isExecutionListener(element);\n};\n\n/**\n * Returns 'true' if the given element is 'bpmn:SequenceFlow'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isSequenceFlow = function(element) {\n return is(element, 'bpmn:SequenceFlow');\n};\n\n/**\n * Get a 'camunda:ServiceTaskLike' business object.\n *\n * If the given element is not a 'camunda:ServiceTaskLike', then 'false'\n * is returned.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} the 'camunda:ServiceTaskLike' business object\n */\nImplementationTypeHelper.getServiceTaskLikeBusinessObject = function(element) {\n\n if (is(element, 'bpmn:IntermediateThrowEvent') || is(element, 'bpmn:EndEvent')) {\n\n // change business object to 'messageEventDefinition' when\n // the element is a message intermediate throw event or message end event\n // because the camunda extensions (e.g. camunda:class) are in the message\n // event definition tag and not in the intermediate throw event or end event tag\n var messageEventDefinition = eventDefinitionHelper.getMessageEventDefinition(element);\n if (messageEventDefinition) {\n element = messageEventDefinition;\n }\n }\n\n return this.isServiceTaskLike(element) && getBusinessObject(element);\n\n};\n\n/**\n * Returns the implementation type of the given element.\n *\n * Possible implementation types are:\n * - dmn\n * - connector\n * - external\n * - class\n * - expression\n * - delegateExpression\n * - script\n * - or undefined, when no matching implementation type is found\n *\n * @param {djs.model.Base} element\n *\n * @return {String} the implementation type\n */\nImplementationTypeHelper.getImplementationType = function(element) {\n\n var bo = this.getServiceTaskLikeBusinessObject(element);\n\n if (!bo) {\n if (this.isListener(element)) {\n bo = element;\n } else {\n return;\n }\n }\n\n if (this.isDmnCapable(bo)) {\n var decisionRef = bo.get('camunda:decisionRef');\n if (typeof decisionRef !== 'undefined') {\n return 'dmn';\n }\n }\n\n if (this.isServiceTaskLike(bo)) {\n var connectors = extensionsElementHelper.getExtensionElements(bo, 'camunda:Connector');\n if (connectors.length) {\n return 'connector';\n }\n }\n\n if (this.isExternalCapable(bo)) {\n var type = bo.get('camunda:type');\n if (type === 'external') {\n return 'external';\n }\n }\n\n var cls = bo.get('camunda:class');\n if (typeof cls !== 'undefined') {\n return 'class';\n }\n\n var expression = bo.get('camunda:expression');\n if (typeof expression !== 'undefined') {\n return 'expression';\n }\n\n var delegateExpression = bo.get('camunda:delegateExpression');\n if (typeof delegateExpression !== 'undefined') {\n return 'delegateExpression';\n }\n\n if (this.isListener(bo)) {\n var script = bo.get('script');\n if (typeof script !== 'undefined') {\n return 'script';\n }\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js ***! \*******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n is = ModelUtil.is,\n getBusinessObject = ModelUtil.getBusinessObject;\n\nvar extensionElementsHelper = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n implementationTypeHelper = __webpack_require__(/*! ./ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar InputOutputHelper = {};\n\nmodule.exports = InputOutputHelper;\n\nfunction getElements(bo, type, prop) {\n var elems = extensionElementsHelper.getExtensionElements(bo, type);\n return !prop ? elems : (elems[0] || {})[prop] || [];\n}\n\nfunction getParameters(element, prop, insideConnector) {\n var inputOutput = InputOutputHelper.getInputOutput(element, insideConnector);\n return (inputOutput && inputOutput.get(prop)) || [];\n}\n\n/**\n * Get a inputOutput from the business object\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n *\n * @return {ModdleElement} the inputOutput object\n */\nInputOutputHelper.getInputOutput = function(element, insideConnector) {\n if (!insideConnector) {\n var bo = getBusinessObject(element);\n return (getElements(bo, 'camunda:InputOutput') || [])[0];\n }\n var connector = this.getConnector(element);\n return connector && connector.get('inputOutput');\n};\n\n/**\n * Get a connector from the business object\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} the connector object\n */\nInputOutputHelper.getConnector = function(element) {\n var bo = implementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n return bo && (getElements(bo, 'camunda:Connector') || [])[0];\n};\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n *\n * @return {Array} a list of input parameter objects\n */\nInputOutputHelper.getInputParameters = function(element, insideConnector) {\n return getParameters.apply(this, [ element, 'inputParameters', insideConnector ]);\n};\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n *\n * @return {Array} a list of output parameter objects\n */\nInputOutputHelper.getOutputParameters = function(element, insideConnector) {\n return getParameters.apply(this, [ element, 'outputParameters', insideConnector ]);\n};\n\n/**\n * Get a input parameter from the business object at given index\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n * @param {number} idx\n *\n * @return {ModdleElement} input parameter\n */\nInputOutputHelper.getInputParameter = function(element, insideConnector, idx) {\n return this.getInputParameters(element, insideConnector)[idx];\n};\n\n/**\n * Get a output parameter from the business object at given index\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n * @param {number} idx\n *\n * @return {ModdleElement} output parameter\n */\nInputOutputHelper.getOutputParameter = function(element, insideConnector, idx) {\n return this.getOutputParameters(element, insideConnector)[idx];\n};\n\n/**\n * Returns 'true' if the given element supports inputOutput\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n *\n * @return {boolean} a boolean value\n */\nInputOutputHelper.isInputOutputSupported = function(element, insideConnector) {\n\n if (insideConnector) {\n return true;\n }\n\n var bo = getBusinessObject(element);\n\n return (\n is(bo, 'bpmn:FlowNode') && !(\n is(bo, 'bpmn:StartEvent') ||\n is(bo, 'bpmn:Gateway') ||\n is(bo, 'bpmn:BoundaryEvent') ||\n (\n is(bo, 'bpmn:SubProcess') && bo.get('triggeredByEvent')\n )\n )\n );\n};\n\n/**\n * Returns 'true' if the given element supports output parameters\n *\n * @param {djs.model.Base} element\n * @param {boolean} insideConnector\n *\n * @return {boolean} a boolean value\n */\nInputOutputHelper.areOutputParametersSupported = function(element, insideConnector) {\n var bo = getBusinessObject(element);\n return insideConnector || (!is(bo, 'bpmn:EndEvent') && !bo.loopCharacteristics);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js ***! \*******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n cmdHelper = __webpack_require__(/*! ./CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n\nvar ParticipantHelper = {};\n\nmodule.exports = ParticipantHelper;\n\nParticipantHelper.modifyProcessBusinessObject = function(element, property, values) {\n if (!is(element, 'bpmn:Participant')) {\n return {};\n }\n\n var bo = getBusinessObject(element).get('processRef'),\n properties = {};\n\n properties[property] = values[property];\n\n return cmdHelper.updateBusinessObject(element, bo, properties);\n};\n\nParticipantHelper.getProcessBusinessObject = function(element, propertyName) {\n if (!is(element, 'bpmn:Participant')) {\n return {};\n }\n\n var bo = getBusinessObject(element).get('processRef'),\n properties = {};\n\n properties[propertyName] = bo.get(propertyName);\n\n return properties;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/index.js": /*!************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/index.js ***! \************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = {\n __depends__: [\n __webpack_require__(/*! ./cmd */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/index.js\"),\n __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\").default\n ],\n __init__: [ 'propertiesPanel' ],\n propertiesPanel: [ 'type', __webpack_require__(/*! ./PropertiesPanel */ \"./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js\") ]\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n is = ModelUtil.is,\n getBusinessObject = ModelUtil.getBusinessObject;\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var getValue = function(businessObject) {\n return function(element) {\n var documentations = businessObject && businessObject.get('documentation'),\n text = (documentations && documentations.length > 0) ? documentations[0].text : '';\n\n return { documentation: text };\n };\n };\n\n var setValue = function(businessObject) {\n return function(element, values) {\n var newObjectList = [];\n\n if (typeof values.documentation !== 'undefined' && values.documentation !== '') {\n newObjectList.push(bpmnFactory.create('bpmn:Documentation', {\n text: values.documentation\n }));\n }\n\n return cmdHelper.setList(element, businessObject, 'documentation', newObjectList);\n };\n };\n\n // Element Documentation\n var elementDocuEntry = entryFactory.textBox(translate, {\n id: 'documentation',\n label: translate('Element Documentation'),\n modelProperty: 'documentation'\n });\n\n elementDocuEntry.set = setValue(getBusinessObject(element));\n\n elementDocuEntry.get = getValue(getBusinessObject(element));\n\n group.entries.push(elementDocuEntry);\n\n\n var processRef;\n\n // Process Documentation when having a Collaboration Diagram\n if (is(element, 'bpmn:Participant')) {\n\n processRef = getBusinessObject(element).processRef;\n\n // do not show for collapsed Pools/Participants\n if (processRef) {\n var processDocuEntry = entryFactory.textBox(translate, {\n id: 'process-documentation',\n label: translate('Process Documentation'),\n modelProperty: 'documentation'\n });\n\n processDocuEntry.set = setValue(processRef);\n\n processDocuEntry.get = getValue(processRef);\n\n group.entries.push(processDocuEntry);\n }\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js": /*!*************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js ***! \*************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar message = __webpack_require__(/*! ./implementation/MessageEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js\"),\n signal = __webpack_require__(/*! ./implementation/SignalEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js\"),\n error = __webpack_require__(/*! ./implementation/ErrorEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js\"),\n escalation = __webpack_require__(/*! ./implementation/EscalationEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js\"),\n timer = __webpack_require__(/*! ./implementation/TimerEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js\"),\n compensation = __webpack_require__(/*! ./implementation/CompensateEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js\"),\n condition = __webpack_require__(/*! ./implementation/ConditionalEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, elementRegistry, translate) {\n var events = [\n 'bpmn:StartEvent',\n 'bpmn:EndEvent',\n 'bpmn:IntermediateThrowEvent',\n 'bpmn:BoundaryEvent',\n 'bpmn:IntermediateCatchEvent'\n ];\n\n // Message and Signal Event Definition\n forEach(events, function(event) {\n if (is(element, event)) {\n\n var messageEventDefinition = eventDefinitionHelper.getMessageEventDefinition(element),\n signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(element);\n\n if (messageEventDefinition) {\n message(group, element, bpmnFactory, messageEventDefinition, translate);\n }\n\n if (signalEventDefinition) {\n signal(group, element, bpmnFactory, signalEventDefinition, translate);\n }\n\n }\n });\n\n // Special Case: Receive Task\n if (is(element, 'bpmn:ReceiveTask')) {\n message(group, element, bpmnFactory, getBusinessObject(element), translate);\n }\n\n // Error Event Definition\n var errorEvents = [\n 'bpmn:StartEvent',\n 'bpmn:BoundaryEvent',\n 'bpmn:EndEvent'\n ];\n\n forEach(errorEvents, function(event) {\n if (is(element, event)) {\n\n var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);\n\n if (errorEventDefinition) {\n\n error(group, element, bpmnFactory, errorEventDefinition, translate);\n }\n }\n });\n\n // Escalation Event Definition\n var escalationEvents = [\n 'bpmn:StartEvent',\n 'bpmn:BoundaryEvent',\n 'bpmn:IntermediateThrowEvent',\n 'bpmn:EndEvent'\n ];\n\n forEach(escalationEvents, function(event) {\n if (is(element, event)) {\n\n var showEscalationCodeVariable = is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');\n\n // get business object\n var escalationEventDefinition = eventDefinitionHelper.getEscalationEventDefinition(element);\n\n if (escalationEventDefinition) {\n escalation(group, element, bpmnFactory, escalationEventDefinition, showEscalationCodeVariable,\n translate);\n }\n }\n\n });\n\n // Timer Event Definition\n var timerEvents = [\n 'bpmn:StartEvent',\n 'bpmn:BoundaryEvent',\n 'bpmn:IntermediateCatchEvent'\n ];\n\n forEach(timerEvents, function(event) {\n if (is(element, event)) {\n\n // get business object\n var timerEventDefinition = eventDefinitionHelper.getTimerEventDefinition(element);\n\n if (timerEventDefinition) {\n timer(group, element, bpmnFactory, timerEventDefinition, translate);\n }\n }\n });\n\n // Compensate Event Definition\n var compensationEvents = [\n 'bpmn:EndEvent',\n 'bpmn:IntermediateThrowEvent'\n ];\n\n forEach(compensationEvents, function(event) {\n if (is(element, event)) {\n\n // get business object\n var compensateEventDefinition = eventDefinitionHelper.getCompensateEventDefinition(element);\n\n if (compensateEventDefinition) {\n compensation(group, element, bpmnFactory, compensateEventDefinition, elementRegistry, translate);\n }\n }\n });\n\n\n // Conditional Event Definition\n var conditionalEvents = [\n 'bpmn:StartEvent',\n 'bpmn:BoundaryEvent',\n 'bpmn:IntermediateThrowEvent',\n 'bpmn:IntermediateCatchEvent'\n ];\n\n if (isAny(element, conditionalEvents)) {\n\n // get business object\n var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);\n\n if (conditionalEventDefinition) {\n condition(group, element, bpmnFactory, conditionalEventDefinition, elementRegistry, translate);\n }\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js ***! \******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar participantHelper = __webpack_require__(/*! ../../../helper/ParticipantHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js\");\n\nmodule.exports = function(group, element, translate) {\n\n var bo = getBusinessObject(element);\n\n if (!bo) {\n return;\n }\n\n if (is(element, 'bpmn:Process') || (is(element, 'bpmn:Participant') && bo.get('processRef'))) {\n\n var executableEntry = entryFactory.checkbox(translate, {\n id: 'process-is-executable',\n label: translate('Executable'),\n modelProperty: 'isExecutable'\n });\n\n // in participants we have to change the default behavior of set and get\n if (is(element, 'bpmn:Participant')) {\n executableEntry.get = function(element) {\n return participantHelper.getProcessBusinessObject(element, 'isExecutable');\n };\n\n executableEntry.set = function(element, values) {\n return participantHelper.modifyProcessBusinessObject(element, 'isExecutable', values);\n };\n }\n\n group.entries.push(executableEntry);\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js": /*!**********************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js ***! \**********************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(group, element, translate, options) {\n if (!options) {\n options = {};\n }\n\n // Id\n group.entries.push(entryFactory.validationAwareTextField(translate, {\n id: options.id || 'id',\n label: translate(options.label || 'Id'),\n description: options.description && translate(options.description),\n modelProperty: 'id',\n getProperty: function(element) {\n return getBusinessObject(element).id;\n },\n setProperty: function(element, properties) {\n\n element = element.labelTarget || element;\n\n return cmdHelper.updateProperties(element, properties);\n },\n validate: function(element, values) {\n var idValue = values.id;\n\n var bo = getBusinessObject(element);\n\n var idError = utils.isIdValid(bo, idValue, translate);\n\n return idError ? { id: idError } : {};\n }\n }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nfunction getLinkEventDefinition(element) {\n\n var bo = getBusinessObject(element);\n\n var linkEventDefinition = null;\n if (bo.eventDefinitions) {\n forEach(bo.eventDefinitions, function(eventDefinition) {\n if (is(eventDefinition, 'bpmn:LinkEventDefinition')) {\n linkEventDefinition = eventDefinition;\n }\n });\n }\n\n return linkEventDefinition;\n}\n\nmodule.exports = function(group, element, translate) {\n var linkEvents = [ 'bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent' ];\n\n forEach(linkEvents, function(event) {\n if (is(element, event)) {\n\n var linkEventDefinition = getLinkEventDefinition(element);\n\n if (linkEventDefinition) {\n var entry = entryFactory.textField(translate, {\n id: 'link-event',\n label: translate('Link Name'),\n modelProperty: 'link-name'\n });\n\n entry.get = function() {\n return { 'link-name': linkEventDefinition.get('name') };\n };\n\n entry.set = function(element, values) {\n var newProperties = {\n name: values['link-name']\n };\n return cmdHelper.updateBusinessObject(element, linkEventDefinition, newProperties);\n };\n\n group.entries.push(entry);\n }\n }\n });\n};\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js ***! \************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar nameEntryFactory = __webpack_require__(/*! ./implementation/Name */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js\"),\n createCategoryValue = __webpack_require__(/*! ../../../helper/CategoryHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js\").createCategoryValue,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nmodule.exports = function(group, element, bpmnFactory, canvas, translate, options) {\n if (!options) {\n options = {};\n }\n\n function initializeCategory(semantic) {\n var rootElement = canvas.getRootElement(),\n definitions = getBusinessObject(rootElement).$parent,\n categoryValue = createCategoryValue(definitions, bpmnFactory);\n\n semantic.categoryValueRef = categoryValue;\n\n }\n\n function setGroupName(element, values) {\n var bo = getBusinessObject(element),\n categoryValueRef = bo.categoryValueRef;\n\n if (!categoryValueRef) {\n initializeCategory(bo);\n }\n\n // needs direct call to update categoryValue properly\n return {\n cmd: 'element.updateLabel',\n context: {\n element: element,\n newLabel: values.categoryValue\n }\n };\n }\n\n function getGroupName(element) {\n var bo = getBusinessObject(element),\n value = (bo.categoryValueRef || {}).value;\n\n return { categoryValue: value };\n }\n\n if (!is(element, 'bpmn:Collaboration')) {\n var nameOptions = {\n id: options.id,\n label: options.label && translate(options.label)\n };\n\n if (is(element, 'bpmn:TextAnnotation')) {\n nameOptions.modelProperty = 'text';\n nameOptions.label = translate('Text');\n } else if (is(element, 'bpmn:Group')) {\n nameOptions.modelProperty = 'categoryValue';\n nameOptions.label = translate('Category Value');\n nameOptions.get = getGroupName;\n nameOptions.set = setGroupName;\n }\n\n // name\n group.entries = group.entries.concat(nameEntryFactory(element, nameOptions, translate));\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js ***! \***************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n participantHelper = __webpack_require__(/*! ../../../helper/ParticipantHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js\"),\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n nameEntryFactory = __webpack_require__(/*! ./implementation/Name */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js\"),\n utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nmodule.exports = function(group, element, translate, options) {\n var businessObject = getBusinessObject(element);\n\n var processIdDescription = options && options.processIdDescription;\n\n if (is(element, 'bpmn:Process') || (is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n\n /**\n * processId\n */\n if (is(element, 'bpmn:Participant')) {\n var idEntry = entryFactory.validationAwareTextField(translate, {\n id: 'process-id',\n label: translate('Process Id'),\n description: processIdDescription && translate(processIdDescription),\n modelProperty: 'processId'\n });\n\n // in participants we have to change the default behavior of set and get\n idEntry.get = function(element) {\n var properties = participantHelper.getProcessBusinessObject(element, 'id');\n return { processId: properties.id };\n };\n\n idEntry.set = function(element, values) {\n return participantHelper.modifyProcessBusinessObject(element, 'id', { id: values.processId });\n };\n\n idEntry.validate = function(element, values) {\n var idValue = values.processId;\n\n var bo = getBusinessObject(element);\n\n var processIdError = utils.isIdValid(bo.processRef, idValue, translate);\n\n return processIdError ? { processId: processIdError } : {};\n };\n\n group.entries.push(idEntry);\n\n\n /**\n * process name\n */\n var processNameEntry = nameEntryFactory(element, {\n id: 'process-name',\n label: translate('Process Name')\n })[0];\n\n // in participants we have to change the default behavior of set and get\n processNameEntry.get = function(element) {\n return participantHelper.getProcessBusinessObject(element, 'name');\n };\n\n processNameEntry.set = function(element, values) {\n return participantHelper.modifyProcessBusinessObject(element, 'name', values);\n };\n\n group.entries.push(processNameEntry);\n }\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js": /*!*******************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js ***! \*******************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n eventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\");\n\n\nfunction getContainedActivities(element) {\n return getFlowElements(element, 'bpmn:Activity');\n}\n\nfunction getContainedBoundaryEvents(element) {\n return getFlowElements(element, 'bpmn:BoundaryEvent');\n}\n\nfunction getFlowElements(element, type) {\n return utils.filterElementsByType(element.flowElements, type);\n}\n\nfunction isCompensationEventAttachedToActivity(activity, boundaryEvents) {\n var activityId = activity.id;\n var boundaryEvent = find(boundaryEvents, function(boundaryEvent) {\n var compensateEventDefinition = eventDefinitionHelper.getCompensateEventDefinition(boundaryEvent);\n var attachedToRef = boundaryEvent.attachedToRef;\n return compensateEventDefinition && attachedToRef && attachedToRef.id === activityId;\n });\n return !!boundaryEvent;\n}\n\n// subprocess: only when it is not triggeredByEvent\n// activity: only when it attach a compensation boundary event\n// callActivity: no limitation\nfunction canActivityBeCompensated(activity, boundaryEvents) {\n return (is(activity, 'bpmn:SubProcess') && !activity.triggeredByEvent) ||\n is(activity, 'bpmn:CallActivity') ||\n isCompensationEventAttachedToActivity(activity, boundaryEvents);\n}\n\nfunction getActivitiesForCompensation(element) {\n var boundaryEvents = getContainedBoundaryEvents(element);\n return filter(getContainedActivities(element), function(activity) {\n return canActivityBeCompensated(activity, boundaryEvents);\n });\n}\n\nfunction getActivitiesForActivityRef(element) {\n var bo = getBusinessObject(element);\n var parent = bo.$parent;\n\n var activitiesForActivityRef = getActivitiesForCompensation(parent);\n\n // if throwing compensation event is in an event sub process:\n // get also all activities outside of the event sub process\n if (is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent) {\n parent = parent.$parent;\n if (parent) {\n activitiesForActivityRef = activitiesForActivityRef.concat(getActivitiesForCompensation(parent));\n }\n\n }\n\n return activitiesForActivityRef;\n}\n\nfunction createActivityRefOptions(element) {\n var options = [ { value: '' } ];\n\n var activities = getActivitiesForActivityRef(element);\n forEach(activities, function(activity) {\n var activityId = activity.id;\n var name = (activity.name ? (activity.name + ' ') : '') + '(id=' + activityId + ')';\n options.push({ value: activityId, name: name });\n });\n\n return options;\n}\n\n\nmodule.exports = function(group, element, bpmnFactory, compensateEventDefinition, elementRegistry, translate) {\n\n group.entries.push(entryFactory.checkbox(translate, {\n id: 'wait-for-completion',\n label: translate('Wait for Completion'),\n modelProperty: 'waitForCompletion',\n\n get: function(element, node) {\n return {\n waitForCompletion: compensateEventDefinition.waitForCompletion\n };\n },\n\n set: function(element, values) {\n values.waitForCompletion = values.waitForCompletion || false;\n return cmdHelper.updateBusinessObject(element, compensateEventDefinition, values);\n }\n }));\n\n group.entries.push(entryFactory.selectBox(translate, {\n id: 'activity-ref',\n label: translate('Activity Ref'),\n selectOptions: createActivityRefOptions(element),\n modelProperty: 'activityRef',\n\n get: function(element, node) {\n var activityRef = compensateEventDefinition.activityRef;\n activityRef = activityRef && activityRef.id;\n return {\n activityRef: activityRef || ''\n };\n },\n\n set: function(element, values) {\n var activityRef = values.activityRef || undefined;\n activityRef = activityRef && getBusinessObject(elementRegistry.get(activityRef));\n return cmdHelper.updateBusinessObject(element, compensateEventDefinition, {\n activityRef: activityRef\n });\n }\n }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js": /*!********************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js ***! \********************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isEventSubProcess = __webpack_require__(/*! bpmn-js/lib/util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\").isEventSubProcess;\n\nmodule.exports = function(group, element, bpmnFactory, conditionalEventDefinition, elementRegistry, translate) {\n\n var getValue = function(modelProperty) {\n return function(element) {\n var modelPropertyValue = conditionalEventDefinition.get('camunda:' + modelProperty);\n var value = {};\n\n value[modelProperty] = modelPropertyValue;\n return value;\n };\n };\n\n var setValue = function(modelProperty) {\n return function(element, values) {\n var props = {};\n\n props['camunda:' + modelProperty] = values[modelProperty] || undefined;\n\n return cmdHelper.updateBusinessObject(element, conditionalEventDefinition, props);\n };\n };\n\n group.entries.push(entryFactory.textField(translate, {\n id: 'variableName',\n label: translate('Variable Name'),\n modelProperty : 'variableName',\n\n get: getValue('variableName'),\n set: setValue('variableName')\n }));\n\n var isConditionalStartEvent =\n is(element, 'bpmn:StartEvent') && !isEventSubProcess(element.parent);\n\n if (!isConditionalStartEvent) {\n group.entries.push(entryFactory.textField(translate, {\n id: 'variableEvents',\n label: translate('Variable Events'),\n description: translate('Specify more than one variable change event as a comma separated list.'),\n modelProperty : 'variableEvents',\n\n get: getValue('variableEvents'),\n set: setValue('variableEvents')\n }));\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js": /*!******************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js ***! \******************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n/**\n * Create an entry to modify a property of an element which\n * is referenced by a event definition.\n *\n * @param {djs.model.Base} element\n * @param {ModdleElement} definition\n * @param {BpmnFactory} bpmnFactory\n * @param {Object} options\n * @param {string} options.id the id of the entry\n * @param {string} options.label the label of the entry\n * @param {string} options.referenceProperty the name of referencing property\n * @param {string} options.modelProperty the name of property to modify\n * @param {string} options.shouldValidate a flag indicate whether to validate or not\n *\n * @return {Array} return an array containing the entries\n */\nmodule.exports = function(element, definition, bpmnFactory, translate, options) {\n\n var id = options.id || 'element-property';\n var label = options.label;\n var referenceProperty = options.referenceProperty;\n var modelProperty = options.modelProperty || 'name';\n var shouldValidate = options.shouldValidate || false;\n var description = options.description;\n var canBeHidden = !!options.hidden && typeof options.hidden === 'function';\n\n var entry = entryFactory.textField(translate, {\n id: id,\n label: label,\n modelProperty: modelProperty,\n description: description,\n\n get: function(element, node) {\n var reference = definition.get(referenceProperty);\n var props = {};\n props[modelProperty] = reference && reference.get(modelProperty);\n return props;\n },\n\n set: function(element, values, node) {\n var reference = definition.get(referenceProperty);\n var props = {};\n props[modelProperty] = values[modelProperty] || undefined;\n return cmdHelper.updateBusinessObject(element, reference, props);\n },\n\n hidden: function(element, node) {\n if (canBeHidden) {\n return options.hidden.apply(definition, arguments) || !definition.get(referenceProperty);\n }\n return !definition.get(referenceProperty);\n }\n });\n\n if (shouldValidate) {\n entry.validate = function(element, values, node) {\n var reference = definition.get(referenceProperty);\n if (reference && !values[modelProperty]) {\n var validationErrors = {};\n validationErrors[modelProperty] = 'Must provide a value';\n return validationErrors;\n }\n };\n }\n\n return [ entry ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, errorEventDefinition, translate) {\n\n\n group.entries = group.entries.concat(eventDefinitionReference(element, errorEventDefinition, bpmnFactory, {\n label: translate('Global Error referenced'),\n elementName: 'error',\n elementType: 'bpmn:Error',\n referenceProperty: 'errorRef',\n newElementIdPrefix: 'Error_'\n }));\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, errorEventDefinition, bpmnFactory, translate, {\n id: 'error-element-name',\n label: translate('Name'),\n referenceProperty: 'errorRef',\n modelProperty: 'name',\n shouldValidate: true\n })\n );\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, errorEventDefinition, bpmnFactory, translate, {\n id: 'error-element-code',\n label: translate('Code'),\n referenceProperty: 'errorRef',\n modelProperty: 'errorCode'\n })\n );\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js": /*!*******************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js ***! \*******************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, escalationEventDefinition, showEscalationCodeVariable, translate) {\n\n group.entries = group.entries.concat(eventDefinitionReference(element, escalationEventDefinition, bpmnFactory, {\n label: translate('Global Escalation referenced'),\n elementName: 'escalation',\n elementType: 'bpmn:Escalation',\n referenceProperty: 'escalationRef',\n newElementIdPrefix: 'Escalation_'\n }));\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, escalationEventDefinition, bpmnFactory, translate, {\n id: 'escalation-element-name',\n label: translate('Global Escalation Name'),\n referenceProperty: 'escalationRef',\n modelProperty: 'name',\n shouldValidate: true\n })\n );\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, escalationEventDefinition, bpmnFactory, translate, {\n id: 'escalation-element-code',\n label: translate('Global Escalation Code'),\n referenceProperty: 'escalationRef',\n modelProperty: 'escalationCode'\n })\n );\n\n\n if (showEscalationCodeVariable) {\n group.entries.push(entryFactory.validationAwareTextField(translate, {\n id : 'escalationCodeVariable',\n label : translate('Escalation Code Variable'),\n modelProperty : 'escalationCodeVariable',\n description: translate('Define the name of the variable that will contain the escalation code'),\n\n getProperty: function(element) {\n var codeVariable = escalationEventDefinition.get('camunda:escalationCodeVariable');\n\n return codeVariable;\n },\n\n setProperty: function(element, values) {\n if (values.escalationCodeVariable === '')\n values.escalationCodeVariable = undefined;\n\n return cmdHelper.updateBusinessObject(element, escalationEventDefinition, values);\n },\n\n validate: function(element, values) {\n var validation = {},\n targetValue = values.escalationCodeVariable;\n\n if (utils.containsSpace(targetValue)) {\n validation.escalationCodeVariable = translate('Escalation code variable must not contain spaces.');\n }\n\n return validation;\n }\n }));\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js": /*!******************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js ***! \******************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domAttr = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").attr;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\nvar utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n escapeHTML = utils.escapeHTML;\n\nvar selector = 'select[name=selectedElement]';\n\n/**\n * Get select box containing all elements.\n *\n * @param {DOMElement} node\n *\n * @return {DOMElement} the select box\n */\nfunction getSelectBox(node) {\n return domQuery(selector, node);\n}\n\n/**\n * Find element by given id.\n *\n * @param {ModdleElement} eventDefinition\n *\n * @return {ModdleElement} an element\n */\nfunction findElementById(eventDefinition, type, id) {\n var elements = utils.findRootElementsByType(eventDefinition, type);\n return find(elements, function(element) {\n return element.id === id;\n });\n}\n\n/**\n * Create an entry to modify the reference to an element from an\n * event definition.\n *\n * @param {djs.model.Base} element\n * @param {ModdleElement} definition\n * @param {BpmnFactory} bpmnFactory\n * @param {Object} options\n * @param {string} options.label the label of the entry\n * @param {string} options.description the description of the entry\n * @param {string} options.elementName the name of the element\n * @param {string} options.elementType the type of the element\n * @param {string} options.referenceProperty the name of referencing property\n * @param {string} options.newElementIdPrefix the prefix of a new created element\n *\n * @return {Array} return an array containing the entries\n */\nmodule.exports = function(element, definition, bpmnFactory, options) {\n\n var elementName = options.elementName || '',\n elementType = options.elementType,\n referenceProperty = options.referenceProperty;\n\n var newElementIdPrefix = options.newElementIdPrefix || 'elem_';\n\n var label = options.label || '',\n description = options.description || '';\n\n var entries = [];\n\n var canBeHidden = !!options.hidden && typeof options.hidden === 'function';\n\n entries.push({\n\n id: options.id || 'event-definitions-' + elementName,\n description: description,\n isShown: function() {\n if (canBeHidden) {\n return !options.hidden.apply(definition, arguments);\n }\n return !options.hidden;\n },\n html: '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ',\n\n get: function(element, entryNode) {\n utils.updateOptionsDropDown(selector, definition, elementType, entryNode);\n var reference = definition.get(referenceProperty);\n return {\n selectedElement: (reference && reference.id) || ''\n };\n },\n\n set: function(element, values) {\n var selection = values.selectedElement;\n\n var props = {};\n\n if (!selection || typeof selection === 'undefined') {\n\n // remove reference to element\n props[referenceProperty] = undefined;\n return cmdHelper.updateBusinessObject(element, definition, props);\n }\n\n var commands = [];\n\n var selectedElement = findElementById(definition, elementType, selection);\n if (!selectedElement) {\n var root = utils.getRoot(definition);\n\n // create a new element\n selectedElement = elementHelper.createElement(elementType, { name: selection }, root, bpmnFactory);\n commands.push(cmdHelper.addAndRemoveElementsFromList(element, root, 'rootElements', null, [ selectedElement ]));\n }\n\n // update reference to element\n props[referenceProperty] = selectedElement;\n commands.push(cmdHelper.updateBusinessObject(element, definition, props));\n\n return commands;\n },\n\n addElement: function(element, inputNode) {\n\n // note: this generated id will be used as name\n // of the element and not as id\n var id = utils.nextId(newElementIdPrefix);\n\n var optionTemplate = domify('');\n\n // add new option\n var selectBox = getSelectBox(inputNode);\n selectBox.insertBefore(optionTemplate, selectBox.firstChild);\n\n // select new element in the select box\n forEach(selectBox, function(option) {\n if (option.value === id) {\n domAttr(option, 'selected', 'selected');\n } else {\n domAttr(option, 'selected', null);\n }\n });\n\n return true;\n }\n\n });\n\n return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js": /*!****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js ***! \****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, messageEventDefinition, translate) {\n\n group.entries = group.entries.concat(eventDefinitionReference(element, messageEventDefinition, bpmnFactory, {\n label: translate('Global Message referenced'),\n elementName: 'message',\n elementType: 'bpmn:Message',\n referenceProperty: 'messageRef',\n newElementIdPrefix: 'Message_'\n }));\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, messageEventDefinition, bpmnFactory, translate, {\n id: 'message-element-name',\n label: translate('Global Message Name'),\n referenceProperty: 'messageRef',\n modelProperty: 'name',\n shouldValidate: true\n })\n );\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js": /*!**********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js ***! \**********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n/**\n * Create an entry to modify the name of an an element.\n *\n * @param {djs.model.Base} element\n * @param {Object} options\n * @param {string} options.id the id of the entry\n * @param {string} options.label the label of the entry\n *\n * @return {Array} return an array containing\n * the entry to modify the name\n */\nmodule.exports = function(element, options, translate) {\n\n options = options || {};\n var id = options.id || 'name',\n label = options.label || translate('Name'),\n modelProperty = options.modelProperty || 'name';\n\n var nameEntry = entryFactory.textBox(translate, {\n id: id,\n label: label,\n modelProperty: modelProperty,\n get: options.get,\n set: options.set\n });\n\n return [ nameEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js": /*!***************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js ***! \***************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, signalEventDefinition, translate) {\n\n group.entries = group.entries.concat(eventDefinitionReference(element, signalEventDefinition, bpmnFactory, {\n label: translate('Global Signal referenced'),\n elementName: 'signal',\n elementType: 'bpmn:Signal',\n referenceProperty: 'signalRef',\n newElementIdPrefix: 'Signal_'\n }));\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, signalEventDefinition, bpmnFactory, translate, {\n id: 'signal-element-name',\n label: translate('Global Signal Name'),\n referenceProperty: 'signalRef',\n modelProperty: 'name',\n shouldValidate: true\n })\n );\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n/**\n * Get the timer definition type for a given timer event definition.\n *\n * @param {ModdleElement} timer\n *\n * @return {string|undefined} the timer definition type\n */\nfunction getTimerDefinitionType(timer) {\n\n if (!timer) {\n return;\n }\n\n var timeDate = timer.get('timeDate');\n if (typeof timeDate !== 'undefined') {\n return 'timeDate';\n }\n\n var timeCycle = timer.get('timeCycle');\n if (typeof timeCycle !== 'undefined') {\n return 'timeCycle';\n }\n\n var timeDuration = timer.get('timeDuration');\n if (typeof timeDuration !== 'undefined') {\n return 'timeDuration';\n }\n}\n\n/**\n * Get the actual timer event definition based on option, whether it's a getter\n * to fetch the timer event definition or the exact event definition itself\n *\n * @param {ModdleElement|Function} timerOrFunction\n * @param {Shape} element\n * @param {HTMLElement} node\n *\n * @return ModdleElement\n */\nfunction getTimerDefinition(timerOrFunction, element, node) {\n if (typeof timerOrFunction === 'function') {\n return timerOrFunction(element, node);\n }\n\n return timerOrFunction;\n}\n\n/**\n * Creates 'bpmn:FormalExpression' element.\n *\n * @param {ModdleElement} parent\n * @param {string} body\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement} a formal expression\n */\nfunction createFormalExpression(parent, body, bpmnFactory) {\n body = body || undefined;\n return elementHelper.createElement('bpmn:FormalExpression', { body: body }, parent, bpmnFactory);\n}\n\nfunction TimerEventDefinition(group, element, bpmnFactory, timerEventDefinition, translate, options) {\n\n var selectOptions = [\n { value: 'timeDate', name: translate('Date') },\n { value: 'timeDuration', name: translate('Duration') },\n { value: 'timeCycle', name: translate('Cycle') }\n ];\n\n var prefix = options && options.idPrefix,\n createTimerEventDefinition = options && options.createTimerEventDefinition;\n\n\n group.entries.push(entryFactory.selectBox(translate, {\n id: prefix + 'timer-event-definition-type',\n label: translate('Timer Definition Type'),\n selectOptions: selectOptions,\n emptyParameter: true,\n modelProperty: 'timerDefinitionType',\n\n get: function(element, node) {\n var timerDefinition = getTimerDefinition(timerEventDefinition, element, node);\n\n return {\n timerDefinitionType: getTimerDefinitionType(timerDefinition) || ''\n };\n },\n\n set: function(element, values, node) {\n var props = {\n timeDuration: undefined,\n timeDate: undefined,\n timeCycle: undefined\n };\n\n\n var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n newType = values.timerDefinitionType;\n\n if (!timerDefinition && typeof createTimerEventDefinition === 'function') {\n timerDefinition = createTimerEventDefinition(element, node);\n }\n\n if (values.timerDefinitionType) {\n var oldType = getTimerDefinitionType(timerDefinition);\n\n var value;\n if (oldType) {\n var definition = timerDefinition.get(oldType);\n value = definition.get('body');\n }\n\n props[newType] = createFormalExpression(timerDefinition, value, bpmnFactory);\n }\n\n return cmdHelper.updateBusinessObject(element, timerDefinition, props);\n },\n\n hidden: function(element, node) {\n return getTimerDefinition(timerEventDefinition, element, node) === undefined;\n }\n\n }));\n\n\n group.entries.push(entryFactory.textField(translate, {\n id: prefix + 'timer-event-definition',\n label: translate('Timer Definition'),\n modelProperty: 'timerDefinition',\n\n get: function(element, node) {\n var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n type = getTimerDefinitionType(timerDefinition),\n definition = type && timerDefinition.get(type),\n value = definition && definition.get('body');\n\n return {\n timerDefinition: value\n };\n },\n\n set: function(element, values, node) {\n var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n type = getTimerDefinitionType(timerDefinition),\n definition = type && timerDefinition.get(type);\n\n if (definition) {\n return cmdHelper.updateBusinessObject(element, definition, {\n body: values.timerDefinition || undefined\n });\n }\n },\n\n validate: function(element, node) {\n var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n type = getTimerDefinitionType(timerDefinition),\n definition = type && timerDefinition.get(type);\n\n if (definition) {\n var value = definition.get('body');\n if (!value) {\n return {\n timerDefinition: translate('Must provide a value')\n };\n }\n }\n },\n\n hidden: function(element, node) {\n var timerDefinition = getTimerDefinition(timerEventDefinition, element, node);\n\n return !getTimerDefinitionType(timerDefinition);\n }\n\n }));\n\n}\n\nmodule.exports = TimerEventDefinition;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js": /*!*************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js ***! \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar PropertiesActivator = __webpack_require__(/*! ../../PropertiesActivator */ \"./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js\");\n\nvar asyncCapableHelper = __webpack_require__(/*! ../../helper/AsyncCapableHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js\"),\n ImplementationTypeHelper = __webpack_require__(/*! ../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\n// bpmn properties\nvar processProps = __webpack_require__(/*! ../bpmn/parts/ProcessProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js\"),\n eventProps = __webpack_require__(/*! ../bpmn/parts/EventProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js\"),\n linkProps = __webpack_require__(/*! ../bpmn/parts/LinkProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js\"),\n documentationProps = __webpack_require__(/*! ../bpmn/parts/DocumentationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js\"),\n idProps = __webpack_require__(/*! ../bpmn/parts/IdProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js\"),\n nameProps = __webpack_require__(/*! ../bpmn/parts/NameProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js\"),\n executableProps = __webpack_require__(/*! ../bpmn/parts/ExecutableProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js\");\n\n// camunda properties\nvar serviceTaskDelegateProps = __webpack_require__(/*! ./parts/ServiceTaskDelegateProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js\"),\n userTaskProps = __webpack_require__(/*! ./parts/UserTaskProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js\"),\n asynchronousContinuationProps = __webpack_require__(/*! ./parts/AsynchronousContinuationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js\"),\n callActivityProps = __webpack_require__(/*! ./parts/CallActivityProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js\"),\n multiInstanceProps = __webpack_require__(/*! ./parts/MultiInstanceLoopProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js\"),\n conditionalProps = __webpack_require__(/*! ./parts/ConditionalProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js\"),\n scriptProps = __webpack_require__(/*! ./parts/ScriptTaskProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js\"),\n errorProps = __webpack_require__(/*! ./parts/ErrorEventProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js\"),\n formProps = __webpack_require__(/*! ./parts/FormProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js\"),\n startEventInitiator = __webpack_require__(/*! ./parts/StartEventInitiator */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js\"),\n variableMapping = __webpack_require__(/*! ./parts/VariableMappingProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js\"),\n versionTag = __webpack_require__(/*! ./parts/VersionTagProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js\"),\n processVariablesProps = __webpack_require__(/*! ./parts/ProcessVariablesProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js\");\n\nvar listenerProps = __webpack_require__(/*! ./parts/ListenerProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js\"),\n listenerDetails = __webpack_require__(/*! ./parts/ListenerDetailProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js\"),\n listenerFields = __webpack_require__(/*! ./parts/ListenerFieldInjectionProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js\");\n\n// element template properties\nvar elementTemplateDescriptionProps = __webpack_require__(/*! ./element-templates/parts/DescriptionProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js\"),\n elementTemplateChooserProps = __webpack_require__(/*! ./element-templates/parts/ChooserProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js\"),\n elementTemplateCustomProps = __webpack_require__(/*! ./element-templates/parts/CustomProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js\"),\n elementTemplateInputParametersProps = __webpack_require__(/*! ./element-templates/parts/InputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js\"),\n elementTemplateOutputParametersProps = __webpack_require__(/*! ./element-templates/parts/OutputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js\"),\n elementTemplateErrorsProps = __webpack_require__(/*! ./element-templates/parts/ErrorsProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js\"),\n getTemplateId = __webpack_require__(/*! ./element-templates/Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId;\n\n// Input/Output\nvar inputParameters = __webpack_require__(/*! ./parts/InputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js\"),\n outputParameters = __webpack_require__(/*! ./parts/OutputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js\"),\n errorsProps = __webpack_require__(/*! ./parts/ErrorsProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js\");\n\n// Connector\nvar connectorDetails = __webpack_require__(/*! ./parts/ConnectorDetailProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js\"),\n connectorInputParameters = __webpack_require__(/*! ./parts/ConnectorInputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js\"),\n connectorOutputParameters = __webpack_require__(/*! ./parts/ConnectorOutputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js\");\n\n// properties\nvar properties = __webpack_require__(/*! ./parts/PropertiesProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js\");\n\n// job configuration\nvar jobConfiguration = __webpack_require__(/*! ./parts/JobConfigurationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js\");\n\n// history time to live\nvar historyTimeToLive = __webpack_require__(/*! ./parts/HistoryTimeToLiveProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js\");\n\n// candidate starter groups/users\nvar candidateStarter = __webpack_require__(/*! ./parts/CandidateStarterProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js\");\n\n// tasklist\nvar tasklist = __webpack_require__(/*! ./parts/TasklistProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js\");\n\n// external task configuration\nvar externalTaskConfiguration = __webpack_require__(/*! ./parts/ExternalTaskConfigurationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js\");\n\n// field injection\nvar fieldInjections = __webpack_require__(/*! ./parts/FieldInjectionProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js\");\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n eventDefinitionHelper = __webpack_require__(/*! ../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n implementationTypeHelper = __webpack_require__(/*! ../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\n// helpers ////////////////////////////////////////\n\nvar isExternalTaskPriorityEnabled = function(element) {\n var businessObject = getBusinessObject(element);\n\n // show only if element is a process, a participant ...\n if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n return true;\n }\n\n var externalBo = ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element),\n isExternalTask = ImplementationTypeHelper.getImplementationType(externalBo) === 'external';\n\n // ... or an external task with selected external implementation type\n return !!ImplementationTypeHelper.isExternalCapable(externalBo) && isExternalTask;\n};\n\nvar isJobConfigEnabled = function(element) {\n var businessObject = getBusinessObject(element);\n\n if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n return true;\n }\n\n // async behavior\n var bo = getBusinessObject(element);\n if (asyncCapableHelper.isAsyncBefore(bo) || asyncCapableHelper.isAsyncAfter(bo)) {\n return true;\n }\n\n // timer definition\n if (is(element, 'bpmn:Event')) {\n return !!eventDefinitionHelper.getTimerEventDefinition(element);\n }\n\n return false;\n};\n\nvar getListenerLabel = function(param, translate) {\n\n if (is(param, 'camunda:ExecutionListener')) {\n return translate('Execution Listener');\n }\n\n if (is(param, 'camunda:TaskListener')) {\n return translate('Task Listener');\n }\n\n return '';\n};\n\nvar PROCESS_KEY_HINT = 'This maps to the process definition key.';\nvar TASK_KEY_HINT = 'This maps to the task definition key.';\n\nfunction getIdOptions(element) {\n\n if (is(element, 'bpmn:Participant')) {\n return { id: 'participant-id', label: 'Participant Id' };\n }\n\n if (is(element, 'bpmn:Process')) {\n return { description: PROCESS_KEY_HINT };\n }\n\n if (is(element, 'bpmn:UserTask')) {\n return { description: TASK_KEY_HINT };\n }\n}\n\nfunction getNameOptions(element) {\n if (is(element, 'bpmn:Participant')) {\n return { id: 'participant-name', label: 'Participant Name' };\n }\n}\n\nfunction getProcessOptions(element) {\n if (is(element, 'bpmn:Participant')) {\n return { processIdDescription: PROCESS_KEY_HINT };\n }\n}\n\nfunction createElementTemplateGroups(\n element,\n bpmnFactory,\n canvas,\n commandStack,\n elementTemplates,\n modeling,\n replace,\n selection,\n translate) {\n var templateId = getTemplateId(element);\n\n if (!templateId) {\n return [];\n }\n\n var descriptionGroup = elementTemplateDescriptionProps(\n element, commandStack, elementTemplates, modeling, replace, selection, translate);\n\n var idOptions = getIdOptions(element) || {};\n\n idOptions.id = 'element-template-element-id';\n\n var nameOptions = { id: 'element-template-element-name' };\n\n idProps(descriptionGroup, element, translate, idOptions);\n nameProps(descriptionGroup, element, bpmnFactory, canvas, translate, nameOptions);\n processProps(descriptionGroup, element, translate, getProcessOptions(element));\n\n var elementTemplateInputParametersGroup = {\n id: 'template-inputs',\n label: translate('Input Parameters'),\n entries: []\n };\n elementTemplateInputParametersProps(elementTemplateInputParametersGroup, element, elementTemplates, bpmnFactory, translate);\n\n var elementTemplateOutputParametersGroup = {\n id: 'template-outputs',\n label: translate('Output Parameters'),\n entries: []\n };\n elementTemplateOutputParametersProps(elementTemplateOutputParametersGroup, element, elementTemplates, bpmnFactory, translate);\n\n\n var elementTemplateErrorsGroup = {\n id: 'template-errors',\n label: translate('Errors'),\n entries: []\n };\n elementTemplateErrorsProps(elementTemplateErrorsGroup, element, elementTemplates, bpmnFactory, translate);\n\n var customFieldsGroups = elementTemplateCustomProps(element, elementTemplates, bpmnFactory, translate);\n\n return [\n descriptionGroup,\n elementTemplateInputParametersGroup,\n elementTemplateOutputParametersGroup,\n elementTemplateErrorsGroup\n ].concat(customFieldsGroups);\n}\n\nfunction createGeneralTabGroups(\n element, canvas, bpmnFactory,\n elementRegistry, elementTemplates, translate) {\n\n // refer to target element for external labels\n element = element.labelTarget || element;\n\n var generalGroup = {\n id: 'general',\n label: translate('General'),\n entries: []\n };\n\n idProps(generalGroup, element, translate, getIdOptions(element));\n nameProps(generalGroup, element, bpmnFactory, canvas, translate, getNameOptions(element));\n processProps(generalGroup, element, translate, getProcessOptions(element));\n versionTag(generalGroup, element, translate);\n executableProps(generalGroup, element, translate);\n elementTemplateChooserProps(generalGroup, element, elementTemplates, translate);\n\n var detailsGroup = {\n id: 'details',\n label: translate('Details'),\n entries: []\n };\n serviceTaskDelegateProps(detailsGroup, element, bpmnFactory, translate);\n userTaskProps(detailsGroup, element, translate);\n scriptProps(detailsGroup, element, bpmnFactory, translate);\n linkProps(detailsGroup, element, translate);\n callActivityProps(detailsGroup, element, bpmnFactory, translate);\n eventProps(detailsGroup, element, bpmnFactory, elementRegistry, translate);\n errorProps(detailsGroup, element, bpmnFactory, translate);\n conditionalProps(detailsGroup, element, bpmnFactory, translate);\n startEventInitiator(detailsGroup, element, translate); // this must be the last element of the details group!\n\n var multiInstanceGroup = {\n id: 'multiInstance',\n label: translate('Multi Instance'),\n entries: []\n };\n multiInstanceProps(multiInstanceGroup, element, bpmnFactory, translate);\n\n var asyncGroup = {\n id : 'async',\n label: translate('Asynchronous Continuations'),\n entries : []\n };\n asynchronousContinuationProps(asyncGroup, element, bpmnFactory, translate);\n\n var jobConfigurationGroup = {\n id : 'jobConfiguration',\n label : translate('Job Configuration'),\n entries : [],\n enabled: isJobConfigEnabled\n };\n jobConfiguration(jobConfigurationGroup, element, bpmnFactory, translate);\n\n var externalTaskGroup = {\n id : 'externalTaskConfiguration',\n label : translate('External Task Configuration'),\n entries : [],\n enabled: isExternalTaskPriorityEnabled\n };\n externalTaskConfiguration(externalTaskGroup, element, bpmnFactory, translate);\n\n\n var candidateStarterGroup = {\n id: 'candidateStarterConfiguration',\n label: translate('Candidate Starter Configuration'),\n entries: []\n };\n candidateStarter(candidateStarterGroup, element, bpmnFactory, translate);\n\n var historyTimeToLiveGroup = {\n id: 'historyConfiguration',\n label: translate('History Configuration'),\n entries: []\n };\n historyTimeToLive(historyTimeToLiveGroup, element, bpmnFactory, translate);\n\n var tasklistGroup = {\n id: 'tasklist',\n label: translate('Tasklist Configuration'),\n entries: []\n };\n tasklist(tasklistGroup, element, bpmnFactory, translate);\n\n var documentationGroup = {\n id: 'documentation',\n label: translate('Documentation'),\n entries: []\n };\n documentationProps(documentationGroup, element, bpmnFactory, translate);\n\n var groups = [];\n groups.push(generalGroup);\n groups.push(detailsGroup);\n groups.push(externalTaskGroup);\n groups.push(multiInstanceGroup);\n groups.push(asyncGroup);\n groups.push(jobConfigurationGroup);\n groups.push(candidateStarterGroup);\n groups.push(historyTimeToLiveGroup);\n groups.push(tasklistGroup);\n groups.push(documentationGroup);\n\n return groups;\n}\n\nfunction createVariablesTabGroups(element, bpmnFactory, elementRegistry, translate) {\n var variablesGroup = {\n id : 'variables',\n label : translate('Variables'),\n entries: []\n };\n variableMapping(variablesGroup, element, bpmnFactory, translate);\n\n return [\n variablesGroup\n ];\n}\n\nfunction createProcessVariablesTabGroups(element, translate) {\n var processVariablesGroup = {\n id : 'process-variables',\n label : translate('Variables'),\n entries: []\n };\n\n processVariablesProps(processVariablesGroup, element, translate);\n\n return [\n processVariablesGroup\n ];\n}\n\nfunction createFormsTabGroups(element, bpmnFactory, elementRegistry, translate) {\n var formGroup = {\n id : 'forms',\n label : translate('Forms'),\n entries: []\n };\n formProps(formGroup, element, bpmnFactory, translate);\n\n return [\n formGroup\n ];\n}\n\nfunction createListenersTabGroups(element, bpmnFactory, elementRegistry, translate) {\n\n var listenersGroup = {\n id : 'listeners',\n label: translate('Listeners'),\n entries: []\n };\n\n var options = listenerProps(listenersGroup, element, bpmnFactory, translate);\n\n var listenerDetailsGroup = {\n id: 'listener-details',\n entries: [],\n enabled: function(element, node) {\n return options.getSelectedListener(element, node);\n },\n label: function(element, node) {\n var param = options.getSelectedListener(element, node);\n return getListenerLabel(param, translate);\n }\n };\n\n listenerDetails(listenerDetailsGroup, element, bpmnFactory, options, translate);\n\n var listenerFieldsGroup = {\n id: 'listener-fields',\n label: translate('Field Injection'),\n entries: [],\n enabled: function(element, node) {\n return options.getSelectedListener(element, node);\n }\n };\n\n listenerFields(listenerFieldsGroup, element, bpmnFactory, options, translate);\n\n return [\n listenersGroup,\n listenerDetailsGroup,\n listenerFieldsGroup\n ];\n}\n\nfunction createInputOutputTabGroups(element, bpmnFactory, elementTemplates, translate) {\n\n var inputParametersGroup = {\n id: 'input-parameters',\n label: translate('Input Parameters'),\n entries: []\n };\n\n inputParameters(inputParametersGroup, element, bpmnFactory, elementTemplates, translate);\n\n var outputParametersGroup = {\n id: 'output-parameters',\n label: translate('Output Parameters'),\n entries: []\n };\n\n outputParameters(outputParametersGroup, element, bpmnFactory, elementTemplates, translate);\n\n var errorsGroup = {\n id: 'errors',\n label: translate('Errors'),\n entries: [],\n\n enabled: function(element, node) {\n var businessObject = getBusinessObject(element);\n var isExternal = ImplementationTypeHelper.getImplementationType(businessObject) === 'external';\n\n return is(element, 'bpmn:ServiceTask') && isExternal;\n },\n };\n\n errorsProps(errorsGroup, element, bpmnFactory, elementTemplates, translate);\n\n return [\n inputParametersGroup,\n outputParametersGroup,\n errorsGroup\n ];\n}\n\nfunction createConnectorTabGroups(element, bpmnFactory, elementRegistry, translate) {\n var connectorDetailsGroup = {\n id: 'connector-details',\n label: translate('Details'),\n entries: []\n };\n\n connectorDetails(connectorDetailsGroup, element, bpmnFactory, translate);\n\n var connectorInputParametersGroup = {\n id: 'connector-input-parameters',\n label: translate('Input Parameters'),\n entries: []\n };\n\n connectorInputParameters(connectorInputParametersGroup, element, bpmnFactory, translate);\n\n var connectorOutputParametersGroup = {\n id: 'connector-output-parameters',\n label: translate('Output Parameters'),\n entries: []\n };\n\n connectorOutputParameters(connectorOutputParametersGroup, element, bpmnFactory, translate);\n\n return [\n connectorDetailsGroup,\n connectorInputParametersGroup,\n connectorOutputParametersGroup\n ];\n}\n\nfunction createFieldInjectionsTabGroups(element, bpmnFactory, elementRegistry, translate) {\n\n var fieldGroup = {\n id: 'field-injections-properties',\n label: translate('Field Injections'),\n entries: []\n };\n\n fieldInjections(fieldGroup, element, bpmnFactory, translate);\n\n return [\n fieldGroup\n ];\n}\n\nfunction createExtensionElementsGroups(element, bpmnFactory, elementRegistry, translate) {\n\n var propertiesGroup = {\n id : 'extensionElements-properties',\n label: translate('Properties'),\n entries: []\n };\n properties(propertiesGroup, element, bpmnFactory, translate);\n\n return [\n propertiesGroup\n ];\n}\n\n// Camunda Properties Provider /////////////////////////////////////\n\n\n/**\n * A properties provider for Camunda related properties.\n *\n * @param {BpmnFactory} bpmnFactory\n * @param {Canvas} canvas\n * @param {ElementRegistry} elementRegistry\n * @param {ElementTemplates} elementTemplates\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Replace} replace\n * @param {Selection} selection\n * @param {Translate} translate\n */\nfunction CamundaPropertiesProvider(\n bpmnFactory,\n canvas,\n commandStack,\n elementRegistry,\n elementTemplates,\n eventBus,\n modeling,\n replace,\n selection,\n translate\n) {\n PropertiesActivator.call(this, eventBus);\n\n this.getTabs = function(element) {\n\n var generalTab = {\n id: 'general',\n label: translate('General'),\n groups: createGeneralTabGroups(\n element, canvas, bpmnFactory,\n elementRegistry, elementTemplates, translate)\n };\n\n var elementTemplateTab = {\n id: 'element-template',\n label: translate('Template'),\n groups: createElementTemplateGroups(\n element,\n bpmnFactory,\n canvas,\n commandStack,\n elementTemplates,\n modeling,\n replace,\n selection,\n translate\n )\n };\n\n var variablesTab = {\n id: 'variables',\n label: translate('Variables'),\n groups: createVariablesTabGroups(element, bpmnFactory, elementRegistry, translate)\n };\n\n var processVariablesTab = {\n id: 'process-variables',\n label: translate('Variables'),\n groups: createProcessVariablesTabGroups(element, translate)\n };\n\n var formsTab = {\n id: 'forms',\n label: translate('Forms'),\n groups: createFormsTabGroups(element, bpmnFactory, elementRegistry, translate)\n };\n\n var listenersTab = {\n id: 'listeners',\n label: translate('Listeners'),\n groups: createListenersTabGroups(element, bpmnFactory, elementRegistry, translate),\n enabled: function(element) {\n return !eventDefinitionHelper.getLinkEventDefinition(element)\n || (!is(element, 'bpmn:IntermediateThrowEvent')\n && eventDefinitionHelper.getLinkEventDefinition(element));\n }\n };\n\n var inputOutputTab = {\n id: 'input-output',\n label: translate('Input/Output'),\n groups: createInputOutputTabGroups(element, bpmnFactory, elementTemplates, translate)\n };\n\n var connectorTab = {\n id: 'connector',\n label: translate('Connector'),\n groups: createConnectorTabGroups(element, bpmnFactory, elementRegistry, translate),\n enabled: function(element) {\n var bo = implementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n return bo && implementationTypeHelper.getImplementationType(bo) === 'connector';\n }\n };\n\n var fieldInjectionsTab = {\n id: 'field-injections',\n label: translate('Field Injections'),\n groups: createFieldInjectionsTabGroups(element, bpmnFactory, elementRegistry, translate)\n };\n\n var extensionsTab = {\n id: 'extensionElements',\n label: translate('Extensions'),\n groups: createExtensionElementsGroups(element, bpmnFactory, elementRegistry, translate)\n };\n\n return [\n generalTab,\n elementTemplateTab,\n variablesTab,\n processVariablesTab,\n connectorTab,\n formsTab,\n listenersTab,\n inputOutputTab,\n fieldInjectionsTab,\n extensionsTab\n ];\n };\n\n}\n\nCamundaPropertiesProvider.$inject = [\n 'bpmnFactory',\n 'canvas',\n 'commandStack',\n 'elementRegistry',\n 'elementTemplates',\n 'eventBus',\n 'modeling',\n 'replace',\n 'selection',\n 'translate'\n];\n\ninherits(CamundaPropertiesProvider, PropertiesActivator);\n\nmodule.exports = CamundaPropertiesProvider;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js": /*!******************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js ***! \******************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar nextId = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").nextId;\n\n/**\n * Create an input parameter representing the given\n * binding and value.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createInputParameter(binding, value, bpmnFactory) {\n var scriptFormat = binding.scriptFormat,\n parameterValue,\n parameterDefinition;\n\n if (scriptFormat) {\n parameterDefinition = bpmnFactory.create('camunda:Script', {\n scriptFormat: scriptFormat,\n value: value\n });\n } else {\n parameterValue = value;\n }\n\n return bpmnFactory.create('camunda:InputParameter', {\n name: binding.name,\n value: parameterValue,\n definition: parameterDefinition\n });\n}\n\nmodule.exports.createInputParameter = createInputParameter;\n\n\n/**\n * Create an output parameter representing the given\n * binding and value.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createOutputParameter(binding, value, bpmnFactory) {\n var scriptFormat = binding.scriptFormat,\n parameterValue,\n parameterDefinition;\n\n if (scriptFormat) {\n parameterDefinition = bpmnFactory.create('camunda:Script', {\n scriptFormat: scriptFormat,\n value: binding.source\n });\n } else {\n parameterValue = binding.source;\n }\n\n return bpmnFactory.create('camunda:OutputParameter', {\n name: value,\n value: parameterValue,\n definition: parameterDefinition\n });\n}\n\nmodule.exports.createOutputParameter = createOutputParameter;\n\n\n/**\n * Create camunda property from the given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaProperty(binding, value, bpmnFactory) {\n return bpmnFactory.create('camunda:Property', {\n name: binding.name,\n value: value || ''\n });\n}\n\nmodule.exports.createCamundaProperty = createCamundaProperty;\n\n\n/**\n * Create camunda:in element from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaIn(binding, value, bpmnFactory) {\n\n var properties = createCamundaInOutAttrs(binding, value);\n\n return bpmnFactory.create('camunda:In', properties);\n}\n\nmodule.exports.createCamundaIn = createCamundaIn;\n\n\n/**\n * Create camunda:in with businessKey element from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaInWithBusinessKey(binding, value, bpmnFactory) {\n return bpmnFactory.create('camunda:In', {\n businessKey: value\n });\n}\n\nmodule.exports.createCamundaInWithBusinessKey = createCamundaInWithBusinessKey;\n\n\n/**\n * Create camunda:out element from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaOut(binding, value, bpmnFactory) {\n var properties = createCamundaInOutAttrs(binding, value);\n\n return bpmnFactory.create('camunda:Out', properties);\n}\n\nmodule.exports.createCamundaOut = createCamundaOut;\n\n\n/**\n * Create camunda:executionListener element containing an inline script from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaExecutionListenerScript(binding, value, bpmnFactory) {\n var scriptFormat = binding.scriptFormat,\n parameterValue,\n parameterDefinition;\n\n if (scriptFormat) {\n parameterDefinition = bpmnFactory.create('camunda:Script', {\n scriptFormat: scriptFormat,\n value: value\n });\n } else {\n parameterValue = value;\n }\n\n return bpmnFactory.create('camunda:ExecutionListener', {\n event: binding.event,\n value: parameterValue,\n script: parameterDefinition\n });\n}\n\nmodule.exports.createCamundaExecutionListenerScript = createCamundaExecutionListenerScript;\n\n/**\n * Create camunda:field element containing string or expression from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaFieldInjection(binding, value, bpmnFactory) {\n var DEFAULT_PROPS = {\n 'string': undefined,\n 'expression': undefined,\n 'name': undefined\n };\n\n var props = assign({}, DEFAULT_PROPS);\n\n if (!binding.expression) {\n props.string = value;\n } else {\n props.expression = value;\n }\n props.name = binding.name;\n\n return bpmnFactory.create('camunda:Field', props);\n}\n\nmodule.exports.createCamundaFieldInjection = createCamundaFieldInjection;\n\n/**\n * Create camunda:errorEventDefinition element containing expression and errorRef\n * from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {ModdleElement} error\n * @param {ModdleElement} parent\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaErrorEventDefinition(binding, value, error, parent, bpmnFactory) {\n var errorRef = error,\n expression = value;\n\n var newErrorEventDefinition = bpmnFactory.create('camunda:ErrorEventDefinition', {\n expression: expression,\n errorRef: errorRef\n });\n\n newErrorEventDefinition.$parent = parent;\n\n return newErrorEventDefinition;\n}\n\nmodule.exports.createCamundaErrorEventDefinition = createCamundaErrorEventDefinition;\n\n/**\n * Create bpmn:error element containing a specific error id given by a binding.\n *\n * @param {String} bindingErrorRef\n * @param {ModdleElement} parent\n * @param {BpmnFactory} bpmnFactory\n *\n * @return { ModdleElement }\n */\nfunction createError(bindingErrorRef, parent, bpmnFactory) {\n var error = bpmnFactory.create('bpmn:Error', {\n\n // we need to later retrieve the error from a binding\n id: nextId('Error_' + bindingErrorRef + '_')\n });\n\n error.$parent = parent;\n\n return error;\n}\n\nmodule.exports.createError = createError;\n\n// helpers ////////////////////////////\n\n/**\n * Create properties for camunda:in and camunda:out types.\n */\nfunction createCamundaInOutAttrs(binding, value) {\n\n var properties = {};\n\n // camunda:in source(Expression) target\n if (binding.target) {\n\n properties.target = binding.target;\n\n if (binding.expression) {\n properties.sourceExpression = value;\n } else {\n properties.source = value;\n }\n } else\n\n // camunda:(in|out) variables local\n if (binding.variables) {\n properties.variables = 'all';\n\n if (binding.variables === 'local') {\n properties.local = true;\n }\n }\n\n // camunda:out source(Expression) target\n else {\n properties.target = value;\n\n [ 'source', 'sourceExpression' ].forEach(function(k) {\n if (binding[k]) {\n properties[k] = binding[k];\n }\n });\n }\n\n return properties;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js": /*!***************************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js ***! \***************************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar getTemplateId = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId;\n\nvar isBoolean = __webpack_require__(/*! lodash/isBoolean */ \"./node_modules/lodash/isBoolean.js\");\n\nvar find = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").find,\n isNumber = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").isNumber;\n\nvar handleLegacyScopes = __webpack_require__(/*! ./util/handleLegacyScopes */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js\");\n\nvar PropertiesActivator = __webpack_require__(/*! ../../../PropertiesActivator */ \"./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js\");\n\nvar HIGHER_PRIORITY = 1100;\n\n/**\n * Decides what entries are visible and editable. When an element template is applied only entries\n * in the element template tab are visible. Override this behavior through a properties activator\n * with higher priority or by specifying `entriesVisible`.\n *\n * @param {EventBus} eventBus\n * @param {ElementTemplates} elementTemplates\n */\nfunction CustomElementsPropertiesActivator(eventBus, elementTemplates) {\n PropertiesActivator.call(this, eventBus, HIGHER_PRIORITY);\n\n this.isEntryVisible = function(element, entry, group, tab) {\n var template = elementTemplates.get(element),\n templateId = getTemplateId(element);\n\n if (templateId && !isEntryVisible(entry, tab, template)) {\n return false;\n }\n };\n\n this.isPropertyEditable = function(propertyName, element, entry, group, tab) {\n var template = elementTemplates.get(element);\n\n if (template && !isEntryEditable(entry, template)) {\n return false;\n }\n };\n}\n\nCustomElementsPropertiesActivator.$inject = [ 'eventBus', 'elementTemplates' ];\n\ninherits(CustomElementsPropertiesActivator, PropertiesActivator);\n\nmodule.exports = CustomElementsPropertiesActivator;\n\n\n\n// helpers //////////\n\n\nvar CUSTOM_PROPERTIES_PATTERN = /^custom-/;\n\nvar DEFAULT_ENTRIES_VISIBLE = {\n _all: false\n};\n\nfunction isCustomEntry(entry) {\n return CUSTOM_PROPERTIES_PATTERN.test(entry.id);\n}\n\nfunction isEntryVisible(entry, tab, template) {\n var entryId = entry.id;\n\n if (tab.id === 'element-template') {\n return true;\n }\n\n var entriesVisible = template && template.entriesVisible || DEFAULT_ENTRIES_VISIBLE;\n\n if (isBoolean(entriesVisible)) {\n return entriesVisible;\n }\n\n var defaultVisible = entriesVisible._all || false,\n entryVisible = entriesVisible[ entryId ];\n\n if (defaultVisible) {\n return entryVisible !== false;\n } else {\n return entryVisible === true;\n }\n}\n\nfunction isEntryEditable(entry, template) {\n\n var property;\n\n if (isCustomEntry(entry)) {\n property = getProperty(template, entry);\n\n return property && property.editable !== false;\n }\n\n return true;\n}\n\nfunction getProperty(template, entry) {\n\n var idxAsNumber,\n scope,\n scopeName;\n\n var throwError = function() {\n throw new Error('cannot extract property index for entry <' + entry.id + '>');\n };\n\n // (0) retrieve raw property idx from entry\n var idxOrScope = entry.id.replace('custom-' + template.id + '-', '');\n\n // (1) handle custom props entries\n // e.g. custom-com.example.template-{idx}\n if (!idxOrScope.includes('-')) {\n idxAsNumber = parseInt(idxOrScope, 10);\n\n if (!isNumber(idxAsNumber)) {\n throwError();\n }\n\n return template.properties[idxAsNumber];\n }\n\n // (2) handle scope entries\n // e.g. custom-com.example.template-camunda_Connector-{idx}\n var entryParts = idxOrScope.split('-');\n\n if (entryParts.length == 2) {\n scopeName = entryParts[0].replace(/_/g, ':');\n\n idxAsNumber = parseInt(entryParts[1], 10);\n\n if (scopeName && isNumber(idxAsNumber)) {\n scope = findScopeForName(handleLegacyScopes(template.scopes), scopeName);\n\n return scope.properties[idxAsNumber];\n }\n\n }\n\n throwError();\n}\n\nfunction findScopeForName(scopes, scopeName) {\n return find(scopes, function(scope) {\n return scope.type === scopeName;\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js": /*!**********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js ***! \**********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar flatten = __webpack_require__(/*! lodash/flatten */ \"./node_modules/lodash/flatten.js\"),\n find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\"),\n isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"),\n values = __webpack_require__(/*! lodash/values */ \"./node_modules/lodash/values.js\");\n\nvar getTemplateId = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId,\n getTemplateVersion = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateVersion;\n\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\n/**\n * Registry for element templates.\n */\nfunction ElementTemplates() {\n this._templates = {};\n}\n\n/**\n * Get template with given ID and optional version or for element.\n *\n * @param {String|djs.model.Base} id\n * @param {number} [version]\n *\n * @return {ElementTemplate}\n */\nElementTemplates.prototype.get = function(id, version) {\n var templates = this._templates,\n element;\n\n if (isUndefined(id)) {\n return null;\n } else if (isString(id)) {\n\n if (isUndefined(version)) {\n version = '_';\n }\n\n if (templates[ id ] && templates[ id ][ version ]) {\n return templates[ id ][ version ];\n } else {\n return null;\n }\n } else {\n element = id;\n\n return this.get(getTemplateId(element), getTemplateVersion(element));\n }\n};\n\n/**\n * Get default template for given element.\n *\n * @param {djs.model.Base} element\n *\n * @return {ElementTemplate}\n */\nElementTemplates.prototype.getDefault = function(element) {\n return find(this.getAll(), function(template) {\n return isAny(element, template.appliesTo) && template.isDefault;\n }) || null;\n};\n\n/**\n * Get all templates (with given ID).\n *\n * @param {string} [id]\n *\n * @return {Array}\n */\nElementTemplates.prototype.getAll = function(id) {\n if (!isUndefined(id) && this._templates[ id ]) {\n return values(this._templates[ id ]);\n }\n\n return flatten(values(this._templates).map(values));\n};\n\n/**\n * Set templates.\n *\n * @param {Array} templates\n */\nElementTemplates.prototype.set = function(templates) {\n var self = this;\n\n this._templates = {};\n\n templates.forEach(function(template) {\n var id = template.id,\n version = isUndefined(template.version) ? '_' : template.version;\n\n if (!self._templates[ id ]) {\n self._templates[ id ] = {};\n }\n\n self._templates[ id ][ version ] = template;\n });\n};\n\nmodule.exports = ElementTemplates;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js": /*!****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js ***! \****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar Validator = __webpack_require__(/*! ./Validator */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js\");\n\n/**\n * The guy responsible for template loading.\n *\n * Provide the actual templates via the `config.elementTemplates`.\n *\n * That configuration can either be an array of template\n * descriptors or a node style callback to retrieve\n * the templates asynchronously.\n *\n * @param {Array|Function} loadTemplates\n * @param {EventBus} eventBus\n * @param {ElementTemplates} elementTemplates\n */\nfunction ElementTemplatesLoader(loadTemplates, eventBus, elementTemplates) {\n this._loadTemplates = loadTemplates;\n this._eventBus = eventBus;\n this._elementTemplates = elementTemplates;\n\n var self = this;\n\n eventBus.on('diagram.init', function() {\n self.reload();\n });\n}\n\nmodule.exports = ElementTemplatesLoader;\n\nElementTemplatesLoader.$inject = [\n 'config.elementTemplates',\n 'eventBus',\n 'elementTemplates'\n];\n\n\nElementTemplatesLoader.prototype.reload = function() {\n\n var self = this;\n\n var loadTemplates = this._loadTemplates;\n\n // no templates specified\n if (typeof loadTemplates === 'undefined') {\n return;\n }\n\n // template loader function specified\n if (typeof loadTemplates === 'function') {\n\n return loadTemplates(function(err, templates) {\n\n if (err) {\n return self.templateErrors([ err ]);\n }\n\n self.setTemplates(templates);\n });\n }\n\n // templates array specified\n if (loadTemplates.length) {\n return this.setTemplates(loadTemplates);\n }\n\n};\n\nElementTemplatesLoader.prototype.setTemplates = function(templates) {\n\n var elementTemplates = this._elementTemplates;\n\n var validator = new Validator().addAll(templates);\n\n var errors = validator.getErrors(),\n validTemplates = validator.getValidTemplates();\n\n elementTemplates.set(validTemplates);\n\n if (errors.length) {\n this.templateErrors(errors);\n }\n\n this.templatesChanged();\n};\n\nElementTemplatesLoader.prototype.templatesChanged = function() {\n this._eventBus.fire('elementTemplates.changed');\n};\n\nElementTemplatesLoader.prototype.templateErrors = function(errors) {\n this._eventBus.fire('elementTemplates.errors', {\n errors: errors\n });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js": /*!************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js ***! \************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nvar TEMPLATE_ID_ATTR = 'camunda:modelerTemplate',\n TEMPLATE_VERSION_ATTR = 'camunda:modelerTemplateVersion';\n\n/**\n * The BPMN 2.0 extension attribute name under\n * which the element template ID is stored.\n *\n * @type {String}\n */\nmodule.exports.TEMPLATE_ID_ATTR = TEMPLATE_ID_ATTR;\n\n/**\n * The BPMN 2.0 extension attribute name under\n * which the element template version is stored.\n *\n * @type {String}\n */\nmodule.exports.TEMPLATE_VERSION_ATTR = TEMPLATE_VERSION_ATTR;\n\n\n/**\n * Get template id for a given diagram element.\n *\n * @param {djs.model.Base} element\n *\n * @return {String}\n */\nfunction getTemplateId(element) {\n\n var bo = getBusinessObject(element);\n\n if (bo) {\n return bo.get(TEMPLATE_ID_ATTR);\n }\n}\n\nmodule.exports.getTemplateId = getTemplateId;\n\n/**\n * Get template version for a given diagram element.\n *\n * @param {djs.model.Base} element\n *\n * @return {String}\n */\nfunction getTemplateVersion(element) {\n\n var bo = getBusinessObject(element);\n\n if (bo) {\n return bo.get(TEMPLATE_VERSION_ATTR);\n }\n}\n\nmodule.exports.getTemplateVersion = getTemplateVersion;\n\n\n/**\n * Find extension with given type in\n * BPMN element, diagram element or ExtensionElement.\n *\n * @param {ModdleElement|djs.model.Base} element\n * @param {String} type\n *\n * @return {ModdleElement} the extension\n */\nfunction findExtension(element, type) {\n var bo = getBusinessObject(element);\n\n var extensionElements;\n\n if (is(bo, 'bpmn:ExtensionElements')) {\n extensionElements = bo;\n } else {\n extensionElements = bo.extensionElements;\n }\n\n if (!extensionElements) {\n return null;\n }\n\n return find(extensionElements.get('values'), function(e) {\n return is(e, type);\n });\n}\n\nmodule.exports.findExtension = findExtension;\n\n\nfunction findExtensions(element, types) {\n var extensionElements = getExtensionElements(element);\n\n if (!extensionElements) {\n return [];\n }\n\n return extensionElements.get('values').filter(function(e) {\n return isAny(e, types);\n });\n}\n\nmodule.exports.findExtensions = findExtensions;\n\n\nfunction findCamundaInOut(element, binding) {\n\n var extensionElements = getExtensionElements(element);\n\n if (!extensionElements) {\n return;\n }\n\n var matcher;\n\n if (binding.type === 'camunda:in') {\n matcher = function(e) {\n return is(e, 'camunda:In') && isInOut(e, binding);\n };\n } else\n if (binding.type === 'camunda:out') {\n matcher = function(e) {\n return is(e, 'camunda:Out') && isInOut(e, binding);\n };\n } else\n if (binding.type === 'camunda:in:businessKey') {\n matcher = function(e) {\n return is(e, 'camunda:In') && 'businessKey' in e;\n };\n }\n\n return find(extensionElements.get('values'), matcher);\n}\n\nmodule.exports.findCamundaInOut = findCamundaInOut;\n\nfunction findCamundaProperty(camundaProperties, binding) {\n return find(camundaProperties.get('values'), function(p) {\n return p.name === binding.name;\n });\n}\n\nmodule.exports.findCamundaProperty = findCamundaProperty;\n\n\nfunction findInputParameter(inputOutput, binding) {\n var parameters = inputOutput.get('inputParameters');\n\n return find(parameters, function(p) {\n return p.name === binding.name;\n });\n}\n\nmodule.exports.findInputParameter = findInputParameter;\n\n\nfunction findOutputParameter(inputOutput, binding) {\n var parameters = inputOutput.get('outputParameters');\n\n return find(parameters, function(p) {\n var value = p.value;\n\n if (!binding.scriptFormat) {\n return value === binding.source;\n }\n\n var definition = p.definition;\n\n if (!definition || binding.scriptFormat !== definition.scriptFormat) {\n return false;\n }\n\n return definition.value === binding.source;\n });\n}\n\nmodule.exports.findOutputParameter = findOutputParameter;\n\n\nfunction findCamundaErrorEventDefinition(element, bindingErrorRef) {\n var errorEventDefinitions = findExtensions(element, [ 'camunda:ErrorEventDefinition' ]),\n error;\n\n // error id has to start with \n return find(errorEventDefinitions, function(definition) {\n error = definition.errorRef;\n\n if (error) {\n return error.id.indexOf('Error_' + bindingErrorRef) == 0;\n }\n });\n}\n\nmodule.exports.findCamundaErrorEventDefinition = findCamundaErrorEventDefinition;\n\n\n\n// helpers /////////////////////////////////\n\nfunction getExtensionElements(element) {\n var bo = getBusinessObject(element);\n\n if (is(bo, 'bpmn:ExtensionElements')) {\n return bo;\n } else {\n return bo.extensionElements;\n }\n}\n\n\nfunction isInOut(element, binding) {\n\n if (binding.type === 'camunda:in') {\n\n // find based on target attribute\n if (binding.target) {\n return element.target === binding.target;\n }\n }\n\n if (binding.type === 'camunda:out') {\n\n // find based on source / sourceExpression\n if (binding.source) {\n return element.source === binding.source;\n }\n\n if (binding.sourceExpression) {\n return element.sourceExpression === binding.sourceExpression;\n }\n }\n\n // find based variables / local combination\n if (binding.variables) {\n return element.variables === 'all' && (\n binding.variables !== 'local' || element.local\n );\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js": /*!*********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js ***! \*********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\n/**\n * This function catches the event\n * and only allows the copy of the modelerTemplate property\n * if the element's type or its parent's is in\n * the list of elements the template applies to.\n */\nfunction ReplaceBehavior(elementTemplates, eventBus) {\n eventBus.on('moddleCopy.canCopyProperty', function(context) {\n var parent = context.parent;\n var property = context.property;\n var propertyName = context.propertyName;\n\n if (propertyName !== 'modelerTemplate') {\n return;\n }\n\n var elementTemplate = elementTemplates.get(property);\n\n if (!elementTemplate) {\n return false;\n }\n\n var appliesTo = elementTemplate.appliesTo;\n\n var allowed = appliesTo.reduce(function(allowed, type) {\n return allowed || is(parent, type);\n }, false);\n\n if (!allowed) {\n return false;\n }\n });\n}\n\nReplaceBehavior.$inject = ['elementTemplates', 'eventBus'];\n\nmodule.exports = ReplaceBehavior;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar isArray = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").isArray,\n filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter;\n\nvar semver = __webpack_require__(/*! semver */ \"./node_modules/semver/semver.js\");\n\nvar validateAgainstSchema = __webpack_require__(/*! @bpmn-io/element-templates-validator */ \"./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js\").validate,\n getTemplateSchemaVersion = __webpack_require__(/*! @bpmn-io/element-templates-validator */ \"./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js\").getSchemaVersion;\n\nvar SUPPORTED_SCHEMA_VERSION = getTemplateSchemaVersion();\n\n\n/**\n * A element template validator.\n */\nfunction Validator() {\n\n this._templatesById = {};\n\n this._validTemplates = [];\n this._errors = [];\n\n /**\n * Adds the templates.\n *\n * @param {Array} templates\n *\n * @return {Validator} self\n */\n this.addAll = function(templates) {\n\n if (!isArray(templates)) {\n this._logError('templates must be []');\n } else {\n templates.forEach(this.add, this);\n }\n\n return this;\n };\n\n /**\n * Add the given element template, if it is valid.\n *\n * @param {TemplateDescriptor} template\n *\n * @return {Validator} self\n */\n this.add = function(template) {\n\n var err = this._validateTemplate(template);\n\n var id, version;\n\n if (!err) {\n id = template.id;\n version = template.version || '_';\n\n if (!this._templatesById[ id ]) {\n this._templatesById[ id ] = {};\n }\n\n this._templatesById[ id ][ version ] = template;\n\n this._validTemplates.push(template);\n }\n\n return this;\n };\n\n /**\n * Validate given template and return error (if any).\n *\n * @param {TemplateDescriptor} template\n *\n * @return {Error} validation error, if any\n */\n this._validateTemplate = function(template) {\n\n var err,\n id = template.id,\n version = template.version || '_',\n schemaVersion = template.$schema && getSchemaVersion(template.$schema),\n self = this;\n\n // (1) Compatibility\n if (schemaVersion &&\n (semver.compare(SUPPORTED_SCHEMA_VERSION, schemaVersion) < 0)) {\n return this._logError('unsupported element template schema version <' + schemaVersion +\n '>. Your installation only supports up to version <' + SUPPORTED_SCHEMA_VERSION +\n '>. Please update your installation', template);\n }\n\n // (2) Versioning\n if (this._templatesById[ id ] && this._templatesById[ id ][ version ]) {\n if (version === '_') {\n return this._logError('template id <' + id + '> already used', template);\n } else {\n return this._logError('template id <' + id + '> and version <' + version + '> already used', template);\n }\n }\n\n // (3) JSON Schema compliant\n var validationResult = validateAgainstSchema(template),\n valid = validationResult.valid,\n errors = validationResult.errors;\n\n if (!valid) {\n err = new Error('invalid template');\n\n filteredSchemaErrors(errors).forEach(function(error) {\n self._logError(error.message, template);\n });\n }\n\n return err;\n };\n\n /**\n * Log an error for the given template\n *\n * @param {(String|Error)} err\n * @param {TemplateDescriptor} template\n *\n * @return {Error} logged validation errors\n */\n this._logError = function(err, template) {\n\n if (typeof err === 'string') {\n\n if (template) {\n err = 'template(id: <' + template.id + '>, name: <' + template.name + '>): ' + err;\n }\n\n err = new Error(err);\n }\n\n this._errors.push(err);\n\n return err;\n };\n\n this.getErrors = function() {\n return this._errors;\n };\n\n this.getValidTemplates = function() {\n return this._validTemplates;\n };\n}\n\nmodule.exports = Validator;\n\n\n// helpers ///////////////////////////////////\n\n/**\n * Extract schema version from schema URI\n *\n * @param {String} schemaUri - for example https://unpkg.com/@camunda/element-templates-json-schema@99.99.99/resources/schema.json\n *\n * @return {String} for example '99.99.99'\n */\nfunction getSchemaVersion(schemaUri) {\n var re = /\\d+\\.\\d+\\.\\d+/g;\n\n var match = schemaUri.match(re);\n\n return match === null ? undefined : match[0];\n}\n\n/**\n * Extract only relevant errors of the validation result.\n *\n * The JSON Schema we use under the hood produces more errors than we need for a\n * detected schema violation (for example, unmatched sub-schemas, if-then-rules,\n * `oneOf`-definitions ...).\n *\n * We call these errors \"relevant\" that have a custom error message defined by us OR\n * are basic data type errors.\n *\n * @param {Array} schemaErrors\n *\n * @return {Array}\n */\nfunction filteredSchemaErrors(schemaErrors) {\n return filter(schemaErrors, function(err) {\n\n // (1) regular errors are customized from the schema\n if (err.keyword === 'errorMessage') {\n return true;\n }\n\n // (2) data type errors are relevant, except for\n // (scope) root level data type errors due to basic schema errors\n if (err.keyword === 'type' && err.dataPath && err.dataPath !== '/scopes') {\n return true;\n }\n\n return false;\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js": /*!**************************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js ***! \**************************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n findExtensions = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtensions,\n findCamundaErrorEventDefinition = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaErrorEventDefinition;\n\nvar handleLegacyScopes = __webpack_require__(/*! ../util/handleLegacyScopes */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js\");\n\nvar createCamundaExecutionListenerScript = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaExecutionListenerScript,\n createCamundaFieldInjection = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaFieldInjection,\n createCamundaIn = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaIn,\n createCamundaInWithBusinessKey = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaInWithBusinessKey,\n createCamundaOut = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaOut,\n createCamundaProperty = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaProperty,\n createInputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createInputParameter,\n createOutputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createOutputParameter,\n createCamundaErrorEventDefinition = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaErrorEventDefinition,\n createError = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createError;\n\nvar EventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\n\nvar getRoot = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").getRoot;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\"),\n keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\"),\n remove = __webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\");\n\nvar CAMUNDA_SERVICE_TASK_LIKE = [\n 'camunda:class',\n 'camunda:delegateExpression',\n 'camunda:expression'\n];\n\n/**\n * Applies an element template to an element. Sets `camunda:modelerTemplate` and\n * `camunda:modelerTemplateVersion`.\n */\nfunction ChangeElementTemplateHandler(bpmnFactory, commandStack, modeling) {\n this._bpmnFactory = bpmnFactory;\n this._commandStack = commandStack;\n this._modeling = modeling;\n}\n\nChangeElementTemplateHandler.$inject = [\n 'bpmnFactory',\n 'commandStack',\n 'modeling'\n];\n\nmodule.exports = ChangeElementTemplateHandler;\n\n/**\n * Change an element's template and update its properties as specified in `newTemplate`. Specify\n * `oldTemplate` to update from one template to another. If `newTemplate` isn't specified the\n * `camunda:modelerTemplate` and `camunda:modelerTemplateVersion` properties will be removed from\n * the element.\n *\n * @param {Object} context\n * @param {Object} context.element\n * @param {Object} [context.oldTemplate]\n * @param {Object} [context.newTemplate]\n */\nChangeElementTemplateHandler.prototype.preExecute = function(context) {\n var element = context.element,\n newTemplate = context.newTemplate,\n oldTemplate = context.oldTemplate;\n\n var self = this;\n\n // Update camunda:modelerTemplate attribute\n this._updateCamundaModelerTemplate(element, newTemplate);\n\n if (newTemplate) {\n\n // Update properties\n this._updateProperties(element, oldTemplate, newTemplate);\n\n // Update camunda:ExecutionListener properties\n this._updateCamundaExecutionListenerProperties(element, newTemplate);\n\n // Update camunda:Field properties\n this._updateCamundaFieldProperties(element, oldTemplate, newTemplate);\n\n // Update camunda:In and camunda:Out properties\n this._updateCamundaInOutProperties(element, oldTemplate, newTemplate);\n\n // Update camunda:InputParameter and camunda:OutputParameter properties\n this._updateCamundaInputOutputParameterProperties(element, oldTemplate, newTemplate);\n\n // Update camunda:Property properties\n this._updateCamundaPropertyProperties(element, oldTemplate, newTemplate);\n\n // Update camunda:ErrorEventDefinition properties\n this._updateCamundaErrorEventDefinitionProperties(element, oldTemplate, newTemplate);\n\n // Update properties for each scope\n forEach(handleLegacyScopes(newTemplate.scopes), function(newScopeTemplate) {\n self._updateScopeProperties(element, oldTemplate, newScopeTemplate, newTemplate);\n });\n\n }\n};\n\nChangeElementTemplateHandler.prototype._getOrCreateExtensionElements = function(element) {\n var bpmnFactory = this._bpmnFactory,\n modeling = this._modeling;\n\n var businessObject = getBusinessObject(element);\n\n var extensionElements = businessObject.get('extensionElements');\n\n if (!extensionElements) {\n extensionElements = bpmnFactory.create('bpmn:ExtensionElements', {\n values: []\n });\n\n extensionElements.$parent = businessObject;\n\n modeling.updateProperties(element, {\n extensionElements: extensionElements\n });\n }\n\n return extensionElements;\n};\n\n/**\n * Update `camunda:ErrorEventDefinition` properties of specified business object. Event\n * definitions can only exist in `bpmn:ExtensionElements`.\n *\n * Ensures an bpmn:Error exists for the event definition.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaErrorEventDefinitionProperties = function(element, oldTemplate, newTemplate) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'camunda:errorEventDefinition';\n });\n\n // (1) Do not override if no updates\n if (!newProperties.length) {\n return;\n }\n\n var businessObject = this._getOrCreateExtensionElements(element);\n\n var oldErrorEventDefinitions = findExtensions(element, [ 'camunda:ErrorEventDefinition' ]);\n\n newProperties.forEach(function(newProperty) {\n var oldProperty = findOldProperty(oldTemplate, newProperty),\n oldEventDefinition = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n newBinding = newProperty.binding;\n\n // (2) Update old event definitions\n if (oldProperty && oldEventDefinition) {\n\n if (!propertyChanged(oldEventDefinition, oldProperty)) {\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: oldEventDefinition,\n properties: {\n expression: newProperty.value\n }\n });\n }\n\n remove(oldErrorEventDefinitions, oldEventDefinition);\n }\n\n // (3) Create new event definition + error\n else {\n var rootElement = getRoot(getBusinessObject(element)),\n newError = createError(newBinding.errorRef, rootElement, bpmnFactory),\n newEventDefinition =\n createCamundaErrorEventDefinition(newBinding, newProperty.value, newError, businessObject, bpmnFactory);\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: rootElement,\n propertyName: 'rootElements',\n objectsToAdd: [ newError ],\n objectsToRemove: []\n });\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: [ newEventDefinition ],\n objectsToRemove: []\n });\n }\n\n });\n\n // (4) Remove old event definitions\n if (oldErrorEventDefinitions.length) {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: [],\n objectsToRemove: oldErrorEventDefinitions\n });\n }\n};\n\n/**\n * Update `camunda:ExecutionListener` properties of specified business object. Execution listeners\n * will always be overridden. Execution listeners can only exist in `bpmn:ExtensionElements`.\n *\n * @param {djs.model.Base} element\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaExecutionListenerProperties = function(element, newTemplate) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'camunda:executionListener';\n });\n\n // (1) Do not override old execution listeners if no new execution listeners specified\n if (!newProperties.length) {\n return;\n }\n\n var businessObject = this._getOrCreateExtensionElements(element);\n\n // (2) Remove old execution listeners\n var oldExecutionListeners = findExtensions(element, [ 'camunda:ExecutionListener' ]);\n\n // (3) Add new execution listeners\n var newExecutionListeners = newProperties.map(function(newProperty) {\n var newBinding = newProperty.binding,\n propertyValue = newProperty.value;\n\n return createCamundaExecutionListenerScript(newBinding, propertyValue, bpmnFactory);\n });\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: newExecutionListeners,\n objectsToRemove: oldExecutionListeners\n });\n};\n\n/**\n * Update `camunda:Field` properties of specified business object.\n * If business object is `camunda:ExecutionListener` or `camunda:TaskListener` `fields` property\n * will be updated. Otherwise `extensionElements.values` property will be updated.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n * @param {ModdleElement} businessObject\n */\nChangeElementTemplateHandler.prototype._updateCamundaFieldProperties = function(element, oldTemplate, newTemplate, businessObject) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'camunda:field';\n });\n\n // (1) Do not override old fields if no new fields specified\n if (!newProperties.length) {\n return;\n }\n\n if (!businessObject) {\n businessObject = this._getOrCreateExtensionElements(element);\n }\n\n var propertyName = isAny(businessObject, [ 'camunda:ExecutionListener', 'camunda:TaskListener' ])\n ? 'fields'\n : 'values';\n\n var oldFields = findExtensions(element, [ 'camunda:Field' ]);\n\n newProperties.forEach(function(newProperty) {\n var oldProperty = findOldProperty(oldTemplate, newProperty),\n oldField = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n newBinding = newProperty.binding;\n\n // (2) Update old fields\n if (oldProperty && oldField) {\n\n if (!propertyChanged(oldField, oldProperty)) {\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: oldField,\n properties: {\n string: newProperty.value\n }\n });\n }\n\n remove(oldFields, oldField);\n }\n\n // (3) Add new fields\n else {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: propertyName,\n objectsToAdd: [ createCamundaFieldInjection(newBinding, newProperty.value, bpmnFactory) ],\n objectsToRemove: []\n });\n }\n });\n\n // (4) Remove old fields\n if (oldFields.length) {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: propertyName,\n objectsToAdd: [],\n objectsToRemove: oldFields\n });\n }\n};\n\n/**\n * Update `camunda:In` and `camunda:Out` properties of specified business object. Only\n * `bpmn:CallActivity` and events with `bpmn:SignalEventDefinition` can have ins. Only\n * `camunda:CallActivity` can have outs.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaInOutProperties = function(element, oldTemplate, newTemplate) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'camunda:in'\n || newBindingType === 'camunda:in:businessKey'\n || newBindingType === 'camunda:out';\n });\n\n // (1) Do not override old fields if no new fields specified\n if (!newProperties.length) {\n return;\n }\n\n // Get extension elements of either signal event definition or call activity\n var businessObject = this._getOrCreateExtensionElements(\n EventDefinitionHelper.getSignalEventDefinition(element) || element);\n\n var oldInsAndOuts = findExtensions(businessObject, [ 'camunda:In', 'camunda:Out' ]);\n\n newProperties.forEach(function(newProperty) {\n var oldProperty = findOldProperty(oldTemplate, newProperty),\n oldBinding = oldProperty && oldProperty.binding,\n oldInOurOut = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n newPropertyValue = newProperty.value,\n newBinding = newProperty.binding,\n newBindingType = newBinding.type,\n newInOrOut,\n properties = {};\n\n // (2) Update old ins and outs\n if (oldProperty && oldInOurOut) {\n\n if (!propertyChanged(oldInOurOut, oldProperty)) {\n if (newBindingType === 'camunda:in') {\n if (newBinding.expression) {\n properties[ 'camunda:sourceExpression' ] = newPropertyValue;\n } else {\n properties[ 'camunda:source' ] = newPropertyValue;\n }\n } else if (newBindingType === 'camunda:in:businessKey') {\n properties[ 'camunda:businessKey' ] = newPropertyValue;\n } else if (newBindingType === 'camunda:out') {\n properties[ 'camunda:target' ] = newPropertyValue;\n }\n }\n\n // Update `camunda:local` property if it changed\n if ((oldBinding.local && !newBinding.local) || !oldBinding.local && newBinding.local) {\n properties.local = newBinding.local;\n }\n\n if (keys(properties)) {\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: oldInOurOut,\n properties: properties\n });\n }\n\n remove(oldInsAndOuts, oldInOurOut);\n }\n\n // (3) Add new ins and outs\n else {\n if (newBindingType === 'camunda:in') {\n newInOrOut = createCamundaIn(newBinding, newPropertyValue, bpmnFactory);\n } else if (newBindingType === 'camunda:out') {\n newInOrOut = createCamundaOut(newBinding, newPropertyValue, bpmnFactory);\n } else if (newBindingType === 'camunda:in:businessKey') {\n newInOrOut = createCamundaInWithBusinessKey(newBinding, newPropertyValue, bpmnFactory);\n }\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: [ newInOrOut ],\n objectsToRemove: []\n });\n }\n });\n\n // (4) Remove old ins and outs\n if (oldInsAndOuts.length) {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: [],\n objectsToRemove: oldInsAndOuts\n });\n }\n};\n\n/**\n * Update `camunda:InputParameter` and `camunda:OutputParameter` properties of specified business\n * object. Both can only exist in `camunda:InputOutput` which can exist in `bpmn:ExtensionElements`\n * or `camunda:Connector`.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaInputOutputParameterProperties = function(element, oldTemplate, newTemplate, businessObject) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'camunda:inputParameter' || newBindingType === 'camunda:outputParameter';\n });\n\n // (1) Do not override old inputs and outputs if no new inputs and outputs specified\n if (!newProperties.length) {\n return;\n }\n\n if (!businessObject) {\n businessObject = this._getOrCreateExtensionElements(element);\n }\n\n var inputOutput;\n\n if (is(businessObject, 'camunda:Connector')) {\n inputOutput = businessObject.get('camunda:inputOutput');\n\n if (!inputOutput) {\n inputOutput = bpmnFactory.create('camunda:InputOutput');\n\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: businessObject,\n properties: {\n inputOutput: inputOutput\n }\n });\n }\n } else {\n inputOutput = findExtension(businessObject, 'camunda:InputOutput');\n\n if (!inputOutput) {\n inputOutput = bpmnFactory.create('camunda:InputOutput');\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: [ inputOutput ],\n objectsToRemove: []\n });\n }\n }\n\n var oldInputs = inputOutput.get('camunda:inputParameters')\n ? inputOutput.get('camunda:inputParameters').slice()\n : [];\n\n var oldOutputs = inputOutput.get('camunda:outputParameters')\n ? inputOutput.get('camunda:outputParameters').slice()\n : [];\n\n var propertyName;\n\n newProperties.forEach(function(newProperty) {\n var oldProperty = findOldProperty(oldTemplate, newProperty),\n oldInputOrOutput = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n newPropertyValue = newProperty.value,\n newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n var newInputOrOutput,\n properties;\n\n // (2) Update old inputs and outputs\n if (oldProperty && oldInputOrOutput) {\n\n if (!propertyChanged(oldInputOrOutput, oldProperty)) {\n if (is(oldInputOrOutput, 'camunda:InputParameter')) {\n properties = {\n value: newPropertyValue\n };\n } else {\n properties = {\n name: newPropertyValue\n };\n }\n\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: oldInputOrOutput,\n properties: properties\n });\n }\n\n if (is(oldInputOrOutput, 'camunda:InputParameter')) {\n remove(oldInputs, oldInputOrOutput);\n } else {\n remove(oldOutputs, oldInputOrOutput);\n }\n }\n\n // (3) Add new inputs and outputs\n else {\n if (newBindingType === 'camunda:inputParameter') {\n propertyName = 'inputParameters';\n\n newInputOrOutput = createInputParameter(newBinding, newPropertyValue, bpmnFactory);\n } else {\n propertyName = 'outputParameters';\n\n newInputOrOutput = createOutputParameter(newBinding, newPropertyValue, bpmnFactory);\n }\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: inputOutput,\n propertyName: propertyName,\n objectsToAdd: [ newInputOrOutput ],\n objectsToRemove: []\n });\n }\n });\n\n // (4) Remove old inputs and outputs\n if (oldInputs.length) {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: inputOutput,\n propertyName: 'inputParameters',\n objectsToAdd: [],\n objectsToRemove: oldInputs\n });\n }\n\n if (oldOutputs.length) {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: inputOutput,\n propertyName: 'outputParameters',\n objectsToAdd: [],\n objectsToRemove: oldOutputs\n });\n }\n};\n\nChangeElementTemplateHandler.prototype._updateCamundaModelerTemplate = function(element, newTemplate) {\n var modeling = this._modeling;\n\n modeling.updateProperties(element, {\n 'camunda:modelerTemplate': newTemplate && newTemplate.id,\n 'camunda:modelerTemplateVersion': newTemplate && newTemplate.version\n });\n};\n\n/**\n * Update `camunda:Property` properties of specified business object. `camunda:Property` can only\n * exist in `camunda:Properties`.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n * @param {ModdleElement} businessObject\n */\nChangeElementTemplateHandler.prototype._updateCamundaPropertyProperties = function(element, oldTemplate, newTemplate, businessObject) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'camunda:property';\n });\n\n // (1) Do not override old properties if no new properties specified\n if (!newProperties.length) {\n return;\n }\n\n if (businessObject) {\n businessObject = this._getOrCreateExtensionElements(businessObject);\n } else {\n businessObject = this._getOrCreateExtensionElements(element);\n }\n\n var camundaProperties = findExtension(businessObject, 'camunda:Properties');\n\n if (!camundaProperties) {\n camundaProperties = bpmnFactory.create('camunda:Properties');\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: businessObject,\n propertyName: 'values',\n objectsToAdd: [ camundaProperties ],\n objectsToRemove: []\n });\n }\n\n var oldCamundaProperties = camundaProperties.get('camunda:values')\n ? camundaProperties.get('camunda:values').slice()\n : [];\n\n newProperties.forEach(function(newProperty) {\n var oldProperty = findOldProperty(oldTemplate, newProperty),\n oldCamundaProperty = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n newPropertyValue = newProperty.value,\n newBinding = newProperty.binding;\n\n // (2) Update old properties\n if (oldProperty && oldCamundaProperty) {\n\n if (!propertyChanged(oldCamundaProperty, oldProperty)) {\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: oldCamundaProperty,\n properties: {\n value: newPropertyValue\n }\n });\n }\n\n remove(oldCamundaProperties, oldCamundaProperty);\n }\n\n // (3) Add new properties\n else {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: camundaProperties,\n propertyName: 'values',\n objectsToAdd: [ createCamundaProperty(newBinding, newPropertyValue, bpmnFactory) ],\n objectsToRemove: []\n });\n }\n });\n\n // (4) Remove old properties\n if (oldCamundaProperties.length) {\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: camundaProperties,\n propertyName: 'values',\n objectsToAdd: [],\n objectsToRemove: oldCamundaProperties\n });\n }\n};\n\n/**\n * Update `bpmn:conditionExpression` property of specified element. Since condition expression is\n * is not primitive it needs special handling.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldProperty\n * @param {Object} newProperty\n */\nChangeElementTemplateHandler.prototype._updateConditionExpression = function(element, oldProperty, newProperty) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack,\n modeling = this._modeling;\n\n var newBinding = newProperty.binding,\n newPropertyValue = newProperty.value;\n\n if (!oldProperty) {\n modeling.updateProperties(element, {\n conditionExpression: bpmnFactory.create('bpmn:FormalExpression', {\n body: newPropertyValue,\n language: newBinding.scriptFormat\n })\n });\n\n return;\n }\n\n var oldBinding = oldProperty.binding,\n oldPropertyValue = oldProperty.value;\n\n var businessObject = getBusinessObject(element),\n conditionExpression = businessObject.get('bpmn:conditionExpression');\n\n var properties = {};\n\n if (conditionExpression.get('body') === oldPropertyValue) {\n properties.body = newPropertyValue;\n }\n\n if (conditionExpression.get('language') === oldBinding.scriptFormat) {\n properties.language = newBinding.scriptFormat;\n }\n\n if (!keys(properties).length) {\n return;\n }\n\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: conditionExpression,\n properties: properties\n });\n};\n\nChangeElementTemplateHandler.prototype._updateProperties = function(element, oldTemplate, newTemplate, businessObject) {\n var self = this;\n\n var commandStack = this._commandStack;\n\n var newProperties = newTemplate.properties.filter(function(newProperty) {\n var newBinding = newProperty.binding,\n newBindingType = newBinding.type;\n\n return newBindingType === 'property';\n });\n\n if (!newProperties.length) {\n return;\n }\n\n if (!businessObject) {\n businessObject = getBusinessObject(element);\n }\n\n newProperties.forEach(function(newProperty) {\n var oldProperty = findOldProperty(oldTemplate, newProperty),\n newBinding = newProperty.binding,\n newBindingName = newBinding.name,\n newPropertyValue = newProperty.value,\n changedElement,\n properties;\n\n if (newBindingName === 'conditionExpression') {\n self._updateConditionExpression(element, oldProperty, newProperty);\n } else {\n\n if (is(businessObject, 'bpmn:Error')) {\n changedElement = businessObject;\n } else {\n changedElement = element;\n }\n\n if (oldProperty && propertyChanged(changedElement, oldProperty)) {\n return;\n }\n\n properties = {};\n\n properties[ newBindingName ] = newPropertyValue;\n\n // Only one of `camunda:class`, `camunda:delegateExpression` and `camunda:expression` can be\n // set\n // TODO(philippfromme): ensuring only one of these properties is set at a time should be\n // implemented in a behavior and not in this handler and properties panel UI\n if (CAMUNDA_SERVICE_TASK_LIKE.indexOf(newBindingName) !== -1) {\n CAMUNDA_SERVICE_TASK_LIKE.forEach(function(camundaServiceTaskLikeProperty) {\n if (camundaServiceTaskLikeProperty !== newBindingName) {\n properties[ camundaServiceTaskLikeProperty ] = undefined;\n }\n });\n }\n\n commandStack.execute('properties-panel.update-businessobject', {\n element: element,\n businessObject: businessObject,\n properties: properties\n });\n }\n });\n};\n\n/**\n * Update properties for a specified scope.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newScopeTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateScopeProperties = function(element, oldTemplate, newScopeTemplate, newTemplate) {\n var bpmnFactory = this._bpmnFactory,\n commandStack = this._commandStack;\n\n var scopeName = newScopeTemplate.type;\n\n var scopeElement;\n\n scopeElement = findOldScopeElement(element, newScopeTemplate, newTemplate);\n\n if (!scopeElement) {\n\n scopeElement = bpmnFactory.create(scopeName);\n }\n\n var oldScopeTemplate = findOldScopeTemplate(newScopeTemplate, oldTemplate);\n\n // Update properties\n this._updateProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n // Update camunda:ExecutionListener properties\n this._updateCamundaExecutionListenerProperties(element, newScopeTemplate);\n\n // Update camunda:In and camunda:Out properties\n this._updateCamundaInOutProperties(element, oldScopeTemplate, newScopeTemplate);\n\n // Update camunda:InputParameter and camunda:OutputParameter properties\n this._updateCamundaInputOutputParameterProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n // Update camunda:Field properties\n this._updateCamundaFieldProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n // Update camunda:Property properties\n this._updateCamundaPropertyProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n // Assume: root elements were already been created in root by referenced event\n // definition binding\n if (isRootElementScope(scopeName)) {\n return;\n }\n\n var extensionElements = this._getOrCreateExtensionElements(element);\n\n commandStack.execute('properties-panel.update-businessobject-list', {\n element: element,\n currentObject: extensionElements,\n propertyName: 'values',\n objectsToAdd: [ scopeElement ],\n objectsToRemove: []\n });\n};\n\n// helpers //////////\n\n/**\n * Find old business object matching specified old property.\n *\n * @param {djs.model.Base|ModdleElement} element\n * @param {Object} oldProperty\n *\n * @returns {ModdleElement}\n */\nfunction findOldBusinessObject(element, oldProperty) {\n var businessObject = getBusinessObject(element),\n propertyName;\n\n var oldBinding = oldProperty.binding,\n oldBindingType = oldBinding.type;\n\n if (oldBindingType === 'camunda:field') {\n\n if (isAny(businessObject, [ 'camunda:ExecutionListener', 'camunda:TaskListener' ])) {\n propertyName = 'camunda:fields';\n } else {\n propertyName = 'bpmn:values';\n }\n\n if (!businessObject || !businessObject.get(propertyName) || !businessObject.get(propertyName).length) {\n return;\n }\n\n return find(businessObject.get(propertyName), function(oldBusinessObject) {\n return oldBusinessObject.get('camunda:name') === oldBinding.name;\n });\n }\n\n if (oldBindingType === 'camunda:in') {\n return find(businessObject.get('values'), function(oldBusinessObject) {\n return oldBusinessObject.get('target') === oldBinding.target;\n });\n }\n\n if (oldBindingType === 'camunda:in:businessKey') {\n return find(businessObject.get('values'), function(oldBusinessObject) {\n return isString(oldBusinessObject.get('businessKey'));\n });\n }\n\n if (oldBindingType === 'camunda:out') {\n return find(businessObject.get('values'), function(oldBusinessObject) {\n return oldBusinessObject.get('source') === oldBinding.source ||\n oldBusinessObject.get('sourceExpression') || oldBinding.sourceExpression;\n });\n }\n\n if (oldBindingType === 'camunda:inputParameter' || oldBindingType === 'camunda:outputParameter') {\n\n if (is(businessObject, 'camunda:Connector')) {\n businessObject = businessObject.get('camunda:inputOutput');\n\n if (!businessObject) {\n return;\n }\n } else {\n businessObject = findExtension(businessObject, 'camunda:InputOutput');\n\n if (!businessObject) {\n return;\n }\n }\n\n if (oldBindingType === 'camunda:inputParameter') {\n return find(businessObject.get('camunda:inputParameters'), function(oldBusinessObject) {\n return oldBusinessObject.get('camunda:name') === oldBinding.name;\n });\n } else {\n return find(businessObject.get('camunda:outputParameters'), function(oldBusinessObject) {\n var definition;\n\n if (oldBinding.scriptFormat) {\n definition = oldBusinessObject.get('camunda:definition');\n\n return definition && definition.get('camunda:value') === oldBinding.source;\n } else {\n return oldBusinessObject.get('camunda:value') === oldBinding.source;\n }\n });\n }\n\n }\n\n if (oldBindingType === 'camunda:property') {\n if (!businessObject || !businessObject.get('values') || !businessObject.get('values').length) {\n return;\n }\n\n businessObject = findExtension(businessObject, 'camunda:Properties');\n\n if (!businessObject) {\n return;\n }\n\n return find(businessObject.get('values'), function(oldBusinessObject) {\n return oldBusinessObject.get('camunda:name') === oldBinding.name;\n });\n }\n\n if (oldBindingType === 'camunda:errorEventDefinition') {\n return findCamundaErrorEventDefinition(element, oldBinding.errorRef);\n }\n}\n\n/**\n * Find old property matching specified new property.\n *\n * @param {Object} oldTemplate\n * @param {Object} newProperty\n *\n * @returns {Object}\n */\nfunction findOldProperty(oldTemplate, newProperty) {\n if (!oldTemplate) {\n return;\n }\n\n var oldProperties = oldTemplate.properties,\n newBinding = newProperty.binding,\n newBindingName = newBinding.name,\n newBindingType = newBinding.type;\n\n if (newBindingType === 'property') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingName = oldBinding.name,\n oldBindingType = oldBinding.type;\n\n return oldBindingType === 'property' && oldBindingName === newBindingName;\n });\n }\n\n if (newBindingType === 'camunda:field') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingName = oldBinding.name,\n oldBindingType = oldBinding.type;\n\n return oldBindingType === 'camunda:field' && oldBindingName === newBindingName;\n });\n }\n\n if (newBindingType === 'camunda:in') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingType = oldBinding.type;\n\n if (oldBindingType !== 'camunda:in') {\n return;\n }\n\n // Always override if change from source to source expression or vice versa\n if ((oldBinding.expression && !newBinding.expression) ||\n !oldBinding.expression && newBinding.expression) {\n return;\n }\n\n return oldBinding.target === newBinding.target;\n });\n }\n\n if (newBindingType === 'camunda:in:businessKey') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingType = oldBinding.type;\n\n return oldBindingType === 'camunda:in:businessKey';\n });\n }\n\n if (newBindingType === 'camunda:out') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingType = oldBinding.type;\n\n return oldBindingType === 'camunda:out' && (\n oldBinding.source === newBinding.source ||\n oldBinding.sourceExpression === newBinding.sourceExpression\n );\n });\n }\n\n if (newBindingType === 'camunda:inputParameter') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingName = oldBinding.name,\n oldBindingType = oldBinding.type;\n\n if (oldBindingType !== 'camunda:inputParameter') {\n return;\n }\n\n return oldBindingName === newBindingName\n && oldBinding.scriptFormat === newBinding.scriptFormat;\n });\n }\n\n if (newBindingType === 'camunda:outputParameter') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingType = oldBinding.type;\n\n if (oldBindingType !== 'camunda:outputParameter') {\n return;\n }\n\n return oldBinding.source === newBinding.source\n && oldBinding.scriptFormat === newBinding.scriptFormat;\n });\n }\n\n if (newBindingType === 'camunda:property') {\n return find(oldProperties, function(oldProperty) {\n var oldBinding = oldProperty.binding,\n oldBindingName = oldBinding.name,\n oldBindingType = oldBinding.type;\n\n return oldBindingType === 'camunda:property' && oldBindingName === newBindingName;\n });\n }\n\n if (newBindingType === 'camunda:errorEventDefinition') {\n return find(oldProperties, function(oldProperty) {\n var newBindingRef = newBinding.errorRef,\n oldBinding = oldProperty.binding,\n oldBindingRef = oldBinding.errorRef,\n oldBindingType = oldBinding.type;\n\n return oldBindingType === 'camunda:errorEventDefinition'\n && oldBindingRef === newBindingRef;\n });\n }\n}\n\nfunction findOldScopeElement(element, scopeTemplate, template) {\n var scopeName = scopeTemplate.type,\n id = scopeTemplate.id;\n\n if (scopeName === 'camunda:Connector') {\n return findExtension(element, 'camunda:Connector');\n }\n\n if (scopeName === 'bpmn:Error') {\n\n // (1) find by error event definition binding\n var errorEventDefinitionBinding = findErrorEventDefinitionBinding(template, id);\n\n if (!errorEventDefinitionBinding) {\n return;\n }\n\n // (2) find error event definition\n var errorEventDefinition = findOldBusinessObject(element, errorEventDefinitionBinding);\n\n if (!errorEventDefinition) {\n return;\n }\n\n // (3) retrieve referenced error\n return errorEventDefinition.errorRef;\n }\n}\n\nfunction isRootElementScope(scopeName) {\n return [ 'bpmn:Error' ].includes(scopeName);\n}\n\nfunction findOldScopeTemplate(scopeTemplate, oldTemplate) {\n var scopeName = scopeTemplate.type,\n scopeId = scopeTemplate.id,\n scopes = oldTemplate && handleLegacyScopes(oldTemplate.scopes);\n\n return scopes && find(scopes, function(scope) {\n\n if (isRootElementScope(scopeName)) {\n return scope.id === scopeId;\n }\n\n return scope.type === scopeName;\n });\n}\n\nfunction findErrorEventDefinitionBinding(template, templateErrorId) {\n return find(template.properties, function(property) {\n return property.binding.errorRef === templateErrorId;\n });\n}\n\n/**\n * Check whether property was changed after being set by template.\n *\n * @param {djs.model.Base|ModdleElement} element\n * @param {Object} oldProperty\n *\n * @returns {boolean}\n */\nfunction propertyChanged(element, oldProperty) {\n var businessObject = getBusinessObject(element);\n\n var oldBinding = oldProperty.binding,\n oldBindingName = oldBinding.name,\n oldBindingType = oldBinding.type,\n oldPropertyValue = oldProperty.value,\n conditionExpression,\n definition;\n\n if (oldBindingType === 'property') {\n if (oldBindingName === 'conditionExpression') {\n conditionExpression = businessObject.get('bpmn:conditionExpression');\n\n return conditionExpression.get('bpmn:body') !== oldPropertyValue;\n }\n\n return businessObject.get(oldBindingName) !== oldPropertyValue;\n }\n\n if (oldBindingType === 'camunda:field') {\n return businessObject.get('camunda:string') !== oldPropertyValue;\n }\n\n if (oldBindingType === 'camunda:in') {\n if (oldBinding.expression) {\n return businessObject.get('sourceExpression') !== oldPropertyValue;\n } else {\n return businessObject.get('camunda:source') !== oldPropertyValue;\n }\n }\n\n if (oldBindingType === 'camunda:in:businessKey') {\n return businessObject.get('camunda:businessKey') !== oldPropertyValue;\n }\n\n if (oldBindingType === 'camunda:out') {\n return businessObject.get('camunda:target') !== oldPropertyValue;\n }\n\n if (oldBindingType === 'camunda:inputParameter') {\n if (oldBinding.scriptFormat) {\n definition = businessObject.get('camunda:definition');\n\n return definition && definition.get('camunda:value') !== oldPropertyValue;\n } else {\n return businessObject.get('camunda:value') !== oldPropertyValue;\n }\n }\n\n if (oldBindingType === 'camunda:outputParameter') {\n return businessObject.get('camunda:name') !== oldPropertyValue;\n }\n\n if (oldBindingType === 'camunda:property') {\n return businessObject.get('camunda:value') !== oldPropertyValue;\n }\n\n if (oldBindingType === 'camunda:errorEventDefinition') {\n return businessObject.get('expression') !== oldPropertyValue;\n }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar ChangeElementTemplateHandler = __webpack_require__(/*! ./ChangeElementTemplateHandler */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js\");\n\nfunction registerHandlers(commandStack, elementTemplates, eventBus) {\n commandStack.registerHandler(\n 'propertiesPanel.camunda.changeTemplate',\n ChangeElementTemplateHandler\n );\n\n // apply default element templates on shape creation\n eventBus.on([ 'commandStack.shape.create.postExecuted' ], function(context) {\n applyDefaultTemplate(context.context.shape, elementTemplates, commandStack);\n });\n\n // apply default element templates on connection creation\n eventBus.on([ 'commandStack.connection.create.postExecuted' ], function(context) {\n applyDefaultTemplate(context.context.connection, elementTemplates, commandStack);\n });\n}\n\nregisterHandlers.$inject = [ 'commandStack', 'elementTemplates', 'eventBus' ];\n\n\nmodule.exports = {\n __init__: [ registerHandlers ]\n};\n\n\nfunction applyDefaultTemplate(element, elementTemplates, commandStack) {\n\n if (!elementTemplates.get(element) && elementTemplates.getDefault(element)) {\n\n var command = 'propertiesPanel.camunda.changeTemplate';\n var commandContext = {\n element: element,\n newTemplate: elementTemplates.getDefault(element)\n };\n\n commandStack.execute(command, commandContext);\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js": /*!***********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js ***! \***********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = {\n __depends__: [\n __webpack_require__(/*! ./cmd */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js\"),\n __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\").default\n ],\n __init__: [\n 'customElementsPropertiesActivator',\n 'elementTemplatesLoader',\n 'replaceBehavior'\n ],\n customElementsPropertiesActivator: [ 'type', __webpack_require__(/*! ./CustomElementsPropertiesActivator */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js\") ],\n elementTemplates: [ 'type', __webpack_require__(/*! ./ElementTemplates */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js\") ],\n elementTemplatesLoader: [ 'type', __webpack_require__(/*! ./ElementTemplatesLoader */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js\") ],\n replaceBehavior: [ 'type', __webpack_require__(/*! ./ReplaceBehavior */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js\") ],\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js": /*!************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js ***! \************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar getOption = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js\").getOption,\n getOptions = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js\").getOptions,\n getTemplateId = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId,\n ELEMENT_TEMPLATE_OPTION_EMPTY = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").ELEMENT_TEMPLATE_OPTION_EMPTY;\n\nvar isNull = __webpack_require__(/*! lodash/isNull */ \"./node_modules/lodash/isNull.js\"),\n isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"),\n pick = __webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\");\n\nmodule.exports = function(group, element, elementTemplates, translate) {\n if (!isUndefined(getTemplateId(element)) && !isNull(getTemplateId(element))) {\n return;\n }\n\n var options = getOptions(element, elementTemplates, translate);\n\n // Return if empty option is only option\n if (options.length === 1) {\n return;\n }\n\n var selectOptions = options.map(function(option) {\n return pick(option, [ 'name', 'value' ]);\n });\n\n // select element template (via dropdown)\n group.entries.push(entryFactory.selectBox(translate, {\n id: 'elementTemplate-chooser',\n label: translate('Element Template'),\n modelProperty: 'elementTemplateOption',\n selectOptions: selectOptions,\n get: function(element) {\n return {\n elementTemplateOption: ELEMENT_TEMPLATE_OPTION_EMPTY\n };\n },\n set: function(element, properties) {\n var optionId = properties['elementTemplateOption'];\n\n var option = getOption(optionId, options);\n\n var id = option.id,\n version = option.version;\n\n var newTemplate = elementTemplates.get(id, version);\n\n return applyTemplate(element, newTemplate, elementTemplates);\n }\n }));\n\n};\n\n\n// helpers //////////\n\nfunction applyTemplate(element, newTemplate, elementTemplates) {\n var oldTemplate = elementTemplates.get(element);\n\n if (oldTemplate === newTemplate) {\n return;\n }\n\n return {\n cmd: 'propertiesPanel.camunda.changeTemplate',\n context: {\n element: element,\n oldTemplate: oldTemplate,\n newTemplate: newTemplate\n }\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js": /*!***********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js ***! \***********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n findExtensions = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtensions,\n findInputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findInputParameter,\n findOutputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findOutputParameter,\n findCamundaProperty = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaProperty,\n findCamundaInOut = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaInOut,\n findCamundaErrorEventDefinition = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaErrorEventDefinition;\n\nvar createCamundaProperty = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaProperty,\n createInputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createInputParameter,\n createOutputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createOutputParameter,\n createCamundaIn = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaIn,\n createCamundaOut = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaOut,\n createCamundaInWithBusinessKey = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaInWithBusinessKey,\n createCamundaFieldInjection = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaFieldInjection,\n createCamundaErrorEventDefinition = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaErrorEventDefinition,\n createError = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createError;\n\nvar handleLegacyScopes = __webpack_require__(/*! ../util/handleLegacyScopes */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js\");\n\nvar getRoot = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").getRoot;\n\nvar PROPERTY_TYPE = 'property',\n CAMUNDA_PROPERTY_TYPE = 'camunda:property',\n CAMUNDA_INPUT_PARAMETER_TYPE = 'camunda:inputParameter',\n CAMUNDA_OUTPUT_PARAMETER_TYPE = 'camunda:outputParameter',\n CAMUNDA_IN_TYPE = 'camunda:in',\n CAMUNDA_OUT_TYPE = 'camunda:out',\n CAMUNDA_IN_BUSINESS_KEY_TYPE = 'camunda:in:businessKey',\n CAMUNDA_EXECUTION_LISTENER_TYPE = 'camunda:executionListener',\n CAMUNDA_FIELD = 'camunda:field',\n CAMUNDA_ERROR_EVENT_DEFINITION = 'camunda:errorEventDefinition';\n\nvar BASIC_MODDLE_TYPES = [\n 'Boolean',\n 'Integer',\n 'String'\n];\n\nvar EXTENSION_BINDING_TYPES = [\n CAMUNDA_PROPERTY_TYPE,\n CAMUNDA_INPUT_PARAMETER_TYPE,\n CAMUNDA_OUTPUT_PARAMETER_TYPE,\n CAMUNDA_IN_TYPE,\n CAMUNDA_OUT_TYPE,\n CAMUNDA_IN_BUSINESS_KEY_TYPE,\n CAMUNDA_FIELD,\n CAMUNDA_ERROR_EVENT_DEFINITION\n];\n\nvar IO_BINDING_TYPES = [\n CAMUNDA_INPUT_PARAMETER_TYPE,\n CAMUNDA_OUTPUT_PARAMETER_TYPE\n];\n\nvar IN_OUT_BINDING_TYPES = [\n CAMUNDA_IN_TYPE,\n CAMUNDA_OUT_TYPE,\n CAMUNDA_IN_BUSINESS_KEY_TYPE\n];\n\n/**\n * Injects custom properties into the given group.\n *\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(element, elementTemplates, bpmnFactory, translate) {\n\n var template = elementTemplates.get(element);\n\n if (!template) {\n return [];\n }\n\n var renderCustomField = function(id, p, idx) {\n var propertyType = p.type;\n\n var entryOptions = {\n id: id,\n description: p.description,\n label: p.label ? translate(p.label) : p.label,\n modelProperty: id,\n get: propertyGetter(id, p),\n set: propertySetter(id, p, bpmnFactory),\n validate: propertyValidator(id, p, translate)\n };\n\n var entry;\n\n if (!propertyType) {\n propertyType = getDefaultType(p);\n }\n\n if (propertyType === 'Boolean') {\n entry = entryFactory.checkbox(translate, entryOptions);\n }\n\n if (propertyType === 'String') {\n entry = entryFactory.textField(translate, entryOptions);\n }\n\n if (propertyType === 'Text') {\n entry = entryFactory.textBox(translate, entryOptions);\n }\n\n if (propertyType === 'Dropdown') {\n entryOptions.selectOptions = p.choices;\n\n entry = entryFactory.selectBox(translate, entryOptions);\n }\n\n return entry;\n };\n\n var groups = [];\n var id, entry;\n\n var customFieldsGroup = {\n id: 'customField',\n label: translate('Custom Fields'),\n entries: []\n };\n template.properties.forEach(function(p, idx) {\n\n id = 'custom-' + template.id + '-' + idx;\n\n entry = renderCustomField(id, p, idx);\n if (entry) {\n customFieldsGroup.entries.push(entry);\n }\n });\n if (customFieldsGroup.entries.length > 0) {\n groups.push(customFieldsGroup);\n }\n\n if (template.scopes) {\n\n handleLegacyScopes(template.scopes).forEach(function(scope) {\n\n var scopeType = scope.type;\n\n var idScopeName = scopeType.replace(/:/g, '_');\n\n var customScopeFieldsGroup = {\n id: 'customField-' + idScopeName,\n label: translate('Custom Fields for scope: ') + scopeType,\n entries: []\n };\n\n scope.properties.forEach(function(p, idx) {\n\n var propertyId = 'custom-' + template.id + '-' + idScopeName + '-' + idx;\n\n var scopedProperty = propertyWithScope(p, scope);\n\n entry = renderCustomField(propertyId, scopedProperty, idx);\n if (entry) {\n customScopeFieldsGroup.entries.push(entry);\n }\n });\n\n if (customScopeFieldsGroup.entries.length > 0) {\n groups.push(customScopeFieldsGroup);\n }\n });\n }\n\n return groups;\n};\n\n\n// getters, setters and validators ///////////////\n\n\n/**\n * Return a getter that retrieves the given property.\n *\n * @param {String} name\n * @param {PropertyDescriptor} property\n *\n * @return {Function}\n */\nfunction propertyGetter(name, property) {\n\n /* getter */\n return function get(element) {\n var value = getPropertyValue(element, property);\n\n return objectWithKey(name, value);\n };\n}\n\n/**\n * Return a setter that updates the given property.\n *\n * @param {String} name\n * @param {PropertyDescriptor} property\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {Function}\n */\nfunction propertySetter(name, property, bpmnFactory) {\n\n /* setter */\n return function set(element, values) {\n\n var value = values[name];\n\n return setPropertyValue(element, property, value, bpmnFactory);\n };\n}\n\n/**\n * Return a validator that ensures the property is ok.\n *\n * @param {String} name\n * @param {PropertyDescriptor} property\n * @param {Function} translate\n *\n * @return {Function}\n */\nfunction propertyValidator(name, property, translate) {\n\n /* validator */\n return function validate(element, values) {\n var value = values[name];\n\n var error = validateValue(value, property, translate);\n\n if (error) {\n return objectWithKey(name, error);\n }\n };\n}\n\n\n// get, set and validate helpers ///////////////////\n\n/**\n * Return the value of the specified property descriptor,\n * on the passed diagram element.\n *\n * @param {djs.model.Base} element\n * @param {PropertyDescriptor} property\n *\n * @return {Any}\n */\nfunction getPropertyValue(element, property) {\n\n var bo = getBusinessObject(element);\n\n var binding = property.binding,\n scope = property.scope;\n\n var bindingType = binding.type,\n bindingName = binding.name;\n\n var propertyValue = property.value || '';\n\n if (scope) {\n bo = findScopeElement(bo, scope);\n if (!bo) {\n return propertyValue;\n }\n }\n\n // property\n if (bindingType === 'property') {\n\n var value = bo.get(bindingName);\n\n if (bindingName === 'conditionExpression') {\n if (value) {\n return value.body;\n } else {\n\n // return defined default\n return propertyValue;\n }\n } else {\n\n // return value; default to defined default\n return typeof value !== 'undefined' ? value : propertyValue;\n }\n }\n\n var camundaProperties,\n camundaProperty;\n\n if (bindingType === CAMUNDA_PROPERTY_TYPE) {\n if (scope) {\n camundaProperties = bo.get('properties');\n } else {\n camundaProperties = findExtension(bo, 'camunda:Properties');\n }\n\n if (camundaProperties) {\n camundaProperty = findCamundaProperty(camundaProperties, binding);\n\n if (camundaProperty) {\n return camundaProperty.value;\n }\n }\n\n return propertyValue;\n }\n\n var inputOutput,\n ioParameter;\n\n if (IO_BINDING_TYPES.indexOf(bindingType) !== -1) {\n\n if (scope) {\n inputOutput = bo.get('inputOutput');\n } else {\n inputOutput = findExtension(bo, 'camunda:InputOutput');\n }\n\n if (!inputOutput) {\n\n // ioParameter cannot exist yet, return property value\n return propertyValue;\n }\n }\n\n // camunda input parameter\n if (bindingType === CAMUNDA_INPUT_PARAMETER_TYPE) {\n ioParameter = findInputParameter(inputOutput, binding);\n\n if (ioParameter) {\n if (binding.scriptFormat) {\n if (ioParameter.definition) {\n return ioParameter.definition.value;\n }\n } else {\n return ioParameter.value || '';\n }\n }\n\n return propertyValue;\n }\n\n // camunda output parameter\n if (binding.type === CAMUNDA_OUTPUT_PARAMETER_TYPE) {\n ioParameter = findOutputParameter(inputOutput, binding);\n\n if (ioParameter) {\n return ioParameter.name;\n }\n\n return propertyValue;\n }\n\n\n var ioElement;\n\n if (IN_OUT_BINDING_TYPES.indexOf(bindingType) != -1) {\n ioElement = findCamundaInOut(bo, binding);\n\n if (ioElement) {\n if (bindingType === CAMUNDA_IN_BUSINESS_KEY_TYPE) {\n return ioElement.businessKey;\n } else\n if (bindingType === CAMUNDA_OUT_TYPE) {\n return ioElement.target;\n } else\n if (bindingType === CAMUNDA_IN_TYPE) {\n return ioElement[binding.expression ? 'sourceExpression' : 'source'];\n }\n }\n\n return propertyValue;\n }\n\n if (bindingType === CAMUNDA_EXECUTION_LISTENER_TYPE) {\n var executionListener;\n if (scope) {\n executionListener = bo.get('executionListener');\n } else {\n executionListener = findExtension(bo, 'camunda:ExecutionListener');\n }\n\n return executionListener.script.value;\n }\n\n var fieldInjection;\n if (CAMUNDA_FIELD === bindingType) {\n var fieldInjections = findExtensions(bo, [ 'camunda:Field' ]);\n fieldInjections.forEach(function(item) {\n if (item.name === binding.name) {\n fieldInjection = item;\n }\n });\n if (fieldInjection) {\n return fieldInjection.string || fieldInjection.expression;\n } else {\n return '';\n }\n }\n\n var errorEventDefinition;\n if (CAMUNDA_ERROR_EVENT_DEFINITION === bindingType) {\n errorEventDefinition = findCamundaErrorEventDefinition(bo, binding.errorRef);\n\n if (errorEventDefinition) {\n return errorEventDefinition.expression;\n } else {\n return '';\n }\n }\n\n throw unknownPropertyBinding(property);\n}\n\nmodule.exports.getPropertyValue = getPropertyValue;\n\n\n/**\n * Return an update operation that changes the diagram\n * element's custom property to the given value.\n *\n * The response of this method will be processed via\n * {@link PropertiesPanel#applyChanges}.\n *\n * @param {djs.model.Base} element\n * @param {PropertyDescriptor} property\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {Object|Array} results to be processed\n */\nfunction setPropertyValue(element, property, value, bpmnFactory) {\n var bo = getBusinessObject(element);\n\n var binding = property.binding,\n scope = property.scope;\n\n var bindingType = binding.type,\n bindingName = binding.name;\n\n var rootElement = getRoot(bo);\n\n var propertyValue;\n\n var updates = [];\n\n var extensionElements;\n\n if (EXTENSION_BINDING_TYPES.indexOf(bindingType) !== -1) {\n extensionElements = bo.get('extensionElements');\n\n // create extension elements, if they do not exist (yet)\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', null, element, bpmnFactory);\n\n updates.push(cmdHelper.updateBusinessObject(\n element, bo, objectWithKey('extensionElements', extensionElements)\n ));\n }\n }\n\n if (scope) {\n bo = findScopeElement(bo, scope);\n if (!bo) {\n\n // bpmn:Error\n if (scope.name === 'bpmn:Error') {\n bo = createError(scope.id, rootElement, bpmnFactory);\n\n updates.push(cmdHelper.addElementsTolist(\n bo, rootElement, 'rootElements', [ bo ]\n ));\n } else {\n bo = elementHelper.createElement(scope.name, null, element, bpmnFactory);\n\n updates.push(cmdHelper.addElementsTolist(\n bo, extensionElements, 'values', [ bo ]\n ));\n }\n }\n }\n\n // property\n if (bindingType === 'property') {\n\n if (bindingName === 'conditionExpression') {\n\n propertyValue = elementHelper.createElement('bpmn:FormalExpression', {\n body: value,\n language: binding.scriptFormat\n }, bo, bpmnFactory);\n } else {\n\n var moddlePropertyDescriptor = bo.$descriptor.propertiesByName[bindingName];\n\n var moddleType = moddlePropertyDescriptor.type;\n\n // make sure we only update String, Integer, Real and\n // Boolean properties (do not accidentally override complex objects...)\n if (BASIC_MODDLE_TYPES.indexOf(moddleType) === -1) {\n throw new Error('cannot set moddle type <' + moddleType + '>');\n }\n\n if (moddleType === 'Boolean') {\n propertyValue = !!value;\n } else\n if (moddleType === 'Integer') {\n propertyValue = parseInt(value, 10);\n\n if (isNaN(propertyValue)) {\n\n // do not write NaN value\n propertyValue = undefined;\n }\n } else {\n propertyValue = value;\n }\n }\n\n if (propertyValue !== undefined) {\n updates.push(cmdHelper.updateBusinessObject(\n element, bo, objectWithKey(bindingName, propertyValue)\n ));\n }\n }\n\n // camunda:property\n var camundaProperties,\n existingCamundaProperty,\n newCamundaProperty;\n\n if (bindingType === CAMUNDA_PROPERTY_TYPE) {\n\n if (scope) {\n camundaProperties = bo.get('properties');\n } else {\n camundaProperties = findExtension(extensionElements, 'camunda:Properties');\n }\n\n if (!camundaProperties) {\n camundaProperties = elementHelper.createElement('camunda:Properties', null, bo, bpmnFactory);\n\n if (scope) {\n updates.push(cmdHelper.updateBusinessObject(\n element, bo, { properties: camundaProperties }\n ));\n }\n else {\n updates.push(cmdHelper.addElementsTolist(\n element, extensionElements, 'values', [ camundaProperties ]\n ));\n }\n }\n\n existingCamundaProperty = findCamundaProperty(camundaProperties, binding);\n\n newCamundaProperty = createCamundaProperty(binding, value, bpmnFactory);\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n camundaProperties,\n 'values',\n null,\n [ newCamundaProperty ],\n existingCamundaProperty ? [ existingCamundaProperty ] : []\n ));\n }\n\n // camunda:inputParameter\n // camunda:outputParameter\n var inputOutput,\n existingIoParameter,\n newIoParameter;\n\n if (IO_BINDING_TYPES.indexOf(bindingType) !== -1) {\n\n if (scope) {\n inputOutput = bo.get('inputOutput');\n } else {\n inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n }\n\n // create inputOutput element, if it do not exist (yet)\n if (!inputOutput) {\n inputOutput = elementHelper.createElement('camunda:InputOutput', null, bo, bpmnFactory);\n\n if (scope) {\n updates.push(cmdHelper.updateBusinessObject(\n element, bo, { inputOutput: inputOutput }\n ));\n }\n else {\n updates.push(cmdHelper.addElementsTolist(\n element, extensionElements, 'values', inputOutput\n ));\n }\n }\n }\n\n if (bindingType === CAMUNDA_INPUT_PARAMETER_TYPE) {\n\n existingIoParameter = findInputParameter(inputOutput, binding);\n\n newIoParameter = createInputParameter(binding, value, bpmnFactory);\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n inputOutput,\n 'inputParameters',\n null,\n [ newIoParameter ],\n existingIoParameter ? [ existingIoParameter ] : []\n ));\n }\n\n if (bindingType === CAMUNDA_OUTPUT_PARAMETER_TYPE) {\n\n existingIoParameter = findOutputParameter(inputOutput, binding);\n\n newIoParameter = createOutputParameter(binding, value, bpmnFactory);\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n inputOutput,\n 'outputParameters',\n null,\n [ newIoParameter ],\n existingIoParameter ? [ existingIoParameter ] : []\n ));\n }\n\n\n // camunda:in\n // camunda:out\n // camunda:in:businessKey\n var existingInOut,\n newInOut;\n\n if (IN_OUT_BINDING_TYPES.indexOf(bindingType) !== -1) {\n\n existingInOut = findCamundaInOut(bo, binding);\n\n if (bindingType === CAMUNDA_IN_TYPE) {\n newInOut = createCamundaIn(binding, value, bpmnFactory);\n } else\n if (bindingType === CAMUNDA_OUT_TYPE) {\n newInOut = createCamundaOut(binding, value, bpmnFactory);\n } else {\n newInOut = createCamundaInWithBusinessKey(binding, value, bpmnFactory);\n }\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n null,\n [ newInOut ],\n existingInOut ? [ existingInOut ] : []\n ));\n }\n\n if (bindingType === CAMUNDA_FIELD) {\n var existingFieldInjections = findExtensions(bo, [ 'camunda:Field' ]);\n var newFieldInjections = [];\n\n if (existingFieldInjections.length > 0) {\n existingFieldInjections.forEach(function(item) {\n if (item.name === binding.name) {\n newFieldInjections.push(createCamundaFieldInjection(binding, value, bpmnFactory));\n } else {\n newFieldInjections.push(item);\n }\n });\n } else {\n newFieldInjections.push(createCamundaFieldInjection(binding, value, bpmnFactory));\n }\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n null,\n newFieldInjections,\n existingFieldInjections ? existingFieldInjections : []\n ));\n }\n\n // camunda:errorEventDefinition\n if (bindingType === CAMUNDA_ERROR_EVENT_DEFINITION) {\n var existingErrorEventDefinition = findCamundaErrorEventDefinition(bo, binding.errorRef);\n\n if (existingErrorEventDefinition) {\n updates.push(cmdHelper.updateBusinessObject(\n element, existingErrorEventDefinition, { expression: value }\n ));\n } else {\n\n var newError = createError(binding.errorRef, rootElement, bpmnFactory),\n newEventDefinition =\n createCamundaErrorEventDefinition(binding, value, newError, extensionElements, bpmnFactory);\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n rootElement,\n 'rootElements',\n null,\n [ newError ],\n []\n ));\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n null,\n [ newEventDefinition ],\n []\n ));\n }\n\n }\n\n if (updates.length) {\n return updates;\n }\n\n // quick warning for better debugging\n console.warn('no update', element, property, value);\n}\n\nmodule.exports.setPropertyValue = setPropertyValue;\n\n/**\n * Validate value of a given property.\n *\n * @param {String} value\n * @param {PropertyDescriptor} property\n * @param {Function} translate\n *\n * @return {Object} with validation errors\n */\nfunction validateValue(value, property, translate) {\n\n var constraints = property.constraints || {};\n\n if (constraints.notEmpty && isEmpty(value)) {\n return translate('Must not be empty');\n }\n\n if (constraints.maxLength && value.length > constraints.maxLength) {\n return translate('Must have max length {length}', { length: constraints.maxLength });\n }\n\n if (constraints.minLength && value.length < constraints.minLength) {\n return translate('Must have min length {length}', { length: constraints.minLength });\n }\n\n var pattern = constraints.pattern,\n message;\n\n if (pattern) {\n\n if (typeof pattern !== 'string') {\n message = pattern.message;\n pattern = pattern.value;\n }\n\n if (!matchesPattern(value, pattern)) {\n return message || translate('Must match pattern {pattern}', { pattern: pattern });\n }\n }\n}\n\n\n// misc helpers ///////////////////////////////\n\nfunction propertyWithScope(property, scope) {\n var scopeName = scope.type,\n scopeId = scope.id;\n\n if (!scopeName) {\n return property;\n }\n\n return assign({}, property, {\n scope: {\n name: scopeName,\n id: scopeId\n }\n });\n}\n\n/**\n * Return an object with a single key -> value association.\n *\n * @param {String} key\n * @param {Any} value\n *\n * @return {Object}\n */\nfunction objectWithKey(key, value) {\n var obj = {};\n\n obj[key] = value;\n\n return obj;\n}\n\n/**\n * Does the given string match the specified pattern?\n *\n * @param {String} str\n * @param {String} pattern\n *\n * @return {Boolean}\n */\nfunction matchesPattern(str, pattern) {\n var regexp = new RegExp(pattern);\n\n return regexp.test(str);\n}\n\nfunction isEmpty(str) {\n return !str || /^\\s*$/.test(str);\n}\n\n/**\n * Create a new {@link Error} indicating an unknown\n * property binding.\n *\n * @param {PropertyDescriptor} property\n *\n * @return {Error}\n */\nfunction unknownPropertyBinding(property) {\n var binding = property.binding;\n\n return new Error('unknown binding: <' + binding.type + '>');\n}\n\nfunction getDefaultType(property) {\n var binding = property.binding,\n bindingType = binding.type;\n\n if (bindingType === PROPERTY_TYPE ||\n bindingType === CAMUNDA_PROPERTY_TYPE ||\n bindingType === CAMUNDA_IN_TYPE ||\n bindingType === CAMUNDA_IN_BUSINESS_KEY_TYPE ||\n bindingType === CAMUNDA_OUT_TYPE ||\n bindingType === CAMUNDA_FIELD) {\n return 'String';\n }\n\n if (bindingType === CAMUNDA_EXECUTION_LISTENER_TYPE) {\n return 'Hidden';\n }\n}\n\nfunction findScopeElement(businessObject, scope) {\n\n var scopeName = scope.name,\n scopeId = scope.id;\n\n if (scopeName === 'bpmn:Error') {\n\n // retrieve error over referenced error event definition\n var errorEventDefinition = findCamundaErrorEventDefinition(businessObject, scopeId);\n\n if (errorEventDefinition) {\n return errorEventDefinition.errorRef;\n }\n }\n\n return findExtension(businessObject, scopeName);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js": /*!****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js ***! \****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\r\n\r\nvar getTemplateId = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId;\r\n\r\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\r\n domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event,\r\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\r\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\r\n\r\nvar isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\r\n\r\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\r\n\r\nvar getVersionOrDateFromTemplate = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js\").getVersionOrDateFromTemplate;\r\n\r\nvar MAX_DESCRIPTION_LENGTH = 200;\r\n\r\nmodule.exports = function(\r\n element,\r\n commandStack,\r\n elementTemplates,\r\n modeling,\r\n replace,\r\n selection,\r\n translate) {\r\n var currentElementTemplate = elementTemplates.get(element);\r\n\r\n var entries = [];\r\n\r\n var description,\r\n newestElementTemplate;\r\n\r\n if (currentElementTemplate) {\r\n newestElementTemplate = findNewestElementTemplate(elementTemplates, currentElementTemplate);\r\n\r\n if (newestElementTemplate) {\r\n entries.push({\r\n id: 'element-template-update',\r\n cssClasses: [ 'bpp-entry--warning' ],\r\n html: createUpdateTemplateEntry(element, currentElementTemplate, newestElementTemplate, commandStack, translate)\r\n });\r\n }\r\n\r\n description = currentElementTemplate.description;\r\n\r\n if (description) {\r\n entries.push(createDescriptionEntry(description, translate));\r\n }\r\n } else {\r\n entries.push({\r\n id: 'element-template-not-found',\r\n cssClasses: [ 'bpp-entry--warning' ],\r\n html: createTemplateNotFoundEntry(element, modeling, translate)\r\n });\r\n }\r\n\r\n if (currentElementTemplate && currentElementTemplate.version) {\r\n entries.push({\r\n id: 'element-template-version',\r\n html: '

    ' + getVersionOrDateFromTemplate(currentElementTemplate) + '

    '\r\n });\r\n }\r\n\r\n return {\r\n id: 'elementTemplateDescription',\r\n label: currentElementTemplate ? currentElementTemplate.name : translate('Missing Template'),\r\n dropdown: {\r\n menu: [\r\n {\r\n id: 'element-template-unlink',\r\n label: translate('Unlink'),\r\n onClick: function() {\r\n modeling.updateProperties(element, {\r\n 'camunda:modelerTemplate': null,\r\n 'camunda:modelerTemplateVersion': null\r\n });\r\n }\r\n },\r\n {\r\n id: 'element-template-remove',\r\n label: translate('Remove'),\r\n onClick: function() {\r\n var businessObject = getBusinessObject(element);\r\n\r\n var type = businessObject.$type,\r\n eventDefinitionType = getEventDefinitionType(businessObject);\r\n\r\n var newElement = replace.replaceElement(element, {\r\n type: type,\r\n eventDefinitionType: eventDefinitionType\r\n });\r\n\r\n selection.select(newElement);\r\n }\r\n }\r\n ]\r\n },\r\n entries: entries\r\n };\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction createDescriptionEntry(description, translate) {\r\n description = escapeHTML(description);\r\n\r\n var html = domify('

    ');\r\n\r\n var descriptionText = domify('' + description + '');\r\n\r\n html.appendChild(descriptionText);\r\n\r\n function toggleExpanded(expanded) {\r\n if (expanded) {\r\n domClasses(html).add('description--expanded');\r\n\r\n descriptionText.textContent = description + ' ';\r\n\r\n expand.textContent = translate('Less');\r\n } else {\r\n domClasses(html).remove('description--expanded');\r\n\r\n descriptionText.textContent = descriptionShortened + ' ... ';\r\n\r\n expand.textContent = translate('More');\r\n }\r\n }\r\n\r\n var descriptionShortened,\r\n expand,\r\n expanded = false;\r\n\r\n if (description.length > MAX_DESCRIPTION_LENGTH) {\r\n descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\r\n\r\n expand = domify(\r\n '' +\r\n translate('More') +\r\n ''\r\n );\r\n\r\n domEvent.bind(expand, 'click', function() {\r\n expanded = !expanded;\r\n\r\n toggleExpanded(expanded);\r\n });\r\n\r\n html.appendChild(expand);\r\n\r\n toggleExpanded(expanded);\r\n }\r\n\r\n return {\r\n id: 'element-template-description',\r\n html: html\r\n };\r\n}\r\n\r\nfunction getEventDefinitionType(businessObject) {\r\n if (!businessObject.eventDefinitions) {\r\n return null;\r\n }\r\n\r\n var eventDefinition = businessObject.eventDefinitions[ 0 ];\r\n\r\n if (!eventDefinition) {\r\n return null;\r\n }\r\n\r\n return eventDefinition.$type;\r\n}\r\n\r\nfunction createTemplateNotFoundEntry(element, modeling, translate) {\r\n var templateId = getTemplateId(element);\r\n\r\n var html = domify(\r\n '

    ' +\r\n translate(\r\n 'The applied Template <{templateId}> was not found and therefore its data is not accessible.' +\r\n '
    ' +\r\n '
    ' +\r\n 'Unlink in order to access the data.', { templateId: templateId }\r\n ) +\r\n '

    ' +\r\n '

    ' +\r\n 'Unlink' +\r\n '

    '\r\n );\r\n\r\n domQuery('.bpp-entry-link', html).addEventListener('click', function() {\r\n modeling.updateProperties(element, {\r\n 'camunda:modelerTemplate': null\r\n });\r\n });\r\n\r\n return html;\r\n}\r\n\r\nfunction createUpdateTemplateEntry(element, oldElementTemplate, newElementTemplate, commandStack, translate) {\r\n var newElementTemplateVersion = getVersionOrDateFromTemplate(newElementTemplate);\r\n\r\n var html = domify(\r\n '

    ' +\r\n translate(\r\n 'A new version of the Template ({newElementTemplateVersion}) is available.',\r\n { newElementTemplateVersion: newElementTemplateVersion }\r\n ) +\r\n '

    ' +\r\n '

    ' +\r\n 'Update' +\r\n '

    '\r\n );\r\n\r\n domQuery('.bpp-entry-link', html).addEventListener('click', function() {\r\n commandStack.execute('propertiesPanel.camunda.changeTemplate', {\r\n element: element,\r\n newTemplate: newElementTemplate,\r\n oldTemplate: oldElementTemplate\r\n });\r\n });\r\n\r\n return html;\r\n}\r\n\r\nfunction findNewestElementTemplate(elementTemplates, currentElementTemplate) {\r\n if (isUndefined(currentElementTemplate.version)) {\r\n return null;\r\n }\r\n\r\n return elementTemplates\r\n .getAll()\r\n .filter(function(elementTemplate) {\r\n return currentElementTemplate.id === elementTemplate.id && !isUndefined(elementTemplate.version);\r\n })\r\n .reduce(function(newestElementTemplate, elementTemplate) {\r\n if (currentElementTemplate.version < elementTemplate.version) {\r\n return elementTemplate;\r\n }\r\n\r\n if (newestElementTemplate && newestElementTemplate.version < elementTemplate.version) {\r\n return elementTemplate;\r\n }\r\n\r\n return newestElementTemplate;\r\n }, null);\r\n}\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js": /*!***********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js ***! \***********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n findIndex = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").findIndex;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar findExtensions = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtensions,\n findCamundaErrorEventDefinition = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaErrorEventDefinition;\n\nvar ErrorEntries = __webpack_require__(/*! ../../parts/implementation/ErrorsEntries */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar CAMUNDA_ERROR_EVENT_DEFINITION_TYPE = 'camunda:errorEventDefinition';\n\nvar EMPTY_ERROR = {\n get: function() {},\n set: function() {},\n errorRef: {}\n};\n\n/**\n * Injects element template errors into the given group.\n *\n * @param {Object} group\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(group, element, elementTemplates, bpmnFactory, translate) {\n var template = elementTemplates.get(element);\n\n if (!template) {\n return [];\n }\n\n var errorEntries = [];\n\n function onToggle(value, entryNode) {\n if (!value) {\n return;\n }\n\n var currentEntryId = entryNode.dataset.entry;\n\n // collapse all other items\n errorEntries.forEach(function(entries) {\n var collapsible = entries[0];\n\n if (collapsible.id === currentEntryId) {\n return;\n }\n\n var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n collapsible.setOpen(false, entryNode);\n });\n }\n\n\n function renderError(id, templateProperty) {\n var binding = templateProperty.binding,\n bindingErrorRef = binding.errorRef,\n errorEntries = [],\n collapsibleEntry;\n\n // find error event definition first\n var bo = getBusinessObject(element),\n errorEventDefinitions = findExtensions(bo, [ 'camunda:ErrorEventDefinition' ]);\n\n if (!errorEventDefinitions) {\n return errorEntries;\n }\n\n var getError = function() {\n var definition = findCamundaErrorEventDefinition(element, bindingErrorRef);\n\n if (!definition) {\n return EMPTY_ERROR;\n }\n\n return definition;\n };\n\n var error = getError();\n\n var isOpen = function() {\n return collapsibleEntry.isOpen();\n };\n\n var options = {\n idPrefix: id + '-',\n onToggle: onToggle,\n getError: getError,\n isOpen: function() {\n return isOpen();\n }\n };\n\n // (1) use errors implementation\n var errorImplementation = ErrorEntries(error, bpmnFactory, element, options, translate);\n errorEntries = errorImplementation.entries;\n\n var errorReferenceIdx = findEntry(errorEntries, id + '-error-reference');\n\n collapsibleEntry = errorEntries[findEntry(errorEntries, id + '-collapsible')];\n\n // (2) replace validated expression entry by a simple, disabled entry\n var expressionIdx = findEntry(errorEntries, id + '-error-expression');\n removeEntry(errorEntries, expressionIdx);\n\n var expressionEntry = entryFactory.textField(translate, {\n id: id + '-error-expression',\n label: translate('Throw Expression'),\n modelProperty: 'expression',\n\n get: function() {\n return { expression: getError().expression };\n },\n\n buttonShow: {\n method: function() {\n return false;\n }\n },\n\n hidden: function() {\n return !isOpen();\n },\n disabled: function() {\n return true;\n }\n });\n\n errorEntries.splice(expressionIdx, 0, expressionEntry);\n\n // (3) remove error selection\n removeEntry(errorEntries, errorReferenceIdx);\n\n return errorEntries;\n }\n\n // filter specific errors from template\n var errors = filter(template.properties, function(p) {\n return !p.type && p.binding.type === CAMUNDA_ERROR_EVENT_DEFINITION_TYPE;\n });\n\n forEach(errors, function(property, idx) {\n var id = 'template-errors-' + template.id + '-' + idx;\n errorEntries.push(renderError(id, property));\n });\n\n group.entries = group.entries.concat(flatten(errorEntries));\n};\n\n\n// helper //////////////////////////\n\nfunction findEntry(entries, id) {\n return findIndex(entries, function(entry) {\n return entry.id === id;\n });\n}\n\nfunction removeEntry(entries, idx) {\n entries.splice(idx, 1);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js": /*!******************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js ***! \******************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\r\n\r\nvar find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\r\n isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\r\n\r\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\r\n\r\nvar ELEMENT_TEMPLATE_OPTION_EMPTY = 'element-template-option-empty';\r\n\r\nmodule.exports.ELEMENT_TEMPLATE_OPTION_EMPTY = ELEMENT_TEMPLATE_OPTION_EMPTY;\r\n\r\nvar emptyOption = {\r\n name: '',\r\n value: ELEMENT_TEMPLATE_OPTION_EMPTY\r\n};\r\n\r\n/**\r\n * Get options for given element and templates.\r\n *\r\n * @param {dj.model.Base} element\r\n * @param {ElementTemplates} elementTemplates\r\n * @param {Translate} translate\r\n */\r\nfunction getOptions(element, elementTemplates, translate) {\r\n var options = [ emptyOption ];\r\n\r\n var defaultTemplate = elementTemplates.getDefault(element);\r\n\r\n if (defaultTemplate) {\r\n options.push(option('element-template-option-0', defaultTemplate, translate));\r\n\r\n return options;\r\n }\r\n\r\n var index = 0;\r\n\r\n elementTemplates.getAll().forEach(function(template) {\r\n if (!isAny(element, template.appliesTo)) {\r\n return;\r\n }\r\n\r\n options.push(option('element-template-option-' + index, template, translate));\r\n\r\n index++;\r\n });\r\n\r\n return options;\r\n}\r\n\r\nmodule.exports.getOptions = getOptions;\r\n\r\nfunction getOption(optionId, options) {\r\n return find(options, function(option) {\r\n return optionId === option.value;\r\n });\r\n}\r\n\r\nmodule.exports.getOption = getOption;\r\n\r\nfunction option(value, template, translate) {\r\n var name = translate(template.name);\r\n\r\n if (template.version) {\r\n name += ' (v' + template.version + ')';\r\n }\r\n\r\n var option = {\r\n id: template.id,\r\n name: name,\r\n value: value\r\n };\r\n\r\n if (template.version) {\r\n option.version = template.version;\r\n }\r\n\r\n return option;\r\n}\r\n\r\nmodule.exports.getVersionOrDateFromTemplate = function(template) {\r\n var metadata = template.metadata,\r\n version = template.version;\r\n\r\n if (metadata) {\r\n if (!isUndefined(metadata.created)) {\r\n return 'Version ' + toDateString(metadata.created);\r\n } else if (!isUndefined(metadata.updated)) {\r\n return 'Version ' + toDateString(metadata.updated);\r\n }\r\n }\r\n\r\n if (isUndefined(version)) {\r\n return null;\r\n }\r\n\r\n return 'Version ' + version;\r\n};\r\n\r\nfunction toDateString(timestamp) {\r\n var date = new Date(timestamp);\r\n\r\n var year = date.getFullYear();\r\n\r\n var month = leftPad(String(date.getMonth() + 1), 2, '0');\r\n\r\n var day = leftPad(String(date.getDate()), 2, '0');\r\n\r\n return day + '.' + month + '.' + year;\r\n}\r\n\r\nfunction leftPad(string, length, character) {\r\n while (string.length < length) {\r\n string = character + string;\r\n }\r\n\r\n return string;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js": /*!********************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js ***! \********************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").assign,\n flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n findIndex = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").findIndex,\n forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach;\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event,\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n findInputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findInputParameter;\n\nvar createInputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createInputParameter;\n\nvar escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar InputOutputParameter = __webpack_require__(/*! ../../parts/implementation/InputOutputParameter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js\");\n\nvar CAMUNDA_INPUT_PARAMETER_TYPE = 'camunda:inputParameter';\n\nvar MAX_DESCRIPTION_LENGTH = 200;\n\nvar EMPTY_PARAMETER = {\n get: function() {},\n set: function() {}\n};\n\n\n/**\n * Injects element template input parameters into the given group.\n *\n * @param {Object} group\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(group, element, elementTemplates, bpmnFactory, translate) {\n\n var template = elementTemplates.get(element);\n\n if (!template) {\n return [];\n }\n\n var inputEntries = [];\n\n\n function onToggle(value, entryNode) {\n if (!value) {\n return;\n }\n\n var currentEntryId = entryNode.dataset.entry;\n\n // collapse all other items\n inputEntries.forEach(function(entries) {\n var collapsible = entries[0];\n\n if (collapsible.id === currentEntryId) {\n return;\n }\n\n var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n collapsible.setOpen(false, entryNode);\n });\n }\n\n function renderInputParameter(id, templateProperty) {\n\n var parameterEntries = [],\n collapsibleEntry;\n\n var bo = getBusinessObject(element),\n inputOutput = findExtension(bo, 'camunda:InputOutput');\n\n if (!inputOutput) {\n return parameterEntries;\n }\n\n var getParameter = function() {\n return findInputParameter(inputOutput, templateProperty.binding) || EMPTY_PARAMETER;\n };\n\n var parameter = getParameter();\n\n var isOpen = function() {\n return collapsibleEntry.isOpen();\n };\n\n var assignmentIsOn = function() {\n var inputOutput = findExtension(getBusinessObject(element), 'camunda:InputOutput'),\n parameter = findInputParameter(inputOutput, templateProperty.binding);\n\n return !!parameter;\n };\n\n var options = {\n idPrefix: id + '-',\n onToggle: onToggle,\n getParameter: getParameter,\n isOpen: function() {\n return isOpen() && assignmentIsOn();\n }\n };\n\n\n // (1) use input parameter implementation\n var inputImplementation = InputOutputParameter(parameter, bpmnFactory, options, translate);\n parameterEntries = inputImplementation.entries;\n\n var nameIdx = findEntry(parameterEntries, id + '-parameterName');\n\n collapsibleEntry = parameterEntries[findEntry(parameterEntries, id + '-collapsible')];\n\n // (2) update title getter\n var defaultGet = collapsibleEntry.get;\n collapsibleEntry.get = function() {\n return assign(defaultGet(), {\n title: templateProperty.label ?\n translate(templateProperty.label) :\n templateProperty.binding.name\n });\n };\n\n // (3) remove name property entry\n removeEntry(parameterEntries, nameIdx);\n\n // (4) add description entry\n if (templateProperty.description) {\n parameterEntries.splice(1, 0, createDescriptionEntry(\n templateProperty.description,\n id,\n collapsibleEntry.isOpen,\n translate\n ));\n }\n\n // (5) add parameter toggle\n parameterEntries.splice(templateProperty.description ? 2 : 1, 0, entryFactory.toggleSwitch(translate, {\n id: id + '-assignment-toggle',\n label: translate('Local Variable Assignment'),\n modelProperty: 'isActive',\n labelOn: translate('On'),\n labelOff: translate('Off'),\n descriptionOff: translate('The parameter won\\'t be created as local variable.'),\n isOn: assignmentIsOn,\n get: function(element, node) {\n return { isActive: assignmentIsOn() };\n },\n set: function(element, values, node) {\n var isActive = values.isActive || false;\n\n if (isActive) {\n return createNewInputParameter(element, templateProperty.binding, bpmnFactory);\n } else {\n return removeInputParameter(element, templateProperty.binding);\n }\n\n },\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n return parameterEntries;\n }\n\n\n // filter specific input parameters from template\n var inputParameters = filter(template.properties, function(p) {\n return !p.type && p.binding.type === CAMUNDA_INPUT_PARAMETER_TYPE;\n });\n\n forEach(inputParameters, function(property, idx) {\n var id = 'template-inputs-' + template.id + '-' + idx;\n inputEntries.push(renderInputParameter(id, property));\n });\n\n group.entries = group.entries.concat(flatten(inputEntries));\n};\n\n\n// helper ///////////////////////\n\nfunction findEntry(entries, id) {\n return findIndex(entries, function(entry) {\n return entry.id === id;\n });\n}\n\nfunction removeEntry(entries, idx) {\n entries.splice(idx, 1);\n}\n\nfunction createDescriptionEntry(description, id, show, translate) {\n description = escapeHTML(description);\n\n var html = domify('

    ');\n\n var descriptionText = domify('' + description + '');\n\n html.appendChild(descriptionText);\n\n function toggleExpanded(expanded) {\n if (expanded) {\n domClasses(html).add('description--expanded');\n\n descriptionText.textContent = description + ' ';\n\n expand.textContent = translate('Less');\n } else {\n domClasses(html).remove('description--expanded');\n\n descriptionText.textContent = descriptionShortened + ' ... ';\n\n expand.textContent = translate('More');\n }\n }\n\n var descriptionShortened,\n expand,\n expanded = false;\n\n if (description.length > MAX_DESCRIPTION_LENGTH) {\n descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\n\n expand = domify(\n '' +\n translate('More') +\n ''\n );\n\n domEvent.bind(expand, 'click', function() {\n expanded = !expanded;\n\n toggleExpanded(expanded);\n });\n\n html.appendChild(expand);\n\n toggleExpanded(expanded);\n }\n\n return {\n id: id + '-description',\n html: html,\n show: show\n };\n}\n\nfunction removeInputParameter(element, binding) {\n var bo = getBusinessObject(element),\n updates = [],\n extensionElements = bo.get('extensionElements');\n\n if (!extensionElements) {\n return updates;\n }\n\n var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n if (!inputOutput) {\n return updates;\n }\n\n var inputParameter = findInputParameter(inputOutput, binding);\n\n if (!inputParameter) {\n return updates;\n }\n\n updates.push(cmdHelper.removeElementsFromList(element, inputOutput, 'inputParameters', null, [inputParameter]));\n\n return updates;\n}\n\nfunction createNewInputParameter(element, binding, bpmnFactory) {\n var bo = getBusinessObject(element),\n updates = [],\n extensionElements = bo.get('extensionElements');\n\n // (1) ensure extension elements\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', null, element, bpmnFactory);\n\n updates.push(cmdHelper.updateBusinessObject(\n element, bo, { extensionElements: extensionElements }\n ));\n }\n\n var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n // (2) ensure inputOutput element\n if (!inputOutput) {\n inputOutput = elementHelper.createElement('camunda:InputOutput', null, bo, bpmnFactory);\n\n updates.push(cmdHelper.addElementsTolist(\n element, extensionElements, 'values', inputOutput\n ));\n }\n\n // (3) create input parameter\n var inputParameter = createInputParameter(binding, null, bpmnFactory);\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n inputOutput,\n 'inputParameters',\n null,\n [ inputParameter ],\n [ ]\n ));\n\n return updates;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js": /*!*********************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js ***! \*********************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach;\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n findOutputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findOutputParameter;\n\nvar createOutputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createOutputParameter;\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event,\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar CAMUNDA_OUTPUT_PARAMETER_TYPE = 'camunda:outputParameter';\n\nvar MAX_DESCRIPTION_LENGTH = 200;\n\nvar EMPTY_PARAMETER = {\n get: function() {},\n set: function() {}\n};\n\n/**\n * Injects element template output parameters into the given group.\n *\n * @param {Object} group\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(group, element, elementTemplates, bpmnFactory, translate) {\n\n var template = elementTemplates.get(element);\n\n if (!template) {\n return [];\n }\n\n var outputEntries = [];\n\n\n function onToggle(value, entryNode) {\n if (!value) {\n return;\n }\n\n var currentEntryId = entryNode.dataset.entry;\n\n // collapse all other items\n outputEntries.forEach(function(entries) {\n var collapsible = entries[0];\n\n if (collapsible.id === currentEntryId) {\n return;\n }\n\n var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n collapsible.setOpen(false, entryNode);\n });\n }\n\n function renderOutputParameter(id, templateProperty) {\n\n var parameterEntries = [];\n\n // find input parameter first\n var bo = getBusinessObject(element),\n inputOutput = findExtension(bo, 'camunda:InputOutput');\n\n if (!inputOutput) {\n return parameterEntries;\n }\n\n var getParameter = function() {\n return findOutputParameter(inputOutput, templateProperty.binding) || EMPTY_PARAMETER;\n };\n\n // (1) add collapsible header\n var collapsible = entryFactory.collapsible({\n id: id + '-collapsible',\n title: translate(templateProperty.label),\n cssClasses: [\n 'bpp-collapsible--with-mapping',\n 'bpp-collapsible--with-template-out'\n ],\n onToggle: onToggle,\n open: false,\n get: function() {\n return {\n title: translate(templateProperty.label),\n description: getParameter().name\n };\n }\n });\n parameterEntries.push(collapsible);\n\n var isOpen = collapsible.isOpen;\n\n var assignmentIsOn = function() {\n var inputOutput = findExtension(getBusinessObject(element), 'camunda:InputOutput'),\n parameter = findOutputParameter(inputOutput, templateProperty.binding);\n\n return !!parameter;\n };\n\n // (2) add description\n if (templateProperty.description) {\n parameterEntries.push(createDescriptionEntry(\n templateProperty.description,\n id,\n isOpen,\n translate\n ));\n }\n\n // (3) add parameter toggle\n parameterEntries.splice(templateProperty.description ? 2 : 1, 0, entryFactory.toggleSwitch(translate, {\n id: id + '-assignment-toggle',\n label: translate('Process Variable Assignment'),\n modelProperty: 'isActive',\n labelOn: translate('On'),\n labelOff: translate('Off'),\n descriptionOff: translate('The parameter won\\'t be available in the process scope.'),\n isOn: assignmentIsOn,\n get: function(element, node) {\n return { isActive: assignmentIsOn() };\n },\n set: function(element, values, node) {\n var isActive = values.isActive || false;\n\n if (isActive) {\n return createNewOutputParameter(element, templateProperty.binding, bpmnFactory);\n } else {\n return removeOutputParameter(element, templateProperty.binding);\n }\n\n },\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n // (4) add process variable name field\n parameterEntries.push(entryFactory.validationAwareTextField(translate, {\n id: id + '-variableName',\n label: translate('Assign to Process Variable'),\n modelProperty: 'variableName',\n getProperty: function(element) {\n return getParameter().name;\n },\n setProperty: function(element, values) {\n return cmdHelper.updateBusinessObject(element, getParameter(), { name: values.variableName });\n },\n validate: function(element, values) {\n var validation = {},\n nameValue = values.variableName;\n\n if (nameValue) {\n if (utils.containsSpace(nameValue)) {\n validation.variableName = translate('Process Variable Name must not contain spaces.');\n }\n } else {\n validation.variableName = translate('Process Variable Name must not be empty.');\n }\n\n return validation;\n },\n hidden: function(element, node) {\n return !isOpen() || !assignmentIsOn();\n }\n }));\n\n return parameterEntries;\n }\n\n // filter specific output parameters from template\n var outputParameters = filter(template.properties, function(p) {\n return !p.type && p.binding.type === CAMUNDA_OUTPUT_PARAMETER_TYPE;\n });\n\n forEach(outputParameters, function(property, idx) {\n var id = 'template-outputs-' + template.id + '-' + idx;\n outputEntries.push(renderOutputParameter(id, property));\n });\n\n group.entries = group.entries.concat(flatten(outputEntries));\n};\n\n// helpers ///////////////\n\nfunction createDescriptionEntry(description, id, show, translate) {\n description = escapeHTML(description);\n\n var html = domify('

    ');\n\n var descriptionText = domify('' + description + '');\n\n html.appendChild(descriptionText);\n\n function toggleExpanded(expanded) {\n if (expanded) {\n domClasses(html).add('description--expanded');\n\n descriptionText.textContent = description + ' ';\n\n expand.textContent = translate('Less');\n } else {\n domClasses(html).remove('description--expanded');\n\n descriptionText.textContent = descriptionShortened + ' ... ';\n\n expand.textContent = translate('More');\n }\n }\n\n var descriptionShortened,\n expand,\n expanded = false;\n\n if (description.length > MAX_DESCRIPTION_LENGTH) {\n descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\n\n expand = domify(\n '' +\n translate('More') +\n ''\n );\n\n domEvent.bind(expand, 'click', function() {\n expanded = !expanded;\n\n toggleExpanded(expanded);\n });\n\n html.appendChild(expand);\n\n toggleExpanded(expanded);\n }\n\n return {\n id: id + '-description',\n html: html,\n show: show\n };\n}\n\nfunction removeOutputParameter(element, binding) {\n var bo = getBusinessObject(element),\n updates = [],\n extensionElements = bo.get('extensionElements');\n\n if (!extensionElements) {\n return updates;\n }\n\n var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n if (!inputOutput) {\n return updates;\n }\n\n var outputParameter = findOutputParameter(inputOutput, binding);\n\n if (!outputParameter) {\n return updates;\n }\n\n updates.push(cmdHelper.removeElementsFromList(element, inputOutput, 'outputParameters', null, [outputParameter]));\n\n return updates;\n}\n\nfunction createNewOutputParameter(element, binding, bpmnFactory) {\n var bo = getBusinessObject(element),\n updates = [],\n extensionElements = bo.get('extensionElements');\n\n // (1) ensure extension elements\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', null, element, bpmnFactory);\n\n updates.push(cmdHelper.updateBusinessObject(\n element, bo, { extensionElements: extensionElements }\n ));\n }\n\n var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n // (2) ensure inputOutput element\n if (!inputOutput) {\n inputOutput = elementHelper.createElement('camunda:InputOutput', null, bo, bpmnFactory);\n\n updates.push(cmdHelper.addElementsTolist(\n element, extensionElements, 'values', inputOutput\n ));\n }\n\n // (3) create output parameter\n var outputParameter = createOutputParameter(binding, null, bpmnFactory);\n\n updates.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n inputOutput,\n 'outputParameters',\n null,\n [ outputParameter ],\n [ ]\n ));\n\n return updates;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js": /*!*****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js ***! \*****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").assign,\n forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n keys = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").keys,\n isObject = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").isObject;\n\n/**\n * Converts legacy scopes descriptor to newer supported array structure.\n *\n * For example, it transforms\n *\n * scopes: {\n * 'camunda:Connector':\n * { properties: []\n * }\n * }\n *\n * to\n *\n * scopes: [\n * {\n * type: 'camunda:Connector',\n * properties: []\n * }\n * ]\n *\n * @param {ScopesDescriptor} scopes\n *\n * @returns {Array}\n */\nmodule.exports = function handleLegacyScopes(scopes) {\n var scopesAsArray = [];\n\n if (!isObject(scopes)) {\n return scopes;\n }\n\n forEach(keys(scopes), function(scopeName) {\n scopesAsArray.push(assign({\n type: scopeName\n }, scopes[scopeName]));\n });\n\n return scopesAsArray;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js": /*!*****************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js ***! \*****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = {\n __depends__: [\n __webpack_require__(/*! ./element-templates */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js\"),\n __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\").default\n ],\n __init__: [ 'propertiesProvider' ],\n propertiesProvider: [ 'type', __webpack_require__(/*! ./CamundaPropertiesProvider */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js\") ]\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js": /*!***********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js ***! \***********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n asyncContinuation = __webpack_require__(/*! ./implementation/AsyncContinuation */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n if (is(element, 'camunda:AsyncCapable')) {\n\n group.entries = group.entries.concat(asyncContinuation(element, bpmnFactory, {\n getBusinessObject: getBusinessObject\n }, translate));\n\n }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js": /*!***********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js ***! \***********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar callable = __webpack_require__(/*! ./implementation/Callable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar flattenDeep = __webpack_require__(/*! lodash/flattenDeep */ \"./node_modules/lodash/flattenDeep.js\");\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nfunction getCallableType(element) {\n var bo = getBusinessObject(element);\n\n var boCalledElement = bo.get('calledElement'),\n boCaseRef = bo.get('camunda:caseRef');\n\n var callActivityType = '';\n if (typeof boCalledElement !== 'undefined') {\n callActivityType = 'bpmn';\n } else\n\n if (typeof boCaseRef !== 'undefined') {\n callActivityType = 'cmmn';\n }\n\n return callActivityType;\n}\n\nvar DEFAULT_PROPS = {\n calledElement: undefined,\n 'camunda:calledElementBinding': 'latest',\n 'camunda:calledElementVersion': undefined,\n 'camunda:calledElementTenantId': undefined,\n 'camunda:variableMappingClass' : undefined,\n 'camunda:variableMappingDelegateExpression' : undefined,\n 'camunda:caseRef': undefined,\n 'camunda:caseBinding': 'latest',\n 'camunda:caseVersion': undefined,\n 'camunda:caseTenantId': undefined\n};\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n if (!is(element, 'camunda:CallActivity')) {\n return;\n }\n\n group.entries.push(entryFactory.selectBox(translate, {\n id : 'callActivity',\n label: translate('CallActivity Type'),\n selectOptions: [\n { name: 'BPMN', value: 'bpmn' },\n { name: 'CMMN', value: 'cmmn' }\n ],\n emptyParameter: true,\n modelProperty: 'callActivityType',\n\n get: function(element, node) {\n return {\n callActivityType: getCallableType(element)\n };\n },\n\n set: function(element, values, node) {\n var type = values.callActivityType;\n\n var props = assign({}, DEFAULT_PROPS);\n\n if (type === 'bpmn') {\n props.calledElement = '';\n }\n else if (type === 'cmmn') {\n props['camunda:caseRef'] = '';\n }\n\n return cmdHelper.updateProperties(element, props);\n }\n\n }));\n\n group.entries.push(callable(element, bpmnFactory, {\n getCallableType: getCallableType\n }, translate));\n\n group.entries = flattenDeep(group.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar candidateStarter = __webpack_require__(/*! ./implementation/CandidateStarter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n var businessObject = getBusinessObject(element);\n\n if (is(element, 'camunda:Process') ||\n is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n\n group.entries = group.entries.concat(candidateStarter(element, bpmnFactory, {\n getBusinessObject: function(element) {\n var bo = getBusinessObject(element);\n\n if (!is(bo, 'bpmn:Participant')) {\n return bo;\n }\n\n return bo.get('processRef');\n }\n }, translate));\n\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js": /*!**********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js ***! \**********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n escapeHTML = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML,\n domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n scriptImplementation = __webpack_require__(/*! ./implementation/Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n var bo = getBusinessObject(element);\n\n if (!bo) {\n return;\n }\n\n var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);\n\n if (!(is(element, 'bpmn:SequenceFlow') && isConditionalSource(element.source))\n && !conditionalEventDefinition) {\n return;\n }\n\n var script = scriptImplementation('language', 'body', true, translate);\n group.entries.push({\n id: 'condition',\n label: translate('Condition'),\n html: '
    ' +\n '' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n\n // expression\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n script.template +\n '
    ' +\n '
    ',\n\n get: function(element, propertyName) {\n var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);\n\n var conditionExpression = conditionalEventDefinition\n ? conditionalEventDefinition.condition\n : bo.conditionExpression;\n\n var values = {},\n conditionType = '';\n\n if (conditionExpression) {\n var conditionLanguage = conditionExpression.language;\n if (typeof conditionLanguage !== 'undefined') {\n conditionType = 'script';\n values = script.get(element, conditionExpression);\n } else {\n conditionType = 'expression';\n values.condition = conditionExpression.get('body');\n }\n }\n\n values.conditionType = conditionType;\n\n return values;\n\n },\n\n set: function(element, values, containerElement) {\n var conditionType = values.conditionType;\n var commands = [];\n\n var conditionProps = {\n body: undefined\n };\n\n if (conditionType === 'script') {\n conditionProps = script.set(element, values, containerElement);\n } else {\n var condition = values.condition;\n\n conditionProps.body = condition;\n }\n\n var conditionOrConditionExpression;\n\n if (conditionType) {\n conditionOrConditionExpression = elementHelper.createElement(\n 'bpmn:FormalExpression',\n conditionProps,\n conditionalEventDefinition || bo,\n bpmnFactory\n );\n\n var source = element.source;\n\n // if default-flow, remove default-property from source\n if (source && source.businessObject.default === bo) {\n commands.push(cmdHelper.updateProperties(source, { 'default': undefined }));\n }\n }\n\n var update = conditionalEventDefinition\n ? { condition: conditionOrConditionExpression }\n : { conditionExpression: conditionOrConditionExpression };\n\n commands.push(cmdHelper.updateBusinessObject(element, conditionalEventDefinition || bo, update));\n\n return commands;\n },\n\n validate: function(element, values) {\n var validationResult = {};\n\n if (!values.condition && values.conditionType === 'expression') {\n validationResult.condition = translate('Must provide a value');\n }\n else if (values.conditionType === 'script') {\n validationResult = script.validate(element, values);\n }\n\n return validationResult;\n },\n\n isExpression: function(element, inputNode) {\n var conditionType = domQuery('select[name=conditionType]', inputNode);\n if (conditionType.selectedIndex >= 0) {\n return conditionType.options[conditionType.selectedIndex].value === 'expression';\n }\n },\n\n isScript: function(element, inputNode) {\n var conditionType = domQuery('select[name=conditionType]', inputNode);\n if (conditionType.selectedIndex >= 0) {\n return conditionType.options[conditionType.selectedIndex].value === 'script';\n }\n },\n\n clear: function(element, inputNode) {\n\n // clear text input\n domQuery('input[name=condition]', inputNode).value='';\n\n return true;\n },\n\n canClear: function(element, inputNode) {\n var input = domQuery('input[name=condition]', inputNode);\n\n return input.value !== '';\n },\n\n script : script,\n\n cssClasses: [ 'bpp-textfield' ]\n });\n};\n\n\n// utilities //////////////////////////\n\nvar CONDITIONAL_SOURCES = [\n 'bpmn:Activity',\n 'bpmn:ExclusiveGateway',\n 'bpmn:InclusiveGateway',\n 'bpmn:ComplexGateway'\n];\n\nfunction isConditionalSource(element) {\n return isAny(element, CONDITIONAL_SOURCES);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js": /*!**************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js ***! \**************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\"),\n InputOutputHelper = __webpack_require__(/*! ../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nfunction getImplementationType(element) {\n return ImplementationTypeHelper.getImplementationType(element);\n}\n\nfunction getBusinessObject(element) {\n return ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n}\n\nfunction getConnector(bo) {\n return InputOutputHelper.getConnector(bo);\n}\n\nfunction isConnector(element) {\n return getImplementationType(element) === 'connector';\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n group.entries.push(entryFactory.textField(translate, {\n id: 'connectorId',\n label: translate('Connector Id'),\n modelProperty: 'connectorId',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n var connector = bo && getConnector(bo);\n var value = connector && connector.get('connectorId');\n return { connectorId: value };\n },\n\n set: function(element, values, node) {\n var bo = getBusinessObject(element);\n var connector = getConnector(bo);\n return cmdHelper.updateBusinessObject(element, connector, {\n connectorId: values.connectorId || undefined\n });\n },\n\n validate: function(element, values, node) {\n return isConnector(element) && !values.connectorId ? { connectorId: translate('Must provide a value') } : {};\n },\n\n hidden: function(element, node) {\n return !isConnector(element);\n }\n\n }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js": /*!***********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js ***! \***********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar inputParameters = __webpack_require__(/*! ./implementation/InputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var inputParametersEntry = inputParameters(element, bpmnFactory, {\n idPrefix: 'connector-',\n insideConnector: true\n }, translate);\n\n group.entries = group.entries.concat(inputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js": /*!************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js ***! \************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar outputParameters = __webpack_require__(/*! ./implementation/OutputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var outputParametersEntry = outputParameters(element, bpmnFactory, {\n idPrefix: 'connector-',\n insideConnector: true\n }, translate);\n\n group.entries = group.entries.concat(outputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n error = __webpack_require__(/*! ./implementation/ErrorEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js\");\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var errorEvents = [\n 'bpmn:StartEvent',\n 'bpmn:BoundaryEvent',\n 'bpmn:EndEvent'\n ];\n\n forEach(errorEvents, function(event) {\n if (is(element, event)) {\n\n var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);\n\n if (errorEventDefinition) {\n var isCatchingErrorEvent = is(element, 'bpmn:StartEvent') || is (element, 'bpmn:BoundaryEvent');\n\n var showErrorCodeVariable = isCatchingErrorEvent,\n showErrorMessageVariable = isCatchingErrorEvent;\n\n error(\n group,\n element,\n bpmnFactory,\n errorEventDefinition,\n showErrorCodeVariable,\n showErrorMessageVariable,\n translate);\n }\n }\n });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js": /*!*****************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js ***! \*****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar errors = __webpack_require__(/*! ./implementation/Errors */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js\");\n\nmodule.exports = function(group, element, bpmnFactory, elementTemplates, translate) {\n\n var template = elementTemplates.get(element);\n\n if (template) {\n return;\n }\n\n var errorsEntry = errors(element, bpmnFactory, {}, translate);\n\n group.entries = group.entries.concat(errorsEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js": /*!************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js ***! \************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar externalTaskPriority = __webpack_require__(/*! ./implementation/ExternalTaskPriority */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js\");\n\nfunction getServiceTaskLikeBusinessObject(element) {\n var bo = ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n\n // if the element is not a serviceTaskLike element, fetch the normal business object\n // This avoids the loss of the process / participant business object\n if (!bo) {\n bo = getBusinessObject(element);\n }\n\n return bo;\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var bo = getServiceTaskLikeBusinessObject(element);\n\n if (!bo) {\n return;\n }\n\n if (is(bo, 'camunda:TaskPriorized') || (is(bo, 'bpmn:Participant')) && bo.get('processRef')) {\n group.entries = group.entries.concat(externalTaskPriority(element, bpmnFactory, {\n getBusinessObject: function(element) {\n if (!is(bo, 'bpmn:Participant')) {\n return bo;\n }\n return bo.get('processRef');\n }\n }, translate));\n }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js": /*!*************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js ***! \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar fieldInjection = __webpack_require__(/*! ./implementation/FieldInjection */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var bo = ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n\n if (!bo) {\n return;\n }\n\n var fieldInjectionEntry = fieldInjection(element, bpmnFactory, translate, { businessObject: bo });\n\n if (fieldInjectionEntry && fieldInjectionEntry.length > 0) {\n group.entries = group.entries.concat(fieldInjectionEntry);\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js ***! \***************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n getExtensionElements = __webpack_require__(/*! ../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\").getExtensionElements,\n removeEntry = __webpack_require__(/*! ../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\").removeEntry,\n extensionElements = __webpack_require__(/*! ./implementation/ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\"),\n properties = __webpack_require__(/*! ./implementation/Properties */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js\"),\n entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n formHelper = __webpack_require__(/*! ../../../helper/FormHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js\"),\n utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n each = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nfunction generateValueId() {\n return utils.nextId('Value_');\n}\n\n/**\n * Generate a form field specific textField using entryFactory.\n *\n * @param {Function} translate\n * @param {string} options.id\n * @param {string} options.label\n * @param {string} options.modelProperty\n * @param {Function} options.validate\n *\n * @return {Object} an entryFactory.textField object\n */\nfunction formFieldTextField(translate, options, getSelectedFormField) {\n\n var id = options.id,\n label = options.label,\n modelProperty = options.modelProperty,\n validate = options.validate;\n\n return entryFactory.textField(translate, {\n id: id,\n label: label,\n modelProperty: modelProperty,\n get: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node) || {},\n values = {};\n\n values[modelProperty] = selectedFormField[modelProperty];\n\n return values;\n },\n\n set: function(element, values, node) {\n var commands = [];\n\n if (typeof options.set === 'function') {\n var cmd = options.set(element, values, node);\n\n if (cmd) {\n commands.push(cmd);\n }\n }\n\n var formField = getSelectedFormField(element, node),\n properties = {};\n\n properties[modelProperty] = values[modelProperty] || undefined;\n\n commands.push(cmdHelper.updateBusinessObject(element, formField, properties));\n\n return commands;\n },\n hidden: function(element, node) {\n return !getSelectedFormField(element, node);\n },\n validate: validate\n });\n}\n\nfunction ensureFormKeyAndDataSupported(element) {\n return (\n is(element, 'bpmn:StartEvent') && !is(element.parent, 'bpmn:SubProcess')\n ) || is(element, 'bpmn:UserTask');\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n if (!ensureFormKeyAndDataSupported(element)) {\n return;\n }\n\n\n /**\n * Return the currently selected form field querying the form field select box\n * from the DOM.\n *\n * @param {djs.model.Base} element\n * @param {DOMElement} node - DOM element of any form field text input\n *\n * @return {ModdleElement} the currently selected form field\n */\n function getSelectedFormField(element, node) {\n var selected = formFieldsEntry.getSelected(element, node.parentNode);\n\n if (selected.idx === -1) {\n return;\n }\n\n return formHelper.getFormField(element, selected.idx);\n }\n\n // [FormKey] form key text input field\n group.entries.push(entryFactory.textField(translate, {\n id : 'form-key',\n label : translate('Form Key'),\n modelProperty: 'formKey',\n get: function(element, node) {\n var bo = getBusinessObject(element);\n\n return {\n formKey: bo.get('camunda:formKey')\n };\n },\n set: function(element, values, node) {\n var bo = getBusinessObject(element),\n formKey = values.formKey || undefined;\n\n return cmdHelper.updateBusinessObject(element, bo, { 'camunda:formKey': formKey });\n }\n }));\n\n // [FormData] form field select box\n var formFieldsEntry = extensionElements(element, bpmnFactory, {\n id: 'form-fields',\n label: translate('Form Fields'),\n modelProperty: 'id',\n prefix: 'FormField',\n createExtensionElement: function(element, extensionElements, value) {\n var bo = getBusinessObject(element), commands = [];\n\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateProperties(element, { extensionElements: extensionElements }));\n }\n\n var formData = formHelper.getFormData(element);\n\n if (!formData) {\n formData = elementHelper.createElement('camunda:FormData', { fields: [] }, extensionElements, bpmnFactory);\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n 'extensionElements',\n [formData],\n []\n ));\n }\n\n var field = elementHelper.createElement('camunda:FormField', { id: value }, formData, bpmnFactory);\n if (typeof formData.fields !== 'undefined') {\n commands.push(cmdHelper.addElementsTolist(element, formData, 'fields', [ field ]));\n } else {\n commands.push(cmdHelper.updateBusinessObject(element, formData, {\n fields: [ field ]\n }));\n }\n return commands;\n },\n removeExtensionElement: function(element, extensionElements, value, idx) {\n var formData = getExtensionElements(getBusinessObject(element), 'camunda:FormData')[0],\n entry = formData.fields[idx],\n commands = [];\n\n if (formData.fields.length < 2) {\n commands.push(removeEntry(getBusinessObject(element), element, formData));\n } else {\n commands.push(cmdHelper.removeElementsFromList(element, formData, 'fields', null, [entry]));\n\n if (entry.id === formData.get('businessKey')) {\n commands.push(cmdHelper.updateBusinessObject(element, formData, { 'businessKey': undefined }));\n }\n }\n\n return commands;\n },\n getExtensionElements: function(element) {\n return formHelper.getFormFields(element);\n },\n hideExtensionElements: function(element, node) {\n return false;\n }\n });\n group.entries.push(formFieldsEntry);\n\n // [FormData] business key form field select box\n var formBusinessKeyFormFieldEntry = entryFactory.selectBox(translate, {\n id: 'form-business-key',\n label: translate('Business Key'),\n modelProperty: 'businessKey',\n selectOptions: function(element, inputNode) {\n var selectOptions = [{ name: '', value: '' }];\n var formFields = formHelper.getFormFields(element);\n each(formFields, function(field) {\n if (field.type !== 'boolean') {\n selectOptions.push({ name: field.id, value: field.id });\n }\n });\n return selectOptions;\n },\n get: function(element, node) {\n var result = { businessKey: '' };\n var bo = getBusinessObject(element);\n var formDataExtension = getExtensionElements(bo, 'camunda:FormData');\n if (formDataExtension.length) {\n var formData = formDataExtension[0];\n var storedValue = formData.get('businessKey');\n result = { businessKey: storedValue };\n }\n return result;\n },\n set: function(element, values, node) {\n var formData = getExtensionElements(getBusinessObject(element), 'camunda:FormData')[0];\n return cmdHelper.updateBusinessObject(element, formData, { 'businessKey': values.businessKey || undefined });\n },\n hidden: function(element, node) {\n var isStartEvent = is(element,'bpmn:StartEvent');\n return !(isStartEvent && formHelper.getFormFields(element).length > 0);\n }\n });\n group.entries.push(formBusinessKeyFormFieldEntry);\n\n // [FormData] Form Field label\n group.entries.push(entryFactory.label({\n id: 'form-field-header',\n labelText: translate('Form Field'),\n showLabel: function(element, node) {\n return !!getSelectedFormField(element, node);\n }\n }));\n\n // [FormData] form field id text input field\n group.entries.push(entryFactory.validationAwareTextField(translate, {\n id: 'form-field-id',\n label: translate('ID (process variable name)'),\n modelProperty: 'id',\n\n getProperty: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node) || {};\n\n return selectedFormField.id;\n },\n\n setProperty: function(element, properties, node) {\n var formField = getSelectedFormField(element, node);\n\n return cmdHelper.updateBusinessObject(element, formField, properties);\n },\n\n hidden: function(element, node) {\n return !getSelectedFormField(element, node);\n },\n\n validate: function(element, values, node) {\n\n var formField = getSelectedFormField(element, node);\n\n if (formField) {\n\n var idValue = values.id;\n\n if (!idValue || idValue.trim() === '') {\n return { id: 'Form field id must not be empty' };\n }\n\n var formFields = formHelper.getFormFields(element);\n\n var existingFormField = find(formFields, function(f) {\n return f !== formField && f.id === idValue;\n });\n\n if (existingFormField) {\n return { id: 'Form field id already used in form data.' };\n }\n }\n }\n }));\n\n // [FormData] form field type combo box\n group.entries.push(entryFactory.comboBox(translate, {\n id: 'form-field-type',\n label: translate('Type'),\n selectOptions: [\n { name: 'string', value: 'string' },\n { name: 'long', value: 'long' },\n { name: 'boolean', value: 'boolean' },\n { name: 'date', value: 'date' },\n { name: 'enum', value: 'enum' }\n ],\n modelProperty: 'type',\n emptyParameter: true,\n\n get: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node);\n\n if (selectedFormField) {\n return { type: selectedFormField.type };\n } else {\n return {};\n }\n },\n set: function(element, values, node) {\n var selectedFormField = getSelectedFormField(element, node),\n formData = getExtensionElements(getBusinessObject(element), 'camunda:FormData')[0],\n commands = [];\n\n if (selectedFormField.type === 'enum' && values.type !== 'enum') {\n\n // delete camunda:value objects from formField.values when switching from type enum\n commands.push(cmdHelper.updateBusinessObject(element, selectedFormField, { values: undefined }));\n }\n if (values.type === 'boolean' && selectedFormField.get('id') === formData.get('businessKey')) {\n commands.push(cmdHelper.updateBusinessObject(element, formData, { 'businessKey': undefined }));\n }\n commands.push(cmdHelper.updateBusinessObject(element, selectedFormField, values));\n\n return commands;\n },\n hidden: function(element, node) {\n return !getSelectedFormField(element, node);\n }\n }));\n\n // [FormData] form field label text input field\n group.entries.push(formFieldTextField(translate, {\n id: 'form-field-label',\n label: translate('Label'),\n modelProperty: 'label'\n }, getSelectedFormField));\n\n // [FormData] form field defaultValue text input field\n group.entries.push(formFieldTextField(translate, {\n id: 'form-field-defaultValue',\n label: translate('Default Value'),\n modelProperty: 'defaultValue'\n }, getSelectedFormField));\n\n\n // [FormData] form field enum values label\n group.entries.push(entryFactory.label({\n id: 'form-field-enum-values-header',\n labelText: translate('Values'),\n divider: true,\n showLabel: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node);\n\n return selectedFormField && selectedFormField.type === 'enum';\n }\n }));\n\n // [FormData] form field enum values table\n group.entries.push(entryFactory.table(translate, {\n id: 'form-field-enum-values',\n labels: [ translate('Id'), translate('Name') ],\n modelProperties: [ 'id', 'name' ],\n show: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node);\n\n return selectedFormField && selectedFormField.type === 'enum';\n },\n getElements: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node);\n\n return formHelper.getEnumValues(selectedFormField);\n },\n addElement: function(element, node) {\n var selectedFormField = getSelectedFormField(element, node),\n id = generateValueId();\n\n var enumValue = elementHelper.createElement(\n 'camunda:Value',\n { id: id, name: undefined },\n getBusinessObject(element),\n bpmnFactory\n );\n\n return cmdHelper.addElementsTolist(element, selectedFormField, 'values', [enumValue]);\n },\n removeElement: function(element, node, idx) {\n var selectedFormField = getSelectedFormField(element, node),\n enumValue = selectedFormField.values[idx];\n\n return cmdHelper.removeElementsFromList(element, selectedFormField, 'values', null, [enumValue]);\n },\n updateElement: function(element, value, node, idx) {\n var selectedFormField = getSelectedFormField(element, node),\n enumValue = selectedFormField.values[idx];\n\n value.name = value.name || undefined;\n return cmdHelper.updateBusinessObject(element, enumValue, value);\n },\n validate: function(element, value, node, idx) {\n\n var selectedFormField = getSelectedFormField(element, node),\n enumValue = selectedFormField.values[idx];\n\n if (enumValue) {\n\n // check if id is valid\n var validationError = utils.isIdValid(enumValue, value.id, translate);\n\n if (validationError) {\n return { id: validationError };\n }\n }\n }\n }));\n\n // [FormData] Validation label\n group.entries.push(entryFactory.label({\n id: 'form-field-validation-header',\n labelText: translate('Validation'),\n divider: true,\n showLabel: function(element, node) {\n return !!getSelectedFormField(element, node);\n }\n }));\n\n // [FormData] form field constraints table\n group.entries.push(entryFactory.table(translate, {\n id: 'constraints-list',\n modelProperties: [ 'name', 'config' ],\n labels: [ translate('Name'), translate('Config') ],\n addLabel: translate('Add Constraint'),\n getElements: function(element, node) {\n var formField = getSelectedFormField(element, node);\n\n return formHelper.getConstraints(formField);\n },\n addElement: function(element, node) {\n\n var commands = [],\n formField = getSelectedFormField(element, node),\n validation = formField.validation;\n\n if (!validation) {\n\n // create validation business object and add it to form data, if it doesn't exist\n validation = elementHelper.createElement('camunda:Validation', {}, getBusinessObject(element), bpmnFactory);\n\n commands.push(cmdHelper.updateBusinessObject(element, formField, { 'validation': validation }));\n }\n\n var newConstraint = elementHelper.createElement(\n 'camunda:Constraint',\n { name: undefined, config: undefined },\n validation,\n bpmnFactory\n );\n\n commands.push(cmdHelper.addElementsTolist(element, validation, 'constraints', [ newConstraint ]));\n\n return commands;\n },\n updateElement: function(element, value, node, idx) {\n var formField = getSelectedFormField(element, node),\n constraint = formHelper.getConstraints(formField)[idx];\n\n value.name = value.name || undefined;\n value.config = value.config || undefined;\n\n return cmdHelper.updateBusinessObject(element, constraint, value);\n },\n removeElement: function(element, node, idx) {\n var commands = [],\n formField = getSelectedFormField(element, node),\n constraints = formHelper.getConstraints(formField),\n currentConstraint = constraints[idx];\n\n commands.push(cmdHelper.removeElementsFromList(\n element,\n formField.validation,\n 'constraints',\n null,\n [ currentConstraint ]\n ));\n\n if (constraints.length === 1) {\n\n // remove camunda:validation if the last existing constraint has been removed\n commands.push(cmdHelper.updateBusinessObject(element, formField, { validation: undefined }));\n }\n\n return commands;\n },\n show: function(element, node) {\n return !!getSelectedFormField(element, node);\n }\n }));\n\n // [FormData] Properties label\n group.entries.push(entryFactory.label({\n id: 'form-field-properties-header',\n labelText: translate('Properties'),\n divider: true,\n showLabel: function(element, node) {\n return !!getSelectedFormField(element, node);\n }\n }));\n\n // [FormData] camunda:properties table\n group.entries.push(properties(element, bpmnFactory, {\n id: 'form-field-properties',\n modelProperties: [ 'id', 'value' ],\n labels: [ translate('Id'), translate('Value') ],\n getParent: function(element, node) {\n return getSelectedFormField(element, node);\n },\n show: function(element, node) {\n return !!getSelectedFormField(element, node);\n }\n }, translate));\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js": /*!****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js ***! \****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar historyTimeToLive = __webpack_require__(/*! ./implementation/HistoryTimeToLive */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n var businessObject = getBusinessObject(element);\n\n if (is(element, 'camunda:Process') ||\n is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n\n group.entries = group.entries.concat(historyTimeToLive(element, bpmnFactory, {\n getBusinessObject: function(element) {\n var bo = getBusinessObject(element);\n\n if (!is(bo, 'bpmn:Participant')) {\n return bo;\n }\n\n return bo.get('processRef');\n }\n }, translate));\n\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js": /*!**************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js ***! \**************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar inputParameters = __webpack_require__(/*! ./implementation/InputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, elementTemplates, translate) {\n\n var template = elementTemplates.get(element);\n\n if (template) {\n return;\n }\n\n var inputParametersEntry = inputParameters(element, bpmnFactory, {}, translate);\n\n group.entries = group.entries.concat(inputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar jobPriority = __webpack_require__(/*! ./implementation/JobPriority */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js\"),\n jobRetryTimeCycle = __webpack_require__(/*! ./implementation/JobRetryTimeCycle */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n var businessObject = getBusinessObject(element);\n\n if (is(element, 'camunda:JobPriorized') ||\n is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n\n group.entries = group.entries.concat(jobPriority(element, bpmnFactory, {\n getBusinessObject: function(element) {\n var bo = getBusinessObject(element);\n\n if (!is(bo, 'bpmn:Participant')) {\n return bo;\n }\n\n return bo.get('processRef');\n }\n }, translate));\n }\n\n if (is(element, 'camunda:AsyncCapable')) {\n group.entries = group.entries.concat(jobRetryTimeCycle(element, bpmnFactory, {\n getBusinessObject: getBusinessObject\n }, translate));\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js": /*!*************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js ***! \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar find = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").find;\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\"),\n scriptImplementation = __webpack_require__(/*! ./implementation/Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\"),\n timerImplementation = __webpack_require__(/*! ../../bpmn/parts/implementation/TimerEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js\");\n\nmodule.exports = function(group, element, bpmnFactory, options, translate) {\n\n var LISTENER_TYPE_LABEL = {\n class: translate('Java Class'),\n expression: translate('Expression'),\n delegateExpression: translate('Delegate Expression'),\n script: translate('Script')\n };\n\n options = options || {};\n\n var getSelectedListener = options.getSelectedListener;\n\n var classProp = 'class',\n expressionProp = 'expression',\n delegateExpressionProp = 'delegateExpression',\n scriptProp = 'script';\n\n var executionListenerEventTypeOptions = ImplementationTypeHelper.isSequenceFlow(element) ? [\n { name: translate('take'), value: 'take' }\n ] : [\n { name: translate('start'), value: 'start' },\n { name: translate('end'), value: 'end' }\n ];\n\n var taskListenerEventTypeOptions = [\n { name: translate('create'), value: 'create' },\n { name: translate('assignment'), value: 'assignment' },\n { name: translate('complete'), value: 'complete' },\n { name: translate('delete'), value: 'delete' },\n { name: translate('update'), value: 'update' },\n { name: translate('timeout'), value: 'timeout' }\n ];\n\n var isSelected = function(element, node) {\n return getSelectedListener(element, node);\n };\n\n\n // eventType ////////////////\n group.entries.push(entryFactory.selectBox(translate, {\n id: 'listener-event-type',\n label: translate('Event Type'),\n modelProperty: 'eventType',\n emptyParameter: false,\n\n get: function(element, node) {\n\n var listener = getSelectedListener(element, node);\n\n var eventType = listener && listener.get('event');\n\n return {\n eventType: eventType\n };\n },\n\n set: function(element, values, node) {\n var eventType = values.eventType,\n listener = getSelectedListener(element, node),\n eventDefinitions = listener && listener.eventDefinitions;\n\n // ensure only timeout events can have timer event definitions\n if (eventDefinitions && eventType !== 'timeout') {\n eventDefinitions = [];\n }\n\n return cmdHelper.updateBusinessObject(element, listener,\n {\n event: eventType,\n eventDefinitions: eventDefinitions\n }\n );\n },\n\n selectOptions: function(element, node) {\n var eventTypeOptions;\n\n var selectedListener = getSelectedListener(element, node);\n if (ImplementationTypeHelper.isTaskListener(selectedListener)) {\n eventTypeOptions = taskListenerEventTypeOptions;\n } else if (ImplementationTypeHelper.isExecutionListener(selectedListener)) {\n eventTypeOptions = executionListenerEventTypeOptions;\n }\n\n return eventTypeOptions;\n\n },\n\n hidden: function(element, node) {\n return !isSelected(element, node);\n }\n\n }));\n\n\n // listenerId ///////////////\n group.entries.push(entryFactory.textField(translate, {\n id: 'listener-id',\n label: translate('Listener Id'),\n modelProperty: 'listenerId',\n\n get: function(element, node) {\n var value = {},\n listener = getSelectedListener(element, node);\n\n value.listenerId = (listener && listener.get('id')) || undefined;\n\n return value;\n },\n\n set: function(element, values, node) {\n var update = {},\n listener = getSelectedListener(element, node);\n\n update['id'] = values.listenerId || '';\n\n return cmdHelper.updateBusinessObject(element, listener, update);\n },\n\n hidden: function(element, node) {\n var listener = getSelectedListener(element, node);\n\n return !ImplementationTypeHelper.isTaskListener(listener);\n },\n\n validate: function(element, values, node) {\n var value = values.listenerId,\n listener = getSelectedListener(element, node),\n validate = {};\n\n if (!value && isTimeoutTaskListener(listener)) {\n validate.listenerId = translate('Must provide a value for timeout task listener');\n }\n\n return validate;\n }\n\n }));\n\n\n // listenerType ///////////////\n group.entries.push(entryFactory.selectBox(translate, {\n id: 'listener-type',\n label: translate('Listener Type'),\n selectOptions: [\n { value: classProp, name: translate('Java Class') },\n { value: expressionProp, name: translate('Expression') },\n { value: delegateExpressionProp, name: translate('Delegate Expression') },\n { value: scriptProp, name: translate('Script') }\n ],\n modelProperty: 'listenerType',\n emptyParameter: false,\n\n get: function(element, node) {\n var listener = getSelectedListener(element, node);\n return {\n listenerType: ImplementationTypeHelper.getImplementationType(listener)\n };\n },\n\n set: function(element, values, node) {\n var listener = getSelectedListener(element, node),\n listenerType = values.listenerType || undefined,\n update = {};\n\n update[classProp] = listenerType === classProp ? '' : undefined;\n update[expressionProp] = listenerType === expressionProp ? '' : undefined;\n update[delegateExpressionProp] = listenerType === delegateExpressionProp ? '' : undefined;\n update[scriptProp] = listenerType === scriptProp ? bpmnFactory.create('camunda:Script') : undefined;\n\n return cmdHelper.updateBusinessObject(element, listener, update);\n },\n\n hidden: function(element, node) {\n return !isSelected(element, node);\n }\n\n }));\n\n\n // listenerValue //////////////\n group.entries.push(entryFactory.textField(translate, {\n id: 'listener-value',\n dataValueLabel: 'listenerValueLabel',\n modelProperty: 'listenerValue',\n\n get: function(element, node) {\n var value = {},\n listener = getSelectedListener(element, node),\n listenerType = ImplementationTypeHelper.getImplementationType(listener);\n\n value.listenerValueLabel = LISTENER_TYPE_LABEL[listenerType] || '';\n value.listenerValue = (listener && listener.get(listenerType)) || undefined;\n\n return value;\n },\n\n set: function(element, values, node) {\n var update = {},\n listener = getSelectedListener(element, node),\n listenerType = ImplementationTypeHelper.getImplementationType(listener);\n\n update[listenerType] = values.listenerValue || '';\n\n return cmdHelper.updateBusinessObject(element, listener, update);\n },\n\n hidden: function(element, node) {\n var listener = getSelectedListener(element, node);\n return !listener || listener.script;\n },\n\n validate: function(element, values) {\n var value = values.listenerValue,\n validate = {};\n\n if (!value) {\n validate.listenerValue = translate('Must provide a value');\n }\n\n return validate;\n }\n\n }));\n\n\n // script ////////////////////\n var script = scriptImplementation('scriptFormat', 'value', true, translate);\n\n group.entries.push({\n id: 'listener-script-value',\n html: '
    ' +\n script.template +\n '
    ',\n\n get: function(element, node) {\n var listener = getSelectedListener(element, node);\n return listener && listener.script ? script.get(element, listener.script) : {};\n },\n\n set: function(element, values, node) {\n var listener = getSelectedListener(element, node);\n var update = script.set(element, values, listener);\n return cmdHelper.updateBusinessObject(element, listener.script, update);\n },\n\n validate: function(element, values, node) {\n var listener = getSelectedListener(element, node);\n return listener && listener.script ? script.validate(element, values) : {};\n },\n\n isScript: function(element, node) {\n var listener = getSelectedListener(element, node);\n return listener && listener.script;\n },\n\n script: script\n\n });\n\n\n // timerEventDefinition //////\n var timerEventDefinitionHandler = function(element, node) {\n var listener = getSelectedListener(element, node);\n\n if (!listener || !isTimeoutTaskListener(listener)) {\n return;\n }\n\n var timerEventDefinition = getTimerEventDefinition(listener);\n\n if (!timerEventDefinition) {\n return false;\n }\n\n return timerEventDefinition;\n };\n\n function createTimerEventDefinition(element, node) {\n\n var listener = getSelectedListener(element, node);\n\n if (!listener || !isTimeoutTaskListener(listener)) {\n return;\n }\n\n var eventDefinitions = listener.get('eventDefinitions') || [],\n timerEventDefinition = bpmnFactory.create('bpmn:TimerEventDefinition');\n\n eventDefinitions.push(timerEventDefinition);\n\n listener.eventDefinitions = eventDefinitions;\n\n return timerEventDefinition;\n }\n\n var timerOptions = {\n idPrefix: 'listener-',\n createTimerEventDefinition: createTimerEventDefinition\n };\n\n timerImplementation(group, element, bpmnFactory, timerEventDefinitionHandler, translate, timerOptions);\n\n};\n\n\n// helpers //////////////\n\nfunction isTimeoutTaskListener(listener) {\n var eventType = listener && listener.event;\n return eventType === 'timeout';\n}\n\nfunction getTimerEventDefinition(bo) {\n var eventDefinitions = bo.eventDefinitions || [];\n\n return find(eventDefinitions, function(event) {\n return is(event, 'bpmn:TimerEventDefinition');\n });\n\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js": /*!*********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js ***! \*********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar fieldInjection = __webpack_require__(/*! ./implementation/FieldInjection */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js\");\n\nmodule.exports = function(group, element, bpmnFactory, options, translate) {\n\n options = assign({\n idPrefix: 'listener-',\n insideListener: true\n }, options);\n\n var fieldInjectionEntry = fieldInjection(element, bpmnFactory, translate, options);\n\n if (fieldInjectionEntry && fieldInjectionEntry.length > 0) {\n group.entries = group.entries.concat(fieldInjectionEntry);\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js": /*!*******************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js ***! \*******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar listener = __webpack_require__(/*! ./implementation/Listener */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var listenerEntry = listener(element, bpmnFactory, {}, translate);\n\n group.entries = group.entries.concat(listenerEntry.entries);\n\n return {\n getSelectedListener: listenerEntry.getSelectedListener\n };\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js": /*!****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js ***! \****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar multiInstanceLoopCharacteristics = __webpack_require__(/*! ./implementation/MultiInstanceLoopCharacteristics */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js\");\n\nvar jobRetryTimeCycle = __webpack_require__(/*! ./implementation/JobRetryTimeCycle */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js\"),\n asyncContinuation = __webpack_require__(/*! ./implementation/AsyncContinuation */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js\");\n\n\nfunction getLoopCharacteristics(element) {\n var bo = getBusinessObject(element);\n return bo.loopCharacteristics;\n}\n\n\nfunction ensureMultiInstanceSupported(element) {\n var loopCharacteristics = getLoopCharacteristics(element);\n return !!loopCharacteristics && is(loopCharacteristics, 'camunda:Collectable');\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n if (!ensureMultiInstanceSupported(element)) {\n return;\n }\n\n // multi instance properties\n group.entries = group.entries.concat(multiInstanceLoopCharacteristics(element, bpmnFactory, translate));\n\n // async continuation ///////////////////////////////////////////////////////\n group.entries = group.entries.concat(asyncContinuation(element, bpmnFactory, {\n getBusinessObject: getLoopCharacteristics,\n idPrefix: 'multiInstance-',\n labelPrefix: translate('Multi Instance ')\n }, translate));\n\n\n // retry time cycle //////////////////////////////////////////////////////////\n group.entries = group.entries.concat(jobRetryTimeCycle(element, bpmnFactory, {\n getBusinessObject: getLoopCharacteristics,\n idPrefix: 'multiInstance-',\n labelPrefix: translate('Multi Instance ')\n }, translate));\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar outputParameters = __webpack_require__(/*! ./implementation/OutputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, elementTemplates, translate) {\n\n var template = elementTemplates.get(element);\n\n if (template) {\n return;\n }\n\n var outputParametersEntry = outputParameters(element, bpmnFactory, {}, translate);\n\n group.entries = group.entries.concat(outputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar processVariables = __webpack_require__(/*! ./implementation/ProcessVariables */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js\");\n\nmodule.exports = function(group, element, translate) {\n if (canHaveOverview(element)) {\n var processVariablesEntries = processVariables(element, translate);\n\n group.entries = group.entries.concat(processVariablesEntries);\n }\n};\n\n\n// helpers //////////\n\nfunction canHaveOverview(element) {\n var businessObject = getBusinessObject(element);\n\n return (\n isAny(element, ['bpmn:Process', 'bpmn:SubProcess']) ||\n (is(element, 'bpmn:Participant') && businessObject.get('processRef'))\n );\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar properties = __webpack_require__(/*! ./implementation/Properties */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js\"),\n elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var propertiesEntry = properties(element, bpmnFactory, {\n id: 'properties',\n modelProperties: [ 'name', 'value' ],\n labels: [ translate('Name'), translate('Value') ],\n\n getParent: function(element, node, bo) {\n return bo.extensionElements;\n },\n\n createParent: function(element, bo) {\n var parent = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n var cmd = cmdHelper.updateBusinessObject(element, bo, { extensionElements: parent });\n return {\n cmd: cmd,\n parent: parent\n };\n }\n }, translate);\n\n if (propertiesEntry) {\n group.entries.push(propertiesEntry);\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n scriptImplementation = __webpack_require__(/*! ./implementation/Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n var bo;\n\n if (is(element, 'bpmn:ScriptTask')) {\n bo = getBusinessObject(element);\n }\n\n if (!bo) {\n return;\n }\n\n var script = scriptImplementation('scriptFormat', 'script', false, translate);\n group.entries.push({\n id: 'script-implementation',\n label: translate('Script'),\n html: script.template,\n\n get: function(element) {\n return script.get(element, bo);\n },\n\n set: function(element, values, containerElement) {\n var properties = script.set(element, values, containerElement);\n\n return cmdHelper.updateProperties(element, properties);\n },\n\n validate: function(element, values) {\n return script.validate(element, values);\n },\n\n script : script,\n\n cssClasses: ['bpp-textfield']\n\n });\n\n group.entries.push(entryFactory.textField(translate, {\n id : 'scriptResultVariable',\n label : translate('Result Variable'),\n modelProperty : 'scriptResultVariable',\n\n get: function(element, propertyName) {\n var boResultVariable = bo.get('camunda:resultVariable');\n\n return { scriptResultVariable : boResultVariable };\n },\n\n set: function(element, values, containerElement) {\n return cmdHelper.updateProperties(element, {\n 'camunda:resultVariable': values.scriptResultVariable.length\n ? values.scriptResultVariable\n : undefined\n });\n }\n\n }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js": /*!******************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js ***! \******************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\"),\n InputOutputHelper = __webpack_require__(/*! ../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\");\n\nvar utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n escapeHTML = utils.escapeHTML,\n triggerClickEvent = utils.triggerClickEvent;\n\nvar implementationType = __webpack_require__(/*! ./implementation/ImplementationType */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js\"),\n delegate = __webpack_require__(/*! ./implementation/Delegate */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js\"),\n external = __webpack_require__(/*! ./implementation/External */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js\"),\n callable = __webpack_require__(/*! ./implementation/Callable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js\"),\n resultVariable = __webpack_require__(/*! ./implementation/ResultVariable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest,\n domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes;\n\nfunction getImplementationType(element) {\n return ImplementationTypeHelper.getImplementationType(element);\n}\n\nfunction getBusinessObject(element) {\n return ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n}\n\nfunction isDmnCapable(element) {\n return ImplementationTypeHelper.isDmnCapable(element);\n}\n\nfunction isExternalCapable(element) {\n return ImplementationTypeHelper.isExternalCapable(element);\n}\n\nfunction isServiceTaskLike(element) {\n return ImplementationTypeHelper.isServiceTaskLike(element);\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n if (!isServiceTaskLike(getBusinessObject(element))) {\n return;\n }\n\n var hasDmnSupport = isDmnCapable(element);\n var hasExternalSupport = isExternalCapable(getBusinessObject(element));\n\n // implementation type ////////////////////////////////////\n\n group.entries = group.entries.concat(implementationType(element, bpmnFactory, {\n getBusinessObject: getBusinessObject,\n getImplementationType: getImplementationType,\n hasDmnSupport: hasDmnSupport,\n hasExternalSupport: hasExternalSupport,\n hasServiceTaskLikeSupport: true\n }, translate));\n\n\n // delegate (class, expression, delegateExpression) //////////\n\n group.entries = group.entries.concat(delegate(element, bpmnFactory, {\n getBusinessObject: getBusinessObject,\n getImplementationType: getImplementationType\n }, translate));\n\n\n // result variable /////////////////////////////////////////\n\n group.entries = group.entries.concat(resultVariable(element, bpmnFactory, {\n getBusinessObject: getBusinessObject,\n getImplementationType: getImplementationType,\n hideResultVariable: function(element, node) {\n return getImplementationType(element) !== 'expression';\n }\n }, translate));\n\n // external //////////////////////////////////////////////////\n\n if (hasExternalSupport) {\n group.entries = group.entries.concat(external(element, bpmnFactory, {\n getBusinessObject: getBusinessObject,\n getImplementationType: getImplementationType\n }, translate));\n }\n\n\n // dmn ////////////////////////////////////////////////////////\n\n if (hasDmnSupport) {\n group.entries = group.entries.concat(callable(element, bpmnFactory, {\n getCallableType: getImplementationType\n }, translate));\n }\n\n\n // connector ////////////////////////////////////////////////\n\n var isConnector = function(element) {\n return getImplementationType(element) === 'connector';\n };\n\n group.entries.push(entryFactory.link(translate, {\n id: 'configureConnectorLink',\n buttonLabel: translate('Configure Connector'),\n handleClick: function(element, node, event) {\n\n var connectorTabEl = getTabNode(node, 'connector');\n\n if (connectorTabEl) {\n triggerClickEvent(connectorTabEl);\n }\n\n // suppress actual link click\n return false;\n },\n showLink: function(element, node) {\n var link = domQuery('a', node);\n link.textContent = '';\n\n domClasses(link).remove('bpp-error-message');\n\n if (isConnector(element)) {\n var connectorId = InputOutputHelper.getConnector(element).get('connectorId');\n if (connectorId) {\n link.textContent = translate('Configure Connector');\n } else {\n link.innerHTML = ' ' + escapeHTML(translate('Must configure Connector'));\n domClasses(link).add('bpp-error-message');\n }\n\n return true;\n }\n\n return false;\n }\n }));\n\n};\n\n\n\n// helpers ///////////////////////////\n\nfunction getTabNode(el, id) {\n var containerEl = domClosest(el, '.bpp-properties-panel');\n\n return domQuery('a[data-tab-target=\"' + id + '\"]', containerEl);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js": /*!*************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js ***! \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n\nmodule.exports = function(group, element, translate) {\n\n var bo = getBusinessObject(element);\n\n if (!bo) {\n return;\n }\n\n if (is(element, 'camunda:Initiator') && !is(element.parent, 'bpmn:SubProcess')) {\n group.entries.push(entryFactory.textField(translate, {\n id: 'initiator',\n label: translate('Initiator'),\n modelProperty: 'initiator'\n }));\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js": /*!*******************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js ***! \*******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\r\n\r\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\r\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\r\n\r\nvar tasklist = __webpack_require__(/*! ./implementation/Tasklist */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js\");\r\n\r\nmodule.exports = function(group, element, bpmnFactory, translate) {\r\n var businessObject = getBusinessObject(element);\r\n\r\n if (is(element, 'camunda:Process') ||\r\n is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\r\n\r\n group.entries = group.entries.concat(tasklist(element, bpmnFactory, {\r\n getBusinessObject: function(element) {\r\n var bo = getBusinessObject(element);\r\n\r\n if (!is(bo, 'bpmn:Participant')) {\r\n return bo;\r\n }\r\n\r\n return bo.get('processRef');\r\n }\r\n }, translate));\r\n\r\n }\r\n};\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js": /*!*******************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js ***! \*******************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n\nmodule.exports = function(group, element, translate) {\n if (is(element, 'camunda:Assignable')) {\n\n // Assignee\n group.entries.push(entryFactory.textField(translate, {\n id : 'assignee',\n label : translate('Assignee'),\n modelProperty : 'assignee'\n }));\n\n // Candidate Users\n group.entries.push(entryFactory.textField(translate, {\n id : 'candidateUsers',\n label : translate('Candidate Users'),\n modelProperty : 'candidateUsers'\n }));\n\n // Candidate Groups\n group.entries.push(entryFactory.textField(translate, {\n id : 'candidateGroups',\n label : translate('Candidate Groups'),\n modelProperty : 'candidateGroups'\n }));\n\n // Due Date\n group.entries.push(entryFactory.textField(translate, {\n id : 'dueDate',\n description : translate('The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)'),\n label : translate('Due Date'),\n modelProperty : 'dueDate'\n }));\n\n // FollowUp Date\n group.entries.push(entryFactory.textField(translate, {\n id : 'followUpDate',\n description : translate('The follow up date as an EL expression (e.g. ${someDate} or an ' +\n 'ISO date (e.g. 2015-06-26T09:54:00)'),\n label : translate('Follow Up Date'),\n modelProperty : 'followUpDate'\n }));\n\n // priority\n group.entries.push(entryFactory.textField(translate, {\n id : 'priority',\n label : translate('Priority'),\n modelProperty : 'priority'\n }));\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js": /*!**************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js ***! \**************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\");\n\nvar extensionElementsHelper = __webpack_require__(/*! ../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\n\nvar extensionElementsEntry = __webpack_require__(/*! ./implementation/ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n/**\n * return depend on parameter 'type' camunda:in or camunda:out extension elements\n */\nfunction getCamundaInOutMappings(element, type) {\n var bo = getBusinessObject(element);\n\n var signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(bo);\n\n return extensionElementsHelper.getExtensionElements(signalEventDefinition || bo, type);\n}\n\n/**\n * return depend on parameter 'type' camunda:in or camunda:out extension elements\n * with source or sourceExpression attribute\n */\nfunction getVariableMappings(element, type) {\n var camundaMappings = getCamundaInOutMappings(element, type);\n\n return filter(camundaMappings, function(mapping) {\n return !mapping.businessKey;\n });\n}\n\nfunction getInOutType(mapping) {\n var inOutType = 'source';\n\n if (mapping.variables === 'all') {\n inOutType = 'variables';\n }\n else if (typeof mapping.source !== 'undefined') {\n inOutType = 'source';\n }\n else if (typeof mapping.sourceExpression !== 'undefined') {\n inOutType = 'sourceExpression';\n }\n\n return inOutType;\n}\n\nvar CAMUNDA_IN_EXTENSION_ELEMENT = 'camunda:In',\n CAMUNDA_OUT_EXTENSION_ELEMENT = 'camunda:Out';\n\nvar WHITESPACE_REGEX = /\\s/;\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n var inOutTypeOptions = [\n {\n name: translate('Source'),\n value: 'source'\n },\n {\n name: translate('Source Expression'),\n value: 'sourceExpression'\n },\n {\n name: translate('All'),\n value: 'variables'\n }\n ];\n\n var signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(element);\n\n if (!is(element, 'camunda:CallActivity') && !signalEventDefinition) {\n return;\n }\n\n if (signalEventDefinition && !(isAny(element, [\n 'bpmn:IntermediateThrowEvent',\n 'bpmn:EndEvent'\n ]))) {\n return;\n }\n\n var isSelected = function(element, node) {\n return !!getSelected(element, node);\n };\n\n var getSelected = function(element, node) {\n var parentNode = node.parentNode;\n var selection = inEntry.getSelected(element, parentNode);\n\n var parameter = getVariableMappings(element, CAMUNDA_IN_EXTENSION_ELEMENT)[selection.idx];\n\n if (!parameter && outEntry) {\n selection = outEntry.getSelected(element, parentNode);\n parameter = getVariableMappings(element, CAMUNDA_OUT_EXTENSION_ELEMENT)[selection.idx];\n }\n\n return parameter;\n };\n\n var setOptionLabelValue = function(type) {\n return function(element, node, option, property, value, idx) {\n var variableMappings = getVariableMappings(element, type);\n var mappingValue = variableMappings[idx];\n var label = (mappingValue.target || '') + ' := ';\n var mappingType = getInOutType(mappingValue);\n\n if (mappingType === 'variables') {\n label = 'all';\n }\n else if (mappingType === 'source') {\n label = label + (mappingValue.source || '');\n }\n else if (mappingType === 'sourceExpression') {\n label = label + (mappingValue.sourceExpression || '');\n } else {\n label = label + '';\n }\n\n option.text = label;\n };\n };\n\n var newElement = function(type) {\n return function(element, extensionElements, value) {\n var newElem = elementHelper.createElement(type, { source: '' }, extensionElements, bpmnFactory);\n\n return cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newElem ]);\n };\n };\n\n var removeElement = function(type) {\n return function(element, extensionElements, value, idx) {\n var variablesMappings= getVariableMappings(element, type);\n var mapping = variablesMappings[idx];\n\n if (mapping) {\n return extensionElementsHelper\n .removeEntry(signalEventDefinition || getBusinessObject(element), element, mapping);\n }\n };\n };\n\n // in mapping for source and sourceExpression ///////////////////////////////////////////////////////////////\n\n var inEntry = extensionElementsEntry(element, bpmnFactory, {\n id: 'variableMapping-in',\n label: translate('In Mapping'),\n modelProperty: 'source',\n prefix: 'In',\n idGeneration: false,\n resizable: true,\n businessObject: signalEventDefinition || getBusinessObject(element),\n\n createExtensionElement: newElement(CAMUNDA_IN_EXTENSION_ELEMENT),\n removeExtensionElement: removeElement(CAMUNDA_IN_EXTENSION_ELEMENT),\n\n getExtensionElements: function(element) {\n return getVariableMappings(element, CAMUNDA_IN_EXTENSION_ELEMENT);\n },\n\n onSelectionChange: function(element, node, event, scope) {\n outEntry && outEntry.deselect(element, node.parentNode);\n },\n\n setOptionLabelValue: setOptionLabelValue(CAMUNDA_IN_EXTENSION_ELEMENT)\n });\n group.entries.push(inEntry);\n\n // out mapping for source and sourceExpression ///////////////////////////////////////////////////////\n\n if (!signalEventDefinition) {\n var outEntry = extensionElementsEntry(element, bpmnFactory, {\n id: 'variableMapping-out',\n label: translate('Out Mapping'),\n modelProperty: 'source',\n prefix: 'Out',\n idGeneration: false,\n resizable: true,\n\n createExtensionElement: newElement(CAMUNDA_OUT_EXTENSION_ELEMENT),\n removeExtensionElement: removeElement(CAMUNDA_OUT_EXTENSION_ELEMENT),\n\n getExtensionElements: function(element) {\n return getVariableMappings(element, CAMUNDA_OUT_EXTENSION_ELEMENT);\n },\n\n onSelectionChange: function(element, node, event, scope) {\n inEntry.deselect(element, node.parentNode);\n },\n\n setOptionLabelValue: setOptionLabelValue(CAMUNDA_OUT_EXTENSION_ELEMENT)\n });\n group.entries.push(outEntry);\n }\n\n // label for selected mapping ///////////////////////////////////////////////////////\n\n group.entries.push(entryFactory.label({\n id: 'variableMapping-typeLabel',\n get: function(element, node) {\n var mapping = getSelected(element, node);\n\n var value = '';\n if (is(mapping, CAMUNDA_IN_EXTENSION_ELEMENT)) {\n value = translate('In Mapping');\n }\n else if (is(mapping, CAMUNDA_OUT_EXTENSION_ELEMENT)) {\n value = translate('Out Mapping');\n }\n\n return {\n label: value\n };\n },\n\n showLabel: function(element, node) {\n return isSelected(element, node);\n }\n }));\n\n\n group.entries.push(entryFactory.selectBox(translate, {\n id: 'variableMapping-inOutType',\n label: translate('Type'),\n selectOptions: inOutTypeOptions,\n modelProperty: 'inOutType',\n get: function(element, node) {\n var mapping = getSelected(element, node) || {};\n return {\n inOutType: getInOutType(mapping)\n };\n },\n set: function(element, values, node) {\n var inOutType = values.inOutType;\n\n var props = {\n 'source' : undefined,\n 'sourceExpression' : undefined,\n 'variables' : undefined\n };\n\n if (inOutType === 'source') {\n props.source = '';\n }\n else if (inOutType === 'sourceExpression') {\n props.sourceExpression = '';\n }\n else if (inOutType === 'variables') {\n props.variables = 'all';\n props.target = undefined;\n }\n\n var mapping = getSelected(element, node);\n return cmdHelper.updateBusinessObject(element, mapping, props);\n },\n hidden: function(element, node) {\n return !isSelected(element, node);\n }\n\n }));\n\n\n group.entries.push(entryFactory.textField(translate, {\n id: 'variableMapping-source',\n dataValueLabel: 'sourceLabel',\n modelProperty: 'source',\n get: function(element, node) {\n var mapping = getSelected(element, node) || {};\n\n var label = '';\n var inOutType = getInOutType(mapping);\n if (inOutType === 'source') {\n label = translate('Source');\n }\n else if (inOutType === 'sourceExpression') {\n label = translate('Source Expression');\n }\n\n return {\n source: mapping[inOutType],\n sourceLabel: label\n };\n },\n set: function(element, values, node) {\n values.source = values.source || undefined;\n\n var mapping = getSelected(element, node);\n var inOutType = getInOutType(mapping);\n\n var props = {};\n props[inOutType] = values.source || '';\n\n return cmdHelper.updateBusinessObject(element, mapping, props);\n },\n\n // one of both (source or sourceExpression) must have a value to make\n // the configuration easier and more understandable\n // it is not engine conform\n validate: function(element, values, node) {\n var mapping = getSelected(element, node);\n\n var validation = {};\n if (mapping) {\n if (!values.source) {\n validation.source =\n validation.source = values.sourceLabel ?\n translate('Mapping must have a {value}', { value: values.sourceLabel.toLowerCase() }) :\n translate('Mapping must have a value');\n }\n\n var inOutType = getInOutType(mapping);\n\n if (WHITESPACE_REGEX.test(values.source) && inOutType !== 'sourceExpression') {\n validation.source = translate('{label} must not contain whitespace', { label: values.sourceLabel });\n }\n }\n\n return validation;\n },\n hidden: function(element, node) {\n var selectedMapping = getSelected(element, node);\n return !selectedMapping || (selectedMapping && selectedMapping.variables);\n }\n }));\n\n\n group.entries.push(entryFactory.textField(translate, {\n id: 'variableMapping-target',\n label: translate('Target'),\n modelProperty: 'target',\n get: function(element, node) {\n return {\n target: (getSelected(element, node) || {}).target\n };\n },\n set: function(element, values, node) {\n values.target = values.target || undefined;\n var mapping = getSelected(element, node);\n return cmdHelper.updateBusinessObject(element, mapping, values);\n },\n validate: function(element, values, node) {\n var mapping = getSelected(element, node);\n\n var validation = {};\n if (mapping) {\n var mappingType = getInOutType(mapping);\n\n if (!values.target && mappingType !== 'variables') {\n validation.target = translate('Mapping must have a target');\n }\n\n if (values.target\n && WHITESPACE_REGEX.test(values.target)\n && mappingType !== 'variables') {\n validation.target = translate('Target must not contain whitespace');\n }\n }\n\n return validation;\n },\n hidden: function(element, node) {\n var selectedMapping = getSelected(element, node);\n return !selectedMapping || (selectedMapping && selectedMapping.variables);\n }\n }));\n\n\n group.entries.push(entryFactory.checkbox(translate, {\n id: 'variableMapping-local',\n label: translate('Local'),\n modelProperty: 'local',\n get: function(element, node) {\n return {\n local: (getSelected(element, node) || {}).local\n };\n },\n set: function(element, values, node) {\n values.local = values.local || false;\n var mapping = getSelected(element, node);\n return cmdHelper.updateBusinessObject(element, mapping, values);\n },\n hidden: function(element, node) {\n return !isSelected(element, node);\n }\n }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js ***! \*********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nmodule.exports = function(group, element, translate) {\n\n var bo = getBusinessObject(element);\n\n if (!bo) {\n return;\n }\n\n if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && bo.get('processRef')) {\n var versionTagEntry = entryFactory.textField(translate, {\n id: 'versionTag',\n label: translate('Version Tag'),\n modelProperty: 'versionTag'\n });\n\n // in participants we have to change the default behavior of set and get\n if (is(element, 'bpmn:Participant')) {\n versionTagEntry.get = function(element) {\n var processBo = bo.get('processRef');\n\n return {\n versionTag: processBo.get('camunda:versionTag')\n };\n };\n\n versionTagEntry.set = function(element, values) {\n var processBo = bo.get('processRef');\n\n return cmdHelper.updateBusinessObject(element, processBo, {\n 'camunda:versionTag': values.versionTag || undefined\n });\n };\n }\n\n group.entries.push(versionTagEntry);\n\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar asyncCapableHelper = __webpack_require__(/*! ../../../../helper/AsyncCapableHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js\"),\n eventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nfunction isAsyncBefore(bo) {\n return asyncCapableHelper.isAsyncBefore(bo);\n}\n\nfunction isAsyncAfter(bo) {\n return asyncCapableHelper.isAsyncAfter(bo);\n}\n\nfunction isExclusive(bo) {\n return asyncCapableHelper.isExclusive(bo);\n}\n\nfunction removeFailedJobRetryTimeCycle(bo, element) {\n return asyncCapableHelper.removeFailedJobRetryTimeCycle(bo, element);\n}\n\nfunction canRemoveFailedJobRetryTimeCycle(element) {\n return !eventDefinitionHelper.getTimerEventDefinition(element);\n}\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject;\n\n var idPrefix = options.idPrefix || '',\n labelPrefix = options.labelPrefix || '';\n\n\n var asyncBeforeEntry = entryFactory.checkbox(translate, {\n id: idPrefix + 'asyncBefore',\n label: labelPrefix + translate('Asynchronous Before'),\n modelProperty: 'asyncBefore',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return {\n asyncBefore: isAsyncBefore(bo)\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n var asyncBefore = !!values.asyncBefore;\n\n var props = {\n 'camunda:asyncBefore': asyncBefore,\n 'camunda:async': false\n };\n\n var commands = [];\n if (!isAsyncAfter(bo) && !asyncBefore) {\n props = assign({ 'camunda:exclusive' : true }, props);\n if (canRemoveFailedJobRetryTimeCycle(element)) {\n commands.push(removeFailedJobRetryTimeCycle(bo, element));\n }\n }\n\n commands.push(cmdHelper.updateBusinessObject(element, bo, props));\n return commands;\n }\n });\n\n\n var asyncAfterEntry = entryFactory.checkbox(translate, {\n id: idPrefix + 'asyncAfter',\n label: labelPrefix + translate('Asynchronous After'),\n modelProperty: 'asyncAfter',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return {\n asyncAfter: isAsyncAfter(bo)\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n var asyncAfter = !!values.asyncAfter;\n\n var props = {\n 'camunda:asyncAfter': asyncAfter\n };\n\n var commands = [];\n if (!isAsyncBefore(bo) && !asyncAfter) {\n props = assign({ 'camunda:exclusive' : true }, props);\n if (canRemoveFailedJobRetryTimeCycle(element)) {\n commands.push(removeFailedJobRetryTimeCycle(bo, element));\n }\n }\n\n commands.push(cmdHelper.updateBusinessObject(element, bo, props));\n return commands;\n }\n });\n\n\n var exclusiveEntry = entryFactory.checkbox(translate, {\n id: idPrefix + 'exclusive',\n label: labelPrefix + translate('Exclusive'),\n modelProperty: 'exclusive',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return { exclusive: isExclusive(bo) };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, { 'camunda:exclusive': !!values.exclusive });\n },\n\n hidden: function(element) {\n var bo = getBusinessObject(element);\n return bo && !isAsyncAfter(bo) && !isAsyncBefore(bo);\n }\n });\n\n return [ asyncBeforeEntry, asyncAfterEntry, exclusiveEntry ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\");\n\n\nvar resultVariable = __webpack_require__(/*! ./ResultVariable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js\");\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar attributeInfo = {\n bpmn: {\n element: 'calledElement',\n binding: 'camunda:calledElementBinding',\n version: 'camunda:calledElementVersion',\n versionTag: 'camunda:calledElementVersionTag',\n tenantId: 'camunda:calledElementTenantId'\n },\n\n cmmn: {\n element: 'camunda:caseRef',\n binding: 'camunda:caseBinding',\n version: 'camunda:caseVersion',\n tenantId: 'camunda:caseTenantId'\n },\n\n dmn: {\n element: 'camunda:decisionRef',\n binding: 'camunda:decisionRefBinding',\n version: 'camunda:decisionRefVersion',\n versionTag: 'camunda:decisionRefVersionTag',\n tenantId: 'camunda:decisionRefTenantId'\n }\n};\n\nvar mapDecisionResultOptions = [\n {\n name: 'singleEntry (TypedValue)',\n value: 'singleEntry'\n },\n {\n name:'singleResult (Map)',\n value:'singleResult'\n },\n {\n name:'collectEntries (List)',\n value:'collectEntries'\n },\n {\n name:'resultList (List>)',\n value:'resultList'\n }\n];\n\nvar delegateVariableMappingOptions = [\n {\n name: 'variableMappingClass',\n value: 'variableMappingClass'\n },\n {\n name: 'variableMappingDelegateExpression',\n value: 'variableMappingDelegateExpression'\n }\n];\n\nfunction getCamundaInWithBusinessKey(element) {\n var camundaIn = [],\n bo = getBusinessObject(element);\n\n var camundaInParams = extensionElementsHelper.getExtensionElements(bo, 'camunda:In');\n\n forEach(camundaInParams, function(param) {\n if (param.businessKey !== undefined) {\n camundaIn.push(param);\n }\n });\n\n return camundaIn;\n}\n\nfunction setBusinessKey(element, text, bpmnFactory) {\n var commands = [];\n\n var camundaInWithBusinessKey = getCamundaInWithBusinessKey(element);\n\n if (camundaInWithBusinessKey.length) {\n commands.push(cmdHelper.updateBusinessObject(element, camundaInWithBusinessKey[0], {\n businessKey: text\n }));\n } else {\n var bo = getBusinessObject(element),\n extensionElements = bo.extensionElements;\n\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateProperties(element, { extensionElements: extensionElements }));\n }\n\n var camundaIn = elementHelper.createElement(\n 'camunda:In',\n { 'businessKey': text },\n extensionElements,\n bpmnFactory\n );\n\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n 'extensionElements',\n [ camundaIn ],[]\n ));\n }\n\n return commands;\n}\n\nfunction deleteBusinessKey(element) {\n var camundaInExtensions = getCamundaInWithBusinessKey(element);\n var commands = [];\n forEach(camundaInExtensions, function(elem) {\n commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, elem));\n });\n return commands;\n}\n\nfunction isSupportedCallableType(type) {\n return [ 'bpmn', 'cmmn', 'dmn' ].indexOf(type) !== -1;\n}\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var bindingOptions = [\n {\n name: translate('latest'),\n value: 'latest'\n },\n {\n name: translate('deployment'),\n value: 'deployment'\n },\n {\n name: translate('version'),\n value: 'version'\n },\n {\n name: translate('versionTag'),\n value: 'versionTag'\n }\n ];\n\n var getCallableType = options.getCallableType;\n\n var entries = [];\n\n function getAttribute(element, prop) {\n var type = getCallableType(element);\n return (attributeInfo[type] || {})[prop];\n }\n\n function getCallActivityBindingValue(element) {\n var type = getCallableType(element);\n var bo = getBusinessObject(element);\n var attr = (attributeInfo[type] || {}).binding;\n return bo.get(attr);\n }\n\n function getDelegateVariableMappingType(element) {\n var bo = getBusinessObject(element);\n\n var boVariableMappingClass = bo.get('camunda:variableMappingClass'),\n boVariableMappingDelegateExpression = bo.get('camunda:variableMappingDelegateExpression');\n\n var delegateVariableMappingType = '';\n if (typeof boVariableMappingClass !== 'undefined') {\n delegateVariableMappingType = 'variableMappingClass';\n } else\n\n if (typeof boVariableMappingDelegateExpression !== 'undefined') {\n delegateVariableMappingType = 'variableMappingDelegateExpression';\n }\n\n return delegateVariableMappingType;\n }\n\n\n entries.push(entryFactory.textField(translate, {\n id: 'callable-element-ref',\n dataValueLabel: 'callableElementLabel',\n modelProperty: 'callableElementRef',\n\n get: function(element, node) {\n var callableElementRef;\n\n var attr = getAttribute(element, 'element');\n if (attr) {\n var bo = getBusinessObject(element);\n callableElementRef = bo.get(attr);\n }\n\n var label = '';\n var type = getCallableType(element);\n if (type === 'bpmn') {\n label = translate('Called Element');\n }\n else if (type === 'cmmn') {\n label = translate('Case Ref');\n }\n else if (type === 'dmn') {\n label = translate('Decision Ref');\n }\n\n return {\n callableElementRef: callableElementRef,\n callableElementLabel: label\n };\n },\n\n set: function(element, values, node) {\n var newCallableElementRef = values.callableElementRef;\n var attr = getAttribute(element, 'element');\n\n var props = {};\n props[attr] = newCallableElementRef || '';\n\n return cmdHelper.updateProperties(element, props);\n },\n\n validate: function(element, values, node) {\n var elementRef = values.callableElementRef;\n var type = getCallableType(element);\n return isSupportedCallableType(type) && !elementRef ? { callableElementRef: translate('Must provide a value') } : {};\n },\n\n hidden: function(element, node) {\n return !isSupportedCallableType(getCallableType(element));\n }\n\n }));\n\n entries.push(entryFactory.selectBox(translate, {\n id: 'callable-binding',\n label: translate('Binding'),\n selectOptions: function(element) {\n var type = getCallableType(element);\n var options;\n\n if (type === 'cmmn') {\n options = bindingOptions.filter(function(bindingOption) {\n return bindingOption.value !== 'versionTag';\n });\n } else {\n options = bindingOptions;\n }\n return options;\n },\n modelProperty: 'callableBinding',\n\n get: function(element, node) {\n var callableBinding;\n\n var attr = getAttribute(element, 'binding');\n if (attr) {\n var bo = getBusinessObject(element);\n callableBinding = bo.get(attr) || 'latest';\n }\n\n return {\n callableBinding: callableBinding\n };\n },\n\n set: function(element, values, node) {\n var binding = values.callableBinding;\n var attr = getAttribute(element, 'binding'),\n attrVer = getAttribute(element, 'version'),\n attrVerTag = getAttribute(element, 'versionTag');\n\n var props = {};\n props[attr] = binding;\n\n // set version and versionTag values always to undefined to delete the existing value\n props[attrVer] = undefined;\n props[attrVerTag] = undefined;\n\n return cmdHelper.updateProperties(element, props);\n },\n\n hidden: function(element, node) {\n return !isSupportedCallableType(getCallableType(element));\n }\n\n }));\n\n entries.push(entryFactory.textField(translate, {\n id: 'callable-version',\n label: translate('Version'),\n modelProperty: 'callableVersion',\n\n get: function(element, node) {\n var callableVersion;\n\n var attr = getAttribute(element, 'version');\n if (attr) {\n var bo = getBusinessObject(element);\n callableVersion = bo.get(attr);\n }\n\n return {\n callableVersion: callableVersion\n };\n },\n\n set: function(element, values, node) {\n var version = values.callableVersion;\n var attr = getAttribute(element, 'version');\n\n var props = {};\n props[attr] = version || undefined;\n\n return cmdHelper.updateProperties(element, props);\n },\n\n validate: function(element, values, node) {\n var version = values.callableVersion;\n\n var type = getCallableType(element);\n return (\n isSupportedCallableType(type) &&\n getCallActivityBindingValue(element) === 'version' && (\n !version ? { callableVersion: translate('Must provide a value') } : {}\n )\n );\n },\n\n hidden: function(element, node) {\n var type = getCallableType(element);\n return !isSupportedCallableType(type) || getCallActivityBindingValue(element) !== 'version';\n }\n\n }));\n\n entries.push(entryFactory.textField(translate, {\n id: 'callable-version-tag',\n label: translate('Version Tag'),\n modelProperty: 'versionTag',\n\n get: function(element, node) {\n var versionTag;\n\n var attr = getAttribute(element, 'versionTag');\n\n if (attr) {\n var bo = getBusinessObject(element);\n\n versionTag = bo.get(attr);\n }\n\n return {\n versionTag: versionTag\n };\n },\n\n set: function(element, values, node) {\n var versionTag = values.versionTag;\n\n var attr = getAttribute(element, 'versionTag');\n\n var props = {};\n\n props[attr] = versionTag || undefined;\n\n return cmdHelper.updateProperties(element, props);\n },\n\n validate: function(element, values, node) {\n var versionTag = values.versionTag;\n\n var type = getCallableType(element);\n\n return (\n isSupportedCallableType(type) &&\n getCallActivityBindingValue(element) === 'versionTag' && (\n !versionTag ? { versionTag: translate('Must provide a value') } : {}\n )\n );\n },\n\n hidden: function(element, node) {\n var type = getCallableType(element);\n\n return !isSupportedCallableType(type) || getCallActivityBindingValue(element) !== 'versionTag';\n }\n\n }));\n\n entries.push(entryFactory.textField(translate, {\n id: 'tenant-id',\n label: translate('Tenant Id'),\n modelProperty: 'tenantId',\n\n get: function(element, node) {\n var tenantId;\n\n var attr = getAttribute(element, 'tenantId');\n if (attr) {\n var bo = getBusinessObject(element);\n tenantId = bo.get(attr);\n }\n\n return {\n tenantId: tenantId\n };\n },\n\n set: function(element, values, node) {\n var tenantId = values.tenantId;\n var attr = getAttribute(element, 'tenantId');\n\n var props = {};\n props[attr] = tenantId || undefined;\n\n return cmdHelper.updateProperties(element, props);\n },\n\n hidden: function(element, node) {\n var type = getCallableType(element);\n return !isSupportedCallableType(type);\n }\n\n }));\n\n if (is(getBusinessObject(element), 'bpmn:CallActivity')) {\n entries.push(entryFactory.checkbox(translate, {\n id: 'callable-business-key',\n label: translate('Business Key'),\n modelProperty: 'callableBusinessKey',\n\n get: function(element, node) {\n var camundaIn = getCamundaInWithBusinessKey(element);\n\n return {\n callableBusinessKey: !!(camundaIn && camundaIn.length > 0)\n };\n },\n\n set: function(element, values, node) {\n if (values.callableBusinessKey) {\n return setBusinessKey(element, '#{execution.processBusinessKey}', bpmnFactory);\n } else {\n return deleteBusinessKey(element);\n }\n }\n }));\n }\n\n entries.push(entryFactory.textField(translate, {\n id: 'business-key-expression',\n label: translate('Business Key Expression'),\n modelProperty: 'businessKey',\n\n get: function(element, node) {\n var camundaInWithBusinessKey = getCamundaInWithBusinessKey(element);\n\n return {\n businessKey: (\n camundaInWithBusinessKey.length ?\n camundaInWithBusinessKey[0].get('camunda:businessKey') :\n undefined\n )\n };\n },\n\n set: function(element, values, node) {\n var businessKey = values.businessKey;\n\n return setBusinessKey(element, businessKey, bpmnFactory);\n },\n\n validate: function(element, values, node) {\n var businessKey = values.businessKey;\n\n return businessKey === '' ? { businessKey: translate('Must provide a value') } : {};\n },\n\n hidden: function(element, node) {\n return !getCamundaInWithBusinessKey(element).length;\n }\n\n }));\n\n entries = entries.concat(resultVariable(element, bpmnFactory, {\n id: 'dmn-resultVariable',\n getBusinessObject: getBusinessObject,\n getImplementationType: getCallableType,\n hideResultVariable: function(element, node) {\n return getCallableType(element) !== 'dmn';\n }\n }, translate));\n\n entries.push(entryFactory.selectBox(translate, {\n id: 'dmn-map-decision-result',\n label: translate('Map Decision Result'),\n selectOptions: mapDecisionResultOptions,\n modelProperty: 'mapDecisionResult',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return {\n mapDecisionResult: bo.get('camunda:mapDecisionResult') || 'resultList'\n };\n },\n\n set: function(element, values, node) {\n return cmdHelper.updateProperties(element, {\n 'camunda:mapDecisionResult': values.mapDecisionResult || 'resultList'\n });\n },\n\n hidden: function(element, node) {\n var bo = getBusinessObject(element);\n var resultVariable = bo.get('camunda:resultVariable');\n return !(getCallableType(element) === 'dmn' && typeof resultVariable !== 'undefined');\n }\n\n }));\n\n\n entries.push(entryFactory.selectBox(translate, {\n id: 'delegateVariableMappingType',\n label: translate('Delegate Variable Mapping'),\n selectOptions: delegateVariableMappingOptions,\n emptyParameter: true,\n modelProperty: 'delegateVariableMappingType',\n\n get: function(element, node) {\n return {\n delegateVariableMappingType : getDelegateVariableMappingType(element)\n };\n },\n\n set: function(element, values, node) {\n var delegateVariableMappingType = values.delegateVariableMappingType;\n\n var props = {\n 'camunda:variableMappingClass' : undefined,\n 'camunda:variableMappingDelegateExpression' : undefined\n };\n\n if (delegateVariableMappingType === 'variableMappingClass') {\n props['camunda:variableMappingClass'] = '';\n }\n else if (delegateVariableMappingType === 'variableMappingDelegateExpression') {\n props['camunda:variableMappingDelegateExpression'] = '';\n }\n\n return cmdHelper.updateProperties(element, props);\n },\n\n hidden: function(element, node) {\n return (getCallableType(element) !== 'bpmn');\n }\n\n }));\n\n entries.push(entryFactory.textField(translate, {\n id: 'delegateVariableMapping',\n dataValueLabel: 'delegateVariableMappingLabel',\n modelProperty: 'delegateVariableMapping',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n\n var label = '';\n var delegateVariableMapping = undefined;\n var type = getDelegateVariableMappingType(element);\n\n if (type === 'variableMappingClass') {\n label = translate('Class');\n delegateVariableMapping = bo.get('camunda:variableMappingClass');\n }\n else if (type === 'variableMappingDelegateExpression') {\n label = translate('Delegate Expression');\n delegateVariableMapping = bo.get('camunda:variableMappingDelegateExpression');\n }\n\n return {\n delegateVariableMapping: delegateVariableMapping,\n delegateVariableMappingLabel: label\n };\n },\n\n set: function(element, values, node) {\n var delegateVariableMapping = values.delegateVariableMapping;\n\n var attr = 'camunda:' + getDelegateVariableMappingType(element);\n\n var props = {};\n props[attr] = delegateVariableMapping || undefined;\n\n return cmdHelper.updateProperties(element, props);\n },\n\n validate: function(element, values, node) {\n var delegateVariableMapping = values.delegateVariableMapping;\n return (\n getCallableType(element) === 'bpmn' && (\n !delegateVariableMapping ? { delegateVariableMapping: translate('Must provide a value') } : {}\n )\n );\n },\n\n hidden: function(element, node) {\n return !(getCallableType(element) === 'bpmn' && getDelegateVariableMappingType(element) !== '');\n }\n\n }));\n\n return entries;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js ***! \*************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject;\n\n var candidateStarterGroupsEntry = entryFactory.textField(translate, {\n id: 'candidateStarterGroups',\n label: translate('Candidate Starter Groups'),\n modelProperty: 'candidateStarterGroups',\n description: translate('Specify more than one group as a comma separated list.'),\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n var candidateStarterGroups = bo.get('camunda:candidateStarterGroups');\n\n return {\n candidateStarterGroups: candidateStarterGroups ? candidateStarterGroups : ''\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, {\n 'camunda:candidateStarterGroups': values.candidateStarterGroups || undefined\n });\n }\n\n });\n\n var candidateStarterUsersEntry = entryFactory.textField(translate, {\n id: 'candidateStarterUsers',\n label: translate('Candidate Starter Users'),\n modelProperty: 'candidateStarterUsers',\n description: translate('Specify more than one user as a comma separated list.'),\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n var candidateStarterUsers = bo.get('camunda:candidateStarterUsers');\n\n return {\n candidateStarterUsers: candidateStarterUsers ? candidateStarterUsers : ''\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, {\n 'camunda:candidateStarterUsers': values.candidateStarterUsers || undefined\n });\n }\n\n });\n\n return [\n candidateStarterGroupsEntry,\n candidateStarterUsersEntry\n ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar DELEGATE_TYPES = [\n 'class',\n 'expression',\n 'delegateExpression'\n];\n\nvar PROPERTIES = {\n class: 'camunda:class',\n expression: 'camunda:expression',\n delegateExpression: 'camunda:delegateExpression'\n};\n\nfunction isDelegate(type) {\n return DELEGATE_TYPES.indexOf(type) !== -1;\n}\n\nfunction getAttribute(type) {\n return PROPERTIES[type];\n}\n\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getImplementationType = options.getImplementationType,\n getBusinessObject = options.getBusinessObject;\n\n function getDelegationLabel(type) {\n switch (type) {\n case 'class':\n return translate('Java Class');\n case 'expression':\n return translate('Expression');\n case 'delegateExpression':\n return translate('Delegate Expression');\n default:\n return '';\n }\n }\n\n var delegateEntry = entryFactory.textField(translate, {\n id: 'delegate',\n label: translate('Value'),\n dataValueLabel: 'delegationLabel',\n modelProperty: 'delegate',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n var type = getImplementationType(element);\n var attr = getAttribute(type);\n var label = getDelegationLabel(type);\n return {\n delegate: bo.get(attr),\n delegationLabel: label\n };\n },\n\n set: function(element, values, node) {\n var bo = getBusinessObject(element);\n var type = getImplementationType(element);\n var attr = getAttribute(type);\n var prop = {};\n prop[attr] = values.delegate || '';\n return cmdHelper.updateBusinessObject(element, bo, prop);\n },\n\n validate: function(element, values, node) {\n return isDelegate(getImplementationType(element)) && !values.delegate ? { delegate: translate('Must provide a value') } : {};\n },\n\n hidden: function(element, node) {\n return !isDelegate(getImplementationType(element));\n }\n\n });\n\n return [ delegateEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js": /*!*****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js ***! \*****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementReferenceProperty = __webpack_require__(/*! ../../../bpmn/parts/implementation/ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nmodule.exports = function(\n group, element, bpmnFactory, errorEventDefinition,\n showErrorCodeVariable, showErrorMessageVariable, translate\n) {\n\n\n var getValue = function(modelProperty) {\n return function(element) {\n var modelPropertyValue = errorEventDefinition.get('camunda:' + modelProperty);\n\n return modelPropertyValue;\n };\n };\n\n var setValue = function(modelProperty) {\n return function(element, values) {\n if (values[modelProperty] === '')\n values[modelProperty] = undefined;\n\n return cmdHelper.updateBusinessObject(element, errorEventDefinition, values);\n };\n };\n\n\n group.entries = group.entries.concat(\n elementReferenceProperty(element, errorEventDefinition, bpmnFactory, translate, {\n id: 'error-element-message',\n label: translate('Message'),\n referenceProperty: 'errorRef',\n modelProperty: 'errorMessage'\n })\n );\n\n if (showErrorCodeVariable) {\n group.entries.push(entryFactory.validationAwareTextField(translate, {\n id: 'errorCodeVariable',\n label: translate('Code Variable'),\n modelProperty : 'errorCodeVariable',\n description: translate('Define the name of the variable that will contain the error code'),\n\n getProperty: getValue('errorCodeVariable'),\n setProperty: setValue('errorCodeVariable'),\n\n validate: function(element, values) {\n var validation = {},\n targetValue = values.errorCodeVariable;\n\n if (utils.containsSpace(targetValue)) {\n validation.errorCodeVariable = translate('Error code variable must not contain spaces.');\n }\n\n return validation;\n }\n }));\n }\n\n if (showErrorMessageVariable) {\n group.entries.push(entryFactory.validationAwareTextField(translate, {\n id: 'errorMessageVariable',\n label: translate('Message Variable'),\n modelProperty: 'errorMessageVariable',\n\n getProperty: getValue('errorMessageVariable'),\n setProperty: setValue('errorMessageVariable'),\n description: translate('Define the name of the variable that will contain the error message'),\n\n validate: function(element, values) {\n var validation = {},\n targetValue = values.errorMessageVariable;\n\n if (utils.containsSpace(targetValue)) {\n validation.errorMessageVariable = translate('Error message variable must not contain spaces.');\n }\n\n return validation;\n }\n }));\n }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar ErrorsEntries = __webpack_require__(/*! ./ErrorsEntries */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n options = options || {};\n\n var result = {};\n\n var entries = result.entries = [];\n\n entries.push(\n getErrorsHeading(element, bpmnFactory, {\n type: 'camunda:ErrorEventDefinition',\n prop: 'errorEventDefinition',\n prefix: 'Error'\n }));\n\n append(entries,\n getErrorsEntries(element, bpmnFactory, {}, translate)\n );\n\n return result;\n};\n\nfunction getErrorsHeading(element, bpmnFactory, options) {\n var prefix = options.prefix;\n\n var entry = {\n id: prefix + '-heading',\n cssClasses: [ 'bpp-error' ],\n html: '
    ' +\n '' +\n '
    '\n };\n\n entry.createElement = function(_, entryNode) {\n var commands = createElement();\n\n if (commands) {\n scheduleCommands(commands, entryNode);\n return true;\n }\n };\n\n entry.set = function() {\n var commands = entry._commands;\n\n if (commands) {\n delete entry._commands;\n return commands;\n }\n };\n\n function createElement() {\n var commands = [];\n var bo = getBusinessObject(element);\n var extensionElements = bo.get('extensionElements');\n\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n }\n var newElem = elementHelper.createElement('camunda:ErrorEventDefinition', {}, extensionElements, bpmnFactory);\n commands.push(cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newElem ]));\n\n return commands;\n }\n\n /**\n * Schedule commands to be run with next `set` method call.\n *\n * @param {Array} commands\n * @param {HTMLElement} entryNode\n */\n function scheduleCommands(commands, entryNode) {\n entry._commands = commands;\n\n // @barmac: hack to make properties panel call `set`\n var input = domQuery('input[type=\"hidden\"]', entryNode);\n input.value = 1;\n }\n\n return entry;\n}\n\nfunction getErrors(bo) {\n return extensionElementsHelper.getExtensionElements(bo, 'camunda:ErrorEventDefinition') || [];\n}\n\n\nfunction getErrorsEntries(element, bpmnFactory, options, translate) {\n var idPrefix = options.idPrefix || '',\n bo = getBusinessObject(element),\n errorEventDefinitions = getErrors(bo),\n extensionElements = bo.get('extensionElements'),\n entries;\n\n if (errorEventDefinitions && !errorEventDefinitions.length) {\n var description = entryFieldDescription(translate, translate('No errors defined.'));\n\n return [{\n id: idPrefix + 'error-placeholder',\n cssClasses: [ 'bpp-error-placeholder' ],\n html: description\n }];\n }\n\n var errorsEntries = errorEventDefinitions.map(function(definition, index) {\n\n function onRemove() {\n var commands = [];\n\n commands.push(cmdHelper.removeElementsFromList(element, extensionElements, 'values', 'extensionElements', [definition]));\n return commands;\n }\n\n return ErrorsEntries(definition, bpmnFactory, element,\n {\n idPrefix: idPrefix + 'error-' + index,\n onRemove: onRemove,\n onToggle: onToggle\n }, translate);\n\n /**\n * Close remaining collapsible entries within group.\n *\n * @param {boolean} value\n * @param {HTMLElement} entryNode\n */\n function onToggle(value, entryNode) {\n if (!value) {\n return;\n }\n\n var currentEntryId = entryNode.dataset.entry;\n\n errorsEntries.forEach(function(entry) {\n if (entry.entries[0].id === currentEntryId) {\n return;\n }\n\n entry.setOpen(false);\n });\n\n }\n });\n\n entries = errorsEntries.map(function(input) {\n return input.entries;\n });\n\n return flatten(entries);\n}\n\nfunction flatten(arrays) {\n return Array.prototype.concat.apply([], arrays);\n}\n\nfunction append(array, items) {\n Array.prototype.push.apply(array, items);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js": /*!**********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js ***! \**********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar eventDefinitionReference = __webpack_require__(/*! ../../../bpmn/parts/implementation/EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n elementReferenceProperty = __webpack_require__(/*! ../../../bpmn/parts/implementation/ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nmodule.exports = function(error, bpmnFactory, element, options, translate) {\n\n options = options || {};\n\n var idPrefix = options.idPrefix || '';\n\n var getError =\n (options.getError && typeof options.getError === 'function') ?\n function() {\n return options.getError();\n } :\n function() {\n return error;\n };\n\n var result = {},\n entries = [];\n\n result.entries = entries;\n\n var getCollapsibleTitle = function() {\n var error = getError();\n var title = 'No Error referenced';\n\n if (error.errorRef) {\n title = error.errorRef.name;\n if (error.errorRef.errorCode) {\n title += ' (code = ' + error.errorRef.errorCode + ')';\n }\n }\n return title;\n };\n\n // heading ////////////////////////////////////////////////////////\n var collapsible = entryFactory.collapsible({\n id: idPrefix + 'collapsible',\n title: getCollapsibleTitle(),\n description: getError().expression || '',\n cssClasses: [ 'bpp-collapsible-error' ],\n open: false,\n onRemove: options.onRemove,\n onToggle: options.onToggle,\n get: function() {\n return {\n title: getCollapsibleTitle(),\n description: getError().expression || '',\n };\n }\n });\n\n var isOpen = options.isOpen || collapsible.isOpen;\n\n result.setOpen = function(value) {\n var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n collapsible.setOpen(value, entryNode);\n };\n\n entries.push(collapsible);\n\n entries.push(entryFactory.validationAwareTextField(translate, {\n id: idPrefix + 'error-expression',\n label: translate('Throw Expression'),\n modelProperty: 'expression',\n\n getProperty: function(element, node) {\n return error.expression;\n },\n\n setProperty: function(element, values, node) {\n return cmdHelper.updateBusinessObject(element, error, values);\n },\n\n validate: function(element, values, node) {\n var validation = {};\n var expressionValue = values.expression;\n\n if (!expressionValue) {\n validation.expression = translate('Error must have an expression');\n }\n\n return validation;\n },\n\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n\n entries.push.apply(entries, eventDefinitionReference(element, error, bpmnFactory, {\n id: idPrefix + 'error-reference',\n label: translate('Global Error referenced'),\n elementName: 'error',\n elementType: 'bpmn:Error',\n referenceProperty: 'errorRef',\n newElementIdPrefix: 'Error_',\n\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n\n entries.push.apply(entries, elementReferenceProperty(element, error, bpmnFactory, translate, {\n id: idPrefix + 'error-element-name',\n label: translate('Name'),\n referenceProperty: 'errorRef',\n modelProperty: 'name',\n shouldValidate: true,\n\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n\n entries.push.apply(entries, elementReferenceProperty(element, error, bpmnFactory, translate, {\n id: idPrefix + 'error-element-code',\n label: translate('Code'),\n referenceProperty: 'errorRef',\n modelProperty: 'errorCode',\n shouldValidate: true,\n\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n\n entries.push.apply(entries, elementReferenceProperty(element, error, bpmnFactory, translate, {\n id: idPrefix + 'error-element-message',\n label: translate('Message'),\n referenceProperty: 'errorRef',\n modelProperty: 'errorMessage',\n\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n return result;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest,\n domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n escapeHTML = utils.escapeHTML;\n\nfunction getSelectBox(node, id) {\n var currentTab = domClosest(node, 'div.bpp-properties-tab');\n var query = 'select[name=selectedExtensionElement]' + (id ? '[id=cam-extensionElements-' + id + ']' : '');\n return domQuery(query, currentTab);\n}\n\nfunction getSelected(node, id) {\n var selectBox = getSelectBox(node, id);\n return {\n value: (selectBox || {}).value,\n idx: (selectBox || {}).selectedIndex\n };\n}\n\nfunction generateElementId(prefix) {\n prefix = prefix + '_';\n return utils.nextId(prefix);\n}\n\nvar CREATE_EXTENSION_ELEMENT_ACTION = 'create-extension-element',\n REMOVE_EXTENSION_ELEMENT_ACTION = 'remove-extension-element';\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var id = options.id,\n prefix = options.prefix || 'elem',\n label = options.label || id,\n idGeneration = (options.idGeneration === false) ? options.idGeneration : true,\n businessObject = options.businessObject || getBusinessObject(element);\n\n var modelProperty = options.modelProperty || 'id';\n\n var getElements = options.getExtensionElements;\n\n var createElement = options.createExtensionElement,\n canCreate = typeof createElement === 'function';\n\n var removeElement = options.removeExtensionElement,\n canRemove = typeof removeElement === 'function';\n\n var onSelectionChange = options.onSelectionChange;\n\n var hideElements = options.hideExtensionElements,\n canBeHidden = typeof hideElements === 'function';\n\n var setOptionLabelValue = options.setOptionLabelValue;\n\n var defaultSize = options.size || 5,\n resizable = options.resizable;\n\n var reference = options.reference || undefined;\n\n var selectionChanged = function(element, node, event, scope) {\n if (typeof onSelectionChange === 'function') {\n return onSelectionChange(element, node, event, scope);\n }\n };\n\n var createOption = function(value) {\n return '';\n };\n\n var initSelectionSize = function(selectBox, optionsLength) {\n if (resizable) {\n selectBox.size = optionsLength > defaultSize ? optionsLength : defaultSize;\n }\n };\n\n return {\n id: id,\n html: '
    ' +\n '' +\n '
    ' +\n '' +\n (canCreate ? '' : '') +\n (canRemove ? '' : '') +\n '
    ' +\n '
    ',\n\n get: function(element, node) {\n var elements = getElements(element, node);\n\n var result = [];\n forEach(elements, function(elem) {\n result.push({\n extensionElementValue: elem.get(modelProperty)\n });\n });\n\n var selectBox = getSelectBox(node.parentNode, id);\n initSelectionSize(selectBox, result.length);\n\n return result;\n },\n\n set: function(element, values, node) {\n var action = this.__action;\n delete this.__action;\n\n businessObject = businessObject || getBusinessObject(element);\n\n var bo =\n (reference && businessObject.get(reference))\n ? businessObject.get(reference)\n : businessObject;\n\n var extensionElements = bo.get('extensionElements');\n\n if (action.id === CREATE_EXTENSION_ELEMENT_ACTION) {\n var commands = [];\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n }\n commands.push(createElement(element, extensionElements, action.value, node));\n return commands;\n\n }\n else if (action.id === REMOVE_EXTENSION_ELEMENT_ACTION) {\n return removeElement(element, extensionElements, action.value, action.idx, node);\n }\n\n },\n\n createListEntryTemplate: function(value, index, selectBox) {\n initSelectionSize(selectBox, selectBox.options.length + 1);\n return createOption(value.extensionElementValue);\n },\n\n deselect: function(element, node) {\n var selectBox = getSelectBox(node, id);\n selectBox.selectedIndex = -1;\n },\n\n getSelected: function(element, node) {\n return getSelected(node, id);\n },\n\n setControlValue: function(element, node, option, property, value, idx) {\n node.value = value;\n\n if (!setOptionLabelValue) {\n node.text = value;\n } else {\n setOptionLabelValue(element, node, option, property, value, idx);\n }\n },\n\n createElement: function(element, node) {\n\n // create option template\n var generatedId;\n if (idGeneration) {\n generatedId = generateElementId(prefix);\n }\n\n var selectBox = getSelectBox(node, id);\n var template = domify(createOption(generatedId));\n\n // add new empty option as last child element\n selectBox.appendChild(template);\n\n // select last child element\n selectBox.lastChild.selected = 'selected';\n selectionChanged(element, node);\n\n // update select box size\n initSelectionSize(selectBox, selectBox.options.length);\n\n this.__action = {\n id: CREATE_EXTENSION_ELEMENT_ACTION,\n value: generatedId\n };\n\n return true;\n },\n\n removeElement: function(element, node) {\n var selection = getSelected(node, id);\n\n var selectBox = getSelectBox(node, id);\n selectBox.removeChild(selectBox.options[selection.idx]);\n\n // update select box size\n initSelectionSize(selectBox, selectBox.options.length);\n\n this.__action = {\n id: REMOVE_EXTENSION_ELEMENT_ACTION,\n value: selection.value,\n idx: selection.idx\n };\n\n return true;\n },\n\n hideElements: function(element, entryNode, node, scopeNode) {\n return !hideElements(element, entryNode, node, scopeNode);\n },\n\n disableRemove: function(element, entryNode, node, scopeNode) {\n return (getSelected(entryNode, id) || {}).idx < 0;\n },\n\n selectElement: selectionChanged\n };\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getImplementationType = options.getImplementationType,\n getBusinessObject = options.getBusinessObject;\n\n function isExternal(element) {\n return getImplementationType(element) === 'external';\n }\n\n var topicEntry = entryFactory.textField(translate, {\n id: 'externalTopic',\n label: translate('Topic'),\n modelProperty: 'externalTopic',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return { externalTopic: bo.get('camunda:topic') };\n },\n\n set: function(element, values, node) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, {\n 'camunda:topic': values.externalTopic\n });\n },\n\n validate: function(element, values, node) {\n return isExternal(element) && !values.externalTopic ? { externalTopic: translate('Must provide a value') } : {};\n },\n\n hidden: function(element, node) {\n return !isExternal(element);\n }\n\n });\n\n return [ topicEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js": /*!*****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js ***! \*****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject;\n\n var externalTaskPriorityEntry = entryFactory.textField(translate, {\n id: 'externalTaskPriority',\n label: translate('Task Priority'),\n modelProperty: 'taskPriority',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return {\n taskPriority: bo.get('camunda:taskPriority')\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, {\n 'camunda:taskPriority': values.taskPriority || undefined\n });\n }\n\n });\n\n return [ externalTaskPriorityEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js": /*!***********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js ***! \***********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar extensionElementsEntry = __webpack_require__(/*! ./ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\");\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n getBusinessObject = ModelUtil.getBusinessObject;\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\n\nvar DEFAULT_PROPS = {\n 'stringValue': undefined,\n 'string': undefined,\n 'expression': undefined\n};\n\nvar CAMUNDA_FIELD_EXTENSION_ELEMENT = 'camunda:Field';\n\nmodule.exports = function(element, bpmnFactory, translate, options) {\n\n options = options || {};\n\n var insideListener = !!options.insideListener,\n idPrefix = options.idPrefix || '',\n getSelectedListener = options.getSelectedListener,\n businessObject = options.businessObject || getBusinessObject(element);\n\n var entries = [];\n\n var isSelected = function(element, node) {\n return getSelectedField(element, node);\n };\n\n function getSelectedField(element, node) {\n var selected = fieldEntry.getSelected(element, node.parentNode);\n\n if (selected.idx === -1) {\n return;\n }\n\n var fields = getCamundaFields(element, node);\n\n return fields[selected.idx];\n }\n\n function getCamundaFields(element, node) {\n if (!insideListener) {\n return (\n businessObject &&\n extensionElementsHelper.getExtensionElements(businessObject, CAMUNDA_FIELD_EXTENSION_ELEMENT)\n );\n }\n return getCamundaListenerFields(element, node);\n }\n\n function getCamundaListenerFields(element, node) {\n var selectedListener = getSelectedListener(element, node);\n return selectedListener && selectedListener.fields || [];\n }\n\n function getFieldType(bo) {\n var fieldType = 'string';\n\n var expressionValue = bo && bo.expression;\n var stringValue = bo && (bo.string || bo.stringValue);\n\n if (typeof stringValue !== 'undefined') {\n fieldType = 'string';\n } else if (typeof expressionValue !== 'undefined') {\n fieldType = 'expression';\n }\n\n return fieldType;\n }\n\n var setOptionLabelValue = function() {\n return function(element, node, option, property, value, idx) {\n var camundaFields = getCamundaFields(element, node);\n var field = camundaFields[idx];\n\n value = (field.name) ? field.name : '';\n\n var label = idx + ' : ' + value;\n\n option.text = label;\n };\n };\n\n var newElement = function() {\n return function(element, extensionElements, value, node) {\n\n var props = {\n name: '',\n string: ''\n };\n\n var newFieldElem;\n\n if (!insideListener) {\n\n newFieldElem = elementHelper.createElement(CAMUNDA_FIELD_EXTENSION_ELEMENT, props, extensionElements, bpmnFactory);\n return cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newFieldElem ]);\n\n } else {\n\n var selectedListener = getSelectedListener(element, node);\n newFieldElem = elementHelper.createElement(CAMUNDA_FIELD_EXTENSION_ELEMENT, props, selectedListener, bpmnFactory);\n return cmdHelper.addElementsTolist(element, selectedListener, 'fields', [ newFieldElem ]);\n\n }\n\n };\n };\n\n var removeElement = function() {\n return function(element, extensionElements, value, idx, node) {\n var camundaFields= getCamundaFields(element, node);\n var field = camundaFields[idx];\n if (field) {\n if (!insideListener) {\n return extensionElementsHelper.removeEntry(businessObject, element, field);\n }\n var selectedListener = getSelectedListener(element, node);\n return cmdHelper.removeElementsFromList(element, selectedListener, 'fields', null, [ field ]);\n }\n };\n };\n\n\n var fieldEntry = extensionElementsEntry(element, bpmnFactory, {\n id : idPrefix + 'fields',\n label : translate('Fields'),\n modelProperty: 'fieldName',\n idGeneration: 'false',\n\n businessObject: businessObject,\n\n createExtensionElement: newElement(),\n removeExtensionElement: removeElement(),\n\n getExtensionElements: function(element, node) {\n return getCamundaFields(element, node);\n },\n\n setOptionLabelValue: setOptionLabelValue()\n\n });\n entries.push(fieldEntry);\n\n\n entries.push(entryFactory.validationAwareTextField(translate, {\n id: idPrefix + 'field-name',\n label: translate('Name'),\n modelProperty: 'fieldName',\n\n getProperty: function(element, node) {\n return (getSelectedField(element, node) || {}).name;\n },\n\n setProperty: function(element, values, node) {\n var selectedField = getSelectedField(element, node);\n return cmdHelper.updateBusinessObject(element, selectedField, { name : values.fieldName });\n },\n\n validate: function(element, values, node) {\n var bo = getSelectedField(element, node);\n\n var validation = {};\n if (bo) {\n var nameValue = values.fieldName;\n\n if (nameValue) {\n if (utils.containsSpace(nameValue)) {\n validation.fieldName = translate('Name must not contain spaces');\n }\n } else {\n validation.fieldName = translate('Parameter must have a name');\n }\n }\n\n return validation;\n },\n\n hidden: function(element, node) {\n return !isSelected(element, node);\n }\n\n }));\n\n var fieldTypeOptions = [\n {\n name: translate('String'),\n value: 'string'\n },\n {\n name: translate('Expression'),\n value: 'expression'\n }\n ];\n\n entries.push(entryFactory.selectBox(translate, {\n id: idPrefix + 'field-type',\n label: translate('Type'),\n selectOptions: fieldTypeOptions,\n modelProperty: 'fieldType',\n\n get: function(element, node) {\n var bo = getSelectedField(element, node);\n\n var fieldType = getFieldType(bo);\n\n return {\n fieldType: fieldType\n };\n },\n\n set: function(element, values, node) {\n var props = assign({}, DEFAULT_PROPS);\n\n var fieldType = values.fieldType;\n\n if (fieldType === 'string') {\n props.string = '';\n }\n else if (fieldType === 'expression') {\n props.expression = '';\n }\n\n return cmdHelper.updateBusinessObject(element, getSelectedField(element, node), props);\n },\n\n hidden: function(element, node) {\n return !isSelected(element, node);\n }\n\n }));\n\n\n entries.push(entryFactory.textBox(translate, {\n id: idPrefix + 'field-value',\n label: translate('Value'),\n modelProperty: 'fieldValue',\n\n get: function(element, node) {\n var bo = getSelectedField(element, node);\n var fieldType = getFieldType(bo);\n\n var fieldValue;\n\n if (fieldType === 'string') {\n fieldValue = bo && (bo.string || bo.stringValue);\n }\n else if (fieldType === 'expression') {\n fieldValue = bo && bo.expression;\n }\n\n return {\n fieldValue: fieldValue\n };\n },\n\n set: function(element, values, node) {\n var bo = getSelectedField(element, node);\n var fieldType = getFieldType(bo);\n\n var props = assign({}, DEFAULT_PROPS);\n\n var fieldValue = values.fieldValue || undefined;\n\n if (fieldType === 'string') {\n props.string = fieldValue;\n }\n else if (fieldType === 'expression') {\n props.expression = fieldValue;\n }\n\n return cmdHelper.updateBusinessObject(element, bo, props);\n\n },\n\n validate: function(element, values, node) {\n var bo = getSelectedField(element, node);\n\n var validation = {};\n if (bo) {\n if (!values.fieldValue) {\n validation.fieldValue = translate('Must provide a value');\n }\n }\n\n return validation;\n },\n\n show: function(element, node) {\n return isSelected(element, node);\n }\n\n }));\n\n return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject;\n\n var historyTimeToLiveEntry = entryFactory.textField(translate, {\n id: 'historyTimeToLive',\n label: translate('History Time To Live'),\n modelProperty: 'historyTimeToLive',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n var historyTimeToLive = bo.get('camunda:historyTimeToLive');\n\n return {\n historyTimeToLive: historyTimeToLive ? historyTimeToLive : ''\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, {\n 'camunda:historyTimeToLive': values.historyTimeToLive || undefined\n });\n }\n\n });\n\n return [ historyTimeToLiveEntry ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js": /*!***************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js ***! \***************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\nvar map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n\nvar DEFAULT_DELEGATE_PROPS = [ 'class', 'expression', 'delegateExpression' ];\n\nvar DELEGATE_PROPS = {\n 'camunda:class': undefined,\n 'camunda:expression': undefined,\n 'camunda:delegateExpression': undefined,\n 'camunda:resultVariable': undefined\n};\n\nvar DMN_CAPABLE_PROPS = {\n 'camunda:decisionRef': undefined,\n 'camunda:decisionRefBinding': 'latest',\n 'camunda:decisionRefVersion': undefined,\n 'camunda:mapDecisionResult': 'resultList',\n 'camunda:decisionRefTenantId': undefined\n};\n\n\nvar EXTERNAL_CAPABLE_PROPS = {\n 'camunda:type': undefined,\n 'camunda:topic': undefined\n};\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var DEFAULT_OPTIONS = [\n { value: 'class', name: translate('Java Class') },\n { value: 'expression', name: translate('Expression') },\n { value: 'delegateExpression', name: translate('Delegate Expression') }\n ];\n\n var DMN_OPTION = [\n { value: 'dmn', name: translate('DMN') }\n ];\n\n var EXTERNAL_OPTION = [\n { value: 'external', name: translate('External') }\n ];\n\n var CONNECTOR_OPTION = [\n { value: 'connector', name: translate('Connector') }\n ];\n\n var SCRIPT_OPTION = [\n { value: 'script', name: translate('Script') }\n ];\n\n var getType = options.getImplementationType,\n getBusinessObject = options.getBusinessObject;\n\n var hasDmnSupport = options.hasDmnSupport,\n hasExternalSupport = options.hasExternalSupport,\n hasServiceTaskLikeSupport = options.hasServiceTaskLikeSupport,\n hasScriptSupport = options.hasScriptSupport;\n\n var entries = [];\n\n var selectOptions = DEFAULT_OPTIONS.concat([]);\n\n if (hasDmnSupport) {\n selectOptions = selectOptions.concat(DMN_OPTION);\n }\n\n if (hasExternalSupport) {\n selectOptions = selectOptions.concat(EXTERNAL_OPTION);\n }\n\n if (hasServiceTaskLikeSupport) {\n selectOptions = selectOptions.concat(CONNECTOR_OPTION);\n }\n\n if (hasScriptSupport) {\n selectOptions = selectOptions.concat(SCRIPT_OPTION);\n }\n\n selectOptions.push({ value: '' });\n\n entries.push(entryFactory.selectBox(translate, {\n id : 'implementation',\n label: translate('Implementation'),\n selectOptions: selectOptions,\n modelProperty: 'implType',\n\n get: function(element, node) {\n return {\n implType: getType(element) || ''\n };\n },\n\n set: function(element, values, node) {\n var bo = getBusinessObject(element);\n var oldType = getType(element);\n var newType = values.implType;\n\n var props = assign({}, DELEGATE_PROPS);\n\n if (DEFAULT_DELEGATE_PROPS.indexOf(newType) !== -1) {\n\n var newValue = '';\n if (DEFAULT_DELEGATE_PROPS.indexOf(oldType) !== -1) {\n newValue = bo.get('camunda:' + oldType);\n }\n props['camunda:' + newType] = newValue;\n }\n\n if (hasDmnSupport) {\n props = assign(props, DMN_CAPABLE_PROPS);\n if (newType === 'dmn') {\n props['camunda:decisionRef'] = '';\n }\n }\n\n if (hasExternalSupport) {\n props = assign(props, EXTERNAL_CAPABLE_PROPS);\n if (newType === 'external') {\n props['camunda:type'] = 'external';\n props['camunda:topic'] = '';\n }\n }\n\n if (hasScriptSupport) {\n props['camunda:script'] = undefined;\n\n if (newType === 'script') {\n props['camunda:script'] = elementHelper.createElement('camunda:Script', {}, bo, bpmnFactory);\n }\n }\n\n var commands = [];\n commands.push(cmdHelper.updateBusinessObject(element, bo, props));\n\n if (oldType === 'external' && newType !== 'external') {\n var errorEventDefinitions = extensionElementsHelper.getExtensionElements(bo, 'camunda:ErrorEventDefinition');\n commands.push(map(errorEventDefinitions, function(errorEventDefinition) {\n return extensionElementsHelper.removeEntry(bo, element, errorEventDefinition);\n }));\n }\n\n if (hasServiceTaskLikeSupport) {\n var connectors = extensionElementsHelper.getExtensionElements(bo, 'camunda:Connector');\n commands.push(map(connectors, function(connector) {\n return extensionElementsHelper.removeEntry(bo, element, connector);\n }));\n\n if (newType === 'connector') {\n var extensionElements = bo.get('extensionElements');\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n }\n var connector = elementHelper.createElement('camunda:Connector', {}, extensionElements, bpmnFactory);\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n 'extensionElements',\n [ connector ],\n []\n ));\n }\n }\n\n return commands;\n\n }\n }));\n\n return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js": /*!*****************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js ***! \*****************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar getVariablesForScope = __webpack_require__(/*! @bpmn-io/extract-process-variables */ \"./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js\").getVariablesForScope;\n\nvar filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n map = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").map,\n sortBy = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").sortBy;\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n scriptImplementation = __webpack_require__(/*! ./Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nmodule.exports = function(parameter, bpmnFactory, options, translate) {\n\n var typeInfo = {\n 'camunda:Map': {\n value: 'map',\n label: translate('Map')\n },\n 'camunda:List': {\n value: 'list',\n label: translate('List')\n },\n 'camunda:Script': {\n value: 'script',\n label: translate('Script')\n }\n };\n\n options = options || {};\n\n var idPrefix = options.idPrefix || '';\n\n var getParameter =\n (options.getParameter && typeof options.getParameter === 'function') ?\n function() {\n return options.getParameter();\n } :\n function() {\n return parameter;\n };\n\n var result = {},\n entries = [];\n\n result.entries = entries;\n\n // heading ////////////////////////////////////////////////////////\n var collapsible = entryFactory.collapsible({\n id: idPrefix + 'collapsible',\n title: parameter.name,\n description: getDescription(parameter),\n cssClasses: [ 'bpp-collapsible--with-mapping' ],\n open: false,\n onRemove: options.onRemove,\n onToggle: options.onToggle,\n get: function() {\n return {\n title: getParameter().name,\n description: getDescription(getParameter())\n };\n }\n });\n\n var isOpen = options.isOpen || collapsible.isOpen;\n\n result.setOpen = function(value) {\n var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n collapsible.setOpen(value, entryNode);\n };\n\n entries.push(collapsible);\n\n // parameter name ////////////////////////////////////////////////////////\n entries.push(entryFactory.validationAwareTextField(translate, {\n id: idPrefix + 'parameterName',\n label: is(parameter, 'camunda:InputParameter') ?\n translate('Local Variable Name') : translate('Process Variable Name'),\n modelProperty: 'name',\n\n getProperty: function(element, node) {\n return parameter.name;\n },\n\n setProperty: function(element, values, node) {\n return cmdHelper.updateBusinessObject(element, parameter, values);\n },\n\n validate: function(element, values, node) {\n var validation = {};\n var nameValue = values.name;\n\n if (nameValue) {\n if (utils.containsSpace(nameValue)) {\n validation.name = translate('Name must not contain spaces');\n }\n } else {\n validation.name = translate('Parameter must have a name');\n }\n\n return validation;\n },\n\n hidden: function(element, node) {\n return !isOpen();\n }\n }));\n\n\n // parameter type //////////////////////////////////////////////////////\n\n var selectOptions = [\n { value: 'text', name: translate('String or Expression') },\n { value: 'script', name: translate('Script') },\n { value: 'list', name: translate('List') },\n { value: 'map', name: translate('Map') }\n ];\n\n entries.push(entryFactory.selectBox(translate, {\n id : idPrefix + 'parameterType',\n label: translate('Variable Assignment Type'),\n selectOptions: selectOptions,\n modelProperty: 'parameterType',\n\n get: function(element, node) {\n var parameterType = 'text';\n\n var definition = getParameter().get('definition');\n if (typeof definition !== 'undefined') {\n var type = definition.$type;\n parameterType = typeInfo[type].value;\n }\n\n return {\n parameterType: parameterType\n };\n },\n\n set: function(element, values, node) {\n var properties = {\n value: undefined,\n definition: undefined\n };\n\n var createParameterTypeElem = function(type) {\n return createElement(type, getParameter(), bpmnFactory);\n };\n\n var parameterType = values.parameterType;\n\n if (parameterType === 'script') {\n properties.definition = createParameterTypeElem('camunda:Script');\n }\n else if (parameterType === 'list') {\n properties.definition = createParameterTypeElem('camunda:List');\n }\n else if (parameterType === 'map') {\n properties.definition = createParameterTypeElem('camunda:Map');\n }\n\n return cmdHelper.updateBusinessObject(element, getParameter(), properties);\n },\n\n hidden: function(element, node) {\n return !isOpen();\n }\n\n }));\n\n\n // parameter value (type = text) ///////////////////////////////////////////////////////\n\n entries.push(entryFactory.autoSuggest(translate, {\n id : idPrefix + 'parameterType-text',\n label : translate('Variable Assignment Value'),\n description: translate('Start typing \"${}\" to create an expression.'),\n modelProperty: 'value',\n get: function(element, node) {\n return {\n value: getParameter().value\n };\n },\n\n set: function(element, values, node) {\n values.value = values.value || undefined;\n return cmdHelper.updateBusinessObject(element, getParameter(), values);\n },\n\n show: function(element, node) {\n return isOpen() && !getParameter().definition;\n },\n\n getItems: function(element) {\n var scope = getScope(element),\n rootElement = getRootElement(element);\n\n // (1) get all available variables for the current scope\n var variables = getVariablesForScope(scope, rootElement);\n\n // (2) ignore all variables which are (only) written in the current element\n variables = filter(variables, function(variable) {\n var origin = variable.origin,\n withOutCurrent = filter(origin, function(o) {\n return o.id !== element.id;\n });\n\n return !!withOutCurrent.length;\n });\n\n // (3) sort by name\n var sorted = sortByName(variables);\n\n // (4) retrieve names as suggestion items\n return map(sorted, function(variable) {\n return variable.name;\n });\n },\n\n canSuggest: function(word, editorNode, focusNode) {\n var globalIndex = findWordInContentEditable(word, editorNode, focusNode);\n\n if (isInsideExpression(editorNode.innerText, globalIndex)) {\n return true;\n }\n\n if (isInsideUnclosedExpression(editorNode.innerText, globalIndex)) {\n return true;\n }\n\n return false;\n }\n\n }));\n\n\n // parameter value (type = script) ///////////////////////////////////////////////////////\n var script = scriptImplementation('scriptFormat', 'value', true, translate, { idPrefix: idPrefix });\n entries.push({\n id: idPrefix + 'parameterType-script',\n html: '
    ' +\n script.template +\n '
    ',\n get: function(element, node) {\n return isScript(getParameter().definition) ? script.get(element, getParameter().definition) : {};\n },\n\n set: function(element, values, node) {\n var update = script.set(element, values);\n return cmdHelper.updateBusinessObject(element, getParameter().definition, update);\n },\n\n validate: function(element, values, node) {\n return isScript(getParameter().definition) ? script.validate(element, getParameter().definition) : {};\n },\n\n script: script,\n show: function(element, node) {\n return isOpen() && getParameter().definition && isScript(getParameter().definition);\n }\n });\n\n\n // parameter value (type = list) ///////////////////////////////////////////////////////\n\n entries.push(entryFactory.table(translate, {\n id: idPrefix + 'parameterType-list',\n modelProperties: [ 'value' ],\n labels: [ translate('Value') ],\n addLabel: translate('Add Value'),\n\n getElements: function(element, node) {\n\n if (isList(getParameter().definition)) {\n return getParameter().definition.items;\n }\n\n return [];\n },\n\n updateElement: function(element, values, node, idx) {\n var item = getParameter().definition.items[idx];\n return cmdHelper.updateBusinessObject(element, item, values);\n },\n\n addElement: function(element, node) {\n var newValue = createElement('camunda:Value', getParameter().definition, bpmnFactory, { value: undefined });\n return cmdHelper.addElementsTolist(element, getParameter().definition, 'items', [ newValue ]);\n },\n\n removeElement: function(element, node, idx) {\n return cmdHelper.removeElementsFromList(element, getParameter().definition, 'items', null, [ getParameter().definition.items[idx] ]);\n },\n\n editable: function(element, node, prop, idx) {\n var item = getParameter().definition.items[idx];\n return !isMap(item) && !isList(item) && !isScript(item);\n },\n\n setControlValue: function(element, node, input, prop, value, idx) {\n var item = getParameter().definition.items[idx];\n\n if (!isMap(item) && !isList(item) && !isScript(item)) {\n input.value = value;\n } else {\n input.value = typeInfo[item.$type].label;\n }\n },\n\n show: function(element, node) {\n return isOpen() && getParameter().definition && isList(getParameter().definition);\n }\n\n }));\n\n\n // parameter value (type = map) ///////////////////////////////////////////////////////\n\n entries.push(entryFactory.table(translate, {\n id: idPrefix + 'parameterType-map',\n modelProperties: [ 'key', 'value' ],\n labels: [ translate('Key'), translate('Value') ],\n addLabel: translate('Add Entry'),\n\n getElements: function(element, node) {\n\n if (getParameter() && isMap(getParameter().definition)) {\n return getParameter().definition.entries;\n }\n\n return [];\n },\n\n updateElement: function(element, values, node, idx) {\n var entry = getParameter().definition.entries[idx];\n\n if (isMap(entry.definition) || isList(entry.definition) || isScript(entry.definition)) {\n values = {\n key: values.key\n };\n }\n\n return cmdHelper.updateBusinessObject(element, entry, values);\n },\n\n addElement: function(element, node) {\n var newEntry = createElement('camunda:Entry', getParameter().definition, bpmnFactory, { key: undefined, value: undefined });\n return cmdHelper.addElementsTolist(element, getParameter().definition, 'entries', [ newEntry ]);\n },\n\n removeElement: function(element, node, idx) {\n return cmdHelper.removeElementsFromList(element, getParameter().definition, 'entries', null, [ getParameter().definition.entries[idx] ]);\n },\n\n editable: function(element, node, prop, idx) {\n var entry = getParameter().definition.entries[idx];\n return prop === 'key' || (!isMap(entry.definition) && !isList(entry.definition) && !isScript(entry.definition));\n },\n\n setControlValue: function(element, node, input, prop, value, idx) {\n var entry = getParameter().definition.entries[idx];\n\n if (prop === 'key' || (!isMap(entry.definition) && !isList(entry.definition) && !isScript(entry.definition))) {\n input.value = value;\n } else {\n input.value = typeInfo[entry.definition.$type].label;\n }\n },\n\n show: function(element, node) {\n return isOpen() && getParameter().definition && isMap(getParameter().definition);\n }\n\n }));\n\n return result;\n};\n\n\n\n// helper /////////////////////\n\nfunction createElement(type, parent, factory, properties) {\n return elementHelper.createElement(type, properties, parent, factory);\n}\n\nfunction isScript(elem) {\n return is(elem, 'camunda:Script');\n}\n\nfunction isList(elem) {\n return is(elem, 'camunda:List');\n}\n\nfunction isMap(elem) {\n return is(elem, 'camunda:Map');\n}\n\nfunction sortByName(variables) {\n return sortBy(variables, function(variable) {\n return variable.name;\n });\n}\n\nfunction getScope(element) {\n var businessObject = getBusinessObject(element);\n\n if (isAny(businessObject, [ 'bpmn:Process', 'bpmn:SubProcess' ])) {\n return businessObject.id;\n }\n\n // look for processes or sub process in parents\n var parent = businessObject;\n\n while (parent.$parent && !isAny(parent, [ 'bpmn:Process', 'bpmn:SubProcess' ])) {\n parent = parent.$parent;\n }\n\n return parent.id;\n}\n\nfunction getRootElement(element) {\n var businessObject = getBusinessObject(element),\n parent = businessObject;\n\n while (parent.$parent && !is(parent, 'bpmn:Process')) {\n parent = parent.$parent;\n }\n\n return parent;\n}\n\nfunction isInsideExpression(value, index) {\n var openIndex = value.indexOf('${'),\n closeIndex = value.indexOf('}');\n\n return (\n openIndex > -1 && openIndex <= index &&\n closeIndex > -1 && index < closeIndex\n );\n}\n\nfunction isInsideUnclosedExpression(value, index) {\n var closeIndex = value.lastIndexOf('}', index),\n openIndex = value.indexOf('${', closeIndex + 1);\n\n return (\n openIndex > -1 && openIndex <= index\n );\n}\n\nfunction findWordInContentEditable(word, editorNode, focusNode) {\n\n // retrieve value before focusNode (row)\n var children = editorNode.childNodes,\n textBefore = '';\n\n for (var i = 0; i <= children.length - 1; i++) {\n var child = children[i];\n\n if (child.contains(focusNode)) {\n break;\n }\n\n textBefore += (child.innerText || child.wholeText) + '\\n';\n }\n\n return textBefore.length + (word.index || 0);\n}\n\nfunction getDescription(parameter) {\n var definition = parameter.get('definition');\n\n if (!definition) {\n return parameter.value;\n }\n\n if (isScript(definition)) {\n return definition.value;\n } else if (isList(definition)) {\n return 'List';\n } else if (isMap(definition)) {\n return 'Map';\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js": /*!************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js ***! \************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n inputOutputHelper = __webpack_require__(/*! ../../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar InputOutputParameter = __webpack_require__(/*! ./InputOutputParameter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n options = options || {};\n\n var insideConnector = !!options.insideConnector,\n idPrefix = options.idPrefix || '';\n\n var result = {};\n\n var entries = result.entries = [];\n\n if (!inputOutputHelper.isInputOutputSupported(element, insideConnector)) {\n return result;\n }\n\n var parametersOptions = {\n insideConnector: insideConnector,\n idPrefix: idPrefix\n };\n\n // input parameters ///////////////////////////////////////////////////////////////\n entries.push(\n getParametersHeading(element, bpmnFactory, {\n idPrefix: idPrefix,\n insideConnector: insideConnector,\n type: 'camunda:InputParameter',\n prop: 'inputParameters',\n prefix: 'Input'\n }));\n\n append(entries,\n getInputParameterEntries(element, bpmnFactory, parametersOptions, translate)\n );\n\n return result;\n};\n\nfunction getParametersHeading(element, bpmnFactory, options) {\n var idPrefix = options.idPrefix || '',\n prefix = options.prefix,\n type = options.type,\n prop = options.prop,\n insideConnector = options.insideConnector;\n\n var entry = {\n id: idPrefix + prefix + '-heading',\n cssClasses: [ 'bpp-input-output' ],\n html: '
    ' +\n '' +\n '
    '\n };\n\n entry.createElement = function(_, entryNode) {\n var commands = createElement();\n\n if (commands) {\n scheduleCommands(commands, entryNode);\n return true;\n }\n };\n\n entry.set = function() {\n var commands = entry._commands;\n\n if (commands) {\n delete entry._commands;\n return commands;\n }\n };\n\n function createElement() {\n var commands = [];\n var bo = getBusinessObject(element);\n var extensionElements = bo.get('extensionElements');\n\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n }\n\n var inputOutput = getInputOutput(element, insideConnector);\n if (!inputOutput) {\n var parent = !insideConnector ? extensionElements : getConnector(element);\n inputOutput = createInputOutput(parent, bpmnFactory, {\n inputParameters: [],\n outputParameters: []\n });\n\n if (!insideConnector) {\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n 'extensionElements',\n [ inputOutput ],\n []\n ));\n } else {\n commands.push(cmdHelper.updateBusinessObject(element, parent, { inputOutput: inputOutput }));\n }\n }\n\n var newElem = createParameter(type, inputOutput, bpmnFactory, { name: generateElementId(prefix) });\n commands.push(cmdHelper.addElementsTolist(element, inputOutput, prop, [], [ newElem ]));\n\n return commands;\n }\n\n /**\n * Schedule commands to be run with next `set` method call.\n *\n * @param {Array} commands\n * @param {HTMLElement} entryNode\n */\n function scheduleCommands(commands, entryNode) {\n entry._commands = commands;\n\n // @barmac: hack to make properties panel call `set`\n var input = domQuery('input[type=\"hidden\"]', entryNode);\n input.value = 1;\n }\n\n return entry;\n}\n\nfunction getInputParameterEntries(element, bpmnFactory, options, translate) {\n var idPrefix = options.idPrefix,\n insideConnector = options.insideConnector,\n inputOutput = getInputOutput(element, insideConnector),\n params = getInputParameters(element, insideConnector),\n entries;\n\n if (!params.length) {\n var description = entryFieldDescription(translate, translate('No variables defined.'));\n\n return [{\n id: idPrefix + 'input-parameter' + '-placeholder',\n cssClasses: [ 'bpp-input-output-placeholder' ],\n html: description\n }];\n }\n\n var inputParameters = params.map(function(param, index) {\n function onRemove() {\n var commands = [];\n commands.push(cmdHelper.removeElementsFromList(element, inputOutput, 'inputParameters', null, [param]));\n\n // remove inputOutput if there are no input/output parameters anymore\n if (inputOutput.get('inputParameters').length === 1 && (inputOutput.get('outputParameters') || []).length === 0) {\n\n if (!insideConnector) {\n commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, inputOutput));\n }\n else {\n var connector = getConnector(element);\n commands.push(cmdHelper.updateBusinessObject(element, connector, { inputOutput: undefined }));\n }\n }\n\n return commands;\n }\n\n return InputOutputParameter(param, bpmnFactory,\n {\n idPrefix: idPrefix + 'input-parameter-' + index,\n onRemove: onRemove,\n onToggle: onToggle\n }, translate);\n });\n\n /**\n * Close remaining collapsible entries within group.\n *\n * @param {boolean} value\n * @param {HTMLElement} entryNode\n */\n function onToggle(value, entryNode) {\n if (!value) {\n return;\n }\n\n var currentEntryId = entryNode.dataset.entry;\n\n inputParameters.forEach(function(inputParameter) {\n if (inputParameter.entries[0].id === currentEntryId) {\n return;\n }\n\n inputParameter.setOpen(false);\n });\n }\n\n entries = inputParameters.map(function(input) {\n return input.entries;\n });\n\n return flatten(entries);\n}\n\n\nfunction append(array, items) {\n Array.prototype.push.apply(array, items);\n}\n\nfunction flatten(arrays) {\n return Array.prototype.concat.apply([], arrays);\n}\n\nfunction generateElementId(prefix) {\n prefix = prefix + '_';\n return utils.nextId(prefix);\n}\n\nfunction getInputOutput(element, insideConnector) {\n return inputOutputHelper.getInputOutput(element, insideConnector);\n}\n\nfunction getConnector(element) {\n return inputOutputHelper.getConnector(element);\n}\n\nfunction getInputParameters(element, insideConnector) {\n return inputOutputHelper.getInputParameters(element, insideConnector);\n}\n\nfunction createElement(type, parent, factory, properties) {\n return elementHelper.createElement(type, properties, parent, factory);\n}\n\nfunction createInputOutput(parent, bpmnFactory, properties) {\n return createElement('camunda:InputOutput', parent, bpmnFactory, properties);\n}\n\nfunction createParameter(type, parent, bpmnFactory, properties) {\n return createElement(type, parent, bpmnFactory, properties);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js": /*!********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js ***! \********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject;\n\n var jobPriorityEntry = entryFactory.textField(translate, {\n id: 'jobPriority',\n label: translate('Job Priority'),\n modelProperty: 'jobPriority',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return {\n jobPriority: bo.get('camunda:jobPriority')\n };\n },\n\n set: function(element, values) {\n var bo = getBusinessObject(element);\n return cmdHelper.updateBusinessObject(element, bo, {\n 'camunda:jobPriority': values.jobPriority || undefined\n });\n }\n\n });\n\n return [ jobPriorityEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js ***! \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar asyncCapableHelper = __webpack_require__(/*! ../../../../helper/AsyncCapableHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n eventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nfunction isAsyncBefore(bo) {\n return asyncCapableHelper.isAsyncBefore(bo);\n}\n\nfunction isAsyncAfter(bo) {\n return asyncCapableHelper.isAsyncAfter(bo);\n}\n\nfunction getFailedJobRetryTimeCycle(bo) {\n return asyncCapableHelper.getFailedJobRetryTimeCycle(bo);\n}\n\nfunction removeFailedJobRetryTimeCycle(bo, element) {\n return asyncCapableHelper.removeFailedJobRetryTimeCycle(bo, element);\n}\n\nfunction createExtensionElements(parent, bpmnFactory) {\n return elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, parent, bpmnFactory);\n}\n\nfunction createFailedJobRetryTimeCycle(parent, bpmnFactory, cycle) {\n return elementHelper.createElement('camunda:FailedJobRetryTimeCycle', { body: cycle }, parent, bpmnFactory);\n}\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject;\n\n var idPrefix = options.idPrefix || '',\n labelPrefix = options.labelPrefix || '';\n\n var retryTimeCycleEntry = entryFactory.textField(translate, {\n id: idPrefix + 'retryTimeCycle',\n label: labelPrefix + translate('Retry Time Cycle'),\n modelProperty: 'cycle',\n\n get: function(element, node) {\n var retryTimeCycle = getFailedJobRetryTimeCycle(getBusinessObject(element));\n var value = retryTimeCycle && retryTimeCycle.get('body');\n return {\n cycle: value\n };\n },\n\n set: function(element, values, node) {\n var newCycle = values.cycle;\n var bo = getBusinessObject(element);\n\n if (newCycle === '' || typeof newCycle === 'undefined') {\n\n // remove retry time cycle element(s)\n return removeFailedJobRetryTimeCycle(bo, element);\n }\n\n var retryTimeCycle = getFailedJobRetryTimeCycle(bo);\n\n if (!retryTimeCycle) {\n\n // add new retry time cycle element\n var commands = [];\n\n var extensionElements = bo.get('extensionElements');\n if (!extensionElements) {\n extensionElements = createExtensionElements(bo, bpmnFactory);\n commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n }\n\n retryTimeCycle = createFailedJobRetryTimeCycle(extensionElements, bpmnFactory, newCycle);\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n 'extensionElements',\n [ retryTimeCycle ],\n []\n ));\n\n return commands;\n }\n\n // update existing retry time cycle element\n return cmdHelper.updateBusinessObject(element, retryTimeCycle, { body: newCycle });\n },\n\n hidden: function(element) {\n var bo = getBusinessObject(element);\n\n if (bo && (isAsyncBefore(bo) || isAsyncAfter(bo))) {\n return false;\n }\n\n if (is(element, 'bpmn:Event')) {\n return !eventDefinitionHelper.getTimerEventDefinition(element);\n }\n\n return true;\n }\n\n });\n\n return [ retryTimeCycleEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar extensionElementsEntry = __webpack_require__(/*! ./ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n ImplementationTypeHelper = __webpack_require__(/*! ../../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\n\nfunction getListeners(bo, type) {\n return bo && extensionElementsHelper.getExtensionElements(bo, type) || [];\n}\n\nvar CAMUNDA_EXECUTION_LISTENER_ELEMENT = 'camunda:ExecutionListener';\nvar CAMUNDA_TASK_LISTENER_ELEMENT = 'camunda:TaskListener';\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var LISTENER_TYPE_LABEL = {\n class: translate('Java Class'),\n expression: translate('Expression'),\n delegateExpression: translate('Delegate Expression'),\n script: translate('Script')\n };\n\n var bo;\n\n var result = {\n getSelectedListener: getSelectedListener\n };\n\n var entries = result.entries = [];\n\n var isSequenceFlow = ImplementationTypeHelper.isSequenceFlow(element);\n\n function getSelectedListener(element, node) {\n var selection = (executionListenerEntry && executionListenerEntry.getSelected(element, node)) || { idx: -1 };\n\n var listener = getListeners(bo, CAMUNDA_EXECUTION_LISTENER_ELEMENT)[selection.idx];\n if (!listener && taskListenerEntry) {\n selection = taskListenerEntry.getSelected(element, node);\n listener = getListeners(bo, CAMUNDA_TASK_LISTENER_ELEMENT)[selection.idx];\n }\n return listener;\n }\n\n var setOptionLabelValue = function(type) {\n return function(element, node, option, property, value, idx) {\n var listeners = getListeners(bo, type);\n var listener = listeners[idx];\n var listenerType = ImplementationTypeHelper.getImplementationType(listener);\n\n var event = (listener.get('event')) ? listener.get('event') : '';\n\n var label = (event || '*') + ' : ' + (LISTENER_TYPE_LABEL[listenerType] || '');\n\n option.text = label;\n };\n };\n\n var newElement = function(element, type, initialEvent) {\n return function(element, extensionElements, value) {\n var props = {\n event: initialEvent,\n class: ''\n };\n\n var newElem = elementHelper.createElement(type, props, extensionElements, bpmnFactory);\n\n return cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newElem ]);\n };\n };\n\n var removeElement = function(element, type) {\n return function(element, extensionElements, value, idx) {\n var listeners = getListeners(bo, type);\n var listener = listeners[idx];\n if (listener) {\n return extensionElementsHelper.removeEntry(bo, element, listener);\n }\n };\n };\n\n\n // Execution Listener\n\n if (is(element, 'bpmn:FlowElement') || is(element, 'bpmn:Process') || is(element, 'bpmn:Participant')) {\n bo = getBusinessObject(element);\n if (is(element, 'bpmn:Participant')) {\n element = element.processRef;\n bo = bo.get('processRef');\n }\n\n if (bo) {\n\n var executionListenerEntry = extensionElementsEntry(element, bpmnFactory, {\n id : 'executionListeners',\n label : translate('Execution Listener'),\n modelProperty: 'name',\n idGeneration: 'false',\n reference: 'processRef',\n\n createExtensionElement: newElement(element, CAMUNDA_EXECUTION_LISTENER_ELEMENT, (isSequenceFlow) ? 'take' : 'start'),\n removeExtensionElement: removeElement(element, CAMUNDA_EXECUTION_LISTENER_ELEMENT),\n\n getExtensionElements: function(element) {\n return getListeners(bo, CAMUNDA_EXECUTION_LISTENER_ELEMENT);\n },\n\n onSelectionChange: function(element, node, event, scope) {\n taskListenerEntry && taskListenerEntry.deselect(element, node);\n },\n\n setOptionLabelValue: setOptionLabelValue(CAMUNDA_EXECUTION_LISTENER_ELEMENT)\n\n });\n entries.push(executionListenerEntry);\n\n }\n }\n\n\n // Task Listener\n\n if (is(element, 'bpmn:UserTask')) {\n bo = getBusinessObject(element);\n\n var taskListenerEntry = extensionElementsEntry(element, bpmnFactory, {\n id : 'taskListeners',\n label : translate('Task Listener'),\n modelProperty: 'name',\n idGeneration: 'false',\n\n createExtensionElement: newElement(element, CAMUNDA_TASK_LISTENER_ELEMENT, 'create'),\n removeExtensionElement: removeElement(element, CAMUNDA_TASK_LISTENER_ELEMENT),\n\n getExtensionElements: function(element) {\n return getListeners(bo, CAMUNDA_TASK_LISTENER_ELEMENT);\n },\n\n onSelectionChange: function(element, node, event, scope) {\n executionListenerEntry.deselect(element, node);\n },\n\n setOptionLabelValue: setOptionLabelValue(CAMUNDA_TASK_LISTENER_ELEMENT)\n\n });\n entries.push(taskListenerEntry);\n }\n\n return result;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js": /*!*****************************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js ***! \*****************************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes;\n\n/**\n * Get a property value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n * @param {string} propertyName\n *\n * @return {any} the property value\n */\nfunction getProperty(element, propertyName) {\n var loopCharacteristics = getLoopCharacteristics(element);\n return loopCharacteristics && loopCharacteristics.get(propertyName);\n}\n\n/**\n * Get the body of a given expression.\n *\n * @param {ModdleElement} expression\n *\n * @return {string} the body (value) of the expression\n */\nfunction getBody(expression) {\n return expression && expression.get('body');\n}\n\n\n/**\n * Get the loop characteristics of an element.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} the loop characteristics\n */\nfunction getLoopCharacteristics(element) {\n var bo = getBusinessObject(element);\n return bo.loopCharacteristics;\n}\n\n/**\n * Get the loop cardinality of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} an expression representing the loop cardinality\n */\nfunction getLoopCardinality(element) {\n return getProperty(element, 'loopCardinality');\n}\n\n/**\n * Get the loop cardinality value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the loop cardinality value\n */\nfunction getLoopCardinalityValue(element) {\n var loopCardinality = getLoopCardinality(element);\n return getBody(loopCardinality);\n}\n\n/**\n * Get the completion condition of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} an expression representing the completion condition\n */\nfunction getCompletionCondition(element) {\n return getProperty(element, 'completionCondition');\n}\n\n/**\n * Get the completion condition value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the completion condition value\n */\nfunction getCompletionConditionValue(element) {\n var completionCondition = getCompletionCondition(element);\n return getBody(completionCondition);\n}\n\n/**\n * Get the 'camunda:collection' attribute value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the 'camunda:collection' value\n */\nfunction getCollection(element) {\n return getProperty(element, 'camunda:collection');\n}\n\n/**\n * Get the 'camunda:elementVariable' attribute value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the 'camunda:elementVariable' value\n */\nfunction getElementVariable(element) {\n return getProperty(element, 'camunda:elementVariable');\n}\n\n\n/**\n * Creates 'bpmn:FormalExpression' element.\n *\n * @param {ModdleElement} parent\n * @param {string} body\n * @param {BpmnFactory} bpmnFactory\n *\n * @result {ModdleElement} a formal expression\n */\nfunction createFormalExpression(parent, body, bpmnFactory) {\n return elementHelper.createElement('bpmn:FormalExpression', { body: body }, parent, bpmnFactory);\n}\n\n/**\n * Updates a specific formal expression of the loop characteristics.\n *\n * @param {djs.model.Base} element\n * @param {string} propertyName\n * @param {string} newValue\n * @param {BpmnFactory} bpmnFactory\n */\nfunction updateFormalExpression(element, propertyName, newValue, bpmnFactory) {\n var loopCharacteristics = getLoopCharacteristics(element);\n\n var expressionProps = {};\n\n if (!newValue) {\n\n // remove formal expression\n expressionProps[propertyName] = undefined;\n return cmdHelper.updateBusinessObject(element, loopCharacteristics, expressionProps);\n }\n\n var existingExpression = loopCharacteristics.get(propertyName);\n\n if (!existingExpression) {\n\n // add formal expression\n expressionProps[propertyName] = createFormalExpression(loopCharacteristics, newValue, bpmnFactory);\n return cmdHelper.updateBusinessObject(element, loopCharacteristics, expressionProps);\n }\n\n // edit existing formal expression\n return cmdHelper.updateBusinessObject(element, existingExpression, {\n body: newValue\n });\n}\n\n\nmodule.exports = function(element, bpmnFactory, translate) {\n\n var entries = [];\n\n // error message /////////////////////////////////////////////////////////////////\n\n entries.push({\n id: 'multiInstance-errorMessage',\n html: '
    ' +\n ' ' +\n escapeHTML(translate('Must provide either loop cardinality or collection')) +\n '
    ',\n\n isValid: function(element, node, notification, scope) {\n var loopCharacteristics = getLoopCharacteristics(element);\n\n var isValid = true;\n if (loopCharacteristics) {\n var loopCardinality = getLoopCardinalityValue(element);\n var collection = getCollection(element);\n\n isValid = !loopCardinality && !collection;\n }\n\n domClasses(node).toggle('bpp-hidden', !isValid);\n domClasses(notification).toggle('bpp-error-message', isValid);\n\n return isValid;\n }\n });\n\n // loop cardinality //////////////////////////////////////////////////////////////\n\n entries.push(entryFactory.textField(translate, {\n id: 'multiInstance-loopCardinality',\n label: translate('Loop Cardinality'),\n modelProperty: 'loopCardinality',\n\n get: function(element, node) {\n return {\n loopCardinality: getLoopCardinalityValue(element)\n };\n },\n\n set: function(element, values) {\n return updateFormalExpression(element, 'loopCardinality', values.loopCardinality, bpmnFactory);\n }\n }));\n\n\n // collection //////////////////////////////////////////////////////////////////\n\n entries.push(entryFactory.textField(translate, {\n id: 'multiInstance-collection',\n label: translate('Collection'),\n modelProperty: 'collection',\n\n get: function(element, node) {\n return {\n collection: getCollection(element)\n };\n },\n\n set: function(element, values) {\n var loopCharacteristics = getLoopCharacteristics(element);\n return cmdHelper.updateBusinessObject(element, loopCharacteristics, {\n 'camunda:collection': values.collection || undefined\n });\n },\n\n validate: function(element, values, node) {\n var collection = getCollection(element);\n var elementVariable = getElementVariable(element);\n\n if (!collection && elementVariable) {\n return { collection : 'Must provide a value' };\n }\n }\n }));\n\n\n // element variable ////////////////////////////////////////////////////////////\n\n entries.push(entryFactory.textField(translate, {\n id: 'multiInstance-elementVariable',\n label: translate('Element Variable'),\n modelProperty: 'elementVariable',\n\n get: function(element, node) {\n return {\n elementVariable: getElementVariable(element)\n };\n },\n\n set: function(element, values) {\n var loopCharacteristics = getLoopCharacteristics(element);\n return cmdHelper.updateBusinessObject(element, loopCharacteristics, {\n 'camunda:elementVariable': values.elementVariable || undefined\n });\n }\n }));\n\n\n // Completion Condition //////////////////////////////////////////////////////\n\n entries.push(entryFactory.textField(translate, {\n id: 'multiInstance-completionCondition',\n label: translate('Completion Condition'),\n modelProperty: 'completionCondition',\n\n get: function(element) {\n return {\n completionCondition: getCompletionConditionValue(element)\n };\n },\n\n set: function(element, values) {\n return updateFormalExpression(element, 'completionCondition', values.completionCondition, bpmnFactory);\n }\n }));\n\n return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js ***! \*************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n inputOutputHelper = __webpack_require__(/*! ../../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar InputOutputParameter = __webpack_require__(/*! ./InputOutputParameter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n options = options || {};\n\n var insideConnector = !!options.insideConnector,\n idPrefix = options.idPrefix || '';\n\n var result = {};\n\n var entries = result.entries = [];\n\n if (!inputOutputHelper.isInputOutputSupported(element, insideConnector) ||\n !inputOutputHelper.areOutputParametersSupported(element, insideConnector)) {\n return result;\n }\n\n var parametersOptions = {\n insideConnector: insideConnector,\n idPrefix: idPrefix\n };\n\n // output parameters ///////////////////////////////////////////////////////\n entries.push(\n getParametersHeading(element, bpmnFactory, {\n idPrefix: idPrefix,\n insideConnector: insideConnector,\n type: 'camunda:OutputParameter',\n prop: 'outputParameters',\n prefix: 'Output'\n }));\n\n append(entries,\n getOutputParameterEntries(element, bpmnFactory, parametersOptions, translate)\n );\n\n return result;\n};\n\nfunction getParametersHeading(element, bpmnFactory, options) {\n var idPrefix = options.idPrefix || '',\n prefix = options.prefix,\n type = options.type,\n prop = options.prop,\n insideConnector = options.insideConnector;\n\n var entry = {\n id: idPrefix + prefix + '-heading',\n cssClasses: [ 'bpp-input-output' ],\n html: '
    ' +\n '' +\n '
    '\n };\n\n entry.createElement = function(_, entryNode) {\n var commands = createElement();\n\n if (commands) {\n scheduleCommands(commands, entryNode);\n return true;\n }\n };\n\n entry.set = function() {\n var commands = entry._commands;\n\n if (commands) {\n delete entry._commands;\n return commands;\n }\n };\n\n function createElement() {\n var commands = [];\n var bo = getBusinessObject(element);\n var extensionElements = bo.get('extensionElements');\n\n if (!extensionElements) {\n extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n }\n\n var inputOutput = getInputOutput(element, insideConnector);\n if (!inputOutput) {\n var parent = !insideConnector ? extensionElements : getConnector(element);\n inputOutput = createInputOutput(parent, bpmnFactory, {\n inputParameters: [],\n outputParameters: []\n });\n\n if (!insideConnector) {\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n extensionElements,\n 'values',\n 'extensionElements',\n [ inputOutput ],\n []\n ));\n } else {\n commands.push(cmdHelper.updateBusinessObject(element, parent, { inputOutput: inputOutput }));\n }\n }\n\n var newElem = createParameter(type, inputOutput, bpmnFactory, { name: generateElementId(prefix) });\n commands.push(cmdHelper.addElementsTolist(element, inputOutput, prop, [], [ newElem ]));\n\n return commands;\n }\n\n /**\n * Schedule commands to be run with next `set` method call.\n *\n * @param {Array} commands\n * @param {HTMLElement} entryNode\n */\n function scheduleCommands(commands, entryNode) {\n entry._commands = commands;\n\n // @barmac: hack to make properties panel call `set`\n var input = domQuery('input[type=\"hidden\"]', entryNode);\n input.value = 1;\n }\n\n return entry;\n}\n\nfunction getOutputParameterEntries(element, bpmnFactory, options, translate) {\n var idPrefix = options.idPrefix,\n insideConnector = options.insideConnector,\n inputOutput = getInputOutput(element, insideConnector),\n params = getOutputParameters(element, insideConnector),\n entries;\n\n if (!params.length) {\n var description = entryFieldDescription(translate, translate('No variables defined.'));\n\n return [{\n id: idPrefix + 'output-parameter' + '-placeholder',\n cssClasses: [ 'bpp-input-output-placeholder' ],\n html: description\n }];\n }\n\n var outputParameters = params.map(function(param, index) {\n function onRemove() {\n var commands = [];\n commands.push(cmdHelper.removeElementsFromList(element, inputOutput, 'outputParameters', null, [param]));\n\n // remove inputOutput if there are no input/output parameters anymore\n if (inputOutput.get('outputParameters').length === 1 && (inputOutput.get('inputParameters') || []).length === 0) {\n\n if (!insideConnector) {\n commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, inputOutput));\n }\n else {\n var connector = getConnector(element);\n commands.push(cmdHelper.updateBusinessObject(element, connector, { inputOutput: undefined }));\n }\n }\n\n return commands;\n }\n\n return InputOutputParameter(param, bpmnFactory,\n {\n idPrefix: idPrefix + 'output-parameter-' + index,\n onRemove: onRemove,\n onToggle: onToggle\n }, translate);\n });\n\n /**\n * Close remaining collapsible entries within group.\n *\n * @param {boolean} value\n * @param {HTMLElement} entryNode\n */\n function onToggle(value, entryNode) {\n if (!value) {\n return;\n }\n\n var currentEntryId = entryNode.dataset.entry;\n\n outputParameters.forEach(function(outputParameter) {\n if (outputParameter.entries[0].id === currentEntryId) {\n return;\n }\n\n outputParameter.setOpen(false);\n });\n }\n\n entries = outputParameters.map(function(input) {\n return input.entries;\n });\n\n return flatten(entries);\n}\n\nfunction append(array, items) {\n Array.prototype.push.apply(array, items);\n}\n\nfunction flatten(arrays) {\n return Array.prototype.concat.apply([], arrays);\n}\n\nfunction generateElementId(prefix) {\n prefix = prefix + '_';\n return utils.nextId(prefix);\n}\n\nfunction getInputOutput(element, insideConnector) {\n return inputOutputHelper.getInputOutput(element, insideConnector);\n}\n\nfunction getConnector(element) {\n return inputOutputHelper.getConnector(element);\n}\n\nfunction getOutputParameters(element, insideConnector) {\n return inputOutputHelper.getOutputParameters(element, insideConnector);\n}\n\nfunction createElement(type, parent, factory, properties) {\n return elementHelper.createElement(type, properties, parent, factory);\n}\n\nfunction createInputOutput(parent, bpmnFactory, properties) {\n return createElement('camunda:InputOutput', parent, bpmnFactory, properties);\n}\n\nfunction createParameter(type, parent, bpmnFactory, properties) {\n return createElement(type, parent, bpmnFactory, properties);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js ***! \*************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var getVariablesForScope = __webpack_require__(/*! @bpmn-io/extract-process-variables */ \"./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js\").getVariablesForScope;\n\nvar groupBy = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").groupBy,\n flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n keys = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").keys,\n map = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").map,\n sortBy = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").sortBy;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar factory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nmodule.exports = function(element, translate) {\n\n var entries = [];\n\n function createVariablesList(variables, scope) {\n var scopePrefix = scope ? scope + '-' : '';\n\n return flatten(map(variables, function(variable, idx) {\n\n var name = variable.name,\n origin = variable.origin,\n variableEntries = [];\n\n // title ///////////////////\n\n var collapsible = factory.collapsible({\n id: scopePrefix + 'variable- ' + idx + '-collapsible',\n title: escapeHTML(name),\n description: origin.toString(),\n open: false,\n get: function() {\n return {\n title: escapeHTML(name),\n description: origin.toString()\n };\n }\n });\n\n var isOpen = collapsible.isOpen;\n\n variableEntries.push(collapsible);\n\n // created in //////////////////\n\n var createdInHtml = '
    ' +\n '' + escapeHTML(translate('Created in')) + '' +\n createdInList(origin) +\n '
    ';\n\n variableEntries.push({\n id: scopePrefix + 'variable- ' + idx + '-created-in',\n html: createdInHtml,\n cssClasses: [\n 'bpp-process-variables',\n 'bpp-process-variables__created-in'\n ],\n show: function() {\n return isOpen();\n }\n });\n\n return variableEntries;\n }));\n }\n\n\n if (!canHaveProcessVariables(element)) {\n return entries;\n }\n\n var businessObject = getBusinessObject(element),\n rootElement = getRootElement(businessObject),\n scope = getScope(element);\n\n var variables = getVariablesForScope(scope, rootElement),\n sorted = sortByName(variables),\n withNames = populateElementNames(sorted),\n byScope = groupByScope(withNames);\n\n // (1) tab description entry\n var description = entryFieldDescription(translate, translate('Available process variables, identified in the diagram.'));\n\n entries.push({\n id: 'process-variables-description',\n html: description,\n cssClasses: [\n 'bpp-process-variables',\n 'bpp-process-variables__description'\n ]\n });\n\n // (2) empty list placeholder\n if (!withNames.length) {\n var placeholder = entryFieldDescription(translate, translate('No variables found.'));\n\n entries.push({\n id: 'process-variables-placeholder',\n html: placeholder\n });\n\n return entries;\n }\n\n if (keys(byScope).length > 1) {\n\n // (3a) multiple scopes variables lists\n\n // assumption: variables extractor fetches parent variables first\n forEach(reverse(keys(byScope)), function(scope) {\n var variables = byScope[scope];\n\n entries.push({\n id: scope + '-scope-title',\n html: '
    ' + escapeHTML(translate('Scope: ')) + scope + '
    ',\n cssClasses: [\n 'bpp-process-variables',\n 'bpp-process-variables__scope-title',\n 'bpp-collapsible-break'\n ]\n });\n\n entries = entries.concat(createVariablesList(variables, scope));\n });\n } else {\n\n // (3b) single scope variables list\n entries = entries.concat(createVariablesList(withNames));\n }\n\n\n return entries;\n};\n\n\n// helpers //////////\n\nfunction getRootElement(element) {\n var businessObject = getBusinessObject(element);\n\n if (is(businessObject, 'bpmn:Participant')) {\n return businessObject.processRef;\n }\n\n if (is(businessObject, 'bpmn:Process')) {\n return businessObject;\n }\n\n var parent = businessObject;\n\n while (parent.$parent && !is(parent, 'bpmn:Process')) {\n parent = parent.$parent;\n }\n\n return parent;\n}\n\nfunction getScope(element) {\n if (is(element, 'bpmn:Participant')) {\n return getBusinessObject(element).processRef.id;\n }\n\n return element.id;\n}\n\nfunction sortByName(variables) {\n return sortBy(variables, function(variable) {\n return variable.name;\n });\n}\n\nfunction populateElementNames(variables) {\n forEach(variables, function(variable) {\n var names = map(variable.origin, function(element) {\n return element.name || element.id;\n });\n\n variable.origin = names;\n variable.scope = variable.scope.name || variable.scope.id;\n });\n\n return variables;\n}\n\nfunction canHaveProcessVariables(element) {\n var businessObject = getBusinessObject(element);\n\n return (\n isAny(element, ['bpmn:Process', 'bpmn:SubProcess']) ||\n (is(element, 'bpmn:Participant') && businessObject.get('processRef'))\n );\n}\n\nfunction groupByScope(variables) {\n return groupBy(variables, 'scope');\n}\n\nfunction createdInList(origin) {\n var html = '';\n\n forEach(origin, function(o) {\n html += '

    ' + o + '

    ';\n });\n return html;\n}\n\nfunction reverse(array) {\n return map(array, function(a, i) {\n return array[array.length - 1 - i];\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js": /*!*******************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js ***! \*******************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar factory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\"),\n forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nfunction generatePropertyId() {\n return utils.nextId('Property_');\n}\n\n/**\n * Get all camunda:property objects for a specific business object\n *\n * @param {ModdleElement} parent\n *\n * @return {Array} a list of camunda:property objects\n */\nfunction getPropertyValues(parent) {\n var properties = parent && getPropertiesElement(parent);\n if (properties && properties.values) {\n return properties.values;\n }\n return [];\n}\n\n/**\n * Get all camunda:Properties object for a specific business object\n *\n * @param {ModdleElement} parent\n *\n * @return {ModdleElement} a camunda:Properties object\n */\nfunction getPropertiesElement(element) {\n if (!isExtensionElements(element)) {\n return element.properties;\n } else {\n return getPropertiesElementInsideExtensionElements(element);\n }\n}\n\n/**\n * Get first camunda:Properties object for a specific bpmn:ExtensionElements\n * business object.\n *\n * @param {ModdleElement} extensionElements\n *\n * @return {ModdleElement} a camunda:Properties object\n */\nfunction getPropertiesElementInsideExtensionElements(extensionElements) {\n return find(extensionElements.values, function(elem) {\n return is(elem, 'camunda:Properties');\n });\n}\n\n/**\n * Returns true, if the given business object is a bpmn:ExtensionElements.\n *\n * @param {ModdleElement} element\n *\n * @return {boolean} a boolean value\n */\nfunction isExtensionElements(element) {\n return is(element, 'bpmn:ExtensionElements');\n}\n\n/**\n * Create a camunda:property entry using tableEntryFactory\n *\n * @param {djs.model.Base} element\n * @param {BpmnFactory} bpmnFactory\n * @param {Object} options\n * @param {string} options.id\n * @param {Array} options.modelProperties\n * @param {Array} options.labels\n * @param {function} options.getParent Gets the parent business object\n * @param {function} options.show Indicate when the entry will be shown, should return boolean\n */\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getParent = options.getParent;\n\n var modelProperties = options.modelProperties,\n createParent = options.createParent;\n\n var bo = getBusinessObject(element);\n if (is(element, 'bpmn:Participant')) {\n bo = bo.get('processRef');\n }\n\n // build properties group only when the participant have a processRef\n if (!bo) {\n return;\n }\n\n assign(options, {\n addLabel: translate('Add Property'),\n getElements: function(element, node) {\n var parent = getParent(element, node, bo);\n return getPropertyValues(parent);\n },\n addElement: function(element, node) {\n var commands = [],\n parent = getParent(element, node, bo);\n\n if (!parent && typeof createParent === 'function') {\n var result = createParent(element, bo);\n parent = result.parent;\n commands.push(result.cmd);\n }\n\n var properties = getPropertiesElement(parent);\n if (!properties) {\n properties = elementHelper.createElement('camunda:Properties', {}, parent, bpmnFactory);\n\n if (!isExtensionElements(parent)) {\n commands.push(cmdHelper.updateBusinessObject(element, parent, { 'properties': properties }));\n } else {\n commands.push(cmdHelper.addAndRemoveElementsFromList(\n element,\n parent,\n 'values',\n 'extensionElements',\n [ properties ],\n []\n ));\n }\n }\n\n var propertyProps = {};\n forEach(modelProperties, function(prop) {\n propertyProps[prop] = undefined;\n });\n\n // create id if necessary\n if (modelProperties.indexOf('id') >= 0) {\n propertyProps.id = generatePropertyId();\n }\n\n var property = elementHelper.createElement('camunda:Property', propertyProps, properties, bpmnFactory);\n commands.push(cmdHelper.addElementsTolist(element, properties, 'values', [ property ]));\n\n return commands;\n },\n updateElement: function(element, value, node, idx) {\n var parent = getParent(element, node, bo),\n property = getPropertyValues(parent)[idx];\n\n forEach(modelProperties, function(prop) {\n value[prop] = value[prop] || undefined;\n });\n\n return cmdHelper.updateBusinessObject(element, property, value);\n },\n validate: function(element, value, node, idx) {\n\n // validate id if necessary\n if (modelProperties.indexOf('id') >= 0) {\n\n var parent = getParent(element, node, bo),\n properties = getPropertyValues(parent),\n property = properties[idx];\n\n if (property) {\n\n // check if id is valid\n var validationError = utils.isIdValid(property, value.id, translate);\n\n if (validationError) {\n return { id: validationError };\n }\n }\n }\n },\n removeElement: function(element, node, idx) {\n var commands = [],\n parent = getParent(element, node, bo),\n properties = getPropertiesElement(parent),\n propertyValues = getPropertyValues(parent),\n currentProperty = propertyValues[idx];\n\n commands.push(cmdHelper.removeElementsFromList(element, properties, 'values', null, [ currentProperty ]));\n\n if (propertyValues.length === 1) {\n\n // remove camunda:properties if the last existing property has been removed\n if (!isExtensionElements(parent)) {\n commands.push(cmdHelper.updateBusinessObject(element, parent, { properties: undefined }));\n } else {\n forEach(parent.values, function(value) {\n if (is(value, 'camunda:Properties')) {\n commands.push(extensionElementsHelper.removeEntry(bo, element, value));\n }\n });\n }\n }\n\n return commands;\n }\n });\n\n return factory.table(translate, options);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js": /*!***********************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js ***! \***********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n var getBusinessObject = options.getBusinessObject,\n hideResultVariable = options.hideResultVariable,\n id = options.id || 'resultVariable';\n\n\n var resultVariableEntry = entryFactory.textField(translate, {\n id: id,\n label: translate('Result Variable'),\n modelProperty: 'resultVariable',\n\n get: function(element, node) {\n var bo = getBusinessObject(element);\n return { resultVariable: bo.get('camunda:resultVariable') };\n },\n\n set: function(element, values, node) {\n var bo = getBusinessObject(element);\n\n var resultVariable = values.resultVariable || undefined;\n\n var props = {\n 'camunda:resultVariable': resultVariable\n };\n\n if (is(bo, 'camunda:DmnCapable') && !resultVariable) {\n props = assign({ 'camunda:mapDecisionResult': 'resultList' }, props);\n }\n\n return cmdHelper.updateBusinessObject(element, bo, props);\n },\n\n hidden: function(element, node) {\n if (typeof hideResultVariable === 'function') {\n return hideResultVariable.apply(resultVariableEntry, arguments);\n }\n }\n\n });\n\n return [ resultVariableEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js": /*!***************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js ***! \***************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML,\n utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\n\nfunction getScriptType(node, idPrefix) {\n\n // if we have an idPrefix, work with specific selector\n var selector;\n\n if (idPrefix && idPrefix != '') {\n selector = 'select[id=\"' + idPrefix + 'cam-script-type\"]';\n } else {\n selector = 'select[name=\"scriptType\"]';\n }\n\n return utils.selectedType(selector, node.parentElement);\n}\n\n\nmodule.exports = function(scriptLanguagePropName, scriptValuePropName, isFormatRequired, translate, options) {\n var idPrefix = options && options.idPrefix || '';\n\n return {\n template:\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n\n '
    ' +\n '' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n\n '
    ' +\n '' +\n '
    ' +\n '' +\n '
    '+\n '
    ',\n\n get: function(element, bo) {\n var values = {};\n\n // read values from xml:\n var boScriptResource = bo.get('camunda:resource'),\n boScript = bo.get(scriptValuePropName),\n boScriptFormat = bo.get(scriptLanguagePropName);\n\n if (typeof boScriptResource !== 'undefined') {\n values.scriptResourceValue = boScriptResource;\n values.scriptType = 'scriptResource';\n } else {\n values.scriptValue = boScript;\n values.scriptType = 'script';\n }\n\n values.scriptFormat = boScriptFormat;\n\n return values;\n },\n\n set: function(element, values, containerElement) {\n var scriptFormat = values.scriptFormat,\n scriptType = values.scriptType,\n scriptResourceValue = values.scriptResourceValue,\n scriptValue = values.scriptValue;\n\n // init update\n var update = {\n 'camunda:resource': undefined\n };\n update[scriptValuePropName] = undefined;\n update[scriptLanguagePropName] = undefined;\n\n if (isFormatRequired) {\n\n // always set language\n update[scriptLanguagePropName] = scriptFormat || '';\n } else\n\n // set language only when scriptFormat has a value\n if (scriptFormat !== '') {\n update[scriptLanguagePropName] = scriptFormat;\n }\n\n // set either inline script or resource\n if ('scriptResource' === scriptType) {\n update['camunda:resource'] = scriptResourceValue || '';\n } else {\n update[scriptValuePropName] = scriptValue || '';\n }\n\n return update;\n },\n\n validate: function(element, values) {\n var validationResult = {};\n\n if (values.scriptType === 'script' && !values.scriptValue) {\n validationResult.scriptValue = translate('Must provide a value');\n }\n\n if (values.scriptType === 'scriptResource' && !values.scriptResourceValue) {\n validationResult.scriptResourceValue = translate('Must provide a value');\n }\n\n if (isFormatRequired && (!values.scriptFormat || values.scriptFormat.length === 0)) {\n validationResult.scriptFormat = translate('Must provide a value');\n }\n\n return validationResult;\n },\n\n clearScriptFormat: function(element, inputNode, btnNode, scopeNode) {\n domQuery('input[name=scriptFormat]', scopeNode).value='';\n\n return true;\n },\n\n canClearScriptFormat: function(element, inputNode, btnNode, scopeNode) {\n var input = domQuery('input[name=scriptFormat]', scopeNode);\n\n return input.value !== '';\n },\n\n clearScriptResource: function(element, inputNode, btnNode, scopeNode) {\n domQuery('input[name=scriptResourceValue]', scopeNode).value='';\n\n return true;\n },\n\n canClearScriptResource: function(element, inputNode, btnNode, scopeNode) {\n var input = domQuery('input[name=scriptResourceValue]', scopeNode);\n\n return input.value !== '';\n },\n\n clearScript: function(element, inputNode, btnNode, scopeNode) {\n domQuery('textarea[name=scriptValue]', scopeNode).value='';\n\n return true;\n },\n\n canClearScript: function(element, inputNode, btnNode, scopeNode) {\n var input = domQuery('textarea[name=scriptValue]', scopeNode);\n\n return input.value !== '';\n },\n\n isScriptResource: function(element, inputNode, btnNode, scopeNode) {\n var scriptType = getScriptType(scopeNode, idPrefix);\n return scriptType === 'scriptResource';\n },\n\n isScript: function(element, inputNode, btnNode, scopeNode) {\n var scriptType = getScriptType(scopeNode, idPrefix);\n return scriptType === 'script';\n }\n\n };\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js?"); /***/ }), /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\r\n\r\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\r\n\r\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\r\n\r\nmodule.exports = function(element, bpmnFactory, options, translate) {\r\n\r\n var getBusinessObject = options.getBusinessObject;\r\n\r\n var isStartableInTasklistEntry = entryFactory.checkbox(translate, {\r\n id: 'isStartableInTasklist',\r\n label: translate('Startable'),\r\n modelProperty: 'isStartableInTasklist',\r\n\r\n get: function(element, node) {\r\n var bo = getBusinessObject(element);\r\n var isStartableInTasklist = bo.get('camunda:isStartableInTasklist');\r\n\r\n return {\r\n isStartableInTasklist: isStartableInTasklist ? isStartableInTasklist : ''\r\n };\r\n },\r\n\r\n set: function(element, values) {\r\n var bo = getBusinessObject(element);\r\n return cmdHelper.updateBusinessObject(element, bo, {\r\n 'camunda:isStartableInTasklist': !!values.isStartableInTasklist\r\n });\r\n }\r\n\r\n });\r\n\r\n return [\r\n isStartableInTasklistEntry\r\n ];\r\n};\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/BaseModeler.js": /*!*************************************************!*\ !*** ./node_modules/bpmn-js/lib/BaseModeler.js ***! \*************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BaseModeler)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ids__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ids */ \"./node_modules/ids/dist/index.esm.js\");\n/* harmony import */ var _BaseViewer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BaseViewer */ \"./node_modules/bpmn-js/lib/BaseViewer.js\");\n\n\n\n\n\n\n\n/**\n * A base modeler for BPMN 2.0 diagrams.\n *\n * Have a look at {@link Modeler} for a bundle that includes actual features.\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array} [options.modules] a list of modules to override the default modules\n * @param {Array} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction BaseModeler(options) {\n _BaseViewer__WEBPACK_IMPORTED_MODULE_2__.default.call(this, options);\n\n // hook ID collection into the modeler\n this.on('import.parse.complete', function(event) {\n if (!event.error) {\n this._collectIds(event.definitions, event.elementsById);\n }\n }, this);\n\n this.on('diagram.destroy', function() {\n this.get('moddle').ids.clear();\n }, this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BaseModeler, _BaseViewer__WEBPACK_IMPORTED_MODULE_2__.default);\n\n\n/**\n * Create a moddle instance, attaching ids to it.\n *\n * @param {Object} options\n */\nBaseModeler.prototype._createModdle = function(options) {\n var moddle = _BaseViewer__WEBPACK_IMPORTED_MODULE_2__.default.prototype._createModdle.call(this, options);\n\n // attach ids to moddle to be able to track\n // and validated ids in the BPMN 2.0 XML document\n // tree\n moddle.ids = new ids__WEBPACK_IMPORTED_MODULE_1__.default([ 32, 36, 1 ]);\n\n return moddle;\n};\n\n/**\n * Collect ids processed during parsing of the\n * definitions object.\n *\n * @param {ModdleElement} definitions\n * @param {Context} context\n */\nBaseModeler.prototype._collectIds = function(definitions, elementsById) {\n\n var moddle = definitions.$model,\n ids = moddle.ids,\n id;\n\n // remove references from previous import\n ids.clear();\n\n for (id in elementsById) {\n ids.claim(id, elementsById[id]);\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/BaseModeler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/BaseViewer.js": /*!************************************************!*\ !*** ./node_modules/bpmn-js/lib/BaseViewer.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BaseViewer)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var diagram_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js */ \"./node_modules/diagram-js/lib/Diagram.js\");\n/* harmony import */ var bpmn_moddle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bpmn-moddle */ \"./node_modules/bpmn-moddle/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _import_Importer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./import/Importer */ \"./node_modules/bpmn-js/lib/import/Importer.js\");\n/* harmony import */ var _util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/CompatibilityUtil */ \"./node_modules/bpmn-js/lib/util/CompatibilityUtil.js\");\n/* harmony import */ var _util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./util/PoweredByUtil */ \"./node_modules/bpmn-js/lib/util/PoweredByUtil.js\");\n/**\n * The code in the area\n * must not be changed.\n *\n * @see http://bpmn.io/license for more information.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A base viewer for BPMN 2.0 diagrams.\n *\n * Have a look at {@link Viewer}, {@link NavigatedViewer} or {@link Modeler} for\n * bundles that include actual features.\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array} [options.modules] a list of modules to override the default modules\n * @param {Array} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction BaseViewer(options) {\n\n options = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, DEFAULT_OPTIONS, options);\n\n this._moddle = this._createModdle(options);\n\n this._container = this._createContainer(options);\n\n /* */\n\n addProjectLogo(this._container);\n\n /* */\n\n this._init(this._container, this._moddle, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BaseViewer, diagram_js__WEBPACK_IMPORTED_MODULE_2__.default);\n\n/**\n* The importXML result.\n*\n* @typedef {Object} ImportXMLResult\n*\n* @property {Array} warnings\n*/\n\n/**\n* The importXML error.\n*\n* @typedef {Error} ImportXMLError\n*\n* @property {Array} warnings\n*/\n\n/**\n * Parse and render a BPMN 2.0 diagram.\n *\n * Once finished the viewer reports back the result to the\n * provided callback function with (err, warnings).\n *\n * ## Life-Cycle Events\n *\n * During import the viewer will fire life-cycle events:\n *\n * * import.parse.start (about to read model from xml)\n * * import.parse.complete (model read; may have worked or not)\n * * import.render.start (graphical import start)\n * * import.render.complete (graphical import finished)\n * * import.done (everything done)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {string} xml the BPMN 2.0 xml\n * @param {ModdleElement|string} [bpmnDiagram] BPMN diagram or id of diagram to render (if not provided, the first one will be rendered)\n *\n * Returns {Promise}\n */\nBaseViewer.prototype.importXML = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function importXML(xml, bpmnDiagram) {\n\n var self = this;\n\n function ParseCompleteEvent(data) {\n\n var event = self.get('eventBus').createEvent(data);\n\n // TODO(nikku): remove with future bpmn-js version\n Object.defineProperty(event, 'context', {\n enumerable: true,\n get: function() {\n\n console.warn(new Error(\n 'import.parse.complete is deprecated ' +\n 'and will be removed in future library versions'\n ));\n\n return {\n warnings: data.warnings,\n references: data.references,\n elementsById: data.elementsById\n };\n }\n });\n\n return event;\n }\n\n return new Promise(function(resolve, reject) {\n\n // hook in pre-parse listeners +\n // allow xml manipulation\n xml = self._emit('import.parse.start', { xml: xml }) || xml;\n\n self._moddle.fromXML(xml, 'bpmn:Definitions').then(function(result) {\n var definitions = result.rootElement;\n var references = result.references;\n var parseWarnings = result.warnings;\n var elementsById = result.elementsById;\n\n // hook in post parse listeners +\n // allow definitions manipulation\n definitions = self._emit('import.parse.complete', ParseCompleteEvent({\n error: null,\n definitions: definitions,\n elementsById: elementsById,\n references: references,\n warnings: parseWarnings\n })) || definitions;\n\n self.importDefinitions(definitions, bpmnDiagram).then(function(result) {\n var allWarnings = [].concat(parseWarnings, result.warnings || []);\n\n self._emit('import.done', { error: null, warnings: allWarnings });\n\n return resolve({ warnings: allWarnings });\n }).catch(function(err) {\n var allWarnings = [].concat(parseWarnings, err.warnings || []);\n\n self._emit('import.done', { error: err, warnings: allWarnings });\n\n return reject(addWarningsToError(err, allWarnings));\n });\n }).catch(function(err) {\n\n self._emit('import.parse.complete', {\n error: err\n });\n\n err = checkValidationError(err);\n\n self._emit('import.done', { error: err, warnings: err.warnings });\n\n return reject(err);\n });\n });\n});\n\n/**\n* The importDefinitions result.\n*\n* @typedef {Object} ImportDefinitionsResult\n*\n* @property {Array} warnings\n*/\n\n/**\n* The importDefinitions error.\n*\n* @typedef {Error} ImportDefinitionsError\n*\n* @property {Array} warnings\n*/\n\n/**\n * Import parsed definitions and render a BPMN 2.0 diagram.\n *\n * Once finished the viewer reports back the result to the\n * provided callback function with (err, warnings).\n *\n * ## Life-Cycle Events\n *\n * During import the viewer will fire life-cycle events:\n *\n * * import.render.start (graphical import start)\n * * import.render.complete (graphical import finished)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {ModdleElement} definitions parsed BPMN 2.0 definitions\n * @param {ModdleElement|string} [bpmnDiagram] BPMN diagram or id of diagram to render (if not provided, the first one will be rendered)\n *\n * Returns {Promise}\n */\nBaseViewer.prototype.importDefinitions = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function importDefinitions(definitions, bpmnDiagram) {\n\n var self = this;\n\n return new Promise(function(resolve, reject) {\n\n self._setDefinitions(definitions);\n\n self.open(bpmnDiagram).then(function(result) {\n\n var warnings = result.warnings;\n\n return resolve({ warnings: warnings });\n }).catch(function(err) {\n\n return reject(err);\n });\n });\n});\n\n/**\n * The open result.\n *\n * @typedef {Object} OpenResult\n *\n * @property {Array} warnings\n */\n\n/**\n* The open error.\n*\n* @typedef {Error} OpenError\n*\n* @property {Array} warnings\n*/\n\n/**\n * Open diagram of previously imported XML.\n *\n * Once finished the viewer reports back the result to the\n * provided callback function with (err, warnings).\n *\n * ## Life-Cycle Events\n *\n * During switch the viewer will fire life-cycle events:\n *\n * * import.render.start (graphical import start)\n * * import.render.complete (graphical import finished)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {string|ModdleElement} [bpmnDiagramOrId] id or the diagram to open\n *\n * Returns {Promise}\n */\nBaseViewer.prototype.open = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function open(bpmnDiagramOrId) {\n\n var definitions = this._definitions;\n var bpmnDiagram = bpmnDiagramOrId;\n\n var self = this;\n\n return new Promise(function(resolve, reject) {\n if (!definitions) {\n var err1 = new Error('no XML imported');\n\n return reject(addWarningsToError(err1, []));\n }\n\n if (typeof bpmnDiagramOrId === 'string') {\n bpmnDiagram = findBPMNDiagram(definitions, bpmnDiagramOrId);\n\n if (!bpmnDiagram) {\n var err2 = new Error('BPMNDiagram <' + bpmnDiagramOrId + '> not found');\n\n return reject(addWarningsToError(err2, []));\n }\n }\n\n // clear existing rendered diagram\n // catch synchronous exceptions during #clear()\n try {\n self.clear();\n } catch (error) {\n\n return reject(addWarningsToError(error, []));\n }\n\n // perform graphical import\n (0,_import_Importer__WEBPACK_IMPORTED_MODULE_4__.importBpmnDiagram)(self, definitions, bpmnDiagram).then(function(result) {\n\n var warnings = result.warnings;\n\n return resolve({ warnings: warnings });\n }).catch(function(err) {\n\n return reject(err);\n });\n });\n});\n\n/**\n * The saveXML result.\n *\n * @typedef {Object} SaveXMLResult\n *\n * @property {string} xml\n */\n\n/**\n * Export the currently displayed BPMN 2.0 diagram as\n * a BPMN 2.0 XML document.\n *\n * ## Life-Cycle Events\n *\n * During XML saving the viewer will fire life-cycle events:\n *\n * * saveXML.start (before serialization)\n * * saveXML.serialized (after xml generation)\n * * saveXML.done (everything done)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {Object} [options] export options\n * @param {boolean} [options.format=false] output formatted XML\n * @param {boolean} [options.preamble=true] output preamble\n *\n * Returns {Promise}\n */\nBaseViewer.prototype.saveXML = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function saveXML(options) {\n\n options = options || {};\n\n var self = this;\n\n var definitions = this._definitions;\n\n return new Promise(function(resolve) {\n\n if (!definitions) {\n return resolve({\n error: new Error('no definitions loaded')\n });\n }\n\n // allow to fiddle around with definitions\n definitions = self._emit('saveXML.start', {\n definitions: definitions\n }) || definitions;\n\n self._moddle.toXML(definitions, options).then(function(result) {\n\n var xml = result.xml;\n\n xml = self._emit('saveXML.serialized', {\n xml: xml\n }) || xml;\n\n return resolve({\n xml: xml\n });\n });\n }).catch(function(error) {\n return { error: error };\n }).then(function(result) {\n\n self._emit('saveXML.done', result);\n\n var error = result.error;\n\n if (error) {\n return Promise.reject(error);\n }\n\n return result;\n });\n});\n\n/**\n * The saveSVG result.\n *\n * @typedef {Object} SaveSVGResult\n *\n * @property {string} svg\n */\n\n/**\n * Export the currently displayed BPMN 2.0 diagram as\n * an SVG image.\n *\n * ## Life-Cycle Events\n *\n * During SVG saving the viewer will fire life-cycle events:\n *\n * * saveSVG.start (before serialization)\n * * saveSVG.done (everything done)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {Object} [options]\n *\n * Returns {Promise}\n */\nBaseViewer.prototype.saveSVG = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function saveSVG(options) {\n\n options = options || {};\n\n var self = this;\n\n return new Promise(function(resolve, reject) {\n\n self._emit('saveSVG.start');\n\n var svg, err;\n\n try {\n var canvas = self.get('canvas');\n\n var contentNode = canvas.getDefaultLayer(),\n defsNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.query)('defs', canvas._svg);\n\n var contents = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_6__.innerSVG)(contentNode),\n defs = defsNode ? '' + (0,tiny_svg__WEBPACK_IMPORTED_MODULE_6__.innerSVG)(defsNode) + '' : '';\n\n var bbox = contentNode.getBBox();\n\n svg =\n '\\n' +\n '\\n' +\n '\\n' +\n '' +\n defs + contents +\n '';\n } catch (e) {\n err = e;\n }\n\n self._emit('saveSVG.done', {\n error: err,\n svg: svg\n });\n\n if (!err) {\n return resolve({ svg: svg });\n }\n\n return reject(err);\n });\n});\n\n/**\n * Get a named diagram service.\n *\n * @example\n *\n * var elementRegistry = viewer.get('elementRegistry');\n * var startEventShape = elementRegistry.get('StartEvent_1');\n *\n * @param {string} name\n *\n * @return {Object} diagram service instance\n *\n * @method BaseViewer#get\n */\n\n/**\n * Invoke a function in the context of this viewer.\n *\n * @example\n *\n * viewer.invoke(function(elementRegistry) {\n * var startEventShape = elementRegistry.get('StartEvent_1');\n * });\n *\n * @param {Function} fn to be invoked\n *\n * @return {Object} the functions return value\n *\n * @method BaseViewer#invoke\n */\n\n\nBaseViewer.prototype._setDefinitions = function(definitions) {\n this._definitions = definitions;\n};\n\nBaseViewer.prototype.getModules = function() {\n return this._modules;\n};\n\n/**\n * Remove all drawn elements from the viewer.\n *\n * After calling this method the viewer can still\n * be reused for opening another diagram.\n *\n * @method BaseViewer#clear\n */\nBaseViewer.prototype.clear = function() {\n if (!this.getDefinitions()) {\n\n // no diagram to clear\n return;\n }\n\n // remove businessObject#di binding\n //\n // this is necessary, as we establish the bindings\n // in the BpmnTreeWalker (and assume none are given\n // on reimport)\n this.get('elementRegistry').forEach(function(element) {\n var bo = element.businessObject;\n\n if (bo && bo.di) {\n delete bo.di;\n }\n });\n\n // remove drawn elements\n diagram_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.clear.call(this);\n};\n\n/**\n * Destroy the viewer instance and remove all its\n * remainders from the document tree.\n */\nBaseViewer.prototype.destroy = function() {\n\n // diagram destroy\n diagram_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.destroy.call(this);\n\n // dom detach\n (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.remove)(this._container);\n};\n\n/**\n * Register an event listener\n *\n * Remove a previously added listener via {@link #off(event, callback)}.\n *\n * @param {string} event\n * @param {number} [priority]\n * @param {Function} callback\n * @param {Object} [that]\n */\nBaseViewer.prototype.on = function(event, priority, callback, target) {\n return this.get('eventBus').on(event, priority, callback, target);\n};\n\n/**\n * De-register an event listener\n *\n * @param {string} event\n * @param {Function} callback\n */\nBaseViewer.prototype.off = function(event, callback) {\n this.get('eventBus').off(event, callback);\n};\n\nBaseViewer.prototype.attachTo = function(parentNode) {\n\n if (!parentNode) {\n throw new Error('parentNode required');\n }\n\n // ensure we detach from the\n // previous, old parent\n this.detach();\n\n // unwrap jQuery if provided\n if (parentNode.get && parentNode.constructor.prototype.jquery) {\n parentNode = parentNode.get(0);\n }\n\n if (typeof parentNode === 'string') {\n parentNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.query)(parentNode);\n }\n\n parentNode.appendChild(this._container);\n\n this._emit('attach', {});\n\n this.get('canvas').resized();\n};\n\nBaseViewer.prototype.getDefinitions = function() {\n return this._definitions;\n};\n\nBaseViewer.prototype.detach = function() {\n\n var container = this._container,\n parentNode = container.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n this._emit('detach', {});\n\n parentNode.removeChild(container);\n};\n\nBaseViewer.prototype._init = function(container, moddle, options) {\n\n var baseModules = options.modules || this.getModules(),\n additionalModules = options.additionalModules || [],\n staticModules = [\n {\n bpmnjs: [ 'value', this ],\n moddle: [ 'value', moddle ]\n }\n ];\n\n var diagramModules = [].concat(staticModules, baseModules, additionalModules);\n\n var diagramOptions = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.omit)(options, [ 'additionalModules' ]), {\n canvas: (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, options.canvas, { container: container }),\n modules: diagramModules\n });\n\n // invoke diagram constructor\n diagram_js__WEBPACK_IMPORTED_MODULE_2__.default.call(this, diagramOptions);\n\n if (options && options.container) {\n this.attachTo(options.container);\n }\n};\n\n/**\n * Emit an event on the underlying {@link EventBus}\n *\n * @param {string} type\n * @param {Object} event\n *\n * @return {Object} event processing result (if any)\n */\nBaseViewer.prototype._emit = function(type, event) {\n return this.get('eventBus').fire(type, event);\n};\n\nBaseViewer.prototype._createContainer = function(options) {\n\n var container = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.domify)('
    ');\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(container.style, {\n width: ensureUnit(options.width),\n height: ensureUnit(options.height),\n position: options.position\n });\n\n return container;\n};\n\nBaseViewer.prototype._createModdle = function(options) {\n var moddleOptions = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, this._moddleExtensions, options.moddleExtensions);\n\n return new bpmn_moddle__WEBPACK_IMPORTED_MODULE_7__.default(moddleOptions);\n};\n\nBaseViewer.prototype._modules = [];\n\n// helpers ///////////////\n\nfunction addWarningsToError(err, warningsAry) {\n err.warnings = warningsAry;\n return err;\n}\n\nfunction checkValidationError(err) {\n\n // check if we can help the user by indicating wrong BPMN 2.0 xml\n // (in case he or the exporting tool did not get that right)\n\n var pattern = /unparsable content <([^>]+)> detected([\\s\\S]*)$/;\n var match = pattern.exec(err.message);\n\n if (match) {\n err.message =\n 'unparsable content <' + match[1] + '> detected; ' +\n 'this may indicate an invalid BPMN 2.0 diagram file' + match[2];\n }\n\n return err;\n}\n\nvar DEFAULT_OPTIONS = {\n width: '100%',\n height: '100%',\n position: 'relative'\n};\n\n\n/**\n * Ensure the passed argument is a proper unit (defaulting to px)\n */\nfunction ensureUnit(val) {\n return val + ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(val) ? 'px' : '');\n}\n\n\n/**\n * Find BPMNDiagram in definitions by ID\n *\n * @param {ModdleElement} definitions\n * @param {string} diagramId\n *\n * @return {ModdleElement|null}\n */\nfunction findBPMNDiagram(definitions, diagramId) {\n if (!diagramId) {\n return null;\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(definitions.diagrams, function(element) {\n return element.id === diagramId;\n }) || null;\n}\n\n\n/* */\n\n\n\n\n\n/**\n * Adds the project logo to the diagram container as\n * required by the bpmn.io license.\n *\n * @see http://bpmn.io/license\n *\n * @param {Element} container\n */\nfunction addProjectLogo(container) {\n var img = _util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__.BPMNIO_IMG;\n\n var linkMarkup =\n '' +\n img +\n '';\n\n var linkElement = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.domify)(linkMarkup);\n\n container.appendChild(linkElement);\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(linkElement, 'click', function(event) {\n (0,_util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__.open)();\n\n event.preventDefault();\n });\n}\n\n/* */\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/BaseViewer.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/Modeler.js": /*!*********************************************!*\ !*** ./node_modules/bpmn-js/lib/Modeler.js ***! \*********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Modeler)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _BaseModeler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseModeler */ \"./node_modules/bpmn-js/lib/BaseModeler.js\");\n/* harmony import */ var _Viewer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Viewer */ \"./node_modules/bpmn-js/lib/Viewer.js\");\n/* harmony import */ var _NavigatedViewer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NavigatedViewer */ \"./node_modules/bpmn-js/lib/NavigatedViewer.js\");\n/* harmony import */ var diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/navigation/keyboard-move */ \"./node_modules/diagram-js/lib/navigation/keyboard-move/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/navigation/movecanvas */ \"./node_modules/diagram-js/lib/navigation/movecanvas/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_touch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! diagram-js/lib/navigation/touch */ \"./node_modules/diagram-js/lib/navigation/touch/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! diagram-js/lib/navigation/zoomscroll */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/index.js\");\n/* harmony import */ var diagram_js_lib_features_align_elements__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/features/align-elements */ \"./node_modules/diagram-js/lib/features/align-elements/index.js\");\n/* harmony import */ var _features_auto_place__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./features/auto-place */ \"./node_modules/bpmn-js/lib/features/auto-place/index.js\");\n/* harmony import */ var _features_auto_resize__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./features/auto-resize */ \"./node_modules/bpmn-js/lib/features/auto-resize/index.js\");\n/* harmony import */ var diagram_js_lib_features_auto_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! diagram-js/lib/features/auto-scroll */ \"./node_modules/diagram-js/lib/features/auto-scroll/index.js\");\n/* harmony import */ var diagram_js_lib_features_bendpoints__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! diagram-js/lib/features/bendpoints */ \"./node_modules/diagram-js/lib/features/bendpoints/index.js\");\n/* harmony import */ var diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! diagram-js/lib/features/connect */ \"./node_modules/diagram-js/lib/features/connect/index.js\");\n/* harmony import */ var diagram_js_lib_features_connection_preview__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! diagram-js/lib/features/connection-preview */ \"./node_modules/diagram-js/lib/features/connection-preview/index.js\");\n/* harmony import */ var _features_context_pad__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./features/context-pad */ \"./node_modules/bpmn-js/lib/features/context-pad/index.js\");\n/* harmony import */ var _features_copy_paste__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./features/copy-paste */ \"./node_modules/bpmn-js/lib/features/copy-paste/index.js\");\n/* harmony import */ var diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! diagram-js/lib/features/create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var _features_distribute_elements__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./features/distribute-elements */ \"./node_modules/bpmn-js/lib/features/distribute-elements/index.js\");\n/* harmony import */ var _features_editor_actions__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./features/editor-actions */ \"./node_modules/bpmn-js/lib/features/editor-actions/index.js\");\n/* harmony import */ var _features_grid_snapping__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./features/grid-snapping */ \"./node_modules/bpmn-js/lib/features/grid-snapping/index.js\");\n/* harmony import */ var _features_interaction_events__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./features/interaction-events */ \"./node_modules/bpmn-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _features_keyboard__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./features/keyboard */ \"./node_modules/bpmn-js/lib/features/keyboard/index.js\");\n/* harmony import */ var diagram_js_lib_features_keyboard_move_selection__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! diagram-js/lib/features/keyboard-move-selection */ \"./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js\");\n/* harmony import */ var _features_label_editing__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./features/label-editing */ \"./node_modules/bpmn-js/lib/features/label-editing/index.js\");\n/* harmony import */ var _features_modeling__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./features/modeling */ \"./node_modules/bpmn-js/lib/features/modeling/index.js\");\n/* harmony import */ var diagram_js_lib_features_move__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! diagram-js/lib/features/move */ \"./node_modules/diagram-js/lib/features/move/index.js\");\n/* harmony import */ var _features_palette__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./features/palette */ \"./node_modules/bpmn-js/lib/features/palette/index.js\");\n/* harmony import */ var _features_replace_preview__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./features/replace-preview */ \"./node_modules/bpmn-js/lib/features/replace-preview/index.js\");\n/* harmony import */ var diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! diagram-js/lib/features/resize */ \"./node_modules/diagram-js/lib/features/resize/index.js\");\n/* harmony import */ var _features_snapping__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./features/snapping */ \"./node_modules/bpmn-js/lib/features/snapping/index.js\");\n/* harmony import */ var _features_search__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./features/search */ \"./node_modules/bpmn-js/lib/features/search/index.js\");\n/* harmony import */ var _util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/CompatibilityUtil */ \"./node_modules/bpmn-js/lib/util/CompatibilityUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar initialDiagram =\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '';\n\n\n/**\n * A modeler for BPMN 2.0 diagrams.\n *\n *\n * ## Extending the Modeler\n *\n * In order to extend the viewer pass extension modules to bootstrap via the\n * `additionalModules` option. An extension module is an object that exposes\n * named services.\n *\n * The following example depicts the integration of a simple\n * logging component that integrates with interaction events:\n *\n *\n * ```javascript\n *\n * // logging component\n * function InteractionLogger(eventBus) {\n * eventBus.on('element.hover', function(event) {\n * console.log()\n * })\n * }\n *\n * InteractionLogger.$inject = [ 'eventBus' ]; // minification save\n *\n * // extension module\n * var extensionModule = {\n * __init__: [ 'interactionLogger' ],\n * interactionLogger: [ 'type', InteractionLogger ]\n * };\n *\n * // extend the viewer\n * var bpmnModeler = new Modeler({ additionalModules: [ extensionModule ] });\n * bpmnModeler.importXML(...);\n * ```\n *\n *\n * ## Customizing / Replacing Components\n *\n * You can replace individual diagram components by redefining them in override modules.\n * This works for all components, including those defined in the core.\n *\n * Pass in override modules via the `options.additionalModules` flag like this:\n *\n * ```javascript\n * function CustomContextPadProvider(contextPad) {\n *\n * contextPad.registerProvider(this);\n *\n * this.getContextPadEntries = function(element) {\n * // no entries, effectively disable the context pad\n * return {};\n * };\n * }\n *\n * CustomContextPadProvider.$inject = [ 'contextPad' ];\n *\n * var overrideModule = {\n * contextPadProvider: [ 'type', CustomContextPadProvider ]\n * };\n *\n * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]});\n * ```\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array} [options.modules] a list of modules to override the default modules\n * @param {Array} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction Modeler(options) {\n _BaseModeler__WEBPACK_IMPORTED_MODULE_1__.default.call(this, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Modeler, _BaseModeler__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nModeler.Viewer = _Viewer__WEBPACK_IMPORTED_MODULE_2__.default;\nModeler.NavigatedViewer = _NavigatedViewer__WEBPACK_IMPORTED_MODULE_3__.default;\n\n/**\n* The createDiagram result.\n*\n* @typedef {Object} CreateDiagramResult\n*\n* @property {Array} warnings\n*/\n\n/**\n* The createDiagram error.\n*\n* @typedef {Error} CreateDiagramError\n*\n* @property {Array} warnings\n*/\n\n/**\n * Create a new diagram to start modeling.\n *\n * Returns {Promise}\n */\nModeler.prototype.createDiagram = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_4__.wrapForCompatibility)(function createDiagram() {\n return this.importXML(initialDiagram);\n});\n\n\nModeler.prototype._interactionModules = [\n\n // non-modeling components\n diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_5__.default,\n diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_6__.default,\n diagram_js_lib_navigation_touch__WEBPACK_IMPORTED_MODULE_7__.default,\n diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_8__.default\n];\n\nModeler.prototype._modelingModules = [\n\n // modeling components\n diagram_js_lib_features_align_elements__WEBPACK_IMPORTED_MODULE_9__.default,\n _features_auto_place__WEBPACK_IMPORTED_MODULE_10__.default,\n diagram_js_lib_features_auto_scroll__WEBPACK_IMPORTED_MODULE_11__.default,\n _features_auto_resize__WEBPACK_IMPORTED_MODULE_12__.default,\n diagram_js_lib_features_bendpoints__WEBPACK_IMPORTED_MODULE_13__.default,\n diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_14__.default,\n diagram_js_lib_features_connection_preview__WEBPACK_IMPORTED_MODULE_15__.default,\n _features_context_pad__WEBPACK_IMPORTED_MODULE_16__.default,\n _features_copy_paste__WEBPACK_IMPORTED_MODULE_17__.default,\n diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_18__.default,\n _features_distribute_elements__WEBPACK_IMPORTED_MODULE_19__.default,\n _features_editor_actions__WEBPACK_IMPORTED_MODULE_20__.default,\n _features_grid_snapping__WEBPACK_IMPORTED_MODULE_21__.default,\n _features_interaction_events__WEBPACK_IMPORTED_MODULE_22__.default,\n _features_keyboard__WEBPACK_IMPORTED_MODULE_23__.default,\n diagram_js_lib_features_keyboard_move_selection__WEBPACK_IMPORTED_MODULE_24__.default,\n _features_label_editing__WEBPACK_IMPORTED_MODULE_25__.default,\n _features_modeling__WEBPACK_IMPORTED_MODULE_26__.default,\n diagram_js_lib_features_move__WEBPACK_IMPORTED_MODULE_27__.default,\n _features_palette__WEBPACK_IMPORTED_MODULE_28__.default,\n _features_replace_preview__WEBPACK_IMPORTED_MODULE_29__.default,\n diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_30__.default,\n _features_snapping__WEBPACK_IMPORTED_MODULE_31__.default,\n _features_search__WEBPACK_IMPORTED_MODULE_32__.default\n];\n\n\n// modules the modeler is composed of\n//\n// - viewer modules\n// - interaction modules\n// - modeling modules\n\nModeler.prototype._modules = [].concat(\n _Viewer__WEBPACK_IMPORTED_MODULE_2__.default.prototype._modules,\n Modeler.prototype._interactionModules,\n Modeler.prototype._modelingModules\n);\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/Modeler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/NavigatedViewer.js": /*!*****************************************************!*\ !*** ./node_modules/bpmn-js/lib/NavigatedViewer.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ NavigatedViewer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Viewer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Viewer */ \"./node_modules/bpmn-js/lib/Viewer.js\");\n/* harmony import */ var diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/navigation/keyboard-move */ \"./node_modules/diagram-js/lib/navigation/keyboard-move/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/navigation/movecanvas */ \"./node_modules/diagram-js/lib/navigation/movecanvas/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/navigation/zoomscroll */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/index.js\");\n\n\n\n\n\n\n\n\n\n/**\n * A viewer that includes mouse navigation facilities\n *\n * @param {Object} options\n */\nfunction NavigatedViewer(options) {\n _Viewer__WEBPACK_IMPORTED_MODULE_1__.default.call(this, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(NavigatedViewer, _Viewer__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nNavigatedViewer.prototype._navigationModules = [\n diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_2__.default,\n diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_3__.default,\n diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_4__.default\n];\n\nNavigatedViewer.prototype._modules = [].concat(\n _Viewer__WEBPACK_IMPORTED_MODULE_1__.default.prototype._modules,\n NavigatedViewer.prototype._navigationModules\n);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/NavigatedViewer.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/Viewer.js": /*!********************************************!*\ !*** ./node_modules/bpmn-js/lib/Viewer.js ***! \********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Viewer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core */ \"./node_modules/bpmn-js/lib/core/index.js\");\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var diagram_js_lib_features_overlays__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/features/overlays */ \"./node_modules/diagram-js/lib/features/overlays/index.js\");\n/* harmony import */ var _BaseViewer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseViewer */ \"./node_modules/bpmn-js/lib/BaseViewer.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * A viewer for BPMN 2.0 diagrams.\n *\n * Have a look at {@link NavigatedViewer} or {@link Modeler} for bundles that include\n * additional features.\n *\n *\n * ## Extending the Viewer\n *\n * In order to extend the viewer pass extension modules to bootstrap via the\n * `additionalModules` option. An extension module is an object that exposes\n * named services.\n *\n * The following example depicts the integration of a simple\n * logging component that integrates with interaction events:\n *\n *\n * ```javascript\n *\n * // logging component\n * function InteractionLogger(eventBus) {\n * eventBus.on('element.hover', function(event) {\n * console.log()\n * })\n * }\n *\n * InteractionLogger.$inject = [ 'eventBus' ]; // minification save\n *\n * // extension module\n * var extensionModule = {\n * __init__: [ 'interactionLogger' ],\n * interactionLogger: [ 'type', InteractionLogger ]\n * };\n *\n * // extend the viewer\n * var bpmnViewer = new Viewer({ additionalModules: [ extensionModule ] });\n * bpmnViewer.importXML(...);\n * ```\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array} [options.modules] a list of modules to override the default modules\n * @param {Array} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction Viewer(options) {\n _BaseViewer__WEBPACK_IMPORTED_MODULE_1__.default.call(this, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Viewer, _BaseViewer__WEBPACK_IMPORTED_MODULE_1__.default);\n\n// modules the viewer is composed of\nViewer.prototype._modules = [\n _core__WEBPACK_IMPORTED_MODULE_2__.default,\n diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_3__.default,\n diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_4__.default,\n diagram_js_lib_features_overlays__WEBPACK_IMPORTED_MODULE_5__.default\n];\n\n// default moddle extensions the viewer is composed of\nViewer.prototype._moddleExtensions = {};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/Viewer.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/core/index.js": /*!************************************************!*\ !*** ./node_modules/bpmn-js/lib/core/index.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _draw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../draw */ \"./node_modules/bpmn-js/lib/draw/index.js\");\n/* harmony import */ var _import__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../import */ \"./node_modules/bpmn-js/lib/import/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _draw__WEBPACK_IMPORTED_MODULE_0__.default,\n _import__WEBPACK_IMPORTED_MODULE_1__.default\n ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/core/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js": /*!*********************************************************!*\ !*** ./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isTypedEvent\": () => (/* binding */ isTypedEvent),\n/* harmony export */ \"isThrowEvent\": () => (/* binding */ isThrowEvent),\n/* harmony export */ \"isCollection\": () => (/* binding */ isCollection),\n/* harmony export */ \"getDi\": () => (/* binding */ getDi),\n/* harmony export */ \"getSemantic\": () => (/* binding */ getSemantic),\n/* harmony export */ \"getFillColor\": () => (/* binding */ getFillColor),\n/* harmony export */ \"getStrokeColor\": () => (/* binding */ getStrokeColor),\n/* harmony export */ \"getLabelColor\": () => (/* binding */ getLabelColor),\n/* harmony export */ \"getCirclePath\": () => (/* binding */ getCirclePath),\n/* harmony export */ \"getRoundRectPath\": () => (/* binding */ getRoundRectPath),\n/* harmony export */ \"getDiamondPath\": () => (/* binding */ getDiamondPath),\n/* harmony export */ \"getRectPath\": () => (/* binding */ getRectPath)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n\n\n\n\n\n// element utils //////////////////////\n\n/**\n * Checks if eventDefinition of the given element matches with semantic type.\n *\n * @return {boolean} true if element is of the given semantic type\n */\nfunction isTypedEvent(event, eventDefinitionType, filter) {\n\n function matches(definition, filter) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(filter, function(val, key) {\n\n // we want a == conversion here, to be able to catch\n // undefined == false and friends\n /* jshint -W116 */\n return definition[key] == val;\n });\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.some)(event.eventDefinitions, function(definition) {\n return definition.$type === eventDefinitionType && matches(event, filter);\n });\n}\n\nfunction isThrowEvent(event) {\n return (event.$type === 'bpmn:IntermediateThrowEvent') || (event.$type === 'bpmn:EndEvent');\n}\n\nfunction isCollection(element) {\n var dataObject = element.dataObjectRef;\n\n return element.isCollection || (dataObject && dataObject.isCollection);\n}\n\nfunction getDi(element) {\n return element.businessObject.di;\n}\n\nfunction getSemantic(element) {\n return element.businessObject;\n}\n\n\n// color access //////////////////////\n\nfunction getFillColor(element, defaultColor) {\n var di = getDi(element);\n\n return di.get('color:background-color') || di.get('bioc:fill') || defaultColor || 'white';\n}\n\nfunction getStrokeColor(element, defaultColor) {\n var di = getDi(element);\n\n return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || 'black';\n}\n\nfunction getLabelColor(element, defaultColor, defaultStrokeColor) {\n var di = getDi(element),\n label = di.get('label');\n\n return label && label.get('color:color') || defaultColor ||\n getStrokeColor(element, defaultStrokeColor);\n}\n\n// cropping path customizations //////////////////////\n\nfunction getCirclePath(shape) {\n\n var cx = shape.x + shape.width / 2,\n cy = shape.y + shape.height / 2,\n radius = shape.width / 2;\n\n var circlePath = [\n ['M', cx, cy],\n ['m', 0, -radius],\n ['a', radius, radius, 0, 1, 1, 0, 2 * radius],\n ['a', radius, radius, 0, 1, 1, 0, -2 * radius],\n ['z']\n ];\n\n return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(circlePath);\n}\n\nfunction getRoundRectPath(shape, borderRadius) {\n\n var x = shape.x,\n y = shape.y,\n width = shape.width,\n height = shape.height;\n\n var roundRectPath = [\n ['M', x + borderRadius, y],\n ['l', width - borderRadius * 2, 0],\n ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, borderRadius],\n ['l', 0, height - borderRadius * 2],\n ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, borderRadius],\n ['l', borderRadius * 2 - width, 0],\n ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, -borderRadius],\n ['l', 0, borderRadius * 2 - height],\n ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, -borderRadius],\n ['z']\n ];\n\n return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(roundRectPath);\n}\n\nfunction getDiamondPath(shape) {\n\n var width = shape.width,\n height = shape.height,\n x = shape.x,\n y = shape.y,\n halfWidth = width / 2,\n halfHeight = height / 2;\n\n var diamondPath = [\n ['M', x + halfWidth, y],\n ['l', halfWidth, halfHeight],\n ['l', -halfWidth, halfHeight],\n ['l', -halfWidth, -halfHeight],\n ['z']\n ];\n\n return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(diamondPath);\n}\n\nfunction getRectPath(shape) {\n var x = shape.x,\n y = shape.y,\n width = shape.width,\n height = shape.height;\n\n var rectPath = [\n ['M', x, y],\n ['l', width, 0],\n ['l', 0, height],\n ['l', -width, 0],\n ['z']\n ];\n\n return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(rectPath);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/draw/BpmnRenderer.js": /*!*******************************************************!*\ !*** ./node_modules/bpmn-js/lib/draw/BpmnRenderer.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnRenderer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_draw_BaseRenderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/draw/BaseRenderer */ \"./node_modules/diagram-js/lib/draw/BaseRenderer.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../features/label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n/* harmony import */ var _BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./BpmnRenderUtil */ \"./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var ids__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ids */ \"./node_modules/ids/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar RENDERER_IDS = new ids__WEBPACK_IMPORTED_MODULE_1__.default();\n\nvar TASK_BORDER_RADIUS = 10;\nvar INNER_OUTER_DIST = 3;\n\nvar DEFAULT_FILL_OPACITY = .95,\n HIGH_FILL_OPACITY = .35;\n\nvar ELEMENT_LABEL_DISTANCE = 10;\n\nfunction BpmnRenderer(\n config, eventBus, styles, pathMap,\n canvas, textRenderer, priority) {\n\n diagram_js_lib_draw_BaseRenderer__WEBPACK_IMPORTED_MODULE_2__.default.call(this, eventBus, priority);\n\n var defaultFillColor = config && config.defaultFillColor,\n defaultStrokeColor = config && config.defaultStrokeColor,\n defaultLabelColor = config && config.defaultLabelColor;\n\n var rendererId = RENDERER_IDS.next();\n\n var markers = {};\n\n var computeStyle = styles.computeStyle;\n\n function addMarker(id, options) {\n var attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n fill: 'black',\n strokeWidth: 1,\n strokeLinecap: 'round',\n strokeDasharray: 'none'\n }, options.attrs);\n\n var ref = options.ref || { x: 0, y: 0 };\n\n var scale = options.scale || 1;\n\n // fix for safari / chrome / firefox bug not correctly\n // resetting stroke dash array\n if (attrs.strokeDasharray === 'none') {\n attrs.strokeDasharray = [10000, 1];\n }\n\n var marker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('marker');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(options.element, attrs);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(marker, options.element);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(marker, {\n id: id,\n viewBox: '0 0 20 20',\n refX: ref.x,\n refY: ref.y,\n markerWidth: 20 * scale,\n markerHeight: 20 * scale,\n orient: 'auto'\n });\n\n var defs = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.query)('defs', canvas._svg);\n\n if (!defs) {\n defs = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('defs');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(canvas._svg, defs);\n }\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(defs, marker);\n\n markers[id] = marker;\n }\n\n function colorEscape(str) {\n\n // only allow characters and numbers\n return str.replace(/[^0-9a-zA-z]+/g, '_');\n }\n\n function marker(type, fill, stroke) {\n var id = type + '-' + colorEscape(fill) + '-' + colorEscape(stroke) + '-' + rendererId;\n\n if (!markers[id]) {\n createMarker(id, type, fill, stroke);\n }\n\n return 'url(#' + id + ')';\n }\n\n function createMarker(id, type, fill, stroke) {\n\n if (type === 'sequenceflow-end') {\n var sequenceflowEnd = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });\n\n addMarker(id, {\n element: sequenceflowEnd,\n ref: { x: 11, y: 10 },\n scale: 0.5,\n attrs: {\n fill: stroke,\n stroke: stroke\n }\n });\n }\n\n if (type === 'messageflow-start') {\n var messageflowStart = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('circle');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(messageflowStart, { cx: 6, cy: 6, r: 3.5 });\n\n addMarker(id, {\n element: messageflowStart,\n attrs: {\n fill: fill,\n stroke: stroke\n },\n ref: { x: 6, y: 6 }\n });\n }\n\n if (type === 'messageflow-end') {\n var messageflowEnd = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });\n\n addMarker(id, {\n element: messageflowEnd,\n attrs: {\n fill: fill,\n stroke: stroke,\n strokeLinecap: 'butt'\n },\n ref: { x: 8.5, y: 5 }\n });\n }\n\n if (type === 'association-start') {\n var associationStart = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });\n\n addMarker(id, {\n element: associationStart,\n attrs: {\n fill: 'none',\n stroke: stroke,\n strokeWidth: 1.5\n },\n ref: { x: 1, y: 10 },\n scale: 0.5\n });\n }\n\n if (type === 'association-end') {\n var associationEnd = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });\n\n addMarker(id, {\n element: associationEnd,\n attrs: {\n fill: 'none',\n stroke: stroke,\n strokeWidth: 1.5\n },\n ref: { x: 12, y: 10 },\n scale: 0.5\n });\n }\n\n if (type === 'conditional-flow-marker') {\n var conditionalflowMarker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });\n\n addMarker(id, {\n element: conditionalflowMarker,\n attrs: {\n fill: fill,\n stroke: stroke\n },\n ref: { x: -1, y: 10 },\n scale: 0.5\n });\n }\n\n if (type === 'conditional-default-flow-marker') {\n var conditionaldefaultflowMarker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });\n\n addMarker(id, {\n element: conditionaldefaultflowMarker,\n attrs: {\n stroke: stroke\n },\n ref: { x: 0, y: 10 },\n scale: 0.5\n });\n }\n }\n\n function drawCircle(parentGfx, width, height, offset, attrs) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isObject)(offset)) {\n attrs = offset;\n offset = 0;\n }\n\n offset = offset || 0;\n\n attrs = computeStyle(attrs, {\n stroke: 'black',\n strokeWidth: 2,\n fill: 'white'\n });\n\n if (attrs.fill === 'none') {\n delete attrs.fillOpacity;\n }\n\n var cx = width / 2,\n cy = height / 2;\n\n var circle = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('circle');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(circle, {\n cx: cx,\n cy: cy,\n r: Math.round((width + height) / 4 - offset)\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(circle, attrs);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, circle);\n\n return circle;\n }\n\n function drawRect(parentGfx, width, height, r, offset, attrs) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isObject)(offset)) {\n attrs = offset;\n offset = 0;\n }\n\n offset = offset || 0;\n\n attrs = computeStyle(attrs, {\n stroke: 'black',\n strokeWidth: 2,\n fill: 'white'\n });\n\n var rect = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('rect');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(rect, {\n x: offset,\n y: offset,\n width: width - offset * 2,\n height: height - offset * 2,\n rx: r,\n ry: r\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(rect, attrs);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, rect);\n\n return rect;\n }\n\n function drawDiamond(parentGfx, width, height, attrs) {\n\n var x_2 = width / 2;\n var y_2 = height / 2;\n\n var points = [{ x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 }];\n\n var pointsString = points.map(function(point) {\n return point.x + ',' + point.y;\n }).join(' ');\n\n attrs = computeStyle(attrs, {\n stroke: 'black',\n strokeWidth: 2,\n fill: 'white'\n });\n\n var polygon = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('polygon');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(polygon, {\n points: pointsString\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(polygon, attrs);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, polygon);\n\n return polygon;\n }\n\n function drawLine(parentGfx, waypoints, attrs) {\n attrs = computeStyle(attrs, [ 'no-fill' ], {\n stroke: 'black',\n strokeWidth: 2,\n fill: 'none'\n });\n\n var line = (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_6__.createLine)(waypoints, attrs);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, line);\n\n return line;\n }\n\n function drawPath(parentGfx, d, attrs) {\n\n attrs = computeStyle(attrs, [ 'no-fill' ], {\n strokeWidth: 2,\n stroke: 'black'\n });\n\n var path = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, { d: d });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, attrs);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, path);\n\n return path;\n }\n\n function drawMarker(type, parentGfx, path, attrs) {\n return drawPath(parentGfx, path, (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({ 'data-marker': type }, attrs));\n }\n\n function as(type) {\n return function(parentGfx, element) {\n return handlers[type](parentGfx, element);\n };\n }\n\n function renderer(type) {\n return handlers[type];\n }\n\n function renderEventContent(element, parentGfx) {\n\n var event = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n var isThrowing = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isThrowEvent)(event);\n\n if (event.eventDefinitions && event.eventDefinitions.length>1) {\n if (event.parallelMultiple) {\n return renderer('bpmn:ParallelMultipleEventDefinition')(parentGfx, element, isThrowing);\n }\n else {\n return renderer('bpmn:MultipleEventDefinition')(parentGfx, element, isThrowing);\n }\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:MessageEventDefinition')) {\n return renderer('bpmn:MessageEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:TimerEventDefinition')) {\n return renderer('bpmn:TimerEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:ConditionalEventDefinition')) {\n return renderer('bpmn:ConditionalEventDefinition')(parentGfx, element);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:SignalEventDefinition')) {\n return renderer('bpmn:SignalEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:EscalationEventDefinition')) {\n return renderer('bpmn:EscalationEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:LinkEventDefinition')) {\n return renderer('bpmn:LinkEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:ErrorEventDefinition')) {\n return renderer('bpmn:ErrorEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:CancelEventDefinition')) {\n return renderer('bpmn:CancelEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:CompensateEventDefinition')) {\n return renderer('bpmn:CompensateEventDefinition')(parentGfx, element, isThrowing);\n }\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:TerminateEventDefinition')) {\n return renderer('bpmn:TerminateEventDefinition')(parentGfx, element, isThrowing);\n }\n\n return null;\n }\n\n function renderLabel(parentGfx, label, options) {\n\n options = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n size: {\n width: 100\n }\n }, options);\n\n var text = textRenderer.createText(label || '', options);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(text).add('djs-label');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, text);\n\n return text;\n }\n\n function renderEmbeddedLabel(parentGfx, element, align) {\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n return renderLabel(parentGfx, semantic.name, {\n box: element,\n align: align,\n padding: 5,\n style: {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n }\n });\n }\n\n function renderExternalLabel(parentGfx, element) {\n\n var box = {\n width: 90,\n height: 30,\n x: element.width / 2 + element.x,\n y: element.height / 2 + element.y\n };\n\n return renderLabel(parentGfx, (0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_8__.getLabel)(element), {\n box: box,\n fitBox: true,\n style: (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(\n {},\n textRenderer.getExternalStyle(),\n {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n }\n )\n });\n }\n\n function renderLaneLabel(parentGfx, text, element) {\n var textBox = renderLabel(parentGfx, text, {\n box: {\n height: 30,\n width: element.height\n },\n align: 'center-middle',\n style: {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n }\n });\n\n var top = -1 * element.height;\n\n (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.transform)(textBox, 0, -top, 270);\n }\n\n function createPathFromConnection(connection) {\n var waypoints = connection.waypoints;\n\n var pathData = 'm ' + waypoints[0].x + ',' + waypoints[0].y;\n for (var i = 1; i < waypoints.length; i++) {\n pathData += 'L' + waypoints[i].x + ',' + waypoints[i].y + ' ';\n }\n return pathData;\n }\n\n var handlers = this.handlers = {\n 'bpmn:Event': function(parentGfx, element, attrs) {\n\n if (!('fillOpacity' in attrs)) {\n attrs.fillOpacity = DEFAULT_FILL_OPACITY;\n }\n\n return drawCircle(parentGfx, element.width, element.height, attrs);\n },\n 'bpmn:StartEvent': function(parentGfx, element) {\n var attrs = {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n if (!semantic.isInterrupting) {\n attrs = {\n strokeDasharray: '6',\n strokeLinecap: 'round',\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n }\n\n var circle = renderer('bpmn:Event')(parentGfx, element, attrs);\n\n renderEventContent(element, parentGfx);\n\n return circle;\n },\n 'bpmn:MessageEventDefinition': function(parentGfx, element, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_MESSAGE', {\n xScaleFactor: 0.9,\n yScaleFactor: 0.9,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.235,\n my: 0.315\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor) : (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor);\n var stroke = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor) : (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n var messagePath = drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: stroke\n });\n\n return messagePath;\n },\n 'bpmn:TimerEventDefinition': function(parentGfx, element) {\n var circle = drawCircle(parentGfx, element.width, element.height, 0.2 * element.height, {\n strokeWidth: 2,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var pathData = pathMap.getScaledPath('EVENT_TIMER_WH', {\n xScaleFactor: 0.75,\n yScaleFactor: 0.75,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.5,\n my: 0.5\n }\n });\n\n drawPath(parentGfx, pathData, {\n strokeWidth: 2,\n strokeLinecap: 'square',\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n for (var i = 0;i < 12; i++) {\n\n var linePathData = pathMap.getScaledPath('EVENT_TIMER_LINE', {\n xScaleFactor: 0.75,\n yScaleFactor: 0.75,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.5,\n my: 0.5\n }\n });\n\n var width = element.width / 2;\n var height = element.height / 2;\n\n drawPath(parentGfx, linePathData, {\n strokeWidth: 1,\n strokeLinecap: 'square',\n transform: 'rotate(' + (i * 30) + ',' + height + ',' + width + ')',\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n }\n\n return circle;\n },\n 'bpmn:EscalationEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_ESCALATION', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.5,\n my: 0.2\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:ConditionalEventDefinition': function(parentGfx, event) {\n var pathData = pathMap.getScaledPath('EVENT_CONDITIONAL', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.5,\n my: 0.222\n }\n });\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:LinkEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_LINK', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.57,\n my: 0.263\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:ErrorEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_ERROR', {\n xScaleFactor: 1.1,\n yScaleFactor: 1.1,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.2,\n my: 0.722\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:CancelEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_CANCEL_45', {\n xScaleFactor: 1.0,\n yScaleFactor: 1.0,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.638,\n my: -0.055\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n var path = drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n\n (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.rotate)(path, 45);\n\n return path;\n },\n 'bpmn:CompensateEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_COMPENSATION', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.22,\n my: 0.5\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:SignalEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_SIGNAL', {\n xScaleFactor: 0.9,\n yScaleFactor: 0.9,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.5,\n my: 0.2\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:MultipleEventDefinition': function(parentGfx, event, isThrowing) {\n var pathData = pathMap.getScaledPath('EVENT_MULTIPLE', {\n xScaleFactor: 1.1,\n yScaleFactor: 1.1,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.222,\n my: 0.36\n }\n });\n\n var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: fill\n });\n },\n 'bpmn:ParallelMultipleEventDefinition': function(parentGfx, event) {\n var pathData = pathMap.getScaledPath('EVENT_PARALLEL_MULTIPLE', {\n xScaleFactor: 1.2,\n yScaleFactor: 1.2,\n containerWidth: event.width,\n containerHeight: event.height,\n position: {\n mx: 0.458,\n my: 0.194\n }\n });\n\n return drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n });\n },\n 'bpmn:EndEvent': function(parentGfx, element) {\n var circle = renderer('bpmn:Event')(parentGfx, element, {\n strokeWidth: 4,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n renderEventContent(element, parentGfx, true);\n\n return circle;\n },\n 'bpmn:TerminateEventDefinition': function(parentGfx, element) {\n var circle = drawCircle(parentGfx, element.width, element.height, 8, {\n strokeWidth: 4,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return circle;\n },\n 'bpmn:IntermediateEvent': function(parentGfx, element) {\n var outer = renderer('bpmn:Event')(parentGfx, element, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n /* inner */\n drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, 'none'),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n renderEventContent(element, parentGfx);\n\n return outer;\n },\n 'bpmn:IntermediateCatchEvent': as('bpmn:IntermediateEvent'),\n 'bpmn:IntermediateThrowEvent': as('bpmn:IntermediateEvent'),\n\n 'bpmn:Activity': function(parentGfx, element, attrs) {\n\n attrs = attrs || {};\n\n if (!('fillOpacity' in attrs)) {\n attrs.fillOpacity = DEFAULT_FILL_OPACITY;\n }\n\n return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, attrs);\n },\n\n 'bpmn:Task': function(parentGfx, element) {\n var attrs = {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n var rect = renderer('bpmn:Activity')(parentGfx, element, attrs);\n\n renderEmbeddedLabel(parentGfx, element, 'center-middle');\n attachTaskMarkers(parentGfx, element);\n\n return rect;\n },\n 'bpmn:ServiceTask': function(parentGfx, element) {\n var task = renderer('bpmn:Task')(parentGfx, element);\n\n var pathDataBG = pathMap.getScaledPath('TASK_TYPE_SERVICE', {\n abspos: {\n x: 12,\n y: 18\n }\n });\n\n /* service bg */ drawPath(parentGfx, pathDataBG, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var fillPathData = pathMap.getScaledPath('TASK_TYPE_SERVICE_FILL', {\n abspos: {\n x: 17.2,\n y: 18\n }\n });\n\n /* service fill */ drawPath(parentGfx, fillPathData, {\n strokeWidth: 0,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor)\n });\n\n var pathData = pathMap.getScaledPath('TASK_TYPE_SERVICE', {\n abspos: {\n x: 17,\n y: 22\n }\n });\n\n /* service */ drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return task;\n },\n 'bpmn:UserTask': function(parentGfx, element) {\n var task = renderer('bpmn:Task')(parentGfx, element);\n\n var x = 15;\n var y = 12;\n\n var pathData = pathMap.getScaledPath('TASK_TYPE_USER_1', {\n abspos: {\n x: x,\n y: y\n }\n });\n\n /* user path */ drawPath(parentGfx, pathData, {\n strokeWidth: 0.5,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var pathData2 = pathMap.getScaledPath('TASK_TYPE_USER_2', {\n abspos: {\n x: x,\n y: y\n }\n });\n\n /* user2 path */ drawPath(parentGfx, pathData2, {\n strokeWidth: 0.5,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var pathData3 = pathMap.getScaledPath('TASK_TYPE_USER_3', {\n abspos: {\n x: x,\n y: y\n }\n });\n\n /* user3 path */ drawPath(parentGfx, pathData3, {\n strokeWidth: 0.5,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return task;\n },\n 'bpmn:ManualTask': function(parentGfx, element) {\n var task = renderer('bpmn:Task')(parentGfx, element);\n\n var pathData = pathMap.getScaledPath('TASK_TYPE_MANUAL', {\n abspos: {\n x: 17,\n y: 15\n }\n });\n\n /* manual path */ drawPath(parentGfx, pathData, {\n strokeWidth: 0.5, // 0.25,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return task;\n },\n 'bpmn:SendTask': function(parentGfx, element) {\n var task = renderer('bpmn:Task')(parentGfx, element);\n\n var pathData = pathMap.getScaledPath('TASK_TYPE_SEND', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: 21,\n containerHeight: 14,\n position: {\n mx: 0.285,\n my: 0.357\n }\n });\n\n /* send path */ drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor)\n });\n\n return task;\n },\n 'bpmn:ReceiveTask' : function(parentGfx, element) {\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n var task = renderer('bpmn:Task')(parentGfx, element);\n var pathData;\n\n if (semantic.instantiate) {\n drawCircle(parentGfx, 28, 28, 20 * 0.22, { strokeWidth: 1 });\n\n pathData = pathMap.getScaledPath('TASK_TYPE_INSTANTIATING_SEND', {\n abspos: {\n x: 7.77,\n y: 9.52\n }\n });\n } else {\n\n pathData = pathMap.getScaledPath('TASK_TYPE_SEND', {\n xScaleFactor: 0.9,\n yScaleFactor: 0.9,\n containerWidth: 21,\n containerHeight: 14,\n position: {\n mx: 0.3,\n my: 0.4\n }\n });\n }\n\n /* receive path */ drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return task;\n },\n 'bpmn:ScriptTask': function(parentGfx, element) {\n var task = renderer('bpmn:Task')(parentGfx, element);\n\n var pathData = pathMap.getScaledPath('TASK_TYPE_SCRIPT', {\n abspos: {\n x: 15,\n y: 20\n }\n });\n\n /* script path */ drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return task;\n },\n 'bpmn:BusinessRuleTask': function(parentGfx, element) {\n var task = renderer('bpmn:Task')(parentGfx, element);\n\n var headerPathData = pathMap.getScaledPath('TASK_TYPE_BUSINESS_RULE_HEADER', {\n abspos: {\n x: 8,\n y: 8\n }\n });\n\n var businessHeaderPath = drawPath(parentGfx, headerPathData);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(businessHeaderPath, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, '#aaaaaa'),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var headerData = pathMap.getScaledPath('TASK_TYPE_BUSINESS_RULE_MAIN', {\n abspos: {\n x: 8,\n y: 8\n }\n });\n\n var businessPath = drawPath(parentGfx, headerData);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(businessPath, {\n strokeWidth: 1,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return task;\n },\n 'bpmn:SubProcess': function(parentGfx, element, attrs) {\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n }, attrs);\n\n var rect = renderer('bpmn:Activity')(parentGfx, element, attrs);\n\n var expanded = (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_10__.isExpanded)(element);\n\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_10__.isEventSubProcess)(element)) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(rect, {\n strokeDasharray: '1,2'\n });\n }\n\n renderEmbeddedLabel(parentGfx, element, expanded ? 'center-top' : 'center-middle');\n\n if (expanded) {\n attachTaskMarkers(parentGfx, element);\n } else {\n attachTaskMarkers(parentGfx, element, ['SubProcessMarker']);\n }\n\n return rect;\n },\n 'bpmn:AdHocSubProcess': function(parentGfx, element) {\n return renderer('bpmn:SubProcess')(parentGfx, element);\n },\n 'bpmn:Transaction': function(parentGfx, element) {\n var outer = renderer('bpmn:SubProcess')(parentGfx, element);\n\n var innerAttrs = styles.style([ 'no-fill', 'no-events' ], {\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n /* inner path */ drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS - 2, INNER_OUTER_DIST, innerAttrs);\n\n return outer;\n },\n 'bpmn:CallActivity': function(parentGfx, element) {\n return renderer('bpmn:SubProcess')(parentGfx, element, {\n strokeWidth: 5\n });\n },\n 'bpmn:Participant': function(parentGfx, element) {\n\n var attrs = {\n fillOpacity: DEFAULT_FILL_OPACITY,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n var lane = renderer('bpmn:Lane')(parentGfx, element, attrs);\n\n var expandedPool = (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_10__.isExpanded)(element);\n\n if (expandedPool) {\n drawLine(parentGfx, [\n { x: 30, y: 0 },\n { x: 30, y: element.height }\n ], {\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n var text = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).name;\n renderLaneLabel(parentGfx, text, element);\n } else {\n\n // Collapsed pool draw text inline\n var text2 = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).name;\n renderLabel(parentGfx, text2, {\n box: element, align: 'center-middle',\n style: {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n }\n });\n }\n\n var participantMultiplicity = !!((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).participantMultiplicity);\n\n if (participantMultiplicity) {\n renderer('ParticipantMultiplicityMarker')(parentGfx, element);\n }\n\n return lane;\n },\n 'bpmn:Lane': function(parentGfx, element, attrs) {\n var rect = drawRect(parentGfx, element.width, element.height, 0, (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n fillOpacity: HIGH_FILL_OPACITY,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n }, attrs));\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n if (semantic.$type === 'bpmn:Lane') {\n var text = semantic.name;\n renderLaneLabel(parentGfx, text, element);\n }\n\n return rect;\n },\n 'bpmn:InclusiveGateway': function(parentGfx, element) {\n var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n /* circle path */\n drawCircle(parentGfx, element.width, element.height, element.height * 0.24, {\n strokeWidth: 2.5,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return diamond;\n },\n 'bpmn:ExclusiveGateway': function(parentGfx, element) {\n var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n var pathData = pathMap.getScaledPath('GATEWAY_EXCLUSIVE', {\n xScaleFactor: 0.4,\n yScaleFactor: 0.4,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.32,\n my: 0.3\n }\n });\n\n if (((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getDi)(element).isMarkerVisible)) {\n drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n }\n\n return diamond;\n },\n 'bpmn:ComplexGateway': function(parentGfx, element) {\n var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n var pathData = pathMap.getScaledPath('GATEWAY_COMPLEX', {\n xScaleFactor: 0.5,\n yScaleFactor:0.5,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.46,\n my: 0.26\n }\n });\n\n /* complex path */ drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return diamond;\n },\n 'bpmn:ParallelGateway': function(parentGfx, element) {\n var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n var pathData = pathMap.getScaledPath('GATEWAY_PARALLEL', {\n xScaleFactor: 0.6,\n yScaleFactor:0.6,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.46,\n my: 0.2\n }\n });\n\n /* parallel path */ drawPath(parentGfx, pathData, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return diamond;\n },\n 'bpmn:EventBasedGateway': function(parentGfx, element) {\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n /* outer circle path */ drawCircle(parentGfx, element.width, element.height, element.height * 0.20, {\n strokeWidth: 1,\n fill: 'none',\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var type = semantic.eventGatewayType;\n var instantiate = !!semantic.instantiate;\n\n function drawEvent() {\n\n var pathData = pathMap.getScaledPath('GATEWAY_EVENT_BASED', {\n xScaleFactor: 0.18,\n yScaleFactor: 0.18,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.36,\n my: 0.44\n }\n });\n\n var attrs = {\n strokeWidth: 2,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, 'none'),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n /* event path */ drawPath(parentGfx, pathData, attrs);\n }\n\n if (type === 'Parallel') {\n\n var pathData = pathMap.getScaledPath('GATEWAY_PARALLEL', {\n xScaleFactor: 0.4,\n yScaleFactor:0.4,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.474,\n my: 0.296\n }\n });\n\n var parallelPath = drawPath(parentGfx, pathData);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(parallelPath, {\n strokeWidth: 1,\n fill: 'none'\n });\n } else if (type === 'Exclusive') {\n\n if (!instantiate) {\n var innerCircle = drawCircle(parentGfx, element.width, element.height, element.height * 0.26);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(innerCircle, {\n strokeWidth: 1,\n fill: 'none',\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n }\n\n drawEvent();\n }\n\n\n return diamond;\n },\n 'bpmn:Gateway': function(parentGfx, element) {\n var attrs = {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n fillOpacity: DEFAULT_FILL_OPACITY,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n return drawDiamond(parentGfx, element.width, element.height, attrs);\n },\n 'bpmn:SequenceFlow': function(parentGfx, element) {\n var pathData = createPathFromConnection(element);\n\n var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n var attrs = {\n strokeLinejoin: 'round',\n markerEnd: marker('sequenceflow-end', fill, stroke),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n var path = drawPath(parentGfx, pathData, attrs);\n\n var sequenceFlow = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n var source;\n\n if (element.source) {\n source = element.source.businessObject;\n\n // conditional flow marker\n if (sequenceFlow.conditionExpression && source.$instanceOf('bpmn:Activity')) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, {\n markerStart: marker('conditional-flow-marker', fill, stroke)\n });\n }\n\n // default marker\n if (source.default && (source.$instanceOf('bpmn:Gateway') || source.$instanceOf('bpmn:Activity')) &&\n source.default === sequenceFlow) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, {\n markerStart: marker('conditional-default-flow-marker', fill, stroke)\n });\n }\n }\n\n return path;\n },\n 'bpmn:Association': function(parentGfx, element, attrs) {\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n strokeDasharray: '0.5, 5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n }, attrs || {});\n\n if (semantic.associationDirection === 'One' ||\n semantic.associationDirection === 'Both') {\n attrs.markerEnd = marker('association-end', fill, stroke);\n }\n\n if (semantic.associationDirection === 'Both') {\n attrs.markerStart = marker('association-start', fill, stroke);\n }\n\n return drawLine(parentGfx, element.waypoints, attrs);\n },\n 'bpmn:DataInputAssociation': function(parentGfx, element) {\n var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n return renderer('bpmn:Association')(parentGfx, element, {\n markerEnd: marker('association-end', fill, stroke)\n });\n },\n 'bpmn:DataOutputAssociation': function(parentGfx, element) {\n var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n return renderer('bpmn:Association')(parentGfx, element, {\n markerEnd: marker('association-end', fill, stroke)\n });\n },\n 'bpmn:MessageFlow': function(parentGfx, element) {\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element),\n di = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getDi)(element);\n\n var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n var pathData = createPathFromConnection(element);\n\n var attrs = {\n markerEnd: marker('messageflow-end', fill, stroke),\n markerStart: marker('messageflow-start', fill, stroke),\n strokeDasharray: '10, 12',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n strokeWidth: '1.5px',\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n var path = drawPath(parentGfx, pathData, attrs);\n\n if (semantic.messageRef) {\n var midPoint = path.getPointAtLength(path.getTotalLength() / 2);\n\n var markerPathData = pathMap.getScaledPath('MESSAGE_FLOW_MARKER', {\n abspos: {\n x: midPoint.x,\n y: midPoint.y\n }\n });\n\n var messageAttrs = { strokeWidth: 1 };\n\n if (di.messageVisibleKind === 'initiating') {\n messageAttrs.fill = 'white';\n messageAttrs.stroke = 'black';\n } else {\n messageAttrs.fill = '#888';\n messageAttrs.stroke = 'white';\n }\n\n var message = drawPath(parentGfx, markerPathData, messageAttrs);\n\n var labelText = semantic.messageRef.name;\n var label = renderLabel(parentGfx, labelText, {\n align: 'center-top',\n fitBox: true,\n style: {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultLabelColor, defaultStrokeColor)\n }\n });\n\n var messageBounds = message.getBBox(),\n labelBounds = label.getBBox();\n\n var translateX = midPoint.x - labelBounds.width / 2,\n translateY = midPoint.y + messageBounds.height / 2 + ELEMENT_LABEL_DISTANCE;\n\n (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.transform)(label, translateX, translateY, 0);\n\n }\n\n return path;\n },\n 'bpmn:DataObject': function(parentGfx, element) {\n var pathData = pathMap.getScaledPath('DATA_OBJECT_PATH', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.474,\n my: 0.296\n }\n });\n\n var elementObject = drawPath(parentGfx, pathData, {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n fillOpacity: DEFAULT_FILL_OPACITY,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isCollection)(semantic)) {\n renderDataItemCollection(parentGfx, element);\n }\n\n return elementObject;\n },\n 'bpmn:DataObjectReference': as('bpmn:DataObject'),\n 'bpmn:DataInput': function(parentGfx, element) {\n\n var arrowPathData = pathMap.getRawPath('DATA_ARROW');\n\n // page\n var elementObject = renderer('bpmn:DataObject')(parentGfx, element);\n\n /* input arrow path */ drawPath(parentGfx, arrowPathData, { strokeWidth: 1 });\n\n return elementObject;\n },\n 'bpmn:DataOutput': function(parentGfx, element) {\n var arrowPathData = pathMap.getRawPath('DATA_ARROW');\n\n // page\n var elementObject = renderer('bpmn:DataObject')(parentGfx, element);\n\n /* output arrow path */ drawPath(parentGfx, arrowPathData, {\n strokeWidth: 1,\n fill: 'black'\n });\n\n return elementObject;\n },\n 'bpmn:DataStoreReference': function(parentGfx, element) {\n var DATA_STORE_PATH = pathMap.getScaledPath('DATA_STORE', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0,\n my: 0.133\n }\n });\n\n var elementStore = drawPath(parentGfx, DATA_STORE_PATH, {\n strokeWidth: 2,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n fillOpacity: DEFAULT_FILL_OPACITY,\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n return elementStore;\n },\n 'bpmn:BoundaryEvent': function(parentGfx, element) {\n\n var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element),\n cancel = semantic.cancelActivity;\n\n var attrs = {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n };\n\n if (!cancel) {\n attrs.strokeDasharray = '6';\n attrs.strokeLinecap = 'round';\n }\n\n // apply fillOpacity\n var outerAttrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, attrs, {\n fillOpacity: 1\n });\n\n // apply no-fill\n var innerAttrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, attrs, {\n fill: 'none'\n });\n\n var outer = renderer('bpmn:Event')(parentGfx, element, outerAttrs);\n\n /* inner path */ drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, innerAttrs);\n\n renderEventContent(element, parentGfx);\n\n return outer;\n },\n 'bpmn:Group': function(parentGfx, element) {\n\n var group = drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, {\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n strokeWidth: 1,\n strokeDasharray: '8,3,1,3',\n fill: 'none',\n pointerEvents: 'none'\n });\n\n return group;\n },\n 'label': function(parentGfx, element) {\n return renderExternalLabel(parentGfx, element);\n },\n 'bpmn:TextAnnotation': function(parentGfx, element) {\n var style = {\n 'fill': 'none',\n 'stroke': 'none'\n };\n\n var textElement = drawRect(parentGfx, element.width, element.height, 0, 0, style);\n\n var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.0,\n my: 0.0\n }\n });\n\n drawPath(parentGfx, textPathData, {\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n var text = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).text || '';\n renderLabel(parentGfx, text, {\n box: element,\n align: 'left-top',\n padding: 5,\n style: {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n }\n });\n\n return textElement;\n },\n 'ParticipantMultiplicityMarker': function(parentGfx, element) {\n var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: ((element.width / 2) / element.width),\n my: (element.height - 15) / element.height\n }\n });\n\n drawMarker('participant-multiplicity', parentGfx, markerPath, {\n strokeWidth: 2,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n },\n 'SubProcessMarker': function(parentGfx, element) {\n var markerRect = drawRect(parentGfx, 14, 14, 0, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n\n // Process marker is placed in the middle of the box\n // therefore fixed values can be used here\n (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.translate)(markerRect, element.width / 2 - 7.5, element.height - 20);\n\n var markerPath = pathMap.getScaledPath('MARKER_SUB_PROCESS', {\n xScaleFactor: 1.5,\n yScaleFactor: 1.5,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: (element.width / 2 - 7.5) / element.width,\n my: (element.height - 20) / element.height\n }\n });\n\n drawMarker('sub-process', parentGfx, markerPath, {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n },\n 'ParallelMarker': function(parentGfx, element, position) {\n var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: ((element.width / 2 + position.parallel) / element.width),\n my: (element.height - 20) / element.height\n }\n });\n\n drawMarker('parallel', parentGfx, markerPath, {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n },\n 'SequentialMarker': function(parentGfx, element, position) {\n var markerPath = pathMap.getScaledPath('MARKER_SEQUENTIAL', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: ((element.width / 2 + position.seq) / element.width),\n my: (element.height - 19) / element.height\n }\n });\n\n drawMarker('sequential', parentGfx, markerPath, {\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n },\n 'CompensationMarker': function(parentGfx, element, position) {\n var markerMath = pathMap.getScaledPath('MARKER_COMPENSATION', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: ((element.width / 2 + position.compensation) / element.width),\n my: (element.height - 13) / element.height\n }\n });\n\n drawMarker('compensation', parentGfx, markerMath, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n },\n 'LoopMarker': function(parentGfx, element, position) {\n var markerPath = pathMap.getScaledPath('MARKER_LOOP', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: ((element.width / 2 + position.loop) / element.width),\n my: (element.height - 7) / element.height\n }\n });\n\n drawMarker('loop', parentGfx, markerPath, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n strokeLinecap: 'round',\n strokeMiterlimit: 0.5\n });\n },\n 'AdhocMarker': function(parentGfx, element, position) {\n var markerPath = pathMap.getScaledPath('MARKER_ADHOC', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: ((element.width / 2 + position.adhoc) / element.width),\n my: (element.height - 15) / element.height\n }\n });\n\n drawMarker('adhoc', parentGfx, markerPath, {\n strokeWidth: 1,\n fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n });\n }\n };\n\n function attachTaskMarkers(parentGfx, element, taskMarkers) {\n var obj = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n var subprocess = taskMarkers && taskMarkers.indexOf('SubProcessMarker') !== -1;\n var position;\n\n if (subprocess) {\n position = {\n seq: -21,\n parallel: -22,\n compensation: -42,\n loop: -18,\n adhoc: 10\n };\n } else {\n position = {\n seq: -3,\n parallel: -6,\n compensation: -27,\n loop: 0,\n adhoc: 10\n };\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(taskMarkers, function(marker) {\n renderer(marker)(parentGfx, element, position);\n });\n\n if (obj.isForCompensation) {\n renderer('CompensationMarker')(parentGfx, element, position);\n }\n\n if (obj.$type === 'bpmn:AdHocSubProcess') {\n renderer('AdhocMarker')(parentGfx, element, position);\n }\n\n var loopCharacteristics = obj.loopCharacteristics,\n isSequential = loopCharacteristics && loopCharacteristics.isSequential;\n\n if (loopCharacteristics) {\n\n if (isSequential === undefined) {\n renderer('LoopMarker')(parentGfx, element, position);\n }\n\n if (isSequential === false) {\n renderer('ParallelMarker')(parentGfx, element, position);\n }\n\n if (isSequential === true) {\n renderer('SequentialMarker')(parentGfx, element, position);\n }\n }\n }\n\n function renderDataItemCollection(parentGfx, element) {\n\n var yPosition = (element.height - 18) / element.height;\n\n var pathData = pathMap.getScaledPath('DATA_OBJECT_COLLECTION_PATH', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.33,\n my: yPosition\n }\n });\n\n /* collection path */ drawPath(parentGfx, pathData, {\n strokeWidth: 2\n });\n }\n\n\n // extension API, use at your own risk\n this._drawPath = drawPath;\n\n}\n\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnRenderer, diagram_js_lib_draw_BaseRenderer__WEBPACK_IMPORTED_MODULE_2__.default);\n\nBpmnRenderer.$inject = [\n 'config.bpmnRenderer',\n 'eventBus',\n 'styles',\n 'pathMap',\n 'canvas',\n 'textRenderer'\n];\n\n\nBpmnRenderer.prototype.canRender = function(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:BaseElement');\n};\n\nBpmnRenderer.prototype.drawShape = function(parentGfx, element) {\n var type = element.type;\n var h = this.handlers[type];\n\n /* jshint -W040 */\n return h(parentGfx, element);\n};\n\nBpmnRenderer.prototype.drawConnection = function(parentGfx, element) {\n var type = element.type;\n var h = this.handlers[type];\n\n /* jshint -W040 */\n return h(parentGfx, element);\n};\n\nBpmnRenderer.prototype.getShapePath = function(element) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:Event')) {\n return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getCirclePath)(element);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:Activity')) {\n return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getRoundRectPath)(element, TASK_BORDER_RADIUS);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:Gateway')) {\n return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getDiamondPath)(element);\n }\n\n return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getRectPath)(element);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/BpmnRenderer.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/draw/PathMap.js": /*!**************************************************!*\ !*** ./node_modules/bpmn-js/lib/draw/PathMap.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PathMap)\n/* harmony export */ });\n/**\n * Map containing SVG paths needed by BpmnRenderer.\n */\n\nfunction PathMap() {\n\n /**\n * Contains a map of path elements\n *\n *

    Path definition

    \n * A parameterized path is defined like this:\n *
    \n   * 'GATEWAY_PARALLEL': {\n   *   d: 'm {mx},{my} {e.x0},0 0,{e.x1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} ' +\n          '-{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z',\n   *   height: 17.5,\n   *   width:  17.5,\n   *   heightElements: [2.5, 7.5],\n   *   widthElements: [2.5, 7.5]\n   * }\n   * 
    \n *

    It's important to specify a correct height and width for the path as the scaling\n * is based on the ratio between the specified height and width in this object and the\n * height and width that is set as scale target (Note x,y coordinates will be scaled with\n * individual ratios).

    \n *

    The 'heightElements' and 'widthElements' array must contain the values that will be scaled.\n * The scaling is based on the computed ratios.\n * Coordinates on the y axis should be in the heightElement's array, they will be scaled using\n * the computed ratio coefficient.\n * In the parameterized path the scaled values can be accessed through the 'e' object in {} brackets.\n *

      \n *
    • The values for the y axis can be accessed in the path string using {e.y0}, {e.y1}, ....
    • \n *
    • The values for the x axis can be accessed in the path string using {e.x0}, {e.x1}, ....
    • \n *
    \n * The numbers x0, x1 respectively y0, y1, ... map to the corresponding array index.\n *

    \n */\n this.pathMap = {\n 'EVENT_MESSAGE': {\n d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}',\n height: 36,\n width: 36,\n heightElements: [6, 14],\n widthElements: [10.5, 21]\n },\n 'EVENT_SIGNAL': {\n d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z',\n height: 36,\n width: 36,\n heightElements: [18],\n widthElements: [10, 20]\n },\n 'EVENT_ESCALATION': {\n d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z',\n height: 36,\n width: 36,\n heightElements: [20, 7],\n widthElements: [8]\n },\n 'EVENT_CONDITIONAL': {\n d: 'M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z ' +\n 'M {e.x2},{e.y3} l {e.x0},0 ' +\n 'M {e.x2},{e.y4} l {e.x0},0 ' +\n 'M {e.x2},{e.y5} l {e.x0},0 ' +\n 'M {e.x2},{e.y6} l {e.x0},0 ' +\n 'M {e.x2},{e.y7} l {e.x0},0 ' +\n 'M {e.x2},{e.y8} l {e.x0},0 ',\n height: 36,\n width: 36,\n heightElements: [8.5, 14.5, 18, 11.5, 14.5, 17.5, 20.5, 23.5, 26.5],\n widthElements: [10.5, 14.5, 12.5]\n },\n 'EVENT_LINK': {\n d: 'm {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z',\n height: 36,\n width: 36,\n heightElements: [4.4375, 6.75, 7.8125],\n widthElements: [9.84375, 13.5]\n },\n 'EVENT_ERROR': {\n d: 'm {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z',\n height: 36,\n width: 36,\n heightElements: [0.023, 8.737, 8.151, 16.564, 10.591, 8.714],\n widthElements: [0.085, 6.672, 6.97, 4.273, 5.337, 6.636]\n },\n 'EVENT_CANCEL_45': {\n d: 'm {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 ' +\n '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z',\n height: 36,\n width: 36,\n heightElements: [4.75, 8.5],\n widthElements: [4.75, 8.5]\n },\n 'EVENT_COMPENSATION': {\n d: 'm {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z',\n height: 36,\n width: 36,\n heightElements: [6.5, 13, 0.4, 6.1],\n widthElements: [9, 9.3, 8.7]\n },\n 'EVENT_TIMER_WH': {\n d: 'M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ',\n height: 36,\n width: 36,\n heightElements: [10, 2],\n widthElements: [3, 7]\n },\n 'EVENT_TIMER_LINE': {\n d: 'M {mx},{my} ' +\n 'm {e.x0},{e.y0} l -{e.x1},{e.y1} ',\n height: 36,\n width: 36,\n heightElements: [10, 3],\n widthElements: [0, 0]\n },\n 'EVENT_MULTIPLE': {\n d:'m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z',\n height: 36,\n width: 36,\n heightElements: [6.28099, 12.56199],\n widthElements: [3.1405, 9.42149, 12.56198]\n },\n 'EVENT_PARALLEL_MULTIPLE': {\n d:'m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} ' +\n '-{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z',\n height: 36,\n width: 36,\n heightElements: [2.56228, 7.68683],\n widthElements: [2.56228, 7.68683]\n },\n 'GATEWAY_EXCLUSIVE': {\n d:'m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} ' +\n '{e.x4},{e.y1} {e.x2},0 {e.x1},{e.y3} {e.x0},{e.y3} ' +\n '{e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z',\n height: 17.5,\n width: 17.5,\n heightElements: [8.5, 6.5312, -6.5312, -8.5],\n widthElements: [6.5, -6.5, 3, -3, 5, -5]\n },\n 'GATEWAY_PARALLEL': {\n d:'m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 ' +\n '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z',\n height: 30,\n width: 30,\n heightElements: [5, 12.5],\n widthElements: [5, 12.5]\n },\n 'GATEWAY_EVENT_BASED': {\n d:'m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z',\n height: 11,\n width: 11,\n heightElements: [-6, 6, 12, -12],\n widthElements: [9, -3, -12]\n },\n 'GATEWAY_COMPLEX': {\n d:'m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} ' +\n '{e.x2},0 -{e.x0},{e.y1} l {e.x1},{e.y2} {e.x0},-{e.y1} 0,{e.y0} {e.x3},0 0,-{e.y0} {e.x0},{e.y1} ' +\n '{e.x1},-{e.y2} -{e.x0},-{e.y1} {e.x2},0 0,-{e.y3} -{e.x2},0 {e.x0},-{e.y1} -{e.x1},-{e.y2} ' +\n '-{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z',\n height: 17.125,\n width: 17.125,\n heightElements: [4.875, 3.4375, 2.125, 3],\n widthElements: [3.4375, 2.125, 4.875, 3]\n },\n 'DATA_OBJECT_PATH': {\n d:'m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0',\n height: 61,\n width: 51,\n heightElements: [10, 50, 60],\n widthElements: [10, 40, 50, 60]\n },\n 'DATA_OBJECT_COLLECTION_PATH': {\n d: 'm{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10',\n height: 10,\n width: 10,\n heightElements: [],\n widthElements: []\n },\n 'DATA_ARROW': {\n d:'m 5,9 9,0 0,-3 5,5 -5,5 0,-3 -9,0 z',\n height: 61,\n width: 51,\n heightElements: [],\n widthElements: []\n },\n 'DATA_STORE': {\n d:'m {mx},{my} ' +\n 'l 0,{e.y2} ' +\n 'c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 ' +\n 'l 0,-{e.y2} ' +\n 'c -{e.x0},-{e.y1} -{e.x1},-{e.y1} -{e.x2},0' +\n 'c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 ' +\n 'm -{e.x2},{e.y0}' +\n 'c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0' +\n 'm -{e.x2},{e.y0}' +\n 'c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0',\n height: 61,\n width: 61,\n heightElements: [7, 10, 45],\n widthElements: [2, 58, 60]\n },\n 'TEXT_ANNOTATION': {\n d: 'm {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0',\n height: 30,\n width: 10,\n heightElements: [30],\n widthElements: [10]\n },\n 'MARKER_SUB_PROCESS': {\n d: 'm{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0',\n height: 10,\n width: 10,\n heightElements: [],\n widthElements: []\n },\n 'MARKER_PARALLEL': {\n d: 'm{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10',\n height: 10,\n width: 10,\n heightElements: [],\n widthElements: []\n },\n 'MARKER_SEQUENTIAL': {\n d: 'm{mx},{my} m 0,3 l 10,0 m -10,3 l 10,0 m -10,3 l 10,0',\n height: 10,\n width: 10,\n heightElements: [],\n widthElements: []\n },\n 'MARKER_COMPENSATION': {\n d: 'm {mx},{my} 7,-5 0,10 z m 7.1,-0.3 6.9,-4.7 0,10 -6.9,-4.7 z',\n height: 10,\n width: 21,\n heightElements: [],\n widthElements: []\n },\n 'MARKER_LOOP': {\n d: 'm {mx},{my} c 3.526979,0 6.386161,-2.829858 6.386161,-6.320661 0,-3.490806 -2.859182,-6.320661 ' +\n '-6.386161,-6.320661 -3.526978,0 -6.38616,2.829855 -6.38616,6.320661 0,1.745402 ' +\n '0.714797,3.325567 1.870463,4.469381 0.577834,0.571908 1.265885,1.034728 2.029916,1.35457 ' +\n 'l -0.718163,-3.909793 m 0.718163,3.909793 -3.885211,0.802902',\n height: 13.9,\n width: 13.7,\n heightElements: [],\n widthElements: []\n },\n 'MARKER_ADHOC': {\n d: 'm {mx},{my} m 0.84461,2.64411 c 1.05533,-1.23780996 2.64337,-2.07882 4.29653,-1.97997996 2.05163,0.0805 ' +\n '3.85579,1.15803 5.76082,1.79107 1.06385,0.34139996 2.24454,0.1438 3.18759,-0.43767 0.61743,-0.33642 ' +\n '1.2775,-0.64078 1.7542,-1.17511 0,0.56023 0,1.12046 0,1.6807 -0.98706,0.96237996 -2.29792,1.62393996 ' +\n '-3.6918,1.66181996 -1.24459,0.0927 -2.46671,-0.2491 -3.59505,-0.74812 -1.35789,-0.55965 ' +\n '-2.75133,-1.33436996 -4.27027,-1.18121996 -1.37741,0.14601 -2.41842,1.13685996 -3.44288,1.96782996 z',\n height: 4,\n width: 15,\n heightElements: [],\n widthElements: []\n },\n 'TASK_TYPE_SEND': {\n d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}',\n height: 14,\n width: 21,\n heightElements: [6, 14],\n widthElements: [10.5, 21]\n },\n 'TASK_TYPE_SCRIPT': {\n d: 'm {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 ' +\n 'c -10.969894,7.01868 6.997585,8.66524 -2.968967,14.938 z ' +\n 'm -7,-12 l 5,0 ' +\n 'm -4.5,3 l 4.5,0 ' +\n 'm -3,3 l 5,0' +\n 'm -4,3 l 5,0',\n height: 15,\n width: 12.6,\n heightElements: [6, 14],\n widthElements: [10.5, 21]\n },\n 'TASK_TYPE_USER_1': {\n d: 'm {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 ' +\n '-4.357,-4.62199999 -2.55199998,0 -4.28799998,2.06799999 -4.28799998,4.62199999 0,1.348 ' +\n '0.974,2.562 1.89599998,3.405 -0.52899998,0.187 -5.669,2.097 -5.794,4.7560005 v 6.718 ' +\n 'h 17 v -6.718 c 0,-2.2980005 -5.5279996,-4.5950005 -6.0509996,-4.7760005 z' +\n 'm -8,6 l 0,5.5 m 11,0 l 0,-5'\n },\n 'TASK_TYPE_USER_2': {\n d: 'm {mx},{my} m 2.162,1.009 c 0,2.4470005 -2.158,4.4310005 -4.821,4.4310005 ' +\n '-2.66499998,0 -4.822,-1.981 -4.822,-4.4310005 '\n },\n 'TASK_TYPE_USER_3': {\n d: 'm {mx},{my} m -6.9,-3.80 c 0,0 2.25099998,-2.358 4.27399998,-1.177 2.024,1.181 4.221,1.537 ' +\n '4.124,0.965 -0.098,-0.57 -0.117,-3.79099999 -4.191,-4.13599999 -3.57499998,0.001 ' +\n '-4.20799998,3.36699999 -4.20699998,4.34799999 z'\n },\n 'TASK_TYPE_MANUAL': {\n d: 'm {mx},{my} c 0.234,-0.01 5.604,0.008 8.029,0.004 0.808,0 1.271,-0.172 1.417,-0.752 0.227,-0.898 ' +\n '-0.334,-1.314 -1.338,-1.316 -2.467,-0.01 -7.886,-0.004 -8.108,-0.004 -0.014,-0.079 0.016,-0.533 0,-0.61 ' +\n '0.195,-0.042 8.507,0.006 9.616,0.002 0.877,-0.007 1.35,-0.438 1.353,-1.208 0.003,-0.768 -0.479,-1.09 ' +\n '-1.35,-1.091 -2.968,-0.002 -9.619,-0.013 -9.619,-0.013 v -0.591 c 0,0 5.052,-0.016 7.225,-0.016 ' +\n '0.888,-0.002 1.354,-0.416 1.351,-1.193 -0.006,-0.761 -0.492,-1.196 -1.361,-1.196 -3.473,-0.005 ' +\n '-10.86,-0.003 -11.0829995,-0.003 -0.022,-0.047 -0.045,-0.094 -0.069,-0.139 0.3939995,-0.319 ' +\n '2.0409995,-1.626 2.4149995,-2.017 0.469,-0.4870005 0.519,-1.1650005 0.162,-1.6040005 -0.414,-0.511 ' +\n '-0.973,-0.5 -1.48,-0.236 -1.4609995,0.764 -6.5999995,3.6430005 -7.7329995,4.2710005 -0.9,0.499 ' +\n '-1.516,1.253 -1.882,2.19 -0.37000002,0.95 -0.17,2.01 -0.166,2.979 0.004,0.718 -0.27300002,1.345 ' +\n '-0.055,2.063 0.629,2.087 2.425,3.312 4.859,3.318 4.6179995,0.014 9.2379995,-0.139 13.8569995,-0.158 ' +\n '0.755,-0.004 1.171,-0.301 1.182,-1.033 0.012,-0.754 -0.423,-0.969 -1.183,-0.973 -1.778,-0.01 ' +\n '-5.824,-0.004 -6.04,-0.004 10e-4,-0.084 0.003,-0.586 10e-4,-0.67 z'\n },\n 'TASK_TYPE_INSTANTIATING_SEND': {\n d: 'm {mx},{my} l 0,8.4 l 12.6,0 l 0,-8.4 z l 6.3,3.6 l 6.3,-3.6'\n },\n 'TASK_TYPE_SERVICE': {\n d: 'm {mx},{my} v -1.71335 c 0.352326,-0.0705 0.703932,-0.17838 1.047628,-0.32133 ' +\n '0.344416,-0.14465 0.665822,-0.32133 0.966377,-0.52145 l 1.19431,1.18005 1.567487,-1.57688 ' +\n '-1.195028,-1.18014 c 0.403376,-0.61394 0.683079,-1.29908 0.825447,-2.01824 l 1.622133,-0.01 ' +\n 'v -2.2196 l -1.636514,0.01 c -0.07333,-0.35153 -0.178319,-0.70024 -0.323564,-1.04372 ' +\n '-0.145244,-0.34406 -0.321407,-0.6644 -0.522735,-0.96217 l 1.131035,-1.13631 -1.583305,-1.56293 ' +\n '-1.129598,1.13589 c -0.614052,-0.40108 -1.302883,-0.68093 -2.022633,-0.82247 l 0.0093,-1.61852 ' +\n 'h -2.241173 l 0.0042,1.63124 c -0.353763,0.0736 -0.705369,0.17977 -1.049785,0.32371 -0.344415,0.14437 ' +\n '-0.665102,0.32092 -0.9635006,0.52046 l -1.1698628,-1.15823 -1.5667691,1.5792 1.1684265,1.15669 ' +\n 'c -0.4026573,0.61283 -0.68308,1.29797 -0.8247287,2.01713 l -1.6588041,0.003 v 2.22174 ' +\n 'l 1.6724648,-0.006 c 0.073327,0.35077 0.1797598,0.70243 0.3242851,1.04472 0.1452428,0.34448 ' +\n '0.3214064,0.6644 0.5227339,0.96066 l -1.1993431,1.19723 1.5840256,1.56011 1.1964668,-1.19348 ' +\n 'c 0.6140517,0.40346 1.3028827,0.68232 2.0233517,0.82331 l 7.19e-4,1.69892 h 2.226848 z ' +\n 'm 0.221462,-3.9957 c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 ' +\n '0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 ' +\n '0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z'\n },\n 'TASK_TYPE_SERVICE_FILL': {\n d: 'm {mx},{my} c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 ' +\n '0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 ' +\n '0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z'\n },\n 'TASK_TYPE_BUSINESS_RULE_HEADER': {\n d: 'm {mx},{my} 0,4 20,0 0,-4 z'\n },\n 'TASK_TYPE_BUSINESS_RULE_MAIN': {\n d: 'm {mx},{my} 0,12 20,0 0,-12 z' +\n 'm 0,8 l 20,0 ' +\n 'm -13,-4 l 0,8'\n },\n 'MESSAGE_FLOW_MARKER': {\n d: 'm {mx},{my} m -10.5 ,-7 l 0,14 l 21,0 l 0,-14 z l 10.5,6 l 10.5,-6'\n }\n };\n\n this.getRawPath = function getRawPath(pathId) {\n return this.pathMap[pathId].d;\n };\n\n /**\n * Scales the path to the given height and width.\n *

    Use case

    \n *

    Use case is to scale the content of elements (event, gateways) based\n * on the element bounding box's size.\n *

    \n *

    Why not transform

    \n *

    Scaling a path with transform() will also scale the stroke and IE does not support\n * the option 'non-scaling-stroke' to prevent this.\n * Also there are use cases where only some parts of a path should be\n * scaled.

    \n *\n * @param {string} pathId The ID of the path.\n * @param {Object} param

    \n * Example param object scales the path to 60% size of the container (data.width, data.height).\n *

    \n   *   {\n   *     xScaleFactor: 0.6,\n   *     yScaleFactor:0.6,\n   *     containerWidth: data.width,\n   *     containerHeight: data.height,\n   *     position: {\n   *       mx: 0.46,\n   *       my: 0.2,\n   *     }\n   *   }\n   *   
    \n *
      \n *
    • targetpathwidth = xScaleFactor * containerWidth
    • \n *
    • targetpathheight = yScaleFactor * containerHeight
    • \n *
    • Position is used to set the starting coordinate of the path. M is computed:\n *
        \n *
      • position.x * containerWidth
      • \n *
      • position.y * containerHeight
      • \n *
      \n * Center of the container
       position: {\n   *       mx: 0.5,\n   *       my: 0.5,\n   *     }
      \n * Upper left corner of the container\n *
       position: {\n   *       mx: 0.0,\n   *       my: 0.0,\n   *     }
      \n *
    • \n *
    \n *

    \n *\n */\n this.getScaledPath = function getScaledPath(pathId, param) {\n var rawPath = this.pathMap[pathId];\n\n // positioning\n // compute the start point of the path\n var mx, my;\n\n if (param.abspos) {\n mx = param.abspos.x;\n my = param.abspos.y;\n } else {\n mx = param.containerWidth * param.position.mx;\n my = param.containerHeight * param.position.my;\n }\n\n var coordinates = {}; // map for the scaled coordinates\n if (param.position) {\n\n // path\n var heightRatio = (param.containerHeight / rawPath.height) * param.yScaleFactor;\n var widthRatio = (param.containerWidth / rawPath.width) * param.xScaleFactor;\n\n\n // Apply height ratio\n for (var heightIndex = 0; heightIndex < rawPath.heightElements.length; heightIndex++) {\n coordinates['y' + heightIndex] = rawPath.heightElements[heightIndex] * heightRatio;\n }\n\n // Apply width ratio\n for (var widthIndex = 0; widthIndex < rawPath.widthElements.length; widthIndex++) {\n coordinates['x' + widthIndex] = rawPath.widthElements[widthIndex] * widthRatio;\n }\n }\n\n // Apply value to raw path\n var path = format(\n rawPath.d, {\n mx: mx,\n my: my,\n e: coordinates\n }\n );\n return path;\n };\n}\n\n// helpers //////////////////////\n\n// copied from https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js\nvar tokenRegex = /\\{([^}]+)\\}/g,\n objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g; // matches .xxxxx or [\"xxxxx\"] to run over object properties\n\nfunction replacer(all, key, obj) {\n var res = obj;\n key.replace(objNotationRegex, function(all, name, quote, quotedName, isFunc) {\n name = name || quotedName;\n if (res) {\n if (name in res) {\n res = res[name];\n }\n typeof res == 'function' && isFunc && (res = res());\n }\n });\n res = (res == null || res == obj ? all : res) + '';\n\n return res;\n}\n\nfunction format(str, obj) {\n return String(str).replace(tokenRegex, function(all, key) {\n return replacer(all, key, obj);\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/PathMap.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/draw/TextRenderer.js": /*!*******************************************************!*\ !*** ./node_modules/bpmn-js/lib/draw/TextRenderer.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ TextRenderer)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Text */ \"./node_modules/diagram-js/lib/util/Text.js\");\n\n\n\n\nvar DEFAULT_FONT_SIZE = 12;\nvar LINE_HEIGHT_RATIO = 1.2;\n\nvar MIN_TEXT_ANNOTATION_HEIGHT = 30;\n\n\nfunction TextRenderer(config) {\n\n var defaultStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n fontFamily: 'Arial, sans-serif',\n fontSize: DEFAULT_FONT_SIZE,\n fontWeight: 'normal',\n lineHeight: LINE_HEIGHT_RATIO\n }, config && config.defaultStyle || {});\n\n var fontSize = parseInt(defaultStyle.fontSize, 10) - 1;\n\n var externalStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, defaultStyle, {\n fontSize: fontSize\n }, config && config.externalStyle || {});\n\n var textUtil = new diagram_js_lib_util_Text__WEBPACK_IMPORTED_MODULE_1__.default({\n style: defaultStyle\n });\n\n /**\n * Get the new bounds of an externally rendered,\n * layouted label.\n *\n * @param {Bounds} bounds\n * @param {string} text\n *\n * @return {Bounds}\n */\n this.getExternalLabelBounds = function(bounds, text) {\n\n var layoutedDimensions = textUtil.getDimensions(text, {\n box: {\n width: 90,\n height: 30,\n x: bounds.width / 2 + bounds.x,\n y: bounds.height / 2 + bounds.y\n },\n style: externalStyle\n });\n\n // resize label shape to fit label text\n return {\n x: Math.round(bounds.x + bounds.width / 2 - layoutedDimensions.width / 2),\n y: Math.round(bounds.y),\n width: Math.ceil(layoutedDimensions.width),\n height: Math.ceil(layoutedDimensions.height)\n };\n\n };\n\n /**\n * Get the new bounds of text annotation.\n *\n * @param {Bounds} bounds\n * @param {string} text\n *\n * @return {Bounds}\n */\n this.getTextAnnotationBounds = function(bounds, text) {\n\n var layoutedDimensions = textUtil.getDimensions(text, {\n box: bounds,\n style: defaultStyle,\n align: 'left-top',\n padding: 5\n });\n\n return {\n x: bounds.x,\n y: bounds.y,\n width: bounds.width,\n height: Math.max(MIN_TEXT_ANNOTATION_HEIGHT, Math.round(layoutedDimensions.height))\n };\n };\n\n /**\n * Create a layouted text element.\n *\n * @param {string} text\n * @param {Object} [options]\n *\n * @return {SVGElement} rendered text\n */\n this.createText = function(text, options) {\n return textUtil.createText(text, options || {});\n };\n\n /**\n * Get default text style.\n */\n this.getDefaultStyle = function() {\n return defaultStyle;\n };\n\n /**\n * Get the external text style.\n */\n this.getExternalStyle = function() {\n return externalStyle;\n };\n\n}\n\nTextRenderer.$inject = [\n 'config.textRenderer'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/TextRenderer.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/draw/index.js": /*!************************************************!*\ !*** ./node_modules/bpmn-js/lib/draw/index.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnRenderer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnRenderer */ \"./node_modules/bpmn-js/lib/draw/BpmnRenderer.js\");\n/* harmony import */ var _TextRenderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TextRenderer */ \"./node_modules/bpmn-js/lib/draw/TextRenderer.js\");\n/* harmony import */ var _PathMap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PathMap */ \"./node_modules/bpmn-js/lib/draw/PathMap.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'bpmnRenderer' ],\n bpmnRenderer: [ 'type', _BpmnRenderer__WEBPACK_IMPORTED_MODULE_0__.default ],\n textRenderer: [ 'type', _TextRenderer__WEBPACK_IMPORTED_MODULE_1__.default ],\n pathMap: [ 'type', _PathMap__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js": /*!***********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoPlace)\n/* harmony export */ });\n/* harmony import */ var _BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnAutoPlaceUtil */ \"./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js\");\n\n\n\n/**\n * BPMN auto-place behavior.\n *\n * @param {EventBus} eventBus\n */\nfunction AutoPlace(eventBus) {\n eventBus.on('autoPlace', function(context) {\n var shape = context.shape,\n source = context.source;\n\n return (0,_BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__.getNewShapePosition)(source, shape);\n });\n}\n\nAutoPlace.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getNewShapePosition\": () => (/* binding */ getNewShapePosition),\n/* harmony export */ \"getFlowNodePosition\": () => (/* binding */ getFlowNodePosition),\n/* harmony export */ \"getTextAnnotationPosition\": () => (/* binding */ getTextAnnotationPosition),\n/* harmony export */ \"getDataElementPosition\": () => (/* binding */ getDataElementPosition)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/features/auto-place/AutoPlaceUtil */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js\");\n\n\n\n\n\n\n\n\n/**\n * Find the new position for the target element to\n * connect to source.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape} element\n *\n * @return {Point}\n */\nfunction getNewShapePosition(source, element) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation')) {\n return getTextAnnotationPosition(source, element);\n }\n\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(element, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ])) {\n return getDataElementPosition(source, element);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:FlowNode')) {\n return getFlowNodePosition(source, element);\n }\n}\n\n/**\n * Always try to place element right of source;\n * compute actual distance from previous nodes in flow.\n */\nfunction getFlowNodePosition(source, element) {\n\n var sourceTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.asTRBL)(source);\n var sourceMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.getMid)(source);\n\n var horizontalDistance = (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.getConnectedDistance)(source, {\n filter: function(connection) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(connection, 'bpmn:SequenceFlow');\n }\n });\n\n var margin = 30,\n minDistance = 80,\n orientation = 'left';\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(source, 'bpmn:BoundaryEvent')) {\n orientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.getOrientation)(source, source.host, -25);\n\n if (orientation.indexOf('top') !== -1) {\n margin *= -1;\n }\n }\n\n var position = {\n x: sourceTrbl.right + horizontalDistance + element.width / 2,\n y: sourceMid.y + getVerticalDistance(orientation, minDistance)\n };\n\n var nextPositionDirection = {\n y: {\n margin: margin,\n minDistance: minDistance\n }\n };\n\n return (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.findFreePosition)(source, element, position, (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.generateGetNextPosition)(nextPositionDirection));\n}\n\n\nfunction getVerticalDistance(orientation, minDistance) {\n if (orientation.indexOf('top') != -1) {\n return -1 * minDistance;\n } else if (orientation.indexOf('bottom') != -1) {\n return minDistance;\n } else {\n return 0;\n }\n}\n\n\n/**\n * Always try to place text annotations top right of source.\n */\nfunction getTextAnnotationPosition(source, element) {\n\n var sourceTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.asTRBL)(source);\n\n var position = {\n x: sourceTrbl.right + element.width / 2,\n y: sourceTrbl.top - 50 - element.height / 2\n };\n\n var nextPositionDirection = {\n y: {\n margin: -30,\n minDistance: 20\n }\n };\n\n return (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.findFreePosition)(source, element, position, (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.generateGetNextPosition)(nextPositionDirection));\n}\n\n\n/**\n * Always put element bottom right of source.\n */\nfunction getDataElementPosition(source, element) {\n\n var sourceTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.asTRBL)(source);\n\n var position = {\n x: sourceTrbl.right - 10 + element.width / 2,\n y: sourceTrbl.bottom + 40 + element.width / 2\n };\n\n var nextPositionDirection = {\n x: {\n margin: 30,\n minDistance: 30\n }\n };\n\n return (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.findFreePosition)(source, element, position, (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.generateGetNextPosition)(nextPositionDirection));\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/auto-place/index.js": /*!***************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/auto-place/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_auto_place__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/auto-place */ \"./node_modules/diagram-js/lib/features/auto-place/index.js\");\n/* harmony import */ var _BpmnAutoPlace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnAutoPlace */ \"./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [ diagram_js_lib_features_auto_place__WEBPACK_IMPORTED_MODULE_0__.default ],\n __init__: [ 'bpmnAutoPlace' ],\n bpmnAutoPlace: [ 'type', _BpmnAutoPlace__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-place/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js": /*!*************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnAutoResize)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_auto_resize_AutoResize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/auto-resize/AutoResize */ \"./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * Sub class of the AutoResize module which implements a BPMN\n * specific resize function.\n */\nfunction BpmnAutoResize(injector) {\n\n injector.invoke(diagram_js_lib_features_auto_resize_AutoResize__WEBPACK_IMPORTED_MODULE_1__.default, this);\n}\n\nBpmnAutoResize.$inject = [\n 'injector'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnAutoResize, diagram_js_lib_features_auto_resize_AutoResize__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Resize shapes and lanes.\n *\n * @param {djs.model.Shape} target\n * @param {Bounds} newBounds\n * @param {Object} hints\n */\nBpmnAutoResize.prototype.resize = function(target, newBounds, hints) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Participant')) {\n this._modeling.resizeLane(target, newBounds, null, hints);\n } else {\n this._modeling.resizeShape(target, newBounds, null, hints);\n }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnAutoResizeProvider)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_features_auto_resize_AutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/auto-resize/AutoResizeProvider */ \"./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js\");\n\n\n\n\n\n\n\n\n\n/**\n * This module is a provider for automatically resizing parent BPMN elements\n */\nfunction BpmnAutoResizeProvider(eventBus, modeling) {\n diagram_js_lib_features_auto_resize_AutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this._modeling = modeling;\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnAutoResizeProvider, diagram_js_lib_features_auto_resize_AutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnAutoResizeProvider.$inject = [\n 'eventBus',\n 'modeling'\n];\n\n\n/**\n * Check if the given target can be expanded\n *\n * @param {djs.model.Shape} target\n *\n * @return {boolean}\n */\nBpmnAutoResizeProvider.prototype.canResize = function(elements, target) {\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Participant') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Lane') && !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:SubProcess'))) {\n return false;\n }\n\n var canResize = true;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(elements, function(element) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:Lane') || element.labelTarget) {\n canResize = false;\n return;\n }\n });\n\n return canResize;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/auto-resize/index.js": /*!****************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/auto-resize/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnAutoResize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnAutoResize */ \"./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js\");\n/* harmony import */ var _BpmnAutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnAutoResizeProvider */ \"./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [\n 'bpmnAutoResize',\n 'bpmnAutoResizeProvider'\n ],\n bpmnAutoResize: [ 'type', _BpmnAutoResize__WEBPACK_IMPORTED_MODULE_0__.default ],\n bpmnAutoResizeProvider: [ 'type', _BpmnAutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-resize/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js": /*!*****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ContextPadProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../modeling/util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A provider for BPMN 2.0 elements context pad\n */\nfunction ContextPadProvider(\n config, injector, eventBus,\n contextPad, modeling, elementFactory,\n connect, create, popupMenu,\n canvas, rules, translate) {\n\n config = config || {};\n\n contextPad.registerProvider(this);\n\n this._contextPad = contextPad;\n\n this._modeling = modeling;\n\n this._elementFactory = elementFactory;\n this._connect = connect;\n this._create = create;\n this._popupMenu = popupMenu;\n this._canvas = canvas;\n this._rules = rules;\n this._translate = translate;\n\n if (config.autoPlace !== false) {\n this._autoPlace = injector.get('autoPlace', false);\n }\n\n eventBus.on('create.end', 250, function(event) {\n var context = event.context,\n shape = context.shape;\n\n if (!(0,diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event) || !contextPad.isOpen(shape)) {\n return;\n }\n\n var entries = contextPad.getEntries(shape);\n\n if (entries.replace) {\n entries.replace.action.click(event, shape);\n }\n });\n}\n\nContextPadProvider.$inject = [\n 'config.contextPad',\n 'injector',\n 'eventBus',\n 'contextPad',\n 'modeling',\n 'elementFactory',\n 'connect',\n 'create',\n 'popupMenu',\n 'canvas',\n 'rules',\n 'translate'\n];\n\n\nContextPadProvider.prototype.getContextPadEntries = function(element) {\n\n var contextPad = this._contextPad,\n modeling = this._modeling,\n\n elementFactory = this._elementFactory,\n connect = this._connect,\n create = this._create,\n popupMenu = this._popupMenu,\n canvas = this._canvas,\n rules = this._rules,\n autoPlace = this._autoPlace,\n translate = this._translate;\n\n var actions = {};\n\n if (element.type === 'label') {\n return actions;\n }\n\n var businessObject = element.businessObject;\n\n function startConnect(event, element) {\n connect.start(event, element);\n }\n\n function removeElement(e) {\n modeling.removeElements([ element ]);\n }\n\n function getReplaceMenuPosition(element) {\n\n var Y_OFFSET = 5;\n\n var diagramContainer = canvas.getContainer(),\n pad = contextPad.getPad(element).html;\n\n var diagramRect = diagramContainer.getBoundingClientRect(),\n padRect = pad.getBoundingClientRect();\n\n var top = padRect.top - diagramRect.top;\n var left = padRect.left - diagramRect.left;\n\n var pos = {\n x: left,\n y: top + padRect.height + Y_OFFSET\n };\n\n return pos;\n }\n\n\n /**\n * Create an append action\n *\n * @param {string} type\n * @param {string} className\n * @param {string} [title]\n * @param {Object} [options]\n *\n * @return {Object} descriptor\n */\n function appendAction(type, className, title, options) {\n\n if (typeof title !== 'string') {\n options = title;\n title = translate('Append {type}', { type: type.replace(/^bpmn:/, '') });\n }\n\n function appendStart(event, element) {\n\n var shape = elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ type: type }, options));\n create.start(event, shape, {\n source: element\n });\n }\n\n\n var append = autoPlace ? function(event, element) {\n var shape = elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ type: type }, options));\n\n autoPlace.append(element, shape);\n } : appendStart;\n\n\n return {\n group: 'model',\n className: className,\n title: title,\n action: {\n dragstart: appendStart,\n click: append\n }\n };\n }\n\n function splitLaneHandler(count) {\n\n return function(event, element) {\n\n // actual split\n modeling.splitLane(element, count);\n\n // refresh context pad after split to\n // get rid of split icons\n contextPad.open(element, true);\n };\n }\n\n\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:Lane', 'bpmn:Participant' ]) && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isExpanded)(businessObject)) {\n\n var childLanes = (0,_modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(element);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'lane-insert-above': {\n group: 'lane-insert-above',\n className: 'bpmn-icon-lane-insert-above',\n title: translate('Add Lane above'),\n action: {\n click: function(event, element) {\n modeling.addLane(element, 'top');\n }\n }\n }\n });\n\n if (childLanes.length < 2) {\n\n if (element.height >= 120) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'lane-divide-two': {\n group: 'lane-divide',\n className: 'bpmn-icon-lane-divide-two',\n title: translate('Divide into two Lanes'),\n action: {\n click: splitLaneHandler(2)\n }\n }\n });\n }\n\n if (element.height >= 180) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'lane-divide-three': {\n group: 'lane-divide',\n className: 'bpmn-icon-lane-divide-three',\n title: translate('Divide into three Lanes'),\n action: {\n click: splitLaneHandler(3)\n }\n }\n });\n }\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'lane-insert-below': {\n group: 'lane-insert-below',\n className: 'bpmn-icon-lane-insert-below',\n title: translate('Add Lane below'),\n action: {\n click: function(event, element) {\n modeling.addLane(element, 'bottom');\n }\n }\n }\n });\n\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:FlowNode')) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:EventBasedGateway')) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'append.receive-task': appendAction(\n 'bpmn:ReceiveTask',\n 'bpmn-icon-receive-task',\n translate('Append ReceiveTask')\n ),\n 'append.message-intermediate-event': appendAction(\n 'bpmn:IntermediateCatchEvent',\n 'bpmn-icon-intermediate-event-catch-message',\n translate('Append MessageIntermediateCatchEvent'),\n { eventDefinitionType: 'bpmn:MessageEventDefinition' }\n ),\n 'append.timer-intermediate-event': appendAction(\n 'bpmn:IntermediateCatchEvent',\n 'bpmn-icon-intermediate-event-catch-timer',\n translate('Append TimerIntermediateCatchEvent'),\n { eventDefinitionType: 'bpmn:TimerEventDefinition' }\n ),\n 'append.condition-intermediate-event': appendAction(\n 'bpmn:IntermediateCatchEvent',\n 'bpmn-icon-intermediate-event-catch-condition',\n translate('Append ConditionIntermediateCatchEvent'),\n { eventDefinitionType: 'bpmn:ConditionalEventDefinition' }\n ),\n 'append.signal-intermediate-event': appendAction(\n 'bpmn:IntermediateCatchEvent',\n 'bpmn-icon-intermediate-event-catch-signal',\n translate('Append SignalIntermediateCatchEvent'),\n { eventDefinitionType: 'bpmn:SignalEventDefinition' }\n )\n });\n } else\n\n if (isEventType(businessObject, 'bpmn:BoundaryEvent', 'bpmn:CompensateEventDefinition')) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'append.compensation-activity':\n appendAction(\n 'bpmn:Task',\n 'bpmn-icon-task',\n translate('Append compensation activity'),\n {\n isForCompensation: true\n }\n )\n });\n } else\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:EndEvent') &&\n !businessObject.isForCompensation &&\n !isEventType(businessObject, 'bpmn:IntermediateThrowEvent', 'bpmn:LinkEventDefinition') &&\n !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isEventSubProcess)(businessObject)) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'append.end-event': appendAction(\n 'bpmn:EndEvent',\n 'bpmn-icon-end-event-none',\n translate('Append EndEvent')\n ),\n 'append.gateway': appendAction(\n 'bpmn:ExclusiveGateway',\n 'bpmn-icon-gateway-none',\n translate('Append Gateway')\n ),\n 'append.append-task': appendAction(\n 'bpmn:Task',\n 'bpmn-icon-task',\n translate('Append Task')\n ),\n 'append.intermediate-event': appendAction(\n 'bpmn:IntermediateThrowEvent',\n 'bpmn-icon-intermediate-event-none',\n translate('Append Intermediate/Boundary Event')\n )\n });\n }\n }\n\n if (!popupMenu.isEmpty(element, 'bpmn-replace')) {\n\n // Replace menu entry\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'replace': {\n group: 'edit',\n className: 'bpmn-icon-screw-wrench',\n title: translate('Change type'),\n action: {\n click: function(event, element) {\n\n var position = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(getReplaceMenuPosition(element), {\n cursor: { x: event.x, y: event.y }\n });\n\n popupMenu.open(element, 'bpmn-replace', position);\n }\n }\n }\n });\n }\n\n if (\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [\n 'bpmn:FlowNode',\n 'bpmn:InteractionNode',\n 'bpmn:DataObjectReference',\n 'bpmn:DataStoreReference',\n ])\n ) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'append.text-annotation': appendAction(\n 'bpmn:TextAnnotation',\n 'bpmn-icon-text-annotation'\n ),\n\n 'connect': {\n group: 'connect',\n className: 'bpmn-icon-connection-multi',\n title: translate(\n 'Connect using ' +\n (businessObject.isForCompensation\n ? ''\n : 'Sequence/MessageFlow or ') +\n 'Association'\n ),\n action: {\n click: startConnect,\n dragstart: startConnect,\n },\n },\n });\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:TextAnnotation')) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'connect': {\n group: 'connect',\n className: 'bpmn-icon-connection-multi',\n title: translate('Connect using Association'),\n action: {\n click: startConnect,\n dragstart: startConnect,\n },\n },\n });\n }\n\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ])) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'connect': {\n group: 'connect',\n className: 'bpmn-icon-connection-multi',\n title: translate('Connect using DataInputAssociation'),\n action: {\n click: startConnect,\n dragstart: startConnect\n }\n }\n });\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:Group')) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'append.text-annotation': appendAction('bpmn:TextAnnotation', 'bpmn-icon-text-annotation')\n });\n }\n\n // delete element entry, only show if allowed by rules\n var deleteAllowed = rules.allowed('elements.delete', { elements: [ element ] });\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(deleteAllowed)) {\n\n // was the element returned as a deletion candidate?\n deleteAllowed = deleteAllowed[0] === element;\n }\n\n if (deleteAllowed) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n 'delete': {\n group: 'edit',\n className: 'bpmn-icon-trash',\n title: translate('Remove'),\n action: {\n click: removeElement\n }\n }\n });\n }\n\n return actions;\n};\n\n\n// helpers /////////\n\nfunction isEventType(eventBo, type, definition) {\n\n var isType = eventBo.$instanceOf(type);\n var isDefinition = false;\n\n var definitions = eventBo.eventDefinitions || [];\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(definitions, function(def) {\n if (def.$type === definition) {\n isDefinition = true;\n }\n });\n\n return isType && isDefinition;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/context-pad/index.js": /*!****************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/context-pad/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js-direct-editing */ \"./node_modules/diagram-js-direct-editing/index.js\");\n/* harmony import */ var diagram_js_lib_features_context_pad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/context-pad */ \"./node_modules/diagram-js/lib/features/context-pad/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/features/connect */ \"./node_modules/diagram-js/lib/features/connect/index.js\");\n/* harmony import */ var diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/features/create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var _popup_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../popup-menu */ \"./node_modules/bpmn-js/lib/features/popup-menu/index.js\");\n/* harmony import */ var _ContextPadProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ContextPadProvider */ \"./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__.default,\n diagram_js_lib_features_context_pad__WEBPACK_IMPORTED_MODULE_1__.default,\n diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__.default,\n diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_3__.default,\n diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_4__.default,\n _popup_menu__WEBPACK_IMPORTED_MODULE_5__.default\n ],\n __init__: [ 'contextPadProvider' ],\n contextPadProvider: [ 'type', _ContextPadProvider__WEBPACK_IMPORTED_MODULE_6__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/context-pad/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js": /*!***********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnCopyPaste)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\nfunction copyProperties(source, target, properties) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(properties)) {\n properties = [ properties ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(property) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isUndefined)(source[property])) {\n target[property] = source[property];\n }\n });\n}\n\nfunction removeProperties(element, properties) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(properties)) {\n properties = [ properties ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(property) {\n if (element[property]) {\n delete element[property];\n }\n });\n}\n\nvar LOW_PRIORITY = 750;\n\n\nfunction BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) {\n\n eventBus.on('copyPaste.copyElement', LOW_PRIORITY, function(context) {\n var descriptor = context.descriptor,\n element = context.element;\n\n var businessObject = descriptor.oldBusinessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);\n\n descriptor.type = element.type;\n\n copyProperties(businessObject, descriptor, 'name');\n\n descriptor.di = {};\n\n // colors will be set to DI\n copyProperties(businessObject.di, descriptor.di, [\n 'fill',\n 'stroke',\n 'background-color',\n 'border-color',\n 'color'\n ]);\n\n copyProperties(businessObject.di, descriptor, 'isExpanded');\n\n if (isLabel(descriptor)) {\n return descriptor;\n }\n\n // default sequence flow\n if (businessObject.default) {\n descriptor.default = businessObject.default.id;\n }\n });\n\n eventBus.on('moddleCopy.canCopyProperty', function(context) {\n var parent = context.parent,\n property = context.property,\n propertyName = context.propertyName,\n bpmnProcess;\n\n if (\n propertyName === 'processRef' &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(parent, 'bpmn:Participant') &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(property, 'bpmn:Process')\n ) {\n bpmnProcess = bpmnFactory.create('bpmn:Process');\n\n // return copy of process\n return moddleCopy.copyElement(property, bpmnProcess);\n }\n });\n\n var references;\n\n function resolveReferences(descriptor, cache) {\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(descriptor);\n\n // default sequence flows\n if (descriptor.default) {\n\n // relationship cannot be resolved immediately\n references[ descriptor.default ] = {\n element: businessObject,\n property: 'default'\n };\n }\n\n // boundary events\n if (descriptor.host) {\n\n // relationship can be resolved immediately\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(descriptor).attachedToRef = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(cache[ descriptor.host ]);\n }\n\n references = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(references, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(references, function(array, reference, key) {\n var element = reference.element,\n property = reference.property;\n\n if (key === descriptor.id) {\n element[ property ] = businessObject;\n\n array.push(descriptor.id);\n }\n\n return array;\n }, []));\n }\n\n eventBus.on('copyPaste.pasteElements', function() {\n references = {};\n });\n\n eventBus.on('copyPaste.pasteElement', function(context) {\n var cache = context.cache,\n descriptor = context.descriptor,\n oldBusinessObject = descriptor.oldBusinessObject,\n newBusinessObject;\n\n // do NOT copy business object if external label\n if (isLabel(descriptor)) {\n descriptor.businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(cache[ descriptor.labelTarget ]);\n\n return;\n }\n\n newBusinessObject = bpmnFactory.create(oldBusinessObject.$type);\n\n descriptor.businessObject = moddleCopy.copyElement(\n oldBusinessObject,\n newBusinessObject\n );\n\n // resolve references e.g. default sequence flow\n resolveReferences(descriptor, cache);\n\n copyProperties(descriptor, newBusinessObject, [\n 'isExpanded',\n 'name'\n ]);\n\n removeProperties(descriptor, 'oldBusinessObject');\n });\n\n}\n\n\nBpmnCopyPaste.$inject = [\n 'bpmnFactory',\n 'eventBus',\n 'moddleCopy'\n];\n\n// helpers //////////\n\nfunction isLabel(element) {\n return !!element.labelTarget;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js": /*!********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ModdleCopy),\n/* harmony export */ \"getPropertyNames\": () => (/* binding */ getPropertyNames)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar DISALLOWED_PROPERTIES = [\n 'artifacts',\n 'dataInputAssociations',\n 'dataOutputAssociations',\n 'default',\n 'flowElements',\n 'lanes',\n 'incoming',\n 'outgoing'\n];\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {Array} context.propertyNames\n * @param {ModdleElement} context.sourceElement\n * @param {ModdleElement} context.targetElement\n *\n * @returns {Array|boolean} - Return properties to be copied or false to disallow\n * copying.\n */\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {ModdleElement} context.parent\n * @param {*} context.property\n * @param {string} context.propertyName\n *\n * @returns {*|boolean} - Return copied property or false to disallow\n * copying.\n */\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {ModdleElement} context.parent\n * @param {*} context.property\n * @param {string} context.propertyName\n *\n * @returns {boolean} - Return false to disallow\n * setting copied property.\n */\n\n/**\n * Utility for copying model properties from source element to target element.\n *\n * @param {EventBus} eventBus\n * @param {BpmnFactory} bpmnFactory\n * @param {BpmnModdle} moddle\n */\nfunction ModdleCopy(eventBus, bpmnFactory, moddle) {\n this._bpmnFactory = bpmnFactory;\n this._eventBus = eventBus;\n this._moddle = moddle;\n\n // copy extension elements last\n eventBus.on('moddleCopy.canCopyProperties', function(context) {\n var propertyNames = context.propertyNames;\n\n if (!propertyNames || !propertyNames.length) {\n return;\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(propertyNames, function(propertyName) {\n return propertyName === 'extensionElements';\n });\n });\n\n // default check whether property can be copied\n eventBus.on('moddleCopy.canCopyProperty', function(context) {\n var parent = context.parent,\n parentDescriptor = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(parent) && parent.$descriptor,\n propertyName = context.propertyName;\n\n if (propertyName && DISALLOWED_PROPERTIES.indexOf(propertyName) !== -1) {\n\n // disallow copying property\n return false;\n }\n\n if (propertyName &&\n parentDescriptor &&\n !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(parentDescriptor.properties, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ name: propertyName }))) {\n\n // disallow copying property\n return false;\n }\n });\n\n // do NOT allow to copy empty extension elements\n eventBus.on('moddleCopy.canSetCopiedProperty', function(context) {\n var property = context.property;\n\n if (is(property, 'bpmn:ExtensionElements') && (!property.values || !property.values.length)) {\n\n // disallow setting copied property\n return false;\n }\n });\n}\n\nModdleCopy.$inject = [\n 'eventBus',\n 'bpmnFactory',\n 'moddle'\n];\n\n/**\n * Copy model properties of source element to target element.\n *\n * @param {ModdleElement} sourceElement\n * @param {ModdleElement} targetElement\n * @param {Array} [propertyNames]\n *\n * @param {ModdleElement}\n */\nModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames) {\n var self = this;\n\n if (propertyNames && !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(propertyNames)) {\n propertyNames = [ propertyNames ];\n }\n\n propertyNames = propertyNames || getPropertyNames(sourceElement.$descriptor);\n\n var canCopyProperties = this._eventBus.fire('moddleCopy.canCopyProperties', {\n propertyNames: propertyNames,\n sourceElement: sourceElement,\n targetElement: targetElement\n });\n\n if (canCopyProperties === false) {\n return targetElement;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(canCopyProperties)) {\n propertyNames = canCopyProperties;\n }\n\n // copy properties\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(propertyNames, function(propertyName) {\n var sourceProperty;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(sourceElement, propertyName)) {\n sourceProperty = sourceElement.get(propertyName);\n }\n\n var copiedProperty = self.copyProperty(sourceProperty, targetElement, propertyName);\n\n var canSetProperty = self._eventBus.fire('moddleCopy.canSetCopiedProperty', {\n parent: targetElement,\n property: copiedProperty,\n propertyName: propertyName\n });\n\n if (canSetProperty === false) {\n return;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(copiedProperty)) {\n targetElement.set(propertyName, copiedProperty);\n }\n });\n\n return targetElement;\n};\n\n/**\n * Copy model property.\n *\n * @param {*} property\n * @param {ModdleElement} parent\n * @param {string} propertyName\n *\n * @returns {*}\n */\nModdleCopy.prototype.copyProperty = function(property, parent, propertyName) {\n var self = this;\n\n // allow others to copy property\n var copiedProperty = this._eventBus.fire('moddleCopy.canCopyProperty', {\n parent: parent,\n property: property,\n propertyName: propertyName\n });\n\n // return if copying is NOT allowed\n if (copiedProperty === false) {\n return;\n }\n\n if (copiedProperty) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(copiedProperty) && copiedProperty.$type && !copiedProperty.$parent) {\n copiedProperty.$parent = parent;\n }\n\n return copiedProperty;\n }\n\n var propertyDescriptor = this._moddle.getPropertyDescriptor(parent, propertyName);\n\n // do NOT copy Ids and references\n if (propertyDescriptor.isId || propertyDescriptor.isReference) {\n return;\n }\n\n // copy arrays\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(property)) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(property, function(childProperties, childProperty) {\n\n // recursion\n copiedProperty = self.copyProperty(childProperty, parent, propertyName);\n\n // copying might NOT be allowed\n if (copiedProperty) {\n copiedProperty.$parent = parent;\n\n return childProperties.concat(copiedProperty);\n }\n\n return childProperties;\n }, []);\n }\n\n // copy model elements\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(property) && property.$type) {\n if (this._moddle.getElementDescriptor(property).isGeneric) {\n return;\n }\n\n copiedProperty = self._bpmnFactory.create(property.$type);\n\n copiedProperty.$parent = parent;\n\n // recursion\n copiedProperty = self.copyElement(property, copiedProperty);\n\n return copiedProperty;\n }\n\n // copy primitive properties\n return property;\n};\n\n// helpers //////////\n\nfunction getPropertyNames(descriptor, keepDefaultProperties) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(descriptor.properties, function(properties, property) {\n\n if (keepDefaultProperties && property.default) {\n return properties;\n }\n\n return properties.concat(property.name);\n }, []);\n}\n\nfunction is(element, type) {\n return element && (typeof element.$instanceOf === 'function') && element.$instanceOf(type);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/copy-paste/index.js": /*!***************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/copy-paste/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_copy_paste__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/copy-paste */ \"./node_modules/diagram-js/lib/features/copy-paste/index.js\");\n/* harmony import */ var _BpmnCopyPaste__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnCopyPaste */ \"./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js\");\n/* harmony import */ var _ModdleCopy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ModdleCopy */ \"./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_copy_paste__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'bpmnCopyPaste', 'moddleCopy' ],\n bpmnCopyPaste: [ 'type', _BpmnCopyPaste__WEBPACK_IMPORTED_MODULE_1__.default ],\n moddleCopy: [ 'type', _ModdleCopy__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/copy-paste/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js": /*!*************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnDiOrdering)\n/* harmony export */ });\n/* harmony import */ var _draw_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../draw/BpmnRenderUtil */ \"./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 2000;\n\nfunction BpmnDiOrdering(eventBus, canvas) {\n\n eventBus.on('saveXML.start', HIGH_PRIORITY, orderDi);\n\n function orderDi() {\n var root = canvas.getRootElement(),\n rootDi = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(root).di,\n elements,\n diElements;\n\n elements = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__.selfAndAllChildren)([ root ], false);\n\n // only bpmndi:Shape and bpmndi:Edge can be direct children of bpmndi:Plane\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(elements, function(element) {\n return element !== root && !element.labelTarget;\n });\n\n diElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.map)(elements, _draw_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_3__.getDi);\n\n rootDi.set('planeElement', diElements);\n }\n}\n\nBpmnDiOrdering.$inject = [ 'eventBus', 'canvas' ];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/di-ordering/index.js": /*!****************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/di-ordering/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _di_ordering_BpmnDiOrdering__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../di-ordering/BpmnDiOrdering */ \"./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [\n 'bpmnDiOrdering'\n ],\n bpmnDiOrdering: [ 'type', _di_ordering_BpmnDiOrdering__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/di-ordering/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js": /*!*****************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnDistributeElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\n\n\n\n\n/**\n * Registers element exclude filters for elements that\n * currently do not support distribution.\n */\nfunction BpmnDistributeElements(distributeElements) {\n\n distributeElements.registerFilter(function(elements) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n var cannotDistribute = (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(element, [\n 'bpmn:Association',\n 'bpmn:BoundaryEvent',\n 'bpmn:DataInputAssociation',\n 'bpmn:DataOutputAssociation',\n 'bpmn:Lane',\n 'bpmn:MessageFlow',\n 'bpmn:Participant',\n 'bpmn:SequenceFlow',\n 'bpmn:TextAnnotation'\n ]);\n\n return !(element.labelTarget || cannotDistribute);\n });\n });\n}\n\nBpmnDistributeElements.$inject = [ 'distributeElements' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/distribute-elements/index.js": /*!************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/distribute-elements/index.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_distribute_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/distribute-elements */ \"./node_modules/diagram-js/lib/features/distribute-elements/index.js\");\n/* harmony import */ var _BpmnDistributeElements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnDistributeElements */ \"./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_distribute_elements__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'bpmnDistributeElements' ],\n bpmnDistributeElements: [ 'type', _BpmnDistributeElements__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/distribute-elements/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnEditorActions)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/editor-actions/EditorActions */ \"./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Registers and executes BPMN specific editor actions.\n *\n * @param {Injector} injector\n */\nfunction BpmnEditorActions(injector) {\n injector.invoke(diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__.default, this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnEditorActions, diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnEditorActions.$inject = [\n 'injector'\n];\n\n/**\n * Register default actions.\n *\n * @param {Injector} injector\n */\nBpmnEditorActions.prototype._registerDefaultActions = function(injector) {\n\n // (0) invoke super method\n\n diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__.default.prototype._registerDefaultActions.call(this, injector);\n\n // (1) retrieve optional components to integrate with\n\n var canvas = injector.get('canvas', false);\n var elementRegistry = injector.get('elementRegistry', false);\n var selection = injector.get('selection', false);\n var spaceTool = injector.get('spaceTool', false);\n var lassoTool = injector.get('lassoTool', false);\n var handTool = injector.get('handTool', false);\n var globalConnect = injector.get('globalConnect', false);\n var distributeElements = injector.get('distributeElements', false);\n var alignElements = injector.get('alignElements', false);\n var directEditing = injector.get('directEditing', false);\n var searchPad = injector.get('searchPad', false);\n var modeling = injector.get('modeling', false);\n\n // (2) check components and register actions\n\n if (canvas && elementRegistry && selection) {\n this._registerAction('selectElements', function() {\n\n // select all elements except for the invisible\n // root element\n var rootElement = canvas.getRootElement();\n\n var elements = elementRegistry.filter(function(element) {\n return element !== rootElement;\n });\n\n selection.select(elements);\n\n return elements;\n });\n }\n\n if (spaceTool) {\n this._registerAction('spaceTool', function() {\n spaceTool.toggle();\n });\n }\n\n if (lassoTool) {\n this._registerAction('lassoTool', function() {\n lassoTool.toggle();\n });\n }\n\n if (handTool) {\n this._registerAction('handTool', function() {\n handTool.toggle();\n });\n }\n\n if (globalConnect) {\n this._registerAction('globalConnectTool', function() {\n globalConnect.toggle();\n });\n }\n\n if (selection && distributeElements) {\n this._registerAction('distributeElements', function(opts) {\n var currentSelection = selection.get(),\n type = opts.type;\n\n if (currentSelection.length) {\n distributeElements.trigger(currentSelection, type);\n }\n });\n }\n\n if (selection && alignElements) {\n this._registerAction('alignElements', function(opts) {\n var currentSelection = selection.get(),\n aligneableElements = [],\n type = opts.type;\n\n if (currentSelection.length) {\n aligneableElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(currentSelection, function(element) {\n return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:Lane');\n });\n\n alignElements.trigger(aligneableElements, type);\n }\n });\n }\n\n if (selection && modeling) {\n this._registerAction('setColor', function(opts) {\n var currentSelection = selection.get();\n\n if (currentSelection.length) {\n modeling.setColor(currentSelection, opts);\n }\n });\n }\n\n if (selection && directEditing) {\n this._registerAction('directEditing', function() {\n var currentSelection = selection.get();\n\n if (currentSelection.length) {\n directEditing.activate(currentSelection[0]);\n }\n });\n }\n\n if (searchPad) {\n this._registerAction('find', function() {\n searchPad.toggle();\n });\n }\n\n if (canvas && modeling) {\n this._registerAction('moveToOrigin', function() {\n var rootElement = canvas.getRootElement(),\n boundingBox,\n elements;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(rootElement, 'bpmn:Collaboration')) {\n elements = elementRegistry.filter(function(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, 'bpmn:Collaboration');\n });\n } else {\n elements = elementRegistry.filter(function(element) {\n return element !== rootElement && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, 'bpmn:SubProcess');\n });\n }\n\n boundingBox = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__.getBBox)(elements);\n\n modeling.moveElements(\n elements,\n { x: -boundingBox.x, y: -boundingBox.y },\n rootElement\n );\n });\n }\n\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/editor-actions/index.js": /*!*******************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/editor-actions/index.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_editor_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/editor-actions */ \"./node_modules/diagram-js/lib/features/editor-actions/index.js\");\n/* harmony import */ var _BpmnEditorActions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnEditorActions */ \"./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_editor_actions__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n editorActions: [ 'type', _BpmnEditorActions__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/editor-actions/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js": /*!*****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnGridSnapping)\n/* harmony export */ });\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\r\n\r\nfunction BpmnGridSnapping(eventBus) {\r\n eventBus.on([\r\n 'create.init',\r\n 'shape.move.init'\r\n ], function(event) {\r\n var context = event.context,\r\n shape = event.shape;\r\n\r\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(shape, [\r\n 'bpmn:Participant',\r\n 'bpmn:SubProcess',\r\n 'bpmn:TextAnnotation'\r\n ])) {\r\n if (!context.gridSnappingContext) {\r\n context.gridSnappingContext = {};\r\n }\r\n\r\n context.gridSnappingContext.snapLocation = 'top-left';\r\n }\r\n });\r\n}\r\n\r\nBpmnGridSnapping.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoPlaceBehavior)\n/* harmony export */ });\n/* harmony import */ var _auto_place_BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../auto-place/BpmnAutoPlaceUtil */ \"./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\r\n\r\n\r\n\r\n\r\nvar HIGH_PRIORITY = 2000;\r\n\r\n\r\nfunction AutoPlaceBehavior(eventBus, gridSnapping) {\r\n eventBus.on('autoPlace', HIGH_PRIORITY, function(context) {\r\n var source = context.source,\r\n sourceMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(source),\r\n shape = context.shape;\r\n\r\n var position = (0,_auto_place_BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_1__.getNewShapePosition)(source, shape);\r\n\r\n [ 'x', 'y' ].forEach(function(axis) {\r\n var options = {};\r\n\r\n // do not snap if x/y equal\r\n if (position[ axis ] === sourceMid[ axis ]) {\r\n return;\r\n }\r\n\r\n if (position[ axis ] > sourceMid[ axis ]) {\r\n options.min = position[ axis ];\r\n } else {\r\n options.max = position[ axis ];\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:TextAnnotation')) {\r\n\r\n if (isHorizontal(axis)) {\r\n options.offset = -shape.width / 2;\r\n } else {\r\n options.offset = -shape.height / 2;\r\n }\r\n\r\n }\r\n\r\n position[ axis ] = gridSnapping.snapValue(position[ axis ], options);\r\n\r\n });\r\n\r\n // must be returned to be considered by auto place\r\n return position;\r\n });\r\n}\r\n\r\nAutoPlaceBehavior.$inject = [\r\n 'eventBus',\r\n 'gridSnapping'\r\n];\r\n\r\n// helpers //////////\r\n\r\nfunction isHorizontal(axis) {\r\n return axis === 'x';\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js": /*!***********************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js ***! \***********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateParticipantBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\r\n\r\nvar HIGHER_PRIORITY = 1750;\r\n\r\n\r\nfunction CreateParticipantBehavior(canvas, eventBus, gridSnapping) {\r\n eventBus.on([\r\n 'create.start',\r\n 'shape.move.start'\r\n ], HIGHER_PRIORITY, function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n rootElement = canvas.getRootElement();\r\n\r\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant') ||\r\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(rootElement, 'bpmn:Process') ||\r\n !rootElement.children.length) {\r\n return;\r\n }\r\n\r\n var createConstraints = context.createConstraints;\r\n\r\n if (!createConstraints) {\r\n return;\r\n }\r\n\r\n shape.width = gridSnapping.snapValue(shape.width, { min: shape.width });\r\n shape.height = gridSnapping.snapValue(shape.height, { min: shape.height });\r\n });\r\n}\r\n\r\nCreateParticipantBehavior.$inject = [\r\n 'canvas',\r\n 'eventBus',\r\n 'gridSnapping'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js": /*!**********************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js ***! \**********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LayoutConnectionBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 3000;\n\n\n/**\n * Snaps connections with Manhattan layout.\n */\nfunction LayoutConnectionBehavior(eventBus, gridSnapping, modeling) {\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this._gridSnapping = gridSnapping;\n\n var self = this;\n\n this.postExecuted([\n 'connection.create',\n 'connection.layout'\n ], HIGH_PRIORITY, function(event) {\n var context = event.context,\n connection = context.connection,\n hints = context.hints || {},\n waypoints = connection.waypoints;\n\n if (hints.connectionStart || hints.connectionEnd || hints.createElementsBehavior === false) {\n return;\n }\n\n if (!hasMiddleSegments(waypoints)) {\n return;\n }\n\n modeling.updateWaypoints(connection, self.snapMiddleSegments(waypoints));\n });\n}\n\nLayoutConnectionBehavior.$inject = [\n 'eventBus',\n 'gridSnapping',\n 'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(LayoutConnectionBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n/**\n * Snap middle segments of a given connection.\n *\n * @param {Array} waypoints\n *\n * @returns {Array}\n */\nLayoutConnectionBehavior.prototype.snapMiddleSegments = function(waypoints) {\n var gridSnapping = this._gridSnapping,\n snapped;\n\n waypoints = waypoints.slice();\n\n for (var i = 1; i < waypoints.length - 2; i++) {\n\n snapped = snapSegment(gridSnapping, waypoints[i], waypoints[i + 1]);\n\n waypoints[i] = snapped[0];\n waypoints[i + 1] = snapped[1];\n }\n\n return waypoints;\n};\n\n\n// helpers //////////\n\n/**\n * Check whether a connection has a middle segments.\n *\n * @param {Array} waypoints\n *\n * @returns {boolean}\n */\nfunction hasMiddleSegments(waypoints) {\n return waypoints.length > 3;\n}\n\n/**\n * Check whether an alignment is horizontal.\n *\n * @param {string} aligned\n *\n * @returns {boolean}\n */\nfunction horizontallyAligned(aligned) {\n return aligned === 'h';\n}\n\n/**\n * Check whether an alignment is vertical.\n *\n * @param {string} aligned\n *\n * @returns {boolean}\n */\nfunction verticallyAligned(aligned) {\n return aligned === 'v';\n}\n\n/**\n * Get middle segments from a given connection.\n *\n * @param {Array} waypoints\n *\n * @returns {Array}\n */\nfunction snapSegment(gridSnapping, segmentStart, segmentEnd) {\n\n var aligned = (0,diagram_js_lib_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(segmentStart, segmentEnd);\n\n var snapped = {};\n\n if (horizontallyAligned(aligned)) {\n\n // snap horizontally\n snapped.y = gridSnapping.snapValue(segmentStart.y);\n }\n\n if (verticallyAligned(aligned)) {\n\n // snap vertically\n snapped.x = gridSnapping.snapValue(segmentStart.x);\n }\n\n if ('x' in snapped || 'y' in snapped) {\n segmentStart = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, segmentStart, snapped);\n segmentEnd = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, segmentEnd, snapped);\n }\n\n return [ segmentStart, segmentEnd ];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AutoPlaceBehavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AutoPlaceBehavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js\");\n/* harmony import */ var _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateParticipantBehavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js\");\n/* harmony import */ var _LayoutConnectionBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LayoutConnectionBehavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js\");\n\r\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n __init__: [\r\n 'gridSnappingAutoPlaceBehavior',\r\n 'gridSnappingCreateParticipantBehavior',\r\n 'gridSnappingLayoutConnectionBehavior',\r\n ],\r\n gridSnappingAutoPlaceBehavior: [ 'type', _AutoPlaceBehavior__WEBPACK_IMPORTED_MODULE_0__.default ],\r\n gridSnappingCreateParticipantBehavior: [ 'type', _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_1__.default ],\r\n gridSnappingLayoutConnectionBehavior: [ 'type', _LayoutConnectionBehavior__WEBPACK_IMPORTED_MODULE_2__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/index.js": /*!******************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/grid-snapping/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnGridSnapping__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BpmnGridSnapping */ \"./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js\");\n/* harmony import */ var diagram_js_lib_features_grid_snapping__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/grid-snapping */ \"./node_modules/diagram-js/lib/features/grid-snapping/index.js\");\n/* harmony import */ var _behavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./behavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js\");\n\r\n\r\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n __depends__: [\r\n diagram_js_lib_features_grid_snapping__WEBPACK_IMPORTED_MODULE_0__.default,\r\n _behavior__WEBPACK_IMPORTED_MODULE_1__.default\r\n ],\r\n __init__: [ 'bpmnGridSnapping' ],\r\n bpmnGridSnapping: [ 'type', _BpmnGridSnapping__WEBPACK_IMPORTED_MODULE_2__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnInteractionEvents)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\nvar LABEL_WIDTH = 30,\n LABEL_HEIGHT = 30;\n\n\n/**\n * BPMN-specific hit zones and interaction fixes.\n *\n * @param {EventBus} eventBus\n * @param {InteractionEvents} interactionEvents\n */\nfunction BpmnInteractionEvents(eventBus, interactionEvents) {\n\n this._interactionEvents = interactionEvents;\n\n var self = this;\n\n eventBus.on([\n 'interactionEvents.createHit',\n 'interactionEvents.updateHit'\n ], function(context) {\n var element = context.element,\n gfx = context.gfx;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Lane')) {\n return self.createParticipantHit(element, gfx);\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Participant')) {\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(element)) {\n return self.createParticipantHit(element, gfx);\n } else {\n return self.createDefaultHit(element, gfx);\n }\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:SubProcess')) {\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(element)) {\n return self.createSubProcessHit(element, gfx);\n } else {\n return self.createDefaultHit(element, gfx);\n }\n }\n });\n\n}\n\nBpmnInteractionEvents.$inject = [\n 'eventBus',\n 'interactionEvents'\n];\n\n\nBpmnInteractionEvents.prototype.createDefaultHit = function(element, gfx) {\n this._interactionEvents.removeHits(gfx);\n\n this._interactionEvents.createDefaultHit(element, gfx);\n\n // indicate that we created a hit\n return true;\n};\n\nBpmnInteractionEvents.prototype.createParticipantHit = function(element, gfx) {\n\n // remove existing hits\n this._interactionEvents.removeHits(gfx);\n\n // add outline hit\n this._interactionEvents.createBoxHit(gfx, 'click-stroke', {\n width: element.width,\n height: element.height\n });\n\n // add label hit\n this._interactionEvents.createBoxHit(gfx, 'all', {\n width: LABEL_WIDTH,\n height: element.height\n });\n\n // indicate that we created a hit\n return true;\n};\n\nBpmnInteractionEvents.prototype.createSubProcessHit = function(element, gfx) {\n\n // remove existing hits\n this._interactionEvents.removeHits(gfx);\n\n // add outline hit\n this._interactionEvents.createBoxHit(gfx, 'click-stroke', {\n width: element.width,\n height: element.height\n });\n\n // add label hit\n this._interactionEvents.createBoxHit(gfx, 'all', {\n width: element.width,\n height: LABEL_HEIGHT\n });\n\n // indicate that we created a hit\n return true;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/interaction-events/index.js": /*!***********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/interaction-events/index.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnInteractionEvents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnInteractionEvents */ \"./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'bpmnInteractionEvents' ],\n bpmnInteractionEvents: [ 'type', _BpmnInteractionEvents__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/interaction-events/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js": /*!****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnKeyboardBindings)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/keyboard/KeyboardBindings */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js\");\n\n\n\n\n\n/**\n * BPMN 2.0 specific keyboard bindings.\n *\n * @param {Injector} injector\n */\nfunction BpmnKeyboardBindings(injector) {\n injector.invoke(diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default, this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnKeyboardBindings, diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnKeyboardBindings.$inject = [\n 'injector'\n];\n\n\n/**\n * Register available keyboard bindings.\n *\n * @param {Keyboard} keyboard\n * @param {EditorActions} editorActions\n */\nBpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActions) {\n\n // inherit default bindings\n diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default.prototype.registerBindings.call(this, keyboard, editorActions);\n\n /**\n * Add keyboard binding if respective editor action\n * is registered.\n *\n * @param {string} action name\n * @param {Function} fn that implements the key binding\n */\n function addListener(action, fn) {\n\n if (editorActions.isRegistered(action)) {\n keyboard.addListener(fn);\n }\n }\n\n // select all elements\n // CTRL + A\n addListener('selectElements', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.isKey(['a', 'A'], event) && keyboard.isCmd(event)) {\n editorActions.trigger('selectElements');\n\n return true;\n }\n });\n\n // search labels\n // CTRL + F\n addListener('find', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.isKey(['f', 'F'], event) && keyboard.isCmd(event)) {\n editorActions.trigger('find');\n\n return true;\n }\n });\n\n // activate space tool\n // S\n addListener('spaceTool', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.hasModifier(event)) {\n return;\n }\n\n if (keyboard.isKey(['s', 'S'], event)) {\n editorActions.trigger('spaceTool');\n\n return true;\n }\n });\n\n // activate lasso tool\n // L\n addListener('lassoTool', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.hasModifier(event)) {\n return;\n }\n\n if (keyboard.isKey(['l', 'L'], event)) {\n editorActions.trigger('lassoTool');\n\n return true;\n }\n });\n\n // activate hand tool\n // H\n addListener('handTool', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.hasModifier(event)) {\n return;\n }\n\n if (keyboard.isKey(['h', 'H'], event)) {\n editorActions.trigger('handTool');\n\n return true;\n }\n });\n\n // activate global connect tool\n // C\n addListener('globalConnectTool', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.hasModifier(event)) {\n return;\n }\n\n if (keyboard.isKey(['c', 'C'], event)) {\n editorActions.trigger('globalConnectTool');\n\n return true;\n }\n });\n\n // activate direct editing\n // E\n addListener('directEditing', function(context) {\n\n var event = context.keyEvent;\n\n if (keyboard.hasModifier(event)) {\n return;\n }\n\n if (keyboard.isKey(['e', 'E'], event)) {\n editorActions.trigger('directEditing');\n\n return true;\n }\n });\n\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/keyboard/index.js": /*!*************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/keyboard/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/index.js\");\n/* harmony import */ var _BpmnKeyboardBindings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnKeyboardBindings */ \"./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_keyboard__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'keyboardBindings' ],\n keyboardBindings: [ 'type', _BpmnKeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/keyboard/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js": /*!********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LabelEditingPreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\nvar MARKER_HIDDEN = 'djs-element-hidden',\n MARKER_LABEL_HIDDEN = 'djs-label-hidden';\n\n\nfunction LabelEditingPreview(\n eventBus, canvas, elementRegistry,\n pathMap) {\n\n var self = this;\n\n var defaultLayer = canvas.getDefaultLayer();\n\n var element, absoluteElementBBox, gfx;\n\n eventBus.on('directEditing.activate', function(context) {\n var activeProvider = context.active;\n\n element = activeProvider.element.label || activeProvider.element;\n\n // text annotation\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation')) {\n absoluteElementBBox = canvas.getAbsoluteBBox(element);\n\n gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n\n var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: element.height,\n position: {\n mx: 0.0,\n my: 0.0\n }\n });\n\n var path = self.path = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(path, {\n d: textPathData,\n strokeWidth: 2,\n stroke: getStrokeColor(element)\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(gfx, path);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(defaultLayer, gfx);\n\n (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(gfx, element.x, element.y);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation') ||\n element.labelTarget) {\n canvas.addMarker(element, MARKER_HIDDEN);\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Task') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:CallActivity') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:SubProcess') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Participant')) {\n canvas.addMarker(element, MARKER_LABEL_HIDDEN);\n }\n });\n\n eventBus.on('directEditing.resize', function(context) {\n\n // text annotation\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation')) {\n var height = context.height,\n dy = context.dy;\n\n var newElementHeight = Math.max(element.height / absoluteElementBBox.height * (height + dy), 0);\n\n var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {\n xScaleFactor: 1,\n yScaleFactor: 1,\n containerWidth: element.width,\n containerHeight: newElementHeight,\n position: {\n mx: 0.0,\n my: 0.0\n }\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(self.path, {\n d: textPathData\n });\n }\n });\n\n eventBus.on([ 'directEditing.complete', 'directEditing.cancel' ], function(context) {\n var activeProvider = context.active;\n\n if (activeProvider) {\n canvas.removeMarker(activeProvider.element.label || activeProvider.element, MARKER_HIDDEN);\n canvas.removeMarker(element, MARKER_LABEL_HIDDEN);\n }\n\n element = undefined;\n absoluteElementBBox = undefined;\n\n if (gfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(gfx);\n\n gfx = undefined;\n }\n });\n}\n\nLabelEditingPreview.$inject = [\n 'eventBus',\n 'canvas',\n 'elementRegistry',\n 'pathMap'\n];\n\n\n// helpers ///////////////////\n\nfunction getStrokeColor(element, defaultColor) {\n var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element);\n\n return bo.di.get('stroke') || defaultColor || 'black';\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LabelEditingProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _LabelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_behavior_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modeling/behavior/util/CategoryUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction LabelEditingProvider(\n eventBus, bpmnFactory, canvas, directEditing,\n modeling, resizeHandles, textRenderer) {\n\n this._bpmnFactory = bpmnFactory;\n this._canvas = canvas;\n this._modeling = modeling;\n this._textRenderer = textRenderer;\n\n directEditing.registerProvider(this);\n\n // listen to dblclick on non-root elements\n eventBus.on('element.dblclick', function(event) {\n activateDirectEdit(event.element, true);\n });\n\n // complete on followup canvas operation\n eventBus.on([\n 'autoPlace.start',\n 'canvas.viewbox.changing',\n 'drag.init',\n 'element.mousedown',\n 'popupMenu.open'\n ], function(event) {\n\n if (directEditing.isActive()) {\n directEditing.complete();\n }\n });\n\n // cancel on command stack changes\n eventBus.on([ 'commandStack.changed' ], function(e) {\n if (directEditing.isActive()) {\n directEditing.cancel();\n }\n });\n\n\n eventBus.on('directEditing.activate', function(event) {\n resizeHandles.removeResizers();\n });\n\n eventBus.on('create.end', 500, function(event) {\n\n var context = event.context,\n element = context.shape,\n canExecute = event.context.canExecute,\n isTouch = event.isTouch;\n\n // TODO(nikku): we need to find a way to support the\n // direct editing on mobile devices; right now this will\n // break for desworkflowediting on mobile devices\n // as it breaks the user interaction workflow\n\n // TODO(nre): we should temporarily focus the edited element\n // here and release the focused viewport after the direct edit\n // operation is finished\n if (isTouch) {\n return;\n }\n\n if (!canExecute) {\n return;\n }\n\n if (context.hints && context.hints.createElementsBehavior === false) {\n return;\n }\n\n activateDirectEdit(element);\n });\n\n eventBus.on('autoPlace.end', 500, function(event) {\n activateDirectEdit(event.shape);\n });\n\n\n function activateDirectEdit(element, force) {\n if (force ||\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [ 'bpmn:Task', 'bpmn:TextAnnotation', 'bpmn:Group' ]) ||\n isCollapsedSubProcess(element)) {\n\n directEditing.activate(element);\n }\n }\n\n}\n\nLabelEditingProvider.$inject = [\n 'eventBus',\n 'bpmnFactory',\n 'canvas',\n 'directEditing',\n 'modeling',\n 'resizeHandles',\n 'textRenderer'\n];\n\n\n/**\n * Activate direct editing for activities and text annotations.\n *\n * @param {djs.model.Base} element\n *\n * @return {Object} an object with properties bounds (position and size), text and options\n */\nLabelEditingProvider.prototype.activate = function(element) {\n\n // text\n var text = (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getLabel)(element);\n\n if (text === undefined) {\n return;\n }\n\n var context = {\n text: text\n };\n\n // bounds\n var bounds = this.getEditingBBox(element);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(context, bounds);\n\n var options = {};\n\n // tasks\n if (\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [\n 'bpmn:Task',\n 'bpmn:Participant',\n 'bpmn:Lane',\n 'bpmn:CallActivity'\n ]) ||\n isCollapsedSubProcess(element)\n ) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(options, {\n centerVertically: true\n });\n }\n\n // external labels\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(element)) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(options, {\n autoResize: true\n });\n }\n\n // text annotations\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:TextAnnotation')) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(options, {\n resizable: true,\n autoResize: true\n });\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(context, {\n options: options\n });\n\n return context;\n};\n\n\n/**\n * Get the editing bounding box based on the element's size and position\n *\n * @param {djs.model.Base} element\n *\n * @return {Object} an object containing information about position\n * and size (fixed or minimum and/or maximum)\n */\nLabelEditingProvider.prototype.getEditingBBox = function(element) {\n var canvas = this._canvas;\n\n var target = element.label || element;\n\n var bbox = canvas.getAbsoluteBBox(target);\n\n var mid = {\n x: bbox.x + bbox.width / 2,\n y: bbox.y + bbox.height / 2\n };\n\n // default position\n var bounds = { x: bbox.x, y: bbox.y };\n\n var zoom = canvas.zoom();\n\n var defaultStyle = this._textRenderer.getDefaultStyle(),\n externalStyle = this._textRenderer.getExternalStyle();\n\n // take zoom into account\n var externalFontSize = externalStyle.fontSize * zoom,\n externalLineHeight = externalStyle.lineHeight,\n defaultFontSize = defaultStyle.fontSize * zoom,\n defaultLineHeight = defaultStyle.lineHeight;\n\n var style = {\n fontFamily: this._textRenderer.getDefaultStyle().fontFamily,\n fontWeight: this._textRenderer.getDefaultStyle().fontWeight\n };\n\n // adjust for expanded pools AND lanes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Lane') || isExpandedPool(element)) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n width: bbox.height,\n height: 30 * zoom,\n x: bbox.x - bbox.height / 2 + (15 * zoom),\n y: mid.y - (30 * zoom) / 2\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n fontSize: defaultFontSize + 'px',\n lineHeight: defaultLineHeight,\n paddingTop: (7 * zoom) + 'px',\n paddingBottom: (7 * zoom) + 'px',\n paddingLeft: (5 * zoom) + 'px',\n paddingRight: (5 * zoom) + 'px',\n transform: 'rotate(-90deg)'\n });\n }\n\n\n // internal labels for tasks and collapsed call activities,\n // sub processes and participants\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [ 'bpmn:Task', 'bpmn:CallActivity']) ||\n isCollapsedPool(element) ||\n isCollapsedSubProcess(element)) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n width: bbox.width,\n height: bbox.height\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n fontSize: defaultFontSize + 'px',\n lineHeight: defaultLineHeight,\n paddingTop: (7 * zoom) + 'px',\n paddingBottom: (7 * zoom) + 'px',\n paddingLeft: (5 * zoom) + 'px',\n paddingRight: (5 * zoom) + 'px'\n });\n }\n\n\n // internal labels for expanded sub processes\n if (isExpandedSubProcess(element)) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n width: bbox.width,\n x: bbox.x\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n fontSize: defaultFontSize + 'px',\n lineHeight: defaultLineHeight,\n paddingTop: (7 * zoom) + 'px',\n paddingBottom: (7 * zoom) + 'px',\n paddingLeft: (5 * zoom) + 'px',\n paddingRight: (5 * zoom) + 'px'\n });\n }\n\n var width = 90 * zoom,\n paddingTop = 7 * zoom,\n paddingBottom = 4 * zoom;\n\n // external labels for events, data elements, gateways, groups and connections\n if (target.labelTarget) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n width: width,\n height: bbox.height + paddingTop + paddingBottom,\n x: mid.x - width / 2,\n y: bbox.y - paddingTop\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n fontSize: externalFontSize + 'px',\n lineHeight: externalLineHeight,\n paddingTop: paddingTop + 'px',\n paddingBottom: paddingBottom + 'px'\n });\n }\n\n // external label not yet created\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(target)\n && !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.hasExternalLabel)(target)\n && !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(target)) {\n\n var externalLabelMid = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.getExternalLabelMid)(element);\n\n var absoluteBBox = canvas.getAbsoluteBBox({\n x: externalLabelMid.x,\n y: externalLabelMid.y,\n width: 0,\n height: 0\n });\n\n var height = externalFontSize + paddingTop + paddingBottom;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n width: width,\n height: height,\n x: absoluteBBox.x - width / 2,\n y: absoluteBBox.y - height / 2\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n fontSize: externalFontSize + 'px',\n lineHeight: externalLineHeight,\n paddingTop: paddingTop + 'px',\n paddingBottom: paddingBottom + 'px'\n });\n }\n\n // text annotations\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:TextAnnotation')) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n width: bbox.width,\n height: bbox.height,\n minWidth: 30 * zoom,\n minHeight: 10 * zoom\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n textAlign: 'left',\n paddingTop: (5 * zoom) + 'px',\n paddingBottom: (7 * zoom) + 'px',\n paddingLeft: (7 * zoom) + 'px',\n paddingRight: (5 * zoom) + 'px',\n fontSize: defaultFontSize + 'px',\n lineHeight: defaultLineHeight\n });\n }\n\n return { bounds: bounds, style: style };\n};\n\n\nLabelEditingProvider.prototype.update = function(\n element, newLabel,\n activeContextText, bounds) {\n\n var newBounds,\n bbox;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:TextAnnotation')) {\n\n bbox = this._canvas.getAbsoluteBBox(element);\n\n newBounds = {\n x: element.x,\n y: element.y,\n width: element.width / bbox.width * bounds.width,\n height: element.height / bbox.height * bounds.height\n };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Group')) {\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element);\n\n // initialize categoryValue if not existing\n if (!businessObject.categoryValueRef) {\n\n var rootElement = this._canvas.getRootElement(),\n definitions = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(rootElement).$parent;\n\n var categoryValue = (0,_modeling_behavior_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_5__.createCategoryValue)(definitions, this._bpmnFactory);\n\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element).categoryValueRef = categoryValue;\n }\n\n }\n\n if (isEmptyText(newLabel)) {\n newLabel = null;\n }\n\n this._modeling.updateLabel(element, newLabel, newBounds);\n};\n\n\n\n// helpers //////////////////////\n\nfunction isCollapsedSubProcess(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:SubProcess') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isExpandedSubProcess(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isCollapsedPool(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isExpandedPool(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isEmptyText(label) {\n return !label || !label.trim();\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js": /*!**********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getLabel\": () => (/* binding */ getLabel),\n/* harmony export */ \"setLabel\": () => (/* binding */ setLabel)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\nfunction getLabelAttr(semantic) {\n if (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:FlowElement') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Participant') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Lane') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:SequenceFlow') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:MessageFlow') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataInput') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataOutput')\n ) {\n return 'name';\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:TextAnnotation')) {\n return 'text';\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Group')) {\n return 'categoryValueRef';\n }\n}\n\nfunction getCategoryValue(semantic) {\n var categoryValueRef = semantic['categoryValueRef'];\n\n if (!categoryValueRef) {\n return '';\n }\n\n\n return categoryValueRef.value || '';\n}\n\nfunction getLabel(element) {\n var semantic = element.businessObject,\n attr = getLabelAttr(semantic);\n\n if (attr) {\n\n if (attr === 'categoryValueRef') {\n\n return getCategoryValue(semantic);\n }\n\n return semantic[attr] || '';\n }\n}\n\n\nfunction setLabel(element, text, isExternal) {\n var semantic = element.businessObject,\n attr = getLabelAttr(semantic);\n\n if (attr) {\n\n if (attr === 'categoryValueRef') {\n semantic['categoryValueRef'].value = text;\n } else {\n semantic[attr] = text;\n }\n\n }\n\n return element;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateLabelHandler)\n/* harmony export */ });\n/* harmony import */ var _LabelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\nvar NULL_DIMENSIONS = {\n width: 0,\n height: 0\n};\n\n\n/**\n * A handler that updates the text of a BPMN element.\n */\nfunction UpdateLabelHandler(modeling, textRenderer) {\n\n /**\n * Set the label and return the changed elements.\n *\n * Element parameter can be label itself or connection (i.e. sequence flow).\n *\n * @param {djs.model.Base} element\n * @param {string} text\n */\n function setText(element, text) {\n\n // external label if present\n var label = element.label || element;\n\n var labelTarget = element.labelTarget || element;\n\n (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_0__.setLabel)(label, text, labelTarget !== label);\n\n return [ label, labelTarget ];\n }\n\n function preExecute(ctx) {\n var element = ctx.element,\n businessObject = element.businessObject,\n newLabel = ctx.newLabel;\n\n if (!(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabel)(element)\n && (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabelExternal)(element)\n && !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.hasExternalLabel)(element)\n && !isEmptyText(newLabel)) {\n\n // create label\n var paddingTop = 7;\n\n var labelCenter = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getExternalLabelMid)(element);\n\n labelCenter = {\n x: labelCenter.x,\n y: labelCenter.y + paddingTop\n };\n\n modeling.createLabel(element, labelCenter, {\n id: businessObject.id + '_label',\n businessObject: businessObject\n });\n }\n }\n\n function execute(ctx) {\n ctx.oldLabel = (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_0__.getLabel)(ctx.element);\n return setText(ctx.element, ctx.newLabel);\n }\n\n function revert(ctx) {\n return setText(ctx.element, ctx.oldLabel);\n }\n\n function postExecute(ctx) {\n var element = ctx.element,\n label = element.label || element,\n newLabel = ctx.newLabel,\n newBounds = ctx.newBounds,\n hints = ctx.hints || {};\n\n // ignore internal labels for elements except text annotations\n if (!(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabel)(label) && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(label, 'bpmn:TextAnnotation')) {\n return;\n }\n\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabel)(label) && isEmptyText(newLabel)) {\n\n if (hints.removeShape !== false) {\n modeling.removeShape(label, { unsetLabel: false });\n }\n\n return;\n }\n\n var text = (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_0__.getLabel)(label);\n\n // resize element based on label _or_ pre-defined bounds\n if (typeof newBounds === 'undefined') {\n newBounds = textRenderer.getExternalLabelBounds(label, text);\n }\n\n // setting newBounds to false or _null_ will\n // disable the postExecute resize operation\n if (newBounds) {\n modeling.resizeShape(label, newBounds, NULL_DIMENSIONS);\n }\n }\n\n // API\n\n this.preExecute = preExecute;\n this.execute = execute;\n this.revert = revert;\n this.postExecute = postExecute;\n}\n\nUpdateLabelHandler.$inject = [\n 'modeling',\n 'textRenderer'\n];\n\n\n// helpers ///////////////////////\n\nfunction isEmptyText(label) {\n return !label || !label.trim();\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/label-editing/index.js": /*!******************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/label-editing/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/change-support */ \"./node_modules/diagram-js/lib/features/change-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/resize */ \"./node_modules/diagram-js/lib/features/resize/index.js\");\n/* harmony import */ var diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js-direct-editing */ \"./node_modules/diagram-js-direct-editing/index.js\");\n/* harmony import */ var _LabelEditingProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./LabelEditingProvider */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js\");\n/* harmony import */ var _LabelEditingPreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./LabelEditingPreview */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_1__.default,\n diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_2__.default,\n diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [\n 'labelEditingProvider',\n 'labelEditingPreview'\n ],\n labelEditingProvider: [ 'type', _LabelEditingProvider__WEBPACK_IMPORTED_MODULE_3__.default ],\n labelEditingPreview: [ 'type', _LabelEditingPreview__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js": /*!*******************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnFactory)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\nfunction BpmnFactory(moddle) {\n this._model = moddle;\n}\n\nBpmnFactory.$inject = [ 'moddle' ];\n\n\nBpmnFactory.prototype._needsId = function(element) {\n return (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [\n 'bpmn:RootElement',\n 'bpmn:FlowElement',\n 'bpmn:MessageFlow',\n 'bpmn:DataAssociation',\n 'bpmn:Artifact',\n 'bpmn:Participant',\n 'bpmn:Lane',\n 'bpmn:LaneSet',\n 'bpmn:Process',\n 'bpmn:Collaboration',\n 'bpmndi:BPMNShape',\n 'bpmndi:BPMNEdge',\n 'bpmndi:BPMNDiagram',\n 'bpmndi:BPMNPlane',\n 'bpmn:Property',\n 'bpmn:CategoryValue'\n ]);\n};\n\nBpmnFactory.prototype._ensureId = function(element) {\n\n // generate semantic ids for elements\n // bpmn:SequenceFlow -> SequenceFlow_ID\n var prefix;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Activity')) {\n prefix = 'Activity';\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Event')) {\n prefix = 'Event';\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Gateway')) {\n prefix = 'Gateway';\n } else if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ])) {\n prefix = 'Flow';\n } else {\n prefix = (element.$type || '').replace(/^[^:]*:/g, '');\n }\n\n prefix += '_';\n\n if (!element.id && this._needsId(element)) {\n element.id = this._model.ids.nextPrefixed(prefix, element);\n }\n};\n\n\nBpmnFactory.prototype.create = function(type, attrs) {\n var element = this._model.create(type, attrs || {});\n\n this._ensureId(element);\n\n return element;\n};\n\n\nBpmnFactory.prototype.createDiLabel = function() {\n return this.create('bpmndi:BPMNLabel', {\n bounds: this.createDiBounds()\n });\n};\n\n\nBpmnFactory.prototype.createDiShape = function(semantic, bounds, attrs) {\n\n return this.create('bpmndi:BPMNShape', (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n bpmnElement: semantic,\n bounds: this.createDiBounds(bounds)\n }, attrs));\n};\n\n\nBpmnFactory.prototype.createDiBounds = function(bounds) {\n return this.create('dc:Bounds', bounds);\n};\n\n\nBpmnFactory.prototype.createDiWaypoints = function(waypoints) {\n var self = this;\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.map)(waypoints, function(pos) {\n return self.createDiWaypoint(pos);\n });\n};\n\nBpmnFactory.prototype.createDiWaypoint = function(point) {\n return this.create('dc:Point', (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.pick)(point, [ 'x', 'y' ]));\n};\n\n\nBpmnFactory.prototype.createDiEdge = function(semantic, waypoints, attrs) {\n return this.create('bpmndi:BPMNEdge', (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n bpmnElement: semantic\n }, attrs));\n};\n\nBpmnFactory.prototype.createDiPlane = function(semantic) {\n return this.create('bpmndi:BPMNPlane', {\n bpmnElement: semantic\n });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js": /*!********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnLayouter)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_layout_BaseLayouter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/BaseLayouter */ \"./node_modules/diagram-js/lib/layout/BaseLayouter.js\");\n/* harmony import */ var diagram_js_lib_layout_ManhattanLayout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/layout/ManhattanLayout */ \"./node_modules/diagram-js/lib/layout/ManhattanLayout.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ATTACH_ORIENTATION_PADDING = -10,\n BOUNDARY_TO_HOST_THRESHOLD = 40;\n\nvar oppositeOrientationMapping = {\n 'top': 'bottom',\n 'top-right': 'bottom-left',\n 'top-left': 'bottom-right',\n 'right': 'left',\n 'bottom': 'top',\n 'bottom-right': 'top-left',\n 'bottom-left': 'top-right',\n 'left': 'right'\n};\n\nvar orientationDirectionMapping = {\n top: 't',\n right: 'r',\n bottom: 'b',\n left: 'l'\n};\n\n\nfunction BpmnLayouter() {}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnLayouter, diagram_js_lib_layout_BaseLayouter__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nBpmnLayouter.prototype.layoutConnection = function(connection, hints) {\n if (!hints) {\n hints = {};\n }\n\n var source = hints.source || connection.source,\n target = hints.target || connection.target,\n waypoints = hints.waypoints || connection.waypoints,\n connectionStart = hints.connectionStart,\n connectionEnd = hints.connectionEnd;\n\n var manhattanOptions,\n updatedWaypoints;\n\n if (!connectionStart) {\n connectionStart = getConnectionDocking(waypoints && waypoints[ 0 ], source);\n }\n\n if (!connectionEnd) {\n connectionEnd = getConnectionDocking(waypoints && waypoints[ waypoints.length - 1 ], target);\n }\n\n // TODO(nikku): support vertical modeling\n // and invert preferredLayouts accordingly\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:Association') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:DataAssociation')) {\n\n if (waypoints && !isCompensationAssociation(source, target)) {\n return [].concat([ connectionStart ], waypoints.slice(1, -1), [ connectionEnd ]);\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:MessageFlow')) {\n manhattanOptions = getMessageFlowManhattanOptions(source, target);\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow') || isCompensationAssociation(source, target)) {\n\n // layout all connection between flow elements h:h, except for\n // (1) outgoing of boundary events -> layout based on attach orientation and target orientation\n // (2) incoming/outgoing of gateways -> v:h for outgoing, h:v for incoming\n // (3) loops\n if (source === target) {\n manhattanOptions = {\n preferredLayouts: getLoopPreferredLayout(source, connection)\n };\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:BoundaryEvent')) {\n manhattanOptions = {\n preferredLayouts: getBoundaryEventPreferredLayouts(source, target, connectionEnd)\n };\n } else if (isExpandedSubProcess(source) || isExpandedSubProcess(target)) {\n manhattanOptions = getSubProcessManhattanOptions(source);\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:Gateway')) {\n manhattanOptions = {\n preferredLayouts: [ 'v:h' ]\n };\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Gateway')) {\n manhattanOptions = {\n preferredLayouts: [ 'h:v' ]\n };\n } else {\n manhattanOptions = {\n preferredLayouts: [ 'h:h' ]\n };\n }\n }\n\n if (manhattanOptions) {\n manhattanOptions = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(manhattanOptions, hints);\n\n updatedWaypoints = (0,diagram_js_lib_layout_ManhattanLayout__WEBPACK_IMPORTED_MODULE_4__.withoutRedundantPoints)((0,diagram_js_lib_layout_ManhattanLayout__WEBPACK_IMPORTED_MODULE_4__.repairConnection)(\n source,\n target,\n connectionStart,\n connectionEnd,\n waypoints,\n manhattanOptions\n ));\n }\n\n return updatedWaypoints || [ connectionStart, connectionEnd ];\n};\n\n\n// helpers //////////\n\nfunction getAttachOrientation(attachedElement) {\n var hostElement = attachedElement.host;\n\n return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getOrientation)((0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(attachedElement), hostElement, ATTACH_ORIENTATION_PADDING);\n}\n\nfunction getMessageFlowManhattanOptions(source, target) {\n return {\n preferredLayouts: [ 'straight', 'v:v' ],\n preserveDocking: getMessageFlowPreserveDocking(source, target)\n };\n}\n\nfunction getMessageFlowPreserveDocking(source, target) {\n\n // (1) docking element connected to participant has precedence\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Participant')) {\n return 'source';\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:Participant')) {\n return 'target';\n }\n\n // (2) docking element connected to expanded sub-process has precedence\n if (isExpandedSubProcess(target)) {\n return 'source';\n }\n\n if (isExpandedSubProcess(source)) {\n return 'target';\n }\n\n // (3) docking event has precedence\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Event')) {\n return 'target';\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:Event')) {\n return 'source';\n }\n\n return null;\n}\n\nfunction getSubProcessManhattanOptions(source) {\n return {\n preferredLayouts: [ 'straight', 'h:h' ],\n preserveDocking: getSubProcessPreserveDocking(source)\n };\n}\n\nfunction getSubProcessPreserveDocking(source) {\n return isExpandedSubProcess(source) ? 'target' : 'source';\n}\n\nfunction getConnectionDocking(point, shape) {\n return point ? (point.original || point) : (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(shape);\n}\n\nfunction isCompensationAssociation(source, target) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Activity') &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:BoundaryEvent') &&\n target.businessObject.isForCompensation;\n}\n\nfunction isExpandedSubProcess(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isSame(a, b) {\n return a === b;\n}\n\nfunction isAnyOrientation(orientation, orientations) {\n return orientations.indexOf(orientation) !== -1;\n}\n\nfunction getHorizontalOrientation(orientation) {\n var matches = /right|left/.exec(orientation);\n\n return matches && matches[0];\n}\n\nfunction getVerticalOrientation(orientation) {\n var matches = /top|bottom/.exec(orientation);\n\n return matches && matches[0];\n}\n\nfunction isOppositeOrientation(a, b) {\n return oppositeOrientationMapping[a] === b;\n}\n\nfunction isOppositeHorizontalOrientation(a, b) {\n var horizontalOrientation = getHorizontalOrientation(a);\n\n var oppositeHorizontalOrientation = oppositeOrientationMapping[horizontalOrientation];\n\n return b.indexOf(oppositeHorizontalOrientation) !== -1;\n}\n\nfunction isOppositeVerticalOrientation(a, b) {\n var verticalOrientation = getVerticalOrientation(a);\n\n var oppositeVerticalOrientation = oppositeOrientationMapping[verticalOrientation];\n\n return b.indexOf(oppositeVerticalOrientation) !== -1;\n}\n\nfunction isHorizontalOrientation(orientation) {\n return orientation === 'right' || orientation === 'left';\n}\n\nfunction getLoopPreferredLayout(source, connection) {\n var waypoints = connection.waypoints;\n\n var orientation = waypoints && waypoints.length && (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getOrientation)(waypoints[0], source);\n\n if (orientation === 'top') {\n return [ 't:r' ];\n } else if (orientation === 'right') {\n return [ 'r:b' ];\n } else if (orientation === 'left') {\n return [ 'l:t' ];\n }\n\n return [ 'b:l' ];\n}\n\nfunction getBoundaryEventPreferredLayouts(source, target, end) {\n var sourceMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(source),\n targetMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(target),\n attachOrientation = getAttachOrientation(source),\n sourceLayout,\n targetLayout;\n\n var isLoop = isSame(source.host, target);\n\n var attachedToSide = isAnyOrientation(attachOrientation, [ 'top', 'right', 'bottom', 'left' ]);\n\n var targetOrientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getOrientation)(targetMid, sourceMid, {\n x: source.width / 2 + target.width / 2,\n y: source.height / 2 + target.height / 2\n });\n\n if (isLoop) {\n return getBoundaryEventLoopLayout(attachOrientation, attachedToSide, source, target, end);\n }\n\n // source layout\n sourceLayout = getBoundaryEventSourceLayout(attachOrientation, targetOrientation, attachedToSide);\n\n // target layout\n targetLayout = getBoundaryEventTargetLayout(attachOrientation, targetOrientation, attachedToSide);\n\n return [ sourceLayout + ':' + targetLayout ];\n}\n\nfunction getBoundaryEventLoopLayout(attachOrientation, attachedToSide, source, target, end) {\n var orientation = attachedToSide ? attachOrientation : getVerticalOrientation(attachOrientation),\n sourceLayout = orientationDirectionMapping[ orientation ],\n targetLayout;\n\n if (attachedToSide) {\n if (isHorizontalOrientation(attachOrientation)) {\n targetLayout = shouldConnectToSameSide('y', source, target, end) ? 'h' : 'b';\n } else {\n targetLayout = shouldConnectToSameSide('x', source, target, end) ? 'v' : 'l';\n }\n } else {\n targetLayout = 'v';\n }\n\n return [ sourceLayout + ':' + targetLayout ];\n}\n\nfunction shouldConnectToSameSide(axis, source, target, end) {\n var threshold = BOUNDARY_TO_HOST_THRESHOLD;\n\n return !(\n areCloseOnAxis(axis, end, target, threshold) ||\n areCloseOnAxis(axis, end, {\n x: target.x + target.width,\n y: target.y + target.height\n }, threshold) ||\n areCloseOnAxis(axis, end, (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(source), threshold)\n );\n}\n\nfunction areCloseOnAxis(axis, a, b, threshold) {\n return Math.abs(a[ axis ] - b[ axis ]) < threshold;\n}\n\nfunction getBoundaryEventSourceLayout(attachOrientation, targetOrientation, attachedToSide) {\n\n // attached to either top, right, bottom or left side\n if (attachedToSide) {\n return orientationDirectionMapping[ attachOrientation ];\n }\n\n // attached to either top-right, top-left, bottom-right or bottom-left corner\n\n // same vertical or opposite horizontal orientation\n if (isSame(\n getVerticalOrientation(attachOrientation), getVerticalOrientation(targetOrientation)\n ) || isOppositeOrientation(\n getHorizontalOrientation(attachOrientation), getHorizontalOrientation(targetOrientation)\n )) {\n return orientationDirectionMapping[ getVerticalOrientation(attachOrientation) ];\n }\n\n // fallback\n return orientationDirectionMapping[ getHorizontalOrientation(attachOrientation) ];\n}\n\nfunction getBoundaryEventTargetLayout(attachOrientation, targetOrientation, attachedToSide) {\n\n // attached to either top, right, bottom or left side\n if (attachedToSide) {\n if (isHorizontalOrientation(attachOrientation)) {\n\n // orientation is right or left\n\n // opposite horizontal orientation or same orientation\n if (\n isOppositeHorizontalOrientation(attachOrientation, targetOrientation) ||\n isSame(attachOrientation, targetOrientation)\n ) {\n return 'h';\n }\n\n // fallback\n return 'v';\n } else {\n\n // orientation is top or bottom\n\n // opposite vertical orientation or same orientation\n if (\n isOppositeVerticalOrientation(attachOrientation, targetOrientation) ||\n isSame(attachOrientation, targetOrientation)\n ) {\n return 'v';\n }\n\n // fallback\n return 'h';\n }\n }\n\n // attached to either top-right, top-left, bottom-right or bottom-left corner\n\n // orientation is right, left\n // or same vertical orientation but also right or left\n if (isHorizontalOrientation(targetOrientation) ||\n (isSame(getVerticalOrientation(attachOrientation), getVerticalOrientation(targetOrientation)) &&\n getHorizontalOrientation(targetOrientation))) {\n return 'h';\n } else {\n return 'v';\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js": /*!*******************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnUpdater)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var diagram_js_lib_model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/model */ \"./node_modules/diagram-js/lib/model/index.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A handler responsible for updating the underlying BPMN 2.0 XML + DI\n * once changes on the diagram happen\n */\nfunction BpmnUpdater(\n eventBus, bpmnFactory, connectionDocking,\n translate) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this._bpmnFactory = bpmnFactory;\n this._translate = translate;\n\n var self = this;\n\n\n\n // connection cropping //////////////////////\n\n // crop connection ends during create/update\n function cropConnection(e) {\n var context = e.context,\n hints = context.hints || {},\n connection;\n\n if (!context.cropped && hints.createElementsBehavior !== false) {\n connection = context.connection;\n connection.waypoints = connectionDocking.getCroppedWaypoints(connection);\n context.cropped = true;\n }\n }\n\n this.executed([\n 'connection.layout',\n 'connection.create'\n ], cropConnection);\n\n this.reverted([ 'connection.layout' ], function(e) {\n delete e.context.cropped;\n });\n\n\n\n // BPMN + DI update //////////////////////\n\n\n // update parent\n function updateParent(e) {\n var context = e.context;\n\n self.updateParent(context.shape || context.connection, context.oldParent);\n }\n\n function reverseUpdateParent(e) {\n var context = e.context;\n\n var element = context.shape || context.connection,\n\n // oldParent is the (old) new parent, because we are undoing\n oldParent = context.parent || context.newParent;\n\n self.updateParent(element, oldParent);\n }\n\n this.executed([\n 'shape.move',\n 'shape.create',\n 'shape.delete',\n 'connection.create',\n 'connection.move',\n 'connection.delete'\n ], ifBpmn(updateParent));\n\n this.reverted([\n 'shape.move',\n 'shape.create',\n 'shape.delete',\n 'connection.create',\n 'connection.move',\n 'connection.delete'\n ], ifBpmn(reverseUpdateParent));\n\n /*\n * ## Updating Parent\n *\n * When morphing a Process into a Collaboration or vice-versa,\n * make sure that both the *semantic* and *di* parent of each element\n * is updated.\n *\n */\n function updateRoot(event) {\n var context = event.context,\n oldRoot = context.oldRoot,\n children = oldRoot.children;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(children, function(child) {\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(child, 'bpmn:BaseElement')) {\n self.updateParent(child);\n }\n });\n }\n\n this.executed([ 'canvas.updateRoot' ], updateRoot);\n this.reverted([ 'canvas.updateRoot' ], updateRoot);\n\n\n // update bounds\n function updateBounds(e) {\n var shape = e.context.shape;\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:BaseElement')) {\n return;\n }\n\n self.updateBounds(shape);\n }\n\n this.executed([ 'shape.move', 'shape.create', 'shape.resize' ], ifBpmn(function(event) {\n\n // exclude labels because they're handled separately during shape.changed\n if (event.context.shape.type === 'label') {\n return;\n }\n\n updateBounds(event);\n }));\n\n this.reverted([ 'shape.move', 'shape.create', 'shape.resize' ], ifBpmn(function(event) {\n\n // exclude labels because they're handled separately during shape.changed\n if (event.context.shape.type === 'label') {\n return;\n }\n\n updateBounds(event);\n }));\n\n // Handle labels separately. This is necessary, because the label bounds have to be updated\n // every time its shape changes, not only on move, create and resize.\n eventBus.on('shape.changed', function(event) {\n if (event.element.type === 'label') {\n updateBounds({ context: { shape: event.element } });\n }\n });\n\n // attach / detach connection\n function updateConnection(e) {\n self.updateConnection(e.context);\n }\n\n this.executed([\n 'connection.create',\n 'connection.move',\n 'connection.delete',\n 'connection.reconnect'\n ], ifBpmn(updateConnection));\n\n this.reverted([\n 'connection.create',\n 'connection.move',\n 'connection.delete',\n 'connection.reconnect'\n ], ifBpmn(updateConnection));\n\n\n // update waypoints\n function updateConnectionWaypoints(e) {\n self.updateConnectionWaypoints(e.context.connection);\n }\n\n this.executed([\n 'connection.layout',\n 'connection.move',\n 'connection.updateWaypoints',\n ], ifBpmn(updateConnectionWaypoints));\n\n this.reverted([\n 'connection.layout',\n 'connection.move',\n 'connection.updateWaypoints',\n ], ifBpmn(updateConnectionWaypoints));\n\n // update conditional/default flows\n this.executed('connection.reconnect', ifBpmn(function(event) {\n var context = event.context,\n connection = context.connection,\n oldSource = context.oldSource,\n newSource = context.newSource,\n connectionBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection),\n oldSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(oldSource),\n newSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(newSource);\n\n // remove condition from connection on reconnect to new source\n // if new source can NOT have condional sequence flow\n if (connectionBo.conditionExpression && !(0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(newSourceBo, [\n 'bpmn:Activity',\n 'bpmn:ExclusiveGateway',\n 'bpmn:InclusiveGateway'\n ])) {\n context.oldConditionExpression = connectionBo.conditionExpression;\n\n delete connectionBo.conditionExpression;\n }\n\n // remove default from old source flow on reconnect to new source\n // if source changed\n if (oldSource !== newSource && oldSourceBo.default === connectionBo) {\n context.oldDefault = oldSourceBo.default;\n\n delete oldSourceBo.default;\n }\n }));\n\n this.reverted('connection.reconnect', ifBpmn(function(event) {\n var context = event.context,\n connection = context.connection,\n oldSource = context.oldSource,\n newSource = context.newSource,\n connectionBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection),\n oldSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(oldSource),\n newSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(newSource);\n\n // add condition to connection on revert reconnect to new source\n if (context.oldConditionExpression) {\n connectionBo.conditionExpression = context.oldConditionExpression;\n }\n\n // add default to old source on revert reconnect to new source\n if (context.oldDefault) {\n oldSourceBo.default = context.oldDefault;\n\n delete newSourceBo.default;\n }\n }));\n\n // update attachments\n function updateAttachment(e) {\n self.updateAttachment(e.context);\n }\n\n this.executed([ 'element.updateAttachment' ], ifBpmn(updateAttachment));\n this.reverted([ 'element.updateAttachment' ], ifBpmn(updateAttachment));\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnUpdater, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnUpdater.$inject = [\n 'eventBus',\n 'bpmnFactory',\n 'connectionDocking',\n 'translate'\n];\n\n\n// implementation //////////////////////\n\nBpmnUpdater.prototype.updateAttachment = function(context) {\n\n var shape = context.shape,\n businessObject = shape.businessObject,\n host = shape.host;\n\n businessObject.attachedToRef = host && host.businessObject;\n};\n\nBpmnUpdater.prototype.updateParent = function(element, oldParent) {\n\n // do not update BPMN 2.0 label parent\n if (element instanceof diagram_js_lib_model__WEBPACK_IMPORTED_MODULE_5__.Label) {\n return;\n }\n\n // data stores in collaborations are handled separately by DataStoreBehavior\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataStoreReference') &&\n element.parent &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, 'bpmn:Collaboration')) {\n return;\n }\n\n var parentShape = element.parent;\n\n var businessObject = element.businessObject,\n parentBusinessObject = parentShape && parentShape.businessObject,\n parentDi = parentBusinessObject && parentBusinessObject.di;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:FlowNode')) {\n this.updateFlowNodeRefs(businessObject, parentBusinessObject, oldParent && oldParent.businessObject);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataOutputAssociation')) {\n if (element.source) {\n parentBusinessObject = element.source.businessObject;\n } else {\n parentBusinessObject = null;\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataInputAssociation')) {\n if (element.target) {\n parentBusinessObject = element.target.businessObject;\n } else {\n parentBusinessObject = null;\n }\n }\n\n this.updateSemanticParent(businessObject, parentBusinessObject);\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataObjectReference') && businessObject.dataObjectRef) {\n this.updateSemanticParent(businessObject.dataObjectRef, parentBusinessObject);\n }\n\n this.updateDiParent(businessObject.di, parentDi);\n};\n\n\nBpmnUpdater.prototype.updateBounds = function(shape) {\n\n var di = shape.businessObject.di;\n\n var target = (shape instanceof diagram_js_lib_model__WEBPACK_IMPORTED_MODULE_5__.Label) ? this._getLabel(di) : di;\n\n var bounds = target.bounds;\n\n if (!bounds) {\n bounds = this._bpmnFactory.createDiBounds();\n target.set('bounds', bounds);\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n x: shape.x,\n y: shape.y,\n width: shape.width,\n height: shape.height\n });\n};\n\nBpmnUpdater.prototype.updateFlowNodeRefs = function(businessObject, newContainment, oldContainment) {\n\n if (oldContainment === newContainment) {\n return;\n }\n\n var oldRefs, newRefs;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is) (oldContainment, 'bpmn:Lane')) {\n oldRefs = oldContainment.get('flowNodeRef');\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(oldRefs, businessObject);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newContainment, 'bpmn:Lane')) {\n newRefs = newContainment.get('flowNodeRef');\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.add)(newRefs, businessObject);\n }\n};\n\n\n// update existing sourceElement and targetElement di information\nBpmnUpdater.prototype.updateDiConnection = function(di, newSource, newTarget) {\n\n if (di.sourceElement && di.sourceElement.bpmnElement !== newSource) {\n di.sourceElement = newSource && newSource.di;\n }\n\n if (di.targetElement && di.targetElement.bpmnElement !== newTarget) {\n di.targetElement = newTarget && newTarget.di;\n }\n\n};\n\n\nBpmnUpdater.prototype.updateDiParent = function(di, parentDi) {\n\n if (parentDi && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(parentDi, 'bpmndi:BPMNPlane')) {\n parentDi = parentDi.$parent;\n }\n\n if (di.$parent === parentDi) {\n return;\n }\n\n var planeElements = (parentDi || di.$parent).get('planeElement');\n\n if (parentDi) {\n planeElements.push(di);\n di.$parent = parentDi;\n } else {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(planeElements, di);\n di.$parent = null;\n }\n};\n\nfunction getDefinitions(element) {\n while (element && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:Definitions')) {\n element = element.$parent;\n }\n\n return element;\n}\n\nBpmnUpdater.prototype.getLaneSet = function(container) {\n\n var laneSet, laneSets;\n\n // bpmn:Lane\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(container, 'bpmn:Lane')) {\n laneSet = container.childLaneSet;\n\n if (!laneSet) {\n laneSet = this._bpmnFactory.create('bpmn:LaneSet');\n container.childLaneSet = laneSet;\n laneSet.$parent = container;\n }\n\n return laneSet;\n }\n\n // bpmn:Participant\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(container, 'bpmn:Participant')) {\n container = container.processRef;\n }\n\n // bpmn:FlowElementsContainer\n laneSets = container.get('laneSets');\n laneSet = laneSets[0];\n\n if (!laneSet) {\n laneSet = this._bpmnFactory.create('bpmn:LaneSet');\n laneSet.$parent = container;\n laneSets.push(laneSet);\n }\n\n return laneSet;\n};\n\nBpmnUpdater.prototype.updateSemanticParent = function(businessObject, newParent, visualParent) {\n\n var containment,\n translate = this._translate;\n\n if (businessObject.$parent === newParent) {\n return;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataInput') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataOutput')) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Participant') && 'processRef' in newParent) {\n newParent = newParent.processRef;\n }\n\n // already in correct ioSpecification\n if ('ioSpecification' in newParent && newParent.ioSpecification === businessObject.$parent) {\n return;\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:Lane')) {\n\n if (newParent) {\n newParent = this.getLaneSet(newParent);\n }\n\n containment = 'lanes';\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:FlowElement')) {\n\n if (newParent) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Participant')) {\n newParent = newParent.processRef;\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Lane')) {\n do {\n\n // unwrap Lane -> LaneSet -> (Lane | FlowElementsContainer)\n newParent = newParent.$parent.$parent;\n } while ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Lane'));\n\n }\n }\n\n containment = 'flowElements';\n\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:Artifact')) {\n\n while (newParent &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Process') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:SubProcess') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Collaboration')) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Participant')) {\n newParent = newParent.processRef;\n break;\n } else {\n newParent = newParent.$parent;\n }\n }\n\n containment = 'artifacts';\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:MessageFlow')) {\n containment = 'messageFlows';\n\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:Participant')) {\n containment = 'participants';\n\n // make sure the participants process is properly attached / detached\n // from the XML document\n\n var process = businessObject.processRef,\n definitions;\n\n if (process) {\n definitions = getDefinitions(businessObject.$parent || newParent);\n\n if (businessObject.$parent) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(definitions.get('rootElements'), process);\n process.$parent = null;\n }\n\n if (newParent) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.add)(definitions.get('rootElements'), process);\n process.$parent = definitions;\n }\n }\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataOutputAssociation')) {\n containment = 'dataOutputAssociations';\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataInputAssociation')) {\n containment = 'dataInputAssociations';\n }\n\n if (!containment) {\n throw new Error(translate(\n 'no parent for {element} in {parent}',\n {\n element: businessObject.id,\n parent: newParent.id\n }\n ));\n }\n\n var children;\n\n if (businessObject.$parent) {\n\n // remove from old parent\n children = businessObject.$parent.get(containment);\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(children, businessObject);\n }\n\n if (!newParent) {\n businessObject.$parent = null;\n } else {\n\n // add to new parent\n children = newParent.get(containment);\n children.push(businessObject);\n businessObject.$parent = newParent;\n }\n\n if (visualParent) {\n var diChildren = visualParent.get(containment);\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(children, businessObject);\n\n if (newParent) {\n\n if (!diChildren) {\n diChildren = [];\n newParent.set(containment, diChildren);\n }\n\n diChildren.push(businessObject);\n }\n }\n};\n\n\nBpmnUpdater.prototype.updateConnectionWaypoints = function(connection) {\n connection.businessObject.di.set('waypoint', this._bpmnFactory.createDiWaypoints(connection.waypoints));\n};\n\n\nBpmnUpdater.prototype.updateConnection = function(context) {\n\n var connection = context.connection,\n businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection),\n newSource = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection.source),\n newTarget = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection.target),\n visualParent;\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataAssociation')) {\n\n var inverseSet = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:SequenceFlow');\n\n if (businessObject.sourceRef !== newSource) {\n if (inverseSet) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(businessObject.sourceRef && businessObject.sourceRef.get('outgoing'), businessObject);\n\n if (newSource && newSource.get('outgoing')) {\n newSource.get('outgoing').push(businessObject);\n }\n }\n\n businessObject.sourceRef = newSource;\n }\n\n if (businessObject.targetRef !== newTarget) {\n if (inverseSet) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(businessObject.targetRef && businessObject.targetRef.get('incoming'), businessObject);\n\n if (newTarget && newTarget.get('incoming')) {\n newTarget.get('incoming').push(businessObject);\n }\n }\n\n businessObject.targetRef = newTarget;\n }\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataInputAssociation')) {\n\n // handle obnoxious isMsome sourceRef\n businessObject.get('sourceRef')[0] = newSource;\n\n visualParent = context.parent || context.newParent || newTarget;\n\n this.updateSemanticParent(businessObject, newTarget, visualParent);\n } else\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataOutputAssociation')) {\n visualParent = context.parent || context.newParent || newSource;\n\n this.updateSemanticParent(businessObject, newSource, visualParent);\n\n // targetRef = new target\n businessObject.targetRef = newTarget;\n }\n\n this.updateConnectionWaypoints(connection);\n\n this.updateDiConnection(businessObject.di, newSource, newTarget);\n};\n\n\n// helpers //////////////////////\n\nBpmnUpdater.prototype._getLabel = function(di) {\n if (!di.label) {\n di.label = this._bpmnFactory.createDiLabel();\n }\n\n return di.label;\n};\n\n\n/**\n * Make sure the event listener is only called\n * if the touched element is a BPMN element.\n *\n * @param {Function} fn\n * @return {Function} guarded function\n */\nfunction ifBpmn(fn) {\n\n return function(event) {\n\n var context = event.context,\n element = context.shape || context.connection;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:BaseElement')) {\n fn(event);\n }\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js": /*!**********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ElementFactory)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/core/ElementFactory */ \"./node_modules/diagram-js/lib/core/ElementFactory.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A bpmn-aware factory for diagram-js shapes\n */\nfunction ElementFactory(bpmnFactory, moddle, translate) {\n diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__.default.call(this);\n\n this._bpmnFactory = bpmnFactory;\n this._moddle = moddle;\n this._translate = translate;\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ElementFactory, diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__.default);\n\nElementFactory.$inject = [\n 'bpmnFactory',\n 'moddle',\n 'translate'\n];\n\nElementFactory.prototype.baseCreate = diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__.default.prototype.create;\n\nElementFactory.prototype.create = function(elementType, attrs) {\n\n // no special magic for labels,\n // we assume their businessObjects have already been created\n // and wired via attrs\n if (elementType === 'label') {\n return this.baseCreate(elementType, (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ type: 'label' }, _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_LABEL_SIZE, attrs));\n }\n\n return this.createBpmnElement(elementType, attrs);\n};\n\nElementFactory.prototype.createBpmnElement = function(elementType, attrs) {\n var size,\n translate = this._translate;\n\n attrs = attrs || {};\n\n var businessObject = attrs.businessObject;\n\n if (!businessObject) {\n if (!attrs.type) {\n throw new Error(translate('no shape type specified'));\n }\n\n businessObject = this._bpmnFactory.create(attrs.type);\n }\n\n if (!businessObject.di) {\n if (elementType === 'root') {\n businessObject.di = this._bpmnFactory.createDiPlane(businessObject, [], {\n id: businessObject.id + '_di'\n });\n } else\n if (elementType === 'connection') {\n businessObject.di = this._bpmnFactory.createDiEdge(businessObject, [], {\n id: businessObject.id + '_di'\n });\n } else {\n businessObject.di = this._bpmnFactory.createDiShape(businessObject, {}, {\n id: businessObject.id + '_di'\n });\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(businessObject, 'bpmn:Group')) {\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n isFrame: true\n }, attrs);\n }\n\n if (attrs.di) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(businessObject.di, attrs.di);\n\n delete attrs.di;\n }\n\n applyAttributes(businessObject, attrs, [\n 'processRef',\n 'isInterrupting',\n 'associationDirection',\n 'isForCompensation'\n ]);\n\n if (attrs.isExpanded) {\n applyAttribute(businessObject.di, attrs, 'isExpanded');\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(businessObject, 'bpmn:ExclusiveGateway')) {\n businessObject.di.isMarkerVisible = true;\n }\n\n var eventDefinitions,\n newEventDefinition;\n\n if (attrs.eventDefinitionType) {\n eventDefinitions = businessObject.get('eventDefinitions') || [];\n newEventDefinition = this._bpmnFactory.create(attrs.eventDefinitionType, attrs.eventDefinitionAttrs);\n\n if (attrs.eventDefinitionType === 'bpmn:ConditionalEventDefinition') {\n newEventDefinition.condition = this._bpmnFactory.create('bpmn:FormalExpression');\n }\n\n eventDefinitions.push(newEventDefinition);\n\n newEventDefinition.$parent = businessObject;\n businessObject.eventDefinitions = eventDefinitions;\n\n delete attrs.eventDefinitionType;\n }\n\n size = this._getDefaultSize(businessObject);\n\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n businessObject: businessObject,\n id: businessObject.id\n }, size, attrs);\n\n return this.baseCreate(elementType, attrs);\n};\n\n\nElementFactory.prototype._getDefaultSize = function(semantic) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:SubProcess')) {\n\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_5__.isExpanded)(semantic)) {\n return { width: 350, height: 200 };\n } else {\n return { width: 100, height: 80 };\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Task')) {\n return { width: 100, height: 80 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Gateway')) {\n return { width: 50, height: 50 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Event')) {\n return { width: 36, height: 36 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Participant')) {\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_5__.isExpanded)(semantic)) {\n return { width: 600, height: 250 };\n } else {\n return { width: 400, height: 60 };\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Lane')) {\n return { width: 400, height: 100 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:DataObjectReference')) {\n return { width: 36, height: 50 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:DataStoreReference')) {\n return { width: 50, height: 50 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:TextAnnotation')) {\n return { width: 100, height: 30 };\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Group')) {\n return { width: 300, height: 300 };\n }\n\n return { width: 100, height: 80 };\n};\n\n\n/**\n * Create participant.\n *\n * @param {boolean|Object} [attrs] attrs\n *\n * @returns {djs.model.Shape}\n */\nElementFactory.prototype.createParticipantShape = function(attrs) {\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isObject)(attrs)) {\n attrs = { isExpanded: attrs };\n }\n\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ type: 'bpmn:Participant' }, attrs || {});\n\n // participants are expanded by default\n if (attrs.isExpanded !== false) {\n attrs.processRef = this._bpmnFactory.create('bpmn:Process');\n }\n\n return this.createShape(attrs);\n};\n\n\n// helpers //////////////////////\n\n/**\n * Apply attributes from a map to the given element,\n * remove attribute from the map on application.\n *\n * @param {Base} element\n * @param {Object} attrs (in/out map of attributes)\n * @param {Array} attributeNames name of attributes to apply\n */\nfunction applyAttributes(element, attrs, attributeNames) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attributeNames, function(property) {\n if (attrs[property] !== undefined) {\n applyAttribute(element, attrs, property);\n }\n });\n}\n\n/**\n * Apply named property to element and drain it from the attrs\n * collection.\n *\n * @param {Base} element\n * @param {Object} attrs (in/out map of attributes)\n * @param {string} attributeName to apply\n */\nfunction applyAttribute(element, attrs, attributeName) {\n element[attributeName] = attrs[attributeName];\n\n delete attrs[attributeName];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/Modeling.js": /*!****************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/Modeling.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Modeling)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/modeling/Modeling */ \"./node_modules/diagram-js/lib/features/modeling/Modeling.js\");\n/* harmony import */ var _cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cmd/UpdateModdlePropertiesHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js\");\n/* harmony import */ var _cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _cmd_UpdatePropertiesHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cmd/UpdatePropertiesHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js\");\n/* harmony import */ var _cmd_UpdateCanvasRootHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cmd/UpdateCanvasRootHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js\");\n/* harmony import */ var _cmd_AddLaneHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cmd/AddLaneHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js\");\n/* harmony import */ var _cmd_SplitLaneHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cmd/SplitLaneHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js\");\n/* harmony import */ var _cmd_ResizeLaneHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cmd/ResizeLaneHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js\");\n/* harmony import */ var _cmd_UpdateFlowNodeRefsHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cmd/UpdateFlowNodeRefsHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js\");\n/* harmony import */ var _cmd_IdClaimHandler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./cmd/IdClaimHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js\");\n/* harmony import */ var _cmd_SetColorHandler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cmd/SetColorHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js\");\n/* harmony import */ var _label_editing_cmd_UpdateLabelHandler__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../label-editing/cmd/UpdateLabelHandler */ \"./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * BPMN 2.0 modeling features activator\n *\n * @param {EventBus} eventBus\n * @param {ElementFactory} elementFactory\n * @param {CommandStack} commandStack\n * @param {BpmnRules} bpmnRules\n */\nfunction Modeling(\n eventBus, elementFactory, commandStack,\n bpmnRules) {\n\n diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus, elementFactory, commandStack);\n\n this._bpmnRules = bpmnRules;\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Modeling, diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__.default);\n\nModeling.$inject = [\n 'eventBus',\n 'elementFactory',\n 'commandStack',\n 'bpmnRules'\n];\n\n\nModeling.prototype.getHandlers = function() {\n var handlers = diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__.default.prototype.getHandlers.call(this);\n\n handlers['element.updateModdleProperties'] = (_cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2___default());\n handlers['element.updateProperties'] = _cmd_UpdatePropertiesHandler__WEBPACK_IMPORTED_MODULE_3__.default;\n handlers['canvas.updateRoot'] = _cmd_UpdateCanvasRootHandler__WEBPACK_IMPORTED_MODULE_4__.default;\n handlers['lane.add'] = _cmd_AddLaneHandler__WEBPACK_IMPORTED_MODULE_5__.default;\n handlers['lane.resize'] = _cmd_ResizeLaneHandler__WEBPACK_IMPORTED_MODULE_6__.default;\n handlers['lane.split'] = _cmd_SplitLaneHandler__WEBPACK_IMPORTED_MODULE_7__.default;\n handlers['lane.updateRefs'] = _cmd_UpdateFlowNodeRefsHandler__WEBPACK_IMPORTED_MODULE_8__.default;\n handlers['id.updateClaim'] = _cmd_IdClaimHandler__WEBPACK_IMPORTED_MODULE_9__.default;\n handlers['element.setColor'] = _cmd_SetColorHandler__WEBPACK_IMPORTED_MODULE_10__.default;\n handlers['element.updateLabel'] = _label_editing_cmd_UpdateLabelHandler__WEBPACK_IMPORTED_MODULE_11__.default;\n\n return handlers;\n};\n\n\nModeling.prototype.updateLabel = function(element, newLabel, newBounds, hints) {\n this._commandStack.execute('element.updateLabel', {\n element: element,\n newLabel: newLabel,\n newBounds: newBounds,\n hints: hints || {}\n });\n};\n\n\nModeling.prototype.connect = function(source, target, attrs, hints) {\n\n var bpmnRules = this._bpmnRules;\n\n if (!attrs) {\n attrs = bpmnRules.canConnect(source, target);\n }\n\n if (!attrs) {\n return;\n }\n\n return this.createConnection(source, target, attrs, source.parent, hints);\n};\n\n\nModeling.prototype.updateModdleProperties = function(element, moddleElement, properties) {\n this._commandStack.execute('element.updateModdleProperties', {\n element: element,\n moddleElement: moddleElement,\n properties: properties\n });\n};\n\nModeling.prototype.updateProperties = function(element, properties) {\n this._commandStack.execute('element.updateProperties', {\n element: element,\n properties: properties\n });\n};\n\nModeling.prototype.resizeLane = function(laneShape, newBounds, balanced) {\n this._commandStack.execute('lane.resize', {\n shape: laneShape,\n newBounds: newBounds,\n balanced: balanced\n });\n};\n\nModeling.prototype.addLane = function(targetLaneShape, location) {\n var context = {\n shape: targetLaneShape,\n location: location\n };\n\n this._commandStack.execute('lane.add', context);\n\n return context.newLane;\n};\n\nModeling.prototype.splitLane = function(targetLane, count) {\n this._commandStack.execute('lane.split', {\n shape: targetLane,\n count: count\n });\n};\n\n/**\n * Transform the current diagram into a collaboration.\n *\n * @return {djs.model.Root} the new root element\n */\nModeling.prototype.makeCollaboration = function() {\n\n var collaborationElement = this._create('root', {\n type: 'bpmn:Collaboration'\n });\n\n var context = {\n newRoot: collaborationElement\n };\n\n this._commandStack.execute('canvas.updateRoot', context);\n\n return collaborationElement;\n};\n\nModeling.prototype.updateLaneRefs = function(flowNodeShapes, laneShapes) {\n\n this._commandStack.execute('lane.updateRefs', {\n flowNodeShapes: flowNodeShapes,\n laneShapes: laneShapes\n });\n};\n\n/**\n * Transform the current diagram into a process.\n *\n * @return {djs.model.Root} the new root element\n */\nModeling.prototype.makeProcess = function() {\n\n var processElement = this._create('root', {\n type: 'bpmn:Process'\n });\n\n var context = {\n newRoot: processElement\n };\n\n this._commandStack.execute('canvas.updateRoot', context);\n};\n\n\nModeling.prototype.claimId = function(id, moddleElement) {\n this._commandStack.execute('id.updateClaim', {\n id: id,\n element: moddleElement,\n claiming: true\n });\n};\n\n\nModeling.prototype.unclaimId = function(id, moddleElement) {\n this._commandStack.execute('id.updateClaim', {\n id: id,\n element: moddleElement\n });\n};\n\nModeling.prototype.setColor = function(elements, colors) {\n if (!elements.length) {\n elements = [ elements ];\n }\n\n this._commandStack.execute('element.setColor', {\n elements: elements,\n colors: colors\n });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/Modeling.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js": /*!*************************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js ***! \*************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AdaptiveLabelPositioningBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Math__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/Math */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\nvar ALIGNMENTS = [\n 'top',\n 'bottom',\n 'left',\n 'right'\n];\n\nvar ELEMENT_LABEL_DISTANCE = 10;\n\n/**\n * A component that makes sure that external labels are added\n * together with respective elements and properly updated (DI wise)\n * during move.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction AdaptiveLabelPositioningBehavior(eventBus, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this.postExecuted([\n 'connection.create',\n 'connection.layout',\n 'connection.updateWaypoints'\n ], function(event) {\n var context = event.context,\n connection = context.connection,\n source = connection.source,\n target = connection.target,\n hints = context.hints || {};\n\n if (hints.createElementsBehavior !== false) {\n checkLabelAdjustment(source);\n checkLabelAdjustment(target);\n }\n });\n\n\n this.postExecuted([\n 'label.create'\n ], function(event) {\n var context = event.context,\n shape = context.shape,\n hints = context.hints || {};\n\n if (hints.createElementsBehavior !== false) {\n checkLabelAdjustment(shape.labelTarget);\n }\n });\n\n\n this.postExecuted([\n 'elements.create'\n ], function(event) {\n var context = event.context,\n elements = context.elements,\n hints = context.hints || {};\n\n if (hints.createElementsBehavior !== false) {\n elements.forEach(function(element) {\n checkLabelAdjustment(element);\n });\n }\n });\n\n function checkLabelAdjustment(element) {\n\n // skip non-existing labels\n if (!(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__.hasExternalLabel)(element)) {\n return;\n }\n\n var optimalPosition = getOptimalPosition(element);\n\n // no optimal position found\n if (!optimalPosition) {\n return;\n }\n\n adjustLabelPosition(element, optimalPosition);\n }\n\n function adjustLabelPosition(element, orientation) {\n\n var elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element),\n label = element.label,\n labelMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(label);\n\n // ignore labels that are being created\n if (!label.parent) {\n return;\n }\n\n var elementTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(element);\n\n var newLabelMid;\n\n switch (orientation) {\n case 'top':\n newLabelMid = {\n x: elementMid.x,\n y: elementTrbl.top - ELEMENT_LABEL_DISTANCE - label.height / 2\n };\n\n break;\n\n case 'left':\n\n newLabelMid = {\n x: elementTrbl.left - ELEMENT_LABEL_DISTANCE - label.width / 2,\n y: elementMid.y\n };\n\n break;\n\n case 'bottom':\n\n newLabelMid = {\n x: elementMid.x,\n y: elementTrbl.bottom + ELEMENT_LABEL_DISTANCE + label.height / 2\n };\n\n break;\n\n case 'right':\n\n newLabelMid = {\n x: elementTrbl.right + ELEMENT_LABEL_DISTANCE + label.width / 2,\n y: elementMid.y\n };\n\n break;\n }\n\n var delta = (0,diagram_js_lib_util_Math__WEBPACK_IMPORTED_MODULE_4__.delta)(newLabelMid, labelMid);\n\n modeling.moveShape(label, delta);\n }\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AdaptiveLabelPositioningBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAdaptiveLabelPositioningBehavior.$inject = [\n 'eventBus',\n 'modeling'\n];\n\n\n// helpers //////////////////////\n\n/**\n * Return alignments which are taken by a boundary's host element\n *\n * @param {Shape} element\n *\n * @return {Array}\n */\nfunction getTakenHostAlignments(element) {\n\n var hostElement = element.host,\n elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element),\n hostOrientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getOrientation)(elementMid, hostElement);\n\n var freeAlignments;\n\n // check whether there is a multi-orientation, e.g. 'top-left'\n if (hostOrientation.indexOf('-') >= 0) {\n freeAlignments = hostOrientation.split('-');\n } else {\n freeAlignments = [ hostOrientation ];\n }\n\n var takenAlignments = ALIGNMENTS.filter(function(alignment) {\n\n return freeAlignments.indexOf(alignment) === -1;\n });\n\n return takenAlignments;\n\n}\n\n/**\n * Return alignments which are taken by related connections\n *\n * @param {Shape} element\n *\n * @return {Array}\n */\nfunction getTakenConnectionAlignments(element) {\n\n var elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element);\n\n var takenAlignments = [].concat(\n element.incoming.map(function(c) {\n return c.waypoints[c.waypoints.length - 2 ];\n }),\n element.outgoing.map(function(c) {\n return c.waypoints[1];\n })\n ).map(function(point) {\n return getApproximateOrientation(elementMid, point);\n });\n\n return takenAlignments;\n}\n\n/**\n * Return the optimal label position around an element\n * or _undefined_, if none was found.\n *\n * @param {Shape} element\n *\n * @return {string} positioning identifier\n */\nfunction getOptimalPosition(element) {\n\n var labelMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element.label);\n\n var elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element);\n\n var labelOrientation = getApproximateOrientation(elementMid, labelMid);\n\n if (!isAligned(labelOrientation)) {\n return;\n }\n\n var takenAlignments = getTakenConnectionAlignments(element);\n\n if (element.host) {\n var takenHostAlignments = getTakenHostAlignments(element);\n\n takenAlignments = takenAlignments.concat(takenHostAlignments);\n }\n\n var freeAlignments = ALIGNMENTS.filter(function(alignment) {\n\n return takenAlignments.indexOf(alignment) === -1;\n });\n\n // NOTHING TO DO; label already aligned a.O.K.\n if (freeAlignments.indexOf(labelOrientation) !== -1) {\n return;\n }\n\n return freeAlignments[0];\n}\n\nfunction getApproximateOrientation(p0, p1) {\n return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getOrientation)(p1, p0, 5);\n}\n\nfunction isAligned(orientation) {\n return ALIGNMENTS.indexOf(orientation) !== -1;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AppendBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\nfunction AppendBehavior(eventBus, elementFactory, bpmnRules) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n // assign correct shape position unless already set\n\n this.preExecute('shape.append', function(context) {\n\n var source = context.source,\n shape = context.shape;\n\n if (!context.position) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:TextAnnotation')) {\n context.position = {\n x: source.x + source.width / 2 + 75,\n y: source.y - (50) - shape.height / 2\n };\n } else {\n context.position = {\n x: source.x + source.width + 80 + shape.width / 2,\n y: source.y + source.height / 2\n };\n }\n }\n }, true);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AppendBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAppendBehavior.$inject = [\n 'eventBus',\n 'elementFactory',\n 'bpmnRules'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AssociationBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction AssociationBehavior(injector, modeling) {\r\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\r\n\r\n this.postExecute('shape.move', function(context) {\r\n var newParent = context.newParent,\r\n shape = context.shape;\r\n\r\n var associations = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(shape.incoming.concat(shape.outgoing), function(connection) {\r\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(connection, 'bpmn:Association');\r\n });\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(associations, function(association) {\r\n modeling.moveConnection(association, { x: 0, y: 0 }, newParent);\r\n });\r\n }, true);\r\n}\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AssociationBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\nAssociationBehavior.$inject = [\r\n 'injector',\r\n 'modeling'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AttachEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * Replace intermediate event with boundary event when creating or moving results in attached event.\n */\nfunction AttachEventBehavior(bpmnReplace, injector) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n this._bpmnReplace = bpmnReplace;\n\n var self = this;\n\n this.postExecuted('elements.create', LOW_PRIORITY, function(context) {\n var elements = context.elements;\n\n elements = elements.filter(function(shape) {\n var host = shape.host;\n\n return shouldReplace(shape, host);\n });\n\n if (elements.length !== 1) {\n return;\n }\n\n elements.map(function(element) {\n return elements.indexOf(element);\n }).forEach(function(index) {\n var host = elements[ index ];\n\n context.elements[ index ] = self.replaceShape(elements[ index ], host);\n });\n }, true);\n\n\n this.preExecute('elements.move', LOW_PRIORITY, function(context) {\n var shapes = context.shapes,\n host = context.newHost;\n\n if (shapes.length !== 1) {\n return;\n }\n\n var shape = shapes[0];\n\n if (shouldReplace(shape, host)) {\n context.shapes = [ self.replaceShape(shape, host) ];\n }\n }, true);\n}\n\nAttachEventBehavior.$inject = [\n 'bpmnReplace',\n 'injector'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AttachEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAttachEventBehavior.prototype.replaceShape = function(shape, host) {\n var eventDefinition = getEventDefinition(shape);\n\n var boundaryEvent = {\n type: 'bpmn:BoundaryEvent',\n host: host\n };\n\n if (eventDefinition) {\n boundaryEvent.eventDefinitionType = eventDefinition.$type;\n }\n\n return this._bpmnReplace.replaceElement(shape, boundaryEvent, { layoutConnection: false });\n};\n\n\n// helpers //////////\n\nfunction getEventDefinition(element) {\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element),\n eventDefinitions = businessObject.eventDefinitions;\n\n return eventDefinitions && eventDefinitions[0];\n}\n\nfunction shouldReplace(shape, host) {\n return !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(shape) &&\n (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(shape, [ 'bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent' ]) && !!host;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js": /*!**************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BoundaryEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * BPMN specific boundary event behavior\n */\nfunction BoundaryEventBehavior(eventBus, moddle, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n function getBoundaryEvents(element) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(element.attachers, function(attacher) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(attacher, 'bpmn:BoundaryEvent');\n });\n }\n\n // remove after connecting to event-based gateway\n this.postExecute('connection.create', function(event) {\n var source = event.context.source,\n target = event.context.target,\n boundaryEvents = getBoundaryEvents(target);\n\n if (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(source, 'bpmn:EventBasedGateway') &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(target, 'bpmn:ReceiveTask') &&\n boundaryEvents.length > 0\n ) {\n modeling.removeElements(boundaryEvents);\n }\n\n });\n\n // remove after replacing connected gateway with event-based gateway\n this.postExecute('connection.reconnect', function(event) {\n var oldSource = event.context.oldSource,\n newSource = event.context.newSource;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldSource, 'bpmn:Gateway') &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newSource, 'bpmn:EventBasedGateway')) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(newSource.outgoing, function(connection) {\n var target = connection.target,\n attachedboundaryEvents = getBoundaryEvents(target);\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(target, 'bpmn:ReceiveTask') &&\n attachedboundaryEvents.length > 0) {\n modeling.removeElements(attachedboundaryEvents);\n }\n });\n }\n });\n\n // copy reference to root element on replace\n eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) {\n var parent = context.parent,\n property = context.property,\n propertyName = context.propertyName;\n\n var propertyDescriptor = moddle.getPropertyDescriptor(parent, propertyName);\n\n if (propertyDescriptor && propertyDescriptor.isReference && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(property, 'bpmn:RootElement')) {\n parent.set(propertyName, property);\n }\n });\n}\n\nBoundaryEventBehavior.$inject = [\n 'eventBus',\n 'moddle',\n 'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BoundaryEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\n\n\n\n\n\n\n\n\nfunction CreateBehavior(injector) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n this.preExecute('shape.create', 1500, function(event) {\n var context = event.context,\n parent = context.parent,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Lane') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Lane')) {\n context.parent = (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(parent, 'bpmn:Participant');\n }\n });\n\n}\n\n\nCreateBehavior.$inject = [ 'injector' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js": /*!*****************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateDataObjectBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * BPMN specific create data object behavior\n */\nfunction CreateDataObjectBehavior(eventBus, bpmnFactory, moddle) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this.preExecute('shape.create', function(event) {\n\n var context = event.context,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:DataObjectReference') && shape.type !== 'label') {\n\n // create a DataObject every time a DataObjectReference is created\n var dataObject = bpmnFactory.create('bpmn:DataObject');\n\n // set the reference to the DataObject\n shape.businessObject.dataObjectRef = dataObject;\n }\n });\n\n}\n\nCreateDataObjectBehavior.$inject = [\n 'eventBus',\n 'bpmnFactory',\n 'moddle'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateDataObjectBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js ***! \******************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PARTICIPANT_BORDER_WIDTH\": () => (/* binding */ PARTICIPANT_BORDER_WIDTH),\n/* harmony export */ \"default\": () => (/* binding */ CreateParticipantBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar HORIZONTAL_PARTICIPANT_PADDING = 20,\n VERTICAL_PARTICIPANT_PADDING = 20;\n\nvar PARTICIPANT_BORDER_WIDTH = 30;\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * BPMN-specific behavior for creating participants.\n */\nfunction CreateParticipantBehavior(canvas, eventBus, modeling) {\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n // fit participant\n eventBus.on([\n 'create.start',\n 'shape.move.start'\n ], HIGH_PRIORITY, function(event) {\n var context = event.context,\n shape = context.shape,\n rootElement = canvas.getRootElement();\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant') ||\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Process') ||\n !rootElement.children.length) {\n return;\n }\n\n // ignore connections, groups and labels\n var children = rootElement.children.filter(function(element) {\n return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:Group') &&\n !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(element) &&\n !isConnection(element);\n });\n\n // ensure for available children to calculate bounds\n if (!children.length) {\n return;\n }\n\n var childrenBBox = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__.getBBox)(children);\n\n var participantBounds = getParticipantBounds(shape, childrenBBox);\n\n // assign width and height\n (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.assign)(shape, participantBounds);\n\n // assign create constraints\n context.createConstraints = getParticipantCreateConstraints(shape, childrenBBox);\n });\n\n // force hovering process when creating first participant\n eventBus.on('create.start', HIGH_PRIORITY, function(event) {\n var context = event.context,\n shape = context.shape,\n rootElement = canvas.getRootElement(),\n rootElementGfx = canvas.getGraphics(rootElement);\n\n function ensureHoveringProcess(event) {\n event.element = rootElement;\n event.gfx = rootElementGfx;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Process')) {\n eventBus.on('element.hover', HIGH_PRIORITY, ensureHoveringProcess);\n\n eventBus.once('create.cleanup', function() {\n eventBus.off('element.hover', ensureHoveringProcess);\n });\n }\n });\n\n function ensureCollaboration(context) {\n var parent = context.parent,\n collaboration;\n\n var rootElement = canvas.getRootElement();\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Collaboration')) {\n collaboration = rootElement;\n } else {\n\n // update root element by making collaboration\n collaboration = modeling.makeCollaboration();\n\n // re-use process when creating first participant\n context.process = parent;\n }\n\n context.parent = collaboration;\n }\n\n // turn process into collaboration before adding participant\n this.preExecute('shape.create', function(context) {\n var parent = context.parent,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Process')) {\n ensureCollaboration(context);\n }\n }, true);\n\n this.execute('shape.create', function(context) {\n var process = context.process,\n shape = context.shape;\n\n if (process) {\n context.oldProcessRef = shape.businessObject.processRef;\n\n // re-use process when creating first participant\n shape.businessObject.processRef = process.businessObject;\n }\n }, true);\n\n this.revert('shape.create', function(context) {\n var process = context.process,\n shape = context.shape;\n\n if (process) {\n\n // re-use process when creating first participant\n shape.businessObject.processRef = context.oldProcessRef;\n }\n }, true);\n\n this.postExecute('shape.create', function(context) {\n var process = context.process,\n shape = context.shape;\n\n if (process) {\n\n // move children from process to participant\n var processChildren = process.children.slice();\n\n modeling.moveElements(processChildren, { x: 0, y: 0 }, shape);\n }\n\n }, true);\n\n // turn process into collaboration when creating participants\n this.preExecute('elements.create', HIGH_PRIORITY, function(context) {\n var elements = context.elements,\n parent = context.parent,\n participant;\n\n var hasParticipants = findParticipant(elements);\n\n if (hasParticipants && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Process')) {\n ensureCollaboration(context);\n\n participant = findParticipant(elements);\n\n context.oldProcessRef = participant.businessObject.processRef;\n\n // re-use process when creating first participant\n participant.businessObject.processRef = parent.businessObject;\n }\n }, true);\n\n this.revert('elements.create', function(context) {\n var elements = context.elements,\n process = context.process,\n participant;\n\n if (process) {\n participant = findParticipant(elements);\n\n // re-use process when creating first participant\n participant.businessObject.processRef = context.oldProcessRef;\n }\n }, true);\n\n this.postExecute('elements.create', function(context) {\n var elements = context.elements,\n process = context.process,\n participant;\n\n if (process) {\n participant = findParticipant(elements);\n\n // move children from process to first participant\n var processChildren = process.children.slice();\n\n modeling.moveElements(processChildren, { x: 0, y: 0 }, participant);\n }\n\n }, true);\n\n}\n\nCreateParticipantBehavior.$inject = [\n 'canvas',\n 'eventBus',\n 'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateParticipantBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n// helpers //////////\n\nfunction getParticipantBounds(shape, childrenBBox) {\n childrenBBox = {\n width: childrenBBox.width + HORIZONTAL_PARTICIPANT_PADDING * 2 + PARTICIPANT_BORDER_WIDTH,\n height: childrenBBox.height + VERTICAL_PARTICIPANT_PADDING * 2\n };\n\n var width = Math.max(shape.width, childrenBBox.width),\n height = Math.max(shape.height, childrenBBox.height);\n\n return {\n x: -width / 2,\n y: -height / 2,\n width: width,\n height: height\n };\n}\n\nfunction getParticipantCreateConstraints(shape, childrenBBox) {\n childrenBBox = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_6__.asTRBL)(childrenBBox);\n\n return {\n bottom: childrenBBox.top + shape.height / 2 - VERTICAL_PARTICIPANT_PADDING,\n left: childrenBBox.right - shape.width / 2 + HORIZONTAL_PARTICIPANT_PADDING,\n top: childrenBBox.bottom - shape.height / 2 + VERTICAL_PARTICIPANT_PADDING,\n right: childrenBBox.left + shape.width / 2 - HORIZONTAL_PARTICIPANT_PADDING - PARTICIPANT_BORDER_WIDTH\n };\n}\n\nfunction isConnection(element) {\n return !!element.waypoints;\n}\n\nfunction findParticipant(elements) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.find)(elements, function(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:Participant');\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js ***! \*********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DataInputAssociationBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n\n\n\nvar TARGET_REF_PLACEHOLDER_NAME = '__targetRef_placeholder';\n\n\n/**\n * This behavior makes sure we always set a fake\n * DataInputAssociation#targetRef as demanded by the BPMN 2.0\n * XSD schema.\n *\n * The reference is set to a bpmn:Property{ name: '__targetRef_placeholder' }\n * which is created on the fly and cleaned up afterwards if not needed\n * anymore.\n *\n * @param {EventBus} eventBus\n * @param {BpmnFactory} bpmnFactory\n */\nfunction DataInputAssociationBehavior(eventBus, bpmnFactory) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n this.executed([\n 'connection.create',\n 'connection.delete',\n 'connection.move',\n 'connection.reconnect'\n ], ifDataInputAssociation(fixTargetRef));\n\n this.reverted([\n 'connection.create',\n 'connection.delete',\n 'connection.move',\n 'connection.reconnect'\n ], ifDataInputAssociation(fixTargetRef));\n\n\n function usesTargetRef(element, targetRef, removedConnection) {\n\n var inputAssociations = element.get('dataInputAssociations');\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(inputAssociations, function(association) {\n return association !== removedConnection &&\n association.targetRef === targetRef;\n });\n }\n\n function getTargetRef(element, create) {\n\n var properties = element.get('properties');\n\n var targetRefProp = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(properties, function(p) {\n return p.name === TARGET_REF_PLACEHOLDER_NAME;\n });\n\n if (!targetRefProp && create) {\n targetRefProp = bpmnFactory.create('bpmn:Property', {\n name: TARGET_REF_PLACEHOLDER_NAME\n });\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(properties, targetRefProp);\n }\n\n return targetRefProp;\n }\n\n function cleanupTargetRef(element, connection) {\n\n var targetRefProp = getTargetRef(element);\n\n if (!targetRefProp) {\n return;\n }\n\n if (!usesTargetRef(element, targetRefProp, connection)) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(element.get('properties'), targetRefProp);\n }\n }\n\n /**\n * Make sure targetRef is set to a valid property or\n * `null` if the connection is detached.\n *\n * @param {Event} event\n */\n function fixTargetRef(event) {\n\n var context = event.context,\n connection = context.connection,\n connectionBo = connection.businessObject,\n target = connection.target,\n targetBo = target && target.businessObject,\n newTarget = context.newTarget,\n newTargetBo = newTarget && newTarget.businessObject,\n oldTarget = context.oldTarget || context.target,\n oldTargetBo = oldTarget && oldTarget.businessObject;\n\n var dataAssociation = connection.businessObject,\n targetRefProp;\n\n if (oldTargetBo && oldTargetBo !== targetBo) {\n cleanupTargetRef(oldTargetBo, connectionBo);\n }\n\n if (newTargetBo && newTargetBo !== targetBo) {\n cleanupTargetRef(newTargetBo, connectionBo);\n }\n\n if (targetBo) {\n targetRefProp = getTargetRef(targetBo, true);\n dataAssociation.targetRef = targetRefProp;\n } else {\n dataAssociation.targetRef = null;\n }\n }\n}\n\nDataInputAssociationBehavior.$inject = [\n 'eventBus',\n 'bpmnFactory'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DataInputAssociationBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Only call the given function when the event\n * touches a bpmn:DataInputAssociation.\n *\n * @param {Function} fn\n * @return {Function}\n */\nfunction ifDataInputAssociation(fn) {\n\n return function(event) {\n var context = event.context,\n connection = context.connection;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(connection, 'bpmn:DataInputAssociation')) {\n return fn(event);\n }\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js": /*!**********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DataStoreBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _cmd_UpdateSemanticParentHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../cmd/UpdateSemanticParentHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * BPMN specific data store behavior\r\n */\r\nfunction DataStoreBehavior(\r\n canvas, commandStack, elementRegistry,\r\n eventBus) {\r\n\r\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\r\n\r\n commandStack.registerHandler('dataStore.updateContainment', _cmd_UpdateSemanticParentHandler__WEBPACK_IMPORTED_MODULE_2__.default);\r\n\r\n function getFirstParticipantWithProcessRef() {\r\n return elementRegistry.filter(function(element) {\r\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:Participant') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(element).processRef;\r\n })[0];\r\n }\r\n\r\n function getDataStores(element) {\r\n return element.children.filter(function(child) {\r\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(child, 'bpmn:DataStoreReference') && !child.labelTarget;\r\n });\r\n }\r\n\r\n function updateDataStoreParent(dataStore, newDataStoreParent) {\r\n var dataStoreBo = dataStore.businessObject || dataStore;\r\n\r\n newDataStoreParent = newDataStoreParent || getFirstParticipantWithProcessRef();\r\n\r\n if (newDataStoreParent) {\r\n var newDataStoreParentBo = newDataStoreParent.businessObject || newDataStoreParent;\r\n\r\n commandStack.execute('dataStore.updateContainment', {\r\n dataStoreBo: dataStoreBo,\r\n newSemanticParent: newDataStoreParentBo.processRef || newDataStoreParentBo,\r\n newDiParent: newDataStoreParentBo.di\r\n });\r\n }\r\n }\r\n\r\n\r\n // disable auto-resize for data stores\r\n this.preExecute('shape.create', function(event) {\r\n\r\n var context = event.context,\r\n shape = context.shape;\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference') &&\r\n shape.type !== 'label') {\r\n\r\n if (!context.hints) {\r\n context.hints = {};\r\n }\r\n\r\n // prevent auto resizing\r\n context.hints.autoResize = false;\r\n }\r\n });\r\n\r\n\r\n // disable auto-resize for data stores\r\n this.preExecute('elements.move', function(event) {\r\n var context = event.context,\r\n shapes = context.shapes;\r\n\r\n var dataStoreReferences = shapes.filter(function(shape) {\r\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference');\r\n });\r\n\r\n if (dataStoreReferences.length) {\r\n if (!context.hints) {\r\n context.hints = {};\r\n }\r\n\r\n // prevent auto resizing for data store references\r\n context.hints.autoResize = shapes.filter(function(shape) {\r\n return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference');\r\n });\r\n }\r\n });\r\n\r\n\r\n // update parent on data store created\r\n this.postExecute('shape.create', function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n parent = shape.parent;\r\n\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference') &&\r\n shape.type !== 'label' &&\r\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(parent, 'bpmn:Collaboration')) {\r\n\r\n updateDataStoreParent(shape);\r\n }\r\n });\r\n\r\n\r\n // update parent on data store moved\r\n this.postExecute('shape.move', function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n oldParent = context.oldParent,\r\n parent = shape.parent;\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldParent, 'bpmn:Collaboration')) {\r\n\r\n // do nothing if not necessary\r\n return;\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference') &&\r\n shape.type !== 'label' &&\r\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(parent, 'bpmn:Collaboration')) {\r\n\r\n var participant = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldParent, 'bpmn:Participant') ?\r\n oldParent :\r\n getAncestor(oldParent, 'bpmn:Participant');\r\n\r\n updateDataStoreParent(shape, participant);\r\n }\r\n });\r\n\r\n\r\n // update data store parents on participant or subprocess deleted\r\n this.postExecute('shape.delete', function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n rootElement = canvas.getRootElement();\r\n\r\n if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(shape, [ 'bpmn:Participant', 'bpmn:SubProcess' ])\r\n && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(rootElement, 'bpmn:Collaboration')) {\r\n getDataStores(rootElement)\r\n .filter(function(dataStore) {\r\n return isDescendant(dataStore, shape);\r\n })\r\n .forEach(function(dataStore) {\r\n updateDataStoreParent(dataStore);\r\n });\r\n }\r\n });\r\n\r\n // update data store parents on collaboration -> process\r\n this.postExecute('canvas.updateRoot', function(event) {\r\n var context = event.context,\r\n oldRoot = context.oldRoot,\r\n newRoot = context.newRoot;\r\n\r\n var dataStores = getDataStores(oldRoot);\r\n\r\n dataStores.forEach(function(dataStore) {\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newRoot, 'bpmn:Process')) {\r\n updateDataStoreParent(dataStore, newRoot);\r\n }\r\n\r\n });\r\n });\r\n}\r\n\r\nDataStoreBehavior.$inject = [\r\n 'canvas',\r\n 'commandStack',\r\n 'elementRegistry',\r\n 'eventBus',\r\n];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DataStoreBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n\r\n// helpers //////////\r\n\r\nfunction isDescendant(descendant, ancestor) {\r\n var descendantBo = descendant.businessObject || descendant,\r\n ancestorBo = ancestor.businessObject || ancestor;\r\n\r\n while (descendantBo.$parent) {\r\n if (descendantBo.$parent === ancestorBo.processRef || ancestorBo) {\r\n return true;\r\n }\r\n\r\n descendantBo = descendantBo.$parent;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getAncestor(element, type) {\r\n\r\n while (element.parent) {\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, type)) {\r\n return element.parent;\r\n }\r\n\r\n element = element.parent;\r\n }\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DeleteLaneBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * BPMN specific delete lane behavior\n */\nfunction DeleteLaneBehavior(eventBus, modeling, spaceTool) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n function compensateLaneDelete(shape, oldParent) {\n\n var siblings = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getChildLanes)(oldParent);\n\n var topAffected = [];\n var bottomAffected = [];\n\n (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__.eachElement)(siblings, function(element) {\n\n if (element.y > shape.y) {\n bottomAffected.push(element);\n } else {\n topAffected.push(element);\n }\n\n return element.children;\n });\n\n if (!siblings.length) {\n return;\n }\n\n var offset;\n\n if (bottomAffected.length && topAffected.length) {\n offset = shape.height / 2;\n } else {\n offset = shape.height;\n }\n\n var topAdjustments,\n bottomAdjustments;\n\n if (topAffected.length) {\n topAdjustments = spaceTool.calculateAdjustments(\n topAffected, 'y', offset, shape.y - 10);\n\n spaceTool.makeSpace(\n topAdjustments.movingShapes,\n topAdjustments.resizingShapes,\n { x: 0, y: offset }, 's');\n }\n\n if (bottomAffected.length) {\n bottomAdjustments = spaceTool.calculateAdjustments(\n bottomAffected, 'y', -offset, shape.y + shape.height + 10);\n\n spaceTool.makeSpace(\n bottomAdjustments.movingShapes,\n bottomAdjustments.resizingShapes,\n { x: 0, y: -offset }, 'n');\n }\n }\n\n\n /**\n * Adjust sizes of other lanes after lane deletion\n */\n this.postExecuted('shape.delete', LOW_PRIORITY, function(event) {\n\n var context = event.context,\n hints = context.hints,\n shape = context.shape,\n oldParent = context.oldParent;\n\n // only compensate lane deletes\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(shape, 'bpmn:Lane')) {\n return;\n }\n\n // compensate root deletes only\n if (hints && hints.nested) {\n return;\n }\n\n compensateLaneDelete(shape, oldParent);\n });\n}\n\nDeleteLaneBehavior.$inject = [\n 'eventBus',\n 'modeling',\n 'spaceTool'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DeleteLaneBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DetachEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * Replace boundary event with intermediate event when creating or moving results in detached event.\n */\nfunction DetachEventBehavior(bpmnReplace, injector) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n this._bpmnReplace = bpmnReplace;\n\n var self = this;\n\n this.postExecuted('elements.create', LOW_PRIORITY, function(context) {\n var elements = context.elements;\n\n elements.filter(function(shape) {\n var host = shape.host;\n\n return shouldReplace(shape, host);\n }).map(function(shape) {\n return elements.indexOf(shape);\n }).forEach(function(index) {\n context.elements[ index ] = self.replaceShape(elements[ index ]);\n });\n }, true);\n\n this.preExecute('elements.move', LOW_PRIORITY, function(context) {\n var shapes = context.shapes,\n newHost = context.newHost;\n\n shapes.forEach(function(shape, index) {\n var host = shape.host;\n\n if (shouldReplace(shape, includes(shapes, host) ? host : newHost)) {\n shapes[ index ] = self.replaceShape(shape);\n }\n });\n }, true);\n}\n\nDetachEventBehavior.$inject = [\n 'bpmnReplace',\n 'injector'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DetachEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nDetachEventBehavior.prototype.replaceShape = function(shape) {\n var eventDefinition = getEventDefinition(shape),\n intermediateEvent;\n\n if (eventDefinition) {\n intermediateEvent = {\n type: 'bpmn:IntermediateCatchEvent',\n eventDefinitionType: eventDefinition.$type\n };\n } else {\n intermediateEvent = {\n type: 'bpmn:IntermediateThrowEvent'\n };\n }\n\n return this._bpmnReplace.replaceElement(shape, intermediateEvent, { layoutConnection: false });\n};\n\n\n// helpers //////////\n\nfunction getEventDefinition(element) {\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element),\n eventDefinitions = businessObject.eventDefinitions;\n\n return eventDefinitions && eventDefinitions[0];\n}\n\nfunction shouldReplace(shape, host) {\n return !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(shape) && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:BoundaryEvent') && !host;\n}\n\nfunction includes(array, item) {\n return array.indexOf(item) !== -1;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DropOnFlowBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_LineIntersection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/LineIntersection */ \"./node_modules/diagram-js/lib/util/LineIntersection.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction DropOnFlowBehavior(eventBus, bpmnRules, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n /**\n * Reconnect start / end of a connection after\n * dropping an element on a flow.\n */\n\n function insertShape(shape, targetFlow, positionOrBounds) {\n var waypoints = targetFlow.waypoints,\n waypointsBefore,\n waypointsAfter,\n dockingPoint,\n source,\n target,\n incomingConnection,\n outgoingConnection,\n oldOutgoing = shape.outgoing.slice(),\n oldIncoming = shape.incoming.slice();\n\n var mid;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isNumber)(positionOrBounds.width)) {\n mid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(positionOrBounds);\n } else {\n mid = positionOrBounds;\n }\n\n var intersection = (0,diagram_js_lib_util_LineIntersection__WEBPACK_IMPORTED_MODULE_4__.getApproxIntersection)(waypoints, mid);\n\n if (intersection) {\n waypointsBefore = waypoints.slice(0, intersection.index);\n waypointsAfter = waypoints.slice(intersection.index + (intersection.bendpoint ? 1 : 0));\n\n // due to inaccuracy intersection might have been found\n if (!waypointsBefore.length || !waypointsAfter.length) {\n return;\n }\n\n dockingPoint = intersection.bendpoint ? waypoints[intersection.index] : mid;\n\n // if last waypointBefore is inside shape's bounds, ignore docking point\n if (!isPointInsideBBox(shape, waypointsBefore[waypointsBefore.length-1])) {\n waypointsBefore.push(copy(dockingPoint));\n }\n\n // if first waypointAfter is inside shape's bounds, ignore docking point\n if (!isPointInsideBBox(shape, waypointsAfter[0])) {\n waypointsAfter.unshift(copy(dockingPoint));\n }\n }\n\n source = targetFlow.source;\n target = targetFlow.target;\n\n if (bpmnRules.canConnect(source, shape, targetFlow)) {\n\n // reconnect source -> inserted shape\n modeling.reconnectEnd(targetFlow, shape, waypointsBefore || mid);\n\n incomingConnection = targetFlow;\n }\n\n if (bpmnRules.canConnect(shape, target, targetFlow)) {\n\n if (!incomingConnection) {\n\n // reconnect inserted shape -> end\n modeling.reconnectStart(targetFlow, shape, waypointsAfter || mid);\n\n outgoingConnection = targetFlow;\n } else {\n outgoingConnection = modeling.connect(\n shape, target, { type: targetFlow.type, waypoints: waypointsAfter }\n );\n }\n }\n\n var duplicateConnections = [].concat(\n\n incomingConnection && (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(oldIncoming, function(connection) {\n return connection.source === incomingConnection.source;\n }) || [],\n\n outgoingConnection && (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(oldOutgoing, function(connection) {\n return connection.target === outgoingConnection.target;\n }) || []\n );\n\n if (duplicateConnections.length) {\n modeling.removeElements(duplicateConnections);\n }\n }\n\n this.preExecute('elements.move', function(context) {\n\n var newParent = context.newParent,\n shapes = context.shapes,\n delta = context.delta,\n shape = shapes[0];\n\n if (!shape || !newParent) {\n return;\n }\n\n // if the new parent is a connection,\n // change it to the new parent's parent\n if (newParent && newParent.waypoints) {\n context.newParent = newParent = newParent.parent;\n }\n\n var shapeMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(shape);\n var newShapeMid = {\n x: shapeMid.x + delta.x,\n y: shapeMid.y + delta.y\n };\n\n // find a connection which intersects with the\n // element's mid point\n var connection = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(newParent.children, function(element) {\n var canInsert = bpmnRules.canInsert(shapes, element);\n\n return canInsert && (0,diagram_js_lib_util_LineIntersection__WEBPACK_IMPORTED_MODULE_4__.getApproxIntersection)(element.waypoints, newShapeMid);\n });\n\n if (connection) {\n context.targetFlow = connection;\n context.position = newShapeMid;\n }\n\n }, true);\n\n this.postExecuted('elements.move', function(context) {\n\n var shapes = context.shapes,\n targetFlow = context.targetFlow,\n position = context.position;\n\n if (targetFlow) {\n insertShape(shapes[0], targetFlow, position);\n }\n\n }, true);\n\n this.preExecute('shape.create', function(context) {\n\n var parent = context.parent,\n shape = context.shape;\n\n if (bpmnRules.canInsert(shape, parent)) {\n context.targetFlow = parent;\n context.parent = parent.parent;\n }\n }, true);\n\n this.postExecuted('shape.create', function(context) {\n\n var shape = context.shape,\n targetFlow = context.targetFlow,\n positionOrBounds = context.position;\n\n if (targetFlow) {\n insertShape(shape, targetFlow, positionOrBounds);\n }\n }, true);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DropOnFlowBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nDropOnFlowBehavior.$inject = [\n 'eventBus',\n 'bpmnRules',\n 'modeling'\n];\n\n\n// helpers /////////////////////\n\nfunction isPointInsideBBox(bbox, point) {\n var x = point.x,\n y = point.y;\n\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n}\n\nfunction copy(obj) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, obj);\n}\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js ***! \******************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EventBasedGatewayBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\nfunction EventBasedGatewayBehavior(eventBus, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n /**\n * Remove existing sequence flows of event-based target before connecting\n * from event-based gateway.\n */\n this.preExecuted('connection.create', function(event) {\n\n var context = event.context,\n source = context.source,\n target = context.target,\n existingIncomingConnections = target.incoming.slice();\n\n if (context.hints && context.hints.createElementsBehavior === false) {\n return;\n }\n\n if (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:EventBasedGateway') &&\n target.incoming.length\n ) {\n\n existingIncomingConnections.filter(isSequenceFlow)\n .forEach(function(sequenceFlow) {\n modeling.removeConnection(sequenceFlow);\n });\n }\n });\n\n /**\n * After replacing shape with event-based gateway, remove incoming sequence\n * flows of event-based targets which do not belong to event-based gateway\n * source.\n */\n this.preExecuted('shape.replace', function(event) {\n\n var newShape = event.context.newShape,\n newShapeTargets,\n newShapeTargetsIncomingSequenceFlows;\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(newShape, 'bpmn:EventBasedGateway')) {\n return;\n }\n\n newShapeTargets = newShape.outgoing.filter(isSequenceFlow)\n .map(function(sequenceFlow) {\n return sequenceFlow.target;\n });\n\n newShapeTargetsIncomingSequenceFlows = newShapeTargets.reduce(function(sequenceFlows, target) {\n var incomingSequenceFlows = target.incoming.filter(isSequenceFlow);\n\n return sequenceFlows.concat(incomingSequenceFlows);\n }, []);\n\n newShapeTargetsIncomingSequenceFlows.forEach(function(sequenceFlow) {\n if (sequenceFlow.source !== newShape) {\n modeling.removeConnection(sequenceFlow);\n }\n });\n });\n}\n\nEventBasedGatewayBehavior.$inject = [\n 'eventBus',\n 'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(EventBasedGatewayBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n\n// helpers //////////////////////\n\nfunction isSequenceFlow(connection) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FixHoverBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGH_PRIORITY = 1500;\r\nvar HIGHEST_PRIORITY = 2000;\r\n\r\n\r\n/**\r\n * Correct hover targets in certain situations to improve diagram interaction.\r\n *\r\n * @param {ElementRegistry} elementRegistry\r\n * @param {EventBus} eventBus\r\n * @param {Canvas} canvas\r\n */\r\nfunction FixHoverBehavior(elementRegistry, eventBus, canvas) {\r\n\r\n eventBus.on([\r\n 'create.hover',\r\n 'create.move',\r\n 'create.out',\r\n 'create.end',\r\n 'shape.move.hover',\r\n 'shape.move.move',\r\n 'shape.move.out',\r\n 'shape.move.end'\r\n ], HIGH_PRIORITY, function(event) {\r\n var context = event.context,\r\n shape = context.shape || event.shape,\r\n hover = event.hover;\r\n\r\n // ensure elements are not dropped onto a bpmn:Lane but onto\r\n // the underlying bpmn:Participant\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(hover, 'bpmn:Lane') && !(0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(shape, [ 'bpmn:Lane', 'bpmn:Participant' ])) {\r\n event.hover = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(hover);\r\n event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n }\r\n\r\n var rootElement = canvas.getRootElement();\r\n\r\n // ensure bpmn:Group and label elements are dropped\r\n // always onto the root\r\n if (hover !== rootElement && (shape.labelTarget || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Group'))) {\r\n event.hover = rootElement;\r\n event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n }\r\n });\r\n\r\n eventBus.on([\r\n 'connect.hover',\r\n 'connect.out',\r\n 'connect.end',\r\n 'connect.cleanup',\r\n 'global-connect.hover',\r\n 'global-connect.out',\r\n 'global-connect.end',\r\n 'global-connect.cleanup'\r\n ], HIGH_PRIORITY, function(event) {\r\n var hover = event.hover;\r\n\r\n // ensure connections start/end on bpmn:Participant,\r\n // not the underlying bpmn:Lane\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(hover, 'bpmn:Lane')) {\r\n event.hover = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(hover) || hover;\r\n event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n }\r\n });\r\n\r\n\r\n eventBus.on([\r\n 'bendpoint.move.hover'\r\n ], HIGH_PRIORITY, function(event) {\r\n var context = event.context,\r\n hover = event.hover,\r\n type = context.type;\r\n\r\n // ensure reconnect start/end on bpmn:Participant,\r\n // not the underlying bpmn:Lane\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(hover, 'bpmn:Lane') && /reconnect/.test(type)) {\r\n event.hover = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(hover) || hover;\r\n event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n }\r\n });\r\n\r\n\r\n eventBus.on([\r\n 'connect.start'\r\n ], HIGH_PRIORITY, function(event) {\r\n var context = event.context,\r\n start = context.start;\r\n\r\n // ensure connect start on bpmn:Participant,\r\n // not the underlying bpmn:Lane\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(start, 'bpmn:Lane')) {\r\n context.start = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(start) || start;\r\n }\r\n });\r\n\r\n\r\n // allow movement of participants from lanes\r\n eventBus.on('shape.move.start', HIGHEST_PRIORITY, function(event) {\r\n var shape = event.shape;\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane')) {\r\n event.shape = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(shape) || shape;\r\n }\r\n });\r\n\r\n}\r\n\r\nFixHoverBehavior.$inject = [\r\n 'elementRegistry',\r\n 'eventBus',\r\n 'canvas'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js": /*!******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GroupBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_CategoryUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/CategoryUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js\");\n\n\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * BPMN specific Group behavior\n */\nfunction GroupBehavior(\n bpmnFactory,\n canvas,\n elementRegistry,\n eventBus,\n injector,\n moddleCopy\n) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n /**\n * Gets process definitions\n *\n * @return {ModdleElement} definitions\n */\n function getDefinitions() {\n var rootElement = canvas.getRootElement(),\n businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(rootElement);\n\n return businessObject.$parent;\n }\n\n /**\n * Removes a referenced category value for a given group shape\n *\n * @param {djs.model.Shape} shape\n */\n function removeReferencedCategoryValue(shape) {\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape),\n categoryValue = businessObject.categoryValueRef;\n\n if (!categoryValue) {\n return;\n }\n\n var category = categoryValue.$parent;\n\n if (!categoryValue) {\n return;\n }\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(category.categoryValue, categoryValue);\n\n // cleanup category if it is empty\n if (category && !category.categoryValue.length) {\n removeCategory(category);\n }\n }\n\n /**\n * Removes a given category from the definitions\n *\n * @param {ModdleElement} category\n */\n function removeCategory(category) {\n\n var definitions = getDefinitions();\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(definitions.get('rootElements'), category);\n }\n\n /**\n * Returns all group element in the current registry\n *\n * @return {Array} a list of group shapes\n */\n function getGroupElements() {\n return elementRegistry.filter(function(e) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(e, 'bpmn:Group');\n });\n }\n\n /**\n * Returns true if given categoryValue is referenced in one of the given elements\n *\n * @param {Array} elements\n * @param {ModdleElement} categoryValue\n * @return {boolean}\n */\n function isReferenced(elements, categoryValue) {\n return elements.some(function(e) {\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(e);\n\n return businessObject.categoryValueRef\n && businessObject.categoryValueRef === categoryValue;\n });\n }\n\n /**\n * remove referenced category + value when group was deleted\n */\n this.executed('shape.delete', function(event) {\n\n var context = event.context,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Group')) {\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape),\n categoryValueRef = businessObject.categoryValueRef,\n groupElements = getGroupElements();\n\n if (!isReferenced(groupElements, categoryValueRef)) {\n removeReferencedCategoryValue(shape);\n }\n }\n });\n\n /**\n * re-attach removed category\n */\n this.reverted('shape.delete', function(event) {\n\n var context = event.context,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Group')) {\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape),\n categoryValueRef = businessObject.categoryValueRef,\n definitions = getDefinitions(),\n category = categoryValueRef ? categoryValueRef.$parent : null;\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(category.get('categoryValue'), categoryValueRef);\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(definitions.get('rootElements'), category);\n }\n });\n\n /**\n * create new category + value when group was created\n */\n this.execute('shape.create', function(event) {\n var context = event.context,\n shape = context.shape,\n businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape);\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(businessObject, 'bpmn:Group') && !businessObject.categoryValueRef) {\n\n var definitions = getDefinitions(),\n categoryValue = (0,_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_4__.createCategoryValue)(definitions, bpmnFactory);\n\n // link the reference to the Group\n businessObject.categoryValueRef = categoryValue;\n }\n });\n\n\n this.revert('shape.create', function(event) {\n\n var context = event.context,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Group')) {\n removeReferencedCategoryValue(shape);\n\n delete (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape).categoryValueRef;\n\n }\n });\n\n // copy bpmn:CategoryValue when copying element\n eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) {\n var property = context.property,\n categoryValue;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(property, 'bpmn:CategoryValue')) {\n categoryValue = (0,_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_4__.createCategoryValue)(getDefinitions(), bpmnFactory);\n\n // return copy of category\n return moddleCopy.copyElement(property, categoryValue);\n }\n });\n\n}\n\nGroupBehavior.$inject = [\n 'bpmnFactory',\n 'canvas',\n 'elementRegistry',\n 'eventBus',\n 'injector',\n 'moddleCopy'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(GroupBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ImportDockingFix)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_LineIntersect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/LineIntersect */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js\");\n\n\n\n\n\n/**\n * Fix broken dockings after DI imports.\n *\n * @param {EventBus} eventBus\n */\nfunction ImportDockingFix(eventBus) {\n\n function adjustDocking(startPoint, nextPoint, elementMid) {\n\n var elementTop = {\n x: elementMid.x,\n y: elementMid.y - 50\n };\n\n var elementLeft = {\n x: elementMid.x - 50,\n y: elementMid.y\n };\n\n var verticalIntersect = (0,_util_LineIntersect__WEBPACK_IMPORTED_MODULE_0__.default)(startPoint, nextPoint, elementMid, elementTop),\n horizontalIntersect = (0,_util_LineIntersect__WEBPACK_IMPORTED_MODULE_0__.default)(startPoint, nextPoint, elementMid, elementLeft);\n\n // original is horizontal or vertical center cross intersection\n var centerIntersect;\n\n if (verticalIntersect && horizontalIntersect) {\n if (getDistance(verticalIntersect, elementMid) > getDistance(horizontalIntersect, elementMid)) {\n centerIntersect = horizontalIntersect;\n } else {\n centerIntersect = verticalIntersect;\n }\n } else {\n centerIntersect = verticalIntersect || horizontalIntersect;\n }\n\n startPoint.original = centerIntersect;\n }\n\n function fixDockings(connection) {\n var waypoints = connection.waypoints;\n\n adjustDocking(\n waypoints[0],\n waypoints[1],\n (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(connection.source)\n );\n\n adjustDocking(\n waypoints[waypoints.length - 1],\n waypoints[waypoints.length - 2],\n (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(connection.target)\n );\n }\n\n eventBus.on('bpmnElement.added', function(e) {\n\n var element = e.element;\n\n if (element.waypoints) {\n fixDockings(element);\n }\n });\n}\n\nImportDockingFix.$inject = [\n 'eventBus'\n];\n\n\n// helpers //////////////////////\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js": /*!********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ IsHorizontalFix)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\n\n\n\n\n\n\n\n/**\n * A component that makes sure that each created or updated\n * Pool and Lane is assigned an isHorizontal property set to true.\n *\n * @param {EventBus} eventBus\n */\nfunction IsHorizontalFix(eventBus) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n var elementTypesToUpdate = [\n 'bpmn:Participant',\n 'bpmn:Lane'\n ];\n\n this.executed([ 'shape.move', 'shape.create', 'shape.resize' ], function(event) {\n var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(event.context.shape);\n\n if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(bo, elementTypesToUpdate) && !bo.di.get('isHorizontal')) {\n\n // set attribute directly to avoid modeling#updateProperty side effects\n bo.di.set('isHorizontal', true);\n }\n });\n\n}\n\nIsHorizontalFix.$inject = [ 'eventBus' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(IsHorizontalFix, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js": /*!******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LabelBehavior),\n/* harmony export */ \"getReferencePointDelta\": () => (/* binding */ getReferencePointDelta),\n/* harmony export */ \"getReferencePoint\": () => (/* binding */ getReferencePoint),\n/* harmony export */ \"asEdges\": () => (/* binding */ asEdges)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var _label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_LabelLayoutUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/LabelLayoutUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_AttachUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! diagram-js/lib/util/AttachUtil */ \"./node_modules/diagram-js/lib/util/AttachUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_util_PositionUtil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/util/PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/* harmony import */ var _util_GeometricUtil__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./util/GeometricUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DEFAULT_LABEL_DIMENSIONS = {\n width: 90,\n height: 20\n};\n\nvar NAME_PROPERTY = 'name';\nvar TEXT_PROPERTY = 'text';\n\n/**\n * A component that makes sure that external labels are added\n * together with respective elements and properly updated (DI wise)\n * during move.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {BpmnFactory} bpmnFactory\n * @param {TextRenderer} textRenderer\n */\nfunction LabelBehavior(\n eventBus, modeling, bpmnFactory,\n textRenderer) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n // update label if name property was updated\n this.postExecute('element.updateProperties', function(e) {\n var context = e.context,\n element = context.element,\n properties = context.properties;\n\n if (NAME_PROPERTY in properties) {\n modeling.updateLabel(element, properties[NAME_PROPERTY]);\n }\n\n if (TEXT_PROPERTY in properties\n && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:TextAnnotation')) {\n\n var newBounds = textRenderer.getTextAnnotationBounds(\n {\n x: element.x,\n y: element.y,\n width: element.width,\n height: element.height\n },\n properties[TEXT_PROPERTY] || ''\n );\n\n modeling.updateLabel(element, properties.text, newBounds);\n }\n });\n\n // create label shape after shape/connection was created\n this.postExecute([ 'shape.create', 'connection.create' ], function(e) {\n var context = e.context,\n hints = context.hints || {};\n\n if (hints.createElementsBehavior === false) {\n return;\n }\n\n var element = context.shape || context.connection,\n businessObject = element.businessObject;\n\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(element) || !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(element)) {\n return;\n }\n\n // only create label if attribute available\n if (!(0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.getLabel)(element)) {\n return;\n }\n\n var labelCenter = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.getExternalLabelMid)(element);\n\n // we don't care about x and y\n var labelDimensions = textRenderer.getExternalLabelBounds(\n DEFAULT_LABEL_DIMENSIONS,\n (0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.getLabel)(element)\n );\n\n modeling.createLabel(element, labelCenter, {\n id: businessObject.id + '_label',\n businessObject: businessObject,\n width: labelDimensions.width,\n height: labelDimensions.height\n });\n });\n\n // update label after label shape was deleted\n this.postExecute('shape.delete', function(event) {\n var context = event.context,\n labelTarget = context.labelTarget,\n hints = context.hints || {};\n\n // check if label\n if (labelTarget && hints.unsetLabel !== false) {\n modeling.updateLabel(labelTarget, null, null, { removeShape: false });\n }\n });\n\n // update di information on label creation\n this.postExecute([ 'label.create' ], function(event) {\n\n var context = event.context,\n element = context.shape,\n businessObject,\n di;\n\n // we want to trigger on real labels only\n if (!element.labelTarget) {\n return;\n }\n\n // we want to trigger on BPMN elements only\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element.labelTarget || element, 'bpmn:BaseElement')) {\n return;\n }\n\n businessObject = element.businessObject,\n di = businessObject.di;\n\n\n if (!di.label) {\n di.label = bpmnFactory.create('bpmndi:BPMNLabel', {\n bounds: bpmnFactory.create('dc:Bounds')\n });\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.assign)(di.label.bounds, {\n x: element.x,\n y: element.y,\n width: element.width,\n height: element.height\n });\n });\n\n function getVisibleLabelAdjustment(event) {\n\n var context = event.context,\n connection = context.connection,\n label = connection.label,\n hints = (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.assign)({}, context.hints),\n newWaypoints = context.newWaypoints || connection.waypoints,\n oldWaypoints = context.oldWaypoints;\n\n\n if (typeof hints.startChanged === 'undefined') {\n hints.startChanged = !!hints.connectionStart;\n }\n\n if (typeof hints.endChanged === 'undefined') {\n hints.endChanged = !!hints.connectionEnd;\n }\n\n return (0,_util_LabelLayoutUtil__WEBPACK_IMPORTED_MODULE_6__.getLabelAdjustment)(label, newWaypoints, oldWaypoints, hints);\n }\n\n this.postExecute([\n 'connection.layout',\n 'connection.updateWaypoints'\n ], function(event) {\n var context = event.context,\n hints = context.hints || {};\n\n if (hints.labelBehavior === false) {\n return;\n }\n\n var connection = context.connection,\n label = connection.label,\n labelAdjustment;\n\n // handle missing label as well as the case\n // that the label parent does not exist (yet),\n // because it is being pasted / created via multi element create\n //\n // Cf. https://github.com/bpmn-io/bpmn-js/pull/1227\n if (!label || !label.parent) {\n return;\n }\n\n labelAdjustment = getVisibleLabelAdjustment(event);\n\n modeling.moveShape(label, labelAdjustment);\n });\n\n\n // keep label position on shape replace\n this.postExecute([ 'shape.replace' ], function(event) {\n var context = event.context,\n newShape = context.newShape,\n oldShape = context.oldShape;\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(newShape);\n\n if (businessObject\n && (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(businessObject)\n && oldShape.label\n && newShape.label) {\n newShape.label.x = oldShape.label.x;\n newShape.label.y = oldShape.label.y;\n }\n });\n\n\n // move external label after resizing\n this.postExecute('shape.resize', function(event) {\n\n var context = event.context,\n shape = context.shape,\n newBounds = context.newBounds,\n oldBounds = context.oldBounds;\n\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.hasExternalLabel)(shape)) {\n\n var label = shape.label,\n labelMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_7__.getMid)(label),\n edges = asEdges(oldBounds);\n\n // get nearest border point to label as reference point\n var referencePoint = getReferencePoint(labelMid, edges);\n\n var delta = getReferencePointDelta(referencePoint, oldBounds, newBounds);\n\n modeling.moveShape(label, delta);\n\n }\n\n });\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(LabelBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nLabelBehavior.$inject = [\n 'eventBus',\n 'modeling',\n 'bpmnFactory',\n 'textRenderer'\n];\n\n// helpers //////////////////////\n\n/**\n * Calculates a reference point delta relative to a new position\n * of a certain element's bounds\n *\n * @param {Point} point\n * @param {Bounds} oldBounds\n * @param {Bounds} newBounds\n *\n * @return {Delta} delta\n */\nfunction getReferencePointDelta(referencePoint, oldBounds, newBounds) {\n\n var newReferencePoint = (0,diagram_js_lib_util_AttachUtil__WEBPACK_IMPORTED_MODULE_8__.getNewAttachPoint)(referencePoint, oldBounds, newBounds);\n\n return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_7__.roundPoint)((0,diagram_js_lib_util_PositionUtil__WEBPACK_IMPORTED_MODULE_9__.delta)(newReferencePoint, referencePoint));\n}\n\n/**\n * Generates the nearest point (reference point) for a given point\n * onto given set of lines\n *\n * @param {Array} lines\n * @param {Point} point\n *\n * @param {Point}\n */\nfunction getReferencePoint(point, lines) {\n\n if (!lines.length) {\n return;\n }\n\n var nearestLine = getNearestLine(point, lines);\n\n return (0,_util_GeometricUtil__WEBPACK_IMPORTED_MODULE_10__.perpendicularFoot)(point, nearestLine);\n}\n\n/**\n * Convert the given bounds to a lines array containing all edges\n *\n * @param {Bounds|Point} bounds\n *\n * @return Array\n */\nfunction asEdges(bounds) {\n return [\n [ // top\n {\n x: bounds.x,\n y: bounds.y\n },\n {\n x: bounds.x + (bounds.width || 0),\n y: bounds.y\n }\n ],\n [ // right\n {\n x: bounds.x + (bounds.width || 0),\n y: bounds.y\n },\n {\n x: bounds.x + (bounds.width || 0),\n y: bounds.y + (bounds.height || 0)\n }\n ],\n [ // bottom\n {\n x: bounds.x,\n y: bounds.y + (bounds.height || 0)\n },\n {\n x: bounds.x + (bounds.width || 0),\n y: bounds.y + (bounds.height || 0)\n }\n ],\n [ // left\n {\n x: bounds.x,\n y: bounds.y\n },\n {\n x: bounds.x,\n y: bounds.y + (bounds.height || 0)\n }\n ]\n ];\n}\n\n/**\n * Returns the nearest line for a given point by distance\n * @param {Point} point\n * @param Array lines\n *\n * @return Array\n */\nfunction getNearestLine(point, lines) {\n\n var distances = lines.map(function(l) {\n return {\n line: l,\n distance: (0,_util_GeometricUtil__WEBPACK_IMPORTED_MODULE_10__.getDistancePointLine)(point, l)\n };\n });\n\n var sorted = (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.sortBy)(distances, 'distance');\n\n return sorted[0].line;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js": /*!************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MessageFlowBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var diagram_js_lib_features_modeling_cmd_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * BPMN-specific message flow behavior.\r\n */\r\nfunction MessageFlowBehavior(eventBus, modeling) {\r\n\r\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\r\n\r\n this.postExecute('shape.replace', function(context) {\r\n var oldShape = context.oldShape,\r\n newShape = context.newShape;\r\n\r\n if (!isParticipantCollapse(oldShape, newShape)) {\r\n return;\r\n }\r\n\r\n var messageFlows = getMessageFlows(oldShape);\r\n\r\n messageFlows.incoming.forEach(function(incoming) {\r\n var anchor = (0,diagram_js_lib_features_modeling_cmd_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedTargetAnchor)(incoming, newShape, oldShape);\r\n\r\n modeling.reconnectEnd(incoming, newShape, anchor);\r\n });\r\n\r\n messageFlows.outgoing.forEach(function(outgoing) {\r\n var anchor = (0,diagram_js_lib_features_modeling_cmd_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedSourceAnchor)(outgoing, newShape, oldShape);\r\n\r\n modeling.reconnectStart(outgoing, newShape, anchor);\r\n });\r\n }, true);\r\n\r\n}\r\n\r\nMessageFlowBehavior.$inject = [ 'eventBus', 'modeling' ];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(MessageFlowBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n// helpers //////////\r\n\r\nfunction isParticipantCollapse(oldShape, newShape) {\r\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldShape, 'bpmn:Participant')\r\n && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(oldShape)\r\n && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newShape, 'bpmn:Participant')\r\n && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(newShape);\r\n}\r\n\r\nfunction getMessageFlows(parent) {\r\n var elements = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_5__.selfAndAllChildren)([ parent ], false);\r\n\r\n var incoming = [],\r\n outgoing = [];\r\n\r\n elements.forEach(function(element) {\r\n if (element === parent) {\r\n return;\r\n }\r\n\r\n element.incoming.forEach(function(connection) {\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(connection, 'bpmn:MessageFlow')) {\r\n incoming.push(connection);\r\n }\r\n });\r\n\r\n element.outgoing.forEach(function(connection) {\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(connection, 'bpmn:MessageFlow')) {\r\n outgoing.push(connection);\r\n }\r\n });\r\n }, []);\r\n\r\n return {\r\n incoming: incoming,\r\n outgoing: outgoing\r\n };\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ModelingFeedback)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\nvar COLLAB_ERR_MSG = 'flow elements must be children of pools/participants';\n\nfunction ModelingFeedback(eventBus, tooltips, translate) {\n\n function showError(position, message, timeout) {\n tooltips.add({\n position: {\n x: position.x + 5,\n y: position.y + 5\n },\n type: 'error',\n timeout: timeout || 2000,\n html: '
    ' + message + '
    '\n });\n }\n\n eventBus.on([ 'shape.move.rejected', 'create.rejected' ], function(event) {\n var context = event.context,\n shape = context.shape,\n target = context.target;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(target, 'bpmn:Collaboration') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:FlowNode')) {\n showError(event, translate(COLLAB_ERR_MSG));\n }\n });\n\n}\n\nModelingFeedback.$inject = [\n 'eventBus',\n 'tooltips',\n 'translate'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js": /*!**************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RemoveElementBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_LineIntersect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/LineIntersect */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js\");\n\n\n\n\n\n\n\n\n\nfunction RemoveElementBehavior(eventBus, bpmnRules, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n /**\n * Combine sequence flows when deleting an element\n * if there is one incoming and one outgoing\n * sequence flow\n */\n this.preExecute('shape.delete', function(e) {\n\n var shape = e.context.shape;\n\n // only handle [a] -> [shape] -> [b] patterns\n if (shape.incoming.length !== 1 || shape.outgoing.length !== 1) {\n return;\n }\n\n var inConnection = shape.incoming[0],\n outConnection = shape.outgoing[0];\n\n // only handle sequence flows\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(inConnection, 'bpmn:SequenceFlow') || !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(outConnection, 'bpmn:SequenceFlow')) {\n return;\n }\n\n if (bpmnRules.canConnect(inConnection.source, outConnection.target, inConnection)) {\n\n // compute new, combined waypoints\n var newWaypoints = getNewWaypoints(inConnection.waypoints, outConnection.waypoints);\n\n modeling.reconnectEnd(inConnection, outConnection.target, newWaypoints);\n }\n });\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RemoveElementBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nRemoveElementBehavior.$inject = [\n 'eventBus',\n 'bpmnRules',\n 'modeling'\n];\n\n\n// helpers //////////////////////\n\nfunction getDocking(point) {\n return point.original || point;\n}\n\n\nfunction getNewWaypoints(inWaypoints, outWaypoints) {\n\n var intersection = (0,_util_LineIntersect__WEBPACK_IMPORTED_MODULE_3__.default)(\n getDocking(inWaypoints[inWaypoints.length - 2]),\n getDocking(inWaypoints[inWaypoints.length - 1]),\n getDocking(outWaypoints[1]),\n getDocking(outWaypoints[0]));\n\n if (intersection) {\n return [].concat(\n inWaypoints.slice(0, inWaypoints.length - 1),\n [ intersection ],\n outWaypoints.slice(1));\n } else {\n return [\n getDocking(inWaypoints[0]),\n getDocking(outWaypoints[outWaypoints.length - 1])\n ];\n }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js ***! \******************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RemoveParticipantBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * BPMN specific remove behavior\n */\nfunction RemoveParticipantBehavior(eventBus, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n /**\n * morph collaboration diagram into process diagram\n * after the last participant has been removed\n */\n\n this.preExecute('shape.delete', function(context) {\n\n var shape = context.shape,\n parent = shape.parent;\n\n // activate the behavior if the shape to be removed\n // is a participant\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant')) {\n context.collaborationRoot = parent;\n }\n }, true);\n\n this.postExecute('shape.delete', function(context) {\n\n var collaborationRoot = context.collaborationRoot;\n\n if (collaborationRoot && !collaborationRoot.businessObject.participants.length) {\n\n // replace empty collaboration with process diagram\n modeling.makeProcess();\n }\n }, true);\n\n}\n\nRemoveParticipantBehavior.$inject = [ 'eventBus', 'modeling' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RemoveParticipantBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js": /*!******************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js ***! \******************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ReplaceConnectionBehavior)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n\n\nfunction ReplaceConnectionBehavior(eventBus, modeling, bpmnRules, injector) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n var dragging = injector.get('dragging', false);\n\n function fixConnection(connection) {\n\n var source = connection.source,\n target = connection.target,\n parent = connection.parent;\n\n // do not do anything if connection\n // is already deleted (may happen due to other\n // behaviors plugged-in before)\n if (!parent) {\n return;\n }\n\n var replacementType,\n remove;\n\n /**\n * Check if incoming or outgoing connections\n * can stay or could be substituted with an\n * appropriate replacement.\n *\n * This holds true for SequenceFlow <> MessageFlow.\n */\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow')) {\n if (!bpmnRules.canConnectSequenceFlow(source, target)) {\n remove = true;\n }\n\n if (bpmnRules.canConnectMessageFlow(source, target)) {\n replacementType = 'bpmn:MessageFlow';\n }\n }\n\n // transform message flows into sequence flows, if possible\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:MessageFlow')) {\n\n if (!bpmnRules.canConnectMessageFlow(source, target)) {\n remove = true;\n }\n\n if (bpmnRules.canConnectSequenceFlow(source, target)) {\n replacementType = 'bpmn:SequenceFlow';\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:Association') && !bpmnRules.canConnectAssociation(source, target)) {\n remove = true;\n }\n\n\n // remove invalid connection,\n // unless it has been removed already\n if (remove) {\n modeling.removeConnection(connection);\n }\n\n // replace SequenceFlow <> MessageFlow\n\n if (replacementType) {\n modeling.connect(source, target, {\n type: replacementType,\n waypoints: connection.waypoints.slice()\n });\n }\n }\n\n function replaceReconnectedConnection(event) {\n\n var context = event.context,\n connection = context.connection,\n source = context.newSource || connection.source,\n target = context.newTarget || connection.target,\n allowed,\n replacement;\n\n allowed = bpmnRules.canConnect(source, target);\n\n if (!allowed || allowed.type === connection.type) {\n return;\n }\n\n replacement = modeling.connect(source, target, {\n type: allowed.type,\n waypoints: connection.waypoints.slice()\n });\n\n // remove old connection\n modeling.removeConnection(connection);\n\n // replace connection in context to reconnect end/start\n context.connection = replacement;\n\n if (dragging) {\n cleanDraggingSelection(connection, replacement);\n }\n }\n\n // monkey-patch selection saved in dragging in order to re-select it when operation is finished\n function cleanDraggingSelection(oldConnection, newConnection) {\n var context = dragging.context(),\n previousSelection = context && context.payload.previousSelection,\n index;\n\n // do nothing if not dragging or no selection was present\n if (!previousSelection || !previousSelection.length) {\n return;\n }\n\n index = previousSelection.indexOf(oldConnection);\n\n if (index === -1) {\n return;\n }\n\n previousSelection.splice(index, 1, newConnection);\n }\n\n // lifecycle hooks\n\n this.postExecuted('elements.move', function(context) {\n\n var closure = context.closure,\n allConnections = closure.allConnections;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(allConnections, fixConnection);\n }, true);\n\n this.preExecute('connection.reconnect', replaceReconnectedConnection);\n\n this.postExecuted('element.updateProperties', function(event) {\n var context = event.context,\n properties = context.properties,\n element = context.element,\n businessObject = element.businessObject,\n connection;\n\n // remove condition on change to default\n if (properties.default) {\n connection = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.find)(\n element.outgoing,\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.matchPattern)({ id: element.businessObject.default.id })\n );\n\n if (connection) {\n modeling.updateProperties(connection, { conditionExpression: undefined });\n }\n }\n\n // remove default from source on change to conditional\n if (properties.conditionExpression && businessObject.sourceRef.default === businessObject) {\n modeling.updateProperties(element.source, { default: undefined });\n }\n });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ReplaceConnectionBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nReplaceConnectionBehavior.$inject = [\n 'eventBus',\n 'modeling',\n 'bpmnRules',\n 'injector'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js": /*!****************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ReplaceElementBehaviour)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\n\n\n\n\n\n/**\n * BPMN-specific replace behavior.\n */\nfunction ReplaceElementBehaviour(\n bpmnReplace,\n bpmnRules,\n elementRegistry,\n injector,\n modeling,\n selection\n) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n this._bpmnReplace = bpmnReplace;\n this._elementRegistry = elementRegistry;\n this._selection = selection;\n\n // replace elements on create, e.g. during copy-paste\n this.postExecuted([ 'elements.create' ], 500, function(event) {\n var context = event.context,\n target = context.parent,\n elements = context.elements;\n\n var canReplace = bpmnRules.canReplace(elements, target);\n\n if (canReplace) {\n this.replaceElements(elements, canReplace.replacements);\n }\n }, this);\n\n // replace elements on move\n this.postExecuted([ 'elements.move' ], 500, function(event) {\n var context = event.context,\n target = context.newParent,\n newHost = context.newHost,\n elements = [];\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(context.closure.topLevel, function(topLevelElements) {\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isEventSubProcess)(topLevelElements)) {\n elements = elements.concat(topLevelElements.children);\n } else {\n elements = elements.concat(topLevelElements);\n }\n });\n\n // set target to host if attaching\n if (elements.length === 1 && newHost) {\n target = newHost;\n }\n\n var canReplace = bpmnRules.canReplace(elements, target);\n\n if (canReplace) {\n this.replaceElements(elements, canReplace.replacements, newHost);\n }\n }, this);\n\n // update attachments on host replace\n this.postExecute([ 'shape.replace' ], 1500, function(e) {\n var context = e.context,\n oldShape = context.oldShape,\n newShape = context.newShape,\n attachers = oldShape.attachers,\n canReplace;\n\n if (attachers && attachers.length) {\n canReplace = bpmnRules.canReplace(attachers, newShape);\n\n this.replaceElements(attachers, canReplace.replacements);\n }\n\n }, this);\n\n // keep ID on shape replace\n this.postExecuted([ 'shape.replace' ], 1500, function(e) {\n var context = e.context,\n oldShape = context.oldShape,\n newShape = context.newShape;\n\n modeling.unclaimId(oldShape.businessObject.id, oldShape.businessObject);\n modeling.updateProperties(newShape, { id: oldShape.id });\n });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ReplaceElementBehaviour, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nReplaceElementBehaviour.prototype.replaceElements = function(elements, newElements) {\n var elementRegistry = this._elementRegistry,\n bpmnReplace = this._bpmnReplace,\n selection = this._selection;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(newElements, function(replacement) {\n var newElement = {\n type: replacement.newElementType\n };\n\n var oldElement = elementRegistry.get(replacement.oldElementId);\n\n var idx = elements.indexOf(oldElement);\n\n elements[idx] = bpmnReplace.replaceElement(oldElement, newElement, { select: false });\n });\n\n if (newElements) {\n selection.select(elements);\n }\n};\n\nReplaceElementBehaviour.$inject = [\n 'bpmnReplace',\n 'bpmnRules',\n 'elementRegistry',\n 'injector',\n 'modeling',\n 'selection'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js": /*!*******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LANE_MIN_DIMENSIONS\": () => (/* binding */ LANE_MIN_DIMENSIONS),\n/* harmony export */ \"PARTICIPANT_MIN_DIMENSIONS\": () => (/* binding */ PARTICIPANT_MIN_DIMENSIONS),\n/* harmony export */ \"SUB_PROCESS_MIN_DIMENSIONS\": () => (/* binding */ SUB_PROCESS_MIN_DIMENSIONS),\n/* harmony export */ \"TEXT_ANNOTATION_MIN_DIMENSIONS\": () => (/* binding */ TEXT_ANNOTATION_MIN_DIMENSIONS),\n/* harmony export */ \"default\": () => (/* binding */ ResizeBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_ResizeUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/ResizeUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGH_PRIORITY = 1500;\r\n\r\nvar LANE_MIN_DIMENSIONS = { width: 300, height: 60 };\r\n\r\nvar PARTICIPANT_MIN_DIMENSIONS = { width: 300, height: 150 };\r\n\r\nvar SUB_PROCESS_MIN_DIMENSIONS = { width: 140, height: 120 };\r\n\r\nvar TEXT_ANNOTATION_MIN_DIMENSIONS = { width: 50, height: 30 };\r\n\r\n\r\n/**\r\n * Set minimum bounds/resize constraints on resize.\r\n *\r\n * @param {EventBus} eventBus\r\n */\r\nfunction ResizeBehavior(eventBus) {\r\n eventBus.on('resize.start', HIGH_PRIORITY, function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n direction = context.direction,\r\n balanced = context.balanced;\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\r\n context.resizeConstraints = (0,_util_ResizeUtil__WEBPACK_IMPORTED_MODULE_1__.getParticipantResizeConstraints)(shape, direction, balanced);\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\r\n context.minDimensions = PARTICIPANT_MIN_DIMENSIONS;\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_2__.isExpanded)(shape)) {\r\n context.minDimensions = SUB_PROCESS_MIN_DIMENSIONS;\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:TextAnnotation')) {\r\n context.minDimensions = TEXT_ANNOTATION_MIN_DIMENSIONS;\r\n }\r\n });\r\n}\r\n\r\nResizeBehavior.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizeLaneBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n\n\n\n\n\n\nvar SLIGHTLY_HIGHER_PRIORITY = 1001;\n\n\n/**\n * Invoke {@link Modeling#resizeLane} instead of\n * {@link Modeling#resizeShape} when resizing a Lane\n * or Participant shape.\n */\nfunction ResizeLaneBehavior(eventBus, modeling) {\n\n eventBus.on('resize.start', SLIGHTLY_HIGHER_PRIORITY + 500, function(event) {\n var context = event.context,\n shape = context.shape;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\n\n // should we resize the opposite lane(s) in\n // order to compensate for the resize operation?\n context.balanced = !(0,diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasPrimaryModifier)(event);\n }\n });\n\n /**\n * Intercept resize end and call resize lane function instead.\n */\n eventBus.on('resize.end', SLIGHTLY_HIGHER_PRIORITY, function(event) {\n var context = event.context,\n shape = context.shape,\n canExecute = context.canExecute,\n newBounds = context.newBounds;\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\n\n if (canExecute) {\n\n // ensure we have actual pixel values for new bounds\n // (important when zoom level was > 1 during move)\n newBounds = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.roundBounds)(newBounds);\n\n // perform the actual resize\n modeling.resizeLane(shape, newBounds, context.balanced);\n }\n\n // stop propagation\n return false;\n }\n });\n}\n\nResizeLaneBehavior.$inject = [\n 'eventBus',\n 'modeling'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js ***! \*********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootElementReferenceBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar LOW_PRIORITY = 500;\r\n\r\n\r\n/**\r\n * Add referenced root elements (error, escalation, message, signal) if they don't exist.\r\n * Copy referenced root elements on copy & paste.\r\n */\r\nfunction RootElementReferenceBehavior(\r\n bpmnjs, eventBus, injector, moddleCopy, bpmnFactory\r\n) {\r\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\r\n\r\n function canHaveRootElementReference(element) {\r\n return (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(element, [ 'bpmn:ReceiveTask', 'bpmn:SendTask' ]) ||\r\n hasAnyEventDefinition(element, [\r\n 'bpmn:ErrorEventDefinition',\r\n 'bpmn:EscalationEventDefinition',\r\n 'bpmn:MessageEventDefinition',\r\n 'bpmn:SignalEventDefinition'\r\n ]);\r\n }\r\n\r\n function hasRootElement(rootElement) {\r\n var definitions = bpmnjs.getDefinitions(),\r\n rootElements = definitions.get('rootElements');\r\n\r\n return !!(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.find)(rootElements, (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.matchPattern)({ id: rootElement.id }));\r\n }\r\n\r\n function getRootElementReferencePropertyName(eventDefinition) {\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:ErrorEventDefinition')) {\r\n return 'errorRef';\r\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:EscalationEventDefinition')) {\r\n return 'escalationRef';\r\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:MessageEventDefinition')) {\r\n return 'messageRef';\r\n } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:SignalEventDefinition')) {\r\n return 'signalRef';\r\n }\r\n }\r\n\r\n function getRootElement(businessObject) {\r\n if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:ReceiveTask', 'bpmn:SendTask' ])) {\r\n return businessObject.get('messageRef');\r\n }\r\n\r\n var eventDefinitions = businessObject.get('eventDefinitions'),\r\n eventDefinition = eventDefinitions[ 0 ];\r\n\r\n return eventDefinition.get(getRootElementReferencePropertyName(eventDefinition));\r\n }\r\n\r\n function setRootElement(businessObject, rootElement) {\r\n if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:ReceiveTask', 'bpmn:SendTask' ])) {\r\n return businessObject.set('messageRef', rootElement);\r\n }\r\n\r\n var eventDefinitions = businessObject.get('eventDefinitions'),\r\n eventDefinition = eventDefinitions[ 0 ];\r\n\r\n return eventDefinition.set(getRootElementReferencePropertyName(eventDefinition), rootElement);\r\n }\r\n\r\n // create shape\r\n this.executed('shape.create', function(context) {\r\n var shape = context.shape;\r\n\r\n if (!canHaveRootElementReference(shape)) {\r\n return;\r\n }\r\n\r\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(shape),\r\n rootElement = getRootElement(businessObject),\r\n rootElements;\r\n\r\n if (rootElement && !hasRootElement(rootElement)) {\r\n rootElements = bpmnjs.getDefinitions().get('rootElements');\r\n\r\n // add root element\r\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_5__.add)(rootElements, rootElement);\r\n\r\n context.addedRootElement = rootElement;\r\n }\r\n }, true);\r\n\r\n this.reverted('shape.create', function(context) {\r\n var addedRootElement = context.addedRootElement;\r\n\r\n if (!addedRootElement) {\r\n return;\r\n }\r\n\r\n var rootElements = bpmnjs.getDefinitions().get('rootElements');\r\n\r\n // remove root element\r\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_5__.remove)(rootElements, addedRootElement);\r\n }, true);\r\n\r\n eventBus.on('copyPaste.copyElement', function(context) {\r\n var descriptor = context.descriptor,\r\n element = context.element;\r\n\r\n if (!canHaveRootElementReference(element)) {\r\n return;\r\n }\r\n\r\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element),\r\n rootElement = getRootElement(businessObject);\r\n\r\n if (rootElement) {\r\n descriptor.referencedRootElement = rootElement;\r\n }\r\n });\r\n\r\n eventBus.on('copyPaste.pasteElement', LOW_PRIORITY, function(context) {\r\n var descriptor = context.descriptor,\r\n businessObject = descriptor.businessObject;\r\n\r\n if (!canHaveRootElementReference(businessObject)) {\r\n return;\r\n }\r\n\r\n var referencedRootElement = descriptor.referencedRootElement;\r\n\r\n if (!referencedRootElement) {\r\n return;\r\n }\r\n\r\n if (!hasRootElement(referencedRootElement)) {\r\n referencedRootElement = moddleCopy.copyElement(\r\n referencedRootElement,\r\n bpmnFactory.create(referencedRootElement.$type)\r\n );\r\n }\r\n\r\n setRootElement(businessObject, referencedRootElement);\r\n });\r\n}\r\n\r\nRootElementReferenceBehavior.$inject = [\r\n 'bpmnjs',\r\n 'eventBus',\r\n 'injector',\r\n 'moddleCopy',\r\n 'bpmnFactory'\r\n];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RootElementReferenceBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n// helpers //////////\r\n\r\nfunction hasAnyEventDefinition(element, types) {\r\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isArray)(types)) {\r\n types = [ types ];\r\n }\r\n\r\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.some)(types, function(type) {\r\n return (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasEventDefinition)(element, type);\r\n });\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js": /*!**********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SpaceToolBehavior)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ResizeBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar max = Math.max;\r\n\r\n\r\nfunction SpaceToolBehavior(eventBus) {\r\n eventBus.on('spaceTool.getMinDimensions', function(context) {\r\n var shapes = context.shapes,\r\n axis = context.axis,\r\n start = context.start,\r\n minDimensions = {};\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shapes, function(shape) {\r\n var id = shape.id;\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(shape, 'bpmn:Participant')) {\r\n\r\n if (isHorizontal(axis)) {\r\n minDimensions[ id ] = _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS;\r\n } else {\r\n minDimensions[ id ] = {\r\n width: _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS.width,\r\n height: getParticipantMinHeight(shape, start)\r\n };\r\n }\r\n\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(shape, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isExpanded)(shape)) {\r\n minDimensions[ id ] = _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.SUB_PROCESS_MIN_DIMENSIONS;\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(shape, 'bpmn:TextAnnotation')) {\r\n minDimensions[ id ] = _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.TEXT_ANNOTATION_MIN_DIMENSIONS;\r\n }\r\n });\r\n\r\n return minDimensions;\r\n });\r\n}\r\n\r\nSpaceToolBehavior.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////////\r\nfunction isHorizontal(axis) {\r\n return axis === 'x';\r\n}\r\n\r\n/**\r\n * Get minimum height for participant taking lanes into account.\r\n *\r\n * @param {} participant\r\n * @param {number} start\r\n *\r\n * @returns {Object}\r\n */\r\nfunction getParticipantMinHeight(participant, start) {\r\n var lanesMinHeight;\r\n\r\n if (!hasChildLanes(participant)) {\r\n return _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS.height;\r\n }\r\n\r\n lanesMinHeight = getLanesMinHeight(participant, start);\r\n\r\n return max(_ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS.height, lanesMinHeight);\r\n}\r\n\r\nfunction hasChildLanes(element) {\r\n return !!(0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(element).length;\r\n}\r\n\r\nfunction getLanesMinHeight(participant, resizeStart) {\r\n var lanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(participant),\r\n resizedLane;\r\n\r\n // find the nested lane which is currently resized\r\n resizedLane = findResizedLane(lanes, resizeStart);\r\n\r\n // resized lane cannot shrink below the minimum height\r\n // but remaining lanes' dimensions are kept intact\r\n return participant.height - resizedLane.height + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height;\r\n}\r\n\r\n/**\r\n * Find nested lane which is currently resized.\r\n *\r\n * @param {Array} lanes\r\n * @param {number} resizeStart\r\n */\r\nfunction findResizedLane(lanes, resizeStart) {\r\n var i, lane, childLanes;\r\n\r\n for (i = 0; i < lanes.length; i++) {\r\n lane = lanes[i];\r\n\r\n // resizing current lane or a lane nested\r\n if (resizeStart >= lane.y && resizeStart <= lane.y + lane.height) {\r\n childLanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(lane);\r\n\r\n // a nested lane is resized\r\n if (childLanes.length) {\r\n return findResizedLane(childLanes, resizeStart);\r\n }\r\n\r\n // current lane is the resized one\r\n return lane;\r\n }\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js": /*!*********************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js ***! \*********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SubProcessStartEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/DiUtil.js */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\n\n\n\n/**\n * Add start event replacing element with expanded sub process.\n *\n * @param {Injector} injector\n * @param {Modeling} modeling\n */\nfunction SubProcessStartEventBehavior(injector, modeling) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n this.postExecuted('shape.replace', function(event) {\n var oldShape = event.context.oldShape,\n newShape = event.context.newShape;\n\n if (\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(newShape, 'bpmn:SubProcess') ||\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(oldShape, 'bpmn:Task') ||\n !(0,_util_DiUtil_js__WEBPACK_IMPORTED_MODULE_3__.isExpanded)(newShape)\n ) {\n return;\n }\n\n var position = getStartEventPosition(newShape);\n\n modeling.createShape({ type: 'bpmn:StartEvent' }, position, newShape);\n });\n}\n\nSubProcessStartEventBehavior.$inject = [\n 'injector',\n 'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(SubProcessStartEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n// helpers //////////\n\nfunction getStartEventPosition(shape) {\n return {\n x: shape.x + shape.width / 6,\n y: shape.y + shape.height / 2\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js": /*!***********************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js ***! \***********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ToggleElementCollapseBehaviour)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/resize/ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\nfunction ToggleElementCollapseBehaviour(\n eventBus, elementFactory, modeling,\n resize) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n function hideEmptyLabels(children) {\n if (children.length) {\n children.forEach(function(child) {\n if (child.type === 'label' && !child.businessObject.name) {\n child.hidden = true;\n }\n });\n }\n }\n\n function expandedBounds(shape, defaultSize) {\n var children = shape.children,\n newBounds = defaultSize,\n visibleElements,\n visibleBBox;\n\n visibleElements = filterVisible(children).concat([ shape ]);\n\n visibleBBox = (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__.computeChildrenBBox)(visibleElements);\n\n if (visibleBBox) {\n\n // center to visibleBBox with max(defaultSize, childrenBounds)\n newBounds.width = Math.max(visibleBBox.width, newBounds.width);\n newBounds.height = Math.max(visibleBBox.height, newBounds.height);\n\n newBounds.x = visibleBBox.x + (visibleBBox.width - newBounds.width) / 2;\n newBounds.y = visibleBBox.y + (visibleBBox.height - newBounds.height) / 2;\n } else {\n\n // center to collapsed shape with defaultSize\n newBounds.x = shape.x + (shape.width - newBounds.width) / 2;\n newBounds.y = shape.y + (shape.height - newBounds.height) / 2;\n }\n\n return newBounds;\n }\n\n function collapsedBounds(shape, defaultSize) {\n\n return {\n x: shape.x + (shape.width - defaultSize.width) / 2,\n y: shape.y + (shape.height - defaultSize.height) / 2,\n width: defaultSize.width,\n height: defaultSize.height\n };\n }\n\n this.executed([ 'shape.toggleCollapse' ], LOW_PRIORITY, function(e) {\n\n var context = e.context,\n shape = context.shape;\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:SubProcess')) {\n return;\n }\n\n if (!shape.collapsed) {\n\n // all children got made visible through djs, hide empty labels\n hideEmptyLabels(shape.children);\n\n // remove collapsed marker\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = true;\n } else {\n\n // place collapsed marker\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = false;\n }\n });\n\n this.reverted([ 'shape.toggleCollapse' ], LOW_PRIORITY, function(e) {\n\n var context = e.context;\n var shape = context.shape;\n\n\n // revert removing/placing collapsed marker\n if (!shape.collapsed) {\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = true;\n\n } else {\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = false;\n }\n });\n\n this.postExecuted([ 'shape.toggleCollapse' ], LOW_PRIORITY, function(e) {\n var shape = e.context.shape,\n defaultSize = elementFactory._getDefaultSize(shape),\n newBounds;\n\n if (shape.collapsed) {\n\n // resize to default size of collapsed shapes\n newBounds = collapsedBounds(shape, defaultSize);\n } else {\n\n // resize to bounds of max(visible children, defaultSize)\n newBounds = expandedBounds(shape, defaultSize);\n }\n\n modeling.resizeShape(shape, newBounds, null, {\n autoResize: shape.collapsed ? false : 'nwse'\n });\n });\n\n}\n\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ToggleElementCollapseBehaviour, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nToggleElementCollapseBehaviour.$inject = [\n 'eventBus',\n 'elementFactory',\n 'modeling'\n];\n\n\n// helpers //////////////////////\n\nfunction filterVisible(elements) {\n return elements.filter(function(e) {\n return !e.hidden;\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js": /*!**********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UnclaimIdBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n/**\n * Unclaims model IDs on element deletion.\n *\n * @param {Canvas} canvas\n * @param {Injector} injector\n * @param {Moddle} moddle\n * @param {Modeling} modeling\n */\nfunction UnclaimIdBehavior(canvas, injector, moddle, modeling) {\n injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n this.preExecute('shape.delete', function(event) {\n var context = event.context,\n shape = context.shape,\n shapeBo = shape.businessObject;\n\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__.isLabel)(shape)) {\n return;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:Participant') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(shape)) {\n moddle.ids.unclaim(shapeBo.processRef.id);\n }\n\n modeling.unclaimId(shapeBo.id, shapeBo);\n });\n\n\n this.preExecute('connection.delete', function(event) {\n var context = event.context,\n connection = context.connection,\n connectionBo = connection.businessObject;\n\n modeling.unclaimId(connectionBo.id, connectionBo);\n });\n\n this.preExecute('canvas.updateRoot', function() {\n var rootElement = canvas.getRootElement(),\n rootElementBo = rootElement.businessObject;\n\n moddle.ids.unclaim(rootElementBo.id);\n });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(UnclaimIdBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nUnclaimIdBehavior.$inject = [ 'canvas', 'injector', 'moddle', 'modeling' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js": /*!*****************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DeleteSequenceFlowBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * A behavior that unsets the Default property of\n * sequence flow source on element delete, if the\n * removed element is the Gateway or Task's default flow.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction DeleteSequenceFlowBehavior(eventBus, modeling) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n this.preExecute('connection.delete', function(event) {\n var context = event.context,\n connection = context.connection,\n source = connection.source;\n\n if (isDefaultFlow(connection, source)) {\n modeling.updateProperties(source, {\n 'default': null\n });\n }\n });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DeleteSequenceFlowBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nDeleteSequenceFlowBehavior.$inject = [\n 'eventBus',\n 'modeling'\n];\n\n\n// helpers //////////////////////\n\nfunction isDefaultFlow(connection, source) {\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow')) {\n return false;\n }\n\n var sourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(source),\n sequenceFlow = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(connection);\n\n return sourceBo.get('default') === sequenceFlow;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js": /*!*******************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js ***! \*******************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateFlowNodeRefsBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\nvar LOW_PRIORITY = 500,\n HIGH_PRIORITY = 5000;\n\n\n/**\n * BPMN specific delete lane behavior\n */\nfunction UpdateFlowNodeRefsBehavior(eventBus, modeling, translate) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n /**\n * Ok, this is it:\n *\n * We have to update the Lane#flowNodeRefs _and_\n * FlowNode#lanes with every FlowNode move/resize and\n * Lane move/resize.\n *\n * We want to group that stuff to recompute containments\n * as efficient as possible.\n *\n * Yea!\n */\n\n // the update context\n var context;\n\n\n function initContext() {\n context = context || new UpdateContext();\n context.enter();\n\n return context;\n }\n\n function getContext() {\n if (!context) {\n throw new Error(translate('out of bounds release'));\n }\n\n return context;\n }\n\n function releaseContext() {\n\n if (!context) {\n throw new Error(translate('out of bounds release'));\n }\n\n var triggerUpdate = context.leave();\n\n if (triggerUpdate) {\n modeling.updateLaneRefs(context.flowNodes, context.lanes);\n\n context = null;\n }\n\n return triggerUpdate;\n }\n\n\n var laneRefUpdateEvents = [\n 'spaceTool',\n 'lane.add',\n 'lane.resize',\n 'lane.split',\n 'elements.create',\n 'elements.delete',\n 'elements.move',\n 'shape.create',\n 'shape.delete',\n 'shape.move',\n 'shape.resize'\n ];\n\n\n // listen to a lot of stuff to group lane updates\n\n this.preExecute(laneRefUpdateEvents, HIGH_PRIORITY, function(event) {\n initContext();\n });\n\n this.postExecuted(laneRefUpdateEvents, LOW_PRIORITY, function(event) {\n releaseContext();\n });\n\n\n // Mark flow nodes + lanes that need an update\n\n this.preExecute([\n 'shape.create',\n 'shape.move',\n 'shape.delete',\n 'shape.resize'\n ], function(event) {\n\n var context = event.context,\n shape = context.shape;\n\n var updateContext = getContext();\n\n // no need to update labels\n if (shape.labelTarget) {\n return;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Lane')) {\n updateContext.addLane(shape);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:FlowNode')) {\n updateContext.addFlowNode(shape);\n }\n });\n}\n\nUpdateFlowNodeRefsBehavior.$inject = [\n 'eventBus',\n 'modeling' ,\n 'translate'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(UpdateFlowNodeRefsBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nfunction UpdateContext() {\n\n this.flowNodes = [];\n this.lanes = [];\n\n this.counter = 0;\n\n this.addLane = function(lane) {\n this.lanes.push(lane);\n };\n\n this.addFlowNode = function(flowNode) {\n this.flowNodes.push(flowNode);\n };\n\n this.enter = function() {\n this.counter++;\n };\n\n this.leave = function() {\n this.counter--;\n\n return !this.counter;\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/index.js": /*!**********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AdaptiveLabelPositioningBehavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdaptiveLabelPositioningBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js\");\n/* harmony import */ var _AppendBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppendBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js\");\n/* harmony import */ var _AssociationBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AssociationBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js\");\n/* harmony import */ var _AttachEventBehavior__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AttachEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js\");\n/* harmony import */ var _BoundaryEventBehavior__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BoundaryEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js\");\n/* harmony import */ var _RootElementReferenceBehavior__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./RootElementReferenceBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js\");\n/* harmony import */ var _CreateBehavior__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CreateBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js\");\n/* harmony import */ var _FixHoverBehavior__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./FixHoverBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js\");\n/* harmony import */ var _CreateDataObjectBehavior__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CreateDataObjectBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js\");\n/* harmony import */ var _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CreateParticipantBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js\");\n/* harmony import */ var _DataInputAssociationBehavior__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./DataInputAssociationBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js\");\n/* harmony import */ var _DataStoreBehavior__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DataStoreBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js\");\n/* harmony import */ var _DeleteLaneBehavior__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./DeleteLaneBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js\");\n/* harmony import */ var _DetachEventBehavior__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./DetachEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js\");\n/* harmony import */ var _DropOnFlowBehavior__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./DropOnFlowBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js\");\n/* harmony import */ var _EventBasedGatewayBehavior__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./EventBasedGatewayBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js\");\n/* harmony import */ var _GroupBehavior__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./GroupBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js\");\n/* harmony import */ var _ImportDockingFix__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ImportDockingFix */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js\");\n/* harmony import */ var _IsHorizontalFix__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./IsHorizontalFix */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js\");\n/* harmony import */ var _LabelBehavior__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./LabelBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js\");\n/* harmony import */ var _MessageFlowBehavior__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./MessageFlowBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js\");\n/* harmony import */ var _ModelingFeedback__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./ModelingFeedback */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js\");\n/* harmony import */ var _ReplaceConnectionBehavior__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ReplaceConnectionBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js\");\n/* harmony import */ var _RemoveParticipantBehavior__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./RemoveParticipantBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js\");\n/* harmony import */ var _ReplaceElementBehaviour__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ReplaceElementBehaviour */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js\");\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./ResizeBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js\");\n/* harmony import */ var _ResizeLaneBehavior__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ResizeLaneBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js\");\n/* harmony import */ var _RemoveElementBehavior__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./RemoveElementBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js\");\n/* harmony import */ var _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./SpaceToolBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js\");\n/* harmony import */ var _SubProcessStartEventBehavior__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./SubProcessStartEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js\");\n/* harmony import */ var _ToggleElementCollapseBehaviour__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./ToggleElementCollapseBehaviour */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js\");\n/* harmony import */ var _UnclaimIdBehavior__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./UnclaimIdBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js\");\n/* harmony import */ var _UpdateFlowNodeRefsBehavior__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./UpdateFlowNodeRefsBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js\");\n/* harmony import */ var _UnsetDefaultFlowBehavior__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./UnsetDefaultFlowBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [\n 'adaptiveLabelPositioningBehavior',\n 'appendBehavior',\n 'associationBehavior',\n 'attachEventBehavior',\n 'boundaryEventBehavior',\n 'rootElementReferenceBehavior',\n 'createBehavior',\n 'fixHoverBehavior',\n 'createDataObjectBehavior',\n 'createParticipantBehavior',\n 'dataStoreBehavior',\n 'dataInputAssociationBehavior',\n 'deleteLaneBehavior',\n 'detachEventBehavior',\n 'dropOnFlowBehavior',\n 'eventBasedGatewayBehavior',\n 'groupBehavior',\n 'importDockingFix',\n 'isHorizontalFix',\n 'labelBehavior',\n 'messageFlowBehavior',\n 'modelingFeedback',\n 'removeElementBehavior',\n 'removeParticipantBehavior',\n 'replaceConnectionBehavior',\n 'replaceElementBehaviour',\n 'resizeBehavior',\n 'resizeLaneBehavior',\n 'toggleElementCollapseBehaviour',\n 'spaceToolBehavior',\n 'subProcessStartEventBehavior',\n 'unclaimIdBehavior',\n 'unsetDefaultFlowBehavior',\n 'updateFlowNodeRefsBehavior'\n ],\n adaptiveLabelPositioningBehavior: [ 'type', _AdaptiveLabelPositioningBehavior__WEBPACK_IMPORTED_MODULE_0__.default ],\n appendBehavior: [ 'type', _AppendBehavior__WEBPACK_IMPORTED_MODULE_1__.default ],\n associationBehavior: [ 'type', _AssociationBehavior__WEBPACK_IMPORTED_MODULE_2__.default ],\n attachEventBehavior: [ 'type', _AttachEventBehavior__WEBPACK_IMPORTED_MODULE_3__.default ],\n boundaryEventBehavior: [ 'type', _BoundaryEventBehavior__WEBPACK_IMPORTED_MODULE_4__.default ],\n rootElementReferenceBehavior: [ 'type', _RootElementReferenceBehavior__WEBPACK_IMPORTED_MODULE_5__.default ],\n createBehavior: [ 'type', _CreateBehavior__WEBPACK_IMPORTED_MODULE_6__.default ],\n fixHoverBehavior: [ 'type', _FixHoverBehavior__WEBPACK_IMPORTED_MODULE_7__.default ],\n createDataObjectBehavior: [ 'type', _CreateDataObjectBehavior__WEBPACK_IMPORTED_MODULE_8__.default ],\n createParticipantBehavior: [ 'type', _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_9__.default ],\n dataInputAssociationBehavior: [ 'type', _DataInputAssociationBehavior__WEBPACK_IMPORTED_MODULE_10__.default ],\n dataStoreBehavior: [ 'type', _DataStoreBehavior__WEBPACK_IMPORTED_MODULE_11__.default ],\n deleteLaneBehavior: [ 'type', _DeleteLaneBehavior__WEBPACK_IMPORTED_MODULE_12__.default ],\n detachEventBehavior: [ 'type', _DetachEventBehavior__WEBPACK_IMPORTED_MODULE_13__.default ],\n dropOnFlowBehavior: [ 'type', _DropOnFlowBehavior__WEBPACK_IMPORTED_MODULE_14__.default ],\n eventBasedGatewayBehavior: [ 'type', _EventBasedGatewayBehavior__WEBPACK_IMPORTED_MODULE_15__.default ],\n groupBehavior: [ 'type', _GroupBehavior__WEBPACK_IMPORTED_MODULE_16__.default ],\n importDockingFix: [ 'type', _ImportDockingFix__WEBPACK_IMPORTED_MODULE_17__.default ],\n isHorizontalFix: [ 'type', _IsHorizontalFix__WEBPACK_IMPORTED_MODULE_18__.default ],\n labelBehavior: [ 'type', _LabelBehavior__WEBPACK_IMPORTED_MODULE_19__.default ],\n messageFlowBehavior: [ 'type', _MessageFlowBehavior__WEBPACK_IMPORTED_MODULE_20__.default ],\n modelingFeedback: [ 'type', _ModelingFeedback__WEBPACK_IMPORTED_MODULE_21__.default ],\n replaceConnectionBehavior: [ 'type', _ReplaceConnectionBehavior__WEBPACK_IMPORTED_MODULE_22__.default ],\n removeParticipantBehavior: [ 'type', _RemoveParticipantBehavior__WEBPACK_IMPORTED_MODULE_23__.default ],\n replaceElementBehaviour: [ 'type', _ReplaceElementBehaviour__WEBPACK_IMPORTED_MODULE_24__.default ],\n resizeBehavior: [ 'type', _ResizeBehavior__WEBPACK_IMPORTED_MODULE_25__.default ],\n resizeLaneBehavior: [ 'type', _ResizeLaneBehavior__WEBPACK_IMPORTED_MODULE_26__.default ],\n removeElementBehavior: [ 'type', _RemoveElementBehavior__WEBPACK_IMPORTED_MODULE_27__.default ],\n toggleElementCollapseBehaviour : [ 'type', _ToggleElementCollapseBehaviour__WEBPACK_IMPORTED_MODULE_28__.default ],\n spaceToolBehavior: [ 'type', _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_29__.default ],\n subProcessStartEventBehavior: [ 'type', _SubProcessStartEventBehavior__WEBPACK_IMPORTED_MODULE_30__.default ],\n unclaimIdBehavior: [ 'type', _UnclaimIdBehavior__WEBPACK_IMPORTED_MODULE_31__.default ],\n updateFlowNodeRefsBehavior: [ 'type', _UpdateFlowNodeRefsBehavior__WEBPACK_IMPORTED_MODULE_32__.default ],\n unsetDefaultFlowBehavior: [ 'type', _UnsetDefaultFlowBehavior__WEBPACK_IMPORTED_MODULE_33__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js": /*!**********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createCategoryValue\": () => (/* binding */ createCategoryValue)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n/**\n * Creates a new bpmn:CategoryValue inside a new bpmn:Category\n *\n * @param {ModdleElement} definitions\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement} categoryValue.\n */\nfunction createCategoryValue(definitions, bpmnFactory) {\n var categoryValue = bpmnFactory.create('bpmn:CategoryValue'),\n category = bpmnFactory.create('bpmn:Category', {\n categoryValue: [ categoryValue ]\n });\n\n // add to correct place\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(definitions.get('rootElements'), category);\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(category).$parent = definitions;\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(categoryValue).$parent = category;\n\n return categoryValue;\n\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"vectorLength\": () => (/* binding */ vectorLength),\n/* harmony export */ \"getAngle\": () => (/* binding */ getAngle),\n/* harmony export */ \"rotateVector\": () => (/* binding */ rotateVector),\n/* harmony export */ \"perpendicularFoot\": () => (/* binding */ perpendicularFoot),\n/* harmony export */ \"getDistancePointLine\": () => (/* binding */ getDistancePointLine),\n/* harmony export */ \"getDistancePointPoint\": () => (/* binding */ getDistancePointPoint)\n/* harmony export */ });\n/**\n * Returns the length of a vector\n *\n * @param {Vector}\n * @return {Float}\n */\nfunction vectorLength(v) {\n return Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2));\n}\n\n\n/**\n * Calculates the angle between a line a the yAxis\n *\n * @param {Array}\n * @return {Float}\n */\nfunction getAngle(line) {\n\n // return value is between 0, 180 and -180, -0\n // @janstuemmel: maybe replace return a/b with b/a\n return Math.atan((line[1].y - line[0].y) / (line[1].x - line[0].x));\n}\n\n\n/**\n * Rotates a vector by a given angle\n *\n * @param {Vector}\n * @param {Float} Angle in radians\n * @return {Vector}\n */\nfunction rotateVector(vector, angle) {\n return (!angle) ? vector : {\n x: Math.cos(angle) * vector.x - Math.sin(angle) * vector.y,\n y: Math.sin(angle) * vector.x + Math.cos(angle) * vector.y\n };\n}\n\n\n/**\n * Solves a 2D equation system\n * a + r*b = c, where a,b,c are 2D vectors\n *\n * @param {Vector}\n * @param {Vector}\n * @param {Vector}\n * @return {Float}\n */\nfunction solveLambaSystem(a, b, c) {\n\n // the 2d system\n var system = [\n { n: a[0] - c[0], lambda: b[0] },\n { n: a[1] - c[1], lambda: b[1] }\n ];\n\n // solve\n var n = system[0].n * b[0] + system[1].n * b[1],\n l = system[0].lambda * b[0] + system[1].lambda * b[1];\n\n return -n/l;\n}\n\n\n/**\n * Position of perpendicular foot\n *\n * @param {Point}\n * @param [ {Point}, {Point} ] line defined through two points\n * @return {Point} the perpendicular foot position\n */\nfunction perpendicularFoot(point, line) {\n\n var a = line[0], b = line[1];\n\n // relative position of b from a\n var bd = { x: b.x - a.x, y: b.y - a.y };\n\n // solve equation system to the parametrized vectors param real value\n var r = solveLambaSystem([ a.x, a.y ], [ bd.x, bd.y ], [ point.x, point.y ]);\n\n return { x: a.x + r*bd.x, y: a.y + r*bd.y };\n}\n\n\n/**\n * Calculates the distance between a point and a line\n *\n * @param {Point}\n * @param [ {Point}, {Point} ] line defined through two points\n * @return {Float} distance\n */\nfunction getDistancePointLine(point, line) {\n\n var pfPoint = perpendicularFoot(point, line);\n\n // distance vector\n var connectionVector = {\n x: pfPoint.x - point.x,\n y: pfPoint.y - point.y\n };\n\n return vectorLength(connectionVector);\n}\n\n\n/**\n * Calculates the distance between two points\n *\n * @param {Point}\n * @param {Point}\n * @return {Float} distance\n */\nfunction getDistancePointPoint(point1, point2) {\n\n return vectorLength({\n x: point1.x - point2.x,\n y: point1.y - point2.y\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js": /*!*************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"findNewLabelLineStartIndex\": () => (/* binding */ findNewLabelLineStartIndex),\n/* harmony export */ \"getLabelAdjustment\": () => (/* binding */ getLabelAdjustment)\n/* harmony export */ });\n/* harmony import */ var _GeometricUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GeometricUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js\");\n/* harmony import */ var _LineAttachmentUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LineAttachmentUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\nfunction findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) {\n\n var index = attachment.segmentIndex;\n\n var offset = newWaypoints.length - oldWaypoints.length;\n\n // segmentMove happened\n if (hints.segmentMove) {\n\n var oldSegmentStartIndex = hints.segmentMove.segmentStartIndex,\n newSegmentStartIndex = hints.segmentMove.newSegmentStartIndex;\n\n // if label was on moved segment return new segment index\n if (index === oldSegmentStartIndex) {\n return newSegmentStartIndex;\n }\n\n // label is after new segment index\n if (index >= newSegmentStartIndex) {\n return (index+offset < newSegmentStartIndex) ? newSegmentStartIndex : index+offset;\n }\n\n // if label is before new segment index\n return index;\n }\n\n // bendpointMove happened\n if (hints.bendpointMove) {\n\n var insert = hints.bendpointMove.insert,\n bendpointIndex = hints.bendpointMove.bendpointIndex,\n newIndex;\n\n // waypoints length didnt change\n if (offset === 0) {\n return index;\n }\n\n // label behind new/removed bendpoint\n if (index >= bendpointIndex) {\n newIndex = insert ? index + 1 : index - 1;\n }\n\n // label before new/removed bendpoint\n if (index < bendpointIndex) {\n\n newIndex = index;\n\n // decide label should take right or left segment\n if (insert && attachment.type !== 'bendpoint' && bendpointIndex-1 === index) {\n\n var rel = relativePositionMidWaypoint(newWaypoints, bendpointIndex);\n\n if (rel < attachment.relativeLocation) {\n newIndex++;\n }\n }\n }\n\n return newIndex;\n }\n\n // start/end changed\n if (offset === 0) {\n return index;\n }\n\n if (hints.connectionStart) {\n return (index === 0) ? 0 : null;\n }\n\n if (hints.connectionEnd) {\n return (index === oldWaypoints.length - 2) ? newWaypoints.length - 2 : null;\n }\n\n // if nothing fits, return null\n return null;\n}\n\n\n/**\n * Calculate the required adjustment (move delta) for the given label\n * after the connection waypoints got updated.\n *\n * @param {djs.model.Label} label\n * @param {Array} newWaypoints\n * @param {Array} oldWaypoints\n * @param {Object} hints\n *\n * @return {Point} delta\n */\nfunction getLabelAdjustment(label, newWaypoints, oldWaypoints, hints) {\n\n var x = 0,\n y = 0;\n\n var labelPosition = getLabelMid(label);\n\n // get closest attachment\n var attachment = (0,_LineAttachmentUtil__WEBPACK_IMPORTED_MODULE_0__.getAttachment)(labelPosition, oldWaypoints),\n oldLabelLineIndex = attachment.segmentIndex,\n newLabelLineIndex = findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints);\n\n if (newLabelLineIndex === null) {\n return { x: x, y: y };\n }\n\n // should never happen\n // TODO(@janstuemmel): throw an error here when connectionSegmentMove is refactored\n if (newLabelLineIndex < 0 ||\n newLabelLineIndex > newWaypoints.length - 2) {\n return { x: x, y: y };\n }\n\n var oldLabelLine = getLine(oldWaypoints, oldLabelLineIndex),\n newLabelLine = getLine(newWaypoints, newLabelLineIndex),\n oldFoot = attachment.position;\n\n var relativeFootPosition = getRelativeFootPosition(oldLabelLine, oldFoot),\n angleDelta = getAngleDelta(oldLabelLine, newLabelLine);\n\n // special rule if label on bendpoint\n if (attachment.type === 'bendpoint') {\n\n var offset = newWaypoints.length - oldWaypoints.length,\n oldBendpointIndex = attachment.bendpointIndex,\n oldBendpoint = oldWaypoints[oldBendpointIndex];\n\n // bendpoint position hasn't changed, return same position\n if (newWaypoints.indexOf(oldBendpoint) !== -1) {\n return { x: x, y: y };\n }\n\n // new bendpoint and old bendpoint have same index, then just return the offset\n if (offset === 0) {\n var newBendpoint = newWaypoints[oldBendpointIndex];\n\n return {\n x: newBendpoint.x - attachment.position.x,\n y: newBendpoint.y - attachment.position.y\n };\n }\n\n // if bendpoints get removed\n if (offset < 0 && oldBendpointIndex !== 0 && oldBendpointIndex < oldWaypoints.length - 1) {\n relativeFootPosition = relativePositionMidWaypoint(oldWaypoints, oldBendpointIndex);\n }\n }\n\n var newFoot = {\n x: (newLabelLine[1].x - newLabelLine[0].x) * relativeFootPosition + newLabelLine[0].x,\n y: (newLabelLine[1].y - newLabelLine[0].y) * relativeFootPosition + newLabelLine[0].y\n };\n\n // the rotated vector to label\n var newLabelVector = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.rotateVector)({\n x: labelPosition.x - oldFoot.x,\n y: labelPosition.y - oldFoot.y\n }, angleDelta);\n\n // the new relative position\n x = newFoot.x + newLabelVector.x - labelPosition.x;\n y = newFoot.y + newLabelVector.y - labelPosition.y;\n\n return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.roundPoint)({\n x: x,\n y: y\n });\n}\n\n\n// HELPERS //////////////////////\n\nfunction relativePositionMidWaypoint(waypoints, idx) {\n\n var distanceSegment1 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(waypoints[idx-1], waypoints[idx]),\n distanceSegment2 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(waypoints[idx], waypoints[idx+1]);\n\n var relativePosition = distanceSegment1 / (distanceSegment1 + distanceSegment2);\n\n return relativePosition;\n}\n\nfunction getLabelMid(label) {\n return {\n x: label.x + label.width / 2,\n y: label.y + label.height / 2\n };\n}\n\nfunction getAngleDelta(l1, l2) {\n var a1 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getAngle)(l1),\n a2 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getAngle)(l2);\n return a2 - a1;\n}\n\nfunction getLine(waypoints, idx) {\n return [ waypoints[idx], waypoints[idx+1] ];\n}\n\nfunction getRelativeFootPosition(line, foot) {\n\n var length = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(line[0], line[1]),\n lengthToFoot = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(line[0], foot);\n\n return length === 0 ? 0 : lengthToFoot / length;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js": /*!****************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getAttachment\": () => (/* binding */ getAttachment)\n/* harmony export */ });\nvar sqrt = Math.sqrt,\n min = Math.min,\n max = Math.max,\n abs = Math.abs;\n\n/**\n * Calculate the square (power to two) of a number.\n *\n * @param {number} n\n *\n * @return {number}\n */\nfunction sq(n) {\n return Math.pow(n, 2);\n}\n\n/**\n * Get distance between two points.\n *\n * @param {Point} p1\n * @param {Point} p2\n *\n * @return {number}\n */\nfunction getDistance(p1, p2) {\n return sqrt(sq(p1.x - p2.x) + sq(p1.y - p2.y));\n}\n\n/**\n * Return the attachment of the given point on the specified line.\n *\n * The attachment is either a bendpoint (attached to the given point)\n * or segment (attached to a location on a line segment) attachment:\n *\n * ```javascript\n * var pointAttachment = {\n * type: 'bendpoint',\n * bendpointIndex: 3,\n * position: { x: 10, y: 10 } // the attach point on the line\n * };\n *\n * var segmentAttachment = {\n * type: 'segment',\n * segmentIndex: 2,\n * relativeLocation: 0.31, // attach point location between 0 (at start) and 1 (at end)\n * position: { x: 10, y: 10 } // the attach point on the line\n * };\n * ```\n *\n * @param {Point} point\n * @param {Array} line\n *\n * @return {Object} attachment\n */\nfunction getAttachment(point, line) {\n\n var idx = 0,\n segmentStart,\n segmentEnd,\n segmentStartDistance,\n segmentEndDistance,\n attachmentPosition,\n minDistance,\n intersections,\n attachment,\n attachmentDistance,\n closestAttachmentDistance,\n closestAttachment;\n\n for (idx = 0; idx < line.length - 1; idx++) {\n\n segmentStart = line[idx];\n segmentEnd = line[idx + 1];\n\n if (pointsEqual(segmentStart, segmentEnd)) {\n intersections = [ segmentStart ];\n } else {\n segmentStartDistance = getDistance(point, segmentStart);\n segmentEndDistance = getDistance(point, segmentEnd);\n\n minDistance = min(segmentStartDistance, segmentEndDistance);\n\n intersections = getCircleSegmentIntersections(segmentStart, segmentEnd, point, minDistance);\n }\n\n if (intersections.length < 1) {\n throw new Error('expected between [1, 2] circle -> line intersections');\n }\n\n // one intersection -> bendpoint attachment\n if (intersections.length === 1) {\n attachment = {\n type: 'bendpoint',\n position: intersections[0],\n segmentIndex: idx,\n bendpointIndex: pointsEqual(segmentStart, intersections[0]) ? idx : idx + 1\n };\n }\n\n // two intersections -> segment attachment\n if (intersections.length === 2) {\n\n attachmentPosition = mid(intersections[0], intersections[1]);\n\n attachment = {\n type: 'segment',\n position: attachmentPosition,\n segmentIndex: idx,\n relativeLocation: getDistance(segmentStart, attachmentPosition) / getDistance(segmentStart, segmentEnd)\n };\n }\n\n attachmentDistance = getDistance(attachment.position, point);\n\n if (!closestAttachment || closestAttachmentDistance > attachmentDistance) {\n closestAttachment = attachment;\n closestAttachmentDistance = attachmentDistance;\n }\n }\n\n return closestAttachment;\n}\n\n/**\n * Gets the intersection between a circle and a line segment.\n *\n * @param {Point} s1 segment start\n * @param {Point} s2 segment end\n * @param {Point} cc circle center\n * @param {number} cr circle radius\n *\n * @return {Array} intersections\n */\nfunction getCircleSegmentIntersections(s1, s2, cc, cr) {\n\n var baX = s2.x - s1.x;\n var baY = s2.y - s1.y;\n var caX = cc.x - s1.x;\n var caY = cc.y - s1.y;\n\n var a = baX * baX + baY * baY;\n var bBy2 = baX * caX + baY * caY;\n var c = caX * caX + caY * caY - cr * cr;\n\n var pBy2 = bBy2 / a;\n var q = c / a;\n\n var disc = pBy2 * pBy2 - q;\n\n // check against negative value to work around\n // negative, very close to zero results (-4e-15)\n // being produced in some environments\n if (disc < 0 && disc > -0.000001) {\n disc = 0;\n }\n\n if (disc < 0) {\n return [];\n }\n\n // if disc == 0 ... dealt with later\n var tmpSqrt = sqrt(disc);\n var abScalingFactor1 = -pBy2 + tmpSqrt;\n var abScalingFactor2 = -pBy2 - tmpSqrt;\n\n var i1 = {\n x: s1.x - baX * abScalingFactor1,\n y: s1.y - baY * abScalingFactor1\n };\n\n if (disc === 0) { // abScalingFactor1 == abScalingFactor2\n return [ i1 ];\n }\n\n var i2 = {\n x: s1.x - baX * abScalingFactor2,\n y: s1.y - baY * abScalingFactor2\n };\n\n // return only points on line segment\n return [ i1, i2 ].filter(function(p) {\n return isPointInSegment(p, s1, s2);\n });\n}\n\n\nfunction isPointInSegment(p, segmentStart, segmentEnd) {\n return (\n fenced(p.x, segmentStart.x, segmentEnd.x) &&\n fenced(p.y, segmentStart.y, segmentEnd.y)\n );\n}\n\nfunction fenced(n, rangeStart, rangeEnd) {\n\n // use matching threshold to work around\n // precision errors in intersection computation\n\n return (\n n >= min(rangeStart, rangeEnd) - EQUAL_THRESHOLD &&\n n <= max(rangeStart, rangeEnd) + EQUAL_THRESHOLD\n );\n}\n\n/**\n * Calculate mid of two points.\n *\n * @param {Point} p1\n * @param {Point} p2\n *\n * @return {Point}\n */\nfunction mid(p1, p2) {\n\n return {\n x: (p1.x + p2.x) / 2,\n y: (p1.y + p2.y) / 2\n };\n}\n\nvar EQUAL_THRESHOLD = 0.1;\n\nfunction pointsEqual(p1, p2) {\n\n return (\n abs(p1.x - p2.x) <= EQUAL_THRESHOLD &&\n abs(p1.y - p2.y) <= EQUAL_THRESHOLD\n );\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ lineIntersect)\n/* harmony export */ });\n/**\n * Returns the intersection between two line segments a and b.\n *\n * @param {Point} l1s\n * @param {Point} l1e\n * @param {Point} l2s\n * @param {Point} l2e\n *\n * @return {Point}\n */\nfunction lineIntersect(l1s, l1e, l2s, l2e) {\n\n // if the lines intersect, the result contains the x and y of the\n // intersection (treating the lines as infinite) and booleans for\n // whether line segment 1 or line segment 2 contain the point\n var denominator, a, b, c, numerator;\n\n denominator = ((l2e.y - l2s.y) * (l1e.x - l1s.x)) - ((l2e.x - l2s.x) * (l1e.y - l1s.y));\n\n if (denominator == 0) {\n return null;\n }\n\n a = l1s.y - l2s.y;\n b = l1s.x - l2s.x;\n numerator = ((l2e.x - l2s.x) * a) - ((l2e.y - l2s.y) * b);\n\n c = numerator / denominator;\n\n // if we cast these lines infinitely in\n // both directions, they intersect here\n return {\n x: Math.round(l1s.x + (c * (l1e.x - l1s.x))),\n y: Math.round(l1s.y + (c * (l1e.y - l1s.y)))\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js": /*!********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getParticipantResizeConstraints\": () => (/* binding */ getParticipantResizeConstraints)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../modeling/util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ResizeBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar abs = Math.abs,\r\n min = Math.min,\r\n max = Math.max;\r\n\r\n\r\nfunction addToTrbl(trbl, attr, value, choice) {\r\n var current = trbl[attr];\r\n\r\n // make sure to set the value if it does not exist\r\n // or apply the correct value by comparing against\r\n // choice(value, currentValue)\r\n trbl[attr] = current === undefined ? value : choice(value, current);\r\n}\r\n\r\nfunction addMin(trbl, attr, value) {\r\n return addToTrbl(trbl, attr, value, min);\r\n}\r\n\r\nfunction addMax(trbl, attr, value) {\r\n return addToTrbl(trbl, attr, value, max);\r\n}\r\n\r\nvar LANE_RIGHT_PADDING = 20,\r\n LANE_LEFT_PADDING = 50,\r\n LANE_TOP_PADDING = 20,\r\n LANE_BOTTOM_PADDING = 20;\r\n\r\n\r\nfunction getParticipantResizeConstraints(laneShape, resizeDirection, balanced) {\r\n var lanesRoot = (0,_modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getLanesRoot)(laneShape);\r\n\r\n var isFirst = true,\r\n isLast = true;\r\n\r\n // max top/bottom size for lanes\r\n var allLanes = (0,_modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.collectLanes)(lanesRoot, [ lanesRoot ]);\r\n\r\n var laneTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(laneShape);\r\n\r\n var maxTrbl = {},\r\n minTrbl = {};\r\n\r\n if (/e/.test(resizeDirection)) {\r\n minTrbl.right = laneTrbl.left + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.width;\r\n } else\r\n if (/w/.test(resizeDirection)) {\r\n minTrbl.left = laneTrbl.right - _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.width;\r\n }\r\n\r\n allLanes.forEach(function(other) {\r\n\r\n var otherTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(other);\r\n\r\n if (/n/.test(resizeDirection)) {\r\n\r\n if (otherTrbl.top < (laneTrbl.top - 10)) {\r\n isFirst = false;\r\n }\r\n\r\n // max top size (based on next element)\r\n if (balanced && abs(laneTrbl.top - otherTrbl.bottom) < 10) {\r\n addMax(maxTrbl, 'top', otherTrbl.top + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n }\r\n\r\n // min top size (based on self or nested element)\r\n if (abs(laneTrbl.top - otherTrbl.top) < 5) {\r\n addMin(minTrbl, 'top', otherTrbl.bottom - _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n }\r\n }\r\n\r\n if (/s/.test(resizeDirection)) {\r\n\r\n if (otherTrbl.bottom > (laneTrbl.bottom + 10)) {\r\n isLast = false;\r\n }\r\n\r\n // max bottom size (based on previous element)\r\n if (balanced && abs(laneTrbl.bottom - otherTrbl.top) < 10) {\r\n addMin(maxTrbl, 'bottom', otherTrbl.bottom - _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n }\r\n\r\n // min bottom size (based on self or nested element)\r\n if (abs(laneTrbl.bottom - otherTrbl.bottom) < 5) {\r\n addMax(minTrbl, 'bottom', otherTrbl.top + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n }\r\n }\r\n });\r\n\r\n // max top/bottom/left/right size based on flow nodes\r\n var flowElements = lanesRoot.children.filter(function(s) {\r\n return !s.hidden && !s.waypoints && ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(s, 'bpmn:FlowElement') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(s, 'bpmn:Artifact'));\r\n });\r\n\r\n flowElements.forEach(function(flowElement) {\r\n\r\n var flowElementTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(flowElement);\r\n\r\n if (isFirst && /n/.test(resizeDirection)) {\r\n addMin(minTrbl, 'top', flowElementTrbl.top - LANE_TOP_PADDING);\r\n }\r\n\r\n if (/e/.test(resizeDirection)) {\r\n addMax(minTrbl, 'right', flowElementTrbl.right + LANE_RIGHT_PADDING);\r\n }\r\n\r\n if (isLast && /s/.test(resizeDirection)) {\r\n addMax(minTrbl, 'bottom', flowElementTrbl.bottom + LANE_BOTTOM_PADDING);\r\n }\r\n\r\n if (/w/.test(resizeDirection)) {\r\n addMin(minTrbl, 'left', flowElementTrbl.left - LANE_LEFT_PADDING);\r\n }\r\n });\r\n\r\n return {\r\n min: minTrbl,\r\n max: maxTrbl\r\n };\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js": /*!**************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AddLaneHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n\n\n\n\n\n\n\n/**\n * A handler that allows us to add a new lane\n * above or below an existing one.\n *\n * @param {Modeling} modeling\n * @param {SpaceTool} spaceTool\n */\nfunction AddLaneHandler(modeling, spaceTool) {\n this._modeling = modeling;\n this._spaceTool = spaceTool;\n}\n\nAddLaneHandler.$inject = [\n 'modeling',\n 'spaceTool'\n];\n\n\nAddLaneHandler.prototype.preExecute = function(context) {\n\n var spaceTool = this._spaceTool,\n modeling = this._modeling;\n\n var shape = context.shape,\n location = context.location;\n\n var lanesRoot = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getLanesRoot)(shape);\n\n var isRoot = lanesRoot === shape,\n laneParent = isRoot ? shape : shape.parent;\n\n var existingChildLanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getChildLanes)(laneParent);\n\n // (0) add a lane if we currently got none and are adding to root\n if (!existingChildLanes.length) {\n modeling.createShape({ type: 'bpmn:Lane' }, {\n x: shape.x + _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n y: shape.y,\n width: shape.width - _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n height: shape.height\n }, laneParent);\n }\n\n // (1) collect affected elements to create necessary space\n var allAffected = [];\n\n (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__.eachElement)(lanesRoot, function(element) {\n allAffected.push(element);\n\n // handle element labels in the diagram root\n if (element.label) {\n allAffected.push(element.label);\n }\n\n if (element === shape) {\n return [];\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(element.children, function(c) {\n return c !== shape;\n });\n });\n\n var offset = location === 'top' ? -120 : 120,\n lanePosition = location === 'top' ? shape.y : shape.y + shape.height,\n spacePos = lanePosition + (location === 'top' ? 10 : -10),\n direction = location === 'top' ? 'n' : 's';\n\n var adjustments = spaceTool.calculateAdjustments(allAffected, 'y', offset, spacePos);\n\n spaceTool.makeSpace(\n adjustments.movingShapes,\n adjustments.resizingShapes,\n { x: 0, y: offset },\n direction,\n spacePos\n );\n\n // (2) create new lane at open space\n context.newLane = modeling.createShape({ type: 'bpmn:Lane' }, {\n x: shape.x + (isRoot ? _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION : 0),\n y: lanePosition - (location === 'top' ? 120 : 0),\n width: shape.width - (isRoot ? _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION : 0),\n height: 120\n }, laneParent);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js": /*!**************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ IdClaimHandler)\n/* harmony export */ });\nfunction IdClaimHandler(moddle) {\n this._moddle = moddle;\n}\n\nIdClaimHandler.$inject = [ 'moddle' ];\n\n\nIdClaimHandler.prototype.execute = function(context) {\n var ids = this._moddle.ids,\n id = context.id,\n element = context.element,\n claiming = context.claiming;\n\n if (claiming) {\n ids.claim(id, element);\n } else {\n ids.unclaim(id);\n }\n};\n\n/**\n * Command revert implementation.\n */\nIdClaimHandler.prototype.revert = function(context) {\n var ids = this._moddle.ids,\n id = context.id,\n element = context.element,\n claiming = context.claiming;\n\n if (claiming) {\n ids.unclaim(id);\n } else {\n ids.claim(id, element);\n }\n};\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js": /*!*****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizeLaneHandler)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/resize/ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A handler that resizes a lane.\n *\n * @param {Modeling} modeling\n */\nfunction ResizeLaneHandler(modeling, spaceTool) {\n this._modeling = modeling;\n this._spaceTool = spaceTool;\n}\n\nResizeLaneHandler.$inject = [\n 'modeling',\n 'spaceTool'\n];\n\n\nResizeLaneHandler.prototype.preExecute = function(context) {\n\n var shape = context.shape,\n newBounds = context.newBounds,\n balanced = context.balanced;\n\n if (balanced !== false) {\n this.resizeBalanced(shape, newBounds);\n } else {\n this.resizeSpace(shape, newBounds);\n }\n};\n\n\n/**\n * Resize balanced, adjusting next / previous lane sizes.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n */\nResizeLaneHandler.prototype.resizeBalanced = function(shape, newBounds) {\n\n var modeling = this._modeling;\n\n var resizeNeeded = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.computeLanesResize)(shape, newBounds);\n\n // resize the lane\n modeling.resizeShape(shape, newBounds);\n\n // resize other lanes as needed\n resizeNeeded.forEach(function(r) {\n modeling.resizeShape(r.shape, r.newBounds);\n });\n};\n\n\n/**\n * Resize, making actual space and moving below / above elements.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n */\nResizeLaneHandler.prototype.resizeSpace = function(shape, newBounds) {\n var spaceTool = this._spaceTool;\n\n var shapeTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(shape),\n newTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds);\n\n var trblDiff = (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__.substractTRBL)(newTrbl, shapeTrbl);\n\n var lanesRoot = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getLanesRoot)(shape);\n\n var allAffected = [],\n allLanes = [];\n\n (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__.eachElement)(lanesRoot, function(element) {\n allAffected.push(element);\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant')) {\n allLanes.push(element);\n }\n\n return element.children;\n });\n\n var change,\n spacePos,\n direction,\n offset,\n adjustments;\n\n if (trblDiff.bottom || trblDiff.top) {\n\n change = trblDiff.bottom || trblDiff.top;\n spacePos = shape.y + (trblDiff.bottom ? shape.height : 0) + (trblDiff.bottom ? -10 : 10);\n direction = trblDiff.bottom ? 's' : 'n';\n\n offset = trblDiff.top > 0 || trblDiff.bottom < 0 ? -change : change;\n\n adjustments = spaceTool.calculateAdjustments(allAffected, 'y', offset, spacePos);\n\n spaceTool.makeSpace(adjustments.movingShapes, adjustments.resizingShapes, { x: 0, y: change }, direction);\n }\n\n\n if (trblDiff.left || trblDiff.right) {\n\n change = trblDiff.right || trblDiff.left;\n spacePos = shape.x + (trblDiff.right ? shape.width : 0) + (trblDiff.right ? -10 : 100);\n direction = trblDiff.right ? 'e' : 'w';\n\n offset = trblDiff.left > 0 || trblDiff.right < 0 ? -change : change;\n\n adjustments = spaceTool.calculateAdjustments(allLanes, 'x', offset, spacePos);\n\n spaceTool.makeSpace(adjustments.movingShapes, adjustments.resizingShapes, { x: change, y: 0 }, direction);\n }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SetColorHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\nvar DEFAULT_COLORS = {\r\n fill: undefined,\r\n stroke: undefined\r\n};\r\n\r\n\r\nfunction SetColorHandler(commandStack) {\r\n this._commandStack = commandStack;\r\n\r\n this._normalizeColor = function(color) {\r\n\r\n // Remove color for falsy values.\r\n if (!color) {\r\n return undefined;\r\n }\r\n\r\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isString)(color)) {\r\n var hexColor = colorToHex(color);\r\n\r\n if (hexColor) {\r\n return hexColor;\r\n }\r\n }\r\n\r\n throw new Error('invalid color value: ' + color);\r\n };\r\n}\r\n\r\nSetColorHandler.$inject = [\r\n 'commandStack'\r\n];\r\n\r\n\r\nSetColorHandler.prototype.postExecute = function(context) {\r\n var elements = context.elements,\r\n colors = context.colors || DEFAULT_COLORS;\r\n\r\n var self = this;\r\n\r\n var di = {};\r\n\r\n if ('fill' in colors) {\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(di, {\r\n 'background-color': this._normalizeColor(colors.fill) });\r\n }\r\n\r\n if ('stroke' in colors) {\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(di, {\r\n 'border-color': this._normalizeColor(colors.stroke) });\r\n }\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n var assignedDi = isConnection(element) ? (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(di, [ 'border-color' ]) : di;\r\n\r\n // TODO @barmac: remove once we drop bpmn.io properties\r\n ensureLegacySupport(assignedDi);\r\n\r\n self._commandStack.execute('element.updateProperties', {\r\n element: element,\r\n properties: {\r\n di: assignedDi\r\n }\r\n });\r\n });\r\n\r\n};\r\n\r\n/**\r\n * Convert color from rgb(a)/hsl to hex. Returns `null` for unknown color names and for colors\r\n * with alpha less than 1.0. This depends on `` serialization of the `context.fillStyle`.\r\n * Cf. https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillstyle\r\n *\r\n * @example\r\n * ```js\r\n * var color = 'fuchsia';\r\n * console.log(colorToHex(color));\r\n * // \"#ff00ff\"\r\n * color = 'rgba(1,2,3,0.4)';\r\n * console.log(colorToHex(color));\r\n * // null\r\n * ```\r\n *\r\n * @param {string} color\r\n * @returns {string|null}\r\n */\r\nfunction colorToHex(color) {\r\n var context = document.createElement('canvas').getContext('2d');\r\n\r\n // (0) Start with transparent to account for browser default values.\r\n context.fillStyle = 'transparent';\r\n\r\n // (1) Assign color so that it's serialized.\r\n context.fillStyle = color;\r\n\r\n // (2) Return null for non-hex serialization result.\r\n return /^#[0-9a-fA-F]{6}$/.test(context.fillStyle) ? context.fillStyle : null;\r\n}\r\n\r\nfunction isConnection(element) {\r\n return !!element.waypoints;\r\n}\r\n\r\n/**\r\n * Add legacy properties if required.\r\n * @param {{ 'border-color': string?, 'background-color': string? }} di\r\n */\r\nfunction ensureLegacySupport(di) {\r\n if ('border-color' in di) {\r\n di.stroke = di['border-color'];\r\n }\r\n\r\n if ('background-color' in di) {\r\n di.fill = di['background-color'];\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js": /*!****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SplitLaneHandler)\n/* harmony export */ });\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n\n\n\n/**\n * A handler that splits a lane into a number of sub-lanes,\n * creating new sub lanes, if necessary.\n *\n * @param {Modeling} modeling\n */\nfunction SplitLaneHandler(modeling, translate) {\n this._modeling = modeling;\n this._translate = translate;\n}\n\nSplitLaneHandler.$inject = [\n 'modeling',\n 'translate'\n];\n\n\nSplitLaneHandler.prototype.preExecute = function(context) {\n\n var modeling = this._modeling,\n translate = this._translate;\n\n var shape = context.shape,\n newLanesCount = context.count;\n\n var childLanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getChildLanes)(shape),\n existingLanesCount = childLanes.length;\n\n if (existingLanesCount > newLanesCount) {\n throw new Error(translate('more than {count} child lanes', { count: newLanesCount }));\n }\n\n var newLanesHeight = Math.round(shape.height / newLanesCount);\n\n // Iterate from top to bottom in child lane order,\n // resizing existing lanes and creating new ones\n // so that they split the parent proportionally.\n //\n // Due to rounding related errors, the bottom lane\n // needs to take up all the remaining space.\n var laneY,\n laneHeight,\n laneBounds,\n newLaneAttrs,\n idx;\n\n for (idx = 0; idx < newLanesCount; idx++) {\n\n laneY = shape.y + idx * newLanesHeight;\n\n // if bottom lane\n if (idx === newLanesCount - 1) {\n laneHeight = shape.height - (newLanesHeight * idx);\n } else {\n laneHeight = newLanesHeight;\n }\n\n laneBounds = {\n x: shape.x + _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n y: laneY,\n width: shape.width - _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n height: laneHeight\n };\n\n if (idx < existingLanesCount) {\n\n // resize existing lane\n modeling.resizeShape(childLanes[idx], laneBounds);\n } else {\n\n // create a new lane at position\n newLaneAttrs = {\n type: 'bpmn:Lane'\n };\n\n modeling.createShape(newLaneAttrs, laneBounds, shape);\n }\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateCanvasRootHandler)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n\nfunction UpdateCanvasRootHandler(canvas, modeling) {\n this._canvas = canvas;\n this._modeling = modeling;\n}\n\nUpdateCanvasRootHandler.$inject = [\n 'canvas',\n 'modeling'\n];\n\n\nUpdateCanvasRootHandler.prototype.execute = function(context) {\n\n var canvas = this._canvas;\n\n var newRoot = context.newRoot,\n newRootBusinessObject = newRoot.businessObject,\n oldRoot = canvas.getRootElement(),\n oldRootBusinessObject = oldRoot.businessObject,\n bpmnDefinitions = oldRootBusinessObject.$parent,\n diPlane = oldRootBusinessObject.di;\n\n // (1) replace process old <> new root\n canvas.setRootElement(newRoot, true);\n\n // (2) update root elements\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(bpmnDefinitions.rootElements, newRootBusinessObject);\n newRootBusinessObject.$parent = bpmnDefinitions;\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(bpmnDefinitions.rootElements, oldRootBusinessObject);\n oldRootBusinessObject.$parent = null;\n\n // (3) wire di\n oldRootBusinessObject.di = null;\n\n diPlane.bpmnElement = newRootBusinessObject;\n newRootBusinessObject.di = diPlane;\n\n context.oldRoot = oldRoot;\n\n // TODO(nikku): return changed elements?\n // return [ newRoot, oldRoot ];\n};\n\n\nUpdateCanvasRootHandler.prototype.revert = function(context) {\n\n var canvas = this._canvas;\n\n var newRoot = context.newRoot,\n newRootBusinessObject = newRoot.businessObject,\n oldRoot = context.oldRoot,\n oldRootBusinessObject = oldRoot.businessObject,\n bpmnDefinitions = newRootBusinessObject.$parent,\n diPlane = newRootBusinessObject.di;\n\n // (1) replace process old <> new root\n canvas.setRootElement(oldRoot, true);\n\n // (2) update root elements\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(bpmnDefinitions.rootElements, newRootBusinessObject);\n newRootBusinessObject.$parent = null;\n\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(bpmnDefinitions.rootElements, oldRootBusinessObject);\n oldRootBusinessObject.$parent = bpmnDefinitions;\n\n // (3) wire di\n newRootBusinessObject.di = null;\n\n diPlane.bpmnElement = oldRootBusinessObject;\n oldRootBusinessObject.di = diPlane;\n\n // TODO(nikku): return changed elements?\n // return [ newRoot, oldRoot ];\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js": /*!*************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateFlowNodeRefsHandler)\n/* harmony export */ });\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\n\nvar FLOW_NODE_REFS_ATTR = 'flowNodeRef',\n LANES_ATTR = 'lanes';\n\n\n/**\n * A handler that updates lane refs on changed elements\n */\nfunction UpdateFlowNodeRefsHandler(elementRegistry) {\n this._elementRegistry = elementRegistry;\n}\n\nUpdateFlowNodeRefsHandler.$inject = [\n 'elementRegistry'\n];\n\n\nUpdateFlowNodeRefsHandler.prototype.computeUpdates = function(flowNodeShapes, laneShapes) {\n\n var handledNodes = [];\n\n var updates = [];\n\n var participantCache = {};\n\n var allFlowNodeShapes = [];\n\n function isInLaneShape(element, laneShape) {\n\n var laneTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.asTRBL)(laneShape);\n\n var elementMid = {\n x: element.x + element.width / 2,\n y: element.y + element.height / 2\n };\n\n return elementMid.x > laneTrbl.left &&\n elementMid.x < laneTrbl.right &&\n elementMid.y > laneTrbl.top &&\n elementMid.y < laneTrbl.bottom;\n }\n\n function addFlowNodeShape(flowNodeShape) {\n if (handledNodes.indexOf(flowNodeShape) === -1) {\n allFlowNodeShapes.push(flowNodeShape);\n handledNodes.push(flowNodeShape);\n }\n }\n\n function getAllLaneShapes(flowNodeShape) {\n\n var root = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__.getLanesRoot)(flowNodeShape);\n\n if (!participantCache[root.id]) {\n participantCache[root.id] = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__.collectLanes)(root);\n }\n\n return participantCache[root.id];\n }\n\n function getNewLanes(flowNodeShape) {\n if (!flowNodeShape.parent) {\n return [];\n }\n\n var allLaneShapes = getAllLaneShapes(flowNodeShape);\n\n return allLaneShapes.filter(function(l) {\n return isInLaneShape(flowNodeShape, l);\n }).map(function(shape) {\n return shape.businessObject;\n });\n }\n\n laneShapes.forEach(function(laneShape) {\n var root = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__.getLanesRoot)(laneShape);\n\n if (!root || handledNodes.indexOf(root) !== -1) {\n return;\n }\n\n var children = root.children.filter(function(c) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(c, 'bpmn:FlowNode');\n });\n\n children.forEach(addFlowNodeShape);\n\n handledNodes.push(root);\n });\n\n flowNodeShapes.forEach(addFlowNodeShape);\n\n\n allFlowNodeShapes.forEach(function(flowNodeShape) {\n\n var flowNode = flowNodeShape.businessObject;\n\n var lanes = flowNode.get(LANES_ATTR),\n remove = lanes.slice(),\n add = getNewLanes(flowNodeShape);\n\n updates.push({ flowNode: flowNode, remove: remove, add: add });\n });\n\n laneShapes.forEach(function(laneShape) {\n\n var lane = laneShape.businessObject;\n\n // lane got removed XX-)\n if (!laneShape.parent) {\n lane.get(FLOW_NODE_REFS_ATTR).forEach(function(flowNode) {\n updates.push({ flowNode: flowNode, remove: [ lane ], add: [] });\n });\n }\n });\n\n return updates;\n};\n\nUpdateFlowNodeRefsHandler.prototype.execute = function(context) {\n\n var updates = context.updates;\n\n if (!updates) {\n updates = context.updates = this.computeUpdates(context.flowNodeShapes, context.laneShapes);\n }\n\n\n updates.forEach(function(update) {\n\n var flowNode = update.flowNode,\n lanes = flowNode.get(LANES_ATTR);\n\n // unwire old\n update.remove.forEach(function(oldLane) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(lanes, oldLane);\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(oldLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n });\n\n // wire new\n update.add.forEach(function(newLane) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(lanes, newLane);\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(newLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n });\n });\n\n // TODO(nikku): return changed elements\n // return [ ... ];\n};\n\n\nUpdateFlowNodeRefsHandler.prototype.revert = function(context) {\n\n var updates = context.updates;\n\n updates.forEach(function(update) {\n\n var flowNode = update.flowNode,\n lanes = flowNode.get(LANES_ATTR);\n\n // unwire new\n update.add.forEach(function(newLane) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(lanes, newLane);\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(newLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n });\n\n // wire old\n update.remove.forEach(function(oldLane) {\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(lanes, oldLane);\n (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(oldLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n });\n });\n\n // TODO(nikku): return changed elements\n // return [ ... ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js": /*!*****************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js ***! \*****************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar reduce = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").reduce,\n keys = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").keys,\n forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n is = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n getBusinessObject = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n\nfunction UpdateModdlePropertiesHandler(elementRegistry) {\n this._elementRegistry = elementRegistry;\n}\n\nUpdateModdlePropertiesHandler.$inject = ['elementRegistry'];\n\nmodule.exports = UpdateModdlePropertiesHandler;\n\n\nUpdateModdlePropertiesHandler.prototype.execute = function(context) {\n\n var element = context.element,\n moddleElement = context.moddleElement,\n properties = context.properties;\n\n if (!moddleElement) {\n throw new Error(' required');\n }\n\n var changed = context.changed || this.getVisualReferences(moddleElement).concat(element);\n var oldProperties = context.oldProperties || getModdleProperties(moddleElement, keys(properties));\n\n setModdleProperties(moddleElement, properties);\n\n context.oldProperties = oldProperties;\n context.changed = changed;\n\n return changed;\n};\n\nUpdateModdlePropertiesHandler.prototype.revert = function(context) {\n var oldProperties = context.oldProperties,\n moddleElement = context.moddleElement,\n changed = context.changed;\n\n setModdleProperties(moddleElement, oldProperties);\n\n return changed;\n};\n\n/**\n * Return visual references of given moddle element within the diagram.\n *\n * @param {ModdleElement} moddleElement\n *\n * @return {Array}\n */\nUpdateModdlePropertiesHandler.prototype.getVisualReferences = function(moddleElement) {\n\n var elementRegistry = this._elementRegistry;\n\n if (is(moddleElement, 'bpmn:DataObject')) {\n return getAllDataObjectReferences(moddleElement, elementRegistry);\n }\n\n return [];\n};\n\n\n// helpers /////////////////\n\nfunction getModdleProperties(moddleElement, propertyNames) {\n return reduce(propertyNames, function(result, key) {\n result[key] = moddleElement.get(key);\n return result;\n }, {});\n}\n\nfunction setModdleProperties(moddleElement, properties) {\n forEach(properties, function(value, key) {\n moddleElement.set(key, value);\n });\n}\n\nfunction getAllDataObjectReferences(dataObject, elementRegistry) {\n return elementRegistry.filter(function(element) {\n return (\n is(element, 'bpmn:DataObjectReference') &&\n getBusinessObject(element).dataObjectRef === dataObject\n );\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js": /*!***********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdatePropertiesHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\nvar DEFAULT_FLOW = 'default',\n ID = 'id',\n DI = 'di';\n\nvar NULL_DIMENSIONS = {\n width: 0,\n height: 0\n};\n\n/**\n * A handler that implements a BPMN 2.0 property update.\n *\n * This should be used to set simple properties on elements with\n * an underlying BPMN business object.\n *\n * Use respective diagram-js provided handlers if you would\n * like to perform automated modeling.\n */\nfunction UpdatePropertiesHandler(\n elementRegistry, moddle, translate,\n modeling, textRenderer) {\n\n this._elementRegistry = elementRegistry;\n this._moddle = moddle;\n this._translate = translate;\n this._modeling = modeling;\n this._textRenderer = textRenderer;\n}\n\nUpdatePropertiesHandler.$inject = [\n 'elementRegistry',\n 'moddle',\n 'translate',\n 'modeling',\n 'textRenderer'\n];\n\n\n// api //////////////////////\n\n/**\n * Updates a BPMN element with a list of new properties\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element the element to update\n * @param {Object} context.properties a list of properties to set on the element's\n * businessObject (the BPMN model element)\n *\n * @return {Array} the updated element\n */\nUpdatePropertiesHandler.prototype.execute = function(context) {\n\n var element = context.element,\n changed = [ element ],\n translate = this._translate;\n\n if (!element) {\n throw new Error(translate('element required'));\n }\n\n var elementRegistry = this._elementRegistry,\n ids = this._moddle.ids;\n\n var businessObject = element.businessObject,\n properties = unwrapBusinessObjects(context.properties),\n oldProperties = context.oldProperties || getProperties(businessObject, properties);\n\n if (isIdChange(properties, businessObject)) {\n ids.unclaim(businessObject[ID]);\n\n elementRegistry.updateId(element, properties[ID]);\n\n ids.claim(properties[ID], businessObject);\n }\n\n // correctly indicate visual changes on default flow updates\n if (DEFAULT_FLOW in properties) {\n\n if (properties[DEFAULT_FLOW]) {\n changed.push(elementRegistry.get(properties[DEFAULT_FLOW].id));\n }\n\n if (businessObject[DEFAULT_FLOW]) {\n changed.push(elementRegistry.get(businessObject[DEFAULT_FLOW].id));\n }\n }\n\n // update properties\n setProperties(businessObject, properties);\n\n // store old values\n context.oldProperties = oldProperties;\n context.changed = changed;\n\n // indicate changed on objects affected by the update\n return changed;\n};\n\n\nUpdatePropertiesHandler.prototype.postExecute = function(context) {\n var element = context.element,\n label = element.label;\n\n var text = label && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(label).name;\n\n if (!text) {\n return;\n }\n\n // get layouted text bounds and resize external\n // external label accordingly\n var newLabelBounds = this._textRenderer.getExternalLabelBounds(label, text);\n\n this._modeling.resizeShape(label, newLabelBounds, NULL_DIMENSIONS);\n};\n\n/**\n * Reverts the update on a BPMN elements properties.\n *\n * @param {Object} context\n *\n * @return {djs.model.Base} the updated element\n */\nUpdatePropertiesHandler.prototype.revert = function(context) {\n\n var element = context.element,\n properties = context.properties,\n oldProperties = context.oldProperties,\n businessObject = element.businessObject,\n elementRegistry = this._elementRegistry,\n ids = this._moddle.ids;\n\n // update properties\n setProperties(businessObject, oldProperties);\n\n if (isIdChange(properties, businessObject)) {\n ids.unclaim(properties[ID]);\n\n elementRegistry.updateId(element, oldProperties[ID]);\n\n ids.claim(oldProperties[ID], businessObject);\n }\n\n return context.changed;\n};\n\n\nfunction isIdChange(properties, businessObject) {\n return ID in properties && properties[ID] !== businessObject[ID];\n}\n\n\nfunction getProperties(businessObject, properties) {\n var propertyNames = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.keys)(properties);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.reduce)(propertyNames, function(result, key) {\n\n // handle DI separately\n if (key !== DI) {\n result[key] = businessObject.get(key);\n } else {\n result[key] = getDiProperties(businessObject.di, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.keys)(properties.di));\n }\n\n return result;\n }, {});\n}\n\n\nfunction getDiProperties(di, propertyNames) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.reduce)(propertyNames, function(result, key) {\n result[key] = di.get(key);\n\n return result;\n }, {});\n}\n\n\nfunction setProperties(businessObject, properties) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(properties, function(value, key) {\n\n if (key !== DI) {\n businessObject.set(key, value);\n } else {\n\n // only update, if businessObject.di exists\n if (businessObject.di) {\n setDiProperties(businessObject.di, value);\n }\n }\n });\n}\n\n\nfunction setDiProperties(di, properties) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(properties, function(value, key) {\n di.set(key, value);\n });\n}\n\n\nvar referencePropertyNames = [ 'default' ];\n\n/**\n * Make sure we unwrap the actual business object\n * behind diagram element that may have been\n * passed as arguments.\n *\n * @param {Object} properties\n *\n * @return {Object} unwrappedProps\n */\nfunction unwrapBusinessObjects(properties) {\n\n var unwrappedProps = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, properties);\n\n referencePropertyNames.forEach(function(name) {\n if (name in properties) {\n unwrappedProps[name] = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(unwrappedProps[name]);\n }\n });\n\n return unwrappedProps;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js": /*!***************************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateSemanticParentHandler)\n/* harmony export */ });\nfunction UpdateSemanticParentHandler(bpmnUpdater) {\r\n this._bpmnUpdater = bpmnUpdater;\r\n}\r\n\r\nUpdateSemanticParentHandler.$inject = [ 'bpmnUpdater' ];\r\n\r\n\r\nUpdateSemanticParentHandler.prototype.execute = function(context) {\r\n var dataStoreBo = context.dataStoreBo,\r\n newSemanticParent = context.newSemanticParent,\r\n newDiParent = context.newDiParent;\r\n\r\n context.oldSemanticParent = dataStoreBo.$parent;\r\n context.oldDiParent = dataStoreBo.di.$parent;\r\n\r\n // update semantic parent\r\n this._bpmnUpdater.updateSemanticParent(dataStoreBo, newSemanticParent);\r\n\r\n // update DI parent\r\n this._bpmnUpdater.updateDiParent(dataStoreBo.di, newDiParent);\r\n};\r\n\r\nUpdateSemanticParentHandler.prototype.revert = function(context) {\r\n var dataStoreBo = context.dataStoreBo,\r\n oldSemanticParent = context.oldSemanticParent,\r\n oldDiParent = context.oldDiParent;\r\n\r\n // update semantic parent\r\n this._bpmnUpdater.updateSemanticParent(dataStoreBo, oldSemanticParent);\r\n\r\n // update DI parent\r\n this._bpmnUpdater.updateDiParent(dataStoreBo.di, oldDiParent);\r\n};\r\n\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/index.js": /*!*************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _behavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./behavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/bpmn-js/lib/features/rules/index.js\");\n/* harmony import */ var _di_ordering__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../di-ordering */ \"./node_modules/bpmn-js/lib/features/di-ordering/index.js\");\n/* harmony import */ var _ordering__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ordering */ \"./node_modules/bpmn-js/lib/features/ordering/index.js\");\n/* harmony import */ var _replace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../replace */ \"./node_modules/bpmn-js/lib/features/replace/index.js\");\n/* harmony import */ var diagram_js_lib_command__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/command */ \"./node_modules/diagram-js/lib/command/index.js\");\n/* harmony import */ var diagram_js_lib_features_tooltips__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/features/tooltips */ \"./node_modules/diagram-js/lib/features/tooltips/index.js\");\n/* harmony import */ var diagram_js_lib_features_label_support__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! diagram-js/lib/features/label-support */ \"./node_modules/diagram-js/lib/features/label-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_attach_support__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! diagram-js/lib/features/attach-support */ \"./node_modules/diagram-js/lib/features/attach-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! diagram-js/lib/features/change-support */ \"./node_modules/diagram-js/lib/features/change-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! diagram-js/lib/features/space-tool */ \"./node_modules/diagram-js/lib/features/space-tool/index.js\");\n/* harmony import */ var _BpmnFactory__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./BpmnFactory */ \"./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js\");\n/* harmony import */ var _BpmnUpdater__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./BpmnUpdater */ \"./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js\");\n/* harmony import */ var _ElementFactory__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ElementFactory */ \"./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js\");\n/* harmony import */ var _Modeling__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Modeling */ \"./node_modules/bpmn-js/lib/features/modeling/Modeling.js\");\n/* harmony import */ var _BpmnLayouter__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./BpmnLayouter */ \"./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js\");\n/* harmony import */ var diagram_js_lib_layout_CroppingConnectionDocking__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! diagram-js/lib/layout/CroppingConnectionDocking */ \"./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [\n 'modeling',\n 'bpmnUpdater'\n ],\n __depends__: [\n _behavior__WEBPACK_IMPORTED_MODULE_0__.default,\n _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n _di_ordering__WEBPACK_IMPORTED_MODULE_2__.default,\n _ordering__WEBPACK_IMPORTED_MODULE_3__.default,\n _replace__WEBPACK_IMPORTED_MODULE_4__.default,\n diagram_js_lib_command__WEBPACK_IMPORTED_MODULE_5__.default,\n diagram_js_lib_features_tooltips__WEBPACK_IMPORTED_MODULE_6__.default,\n diagram_js_lib_features_label_support__WEBPACK_IMPORTED_MODULE_7__.default,\n diagram_js_lib_features_attach_support__WEBPACK_IMPORTED_MODULE_8__.default,\n diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_9__.default,\n diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_10__.default,\n diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_11__.default\n ],\n bpmnFactory: [ 'type', _BpmnFactory__WEBPACK_IMPORTED_MODULE_12__.default ],\n bpmnUpdater: [ 'type', _BpmnUpdater__WEBPACK_IMPORTED_MODULE_13__.default ],\n elementFactory: [ 'type', _ElementFactory__WEBPACK_IMPORTED_MODULE_14__.default ],\n modeling: [ 'type', _Modeling__WEBPACK_IMPORTED_MODULE_15__.default ],\n layouter: [ 'type', _BpmnLayouter__WEBPACK_IMPORTED_MODULE_16__.default ],\n connectionDocking: [ 'type', diagram_js_lib_layout_CroppingConnectionDocking__WEBPACK_IMPORTED_MODULE_17__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js": /*!*********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LANE_INDENTATION\": () => (/* binding */ LANE_INDENTATION),\n/* harmony export */ \"collectLanes\": () => (/* binding */ collectLanes),\n/* harmony export */ \"getChildLanes\": () => (/* binding */ getChildLanes),\n/* harmony export */ \"getLanesRoot\": () => (/* binding */ getLanesRoot),\n/* harmony export */ \"computeLanesResize\": () => (/* binding */ computeLanesResize)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/resize/ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n\n\n\n\n\n\n\n\nvar abs = Math.abs;\n\n\nfunction getTRBLResize(oldBounds, newBounds) {\n return (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.substractTRBL)((0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds), (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(oldBounds));\n}\n\n\nvar LANE_PARENTS = [\n 'bpmn:Participant',\n 'bpmn:Process',\n 'bpmn:SubProcess'\n];\n\nvar LANE_INDENTATION = 30;\n\n\n/**\n * Collect all lane shapes in the given paren\n *\n * @param {djs.model.Shape} shape\n * @param {Array} [collectedShapes]\n *\n * @return {Array}\n */\nfunction collectLanes(shape, collectedShapes) {\n\n collectedShapes = collectedShapes || [];\n\n shape.children.filter(function(s) {\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(s, 'bpmn:Lane')) {\n collectLanes(s, collectedShapes);\n\n collectedShapes.push(s);\n }\n });\n\n return collectedShapes;\n}\n\n\n/**\n * Return the lane children of the given element.\n *\n * @param {djs.model.Shape} shape\n *\n * @return {Array}\n */\nfunction getChildLanes(shape) {\n return shape.children.filter(function(c) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(c, 'bpmn:Lane');\n });\n}\n\n\n/**\n * Return the root element containing the given lane shape\n *\n * @param {djs.model.Shape} shape\n *\n * @return {djs.model.Shape}\n */\nfunction getLanesRoot(shape) {\n return (0,_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(shape, LANE_PARENTS) || shape;\n}\n\n\n/**\n * Compute the required resize operations for lanes\n * adjacent to the given shape, assuming it will be\n * resized to the given new bounds.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n *\n * @return {Array}\n */\nfunction computeLanesResize(shape, newBounds) {\n\n var rootElement = getLanesRoot(shape);\n\n var initialShapes = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Process') ? [] : [ rootElement ];\n\n var allLanes = collectLanes(rootElement, initialShapes),\n shapeTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(shape),\n shapeNewTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds),\n trblResize = getTRBLResize(shape, newBounds),\n resizeNeeded = [];\n\n allLanes.forEach(function(other) {\n\n if (other === shape) {\n return;\n }\n\n var topResize = 0,\n rightResize = trblResize.right,\n bottomResize = 0,\n leftResize = trblResize.left;\n\n var otherTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(other);\n\n if (trblResize.top) {\n if (abs(otherTrbl.bottom - shapeTrbl.top) < 10) {\n bottomResize = shapeNewTrbl.top - otherTrbl.bottom;\n }\n\n if (abs(otherTrbl.top - shapeTrbl.top) < 5) {\n topResize = shapeNewTrbl.top - otherTrbl.top;\n }\n }\n\n if (trblResize.bottom) {\n if (abs(otherTrbl.top - shapeTrbl.bottom) < 10) {\n topResize = shapeNewTrbl.bottom - otherTrbl.top;\n }\n\n if (abs(otherTrbl.bottom - shapeTrbl.bottom) < 5) {\n bottomResize = shapeNewTrbl.bottom - otherTrbl.bottom;\n }\n }\n\n if (topResize || rightResize || bottomResize || leftResize) {\n\n resizeNeeded.push({\n shape: other,\n newBounds: (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.resizeTRBL)(other, {\n top: topResize,\n right: rightResize,\n bottom: bottomResize,\n left: leftResize\n })\n });\n }\n\n });\n\n return resizeNeeded;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js": /*!*************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isAny\": () => (/* binding */ isAny),\n/* harmony export */ \"getParent\": () => (/* binding */ getParent)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n/**\n * Return true if element has any of the given types.\n *\n * @param {djs.model.Base} element\n * @param {Array} types\n *\n * @return {boolean}\n */\nfunction isAny(element, types) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.some)(types, function(t) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, t);\n });\n}\n\n\n/**\n * Return the parent of the element with any of the given types.\n *\n * @param {djs.model.Base} element\n * @param {string|Array} anyType\n *\n * @return {djs.model.Base}\n */\nfunction getParent(element, anyType) {\n\n if (typeof anyType === 'string') {\n anyType = [ anyType ];\n }\n\n while ((element = element.parent)) {\n if (isAny(element, anyType)) {\n return element;\n }\n }\n\n return null;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js": /*!****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnOrderingProvider)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_ordering_OrderingProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/ordering/OrderingProvider */ \"./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n/**\n * a simple ordering provider that makes sure:\n *\n * (0) labels and groups are rendered always on top\n * (1) elements are ordered by a {level} property\n */\nfunction BpmnOrderingProvider(eventBus, canvas, translate) {\n\n diagram_js_lib_features_ordering_OrderingProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n var orders = [\n { type: 'bpmn:SubProcess', order: { level: 6 } },\n {\n type: 'bpmn:SequenceFlow',\n order: {\n level: 3,\n containers: [\n 'bpmn:Participant',\n 'bpmn:FlowElementsContainer'\n ]\n }\n },\n\n // handle DataAssociation(s) like message flows and render them always on top\n {\n type: 'bpmn:DataAssociation',\n order: {\n level: 9,\n containers: [\n 'bpmn:Collaboration',\n 'bpmn:Process'\n ]\n }\n },\n {\n type: 'bpmn:MessageFlow', order: {\n level: 9,\n containers: [ 'bpmn:Collaboration' ]\n }\n },\n {\n type: 'bpmn:Association',\n order: {\n level: 6,\n containers: [\n 'bpmn:Participant',\n 'bpmn:FlowElementsContainer',\n 'bpmn:Collaboration'\n ]\n }\n },\n { type: 'bpmn:BoundaryEvent', order: { level: 8 } },\n {\n type: 'bpmn:Group',\n order: {\n level: 10,\n containers: [\n 'bpmn:Collaboration',\n 'bpmn:Process'\n ]\n }\n },\n { type: 'bpmn:FlowElement', order: { level: 5 } },\n { type: 'bpmn:Participant', order: { level: -2 } },\n { type: 'bpmn:Lane', order: { level: -1 } }\n ];\n\n function computeOrder(element) {\n if (element.labelTarget) {\n return { level: 10 };\n }\n\n var entry = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(orders, function(o) {\n return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [ o.type ]);\n });\n\n return entry && entry.order || { level: 1 };\n }\n\n function getOrder(element) {\n\n var order = element.order;\n\n if (!order) {\n element.order = order = computeOrder(element);\n }\n\n return order;\n }\n\n function findActualParent(element, newParent, containers) {\n\n var actualParent = newParent;\n\n while (actualParent) {\n\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(actualParent, containers)) {\n break;\n }\n\n actualParent = actualParent.parent;\n }\n\n if (!actualParent) {\n throw new Error(translate('no parent for {element} in {parent}', {\n element: element.id,\n parent: newParent.id\n }));\n }\n\n return actualParent;\n }\n\n this.getOrdering = function(element, newParent) {\n\n // render labels always on top\n if (element.labelTarget) {\n return {\n parent: canvas.getRootElement(),\n index: -1\n };\n }\n\n var elementOrder = getOrder(element);\n\n\n if (elementOrder.containers) {\n newParent = findActualParent(element, newParent, elementOrder.containers);\n }\n\n\n var currentIndex = newParent.children.indexOf(element);\n\n var insertIndex = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.findIndex)(newParent.children, function(child) {\n\n // do not compare with labels, they are created\n // in the wrong order (right after elements) during import and\n // mess up the positioning.\n if (!element.labelTarget && child.labelTarget) {\n return false;\n }\n\n return elementOrder.level < getOrder(child).level;\n });\n\n\n // if the element is already in the child list at\n // a smaller index, we need to adjust the insert index.\n // this takes into account that the element is being removed\n // before being re-inserted\n if (insertIndex !== -1) {\n if (currentIndex !== -1 && currentIndex < insertIndex) {\n insertIndex -= 1;\n }\n }\n\n return {\n index: insertIndex,\n parent: newParent\n };\n };\n}\n\nBpmnOrderingProvider.$inject = [ 'eventBus', 'canvas', 'translate' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnOrderingProvider, diagram_js_lib_features_ordering_OrderingProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/ordering/index.js": /*!*************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/ordering/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var _BpmnOrderingProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnOrderingProvider */ \"./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'bpmnOrderingProvider' ],\n bpmnOrderingProvider: [ 'type', _BpmnOrderingProvider__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/ordering/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js": /*!**********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PaletteProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A palette provider for BPMN 2.0 elements.\n */\nfunction PaletteProvider(\n palette, create, elementFactory,\n spaceTool, lassoTool, handTool,\n globalConnect, translate) {\n\n this._palette = palette;\n this._create = create;\n this._elementFactory = elementFactory;\n this._spaceTool = spaceTool;\n this._lassoTool = lassoTool;\n this._handTool = handTool;\n this._globalConnect = globalConnect;\n this._translate = translate;\n\n palette.registerProvider(this);\n}\n\nPaletteProvider.$inject = [\n 'palette',\n 'create',\n 'elementFactory',\n 'spaceTool',\n 'lassoTool',\n 'handTool',\n 'globalConnect',\n 'translate'\n];\n\n\nPaletteProvider.prototype.getPaletteEntries = function(element) {\n\n var actions = {},\n create = this._create,\n elementFactory = this._elementFactory,\n spaceTool = this._spaceTool,\n lassoTool = this._lassoTool,\n handTool = this._handTool,\n globalConnect = this._globalConnect,\n translate = this._translate;\n\n function createAction(type, group, className, title, options) {\n\n function createListener(event) {\n var shape = elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ type: type }, options));\n\n if (options) {\n shape.businessObject.di.isExpanded = options.isExpanded;\n }\n\n create.start(event, shape);\n }\n\n var shortType = type.replace(/^bpmn:/, '');\n\n return {\n group: group,\n className: className,\n title: title || translate('Create {type}', { type: shortType }),\n action: {\n dragstart: createListener,\n click: createListener\n }\n };\n }\n\n function createSubprocess(event) {\n var subProcess = elementFactory.createShape({\n type: 'bpmn:SubProcess',\n x: 0,\n y: 0,\n isExpanded: true\n });\n\n var startEvent = elementFactory.createShape({\n type: 'bpmn:StartEvent',\n x: 40,\n y: 82,\n parent: subProcess\n });\n\n create.start(event, [ subProcess, startEvent ], {\n hints: {\n autoSelect: [ startEvent ]\n }\n });\n }\n\n function createParticipant(event) {\n create.start(event, elementFactory.createParticipantShape());\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(actions, {\n 'hand-tool': {\n group: 'tools',\n className: 'bpmn-icon-hand-tool',\n title: translate('Activate the hand tool'),\n action: {\n click: function(event) {\n handTool.activateHand(event);\n }\n }\n },\n 'lasso-tool': {\n group: 'tools',\n className: 'bpmn-icon-lasso-tool',\n title: translate('Activate the lasso tool'),\n action: {\n click: function(event) {\n lassoTool.activateSelection(event);\n }\n }\n },\n 'space-tool': {\n group: 'tools',\n className: 'bpmn-icon-space-tool',\n title: translate('Activate the create/remove space tool'),\n action: {\n click: function(event) {\n spaceTool.activateSelection(event);\n }\n }\n },\n 'global-connect-tool': {\n group: 'tools',\n className: 'bpmn-icon-connection-multi',\n title: translate('Activate the global connect tool'),\n action: {\n click: function(event) {\n globalConnect.start(event);\n }\n }\n },\n 'tool-separator': {\n group: 'tools',\n separator: true\n },\n 'create.start-event': createAction(\n 'bpmn:StartEvent', 'event', 'bpmn-icon-start-event-none',\n translate('Create StartEvent')\n ),\n 'create.intermediate-event': createAction(\n 'bpmn:IntermediateThrowEvent', 'event', 'bpmn-icon-intermediate-event-none',\n translate('Create Intermediate/Boundary Event')\n ),\n 'create.end-event': createAction(\n 'bpmn:EndEvent', 'event', 'bpmn-icon-end-event-none',\n translate('Create EndEvent')\n ),\n 'create.exclusive-gateway': createAction(\n 'bpmn:ExclusiveGateway', 'gateway', 'bpmn-icon-gateway-none',\n translate('Create Gateway')\n ),\n 'create.task': createAction(\n 'bpmn:Task', 'activity', 'bpmn-icon-task',\n translate('Create Task')\n ),\n 'create.data-object': createAction(\n 'bpmn:DataObjectReference', 'data-object', 'bpmn-icon-data-object',\n translate('Create DataObjectReference')\n ),\n 'create.data-store': createAction(\n 'bpmn:DataStoreReference', 'data-store', 'bpmn-icon-data-store',\n translate('Create DataStoreReference')\n ),\n 'create.subprocess-expanded': {\n group: 'activity',\n className: 'bpmn-icon-subprocess-expanded',\n title: translate('Create expanded SubProcess'),\n action: {\n dragstart: createSubprocess,\n click: createSubprocess\n }\n },\n 'create.participant-expanded': {\n group: 'collaboration',\n className: 'bpmn-icon-participant',\n title: translate('Create Pool/Participant'),\n action: {\n dragstart: createParticipant,\n click: createParticipant\n }\n },\n 'create.group': createAction(\n 'bpmn:Group', 'artifact', 'bpmn-icon-group',\n translate('Create Group')\n ),\n });\n\n return actions;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/palette/index.js": /*!************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/palette/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/palette */ \"./node_modules/diagram-js/lib/features/palette/index.js\");\n/* harmony import */ var diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/space-tool */ \"./node_modules/diagram-js/lib/features/space-tool/index.js\");\n/* harmony import */ var diagram_js_lib_features_lasso_tool__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/features/lasso-tool */ \"./node_modules/diagram-js/lib/features/lasso-tool/index.js\");\n/* harmony import */ var diagram_js_lib_features_hand_tool__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/features/hand-tool */ \"./node_modules/diagram-js/lib/features/hand-tool/index.js\");\n/* harmony import */ var diagram_js_lib_features_global_connect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/features/global-connect */ \"./node_modules/diagram-js/lib/features/global-connect/index.js\");\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var _PaletteProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PaletteProvider */ \"./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_palette__WEBPACK_IMPORTED_MODULE_0__.default,\n diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_1__.default,\n diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_2__.default,\n diagram_js_lib_features_lasso_tool__WEBPACK_IMPORTED_MODULE_3__.default,\n diagram_js_lib_features_hand_tool__WEBPACK_IMPORTED_MODULE_4__.default,\n diagram_js_lib_features_global_connect__WEBPACK_IMPORTED_MODULE_5__.default,\n diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_6__.default\n ],\n __init__: [ 'paletteProvider' ],\n paletteProvider: [ 'type', _PaletteProvider__WEBPACK_IMPORTED_MODULE_7__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/palette/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js": /*!*****************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ReplaceMenuProvider)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_TypeUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/TypeUtil */ \"./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../replace/ReplaceOptions */ \"./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * This module is an element agnostic replace menu provider for the popup menu.\n */\nfunction ReplaceMenuProvider(\n bpmnFactory, popupMenu, modeling, moddle,\n bpmnReplace, rules, translate) {\n\n this._bpmnFactory = bpmnFactory;\n this._popupMenu = popupMenu;\n this._modeling = modeling;\n this._moddle = moddle;\n this._bpmnReplace = bpmnReplace;\n this._rules = rules;\n this._translate = translate;\n\n this.register();\n}\n\nReplaceMenuProvider.$inject = [\n 'bpmnFactory',\n 'popupMenu',\n 'modeling',\n 'moddle',\n 'bpmnReplace',\n 'rules',\n 'translate'\n];\n\n\n/**\n * Register replace menu provider in the popup menu\n */\nReplaceMenuProvider.prototype.register = function() {\n this._popupMenu.registerProvider('bpmn-replace', this);\n};\n\n\n/**\n * Get all entries from replaceOptions for the given element and apply filters\n * on them. Get for example only elements, which are different from the current one.\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of menu entry items\n */\nReplaceMenuProvider.prototype.getEntries = function(element) {\n\n var businessObject = element.businessObject;\n\n var rules = this._rules;\n\n var entries;\n\n if (!rules.allowed('shape.replace', { element: element })) {\n return [];\n }\n\n var differentType = (0,_util_TypeUtil__WEBPACK_IMPORTED_MODULE_0__.isDifferentType)(element);\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:DataObjectReference')) {\n return this._createEntries(element, _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.DATA_OBJECT_REFERENCE);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:DataStoreReference')) {\n return this._createEntries(element, _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.DATA_STORE_REFERENCE);\n }\n\n // start events outside sub processes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:StartEvent') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.$parent, 'bpmn:SubProcess')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.START_EVENT, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // expanded/collapsed pools\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:Participant')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT, function(entry) {\n return (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject) !== entry.target.isExpanded;\n });\n\n return this._createEntries(element, entries);\n }\n\n // start events inside event sub processes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:StartEvent') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(businessObject.$parent)) {\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.EVENT_SUB_PROCESS_START_EVENT, function(entry) {\n\n var target = entry.target;\n\n var isInterrupting = target.isInterrupting !== false;\n\n var isInterruptingEqual = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element).isInterrupting === isInterrupting;\n\n // filters elements which types and event definition are equal but have have different interrupting types\n return differentType(entry) || !differentType(entry) && !isInterruptingEqual;\n\n });\n\n return this._createEntries(element, entries);\n }\n\n // start events inside sub processes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:StartEvent') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(businessObject.$parent)\n && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.$parent, 'bpmn:SubProcess')) {\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.START_EVENT_SUB_PROCESS, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // end events\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:EndEvent')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.END_EVENT, function(entry) {\n var target = entry.target;\n\n // hide cancel end events outside transactions\n if (target.eventDefinitionType == 'bpmn:CancelEventDefinition' && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.$parent, 'bpmn:Transaction')) {\n return false;\n }\n\n return differentType(entry);\n });\n\n return this._createEntries(element, entries);\n }\n\n // boundary events\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:BoundaryEvent')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.BOUNDARY_EVENT, function(entry) {\n\n var target = entry.target;\n\n if (target.eventDefinitionType == 'bpmn:CancelEventDefinition' &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.attachedToRef, 'bpmn:Transaction')) {\n return false;\n }\n var cancelActivity = target.cancelActivity !== false;\n\n var isCancelActivityEqual = businessObject.cancelActivity == cancelActivity;\n\n return differentType(entry) || !differentType(entry) && !isCancelActivityEqual;\n });\n\n return this._createEntries(element, entries);\n }\n\n // intermediate events\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:IntermediateCatchEvent') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:IntermediateThrowEvent')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.INTERMEDIATE_EVENT, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // gateways\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:Gateway')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.GATEWAY, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // transactions\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:Transaction')) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.TRANSACTION, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // expanded event sub processes\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(businessObject) && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.EVENT_SUB_PROCESS, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // expanded sub processes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.SUBPROCESS_EXPANDED, differentType);\n\n return this._createEntries(element, entries);\n }\n\n // collapsed ad hoc sub processes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:AdHocSubProcess') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.TASK, function(entry) {\n\n var target = entry.target;\n\n var isTargetSubProcess = target.type === 'bpmn:SubProcess';\n\n var isTargetExpanded = target.isExpanded === true;\n\n return (0,_util_TypeUtil__WEBPACK_IMPORTED_MODULE_0__.isDifferentType)(element, target) && (!isTargetSubProcess || isTargetExpanded);\n });\n\n return this._createEntries(element, entries);\n }\n\n // sequence flows\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:SequenceFlow')) {\n return this._createSequenceFlowEntries(element, _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.SEQUENCE_FLOW);\n }\n\n // flow nodes\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:FlowNode')) {\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.TASK, differentType);\n\n // collapsed SubProcess can not be replaced with itself\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:SubProcess') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(entries, function(entry) {\n return entry.label !== 'Sub Process (collapsed)';\n });\n }\n\n return this._createEntries(element, entries);\n }\n\n return [];\n};\n\n\n/**\n * Get a list of header items for the given element. This includes buttons\n * for multi instance markers and for the ad hoc marker.\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of menu entry items\n */\nReplaceMenuProvider.prototype.getHeaderEntries = function(element) {\n\n var headerEntries = [];\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Activity') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(element)) {\n headerEntries = headerEntries.concat(this._getLoopEntries(element));\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:DataObjectReference')) {\n headerEntries = headerEntries.concat(this._getDataObjectIsCollection(element));\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Participant')) {\n headerEntries = headerEntries.concat(this._getParticipantMultiplicity(element));\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:SubProcess') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Transaction') &&\n !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(element)) {\n headerEntries.push(this._getAdHocEntry(element));\n }\n\n return headerEntries;\n};\n\n\n/**\n * Creates an array of menu entry objects for a given element and filters the replaceOptions\n * according to a filter function.\n *\n * @param {djs.model.Base} element\n * @param {Object} replaceOptions\n *\n * @return {Array} a list of menu items\n */\nReplaceMenuProvider.prototype._createEntries = function(element, replaceOptions) {\n var menuEntries = [];\n\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(replaceOptions, function(definition) {\n var entry = self._createMenuEntry(definition, element);\n\n menuEntries.push(entry);\n });\n\n return menuEntries;\n};\n\n/**\n * Creates an array of menu entry objects for a given sequence flow.\n *\n * @param {djs.model.Base} element\n * @param {Object} replaceOptions\n\n * @return {Array} a list of menu items\n */\nReplaceMenuProvider.prototype._createSequenceFlowEntries = function(element, replaceOptions) {\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);\n\n var menuEntries = [];\n\n var modeling = this._modeling,\n moddle = this._moddle;\n\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(replaceOptions, function(entry) {\n\n switch (entry.actionName) {\n case 'replace-with-default-flow':\n if (businessObject.sourceRef.default !== businessObject &&\n ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ExclusiveGateway') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:InclusiveGateway') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ComplexGateway') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity'))) {\n\n menuEntries.push(self._createMenuEntry(entry, element, function() {\n modeling.updateProperties(element.source, { default: businessObject });\n }));\n }\n break;\n case 'replace-with-conditional-flow':\n if (!businessObject.conditionExpression && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity')) {\n\n menuEntries.push(self._createMenuEntry(entry, element, function() {\n var conditionExpression = moddle.create('bpmn:FormalExpression', { body: '' });\n\n modeling.updateProperties(element, { conditionExpression: conditionExpression });\n }));\n }\n break;\n default:\n\n // default flows\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity') && businessObject.conditionExpression) {\n return menuEntries.push(self._createMenuEntry(entry, element, function() {\n modeling.updateProperties(element, { conditionExpression: undefined });\n }));\n }\n\n // conditional flows\n if (((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ExclusiveGateway') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:InclusiveGateway') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ComplexGateway') ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity')) &&\n businessObject.sourceRef.default === businessObject) {\n\n return menuEntries.push(self._createMenuEntry(entry, element, function() {\n modeling.updateProperties(element.source, { default: undefined });\n }));\n }\n }\n });\n\n return menuEntries;\n};\n\n\n/**\n * Creates and returns a single menu entry item.\n *\n * @param {Object} definition a single replace options definition object\n * @param {djs.model.Base} element\n * @param {Function} [action] an action callback function which gets called when\n * the menu entry is being triggered.\n *\n * @return {Object} menu entry item\n */\nReplaceMenuProvider.prototype._createMenuEntry = function(definition, element, action) {\n var translate = this._translate;\n var replaceElement = this._bpmnReplace.replaceElement;\n\n var replaceAction = function() {\n return replaceElement(element, definition.target);\n };\n\n var label = definition.label;\n if (label && typeof label === 'function') {\n label = label(element);\n }\n\n action = action || replaceAction;\n\n var menuEntry = {\n label: translate(label),\n className: definition.className,\n id: definition.actionName,\n action: action\n };\n\n return menuEntry;\n};\n\n/**\n * Get a list of menu items containing buttons for multi instance markers\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of menu items\n */\nReplaceMenuProvider.prototype._getLoopEntries = function(element) {\n\n var self = this;\n var translate = this._translate;\n\n function toggleLoopEntry(event, entry) {\n var loopCharacteristics;\n\n if (entry.active) {\n loopCharacteristics = undefined;\n } else {\n loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics);\n\n if (entry.options.isSequential) {\n loopCharacteristics.isSequential = entry.options.isSequential;\n }\n }\n self._modeling.updateProperties(element, { loopCharacteristics: loopCharacteristics });\n }\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element),\n loopCharacteristics = businessObject.loopCharacteristics;\n\n var isSequential,\n isLoop,\n isParallel;\n\n if (loopCharacteristics) {\n isSequential = loopCharacteristics.isSequential;\n isLoop = loopCharacteristics.isSequential === undefined;\n isParallel = loopCharacteristics.isSequential !== undefined && !loopCharacteristics.isSequential;\n }\n\n\n var loopEntries = [\n {\n id: 'toggle-parallel-mi',\n className: 'bpmn-icon-parallel-mi-marker',\n title: translate('Parallel Multi Instance'),\n active: isParallel,\n action: toggleLoopEntry,\n options: {\n loopCharacteristics: 'bpmn:MultiInstanceLoopCharacteristics',\n isSequential: false\n }\n },\n {\n id: 'toggle-sequential-mi',\n className: 'bpmn-icon-sequential-mi-marker',\n title: translate('Sequential Multi Instance'),\n active: isSequential,\n action: toggleLoopEntry,\n options: {\n loopCharacteristics: 'bpmn:MultiInstanceLoopCharacteristics',\n isSequential: true\n }\n },\n {\n id: 'toggle-loop',\n className: 'bpmn-icon-loop-marker',\n title: translate('Loop'),\n active: isLoop,\n action: toggleLoopEntry,\n options: {\n loopCharacteristics: 'bpmn:StandardLoopCharacteristics'\n }\n }\n ];\n return loopEntries;\n};\n\n/**\n * Get a list of menu items containing a button for the collection marker\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of menu items\n */\nReplaceMenuProvider.prototype._getDataObjectIsCollection = function(element) {\n\n var self = this;\n var translate = this._translate;\n\n function toggleIsCollection(event, entry) {\n self._modeling.updateModdleProperties(\n element,\n dataObject,\n { isCollection: !entry.active });\n }\n\n var dataObject = element.businessObject.dataObjectRef,\n isCollection = dataObject.isCollection;\n\n var dataObjectEntries = [\n {\n id: 'toggle-is-collection',\n className: 'bpmn-icon-parallel-mi-marker',\n title: translate('Collection'),\n active: isCollection,\n action: toggleIsCollection,\n }\n ];\n return dataObjectEntries;\n};\n\n/**\n * Get a list of menu items containing a button for the participant multiplicity marker\n *\n * @param {djs.model.Base} element\n *\n * @return {Array} a list of menu items\n */\nReplaceMenuProvider.prototype._getParticipantMultiplicity = function(element) {\n\n var self = this;\n var bpmnFactory = this._bpmnFactory;\n var translate = this._translate;\n\n function toggleParticipantMultiplicity(event, entry) {\n var isActive = entry.active;\n var participantMultiplicity;\n\n if (!isActive) {\n participantMultiplicity = bpmnFactory.create('bpmn:ParticipantMultiplicity');\n }\n\n self._modeling.updateProperties(\n element,\n { participantMultiplicity: participantMultiplicity });\n }\n\n var participantMultiplicity = element.businessObject.participantMultiplicity;\n\n var participantEntries = [\n {\n id: 'toggle-participant-multiplicity',\n className: 'bpmn-icon-parallel-mi-marker',\n title: translate('Participant Multiplicity'),\n active: !!participantMultiplicity,\n action: toggleParticipantMultiplicity,\n }\n ];\n return participantEntries;\n};\n\n\n/**\n * Get the menu items containing a button for the ad hoc marker\n *\n * @param {djs.model.Base} element\n *\n * @return {Object} a menu item\n */\nReplaceMenuProvider.prototype._getAdHocEntry = function(element) {\n var translate = this._translate;\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);\n\n var isAdHoc = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:AdHocSubProcess');\n\n var replaceElement = this._bpmnReplace.replaceElement;\n\n var adHocEntry = {\n id: 'toggle-adhoc',\n className: 'bpmn-icon-ad-hoc-marker',\n title: translate('Ad-hoc'),\n active: isAdHoc,\n action: function(event, entry) {\n if (isAdHoc) {\n return replaceElement(element, { type: 'bpmn:SubProcess' }, {\n autoResize: false,\n layoutConnection: false\n });\n } else {\n return replaceElement(element, { type: 'bpmn:AdHocSubProcess' }, {\n autoResize: false,\n layoutConnection: false\n });\n }\n }\n };\n\n return adHocEntry;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/popup-menu/index.js": /*!***************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/popup-menu/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_popup_menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/popup-menu */ \"./node_modules/diagram-js/lib/features/popup-menu/index.js\");\n/* harmony import */ var _replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../replace */ \"./node_modules/bpmn-js/lib/features/replace/index.js\");\n/* harmony import */ var _ReplaceMenuProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ReplaceMenuProvider */ \"./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_popup_menu__WEBPACK_IMPORTED_MODULE_0__.default,\n _replace__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n __init__: [ 'replaceMenuProvider' ],\n replaceMenuProvider: [ 'type', _ReplaceMenuProvider__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/popup-menu/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js": /*!***********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isDifferentType\": () => (/* binding */ isDifferentType)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\n\n/**\n * Returns true, if an element is from a different type\n * than a target definition. Takes into account the type,\n * event definition type and triggeredByEvent property.\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean}\n */\nfunction isDifferentType(element) {\n\n return function(entry) {\n var target = entry.target;\n\n var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element),\n eventDefinition = businessObject.eventDefinitions && businessObject.eventDefinitions[0];\n\n var isTypeEqual = businessObject.$type === target.type;\n\n var isEventDefinitionEqual = (\n (eventDefinition && eventDefinition.$type) === target.eventDefinitionType\n );\n\n var isTriggeredByEventEqual = (\n businessObject.triggeredByEvent === target.triggeredByEvent\n );\n\n var isExpandedEqual = (\n target.isExpanded === undefined ||\n target.isExpanded === (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(businessObject)\n );\n\n return !isTypeEqual || !isEventDefinitionEqual || !isTriggeredByEventEqual || !isExpandedEqual;\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js": /*!*********************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnReplacePreview)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! css.escape */ \"./node_modules/css.escape/css.escape.js\");\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(css_escape__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 250;\n\n\nfunction BpmnReplacePreview(\n eventBus, elementRegistry, elementFactory,\n canvas, previewSupport) {\n\n diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_2__.default.call(this, eventBus);\n\n /**\n * Replace the visuals of all elements in the context which can be replaced\n *\n * @param {Object} context\n */\n function replaceVisual(context) {\n\n var replacements = context.canExecute.replacements;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(replacements, function(replacement) {\n\n var id = replacement.oldElementId;\n\n var newElement = {\n type: replacement.newElementType\n };\n\n // if the visual of the element is already replaced\n if (context.visualReplacements[id]) {\n return;\n }\n\n var element = elementRegistry.get(id);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(newElement, { x: element.x, y: element.y });\n\n // create a temporary shape\n var tempShape = elementFactory.createShape(newElement);\n\n canvas.addShape(tempShape, element.parent);\n\n // select the original SVG element related to the element and hide it\n var gfx = (0,min_dom__WEBPACK_IMPORTED_MODULE_4__.query)('[data-element-id=\"' + css_escape__WEBPACK_IMPORTED_MODULE_1___default()(element.id) + '\"]', context.dragGroup);\n\n if (gfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_5__.attr)(gfx, { display: 'none' });\n }\n\n // clone the gfx of the temporary shape and add it to the drag group\n var dragger = previewSupport.addDragger(tempShape, context.dragGroup);\n\n context.visualReplacements[id] = dragger;\n\n canvas.removeShape(tempShape);\n });\n }\n\n /**\n * Restore the original visuals of the previously replaced elements\n *\n * @param {Object} context\n */\n function restoreVisual(context) {\n\n var visualReplacements = context.visualReplacements;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(visualReplacements, function(dragger, id) {\n\n var originalGfx = (0,min_dom__WEBPACK_IMPORTED_MODULE_4__.query)('[data-element-id=\"' + css_escape__WEBPACK_IMPORTED_MODULE_1___default()(id) + '\"]', context.dragGroup);\n\n if (originalGfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_5__.attr)(originalGfx, { display: 'inline' });\n }\n\n dragger.remove();\n\n if (visualReplacements[id]) {\n delete visualReplacements[id];\n }\n });\n }\n\n eventBus.on('shape.move.move', LOW_PRIORITY, function(event) {\n\n var context = event.context,\n canExecute = context.canExecute;\n\n if (!context.visualReplacements) {\n context.visualReplacements = {};\n }\n\n if (canExecute && canExecute.replacements) {\n replaceVisual(context);\n } else {\n restoreVisual(context);\n }\n });\n}\n\nBpmnReplacePreview.$inject = [\n 'eventBus',\n 'elementRegistry',\n 'elementFactory',\n 'canvas',\n 'previewSupport'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnReplacePreview, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_2__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/replace-preview/index.js": /*!********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/replace-preview/index.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_preview_support__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _BpmnReplacePreview__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnReplacePreview */ \"./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_preview_support__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'bpmnReplacePreview' ],\n bpmnReplacePreview: [ 'type', _BpmnReplacePreview__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace-preview/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js": /*!******************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnReplace)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _copy_paste_ModdleCopy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../copy-paste/ModdleCopy */ \"./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js\");\n\n\n\n\n\n\n\n\n\n\nfunction copyProperties(source, target, properties) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(properties)) {\n properties = [ properties ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(property) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isUndefined)(source[property])) {\n target[property] = source[property];\n }\n });\n}\n\nvar CUSTOM_PROPERTIES = [\n 'cancelActivity',\n 'instantiate',\n 'eventGatewayType',\n 'triggeredByEvent',\n 'isInterrupting'\n];\n\n\nfunction toggeling(element, target) {\n\n var oldCollapsed = (\n element && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(element, 'collapsed') ? element.collapsed : !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(element)\n );\n\n var targetCollapsed;\n\n if (target && ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'collapsed') || (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'isExpanded'))) {\n\n // property is explicitly set so use it\n targetCollapsed = (\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'collapsed') ? target.collapsed : !target.isExpanded\n );\n } else {\n\n // keep old state\n targetCollapsed = oldCollapsed;\n }\n\n if (oldCollapsed !== targetCollapsed) {\n element.collapsed = oldCollapsed;\n return true;\n }\n\n return false;\n}\n\n\n\n/**\n * This module takes care of replacing BPMN elements\n */\nfunction BpmnReplace(\n bpmnFactory,\n elementFactory,\n moddleCopy,\n modeling,\n replace,\n rules,\n selection\n) {\n\n /**\n * Prepares a new business object for the replacement element\n * and triggers the replace operation.\n *\n * @param {djs.model.Base} element\n * @param {Object} target\n * @param {Object} [hints]\n *\n * @return {djs.model.Base} the newly created element\n */\n function replaceElement(element, target, hints) {\n\n hints = hints || {};\n\n var type = target.type,\n oldBusinessObject = element.businessObject;\n\n if (isSubProcess(oldBusinessObject)) {\n if (type === 'bpmn:SubProcess') {\n if (toggeling(element, target)) {\n\n // expanding or collapsing process\n modeling.toggleCollapse(element);\n\n return element;\n }\n }\n }\n\n var newBusinessObject = bpmnFactory.create(type);\n\n var newElement = {\n type: type,\n businessObject: newBusinessObject\n };\n\n var elementProps = (0,_copy_paste_ModdleCopy__WEBPACK_IMPORTED_MODULE_2__.getPropertyNames)(oldBusinessObject.$descriptor),\n newElementProps = (0,_copy_paste_ModdleCopy__WEBPACK_IMPORTED_MODULE_2__.getPropertyNames)(newBusinessObject.$descriptor, true),\n copyProps = intersection(elementProps, newElementProps);\n\n // initialize special properties defined in target definition\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(newBusinessObject, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(target, CUSTOM_PROPERTIES));\n\n var properties = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(copyProps, function(propertyName) {\n\n // copying event definitions, unless we replace\n if (propertyName === 'eventDefinitions') {\n return hasEventDefinition(element, target.eventDefinitionType);\n }\n\n // retain loop characteristics if the target element\n // is not an event sub process\n if (propertyName === 'loopCharacteristics') {\n return !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isEventSubProcess)(newBusinessObject);\n }\n\n // so the applied properties from 'target' don't get lost\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(newBusinessObject, propertyName)) {\n return false;\n }\n\n if (propertyName === 'processRef' && target.isExpanded === false) {\n return false;\n }\n\n if (propertyName === 'triggeredByEvent') {\n return false;\n }\n\n return true;\n });\n\n newBusinessObject = moddleCopy.copyElement(\n oldBusinessObject,\n newBusinessObject,\n properties\n );\n\n // initialize custom BPMN extensions\n if (target.eventDefinitionType) {\n\n // only initialize with new eventDefinition\n // if we did not set an event definition yet,\n // i.e. because we copied it\n if (!hasEventDefinition(newBusinessObject, target.eventDefinitionType)) {\n newElement.eventDefinitionType = target.eventDefinitionType;\n newElement.eventDefinitionAttrs = target.eventDefinitionAttrs;\n }\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:Activity')) {\n\n if (isSubProcess(oldBusinessObject)) {\n\n // no toggeling, so keep old state\n newElement.isExpanded = (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(oldBusinessObject);\n }\n\n // else if property is explicitly set, use it\n else if (target && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'isExpanded')) {\n newElement.isExpanded = target.isExpanded;\n }\n\n // TODO: need also to respect min/max Size\n // copy size, from an expanded subprocess to an expanded alternative subprocess\n // except bpmn:Task, because Task is always expanded\n if (((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(oldBusinessObject) && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:Task')) && newElement.isExpanded) {\n newElement.width = element.width;\n newElement.height = element.height;\n }\n }\n\n // remove children if not expanding sub process\n if (isSubProcess(oldBusinessObject) && !isSubProcess(newBusinessObject)) {\n hints.moveChildren = false;\n }\n\n // transform collapsed/expanded pools\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:Participant')) {\n\n // create expanded pool\n if (target.isExpanded === true) {\n newBusinessObject.processRef = bpmnFactory.create('bpmn:Process');\n } else {\n\n // remove children when transforming to collapsed pool\n hints.moveChildren = false;\n }\n\n // apply same width and default height\n newElement.width = element.width;\n newElement.height = elementFactory._getDefaultSize(newBusinessObject).height;\n }\n\n if (!rules.allowed('shape.resize', { shape: newBusinessObject })) {\n newElement.height = elementFactory._getDefaultSize(newBusinessObject).height;\n newElement.width = elementFactory._getDefaultSize(newBusinessObject).width;\n }\n\n newBusinessObject.name = oldBusinessObject.name;\n\n // retain default flow's reference between inclusive <-> exclusive gateways and activities\n if (\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(oldBusinessObject, [\n 'bpmn:ExclusiveGateway',\n 'bpmn:InclusiveGateway',\n 'bpmn:Activity'\n ]) &&\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(newBusinessObject, [\n 'bpmn:ExclusiveGateway',\n 'bpmn:InclusiveGateway',\n 'bpmn:Activity'\n ])\n ) {\n newBusinessObject.default = oldBusinessObject.default;\n }\n\n if (\n target.host &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:BoundaryEvent') &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newBusinessObject, 'bpmn:BoundaryEvent')\n ) {\n newElement.host = target.host;\n }\n\n // The DataStoreReference element is 14px wider than the DataObjectReference element\n // This ensures that they stay centered on the x axis when replaced\n if (\n newElement.type === 'bpmn:DataStoreReference' ||\n newElement.type === 'bpmn:DataObjectReference'\n ) {\n newElement.x = element.x + (element.width - newElement.width) / 2;\n }\n\n newElement.di = {};\n\n // colors will be set to DI\n copyProperties(oldBusinessObject.di, newElement.di, [\n 'fill',\n 'stroke',\n 'background-color',\n 'border-color',\n 'color'\n ]);\n\n newElement = replace.replaceElement(element, newElement, hints);\n\n if (hints.select !== false) {\n selection.select(newElement);\n }\n\n return newElement;\n }\n\n this.replaceElement = replaceElement;\n}\n\nBpmnReplace.$inject = [\n 'bpmnFactory',\n 'elementFactory',\n 'moddleCopy',\n 'modeling',\n 'replace',\n 'rules',\n 'selection'\n];\n\n\nfunction isSubProcess(bo) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(bo, 'bpmn:SubProcess');\n}\n\nfunction hasEventDefinition(element, type) {\n\n var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(element);\n\n return type && bo.get('eventDefinitions').some(function(definition) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(definition, type);\n });\n}\n\n/**\n * Compute intersection between two arrays.\n */\nfunction intersection(a1, a2) {\n return a1.filter(function(el) {\n return a2.indexOf(el) !== -1;\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js": /*!*********************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"START_EVENT\": () => (/* binding */ START_EVENT),\n/* harmony export */ \"START_EVENT_SUB_PROCESS\": () => (/* binding */ START_EVENT_SUB_PROCESS),\n/* harmony export */ \"INTERMEDIATE_EVENT\": () => (/* binding */ INTERMEDIATE_EVENT),\n/* harmony export */ \"END_EVENT\": () => (/* binding */ END_EVENT),\n/* harmony export */ \"GATEWAY\": () => (/* binding */ GATEWAY),\n/* harmony export */ \"SUBPROCESS_EXPANDED\": () => (/* binding */ SUBPROCESS_EXPANDED),\n/* harmony export */ \"TRANSACTION\": () => (/* binding */ TRANSACTION),\n/* harmony export */ \"EVENT_SUB_PROCESS\": () => (/* binding */ EVENT_SUB_PROCESS),\n/* harmony export */ \"TASK\": () => (/* binding */ TASK),\n/* harmony export */ \"DATA_OBJECT_REFERENCE\": () => (/* binding */ DATA_OBJECT_REFERENCE),\n/* harmony export */ \"DATA_STORE_REFERENCE\": () => (/* binding */ DATA_STORE_REFERENCE),\n/* harmony export */ \"BOUNDARY_EVENT\": () => (/* binding */ BOUNDARY_EVENT),\n/* harmony export */ \"EVENT_SUB_PROCESS_START_EVENT\": () => (/* binding */ EVENT_SUB_PROCESS_START_EVENT),\n/* harmony export */ \"SEQUENCE_FLOW\": () => (/* binding */ SEQUENCE_FLOW),\n/* harmony export */ \"PARTICIPANT\": () => (/* binding */ PARTICIPANT)\n/* harmony export */ });\nvar START_EVENT = [\n {\n label: 'Start Event',\n actionName: 'replace-with-none-start',\n className: 'bpmn-icon-start-event-none',\n target: {\n type: 'bpmn:StartEvent'\n }\n },\n {\n label: 'Intermediate Throw Event',\n actionName: 'replace-with-none-intermediate-throwing',\n className: 'bpmn-icon-intermediate-event-none',\n target: {\n type: 'bpmn:IntermediateThrowEvent'\n }\n },\n {\n label: 'End Event',\n actionName: 'replace-with-none-end',\n className: 'bpmn-icon-end-event-none',\n target: {\n type: 'bpmn:EndEvent'\n }\n },\n {\n label: 'Message Start Event',\n actionName: 'replace-with-message-start',\n className: 'bpmn-icon-start-event-message',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition'\n }\n },\n {\n label: 'Timer Start Event',\n actionName: 'replace-with-timer-start',\n className: 'bpmn-icon-start-event-timer',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:TimerEventDefinition'\n }\n },\n {\n label: 'Conditional Start Event',\n actionName: 'replace-with-conditional-start',\n className: 'bpmn-icon-start-event-condition',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n }\n },\n {\n label: 'Signal Start Event',\n actionName: 'replace-with-signal-start',\n className: 'bpmn-icon-start-event-signal',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition'\n }\n }\n];\n\nvar START_EVENT_SUB_PROCESS = [\n {\n label: 'Start Event',\n actionName: 'replace-with-none-start',\n className: 'bpmn-icon-start-event-none',\n target: {\n type: 'bpmn:StartEvent'\n }\n },\n {\n label: 'Intermediate Throw Event',\n actionName: 'replace-with-none-intermediate-throwing',\n className: 'bpmn-icon-intermediate-event-none',\n target: {\n type: 'bpmn:IntermediateThrowEvent'\n }\n },\n {\n label: 'End Event',\n actionName: 'replace-with-none-end',\n className: 'bpmn-icon-end-event-none',\n target: {\n type: 'bpmn:EndEvent'\n }\n }\n];\n\nvar INTERMEDIATE_EVENT = [\n {\n label: 'Start Event',\n actionName: 'replace-with-none-start',\n className: 'bpmn-icon-start-event-none',\n target: {\n type: 'bpmn:StartEvent'\n }\n },\n {\n label: 'Intermediate Throw Event',\n actionName: 'replace-with-none-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-none',\n target: {\n type: 'bpmn:IntermediateThrowEvent'\n }\n },\n {\n label: 'End Event',\n actionName: 'replace-with-none-end',\n className: 'bpmn-icon-end-event-none',\n target: {\n type: 'bpmn:EndEvent'\n }\n },\n {\n label: 'Message Intermediate Catch Event',\n actionName: 'replace-with-message-intermediate-catch',\n className: 'bpmn-icon-intermediate-event-catch-message',\n target: {\n type: 'bpmn:IntermediateCatchEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition'\n }\n },\n {\n label: 'Message Intermediate Throw Event',\n actionName: 'replace-with-message-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-throw-message',\n target: {\n type: 'bpmn:IntermediateThrowEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition'\n }\n },\n {\n label: 'Timer Intermediate Catch Event',\n actionName: 'replace-with-timer-intermediate-catch',\n className: 'bpmn-icon-intermediate-event-catch-timer',\n target: {\n type: 'bpmn:IntermediateCatchEvent',\n eventDefinitionType: 'bpmn:TimerEventDefinition'\n }\n },\n {\n label: 'Escalation Intermediate Throw Event',\n actionName: 'replace-with-escalation-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-throw-escalation',\n target: {\n type: 'bpmn:IntermediateThrowEvent',\n eventDefinitionType: 'bpmn:EscalationEventDefinition'\n }\n },\n {\n label: 'Conditional Intermediate Catch Event',\n actionName: 'replace-with-conditional-intermediate-catch',\n className: 'bpmn-icon-intermediate-event-catch-condition',\n target: {\n type: 'bpmn:IntermediateCatchEvent',\n eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n }\n },\n {\n label: 'Link Intermediate Catch Event',\n actionName: 'replace-with-link-intermediate-catch',\n className: 'bpmn-icon-intermediate-event-catch-link',\n target: {\n type: 'bpmn:IntermediateCatchEvent',\n eventDefinitionType: 'bpmn:LinkEventDefinition',\n eventDefinitionAttrs: {\n name: ''\n }\n }\n },\n {\n label: 'Link Intermediate Throw Event',\n actionName: 'replace-with-link-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-throw-link',\n target: {\n type: 'bpmn:IntermediateThrowEvent',\n eventDefinitionType: 'bpmn:LinkEventDefinition',\n eventDefinitionAttrs: {\n name: ''\n }\n }\n },\n {\n label: 'Compensation Intermediate Throw Event',\n actionName: 'replace-with-compensation-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-throw-compensation',\n target: {\n type: 'bpmn:IntermediateThrowEvent',\n eventDefinitionType: 'bpmn:CompensateEventDefinition'\n }\n },\n {\n label: 'Signal Intermediate Catch Event',\n actionName: 'replace-with-signal-intermediate-catch',\n className: 'bpmn-icon-intermediate-event-catch-signal',\n target: {\n type: 'bpmn:IntermediateCatchEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition'\n }\n },\n {\n label: 'Signal Intermediate Throw Event',\n actionName: 'replace-with-signal-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-throw-signal',\n target: {\n type: 'bpmn:IntermediateThrowEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition'\n }\n }\n];\n\nvar END_EVENT = [\n {\n label: 'Start Event',\n actionName: 'replace-with-none-start',\n className: 'bpmn-icon-start-event-none',\n target: {\n type: 'bpmn:StartEvent'\n }\n },\n {\n label: 'Intermediate Throw Event',\n actionName: 'replace-with-none-intermediate-throw',\n className: 'bpmn-icon-intermediate-event-none',\n target: {\n type: 'bpmn:IntermediateThrowEvent'\n }\n },\n {\n label: 'End Event',\n actionName: 'replace-with-none-end',\n className: 'bpmn-icon-end-event-none',\n target: {\n type: 'bpmn:EndEvent'\n }\n },\n {\n label: 'Message End Event',\n actionName: 'replace-with-message-end',\n className: 'bpmn-icon-end-event-message',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition'\n }\n },\n {\n label: 'Escalation End Event',\n actionName: 'replace-with-escalation-end',\n className: 'bpmn-icon-end-event-escalation',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:EscalationEventDefinition'\n }\n },\n {\n label: 'Error End Event',\n actionName: 'replace-with-error-end',\n className: 'bpmn-icon-end-event-error',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:ErrorEventDefinition'\n }\n },\n {\n label: 'Cancel End Event',\n actionName: 'replace-with-cancel-end',\n className: 'bpmn-icon-end-event-cancel',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:CancelEventDefinition'\n }\n },\n {\n label: 'Compensation End Event',\n actionName: 'replace-with-compensation-end',\n className: 'bpmn-icon-end-event-compensation',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:CompensateEventDefinition'\n }\n },\n {\n label: 'Signal End Event',\n actionName: 'replace-with-signal-end',\n className: 'bpmn-icon-end-event-signal',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition'\n }\n },\n {\n label: 'Terminate End Event',\n actionName: 'replace-with-terminate-end',\n className: 'bpmn-icon-end-event-terminate',\n target: {\n type: 'bpmn:EndEvent',\n eventDefinitionType: 'bpmn:TerminateEventDefinition'\n }\n }\n];\n\nvar GATEWAY = [\n {\n label: 'Exclusive Gateway',\n actionName: 'replace-with-exclusive-gateway',\n className: 'bpmn-icon-gateway-xor',\n target: {\n type: 'bpmn:ExclusiveGateway'\n }\n },\n {\n label: 'Parallel Gateway',\n actionName: 'replace-with-parallel-gateway',\n className: 'bpmn-icon-gateway-parallel',\n target: {\n type: 'bpmn:ParallelGateway'\n }\n },\n {\n label: 'Inclusive Gateway',\n actionName: 'replace-with-inclusive-gateway',\n className: 'bpmn-icon-gateway-or',\n target: {\n type: 'bpmn:InclusiveGateway'\n }\n },\n {\n label: 'Complex Gateway',\n actionName: 'replace-with-complex-gateway',\n className: 'bpmn-icon-gateway-complex',\n target: {\n type: 'bpmn:ComplexGateway'\n }\n },\n {\n label: 'Event based Gateway',\n actionName: 'replace-with-event-based-gateway',\n className: 'bpmn-icon-gateway-eventbased',\n target: {\n type: 'bpmn:EventBasedGateway',\n instantiate: false,\n eventGatewayType: 'Exclusive'\n }\n }\n\n // Gateways deactivated until https://github.com/bpmn-io/bpmn-js/issues/194\n // {\n // label: 'Event based instantiating Gateway',\n // actionName: 'replace-with-exclusive-event-based-gateway',\n // className: 'bpmn-icon-exclusive-event-based',\n // target: {\n // type: 'bpmn:EventBasedGateway'\n // },\n // options: {\n // businessObject: { instantiate: true, eventGatewayType: 'Exclusive' }\n // }\n // },\n // {\n // label: 'Parallel Event based instantiating Gateway',\n // actionName: 'replace-with-parallel-event-based-instantiate-gateway',\n // className: 'bpmn-icon-parallel-event-based-instantiate-gateway',\n // target: {\n // type: 'bpmn:EventBasedGateway'\n // },\n // options: {\n // businessObject: { instantiate: true, eventGatewayType: 'Parallel' }\n // }\n // }\n];\n\nvar SUBPROCESS_EXPANDED = [\n {\n label: 'Transaction',\n actionName: 'replace-with-transaction',\n className: 'bpmn-icon-transaction',\n target: {\n type: 'bpmn:Transaction',\n isExpanded: true\n }\n },\n {\n label: 'Event Sub Process',\n actionName: 'replace-with-event-subprocess',\n className: 'bpmn-icon-event-subprocess-expanded',\n target: {\n type: 'bpmn:SubProcess',\n triggeredByEvent: true,\n isExpanded: true\n }\n },\n {\n label: 'Sub Process (collapsed)',\n actionName: 'replace-with-collapsed-subprocess',\n className: 'bpmn-icon-subprocess-collapsed',\n target: {\n type: 'bpmn:SubProcess',\n isExpanded: false\n }\n }\n];\n\nvar TRANSACTION = [\n {\n label: 'Sub Process',\n actionName: 'replace-with-subprocess',\n className: 'bpmn-icon-subprocess-expanded',\n target: {\n type: 'bpmn:SubProcess',\n isExpanded: true\n }\n },\n {\n label: 'Event Sub Process',\n actionName: 'replace-with-event-subprocess',\n className: 'bpmn-icon-event-subprocess-expanded',\n target: {\n type: 'bpmn:SubProcess',\n triggeredByEvent: true,\n isExpanded: true\n }\n }\n];\n\nvar EVENT_SUB_PROCESS = [\n {\n label: 'Sub Process',\n actionName: 'replace-with-subprocess',\n className: 'bpmn-icon-subprocess-expanded',\n target: {\n type: 'bpmn:SubProcess',\n isExpanded: true\n }\n },\n {\n label: 'Transaction',\n actionName: 'replace-with-transaction',\n className: 'bpmn-icon-transaction',\n target: {\n type: 'bpmn:Transaction',\n isExpanded: true\n }\n }\n];\n\nvar TASK = [\n {\n label: 'Task',\n actionName: 'replace-with-task',\n className: 'bpmn-icon-task',\n target: {\n type: 'bpmn:Task'\n }\n },\n {\n label: 'Send Task',\n actionName: 'replace-with-send-task',\n className: 'bpmn-icon-send',\n target: {\n type: 'bpmn:SendTask'\n }\n },\n {\n label: 'Receive Task',\n actionName: 'replace-with-receive-task',\n className: 'bpmn-icon-receive',\n target: {\n type: 'bpmn:ReceiveTask'\n }\n },\n {\n label: 'User Task',\n actionName: 'replace-with-user-task',\n className: 'bpmn-icon-user',\n target: {\n type: 'bpmn:UserTask'\n }\n },\n {\n label: 'Manual Task',\n actionName: 'replace-with-manual-task',\n className: 'bpmn-icon-manual',\n target: {\n type: 'bpmn:ManualTask'\n }\n },\n {\n label: 'Business Rule Task',\n actionName: 'replace-with-rule-task',\n className: 'bpmn-icon-business-rule',\n target: {\n type: 'bpmn:BusinessRuleTask'\n }\n },\n {\n label: 'Service Task',\n actionName: 'replace-with-service-task',\n className: 'bpmn-icon-service',\n target: {\n type: 'bpmn:ServiceTask'\n }\n },\n {\n label: 'Script Task',\n actionName: 'replace-with-script-task',\n className: 'bpmn-icon-script',\n target: {\n type: 'bpmn:ScriptTask'\n }\n },\n {\n label: 'Call Activity',\n actionName: 'replace-with-call-activity',\n className: 'bpmn-icon-call-activity',\n target: {\n type: 'bpmn:CallActivity'\n }\n },\n {\n label: 'Sub Process (collapsed)',\n actionName: 'replace-with-collapsed-subprocess',\n className: 'bpmn-icon-subprocess-collapsed',\n target: {\n type: 'bpmn:SubProcess',\n isExpanded: false\n }\n },\n {\n label: 'Sub Process (expanded)',\n actionName: 'replace-with-expanded-subprocess',\n className: 'bpmn-icon-subprocess-expanded',\n target: {\n type: 'bpmn:SubProcess',\n isExpanded: true\n }\n }\n];\n\nvar DATA_OBJECT_REFERENCE = [\n {\n label: 'Data Store Reference',\n actionName: 'replace-with-data-store-reference',\n className: 'bpmn-icon-data-store',\n target: {\n type: 'bpmn:DataStoreReference'\n }\n }\n];\n\nvar DATA_STORE_REFERENCE = [\n {\n label: 'Data Object Reference',\n actionName: 'replace-with-data-object-reference',\n className: 'bpmn-icon-data-object',\n target: {\n type: 'bpmn:DataObjectReference'\n }\n }\n];\n\nvar BOUNDARY_EVENT = [\n {\n label: 'Message Boundary Event',\n actionName: 'replace-with-message-boundary',\n className: 'bpmn-icon-intermediate-event-catch-message',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition'\n }\n },\n {\n label: 'Timer Boundary Event',\n actionName: 'replace-with-timer-boundary',\n className: 'bpmn-icon-intermediate-event-catch-timer',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:TimerEventDefinition'\n }\n },\n {\n label: 'Escalation Boundary Event',\n actionName: 'replace-with-escalation-boundary',\n className: 'bpmn-icon-intermediate-event-catch-escalation',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:EscalationEventDefinition'\n }\n },\n {\n label: 'Conditional Boundary Event',\n actionName: 'replace-with-conditional-boundary',\n className: 'bpmn-icon-intermediate-event-catch-condition',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n }\n },\n {\n label: 'Error Boundary Event',\n actionName: 'replace-with-error-boundary',\n className: 'bpmn-icon-intermediate-event-catch-error',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:ErrorEventDefinition'\n }\n },\n {\n label: 'Cancel Boundary Event',\n actionName: 'replace-with-cancel-boundary',\n className: 'bpmn-icon-intermediate-event-catch-cancel',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:CancelEventDefinition'\n }\n },\n {\n label: 'Signal Boundary Event',\n actionName: 'replace-with-signal-boundary',\n className: 'bpmn-icon-intermediate-event-catch-signal',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition'\n }\n },\n {\n label: 'Compensation Boundary Event',\n actionName: 'replace-with-compensation-boundary',\n className: 'bpmn-icon-intermediate-event-catch-compensation',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:CompensateEventDefinition'\n }\n },\n {\n label: 'Message Boundary Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-message-boundary',\n className: 'bpmn-icon-intermediate-event-catch-non-interrupting-message',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition',\n cancelActivity: false\n }\n },\n {\n label: 'Timer Boundary Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-timer-boundary',\n className: 'bpmn-icon-intermediate-event-catch-non-interrupting-timer',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:TimerEventDefinition',\n cancelActivity: false\n }\n },\n {\n label: 'Escalation Boundary Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-escalation-boundary',\n className: 'bpmn-icon-intermediate-event-catch-non-interrupting-escalation',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:EscalationEventDefinition',\n cancelActivity: false\n }\n },\n {\n label: 'Conditional Boundary Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-conditional-boundary',\n className: 'bpmn-icon-intermediate-event-catch-non-interrupting-condition',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:ConditionalEventDefinition',\n cancelActivity: false\n }\n },\n {\n label: 'Signal Boundary Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-signal-boundary',\n className: 'bpmn-icon-intermediate-event-catch-non-interrupting-signal',\n target: {\n type: 'bpmn:BoundaryEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition',\n cancelActivity: false\n }\n }\n];\n\nvar EVENT_SUB_PROCESS_START_EVENT = [\n {\n label: 'Message Start Event',\n actionName: 'replace-with-message-start',\n className: 'bpmn-icon-start-event-message',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition'\n }\n },\n {\n label: 'Timer Start Event',\n actionName: 'replace-with-timer-start',\n className: 'bpmn-icon-start-event-timer',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:TimerEventDefinition'\n }\n },\n {\n label: 'Conditional Start Event',\n actionName: 'replace-with-conditional-start',\n className: 'bpmn-icon-start-event-condition',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n }\n },\n {\n label: 'Signal Start Event',\n actionName: 'replace-with-signal-start',\n className: 'bpmn-icon-start-event-signal',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition'\n }\n },\n {\n label: 'Error Start Event',\n actionName: 'replace-with-error-start',\n className: 'bpmn-icon-start-event-error',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:ErrorEventDefinition'\n }\n },\n {\n label: 'Escalation Start Event',\n actionName: 'replace-with-escalation-start',\n className: 'bpmn-icon-start-event-escalation',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:EscalationEventDefinition'\n }\n },\n {\n label: 'Compensation Start Event',\n actionName: 'replace-with-compensation-start',\n className: 'bpmn-icon-start-event-compensation',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:CompensateEventDefinition'\n }\n },\n {\n label: 'Message Start Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-message-start',\n className: 'bpmn-icon-start-event-non-interrupting-message',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:MessageEventDefinition',\n isInterrupting: false\n }\n },\n {\n label: 'Timer Start Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-timer-start',\n className: 'bpmn-icon-start-event-non-interrupting-timer',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:TimerEventDefinition',\n isInterrupting: false\n }\n },\n {\n label: 'Conditional Start Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-conditional-start',\n className: 'bpmn-icon-start-event-non-interrupting-condition',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:ConditionalEventDefinition',\n isInterrupting: false\n }\n },\n {\n label: 'Signal Start Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-signal-start',\n className: 'bpmn-icon-start-event-non-interrupting-signal',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:SignalEventDefinition',\n isInterrupting: false\n }\n },\n {\n label: 'Escalation Start Event (non-interrupting)',\n actionName: 'replace-with-non-interrupting-escalation-start',\n className: 'bpmn-icon-start-event-non-interrupting-escalation',\n target: {\n type: 'bpmn:StartEvent',\n eventDefinitionType: 'bpmn:EscalationEventDefinition',\n isInterrupting: false\n }\n }\n];\n\nvar SEQUENCE_FLOW = [\n {\n label: 'Sequence Flow',\n actionName: 'replace-with-sequence-flow',\n className: 'bpmn-icon-connection'\n },\n {\n label: 'Default Flow',\n actionName: 'replace-with-default-flow',\n className: 'bpmn-icon-default-flow'\n },\n {\n label: 'Conditional Flow',\n actionName: 'replace-with-conditional-flow',\n className: 'bpmn-icon-conditional-flow'\n }\n];\n\nvar PARTICIPANT = [\n {\n label: 'Expanded Pool',\n actionName: 'replace-with-expanded-pool',\n className: 'bpmn-icon-participant',\n target: {\n type: 'bpmn:Participant',\n isExpanded: true\n }\n },\n {\n label: function(element) {\n var label = 'Empty Pool';\n\n if (element.children && element.children.length) {\n label += ' (removes content)';\n }\n\n return label;\n },\n actionName: 'replace-with-collapsed-pool',\n\n // TODO(@janstuemmel): maybe design new icon\n className: 'bpmn-icon-lane',\n target: {\n type: 'bpmn:Participant',\n isExpanded: false\n }\n }\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/replace/index.js": /*!************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/replace/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copy_paste__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../copy-paste */ \"./node_modules/bpmn-js/lib/features/copy-paste/index.js\");\n/* harmony import */ var diagram_js_lib_features_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/replace */ \"./node_modules/diagram-js/lib/features/replace/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _BpmnReplace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BpmnReplace */ \"./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _copy_paste__WEBPACK_IMPORTED_MODULE_0__.default,\n diagram_js_lib_features_replace__WEBPACK_IMPORTED_MODULE_1__.default,\n diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__.default\n ],\n bpmnReplace: [ 'type', _BpmnReplace__WEBPACK_IMPORTED_MODULE_3__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/rules/BpmnRules.js": /*!**************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/rules/BpmnRules.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnRules)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var diagram_js_lib_features_rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/rules/RuleProvider */ \"./node_modules/diagram-js/lib/features/rules/RuleProvider.js\");\n/* harmony import */ var _snapping_BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../snapping/BpmnSnappingUtil */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * BPMN specific modeling rule\n */\nfunction BpmnRules(eventBus) {\n diagram_js_lib_features_rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnRules, diagram_js_lib_features_rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnRules.$inject = [ 'eventBus' ];\n\nBpmnRules.prototype.init = function() {\n\n this.addRule('connection.start', function(context) {\n var source = context.source;\n\n return canStartConnection(source);\n });\n\n this.addRule('connection.create', function(context) {\n var source = context.source,\n target = context.target,\n hints = context.hints || {},\n targetParent = hints.targetParent,\n targetAttach = hints.targetAttach;\n\n // don't allow incoming connections on\n // newly created boundary events\n // to boundary events\n if (targetAttach) {\n return false;\n }\n\n // temporarily set target parent for scoping\n // checks to work\n if (targetParent) {\n target.parent = targetParent;\n }\n\n try {\n return canConnect(source, target);\n } finally {\n\n // unset temporary target parent\n if (targetParent) {\n target.parent = null;\n }\n }\n });\n\n this.addRule('connection.reconnect', function(context) {\n\n var connection = context.connection,\n source = context.source,\n target = context.target;\n\n return canConnect(source, target, connection);\n });\n\n this.addRule('connection.updateWaypoints', function(context) {\n return {\n type: context.connection.type\n };\n });\n\n this.addRule('shape.resize', function(context) {\n\n var shape = context.shape,\n newBounds = context.newBounds;\n\n return canResize(shape, newBounds);\n });\n\n this.addRule('elements.create', function(context) {\n var elements = context.elements,\n position = context.position,\n target = context.target;\n\n if (isConnection(target) && !canInsert(elements, target, position)) {\n return false;\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.every)(elements, function(element) {\n if (isConnection(element)) {\n return canConnect(element.source, element.target, element);\n }\n\n if (element.host) {\n return canAttach(element, element.host, null, position);\n }\n\n return canCreate(element, target, null, position);\n });\n });\n\n this.addRule('elements.move', function(context) {\n\n var target = context.target,\n shapes = context.shapes,\n position = context.position;\n\n return canAttach(shapes, target, null, position) ||\n canReplace(shapes, target, position) ||\n canMove(shapes, target, position) ||\n canInsert(shapes, target, position);\n });\n\n this.addRule('shape.create', function(context) {\n return canCreate(\n context.shape,\n context.target,\n context.source,\n context.position\n );\n });\n\n this.addRule('shape.attach', function(context) {\n\n return canAttach(\n context.shape,\n context.target,\n null,\n context.position\n );\n });\n\n this.addRule('element.copy', function(context) {\n var element = context.element,\n elements = context.elements;\n\n return canCopy(elements, element);\n });\n};\n\nBpmnRules.prototype.canConnectMessageFlow = canConnectMessageFlow;\n\nBpmnRules.prototype.canConnectSequenceFlow = canConnectSequenceFlow;\n\nBpmnRules.prototype.canConnectDataAssociation = canConnectDataAssociation;\n\nBpmnRules.prototype.canConnectAssociation = canConnectAssociation;\n\nBpmnRules.prototype.canMove = canMove;\n\nBpmnRules.prototype.canAttach = canAttach;\n\nBpmnRules.prototype.canReplace = canReplace;\n\nBpmnRules.prototype.canDrop = canDrop;\n\nBpmnRules.prototype.canInsert = canInsert;\n\nBpmnRules.prototype.canCreate = canCreate;\n\nBpmnRules.prototype.canConnect = canConnect;\n\nBpmnRules.prototype.canResize = canResize;\n\nBpmnRules.prototype.canCopy = canCopy;\n\n/**\n * Utility functions for rule checking\n */\n\n/**\n * Checks if given element can be used for starting connection.\n *\n * @param {Element} source\n * @return {boolean}\n */\nfunction canStartConnection(element) {\n if (nonExistingOrLabel(element)) {\n return null;\n }\n\n return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [\n 'bpmn:FlowNode',\n 'bpmn:InteractionNode',\n 'bpmn:DataObjectReference',\n 'bpmn:DataStoreReference',\n 'bpmn:Group',\n 'bpmn:TextAnnotation'\n ]);\n}\n\nfunction nonExistingOrLabel(element) {\n return !element || (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element);\n}\n\nfunction isSame(a, b) {\n return a === b;\n}\n\nfunction getOrganizationalParent(element) {\n\n do {\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Process')) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Participant')) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element).processRef ||\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element)\n );\n }\n } while ((element = element.parent));\n\n}\n\nfunction isTextAnnotation(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:TextAnnotation');\n}\n\nfunction isGroup(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Group') && !element.labelTarget;\n}\n\nfunction isCompensationBoundary(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') &&\n hasEventDefinition(element, 'bpmn:CompensateEventDefinition');\n}\n\nfunction isForCompensation(e) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(e).isForCompensation;\n}\n\nfunction isSameOrganization(a, b) {\n var parentA = getOrganizationalParent(a),\n parentB = getOrganizationalParent(b);\n\n return parentA === parentB;\n}\n\nfunction isMessageFlowSource(element) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:InteractionNode') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') && (\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Event') || (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:ThrowEvent') &&\n hasEventDefinitionOrNone(element, 'bpmn:MessageEventDefinition')\n )\n )\n );\n}\n\nfunction isMessageFlowTarget(element) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:InteractionNode') &&\n !isForCompensation(element) && (\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Event') || (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:CatchEvent') &&\n hasEventDefinitionOrNone(element, 'bpmn:MessageEventDefinition')\n )\n ) && !(\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') &&\n !hasEventDefinition(element, 'bpmn:MessageEventDefinition')\n )\n );\n}\n\nfunction getScopeParent(element) {\n\n var parent = element;\n\n while ((parent = parent.parent)) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(parent, 'bpmn:FlowElementsContainer')) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(parent);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(parent, 'bpmn:Participant')) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(parent).processRef;\n }\n }\n\n return null;\n}\n\nfunction isSameScope(a, b) {\n var scopeParentA = getScopeParent(a),\n scopeParentB = getScopeParent(b);\n\n return scopeParentA === scopeParentB;\n}\n\nfunction hasEventDefinition(element, eventDefinition) {\n var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n\n return !!(0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(bo.eventDefinitions || [], function(definition) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(definition, eventDefinition);\n });\n}\n\nfunction hasEventDefinitionOrNone(element, eventDefinition) {\n var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n\n return (bo.eventDefinitions || []).every(function(definition) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(definition, eventDefinition);\n });\n}\n\nfunction isSequenceFlowSource(element) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:FlowNode') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:EndEvent') &&\n !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(element) &&\n !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateThrowEvent') &&\n hasEventDefinition(element, 'bpmn:LinkEventDefinition')\n ) &&\n !isCompensationBoundary(element) &&\n !isForCompensation(element)\n );\n}\n\nfunction isSequenceFlowTarget(element) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:FlowNode') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:StartEvent') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') &&\n !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(element) &&\n !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateCatchEvent') &&\n hasEventDefinition(element, 'bpmn:LinkEventDefinition')\n ) &&\n !isForCompensation(element)\n );\n}\n\nfunction isEventBasedTarget(element) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:ReceiveTask') || (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateCatchEvent') && (\n hasEventDefinition(element, 'bpmn:MessageEventDefinition') ||\n hasEventDefinition(element, 'bpmn:TimerEventDefinition') ||\n hasEventDefinition(element, 'bpmn:ConditionalEventDefinition') ||\n hasEventDefinition(element, 'bpmn:SignalEventDefinition')\n )\n )\n );\n}\n\nfunction isConnection(element) {\n return element.waypoints;\n}\n\nfunction getParents(element) {\n\n var parents = [];\n\n while (element) {\n element = element.parent;\n\n if (element) {\n parents.push(element);\n }\n }\n\n return parents;\n}\n\nfunction isParent(possibleParent, element) {\n var allParents = getParents(element);\n return allParents.indexOf(possibleParent) !== -1;\n}\n\nfunction canConnect(source, target, connection) {\n\n if (nonExistingOrLabel(source) || nonExistingOrLabel(target)) {\n return null;\n }\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(connection, 'bpmn:DataAssociation')) {\n\n if (canConnectMessageFlow(source, target)) {\n return { type: 'bpmn:MessageFlow' };\n }\n\n if (canConnectSequenceFlow(source, target)) {\n return { type: 'bpmn:SequenceFlow' };\n }\n }\n\n var connectDataAssociation = canConnectDataAssociation(source, target);\n\n if (connectDataAssociation) {\n return connectDataAssociation;\n }\n\n if (isCompensationBoundary(source) && isForCompensation(target)) {\n return {\n type: 'bpmn:Association',\n associationDirection: 'One'\n };\n }\n\n if (canConnectAssociation(source, target)) {\n\n return {\n type: 'bpmn:Association'\n };\n }\n\n return false;\n}\n\n/**\n * Can an element be dropped into the target element\n *\n * @return {boolean}\n */\nfunction canDrop(element, target, position) {\n\n // can move labels and groups everywhere\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element) || isGroup(element)) {\n return true;\n }\n\n\n // disallow to create elements on collapsed pools\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Participant') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(target)) {\n return false;\n }\n\n // allow to create new participants on\n // existing collaboration and process diagrams\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Participant')) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Process') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Collaboration');\n }\n\n // allow moving DataInput / DataOutput within its original container only\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [ 'bpmn:DataInput', 'bpmn:DataOutput' ])) {\n\n if (element.parent) {\n return target === element.parent;\n }\n }\n\n // allow creating lanes on participants and other lanes only\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Lane')) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Participant') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Lane');\n }\n\n // disallow dropping boundary events which cannot replace with intermediate event\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') && !isDroppableBoundaryEvent(element)) {\n return false;\n }\n\n // drop flow elements onto flow element containers\n // and participants\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:FlowElement') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:DataStoreReference')) {\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:FlowElementsContainer')) {\n return (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(target);\n }\n\n return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [ 'bpmn:Participant', 'bpmn:Lane' ]);\n }\n\n // disallow dropping data store reference if there is no process to append to\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:DataStoreReference') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Collaboration')) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.some)((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(target).get('participants'), function(participant) {\n return !!participant.get('processRef');\n });\n }\n\n // account for the fact that data associations are always\n // rendered and moved to top (Process or Collaboration level)\n //\n // artifacts may be placed wherever, too\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [ 'bpmn:Artifact', 'bpmn:DataAssociation', 'bpmn:DataStoreReference' ])) {\n return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [\n 'bpmn:Collaboration',\n 'bpmn:Lane',\n 'bpmn:Participant',\n 'bpmn:Process',\n 'bpmn:SubProcess' ]);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:MessageFlow')) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Collaboration')\n || element.source.parent == target\n || element.target.parent == target;\n }\n\n return false;\n}\n\nfunction isDroppableBoundaryEvent(event) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(event).cancelActivity && (\n hasNoEventDefinition(event) || hasCommonBoundaryIntermediateEventDefinition(event)\n );\n}\n\nfunction isBoundaryEvent(element) {\n return !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element) && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent');\n}\n\nfunction isLane(element) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Lane');\n}\n\n/**\n * We treat IntermediateThrowEvents as boundary events during create,\n * this must be reflected in the rules.\n */\nfunction isBoundaryCandidate(element) {\n if (isBoundaryEvent(element)) {\n return true;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateThrowEvent') && hasNoEventDefinition(element)) {\n return true;\n }\n\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateCatchEvent') &&\n hasCommonBoundaryIntermediateEventDefinition(element)\n );\n}\n\nfunction hasNoEventDefinition(element) {\n var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n\n return bo && !(bo.eventDefinitions && bo.eventDefinitions.length);\n}\n\nfunction hasCommonBoundaryIntermediateEventDefinition(element) {\n return hasOneOfEventDefinitions(element, [\n 'bpmn:MessageEventDefinition',\n 'bpmn:TimerEventDefinition',\n 'bpmn:SignalEventDefinition',\n 'bpmn:ConditionalEventDefinition'\n ]);\n}\n\nfunction hasOneOfEventDefinitions(element, eventDefinitions) {\n return eventDefinitions.some(function(definition) {\n return hasEventDefinition(element, definition);\n });\n}\n\nfunction isReceiveTaskAfterEventBasedGateway(element) {\n return (\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:ReceiveTask') &&\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(element.incoming, function(incoming) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(incoming.source, 'bpmn:EventBasedGateway');\n })\n );\n}\n\n\nfunction canAttach(elements, target, source, position) {\n\n if (!Array.isArray(elements)) {\n elements = [ elements ];\n }\n\n // only (re-)attach one element at a time\n if (elements.length !== 1) {\n return false;\n }\n\n var element = elements[0];\n\n // do not attach labels\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element)) {\n return false;\n }\n\n // only handle boundary events\n if (!isBoundaryCandidate(element)) {\n return false;\n }\n\n // disallow drop on event sub processes\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(target)) {\n return false;\n }\n\n // only allow drop on non compensation activities\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Activity') || isForCompensation(target)) {\n return false;\n }\n\n // only attach to subprocess border\n if (position && !(0,_snapping_BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_7__.getBoundaryAttachment)(position, target)) {\n return false;\n }\n\n // do not attach on receive tasks after event based gateways\n if (isReceiveTaskAfterEventBasedGateway(target)) {\n return false;\n }\n\n return 'attach';\n}\n\n\n/**\n * Defines how to replace elements for a given target.\n *\n * Returns an array containing all elements which will be replaced.\n *\n * @example\n *\n * [{ id: 'IntermediateEvent_2',\n * type: 'bpmn:StartEvent'\n * },\n * { id: 'IntermediateEvent_5',\n * type: 'bpmn:EndEvent'\n * }]\n *\n * @param {Array} elements\n * @param {Object} target\n *\n * @return {Object} an object containing all elements which have to be replaced\n */\nfunction canReplace(elements, target, position) {\n\n if (!target) {\n return false;\n }\n\n var canExecute = {\n replacements: []\n };\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(elements, function(element) {\n\n if (!(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(target)) {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:StartEvent') &&\n element.type !== 'label' &&\n canDrop(element, target)) {\n\n // replace a non-interrupting start event by a blank interrupting start event\n // when the target is not an event sub process\n if (!(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isInterrupting)(element)) {\n canExecute.replacements.push({\n oldElementId: element.id,\n newElementType: 'bpmn:StartEvent'\n });\n }\n\n // replace an error/escalation/compensate start event by a blank interrupting start event\n // when the target is not an event sub process\n if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasErrorEventDefinition)(element) ||\n (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasEscalationEventDefinition)(element) ||\n (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasCompensateEventDefinition)(element)) {\n canExecute.replacements.push({\n oldElementId: element.id,\n newElementType: 'bpmn:StartEvent'\n });\n }\n\n // replace a typed start event by a blank interrupting start event\n // when the target is a sub process but not an event sub process\n if (hasOneOfEventDefinitions(element,\n [\n 'bpmn:MessageEventDefinition',\n 'bpmn:TimerEventDefinition',\n 'bpmn:SignalEventDefinition',\n 'bpmn:ConditionalEventDefinition'\n ]) &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:SubProcess')) {\n canExecute.replacements.push({\n oldElementId: element.id,\n newElementType: 'bpmn:StartEvent'\n });\n }\n }\n }\n\n if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Transaction')) {\n if (hasEventDefinition(element, 'bpmn:CancelEventDefinition') &&\n element.type !== 'label') {\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:EndEvent') && canDrop(element, target)) {\n canExecute.replacements.push({\n oldElementId: element.id,\n newElementType: 'bpmn:EndEvent'\n });\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') && canAttach(element, target, null, position)) {\n canExecute.replacements.push({\n oldElementId: element.id,\n newElementType: 'bpmn:BoundaryEvent'\n });\n }\n }\n }\n });\n\n return canExecute.replacements.length ? canExecute : false;\n}\n\nfunction canMove(elements, target) {\n\n // do not move selection containing lanes\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.some)(elements, isLane)) {\n return false;\n }\n\n // allow default move check to start move operation\n if (!target) {\n return true;\n }\n\n return elements.every(function(element) {\n return canDrop(element, target);\n });\n}\n\nfunction canCreate(shape, target, source, position) {\n\n if (!target) {\n return false;\n }\n\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(shape) || isGroup(shape)) {\n return true;\n }\n\n if (isSame(source, target)) {\n return false;\n }\n\n // ensure we do not drop the element\n // into source\n if (source && isParent(source, target)) {\n return false;\n }\n\n return canDrop(shape, target, position) || canInsert(shape, target, position);\n}\n\nfunction canResize(shape, newBounds) {\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:SubProcess')) {\n return (\n (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(shape) && (\n !newBounds || (newBounds.width >= 100 && newBounds.height >= 80)\n )\n );\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:Lane')) {\n return !newBounds || (newBounds.width >= 130 && newBounds.height >= 60);\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:Participant')) {\n return !newBounds || (newBounds.width >= 250 && newBounds.height >= 50);\n }\n\n if (isTextAnnotation(shape)) {\n return true;\n }\n\n if (isGroup(shape)) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Check, whether one side of the relationship\n * is a text annotation.\n */\nfunction isOneTextAnnotation(source, target) {\n\n var sourceTextAnnotation = isTextAnnotation(source),\n targetTextAnnotation = isTextAnnotation(target);\n\n return (\n (sourceTextAnnotation || targetTextAnnotation) &&\n (sourceTextAnnotation !== targetTextAnnotation)\n );\n}\n\n\nfunction canConnectAssociation(source, target) {\n\n // do not connect connections\n if (isConnection(source) || isConnection(target)) {\n return false;\n }\n\n // compensation boundary events are exception\n if (isCompensationBoundary(source) && isForCompensation(target)) {\n return true;\n }\n\n // don't connect parent <-> child\n if (isParent(target, source) || isParent(source, target)) {\n return false;\n }\n\n // allow connection of associations between and \n if (isOneTextAnnotation(source, target)) {\n return true;\n }\n\n // can connect associations where we can connect\n // data associations, too (!)\n return !!canConnectDataAssociation(source, target);\n}\n\nfunction canConnectMessageFlow(source, target) {\n\n // during connect user might move mouse out of canvas\n // https://github.com/bpmn-io/bpmn-js/issues/1033\n if (getRootElement(source) && !getRootElement(target)) {\n return false;\n }\n\n return (\n isMessageFlowSource(source) &&\n isMessageFlowTarget(target) &&\n !isSameOrganization(source, target)\n );\n}\n\nfunction canConnectSequenceFlow(source, target) {\n\n if (\n isEventBasedTarget(target) &&\n target.incoming.length > 0 &&\n areOutgoingEventBasedGatewayConnections(target.incoming) &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(source, 'bpmn:EventBasedGateway')\n ) {\n return false;\n }\n\n return isSequenceFlowSource(source) &&\n isSequenceFlowTarget(target) &&\n isSameScope(source, target) &&\n !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(source, 'bpmn:EventBasedGateway') && !isEventBasedTarget(target));\n}\n\n\nfunction canConnectDataAssociation(source, target) {\n\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(source, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ]) &&\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [ 'bpmn:Activity', 'bpmn:ThrowEvent' ])) {\n return { type: 'bpmn:DataInputAssociation' };\n }\n\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ]) &&\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(source, [ 'bpmn:Activity', 'bpmn:CatchEvent' ])) {\n return { type: 'bpmn:DataOutputAssociation' };\n }\n\n return false;\n}\n\nfunction canInsert(shape, flow, position) {\n\n if (!flow) {\n return false;\n }\n\n if (Array.isArray(shape)) {\n if (shape.length !== 1) {\n return false;\n }\n\n shape = shape[0];\n }\n\n if (flow.source === shape ||\n flow.target === shape) {\n return false;\n }\n\n // return true if we can drop on the\n // underlying flow parent\n //\n // at this point we are not really able to talk\n // about connection rules (yet)\n\n return (\n (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(flow, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ]) &&\n !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(flow) &&\n (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:FlowNode') &&\n !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:BoundaryEvent') &&\n canDrop(shape, flow.parent, position));\n}\n\nfunction includes(elements, element) {\n return (elements && element) && elements.indexOf(element) !== -1;\n}\n\nfunction canCopy(elements, element) {\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element)) {\n return true;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Lane') && !includes(elements, element.parent)) {\n return false;\n }\n\n return true;\n}\n\nfunction isOutgoingEventBasedGatewayConnection(connection) {\n\n if (connection && connection.source) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(connection.source, 'bpmn:EventBasedGateway');\n }\n}\n\nfunction areOutgoingEventBasedGatewayConnections(connections) {\n connections = connections || [];\n\n return connections.some(isOutgoingEventBasedGatewayConnection);\n}\n\nfunction getRootElement(element) {\n return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(element, 'bpmn:Process') || (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(element, 'bpmn:Collaboration');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/rules/BpmnRules.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/rules/index.js": /*!**********************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/rules/index.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _BpmnRules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnRules */ \"./node_modules/bpmn-js/lib/features/rules/BpmnRules.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_rules__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'bpmnRules' ],\n bpmnRules: [ 'type', _BpmnRules__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/rules/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js": /*!************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnSearchProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n\n\n\n\n\n/**\n * Provides ability to search through BPMN elements\n */\nfunction BpmnSearchProvider(elementRegistry, searchPad, canvas) {\n\n this._elementRegistry = elementRegistry;\n this._canvas = canvas;\n\n searchPad.registerProvider(this);\n}\n\nBpmnSearchProvider.$inject = [\n 'elementRegistry',\n 'searchPad',\n 'canvas'\n];\n\n\n/**\n * Finds all elements that match given pattern\n *\n * :\n * {\n * primaryTokens: >,\n * secondaryTokens: >,\n * element: \n * }\n *\n * :\n * {\n * normal|matched: \n * }\n *\n * @param {string} pattern\n * @return {Array}\n */\nBpmnSearchProvider.prototype.find = function(pattern) {\n var rootElement = this._canvas.getRootElement();\n\n var elements = this._elementRegistry.filter(function(element) {\n if (element.labelTarget) {\n return false;\n }\n return true;\n });\n\n // do not include root element\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n return element !== rootElement;\n });\n\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elements, function(element) {\n return {\n primaryTokens: matchAndSplit((0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getLabel)(element), pattern),\n secondaryTokens: matchAndSplit(element.id, pattern),\n element: element\n };\n });\n\n // exclude non-matched elements\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n return hasMatched(element.primaryTokens) || hasMatched(element.secondaryTokens);\n });\n\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(elements, function(element) {\n return (0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getLabel)(element.element) + element.element.id;\n });\n\n return elements;\n};\n\n\nfunction hasMatched(tokens) {\n var matched = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(tokens, function(t) {\n return !!t.matched;\n });\n\n return matched.length > 0;\n}\n\n\nfunction matchAndSplit(text, pattern) {\n var tokens = [],\n originalText = text;\n\n if (!text) {\n return tokens;\n }\n\n text = text.toLowerCase();\n pattern = pattern.toLowerCase();\n\n var i = text.indexOf(pattern);\n\n if (i > -1) {\n if (i !== 0) {\n tokens.push({\n normal: originalText.substr(0, i)\n });\n }\n\n tokens.push({\n matched: originalText.substr(i, pattern.length)\n });\n\n if (pattern.length + i < text.length) {\n tokens.push({\n normal: originalText.substr(pattern.length + i, text.length)\n });\n }\n } else {\n tokens.push({\n normal: originalText\n });\n }\n\n return tokens;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/search/index.js": /*!***********************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/search/index.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_search_pad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/search-pad */ \"./node_modules/diagram-js/lib/features/search-pad/index.js\");\n/* harmony import */ var _BpmnSearchProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnSearchProvider */ \"./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_search_pad__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'bpmnSearch'],\n bpmnSearch: [ 'type', _BpmnSearchProvider__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/search/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js": /*!***************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnConnectSnapping)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var diagram_js_lib_features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGHER_PRIORITY = 1250;\r\n\r\nvar BOUNDARY_TO_HOST_THRESHOLD = 40;\r\n\r\nvar TARGET_BOUNDS_PADDING = 20,\r\n TASK_BOUNDS_PADDING = 10;\r\n\r\nvar TARGET_CENTER_PADDING = 20;\r\n\r\nvar AXES = [ 'x', 'y' ];\r\n\r\nvar abs = Math.abs;\r\n\r\n/**\r\n * Snap during connect.\r\n *\r\n * @param {EventBus} eventBus\r\n */\r\nfunction BpmnConnectSnapping(eventBus) {\r\n eventBus.on([\r\n 'connect.hover',\r\n 'connect.move',\r\n 'connect.end',\r\n ], HIGHER_PRIORITY, function(event) {\r\n var context = event.context,\r\n canExecute = context.canExecute,\r\n start = context.start,\r\n hover = context.hover,\r\n source = context.source,\r\n target = context.target;\r\n\r\n // do NOT snap on CMD\r\n if (event.originalEvent && (0,diagram_js_lib_features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event.originalEvent)) {\r\n return;\r\n }\r\n\r\n if (!context.initialConnectionStart) {\r\n context.initialConnectionStart = context.connectionStart;\r\n }\r\n\r\n // snap hover\r\n if (canExecute && hover) {\r\n snapToShape(event, hover, getTargetBoundsPadding(hover));\r\n }\r\n\r\n if (hover && isAnyType(canExecute, [\r\n 'bpmn:Association',\r\n 'bpmn:DataInputAssociation',\r\n 'bpmn:DataOutputAssociation',\r\n 'bpmn:SequenceFlow'\r\n ])) {\r\n context.connectionStart = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(start);\r\n\r\n // snap hover\r\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(hover, [ 'bpmn:Event', 'bpmn:Gateway' ])) {\r\n snapToPosition(event, (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(hover));\r\n }\r\n\r\n // snap hover\r\n if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(hover, [ 'bpmn:Task', 'bpmn:SubProcess' ])) {\r\n snapToTargetMid(event, hover);\r\n }\r\n\r\n // snap source and target\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(source, 'bpmn:BoundaryEvent') && target === source.host) {\r\n snapBoundaryEventLoop(event);\r\n }\r\n\r\n } else if (isType(canExecute, 'bpmn:MessageFlow')) {\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(start, 'bpmn:Event')) {\r\n\r\n // snap start\r\n context.connectionStart = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(start);\r\n }\r\n\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(hover, 'bpmn:Event')) {\r\n\r\n // snap hover\r\n snapToPosition(event, (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(hover));\r\n }\r\n\r\n } else {\r\n\r\n // un-snap source\r\n context.connectionStart = context.initialConnectionStart;\r\n }\r\n });\r\n}\r\n\r\nBpmnConnectSnapping.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////////\r\n\r\n// snap to target if event in target\r\nfunction snapToShape(event, target, padding) {\r\n AXES.forEach(function(axis) {\r\n var dimensionForAxis = getDimensionForAxis(axis, target);\r\n\r\n if (event[ axis ] < target[ axis ] + padding) {\r\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, target[ axis ] + padding);\r\n } else if (event[ axis ] > target[ axis ] + dimensionForAxis - padding) {\r\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, target[ axis ] + dimensionForAxis - padding);\r\n }\r\n });\r\n}\r\n\r\n// snap to target mid if event in target mid\r\nfunction snapToTargetMid(event, target) {\r\n var targetMid = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(target);\r\n\r\n AXES.forEach(function(axis) {\r\n if (isMid(event, target, axis)) {\r\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, targetMid[ axis ]);\r\n }\r\n });\r\n}\r\n\r\n// snap to prevent loop overlapping boundary event\r\nfunction snapBoundaryEventLoop(event) {\r\n var context = event.context,\r\n source = context.source,\r\n target = context.target;\r\n\r\n if (isReverse(context)) {\r\n return;\r\n }\r\n\r\n var sourceMid = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(source),\r\n orientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.getOrientation)(sourceMid, target, -10),\r\n axes = [];\r\n\r\n if (/top|bottom/.test(orientation)) {\r\n axes.push('x');\r\n }\r\n\r\n if (/left|right/.test(orientation)) {\r\n axes.push('y');\r\n }\r\n\r\n axes.forEach(function(axis) {\r\n var coordinate = event[ axis ], newCoordinate;\r\n\r\n if (abs(coordinate - sourceMid[ axis ]) < BOUNDARY_TO_HOST_THRESHOLD) {\r\n if (coordinate > sourceMid[ axis ]) {\r\n newCoordinate = sourceMid[ axis ] + BOUNDARY_TO_HOST_THRESHOLD;\r\n }\r\n else {\r\n newCoordinate = sourceMid[ axis ] - BOUNDARY_TO_HOST_THRESHOLD;\r\n }\r\n\r\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, newCoordinate);\r\n }\r\n });\r\n}\r\n\r\nfunction snapToPosition(event, position) {\r\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', position.x);\r\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', position.y);\r\n}\r\n\r\nfunction isType(attrs, type) {\r\n return attrs && attrs.type === type;\r\n}\r\n\r\nfunction isAnyType(attrs, types) {\r\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.some)(types, function(type) {\r\n return isType(attrs, type);\r\n });\r\n}\r\n\r\nfunction getDimensionForAxis(axis, element) {\r\n return axis === 'x' ? element.width : element.height;\r\n}\r\n\r\nfunction getTargetBoundsPadding(target) {\r\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(target, 'bpmn:Task')) {\r\n return TASK_BOUNDS_PADDING;\r\n } else {\r\n return TARGET_BOUNDS_PADDING;\r\n }\r\n}\r\n\r\nfunction isMid(event, target, axis) {\r\n return event[ axis ] > target[ axis ] + TARGET_CENTER_PADDING\r\n && event[ axis ] < target[ axis ] + getDimensionForAxis(axis, target) - TARGET_CENTER_PADDING;\r\n}\r\n\r\nfunction isReverse(context) {\r\n var hover = context.hover,\r\n source = context.source;\r\n\r\n return hover && source && hover === source;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js": /*!******************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnCreateMoveSnapping)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/snapping/CreateMoveSnapping */ \"./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js\");\n/* harmony import */ var diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BpmnSnappingUtil */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 1500;\n\n\n/**\n * Snap during create and move.\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction BpmnCreateMoveSnapping(eventBus, injector) {\n injector.invoke(diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n // creating first participant\n eventBus.on([ 'create.move', 'create.end' ], HIGH_PRIORITY, setSnappedIfConstrained);\n\n // snap boundary events\n eventBus.on([\n 'create.move',\n 'create.end',\n 'shape.move.move',\n 'shape.move.end'\n ], HIGH_PRIORITY, function(event) {\n var context = event.context,\n canExecute = context.canExecute,\n target = context.target;\n\n var canAttach = canExecute && (canExecute === 'attach' || canExecute.attach);\n\n if (canAttach && !(0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.isSnapped)(event)) {\n snapBoundaryEvent(event, target);\n }\n });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnCreateMoveSnapping, diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnCreateMoveSnapping.$inject = [\n 'eventBus',\n 'injector'\n];\n\nBpmnCreateMoveSnapping.prototype.initSnap = function(event) {\n var snapContext = diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default.prototype.initSnap.call(this, event);\n\n var shape = event.shape;\n\n var isMove = !!this._elementRegistry.get(shape.id);\n\n // snap to docking points\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.outgoing, function(connection) {\n var docking = connection.waypoints[0];\n\n docking = docking.original || docking;\n\n snapContext.setSnapOrigin(connection.id + '-docking', getDockingSnapOrigin(docking, isMove, event));\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.incoming, function(connection) {\n var docking = connection.waypoints[connection.waypoints.length - 1];\n\n docking = docking.original || docking;\n\n snapContext.setSnapOrigin(connection.id + '-docking', getDockingSnapOrigin(docking, isMove, event));\n });\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(shape, 'bpmn:Participant')) {\n\n // snap to borders with higher priority\n snapContext.setSnapLocations([ 'top-left', 'bottom-right', 'mid' ]);\n }\n\n return snapContext;\n};\n\nBpmnCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target) {\n diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default.prototype.addSnapTargetPoints.call(this, snapPoints, shape, target);\n\n var snapTargets = this.getSnapTargets(shape, target);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(snapTargets, function(snapTarget) {\n\n // handle TRBL alignment\n //\n // * with container elements\n // * with text annotations\n if (isContainer(snapTarget) || areAll([ shape, snapTarget ], 'bpmn:TextAnnotation')) {\n snapPoints.add('top-left', (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.topLeft)(snapTarget));\n snapPoints.add('bottom-right', (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.bottomRight)(snapTarget));\n }\n });\n\n var elementRegistry = this._elementRegistry;\n\n // snap to docking points if not create mode\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.incoming, function(connection) {\n if (elementRegistry.get(shape.id)) {\n\n if (!includes(snapTargets, connection.source)) {\n snapPoints.add('mid', (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(connection.source));\n }\n\n var docking = connection.waypoints[0];\n snapPoints.add(connection.id + '-docking', docking.original || docking);\n }\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.outgoing, function(connection) {\n if (elementRegistry.get(shape.id)) {\n\n if (!includes(snapTargets, connection.target)) {\n snapPoints.add('mid', (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(connection.target));\n }\n\n var docking = connection.waypoints[ connection.waypoints.length - 1 ];\n\n snapPoints.add(connection.id + '-docking', docking.original || docking);\n }\n });\n\n // add sequence flow parents as snap targets\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(target, 'bpmn:SequenceFlow')) {\n snapPoints = this.addSnapTargetPoints(snapPoints, shape, target.parent);\n }\n\n return snapPoints;\n};\n\nBpmnCreateMoveSnapping.prototype.getSnapTargets = function(shape, target) {\n return diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default.prototype.getSnapTargets.call(this, shape, target)\n .filter(function(snapTarget) {\n\n // do not snap to lanes\n return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(snapTarget, 'bpmn:Lane');\n });\n};\n\n// helpers //////////\n\nfunction snapBoundaryEvent(event, target) {\n var targetTRBL = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)(target);\n\n var direction = (0,_BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_6__.getBoundaryAttachment)(event, target);\n\n var context = event.context,\n shape = context.shape;\n\n var offset;\n\n if (shape.parent) {\n offset = { x: 0, y: 0 };\n } else {\n offset = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(shape);\n }\n\n if (/top/.test(direction)) {\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'y', targetTRBL.top - offset.y);\n } else if (/bottom/.test(direction)) {\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'y', targetTRBL.bottom - offset.y);\n }\n\n if (/left/.test(direction)) {\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'x', targetTRBL.left - offset.x);\n } else if (/right/.test(direction)) {\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'x', targetTRBL.right - offset.x);\n }\n}\n\nfunction areAll(elements, type) {\n return elements.every(function(el) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(el, type);\n });\n}\n\nfunction isContainer(element) {\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_7__.isExpanded)(element)) {\n return true;\n }\n\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant');\n}\n\n\nfunction setSnappedIfConstrained(event) {\n var context = event.context,\n createConstraints = context.createConstraints;\n\n if (!createConstraints) {\n return;\n }\n\n var top = createConstraints.top,\n right = createConstraints.right,\n bottom = createConstraints.bottom,\n left = createConstraints.left;\n\n if ((left && left >= event.x) || (right && right <= event.x)) {\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'x', event.x);\n }\n\n if ((top && top >= event.y) || (bottom && bottom <= event.y)) {\n (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'y', event.y);\n }\n}\n\nfunction includes(array, value) {\n return array.indexOf(value) !== -1;\n}\n\nfunction getDockingSnapOrigin(docking, isMove, event) {\n return isMove ? (\n {\n x: docking.x - event.x,\n y: docking.y - event.y\n }\n ) : {\n x: docking.x,\n y: docking.y\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js": /*!************************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getBoundaryAttachment\": () => (/* binding */ getBoundaryAttachment)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\r\n\r\nfunction getBoundaryAttachment(position, targetBounds) {\r\n\r\n var orientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(position, targetBounds, -15);\r\n\r\n if (orientation !== 'intersect') {\r\n return orientation;\r\n } else {\r\n return null;\r\n }\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/features/snapping/index.js": /*!*************************************************************!*\ !*** ./node_modules/bpmn-js/lib/features/snapping/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnConnectSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnConnectSnapping */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js\");\n/* harmony import */ var _BpmnCreateMoveSnapping__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BpmnCreateMoveSnapping */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js\");\n/* harmony import */ var diagram_js_lib_features_snapping__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/snapping */ \"./node_modules/diagram-js/lib/features/snapping/index.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [ diagram_js_lib_features_snapping__WEBPACK_IMPORTED_MODULE_0__.default ],\n __init__: [\n 'connectSnapping',\n 'createMoveSnapping'\n ],\n connectSnapping: [ 'type', _BpmnConnectSnapping__WEBPACK_IMPORTED_MODULE_1__.default ],\n createMoveSnapping: [ 'type', _BpmnCreateMoveSnapping__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/import/BpmnImporter.js": /*!*********************************************************!*\ !*** ./node_modules/bpmn-js/lib/import/BpmnImporter.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnImporter)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../features/label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Util */ \"./node_modules/bpmn-js/lib/import/Util.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction elementData(semantic, attrs) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n id: semantic.id,\n type: semantic.$type,\n businessObject: semantic\n }, attrs);\n}\n\nfunction getWaypoints(bo, source, target) {\n\n var waypoints = bo.di.waypoint;\n\n if (!waypoints || waypoints.length < 2) {\n return [ (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source), (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(target) ];\n }\n\n return waypoints.map(function(p) {\n return { x: p.x, y: p.y };\n });\n}\n\nfunction notYetDrawn(translate, semantic, refSemantic, property) {\n return new Error(translate('element {element} referenced by {referenced}#{property} not yet drawn', {\n element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(refSemantic),\n referenced: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(semantic),\n property: property\n }));\n}\n\n\n/**\n * An importer that adds bpmn elements to the canvas\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {ElementFactory} elementFactory\n * @param {ElementRegistry} elementRegistry\n * @param {Function} translate\n * @param {TextRenderer} textRenderer\n */\nfunction BpmnImporter(\n eventBus, canvas, elementFactory,\n elementRegistry, translate, textRenderer) {\n\n this._eventBus = eventBus;\n this._canvas = canvas;\n this._elementFactory = elementFactory;\n this._elementRegistry = elementRegistry;\n this._translate = translate;\n this._textRenderer = textRenderer;\n}\n\nBpmnImporter.$inject = [\n 'eventBus',\n 'canvas',\n 'elementFactory',\n 'elementRegistry',\n 'translate',\n 'textRenderer'\n];\n\n\n/**\n * Add bpmn element (semantic) to the canvas onto the\n * specified parent shape.\n */\nBpmnImporter.prototype.add = function(semantic, parentElement) {\n\n var di = semantic.di,\n element,\n translate = this._translate,\n hidden;\n\n var parentIndex;\n\n // ROOT ELEMENT\n // handle the special case that we deal with a\n // invisible root element (process or collaboration)\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(di, 'bpmndi:BPMNPlane')) {\n\n // add a virtual element (not being drawn)\n element = this._elementFactory.createRoot(elementData(semantic));\n\n this._canvas.setRootElement(element);\n }\n\n // SHAPE\n else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(di, 'bpmndi:BPMNShape')) {\n\n var collapsed = !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(semantic),\n isFrame = isFrameElement(semantic);\n hidden = parentElement && (parentElement.hidden || parentElement.collapsed);\n\n var bounds = semantic.di.bounds;\n\n element = this._elementFactory.createShape(elementData(semantic, {\n collapsed: collapsed,\n hidden: hidden,\n x: Math.round(bounds.x),\n y: Math.round(bounds.y),\n width: Math.round(bounds.width),\n height: Math.round(bounds.height),\n isFrame: isFrame\n }));\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:BoundaryEvent')) {\n this._attachBoundary(semantic, element);\n }\n\n // insert lanes behind other flow nodes (cf. #727)\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:Lane')) {\n parentIndex = 0;\n }\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:DataStoreReference')) {\n\n // check whether data store is inside our outside of its semantic parent\n if (!isPointInsideBBox(parentElement, (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(bounds))) {\n parentElement = this._canvas.getRootElement();\n }\n }\n\n this._canvas.addShape(element, parentElement, parentIndex);\n }\n\n // CONNECTION\n else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(di, 'bpmndi:BPMNEdge')) {\n\n var source = this._getSource(semantic),\n target = this._getTarget(semantic);\n\n hidden = parentElement && (parentElement.hidden || parentElement.collapsed);\n\n element = this._elementFactory.createConnection(elementData(semantic, {\n hidden: hidden,\n source: source,\n target: target,\n waypoints: getWaypoints(semantic, source, target)\n }));\n\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:DataAssociation')) {\n\n // render always on top; this ensures DataAssociations\n // are rendered correctly across different \"hacks\" people\n // love to model such as cross participant / sub process\n // associations\n parentElement = null;\n }\n\n // insert sequence flows behind other flow nodes (cf. #727)\n if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:SequenceFlow')) {\n parentIndex = 0;\n }\n\n this._canvas.addConnection(element, parentElement, parentIndex);\n } else {\n throw new Error(translate('unknown di {di} for element {semantic}', {\n di: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(di),\n semantic: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(semantic)\n }));\n }\n\n // (optional) LABEL\n if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_5__.isLabelExternal)(semantic) && (0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__.getLabel)(element)) {\n this.addLabel(semantic, element);\n }\n\n\n this._eventBus.fire('bpmnElement.added', { element: element });\n\n return element;\n};\n\n\n/**\n * Attach the boundary element to the given host\n *\n * @param {ModdleElement} boundarySemantic\n * @param {djs.model.Base} boundaryElement\n */\nBpmnImporter.prototype._attachBoundary = function(boundarySemantic, boundaryElement) {\n var translate = this._translate;\n var hostSemantic = boundarySemantic.attachedToRef;\n\n if (!hostSemantic) {\n throw new Error(translate('missing {semantic}#attachedToRef', {\n semantic: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(boundarySemantic)\n }));\n }\n\n var host = this._elementRegistry.get(hostSemantic.id),\n attachers = host && host.attachers;\n\n if (!host) {\n throw notYetDrawn(translate, boundarySemantic, hostSemantic, 'attachedToRef');\n }\n\n // wire element.host <> host.attachers\n boundaryElement.host = host;\n\n if (!attachers) {\n host.attachers = attachers = [];\n }\n\n if (attachers.indexOf(boundaryElement) === -1) {\n attachers.push(boundaryElement);\n }\n};\n\n\n/**\n * add label for an element\n */\nBpmnImporter.prototype.addLabel = function(semantic, element) {\n var bounds,\n text,\n label;\n\n bounds = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_5__.getExternalLabelBounds)(semantic, element);\n\n text = (0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__.getLabel)(element);\n\n if (text) {\n\n // get corrected bounds from actual layouted text\n bounds = this._textRenderer.getExternalLabelBounds(bounds, text);\n }\n\n label = this._elementFactory.createLabel(elementData(semantic, {\n id: semantic.id + '_label',\n labelTarget: element,\n type: 'label',\n hidden: element.hidden || !(0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__.getLabel)(element),\n x: Math.round(bounds.x),\n y: Math.round(bounds.y),\n width: Math.round(bounds.width),\n height: Math.round(bounds.height)\n }));\n\n return this._canvas.addShape(label, element.parent);\n};\n\n/**\n * Return the drawn connection end based on the given side.\n *\n * @throws {Error} if the end is not yet drawn\n */\nBpmnImporter.prototype._getEnd = function(semantic, side) {\n\n var element,\n refSemantic,\n type = semantic.$type,\n translate = this._translate;\n\n refSemantic = semantic[side + 'Ref'];\n\n // handle mysterious isMany DataAssociation#sourceRef\n if (side === 'source' && type === 'bpmn:DataInputAssociation') {\n refSemantic = refSemantic && refSemantic[0];\n }\n\n // fix source / target for DataInputAssociation / DataOutputAssociation\n if (side === 'source' && type === 'bpmn:DataOutputAssociation' ||\n side === 'target' && type === 'bpmn:DataInputAssociation') {\n\n refSemantic = semantic.$parent;\n }\n\n element = refSemantic && this._getElement(refSemantic);\n\n if (element) {\n return element;\n }\n\n if (refSemantic) {\n throw notYetDrawn(translate, semantic, refSemantic, side + 'Ref');\n } else {\n throw new Error(translate('{semantic}#{side} Ref not specified', {\n semantic: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(semantic),\n side: side\n }));\n }\n};\n\nBpmnImporter.prototype._getSource = function(semantic) {\n return this._getEnd(semantic, 'source');\n};\n\nBpmnImporter.prototype._getTarget = function(semantic) {\n return this._getEnd(semantic, 'target');\n};\n\n\nBpmnImporter.prototype._getElement = function(semantic) {\n return this._elementRegistry.get(semantic.id);\n};\n\n\n// helpers ////////////////////\n\nfunction isPointInsideBBox(bbox, point) {\n var x = point.x,\n y = point.y;\n\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n}\n\nfunction isFrameElement(semantic) {\n return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:Group');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/BpmnImporter.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js": /*!***********************************************************!*\ !*** ./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BpmnTreeWalker)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! object-refs */ \"./node_modules/object-refs/index.js\");\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(object_refs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Util */ \"./node_modules/bpmn-js/lib/import/Util.js\");\n\n\n\n\n\n\nvar diRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_0___default())(\n { name: 'bpmnElement', enumerable: true },\n { name: 'di', configurable: true }\n);\n\n/**\n * Returns true if an element has the given meta-model type\n *\n * @param {ModdleElement} element\n * @param {string} type\n *\n * @return {boolean}\n */\nfunction is(element, type) {\n return element.$instanceOf(type);\n}\n\n\n/**\n * Find a suitable display candidate for definitions where the DI does not\n * correctly specify one.\n */\nfunction findDisplayCandidate(definitions) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(definitions.rootElements, function(e) {\n return is(e, 'bpmn:Process') || is(e, 'bpmn:Collaboration');\n });\n}\n\n\nfunction BpmnTreeWalker(handler, translate) {\n\n // list of containers already walked\n var handledElements = {};\n\n // list of elements to handle deferred to ensure\n // prerequisites are drawn\n var deferred = [];\n\n // Helpers //////////////////////\n\n function contextual(fn, ctx) {\n return function(e) {\n fn(e, ctx);\n };\n }\n\n function handled(element) {\n handledElements[element.id] = element;\n }\n\n function isHandled(element) {\n return handledElements[element.id];\n }\n\n function visit(element, ctx) {\n\n var gfx = element.gfx;\n\n // avoid multiple rendering of elements\n if (gfx) {\n throw new Error(\n translate('already rendered {element}', { element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(element) })\n );\n }\n\n // call handler\n return handler.element(element, ctx);\n }\n\n function visitRoot(element, diagram) {\n return handler.root(element, diagram);\n }\n\n function visitIfDi(element, ctx) {\n\n try {\n var gfx = element.di && visit(element, ctx);\n\n handled(element);\n\n return gfx;\n } catch (e) {\n logError(e.message, { element: element, error: e });\n\n console.error(translate('failed to import {element}', { element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(element) }));\n console.error(e);\n }\n }\n\n function logError(message, context) {\n handler.error(message, context);\n }\n\n // DI handling //////////////////////\n\n function registerDi(di) {\n var bpmnElement = di.bpmnElement;\n\n if (bpmnElement) {\n if (bpmnElement.di) {\n logError(\n translate('multiple DI elements defined for {element}', {\n element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(bpmnElement)\n }),\n { element: bpmnElement }\n );\n } else {\n diRefs.bind(bpmnElement, 'di');\n bpmnElement.di = di;\n }\n } else {\n logError(\n translate('no bpmnElement referenced in {element}', {\n element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(di)\n }),\n { element: di }\n );\n }\n }\n\n function handleDiagram(diagram) {\n handlePlane(diagram.plane);\n }\n\n function handlePlane(plane) {\n registerDi(plane);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(plane.planeElement, handlePlaneElement);\n }\n\n function handlePlaneElement(planeElement) {\n registerDi(planeElement);\n }\n\n\n // Semantic handling //////////////////////\n\n /**\n * Handle definitions and return the rendered diagram (if any)\n *\n * @param {ModdleElement} definitions to walk and import\n * @param {ModdleElement} [diagram] specific diagram to import and display\n *\n * @throws {Error} if no diagram to display could be found\n */\n function handleDefinitions(definitions, diagram) {\n\n // make sure we walk the correct bpmnElement\n\n var diagrams = definitions.diagrams;\n\n if (diagram && diagrams.indexOf(diagram) === -1) {\n throw new Error(translate('diagram not part of bpmn:Definitions'));\n }\n\n if (!diagram && diagrams && diagrams.length) {\n diagram = diagrams[0];\n }\n\n // no diagram -> nothing to import\n if (!diagram) {\n throw new Error(translate('no diagram to display'));\n }\n\n // load DI from selected diagram only\n handleDiagram(diagram);\n\n\n var plane = diagram.plane;\n\n if (!plane) {\n throw new Error(translate(\n 'no plane for {element}',\n { element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(diagram) }\n ));\n }\n\n var rootElement = plane.bpmnElement;\n\n // ensure we default to a suitable display candidate (process or collaboration),\n // even if non is specified in DI\n if (!rootElement) {\n rootElement = findDisplayCandidate(definitions);\n\n if (!rootElement) {\n throw new Error(translate('no process or collaboration to display'));\n } else {\n\n logError(\n translate('correcting missing bpmnElement on {plane} to {rootElement}', {\n plane: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(plane),\n rootElement: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(rootElement)\n })\n );\n\n // correct DI on the fly\n plane.bpmnElement = rootElement;\n registerDi(plane);\n }\n }\n\n\n var ctx = visitRoot(rootElement, plane);\n\n if (is(rootElement, 'bpmn:Process')) {\n handleProcess(rootElement, ctx);\n } else if (is(rootElement, 'bpmn:Collaboration')) {\n handleCollaboration(rootElement, ctx);\n\n // force drawing of everything not yet drawn that is part of the target DI\n handleUnhandledProcesses(definitions.rootElements, ctx);\n } else {\n throw new Error(\n translate('unsupported bpmnElement for {plane}: {rootElement}', {\n plane: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(plane),\n rootElement: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(rootElement)\n })\n );\n }\n\n // handle all deferred elements\n handleDeferred(deferred);\n }\n\n function handleDeferred() {\n\n var fn;\n\n // drain deferred until empty\n while (deferred.length) {\n fn = deferred.shift();\n\n fn();\n }\n }\n\n function handleProcess(process, context) {\n handleFlowElementsContainer(process, context);\n handleIoSpecification(process.ioSpecification, context);\n\n handleArtifacts(process.artifacts, context);\n\n // log process handled\n handled(process);\n }\n\n function handleUnhandledProcesses(rootElements, ctx) {\n\n // walk through all processes that have not yet been drawn and draw them\n // if they contain lanes with DI information.\n // we do this to pass the free-floating lane test cases in the MIWG test suite\n var processes = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(rootElements, function(e) {\n return !isHandled(e) && is(e, 'bpmn:Process') && e.laneSets;\n });\n\n processes.forEach(contextual(handleProcess, ctx));\n }\n\n function handleMessageFlow(messageFlow, context) {\n visitIfDi(messageFlow, context);\n }\n\n function handleMessageFlows(messageFlows, context) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(messageFlows, contextual(handleMessageFlow, context));\n }\n\n function handleDataAssociation(association, context) {\n visitIfDi(association, context);\n }\n\n function handleDataInput(dataInput, context) {\n visitIfDi(dataInput, context);\n }\n\n function handleDataOutput(dataOutput, context) {\n visitIfDi(dataOutput, context);\n }\n\n function handleArtifact(artifact, context) {\n\n // bpmn:TextAnnotation\n // bpmn:Group\n // bpmn:Association\n\n visitIfDi(artifact, context);\n }\n\n function handleArtifacts(artifacts, context) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(artifacts, function(e) {\n if (is(e, 'bpmn:Association')) {\n deferred.push(function() {\n handleArtifact(e, context);\n });\n } else {\n handleArtifact(e, context);\n }\n });\n }\n\n function handleIoSpecification(ioSpecification, context) {\n\n if (!ioSpecification) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(ioSpecification.dataInputs, contextual(handleDataInput, context));\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(ioSpecification.dataOutputs, contextual(handleDataOutput, context));\n }\n\n function handleSubProcess(subProcess, context) {\n handleFlowElementsContainer(subProcess, context);\n handleArtifacts(subProcess.artifacts, context);\n }\n\n function handleFlowNode(flowNode, context) {\n var childCtx = visitIfDi(flowNode, context);\n\n if (is(flowNode, 'bpmn:SubProcess')) {\n handleSubProcess(flowNode, childCtx || context);\n }\n\n if (is(flowNode, 'bpmn:Activity')) {\n handleIoSpecification(flowNode.ioSpecification, context);\n }\n\n // defer handling of associations\n // affected types:\n //\n // * bpmn:Activity\n // * bpmn:ThrowEvent\n // * bpmn:CatchEvent\n //\n deferred.push(function() {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(flowNode.dataInputAssociations, contextual(handleDataAssociation, context));\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(flowNode.dataOutputAssociations, contextual(handleDataAssociation, context));\n });\n }\n\n function handleSequenceFlow(sequenceFlow, context) {\n visitIfDi(sequenceFlow, context);\n }\n\n function handleDataElement(dataObject, context) {\n visitIfDi(dataObject, context);\n }\n\n function handleLane(lane, context) {\n\n deferred.push(function() {\n\n var newContext = visitIfDi(lane, context);\n\n if (lane.childLaneSet) {\n handleLaneSet(lane.childLaneSet, newContext || context);\n }\n\n wireFlowNodeRefs(lane);\n });\n }\n\n function handleLaneSet(laneSet, context) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(laneSet.lanes, contextual(handleLane, context));\n }\n\n function handleLaneSets(laneSets, context) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(laneSets, contextual(handleLaneSet, context));\n }\n\n function handleFlowElementsContainer(container, context) {\n handleFlowElements(container.flowElements, context);\n\n if (container.laneSets) {\n handleLaneSets(container.laneSets, context);\n }\n }\n\n function handleFlowElements(flowElements, context) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(flowElements, function(e) {\n if (is(e, 'bpmn:SequenceFlow')) {\n deferred.push(function() {\n handleSequenceFlow(e, context);\n });\n } else if (is(e, 'bpmn:BoundaryEvent')) {\n deferred.unshift(function() {\n handleFlowNode(e, context);\n });\n } else if (is(e, 'bpmn:FlowNode')) {\n handleFlowNode(e, context);\n } else if (is(e, 'bpmn:DataObject')) {\n\n // SKIP (assume correct referencing via DataObjectReference)\n } else if (is(e, 'bpmn:DataStoreReference')) {\n handleDataElement(e, context);\n } else if (is(e, 'bpmn:DataObjectReference')) {\n handleDataElement(e, context);\n } else {\n logError(\n translate('unrecognized flowElement {element} in context {context}', {\n element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(e),\n context: (context ? (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(context.businessObject) : 'null')\n }),\n { element: e, context: context }\n );\n }\n });\n }\n\n function handleParticipant(participant, context) {\n var newCtx = visitIfDi(participant, context);\n\n var process = participant.processRef;\n if (process) {\n handleProcess(process, newCtx || context);\n }\n }\n\n function handleCollaboration(collaboration) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(collaboration.participants, contextual(handleParticipant));\n\n handleArtifacts(collaboration.artifacts);\n\n // handle message flows latest in the process\n deferred.push(function() {\n handleMessageFlows(collaboration.messageFlows);\n });\n }\n\n\n function wireFlowNodeRefs(lane) {\n\n // wire the virtual flowNodeRefs <-> relationship\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(lane.flowNodeRef, function(flowNode) {\n var lanes = flowNode.get('lanes');\n\n if (lanes) {\n lanes.push(lane);\n }\n });\n }\n\n // API //////////////////////\n\n return {\n handleDeferred: handleDeferred,\n handleDefinitions: handleDefinitions,\n handleSubProcess: handleSubProcess,\n registerDi: registerDi\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/import/Importer.js": /*!*****************************************************!*\ !*** ./node_modules/bpmn-js/lib/import/Importer.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"importBpmnDiagram\": () => (/* binding */ importBpmnDiagram)\n/* harmony export */ });\n/* harmony import */ var _BpmnTreeWalker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnTreeWalker */ \"./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js\");\n\n\n\n/**\n * The importBpmnDiagram result.\n *\n * @typedef {Object} ImportBPMNDiagramResult\n *\n * @property {Array} warnings\n */\n\n/**\n* The importBpmnDiagram error.\n*\n* @typedef {Error} ImportBPMNDiagramError\n*\n* @property {Array} warnings\n*/\n\n/**\n * Import the definitions into a diagram.\n *\n * Errors and warnings are reported through the specified callback.\n *\n * @param {djs.Diagram} diagram\n * @param {ModdleElement} definitions\n * @param {ModdleElement} [bpmnDiagram] the diagram to be rendered\n * (if not provided, the first one will be rendered)\n *\n * Returns {Promise}\n */\nfunction importBpmnDiagram(diagram, definitions, bpmnDiagram) {\n\n var importer,\n eventBus,\n translate;\n\n var error,\n warnings = [];\n\n /**\n * Walk the diagram semantically, importing (=drawing)\n * all elements you encounter.\n *\n * @param {ModdleElement} definitions\n * @param {ModdleElement} bpmnDiagram\n */\n function render(definitions, bpmnDiagram) {\n\n var visitor = {\n\n root: function(element) {\n return importer.add(element);\n },\n\n element: function(element, parentShape) {\n return importer.add(element, parentShape);\n },\n\n error: function(message, context) {\n warnings.push({ message: message, context: context });\n }\n };\n\n var walker = new _BpmnTreeWalker__WEBPACK_IMPORTED_MODULE_0__.default(visitor, translate);\n\n // traverse BPMN 2.0 document model,\n // starting at definitions\n walker.handleDefinitions(definitions, bpmnDiagram);\n }\n\n return new Promise(function(resolve, reject) {\n try {\n importer = diagram.get('bpmnImporter');\n eventBus = diagram.get('eventBus');\n translate = diagram.get('translate');\n\n eventBus.fire('import.render.start', { definitions: definitions });\n\n render(definitions, bpmnDiagram);\n\n eventBus.fire('import.render.complete', {\n error: error,\n warnings: warnings\n });\n\n return resolve({ warnings: warnings });\n } catch (e) {\n\n e.warnings = warnings;\n return reject(e);\n }\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/Importer.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/import/Util.js": /*!*************************************************!*\ !*** ./node_modules/bpmn-js/lib/import/Util.js ***! \*************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"elementToString\": () => (/* binding */ elementToString)\n/* harmony export */ });\nfunction elementToString(e) {\n if (!e) {\n return '';\n }\n\n return '<' + e.$type + (e.id ? ' id=\"' + e.id : '') + '\" />';\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/Util.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/import/index.js": /*!**************************************************!*\ !*** ./node_modules/bpmn-js/lib/import/index.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var _BpmnImporter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnImporter */ \"./node_modules/bpmn-js/lib/import/BpmnImporter.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n bpmnImporter: [ 'type', _BpmnImporter__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/index.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/util/CompatibilityUtil.js": /*!************************************************************!*\ !*** ./node_modules/bpmn-js/lib/util/CompatibilityUtil.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"wrapForCompatibility\": () => (/* binding */ wrapForCompatibility)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n// TODO(nikku): remove with future bpmn-js version\n\n/**\n * Wraps APIs to check:\n *\n * 1) If a callback is passed -> Warn users about callback deprecation.\n * 2) If Promise class is implemented in current environment.\n *\n * @private\n */\nfunction wrapForCompatibility(api) {\n\n return function() {\n\n if (!window.Promise) {\n throw new Error('Promises is not supported in this environment. Please polyfill Promise.');\n }\n\n var argLen = arguments.length;\n if (argLen >= 1 && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(arguments[argLen - 1])) {\n\n var callback = arguments[argLen - 1];\n\n console.warn(new Error(\n 'Passing callbacks to ' + api.name + ' is deprecated and will be removed in a future major release. ' +\n 'Please switch to promises: https://bpmn.io/l/moving-to-promises.html'\n ));\n\n var argsWithoutCallback = Array.prototype.slice.call(arguments, 0, -1);\n\n api.apply(this, argsWithoutCallback).then(function(result) {\n\n var firstKey = Object.keys(result)[0];\n\n // The APIs we are wrapping all resolve a single item depending on the API.\n // For instance, importXML resolves { warnings } and saveXML returns { xml }.\n // That's why we can call the callback with the first item of result.\n return callback(null, result[firstKey]);\n\n // Passing a second paramter instead of catch because we don't want to\n // catch errors thrown by callback().\n }, function(err) {\n\n return callback(err, err.warnings);\n });\n } else {\n\n return api.apply(this, arguments);\n }\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/CompatibilityUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/util/DiUtil.js": /*!*************************************************!*\ !*** ./node_modules/bpmn-js/lib/util/DiUtil.js ***! \*************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isExpanded\": () => (/* binding */ isExpanded),\n/* harmony export */ \"isInterrupting\": () => (/* binding */ isInterrupting),\n/* harmony export */ \"isEventSubProcess\": () => (/* binding */ isEventSubProcess),\n/* harmony export */ \"hasEventDefinition\": () => (/* binding */ hasEventDefinition),\n/* harmony export */ \"hasErrorEventDefinition\": () => (/* binding */ hasErrorEventDefinition),\n/* harmony export */ \"hasEscalationEventDefinition\": () => (/* binding */ hasEscalationEventDefinition),\n/* harmony export */ \"hasCompensateEventDefinition\": () => (/* binding */ hasCompensateEventDefinition)\n/* harmony export */ });\n/* harmony import */ var _ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\nfunction isExpanded(element) {\n\n if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:CallActivity')) {\n return false;\n }\n\n if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:SubProcess')) {\n return (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).di && !!(0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).di.isExpanded;\n }\n\n if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Participant')) {\n return !!(0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).processRef;\n }\n\n return true;\n}\n\nfunction isInterrupting(element) {\n return element && (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).isInterrupting !== false;\n}\n\nfunction isEventSubProcess(element) {\n return element && !!(0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).triggeredByEvent;\n}\n\nfunction hasEventDefinition(element, eventType) {\n var bo = (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element),\n hasEventDefinition = false;\n\n if (bo.eventDefinitions) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(bo.eventDefinitions, function(event) {\n if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(event, eventType)) {\n hasEventDefinition = true;\n }\n });\n }\n\n return hasEventDefinition;\n}\n\nfunction hasErrorEventDefinition(element) {\n return hasEventDefinition(element, 'bpmn:ErrorEventDefinition');\n}\n\nfunction hasEscalationEventDefinition(element) {\n return hasEventDefinition(element, 'bpmn:EscalationEventDefinition');\n}\n\nfunction hasCompensateEventDefinition(element) {\n return hasEventDefinition(element, 'bpmn:CompensateEventDefinition');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/DiUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/util/LabelUtil.js": /*!****************************************************!*\ !*** ./node_modules/bpmn-js/lib/util/LabelUtil.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DEFAULT_LABEL_SIZE\": () => (/* binding */ DEFAULT_LABEL_SIZE),\n/* harmony export */ \"FLOW_LABEL_INDENT\": () => (/* binding */ FLOW_LABEL_INDENT),\n/* harmony export */ \"isLabelExternal\": () => (/* binding */ isLabelExternal),\n/* harmony export */ \"hasExternalLabel\": () => (/* binding */ hasExternalLabel),\n/* harmony export */ \"getFlowLabelPosition\": () => (/* binding */ getFlowLabelPosition),\n/* harmony export */ \"getWaypointsMid\": () => (/* binding */ getWaypointsMid),\n/* harmony export */ \"getExternalLabelMid\": () => (/* binding */ getExternalLabelMid),\n/* harmony export */ \"getExternalLabelBounds\": () => (/* binding */ getExternalLabelBounds),\n/* harmony export */ \"isLabel\": () => (/* binding */ isLabel)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\nvar DEFAULT_LABEL_SIZE = {\n width: 90,\n height: 20\n};\n\nvar FLOW_LABEL_INDENT = 15;\n\n\n/**\n * Returns true if the given semantic has an external label\n *\n * @param {BpmnElement} semantic\n * @return {boolean} true if has label\n */\nfunction isLabelExternal(semantic) {\n return (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Event') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Gateway') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataStoreReference') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataObjectReference') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataInput') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataOutput') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:SequenceFlow') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:MessageFlow') ||\n (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Group');\n}\n\n/**\n * Returns true if the given element has an external label\n *\n * @param {djs.model.shape} element\n * @return {boolean} true if has label\n */\nfunction hasExternalLabel(element) {\n return isLabel(element.label);\n}\n\n/**\n * Get the position for sequence flow labels\n *\n * @param {Array} waypoints\n * @return {Point} the label position\n */\nfunction getFlowLabelPosition(waypoints) {\n\n // get the waypoints mid\n var mid = waypoints.length / 2 - 1;\n\n var first = waypoints[Math.floor(mid)];\n var second = waypoints[Math.ceil(mid + 0.01)];\n\n // get position\n var position = getWaypointsMid(waypoints);\n\n // calculate angle\n var angle = Math.atan((second.y - first.y) / (second.x - first.x));\n\n var x = position.x,\n y = position.y;\n\n if (Math.abs(angle) < Math.PI / 2) {\n y -= FLOW_LABEL_INDENT;\n } else {\n x += FLOW_LABEL_INDENT;\n }\n\n return { x: x, y: y };\n}\n\n\n/**\n * Get the middle of a number of waypoints\n *\n * @param {Array} waypoints\n * @return {Point} the mid point\n */\nfunction getWaypointsMid(waypoints) {\n\n var mid = waypoints.length / 2 - 1;\n\n var first = waypoints[Math.floor(mid)];\n var second = waypoints[Math.ceil(mid + 0.01)];\n\n return {\n x: first.x + (second.x - first.x) / 2,\n y: first.y + (second.y - first.y) / 2\n };\n}\n\n\nfunction getExternalLabelMid(element) {\n\n if (element.waypoints) {\n return getFlowLabelPosition(element.waypoints);\n } else if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Group')) {\n return {\n x: element.x + element.width / 2,\n y: element.y + DEFAULT_LABEL_SIZE.height / 2\n };\n } else {\n return {\n x: element.x + element.width / 2,\n y: element.y + element.height + DEFAULT_LABEL_SIZE.height / 2\n };\n }\n}\n\n\n/**\n * Returns the bounds of an elements label, parsed from the elements DI or\n * generated from its bounds.\n *\n * @param {BpmnElement} semantic\n * @param {djs.model.Base} element\n */\nfunction getExternalLabelBounds(semantic, element) {\n\n var mid,\n size,\n bounds,\n di = semantic.di,\n label = di.label;\n\n if (label && label.bounds) {\n bounds = label.bounds;\n\n size = {\n width: Math.max(DEFAULT_LABEL_SIZE.width, bounds.width),\n height: bounds.height\n };\n\n mid = {\n x: bounds.x + bounds.width / 2,\n y: bounds.y + bounds.height / 2\n };\n } else {\n\n mid = getExternalLabelMid(element);\n\n size = DEFAULT_LABEL_SIZE;\n }\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({\n x: mid.x - size.width / 2,\n y: mid.y - size.height / 2\n }, size);\n}\n\nfunction isLabel(element) {\n return element && !!element.labelTarget;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/LabelUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/util/ModelUtil.js": /*!****************************************************!*\ !*** ./node_modules/bpmn-js/lib/util/ModelUtil.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"is\": () => (/* binding */ is),\n/* harmony export */ \"getBusinessObject\": () => (/* binding */ getBusinessObject)\n/* harmony export */ });\n/**\n * Is an element of the given BPMN type?\n *\n * @param {djs.model.Base|ModdleElement} element\n * @param {string} type\n *\n * @return {boolean}\n */\nfunction is(element, type) {\n var bo = getBusinessObject(element);\n\n return bo && (typeof bo.$instanceOf === 'function') && bo.$instanceOf(type);\n}\n\n\n/**\n * Return the business object for a given element.\n *\n * @param {djs.model.Base|ModdleElement} element\n *\n * @return {ModdleElement}\n */\nfunction getBusinessObject(element) {\n return (element && element.businessObject) || element;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/ModelUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-js/lib/util/PoweredByUtil.js": /*!********************************************************!*\ !*** ./node_modules/bpmn-js/lib/util/PoweredByUtil.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BPMNIO_IMG\": () => (/* binding */ BPMNIO_IMG),\n/* harmony export */ \"LINK_STYLES\": () => (/* binding */ LINK_STYLES),\n/* harmony export */ \"open\": () => (/* binding */ open)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/**\n * This file must not be changed or exchanged.\n *\n * @see http://bpmn.io/license for more information.\n */\n\n\n\n\n// inlined ../../resources/logo.svg\nvar BPMNIO_LOGO_SVG = '';\n\nvar BPMNIO_IMG = BPMNIO_LOGO_SVG;\n\nfunction css(attrs) {\n return attrs.join(';');\n}\n\nvar LINK_STYLES = css([\n 'color: #404040'\n]);\n\nvar LIGHTBOX_STYLES = css([\n 'z-index: 1001',\n 'position: fixed',\n 'top: 0',\n 'left: 0',\n 'right: 0',\n 'bottom: 0'\n]);\n\nvar BACKDROP_STYLES = css([\n 'width: 100%',\n 'height: 100%',\n 'background: rgba(40,40,40,0.2)'\n]);\n\nvar NOTICE_STYLES = css([\n 'position: absolute',\n 'left: 50%',\n 'top: 40%',\n 'transform: translate(-50%)',\n 'width: 260px',\n 'padding: 10px',\n 'background: white',\n 'box-shadow: 0 1px 4px rgba(0,0,0,0.3)',\n 'font-family: Helvetica, Arial, sans-serif',\n 'font-size: 14px',\n 'display: flex',\n 'line-height: 1.3'\n]);\n\nvar LIGHTBOX_MARKUP =\n '
    ' +\n '
    ' +\n '
    ' +\n '' +\n BPMNIO_IMG +\n '' +\n '' +\n 'Web-based tooling for BPMN, DMN and CMMN diagrams ' +\n 'powered by bpmn.io.' +\n '' +\n '
    ' +\n '
    ';\n\n\nvar lightbox;\n\nfunction open() {\n\n if (!lightbox) {\n lightbox = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(LIGHTBOX_MARKUP);\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(lightbox, '.backdrop', 'click', function(event) {\n document.body.removeChild(lightbox);\n });\n }\n\n document.body.appendChild(lightbox);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/PoweredByUtil.js?"); /***/ }), /***/ "./node_modules/bpmn-moddle/dist/index.esm.js": /*!****************************************************!*\ !*** ./node_modules/bpmn-moddle/dist/index.esm.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var moddle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moddle */ \"./node_modules/moddle/dist/index.esm.js\");\n/* harmony import */ var moddle_xml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moddle-xml */ \"./node_modules/moddle-xml/dist/index.esm.js\");\n\n\n\n\n/**\n * A sub class of {@link Moddle} with support for import and export of BPMN 2.0 xml files.\n *\n * @class BpmnModdle\n * @extends Moddle\n *\n * @param {Object|Array} packages to use for instantiating the model\n * @param {Object} [options] additional options to pass over\n */\nfunction BpmnModdle(packages, options) {\n moddle__WEBPACK_IMPORTED_MODULE_0__.Moddle.call(this, packages, options);\n}\n\nBpmnModdle.prototype = Object.create(moddle__WEBPACK_IMPORTED_MODULE_0__.Moddle.prototype);\n\n/**\n * The fromXML result.\n *\n * @typedef {Object} ParseResult\n *\n * @property {ModdleElement} rootElement\n * @property {Array} references\n * @property {Array} warnings\n * @property {Object} elementsById - a mapping containing each ID -> ModdleElement\n */\n\n/**\n * The fromXML error.\n *\n * @typedef {Error} ParseError\n *\n * @property {Array} warnings\n */\n\n/**\n * Instantiates a BPMN model tree from a given xml string.\n *\n * @param {String} xmlStr\n * @param {String} [typeName='bpmn:Definitions'] name of the root element\n * @param {Object} [options] options to pass to the underlying reader\n *\n * @returns {Promise}\n */\nBpmnModdle.prototype.fromXML = function(xmlStr, typeName, options) {\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(typeName)) {\n options = typeName;\n typeName = 'bpmn:Definitions';\n }\n\n var reader = new moddle_xml__WEBPACK_IMPORTED_MODULE_2__.Reader((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ model: this, lax: true }, options));\n var rootHandler = reader.handler(typeName);\n\n return reader.fromXML(xmlStr, rootHandler);\n};\n\n\n/**\n * The toXML result.\n *\n * @typedef {Object} SerializationResult\n *\n * @property {String} xml\n */\n\n/**\n * Serializes a BPMN 2.0 object tree to XML.\n *\n * @param {String} element the root element, typically an instance of `bpmn:Definitions`\n * @param {Object} [options] to pass to the underlying writer\n *\n * @returns {Promise}\n */\nBpmnModdle.prototype.toXML = function(element, options) {\n\n var writer = new moddle_xml__WEBPACK_IMPORTED_MODULE_2__.Writer(options);\n\n return new Promise(function(resolve, reject) {\n try {\n var result = writer.toXML(element);\n\n return resolve({\n xml: result\n });\n } catch (err) {\n return reject(err);\n }\n });\n};\n\nvar name = \"BPMN20\";\nvar uri = \"http://www.omg.org/spec/BPMN/20100524/MODEL\";\nvar prefix = \"bpmn\";\nvar associations = [\n];\nvar types = [\n\t{\n\t\tname: \"Interface\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operations\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"implementationRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Operation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inMessageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outMessageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"errorRef\",\n\t\t\t\ttype: \"Error\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"implementationRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EndPoint\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Auditing\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalTask\",\n\t\tsuperClass: [\n\t\t\t\"CallableElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"resources\",\n\t\t\t\ttype: \"ResourceRole\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Monitoring\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Performer\",\n\t\tsuperClass: [\n\t\t\t\"ResourceRole\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Process\",\n\t\tsuperClass: [\n\t\t\t\"FlowElementsContainer\",\n\t\t\t\"CallableElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"processType\",\n\t\t\t\ttype: \"ProcessType\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isClosed\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"auditing\",\n\t\t\t\ttype: \"Auditing\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"monitoring\",\n\t\t\t\ttype: \"Monitoring\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"properties\",\n\t\t\t\ttype: \"Property\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"laneSets\",\n\t\t\t\tisMany: true,\n\t\t\t\treplaces: \"FlowElementsContainer#laneSets\",\n\t\t\t\ttype: \"LaneSet\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"flowElements\",\n\t\t\t\tisMany: true,\n\t\t\t\treplaces: \"FlowElementsContainer#flowElements\",\n\t\t\t\ttype: \"FlowElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resources\",\n\t\t\t\ttype: \"ResourceRole\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationSubscriptions\",\n\t\t\t\ttype: \"CorrelationSubscription\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"supports\",\n\t\t\t\ttype: \"Process\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"definitionalCollaborationRef\",\n\t\t\t\ttype: \"Collaboration\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isExecutable\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LaneSet\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"lanes\",\n\t\t\t\ttype: \"Lane\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Lane\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"partitionElementRef\",\n\t\t\t\ttype: \"BaseElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"partitionElement\",\n\t\t\t\ttype: \"BaseElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"flowNodeRef\",\n\t\t\t\ttype: \"FlowNode\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"childLaneSet\",\n\t\t\t\ttype: \"LaneSet\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalManualTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t]\n\t},\n\t{\n\t\tname: \"ManualTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t]\n\t},\n\t{\n\t\tname: \"UserTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"renderings\",\n\t\t\t\ttype: \"Rendering\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Rendering\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"HumanPerformer\",\n\t\tsuperClass: [\n\t\t\t\"Performer\"\n\t\t]\n\t},\n\t{\n\t\tname: \"PotentialOwner\",\n\t\tsuperClass: [\n\t\t\t\"HumanPerformer\"\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalUserTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"renderings\",\n\t\t\t\ttype: \"Rendering\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Gateway\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"gatewayDirection\",\n\t\t\t\ttype: \"GatewayDirection\",\n\t\t\t\t\"default\": \"Unspecified\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EventBasedGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"instantiate\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventGatewayType\",\n\t\t\t\ttype: \"EventBasedGatewayType\",\n\t\t\t\tisAttr: true,\n\t\t\t\t\"default\": \"Exclusive\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ComplexGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"activationCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExclusiveGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InclusiveGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ParallelGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t]\n\t},\n\t{\n\t\tname: \"RootElement\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Relationship\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"direction\",\n\t\t\t\ttype: \"RelationshipDirection\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"source\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"target\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"BaseElement\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\",\n\t\t\t\tisId: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"documentation\",\n\t\t\t\ttype: \"Documentation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionDefinitions\",\n\t\t\t\ttype: \"ExtensionDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionElements\",\n\t\t\t\ttype: \"ExtensionElements\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Extension\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"mustUnderstand\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"definition\",\n\t\t\t\ttype: \"ExtensionDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExtensionDefinition\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionAttributeDefinitions\",\n\t\t\t\ttype: \"ExtensionAttributeDefinition\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExtensionAttributeDefinition\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isReference\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionDefinition\",\n\t\t\t\ttype: \"ExtensionDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExtensionElements\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"valueRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"values\",\n\t\t\t\ttype: \"Element\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionAttributeDefinition\",\n\t\t\t\ttype: \"ExtensionAttributeDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Documentation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"text\",\n\t\t\t\ttype: \"String\",\n\t\t\t\tisBody: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"textFormat\",\n\t\t\t\t\"default\": \"text/plain\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Event\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\",\n\t\t\t\"InteractionNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"properties\",\n\t\t\t\ttype: \"Property\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"IntermediateCatchEvent\",\n\t\tsuperClass: [\n\t\t\t\"CatchEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"IntermediateThrowEvent\",\n\t\tsuperClass: [\n\t\t\t\"ThrowEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"EndEvent\",\n\t\tsuperClass: [\n\t\t\t\"ThrowEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"StartEvent\",\n\t\tsuperClass: [\n\t\t\t\"CatchEvent\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isInterrupting\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ThrowEvent\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Event\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataInputs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataInputAssociations\",\n\t\t\t\ttype: \"DataInputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSet\",\n\t\t\t\ttype: \"InputSet\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitions\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitionRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CatchEvent\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Event\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"parallelMultiple\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\t\"default\": false\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputAssociations\",\n\t\t\t\ttype: \"DataOutputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSet\",\n\t\t\t\ttype: \"OutputSet\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitions\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitionRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"BoundaryEvent\",\n\t\tsuperClass: [\n\t\t\t\"CatchEvent\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"cancelActivity\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"attachedToRef\",\n\t\t\t\ttype: \"Activity\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EventDefinition\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"CancelEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t]\n\t},\n\t{\n\t\tname: \"ErrorEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"errorRef\",\n\t\t\t\ttype: \"Error\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"TerminateEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t]\n\t},\n\t{\n\t\tname: \"EscalationEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"escalationRef\",\n\t\t\t\ttype: \"Escalation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Escalation\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"escalationCode\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"CompensateEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"waitForCompletion\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\t\"default\": true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"activityRef\",\n\t\t\t\ttype: \"Activity\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"TimerEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"timeDate\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"timeCycle\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"timeDuration\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LinkEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"target\",\n\t\t\t\ttype: \"LinkEventDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"source\",\n\t\t\t\ttype: \"LinkEventDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConditionalEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"condition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SignalEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"signalRef\",\n\t\t\t\ttype: \"Signal\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Signal\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ImplicitThrowEvent\",\n\t\tsuperClass: [\n\t\t\t\"ThrowEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"DataState\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ItemAwareElement\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"itemSubjectRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataState\",\n\t\t\t\ttype: \"DataState\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"transformation\",\n\t\t\t\ttype: \"FormalExpression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"assignment\",\n\t\t\t\ttype: \"Assignment\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataInput\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetRef\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetWithOptional\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetWithWhileExecuting\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataOutput\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetRef\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetWithOptional\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetWithWhileExecuting\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InputSet\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataInputRefs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"optionalInputRefs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"whileExecutingInputRefs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetRefs\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"OutputSet\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataOutputRefs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetRefs\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"optionalOutputRefs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"whileExecutingOutputRefs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Property\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataInputAssociation\",\n\t\tsuperClass: [\n\t\t\t\"DataAssociation\"\n\t\t]\n\t},\n\t{\n\t\tname: \"DataOutputAssociation\",\n\t\tsuperClass: [\n\t\t\t\"DataAssociation\"\n\t\t]\n\t},\n\t{\n\t\tname: \"InputOutputSpecification\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataInputs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSets\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSets\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataObject\",\n\t\tsuperClass: [\n\t\t\t\"FlowElement\",\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InputOutputBinding\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"inputDataRef\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputDataRef\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Assignment\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"from\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"to\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataStore\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\",\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"capacity\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isUnlimited\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataStoreReference\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\",\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataStoreRef\",\n\t\t\t\ttype: \"DataStore\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataObjectReference\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\",\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataObjectRef\",\n\t\t\t\ttype: \"DataObject\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConversationLink\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConversationAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"innerConversationNodeRef\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outerConversationNodeRef\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallConversation\",\n\t\tsuperClass: [\n\t\t\t\"ConversationNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"calledCollaborationRef\",\n\t\t\t\ttype: \"Collaboration\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantAssociations\",\n\t\t\t\ttype: \"ParticipantAssociation\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Conversation\",\n\t\tsuperClass: [\n\t\t\t\"ConversationNode\"\n\t\t]\n\t},\n\t{\n\t\tname: \"SubConversation\",\n\t\tsuperClass: [\n\t\t\t\"ConversationNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"conversationNodes\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConversationNode\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"InteractionNode\",\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageFlowRefs\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationKeys\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalConversation\",\n\t\tsuperClass: [\n\t\t\t\"Collaboration\"\n\t\t]\n\t},\n\t{\n\t\tname: \"PartnerEntity\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"PartnerRole\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationProperty\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyRetrievalExpression\",\n\t\t\t\ttype: \"CorrelationPropertyRetrievalExpression\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Error\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"errorCode\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationKey\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyRef\",\n\t\t\t\ttype: \"CorrelationProperty\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Expression\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tisAbstract: false,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"body\",\n\t\t\t\tisBody: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FormalExpression\",\n\t\tsuperClass: [\n\t\t\t\"Expression\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"language\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"evaluatesToTypeRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Message\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"itemRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ItemDefinition\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"itemKind\",\n\t\t\t\ttype: \"ItemKind\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"import\",\n\t\t\t\ttype: \"Import\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FlowElement\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"auditing\",\n\t\t\t\ttype: \"Auditing\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"monitoring\",\n\t\t\t\ttype: \"Monitoring\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"categoryValueRef\",\n\t\t\t\ttype: \"CategoryValue\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SequenceFlow\",\n\t\tsuperClass: [\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isImmediate\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conditionExpression\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"FlowNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"FlowNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FlowElementsContainer\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"laneSets\",\n\t\t\t\ttype: \"LaneSet\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"flowElements\",\n\t\t\t\ttype: \"FlowElement\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallableElement\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ioSpecification\",\n\t\t\t\ttype: \"InputOutputSpecification\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"supportedInterfaceRef\",\n\t\t\t\ttype: \"Interface\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ioBinding\",\n\t\t\t\ttype: \"InputOutputBinding\",\n\t\t\t\tisMany: true,\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FlowNode\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"incoming\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outgoing\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"lanes\",\n\t\t\t\ttype: \"Lane\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationPropertyRetrievalExpression\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"messagePath\",\n\t\t\t\ttype: \"FormalExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationPropertyBinding\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataPath\",\n\t\t\t\ttype: \"FormalExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyRef\",\n\t\t\t\ttype: \"CorrelationProperty\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Resource\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resourceParameters\",\n\t\t\t\ttype: \"ResourceParameter\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceParameter\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isRequired\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationSubscription\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"correlationKeyRef\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyBinding\",\n\t\t\t\ttype: \"CorrelationPropertyBinding\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageFlow\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageFlowAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"innerMessageFlowRef\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outerMessageFlowRef\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InteractionNode\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"incomingConversationLinks\",\n\t\t\t\ttype: \"ConversationLink\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outgoingConversationLinks\",\n\t\t\t\ttype: \"ConversationLink\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Participant\",\n\t\tsuperClass: [\n\t\t\t\"InteractionNode\",\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"interfaceRef\",\n\t\t\t\ttype: \"Interface\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantMultiplicity\",\n\t\t\t\ttype: \"ParticipantMultiplicity\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"endPointRefs\",\n\t\t\t\ttype: \"EndPoint\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"processRef\",\n\t\t\t\ttype: \"Process\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ParticipantAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"innerParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outerParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ParticipantMultiplicity\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"minimum\",\n\t\t\t\t\"default\": 0,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"maximum\",\n\t\t\t\t\"default\": 1,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Collaboration\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isClosed\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participants\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageFlows\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conversations\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conversationAssociations\",\n\t\t\t\ttype: \"ConversationAssociation\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantAssociations\",\n\t\t\t\ttype: \"ParticipantAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageFlowAssociations\",\n\t\t\t\ttype: \"MessageFlowAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationKeys\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"choreographyRef\",\n\t\t\t\ttype: \"Choreography\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conversationLinks\",\n\t\t\t\ttype: \"ConversationLink\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ChoreographyActivity\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"initiatingParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationKeys\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopType\",\n\t\t\t\ttype: \"ChoreographyLoopType\",\n\t\t\t\t\"default\": \"None\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallChoreography\",\n\t\tsuperClass: [\n\t\t\t\"ChoreographyActivity\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"calledChoreographyRef\",\n\t\t\t\ttype: \"Choreography\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantAssociations\",\n\t\t\t\ttype: \"ParticipantAssociation\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SubChoreography\",\n\t\tsuperClass: [\n\t\t\t\"ChoreographyActivity\",\n\t\t\t\"FlowElementsContainer\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ChoreographyTask\",\n\t\tsuperClass: [\n\t\t\t\"ChoreographyActivity\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"messageFlowRef\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Choreography\",\n\t\tsuperClass: [\n\t\t\t\"Collaboration\",\n\t\t\t\"FlowElementsContainer\"\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalChoreographyTask\",\n\t\tsuperClass: [\n\t\t\t\"Choreography\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"initiatingParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"TextAnnotation\",\n\t\tsuperClass: [\n\t\t\t\"Artifact\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"text\",\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"textFormat\",\n\t\t\t\t\"default\": \"text/plain\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Group\",\n\t\tsuperClass: [\n\t\t\t\"Artifact\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"categoryValueRef\",\n\t\t\t\ttype: \"CategoryValue\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Association\",\n\t\tsuperClass: [\n\t\t\t\"Artifact\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"associationDirection\",\n\t\t\t\ttype: \"AssociationDirection\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"BaseElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"BaseElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Category\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"categoryValue\",\n\t\t\t\ttype: \"CategoryValue\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Artifact\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"CategoryValue\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"categorizedFlowElements\",\n\t\t\t\ttype: \"FlowElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"value\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Activity\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isForCompensation\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ioSpecification\",\n\t\t\t\ttype: \"InputOutputSpecification\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"boundaryEventRefs\",\n\t\t\t\ttype: \"BoundaryEvent\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"properties\",\n\t\t\t\ttype: \"Property\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataInputAssociations\",\n\t\t\t\ttype: \"DataInputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputAssociations\",\n\t\t\t\ttype: \"DataOutputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"startQuantity\",\n\t\t\t\t\"default\": 1,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resources\",\n\t\t\t\ttype: \"ResourceRole\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"completionQuantity\",\n\t\t\t\t\"default\": 1,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopCharacteristics\",\n\t\t\t\ttype: \"LoopCharacteristics\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ServiceTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SubProcess\",\n\t\tsuperClass: [\n\t\t\t\"Activity\",\n\t\t\t\"FlowElementsContainer\",\n\t\t\t\"InteractionNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"triggeredByEvent\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LoopCharacteristics\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"MultiInstanceLoopCharacteristics\",\n\t\tsuperClass: [\n\t\t\t\"LoopCharacteristics\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isSequential\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"behavior\",\n\t\t\t\ttype: \"MultiInstanceBehavior\",\n\t\t\t\t\"default\": \"All\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopCardinality\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopDataInputRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopDataOutputRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputDataItem\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputDataItem\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"complexBehaviorDefinition\",\n\t\t\t\ttype: \"ComplexBehaviorDefinition\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"completionCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"oneBehaviorEventRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"noneBehaviorEventRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"StandardLoopCharacteristics\",\n\t\tsuperClass: [\n\t\t\t\"LoopCharacteristics\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"testBefore\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopMaximum\",\n\t\t\t\ttype: \"Integer\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallActivity\",\n\t\tsuperClass: [\n\t\t\t\"Activity\",\n\t\t\t\"InteractionNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"calledElement\",\n\t\t\t\ttype: \"String\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Task\",\n\t\tsuperClass: [\n\t\t\t\"Activity\",\n\t\t\t\"InteractionNode\"\n\t\t]\n\t},\n\t{\n\t\tname: \"SendTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ReceiveTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"instantiate\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ScriptTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"scriptFormat\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"script\",\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"BusinessRuleTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"AdHocSubProcess\",\n\t\tsuperClass: [\n\t\t\t\"SubProcess\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"completionCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ordering\",\n\t\t\t\ttype: \"AdHocOrdering\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"cancelRemainingInstances\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Transaction\",\n\t\tsuperClass: [\n\t\t\t\"SubProcess\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"protocol\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"method\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalScriptTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"scriptLanguage\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"script\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalBusinessRuleTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ComplexBehaviorDefinition\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"condition\",\n\t\t\t\ttype: \"FormalExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"event\",\n\t\t\t\ttype: \"ImplicitThrowEvent\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceRole\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"resourceRef\",\n\t\t\t\ttype: \"Resource\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resourceParameterBindings\",\n\t\t\t\ttype: \"ResourceParameterBinding\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resourceAssignmentExpression\",\n\t\t\t\ttype: \"ResourceAssignmentExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceParameterBinding\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"expression\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"parameterRef\",\n\t\t\t\ttype: \"ResourceParameter\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceAssignmentExpression\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"expression\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Import\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"importType\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"location\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"namespace\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Definitions\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetNamespace\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"expressionLanguage\",\n\t\t\t\t\"default\": \"http://www.w3.org/1999/XPath\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"typeLanguage\",\n\t\t\t\t\"default\": \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"imports\",\n\t\t\t\ttype: \"Import\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensions\",\n\t\t\t\ttype: \"Extension\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"rootElements\",\n\t\t\t\ttype: \"RootElement\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"diagrams\",\n\t\t\t\tisMany: true,\n\t\t\t\ttype: \"bpmndi:BPMNDiagram\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"exporter\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"relationships\",\n\t\t\t\ttype: \"Relationship\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"exporterVersion\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar enumerations = [\n\t{\n\t\tname: \"ProcessType\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Public\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Private\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GatewayDirection\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Unspecified\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Converging\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Diverging\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Mixed\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EventBasedGatewayType\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Parallel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Exclusive\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"RelationshipDirection\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Forward\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Backward\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Both\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ItemKind\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Physical\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Information\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ChoreographyLoopType\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Standard\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"MultiInstanceSequential\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"MultiInstanceParallel\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"AssociationDirection\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"One\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Both\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MultiInstanceBehavior\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"One\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"All\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Complex\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"AdHocOrdering\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Parallel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Sequential\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar xml = {\n\ttagAlias: \"lowerCase\",\n\ttypePrefix: \"t\"\n};\nvar BpmnPackage = {\n\tname: name,\n\turi: uri,\n\tprefix: prefix,\n\tassociations: associations,\n\ttypes: types,\n\tenumerations: enumerations,\n\txml: xml\n};\n\nvar name$1 = \"BPMNDI\";\nvar uri$1 = \"http://www.omg.org/spec/BPMN/20100524/DI\";\nvar prefix$1 = \"bpmndi\";\nvar types$1 = [\n\t{\n\t\tname: \"BPMNDiagram\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"plane\",\n\t\t\t\ttype: \"BPMNPlane\",\n\t\t\t\tredefines: \"di:Diagram#rootElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"labelStyle\",\n\t\t\t\ttype: \"BPMNLabelStyle\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Diagram\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNPlane\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bpmnElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"bpmn:BaseElement\",\n\t\t\t\tredefines: \"di:DiagramElement#modelElement\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Plane\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNShape\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bpmnElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"bpmn:BaseElement\",\n\t\t\t\tredefines: \"di:DiagramElement#modelElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isHorizontal\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isExpanded\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isMarkerVisible\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"label\",\n\t\t\t\ttype: \"BPMNLabel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isMessageVisible\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantBandKind\",\n\t\t\t\ttype: \"ParticipantBandKind\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"choreographyActivityShape\",\n\t\t\t\ttype: \"BPMNShape\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:LabeledShape\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNEdge\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"label\",\n\t\t\t\ttype: \"BPMNLabel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"bpmnElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"bpmn:BaseElement\",\n\t\t\t\tredefines: \"di:DiagramElement#modelElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"di:DiagramElement\",\n\t\t\t\tredefines: \"di:Edge#source\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"di:DiagramElement\",\n\t\t\t\tredefines: \"di:Edge#target\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageVisibleKind\",\n\t\t\t\ttype: \"MessageVisibleKind\",\n\t\t\t\tisAttr: true,\n\t\t\t\t\"default\": \"initiating\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:LabeledEdge\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNLabel\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"labelStyle\",\n\t\t\t\ttype: \"BPMNLabelStyle\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\tredefines: \"di:DiagramElement#style\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Label\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNLabelStyle\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"font\",\n\t\t\t\ttype: \"dc:Font\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Style\"\n\t\t]\n\t}\n];\nvar enumerations$1 = [\n\t{\n\t\tname: \"ParticipantBandKind\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"top_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"middle_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"bottom_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"top_non_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"middle_non_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"bottom_non_initiating\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageVisibleKind\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"non_initiating\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar associations$1 = [\n];\nvar BpmnDiPackage = {\n\tname: name$1,\n\turi: uri$1,\n\tprefix: prefix$1,\n\ttypes: types$1,\n\tenumerations: enumerations$1,\n\tassociations: associations$1\n};\n\nvar name$2 = \"DC\";\nvar uri$2 = \"http://www.omg.org/spec/DD/20100524/DC\";\nvar prefix$2 = \"dc\";\nvar types$2 = [\n\t{\n\t\tname: \"Boolean\"\n\t},\n\t{\n\t\tname: \"Integer\"\n\t},\n\t{\n\t\tname: \"Real\"\n\t},\n\t{\n\t\tname: \"String\"\n\t},\n\t{\n\t\tname: \"Font\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\ttype: \"String\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"size\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isBold\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isItalic\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isUnderline\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isStrikeThrough\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Point\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"x\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"y\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Bounds\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"x\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"y\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"width\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"height\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t}\n];\nvar associations$2 = [\n];\nvar DcPackage = {\n\tname: name$2,\n\turi: uri$2,\n\tprefix: prefix$2,\n\ttypes: types$2,\n\tassociations: associations$2\n};\n\nvar name$3 = \"DI\";\nvar uri$3 = \"http://www.omg.org/spec/DD/20100524/DI\";\nvar prefix$3 = \"di\";\nvar types$3 = [\n\t{\n\t\tname: \"DiagramElement\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisId: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extension\",\n\t\t\t\ttype: \"Extension\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"owningDiagram\",\n\t\t\t\ttype: \"Diagram\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"owningElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"modelElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"style\",\n\t\t\t\ttype: \"Style\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ownedElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Node\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"DiagramElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Edge\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"DiagramElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"source\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"target\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"waypoint\",\n\t\t\t\tisUnique: false,\n\t\t\t\tisMany: true,\n\t\t\t\ttype: \"dc:Point\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Diagram\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisId: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"rootElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"documentation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resolution\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Real\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ownedStyle\",\n\t\t\t\ttype: \"Style\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Shape\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Node\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bounds\",\n\t\t\t\ttype: \"dc:Bounds\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Plane\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Node\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"planeElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tsubsettedProperty: \"DiagramElement-ownedElement\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LabeledEdge\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Edge\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"ownedLabel\",\n\t\t\t\ttype: \"Label\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tsubsettedProperty: \"DiagramElement-ownedElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LabeledShape\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Shape\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"ownedLabel\",\n\t\t\t\ttype: \"Label\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tsubsettedProperty: \"DiagramElement-ownedElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Label\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Node\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bounds\",\n\t\t\t\ttype: \"dc:Bounds\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Style\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisId: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Extension\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"values\",\n\t\t\t\tisMany: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar associations$3 = [\n];\nvar xml$1 = {\n\ttagAlias: \"lowerCase\"\n};\nvar DiPackage = {\n\tname: name$3,\n\turi: uri$3,\n\tprefix: prefix$3,\n\ttypes: types$3,\n\tassociations: associations$3,\n\txml: xml$1\n};\n\nvar name$4 = \"bpmn.io colors for BPMN\";\nvar uri$4 = \"http://bpmn.io/schema/bpmn/biocolor/1.0\";\nvar prefix$4 = \"bioc\";\nvar types$4 = [\n\t{\n\t\tname: \"ColoredShape\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNShape\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"stroke\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"fill\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ColoredEdge\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNEdge\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"stroke\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"fill\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar enumerations$2 = [\n];\nvar associations$4 = [\n];\nvar BiocPackage = {\n\tname: name$4,\n\turi: uri$4,\n\tprefix: prefix$4,\n\ttypes: types$4,\n\tenumerations: enumerations$2,\n\tassociations: associations$4\n};\n\nvar name$5 = \"BPMN in Color\";\nvar uri$5 = \"http://www.omg.org/spec/BPMN/non-normative/color/1.0\";\nvar prefix$5 = \"color\";\nvar types$5 = [\n\t{\n\t\tname: \"ColoredLabel\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNLabel\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ColoredShape\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNShape\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"background-color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"border-color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ColoredEdge\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNEdge\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"border-color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar enumerations$3 = [\n];\nvar associations$5 = [\n];\nvar BpmnInColorPackage = {\n\tname: name$5,\n\turi: uri$5,\n\tprefix: prefix$5,\n\ttypes: types$5,\n\tenumerations: enumerations$3,\n\tassociations: associations$5\n};\n\nvar packages = {\n bpmn: BpmnPackage,\n bpmndi: BpmnDiPackage,\n dc: DcPackage,\n di: DiPackage,\n bioc: BiocPackage,\n color: BpmnInColorPackage\n};\n\nfunction simple(additionalPackages, options) {\n var pks = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, packages, additionalPackages);\n\n return new BpmnModdle(pks, options);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (simple);\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-moddle/dist/index.esm.js?"); /***/ }), /***/ "./node_modules/css.escape/css.escape.js": /*!***********************************************!*\ !*** ./node_modules/css.escape/css.escape.js ***! \***********************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { eval("/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (true) {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else {}\n}(typeof __webpack_require__.g != 'undefined' ? __webpack_require__.g : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/css.escape/css.escape.js?"); /***/ }), /***/ "./node_modules/diagram-js-direct-editing/index.js": /*!*********************************************************!*\ !*** ./node_modules/diagram-js-direct-editing/index.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_interaction_events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _lib_DirectEditing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/DirectEditing */ \"./node_modules/diagram-js-direct-editing/lib/DirectEditing.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n diagram_js_lib_features_interaction_events__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n __init__: [ 'directEditing' ],\n directEditing: [ 'type', _lib_DirectEditing__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js-direct-editing/index.js?"); /***/ }), /***/ "./node_modules/diagram-js-direct-editing/lib/DirectEditing.js": /*!*********************************************************************!*\ !*** ./node_modules/diagram-js-direct-editing/lib/DirectEditing.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DirectEditing)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _TextBox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TextBox */ \"./node_modules/diagram-js-direct-editing/lib/TextBox.js\");\n\n\n\n\n\n/**\n * A direct editing component that allows users\n * to edit an elements text directly in the diagram\n *\n * @param {EventBus} eventBus the event bus\n */\nfunction DirectEditing(eventBus, canvas) {\n\n this._eventBus = eventBus;\n\n this._providers = [];\n this._textbox = new _TextBox__WEBPACK_IMPORTED_MODULE_0__.default({\n container: canvas.getContainer(),\n keyHandler: (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this._handleKey, this),\n resizeHandler: (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this._handleResize, this)\n });\n}\n\nDirectEditing.$inject = [ 'eventBus', 'canvas' ];\n\n\n/**\n * Register a direct editing provider\n\n * @param {Object} provider the provider, must expose an #activate(element) method that returns\n * an activation context ({ bounds: {x, y, width, height }, text }) if\n * direct editing is available for the given element.\n * Additionally the provider must expose a #update(element, value) method\n * to receive direct editing updates.\n */\nDirectEditing.prototype.registerProvider = function(provider) {\n this._providers.push(provider);\n};\n\n\n/**\n * Returns true if direct editing is currently active\n *\n * @return {Boolean}\n */\nDirectEditing.prototype.isActive = function() {\n return !!this._active;\n};\n\n\n/**\n * Cancel direct editing, if it is currently active\n */\nDirectEditing.prototype.cancel = function() {\n if (!this._active) {\n return;\n }\n\n this._fire('cancel');\n this.close();\n};\n\n\nDirectEditing.prototype._fire = function(event, context) {\n this._eventBus.fire('directEditing.' + event, context || { active: this._active });\n};\n\nDirectEditing.prototype.close = function() {\n this._textbox.destroy();\n\n this._fire('deactivate');\n\n this._active = null;\n\n this.resizable = undefined;\n};\n\n\nDirectEditing.prototype.complete = function() {\n\n var active = this._active;\n\n if (!active) {\n return;\n }\n\n var containerBounds,\n previousBounds = active.context.bounds,\n newBounds = this.$textbox.getBoundingClientRect(),\n newText = this.getValue(),\n previousText = active.context.text;\n\n if (\n newText !== previousText ||\n newBounds.height !== previousBounds.height ||\n newBounds.width !== previousBounds.width\n ) {\n containerBounds = this._textbox.container.getBoundingClientRect();\n\n active.provider.update(active.element, newText, active.context.text, {\n x: newBounds.left - containerBounds.left,\n y: newBounds.top - containerBounds.top,\n width: newBounds.width,\n height: newBounds.height\n });\n }\n\n this._fire('complete');\n\n this.close();\n};\n\n\nDirectEditing.prototype.getValue = function() {\n return this._textbox.getValue();\n};\n\n\nDirectEditing.prototype._handleKey = function(e) {\n\n // stop bubble\n e.stopPropagation();\n\n var key = e.keyCode || e.charCode;\n\n // ESC\n if (key === 27) {\n e.preventDefault();\n return this.cancel();\n }\n\n // Enter\n if (key === 13 && !e.shiftKey) {\n e.preventDefault();\n return this.complete();\n }\n};\n\n\nDirectEditing.prototype._handleResize = function(event) {\n this._fire('resize', event);\n};\n\n\n/**\n * Activate direct editing on the given element\n *\n * @param {Object} ElementDescriptor the descriptor for a shape or connection\n * @return {Boolean} true if the activation was possible\n */\nDirectEditing.prototype.activate = function(element) {\n if (this.isActive()) {\n this.cancel();\n }\n\n // the direct editing context\n var context;\n\n var provider = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(this._providers, function(p) {\n return (context = p.activate(element)) ? p : null;\n });\n\n // check if activation took place\n if (context) {\n this.$textbox = this._textbox.create(\n context.bounds,\n context.style,\n context.text,\n context.options\n );\n\n this._active = {\n element: element,\n context: context,\n provider: provider\n };\n\n if (context.options && context.options.resizable) {\n this.resizable = true;\n }\n\n this._fire('activate');\n }\n\n return !!context;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js-direct-editing/lib/DirectEditing.js?"); /***/ }), /***/ "./node_modules/diagram-js-direct-editing/lib/TextBox.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js-direct-editing/lib/TextBox.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ TextBox)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar min = Math.min,\n max = Math.max;\n\nfunction preventDefault(e) {\n e.preventDefault();\n}\n\nfunction stopPropagation(e) {\n e.stopPropagation();\n}\n\nfunction isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nfunction toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n/**\n * Initializes a container for a content editable div.\n *\n * Structure:\n *\n * container\n * parent\n * content\n * resize-handle\n *\n * @param {object} options\n * @param {DOMElement} options.container The DOM element to append the contentContainer to\n * @param {Function} options.keyHandler Handler for key events\n * @param {Function} options.resizeHandler Handler for resize events\n */\nfunction TextBox(options) {\n this.container = options.container;\n\n this.parent = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(\n '
    ' +\n '
    ' +\n '
    '\n );\n\n this.content = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('[contenteditable]', this.parent);\n\n this.keyHandler = options.keyHandler || function() {};\n this.resizeHandler = options.resizeHandler || function() {};\n\n this.autoResize = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this.autoResize, this);\n this.handlePaste = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this.handlePaste, this);\n}\n\n\n/**\n * Create a text box with the given position, size, style and text content\n *\n * @param {Object} bounds\n * @param {Number} bounds.x absolute x position\n * @param {Number} bounds.y absolute y position\n * @param {Number} [bounds.width] fixed width value\n * @param {Number} [bounds.height] fixed height value\n * @param {Number} [bounds.maxWidth] maximum width value\n * @param {Number} [bounds.maxHeight] maximum height value\n * @param {Number} [bounds.minWidth] minimum width value\n * @param {Number} [bounds.minHeight] minimum height value\n * @param {Object} [style]\n * @param {String} value text content\n *\n * @return {DOMElement} The created content DOM element\n */\nTextBox.prototype.create = function(bounds, style, value, options) {\n var self = this;\n\n var parent = this.parent,\n content = this.content,\n container = this.container;\n\n options = this.options = options || {};\n\n style = this.style = style || {};\n\n var parentStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.pick)(style, [\n 'width',\n 'height',\n 'maxWidth',\n 'maxHeight',\n 'minWidth',\n 'minHeight',\n 'left',\n 'top',\n 'backgroundColor',\n 'position',\n 'overflow',\n 'border',\n 'wordWrap',\n 'textAlign',\n 'outline',\n 'transform'\n ]);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(parent.style, {\n width: bounds.width + 'px',\n height: bounds.height + 'px',\n maxWidth: bounds.maxWidth + 'px',\n maxHeight: bounds.maxHeight + 'px',\n minWidth: bounds.minWidth + 'px',\n minHeight: bounds.minHeight + 'px',\n left: bounds.x + 'px',\n top: bounds.y + 'px',\n backgroundColor: '#ffffff',\n position: 'absolute',\n overflow: 'visible',\n border: '1px solid #ccc',\n boxSizing: 'border-box',\n wordWrap: 'normal',\n textAlign: 'center',\n outline: 'none'\n }, parentStyle);\n\n var contentStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.pick)(style, [\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'lineHeight',\n 'padding',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft'\n ]);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(content.style, {\n boxSizing: 'border-box',\n width: '100%',\n outline: 'none',\n wordWrap: 'break-word'\n }, contentStyle);\n\n if (options.centerVertically) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(content.style, {\n position: 'absolute',\n top: '50%',\n transform: 'translate(0, -50%)'\n }, contentStyle);\n }\n\n content.innerText = value;\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'keydown', this.keyHandler);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'mousedown', stopPropagation);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'paste', self.handlePaste);\n\n if (options.autoResize) {\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'input', this.autoResize);\n }\n\n if (options.resizable) {\n this.resizable(style);\n }\n\n container.appendChild(parent);\n\n // set selection to end of text\n this.setSelection(content.lastChild, content.lastChild && content.lastChild.length);\n\n return parent;\n};\n\n/**\n * Intercept paste events to remove formatting from pasted text.\n */\nTextBox.prototype.handlePaste = function(e) {\n var options = this.options,\n style = this.style;\n\n e.preventDefault();\n\n var text;\n\n if (e.clipboardData) {\n\n // Chrome, Firefox, Safari\n text = e.clipboardData.getData('text/plain');\n } else {\n\n // Internet Explorer\n text = window.clipboardData.getData('Text');\n }\n\n this.insertText(text);\n\n if (options.autoResize) {\n var hasResized = this.autoResize(style);\n\n if (hasResized) {\n this.resizeHandler(hasResized);\n }\n }\n};\n\nTextBox.prototype.insertText = function(text) {\n text = normalizeEndOfLineSequences(text);\n\n // insertText command not supported by Internet Explorer\n var success = document.execCommand('insertText', false, text);\n\n if (success) {\n return;\n }\n\n this._insertTextIE(text);\n};\n\nTextBox.prototype._insertTextIE = function(text) {\n\n // Internet Explorer\n var range = this.getSelection(),\n startContainer = range.startContainer,\n endContainer = range.endContainer,\n startOffset = range.startOffset,\n endOffset = range.endOffset,\n commonAncestorContainer = range.commonAncestorContainer;\n\n var childNodesArray = toArray(commonAncestorContainer.childNodes);\n\n var container,\n offset;\n\n if (isTextNode(commonAncestorContainer)) {\n var containerTextContent = startContainer.textContent;\n\n startContainer.textContent =\n containerTextContent.substring(0, startOffset)\n + text\n + containerTextContent.substring(endOffset);\n\n container = startContainer;\n offset = startOffset + text.length;\n\n } else if (startContainer === this.content && endContainer === this.content) {\n var textNode = document.createTextNode(text);\n\n this.content.insertBefore(textNode, childNodesArray[startOffset]);\n\n container = textNode;\n offset = textNode.textContent.length;\n } else {\n var startContainerChildIndex = childNodesArray.indexOf(startContainer),\n endContainerChildIndex = childNodesArray.indexOf(endContainer);\n\n childNodesArray.forEach(function(childNode, index) {\n\n if (index === startContainerChildIndex) {\n childNode.textContent =\n startContainer.textContent.substring(0, startOffset) +\n text +\n endContainer.textContent.substring(endOffset);\n } else if (index > startContainerChildIndex && index <= endContainerChildIndex) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.remove)(childNode);\n }\n });\n\n container = startContainer;\n offset = startOffset + text.length;\n }\n\n if (container && offset !== undefined) {\n\n // is necessary in Internet Explorer\n setTimeout(function() {\n self.setSelection(container, offset);\n });\n }\n};\n\n/**\n * Automatically resize element vertically to fit its content.\n */\nTextBox.prototype.autoResize = function() {\n var parent = this.parent,\n content = this.content;\n\n var fontSize = parseInt(this.style.fontSize) || 12;\n\n if (content.scrollHeight > parent.offsetHeight ||\n content.scrollHeight < parent.offsetHeight - fontSize) {\n var bounds = parent.getBoundingClientRect();\n\n var height = content.scrollHeight;\n parent.style.height = height + 'px';\n\n this.resizeHandler({\n width: bounds.width,\n height: bounds.height,\n dx: 0,\n dy: height - bounds.height\n });\n }\n};\n\n/**\n * Make an element resizable by adding a resize handle.\n */\nTextBox.prototype.resizable = function() {\n var self = this;\n\n var parent = this.parent,\n resizeHandle = this.resizeHandle;\n\n var minWidth = parseInt(this.style.minWidth) || 0,\n minHeight = parseInt(this.style.minHeight) || 0,\n maxWidth = parseInt(this.style.maxWidth) || Infinity,\n maxHeight = parseInt(this.style.maxHeight) || Infinity;\n\n if (!resizeHandle) {\n resizeHandle = this.resizeHandle = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(\n '
    '\n );\n\n var startX, startY, startWidth, startHeight;\n\n var onMouseDown = function(e) {\n preventDefault(e);\n stopPropagation(e);\n\n startX = e.clientX;\n startY = e.clientY;\n\n var bounds = parent.getBoundingClientRect();\n\n startWidth = bounds.width;\n startHeight = bounds.height;\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(document, 'mousemove', onMouseMove);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(document, 'mouseup', onMouseUp);\n };\n\n var onMouseMove = function(e) {\n preventDefault(e);\n stopPropagation(e);\n\n var newWidth = min(max(startWidth + e.clientX - startX, minWidth), maxWidth);\n var newHeight = min(max(startHeight + e.clientY - startY, minHeight), maxHeight);\n\n parent.style.width = newWidth + 'px';\n parent.style.height = newHeight + 'px';\n\n self.resizeHandler({\n width: startWidth,\n height: startHeight,\n dx: e.clientX - startX,\n dy: e.clientY - startY\n });\n };\n\n var onMouseUp = function(e) {\n preventDefault(e);\n stopPropagation(e);\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(document,'mousemove', onMouseMove, false);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(document, 'mouseup', onMouseUp, false);\n };\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(resizeHandle, 'mousedown', onMouseDown);\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(resizeHandle.style, {\n position: 'absolute',\n bottom: '0px',\n right: '0px',\n cursor: 'nwse-resize',\n width: '0',\n height: '0',\n borderTop: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid transparent',\n borderRight: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid #ccc',\n borderBottom: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid #ccc',\n borderLeft: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid transparent'\n });\n\n parent.appendChild(resizeHandle);\n};\n\n\n/**\n * Clear content and style of the textbox, unbind listeners and\n * reset CSS style.\n */\nTextBox.prototype.destroy = function() {\n var parent = this.parent,\n content = this.content,\n resizeHandle = this.resizeHandle;\n\n // clear content\n content.innerText = '';\n\n // clear styles\n parent.removeAttribute('style');\n content.removeAttribute('style');\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'keydown', this.keyHandler);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'mousedown', stopPropagation);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'input', this.autoResize);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'paste', this.handlePaste);\n\n if (resizeHandle) {\n resizeHandle.removeAttribute('style');\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.remove)(resizeHandle);\n }\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.remove)(parent);\n};\n\n\nTextBox.prototype.getValue = function() {\n return this.content.innerText.trim();\n};\n\n\nTextBox.prototype.getSelection = function() {\n var selection = window.getSelection(),\n range = selection.getRangeAt(0);\n\n return range;\n};\n\n\nTextBox.prototype.setSelection = function(container, offset) {\n var range = document.createRange();\n\n if (container === null) {\n range.selectNodeContents(this.content);\n } else {\n range.setStart(container, offset);\n range.setEnd(container, offset);\n }\n\n var selection = window.getSelection();\n\n selection.removeAllRanges();\n selection.addRange(range);\n};\n\n// helpers //////////\n\nfunction normalizeEndOfLineSequences(string) {\n return string.replace(/\\r\\n|\\r|\\n/g, '\\n');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js-direct-editing/lib/TextBox.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/Diagram.js": /*!************************************************!*\ !*** ./node_modules/diagram-js/lib/Diagram.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Diagram)\n/* harmony export */ });\n/* harmony import */ var didi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! didi */ \"./node_modules/didi/dist/index.esm.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core */ \"./node_modules/diagram-js/lib/core/index.js\");\n\n\n\n\n\n/**\n * Bootstrap an injector from a list of modules, instantiating a number of default components\n *\n * @ignore\n * @param {Array} bootstrapModules\n *\n * @return {didi.Injector} a injector to use to access the components\n */\nfunction bootstrap(bootstrapModules) {\n\n var modules = [],\n components = [];\n\n function hasModule(m) {\n return modules.indexOf(m) >= 0;\n }\n\n function addModule(m) {\n modules.push(m);\n }\n\n function visit(m) {\n if (hasModule(m)) {\n return;\n }\n\n (m.__depends__ || []).forEach(visit);\n\n if (hasModule(m)) {\n return;\n }\n\n addModule(m);\n\n (m.__init__ || []).forEach(function(c) {\n components.push(c);\n });\n }\n\n bootstrapModules.forEach(visit);\n\n var injector = new didi__WEBPACK_IMPORTED_MODULE_0__.Injector(modules);\n\n components.forEach(function(c) {\n\n try {\n\n // eagerly resolve component (fn or string)\n injector[typeof c === 'string' ? 'get' : 'invoke'](c);\n } catch (e) {\n console.error('Failed to instantiate component');\n console.error(e.stack);\n\n throw e;\n }\n });\n\n return injector;\n}\n\n/**\n * Creates an injector from passed options.\n *\n * @ignore\n * @param {Object} options\n * @return {didi.Injector}\n */\nfunction createInjector(options) {\n\n options = options || {};\n\n var configModule = {\n 'config': ['value', options]\n };\n\n var modules = [ configModule, _core__WEBPACK_IMPORTED_MODULE_1__.default ].concat(options.modules || []);\n\n return bootstrap(modules);\n}\n\n\n/**\n * The main diagram-js entry point that bootstraps the diagram with the given\n * configuration.\n *\n * To register extensions with the diagram, pass them as Array to the constructor.\n *\n * @class djs.Diagram\n * @memberOf djs\n * @constructor\n *\n * @example\n *\n * Creating a plug-in that logs whenever a shape is added to the canvas.\n *\n * // plug-in implemenentation\n * function MyLoggingPlugin(eventBus) {\n * eventBus.on('shape.added', function(event) {\n * console.log('shape ', event.shape, ' was added to the diagram');\n * });\n * }\n *\n * // export as module\n * export default {\n * __init__: [ 'myLoggingPlugin' ],\n * myLoggingPlugin: [ 'type', MyLoggingPlugin ]\n * };\n *\n *\n * // instantiate the diagram with the new plug-in\n *\n * import MyLoggingModule from 'path-to-my-logging-plugin';\n *\n * var diagram = new Diagram({\n * modules: [\n * MyLoggingModule\n * ]\n * });\n *\n * diagram.invoke([ 'canvas', function(canvas) {\n * // add shape to drawing canvas\n * canvas.addShape({ x: 10, y: 10 });\n * });\n *\n * // 'shape ... was added to the diagram' logged to console\n *\n * @param {Object} options\n * @param {Array} [options.modules] external modules to instantiate with the diagram\n * @param {didi.Injector} [injector] an (optional) injector to bootstrap the diagram with\n */\nfunction Diagram(options, injector) {\n\n // create injector unless explicitly specified\n this.injector = injector = injector || createInjector(options);\n\n // API\n\n /**\n * Resolves a diagram service\n *\n * @method Diagram#get\n *\n * @param {string} name the name of the diagram service to be retrieved\n * @param {boolean} [strict=true] if false, resolve missing services to null\n */\n this.get = injector.get;\n\n /**\n * Executes a function into which diagram services are injected\n *\n * @method Diagram#invoke\n *\n * @param {Function|Object[]} fn the function to resolve\n * @param {Object} locals a number of locals to use to resolve certain dependencies\n */\n this.invoke = injector.invoke;\n\n // init\n\n // indicate via event\n\n\n /**\n * An event indicating that all plug-ins are loaded.\n *\n * Use this event to fire other events to interested plug-ins\n *\n * @memberOf Diagram\n *\n * @event diagram.init\n *\n * @example\n *\n * eventBus.on('diagram.init', function() {\n * eventBus.fire('my-custom-event', { foo: 'BAR' });\n * });\n *\n * @type {Object}\n */\n this.get('eventBus').fire('diagram.init');\n}\n\n\n/**\n * Destroys the diagram\n *\n * @method Diagram#destroy\n */\nDiagram.prototype.destroy = function() {\n this.get('eventBus').fire('diagram.destroy');\n};\n\n/**\n * Clear the diagram, removing all contents.\n */\nDiagram.prototype.clear = function() {\n this.get('eventBus').fire('diagram.clear');\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/Diagram.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/command/CommandInterceptor.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/command/CommandInterceptor.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CommandInterceptor)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nvar DEFAULT_PRIORITY = 1000;\n\n/**\n * A utility that can be used to plug-in into the command execution for\n * extension and/or validation.\n *\n * @param {EventBus} eventBus\n *\n * @example\n *\n * import inherits from 'inherits';\n *\n * import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';\n *\n * function CommandLogger(eventBus) {\n * CommandInterceptor.call(this, eventBus);\n *\n * this.preExecute(function(event) {\n * console.log('command pre-execute', event);\n * });\n * }\n *\n * inherits(CommandLogger, CommandInterceptor);\n *\n */\nfunction CommandInterceptor(eventBus) {\n this._eventBus = eventBus;\n}\n\nCommandInterceptor.$inject = [ 'eventBus' ];\n\nfunction unwrapEvent(fn, that) {\n return function(event) {\n return fn.call(that || null, event.context, event.command, event);\n };\n}\n\n/**\n * Register an interceptor for a command execution\n *\n * @param {string|Array} [events] list of commands to register on\n * @param {string} [hook] command hook, i.e. preExecute, executed to listen on\n * @param {number} [priority] the priority on which to hook into the execution\n * @param {Function} handlerFn interceptor to be invoked with (event)\n * @param {boolean} unwrap if true, unwrap the event and pass (context, command, event) to the\n * listener instead\n * @param {Object} [that] Pass context (`this`) to the handler function\n */\nCommandInterceptor.prototype.on = function(events, hook, priority, handlerFn, unwrap, that) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(hook) || (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(hook)) {\n that = unwrap;\n unwrap = handlerFn;\n handlerFn = priority;\n priority = hook;\n hook = null;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(priority)) {\n that = unwrap;\n unwrap = handlerFn;\n handlerFn = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(unwrap)) {\n that = unwrap;\n unwrap = false;\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handlerFn)) {\n throw new Error('handlerFn must be a function');\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(events)) {\n events = [ events ];\n }\n\n var eventBus = this._eventBus;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(events, function(event) {\n\n // concat commandStack(.event)?(.hook)?\n var fullEvent = [ 'commandStack', event, hook ].filter(function(e) { return e; }).join('.');\n\n eventBus.on(fullEvent, priority, unwrap ? unwrapEvent(handlerFn, that) : handlerFn, that);\n });\n};\n\n\nvar hooks = [\n 'canExecute',\n 'preExecute',\n 'preExecuted',\n 'execute',\n 'executed',\n 'postExecute',\n 'postExecuted',\n 'revert',\n 'reverted'\n];\n\n/*\n * Install hook shortcuts\n *\n * This will generate the CommandInterceptor#(preExecute|...|reverted) methods\n * which will in term forward to CommandInterceptor#on.\n */\n(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(hooks, function(hook) {\n\n /**\n * {canExecute|preExecute|preExecuted|execute|executed|postExecute|postExecuted|revert|reverted}\n *\n * A named hook for plugging into the command execution\n *\n * @param {string|Array} [events] list of commands to register on\n * @param {number} [priority] the priority on which to hook into the execution\n * @param {Function} handlerFn interceptor to be invoked with (event)\n * @param {boolean} [unwrap=false] if true, unwrap the event and pass (context, command, event) to the\n * listener instead\n * @param {Object} [that] Pass context (`this`) to the handler function\n */\n CommandInterceptor.prototype[hook] = function(events, priority, handlerFn, unwrap, that) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(events) || (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(events)) {\n that = unwrap;\n unwrap = handlerFn;\n handlerFn = priority;\n priority = events;\n events = null;\n }\n\n this.on(events, hook, priority, handlerFn, unwrap, that);\n };\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/command/CommandInterceptor.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/command/CommandStack.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/command/CommandStack.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CommandStack)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A service that offers un- and redoable execution of commands.\n *\n * The command stack is responsible for executing modeling actions\n * in a un- and redoable manner. To do this it delegates the actual\n * command execution to {@link CommandHandler}s.\n *\n * Command handlers provide {@link CommandHandler#execute(ctx)} and\n * {@link CommandHandler#revert(ctx)} methods to un- and redo a command\n * identified by a command context.\n *\n *\n * ## Life-Cycle events\n *\n * In the process the command stack fires a number of life-cycle events\n * that other components to participate in the command execution.\n *\n * * preExecute\n * * preExecuted\n * * execute\n * * executed\n * * postExecute\n * * postExecuted\n * * revert\n * * reverted\n *\n * A special event is used for validating, whether a command can be\n * performed prior to its execution.\n *\n * * canExecute\n *\n * Each of the events is fired as `commandStack.{eventName}` and\n * `commandStack.{commandName}.{eventName}`, respectively. This gives\n * components fine grained control on where to hook into.\n *\n * The event object fired transports `command`, the name of the\n * command and `context`, the command context.\n *\n *\n * ## Creating Command Handlers\n *\n * Command handlers should provide the {@link CommandHandler#execute(ctx)}\n * and {@link CommandHandler#revert(ctx)} methods to implement\n * redoing and undoing of a command.\n *\n * A command handler _must_ ensure undo is performed properly in order\n * not to break the undo chain. It must also return the shapes that\n * got changed during the `execute` and `revert` operations.\n *\n * Command handlers may execute other modeling operations (and thus\n * commands) in their `preExecute` and `postExecute` phases. The command\n * stack will properly group all commands together into a logical unit\n * that may be re- and undone atomically.\n *\n * Command handlers must not execute other commands from within their\n * core implementation (`execute`, `revert`).\n *\n *\n * ## Change Tracking\n *\n * During the execution of the CommandStack it will keep track of all\n * elements that have been touched during the command's execution.\n *\n * At the end of the CommandStack execution it will notify interested\n * components via an 'elements.changed' event with all the dirty\n * elements.\n *\n * The event can be picked up by components that are interested in the fact\n * that elements have been changed. One use case for this is updating\n * their graphical representation after moving / resizing or deletion.\n *\n * @see CommandHandler\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction CommandStack(eventBus, injector) {\n\n /**\n * A map of all registered command handlers.\n *\n * @type {Object}\n */\n this._handlerMap = {};\n\n /**\n * A stack containing all re/undoable actions on the diagram\n *\n * @type {Array}\n */\n this._stack = [];\n\n /**\n * The current index on the stack\n *\n * @type {number}\n */\n this._stackIdx = -1;\n\n /**\n * Current active commandStack execution\n *\n * @type {Object}\n * @property {Object[]} actions\n * @property {Object[]} dirty\n * @property { 'undo' | 'redo' | 'clear' | 'execute' | null } trigger the cause of the current excecution\n */\n this._currentExecution = {\n actions: [],\n dirty: [],\n trigger: null\n };\n\n\n this._injector = injector;\n this._eventBus = eventBus;\n\n this._uid = 1;\n\n eventBus.on([\n 'diagram.destroy',\n 'diagram.clear'\n ], function() {\n this.clear(false);\n }, this);\n}\n\nCommandStack.$inject = [ 'eventBus', 'injector' ];\n\n\n/**\n * Execute a command\n *\n * @param {string} command the command to execute\n * @param {Object} context the environment to execute the command in\n */\nCommandStack.prototype.execute = function(command, context) {\n if (!command) {\n throw new Error('command required');\n }\n\n this._currentExecution.trigger = 'execute';\n\n var action = { command: command, context: context };\n\n this._pushAction(action);\n this._internalExecute(action);\n this._popAction(action);\n};\n\n\n/**\n * Ask whether a given command can be executed.\n *\n * Implementors may hook into the mechanism on two ways:\n *\n * * in event listeners:\n *\n * Users may prevent the execution via an event listener.\n * It must prevent the default action for `commandStack.(.)canExecute` events.\n *\n * * in command handlers:\n *\n * If the method {@link CommandHandler#canExecute} is implemented in a handler\n * it will be called to figure out whether the execution is allowed.\n *\n * @param {string} command the command to execute\n * @param {Object} context the environment to execute the command in\n *\n * @return {boolean} true if the command can be executed\n */\nCommandStack.prototype.canExecute = function(command, context) {\n\n var action = { command: command, context: context };\n\n var handler = this._getHandler(command);\n\n var result = this._fire(command, 'canExecute', action);\n\n // handler#canExecute will only be called if no listener\n // decided on a result already\n if (result === undefined) {\n if (!handler) {\n return false;\n }\n\n if (handler.canExecute) {\n result = handler.canExecute(context);\n }\n }\n\n return result;\n};\n\n\n/**\n * Clear the command stack, erasing all undo / redo history\n */\nCommandStack.prototype.clear = function(emit) {\n this._stack.length = 0;\n this._stackIdx = -1;\n\n if (emit !== false) {\n this._fire('changed', { trigger: 'clear' });\n }\n};\n\n\n/**\n * Undo last command(s)\n */\nCommandStack.prototype.undo = function() {\n var action = this._getUndoAction(),\n next;\n\n if (action) {\n this._currentExecution.trigger = 'undo';\n\n this._pushAction(action);\n\n while (action) {\n this._internalUndo(action);\n next = this._getUndoAction();\n\n if (!next || next.id !== action.id) {\n break;\n }\n\n action = next;\n }\n\n this._popAction();\n }\n};\n\n\n/**\n * Redo last command(s)\n */\nCommandStack.prototype.redo = function() {\n var action = this._getRedoAction(),\n next;\n\n if (action) {\n this._currentExecution.trigger = 'redo';\n\n this._pushAction(action);\n\n while (action) {\n this._internalExecute(action, true);\n next = this._getRedoAction();\n\n if (!next || next.id !== action.id) {\n break;\n }\n\n action = next;\n }\n\n this._popAction();\n }\n};\n\n\n/**\n * Register a handler instance with the command stack\n *\n * @param {string} command\n * @param {CommandHandler} handler\n */\nCommandStack.prototype.register = function(command, handler) {\n this._setHandler(command, handler);\n};\n\n\n/**\n * Register a handler type with the command stack\n * by instantiating it and injecting its dependencies.\n *\n * @param {string} command\n * @param {Function} a constructor for a {@link CommandHandler}\n */\nCommandStack.prototype.registerHandler = function(command, handlerCls) {\n\n if (!command || !handlerCls) {\n throw new Error('command and handlerCls must be defined');\n }\n\n var handler = this._injector.instantiate(handlerCls);\n this.register(command, handler);\n};\n\nCommandStack.prototype.canUndo = function() {\n return !!this._getUndoAction();\n};\n\nCommandStack.prototype.canRedo = function() {\n return !!this._getRedoAction();\n};\n\n// stack access //////////////////////\n\nCommandStack.prototype._getRedoAction = function() {\n return this._stack[this._stackIdx + 1];\n};\n\n\nCommandStack.prototype._getUndoAction = function() {\n return this._stack[this._stackIdx];\n};\n\n\n// internal functionality //////////////////////\n\nCommandStack.prototype._internalUndo = function(action) {\n var self = this;\n\n var command = action.command,\n context = action.context;\n\n var handler = this._getHandler(command);\n\n // guard against illegal nested command stack invocations\n this._atomicDo(function() {\n self._fire(command, 'revert', action);\n\n if (handler.revert) {\n self._markDirty(handler.revert(context));\n }\n\n self._revertedAction(action);\n\n self._fire(command, 'reverted', action);\n });\n};\n\n\nCommandStack.prototype._fire = function(command, qualifier, event) {\n if (arguments.length < 3) {\n event = qualifier;\n qualifier = null;\n }\n\n var names = qualifier ? [ command + '.' + qualifier, qualifier ] : [ command ],\n i, name, result;\n\n event = this._eventBus.createEvent(event);\n\n for (i = 0; (name = names[i]); i++) {\n result = this._eventBus.fire('commandStack.' + name, event);\n\n if (event.cancelBubble) {\n break;\n }\n }\n\n return result;\n};\n\nCommandStack.prototype._createId = function() {\n return this._uid++;\n};\n\nCommandStack.prototype._atomicDo = function(fn) {\n\n var execution = this._currentExecution;\n\n execution.atomic = true;\n\n try {\n fn();\n } finally {\n execution.atomic = false;\n }\n};\n\nCommandStack.prototype._internalExecute = function(action, redo) {\n var self = this;\n\n var command = action.command,\n context = action.context;\n\n var handler = this._getHandler(command);\n\n if (!handler) {\n throw new Error('no command handler registered for <' + command + '>');\n }\n\n this._pushAction(action);\n\n if (!redo) {\n this._fire(command, 'preExecute', action);\n\n if (handler.preExecute) {\n handler.preExecute(context);\n }\n\n this._fire(command, 'preExecuted', action);\n }\n\n // guard against illegal nested command stack invocations\n this._atomicDo(function() {\n\n self._fire(command, 'execute', action);\n\n if (handler.execute) {\n\n // actual execute + mark return results as dirty\n self._markDirty(handler.execute(context));\n }\n\n // log to stack\n self._executedAction(action, redo);\n\n self._fire(command, 'executed', action);\n });\n\n if (!redo) {\n this._fire(command, 'postExecute', action);\n\n if (handler.postExecute) {\n handler.postExecute(context);\n }\n\n this._fire(command, 'postExecuted', action);\n }\n\n this._popAction(action);\n};\n\n\nCommandStack.prototype._pushAction = function(action) {\n\n var execution = this._currentExecution,\n actions = execution.actions;\n\n var baseAction = actions[0];\n\n if (execution.atomic) {\n throw new Error('illegal invocation in or phase (action: ' + action.command + ')');\n }\n\n if (!action.id) {\n action.id = (baseAction && baseAction.id) || this._createId();\n }\n\n actions.push(action);\n};\n\n\nCommandStack.prototype._popAction = function() {\n var execution = this._currentExecution,\n trigger = execution.trigger,\n actions = execution.actions,\n dirty = execution.dirty;\n\n actions.pop();\n\n if (!actions.length) {\n this._eventBus.fire('elements.changed', { elements: (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.uniqueBy)('id', dirty.reverse()) });\n\n dirty.length = 0;\n\n this._fire('changed', { trigger: trigger });\n\n execution.trigger = null;\n }\n};\n\n\nCommandStack.prototype._markDirty = function(elements) {\n var execution = this._currentExecution;\n\n if (!elements) {\n return;\n }\n\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements) ? elements : [ elements ];\n\n execution.dirty = execution.dirty.concat(elements);\n};\n\n\nCommandStack.prototype._executedAction = function(action, redo) {\n var stackIdx = ++this._stackIdx;\n\n if (!redo) {\n this._stack.splice(stackIdx, this._stack.length, action);\n }\n};\n\n\nCommandStack.prototype._revertedAction = function(action) {\n this._stackIdx--;\n};\n\n\nCommandStack.prototype._getHandler = function(command) {\n return this._handlerMap[command];\n};\n\nCommandStack.prototype._setHandler = function(command, handler) {\n if (!command || !handler) {\n throw new Error('command and handler required');\n }\n\n if (this._handlerMap[command]) {\n throw new Error('overriding handler for command <' + command + '>');\n }\n\n this._handlerMap[command] = handler;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/command/CommandStack.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/command/index.js": /*!******************************************************!*\ !*** ./node_modules/diagram-js/lib/command/index.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CommandStack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CommandStack */ \"./node_modules/diagram-js/lib/command/CommandStack.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n commandStack: [ 'type', _CommandStack__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/command/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/core/Canvas.js": /*!****************************************************!*\ !*** ./node_modules/diagram-js/lib/core/Canvas.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Canvas)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction round(number, resolution) {\n return Math.round(number * resolution) / resolution;\n}\n\nfunction ensurePx(number) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(number) ? number + 'px' : number;\n}\n\n/**\n * Creates a HTML container element for a SVG element with\n * the given configuration\n *\n * @param {Object} options\n * @return {HTMLElement} the container element\n */\nfunction createContainer(options) {\n\n options = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, { width: '100%', height: '100%' }, options);\n\n var container = options.container || document.body;\n\n // create a
    around the svg element with the respective size\n // this way we can always get the correct container size\n // (this is impossible for elements at the moment)\n var parent = document.createElement('div');\n parent.setAttribute('class', 'djs-container');\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(parent.style, {\n position: 'relative',\n overflow: 'hidden',\n width: ensurePx(options.width),\n height: ensurePx(options.height)\n });\n\n container.appendChild(parent);\n\n return parent;\n}\n\nfunction createGroup(parent, cls, childIndex) {\n var group = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(group).add(cls);\n\n var index = childIndex !== undefined ? childIndex : parent.childNodes.length - 1;\n\n // must ensure second argument is node or _null_\n // cf. https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore\n parent.insertBefore(group, parent.childNodes[index] || null);\n\n return group;\n}\n\nvar BASE_LAYER = 'base';\n\n\nvar REQUIRED_MODEL_ATTRS = {\n shape: [ 'x', 'y', 'width', 'height' ],\n connection: [ 'waypoints' ]\n};\n\n/**\n * The main drawing canvas.\n *\n * @class\n * @constructor\n *\n * @emits Canvas#canvas.init\n *\n * @param {Object} config\n * @param {EventBus} eventBus\n * @param {GraphicsFactory} graphicsFactory\n * @param {ElementRegistry} elementRegistry\n */\nfunction Canvas(config, eventBus, graphicsFactory, elementRegistry) {\n\n this._eventBus = eventBus;\n this._elementRegistry = elementRegistry;\n this._graphicsFactory = graphicsFactory;\n\n this._init(config || {});\n}\n\nCanvas.$inject = [\n 'config.canvas',\n 'eventBus',\n 'graphicsFactory',\n 'elementRegistry'\n];\n\n\nCanvas.prototype._init = function(config) {\n\n var eventBus = this._eventBus;\n\n // Creates a element that is wrapped into a
    .\n // This way we are always able to correctly figure out the size of the svg element\n // by querying the parent node.\n //\n // (It is not possible to get the size of a svg element cross browser @ 2014-04-01)\n //\n //
    \n // \n // ...\n // \n //
    \n\n // html container\n var container = this._container = createContainer(config);\n\n var svg = this._svg = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('svg');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(svg, { width: '100%', height: '100%' });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(container, svg);\n\n var viewport = this._viewport = createGroup(svg, 'viewport');\n\n this._layers = {};\n\n // debounce canvas.viewbox.changed events\n // for smoother diagram interaction\n if (config.deferUpdate !== false) {\n this._viewboxChanged = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.debounce)((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this._viewboxChanged, this), 300);\n }\n\n eventBus.on('diagram.init', function() {\n\n /**\n * An event indicating that the canvas is ready to be drawn on.\n *\n * @memberOf Canvas\n *\n * @event canvas.init\n *\n * @type {Object}\n * @property {SVGElement} svg the created svg element\n * @property {SVGElement} viewport the direct parent of diagram elements and shapes\n */\n eventBus.fire('canvas.init', {\n svg: svg,\n viewport: viewport\n });\n\n }, this);\n\n // reset viewbox on shape changes to\n // recompute the viewbox\n eventBus.on([\n 'shape.added',\n 'connection.added',\n 'shape.removed',\n 'connection.removed',\n 'elements.changed'\n ], function() {\n delete this._cachedViewbox;\n }, this);\n\n eventBus.on('diagram.destroy', 500, this._destroy, this);\n eventBus.on('diagram.clear', 500, this._clear, this);\n};\n\nCanvas.prototype._destroy = function(emit) {\n this._eventBus.fire('canvas.destroy', {\n svg: this._svg,\n viewport: this._viewport\n });\n\n var parent = this._container.parentNode;\n\n if (parent) {\n parent.removeChild(this._container);\n }\n\n delete this._svg;\n delete this._container;\n delete this._layers;\n delete this._rootElement;\n delete this._viewport;\n};\n\nCanvas.prototype._clear = function() {\n\n var self = this;\n\n var allElements = this._elementRegistry.getAll();\n\n // remove all elements\n allElements.forEach(function(element) {\n var type = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getType)(element);\n\n if (type === 'root') {\n self.setRootElement(null, true);\n } else {\n self._removeElement(element, type);\n }\n });\n\n // force recomputation of view box\n delete this._cachedViewbox;\n};\n\n/**\n * Returns the default layer on which\n * all elements are drawn.\n *\n * @returns {SVGElement}\n */\nCanvas.prototype.getDefaultLayer = function() {\n return this.getLayer(BASE_LAYER, 0);\n};\n\n/**\n * Returns a layer that is used to draw elements\n * or annotations on it.\n *\n * Non-existing layers retrieved through this method\n * will be created. During creation, the optional index\n * may be used to create layers below or above existing layers.\n * A layer with a certain index is always created above all\n * existing layers with the same index.\n *\n * @param {string} name\n * @param {number} index\n *\n * @returns {SVGElement}\n */\nCanvas.prototype.getLayer = function(name, index) {\n\n if (!name) {\n throw new Error('must specify a name');\n }\n\n var layer = this._layers[name];\n\n if (!layer) {\n layer = this._layers[name] = this._createLayer(name, index);\n }\n\n // throw an error if layer creation / retrival is\n // requested on different index\n if (typeof index !== 'undefined' && layer.index !== index) {\n throw new Error('layer <' + name + '> already created at index <' + index + '>');\n }\n\n return layer.group;\n};\n\n/**\n * Creates a given layer and returns it.\n *\n * @param {string} name\n * @param {number} [index=0]\n *\n * @return {Object} layer descriptor with { index, group: SVGGroup }\n */\nCanvas.prototype._createLayer = function(name, index) {\n\n if (!index) {\n index = 0;\n }\n\n var childIndex = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(this._layers, function(childIndex, layer) {\n if (index >= layer.index) {\n childIndex++;\n }\n\n return childIndex;\n }, 0);\n\n return {\n group: createGroup(this._viewport, 'layer-' + name, childIndex),\n index: index\n };\n\n};\n\n/**\n * Returns the html element that encloses the\n * drawing canvas.\n *\n * @return {DOMNode}\n */\nCanvas.prototype.getContainer = function() {\n return this._container;\n};\n\n\n// markers //////////////////////\n\nCanvas.prototype._updateMarker = function(element, marker, add) {\n var container;\n\n if (!element.id) {\n element = this._elementRegistry.get(element);\n }\n\n // we need to access all\n container = this._elementRegistry._elements[element.id];\n\n if (!container) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ container.gfx, container.secondaryGfx ], function(gfx) {\n if (gfx) {\n\n // invoke either addClass or removeClass based on mode\n if (add) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add(marker);\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).remove(marker);\n }\n }\n });\n\n /**\n * An event indicating that a marker has been updated for an element\n *\n * @event element.marker.update\n * @type {Object}\n * @property {djs.model.Element} element the shape\n * @property {Object} gfx the graphical representation of the shape\n * @property {string} marker\n * @property {boolean} add true if the marker was added, false if it got removed\n */\n this._eventBus.fire('element.marker.update', { element: element, gfx: container.gfx, marker: marker, add: !!add });\n};\n\n\n/**\n * Adds a marker to an element (basically a css class).\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @example\n * canvas.addMarker('foo', 'some-marker');\n *\n * var fooGfx = canvas.getGraphics('foo');\n *\n * fooGfx; // ... \n *\n * @param {string|djs.model.Base} element\n * @param {string} marker\n */\nCanvas.prototype.addMarker = function(element, marker) {\n this._updateMarker(element, marker, true);\n};\n\n\n/**\n * Remove a marker from an element.\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @param {string|djs.model.Base} element\n * @param {string} marker\n */\nCanvas.prototype.removeMarker = function(element, marker) {\n this._updateMarker(element, marker, false);\n};\n\n/**\n * Check the existence of a marker on element.\n *\n * @param {string|djs.model.Base} element\n * @param {string} marker\n */\nCanvas.prototype.hasMarker = function(element, marker) {\n if (!element.id) {\n element = this._elementRegistry.get(element);\n }\n\n var gfx = this.getGraphics(element);\n\n return (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).has(marker);\n};\n\n/**\n * Toggles a marker on an element.\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @param {string|djs.model.Base} element\n * @param {string} marker\n */\nCanvas.prototype.toggleMarker = function(element, marker) {\n if (this.hasMarker(element, marker)) {\n this.removeMarker(element, marker);\n } else {\n this.addMarker(element, marker);\n }\n};\n\nCanvas.prototype.getRootElement = function() {\n if (!this._rootElement) {\n this.setRootElement({ id: '__implicitroot', children: [] });\n }\n\n return this._rootElement;\n};\n\n\n\n// root element handling //////////////////////\n\n/**\n * Sets a given element as the new root element for the canvas\n * and returns the new root element.\n *\n * @param {Object|djs.model.Root} element\n * @param {boolean} [override] whether to override the current root element, if any\n *\n * @return {Object|djs.model.Root} new root element\n */\nCanvas.prototype.setRootElement = function(element, override) {\n\n if (element) {\n this._ensureValid('root', element);\n }\n\n var currentRoot = this._rootElement,\n elementRegistry = this._elementRegistry,\n eventBus = this._eventBus;\n\n if (currentRoot) {\n if (!override) {\n throw new Error('rootElement already set, need to specify override');\n }\n\n // simulate element remove event sequence\n eventBus.fire('root.remove', { element: currentRoot });\n eventBus.fire('root.removed', { element: currentRoot });\n\n elementRegistry.remove(currentRoot);\n }\n\n if (element) {\n var gfx = this.getDefaultLayer();\n\n // resemble element add event sequence\n eventBus.fire('root.add', { element: element });\n\n elementRegistry.add(element, gfx, this._svg);\n\n eventBus.fire('root.added', { element: element, gfx: gfx });\n }\n\n this._rootElement = element;\n\n return element;\n};\n\n\n\n// add functionality //////////////////////\n\nCanvas.prototype._ensureValid = function(type, element) {\n if (!element.id) {\n throw new Error('element must have an id');\n }\n\n if (this._elementRegistry.get(element.id)) {\n throw new Error('element with id ' + element.id + ' already exists');\n }\n\n var requiredAttrs = REQUIRED_MODEL_ATTRS[type];\n\n var valid = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(requiredAttrs, function(attr) {\n return typeof element[attr] !== 'undefined';\n });\n\n if (!valid) {\n throw new Error(\n 'must supply { ' + requiredAttrs.join(', ') + ' } with ' + type);\n }\n};\n\nCanvas.prototype._setParent = function(element, parent, parentIndex) {\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(parent.children, element, parentIndex);\n element.parent = parent;\n};\n\n/**\n * Adds an element to the canvas.\n *\n * This wires the parent <-> child relationship between the element and\n * a explicitly specified parent or an implicit root element.\n *\n * During add it emits the events\n *\n * * <{type}.add> (element, parent)\n * * <{type}.added> (element, gfx)\n *\n * Extensions may hook into these events to perform their magic.\n *\n * @param {string} type\n * @param {Object|djs.model.Base} element\n * @param {Object|djs.model.Base} [parent]\n * @param {number} [parentIndex]\n *\n * @return {Object|djs.model.Base} the added element\n */\nCanvas.prototype._addElement = function(type, element, parent, parentIndex) {\n\n parent = parent || this.getRootElement();\n\n var eventBus = this._eventBus,\n graphicsFactory = this._graphicsFactory;\n\n this._ensureValid(type, element);\n\n eventBus.fire(type + '.add', { element: element, parent: parent });\n\n this._setParent(element, parent, parentIndex);\n\n // create graphics\n var gfx = graphicsFactory.create(type, element, parentIndex);\n\n this._elementRegistry.add(element, gfx);\n\n // update its visual\n graphicsFactory.update(type, element, gfx);\n\n eventBus.fire(type + '.added', { element: element, gfx: gfx });\n\n return element;\n};\n\n/**\n * Adds a shape to the canvas\n *\n * @param {Object|djs.model.Shape} shape to add to the diagram\n * @param {djs.model.Base} [parent]\n * @param {number} [parentIndex]\n *\n * @return {djs.model.Shape} the added shape\n */\nCanvas.prototype.addShape = function(shape, parent, parentIndex) {\n return this._addElement('shape', shape, parent, parentIndex);\n};\n\n/**\n * Adds a connection to the canvas\n *\n * @param {Object|djs.model.Connection} connection to add to the diagram\n * @param {djs.model.Base} [parent]\n * @param {number} [parentIndex]\n *\n * @return {djs.model.Connection} the added connection\n */\nCanvas.prototype.addConnection = function(connection, parent, parentIndex) {\n return this._addElement('connection', connection, parent, parentIndex);\n};\n\n\n/**\n * Internal remove element\n */\nCanvas.prototype._removeElement = function(element, type) {\n\n var elementRegistry = this._elementRegistry,\n graphicsFactory = this._graphicsFactory,\n eventBus = this._eventBus;\n\n element = elementRegistry.get(element.id || element);\n\n if (!element) {\n\n // element was removed already\n return;\n }\n\n eventBus.fire(type + '.remove', { element: element });\n\n graphicsFactory.remove(element);\n\n // unset parent <-> child relationship\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(element.parent && element.parent.children, element);\n element.parent = null;\n\n eventBus.fire(type + '.removed', { element: element });\n\n elementRegistry.remove(element);\n\n return element;\n};\n\n\n/**\n * Removes a shape from the canvas\n *\n * @param {string|djs.model.Shape} shape or shape id to be removed\n *\n * @return {djs.model.Shape} the removed shape\n */\nCanvas.prototype.removeShape = function(shape) {\n\n /**\n * An event indicating that a shape is about to be removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event shape.remove\n * @type {Object}\n * @property {djs.model.Shape} element the shape descriptor\n * @property {Object} gfx the graphical representation of the shape\n */\n\n /**\n * An event indicating that a shape has been removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event shape.removed\n * @type {Object}\n * @property {djs.model.Shape} element the shape descriptor\n * @property {Object} gfx the graphical representation of the shape\n */\n return this._removeElement(shape, 'shape');\n};\n\n\n/**\n * Removes a connection from the canvas\n *\n * @param {string|djs.model.Connection} connection or connection id to be removed\n *\n * @return {djs.model.Connection} the removed connection\n */\nCanvas.prototype.removeConnection = function(connection) {\n\n /**\n * An event indicating that a connection is about to be removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event connection.remove\n * @type {Object}\n * @property {djs.model.Connection} element the connection descriptor\n * @property {Object} gfx the graphical representation of the connection\n */\n\n /**\n * An event indicating that a connection has been removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event connection.removed\n * @type {Object}\n * @property {djs.model.Connection} element the connection descriptor\n * @property {Object} gfx the graphical representation of the connection\n */\n return this._removeElement(connection, 'connection');\n};\n\n\n/**\n * Return the graphical object underlaying a certain diagram element\n *\n * @param {string|djs.model.Base} element descriptor of the element\n * @param {boolean} [secondary=false] whether to return the secondary connected element\n *\n * @return {SVGElement}\n */\nCanvas.prototype.getGraphics = function(element, secondary) {\n return this._elementRegistry.getGraphics(element, secondary);\n};\n\n\n/**\n * Perform a viewbox update via a given change function.\n *\n * @param {Function} changeFn\n */\nCanvas.prototype._changeViewbox = function(changeFn) {\n\n // notify others of the upcoming viewbox change\n this._eventBus.fire('canvas.viewbox.changing');\n\n // perform actual change\n changeFn.apply(this);\n\n // reset the cached viewbox so that\n // a new get operation on viewbox or zoom\n // triggers a viewbox re-computation\n this._cachedViewbox = null;\n\n // notify others of the change; this step\n // may or may not be debounced\n this._viewboxChanged();\n};\n\nCanvas.prototype._viewboxChanged = function() {\n this._eventBus.fire('canvas.viewbox.changed', { viewbox: this.viewbox() });\n};\n\n\n/**\n * Gets or sets the view box of the canvas, i.e. the\n * area that is currently displayed.\n *\n * The getter may return a cached viewbox (if it is currently\n * changing). To force a recomputation, pass `false` as the first argument.\n *\n * @example\n *\n * canvas.viewbox({ x: 100, y: 100, width: 500, height: 500 })\n *\n * // sets the visible area of the diagram to (100|100) -> (600|100)\n * // and and scales it according to the diagram width\n *\n * var viewbox = canvas.viewbox(); // pass `false` to force recomputing the box.\n *\n * console.log(viewbox);\n * // {\n * // inner: Dimensions,\n * // outer: Dimensions,\n * // scale,\n * // x, y,\n * // width, height\n * // }\n *\n * // if the current diagram is zoomed and scrolled, you may reset it to the\n * // default zoom via this method, too:\n *\n * var zoomedAndScrolledViewbox = canvas.viewbox();\n *\n * canvas.viewbox({\n * x: 0,\n * y: 0,\n * width: zoomedAndScrolledViewbox.outer.width,\n * height: zoomedAndScrolledViewbox.outer.height\n * });\n *\n * @param {Object} [box] the new view box to set\n * @param {number} box.x the top left X coordinate of the canvas visible in view box\n * @param {number} box.y the top left Y coordinate of the canvas visible in view box\n * @param {number} box.width the visible width\n * @param {number} box.height\n *\n * @return {Object} the current view box\n */\nCanvas.prototype.viewbox = function(box) {\n\n if (box === undefined && this._cachedViewbox) {\n return this._cachedViewbox;\n }\n\n var viewport = this._viewport,\n innerBox,\n outerBox = this.getSize(),\n matrix,\n transform,\n scale,\n x, y;\n\n if (!box) {\n\n // compute the inner box based on the\n // diagrams default layer. This allows us to exclude\n // external components, such as overlays\n innerBox = this.getDefaultLayer().getBBox();\n\n transform = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.transform)(viewport);\n matrix = transform ? transform.matrix : (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.createMatrix)();\n scale = round(matrix.a, 1000);\n\n x = round(-matrix.e || 0, 1000);\n y = round(-matrix.f || 0, 1000);\n\n box = this._cachedViewbox = {\n x: x ? x / scale : 0,\n y: y ? y / scale : 0,\n width: outerBox.width / scale,\n height: outerBox.height / scale,\n scale: scale,\n inner: {\n width: innerBox.width,\n height: innerBox.height,\n x: innerBox.x,\n y: innerBox.y\n },\n outer: outerBox\n };\n\n return box;\n } else {\n\n this._changeViewbox(function() {\n scale = Math.min(outerBox.width / box.width, outerBox.height / box.height);\n\n var matrix = this._svg.createSVGMatrix()\n .scale(scale)\n .translate(-box.x, -box.y);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.transform)(viewport, matrix);\n });\n }\n\n return box;\n};\n\n\n/**\n * Gets or sets the scroll of the canvas.\n *\n * @param {Object} [delta] the new scroll to apply.\n *\n * @param {number} [delta.dx]\n * @param {number} [delta.dy]\n */\nCanvas.prototype.scroll = function(delta) {\n\n var node = this._viewport;\n var matrix = node.getCTM();\n\n if (delta) {\n this._changeViewbox(function() {\n delta = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ dx: 0, dy: 0 }, delta || {});\n\n matrix = this._svg.createSVGMatrix().translate(delta.dx, delta.dy).multiply(matrix);\n\n setCTM(node, matrix);\n });\n }\n\n return { x: matrix.e, y: matrix.f };\n};\n\n/**\n * Scrolls the viewbox to contain the given element.\n * Optionally specify a padding to be applied to the edges.\n *\n * @param {Object} [element] the element to scroll to.\n * @param {Object|Number} [padding=100] the padding to be applied. Can also specify top, bottom, left and right.\n *\n */\nCanvas.prototype.scrollToElement = function(element, padding) {\n var defaultPadding = 100;\n if (!padding) {\n padding = {};\n }\n if (typeof padding === 'number') {\n defaultPadding = padding;\n }\n\n padding = {\n top: padding.top || defaultPadding,\n right: padding.right || defaultPadding,\n bottom: padding.bottom || defaultPadding,\n left: padding.left || defaultPadding\n };\n\n var elementBounds = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(element),\n elementTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.asTRBL)(elementBounds),\n viewboxBounds = this.viewbox(),\n zoom = this.zoom(),\n dx, dy;\n\n // Shrink viewboxBounds with padding\n viewboxBounds.y += padding.top / zoom;\n viewboxBounds.x += padding.left / zoom;\n viewboxBounds.width -= (padding.right + padding.left) / zoom;\n viewboxBounds.height -= (padding.bottom + padding.top) / zoom;\n\n var viewboxTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.asTRBL)(viewboxBounds);\n\n var canFit = elementBounds.width < viewboxBounds.width && elementBounds.height < viewboxBounds.height;\n\n if (!canFit) {\n\n // top-left when element can't fit\n dx = elementBounds.x - viewboxBounds.x;\n dy = elementBounds.y - viewboxBounds.y;\n\n } else {\n\n var dRight = Math.max(0, elementTrbl.right - viewboxTrbl.right),\n dLeft = Math.min(0, elementTrbl.left - viewboxTrbl.left),\n dBottom = Math.max(0, elementTrbl.bottom - viewboxTrbl.bottom),\n dTop = Math.min(0, elementTrbl.top - viewboxTrbl.top);\n\n dx = dRight || dLeft;\n dy = dBottom || dTop;\n\n }\n\n this.scroll({ dx: -dx * zoom, dy: -dy * zoom });\n};\n\n/**\n * Gets or sets the current zoom of the canvas, optionally zooming\n * to the specified position.\n *\n * The getter may return a cached zoom level. Call it with `false` as\n * the first argument to force recomputation of the current level.\n *\n * @param {string|number} [newScale] the new zoom level, either a number, i.e. 0.9,\n * or `fit-viewport` to adjust the size to fit the current viewport\n * @param {string|Point} [center] the reference point { x: .., y: ..} to zoom to, 'auto' to zoom into mid or null\n *\n * @return {number} the current scale\n */\nCanvas.prototype.zoom = function(newScale, center) {\n\n if (!newScale) {\n return this.viewbox(newScale).scale;\n }\n\n if (newScale === 'fit-viewport') {\n return this._fitViewport(center);\n }\n\n var outer,\n matrix;\n\n this._changeViewbox(function() {\n\n if (typeof center !== 'object') {\n outer = this.viewbox().outer;\n\n center = {\n x: outer.width / 2,\n y: outer.height / 2\n };\n }\n\n matrix = this._setZoom(newScale, center);\n });\n\n return round(matrix.a, 1000);\n};\n\nfunction setCTM(node, m) {\n var mstr = 'matrix(' + m.a + ',' + m.b + ',' + m.c + ',' + m.d + ',' + m.e + ',' + m.f + ')';\n node.setAttribute('transform', mstr);\n}\n\nCanvas.prototype._fitViewport = function(center) {\n\n var vbox = this.viewbox(),\n outer = vbox.outer,\n inner = vbox.inner,\n newScale,\n newViewbox;\n\n // display the complete diagram without zooming in.\n // instead of relying on internal zoom, we perform a\n // hard reset on the canvas viewbox to realize this\n //\n // if diagram does not need to be zoomed in, we focus it around\n // the diagram origin instead\n\n if (inner.x >= 0 &&\n inner.y >= 0 &&\n inner.x + inner.width <= outer.width &&\n inner.y + inner.height <= outer.height &&\n !center) {\n\n newViewbox = {\n x: 0,\n y: 0,\n width: Math.max(inner.width + inner.x, outer.width),\n height: Math.max(inner.height + inner.y, outer.height)\n };\n } else {\n\n newScale = Math.min(1, outer.width / inner.width, outer.height / inner.height);\n newViewbox = {\n x: inner.x + (center ? inner.width / 2 - outer.width / newScale / 2 : 0),\n y: inner.y + (center ? inner.height / 2 - outer.height / newScale / 2 : 0),\n width: outer.width / newScale,\n height: outer.height / newScale\n };\n }\n\n this.viewbox(newViewbox);\n\n return this.viewbox(false).scale;\n};\n\n\nCanvas.prototype._setZoom = function(scale, center) {\n\n var svg = this._svg,\n viewport = this._viewport;\n\n var matrix = svg.createSVGMatrix();\n var point = svg.createSVGPoint();\n\n var centerPoint,\n originalPoint,\n currentMatrix,\n scaleMatrix,\n newMatrix;\n\n currentMatrix = viewport.getCTM();\n\n var currentScale = currentMatrix.a;\n\n if (center) {\n centerPoint = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(point, center);\n\n // revert applied viewport transformations\n originalPoint = centerPoint.matrixTransform(currentMatrix.inverse());\n\n // create scale matrix\n scaleMatrix = matrix\n .translate(originalPoint.x, originalPoint.y)\n .scale(1 / currentScale * scale)\n .translate(-originalPoint.x, -originalPoint.y);\n\n newMatrix = currentMatrix.multiply(scaleMatrix);\n } else {\n newMatrix = matrix.scale(scale);\n }\n\n setCTM(this._viewport, newMatrix);\n\n return newMatrix;\n};\n\n\n/**\n * Returns the size of the canvas\n *\n * @return {Dimensions}\n */\nCanvas.prototype.getSize = function() {\n return {\n width: this._container.clientWidth,\n height: this._container.clientHeight\n };\n};\n\n\n/**\n * Return the absolute bounding box for the given element\n *\n * The absolute bounding box may be used to display overlays in the\n * callers (browser) coordinate system rather than the zoomed in/out\n * canvas coordinates.\n *\n * @param {ElementDescriptor} element\n * @return {Bounds} the absolute bounding box\n */\nCanvas.prototype.getAbsoluteBBox = function(element) {\n var vbox = this.viewbox();\n var bbox;\n\n // connection\n // use svg bbox\n if (element.waypoints) {\n var gfx = this.getGraphics(element);\n\n bbox = gfx.getBBox();\n }\n\n // shapes\n // use data\n else {\n bbox = element;\n }\n\n var x = bbox.x * vbox.scale - vbox.x * vbox.scale;\n var y = bbox.y * vbox.scale - vbox.y * vbox.scale;\n\n var width = bbox.width * vbox.scale;\n var height = bbox.height * vbox.scale;\n\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n};\n\n/**\n * Fires an event in order other modules can react to the\n * canvas resizing\n */\nCanvas.prototype.resized = function() {\n\n // force recomputation of view box\n delete this._cachedViewbox;\n\n this._eventBus.fire('canvas.resized');\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/Canvas.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/core/ElementFactory.js": /*!************************************************************!*\ !*** ./node_modules/diagram-js/lib/core/ElementFactory.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ElementFactory)\n/* harmony export */ });\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../model */ \"./node_modules/diagram-js/lib/model/index.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n/**\n * A factory for diagram-js shapes\n */\nfunction ElementFactory() {\n this._uid = 12;\n}\n\n\nElementFactory.prototype.createRoot = function(attrs) {\n return this.create('root', attrs);\n};\n\nElementFactory.prototype.createLabel = function(attrs) {\n return this.create('label', attrs);\n};\n\nElementFactory.prototype.createShape = function(attrs) {\n return this.create('shape', attrs);\n};\n\nElementFactory.prototype.createConnection = function(attrs) {\n return this.create('connection', attrs);\n};\n\n/**\n * Create a model element with the given type and\n * a number of pre-set attributes.\n *\n * @param {string} type\n * @param {Object} attrs\n * @return {djs.model.Base} the newly created model instance\n */\nElementFactory.prototype.create = function(type, attrs) {\n\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, attrs || {});\n\n if (!attrs.id) {\n attrs.id = type + '_' + (this._uid++);\n }\n\n return (0,_model__WEBPACK_IMPORTED_MODULE_1__.create)(type, attrs);\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/ElementFactory.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/core/ElementRegistry.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/core/ElementRegistry.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ElementRegistry)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\nvar ELEMENT_ID = 'data-element-id';\n\n\n\n\n/**\n * @class\n *\n * A registry that keeps track of all shapes in the diagram.\n */\nfunction ElementRegistry(eventBus) {\n this._elements = {};\n\n this._eventBus = eventBus;\n}\n\nElementRegistry.$inject = [ 'eventBus' ];\n\n/**\n * Register a pair of (element, gfx, (secondaryGfx)).\n *\n * @param {djs.model.Base} element\n * @param {SVGElement} gfx\n * @param {SVGElement} [secondaryGfx] optional other element to register, too\n */\nElementRegistry.prototype.add = function(element, gfx, secondaryGfx) {\n\n var id = element.id;\n\n this._validateId(id);\n\n // associate dom node with element\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(gfx, ELEMENT_ID, id);\n\n if (secondaryGfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(secondaryGfx, ELEMENT_ID, id);\n }\n\n this._elements[id] = { element: element, gfx: gfx, secondaryGfx: secondaryGfx };\n};\n\n/**\n * Removes an element from the registry.\n *\n * @param {djs.model.Base} element\n */\nElementRegistry.prototype.remove = function(element) {\n var elements = this._elements,\n id = element.id || element,\n container = id && elements[id];\n\n if (container) {\n\n // unset element id on gfx\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(container.gfx, ELEMENT_ID, '');\n\n if (container.secondaryGfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(container.secondaryGfx, ELEMENT_ID, '');\n }\n\n delete elements[id];\n }\n};\n\n/**\n * Update the id of an element\n *\n * @param {djs.model.Base} element\n * @param {string} newId\n */\nElementRegistry.prototype.updateId = function(element, newId) {\n\n this._validateId(newId);\n\n if (typeof element === 'string') {\n element = this.get(element);\n }\n\n this._eventBus.fire('element.updateId', {\n element: element,\n newId: newId\n });\n\n var gfx = this.getGraphics(element),\n secondaryGfx = this.getGraphics(element, true);\n\n this.remove(element);\n\n element.id = newId;\n\n this.add(element, gfx, secondaryGfx);\n};\n\n/**\n * Return the model element for a given id or graphics.\n *\n * @example\n *\n * elementRegistry.get('SomeElementId_1');\n * elementRegistry.get(gfx);\n *\n *\n * @param {string|SVGElement} filter for selecting the element\n *\n * @return {djs.model.Base}\n */\nElementRegistry.prototype.get = function(filter) {\n var id;\n\n if (typeof filter === 'string') {\n id = filter;\n } else {\n id = filter && (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(filter, ELEMENT_ID);\n }\n\n var container = this._elements[id];\n return container && container.element;\n};\n\n/**\n * Return all elements that match a given filter function.\n *\n * @param {Function} fn\n *\n * @return {Array}\n */\nElementRegistry.prototype.filter = function(fn) {\n\n var filtered = [];\n\n this.forEach(function(element, gfx) {\n if (fn(element, gfx)) {\n filtered.push(element);\n }\n });\n\n return filtered;\n};\n\n/**\n * Return the first element that satisfies the provided testing function.\n *\n * @param {Function} fn\n *\n * @return {djs.model.Base}\n */\nElementRegistry.prototype.find = function(fn) {\n var map = this._elements,\n keys = Object.keys(map);\n\n for (var i = 0; i < keys.length; i++) {\n var id = keys[i],\n container = map[id],\n element = container.element,\n gfx = container.gfx;\n\n if (fn(element, gfx)) {\n return element;\n }\n }\n};\n\n/**\n * Return all rendered model elements.\n *\n * @return {Array}\n */\nElementRegistry.prototype.getAll = function() {\n return this.filter(function(e) { return e; });\n};\n\n/**\n * Iterate over all diagram elements.\n *\n * @param {Function} fn\n */\nElementRegistry.prototype.forEach = function(fn) {\n\n var map = this._elements;\n\n Object.keys(map).forEach(function(id) {\n var container = map[id],\n element = container.element,\n gfx = container.gfx;\n\n return fn(element, gfx);\n });\n};\n\n/**\n * Return the graphical representation of an element or its id.\n *\n * @example\n * elementRegistry.getGraphics('SomeElementId_1');\n * elementRegistry.getGraphics(rootElement); // \n *\n * elementRegistry.getGraphics(rootElement, true); // \n *\n *\n * @param {string|djs.model.Base} filter\n * @param {boolean} [secondary=false] whether to return the secondary connected element\n *\n * @return {SVGElement}\n */\nElementRegistry.prototype.getGraphics = function(filter, secondary) {\n var id = filter.id || filter;\n\n var container = this._elements[id];\n return container && (secondary ? container.secondaryGfx : container.gfx);\n};\n\n/**\n * Validate the suitability of the given id and signals a problem\n * with an exception.\n *\n * @param {string} id\n *\n * @throws {Error} if id is empty or already assigned\n */\nElementRegistry.prototype._validateId = function(id) {\n if (!id) {\n throw new Error('element must have an id');\n }\n\n if (this._elements[id]) {\n throw new Error('element with id ' + id + ' already added');\n }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/ElementRegistry.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/core/EventBus.js": /*!******************************************************!*\ !*** ./node_modules/diagram-js/lib/core/EventBus.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EventBus)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar FN_REF = '__fn';\n\nvar DEFAULT_PRIORITY = 1000;\n\nvar slice = Array.prototype.slice;\n\n/**\n * A general purpose event bus.\n *\n * This component is used to communicate across a diagram instance.\n * Other parts of a diagram can use it to listen to and broadcast events.\n *\n *\n * ## Registering for Events\n *\n * The event bus provides the {@link EventBus#on} and {@link EventBus#once}\n * methods to register for events. {@link EventBus#off} can be used to\n * remove event registrations. Listeners receive an instance of {@link Event}\n * as the first argument. It allows them to hook into the event execution.\n *\n * ```javascript\n *\n * // listen for event\n * eventBus.on('foo', function(event) {\n *\n * // access event type\n * event.type; // 'foo'\n *\n * // stop propagation to other listeners\n * event.stopPropagation();\n *\n * // prevent event default\n * event.preventDefault();\n * });\n *\n * // listen for event with custom payload\n * eventBus.on('bar', function(event, payload) {\n * console.log(payload);\n * });\n *\n * // listen for event returning value\n * eventBus.on('foobar', function(event) {\n *\n * // stop event propagation + prevent default\n * return false;\n *\n * // stop event propagation + return custom result\n * return {\n * complex: 'listening result'\n * };\n * });\n *\n *\n * // listen with custom priority (default=1000, higher is better)\n * eventBus.on('priorityfoo', 1500, function(event) {\n * console.log('invoked first!');\n * });\n *\n *\n * // listen for event and pass the context (`this`)\n * eventBus.on('foobar', function(event) {\n * this.foo();\n * }, this);\n * ```\n *\n *\n * ## Emitting Events\n *\n * Events can be emitted via the event bus using {@link EventBus#fire}.\n *\n * ```javascript\n *\n * // false indicates that the default action\n * // was prevented by listeners\n * if (eventBus.fire('foo') === false) {\n * console.log('default has been prevented!');\n * };\n *\n *\n * // custom args + return value listener\n * eventBus.on('sum', function(event, a, b) {\n * return a + b;\n * });\n *\n * // you can pass custom arguments + retrieve result values.\n * var sum = eventBus.fire('sum', 1, 2);\n * console.log(sum); // 3\n * ```\n */\nfunction EventBus() {\n this._listeners = {};\n\n // cleanup on destroy on lowest priority to allow\n // message passing until the bitter end\n this.on('diagram.destroy', 1, this._destroy, this);\n}\n\n\n/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @param {string|Array} events\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback\n * @param {Object} [that] Pass context (`this`) to the callback\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n events = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(events) ? events : [ events ];\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(priority)) {\n throw new Error('priority must be a number');\n }\n\n var actualCallback = callback;\n\n if (that) {\n actualCallback = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(callback, that);\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n actualCallback[FN_REF] = callback[FN_REF] || callback;\n }\n\n var self = this;\n\n events.forEach(function(e) {\n self._addListener(e, {\n priority: priority,\n callback: actualCallback,\n next: null\n });\n });\n};\n\n\n/**\n * Register an event listener that is executed only once.\n *\n * @param {string} event the event name to register for\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback the callback to execute\n * @param {Object} [that] Pass context (`this`) to the callback\n */\nEventBus.prototype.once = function(event, priority, callback, that) {\n var self = this;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(priority)) {\n that = callback;\n callback = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(priority)) {\n throw new Error('priority must be a number');\n }\n\n function wrappedCallback() {\n wrappedCallback.__isTomb = true;\n\n var result = callback.apply(that, arguments);\n\n self.off(event, wrappedCallback);\n\n return result;\n }\n\n // make sure we remember and are able to remove\n // bound callbacks via {@link #off} using the original\n // callback\n wrappedCallback[FN_REF] = callback;\n\n this.on(event, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|Array} events\n * @param {Function} [callback]\n */\nEventBus.prototype.off = function(events, callback) {\n\n events = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(events) ? events : [ events ];\n\n var self = this;\n\n events.forEach(function(event) {\n self._removeListener(event, callback);\n });\n\n};\n\n\n/**\n * Create an EventBus event.\n *\n * @param {Object} data\n *\n * @return {Object} event, recognized by the eventBus\n */\nEventBus.prototype.createEvent = function(data) {\n var event = new InternalEvent();\n\n event.init(data);\n\n return event;\n};\n\n\n/**\n * Fires a named event.\n *\n * @example\n *\n * // fire event by name\n * events.fire('foo');\n *\n * // fire event object with nested type\n * var event = { type: 'foo' };\n * events.fire(event);\n *\n * // fire event with explicit type\n * var event = { x: 10, y: 20 };\n * events.fire('element.moved', event);\n *\n * // pass additional arguments to the event\n * events.on('foo', function(event, bar) {\n * alert(bar);\n * });\n *\n * events.fire({ type: 'foo' }, 'I am bar!');\n *\n * @param {string} [name] the optional event name\n * @param {Object} [event] the event object\n * @param {...Object} additional arguments to be passed to the callback functions\n *\n * @return {boolean} the events return value, if specified or false if the\n * default action was prevented by listeners\n */\nEventBus.prototype.fire = function(type, data) {\n var event,\n firstListener,\n returnValue,\n args;\n\n args = slice.call(arguments);\n\n if (typeof type === 'object') {\n data = type;\n type = data.type;\n }\n\n if (!type) {\n throw new Error('no event type specified');\n }\n\n firstListener = this._listeners[type];\n\n if (!firstListener) {\n return;\n }\n\n // we make sure we fire instances of our home made\n // events here. We wrap them only once, though\n if (data instanceof InternalEvent) {\n\n // we are fine, we alread have an event\n event = data;\n } else {\n event = this.createEvent(data);\n }\n\n // ensure we pass the event as the first parameter\n args[0] = event;\n\n // original event type (in case we delegate)\n var originalType = event.type;\n\n // update event type before delegation\n if (type !== originalType) {\n event.type = type;\n }\n\n try {\n returnValue = this._invokeListeners(event, args, firstListener);\n } finally {\n\n // reset event type after delegation\n if (type !== originalType) {\n event.type = originalType;\n }\n }\n\n // set the return value to false if the event default\n // got prevented and no other return value exists\n if (returnValue === undefined && event.defaultPrevented) {\n returnValue = false;\n }\n\n return returnValue;\n};\n\n\nEventBus.prototype.handleError = function(error) {\n return this.fire('error', { error: error }) === false;\n};\n\n\nEventBus.prototype._destroy = function() {\n this._listeners = {};\n};\n\nEventBus.prototype._invokeListeners = function(event, args, listener) {\n\n var returnValue;\n\n while (listener) {\n\n // handle stopped propagation\n if (event.cancelBubble) {\n break;\n }\n\n returnValue = this._invokeListener(event, args, listener);\n\n listener = listener.next;\n }\n\n return returnValue;\n};\n\nEventBus.prototype._invokeListener = function(event, args, listener) {\n\n var returnValue;\n\n if (listener.callback.__isTomb) {\n return returnValue;\n }\n\n try {\n\n // returning false prevents the default action\n returnValue = invokeFunction(listener.callback, args);\n\n // stop propagation on return value\n if (returnValue !== undefined) {\n event.returnValue = returnValue;\n event.stopPropagation();\n }\n\n // prevent default on return false\n if (returnValue === false) {\n event.preventDefault();\n }\n } catch (e) {\n if (!this.handleError(e)) {\n console.error('unhandled error in event listener');\n console.error(e.stack);\n\n throw e;\n }\n }\n\n return returnValue;\n};\n\n/*\n * Add new listener with a certain priority to the list\n * of listeners (for the given event).\n *\n * The semantics of listener registration / listener execution are\n * first register, first serve: New listeners will always be inserted\n * after existing listeners with the same priority.\n *\n * Example: Inserting two listeners with priority 1000 and 1300\n *\n * * before: [ 1500, 1500, 1000, 1000 ]\n * * after: [ 1500, 1500, (new=1300), 1000, 1000, (new=1000) ]\n *\n * @param {string} event\n * @param {Object} listener { priority, callback }\n */\nEventBus.prototype._addListener = function(event, newListener) {\n\n var listener = this._getListeners(event),\n previousListener;\n\n // no prior listeners\n if (!listener) {\n this._setListeners(event, newListener);\n\n return;\n }\n\n // ensure we order listeners by priority from\n // 0 (high) to n > 0 (low)\n while (listener) {\n\n if (listener.priority < newListener.priority) {\n\n newListener.next = listener;\n\n if (previousListener) {\n previousListener.next = newListener;\n } else {\n this._setListeners(event, newListener);\n }\n\n return;\n }\n\n previousListener = listener;\n listener = listener.next;\n }\n\n // add new listener to back\n previousListener.next = newListener;\n};\n\n\nEventBus.prototype._getListeners = function(name) {\n return this._listeners[name];\n};\n\nEventBus.prototype._setListeners = function(name, listener) {\n this._listeners[name] = listener;\n};\n\nEventBus.prototype._removeListener = function(event, callback) {\n\n var listener = this._getListeners(event),\n nextListener,\n previousListener,\n listenerCallback;\n\n if (!callback) {\n\n // clear listeners\n this._setListeners(event, null);\n\n return;\n }\n\n while (listener) {\n\n nextListener = listener.next;\n\n listenerCallback = listener.callback;\n\n if (listenerCallback === callback || listenerCallback[FN_REF] === callback) {\n if (previousListener) {\n previousListener.next = nextListener;\n } else {\n\n // new first listener\n this._setListeners(event, nextListener);\n }\n }\n\n previousListener = listener;\n listener = nextListener;\n }\n};\n\n/**\n * A event that is emitted via the event bus.\n */\nfunction InternalEvent() { }\n\nInternalEvent.prototype.stopPropagation = function() {\n this.cancelBubble = true;\n};\n\nInternalEvent.prototype.preventDefault = function() {\n this.defaultPrevented = true;\n};\n\nInternalEvent.prototype.init = function(data) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(this, data || {});\n};\n\n\n/**\n * Invoke function. Be fast...\n *\n * @param {Function} fn\n * @param {Array} args\n *\n * @return {Any}\n */\nfunction invokeFunction(fn, args) {\n return fn.apply(null, args);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/EventBus.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/core/GraphicsFactory.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/core/GraphicsFactory.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GraphicsFactory)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/GraphicsUtil */ \"./node_modules/diagram-js/lib/util/GraphicsUtil.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A factory that creates graphical elements\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n */\nfunction GraphicsFactory(eventBus, elementRegistry) {\n this._eventBus = eventBus;\n this._elementRegistry = elementRegistry;\n}\n\nGraphicsFactory.$inject = [ 'eventBus' , 'elementRegistry' ];\n\n\nGraphicsFactory.prototype._getChildrenContainer = function(element) {\n\n var gfx = this._elementRegistry.getGraphics(element);\n\n var childrenGfx;\n\n // root element\n if (!element.parent) {\n childrenGfx = gfx;\n } else {\n childrenGfx = (0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_0__.getChildren)(gfx);\n if (!childrenGfx) {\n childrenGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(childrenGfx).add('djs-children');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(gfx.parentNode, childrenGfx);\n }\n }\n\n return childrenGfx;\n};\n\n/**\n * Clears the graphical representation of the element and returns the\n * cleared visual (the element).\n */\nGraphicsFactory.prototype._clear = function(gfx) {\n var visual = (0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_0__.getVisual)(gfx);\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.clear)(visual);\n\n return visual;\n};\n\n/**\n * Creates a gfx container for shapes and connections\n *\n * The layout is as follows:\n *\n * \n *\n * \n * \n * \n * \n * \n *\n * \n * \n * \n *\n * @param {string} type the type of the element, i.e. shape | connection\n * @param {SVGElement} [childrenGfx]\n * @param {number} [parentIndex] position to create container in parent\n * @param {boolean} [isFrame] is frame element\n *\n * @return {SVGElement}\n */\nGraphicsFactory.prototype._createContainer = function(\n type, childrenGfx, parentIndex, isFrame\n) {\n var outerGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(outerGfx).add('djs-group');\n\n // insert node at position\n if (typeof parentIndex !== 'undefined') {\n prependTo(outerGfx, childrenGfx, childrenGfx.childNodes[parentIndex]);\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(childrenGfx, outerGfx);\n }\n\n var gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add('djs-element');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add('djs-' + type);\n\n if (isFrame) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add('djs-frame');\n }\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(outerGfx, gfx);\n\n // create visual\n var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(visual).add('djs-visual');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(gfx, visual);\n\n return gfx;\n};\n\nGraphicsFactory.prototype.create = function(type, element, parentIndex) {\n var childrenGfx = this._getChildrenContainer(element.parent);\n return this._createContainer(type, childrenGfx, parentIndex, (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.isFrameElement)(element));\n};\n\nGraphicsFactory.prototype.updateContainments = function(elements) {\n\n var self = this,\n elementRegistry = this._elementRegistry,\n parents;\n\n parents = (0,min_dash__WEBPACK_IMPORTED_MODULE_4__.reduce)(elements, function(map, e) {\n\n if (e.parent) {\n map[e.parent.id] = e.parent;\n }\n\n return map;\n }, {});\n\n // update all parents of changed and reorganized their children\n // in the correct order (as indicated in our model)\n (0,min_dash__WEBPACK_IMPORTED_MODULE_4__.forEach)(parents, function(parent) {\n\n var children = parent.children;\n\n if (!children) {\n return;\n }\n\n var childrenGfx = self._getChildrenContainer(parent);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_4__.forEach)(children.slice().reverse(), function(child) {\n var childGfx = elementRegistry.getGraphics(child);\n\n prependTo(childGfx.parentNode, childrenGfx);\n });\n });\n};\n\nGraphicsFactory.prototype.drawShape = function(visual, element) {\n var eventBus = this._eventBus;\n\n return eventBus.fire('render.shape', { gfx: visual, element: element });\n};\n\nGraphicsFactory.prototype.getShapePath = function(element) {\n var eventBus = this._eventBus;\n\n return eventBus.fire('render.getShapePath', element);\n};\n\nGraphicsFactory.prototype.drawConnection = function(visual, element) {\n var eventBus = this._eventBus;\n\n return eventBus.fire('render.connection', { gfx: visual, element: element });\n};\n\nGraphicsFactory.prototype.getConnectionPath = function(waypoints) {\n var eventBus = this._eventBus;\n\n return eventBus.fire('render.getConnectionPath', waypoints);\n};\n\nGraphicsFactory.prototype.update = function(type, element, gfx) {\n\n // do NOT update root element\n if (!element.parent) {\n return;\n }\n\n var visual = this._clear(gfx);\n\n // redraw\n if (type === 'shape') {\n this.drawShape(visual, element);\n\n // update positioning\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(gfx, element.x, element.y);\n } else\n if (type === 'connection') {\n this.drawConnection(visual, element);\n } else {\n throw new Error('unknown type: ' + type);\n }\n\n if (element.hidden) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, 'display', 'none');\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, 'display', 'block');\n }\n};\n\nGraphicsFactory.prototype.remove = function(element) {\n var gfx = this._elementRegistry.getGraphics(element);\n\n // remove\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(gfx.parentNode);\n};\n\n\n// helpers //////////\n\nfunction prependTo(newNode, parentNode, siblingNode) {\n var node = siblingNode || parentNode.firstChild;\n\n // do not prepend node to itself to prevent IE from crashing\n // https://github.com/bpmn-io/bpmn-js/issues/746\n if (newNode === node) {\n return;\n }\n\n parentNode.insertBefore(newNode, node);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/GraphicsFactory.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/core/index.js": /*!***************************************************!*\ !*** ./node_modules/diagram-js/lib/core/index.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _draw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../draw */ \"./node_modules/diagram-js/lib/draw/index.js\");\n/* harmony import */ var _Canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Canvas */ \"./node_modules/diagram-js/lib/core/Canvas.js\");\n/* harmony import */ var _ElementRegistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ElementRegistry */ \"./node_modules/diagram-js/lib/core/ElementRegistry.js\");\n/* harmony import */ var _ElementFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ElementFactory */ \"./node_modules/diagram-js/lib/core/ElementFactory.js\");\n/* harmony import */ var _EventBus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EventBus */ \"./node_modules/diagram-js/lib/core/EventBus.js\");\n/* harmony import */ var _GraphicsFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./GraphicsFactory */ \"./node_modules/diagram-js/lib/core/GraphicsFactory.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [ _draw__WEBPACK_IMPORTED_MODULE_0__.default ],\n __init__: [ 'canvas' ],\n canvas: [ 'type', _Canvas__WEBPACK_IMPORTED_MODULE_1__.default ],\n elementRegistry: [ 'type', _ElementRegistry__WEBPACK_IMPORTED_MODULE_2__.default ],\n elementFactory: [ 'type', _ElementFactory__WEBPACK_IMPORTED_MODULE_3__.default ],\n eventBus: [ 'type', _EventBus__WEBPACK_IMPORTED_MODULE_4__.default ],\n graphicsFactory: [ 'type', _GraphicsFactory__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/draw/BaseRenderer.js": /*!**********************************************************!*\ !*** ./node_modules/diagram-js/lib/draw/BaseRenderer.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BaseRenderer)\n/* harmony export */ });\nvar DEFAULT_RENDER_PRIORITY = 1000;\n\n/**\n * The base implementation of shape and connection renderers.\n *\n * @param {EventBus} eventBus\n * @param {number} [renderPriority=1000]\n */\nfunction BaseRenderer(eventBus, renderPriority) {\n var self = this;\n\n renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY;\n\n eventBus.on([ 'render.shape', 'render.connection' ], renderPriority, function(evt, context) {\n var type = evt.type,\n element = context.element,\n visuals = context.gfx;\n\n if (self.canRender(element)) {\n if (type === 'render.shape') {\n return self.drawShape(visuals, element);\n } else {\n return self.drawConnection(visuals, element);\n }\n }\n });\n\n eventBus.on([ 'render.getShapePath', 'render.getConnectionPath'], renderPriority, function(evt, element) {\n if (self.canRender(element)) {\n if (evt.type === 'render.getShapePath') {\n return self.getShapePath(element);\n } else {\n return self.getConnectionPath(element);\n }\n }\n });\n}\n\n/**\n * Should check whether *this* renderer can render\n * the element/connection.\n *\n * @param {element} element\n *\n * @returns {boolean}\n */\nBaseRenderer.prototype.canRender = function() {};\n\n/**\n * Provides the shape's snap svg element to be drawn on the `canvas`.\n *\n * @param {djs.Graphics} visuals\n * @param {Shape} shape\n *\n * @returns {Snap.svg} [returns a Snap.svg paper element ]\n */\nBaseRenderer.prototype.drawShape = function() {};\n\n/**\n * Provides the shape's snap svg element to be drawn on the `canvas`.\n *\n * @param {djs.Graphics} visuals\n * @param {Connection} connection\n *\n * @returns {Snap.svg} [returns a Snap.svg paper element ]\n */\nBaseRenderer.prototype.drawConnection = function() {};\n\n/**\n * Gets the SVG path of a shape that represents it's visual bounds.\n *\n * @param {Shape} shape\n *\n * @return {string} svg path\n */\nBaseRenderer.prototype.getShapePath = function() {};\n\n/**\n * Gets the SVG path of a connection that represents it's visual bounds.\n *\n * @param {Connection} connection\n *\n * @return {string} svg path\n */\nBaseRenderer.prototype.getConnectionPath = function() {};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/BaseRenderer.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/draw/DefaultRenderer.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/draw/DefaultRenderer.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DefaultRenderer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _BaseRenderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseRenderer */ \"./node_modules/diagram-js/lib/draw/BaseRenderer.js\");\n/* harmony import */ var _util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n// apply default renderer with lowest possible priority\n// so that it only kicks in if noone else could render\nvar DEFAULT_RENDER_PRIORITY = 1;\n\n/**\n * The default renderer used for shapes and connections.\n *\n * @param {EventBus} eventBus\n * @param {Styles} styles\n */\nfunction DefaultRenderer(eventBus, styles) {\n\n //\n _BaseRenderer__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus, DEFAULT_RENDER_PRIORITY);\n\n this.CONNECTION_STYLE = styles.style([ 'no-fill' ], { strokeWidth: 5, stroke: 'fuchsia' });\n this.SHAPE_STYLE = styles.style({ fill: 'white', stroke: 'fuchsia', strokeWidth: 2 });\n this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DefaultRenderer, _BaseRenderer__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nDefaultRenderer.prototype.canRender = function() {\n return true;\n};\n\nDefaultRenderer.prototype.drawShape = function drawShape(visuals, element) {\n var rect = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('rect');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(rect, {\n x: 0,\n y: 0,\n width: element.width || 0,\n height: element.height || 0\n });\n\n if ((0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.isFrameElement)(element)) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(rect, this.FRAME_STYLE);\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(rect, this.SHAPE_STYLE);\n }\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(visuals, rect);\n\n return rect;\n};\n\nDefaultRenderer.prototype.drawConnection = function drawConnection(visuals, connection) {\n\n var line = (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.createLine)(connection.waypoints, this.CONNECTION_STYLE);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(visuals, line);\n\n return line;\n};\n\nDefaultRenderer.prototype.getShapePath = function getShapePath(shape) {\n\n var x = shape.x,\n y = shape.y,\n width = shape.width,\n height = shape.height;\n\n var shapePath = [\n ['M', x, y],\n ['l', width, 0],\n ['l', 0, height],\n ['l', -width, 0],\n ['z']\n ];\n\n return (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.componentsToPath)(shapePath);\n};\n\nDefaultRenderer.prototype.getConnectionPath = function getConnectionPath(connection) {\n var waypoints = connection.waypoints;\n\n var idx, point, connectionPath = [];\n\n for (idx = 0; (point = waypoints[idx]); idx++) {\n\n // take invisible docking into account\n // when creating the path\n point = point.original || point;\n\n connectionPath.push([ idx === 0 ? 'M' : 'L', point.x, point.y ]);\n }\n\n return (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.componentsToPath)(connectionPath);\n};\n\n\nDefaultRenderer.$inject = [ 'eventBus', 'styles' ];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/DefaultRenderer.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/draw/Styles.js": /*!****************************************************!*\ !*** ./node_modules/diagram-js/lib/draw/Styles.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Styles)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A component that manages shape styles\n */\nfunction Styles() {\n\n var defaultTraits = {\n\n 'no-fill': {\n fill: 'none'\n },\n 'no-border': {\n strokeOpacity: 0.0\n },\n 'no-events': {\n pointerEvents: 'none'\n }\n };\n\n var self = this;\n\n /**\n * Builds a style definition from a className, a list of traits and an object of additional attributes.\n *\n * @param {string} className\n * @param {Array} traits\n * @param {Object} additionalAttrs\n *\n * @return {Object} the style defintion\n */\n this.cls = function(className, traits, additionalAttrs) {\n var attrs = this.style(traits, additionalAttrs);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(attrs, { 'class': className });\n };\n\n /**\n * Builds a style definition from a list of traits and an object of additional attributes.\n *\n * @param {Array} traits\n * @param {Object} additionalAttrs\n *\n * @return {Object} the style defintion\n */\n this.style = function(traits, additionalAttrs) {\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(traits) && !additionalAttrs) {\n additionalAttrs = traits;\n traits = [];\n }\n\n var attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(traits, function(attrs, t) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(attrs, defaultTraits[t] || {});\n }, {});\n\n return additionalAttrs ? (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(attrs, additionalAttrs) : attrs;\n };\n\n this.computeStyle = function(custom, traits, defaultStyles) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(traits)) {\n defaultStyles = traits;\n traits = [];\n }\n\n return self.style(traits || [], (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, defaultStyles, custom || {}));\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/Styles.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/draw/index.js": /*!***************************************************!*\ !*** ./node_modules/diagram-js/lib/draw/index.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _DefaultRenderer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DefaultRenderer */ \"./node_modules/diagram-js/lib/draw/DefaultRenderer.js\");\n/* harmony import */ var _Styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Styles */ \"./node_modules/diagram-js/lib/draw/Styles.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'defaultRenderer' ],\n defaultRenderer: [ 'type', _DefaultRenderer__WEBPACK_IMPORTED_MODULE_0__.default ],\n styles: [ 'type', _Styles__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/align-elements/AlignElements.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/align-elements/AlignElements.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AlignElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nfunction last(arr) {\n return arr && arr[arr.length - 1];\n}\n\nfunction sortTopOrMiddle(element) {\n return element.y;\n}\n\nfunction sortLeftOrCenter(element) {\n return element.x;\n}\n\n/**\n * Sorting functions for different types of alignment\n *\n * @type {Object}\n *\n * @return {Function}\n */\nvar ALIGNMENT_SORTING = {\n left: sortLeftOrCenter,\n center: sortLeftOrCenter,\n right: function(element) {\n return element.x + element.width;\n },\n top: sortTopOrMiddle,\n middle: sortTopOrMiddle,\n bottom: function(element) {\n return element.y + element.height;\n }\n};\n\n\nfunction AlignElements(modeling) {\n this._modeling = modeling;\n}\n\nAlignElements.$inject = [ 'modeling' ];\n\n\n/**\n * Get the relevant \"axis\" and \"dimension\" related to the current type of alignment\n *\n * @param {string} type left|right|center|top|bottom|middle\n *\n * @return {Object} { axis, dimension }\n */\nAlignElements.prototype._getOrientationDetails = function(type) {\n var vertical = [ 'top', 'bottom', 'middle' ],\n axis = 'x',\n dimension = 'width';\n\n if (vertical.indexOf(type) !== -1) {\n axis = 'y';\n dimension = 'height';\n }\n\n return {\n axis: axis,\n dimension: dimension\n };\n};\n\nAlignElements.prototype._isType = function(type, types) {\n return types.indexOf(type) !== -1;\n};\n\n/**\n * Get a point on the relevant axis where elements should align to\n *\n * @param {string} type left|right|center|top|bottom|middle\n * @param {Array} sortedElements\n *\n * @return {Object}\n */\nAlignElements.prototype._alignmentPosition = function(type, sortedElements) {\n var orientation = this._getOrientationDetails(type),\n axis = orientation.axis,\n dimension = orientation.dimension,\n alignment = {},\n centers = {},\n hasSharedCenters = false,\n centeredElements,\n firstElement,\n lastElement;\n\n function getMiddleOrTop(first, last) {\n return Math.round((first[axis] + last[axis] + last[dimension]) / 2);\n }\n\n if (this._isType(type, [ 'left', 'top' ])) {\n alignment[type] = sortedElements[0][axis];\n\n } else if (this._isType(type, [ 'right', 'bottom' ])) {\n lastElement = last(sortedElements);\n\n alignment[type] = lastElement[axis] + lastElement[dimension];\n\n } else if (this._isType(type, [ 'center', 'middle' ])) {\n\n // check if there is a center shared by more than one shape\n // if not, just take the middle of the range\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(sortedElements, function(element) {\n var center = element[axis] + Math.round(element[dimension] / 2);\n\n if (centers[center]) {\n centers[center].elements.push(element);\n } else {\n centers[center] = {\n elements: [ element ],\n center: center\n };\n }\n });\n\n centeredElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(centers, function(center) {\n if (center.elements.length > 1) {\n hasSharedCenters = true;\n }\n\n return center.elements.length;\n });\n\n if (hasSharedCenters) {\n alignment[type] = last(centeredElements).center;\n\n return alignment;\n }\n\n firstElement = sortedElements[0];\n\n sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(sortedElements, function(element) {\n return element[axis] + element[dimension];\n });\n\n lastElement = last(sortedElements);\n\n alignment[type] = getMiddleOrTop(firstElement, lastElement);\n }\n\n return alignment;\n};\n\n/**\n * Executes the alignment of a selection of elements\n *\n * @param {Array} elements [description]\n * @param {string} type left|right|center|top|bottom|middle\n */\nAlignElements.prototype.trigger = function(elements, type) {\n var modeling = this._modeling;\n\n var filteredElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n return !(element.waypoints || element.host || element.labelTarget);\n });\n\n if (filteredElements.length < 2) {\n return;\n }\n\n var sortFn = ALIGNMENT_SORTING[type];\n\n var sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(filteredElements, sortFn);\n\n var alignment = this._alignmentPosition(type, sortedElements);\n\n modeling.alignElements(sortedElements, alignment);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/align-elements/AlignElements.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/align-elements/index.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/align-elements/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AlignElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlignElements */ \"./node_modules/diagram-js/lib/features/align-elements/AlignElements.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'alignElements' ],\n alignElements: [ 'type', _AlignElements__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/align-elements/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AttachSupport)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Removal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Removal */ \"./node_modules/diagram-js/lib/util/Removal.js\");\n/* harmony import */ var _util_AttachUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/AttachUtil */ \"./node_modules/diagram-js/lib/util/AttachUtil.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 251,\n HIGH_PRIORITY = 1401;\n\nvar MARKER_ATTACH = 'attach-ok';\n\n\n/**\n * Adds the notion of attached elements to the modeler.\n *\n * Optionally depends on `diagram-js/lib/features/move` to render\n * the attached elements during move preview.\n *\n * Optionally depends on `diagram-js/lib/features/label-support`\n * to render attached labels during move preview.\n *\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {Rules} rules\n * @param {Modeling} modeling\n */\nfunction AttachSupport(injector, eventBus, canvas, rules, modeling) {\n\n _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n var movePreview = injector.get('movePreview', false);\n\n\n // remove all the attached elements from the shapes to be validated\n // add all the attached shapes to the overall list of moved shapes\n eventBus.on('shape.move.start', HIGH_PRIORITY, function(e) {\n\n var context = e.context,\n shapes = context.shapes,\n validatedShapes = context.validatedShapes;\n\n context.shapes = addAttached(shapes);\n\n context.validatedShapes = removeAttached(validatedShapes);\n });\n\n // add attachers to the visual's group\n movePreview && eventBus.on('shape.move.start', LOW_PRIORITY, function(e) {\n\n var context = e.context,\n shapes = context.shapes,\n attachers = getAttachers(shapes);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n movePreview.makeDraggable(context, attacher, true);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.labels, function(label) {\n movePreview.makeDraggable(context, label, true);\n });\n });\n });\n\n // add attach-ok marker to current host\n movePreview && eventBus.on('shape.move.start', function(event) {\n var context = event.context,\n shapes = context.shapes;\n\n if (shapes.length !== 1) {\n return;\n }\n\n var shape = shapes[0];\n\n var host = shape.host;\n\n if (host) {\n canvas.addMarker(host, MARKER_ATTACH);\n\n eventBus.once([\n 'shape.move.out',\n 'shape.move.cleanup'\n ], function() {\n canvas.removeMarker(host, MARKER_ATTACH);\n });\n }\n });\n\n // add all attachers to move closure\n this.preExecuted('elements.move', HIGH_PRIORITY, function(e) {\n var context = e.context,\n closure = context.closure,\n shapes = context.shapes,\n attachers = getAttachers(shapes);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n closure.add(attacher, closure.topLevel[attacher.host.id]);\n });\n });\n\n // perform the attaching after shapes are done moving\n this.postExecuted('elements.move', function(e) {\n\n var context = e.context,\n shapes = context.shapes,\n newHost = context.newHost,\n attachers;\n\n // only single elements can be attached\n // multiply elements can be detached\n if (newHost && shapes.length !== 1) {\n return;\n }\n\n if (newHost) {\n attachers = shapes;\n } else {\n\n // find attachers moved without host\n attachers = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(shapes, function(shape) {\n var host = shape.host;\n\n return isAttacher(shape) && !includes(shapes, host);\n });\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n modeling.updateAttachment(attacher, newHost);\n });\n });\n\n // ensure invalid attachment connections are removed\n this.postExecuted('elements.move', function(e) {\n\n var shapes = e.context.shapes;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(shapes, function(shape) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(shape.attachers, function(attacher) {\n\n // remove invalid outgoing connections\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.outgoing.slice(), function(connection) {\n var allowed = rules.allowed('connection.reconnect', {\n connection: connection,\n source: connection.source,\n target: connection.target\n });\n\n if (!allowed) {\n modeling.removeConnection(connection);\n }\n });\n\n // remove invalid incoming connections\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.incoming.slice(), function(connection) {\n var allowed = rules.allowed('connection.reconnect', {\n connection: connection,\n source: connection.source,\n target: connection.target\n });\n\n if (!allowed) {\n modeling.removeConnection(connection);\n }\n });\n });\n });\n });\n\n this.postExecute('shape.create', function(e) {\n var context = e.context,\n shape = context.shape,\n host = context.host;\n\n if (host) {\n modeling.updateAttachment(shape, host);\n }\n });\n\n // update attachments if the host is replaced\n this.postExecute('shape.replace', function(e) {\n\n var context = e.context,\n oldShape = context.oldShape,\n newShape = context.newShape;\n\n // move the attachers to the new host\n (0,_util_Removal__WEBPACK_IMPORTED_MODULE_3__.saveClear)(oldShape.attachers, function(attacher) {\n var allowed = rules.allowed('elements.move', {\n target: newShape,\n shapes: [attacher]\n });\n\n if (allowed === 'attach') {\n modeling.updateAttachment(attacher, newShape);\n } else {\n modeling.removeShape(attacher);\n }\n });\n\n // move attachers if new host has different size\n if (newShape.attachers.length) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(newShape.attachers, function(attacher) {\n var delta = (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_4__.getNewAttachShapeDelta)(attacher, oldShape, newShape);\n modeling.moveShape(attacher, delta, attacher.parent);\n });\n }\n\n });\n\n // move shape on host resize\n this.postExecute('shape.resize', function(event) {\n var context = event.context,\n shape = context.shape,\n oldBounds = context.oldBounds,\n newBounds = context.newBounds,\n attachers = shape.attachers,\n hints = context.hints || {};\n\n if (hints.attachSupport === false) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n var delta = (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_4__.getNewAttachShapeDelta)(attacher, oldBounds, newBounds);\n\n modeling.moveShape(attacher, delta, attacher.parent);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.labels, function(label) {\n modeling.moveShape(label, delta, label.parent);\n });\n });\n });\n\n // remove attachments\n this.preExecute('shape.delete', function(event) {\n\n var shape = event.context.shape;\n\n (0,_util_Removal__WEBPACK_IMPORTED_MODULE_3__.saveClear)(shape.attachers, function(attacher) {\n modeling.removeShape(attacher);\n });\n\n if (shape.host) {\n modeling.updateAttachment(shape, null);\n }\n });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AttachSupport, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAttachSupport.$inject = [\n 'injector',\n 'eventBus',\n 'canvas',\n 'rules',\n 'modeling'\n];\n\n\n/**\n * Return attachers of the given shapes\n *\n * @param {Array} shapes\n * @return {Array}\n */\nfunction getAttachers(shapes) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.flatten)((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.map)(shapes, function(s) {\n return s.attachers || [];\n }));\n}\n\n/**\n * Return a combined list of elements and\n * attachers.\n *\n * @param {Array} elements\n * @return {Array} filtered\n */\nfunction addAttached(elements) {\n var attachers = getAttachers(elements);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.unionBy)('id', elements, attachers);\n}\n\n/**\n * Return a filtered list of elements that do not\n * contain attached elements with hosts being part\n * of the selection.\n *\n * @param {Array} elements\n *\n * @return {Array} filtered\n */\nfunction removeAttached(elements) {\n\n var ids = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.groupBy)(elements, 'id');\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(elements, function(element) {\n while (element) {\n\n // host in selection\n if (element.host && ids[element.host.id]) {\n return false;\n }\n\n element = element.parent;\n }\n\n return true;\n });\n}\n\nfunction isAttacher(shape) {\n return !!shape.host;\n}\n\nfunction includes(array, item) {\n return array.indexOf(item) !== -1;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/attach-support/index.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/attach-support/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _AttachSupport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AttachSupport */ \"./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _rules__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'attachSupport' ],\n attachSupport: [ 'type', _AttachSupport__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/attach-support/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoPlace)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AutoPlaceUtil */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js\");\n\n\n\n\nvar LOW_PRIORITY = 100;\n\n\n/**\n * A service that places elements connected to existing ones\n * to an appropriate position in an _automated_ fashion.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction AutoPlace(eventBus, modeling, canvas) {\n\n eventBus.on('autoPlace', LOW_PRIORITY, function(context) {\n var shape = context.shape,\n source = context.source;\n\n return getNewShapePosition(source, shape);\n });\n\n eventBus.on('autoPlace.end', function(event) {\n canvas.scrollToElement(event.shape);\n });\n\n /**\n * Append shape to source at appropriate position.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape} shape\n *\n * @return {djs.model.Shape} appended shape\n */\n this.append = function(source, shape, hints) {\n\n eventBus.fire('autoPlace.start', {\n source: source,\n shape: shape\n });\n\n // allow others to provide the position\n var position = eventBus.fire('autoPlace', {\n source: source,\n shape: shape\n });\n\n var newShape = modeling.appendShape(source, shape, position, source.parent, hints);\n\n eventBus.fire('autoPlace.end', {\n source: source,\n shape: newShape\n });\n\n return newShape;\n };\n\n}\n\nAutoPlace.$inject = [\n 'eventBus',\n 'modeling',\n 'canvas'\n];\n\n// helpers //////////\n\n/**\n * Find the new position for the target element to\n * connect to source.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape} element\n * @param {Object} [hints]\n * @param {Object} [hints.defaultDistance]\n *\n * @returns {Point}\n */\nfunction getNewShapePosition(source, element, hints) {\n if (!hints) {\n hints = {};\n }\n\n var distance = hints.defaultDistance || _AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_DISTANCE;\n\n var sourceMid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source),\n sourceTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(source);\n\n // simply put element right next to source\n return {\n x: sourceTrbl.right + distance + element.width / 2,\n y: sourceMid.y\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js": /*!***************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoPlaceSelectionBehavior)\n/* harmony export */ });\n/**\n * Select element after auto placement.\n *\n * @param {EventBus} eventBus\n * @param {Selection} selection\n */\nfunction AutoPlaceSelectionBehavior(eventBus, selection) {\n\n eventBus.on('autoPlace.end', 500, function(e) {\n selection.select(e.shape);\n });\n\n}\n\nAutoPlaceSelectionBehavior.$inject = [\n 'eventBus',\n 'selection'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js": /*!**************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DEFAULT_DISTANCE\": () => (/* binding */ DEFAULT_DISTANCE),\n/* harmony export */ \"findFreePosition\": () => (/* binding */ findFreePosition),\n/* harmony export */ \"generateGetNextPosition\": () => (/* binding */ generateGetNextPosition),\n/* harmony export */ \"getConnectedAtPosition\": () => (/* binding */ getConnectedAtPosition),\n/* harmony export */ \"getConnectedDistance\": () => (/* binding */ getConnectedDistance)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n// padding to detect element placement\nvar PLACEMENT_DETECTION_PAD = 10;\n\nvar DEFAULT_DISTANCE = 50;\n\nvar DEFAULT_MAX_DISTANCE = 250;\n\n\n/**\n * Get free position starting from given position.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape} element\n * @param {Point} position\n * @param {Function} getNextPosition\n *\n * @return {Point}\n */\nfunction findFreePosition(source, element, position, getNextPosition) {\n var connectedAtPosition;\n\n while ((connectedAtPosition = getConnectedAtPosition(source, position, element))) {\n position = getNextPosition(element, position, connectedAtPosition);\n }\n\n return position;\n}\n\n/**\n * Returns function that returns next position.\n *\n * @param {Object} nextPositionDirection\n * @param {Object} [nextPositionDirection.x]\n * @param {Object} [nextPositionDirection.y]\n *\n * @returns {Function}\n */\nfunction generateGetNextPosition(nextPositionDirection) {\n return function(element, previousPosition, connectedAtPosition) {\n var nextPosition = {\n x: previousPosition.x,\n y: previousPosition.y\n };\n\n [ 'x', 'y' ].forEach(function(axis) {\n\n var nextPositionDirectionForAxis = nextPositionDirection[ axis ];\n\n if (!nextPositionDirectionForAxis) {\n return;\n }\n\n var dimension = axis === 'x' ? 'width' : 'height';\n\n var margin = nextPositionDirectionForAxis.margin,\n minDistance = nextPositionDirectionForAxis.minDistance;\n\n if (margin < 0) {\n nextPosition[ axis ] = Math.min(\n connectedAtPosition[ axis ] + margin - element[ dimension ] / 2,\n previousPosition[ axis ] - minDistance + margin\n );\n } else {\n nextPosition[ axis ] = Math.max(\n connectedAtPosition[ axis ] + connectedAtPosition[ dimension ] + margin + element[ dimension ] / 2,\n previousPosition[ axis ] + minDistance + margin\n );\n }\n });\n\n return nextPosition;\n };\n}\n\n/**\n * Return target at given position, if defined.\n *\n * This takes connected elements from host and attachers\n * into account, too.\n */\nfunction getConnectedAtPosition(source, position, element) {\n\n var bounds = {\n x: position.x - (element.width / 2),\n y: position.y - (element.height / 2),\n width: element.width,\n height: element.height\n };\n\n var closure = getAutoPlaceClosure(source, element);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(closure, function(target) {\n\n if (target === element) {\n return false;\n }\n\n var orientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getOrientation)(target, bounds, PLACEMENT_DETECTION_PAD);\n\n return orientation === 'intersect';\n });\n}\n\n/**\n* Compute optimal distance between source and target based on existing connections to and from source.\n* Assumes left-to-right and top-to-down modeling.\n*\n* @param {djs.model.Shape} source\n* @param {Object} [hints]\n* @param {number} [hints.defaultDistance]\n* @param {string} [hints.direction]\n* @param {Function} [hints.filter]\n* @param {Function} [hints.getWeight]\n* @param {number} [hints.maxDistance]\n* @param {string} [hints.reference]\n*\n* @return {number}\n*/\nfunction getConnectedDistance(source, hints) {\n if (!hints) {\n hints = {};\n }\n\n // targets > sources by default\n function getDefaultWeight(connection) {\n return connection.source === source ? 1 : -1;\n }\n\n var defaultDistance = hints.defaultDistance || DEFAULT_DISTANCE,\n direction = hints.direction || 'e',\n filter = hints.filter,\n getWeight = hints.getWeight || getDefaultWeight,\n maxDistance = hints.maxDistance || DEFAULT_MAX_DISTANCE,\n reference = hints.reference || 'start';\n\n if (!filter) {\n filter = noneFilter;\n }\n\n function getDistance(a, b) {\n if (direction === 'n') {\n if (reference === 'start') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).bottom;\n } else if (reference === 'center') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).y;\n } else {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).top;\n }\n } else if (direction === 'w') {\n if (reference === 'start') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).right;\n } else if (reference === 'center') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).x;\n } else {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).left;\n }\n } else if (direction === 's') {\n if (reference === 'start') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).bottom;\n } else if (reference === 'center') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).y - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).bottom;\n } else {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).bottom - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).bottom;\n }\n } else {\n if (reference === 'start') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).right;\n } else if (reference === 'center') {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).x - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).right;\n } else {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).right - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).right;\n }\n }\n }\n\n var sourcesDistances = source.incoming\n .filter(filter)\n .map(function(connection) {\n var weight = getWeight(connection);\n\n var distance = weight < 0\n ? getDistance(connection.source, source)\n : getDistance(source, connection.source);\n\n return {\n id: connection.source.id,\n distance: distance,\n weight: weight\n };\n });\n\n var targetsDistances = source.outgoing\n .filter(filter)\n .map(function(connection) {\n var weight = getWeight(connection);\n\n var distance = weight > 0\n ? getDistance(source, connection.target)\n : getDistance(connection.target, source);\n\n return {\n id: connection.target.id,\n distance: distance,\n weight: weight\n };\n });\n\n var distances = sourcesDistances.concat(targetsDistances).reduce(function(accumulator, currentValue) {\n accumulator[ currentValue.id + '__weight_' + currentValue.weight ] = currentValue;\n\n return accumulator;\n }, {});\n\n var distancesGrouped = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(distances, function(accumulator, currentValue) {\n var distance = currentValue.distance,\n weight = currentValue.weight;\n\n if (distance < 0 || distance > maxDistance) {\n return accumulator;\n }\n\n if (!accumulator[ String(distance) ]) {\n accumulator[ String(distance) ] = 0;\n }\n\n accumulator[ String(distance) ] += 1 * weight;\n\n if (!accumulator.distance || accumulator[ accumulator.distance ] < accumulator[ String(distance) ]) {\n accumulator.distance = distance;\n }\n\n return accumulator;\n }, {});\n\n return distancesGrouped.distance || defaultDistance;\n}\n\n/**\n * Returns all connected elements around the given source.\n *\n * This includes:\n *\n * - connected elements\n * - host connected elements\n * - attachers connected elements\n *\n * @param {djs.model.Shape} source\n *\n * @return {Array}\n */\nfunction getAutoPlaceClosure(source) {\n\n var allConnected = getConnected(source);\n\n if (source.host) {\n allConnected = allConnected.concat(getConnected(source.host));\n }\n\n if (source.attachers) {\n allConnected = allConnected.concat(source.attachers.reduce(function(shapes, attacher) {\n return shapes.concat(getConnected(attacher));\n }, []));\n }\n\n return allConnected;\n}\n\nfunction getConnected(element) {\n return getTargets(element).concat(getSources(element));\n}\n\nfunction getSources(shape) {\n return shape.incoming.map(function(connection) {\n return connection.source;\n });\n}\n\nfunction getTargets(shape) {\n return shape.outgoing.map(function(connection) {\n return connection.target;\n });\n}\n\nfunction noneFilter() {\n return true;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-place/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-place/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AutoPlace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AutoPlace */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js\");\n/* harmony import */ var _AutoPlaceSelectionBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AutoPlaceSelectionBehavior */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'autoPlaceSelectionBehavior' ],\n autoPlace: [ 'type', _AutoPlace__WEBPACK_IMPORTED_MODULE_0__.default ],\n autoPlaceSelectionBehavior: [ 'type', _AutoPlaceSelectionBehavior__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js": /*!************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoResize)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * An auto resize component that takes care of expanding a parent element\n * if child elements are created or moved close the parents edge.\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n * @param {Modeling} modeling\n * @param {Rules} rules\n */\nfunction AutoResize(eventBus, elementRegistry, modeling, rules) {\n\n _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this._elementRegistry = elementRegistry;\n this._modeling = modeling;\n this._rules = rules;\n\n var self = this;\n\n this.postExecuted([ 'shape.create' ], function(event) {\n var context = event.context,\n hints = context.hints || {},\n shape = context.shape,\n parent = context.parent || context.newParent;\n\n if (hints.autoResize === false) {\n return;\n }\n\n self._expand([ shape ], parent);\n });\n\n this.postExecuted([ 'elements.move' ], function(event) {\n var context = event.context,\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.flatten)((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.values)(context.closure.topLevel)),\n hints = context.hints;\n\n var autoResize = hints ? hints.autoResize : true;\n\n if (autoResize === false) {\n return;\n }\n\n var expandings = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.groupBy)(elements, function(element) {\n return element.parent.id;\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(expandings, function(elements, parentId) {\n\n // optionally filter elements to be considered when resizing\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isArray)(autoResize)) {\n elements = elements.filter(function(element) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(autoResize, (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.matchPattern)({ id: element.id }));\n });\n }\n\n self._expand(elements, parentId);\n });\n });\n\n this.postExecuted([ 'shape.toggleCollapse' ], function(event) {\n var context = event.context,\n hints = context.hints,\n shape = context.shape;\n\n if (hints && hints.autoResize === false) {\n return;\n }\n\n if (shape.collapsed) {\n return;\n }\n\n self._expand(shape.children || [], shape);\n });\n\n this.postExecuted([ 'shape.resize' ], function(event) {\n var context = event.context,\n hints = context.hints,\n shape = context.shape,\n parent = shape.parent;\n\n if (hints && hints.autoResize === false) {\n return;\n }\n\n if (parent) {\n self._expand([ shape ], parent);\n }\n });\n\n}\n\nAutoResize.$inject = [\n 'eventBus',\n 'elementRegistry',\n 'modeling',\n 'rules'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AutoResize, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Calculate the new bounds of the target shape, given\n * a number of elements have been moved or added into the parent.\n *\n * This method considers the current size, the added elements as well as\n * the provided padding for the new bounds.\n *\n * @param {Array} elements\n * @param {djs.model.Shape} target\n */\nAutoResize.prototype._getOptimalBounds = function(elements, target) {\n\n var offset = this.getOffset(target),\n padding = this.getPadding(target);\n\n var elementsTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)((0,_util_Elements__WEBPACK_IMPORTED_MODULE_4__.getBBox)(elements)),\n targetTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(target);\n\n var newTrbl = {};\n\n if (elementsTrbl.top - targetTrbl.top < padding.top) {\n newTrbl.top = elementsTrbl.top - offset.top;\n }\n\n if (elementsTrbl.left - targetTrbl.left < padding.left) {\n newTrbl.left = elementsTrbl.left - offset.left;\n }\n\n if (targetTrbl.right - elementsTrbl.right < padding.right) {\n newTrbl.right = elementsTrbl.right + offset.right;\n }\n\n if (targetTrbl.bottom - elementsTrbl.bottom < padding.bottom) {\n newTrbl.bottom = elementsTrbl.bottom + offset.bottom;\n }\n\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asBounds)((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, targetTrbl, newTrbl));\n};\n\n\n/**\n * Expand the target shape respecting rules, offset and padding\n *\n * @param {Array} elements\n * @param {djs.model.Shape|string} target|targetId\n */\nAutoResize.prototype._expand = function(elements, target) {\n\n if (typeof target === 'string') {\n target = this._elementRegistry.get(target);\n }\n\n var allowed = this._rules.allowed('element.autoResize', {\n elements: elements,\n target: target\n });\n\n if (!allowed) {\n return;\n }\n\n // calculate the new bounds\n var newBounds = this._getOptimalBounds(elements, target);\n\n if (!boundsChanged(newBounds, target)) {\n return;\n }\n\n var resizeDirections = getResizeDirections((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.pick)(target, [ 'x', 'y', 'width', 'height' ]), newBounds);\n\n // resize the parent shape\n this.resize(target, newBounds, {\n autoResize: resizeDirections\n });\n\n var parent = target.parent;\n\n // recursively expand parent elements\n if (parent) {\n this._expand([ target ], parent);\n }\n};\n\n\n/**\n * Get the amount to expand the given shape in each direction.\n *\n * @param {djs.model.Shape} shape\n *\n * @return {TRBL}\n */\nAutoResize.prototype.getOffset = function(shape) {\n return { top: 60, bottom: 60, left: 100, right: 100 };\n};\n\n\n/**\n * Get the activation threshold for each side for which\n * resize triggers.\n *\n * @param {djs.model.Shape} shape\n *\n * @return {TRBL}\n */\nAutoResize.prototype.getPadding = function(shape) {\n return { top: 2, bottom: 2, left: 15, right: 15 };\n};\n\n\n/**\n * Perform the actual resize operation.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n * @param {Object} [hints]\n * @param {string} [hints.autoResize]\n */\nAutoResize.prototype.resize = function(shape, newBounds, hints) {\n this._modeling.resizeShape(shape, newBounds, null, hints);\n};\n\n\nfunction boundsChanged(newBounds, oldBounds) {\n return (\n newBounds.x !== oldBounds.x ||\n newBounds.y !== oldBounds.y ||\n newBounds.width !== oldBounds.width ||\n newBounds.height !== oldBounds.height\n );\n}\n\n/**\n * Get directions of resize as {n|w|s|e} e.g. \"nw\".\n *\n * @param {Bounds} oldBounds\n * @param {Bounds} newBounds\n *\n * @returns {string} Resize directions as {n|w|s|e}.\n */\nfunction getResizeDirections(oldBounds, newBounds) {\n var directions = '';\n\n oldBounds = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(oldBounds);\n newBounds = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(newBounds);\n\n if (oldBounds.top > newBounds.top) {\n directions = directions.concat('n');\n }\n\n if (oldBounds.right < newBounds.right) {\n directions = directions.concat('w');\n }\n\n if (oldBounds.bottom < newBounds.bottom) {\n directions = directions.concat('s');\n }\n\n if (oldBounds.left > newBounds.left) {\n directions = directions.concat('e');\n }\n\n return directions;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js": /*!********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoResizeProvider)\n/* harmony export */ });\n/* harmony import */ var _rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules/RuleProvider */ \"./node_modules/diagram-js/lib/features/rules/RuleProvider.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\n/**\n * This is a base rule provider for the element.autoResize rule.\n */\nfunction AutoResizeProvider(eventBus) {\n\n _rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n var self = this;\n\n this.addRule('element.autoResize', function(context) {\n return self.canResize(context.elements, context.target);\n });\n}\n\nAutoResizeProvider.$inject = [ 'eventBus' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AutoResizeProvider, _rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\n/**\n * Needs to be implemented by sub classes to allow actual auto resize\n *\n * @param {Array} elements\n * @param {djs.model.Shape} target\n *\n * @return {boolean}\n */\nAutoResizeProvider.prototype.canResize = function(elements, target) {\n return false;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js": /*!************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AutoScroll)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\n\n/**\n * Initiates canvas scrolling if current cursor point is close to a border.\n * Cancelled when current point moves back inside the scrolling borders\n * or cancelled manually.\n *\n * Default options :\n * scrollThresholdIn: [ 20, 20, 20, 20 ],\n * scrollThresholdOut: [ 0, 0, 0, 0 ],\n * scrollRepeatTimeout: 15,\n * scrollStep: 10\n *\n * Threshold order:\n * [ left, top, right, bottom ]\n */\nfunction AutoScroll(config, eventBus, canvas) {\n\n this._canvas = canvas;\n\n this._opts = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n scrollThresholdIn: [ 20, 20, 20, 20 ],\n scrollThresholdOut: [ 0, 0, 0, 0 ],\n scrollRepeatTimeout: 15,\n scrollStep: 10\n }, config);\n\n var self = this;\n\n eventBus.on('drag.move', function(e) {\n var point = self._toBorderPoint(e);\n\n self.startScroll(point);\n });\n\n eventBus.on([ 'drag.cleanup' ], function() {\n self.stopScroll();\n });\n}\n\nAutoScroll.$inject = [\n 'config.autoScroll',\n 'eventBus',\n 'canvas'\n];\n\n\n/**\n * Starts scrolling loop.\n * Point is given in global scale in canvas container box plane.\n *\n * @param {Object} point { x: X, y: Y }\n */\nAutoScroll.prototype.startScroll = function(point) {\n\n var canvas = this._canvas;\n var opts = this._opts;\n var self = this;\n\n var clientRect = canvas.getContainer().getBoundingClientRect();\n\n var diff = [\n point.x,\n point.y,\n clientRect.width - point.x,\n clientRect.height - point.y\n ];\n\n this.stopScroll();\n\n var dx = 0,\n dy = 0;\n\n for (var i = 0; i < 4; i++) {\n if (between(diff[i], opts.scrollThresholdOut[i], opts.scrollThresholdIn[i])) {\n if (i === 0) {\n dx = opts.scrollStep;\n } else if (i == 1) {\n dy = opts.scrollStep;\n } else if (i == 2) {\n dx = -opts.scrollStep;\n } else if (i == 3) {\n dy = -opts.scrollStep;\n }\n }\n }\n\n if (dx !== 0 || dy !== 0) {\n canvas.scroll({ dx: dx, dy: dy });\n\n this._scrolling = setTimeout(function() {\n self.startScroll(point);\n }, opts.scrollRepeatTimeout);\n }\n};\n\nfunction between(val, start, end) {\n if (start < val && val < end) {\n return true;\n }\n\n return false;\n}\n\n\n/**\n * Stops scrolling loop.\n */\nAutoScroll.prototype.stopScroll = function() {\n clearTimeout(this._scrolling);\n};\n\n\n/**\n * Overrides defaults options.\n *\n * @param {Object} options\n */\nAutoScroll.prototype.setOptions = function(options) {\n this._opts = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, this._opts, options);\n};\n\n\n/**\n * Converts event to a point in canvas container plane in global scale.\n *\n * @param {Event} event\n * @return {Point}\n */\nAutoScroll.prototype._toBorderPoint = function(event) {\n var clientRect = this._canvas._container.getBoundingClientRect();\n\n var globalPosition = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.toPoint)(event.originalEvent);\n\n return {\n x: globalPosition.x - clientRect.left,\n y: globalPosition.y - clientRect.top\n };\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/auto-scroll/index.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/auto-scroll/index.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _AutoScroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AutoScroll */ \"./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n ],\n __init__: [ 'autoScroll' ],\n autoScroll: [ 'type', _AutoScroll__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-scroll/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js": /*!**************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BendpointMove),\n/* harmony export */ \"isReverse\": () => (/* binding */ isReverse)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\nvar round = Math.round;\n\nvar RECONNECT_START = 'reconnectStart',\n RECONNECT_END = 'reconnectEnd',\n UPDATE_WAYPOINTS = 'updateWaypoints';\n\n\n/**\n * Move bendpoints through drag and drop to add/remove bendpoints or reconnect connection.\n */\nfunction BendpointMove(injector, eventBus, canvas, dragging, rules, modeling) {\n this._injector = injector;\n\n this.start = function(event, connection, bendpointIndex, insert) {\n var gfx = canvas.getGraphics(connection),\n source = connection.source,\n target = connection.target,\n waypoints = connection.waypoints,\n type;\n\n if (!insert && bendpointIndex === 0) {\n type = RECONNECT_START;\n } else\n if (!insert && bendpointIndex === waypoints.length - 1) {\n type = RECONNECT_END;\n } else {\n type = UPDATE_WAYPOINTS;\n }\n\n var command = type === UPDATE_WAYPOINTS ? 'connection.updateWaypoints' : 'connection.reconnect';\n\n var allowed = rules.allowed(command, {\n connection: connection,\n source: source,\n target: target\n });\n\n if (allowed === false) {\n allowed = rules.allowed(command, {\n connection: connection,\n source: target,\n target: source\n });\n }\n\n if (allowed === false) {\n return;\n }\n\n dragging.init(event, 'bendpoint.move', {\n data: {\n connection: connection,\n connectionGfx: gfx,\n context: {\n allowed: allowed,\n bendpointIndex: bendpointIndex,\n connection: connection,\n source: source,\n target: target,\n insert: insert,\n type: type\n }\n }\n });\n };\n\n eventBus.on('bendpoint.move.hover', function(event) {\n var context = event.context,\n connection = context.connection,\n source = connection.source,\n target = connection.target,\n hover = event.hover,\n type = context.type;\n\n // cache hover state\n context.hover = hover;\n\n var allowed;\n\n if (!hover) {\n return;\n }\n\n var command = type === UPDATE_WAYPOINTS ? 'connection.updateWaypoints' : 'connection.reconnect';\n\n allowed = context.allowed = rules.allowed(command, {\n connection: connection,\n source: type === RECONNECT_START ? hover : source,\n target: type === RECONNECT_END ? hover : target\n });\n\n if (allowed) {\n context.source = type === RECONNECT_START ? hover : source;\n context.target = type === RECONNECT_END ? hover : target;\n\n return;\n }\n\n if (allowed === false) {\n allowed = context.allowed = rules.allowed(command, {\n connection: connection,\n source: type === RECONNECT_END ? hover : target,\n target: type === RECONNECT_START ? hover : source\n });\n }\n\n if (allowed) {\n context.source = type === RECONNECT_END ? hover : target;\n context.target = type === RECONNECT_START ? hover : source;\n }\n });\n\n eventBus.on([ 'bendpoint.move.out', 'bendpoint.move.cleanup' ], function(event) {\n var context = event.context,\n type = context.type;\n\n context.hover = null;\n context.source = null;\n context.target = null;\n\n if (type !== UPDATE_WAYPOINTS) {\n context.allowed = false;\n }\n });\n\n eventBus.on('bendpoint.move.end', function(event) {\n var context = event.context,\n allowed = context.allowed,\n bendpointIndex = context.bendpointIndex,\n connection = context.connection,\n insert = context.insert,\n newWaypoints = connection.waypoints.slice(),\n source = context.source,\n target = context.target,\n type = context.type,\n hints = context.hints || {};\n\n // ensure integer values (important if zoom level was > 1 during move)\n var docking = {\n x: round(event.x),\n y: round(event.y)\n };\n\n if (!allowed) {\n return false;\n }\n\n if (type === UPDATE_WAYPOINTS) {\n if (insert) {\n\n // insert new bendpoint\n newWaypoints.splice(bendpointIndex, 0, docking);\n } else {\n\n // swap previous waypoint with moved one\n newWaypoints[bendpointIndex] = docking;\n }\n\n // pass hints about actual moved bendpoint\n // useful for connection/label layout\n hints.bendpointMove = {\n insert: insert,\n bendpointIndex: bendpointIndex\n };\n\n newWaypoints = this.cropWaypoints(connection, newWaypoints);\n\n modeling.updateWaypoints(connection, (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.filterRedundantWaypoints)(newWaypoints), hints);\n } else {\n if (type === RECONNECT_START) {\n hints.docking = 'source';\n\n if (isReverse(context)) {\n hints.docking = 'target';\n\n hints.newWaypoints = newWaypoints.reverse();\n }\n } else if (type === RECONNECT_END) {\n hints.docking = 'target';\n\n if (isReverse(context)) {\n hints.docking = 'source';\n\n hints.newWaypoints = newWaypoints.reverse();\n }\n }\n\n modeling.reconnect(connection, source, target, docking, hints);\n }\n }, this);\n}\n\nBendpointMove.$inject = [\n 'injector',\n 'eventBus',\n 'canvas',\n 'dragging',\n 'rules',\n 'modeling'\n];\n\nBendpointMove.prototype.cropWaypoints = function(connection, newWaypoints) {\n var connectionDocking = this._injector.get('connectionDocking', false);\n\n if (!connectionDocking) {\n return newWaypoints;\n }\n\n var waypoints = connection.waypoints;\n\n connection.waypoints = newWaypoints;\n\n connection.waypoints = connectionDocking.getCroppedWaypoints(connection);\n\n newWaypoints = connection.waypoints;\n\n connection.waypoints = waypoints;\n\n return newWaypoints;\n};\n\n\n// helpers //////////\n\nfunction isReverse(context) {\n var hover = context.hover,\n source = context.source,\n target = context.target,\n type = context.type;\n\n if (type === RECONNECT_START) {\n return hover && target && hover === target && source !== target;\n }\n\n if (type === RECONNECT_END) {\n return hover && source && hover === source && source !== target;\n }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BendpointMovePreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _BendpointUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BendpointUtil */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _BendpointMove__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BendpointMove */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js\");\n\n\n\n\n\n\n\n\nvar RECONNECT_START = 'reconnectStart',\n RECONNECT_END = 'reconnectEnd',\n UPDATE_WAYPOINTS = 'updateWaypoints';\n\nvar MARKER_OK = 'connect-ok',\n MARKER_NOT_OK = 'connect-not-ok',\n MARKER_CONNECT_HOVER = 'connect-hover',\n MARKER_CONNECT_UPDATING = 'djs-updating',\n MARKER_ELEMENT_HIDDEN = 'djs-element-hidden';\n\nvar HIGH_PRIORITY = 1100;\n\n/**\n * Preview connection while moving bendpoints.\n */\nfunction BendpointMovePreview(bendpointMove, injector, eventBus, canvas) {\n this._injector = injector;\n\n var connectionPreview = injector.get('connectionPreview', false);\n\n eventBus.on('bendpoint.move.start', function(event) {\n var context = event.context,\n bendpointIndex = context.bendpointIndex,\n connection = context.connection,\n insert = context.insert,\n waypoints = connection.waypoints,\n newWaypoints = waypoints.slice();\n\n context.waypoints = waypoints;\n\n if (insert) {\n\n // insert placeholder for new bendpoint\n newWaypoints.splice(bendpointIndex, 0, { x: event.x, y: event.y });\n }\n\n connection.waypoints = newWaypoints;\n\n // add dragger gfx\n var draggerGfx = context.draggerGfx = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_0__.addBendpoint)(canvas.getLayer('overlays'));\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(draggerGfx).add('djs-dragging');\n\n canvas.addMarker(connection, MARKER_ELEMENT_HIDDEN);\n canvas.addMarker(connection, MARKER_CONNECT_UPDATING);\n });\n\n eventBus.on('bendpoint.move.hover', function(event) {\n var context = event.context,\n allowed = context.allowed,\n hover = context.hover,\n type = context.type;\n\n if (hover) {\n canvas.addMarker(hover, MARKER_CONNECT_HOVER);\n\n if (type === UPDATE_WAYPOINTS) {\n return;\n }\n\n if (allowed) {\n canvas.removeMarker(hover, MARKER_NOT_OK);\n canvas.addMarker(hover, MARKER_OK);\n } else if (allowed === false) {\n canvas.removeMarker(hover, MARKER_OK);\n canvas.addMarker(hover, MARKER_NOT_OK);\n }\n }\n });\n\n eventBus.on([\n 'bendpoint.move.out',\n 'bendpoint.move.cleanup'\n ], HIGH_PRIORITY, function(event) {\n var context = event.context,\n hover = context.hover,\n target = context.target;\n\n if (hover) {\n canvas.removeMarker(hover, MARKER_CONNECT_HOVER);\n canvas.removeMarker(hover, target ? MARKER_OK : MARKER_NOT_OK);\n }\n });\n\n eventBus.on('bendpoint.move.move', function(event) {\n var context = event.context,\n allowed = context.allowed,\n bendpointIndex = context.bendpointIndex,\n draggerGfx = context.draggerGfx,\n hover = context.hover,\n type = context.type,\n connection = context.connection,\n source = connection.source,\n target = connection.target,\n newWaypoints = connection.waypoints.slice(),\n bendpoint = { x: event.x, y: event.y },\n hints = context.hints || {},\n drawPreviewHints = {};\n\n if (connectionPreview) {\n if (hints.connectionStart) {\n drawPreviewHints.connectionStart = hints.connectionStart;\n }\n\n if (hints.connectionEnd) {\n drawPreviewHints.connectionEnd = hints.connectionEnd;\n }\n\n\n if (type === RECONNECT_START) {\n if ((0,_BendpointMove__WEBPACK_IMPORTED_MODULE_2__.isReverse)(context)) {\n drawPreviewHints.connectionEnd = drawPreviewHints.connectionEnd || bendpoint;\n\n drawPreviewHints.source = target;\n drawPreviewHints.target = hover || source;\n\n newWaypoints = newWaypoints.reverse();\n } else {\n drawPreviewHints.connectionStart = drawPreviewHints.connectionStart || bendpoint;\n\n drawPreviewHints.source = hover || source;\n drawPreviewHints.target = target;\n }\n } else if (type === RECONNECT_END) {\n if ((0,_BendpointMove__WEBPACK_IMPORTED_MODULE_2__.isReverse)(context)) {\n drawPreviewHints.connectionStart = drawPreviewHints.connectionStart || bendpoint;\n\n drawPreviewHints.source = hover || target;\n drawPreviewHints.target = source;\n\n newWaypoints = newWaypoints.reverse();\n } else {\n drawPreviewHints.connectionEnd = drawPreviewHints.connectionEnd || bendpoint;\n\n drawPreviewHints.source = source;\n drawPreviewHints.target = hover || target;\n }\n\n } else {\n drawPreviewHints.noCropping = true;\n drawPreviewHints.noLayout = true;\n newWaypoints[ bendpointIndex ] = bendpoint;\n }\n\n if (type === UPDATE_WAYPOINTS) {\n newWaypoints = bendpointMove.cropWaypoints(connection, newWaypoints);\n }\n\n drawPreviewHints.waypoints = newWaypoints;\n\n connectionPreview.drawPreview(context, allowed, drawPreviewHints);\n }\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(draggerGfx, event.x, event.y);\n }, this);\n\n eventBus.on([\n 'bendpoint.move.end',\n 'bendpoint.move.cancel'\n ], HIGH_PRIORITY, function(event) {\n var context = event.context,\n connection = context.connection,\n draggerGfx = context.draggerGfx,\n hover = context.hover,\n target = context.target,\n waypoints = context.waypoints;\n\n connection.waypoints = waypoints;\n\n // remove dragger gfx\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(draggerGfx);\n\n canvas.removeMarker(connection, MARKER_CONNECT_UPDATING);\n canvas.removeMarker(connection, MARKER_ELEMENT_HIDDEN);\n\n if (hover) {\n canvas.removeMarker(hover, MARKER_OK);\n canvas.removeMarker(hover, target ? MARKER_OK : MARKER_NOT_OK);\n }\n\n if (connectionPreview) {\n connectionPreview.cleanUp(context);\n }\n });\n}\n\nBendpointMovePreview.$inject = [\n 'bendpointMove',\n 'injector',\n 'eventBus',\n 'canvas'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BendpointSnapping)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n\n\n\n\nvar abs= Math.abs,\n round = Math.round;\n\nvar TOLERANCE = 10;\n\n\nfunction BendpointSnapping(eventBus) {\n\n function snapTo(values, value) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(values)) {\n var i = values.length;\n\n while (i--) if (abs(values[i] - value) <= TOLERANCE) {\n return values[i];\n }\n } else {\n values = +values;\n var rem = value % values;\n\n if (rem < TOLERANCE) {\n return value - rem;\n }\n\n if (rem > values - TOLERANCE) {\n return value - rem + values;\n }\n }\n\n return value;\n }\n\n function mid(element) {\n if (element.width) {\n return {\n x: round(element.width / 2 + element.x),\n y: round(element.height / 2 + element.y)\n };\n }\n }\n\n // connection segment snapping //////////////////////\n\n function getConnectionSegmentSnaps(context) {\n\n var snapPoints = context.snapPoints,\n connection = context.connection,\n waypoints = connection.waypoints,\n segmentStart = context.segmentStart,\n segmentStartIndex = context.segmentStartIndex,\n segmentEnd = context.segmentEnd,\n segmentEndIndex = context.segmentEndIndex,\n axis = context.axis;\n\n if (snapPoints) {\n return snapPoints;\n }\n\n var referenceWaypoints = [\n waypoints[segmentStartIndex - 1],\n segmentStart,\n segmentEnd,\n waypoints[segmentEndIndex + 1]\n ];\n\n if (segmentStartIndex < 2) {\n referenceWaypoints.unshift(mid(connection.source));\n }\n\n if (segmentEndIndex > waypoints.length - 3) {\n referenceWaypoints.unshift(mid(connection.target));\n }\n\n context.snapPoints = snapPoints = { horizontal: [] , vertical: [] };\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(referenceWaypoints, function(p) {\n\n // we snap on existing bendpoints only,\n // not placeholders that are inserted during add\n if (p) {\n p = p.original || p;\n\n if (axis === 'y') {\n snapPoints.horizontal.push(p.y);\n }\n\n if (axis === 'x') {\n snapPoints.vertical.push(p.x);\n }\n }\n });\n\n return snapPoints;\n }\n\n eventBus.on('connectionSegment.move.move', 1500, function(event) {\n var context = event.context,\n snapPoints = getConnectionSegmentSnaps(context),\n x = event.x,\n y = event.y,\n sx, sy;\n\n if (!snapPoints) {\n return;\n }\n\n // snap\n sx = snapTo(snapPoints.vertical, x);\n sy = snapTo(snapPoints.horizontal, y);\n\n\n // correction x/y\n var cx = (x - sx),\n cy = (y - sy);\n\n // update delta\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(event, {\n dx: event.dx - cx,\n dy: event.dy - cy,\n x: sx,\n y: sy\n });\n\n // only set snapped if actually snapped\n if (cx || snapPoints.vertical.indexOf(x) !== -1) {\n (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', sx);\n }\n\n if (cy || snapPoints.horizontal.indexOf(y) !== -1) {\n (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', sy);\n }\n });\n\n\n // bendpoint snapping //////////////////////\n\n function getBendpointSnaps(context) {\n\n var snapPoints = context.snapPoints,\n waypoints = context.connection.waypoints,\n bendpointIndex = context.bendpointIndex;\n\n if (snapPoints) {\n return snapPoints;\n }\n\n var referenceWaypoints = [ waypoints[bendpointIndex - 1], waypoints[bendpointIndex + 1] ];\n\n context.snapPoints = snapPoints = { horizontal: [] , vertical: [] };\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(referenceWaypoints, function(p) {\n\n // we snap on existing bendpoints only,\n // not placeholders that are inserted during add\n if (p) {\n p = p.original || p;\n\n snapPoints.horizontal.push(p.y);\n snapPoints.vertical.push(p.x);\n }\n });\n\n return snapPoints;\n }\n\n\n eventBus.on([ 'bendpoint.move.move', 'bendpoint.move.end' ], 1500, function(event) {\n\n var context = event.context,\n snapPoints = getBendpointSnaps(context),\n hover = context.hover,\n hoverMid = hover && mid(hover),\n x = event.x,\n y = event.y,\n sx, sy;\n\n if (!snapPoints) {\n return;\n }\n\n // snap to hover mid\n sx = snapTo(hoverMid ? snapPoints.vertical.concat([ hoverMid.x ]) : snapPoints.vertical, x);\n sy = snapTo(hoverMid ? snapPoints.horizontal.concat([ hoverMid.y ]) : snapPoints.horizontal, y);\n\n // correction x/y\n var cx = (x - sx),\n cy = (y - sy);\n\n // update delta\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(event, {\n dx: event.dx - cx,\n dy: event.dy - cy,\n x: event.x - cx,\n y: event.y - cy\n });\n\n // only set snapped if actually snapped\n if (cx || snapPoints.vertical.indexOf(x) !== -1) {\n (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', sx);\n }\n\n if (cy || snapPoints.horizontal.indexOf(y) !== -1) {\n (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', sy);\n }\n });\n}\n\n\nBendpointSnapping.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js": /*!**************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BENDPOINT_CLS\": () => (/* binding */ BENDPOINT_CLS),\n/* harmony export */ \"SEGMENT_DRAGGER_CLS\": () => (/* binding */ SEGMENT_DRAGGER_CLS),\n/* harmony export */ \"toCanvasCoordinates\": () => (/* binding */ toCanvasCoordinates),\n/* harmony export */ \"getConnectionIntersection\": () => (/* binding */ getConnectionIntersection),\n/* harmony export */ \"addBendpoint\": () => (/* binding */ addBendpoint),\n/* harmony export */ \"addSegmentDragger\": () => (/* binding */ addSegmentDragger),\n/* harmony export */ \"calculateSegmentMoveRegion\": () => (/* binding */ calculateSegmentMoveRegion)\n/* harmony export */ });\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _util_LineIntersection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/LineIntersection */ \"./node_modules/diagram-js/lib/util/LineIntersection.js\");\n\n\n\n\n\n\n\n\n\n\nvar BENDPOINT_CLS = 'djs-bendpoint';\nvar SEGMENT_DRAGGER_CLS = 'djs-segment-dragger';\n\nfunction toCanvasCoordinates(canvas, event) {\n\n var position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event),\n clientRect = canvas._container.getBoundingClientRect(),\n offset;\n\n // canvas relative position\n\n offset = {\n x: clientRect.left,\n y: clientRect.top\n };\n\n // update actual event payload with canvas relative measures\n\n var viewbox = canvas.viewbox();\n\n return {\n x: viewbox.x + (position.x - offset.x) / viewbox.scale,\n y: viewbox.y + (position.y - offset.y) / viewbox.scale\n };\n}\n\nfunction getConnectionIntersection(canvas, waypoints, event) {\n var localPosition = toCanvasCoordinates(canvas, event),\n intersection = (0,_util_LineIntersection__WEBPACK_IMPORTED_MODULE_1__.getApproxIntersection)(waypoints, localPosition);\n\n return intersection;\n}\n\nfunction addBendpoint(parentGfx, cls) {\n var groupGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(BENDPOINT_CLS);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(parentGfx, groupGfx);\n\n var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('circle');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(visual, {\n cx: 0,\n cy: 0,\n r: 4\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(visual).add('djs-visual');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(groupGfx, visual);\n\n var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('circle');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(hit, {\n cx: 0,\n cy: 0,\n r: 10\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(hit).add('djs-hit');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(groupGfx, hit);\n\n if (cls) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(cls);\n }\n\n return groupGfx;\n}\n\nfunction createParallelDragger(parentGfx, segmentStart, segmentEnd, alignment) {\n var draggerGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(parentGfx, draggerGfx);\n\n var width = 14,\n height = 3,\n padding = 11,\n hitWidth = calculateHitWidth(segmentStart, segmentEnd, alignment),\n hitHeight = height + padding;\n\n var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('rect');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(visual, {\n x: -width / 2,\n y: -height / 2,\n width: width,\n height: height\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(visual).add('djs-visual');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(draggerGfx, visual);\n\n var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('rect');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(hit, {\n x: -hitWidth / 2,\n y: -hitHeight / 2,\n width: hitWidth,\n height: hitHeight\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(hit).add('djs-hit');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(draggerGfx, hit);\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.rotate)(draggerGfx, alignment === 'v' ? 90 : 0, 0, 0);\n\n return draggerGfx;\n}\n\n\nfunction addSegmentDragger(parentGfx, segmentStart, segmentEnd) {\n\n var groupGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g'),\n mid = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_4__.getMidPoint)(segmentStart, segmentEnd),\n alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_4__.pointsAligned)(segmentStart, segmentEnd);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(parentGfx, groupGfx);\n\n createParallelDragger(groupGfx, segmentStart, segmentEnd, alignment);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(SEGMENT_DRAGGER_CLS);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(alignment === 'h' ? 'horizontal' : 'vertical');\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(groupGfx, mid.x, mid.y);\n\n return groupGfx;\n}\n\n/**\n * Calculates region for segment move which is 2/3 of the full segment length\n * @param {number} segmentLength\n *\n * @return {number}\n */\nfunction calculateSegmentMoveRegion(segmentLength) {\n return Math.abs(Math.round(segmentLength * 2 / 3));\n}\n\n// helper //////////\n\nfunction calculateHitWidth(segmentStart, segmentEnd, alignment) {\n var segmentLengthXAxis = segmentEnd.x - segmentStart.x,\n segmentLengthYAxis = segmentEnd.y - segmentStart.y;\n\n return alignment === 'h' ?\n calculateSegmentMoveRegion(segmentLengthXAxis) :\n calculateSegmentMoveRegion(segmentLengthYAxis);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js": /*!***********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Bendpoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BendpointUtil */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js\");\n/* harmony import */ var _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/EscapeUtil */ \"./node_modules/css.escape/css.escape.js\");\n/* harmony import */ var _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A service that adds editable bendpoints to connections.\n */\nfunction Bendpoints(\n eventBus, canvas, interactionEvents,\n bendpointMove, connectionSegmentMove) {\n\n /**\n * Returns true if intersection point is inside middle region of segment, adjusted by\n * optional threshold\n */\n function isIntersectionMiddle(intersection, waypoints, treshold) {\n var idx = intersection.index,\n p = intersection.point,\n p0, p1, mid, aligned, xDelta, yDelta;\n\n if (idx <= 0 || intersection.bendpoint) {\n return false;\n }\n\n p0 = waypoints[idx - 1];\n p1 = waypoints[idx];\n mid = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.getMidPoint)(p0, p1),\n aligned = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(p0, p1);\n xDelta = Math.abs(p.x - mid.x);\n yDelta = Math.abs(p.y - mid.y);\n\n return aligned && xDelta <= treshold && yDelta <= treshold;\n }\n\n /**\n * Calculates the threshold from a connection's middle which fits the two-third-region\n */\n function calculateIntersectionThreshold(connection, intersection) {\n var waypoints = connection.waypoints,\n relevantSegment, alignment, segmentLength, threshold;\n\n if (intersection.index <= 0 || intersection.bendpoint) {\n return null;\n }\n\n // segment relative to connection intersection\n relevantSegment = {\n start: waypoints[intersection.index - 1],\n end: waypoints[intersection.index]\n };\n\n alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(relevantSegment.start, relevantSegment.end);\n\n if (!alignment) {\n return null;\n }\n\n if (alignment === 'h') {\n segmentLength = relevantSegment.end.x - relevantSegment.start.x;\n } else {\n segmentLength = relevantSegment.end.y - relevantSegment.start.y;\n }\n\n // calculate threshold relative to 2/3 of segment length\n threshold = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.calculateSegmentMoveRegion)(segmentLength) / 2;\n\n return threshold;\n }\n\n function activateBendpointMove(event, connection) {\n var waypoints = connection.waypoints,\n intersection = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.getConnectionIntersection)(canvas, waypoints, event),\n threshold;\n\n if (!intersection) {\n return;\n }\n\n threshold = calculateIntersectionThreshold(connection, intersection);\n\n if (isIntersectionMiddle(intersection, waypoints, threshold)) {\n connectionSegmentMove.start(event, connection, intersection.index);\n } else {\n bendpointMove.start(event, connection, intersection.index, !intersection.bendpoint);\n }\n\n // we've handled the event\n return true;\n }\n\n function bindInteractionEvents(node, eventName, element) {\n\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, eventName, function(event) {\n interactionEvents.triggerMouseEvent(eventName, event, element);\n event.stopPropagation();\n });\n }\n\n function getBendpointsContainer(element, create) {\n\n var layer = canvas.getLayer('overlays'),\n gfx = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-bendpoints[data-element-id=\"' + _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3___default()(element.id) + '\"]', layer);\n\n if (!gfx && create) {\n gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(gfx, { 'data-element-id': element.id });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(gfx).add('djs-bendpoints');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(layer, gfx);\n\n bindInteractionEvents(gfx, 'mousedown', element);\n bindInteractionEvents(gfx, 'click', element);\n bindInteractionEvents(gfx, 'dblclick', element);\n }\n\n return gfx;\n }\n\n function getSegmentDragger(idx, parentGfx) {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)(\n '.djs-segment-dragger[data-segment-idx=\"' + idx + '\"]',\n parentGfx\n );\n }\n\n function createBendpoints(gfx, connection) {\n connection.waypoints.forEach(function(p, idx) {\n var bendpoint = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addBendpoint)(gfx);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(gfx, bendpoint);\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(bendpoint, p.x, p.y);\n });\n\n // add floating bendpoint\n (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addBendpoint)(gfx, 'floating');\n }\n\n function createSegmentDraggers(gfx, connection) {\n\n var waypoints = connection.waypoints;\n\n var segmentStart,\n segmentEnd,\n segmentDraggerGfx;\n\n for (var i = 1; i < waypoints.length; i++) {\n\n segmentStart = waypoints[i - 1];\n segmentEnd = waypoints[i];\n\n if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(segmentStart, segmentEnd)) {\n segmentDraggerGfx = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addSegmentDragger)(gfx, segmentStart, segmentEnd);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(segmentDraggerGfx, { 'data-segment-idx': i });\n\n bindInteractionEvents(segmentDraggerGfx, 'mousemove', connection);\n }\n }\n }\n\n function clearBendpoints(gfx) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_6__.forEach)((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.queryAll)('.' + _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.BENDPOINT_CLS, gfx), function(node) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(node);\n });\n }\n\n function clearSegmentDraggers(gfx) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_6__.forEach)((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.queryAll)('.' + _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.SEGMENT_DRAGGER_CLS, gfx), function(node) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(node);\n });\n }\n\n function addHandles(connection) {\n\n var gfx = getBendpointsContainer(connection);\n\n if (!gfx) {\n gfx = getBendpointsContainer(connection, true);\n\n createBendpoints(gfx, connection);\n createSegmentDraggers(gfx, connection);\n }\n\n return gfx;\n }\n\n function updateHandles(connection) {\n\n var gfx = getBendpointsContainer(connection);\n\n if (gfx) {\n clearSegmentDraggers(gfx);\n clearBendpoints(gfx);\n createSegmentDraggers(gfx, connection);\n createBendpoints(gfx, connection);\n }\n }\n\n function updateFloatingBendpointPosition(parentGfx, intersection) {\n var floating = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.floating', parentGfx),\n point = intersection.point;\n\n if (!floating) {\n return;\n }\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(floating, point.x, point.y);\n\n }\n\n function updateSegmentDraggerPosition(parentGfx, intersection, waypoints) {\n\n var draggerGfx = getSegmentDragger(intersection.index, parentGfx),\n segmentStart = waypoints[intersection.index - 1],\n segmentEnd = waypoints[intersection.index],\n point = intersection.point,\n mid = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.getMidPoint)(segmentStart, segmentEnd),\n alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(segmentStart, segmentEnd),\n draggerVisual, relativePosition;\n\n if (!draggerGfx) {\n return;\n }\n\n draggerVisual = getDraggerVisual(draggerGfx);\n\n relativePosition = {\n x: point.x - mid.x,\n y: point.y - mid.y\n };\n\n if (alignment === 'v') {\n\n // rotate position\n relativePosition = {\n x: relativePosition.y,\n y: relativePosition.x\n };\n }\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(draggerVisual, relativePosition.x, relativePosition.y);\n }\n\n eventBus.on('connection.changed', function(event) {\n updateHandles(event.element);\n });\n\n eventBus.on('connection.remove', function(event) {\n var gfx = getBendpointsContainer(event.element);\n\n if (gfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(gfx);\n }\n });\n\n eventBus.on('element.marker.update', function(event) {\n\n var element = event.element,\n bendpointsGfx;\n\n if (!element.waypoints) {\n return;\n }\n\n bendpointsGfx = addHandles(element);\n\n if (event.add) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(bendpointsGfx).add(event.marker);\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(bendpointsGfx).remove(event.marker);\n }\n });\n\n eventBus.on('element.mousemove', function(event) {\n\n var element = event.element,\n waypoints = element.waypoints,\n bendpointsGfx,\n intersection;\n\n if (waypoints) {\n bendpointsGfx = getBendpointsContainer(element, true);\n\n intersection = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.getConnectionIntersection)(canvas, waypoints, event.originalEvent);\n\n if (!intersection) {\n return;\n }\n\n updateFloatingBendpointPosition(bendpointsGfx, intersection);\n\n if (!intersection.bendpoint) {\n updateSegmentDraggerPosition(bendpointsGfx, intersection, waypoints);\n }\n\n }\n });\n\n eventBus.on('element.mousedown', function(event) {\n\n if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_7__.isPrimaryButton)(event)) {\n return;\n }\n\n var originalEvent = event.originalEvent,\n element = event.element;\n\n if (!element.waypoints) {\n return;\n }\n\n return activateBendpointMove(originalEvent, element);\n });\n\n eventBus.on('selection.changed', function(event) {\n var newSelection = event.newSelection,\n primary = newSelection[0];\n\n if (primary && primary.waypoints) {\n addHandles(primary);\n }\n });\n\n eventBus.on('element.hover', function(event) {\n var element = event.element;\n\n if (element.waypoints) {\n addHandles(element);\n interactionEvents.registerEvent(event.gfx, 'mousemove', 'element.mousemove');\n }\n });\n\n eventBus.on('element.out', function(event) {\n interactionEvents.unregisterEvent(event.gfx, 'mousemove', 'element.mousemove');\n });\n\n // update bendpoint container data attribute on element ID change\n eventBus.on('element.updateId', function(context) {\n var element = context.element,\n newId = context.newId;\n\n if (element.waypoints) {\n var bendpointContainer = getBendpointsContainer(element);\n\n if (bendpointContainer) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(bendpointContainer, { 'data-element-id': newId });\n }\n }\n });\n\n // API\n\n this.addHandles = addHandles;\n this.updateHandles = updateHandles;\n this.getBendpointsContainer = getBendpointsContainer;\n this.getSegmentDragger = getSegmentDragger;\n}\n\nBendpoints.$inject = [\n 'eventBus',\n 'canvas',\n 'interactionEvents',\n 'bendpointMove',\n 'connectionSegmentMove'\n];\n\n\n\n// helper /////////////\n\nfunction getDraggerVisual(draggerGfx) {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-visual', draggerGfx);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js": /*!**********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ConnectionSegmentMove)\n/* harmony export */ });\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BendpointUtil */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\nvar MARKER_CONNECT_HOVER = 'connect-hover',\n MARKER_CONNECT_UPDATING = 'djs-updating';\n\n\n\n\n\n\nfunction axisAdd(point, axis, delta) {\n return axisSet(point, axis, point[axis] + delta);\n}\n\nfunction axisSet(point, axis, value) {\n return {\n x: (axis === 'x' ? value : point.x),\n y: (axis === 'y' ? value : point.y)\n };\n}\n\nfunction axisFenced(position, segmentStart, segmentEnd, axis) {\n\n var maxValue = Math.max(segmentStart[axis], segmentEnd[axis]),\n minValue = Math.min(segmentStart[axis], segmentEnd[axis]);\n\n var padding = 20;\n\n var fencedValue = Math.min(Math.max(minValue + padding, position[axis]), maxValue - padding);\n\n return axisSet(segmentStart, axis, fencedValue);\n}\n\nfunction flipAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Get the docking point on the given element.\n *\n * Compute a reasonable docking, if non exists.\n *\n * @param {Point} point\n * @param {djs.model.Shape} referenceElement\n * @param {string} moveAxis (x|y)\n *\n * @return {Point}\n */\nfunction getDocking(point, referenceElement, moveAxis) {\n\n var referenceMid,\n inverseAxis;\n\n if (point.original) {\n return point.original;\n } else {\n referenceMid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(referenceElement);\n inverseAxis = flipAxis(moveAxis);\n\n return axisSet(point, inverseAxis, referenceMid[inverseAxis]);\n }\n}\n\n/**\n * A component that implements moving of bendpoints\n */\nfunction ConnectionSegmentMove(\n injector, eventBus, canvas,\n dragging, graphicsFactory, modeling) {\n\n // optional connection docking integration\n var connectionDocking = injector.get('connectionDocking', false);\n\n\n // API\n\n this.start = function(event, connection, idx) {\n\n var context,\n gfx = canvas.getGraphics(connection),\n segmentStartIndex = idx - 1,\n segmentEndIndex = idx,\n waypoints = connection.waypoints,\n segmentStart = waypoints[segmentStartIndex],\n segmentEnd = waypoints[segmentEndIndex],\n intersection = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.getConnectionIntersection)(canvas, waypoints, event),\n direction, axis, dragPosition;\n\n direction = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(segmentStart, segmentEnd);\n\n // do not move diagonal connection\n if (!direction) {\n return;\n }\n\n // the axis where we are going to move things\n axis = direction === 'v' ? 'x' : 'y';\n\n if (segmentStartIndex === 0) {\n segmentStart = getDocking(segmentStart, connection.source, axis);\n }\n\n if (segmentEndIndex === waypoints.length - 1) {\n segmentEnd = getDocking(segmentEnd, connection.target, axis);\n }\n\n if (intersection) {\n dragPosition = intersection.point;\n } else {\n\n // set to segment center as default\n dragPosition = {\n x: (segmentStart.x + segmentEnd.x) / 2,\n y: (segmentStart.y + segmentEnd.y) / 2\n };\n }\n\n context = {\n connection: connection,\n segmentStartIndex: segmentStartIndex,\n segmentEndIndex: segmentEndIndex,\n segmentStart: segmentStart,\n segmentEnd: segmentEnd,\n axis: axis,\n dragPosition: dragPosition\n };\n\n dragging.init(event, dragPosition, 'connectionSegment.move', {\n cursor: axis === 'x' ? 'resize-ew' : 'resize-ns',\n data: {\n connection: connection,\n connectionGfx: gfx,\n context: context\n }\n });\n };\n\n /**\n * Crop connection if connection cropping is provided.\n *\n * @param {Connection} connection\n * @param {Array} newWaypoints\n *\n * @return {Array} cropped connection waypoints\n */\n function cropConnection(connection, newWaypoints) {\n\n // crop connection, if docking service is provided only\n if (!connectionDocking) {\n return newWaypoints;\n }\n\n var oldWaypoints = connection.waypoints,\n croppedWaypoints;\n\n // temporary set new waypoints\n connection.waypoints = newWaypoints;\n\n croppedWaypoints = connectionDocking.getCroppedWaypoints(connection);\n\n // restore old waypoints\n connection.waypoints = oldWaypoints;\n\n return croppedWaypoints;\n }\n\n // DRAGGING IMPLEMENTATION\n\n function redrawConnection(data) {\n graphicsFactory.update('connection', data.connection, data.connectionGfx);\n }\n\n function updateDragger(context, segmentOffset, event) {\n\n var newWaypoints = context.newWaypoints,\n segmentStartIndex = context.segmentStartIndex + segmentOffset,\n segmentStart = newWaypoints[segmentStartIndex],\n segmentEndIndex = context.segmentEndIndex + segmentOffset,\n segmentEnd = newWaypoints[segmentEndIndex],\n axis = flipAxis(context.axis);\n\n // make sure the dragger does not move\n // outside the connection\n var draggerPosition = axisFenced(event, segmentStart, segmentEnd, axis);\n\n // update dragger\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(context.draggerGfx, draggerPosition.x, draggerPosition.y);\n }\n\n /**\n * Filter waypoints for redundant ones (i.e. on the same axis).\n * Returns the filtered waypoints and the offset related to the segment move.\n *\n * @param {Array} waypoints\n * @param {Integer} segmentStartIndex of moved segment start\n *\n * @return {Object} { filteredWaypoints, segmentOffset }\n */\n function filterRedundantWaypoints(waypoints, segmentStartIndex) {\n\n var segmentOffset = 0;\n\n var filteredWaypoints = waypoints.filter(function(r, idx) {\n if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsOnLine)(waypoints[idx - 1], waypoints[idx + 1], r)) {\n\n // remove point and increment offset\n segmentOffset = idx <= segmentStartIndex ? segmentOffset - 1 : segmentOffset;\n return false;\n }\n\n // dont remove point\n return true;\n });\n\n return {\n waypoints: filteredWaypoints,\n segmentOffset: segmentOffset\n };\n }\n\n eventBus.on('connectionSegment.move.start', function(event) {\n\n var context = event.context,\n connection = event.connection,\n layer = canvas.getLayer('overlays');\n\n context.originalWaypoints = connection.waypoints.slice();\n\n // add dragger gfx\n context.draggerGfx = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addSegmentDragger)(layer, context.segmentStart, context.segmentEnd);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(context.draggerGfx).add('djs-dragging');\n\n canvas.addMarker(connection, MARKER_CONNECT_UPDATING);\n });\n\n eventBus.on('connectionSegment.move.move', function(event) {\n\n var context = event.context,\n connection = context.connection,\n segmentStartIndex = context.segmentStartIndex,\n segmentEndIndex = context.segmentEndIndex,\n segmentStart = context.segmentStart,\n segmentEnd = context.segmentEnd,\n axis = context.axis;\n\n var newWaypoints = context.originalWaypoints.slice(),\n newSegmentStart = axisAdd(segmentStart, axis, event['d' + axis]),\n newSegmentEnd = axisAdd(segmentEnd, axis, event['d' + axis]);\n\n // original waypoint count and added / removed\n // from start waypoint delta. We use the later\n // to retrieve the updated segmentStartIndex / segmentEndIndex\n var waypointCount = newWaypoints.length,\n segmentOffset = 0;\n\n // move segment start / end by axis delta\n newWaypoints[segmentStartIndex] = newSegmentStart;\n newWaypoints[segmentEndIndex] = newSegmentEnd;\n\n var sourceToSegmentOrientation,\n targetToSegmentOrientation;\n\n // handle first segment\n if (segmentStartIndex < 2) {\n sourceToSegmentOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(connection.source, newSegmentStart);\n\n // first bendpoint, remove first segment if intersecting\n if (segmentStartIndex === 1) {\n\n if (sourceToSegmentOrientation === 'intersect') {\n newWaypoints.shift();\n newWaypoints[0] = newSegmentStart;\n segmentOffset--;\n }\n }\n\n // docking point, add segment if not intersecting anymore\n else {\n if (sourceToSegmentOrientation !== 'intersect') {\n newWaypoints.unshift(segmentStart);\n segmentOffset++;\n }\n }\n }\n\n // handle last segment\n if (segmentEndIndex > waypointCount - 3) {\n targetToSegmentOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(connection.target, newSegmentEnd);\n\n // last bendpoint, remove last segment if intersecting\n if (segmentEndIndex === waypointCount - 2) {\n\n if (targetToSegmentOrientation === 'intersect') {\n newWaypoints.pop();\n newWaypoints[newWaypoints.length - 1] = newSegmentEnd;\n }\n }\n\n // last bendpoint, remove last segment if intersecting\n else {\n if (targetToSegmentOrientation !== 'intersect') {\n newWaypoints.push(segmentEnd);\n }\n }\n }\n\n // update connection waypoints\n context.newWaypoints = connection.waypoints = cropConnection(connection, newWaypoints);\n\n // update dragger position\n updateDragger(context, segmentOffset, event);\n\n // save segmentOffset in context\n context.newSegmentStartIndex = segmentStartIndex + segmentOffset;\n\n // redraw connection\n redrawConnection(event);\n });\n\n eventBus.on('connectionSegment.move.hover', function(event) {\n\n event.context.hover = event.hover;\n canvas.addMarker(event.hover, MARKER_CONNECT_HOVER);\n });\n\n eventBus.on([\n 'connectionSegment.move.out',\n 'connectionSegment.move.cleanup'\n ], function(event) {\n\n // remove connect marker\n // if it was added\n var hover = event.context.hover;\n\n if (hover) {\n canvas.removeMarker(hover, MARKER_CONNECT_HOVER);\n }\n });\n\n eventBus.on('connectionSegment.move.cleanup', function(event) {\n\n var context = event.context,\n connection = context.connection;\n\n // remove dragger gfx\n if (context.draggerGfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(context.draggerGfx);\n }\n\n canvas.removeMarker(connection, MARKER_CONNECT_UPDATING);\n });\n\n eventBus.on([\n 'connectionSegment.move.cancel',\n 'connectionSegment.move.end'\n ], function(event) {\n var context = event.context,\n connection = context.connection;\n\n connection.waypoints = context.originalWaypoints;\n\n redrawConnection(event);\n });\n\n eventBus.on('connectionSegment.move.end', function(event) {\n\n var context = event.context,\n connection = context.connection,\n newWaypoints = context.newWaypoints,\n newSegmentStartIndex = context.newSegmentStartIndex;\n\n // ensure we have actual pixel values bendpoint\n // coordinates (important when zoom level was > 1 during move)\n newWaypoints = newWaypoints.map(function(p) {\n return {\n original: p.original,\n x: Math.round(p.x),\n y: Math.round(p.y)\n };\n });\n\n // apply filter redunant waypoints\n var filtered = filterRedundantWaypoints(newWaypoints, newSegmentStartIndex);\n\n // get filtered waypoints\n var filteredWaypoints = filtered.waypoints,\n croppedWaypoints = cropConnection(connection, filteredWaypoints),\n segmentOffset = filtered.segmentOffset;\n\n var hints = {\n segmentMove: {\n segmentStartIndex: context.segmentStartIndex,\n newSegmentStartIndex: newSegmentStartIndex + segmentOffset\n }\n };\n\n modeling.updateWaypoints(connection, croppedWaypoints, hints);\n });\n}\n\nConnectionSegmentMove.$inject = [\n 'injector',\n 'eventBus',\n 'canvas',\n 'dragging',\n 'graphicsFactory',\n 'modeling'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/bendpoints/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/bendpoints/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _Bendpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Bendpoints */ \"./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js\");\n/* harmony import */ var _BendpointMove__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BendpointMove */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js\");\n/* harmony import */ var _BendpointMovePreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BendpointMovePreview */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js\");\n/* harmony import */ var _ConnectionSegmentMove__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ConnectionSegmentMove */ \"./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js\");\n/* harmony import */ var _BendpointSnapping__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BendpointSnapping */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n _rules__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n __init__: [ 'bendpoints', 'bendpointSnapping', 'bendpointMovePreview' ],\n bendpoints: [ 'type', _Bendpoints__WEBPACK_IMPORTED_MODULE_2__.default ],\n bendpointMove: [ 'type', _BendpointMove__WEBPACK_IMPORTED_MODULE_3__.default ],\n bendpointMovePreview: [ 'type', _BendpointMovePreview__WEBPACK_IMPORTED_MODULE_4__.default ],\n connectionSegmentMove: [ 'type', _ConnectionSegmentMove__WEBPACK_IMPORTED_MODULE_5__.default ],\n bendpointSnapping: [ 'type', _BendpointSnapping__WEBPACK_IMPORTED_MODULE_6__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChangeSupport)\n/* harmony export */ });\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n/**\n * Adds change support to the diagram, including\n *\n *
      \n *
    • redrawing shapes and connections on change
    • \n *
    \n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {ElementRegistry} elementRegistry\n * @param {GraphicsFactory} graphicsFactory\n */\nfunction ChangeSupport(\n eventBus, canvas, elementRegistry,\n graphicsFactory) {\n\n\n // redraw shapes / connections on change\n\n eventBus.on('element.changed', function(event) {\n\n var element = event.element;\n\n // element might have been deleted and replaced by new element with same ID\n // thus check for parent of element except for root element\n if (element.parent || element === canvas.getRootElement()) {\n event.gfx = elementRegistry.getGraphics(element);\n }\n\n // shape + gfx may have been deleted\n if (!event.gfx) {\n return;\n }\n\n eventBus.fire((0,_util_Elements__WEBPACK_IMPORTED_MODULE_0__.getType)(element) + '.changed', event);\n });\n\n eventBus.on('elements.changed', function(event) {\n\n var elements = event.elements;\n\n elements.forEach(function(e) {\n eventBus.fire('element.changed', { element: e });\n });\n\n graphicsFactory.updateContainments(elements);\n });\n\n eventBus.on('shape.changed', function(event) {\n graphicsFactory.update('shape', event.element, event.gfx);\n });\n\n eventBus.on('connection.changed', function(event) {\n graphicsFactory.update('connection', event.element, event.gfx);\n });\n}\n\nChangeSupport.$inject = [\n 'eventBus',\n 'canvas',\n 'elementRegistry',\n 'graphicsFactory'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/change-support/index.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/change-support/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ChangeSupport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChangeSupport */ \"./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'changeSupport'],\n changeSupport: [ 'type', _ChangeSupport__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/change-support/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/clipboard/Clipboard.js": /*!*********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/clipboard/Clipboard.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Clipboard)\n/* harmony export */ });\n/**\n * A clip board stub\n */\nfunction Clipboard() {}\n\n\nClipboard.prototype.get = function() {\n return this._data;\n};\n\nClipboard.prototype.set = function(data) {\n this._data = data;\n};\n\nClipboard.prototype.clear = function() {\n var data = this._data;\n\n delete this._data;\n\n return data;\n};\n\nClipboard.prototype.isEmpty = function() {\n return !this._data;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/clipboard/Clipboard.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/clipboard/index.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/clipboard/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Clipboard */ \"./node_modules/diagram-js/lib/features/clipboard/Clipboard.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n clipboard: [ 'type', _Clipboard__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/clipboard/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/connect/Connect.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/connect/Connect.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Connect),\n/* harmony export */ \"isReverse\": () => (/* binding */ isReverse)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\nfunction Connect(eventBus, dragging, modeling, rules) {\n\n // rules\n\n function canConnect(source, target) {\n return rules.allowed('connection.create', {\n source: source,\n target: target\n });\n }\n\n function canConnectReverse(source, target) {\n return canConnect(target, source);\n }\n\n\n // event handlers\n\n eventBus.on('connect.hover', function(event) {\n var context = event.context,\n start = context.start,\n hover = event.hover,\n canExecute;\n\n // cache hover state\n context.hover = hover;\n\n canExecute = context.canExecute = canConnect(start, hover);\n\n // ignore hover\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNil)(canExecute)) {\n return;\n }\n\n if (canExecute !== false) {\n context.source = start;\n context.target = hover;\n\n return;\n }\n\n canExecute = context.canExecute = canConnectReverse(start, hover);\n\n // ignore hover\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNil)(canExecute)) {\n return;\n }\n\n if (canExecute !== false) {\n context.source = hover;\n context.target = start;\n }\n });\n\n eventBus.on([ 'connect.out', 'connect.cleanup' ], function(event) {\n var context = event.context;\n\n context.hover = null;\n context.source = null;\n context.target = null;\n\n context.canExecute = false;\n });\n\n eventBus.on('connect.end', function(event) {\n var context = event.context,\n canExecute = context.canExecute,\n connectionStart = context.connectionStart,\n connectionEnd = {\n x: event.x,\n y: event.y\n },\n source = context.source,\n target = context.target;\n\n if (!canExecute) {\n return false;\n }\n\n var attrs = null,\n hints = {\n connectionStart: isReverse(context) ? connectionEnd : connectionStart,\n connectionEnd: isReverse(context) ? connectionStart : connectionEnd\n };\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(canExecute)) {\n attrs = canExecute;\n }\n\n modeling.connect(source, target, attrs, hints);\n });\n\n\n // API\n\n /**\n * Start connect operation.\n *\n * @param {DOMEvent} event\n * @param {djs.model.Base} start\n * @param {Point} [connectionStart]\n * @param {boolean} [autoActivate=false]\n */\n this.start = function(event, start, connectionStart, autoActivate) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(connectionStart)) {\n autoActivate = connectionStart;\n connectionStart = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(start);\n }\n\n dragging.init(event, 'connect', {\n autoActivate: autoActivate,\n data: {\n shape: start,\n context: {\n start: start,\n connectionStart: connectionStart\n }\n }\n });\n };\n}\n\nConnect.$inject = [\n 'eventBus',\n 'dragging',\n 'modeling',\n 'rules'\n];\n\n\n// helpers //////////\n\nfunction isReverse(context) {\n var hover = context.hover,\n source = context.source,\n target = context.target;\n\n return hover && source && hover === source && source !== target;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connect/Connect.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/connect/ConnectPreview.js": /*!************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/connect/ConnectPreview.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ConnectPreview)\n/* harmony export */ });\n/* harmony import */ var _Connect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Connect */ \"./node_modules/diagram-js/lib/features/connect/Connect.js\");\n\n\nvar HIGH_PRIORITY = 1100,\n LOW_PRIORITY = 900;\n\nvar MARKER_OK = 'connect-ok',\n MARKER_NOT_OK = 'connect-not-ok';\n\n/**\n * Shows connection preview during connect.\n *\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction ConnectPreview(injector, eventBus, canvas) {\n var connectionPreview = injector.get('connectionPreview', false);\n\n connectionPreview && eventBus.on('connect.move', function(event) {\n var context = event.context,\n canConnect = context.canExecute,\n hover = context.hover,\n source = context.source,\n start = context.start,\n startPosition = context.startPosition,\n target = context.target,\n connectionStart = context.connectionStart || startPosition,\n connectionEnd = context.connectionEnd || {\n x: event.x,\n y: event.y\n },\n previewStart = connectionStart,\n previewEnd = connectionEnd;\n\n if ((0,_Connect__WEBPACK_IMPORTED_MODULE_0__.isReverse)(context)) {\n previewStart = connectionEnd;\n previewEnd = connectionStart;\n }\n\n connectionPreview.drawPreview(context, canConnect, {\n source: source || start,\n target: target || hover,\n connectionStart: previewStart,\n connectionEnd: previewEnd\n });\n });\n\n eventBus.on('connect.hover', LOW_PRIORITY, function(event) {\n var context = event.context,\n hover = event.hover,\n canExecute = context.canExecute;\n\n // ignore hover\n if (canExecute === null) {\n return;\n }\n\n canvas.addMarker(hover, canExecute ? MARKER_OK : MARKER_NOT_OK);\n });\n\n eventBus.on([\n 'connect.out',\n 'connect.cleanup'\n ], HIGH_PRIORITY, function(event) {\n var hover = event.hover;\n\n if (hover) {\n canvas.removeMarker(hover, MARKER_OK);\n canvas.removeMarker(hover, MARKER_NOT_OK);\n }\n });\n\n connectionPreview && eventBus.on('connect.cleanup', function(event) {\n connectionPreview.cleanUp(event.context);\n });\n}\n\nConnectPreview.$inject = [\n 'injector',\n 'eventBus',\n 'canvas'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connect/ConnectPreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/connect/index.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/connect/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _Connect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Connect */ \"./node_modules/diagram-js/lib/features/connect/Connect.js\");\n/* harmony import */ var _ConnectPreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ConnectPreview */ \"./node_modules/diagram-js/lib/features/connect/ConnectPreview.js\");\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _selection__WEBPACK_IMPORTED_MODULE_0__.default,\n _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n _dragging__WEBPACK_IMPORTED_MODULE_2__.default\n ],\n __init__: [\n 'connectPreview'\n ],\n connect: [ 'type', _Connect__WEBPACK_IMPORTED_MODULE_3__.default ],\n connectPreview: [ 'type', _ConnectPreview__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connect/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js": /*!**************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ConnectionPreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\nvar MARKER_CONNECTION_PREVIEW = 'djs-connection-preview';\n\n/**\n * Draws connection preview. Optionally, this can use layouter and connection docking to draw\n * better looking previews.\n *\n * @param {didi.Injector} injector\n * @param {Canvas} canvas\n * @param {GraphicsFactory} graphicsFactory\n * @param {ElementFactory} elementFactory\n */\nfunction ConnectionPreview(\n injector,\n canvas,\n graphicsFactory,\n elementFactory\n) {\n this._canvas = canvas;\n this._graphicsFactory = graphicsFactory;\n this._elementFactory = elementFactory;\n\n // optional components\n this._connectionDocking = injector.get('connectionDocking', false);\n this._layouter = injector.get('layouter', false);\n}\n\nConnectionPreview.$inject = [\n 'injector',\n 'canvas',\n 'graphicsFactory',\n 'elementFactory'\n];\n\n/**\n * Draw connection preview.\n *\n * Provide at least one of and to create a preview.\n * In the clean up stage, call `connectionPreview#cleanUp` with the context to remove preview.\n *\n * @param {Object} context\n * @param {Object|boolean} canConnect\n * @param {Object} hints\n * @param {djs.model.shape} [hints.source] source element\n * @param {djs.model.shape} [hints.target] target element\n * @param {Point} [hints.connectionStart] connection preview start\n * @param {Point} [hints.connectionEnd] connection preview end\n * @param {Array} [hints.waypoints] provided waypoints for preview\n * @param {boolean} [hints.noLayout] true if preview should not be laid out\n * @param {boolean} [hints.noCropping] true if preview should not be cropped\n * @param {boolean} [hints.noNoop] true if simple connection should not be drawn\n */\nConnectionPreview.prototype.drawPreview = function(context, canConnect, hints) {\n\n hints = hints || {};\n\n var connectionPreviewGfx = context.connectionPreviewGfx,\n getConnection = context.getConnection,\n source = hints.source,\n target = hints.target,\n waypoints = hints.waypoints,\n connectionStart = hints.connectionStart,\n connectionEnd = hints.connectionEnd,\n noLayout = hints.noLayout,\n noCropping = hints.noCropping,\n noNoop = hints.noNoop,\n connection;\n\n var self = this;\n\n if (!connectionPreviewGfx) {\n connectionPreviewGfx = context.connectionPreviewGfx = this.createConnectionPreviewGfx();\n }\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.clear)(connectionPreviewGfx);\n\n if (!getConnection) {\n getConnection = context.getConnection = cacheReturnValues(function(canConnect, source, target) {\n return self.getConnection(canConnect, source, target);\n });\n }\n\n if (canConnect) {\n connection = getConnection(canConnect, source, target);\n }\n\n if (!connection) {\n !noNoop && this.drawNoopPreview(connectionPreviewGfx, hints);\n return;\n }\n\n connection.waypoints = waypoints || [];\n\n // optional layout\n if (this._layouter && !noLayout) {\n connection.waypoints = this._layouter.layoutConnection(connection, {\n source: source,\n target: target,\n connectionStart: connectionStart,\n connectionEnd: connectionEnd,\n waypoints: hints.waypoints || connection.waypoints\n });\n }\n\n // fallback if no waypoints were provided nor created with layouter\n if (!connection.waypoints || !connection.waypoints.length) {\n connection.waypoints = [\n source ? (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source) : connectionStart,\n target ? (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(target) : connectionEnd\n ];\n }\n\n // optional cropping\n if (this._connectionDocking && (source || target) && !noCropping) {\n connection.waypoints = this._connectionDocking.getCroppedWaypoints(connection, source, target);\n }\n\n this._graphicsFactory.drawConnection(connectionPreviewGfx, connection);\n};\n\n/**\n * Draw simple connection between source and target or provided points.\n *\n * @param {SVGElement} connectionPreviewGfx container for the connection\n * @param {Object} hints\n * @param {djs.model.shape} [hints.source] source element\n * @param {djs.model.shape} [hints.target] target element\n * @param {Point} [hints.connectionStart] required if source is not provided\n * @param {Point} [hints.connectionEnd] required if target is not provided\n */\nConnectionPreview.prototype.drawNoopPreview = function(connectionPreviewGfx, hints) {\n var source = hints.source,\n target = hints.target,\n start = hints.connectionStart || (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source),\n end = hints.connectionEnd || (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(target);\n\n var waypoints = this.cropWaypoints(start, end, source, target);\n\n var connection = this.createNoopConnection(waypoints[0], waypoints[1]);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(connectionPreviewGfx, connection);\n};\n\n/**\n * Return cropped waypoints.\n *\n * @param {Point} start\n * @param {Point} end\n * @param {djs.model.shape} source\n * @param {djs.model.shape} target\n *\n * @returns {Array}\n */\nConnectionPreview.prototype.cropWaypoints = function(start, end, source, target) {\n var graphicsFactory = this._graphicsFactory,\n sourcePath = source && graphicsFactory.getShapePath(source),\n targetPath = target && graphicsFactory.getShapePath(target),\n connectionPath = graphicsFactory.getConnectionPath({ waypoints: [ start, end ] });\n\n start = (source && (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getElementLineIntersection)(sourcePath, connectionPath, true)) || start;\n end = (target && (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getElementLineIntersection)(targetPath, connectionPath, false)) || end;\n\n return [ start, end ];\n};\n\n/**\n * Remove connection preview container if it exists.\n *\n * @param {Object} [context]\n * @param {SVGElement} [context.connectionPreviewGfx] preview container\n */\nConnectionPreview.prototype.cleanUp = function(context) {\n if (context && context.connectionPreviewGfx) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(context.connectionPreviewGfx);\n }\n};\n\n/**\n * Get connection that connects source and target.\n *\n * @param {Object|boolean} canConnect\n *\n * @returns {djs.model.connection}\n */\nConnectionPreview.prototype.getConnection = function(canConnect) {\n var attrs = ensureConnectionAttrs(canConnect);\n\n return this._elementFactory.createConnection(attrs);\n};\n\n\n/**\n * Add and return preview graphics.\n *\n * @returns {SVGElement}\n */\nConnectionPreview.prototype.createConnectionPreviewGfx = function() {\n var gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('g');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(gfx, {\n pointerEvents: 'none'\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.classes)(gfx).add(MARKER_CONNECTION_PREVIEW);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(this._canvas.getDefaultLayer(), gfx);\n\n return gfx;\n};\n\n/**\n * Create and return simple connection.\n *\n * @param {Point} start\n * @param {Point} end\n *\n * @returns {SVGElement}\n */\nConnectionPreview.prototype.createNoopConnection = function(start, end) {\n var connection = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('polyline');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(connection, {\n 'stroke': '#333',\n 'strokeDasharray': [ 1 ],\n 'strokeWidth': 2,\n 'pointer-events': 'none'\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(connection, { 'points': [ start.x, start.y, end.x, end.y ] });\n\n return connection;\n};\n\n// helpers //////////\n\n/**\n * Returns function that returns cached return values referenced by stringified first argument.\n *\n * @param {Function} fn\n *\n * @return {Function}\n */\nfunction cacheReturnValues(fn) {\n var returnValues = {};\n\n /**\n * Return cached return value referenced by stringified first argument.\n *\n * @returns {*}\n */\n return function(firstArgument) {\n var key = JSON.stringify(firstArgument);\n\n var returnValue = returnValues[key];\n\n if (!returnValue) {\n returnValue = returnValues[key] = fn.apply(null, arguments);\n }\n\n return returnValue;\n };\n}\n\n/**\n * Ensure connection attributes is object.\n *\n * @param {Object|boolean} canConnect\n *\n * @returns {Object}\n */\nfunction ensureConnectionAttrs(canConnect) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isObject)(canConnect)) {\n return canConnect;\n } else {\n return {};\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/connection-preview/index.js": /*!**************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/connection-preview/index.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ConnectionPreview__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConnectionPreview */ \"./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'connectionPreview' ],\n connectionPreview: [ 'type', _ConnectionPreview__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connection-preview/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/context-pad/ContextPad.js": /*!************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/context-pad/ContextPad.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ContextPad)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar entrySelector = '.entry';\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A context pad that displays element specific, contextual actions next\n * to a diagram element.\n *\n * @param {Object} config\n * @param {boolean|Object} [config.scale={ min: 1.0, max: 1.5 }]\n * @param {number} [config.scale.min]\n * @param {number} [config.scale.max]\n * @param {EventBus} eventBus\n * @param {Overlays} overlays\n */\nfunction ContextPad(config, eventBus, overlays) {\n\n this._eventBus = eventBus;\n this._overlays = overlays;\n\n var scale = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(config && config.scale) ? config.scale : {\n min: 1,\n max: 1.5\n };\n\n this._overlaysConfig = {\n position: {\n right: -9,\n top: -6\n },\n scale: scale\n };\n\n this._current = null;\n\n this._init();\n}\n\nContextPad.$inject = [\n 'config.contextPad',\n 'eventBus',\n 'overlays'\n];\n\n\n/**\n * Registers events needed for interaction with other components\n */\nContextPad.prototype._init = function() {\n\n var eventBus = this._eventBus;\n\n var self = this;\n\n eventBus.on('selection.changed', function(e) {\n\n var selection = e.newSelection;\n\n if (selection.length === 1) {\n self.open(selection[0]);\n } else {\n self.close();\n }\n });\n\n eventBus.on('elements.delete', function(event) {\n var elements = event.elements;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(e) {\n if (self.isOpen(e)) {\n self.close();\n }\n });\n });\n\n eventBus.on('element.changed', function(event) {\n var element = event.element,\n current = self._current;\n\n // force reopen if element for which we are currently opened changed\n if (current && current.element === element) {\n self.open(element, true);\n }\n });\n};\n\n\n/**\n * Register a provider with the context pad\n *\n * @param {number} [priority=1000]\n * @param {ContextPadProvider} provider\n *\n * @example\n * const contextPadProvider = {\n * getContextPadEntries: function(element) {\n * return function(entries) {\n * return {\n * ...entries,\n * 'entry-1': {\n * label: 'My Entry',\n * action: function() { alert(\"I have been clicked!\"); }\n * }\n * };\n * }\n * }\n * };\n *\n * contextPad.registerProvider(800, contextPadProvider);\n */\nContextPad.prototype.registerProvider = function(priority, provider) {\n if (!provider) {\n provider = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n this._eventBus.on('contextPad.getProviders', priority, function(event) {\n event.providers.push(provider);\n });\n};\n\n\n/**\n * Returns the context pad entries for a given element\n *\n * @param {djs.element.Base} element\n *\n * @return {Array} list of entries\n */\nContextPad.prototype.getEntries = function(element) {\n var providers = this._getProviders();\n\n var entries = {};\n\n // loop through all providers and their entries.\n // group entries by id so that overriding an entry is possible\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(providers, function(provider) {\n var entriesOrUpdater = provider.getContextPadEntries(element);\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(entriesOrUpdater)) {\n entries = entriesOrUpdater(entries);\n } else {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entriesOrUpdater, function(entry, id) {\n entries[id] = entry;\n });\n }\n });\n\n return entries;\n};\n\n\n/**\n * Trigger an action available on the opened context pad\n *\n * @param {string} action\n * @param {Event} event\n * @param {boolean} [autoActivate=false]\n */\nContextPad.prototype.trigger = function(action, event, autoActivate) {\n\n var element = this._current.element,\n entries = this._current.entries,\n entry,\n handler,\n originalEvent,\n button = event.delegateTarget || event.target;\n\n if (!button) {\n return event.preventDefault();\n }\n\n entry = entries[(0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(button, 'data-action')];\n handler = entry.action;\n\n originalEvent = event.originalEvent || event;\n\n // simple action (via callback function)\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handler)) {\n if (action === 'click') {\n return handler(originalEvent, element, autoActivate);\n }\n } else {\n if (handler[action]) {\n return handler[action](originalEvent, element, autoActivate);\n }\n }\n\n // silence other actions\n event.preventDefault();\n};\n\n\n/**\n * Open the context pad for the given element\n *\n * @param {djs.model.Base} element\n * @param {boolean} force if true, force reopening the context pad\n */\nContextPad.prototype.open = function(element, force) {\n if (!force && this.isOpen(element)) {\n return;\n }\n\n this.close();\n this._updateAndOpen(element);\n};\n\nContextPad.prototype._getProviders = function() {\n\n var event = this._eventBus.createEvent({\n type: 'contextPad.getProviders',\n providers: []\n });\n\n this._eventBus.fire(event);\n\n return event.providers;\n};\n\nContextPad.prototype._updateAndOpen = function(element) {\n\n var entries = this.getEntries(element),\n pad = this.getPad(element),\n html = pad.html;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entries, function(entry, id) {\n var grouping = entry.group || 'default',\n control = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(entry.html || '
    '),\n container;\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(control, 'data-action', id);\n\n container = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.query)('[data-group=' + grouping + ']', html);\n if (!container) {\n container = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('
    ');\n html.appendChild(container);\n }\n\n container.appendChild(control);\n\n if (entry.className) {\n addClasses(control, entry.className);\n }\n\n if (entry.title) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(control, 'title', entry.title);\n }\n\n if (entry.imageUrl) {\n control.appendChild((0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(''));\n }\n });\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(html).add('open');\n\n this._current = {\n element: element,\n pad: pad,\n entries: entries\n };\n\n this._eventBus.fire('contextPad.open', { current: this._current });\n};\n\n\nContextPad.prototype.getPad = function(element) {\n if (this.isOpen()) {\n return this._current.pad;\n }\n\n var self = this;\n\n var overlays = this._overlays;\n\n var html = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('
    ');\n\n var overlaysConfig = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n html: html\n }, this._overlaysConfig);\n\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(html, entrySelector, 'click', function(event) {\n self.trigger('click', event);\n });\n\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(html, entrySelector, 'dragstart', function(event) {\n self.trigger('dragstart', event);\n });\n\n // stop propagation of mouse events\n min_dom__WEBPACK_IMPORTED_MODULE_1__.event.bind(html, 'mousedown', function(event) {\n event.stopPropagation();\n });\n\n this._overlayId = overlays.add(element, 'context-pad', overlaysConfig);\n\n var pad = overlays.get(this._overlayId);\n\n this._eventBus.fire('contextPad.create', { element: element, pad: pad });\n\n return pad;\n};\n\n\n/**\n * Close the context pad\n */\nContextPad.prototype.close = function() {\n if (!this.isOpen()) {\n return;\n }\n\n this._overlays.remove(this._overlayId);\n\n this._overlayId = null;\n\n this._eventBus.fire('contextPad.close', { current: this._current });\n\n this._current = null;\n};\n\n/**\n * Check if pad is open. If element is given, will check\n * if pad is opened with given element.\n *\n * @param {Element} element\n * @return {boolean}\n */\nContextPad.prototype.isOpen = function(element) {\n return !!this._current && (!element ? true : this._current.element === element);\n};\n\n\n\n\n// helpers //////////////////////\n\nfunction addClasses(element, classNames) {\n\n var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(element);\n\n var actualClassNames = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(classNames) ? classNames : classNames.split(/\\s+/g);\n actualClassNames.forEach(function(cls) {\n classes.add(cls);\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/context-pad/ContextPad.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/context-pad/index.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/context-pad/index.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _overlays__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../overlays */ \"./node_modules/diagram-js/lib/features/overlays/index.js\");\n/* harmony import */ var _ContextPad__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ContextPad */ \"./node_modules/diagram-js/lib/features/context-pad/ContextPad.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default,\n _overlays__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n contextPad: [ 'type', _ContextPad__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/context-pad/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CopyPaste)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {Array} context.elements\n *\n * @returns {Array|boolean} - Return elements to be copied or false to disallow\n * copying.\n */\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {Object} context.descriptor\n * @param {djs.model.Base} context.element\n * @param {Array} context.elements\n */\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {Object} context.elements\n * @param {Object} context.tree\n */\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {Object} context.cache - Already created elements.\n * @param {Object} context.descriptor\n */\n\n/**\n * @typedef {Function} listener\n *\n * @param {Object} context\n * @param {Object} context.hints - Add hints before pasting.\n */\n\n/**\n * Copy and paste elements.\n *\n * @param {Canvas} canvas\n * @param {Create} create\n * @param {Clipboard} clipboard\n * @param {ElementFactory} elementFactory\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Mouse} mouse\n * @param {Rules} rules\n */\nfunction CopyPaste(\n canvas,\n create,\n clipboard,\n elementFactory,\n eventBus,\n modeling,\n mouse,\n rules\n) {\n\n this._canvas = canvas;\n this._create = create;\n this._clipboard = clipboard;\n this._elementFactory = elementFactory;\n this._eventBus = eventBus;\n this._modeling = modeling;\n this._mouse = mouse;\n this._rules = rules;\n\n eventBus.on('copyPaste.copyElement', function(context) {\n var descriptor = context.descriptor,\n element = context.element,\n elements = context.elements;\n\n // default priority (priority = 1)\n descriptor.priority = 1;\n\n descriptor.id = element.id;\n\n var parentCopied = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(e) {\n return e === element.parent;\n });\n\n // do NOT reference parent if parent wasn't copied\n if (parentCopied) {\n descriptor.parent = element.parent.id;\n }\n\n // attachers (priority = 2)\n if (isAttacher(element)) {\n descriptor.priority = 2;\n\n descriptor.host = element.host.id;\n }\n\n // connections (priority = 3)\n if (isConnection(element)) {\n descriptor.priority = 3;\n\n descriptor.source = element.source.id;\n descriptor.target = element.target.id;\n\n descriptor.waypoints = copyWaypoints(element);\n }\n\n // labels (priority = 4)\n if (isLabel(element)) {\n descriptor.priority = 4;\n\n descriptor.labelTarget = element.labelTarget.id;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ 'x', 'y', 'width', 'height' ], function(property) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element[ property ])) {\n descriptor[ property ] = element[ property ];\n }\n });\n\n descriptor.hidden = element.hidden;\n descriptor.collapsed = element.collapsed;\n\n });\n\n eventBus.on('copyPaste.pasteElements', function(context) {\n var hints = context.hints;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(hints, {\n createElementsBehavior: false\n });\n });\n}\n\nCopyPaste.$inject = [\n 'canvas',\n 'create',\n 'clipboard',\n 'elementFactory',\n 'eventBus',\n 'modeling',\n 'mouse',\n 'rules'\n];\n\n\n/**\n * Copy elements.\n *\n * @param {Array} elements\n *\n * @returns {Object}\n */\nCopyPaste.prototype.copy = function(elements) {\n var allowed,\n tree;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = elements ? [ elements ] : [];\n }\n\n allowed = this._eventBus.fire('copyPaste.canCopyElements', {\n elements: elements\n });\n\n if (allowed === false) {\n tree = {};\n } else {\n tree = this.createTree((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(allowed) ? allowed : elements);\n }\n\n // we set an empty tree, selection of elements\n // to copy was empty.\n this._clipboard.set(tree);\n\n this._eventBus.fire('copyPaste.elementsCopied', {\n elements: elements,\n tree: tree\n });\n\n return tree;\n};\n\n/**\n * Paste elements.\n *\n * @param {Object} [context]\n * @param {djs.model.base} [context.element] - Parent.\n * @param {Point} [context.point] - Position.\n * @param {Object} [context.hints] - Hints.\n */\nCopyPaste.prototype.paste = function(context) {\n var tree = this._clipboard.get();\n\n if (this._clipboard.isEmpty()) {\n return;\n }\n\n var hints = context && context.hints || {};\n\n this._eventBus.fire('copyPaste.pasteElements', {\n hints: hints\n });\n\n var elements = this._createElements(tree);\n\n // paste directly\n if (context && context.element && context.point) {\n return this._paste(elements, context.element, context.point, hints);\n }\n\n this._create.start(this._mouse.getLastMoveEvent(), elements, {\n hints: hints || {}\n });\n};\n\n/**\n * Paste elements directly.\n *\n * @param {Array} elements\n * @param {djs.model.base} target\n * @param {Point} position\n * @param {Object} [hints]\n */\nCopyPaste.prototype._paste = function(elements, target, position, hints) {\n\n // make sure each element has x and y\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.x)) {\n element.x = 0;\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.y)) {\n element.y = 0;\n }\n });\n\n var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(elements);\n\n // center elements around cursor\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n if (isConnection(element)) {\n element.waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\n return {\n x: waypoint.x - bbox.x - bbox.width / 2,\n y: waypoint.y - bbox.y - bbox.height / 2\n };\n });\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(element, {\n x: element.x - bbox.x - bbox.width / 2,\n y: element.y - bbox.y - bbox.height / 2\n });\n });\n\n return this._modeling.createElements(elements, position, target, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, hints));\n};\n\n/**\n * Create elements from tree.\n */\nCopyPaste.prototype._createElements = function(tree) {\n var self = this;\n\n var eventBus = this._eventBus;\n\n var cache = {};\n\n var elements = [];\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(tree, function(branch, depth) {\n\n depth = parseInt(depth, 10);\n\n // sort by priority\n branch = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(branch, 'priority');\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(branch, function(descriptor) {\n\n // remove priority\n var attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(descriptor, [ 'priority' ]));\n\n if (cache[ descriptor.parent ]) {\n attrs.parent = cache[ descriptor.parent ];\n } else {\n delete attrs.parent;\n }\n\n eventBus.fire('copyPaste.pasteElement', {\n cache: cache,\n descriptor: attrs\n });\n\n var element;\n\n if (isConnection(attrs)) {\n attrs.source = cache[ descriptor.source ];\n attrs.target = cache[ descriptor.target ];\n\n element = cache[ descriptor.id ] = self.createConnection(attrs);\n\n elements.push(element);\n\n return;\n }\n\n if (isLabel(attrs)) {\n attrs.labelTarget = cache[ attrs.labelTarget ];\n\n element = cache[ descriptor.id ] = self.createLabel(attrs);\n\n elements.push(element);\n\n return;\n }\n\n if (attrs.host) {\n attrs.host = cache[ attrs.host ];\n }\n\n element = cache[ descriptor.id ] = self.createShape(attrs);\n\n elements.push(element);\n });\n\n });\n\n return elements;\n};\n\nCopyPaste.prototype.createConnection = function(attrs) {\n var connection = this._elementFactory.createConnection((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(attrs, [ 'id' ]));\n\n return connection;\n};\n\nCopyPaste.prototype.createLabel = function(attrs) {\n var label = this._elementFactory.createLabel((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(attrs, [ 'id' ]));\n\n return label;\n};\n\nCopyPaste.prototype.createShape = function(attrs) {\n var shape = this._elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(attrs, [ 'id' ]));\n\n return shape;\n};\n\n/**\n * Check wether element has relations to other elements e.g. attachers, labels and connections.\n *\n * @param {Object} element\n * @param {Array} elements\n *\n * @returns {boolean}\n */\nCopyPaste.prototype.hasRelations = function(element, elements) {\n var labelTarget,\n source,\n target;\n\n if (isConnection(element)) {\n source = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ id: element.source.id }));\n target = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ id: element.target.id }));\n\n if (!source || !target) {\n return false;\n }\n }\n\n if (isLabel(element)) {\n labelTarget = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ id: element.labelTarget.id }));\n\n if (!labelTarget) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Create a tree-like structure from elements.\n *\n * @example\n * tree: {\n * 0: [\n * { id: 'Shape_1', priority: 1, ... },\n * { id: 'Shape_2', priority: 1, ... },\n * { id: 'Connection_1', source: 'Shape_1', target: 'Shape_2', priority: 3, ... },\n * ...\n * ],\n * 1: [\n * { id: 'Shape_3', parent: 'Shape1', priority: 1, ... },\n * ...\n * ]\n * };\n *\n * @param {Array} elements\n *\n * @return {Object}\n */\nCopyPaste.prototype.createTree = function(elements) {\n var rules = this._rules,\n self = this;\n\n var tree = {},\n elementsData = [];\n\n var parents = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getParents)(elements);\n\n function canCopy(element, elements) {\n return rules.allowed('element.copy', {\n element: element,\n elements: elements\n });\n }\n\n function addElementData(element, depth) {\n\n // (1) check wether element has already been added\n var foundElementData = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elementsData, function(elementsData) {\n return element === elementsData.element;\n });\n\n // (2) add element if not already added\n if (!foundElementData) {\n elementsData.push({\n element: element,\n depth: depth\n });\n\n return;\n }\n\n // (3) update depth\n if (foundElementData.depth < depth) {\n elementsData = removeElementData(foundElementData, elementsData);\n\n elementsData.push({\n element: foundElementData.element,\n depth: depth\n });\n }\n }\n\n function removeElementData(elementData, elementsData) {\n var index = elementsData.indexOf(elementData);\n\n if (index !== -1) {\n elementsData.splice(index, 1);\n }\n\n return elementsData;\n }\n\n // (1) add elements\n (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.eachElement)(parents, function(element, _index, depth) {\n\n // do NOT add external labels directly\n if (isLabel(element)) {\n return;\n }\n\n // always copy external labels\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.labels, function(label) {\n addElementData(label, depth);\n });\n\n function addRelatedElements(elements) {\n elements && elements.length && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n // add external labels\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.labels, function(label) {\n addElementData(label, depth);\n });\n\n addElementData(element, depth);\n });\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ element.attachers, element.incoming, element.outgoing ], addRelatedElements);\n\n addElementData(element, depth);\n\n return element.children;\n });\n\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elementsData, function(elementData) {\n return elementData.element;\n });\n\n // (2) copy elements\n elementsData = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elementsData, function(elementData) {\n elementData.descriptor = {};\n\n self._eventBus.fire('copyPaste.copyElement', {\n descriptor: elementData.descriptor,\n element: elementData.element,\n elements: elements\n });\n\n return elementData;\n });\n\n // (3) sort elements by priority\n elementsData = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(elementsData, function(elementData) {\n return elementData.descriptor.priority;\n });\n\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elementsData, function(elementData) {\n return elementData.element;\n });\n\n // (4) create tree\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elementsData, function(elementData) {\n var depth = elementData.depth;\n\n if (!self.hasRelations(elementData.element, elements)) {\n removeElement(elementData.element, elements);\n\n return;\n }\n\n if (!canCopy(elementData.element, elements)) {\n removeElement(elementData.element, elements);\n\n return;\n }\n\n if (!tree[depth]) {\n tree[depth] = [];\n }\n\n tree[depth].push(elementData.descriptor);\n });\n\n return tree;\n};\n\n// helpers //////////\n\nfunction isAttacher(element) {\n return !!element.host;\n}\n\nfunction isConnection(element) {\n return !!element.waypoints;\n}\n\nfunction isLabel(element) {\n return !!element.labelTarget;\n}\n\nfunction copyWaypoints(element) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\n\n waypoint = copyWaypoint(waypoint);\n\n if (waypoint.original) {\n waypoint.original = copyWaypoint(waypoint.original);\n }\n\n return waypoint;\n });\n}\n\nfunction copyWaypoint(waypoint) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, waypoint);\n}\n\nfunction removeElement(element, elements) {\n var index = elements.indexOf(element);\n\n if (index === -1) {\n return elements;\n }\n\n return elements.splice(index, 1);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/copy-paste/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/copy-paste/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clipboard */ \"./node_modules/diagram-js/lib/features/clipboard/index.js\");\n/* harmony import */ var _create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _CopyPaste__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CopyPaste */ \"./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _clipboard__WEBPACK_IMPORTED_MODULE_0__.default,\n _create__WEBPACK_IMPORTED_MODULE_1__.default,\n _mouse__WEBPACK_IMPORTED_MODULE_2__.default,\n _rules__WEBPACK_IMPORTED_MODULE_3__.default\n ],\n __init__: [ 'copyPaste' ],\n copyPaste: [ 'type', _CopyPaste__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/copy-paste/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/create/Create.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/create/Create.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Create)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\nvar MARKER_OK = 'drop-ok',\n MARKER_NOT_OK = 'drop-not-ok',\n MARKER_ATTACH = 'attach-ok',\n MARKER_NEW_PARENT = 'new-parent';\n\n\n\n\n\nvar PREFIX = 'create';\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * Create new elements through drag and drop.\n *\n * @param {Canvas} canvas\n * @param {Dragging} dragging\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Rules} rules\n */\nfunction Create(\n canvas,\n dragging,\n eventBus,\n modeling,\n rules\n) {\n\n // rules //////////\n\n /**\n * Check wether elements can be created.\n *\n * @param {Array} elements\n * @param {djs.model.Base} target\n * @param {Point} position\n * @param {djs.model.Base} [source]\n *\n * @returns {boolean|null|Object}\n */\n function canCreate(elements, target, position, source, hints) {\n if (!target) {\n return false;\n }\n\n // ignore child elements and external labels\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n var labelTarget = element.labelTarget;\n\n return !element.parent && !(isLabel(element) && elements.indexOf(labelTarget) !== -1);\n });\n\n var shape = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(element) {\n return !isConnection(element);\n });\n\n var attach = false,\n connect = false,\n create = false;\n\n // (1) attaching single shapes\n if (isSingleShape(elements)) {\n attach = rules.allowed('shape.attach', {\n position: position,\n shape: shape,\n target: target\n });\n }\n\n if (!attach) {\n\n // (2) creating elements\n if (isSingleShape(elements)) {\n create = rules.allowed('shape.create', {\n position: position,\n shape: shape,\n source: source,\n target: target\n });\n } else {\n create = rules.allowed('elements.create', {\n elements: elements,\n position: position,\n target: target\n });\n }\n\n }\n\n var connectionTarget = hints.connectionTarget;\n\n // (3) appending single shapes\n if (create || attach) {\n if (shape && source) {\n connect = rules.allowed('connection.create', {\n source: connectionTarget === source ? shape : source,\n target: connectionTarget === source ? source : shape,\n hints: {\n targetParent: target,\n targetAttach: attach\n }\n });\n }\n\n return {\n attach: attach,\n connect: connect\n };\n }\n\n // ignore wether or not elements can be created\n if (create === null || attach === null) {\n return null;\n }\n\n return false;\n }\n\n function setMarker(element, marker) {\n [ MARKER_ATTACH, MARKER_OK, MARKER_NOT_OK, MARKER_NEW_PARENT ].forEach(function(m) {\n\n if (m === marker) {\n canvas.addMarker(element, m);\n } else {\n canvas.removeMarker(element, m);\n }\n });\n }\n\n // event handling //////////\n\n eventBus.on([ 'create.move', 'create.hover' ], function(event) {\n var context = event.context,\n elements = context.elements,\n hover = event.hover,\n source = context.source,\n hints = context.hints || {};\n\n if (!hover) {\n context.canExecute = false;\n context.target = null;\n\n return;\n }\n\n ensureConstraints(event);\n\n var position = {\n x: event.x,\n y: event.y\n };\n\n var canExecute = context.canExecute = hover && canCreate(elements, hover, position, source, hints);\n\n if (hover && canExecute !== null) {\n context.target = hover;\n\n if (canExecute && canExecute.attach) {\n setMarker(hover, MARKER_ATTACH);\n } else {\n setMarker(hover, canExecute ? MARKER_NEW_PARENT : MARKER_NOT_OK);\n }\n }\n });\n\n eventBus.on([ 'create.end', 'create.out', 'create.cleanup' ], function(event) {\n var hover = event.hover;\n\n if (hover) {\n setMarker(hover, null);\n }\n });\n\n eventBus.on('create.end', function(event) {\n var context = event.context,\n source = context.source,\n shape = context.shape,\n elements = context.elements,\n target = context.target,\n canExecute = context.canExecute,\n attach = canExecute && canExecute.attach,\n connect = canExecute && canExecute.connect,\n hints = context.hints || {};\n\n if (canExecute === false || !target) {\n return false;\n }\n\n ensureConstraints(event);\n\n var position = {\n x: event.x,\n y: event.y\n };\n\n if (connect) {\n shape = modeling.appendShape(source, shape, position, target, {\n attach: attach,\n connection: connect === true ? {} : connect,\n connectionTarget: hints.connectionTarget\n });\n } else {\n elements = modeling.createElements(elements, position, target, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, hints, {\n attach: attach\n }));\n\n // update shape\n shape = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(element) {\n return !isConnection(element);\n });\n }\n\n // update elements and shape\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(context, {\n elements: elements,\n shape: shape\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(event, {\n elements: elements,\n shape: shape\n });\n });\n\n function cancel() {\n var context = dragging.context();\n\n if (context && context.prefix === PREFIX) {\n dragging.cancel();\n }\n }\n\n // cancel on that is not result of \n eventBus.on('create.init', function() {\n eventBus.on('elements.changed', cancel);\n\n eventBus.once([ 'create.cancel', 'create.end' ], HIGH_PRIORITY, function() {\n eventBus.off('elements.changed', cancel);\n });\n });\n\n // API //////////\n\n this.start = function(event, elements, context) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n var shape = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(element) {\n return !isConnection(element);\n });\n\n if (!shape) {\n\n // at least one shape is required\n return;\n }\n\n context = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n elements: elements,\n hints: {},\n shape: shape\n }, context || {});\n\n // make sure each element has x and y\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.x)) {\n element.x = 0;\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.y)) {\n element.y = 0;\n }\n });\n\n var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(elements);\n\n // center elements around cursor\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n if (isConnection(element)) {\n element.waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\n return {\n x: waypoint.x - bbox.x - bbox.width / 2,\n y: waypoint.y - bbox.y - bbox.height / 2\n };\n });\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(element, {\n x: element.x - bbox.x - bbox.width / 2,\n y: element.y - bbox.y - bbox.height / 2\n });\n });\n\n dragging.init(event, PREFIX, {\n cursor: 'grabbing',\n autoActivate: true,\n data: {\n shape: shape,\n elements: elements,\n context: context\n }\n });\n };\n}\n\nCreate.$inject = [\n 'canvas',\n 'dragging',\n 'eventBus',\n 'modeling',\n 'rules'\n];\n\n// helpers //////////\n\nfunction ensureConstraints(event) {\n var context = event.context,\n createConstraints = context.createConstraints;\n\n if (!createConstraints) {\n return;\n }\n\n if (createConstraints.left) {\n event.x = Math.max(event.x, createConstraints.left);\n }\n\n if (createConstraints.right) {\n event.x = Math.min(event.x, createConstraints.right);\n }\n\n if (createConstraints.top) {\n event.y = Math.max(event.y, createConstraints.top);\n }\n\n if (createConstraints.bottom) {\n event.y = Math.min(event.y, createConstraints.bottom);\n }\n}\n\nfunction isConnection(element) {\n return !!element.waypoints;\n}\n\nfunction isSingleShape(elements) {\n return elements && elements.length === 1 && !isConnection(elements[0]);\n}\n\nfunction isLabel(element) {\n return !!element.labelTarget;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/create/Create.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/create/CreatePreview.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/create/CreatePreview.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreatePreview)\n/* harmony export */ });\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/GraphicsUtil */ \"./node_modules/diagram-js/lib/util/GraphicsUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar LOW_PRIORITY = 750;\r\n\r\n\r\nfunction CreatePreview(\r\n canvas,\r\n eventBus,\r\n graphicsFactory,\r\n previewSupport,\r\n styles\r\n) {\r\n function createDragGroup(elements) {\r\n var dragGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('g');\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(dragGroup, styles.cls('djs-drag-group', [ 'no-events' ]));\r\n\r\n var childrenGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('g');\r\n\r\n elements.forEach(function(element) {\r\n\r\n // create graphics\r\n var gfx;\r\n\r\n if (element.hidden) {\r\n return;\r\n }\r\n\r\n if (element.waypoints) {\r\n gfx = graphicsFactory._createContainer('connection', childrenGfx);\r\n\r\n graphicsFactory.drawConnection((0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_1__.getVisual)(gfx), element);\r\n } else {\r\n gfx = graphicsFactory._createContainer('shape', childrenGfx);\r\n\r\n graphicsFactory.drawShape((0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_1__.getVisual)(gfx), element);\r\n\r\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(gfx, element.x, element.y);\r\n }\r\n\r\n // add preview\r\n previewSupport.addDragger(element, dragGroup, gfx);\r\n });\r\n\r\n return dragGroup;\r\n }\r\n\r\n eventBus.on('create.move', LOW_PRIORITY, function(event) {\r\n\r\n var hover = event.hover,\r\n context = event.context,\r\n elements = context.elements,\r\n dragGroup = context.dragGroup;\r\n\r\n // lazily create previews\r\n if (!dragGroup) {\r\n dragGroup = context.dragGroup = createDragGroup(elements);\r\n }\r\n\r\n var defaultLayer;\r\n\r\n if (hover) {\r\n if (!dragGroup.parentNode) {\r\n defaultLayer = canvas.getDefaultLayer();\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(defaultLayer, dragGroup);\r\n }\r\n\r\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(dragGroup, event.x, event.y);\r\n } else {\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(dragGroup);\r\n }\r\n });\r\n\r\n eventBus.on('create.cleanup', function(event) {\r\n var context = event.context,\r\n dragGroup = context.dragGroup;\r\n\r\n if (dragGroup) {\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(dragGroup);\r\n }\r\n });\r\n}\r\n\r\nCreatePreview.$inject = [\r\n 'canvas',\r\n 'eventBus',\r\n 'graphicsFactory',\r\n 'previewSupport',\r\n 'styles'\r\n];\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/create/CreatePreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/create/index.js": /*!**************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/create/index.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _Create__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Create */ \"./node_modules/diagram-js/lib/features/create/Create.js\");\n/* harmony import */ var _CreatePreview__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CreatePreview */ \"./node_modules/diagram-js/lib/features/create/CreatePreview.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n _preview_support__WEBPACK_IMPORTED_MODULE_1__.default,\n _rules__WEBPACK_IMPORTED_MODULE_2__.default,\n _selection__WEBPACK_IMPORTED_MODULE_3__.default\n ],\n __init__: [\n 'create',\n 'createPreview'\n ],\n create: [ 'type', _Create__WEBPACK_IMPORTED_MODULE_4__.default ],\n createPreview: [ 'type', _CreatePreview__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/create/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js": /*!****************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DistributeElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar AXIS_DIMENSIONS = {\n horizontal: [ 'x', 'width' ],\n vertical: [ 'y', 'height' ]\n};\n\nvar THRESHOLD = 5;\n\n\n/**\n * Groups and filters elements and then trigger even distribution.\n */\nfunction DistributeElements(modeling) {\n this._modeling = modeling;\n\n this._filters = [];\n\n // register filter for filtering big elements\n this.registerFilter(function(elements, axis, dimension) {\n var elementsSize = 0,\n numOfShapes = 0,\n avgDimension;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n if (element.waypoints || element.labelTarget) {\n return;\n }\n\n elementsSize += element[dimension];\n\n numOfShapes += 1;\n });\n\n avgDimension = Math.round(elementsSize / numOfShapes);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n return element[dimension] < (avgDimension + 50);\n });\n });\n\n}\n\nDistributeElements.$inject = [ 'modeling' ];\n\n\n/**\n * Registers filter functions that allow external parties to filter\n * out certain elements.\n *\n * @param {Function} filterFn\n */\nDistributeElements.prototype.registerFilter = function(filterFn) {\n if (typeof filterFn !== 'function') {\n throw new Error('the filter has to be a function');\n }\n\n this._filters.push(filterFn);\n};\n\n/**\n * Distributes the elements with a given orientation\n *\n * @param {Array} elements [description]\n * @param {string} orientation [description]\n */\nDistributeElements.prototype.trigger = function(elements, orientation) {\n var modeling = this._modeling;\n\n var groups,\n distributableElements;\n\n if (elements.length < 3) {\n return;\n }\n\n this._setOrientation(orientation);\n\n distributableElements = this._filterElements(elements);\n\n groups = this._createGroups(distributableElements);\n\n // nothing to distribute\n if (groups.length <= 2) {\n return;\n }\n\n modeling.distributeElements(groups, this._axis, this._dimension);\n\n return groups;\n};\n\n/**\n * Filters the elements with provided filters by external parties\n *\n * @param {Array[Elements]} elements\n *\n * @return {Array[Elements]}\n */\nDistributeElements.prototype._filterElements = function(elements) {\n var filters = this._filters,\n axis = this._axis,\n dimension = this._dimension,\n distributableElements = [].concat(elements);\n\n if (!filters.length) {\n return elements;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(filters, function(filterFn) {\n distributableElements = filterFn(distributableElements, axis, dimension);\n });\n\n return distributableElements;\n};\n\n\n/**\n * Create range (min, max) groups. Also tries to group elements\n * together that share the same range.\n *\n * @example\n * \tvar distributableElements = [\n * \t\t{\n * \t\t\trange: {\n * \t\t\t\tmin: 100,\n * \t\t\t\tmax: 200\n * \t\t\t},\n * \t\t\telements: [ { id: 'shape1', .. }]\n * \t\t}\n * \t]\n *\n * @param {Array} elements\n *\n * @return {Array[Objects]}\n */\nDistributeElements.prototype._createGroups = function(elements) {\n var rangeGroups = [],\n self = this,\n axis = this._axis,\n dimension = this._dimension;\n\n if (!axis) {\n throw new Error('must have a defined \"axis\" and \"dimension\"');\n }\n\n // sort by 'left->right' or 'top->bottom'\n var sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(elements, axis);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(sortedElements, function(element, idx) {\n var elementRange = self._findRange(element, axis, dimension),\n range;\n\n var previous = rangeGroups[rangeGroups.length - 1];\n\n if (previous && self._hasIntersection(previous.range, elementRange)) {\n rangeGroups[rangeGroups.length - 1].elements.push(element);\n } else {\n range = { range: elementRange, elements: [ element ] };\n\n rangeGroups.push(range);\n }\n });\n\n return rangeGroups;\n};\n\n\n/**\n * Maps a direction to the according axis and dimension\n *\n * @param {string} direction 'horizontal' or 'vertical'\n */\nDistributeElements.prototype._setOrientation = function(direction) {\n var orientation = AXIS_DIMENSIONS[direction];\n\n this._axis = orientation[0];\n this._dimension = orientation[1];\n};\n\n\n/**\n * Checks if the two ranges intercept each other\n *\n * @param {Object} rangeA {min, max}\n * @param {Object} rangeB {min, max}\n *\n * @return {boolean}\n */\nDistributeElements.prototype._hasIntersection = function(rangeA, rangeB) {\n return Math.max(rangeA.min, rangeA.max) >= Math.min(rangeB.min, rangeB.max) &&\n Math.min(rangeA.min, rangeA.max) <= Math.max(rangeB.min, rangeB.max);\n};\n\n\n/**\n * Returns the min and max values for an element\n *\n * @param {[type]} element [description]\n * @param {[type]} axis [description]\n * @param {[type]} dimension [description]\n *\n * @return {[type]} [description]\n */\nDistributeElements.prototype._findRange = function(element) {\n var axis = element[this._axis],\n dimension = element[this._dimension];\n\n return {\n min: axis + THRESHOLD,\n max: axis + dimension - THRESHOLD\n };\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/distribute-elements/index.js": /*!***************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/distribute-elements/index.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _DistributeElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DistributeElements */ \"./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'distributeElements' ],\n distributeElements: [ 'type', _DistributeElements__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/distribute-elements/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/dragging/Dragging.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/dragging/Dragging.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Dragging)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _util_Cursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Cursor */ \"./node_modules/diagram-js/lib/util/Cursor.js\");\n/* harmony import */ var _util_ClickTrap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ClickTrap */ \"./node_modules/diagram-js/lib/util/ClickTrap.js\");\n/* harmony import */ var _util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\nvar round = Math.round;\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DRAG_ACTIVE_CLS = 'djs-drag-active';\n\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\n\nfunction isTouchEvent(event) {\n\n // check for TouchEvent being available first\n // (i.e. not available on desktop Firefox)\n return typeof TouchEvent !== 'undefined' && event instanceof TouchEvent;\n}\n\nfunction getLength(point) {\n return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));\n}\n\n/**\n * A helper that fires canvas localized drag events and realizes\n * the general \"drag-and-drop\" look and feel.\n *\n * Calling {@link Dragging#activate} activates dragging on a canvas.\n *\n * It provides the following:\n *\n * * emits life cycle events, namespaced with a prefix assigned\n * during dragging activation\n * * sets and restores the cursor\n * * sets and restores the selection if elements still exist\n * * ensures there can be only one drag operation active at a time\n *\n * Dragging may be canceled manually by calling {@link Dragging#cancel}\n * or by pressing ESC.\n *\n *\n * ## Life-cycle events\n *\n * Dragging can be in three different states, off, initialized\n * and active.\n *\n * (1) off: no dragging operation is in progress\n * (2) initialized: a new drag operation got initialized but not yet\n * started (i.e. because of no initial move)\n * (3) started: dragging is in progress\n *\n * Eventually dragging will be off again after a drag operation has\n * been ended or canceled via user click or ESC key press.\n *\n * To indicate transitions between these states dragging emits generic\n * life-cycle events with the `drag.` prefix _and_ events namespaced\n * to a prefix choosen by a user during drag initialization.\n *\n * The following events are emitted (appropriately prefixed) via\n * the {@link EventBus}.\n *\n * * `init`\n * * `start`\n * * `move`\n * * `end`\n * * `ended` (dragging already in off state)\n * * `cancel` (only if previously started)\n * * `canceled` (dragging already in off state, only if previously started)\n * * `cleanup`\n *\n *\n * @example\n *\n * function MyDragComponent(eventBus, dragging) {\n *\n * eventBus.on('mydrag.start', function(event) {\n * console.log('yes, we start dragging');\n * });\n *\n * eventBus.on('mydrag.move', function(event) {\n * console.log('canvas local coordinates', event.x, event.y, event.dx, event.dy);\n *\n * // local drag data is passed with the event\n * event.context.foo; // \"BAR\"\n *\n * // the original mouse event, too\n * event.originalEvent; // MouseEvent(...)\n * });\n *\n * eventBus.on('element.click', function(event) {\n * dragging.init(event, 'mydrag', {\n * cursor: 'grabbing',\n * data: {\n * context: {\n * foo: \"BAR\"\n * }\n * }\n * });\n * });\n * }\n */\nfunction Dragging(eventBus, canvas, selection, elementRegistry) {\n\n var defaultOptions = {\n threshold: 5,\n trapClick: true\n };\n\n // the currently active drag operation\n // dragging is active as soon as this context exists.\n //\n // it is visually _active_ only when a context.active flag is set to true.\n var context;\n\n /* convert a global event into local coordinates */\n function toLocalPoint(globalPosition) {\n\n var viewbox = canvas.viewbox();\n\n var clientRect = canvas._container.getBoundingClientRect();\n\n return {\n x: viewbox.x + (globalPosition.x - clientRect.left) / viewbox.scale,\n y: viewbox.y + (globalPosition.y - clientRect.top) / viewbox.scale\n };\n }\n\n // helpers\n\n function fire(type, dragContext) {\n dragContext = dragContext || context;\n\n var event = eventBus.createEvent(\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(\n {},\n dragContext.payload,\n dragContext.data,\n { isTouch: dragContext.isTouch }\n )\n );\n\n // default integration\n if (eventBus.fire('drag.' + type, event) === false) {\n return false;\n }\n\n return eventBus.fire(dragContext.prefix + '.' + type, event);\n }\n\n function restoreSelection(previousSelection) {\n var existingSelection = previousSelection.filter(function(element) {\n return elementRegistry.get(element.id);\n });\n\n existingSelection.length && selection.select(existingSelection);\n }\n\n // event listeners\n\n function move(event, activate) {\n var payload = context.payload,\n displacement = context.displacement;\n\n var globalStart = context.globalStart,\n globalCurrent = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.toPoint)(event),\n globalDelta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__.delta)(globalCurrent, globalStart);\n\n var localStart = context.localStart,\n localCurrent = toLocalPoint(globalCurrent),\n localDelta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__.delta)(localCurrent, localStart);\n\n\n // activate context explicitly or once threshold is reached\n if (!context.active && (activate || getLength(globalDelta) > context.threshold)) {\n\n // fire start event with original\n // starting coordinates\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(payload, {\n x: round(localStart.x + displacement.x),\n y: round(localStart.y + displacement.y),\n dx: 0,\n dy: 0\n }, { originalEvent: event });\n\n if (false === fire('start')) {\n return cancel();\n }\n\n context.active = true;\n\n // unset selection and remember old selection\n // the previous (old) selection will always passed\n // with the event via the event.previousSelection property\n if (!context.keepSelection) {\n payload.previousSelection = selection.get();\n selection.select(null);\n }\n\n // allow custom cursor\n if (context.cursor) {\n (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.set)(context.cursor);\n }\n\n // indicate dragging via marker on root element\n canvas.addMarker(canvas.getRootElement(), DRAG_ACTIVE_CLS);\n }\n\n (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.stopPropagation)(event);\n\n if (context.active) {\n\n // update payload with actual coordinates\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(payload, {\n x: round(localCurrent.x + displacement.x),\n y: round(localCurrent.y + displacement.y),\n dx: round(localDelta.x),\n dy: round(localDelta.y)\n }, { originalEvent: event });\n\n // emit move event\n fire('move');\n }\n }\n\n function end(event) {\n var previousContext,\n returnValue = true;\n\n if (context.active) {\n\n if (event) {\n context.payload.originalEvent = event;\n\n // suppress original event (click, ...)\n // because we just ended a drag operation\n (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.stopPropagation)(event);\n }\n\n // implementations may stop restoring the\n // original state (selections, ...) by preventing the\n // end events default action\n returnValue = fire('end');\n }\n\n if (returnValue === false) {\n fire('rejected');\n }\n\n previousContext = cleanup(returnValue !== true);\n\n // last event to be fired when all drag operations are done\n // at this point in time no drag operation is in progress anymore\n fire('ended', previousContext);\n }\n\n\n // cancel active drag operation if the user presses\n // the ESC key on the keyboard\n\n function checkCancel(event) {\n\n if (event.which === 27) {\n preventDefault(event);\n\n cancel();\n }\n }\n\n\n // prevent ghost click that might occur after a finished\n // drag and drop session\n\n function trapClickAndEnd(event) {\n\n var untrap;\n\n // trap the click in case we are part of an active\n // drag operation. This will effectively prevent\n // the ghost click that cannot be canceled otherwise.\n if (context.active) {\n\n untrap = (0,_util_ClickTrap__WEBPACK_IMPORTED_MODULE_4__.install)(eventBus);\n\n // remove trap after minimal delay\n setTimeout(untrap, 400);\n\n // prevent default action (click)\n preventDefault(event);\n }\n\n end(event);\n }\n\n function trapTouch(event) {\n move(event);\n }\n\n // update the drag events hover (djs.model.Base) and hoverGfx (Snap)\n // properties during hover and out and fire {prefix}.hover and {prefix}.out properties\n // respectively\n\n function hover(event) {\n var payload = context.payload;\n\n payload.hoverGfx = event.gfx;\n payload.hover = event.element;\n\n fire('hover');\n }\n\n function out(event) {\n fire('out');\n\n var payload = context.payload;\n\n payload.hoverGfx = null;\n payload.hover = null;\n }\n\n\n // life-cycle methods\n\n function cancel(restore) {\n var previousContext;\n\n if (!context) {\n return;\n }\n\n var wasActive = context.active;\n\n if (wasActive) {\n fire('cancel');\n }\n\n previousContext = cleanup(restore);\n\n if (wasActive) {\n\n // last event to be fired when all drag operations are done\n // at this point in time no drag operation is in progress anymore\n fire('canceled', previousContext);\n }\n }\n\n function cleanup(restore) {\n var previousContext,\n endDrag;\n\n fire('cleanup');\n\n // reset cursor\n (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.unset)();\n\n if (context.trapClick) {\n endDrag = trapClickAndEnd;\n } else {\n endDrag = end;\n }\n\n // reset dom listeners\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'mousemove', move);\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'dragstart', preventDefault);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'selectstart', preventDefault);\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'mousedown', endDrag, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'mouseup', endDrag, true);\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'keyup', checkCancel);\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchstart', trapTouch, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchcancel', cancel, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchmove', move, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchend', end, true);\n\n eventBus.off('element.hover', hover);\n eventBus.off('element.out', out);\n\n // remove drag marker on root element\n canvas.removeMarker(canvas.getRootElement(), DRAG_ACTIVE_CLS);\n\n // restore selection, unless it has changed\n var previousSelection = context.payload.previousSelection;\n\n if (restore !== false && previousSelection && !selection.get().length) {\n restoreSelection(previousSelection);\n }\n\n previousContext = context;\n\n context = null;\n\n return previousContext;\n }\n\n /**\n * Initialize a drag operation.\n *\n * If `localPosition` is given, drag events will be emitted\n * relative to it.\n *\n * @param {MouseEvent|TouchEvent} [event]\n * @param {Point} [localPosition] actual diagram local position this drag operation should start at\n * @param {string} prefix\n * @param {Object} [options]\n */\n function init(event, relativeTo, prefix, options) {\n\n // only one drag operation may be active, at a time\n if (context) {\n cancel(false);\n }\n\n if (typeof relativeTo === 'string') {\n options = prefix;\n prefix = relativeTo;\n relativeTo = null;\n }\n\n options = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, defaultOptions, options || {});\n\n var data = options.data || {},\n originalEvent,\n globalStart,\n localStart,\n endDrag,\n isTouch;\n\n if (options.trapClick) {\n endDrag = trapClickAndEnd;\n } else {\n endDrag = end;\n }\n\n if (event) {\n originalEvent = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event;\n globalStart = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.toPoint)(event);\n\n (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.stopPropagation)(event);\n\n // prevent default browser dragging behavior\n if (originalEvent.type === 'dragstart') {\n preventDefault(originalEvent);\n }\n } else {\n originalEvent = null;\n globalStart = { x: 0, y: 0 };\n }\n\n localStart = toLocalPoint(globalStart);\n\n if (!relativeTo) {\n relativeTo = localStart;\n }\n\n isTouch = isTouchEvent(originalEvent);\n\n context = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n prefix: prefix,\n data: data,\n payload: {},\n globalStart: globalStart,\n displacement: (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__.delta)(relativeTo, localStart),\n localStart: localStart,\n isTouch: isTouch\n }, options);\n\n // skip dom registration if trigger\n // is set to manual (during testing)\n if (!options.manual) {\n\n // add dom listeners\n\n if (isTouch) {\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchstart', trapTouch, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchcancel', cancel, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchmove', move, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchend', end, true);\n } else {\n\n // assume we use the mouse to interact per default\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'mousemove', move);\n\n // prevent default browser drag and text selection behavior\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'dragstart', preventDefault);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'selectstart', preventDefault);\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'mousedown', endDrag, true);\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'mouseup', endDrag, true);\n }\n\n min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'keyup', checkCancel);\n\n eventBus.on('element.hover', hover);\n eventBus.on('element.out', out);\n }\n\n fire('init');\n\n if (options.autoActivate) {\n move(event, true);\n }\n }\n\n // cancel on diagram destruction\n eventBus.on('diagram.destroy', cancel);\n\n\n // API\n\n this.init = init;\n this.move = move;\n this.hover = hover;\n this.out = out;\n this.end = end;\n\n this.cancel = cancel;\n\n // for introspection\n\n this.context = function() {\n return context;\n };\n\n this.setOptions = function(options) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(defaultOptions, options);\n };\n}\n\nDragging.$inject = [\n 'eventBus',\n 'canvas',\n 'selection',\n 'elementRegistry'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/dragging/Dragging.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/dragging/index.js": /*!****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/dragging/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _hover_fix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../hover-fix */ \"./node_modules/diagram-js/lib/features/hover-fix/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _Dragging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Dragging */ \"./node_modules/diagram-js/lib/features/dragging/Dragging.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _hover_fix__WEBPACK_IMPORTED_MODULE_0__.default,\n _selection__WEBPACK_IMPORTED_MODULE_1__.default,\n ],\n dragging: [ 'type', _Dragging__WEBPACK_IMPORTED_MODULE_2__.default ],\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/dragging/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EditorActions)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar NOT_REGISTERED_ERROR = 'is not a registered action',\n IS_REGISTERED_ERROR = 'is already registered';\n\n\n/**\n * An interface that provides access to modeling actions by decoupling\n * the one who requests the action to be triggered and the trigger itself.\n *\n * It's possible to add new actions by registering them with ´registerAction´\n * and likewise unregister existing ones with ´unregisterAction´.\n *\n *\n * ## Life-Cycle and configuration\n *\n * The editor actions will wait for diagram initialization before\n * registering default actions _and_ firing an `editorActions.init` event.\n *\n * Interested parties may listen to the `editorActions.init` event with\n * low priority to check, which actions got registered. Other components\n * may use the event to register their own actions via `registerAction`.\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction EditorActions(eventBus, injector) {\n\n // initialize actions\n this._actions = {};\n\n var self = this;\n\n eventBus.on('diagram.init', function() {\n\n // all diagram modules got loaded; check which ones\n // are available and register the respective default actions\n self._registerDefaultActions(injector);\n\n // ask interested parties to register available editor\n // actions on diagram initialization\n eventBus.fire('editorActions.init', {\n editorActions: self\n });\n });\n\n}\n\nEditorActions.$inject = [\n 'eventBus',\n 'injector'\n];\n\n/**\n * Register default actions.\n *\n * @param {Injector} injector\n */\nEditorActions.prototype._registerDefaultActions = function(injector) {\n\n // (1) retrieve optional components to integrate with\n\n var commandStack = injector.get('commandStack', false);\n var modeling = injector.get('modeling', false);\n var selection = injector.get('selection', false);\n var zoomScroll = injector.get('zoomScroll', false);\n var copyPaste = injector.get('copyPaste', false);\n var canvas = injector.get('canvas', false);\n var rules = injector.get('rules', false);\n var keyboardMove = injector.get('keyboardMove', false);\n var keyboardMoveSelection = injector.get('keyboardMoveSelection', false);\n\n // (2) check components and register actions\n\n if (commandStack) {\n this.register('undo', function() {\n commandStack.undo();\n });\n\n this.register('redo', function() {\n commandStack.redo();\n });\n }\n\n if (copyPaste && selection) {\n this.register('copy', function() {\n var selectedElements = selection.get();\n\n copyPaste.copy(selectedElements);\n });\n }\n\n if (copyPaste) {\n this.register('paste', function() {\n copyPaste.paste();\n });\n }\n\n if (zoomScroll) {\n this.register('stepZoom', function(opts) {\n zoomScroll.stepZoom(opts.value);\n });\n }\n\n if (canvas) {\n this.register('zoom', function(opts) {\n canvas.zoom(opts.value);\n });\n }\n\n if (modeling && selection && rules) {\n this.register('removeSelection', function() {\n\n var selectedElements = selection.get();\n\n if (!selectedElements.length) {\n return;\n }\n\n var allowed = rules.allowed('elements.delete', { elements: selectedElements }),\n removableElements;\n\n if (allowed === false) {\n return;\n }\n else if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(allowed)) {\n removableElements = allowed;\n }\n else {\n removableElements = selectedElements;\n }\n\n if (removableElements.length) {\n modeling.removeElements(removableElements.slice());\n }\n });\n }\n\n if (keyboardMove) {\n this.register('moveCanvas', function(opts) {\n keyboardMove.moveCanvas(opts);\n });\n }\n\n if (keyboardMoveSelection) {\n this.register('moveSelection', function(opts) {\n keyboardMoveSelection.moveSelection(opts.direction, opts.accelerated);\n });\n }\n\n};\n\n\n/**\n * Triggers a registered action\n *\n * @param {string} action\n * @param {Object} opts\n *\n * @return {Unknown} Returns what the registered listener returns\n */\nEditorActions.prototype.trigger = function(action, opts) {\n if (!this._actions[action]) {\n throw error(action, NOT_REGISTERED_ERROR);\n }\n\n return this._actions[action](opts);\n};\n\n\n/**\n * Registers a collections of actions.\n * The key of the object will be the name of the action.\n *\n * @example\n * ´´´\n * var actions = {\n * spaceTool: function() {\n * spaceTool.activateSelection();\n * },\n * lassoTool: function() {\n * lassoTool.activateSelection();\n * }\n * ];\n *\n * editorActions.register(actions);\n *\n * editorActions.isRegistered('spaceTool'); // true\n * ´´´\n *\n * @param {Object} actions\n */\nEditorActions.prototype.register = function(actions, listener) {\n var self = this;\n\n if (typeof actions === 'string') {\n return this._registerAction(actions, listener);\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(actions, function(listener, action) {\n self._registerAction(action, listener);\n });\n};\n\n/**\n * Registers a listener to an action key\n *\n * @param {string} action\n * @param {Function} listener\n */\nEditorActions.prototype._registerAction = function(action, listener) {\n if (this.isRegistered(action)) {\n throw error(action, IS_REGISTERED_ERROR);\n }\n\n this._actions[action] = listener;\n};\n\n/**\n * Unregister an existing action\n *\n * @param {string} action\n */\nEditorActions.prototype.unregister = function(action) {\n if (!this.isRegistered(action)) {\n throw error(action, NOT_REGISTERED_ERROR);\n }\n\n this._actions[action] = undefined;\n};\n\n/**\n * Returns the number of actions that are currently registered\n *\n * @return {number}\n */\nEditorActions.prototype.getActions = function() {\n return Object.keys(this._actions);\n};\n\n/**\n * Checks wether the given action is registered\n *\n * @param {string} action\n *\n * @return {boolean}\n */\nEditorActions.prototype.isRegistered = function(action) {\n return !!this._actions[action];\n};\n\n\nfunction error(action, message) {\n return new Error(action + ' ' + message);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/editor-actions/index.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/editor-actions/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _EditorActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EditorActions */ \"./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'editorActions' ],\n editorActions: [ 'type', _EditorActions__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/editor-actions/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GlobalConnect)\n/* harmony export */ });\nvar MARKER_OK = 'connect-ok',\n MARKER_NOT_OK = 'connect-not-ok';\n\n/**\n * @class\n * @constructor\n *\n * @param {EventBus} eventBus\n * @param {Dragging} dragging\n * @param {Connect} connect\n * @param {Canvas} canvas\n * @param {ToolManager} toolManager\n * @param {Rules} rules\n * @param {Mouse} mouse\n */\nfunction GlobalConnect(\n eventBus, dragging, connect,\n canvas, toolManager, rules,\n mouse) {\n\n var self = this;\n\n this._dragging = dragging;\n this._rules = rules;\n this._mouse = mouse;\n\n toolManager.registerTool('global-connect', {\n tool: 'global-connect',\n dragging: 'global-connect.drag'\n });\n\n eventBus.on('global-connect.hover', function(event) {\n var context = event.context,\n startTarget = event.hover;\n\n var canStartConnect = context.canStartConnect = self.canStartConnect(startTarget);\n\n // simply ignore hover\n if (canStartConnect === null) {\n return;\n }\n\n context.startTarget = startTarget;\n\n canvas.addMarker(startTarget, canStartConnect ? MARKER_OK : MARKER_NOT_OK);\n });\n\n\n eventBus.on([ 'global-connect.out', 'global-connect.cleanup' ], function(event) {\n var startTarget = event.context.startTarget,\n canStartConnect = event.context.canStartConnect;\n\n if (startTarget) {\n canvas.removeMarker(startTarget, canStartConnect ? MARKER_OK : MARKER_NOT_OK);\n }\n });\n\n\n eventBus.on([ 'global-connect.ended' ], function(event) {\n var context = event.context,\n startTarget = context.startTarget,\n startPosition = {\n x: event.x,\n y: event.y\n };\n\n var canStartConnect = self.canStartConnect(startTarget);\n\n if (!canStartConnect) {\n return;\n }\n\n eventBus.once('element.out', function() {\n eventBus.once([ 'connect.ended', 'connect.canceled' ], function() {\n eventBus.fire('global-connect.drag.ended');\n });\n\n connect.start(null, startTarget, startPosition);\n });\n\n return false;\n });\n}\n\nGlobalConnect.$inject = [\n 'eventBus',\n 'dragging',\n 'connect',\n 'canvas',\n 'toolManager',\n 'rules',\n 'mouse'\n];\n\n/**\n * Initiates tool activity.\n */\nGlobalConnect.prototype.start = function(event, autoActivate) {\n this._dragging.init(event, 'global-connect', {\n autoActivate: autoActivate,\n trapClick: false,\n data: {\n context: {}\n }\n });\n};\n\nGlobalConnect.prototype.toggle = function() {\n\n if (this.isActive()) {\n return this._dragging.cancel();\n }\n\n var mouseEvent = this._mouse.getLastMoveEvent();\n\n return this.start(mouseEvent, !!mouseEvent);\n};\n\nGlobalConnect.prototype.isActive = function() {\n var context = this._dragging.context();\n\n return context && /^global-connect/.test(context.prefix);\n};\n\n/**\n * Check if source shape can initiate connection.\n *\n * @param {Shape} startTarget\n * @return {boolean}\n */\nGlobalConnect.prototype.canStartConnect = function(startTarget) {\n return this._rules.allowed('connection.start', { source: startTarget });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/global-connect/index.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/global-connect/index.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _connect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../connect */ \"./node_modules/diagram-js/lib/features/connect/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _GlobalConnect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./GlobalConnect */ \"./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _connect__WEBPACK_IMPORTED_MODULE_0__.default,\n _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n _dragging__WEBPACK_IMPORTED_MODULE_2__.default,\n _tool_manager__WEBPACK_IMPORTED_MODULE_3__.default,\n _mouse__WEBPACK_IMPORTED_MODULE_4__.default\n ],\n globalConnect: [ 'type', _GlobalConnect__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/global-connect/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js": /*!****************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GridSnapping)\n/* harmony export */ });\n/* harmony import */ var _snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _GridUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./GridUtil */ \"./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar LOWER_PRIORITY = 1200;\r\nvar LOW_PRIORITY = 800;\r\n\r\n/**\r\n * Basic grid snapping that covers connecting, creating, moving, resizing shapes, moving bendpoints\r\n * and connection segments.\r\n */\r\nfunction GridSnapping(elementRegistry, eventBus, config) {\r\n\r\n var active = !config || config.active !== false;\r\n\r\n this._eventBus = eventBus;\r\n\r\n var self = this;\r\n\r\n eventBus.on('diagram.init', LOW_PRIORITY, function() {\r\n self.setActive(active);\r\n });\r\n\r\n eventBus.on([\r\n 'create.move',\r\n 'create.end',\r\n 'bendpoint.move.move',\r\n 'bendpoint.move.end',\r\n 'connect.move',\r\n 'connect.end',\r\n 'connectionSegment.move.move',\r\n 'connectionSegment.move.end',\r\n 'resize.move',\r\n 'resize.end',\r\n 'shape.move.move',\r\n 'shape.move.end'\r\n ], LOWER_PRIORITY, function(event) {\r\n var originalEvent = event.originalEvent;\r\n\r\n if (!self.active || (originalEvent && (0,_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(originalEvent))) {\r\n return;\r\n }\r\n\r\n var context = event.context,\r\n gridSnappingContext = context.gridSnappingContext;\r\n\r\n if (!gridSnappingContext) {\r\n gridSnappingContext = context.gridSnappingContext = {};\r\n }\r\n\r\n [ 'x', 'y' ].forEach(function(axis) {\r\n var options = {};\r\n\r\n // allow snapping with offset\r\n var snapOffset = getSnapOffset(event, axis, elementRegistry);\r\n\r\n if (snapOffset) {\r\n options.offset = snapOffset;\r\n }\r\n\r\n // allow snapping with min and max\r\n var snapConstraints = getSnapConstraints(event, axis);\r\n\r\n if (snapConstraints) {\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(options, snapConstraints);\r\n }\r\n\r\n if (!(0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.isSnapped)(event, axis)) {\r\n self.snapEvent(event, axis, options);\r\n }\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * Snap an events x or y with optional min, max and offset.\r\n *\r\n * @param {Object} event\r\n * @param {string} axis\r\n * @param {number} [options.min]\r\n * @param {number} [options.max]\r\n * @param {number} [options.offset]\r\n */\r\nGridSnapping.prototype.snapEvent = function(event, axis, options) {\r\n var snappedValue = this.snapValue(event[ axis ], options);\r\n\r\n (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, axis, snappedValue);\r\n};\r\n\r\n/**\r\n * Expose grid spacing for third parties (i.e. extensions).\r\n *\r\n * @return {number} spacing of grid dots\r\n */\r\nGridSnapping.prototype.getGridSpacing = function() {\r\n return _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING;\r\n};\r\n\r\n/**\r\n * Snap value with optional min, max and offset.\r\n *\r\n * @param {number} value\r\n * @param {Object} options\r\n * @param {number} [options.min]\r\n * @param {number} [options.max]\r\n * @param {number} [options.offset]\r\n */\r\nGridSnapping.prototype.snapValue = function(value, options) {\r\n var offset = 0;\r\n\r\n if (options && options.offset) {\r\n offset = options.offset;\r\n }\r\n\r\n value += offset;\r\n\r\n value = (0,_GridUtil__WEBPACK_IMPORTED_MODULE_3__.quantize)(value, _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING);\r\n\r\n var min, max;\r\n\r\n if (options && options.min) {\r\n min = options.min;\r\n\r\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(min)) {\r\n min = (0,_GridUtil__WEBPACK_IMPORTED_MODULE_3__.quantize)(min + offset, _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING, 'ceil');\r\n\r\n value = Math.max(value, min);\r\n }\r\n }\r\n\r\n if (options && options.max) {\r\n max = options.max;\r\n\r\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(max)) {\r\n max = (0,_GridUtil__WEBPACK_IMPORTED_MODULE_3__.quantize)(max + offset, _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING, 'floor');\r\n\r\n value = Math.min(value, max);\r\n }\r\n }\r\n\r\n value -= offset;\r\n\r\n return value;\r\n};\r\n\r\nGridSnapping.prototype.isActive = function() {\r\n return this.active;\r\n};\r\n\r\nGridSnapping.prototype.setActive = function(active) {\r\n this.active = active;\r\n\r\n this._eventBus.fire('gridSnapping.toggle', { active: active });\r\n};\r\n\r\nGridSnapping.prototype.toggleActive = function() {\r\n this.setActive(!this.active);\r\n};\r\n\r\nGridSnapping.$inject = [\r\n 'elementRegistry',\r\n 'eventBus',\r\n 'config.gridSnapping'\r\n];\r\n\r\n// helpers //////////\r\n\r\n/**\r\n * Get minimum and maximum snap constraints.\r\n * Constraints are cached.\r\n *\r\n * @param {Object} event\r\n * @param {Object} event.context\r\n * @param {string} axis\r\n *\r\n * @returns {boolean|Object}\r\n */\r\nfunction getSnapConstraints(event, axis) {\r\n var context = event.context,\r\n createConstraints = context.createConstraints,\r\n resizeConstraints = context.resizeConstraints || {},\r\n gridSnappingContext = context.gridSnappingContext,\r\n snapConstraints = gridSnappingContext.snapConstraints;\r\n\r\n // cache snap constraints\r\n if (snapConstraints && snapConstraints[ axis ]) {\r\n return snapConstraints[ axis ];\r\n }\r\n\r\n if (!snapConstraints) {\r\n snapConstraints = gridSnappingContext.snapConstraints = {};\r\n }\r\n\r\n if (!snapConstraints[ axis ]) {\r\n snapConstraints[ axis ] = {};\r\n }\r\n\r\n var direction = context.direction;\r\n\r\n // create\r\n if (createConstraints) {\r\n if (isHorizontal(axis)) {\r\n snapConstraints.x.min = createConstraints.left;\r\n snapConstraints.x.max = createConstraints.right;\r\n } else {\r\n snapConstraints.y.min = createConstraints.top;\r\n snapConstraints.y.max = createConstraints.bottom;\r\n }\r\n }\r\n\r\n // resize\r\n var minResizeConstraints = resizeConstraints.min,\r\n maxResizeConstraints = resizeConstraints.max;\r\n\r\n if (minResizeConstraints) {\r\n if (isHorizontal(axis)) {\r\n\r\n if (isWest(direction)) {\r\n snapConstraints.x.max = minResizeConstraints.left;\r\n } else {\r\n snapConstraints.x.min = minResizeConstraints.right;\r\n }\r\n\r\n } else {\r\n\r\n if (isNorth(direction)) {\r\n snapConstraints.y.max = minResizeConstraints.top;\r\n } else {\r\n snapConstraints.y.min = minResizeConstraints.bottom;\r\n }\r\n\r\n }\r\n }\r\n\r\n if (maxResizeConstraints) {\r\n if (isHorizontal(axis)) {\r\n\r\n if (isWest(direction)) {\r\n snapConstraints.x.min = maxResizeConstraints.left;\r\n } else {\r\n snapConstraints.x.max = maxResizeConstraints.right;\r\n }\r\n\r\n } else {\r\n\r\n if (isNorth(direction)) {\r\n snapConstraints.y.min = maxResizeConstraints.top;\r\n } else {\r\n snapConstraints.y.max = maxResizeConstraints.bottom;\r\n }\r\n\r\n }\r\n }\r\n\r\n return snapConstraints[ axis ];\r\n}\r\n\r\n/**\r\n * Get snap offset.\r\n * Offset is cached.\r\n *\r\n * @param {Object} event\r\n * @param {string} axis\r\n * @param {ElementRegistry} elementRegistry\r\n *\r\n * @returns {number}\r\n */\r\nfunction getSnapOffset(event, axis, elementRegistry) {\r\n var context = event.context,\r\n shape = event.shape,\r\n gridSnappingContext = context.gridSnappingContext,\r\n snapLocation = gridSnappingContext.snapLocation,\r\n snapOffset = gridSnappingContext.snapOffset;\r\n\r\n // cache snap offset\r\n if (snapOffset && (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(snapOffset[ axis ])) {\r\n return snapOffset[ axis ];\r\n }\r\n\r\n if (!snapOffset) {\r\n snapOffset = gridSnappingContext.snapOffset = {};\r\n }\r\n\r\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(snapOffset[ axis ])) {\r\n snapOffset[ axis ] = 0;\r\n }\r\n\r\n if (!shape) {\r\n return snapOffset[ axis ];\r\n }\r\n\r\n if (!elementRegistry.get(shape.id)) {\r\n\r\n if (isHorizontal(axis)) {\r\n snapOffset[ axis ] += shape[ axis ] + shape.width / 2;\r\n } else {\r\n snapOffset[ axis ] += shape[ axis ] + shape.height / 2;\r\n }\r\n }\r\n\r\n if (!snapLocation) {\r\n return snapOffset[ axis ];\r\n }\r\n\r\n if (axis === 'x') {\r\n if (/left/.test(snapLocation)) {\r\n snapOffset[ axis ] -= shape.width / 2;\r\n } else if (/right/.test(snapLocation)) {\r\n snapOffset[ axis ] += shape.width / 2;\r\n }\r\n } else {\r\n if (/top/.test(snapLocation)) {\r\n snapOffset[ axis ] -= shape.height / 2;\r\n } else if (/bottom/.test(snapLocation)) {\r\n snapOffset[ axis ] += shape.height / 2;\r\n }\r\n }\r\n\r\n return snapOffset[ axis ];\r\n}\r\n\r\nfunction isHorizontal(axis) {\r\n return axis === 'x';\r\n}\r\n\r\nfunction isNorth(direction) {\r\n return direction.indexOf('n') !== -1;\r\n}\r\n\r\nfunction isWest(direction) {\r\n return direction.indexOf('w') !== -1;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js": /*!************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SPACING\": () => (/* binding */ SPACING),\n/* harmony export */ \"quantize\": () => (/* binding */ quantize)\n/* harmony export */ });\nvar SPACING = 10;\n\nfunction quantize(value, quantum, fn) {\n if (!fn) {\n fn = 'round';\n }\n\n return Math[ fn ](value / quantum) * quantum;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js": /*!***************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js ***! \***************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizeBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Integrates resizing with grid snapping.\r\n */\r\nfunction ResizeBehavior(eventBus, gridSnapping) {\r\n _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\r\n\r\n this._gridSnapping = gridSnapping;\r\n\r\n var self = this;\r\n\r\n this.preExecute('shape.resize', function(event) {\r\n var context = event.context,\r\n hints = context.hints || {},\r\n autoResize = hints.autoResize;\r\n\r\n if (!autoResize) {\r\n return;\r\n }\r\n\r\n var shape = context.shape,\r\n newBounds = context.newBounds;\r\n\r\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(autoResize)) {\r\n context.newBounds = self.snapComplex(newBounds, autoResize);\r\n } else {\r\n context.newBounds = self.snapSimple(shape, newBounds);\r\n }\r\n });\r\n}\r\n\r\nResizeBehavior.$inject = [\r\n 'eventBus',\r\n 'gridSnapping',\r\n 'modeling'\r\n];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ResizeBehavior, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n/**\r\n * Snap width and height in relation to center.\r\n *\r\n * @param {djs.model.shape} shape\r\n * @param {Bounds} newBounds\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapSimple = function(shape, newBounds) {\r\n var gridSnapping = this._gridSnapping;\r\n\r\n newBounds.width = gridSnapping.snapValue(newBounds.width, {\r\n min: newBounds.width\r\n });\r\n\r\n newBounds.height = gridSnapping.snapValue(newBounds.height, {\r\n min: newBounds.height\r\n });\r\n\r\n newBounds.x = shape.x + (shape.width / 2) - (newBounds.width / 2);\r\n newBounds.y = shape.y + (shape.height / 2) - (newBounds.height / 2);\r\n\r\n return newBounds;\r\n};\r\n\r\n/**\r\n * Snap x, y, width and height according to given directions.\r\n *\r\n * @param {Bounds} newBounds\r\n * @param {string} directions - Directions as {n|w|s|e}.\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapComplex = function(newBounds, directions) {\r\n if (/w|e/.test(directions)) {\r\n newBounds = this.snapHorizontally(newBounds, directions);\r\n }\r\n\r\n if (/n|s/.test(directions)) {\r\n newBounds = this.snapVertically(newBounds, directions);\r\n }\r\n\r\n return newBounds;\r\n};\r\n\r\n/**\r\n * Snap in one or both directions horizontally.\r\n *\r\n * @param {Bounds} newBounds\r\n * @param {string} directions - Directions as {n|w|s|e}.\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapHorizontally = function(newBounds, directions) {\r\n var gridSnapping = this._gridSnapping,\r\n west = /w/.test(directions),\r\n east = /e/.test(directions);\r\n\r\n var snappedNewBounds = {};\r\n\r\n snappedNewBounds.width = gridSnapping.snapValue(newBounds.width, {\r\n min: newBounds.width\r\n });\r\n\r\n if (east) {\r\n\r\n // handle \r\n if (west) {\r\n snappedNewBounds.x = gridSnapping.snapValue(newBounds.x, {\r\n max: newBounds.x\r\n });\r\n\r\n snappedNewBounds.width += gridSnapping.snapValue(newBounds.x - snappedNewBounds.x, {\r\n min: newBounds.x - snappedNewBounds.x\r\n });\r\n }\r\n\r\n // handle \r\n else {\r\n newBounds.x = newBounds.x + newBounds.width - snappedNewBounds.width;\r\n }\r\n }\r\n\r\n // assign snapped x and width\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(newBounds, snappedNewBounds);\r\n\r\n return newBounds;\r\n};\r\n\r\n/**\r\n * Snap in one or both directions vertically.\r\n *\r\n * @param {Bounds} newBounds\r\n * @param {string} directions - Directions as {n|w|s|e}.\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapVertically = function(newBounds, directions) {\r\n var gridSnapping = this._gridSnapping,\r\n north = /n/.test(directions),\r\n south = /s/.test(directions);\r\n\r\n var snappedNewBounds = {};\r\n\r\n snappedNewBounds.height = gridSnapping.snapValue(newBounds.height, {\r\n min: newBounds.height\r\n });\r\n\r\n if (north) {\r\n\r\n // handle \r\n if (south) {\r\n snappedNewBounds.y = gridSnapping.snapValue(newBounds.y, {\r\n max: newBounds.y\r\n });\r\n\r\n snappedNewBounds.height += gridSnapping.snapValue(newBounds.y - snappedNewBounds.y, {\r\n min: newBounds.y - snappedNewBounds.y\r\n });\r\n }\r\n\r\n // handle \r\n else {\r\n newBounds.y = newBounds.y + newBounds.height - snappedNewBounds.height;\r\n }\r\n }\r\n\r\n // assign snapped y and height\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(newBounds, snappedNewBounds);\r\n\r\n return newBounds;\r\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js": /*!******************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js ***! \******************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SpaceToolBehavior)\n/* harmony export */ });\nvar HIGH_PRIORITY = 2000;\r\n\r\n/**\r\n * Integrates space tool with grid snapping.\r\n */\r\nfunction SpaceToolBehavior(eventBus, gridSnapping) {\r\n eventBus.on([\r\n 'spaceTool.move',\r\n 'spaceTool.end'\r\n ], HIGH_PRIORITY, function(event) {\r\n var context = event.context;\r\n\r\n if (!context.initialized) {\r\n return;\r\n }\r\n\r\n var axis = context.axis;\r\n\r\n var snapped;\r\n\r\n if (axis === 'x') {\r\n\r\n // snap delta x to multiple of 10\r\n snapped = gridSnapping.snapValue(event.dx);\r\n\r\n event.x = event.x + snapped - event.dx;\r\n event.dx = snapped;\r\n } else {\r\n\r\n // snap delta y to multiple of 10\r\n snapped = gridSnapping.snapValue(event.dy);\r\n\r\n event.y = event.y + snapped - event.dy;\r\n event.dy = snapped;\r\n }\r\n });\r\n}\r\n\r\nSpaceToolBehavior.$inject = [\r\n 'eventBus',\r\n 'gridSnapping'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ResizeBehavior */ \"./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js\");\n/* harmony import */ var _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SpaceToolBehavior */ \"./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js\");\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n __init__: [\r\n 'gridSnappingResizeBehavior',\r\n 'gridSnappingSpaceToolBehavior'\r\n ],\r\n gridSnappingResizeBehavior: [ 'type', _ResizeBehavior__WEBPACK_IMPORTED_MODULE_0__.default ],\r\n gridSnappingSpaceToolBehavior: [ 'type', _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_1__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/grid-snapping/index.js": /*!*********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/grid-snapping/index.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _GridSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GridSnapping */ \"./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js\");\n/* harmony import */ var _behavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./behavior */ \"./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js\");\n\r\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n __depends__: [ _behavior__WEBPACK_IMPORTED_MODULE_0__.default ],\r\n __init__: [ 'gridSnapping' ],\r\n gridSnapping: [ 'type', _GridSnapping__WEBPACK_IMPORTED_MODULE_1__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/hand-tool/HandTool.js": /*!********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/hand-tool/HandTool.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ HandTool)\n/* harmony export */ });\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var _features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../features/keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n\n\n\n\nvar HIGH_PRIORITY = 1500;\nvar HAND_CURSOR = 'grab';\n\n\nfunction HandTool(\n eventBus, canvas, dragging,\n injector, toolManager, mouse) {\n\n this._dragging = dragging;\n this._mouse = mouse;\n\n var self = this,\n keyboard = injector.get('keyboard', false);\n\n toolManager.registerTool('hand', {\n tool: 'hand',\n dragging: 'hand.move'\n });\n\n eventBus.on('element.mousedown', HIGH_PRIORITY, function(event) {\n\n if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event)) {\n return;\n }\n\n self.activateMove(event.originalEvent, true);\n\n return false;\n });\n\n keyboard && keyboard.addListener(HIGH_PRIORITY, function(e) {\n if (!isSpace(e.keyEvent) || self.isActive()) {\n return;\n }\n\n var mouseEvent = self._mouse.getLastMoveEvent();\n\n self.activateMove(mouseEvent, !!mouseEvent);\n }, 'keyboard.keydown');\n\n keyboard && keyboard.addListener(HIGH_PRIORITY, function(e) {\n if (!isSpace(e.keyEvent) || !self.isActive()) {\n return;\n }\n\n self.toggle();\n }, 'keyboard.keyup');\n\n eventBus.on('hand.end', function(event) {\n var target = event.originalEvent.target;\n\n // only reactive on diagram click\n // on some occasions, event.hover is not set and we have to check if the target is an svg\n if (!event.hover && !(target instanceof SVGElement)) {\n return false;\n }\n\n eventBus.once('hand.ended', function() {\n self.activateMove(event.originalEvent, { reactivate: true });\n });\n\n });\n\n eventBus.on('hand.move.move', function(event) {\n var scale = canvas.viewbox().scale;\n\n canvas.scroll({\n dx: event.dx * scale,\n dy: event.dy * scale\n });\n });\n\n eventBus.on('hand.move.end', function(event) {\n var context = event.context,\n reactivate = context.reactivate;\n\n // Don't reactivate if the user is using the keyboard keybinding\n if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event) && reactivate) {\n\n eventBus.once('hand.move.ended', function(event) {\n self.activateHand(event.originalEvent, true, true);\n });\n\n }\n\n return false;\n });\n\n}\n\nHandTool.$inject = [\n 'eventBus',\n 'canvas',\n 'dragging',\n 'injector',\n 'toolManager',\n 'mouse'\n];\n\n\nHandTool.prototype.activateMove = function(event, autoActivate, context) {\n if (typeof autoActivate === 'object') {\n context = autoActivate;\n autoActivate = false;\n }\n\n this._dragging.init(event, 'hand.move', {\n autoActivate: autoActivate,\n cursor: HAND_CURSOR,\n data: {\n context: context || {}\n }\n });\n};\n\nHandTool.prototype.activateHand = function(event, autoActivate, reactivate) {\n this._dragging.init(event, 'hand', {\n trapClick: false,\n autoActivate: autoActivate,\n cursor: HAND_CURSOR,\n data: {\n context: {\n reactivate: reactivate\n }\n }\n });\n};\n\nHandTool.prototype.toggle = function() {\n if (this.isActive()) {\n return this._dragging.cancel();\n }\n\n var mouseEvent = this._mouse.getLastMoveEvent();\n\n this.activateHand(mouseEvent, !!mouseEvent);\n};\n\nHandTool.prototype.isActive = function() {\n var context = this._dragging.context();\n\n if (context) {\n return /^(hand|hand\\.move)$/.test(context.prefix);\n }\n\n return false;\n};\n\n// helpers //////////\n\nfunction isSpace(keyEvent) {\n return (0,_features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_1__.isKey)(' ', keyEvent);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hand-tool/HandTool.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/hand-tool/index.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/hand-tool/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _HandTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HandTool */ \"./node_modules/diagram-js/lib/features/hand-tool/HandTool.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _tool_manager__WEBPACK_IMPORTED_MODULE_0__.default,\n _mouse__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n __init__: [ 'handTool' ],\n handTool: [ 'type', _HandTool__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hand-tool/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js": /*!********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ HoverFix)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\nvar HIGH_PRIORITY = 1500;\n\n\n/**\n * Browsers may swallow certain events (hover, out ...) if users are to\n * fast with the mouse.\n *\n * @see http://stackoverflow.com/questions/7448468/why-cant-i-reliably-capture-a-mouseout-event\n *\n * The fix implemented in this component ensure that we\n *\n * 1) have a hover state after a successful drag.move event\n * 2) have an out event when dragging leaves an element\n *\n * @param {ElementRegistry} elementRegistry\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction HoverFix(elementRegistry, eventBus, injector) {\n\n var self = this;\n\n var dragging = injector.get('dragging', false);\n\n /**\n * Make sure we are god damn hovering!\n *\n * @param {Event} dragging event\n */\n function ensureHover(event) {\n\n if (event.hover) {\n return;\n }\n\n var originalEvent = event.originalEvent;\n\n var gfx = self._findTargetGfx(originalEvent);\n\n var element = gfx && elementRegistry.get(gfx);\n\n if (gfx && element) {\n\n // 1) cancel current mousemove\n event.stopPropagation();\n\n // 2) emit fake hover for new target\n dragging.hover({ element: element, gfx: gfx });\n\n // 3) re-trigger move event\n dragging.move(originalEvent);\n }\n }\n\n\n if (dragging) {\n\n /**\n * We wait for a specific sequence of events before\n * emitting a fake drag.hover event.\n *\n * Event Sequence:\n *\n * drag.start\n * drag.move >> ensure we are hovering\n */\n eventBus.on('drag.start', function(event) {\n\n eventBus.once('drag.move', HIGH_PRIORITY, function(event) {\n\n ensureHover(event);\n\n });\n\n });\n }\n\n\n /**\n * We make sure that element.out is always fired, even if the\n * browser swallows an element.out event.\n *\n * Event sequence:\n *\n * element.hover\n * (element.out >> sometimes swallowed)\n * element.hover >> ensure we fired element.out\n */\n (function() {\n var hoverGfx;\n var hover;\n\n eventBus.on('element.hover', function(event) {\n\n // (1) remember current hover element\n hoverGfx = event.gfx;\n hover = event.element;\n });\n\n eventBus.on('element.hover', HIGH_PRIORITY, function(event) {\n\n // (3) am I on an element still?\n if (hover) {\n\n // (4) that is a problem, gotta \"simulate the out\"\n eventBus.fire('element.out', {\n element: hover,\n gfx: hoverGfx\n });\n }\n\n });\n\n eventBus.on('element.out', function() {\n\n // (2) unset hover state if we correctly outed us *GG*\n hoverGfx = null;\n hover = null;\n });\n\n })();\n\n this._findTargetGfx = function(event) {\n var position,\n target;\n\n if (!(event instanceof MouseEvent)) {\n return;\n }\n\n position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event);\n\n // damn expensive operation, ouch!\n target = document.elementFromPoint(position.x, position.y);\n\n return getGfx(target);\n };\n\n}\n\nHoverFix.$inject = [\n 'elementRegistry',\n 'eventBus',\n 'injector'\n];\n\n\n// helpers /////////////////////\n\nfunction getGfx(target) {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.closest)(target, 'svg, .djs-element', true);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/hover-fix/index.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/hover-fix/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _HoverFix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HoverFix */ \"./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [\n 'hoverFix'\n ],\n hoverFix: [ 'type', _HoverFix__WEBPACK_IMPORTED_MODULE_0__.default ],\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hover-fix/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js": /*!**************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ InteractionEvents)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n\n\n\n\n\n\n\n\n\n\nfunction allowAll(event) { return true; }\n\nfunction allowPrimaryAndAuxiliary(event) {\n return (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.isPrimaryButton)(event) || (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.isAuxiliaryButton)(event);\n}\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * A plugin that provides interaction events for diagram elements.\n *\n * It emits the following events:\n *\n * * element.click\n * * element.contextmenu\n * * element.dblclick\n * * element.hover\n * * element.mousedown\n * * element.mousemove\n * * element.mouseup\n * * element.out\n *\n * Each event is a tuple { element, gfx, originalEvent }.\n *\n * Canceling the event via Event#preventDefault()\n * prevents the original DOM operation.\n *\n * @param {EventBus} eventBus\n */\nfunction InteractionEvents(eventBus, elementRegistry, styles) {\n\n var self = this;\n\n /**\n * Fire an interaction event.\n *\n * @param {string} type local event name, e.g. element.click.\n * @param {DOMEvent} event native event\n * @param {djs.model.Base} [element] the diagram element to emit the event on;\n * defaults to the event target\n */\n function fire(type, event, element) {\n\n if (isIgnored(type, event)) {\n return;\n }\n\n var target, gfx, returnValue;\n\n if (!element) {\n target = event.delegateTarget || event.target;\n\n if (target) {\n gfx = target;\n element = elementRegistry.get(gfx);\n }\n } else {\n gfx = elementRegistry.getGraphics(element);\n }\n\n if (!gfx || !element) {\n return;\n }\n\n returnValue = eventBus.fire(type, {\n element: element,\n gfx: gfx,\n originalEvent: event\n });\n\n if (returnValue === false) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n // TODO(nikku): document this\n var handlers = {};\n\n function mouseHandler(localEventName) {\n return handlers[localEventName];\n }\n\n function isIgnored(localEventName, event) {\n\n var filter = ignoredFilters[localEventName] || _util_Mouse__WEBPACK_IMPORTED_MODULE_0__.isPrimaryButton;\n\n // only react on left mouse button interactions\n // except for interaction events that are enabled\n // for secundary mouse button\n return !filter(event);\n }\n\n var bindings = {\n click: 'element.click',\n contextmenu: 'element.contextmenu',\n dblclick: 'element.dblclick',\n mousedown: 'element.mousedown',\n mousemove: 'element.mousemove',\n mouseover: 'element.hover',\n mouseout: 'element.out',\n mouseup: 'element.mouseup',\n };\n\n var ignoredFilters = {\n 'element.contextmenu': allowAll,\n 'element.mousedown': allowPrimaryAndAuxiliary,\n 'element.mouseup': allowPrimaryAndAuxiliary,\n 'element.click': allowPrimaryAndAuxiliary,\n 'element.dblclick': allowPrimaryAndAuxiliary\n };\n\n\n // manual event trigger //////////\n\n /**\n * Trigger an interaction event (based on a native dom event)\n * on the target shape or connection.\n *\n * @param {string} eventName the name of the triggered DOM event\n * @param {MouseEvent} event\n * @param {djs.model.Base} targetElement\n */\n function triggerMouseEvent(eventName, event, targetElement) {\n\n // i.e. element.mousedown...\n var localEventName = bindings[eventName];\n\n if (!localEventName) {\n throw new Error('unmapped DOM event name <' + eventName + '>');\n }\n\n return fire(localEventName, event, targetElement);\n }\n\n\n var ELEMENT_SELECTOR = 'svg, .djs-element';\n\n // event handling ///////\n\n function registerEvent(node, event, localEvent, ignoredFilter) {\n\n var handler = handlers[localEvent] = function(event) {\n fire(localEvent, event);\n };\n\n if (ignoredFilter) {\n ignoredFilters[localEvent] = ignoredFilter;\n }\n\n handler.$delegate = min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(node, ELEMENT_SELECTOR, event, handler);\n }\n\n function unregisterEvent(node, event, localEvent) {\n\n var handler = mouseHandler(localEvent);\n\n if (!handler) {\n return;\n }\n\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.unbind(node, event, handler.$delegate);\n }\n\n function registerEvents(svg) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(bindings, function(val, key) {\n registerEvent(svg, key, val);\n });\n }\n\n function unregisterEvents(svg) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(bindings, function(val, key) {\n unregisterEvent(svg, key, val);\n });\n }\n\n eventBus.on('canvas.destroy', function(event) {\n unregisterEvents(event.svg);\n });\n\n eventBus.on('canvas.init', function(event) {\n registerEvents(event.svg);\n });\n\n\n // hit box updating ////////////////\n\n eventBus.on([ 'shape.added', 'connection.added' ], function(event) {\n var element = event.element,\n gfx = event.gfx;\n\n eventBus.fire('interactionEvents.createHit', { element: element, gfx: gfx });\n });\n\n // Update djs-hit on change.\n // A low priortity is necessary, because djs-hit of labels has to be updated\n // after the label bounds have been updated in the renderer.\n eventBus.on([\n 'shape.changed',\n 'connection.changed'\n ], LOW_PRIORITY, function(event) {\n\n var element = event.element,\n gfx = event.gfx;\n\n eventBus.fire('interactionEvents.updateHit', { element: element, gfx: gfx });\n });\n\n eventBus.on('interactionEvents.createHit', LOW_PRIORITY, function(event) {\n var element = event.element,\n gfx = event.gfx;\n\n self.createDefaultHit(element, gfx);\n });\n\n eventBus.on('interactionEvents.updateHit', function(event) {\n var element = event.element,\n gfx = event.gfx;\n\n self.updateDefaultHit(element, gfx);\n });\n\n\n // hit styles ////////////\n\n var STROKE_HIT_STYLE = createHitStyle('djs-hit djs-hit-stroke');\n\n var CLICK_STROKE_HIT_STYLE = createHitStyle('djs-hit djs-hit-click-stroke');\n\n var ALL_HIT_STYLE = createHitStyle('djs-hit djs-hit-all');\n\n var HIT_TYPES = {\n 'all': ALL_HIT_STYLE,\n 'click-stroke': CLICK_STROKE_HIT_STYLE,\n 'stroke': STROKE_HIT_STYLE\n };\n\n function createHitStyle(classNames, attrs) {\n\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n stroke: 'white',\n strokeWidth: 15\n }, attrs || {});\n\n return styles.cls(classNames, [ 'no-fill', 'no-border' ], attrs);\n }\n\n\n // style helpers ///////////////\n\n function applyStyle(hit, type) {\n\n var attrs = HIT_TYPES[type];\n\n if (!attrs) {\n throw new Error('invalid hit type <' + type + '>');\n }\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, attrs);\n\n return hit;\n }\n\n function appendHit(gfx, hit) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(gfx, hit);\n }\n\n\n // API\n\n /**\n * Remove hints on the given graphics.\n *\n * @param {SVGElement} gfx\n */\n this.removeHits = function(gfx) {\n var hits = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.queryAll)('.djs-hit', gfx);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(hits, tiny_svg__WEBPACK_IMPORTED_MODULE_3__.remove);\n };\n\n /**\n * Create default hit for the given element.\n *\n * @param {djs.model.Base} element\n * @param {SVGElement} gfx\n *\n * @return {SVGElement} created hit\n */\n this.createDefaultHit = function(element, gfx) {\n var waypoints = element.waypoints,\n isFrame = element.isFrame,\n boxType;\n\n if (waypoints) {\n return this.createWaypointsHit(gfx, waypoints);\n } else {\n\n boxType = isFrame ? 'stroke' : 'all';\n\n return this.createBoxHit(gfx, boxType, {\n width: element.width,\n height: element.height\n });\n }\n };\n\n /**\n * Create hits for the given waypoints.\n *\n * @param {SVGElement} gfx\n * @param {Array} waypoints\n *\n * @return {SVGElement}\n */\n this.createWaypointsHit = function(gfx, waypoints) {\n\n var hit = (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.createLine)(waypoints);\n\n applyStyle(hit, 'stroke');\n\n appendHit(gfx, hit);\n\n return hit;\n };\n\n /**\n * Create hits for a box.\n *\n * @param {SVGElement} gfx\n * @param {string} hitType\n * @param {Object} attrs\n *\n * @return {SVGElement}\n */\n this.createBoxHit = function(gfx, type, attrs) {\n\n attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n x: 0,\n y: 0\n }, attrs);\n\n var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('rect');\n\n applyStyle(hit, type);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, attrs);\n\n appendHit(gfx, hit);\n\n return hit;\n };\n\n /**\n * Update default hit of the element.\n *\n * @param {djs.model.Base} element\n * @param {SVGElement} gfx\n *\n * @return {SVGElement} updated hit\n */\n this.updateDefaultHit = function(element, gfx) {\n\n var hit = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.query)('.djs-hit', gfx);\n\n if (!hit) {\n return;\n }\n\n if (element.waypoints) {\n (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.updateLine)(hit, element.waypoints);\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, {\n width: element.width,\n height: element.height\n });\n }\n\n return hit;\n };\n\n this.fire = fire;\n\n this.triggerMouseEvent = triggerMouseEvent;\n\n this.mouseHandler = mouseHandler;\n\n this.registerEvent = registerEvent;\n this.unregisterEvent = unregisterEvent;\n}\n\n\nInteractionEvents.$inject = [\n 'eventBus',\n 'elementRegistry',\n 'styles'\n];\n\n\n/**\n * An event indicating that the mouse hovered over an element\n *\n * @event element.hover\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has left an element\n *\n * @event element.out\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has clicked an element\n *\n * @event element.click\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has double clicked an element\n *\n * @event element.dblclick\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has gone down on an element.\n *\n * @event element.mousedown\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has gone up on an element.\n *\n * @event element.mouseup\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the context menu action is triggered\n * via mouse or touch controls.\n *\n * @event element.contextmenu\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/interaction-events/index.js": /*!**************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/interaction-events/index.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _InteractionEvents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InteractionEvents */ \"./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'interactionEvents' ],\n interactionEvents: [ 'type', _InteractionEvents__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/interaction-events/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js": /*!***********************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js ***! \***********************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ KeyboardMoveSelection)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nvar DEFAULT_CONFIG = {\n moveSpeed: 1,\n moveSpeedAccelerated: 10\n};\n\nvar HIGHER_PRIORITY = 1500;\n\nvar LEFT = 'left';\nvar UP = 'up';\nvar RIGHT = 'right';\nvar DOWN = 'down';\n\nvar KEY_TO_DIRECTION = {\n ArrowLeft: LEFT,\n Left: LEFT,\n ArrowUp: UP,\n Up: UP,\n ArrowRight: RIGHT,\n Right: RIGHT,\n ArrowDown: DOWN,\n Down: DOWN\n};\n\nvar DIRECTIONS_DELTA = {\n left: function(speed) {\n return {\n x: -speed,\n y: 0\n };\n },\n up: function(speed) {\n return {\n x: 0,\n y: -speed\n };\n },\n right: function(speed) {\n return {\n x: speed,\n y: 0\n };\n },\n down: function(speed) {\n return {\n x: 0,\n y: speed\n };\n }\n};\n\n\n/**\n * Enables to move selection with keyboard arrows.\n * Use with Shift for modified speed (default=1, with Shift=10).\n * Pressed Cmd/Ctrl turns the feature off.\n *\n * @param {Object} config\n * @param {number} [config.moveSpeed=1]\n * @param {number} [config.moveSpeedAccelerated=10]\n * @param {Keyboard} keyboard\n * @param {Modeling} modeling\n * @param {Selection} selection\n */\nfunction KeyboardMoveSelection(\n config,\n keyboard,\n modeling,\n rules,\n selection\n) {\n\n var self = this;\n\n this._config = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, DEFAULT_CONFIG, config || {});\n\n keyboard.addListener(HIGHER_PRIORITY, function(event) {\n\n var keyEvent = event.keyEvent;\n\n var direction = KEY_TO_DIRECTION[keyEvent.key];\n\n if (!direction) {\n return;\n }\n\n if (keyboard.isCmd(keyEvent)) {\n return;\n }\n\n var accelerated = keyboard.isShift(keyEvent);\n\n self.moveSelection(direction, accelerated);\n\n return true;\n });\n\n\n /**\n * Move selected elements in the given direction,\n * optionally specifying accelerated movement.\n *\n * @param {string} direction\n * @param {boolean} [accelerated=false]\n */\n this.moveSelection = function(direction, accelerated) {\n\n var selectedElements = selection.get();\n\n if (!selectedElements.length) {\n return;\n }\n\n var speed = this._config[\n accelerated ?\n 'moveSpeedAccelerated' :\n 'moveSpeed'\n ];\n\n var delta = DIRECTIONS_DELTA[direction](speed);\n\n var canMove = rules.allowed('elements.move', {\n shapes: selectedElements\n });\n\n if (canMove) {\n modeling.moveElements(selectedElements, delta);\n }\n };\n\n}\n\nKeyboardMoveSelection.$inject = [\n 'config.keyboardMoveSelection',\n 'keyboard',\n 'modeling',\n 'rules',\n 'selection'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js": /*!*******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _KeyboardMoveSelection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KeyboardMoveSelection */ \"./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _keyboard__WEBPACK_IMPORTED_MODULE_0__.default,\n _selection__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n __init__: [\n 'keyboardMoveSelection'\n ],\n keyboardMoveSelection: [ 'type', _KeyboardMoveSelection__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/keyboard/Keyboard.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/keyboard/Keyboard.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Keyboard)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n\n\n\n\n\n\nvar KEYDOWN_EVENT = 'keyboard.keydown',\n KEYUP_EVENT = 'keyboard.keyup';\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A keyboard abstraction that may be activated and\n * deactivated by users at will, consuming key events\n * and triggering diagram actions.\n *\n * For keys pressed down, keyboard fires `keyboard.keydown` event.\n * The event context contains one field which is `KeyboardEvent` event.\n *\n * The implementation fires the following key events that allow\n * other components to hook into key handling:\n *\n * - keyboard.bind\n * - keyboard.unbind\n * - keyboard.init\n * - keyboard.destroy\n *\n * All events contain one field which is node.\n *\n * A default binding for the keyboard may be specified via the\n * `keyboard.bindTo` configuration option.\n *\n * @param {Config} config\n * @param {EventBus} eventBus\n */\nfunction Keyboard(config, eventBus) {\n var self = this;\n\n this._config = config || {};\n this._eventBus = eventBus;\n\n this._keydownHandler = this._keydownHandler.bind(this);\n this._keyupHandler = this._keyupHandler.bind(this);\n\n // properly clean dom registrations\n eventBus.on('diagram.destroy', function() {\n self._fire('destroy');\n\n self.unbind();\n });\n\n eventBus.on('diagram.init', function() {\n self._fire('init');\n });\n\n eventBus.on('attach', function() {\n if (config && config.bindTo) {\n self.bind(config.bindTo);\n }\n });\n\n eventBus.on('detach', function() {\n self.unbind();\n });\n}\n\nKeyboard.$inject = [\n 'config.keyboard',\n 'eventBus'\n];\n\nKeyboard.prototype._keydownHandler = function(event) {\n this._keyHandler(event, KEYDOWN_EVENT);\n};\n\nKeyboard.prototype._keyupHandler = function(event) {\n this._keyHandler(event, KEYUP_EVENT);\n};\n\nKeyboard.prototype._keyHandler = function(event, type) {\n var target = event.target,\n eventBusResult;\n\n if (isInput(target)) {\n return;\n }\n\n var context = {\n keyEvent: event\n };\n\n eventBusResult = this._eventBus.fire(type || KEYDOWN_EVENT, context);\n\n if (eventBusResult) {\n event.preventDefault();\n }\n};\n\nKeyboard.prototype.bind = function(node) {\n\n // make sure that the keyboard is only bound once to the DOM\n this.unbind();\n\n this._node = node;\n\n // bind key events\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(node, 'keydown', this._keydownHandler, true);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(node, 'keyup', this._keyupHandler, true);\n\n this._fire('bind');\n};\n\nKeyboard.prototype.getBinding = function() {\n return this._node;\n};\n\nKeyboard.prototype.unbind = function() {\n var node = this._node;\n\n if (node) {\n this._fire('unbind');\n\n // unbind key events\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(node, 'keydown', this._keydownHandler, true);\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(node, 'keyup', this._keyupHandler, true);\n }\n\n this._node = null;\n};\n\nKeyboard.prototype._fire = function(event) {\n this._eventBus.fire('keyboard.' + event, { node: this._node });\n};\n\n/**\n * Add a listener function that is notified with `KeyboardEvent` whenever\n * the keyboard is bound and the user presses a key. If no priority is\n * provided, the default value of 1000 is used.\n *\n * @param {number} [priority]\n * @param {Function} listener\n * @param {string} type\n */\nKeyboard.prototype.addListener = function(priority, listener, type) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isFunction)(priority)) {\n type = listener;\n listener = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n this._eventBus.on(type || KEYDOWN_EVENT, priority, listener);\n};\n\nKeyboard.prototype.removeListener = function(listener, type) {\n this._eventBus.off(type || KEYDOWN_EVENT, listener);\n};\n\nKeyboard.prototype.hasModifier = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.hasModifier;\nKeyboard.prototype.isCmd = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.isCmd;\nKeyboard.prototype.isShift = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.isShift;\nKeyboard.prototype.isKey = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.isKey;\n\n\n\n// helpers ///////\n\nfunction isInput(target) {\n return target && ((0,min_dom__WEBPACK_IMPORTED_MODULE_0__.matches)(target, 'input, textarea') || target.contentEditable === 'true');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/Keyboard.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js": /*!***************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KEYCODE_C\": () => (/* binding */ KEYCODE_C),\n/* harmony export */ \"KEYCODE_V\": () => (/* binding */ KEYCODE_V),\n/* harmony export */ \"KEYCODE_Y\": () => (/* binding */ KEYCODE_Y),\n/* harmony export */ \"KEYCODE_Z\": () => (/* binding */ KEYCODE_Z),\n/* harmony export */ \"KEYS_COPY\": () => (/* binding */ KEYS_COPY),\n/* harmony export */ \"KEYS_PASTE\": () => (/* binding */ KEYS_PASTE),\n/* harmony export */ \"KEYS_REDO\": () => (/* binding */ KEYS_REDO),\n/* harmony export */ \"KEYS_UNDO\": () => (/* binding */ KEYS_UNDO),\n/* harmony export */ \"default\": () => (/* binding */ KeyboardBindings)\n/* harmony export */ });\n/* harmony import */ var _KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n\n\nvar LOW_PRIORITY = 500;\n\nvar KEYCODE_C = 67;\nvar KEYCODE_V = 86;\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\n\nvar KEYS_COPY = ['c', 'C', KEYCODE_C ];\nvar KEYS_PASTE = [ 'v', 'V', KEYCODE_V ];\nvar KEYS_REDO = [ 'y', 'Y', KEYCODE_Y ];\nvar KEYS_UNDO = [ 'z', 'Z', KEYCODE_Z ];\n\n\n/**\n * Adds default keyboard bindings.\n *\n * This does not pull in any features will bind only actions that\n * have previously been registered against the editorActions component.\n *\n * @param {EventBus} eventBus\n * @param {Keyboard} keyboard\n */\nfunction KeyboardBindings(eventBus, keyboard) {\n\n var self = this;\n\n eventBus.on('editorActions.init', LOW_PRIORITY, function(event) {\n\n var editorActions = event.editorActions;\n\n self.registerBindings(keyboard, editorActions);\n });\n}\n\nKeyboardBindings.$inject = [\n 'eventBus',\n 'keyboard'\n];\n\n\n/**\n * Register available keyboard bindings.\n *\n * @param {Keyboard} keyboard\n * @param {EditorActions} editorActions\n */\nKeyboardBindings.prototype.registerBindings = function(keyboard, editorActions) {\n\n /**\n * Add keyboard binding if respective editor action\n * is registered.\n *\n * @param {string} action name\n * @param {Function} fn that implements the key binding\n */\n function addListener(action, fn) {\n\n if (editorActions.isRegistered(action)) {\n keyboard.addListener(fn);\n }\n }\n\n\n // undo\n // (CTRL|CMD) + Z\n addListener('undo', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && !(0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isShift)(event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_UNDO, event)) {\n editorActions.trigger('undo');\n\n return true;\n }\n });\n\n // redo\n // CTRL + Y\n // CMD + SHIFT + Z\n addListener('redo', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_REDO, event) || ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_UNDO, event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isShift)(event)))) {\n editorActions.trigger('redo');\n\n return true;\n }\n });\n\n // copy\n // CTRL/CMD + C\n addListener('copy', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_COPY, event)) {\n editorActions.trigger('copy');\n\n return true;\n }\n });\n\n // paste\n // CTRL/CMD + V\n addListener('paste', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_PASTE, event)) {\n editorActions.trigger('paste');\n\n return true;\n }\n });\n\n // zoom in one step\n // CTRL/CMD + +\n addListener('stepZoom', function(context) {\n\n var event = context.keyEvent;\n\n // quirk: it has to be triggered by `=` as well to work on international keyboard layout\n // cf: https://github.com/bpmn-io/bpmn-js/issues/1362#issuecomment-722989754\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)([ '+', 'Add', '=' ], event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event)) {\n editorActions.trigger('stepZoom', { value: 1 });\n\n return true;\n }\n });\n\n // zoom out one step\n // CTRL + -\n addListener('stepZoom', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)([ '-', 'Subtract' ], event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event)) {\n editorActions.trigger('stepZoom', { value: -1 });\n\n return true;\n }\n });\n\n // zoom to the default level\n // CTRL + 0\n addListener('zoom', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)('0', event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event)) {\n editorActions.trigger('zoom', { value: 1 });\n\n return true;\n }\n });\n\n // delete selected element\n // DEL\n addListener('removeSelection', function(context) {\n\n var event = context.keyEvent;\n\n if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(['Backspace', 'Delete', 'Del' ], event)) {\n editorActions.trigger('removeSelection');\n\n return true;\n }\n });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js": /*!***********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"hasModifier\": () => (/* binding */ hasModifier),\n/* harmony export */ \"isCmd\": () => (/* binding */ isCmd),\n/* harmony export */ \"isKey\": () => (/* binding */ isKey),\n/* harmony export */ \"isShift\": () => (/* binding */ isShift)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n/**\r\n * Returns true if event was triggered with any modifier\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction hasModifier(event) {\r\n return (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey);\r\n}\r\n\r\n/**\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction isCmd(event) {\r\n\r\n // ensure we don't react to AltGr\r\n // (mapped to CTRL + ALT)\r\n if (event.altKey) {\r\n return false;\r\n }\r\n\r\n return event.ctrlKey || event.metaKey;\r\n}\r\n\r\n/**\r\n * Checks if key pressed is one of provided keys.\r\n *\r\n * @param {string|Array} keys\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction isKey(keys, event) {\r\n keys = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(keys) ? keys : [ keys ];\r\n\r\n return keys.indexOf(event.key) !== -1 || keys.indexOf(event.keyCode) !== -1;\r\n}\r\n\r\n/**\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction isShift(event) {\r\n return event.shiftKey;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/keyboard/index.js": /*!****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/keyboard/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/Keyboard.js\");\n/* harmony import */ var _KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KeyboardBindings */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'keyboard', 'keyboardBindings' ],\n keyboard: [ 'type', _Keyboard__WEBPACK_IMPORTED_MODULE_0__.default ],\n keyboardBindings: [ 'type', _KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/label-support/LabelSupport.js": /*!****************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/label-support/LabelSupport.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LabelSupport)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_Removal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Removal */ \"./node_modules/diagram-js/lib/util/Removal.js\");\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\nvar LOW_PRIORITY = 250,\n HIGH_PRIORITY = 1400;\n\n\n\n\n\n\n\n\n/**\n * A handler that makes sure labels are properly moved with\n * their label targets.\n *\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction LabelSupport(injector, eventBus, modeling) {\n\n _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n var movePreview = injector.get('movePreview', false);\n\n // remove labels from the collection that are being\n // moved with other elements anyway\n eventBus.on('shape.move.start', HIGH_PRIORITY, function(e) {\n\n var context = e.context,\n shapes = context.shapes,\n validatedShapes = context.validatedShapes;\n\n context.shapes = removeLabels(shapes);\n context.validatedShapes = removeLabels(validatedShapes);\n });\n\n // add labels to visual's group\n movePreview && eventBus.on('shape.move.start', LOW_PRIORITY, function(e) {\n\n var context = e.context,\n shapes = context.shapes;\n\n var labels = [];\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(shapes, function(element) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(element.labels, function(label) {\n\n if (!label.hidden && context.shapes.indexOf(label) === -1) {\n labels.push(label);\n }\n\n if (element.labelTarget) {\n labels.push(element);\n }\n });\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(labels, function(label) {\n movePreview.makeDraggable(context, label, true);\n });\n\n });\n\n // add all labels to move closure\n this.preExecuted('elements.move', HIGH_PRIORITY, function(e) {\n var context = e.context,\n closure = context.closure,\n enclosedElements = closure.enclosedElements;\n\n var enclosedLabels = [];\n\n // find labels that are not part of\n // move closure yet and add them\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(enclosedElements, function(element) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(element.labels, function(label) {\n\n if (!enclosedElements[label.id]) {\n enclosedLabels.push(label);\n }\n });\n });\n\n closure.addAll(enclosedLabels);\n });\n\n\n this.preExecute([\n 'connection.delete',\n 'shape.delete'\n ], function(e) {\n\n var context = e.context,\n element = context.connection || context.shape;\n\n (0,_util_Removal__WEBPACK_IMPORTED_MODULE_3__.saveClear)(element.labels, function(label) {\n modeling.removeShape(label, { nested: true });\n });\n });\n\n\n this.execute('shape.delete', function(e) {\n\n var context = e.context,\n shape = context.shape,\n labelTarget = shape.labelTarget;\n\n // unset labelTarget\n if (labelTarget) {\n context.labelTargetIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_4__.indexOf)(labelTarget.labels, shape);\n context.labelTarget = labelTarget;\n\n shape.labelTarget = null;\n }\n });\n\n this.revert('shape.delete', function(e) {\n\n var context = e.context,\n shape = context.shape,\n labelTarget = context.labelTarget,\n labelTargetIndex = context.labelTargetIndex;\n\n // restore labelTarget\n if (labelTarget) {\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_4__.add)(labelTarget.labels, shape, labelTargetIndex);\n\n shape.labelTarget = labelTarget;\n }\n });\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(LabelSupport, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nLabelSupport.$inject = [\n 'injector',\n 'eventBus',\n 'modeling'\n];\n\n\n/**\n * Return a filtered list of elements that do not\n * contain attached elements with hosts being part\n * of the selection.\n *\n * @param {Array} elements\n *\n * @return {Array} filtered\n */\nfunction removeLabels(elements) {\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(elements, function(element) {\n\n // filter out labels that are move together\n // with their label targets\n return elements.indexOf(element.labelTarget) === -1;\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/label-support/LabelSupport.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/label-support/index.js": /*!*********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/label-support/index.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _LabelSupport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LabelSupport */ \"./node_modules/diagram-js/lib/features/label-support/LabelSupport.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'labelSupport'],\n labelSupport: [ 'type', _LabelSupport__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/label-support/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LassoTool)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar LASSO_TOOL_CURSOR = 'crosshair';\n\n\nfunction LassoTool(\n eventBus, canvas, dragging,\n elementRegistry, selection, toolManager,\n mouse) {\n\n this._selection = selection;\n this._dragging = dragging;\n this._mouse = mouse;\n\n var self = this;\n\n // lasso visuals implementation\n\n /**\n * A helper that realizes the selection box visual\n */\n var visuals = {\n\n create: function(context) {\n var container = canvas.getDefaultLayer(),\n frame;\n\n frame = context.frame = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, {\n class: 'djs-lasso-overlay',\n width: 1,\n height: 1,\n x: 0,\n y: 0\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(container, frame);\n },\n\n update: function(context) {\n var frame = context.frame,\n bbox = context.bbox;\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, {\n x: bbox.x,\n y: bbox.y,\n width: bbox.width,\n height: bbox.height\n });\n },\n\n remove: function(context) {\n\n if (context.frame) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(context.frame);\n }\n }\n };\n\n toolManager.registerTool('lasso', {\n tool: 'lasso.selection',\n dragging: 'lasso'\n });\n\n eventBus.on('lasso.selection.end', function(event) {\n var target = event.originalEvent.target;\n\n // only reactive on diagram click\n // on some occasions, event.hover is not set and we have to check if the target is an svg\n if (!event.hover && !(target instanceof SVGElement)) {\n return;\n }\n\n eventBus.once('lasso.selection.ended', function() {\n self.activateLasso(event.originalEvent, true);\n });\n });\n\n // lasso interaction implementation\n\n eventBus.on('lasso.end', function(event) {\n\n var bbox = toBBox(event);\n\n var elements = elementRegistry.filter(function(element) {\n return element;\n });\n\n self.select(elements, bbox);\n });\n\n eventBus.on('lasso.start', function(event) {\n\n var context = event.context;\n\n context.bbox = toBBox(event);\n visuals.create(context);\n });\n\n eventBus.on('lasso.move', function(event) {\n\n var context = event.context;\n\n context.bbox = toBBox(event);\n visuals.update(context);\n });\n\n eventBus.on('lasso.cleanup', function(event) {\n\n var context = event.context;\n\n visuals.remove(context);\n });\n\n\n // event integration\n\n eventBus.on('element.mousedown', 1500, function(event) {\n\n if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasSecondaryModifier)(event)) {\n return;\n }\n\n self.activateLasso(event.originalEvent);\n\n // we've handled the event\n return true;\n });\n}\n\nLassoTool.$inject = [\n 'eventBus',\n 'canvas',\n 'dragging',\n 'elementRegistry',\n 'selection',\n 'toolManager',\n 'mouse'\n];\n\n\nLassoTool.prototype.activateLasso = function(event, autoActivate) {\n\n this._dragging.init(event, 'lasso', {\n autoActivate: autoActivate,\n cursor: LASSO_TOOL_CURSOR,\n data: {\n context: {}\n }\n });\n};\n\nLassoTool.prototype.activateSelection = function(event, autoActivate) {\n\n this._dragging.init(event, 'lasso.selection', {\n trapClick: false,\n autoActivate: autoActivate,\n cursor: LASSO_TOOL_CURSOR,\n data: {\n context: {}\n }\n });\n};\n\nLassoTool.prototype.select = function(elements, bbox) {\n var selectedElements = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getEnclosedElements)(elements, bbox);\n\n this._selection.select((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.values)(selectedElements));\n};\n\nLassoTool.prototype.toggle = function() {\n if (this.isActive()) {\n return this._dragging.cancel();\n }\n\n var mouseEvent = this._mouse.getLastMoveEvent();\n\n this.activateSelection(mouseEvent, !!mouseEvent);\n};\n\nLassoTool.prototype.isActive = function() {\n var context = this._dragging.context();\n\n return context && /^lasso/.test(context.prefix);\n};\n\n\n\nfunction toBBox(event) {\n\n var start = {\n\n x: event.x - event.dx,\n y: event.y - event.dy\n };\n\n var end = {\n x: event.x,\n y: event.y\n };\n\n var bbox;\n\n if ((start.x <= end.x && start.y < end.y) ||\n (start.x < end.x && start.y <= end.y)) {\n\n bbox = {\n x: start.x,\n y: start.y,\n width: end.x - start.x,\n height: end.y - start.y\n };\n } else if ((start.x >= end.x && start.y < end.y) ||\n (start.x > end.x && start.y <= end.y)) {\n\n bbox = {\n x: end.x,\n y: start.y,\n width: start.x - end.x,\n height: end.y - start.y\n };\n } else if ((start.x <= end.x && start.y > end.y) ||\n (start.x < end.x && start.y >= end.y)) {\n\n bbox = {\n x: start.x,\n y: end.y,\n width: end.x - start.x,\n height: start.y - end.y\n };\n } else if ((start.x >= end.x && start.y > end.y) ||\n (start.x > end.x && start.y >= end.y)) {\n\n bbox = {\n x: end.x,\n y: end.y,\n width: start.x - end.x,\n height: start.y - end.y\n };\n } else {\n\n bbox = {\n x: end.x,\n y: end.y,\n width: 0,\n height: 0\n };\n }\n return bbox;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/lasso-tool/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/lasso-tool/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _LassoTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LassoTool */ \"./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _tool_manager__WEBPACK_IMPORTED_MODULE_0__.default,\n _mouse__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n __init__: [ 'lassoTool' ],\n lassoTool: [ 'type', _LassoTool__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/lasso-tool/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/Modeling.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/Modeling.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Modeling)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../model */ \"./node_modules/diagram-js/lib/model/index.js\");\n/* harmony import */ var _cmd_AlignElementsHandler__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./cmd/AlignElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js\");\n/* harmony import */ var _cmd_AppendShapeHandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cmd/AppendShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js\");\n/* harmony import */ var _cmd_CreateConnectionHandler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./cmd/CreateConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js\");\n/* harmony import */ var _cmd_CreateElementsHandler__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./cmd/CreateElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js\");\n/* harmony import */ var _cmd_CreateLabelHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cmd/CreateLabelHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js\");\n/* harmony import */ var _cmd_CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cmd/CreateShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js\");\n/* harmony import */ var _cmd_DeleteConnectionHandler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cmd/DeleteConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js\");\n/* harmony import */ var _cmd_DeleteElementsHandler__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./cmd/DeleteElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js\");\n/* harmony import */ var _cmd_DeleteShapeHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cmd/DeleteShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js\");\n/* harmony import */ var _cmd_DistributeElementsHandler__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./cmd/DistributeElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js\");\n/* harmony import */ var _cmd_LayoutConnectionHandler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./cmd/LayoutConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js\");\n/* harmony import */ var _cmd_MoveConnectionHandler__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./cmd/MoveConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js\");\n/* harmony import */ var _cmd_MoveElementsHandler__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./cmd/MoveElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js\");\n/* harmony import */ var _cmd_MoveShapeHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cmd/MoveShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js\");\n/* harmony import */ var _cmd_ReconnectConnectionHandler__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./cmd/ReconnectConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js\");\n/* harmony import */ var _cmd_ReplaceShapeHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cmd/ReplaceShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js\");\n/* harmony import */ var _cmd_ResizeShapeHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cmd/ResizeShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js\");\n/* harmony import */ var _cmd_SpaceToolHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cmd/SpaceToolHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js\");\n/* harmony import */ var _cmd_ToggleShapeCollapseHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cmd/ToggleShapeCollapseHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js\");\n/* harmony import */ var _cmd_UpdateAttachmentHandler__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./cmd/UpdateAttachmentHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js\");\n/* harmony import */ var _cmd_UpdateWaypointsHandler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./cmd/UpdateWaypointsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The basic modeling entry point.\n *\n * @param {EventBus} eventBus\n * @param {ElementFactory} elementFactory\n * @param {CommandStack} commandStack\n */\nfunction Modeling(eventBus, elementFactory, commandStack) {\n this._eventBus = eventBus;\n this._elementFactory = elementFactory;\n this._commandStack = commandStack;\n\n var self = this;\n\n eventBus.on('diagram.init', function() {\n\n // register modeling handlers\n self.registerHandlers(commandStack);\n });\n}\n\nModeling.$inject = [ 'eventBus', 'elementFactory', 'commandStack' ];\n\n\nModeling.prototype.getHandlers = function() {\n return {\n 'shape.append': _cmd_AppendShapeHandler__WEBPACK_IMPORTED_MODULE_0__.default,\n 'shape.create': _cmd_CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default,\n 'shape.delete': _cmd_DeleteShapeHandler__WEBPACK_IMPORTED_MODULE_2__.default,\n 'shape.move': _cmd_MoveShapeHandler__WEBPACK_IMPORTED_MODULE_3__.default,\n 'shape.resize': _cmd_ResizeShapeHandler__WEBPACK_IMPORTED_MODULE_4__.default,\n 'shape.replace': _cmd_ReplaceShapeHandler__WEBPACK_IMPORTED_MODULE_5__.default,\n 'shape.toggleCollapse': _cmd_ToggleShapeCollapseHandler__WEBPACK_IMPORTED_MODULE_6__.default,\n\n 'spaceTool': _cmd_SpaceToolHandler__WEBPACK_IMPORTED_MODULE_7__.default,\n\n 'label.create': _cmd_CreateLabelHandler__WEBPACK_IMPORTED_MODULE_8__.default,\n\n 'connection.create': _cmd_CreateConnectionHandler__WEBPACK_IMPORTED_MODULE_9__.default,\n 'connection.delete': _cmd_DeleteConnectionHandler__WEBPACK_IMPORTED_MODULE_10__.default,\n 'connection.move': _cmd_MoveConnectionHandler__WEBPACK_IMPORTED_MODULE_11__.default,\n 'connection.layout': _cmd_LayoutConnectionHandler__WEBPACK_IMPORTED_MODULE_12__.default,\n\n 'connection.updateWaypoints': _cmd_UpdateWaypointsHandler__WEBPACK_IMPORTED_MODULE_13__.default,\n\n 'connection.reconnect': _cmd_ReconnectConnectionHandler__WEBPACK_IMPORTED_MODULE_14__.default,\n\n 'elements.create': _cmd_CreateElementsHandler__WEBPACK_IMPORTED_MODULE_15__.default,\n 'elements.move': _cmd_MoveElementsHandler__WEBPACK_IMPORTED_MODULE_16__.default,\n 'elements.delete': _cmd_DeleteElementsHandler__WEBPACK_IMPORTED_MODULE_17__.default,\n\n 'elements.distribute': _cmd_DistributeElementsHandler__WEBPACK_IMPORTED_MODULE_18__.default,\n 'elements.align': _cmd_AlignElementsHandler__WEBPACK_IMPORTED_MODULE_19__.default,\n\n 'element.updateAttachment': _cmd_UpdateAttachmentHandler__WEBPACK_IMPORTED_MODULE_20__.default\n };\n};\n\n/**\n * Register handlers with the command stack\n *\n * @param {CommandStack} commandStack\n */\nModeling.prototype.registerHandlers = function(commandStack) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_21__.forEach)(this.getHandlers(), function(handler, id) {\n commandStack.registerHandler(id, handler);\n });\n};\n\n\n// modeling helpers //////////////////////\n\nModeling.prototype.moveShape = function(shape, delta, newParent, newParentIndex, hints) {\n\n if (typeof newParentIndex === 'object') {\n hints = newParentIndex;\n newParentIndex = null;\n }\n\n var context = {\n shape: shape,\n delta: delta,\n newParent: newParent,\n newParentIndex: newParentIndex,\n hints: hints || {}\n };\n\n this._commandStack.execute('shape.move', context);\n};\n\n\n/**\n * Update the attachment of the given shape.\n *\n * @param {djs.mode.Base} shape\n * @param {djs.model.Base} [newHost]\n */\nModeling.prototype.updateAttachment = function(shape, newHost) {\n var context = {\n shape: shape,\n newHost: newHost\n };\n\n this._commandStack.execute('element.updateAttachment', context);\n};\n\n\n/**\n * Move a number of shapes to a new target, either setting it as\n * the new parent or attaching it.\n *\n * @param {Array} shapes\n * @param {Point} delta\n * @param {djs.model.Base} [target]\n * @param {Object} [hints]\n * @param {boolean} [hints.attach=false]\n */\nModeling.prototype.moveElements = function(shapes, delta, target, hints) {\n\n hints = hints || {};\n\n var attach = hints.attach;\n\n var newParent = target,\n newHost;\n\n if (attach === true) {\n newHost = target;\n newParent = target.parent;\n } else\n\n if (attach === false) {\n newHost = null;\n }\n\n var context = {\n shapes: shapes,\n delta: delta,\n newParent: newParent,\n newHost: newHost,\n hints: hints\n };\n\n this._commandStack.execute('elements.move', context);\n};\n\n\nModeling.prototype.moveConnection = function(connection, delta, newParent, newParentIndex, hints) {\n\n if (typeof newParentIndex === 'object') {\n hints = newParentIndex;\n newParentIndex = undefined;\n }\n\n var context = {\n connection: connection,\n delta: delta,\n newParent: newParent,\n newParentIndex: newParentIndex,\n hints: hints || {}\n };\n\n this._commandStack.execute('connection.move', context);\n};\n\n\nModeling.prototype.layoutConnection = function(connection, hints) {\n var context = {\n connection: connection,\n hints: hints || {}\n };\n\n this._commandStack.execute('connection.layout', context);\n};\n\n\n/**\n * Create connection.\n *\n * @param {djs.model.Base} source\n * @param {djs.model.Base} target\n * @param {number} [parentIndex]\n * @param {Object|djs.model.Connection} connection\n * @param {djs.model.Base} parent\n * @param {Object} hints\n *\n * @return {djs.model.Connection} the created connection.\n */\nModeling.prototype.createConnection = function(source, target, parentIndex, connection, parent, hints) {\n\n if (typeof parentIndex === 'object') {\n hints = parent;\n parent = connection;\n connection = parentIndex;\n parentIndex = undefined;\n }\n\n connection = this._create('connection', connection);\n\n var context = {\n source: source,\n target: target,\n parent: parent,\n parentIndex: parentIndex,\n connection: connection,\n hints: hints\n };\n\n this._commandStack.execute('connection.create', context);\n\n return context.connection;\n};\n\n\n/**\n * Create a shape at the specified position.\n *\n * @param {djs.model.Shape|Object} shape\n * @param {Point} position\n * @param {djs.model.Shape|djs.model.Root} target\n * @param {number} [parentIndex] position in parents children list\n * @param {Object} [hints]\n * @param {boolean} [hints.attach] whether to attach to target or become a child\n *\n * @return {djs.model.Shape} the created shape\n */\nModeling.prototype.createShape = function(shape, position, target, parentIndex, hints) {\n\n if (typeof parentIndex !== 'number') {\n hints = parentIndex;\n parentIndex = undefined;\n }\n\n hints = hints || {};\n\n var attach = hints.attach,\n parent,\n host;\n\n shape = this._create('shape', shape);\n\n if (attach) {\n parent = target.parent;\n host = target;\n } else {\n parent = target;\n }\n\n var context = {\n position: position,\n shape: shape,\n parent: parent,\n parentIndex: parentIndex,\n host: host,\n hints: hints\n };\n\n this._commandStack.execute('shape.create', context);\n\n return context.shape;\n};\n\n\nModeling.prototype.createElements = function(elements, position, parent, parentIndex, hints) {\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_21__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n if (typeof parentIndex !== 'number') {\n hints = parentIndex;\n parentIndex = undefined;\n }\n\n hints = hints || {};\n\n var context = {\n position: position,\n elements: elements,\n parent: parent,\n parentIndex: parentIndex,\n hints: hints\n };\n\n this._commandStack.execute('elements.create', context);\n\n return context.elements;\n};\n\n\nModeling.prototype.createLabel = function(labelTarget, position, label, parent) {\n\n label = this._create('label', label);\n\n var context = {\n labelTarget: labelTarget,\n position: position,\n parent: parent || labelTarget.parent,\n shape: label\n };\n\n this._commandStack.execute('label.create', context);\n\n return context.shape;\n};\n\n\n/**\n * Append shape to given source, drawing a connection\n * between source and the newly created shape.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape|Object} shape\n * @param {Point} position\n * @param {djs.model.Shape} target\n * @param {Object} [hints]\n * @param {boolean} [hints.attach]\n * @param {djs.model.Connection|Object} [hints.connection]\n * @param {djs.model.Base} [hints.connectionParent]\n *\n * @return {djs.model.Shape} the newly created shape\n */\nModeling.prototype.appendShape = function(source, shape, position, target, hints) {\n\n hints = hints || {};\n\n shape = this._create('shape', shape);\n\n var context = {\n source: source,\n position: position,\n target: target,\n shape: shape,\n connection: hints.connection,\n connectionParent: hints.connectionParent,\n hints: hints\n };\n\n this._commandStack.execute('shape.append', context);\n\n return context.shape;\n};\n\n\nModeling.prototype.removeElements = function(elements) {\n var context = {\n elements: elements\n };\n\n this._commandStack.execute('elements.delete', context);\n};\n\n\nModeling.prototype.distributeElements = function(groups, axis, dimension) {\n var context = {\n groups: groups,\n axis: axis,\n dimension: dimension\n };\n\n this._commandStack.execute('elements.distribute', context);\n};\n\n\nModeling.prototype.removeShape = function(shape, hints) {\n var context = {\n shape: shape,\n hints: hints || {}\n };\n\n this._commandStack.execute('shape.delete', context);\n};\n\n\nModeling.prototype.removeConnection = function(connection, hints) {\n var context = {\n connection: connection,\n hints: hints || {}\n };\n\n this._commandStack.execute('connection.delete', context);\n};\n\nModeling.prototype.replaceShape = function(oldShape, newShape, hints) {\n var context = {\n oldShape: oldShape,\n newData: newShape,\n hints: hints || {}\n };\n\n this._commandStack.execute('shape.replace', context);\n\n return context.newShape;\n};\n\nModeling.prototype.alignElements = function(elements, alignment) {\n var context = {\n elements: elements,\n alignment: alignment\n };\n\n this._commandStack.execute('elements.align', context);\n};\n\nModeling.prototype.resizeShape = function(shape, newBounds, minBounds, hints) {\n var context = {\n shape: shape,\n newBounds: newBounds,\n minBounds: minBounds,\n hints: hints\n };\n\n this._commandStack.execute('shape.resize', context);\n};\n\nModeling.prototype.createSpace = function(movingShapes, resizingShapes, delta, direction, start) {\n var context = {\n delta: delta,\n direction: direction,\n movingShapes: movingShapes,\n resizingShapes: resizingShapes,\n start: start\n };\n\n this._commandStack.execute('spaceTool', context);\n};\n\nModeling.prototype.updateWaypoints = function(connection, newWaypoints, hints) {\n var context = {\n connection: connection,\n newWaypoints: newWaypoints,\n hints: hints || {}\n };\n\n this._commandStack.execute('connection.updateWaypoints', context);\n};\n\nModeling.prototype.reconnect = function(connection, source, target, dockingOrPoints, hints) {\n var context = {\n connection: connection,\n newSource: source,\n newTarget: target,\n dockingOrPoints: dockingOrPoints,\n hints: hints || {}\n };\n\n this._commandStack.execute('connection.reconnect', context);\n};\n\nModeling.prototype.reconnectStart = function(connection, newSource, dockingOrPoints, hints) {\n if (!hints) {\n hints = {};\n }\n\n this.reconnect(connection, newSource, connection.target, dockingOrPoints, (0,min_dash__WEBPACK_IMPORTED_MODULE_21__.assign)(hints, {\n docking: 'source'\n }));\n};\n\nModeling.prototype.reconnectEnd = function(connection, newTarget, dockingOrPoints, hints) {\n if (!hints) {\n hints = {};\n }\n\n this.reconnect(connection, connection.source, newTarget, dockingOrPoints, (0,min_dash__WEBPACK_IMPORTED_MODULE_21__.assign)(hints, {\n docking: 'target'\n }));\n};\n\nModeling.prototype.connect = function(source, target, attrs, hints) {\n return this.createConnection(source, target, attrs || {}, source.parent, hints);\n};\n\nModeling.prototype._create = function(type, attrs) {\n if (attrs instanceof _model__WEBPACK_IMPORTED_MODULE_22__.Base) {\n return attrs;\n } else {\n return this._elementFactory.create(type, attrs);\n }\n};\n\nModeling.prototype.toggleCollapse = function(shape, hints) {\n var context = {\n shape: shape,\n hints: hints || {}\n };\n\n this._commandStack.execute('shape.toggleCollapse', context);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/Modeling.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js": /*!***********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AlignElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * A handler that align elements in a certain way.\n *\n */\nfunction AlignElements(modeling, canvas) {\n this._modeling = modeling;\n this._canvas = canvas;\n}\n\nAlignElements.$inject = [ 'modeling', 'canvas' ];\n\n\nAlignElements.prototype.preExecute = function(context) {\n var modeling = this._modeling;\n\n var elements = context.elements,\n alignment = context.alignment;\n\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n var delta = {\n x: 0,\n y: 0\n };\n\n if (alignment.left) {\n delta.x = alignment.left - element.x;\n\n } else if (alignment.right) {\n delta.x = (alignment.right - element.width) - element.x;\n\n } else if (alignment.center) {\n delta.x = (alignment.center - Math.round(element.width / 2)) - element.x;\n\n } else if (alignment.top) {\n delta.y = alignment.top - element.y;\n\n } else if (alignment.bottom) {\n delta.y = (alignment.bottom - element.height) - element.y;\n\n } else if (alignment.middle) {\n delta.y = (alignment.middle - Math.round(element.height / 2)) - element.y;\n }\n\n modeling.moveElements([ element ], delta, element.parent);\n });\n};\n\nAlignElements.prototype.postExecute = function(context) {\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AppendShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A handler that implements reversible appending of shapes\n * to a source shape.\n *\n * @param {canvas} Canvas\n * @param {elementFactory} ElementFactory\n * @param {modeling} Modeling\n */\nfunction AppendShapeHandler(modeling) {\n this._modeling = modeling;\n}\n\nAppendShapeHandler.$inject = [ 'modeling' ];\n\n\n// api //////////////////////\n\n\n/**\n * Creates a new shape\n *\n * @param {Object} context\n * @param {ElementDescriptor} context.shape the new shape\n * @param {ElementDescriptor} context.source the source object\n * @param {ElementDescriptor} context.parent the parent object\n * @param {Point} context.position position of the new element\n */\nAppendShapeHandler.prototype.preExecute = function(context) {\n\n var source = context.source;\n\n if (!source) {\n throw new Error('source required');\n }\n\n var target = context.target || source.parent,\n shape = context.shape,\n hints = context.hints || {};\n\n shape = context.shape =\n this._modeling.createShape(\n shape,\n context.position,\n target, { attach: hints.attach });\n\n context.shape = shape;\n};\n\nAppendShapeHandler.prototype.postExecute = function(context) {\n var hints = context.hints || {};\n\n if (!existsConnection(context.source, context.shape)) {\n\n // create connection\n if (hints.connectionTarget === context.source) {\n this._modeling.connect(context.shape, context.source, context.connection);\n } else {\n this._modeling.connect(context.source, context.shape, context.connection);\n }\n }\n};\n\n\nfunction existsConnection(source, target) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.some)(source.outgoing, function(c) {\n return c.target === target;\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js": /*!**************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateConnectionHandler)\n/* harmony export */ });\nfunction CreateConnectionHandler(canvas, layouter) {\n this._canvas = canvas;\n this._layouter = layouter;\n}\n\nCreateConnectionHandler.$inject = [ 'canvas', 'layouter' ];\n\n\n// api //////////////////////\n\n\n/**\n * Appends a shape to a target shape\n *\n * @param {Object} context\n * @param {djs.element.Base} context.source the source object\n * @param {djs.element.Base} context.target the parent object\n * @param {Point} context.position position of the new element\n */\nCreateConnectionHandler.prototype.execute = function(context) {\n\n var connection = context.connection,\n source = context.source,\n target = context.target,\n parent = context.parent,\n parentIndex = context.parentIndex,\n hints = context.hints;\n\n if (!source || !target) {\n throw new Error('source and target required');\n }\n\n if (!parent) {\n throw new Error('parent required');\n }\n\n connection.source = source;\n connection.target = target;\n\n if (!connection.waypoints) {\n connection.waypoints = this._layouter.layoutConnection(connection, hints);\n }\n\n // add connection\n this._canvas.addConnection(connection, parent, parentIndex);\n\n return connection;\n};\n\nCreateConnectionHandler.prototype.revert = function(context) {\n var connection = context.connection;\n\n this._canvas.removeConnection(connection);\n\n connection.source = null;\n connection.target = null;\n\n return connection;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js": /*!************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateElementsHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\r\n\r\n\r\n\r\nvar round = Math.round;\r\n\r\nfunction CreateElementsHandler(modeling) {\r\n this._modeling = modeling;\r\n}\r\n\r\nCreateElementsHandler.$inject = [\r\n 'modeling'\r\n];\r\n\r\nCreateElementsHandler.prototype.preExecute = function(context) {\r\n var elements = context.elements,\r\n parent = context.parent,\r\n parentIndex = context.parentIndex,\r\n position = context.position,\r\n hints = context.hints;\r\n\r\n var modeling = this._modeling;\r\n\r\n // make sure each element has x and y\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.x)) {\r\n element.x = 0;\r\n }\r\n\r\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.y)) {\r\n element.y = 0;\r\n }\r\n });\r\n\r\n var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(elements);\r\n\r\n // center elements around position\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n if (isConnection(element)) {\r\n element.waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\r\n return {\r\n x: round(waypoint.x - bbox.x - bbox.width / 2 + position.x),\r\n y: round(waypoint.y - bbox.y - bbox.height / 2 + position.y)\r\n };\r\n });\r\n }\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(element, {\r\n x: round(element.x - bbox.x - bbox.width / 2 + position.x),\r\n y: round(element.y - bbox.y - bbox.height / 2 + position.y)\r\n });\r\n });\r\n\r\n var parents = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getParents)(elements);\r\n\r\n var cache = {};\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n if (isConnection(element)) {\r\n cache[ element.id ] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(parentIndex) ?\r\n modeling.createConnection(\r\n cache[ element.source.id ],\r\n cache[ element.target.id ],\r\n parentIndex,\r\n element,\r\n element.parent || parent,\r\n hints\r\n ) :\r\n modeling.createConnection(\r\n cache[ element.source.id ],\r\n cache[ element.target.id ],\r\n element,\r\n element.parent || parent,\r\n hints\r\n );\r\n\r\n return;\r\n }\r\n\r\n var createShapeHints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, hints);\r\n\r\n if (parents.indexOf(element) === -1) {\r\n createShapeHints.autoResize = false;\r\n }\r\n\r\n cache[ element.id ] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(parentIndex) ?\r\n modeling.createShape(\r\n element,\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(element, [ 'x', 'y', 'width', 'height' ]),\r\n element.parent || parent,\r\n parentIndex,\r\n createShapeHints\r\n ) :\r\n modeling.createShape(\r\n element,\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(element, [ 'x', 'y', 'width', 'height' ]),\r\n element.parent || parent,\r\n createShapeHints\r\n );\r\n });\r\n\r\n context.elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.values)(cache);\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction isConnection(element) {\r\n return !!element.waypoints;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateLabelHandler)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js\");\n\n\n\n\n\n/**\n * A handler that attaches a label to a given target shape.\n *\n * @param {Canvas} canvas\n */\nfunction CreateLabelHandler(canvas) {\n _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default.call(this, canvas);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateLabelHandler, _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default);\n\nCreateLabelHandler.$inject = [ 'canvas' ];\n\n\n// api //////////////////////\n\n\nvar originalExecute = _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default.prototype.execute;\n\n/**\n * Appends a label to a target shape.\n *\n * @method CreateLabelHandler#execute\n *\n * @param {Object} context\n * @param {ElementDescriptor} context.target the element the label is attached to\n * @param {ElementDescriptor} context.parent the parent object\n * @param {Point} context.position position of the new element\n */\nCreateLabelHandler.prototype.execute = function(context) {\n\n var label = context.shape;\n\n ensureValidDimensions(label);\n\n label.labelTarget = context.labelTarget;\n\n return originalExecute.call(this, context);\n};\n\nvar originalRevert = _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default.prototype.revert;\n\n/**\n * Undo append by removing the shape\n */\nCreateLabelHandler.prototype.revert = function(context) {\n context.shape.labelTarget = null;\n\n return originalRevert.call(this, context);\n};\n\n\n// helpers //////////////////////\n\nfunction ensureValidDimensions(label) {\n\n // make sure a label has valid { width, height } dimensions\n [ 'width', 'height' ].forEach(function(prop) {\n if (typeof label[prop] === 'undefined') {\n label[prop] = 0;\n }\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar round = Math.round;\n\n\n/**\n * A handler that implements reversible addition of shapes.\n *\n * @param {canvas} Canvas\n */\nfunction CreateShapeHandler(canvas) {\n this._canvas = canvas;\n}\n\nCreateShapeHandler.$inject = [ 'canvas' ];\n\n\n// api //////////////////////\n\n\n/**\n * Appends a shape to a target shape\n *\n * @param {Object} context\n * @param {djs.model.Base} context.parent the parent object\n * @param {Point} context.position position of the new element\n */\nCreateShapeHandler.prototype.execute = function(context) {\n\n var shape = context.shape,\n positionOrBounds = context.position,\n parent = context.parent,\n parentIndex = context.parentIndex;\n\n if (!parent) {\n throw new Error('parent required');\n }\n\n if (!positionOrBounds) {\n throw new Error('position required');\n }\n\n // (1) add at event center position _or_ at given bounds\n if (positionOrBounds.width !== undefined) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, positionOrBounds);\n } else {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, {\n x: positionOrBounds.x - round(shape.width / 2),\n y: positionOrBounds.y - round(shape.height / 2)\n });\n }\n\n // (2) add to canvas\n this._canvas.addShape(shape, parent, parentIndex);\n\n return shape;\n};\n\n\n/**\n * Undo append by removing the shape\n */\nCreateShapeHandler.prototype.revert = function(context) {\n\n var shape = context.shape;\n\n // (3) remove form canvas\n this._canvas.removeShape(shape);\n\n return shape;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js": /*!**************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DeleteConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n\n/**\n * A handler that implements reversible deletion of Connections.\n */\nfunction DeleteConnectionHandler(canvas, modeling) {\n this._canvas = canvas;\n this._modeling = modeling;\n}\n\nDeleteConnectionHandler.$inject = [\n 'canvas',\n 'modeling'\n];\n\n\nDeleteConnectionHandler.prototype.execute = function(context) {\n\n var connection = context.connection,\n parent = connection.parent;\n\n context.parent = parent;\n\n // remember containment\n context.parentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.indexOf)(parent.children, connection);\n\n context.source = connection.source;\n context.target = connection.target;\n\n this._canvas.removeConnection(connection);\n\n connection.source = null;\n connection.target = null;\n\n return connection;\n};\n\n/**\n * Command revert implementation.\n */\nDeleteConnectionHandler.prototype.revert = function(context) {\n\n var connection = context.connection,\n parent = context.parent,\n parentIndex = context.parentIndex;\n\n connection.source = context.source;\n connection.target = context.target;\n\n // restore containment\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(parent.children, connection, parentIndex);\n\n this._canvas.addConnection(connection, parent);\n\n return connection;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js": /*!************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DeleteElementsHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nfunction DeleteElementsHandler(modeling, elementRegistry) {\n this._modeling = modeling;\n this._elementRegistry = elementRegistry;\n}\n\nDeleteElementsHandler.$inject = [\n 'modeling',\n 'elementRegistry'\n];\n\n\nDeleteElementsHandler.prototype.postExecute = function(context) {\n\n var modeling = this._modeling,\n elementRegistry = this._elementRegistry,\n elements = context.elements;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n // element may have been removed with previous\n // remove operations already (e.g. in case of nesting)\n if (!elementRegistry.get(element.id)) {\n return;\n }\n\n if (element.waypoints) {\n modeling.removeConnection(element);\n } else {\n modeling.removeShape(element);\n }\n });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DeleteShapeHandler)\n/* harmony export */ });\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_Removal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Removal */ \"./node_modules/diagram-js/lib/util/Removal.js\");\n\n\n\n\n\n/**\n * A handler that implements reversible deletion of shapes.\n *\n */\nfunction DeleteShapeHandler(canvas, modeling) {\n this._canvas = canvas;\n this._modeling = modeling;\n}\n\nDeleteShapeHandler.$inject = [ 'canvas', 'modeling' ];\n\n\n/**\n * - Remove connections\n * - Remove all direct children\n */\nDeleteShapeHandler.prototype.preExecute = function(context) {\n\n var modeling = this._modeling;\n\n var shape = context.shape;\n\n // remove connections\n (0,_util_Removal__WEBPACK_IMPORTED_MODULE_0__.saveClear)(shape.incoming, function(connection) {\n\n // To make sure that the connection isn't removed twice\n // For example if a container is removed\n modeling.removeConnection(connection, { nested: true });\n });\n\n (0,_util_Removal__WEBPACK_IMPORTED_MODULE_0__.saveClear)(shape.outgoing, function(connection) {\n modeling.removeConnection(connection, { nested: true });\n });\n\n // remove child shapes and connections\n (0,_util_Removal__WEBPACK_IMPORTED_MODULE_0__.saveClear)(shape.children, function(child) {\n if (isConnection(child)) {\n modeling.removeConnection(child, { nested: true });\n } else {\n modeling.removeShape(child, { nested: true });\n }\n });\n};\n\n/**\n * Remove shape and remember the parent\n */\nDeleteShapeHandler.prototype.execute = function(context) {\n var canvas = this._canvas;\n\n var shape = context.shape,\n oldParent = shape.parent;\n\n context.oldParent = oldParent;\n\n // remove containment\n context.oldParentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_1__.indexOf)(oldParent.children, shape);\n\n // remove shape\n canvas.removeShape(shape);\n\n return shape;\n};\n\n\n/**\n * Command revert implementation\n */\nDeleteShapeHandler.prototype.revert = function(context) {\n\n var canvas = this._canvas;\n\n var shape = context.shape,\n oldParent = context.oldParent,\n oldParentIndex = context.oldParentIndex;\n\n // restore containment\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_1__.add)(oldParent.children, shape, oldParentIndex);\n\n canvas.addShape(shape, oldParent);\n\n return shape;\n};\n\nfunction isConnection(element) {\n return element.waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js": /*!****************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DistributeElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A handler that distributes elements evenly.\n */\nfunction DistributeElements(modeling) {\n this._modeling = modeling;\n}\n\nDistributeElements.$inject = [ 'modeling' ];\n\nvar OFF_AXIS = {\n x: 'y',\n y: 'x'\n};\n\nDistributeElements.prototype.preExecute = function(context) {\n var modeling = this._modeling;\n\n var groups = context.groups,\n axis = context.axis,\n dimension = context.dimension;\n\n function updateRange(group, element) {\n group.range.min = Math.min(element[axis], group.range.min);\n group.range.max = Math.max(element[axis] + element[dimension], group.range.max);\n }\n\n function center(element) {\n return element[axis] + element[dimension] / 2;\n }\n\n function lastIdx(arr) {\n return arr.length - 1;\n }\n\n function rangeDiff(range) {\n return range.max - range.min;\n }\n\n function centerElement(refCenter, element) {\n var delta = { y: 0 };\n\n delta[axis] = refCenter - center(element);\n\n if (delta[axis]) {\n\n delta[OFF_AXIS[axis]] = 0;\n\n modeling.moveElements([ element ], delta, element.parent);\n }\n }\n\n var firstGroup = groups[0],\n lastGroupIdx = lastIdx(groups),\n lastGroup = groups[ lastGroupIdx ];\n\n var margin,\n spaceInBetween,\n groupsSize = 0; // the size of each range\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(groups, function(group, idx) {\n var sortedElements,\n refElem,\n refCenter;\n\n if (group.elements.length < 2) {\n if (idx && idx !== groups.length - 1) {\n updateRange(group, group.elements[0]);\n\n groupsSize += rangeDiff(group.range);\n }\n return;\n }\n\n sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(group.elements, axis);\n\n refElem = sortedElements[0];\n\n if (idx === lastGroupIdx) {\n refElem = sortedElements[lastIdx(sortedElements)];\n }\n\n refCenter = center(refElem);\n\n // wanna update the ranges after the shapes have been centered\n group.range = null;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(sortedElements, function(element) {\n\n centerElement(refCenter, element);\n\n if (group.range === null) {\n group.range = {\n min: element[axis],\n max: element[axis] + element[dimension]\n };\n\n return;\n }\n\n // update group's range after centering the range elements\n updateRange(group, element);\n });\n\n if (idx && idx !== groups.length - 1) {\n groupsSize += rangeDiff(group.range);\n }\n });\n\n spaceInBetween = Math.abs(lastGroup.range.min - firstGroup.range.max);\n\n margin = Math.round((spaceInBetween - groupsSize) / (groups.length - 1));\n\n if (margin < groups.length - 1) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(groups, function(group, groupIdx) {\n var delta = {},\n prevGroup;\n\n if (group === firstGroup || group === lastGroup) {\n return;\n }\n\n prevGroup = groups[groupIdx - 1];\n\n group.range.max = 0;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(group.elements, function(element, idx) {\n delta[OFF_AXIS[axis]] = 0;\n delta[axis] = (prevGroup.range.max - element[axis]) + margin;\n\n if (group.range.min !== element[axis]) {\n delta[axis] += element[axis] - group.range.min;\n }\n\n if (delta[axis]) {\n modeling.moveElements([ element ], delta, element.parent);\n }\n\n group.range.max = Math.max(element[axis] + element[dimension], idx ? group.range.max : 0);\n });\n });\n};\n\nDistributeElements.prototype.postExecute = function(context) {\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js": /*!**************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LayoutConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A handler that implements reversible moving of shapes.\n */\nfunction LayoutConnectionHandler(layouter, canvas) {\n this._layouter = layouter;\n this._canvas = canvas;\n}\n\nLayoutConnectionHandler.$inject = [ 'layouter', 'canvas' ];\n\nLayoutConnectionHandler.prototype.execute = function(context) {\n\n var connection = context.connection;\n\n var oldWaypoints = connection.waypoints;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(context, {\n oldWaypoints: oldWaypoints\n });\n\n connection.waypoints = this._layouter.layoutConnection(connection, context.hints);\n\n return connection;\n};\n\nLayoutConnectionHandler.prototype.revert = function(context) {\n\n var connection = context.connection;\n\n connection.waypoints = context.oldWaypoints;\n\n return connection;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js": /*!************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n\n\n\n\n/**\n * A handler that implements reversible moving of connections.\n *\n * The handler differs from the layout connection handler in a sense\n * that it preserves the connection layout.\n */\nfunction MoveConnectionHandler() { }\n\n\nMoveConnectionHandler.prototype.execute = function(context) {\n\n var connection = context.connection,\n delta = context.delta;\n\n var newParent = context.newParent || connection.parent,\n newParentIndex = context.newParentIndex,\n oldParent = connection.parent;\n\n // save old parent in context\n context.oldParent = oldParent;\n context.oldParentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(oldParent.children, connection);\n\n // add to new parent at position\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(newParent.children, connection, newParentIndex);\n\n // update parent\n connection.parent = newParent;\n\n // update waypoint positions\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(connection.waypoints, function(p) {\n p.x += delta.x;\n p.y += delta.y;\n\n if (p.original) {\n p.original.x += delta.x;\n p.original.y += delta.y;\n }\n });\n\n return connection;\n};\n\nMoveConnectionHandler.prototype.revert = function(context) {\n\n var connection = context.connection,\n newParent = connection.parent,\n oldParent = context.oldParent,\n oldParentIndex = context.oldParentIndex,\n delta = context.delta;\n\n // remove from newParent\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(newParent.children, connection);\n\n // restore previous location in old parent\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(oldParent.children, connection, oldParentIndex);\n\n // restore parent\n connection.parent = oldParent;\n\n // revert to old waypoint positions\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(connection.waypoints, function(p) {\n p.x -= delta.x;\n p.y -= delta.y;\n\n if (p.original) {\n p.original.x -= delta.x;\n p.original.y -= delta.y;\n }\n });\n\n return connection;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js": /*!**********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveElementsHandler)\n/* harmony export */ });\n/* harmony import */ var _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper/MoveHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js\");\n\n\n\n/**\n * A handler that implements reversible moving of shapes.\n */\nfunction MoveElementsHandler(modeling) {\n this._helper = new _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__.default(modeling);\n}\n\nMoveElementsHandler.$inject = [ 'modeling' ];\n\nMoveElementsHandler.prototype.preExecute = function(context) {\n context.closure = this._helper.getClosure(context.shapes);\n};\n\nMoveElementsHandler.prototype.postExecute = function(context) {\n\n var hints = context.hints,\n primaryShape;\n\n if (hints && hints.primaryShape) {\n primaryShape = hints.primaryShape;\n hints.oldParent = primaryShape.parent;\n }\n\n this._helper.moveClosure(\n context.closure,\n context.delta,\n context.newParent,\n context.newHost,\n primaryShape\n );\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js": /*!*******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper/MoveHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js\");\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n\n\n\n\n\n/**\n * A handler that implements reversible moving of shapes.\n */\nfunction MoveShapeHandler(modeling) {\n this._modeling = modeling;\n\n this._helper = new _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__.default(modeling);\n}\n\nMoveShapeHandler.$inject = [ 'modeling' ];\n\n\nMoveShapeHandler.prototype.execute = function(context) {\n\n var shape = context.shape,\n delta = context.delta,\n newParent = context.newParent || shape.parent,\n newParentIndex = context.newParentIndex,\n oldParent = shape.parent;\n\n context.oldBounds = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.pick)(shape, [ 'x', 'y', 'width', 'height']);\n\n // save old parent in context\n context.oldParent = oldParent;\n context.oldParentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_2__.remove)(oldParent.children, shape);\n\n // add to new parent at position\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_2__.add)(newParent.children, shape, newParentIndex);\n\n // update shape parent + position\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(shape, {\n parent: newParent,\n x: shape.x + delta.x,\n y: shape.y + delta.y\n });\n\n return shape;\n};\n\nMoveShapeHandler.prototype.postExecute = function(context) {\n\n var shape = context.shape,\n delta = context.delta,\n hints = context.hints;\n\n var modeling = this._modeling;\n\n if (hints.layout !== false) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(shape.incoming, function(c) {\n modeling.layoutConnection(c, {\n connectionEnd: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_3__.getMovedTargetAnchor)(c, shape, delta)\n });\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(shape.outgoing, function(c) {\n modeling.layoutConnection(c, {\n connectionStart: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_3__.getMovedSourceAnchor)(c, shape, delta)\n });\n });\n }\n\n if (hints.recurse !== false) {\n this.moveChildren(context);\n }\n};\n\nMoveShapeHandler.prototype.revert = function(context) {\n\n var shape = context.shape,\n oldParent = context.oldParent,\n oldParentIndex = context.oldParentIndex,\n delta = context.delta;\n\n // restore previous location in old parent\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_2__.add)(oldParent.children, shape, oldParentIndex);\n\n // revert to old position and parent\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(shape, {\n parent: oldParent,\n x: shape.x - delta.x,\n y: shape.y - delta.y\n });\n\n return shape;\n};\n\nMoveShapeHandler.prototype.moveChildren = function(context) {\n\n var delta = context.delta,\n shape = context.shape;\n\n this._helper.moveRecursive(shape.children, delta, null);\n};\n\nMoveShapeHandler.prototype.getNewParent = function(context) {\n return context.newParent || context.shape.parent;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js": /*!*****************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ReconnectConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * Reconnect connection handler\n */\nfunction ReconnectConnectionHandler(modeling) {\n this._modeling = modeling;\n}\n\nReconnectConnectionHandler.$inject = [ 'modeling' ];\n\nReconnectConnectionHandler.prototype.execute = function(context) {\n var newSource = context.newSource,\n newTarget = context.newTarget,\n connection = context.connection,\n dockingOrPoints = context.dockingOrPoints;\n\n if (!newSource && !newTarget) {\n throw new Error('newSource or newTarget required');\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(dockingOrPoints)) {\n context.oldWaypoints = connection.waypoints;\n connection.waypoints = dockingOrPoints;\n }\n\n if (newSource) {\n context.oldSource = connection.source;\n connection.source = newSource;\n }\n\n if (newTarget) {\n context.oldTarget = connection.target;\n connection.target = newTarget;\n }\n\n return connection;\n};\n\nReconnectConnectionHandler.prototype.postExecute = function(context) {\n var connection = context.connection,\n newSource = context.newSource,\n newTarget = context.newTarget,\n dockingOrPoints = context.dockingOrPoints,\n hints = context.hints || {};\n\n var layoutConnectionHints = {};\n\n if (hints.connectionStart) {\n layoutConnectionHints.connectionStart = hints.connectionStart;\n }\n\n if (hints.connectionEnd) {\n layoutConnectionHints.connectionEnd = hints.connectionEnd;\n }\n\n if (hints.layoutConnection === false) {\n return;\n }\n\n if (newSource && (!newTarget || hints.docking === 'source')) {\n layoutConnectionHints.connectionStart = layoutConnectionHints.connectionStart\n || getDocking((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(dockingOrPoints) ? dockingOrPoints[ 0 ] : dockingOrPoints);\n }\n\n if (newTarget && (!newSource || hints.docking === 'target')) {\n layoutConnectionHints.connectionEnd = layoutConnectionHints.connectionEnd\n || getDocking((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(dockingOrPoints) ? dockingOrPoints[ dockingOrPoints.length - 1 ] : dockingOrPoints);\n }\n\n if (hints.newWaypoints) {\n layoutConnectionHints.waypoints = hints.newWaypoints;\n }\n\n this._modeling.layoutConnection(connection, layoutConnectionHints);\n};\n\nReconnectConnectionHandler.prototype.revert = function(context) {\n var oldSource = context.oldSource,\n oldTarget = context.oldTarget,\n oldWaypoints = context.oldWaypoints,\n connection = context.connection;\n\n if (oldSource) {\n connection.source = oldSource;\n }\n\n if (oldTarget) {\n connection.target = oldTarget;\n }\n\n if (oldWaypoints) {\n connection.waypoints = oldWaypoints;\n }\n\n return connection;\n};\n\n\n\n// helpers //////////\n\nfunction getDocking(point) {\n return point.original || point;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js": /*!**********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ReplaceShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n/**\n * Replace shape by adding new shape and removing old shape. Incoming and outgoing connections will\n * be kept if possible.\n *\n * @class\n * @constructor\n *\n * @param {Modeling} modeling\n * @param {Rules} rules\n */\nfunction ReplaceShapeHandler(modeling, rules) {\n this._modeling = modeling;\n this._rules = rules;\n}\n\nReplaceShapeHandler.$inject = [ 'modeling', 'rules' ];\n\n\n/**\n * Add new shape.\n *\n * @param {Object} context\n * @param {djs.model.Shape} context.oldShape\n * @param {Object} context.newData\n * @param {string} context.newData.type\n * @param {number} context.newData.x\n * @param {number} context.newData.y\n * @param {Object} [hints]\n */\nReplaceShapeHandler.prototype.preExecute = function(context) {\n var self = this,\n modeling = this._modeling,\n rules = this._rules;\n\n var oldShape = context.oldShape,\n newData = context.newData,\n hints = context.hints || {},\n newShape;\n\n function canReconnect(source, target, connection) {\n return rules.allowed('connection.reconnect', {\n connection: connection,\n source: source,\n target: target\n });\n }\n\n // (1) add new shape at given position\n var position = {\n x: newData.x,\n y: newData.y\n };\n\n var oldBounds = {\n x: oldShape.x,\n y: oldShape.y,\n width: oldShape.width,\n height: oldShape.height\n };\n\n newShape = context.newShape =\n context.newShape ||\n self.createShape(newData, position, oldShape.parent, hints);\n\n // (2) update host\n if (oldShape.host) {\n modeling.updateAttachment(newShape, oldShape.host);\n }\n\n // (3) adopt all children from old shape\n var children;\n\n if (hints.moveChildren !== false) {\n children = oldShape.children.slice();\n\n modeling.moveElements(children, { x: 0, y: 0 }, newShape, hints);\n }\n\n // (4) reconnect connections to new shape if possible\n var incoming = oldShape.incoming.slice(),\n outgoing = oldShape.outgoing.slice();\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(incoming, function(connection) {\n var source = connection.source,\n allowed = canReconnect(source, newShape, connection);\n\n if (allowed) {\n self.reconnectEnd(\n connection, newShape,\n (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedTargetAnchor)(connection, newShape, oldBounds),\n hints\n );\n }\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(outgoing, function(connection) {\n var target = connection.target,\n allowed = canReconnect(newShape, target, connection);\n\n if (allowed) {\n self.reconnectStart(\n connection, newShape,\n (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedSourceAnchor)(connection, newShape, oldBounds),\n hints\n );\n }\n });\n};\n\n\n/**\n * Remove old shape.\n */\nReplaceShapeHandler.prototype.postExecute = function(context) {\n var oldShape = context.oldShape;\n\n this._modeling.removeShape(oldShape);\n};\n\n\nReplaceShapeHandler.prototype.execute = function(context) {};\n\n\nReplaceShapeHandler.prototype.revert = function(context) {};\n\n\nReplaceShapeHandler.prototype.createShape = function(shape, position, target, hints) {\n return this._modeling.createShape(shape, position, target, hints);\n};\n\n\nReplaceShapeHandler.prototype.reconnectStart = function(connection, newSource, dockingPoint, hints) {\n this._modeling.reconnectStart(connection, newSource, dockingPoint, hints);\n};\n\n\nReplaceShapeHandler.prototype.reconnectEnd = function(connection, newTarget, dockingPoint, hints) {\n this._modeling.reconnectEnd(connection, newTarget, dockingPoint, hints);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizeShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n\n/**\n * A handler that implements reversible resizing of shapes.\n *\n * @param {Modeling} modeling\n */\nfunction ResizeShapeHandler(modeling) {\n this._modeling = modeling;\n}\n\nResizeShapeHandler.$inject = [ 'modeling' ];\n\n/**\n * {\n * shape: {....}\n * newBounds: {\n * width: 20,\n * height: 40,\n * x: 5,\n * y: 10\n * }\n *\n * }\n */\nResizeShapeHandler.prototype.execute = function(context) {\n var shape = context.shape,\n newBounds = context.newBounds,\n minBounds = context.minBounds;\n\n if (newBounds.x === undefined || newBounds.y === undefined ||\n newBounds.width === undefined || newBounds.height === undefined) {\n throw new Error('newBounds must have {x, y, width, height} properties');\n }\n\n if (minBounds && (newBounds.width < minBounds.width\n || newBounds.height < minBounds.height)) {\n throw new Error('width and height cannot be less than minimum height and width');\n } else if (!minBounds\n && newBounds.width < 10 || newBounds.height < 10) {\n throw new Error('width and height cannot be less than 10px');\n }\n\n // save old bbox in context\n context.oldBounds = {\n width: shape.width,\n height: shape.height,\n x: shape.x,\n y: shape.y\n };\n\n // update shape\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, {\n width: newBounds.width,\n height: newBounds.height,\n x: newBounds.x,\n y: newBounds.y\n });\n\n return shape;\n};\n\nResizeShapeHandler.prototype.postExecute = function(context) {\n var modeling = this._modeling;\n\n var shape = context.shape,\n oldBounds = context.oldBounds,\n hints = context.hints || {};\n\n if (hints.layout === false) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.incoming, function(c) {\n modeling.layoutConnection(c, {\n connectionEnd: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedTargetAnchor)(c, shape, oldBounds)\n });\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.outgoing, function(c) {\n modeling.layoutConnection(c, {\n connectionStart: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedSourceAnchor)(c, shape, oldBounds)\n });\n });\n\n};\n\nResizeShapeHandler.prototype.revert = function(context) {\n\n var shape = context.shape,\n oldBounds = context.oldBounds;\n\n // restore previous bbox\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, {\n width: oldBounds.width,\n height: oldBounds.height,\n x: oldBounds.x,\n y: oldBounds.y\n });\n\n return shape;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js": /*!*******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SpaceToolHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _space_tool_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../space-tool/SpaceUtil */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n\n\n\n/**\n * Add or remove space by moving and resizing shapes and updating connection waypoints.\n */\nfunction SpaceToolHandler(modeling) {\n this._modeling = modeling;\n}\n\nSpaceToolHandler.$inject = [ 'modeling' ];\n\nSpaceToolHandler.prototype.preExecute = function(context) {\n var delta = context.delta,\n direction = context.direction,\n movingShapes = context.movingShapes,\n resizingShapes = context.resizingShapes,\n start = context.start,\n oldBounds = {};\n\n // (1) move shapes\n this.moveShapes(movingShapes, delta);\n\n // (2a) save old bounds of resized shapes\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n oldBounds[shape.id] = getBounds(shape);\n });\n\n // (2b) resize shapes\n this.resizeShapes(resizingShapes, delta, direction);\n\n // (3) update connection waypoints\n this.updateConnectionWaypoints(\n (0,_space_tool_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__.getWaypointsUpdatingConnections)(movingShapes, resizingShapes),\n delta,\n direction,\n start,\n movingShapes,\n resizingShapes,\n oldBounds\n );\n};\n\nSpaceToolHandler.prototype.execute = function() {};\nSpaceToolHandler.prototype.revert = function() {};\n\nSpaceToolHandler.prototype.moveShapes = function(shapes, delta) {\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shapes, function(element) {\n self._modeling.moveShape(element, delta, null, {\n autoResize: false,\n layout: false,\n recurse: false\n });\n });\n};\n\nSpaceToolHandler.prototype.resizeShapes = function(shapes, delta, direction) {\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shapes, function(shape) {\n var newBounds = (0,_space_tool_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__.resizeBounds)(shape, direction, delta);\n\n self._modeling.resizeShape(shape, newBounds, null, {\n attachSupport: false,\n autoResize: false,\n layout: false\n });\n });\n};\n\n/**\n * Update connections waypoints according to the rules:\n * 1. Both source and target are moved/resized => move waypoints by the delta\n * 2. Only one of source and target is moved/resized => re-layout connection with moved start/end\n */\nSpaceToolHandler.prototype.updateConnectionWaypoints = function(\n connections,\n delta,\n direction,\n start,\n movingShapes,\n resizingShapes,\n oldBounds\n) {\n var self = this,\n affectedShapes = movingShapes.concat(resizingShapes);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(connections, function(connection) {\n var source = connection.source,\n target = connection.target,\n waypoints = copyWaypoints(connection),\n axis = getAxisFromDirection(direction),\n layoutHints = {\n labelBehavior: false\n };\n\n if (includes(affectedShapes, source) && includes(affectedShapes, target)) {\n\n // move waypoints\n waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(waypoints, function(waypoint) {\n if (shouldMoveWaypoint(waypoint, start, direction)) {\n\n // move waypoint\n waypoint[ axis ] = waypoint[ axis ] + delta[ axis ];\n }\n\n if (waypoint.original && shouldMoveWaypoint(waypoint.original, start, direction)) {\n\n // move waypoint original\n waypoint.original[ axis ] = waypoint.original[ axis ] + delta[ axis ];\n }\n\n return waypoint;\n });\n\n self._modeling.updateWaypoints(connection, waypoints, {\n labelBehavior: false\n });\n } else if (includes(affectedShapes, source) || includes(affectedShapes, target)) {\n\n // re-layout connection with moved start/end\n if (includes(movingShapes, source)) {\n layoutHints.connectionStart = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getMovedSourceAnchor)(connection, source, delta);\n } else if (includes(movingShapes, target)) {\n layoutHints.connectionEnd = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getMovedTargetAnchor)(connection, target, delta);\n } else if (includes(resizingShapes, source)) {\n layoutHints.connectionStart = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedSourceAnchor)(\n connection, source, oldBounds[source.id]\n );\n } else if (includes(resizingShapes, target)) {\n layoutHints.connectionEnd = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedTargetAnchor)(\n connection, target, oldBounds[target.id]\n );\n }\n\n self._modeling.layoutConnection(connection, layoutHints);\n }\n });\n};\n\n\n// helpers //////////\n\nfunction copyWaypoint(waypoint) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, waypoint);\n}\n\nfunction copyWaypoints(connection) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(connection.waypoints, function(waypoint) {\n\n waypoint = copyWaypoint(waypoint);\n\n if (waypoint.original) {\n waypoint.original = copyWaypoint(waypoint.original);\n }\n\n return waypoint;\n });\n}\n\nfunction getAxisFromDirection(direction) {\n switch (direction) {\n case 'n':\n return 'y';\n case 'w':\n return 'x';\n case 's':\n return 'y';\n case 'e':\n return 'x';\n }\n}\n\nfunction shouldMoveWaypoint(waypoint, start, direction) {\n var relevantAxis = getAxisFromDirection(direction);\n\n if (/e|s/.test(direction)) {\n return waypoint[ relevantAxis ] > start;\n } else if (/n|w/.test(direction)) {\n return waypoint[ relevantAxis ] < start;\n }\n}\n\nfunction includes(array, item) {\n return array.indexOf(item) !== -1;\n}\n\nfunction getBounds(shape) {\n return {\n x: shape.x,\n y: shape.y,\n height: shape.height,\n width: shape.width\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js": /*!*****************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ToggleShapeCollapseHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * A handler that toggles the collapsed state of an element\n * and the visibility of all its children.\n *\n * @param {Modeling} modeling\n */\nfunction ToggleShapeCollapseHandler(modeling) {\n this._modeling = modeling;\n}\n\nToggleShapeCollapseHandler.$inject = [ 'modeling' ];\n\n\nToggleShapeCollapseHandler.prototype.execute = function(context) {\n\n var shape = context.shape,\n children = shape.children;\n\n // recursively remember previous visibility of children\n context.oldChildrenVisibility = getElementsVisibilityRecursive(children);\n\n // toggle state\n shape.collapsed = !shape.collapsed;\n\n // recursively hide/show children\n var result = setHiddenRecursive(children, shape.collapsed);\n\n return [shape].concat(result);\n};\n\n\nToggleShapeCollapseHandler.prototype.revert = function(context) {\n\n var shape = context.shape,\n oldChildrenVisibility = context.oldChildrenVisibility;\n\n var children = shape.children;\n\n // recursively set old visability of children\n var result = restoreVisibilityRecursive(children, oldChildrenVisibility);\n\n // retoggle state\n shape.collapsed = !shape.collapsed;\n\n return [shape].concat(result);\n};\n\n\n// helpers //////////////////////\n\n/**\n * Return a map { elementId -> hiddenState}.\n *\n * @param {Array} elements\n *\n * @return {Object}\n */\nfunction getElementsVisibilityRecursive(elements) {\n\n var result = {};\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n result[element.id] = element.hidden;\n\n if (element.children) {\n result = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, result, getElementsVisibilityRecursive(element.children));\n }\n });\n\n return result;\n}\n\n\nfunction setHiddenRecursive(elements, newHidden) {\n var result = [];\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n element.hidden = newHidden;\n\n result = result.concat(element);\n\n if (element.children) {\n result = result.concat(setHiddenRecursive(element.children, element.collapsed || newHidden));\n }\n });\n\n return result;\n}\n\nfunction restoreVisibilityRecursive(elements, lastState) {\n var result = [];\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n element.hidden = lastState[element.id];\n\n result = result.concat(element);\n\n if (element.children) {\n result = result.concat(restoreVisibilityRecursive(element.children, lastState));\n }\n });\n\n return result;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js": /*!**************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js ***! \**************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateAttachmentHandler)\n/* harmony export */ });\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n/**\n * A handler that implements reversible attaching/detaching of shapes.\n */\nfunction UpdateAttachmentHandler(modeling) {\n this._modeling = modeling;\n}\n\nUpdateAttachmentHandler.$inject = [ 'modeling' ];\n\n\nUpdateAttachmentHandler.prototype.execute = function(context) {\n var shape = context.shape,\n newHost = context.newHost,\n oldHost = shape.host;\n\n // (0) detach from old host\n context.oldHost = oldHost;\n context.attacherIdx = removeAttacher(oldHost, shape);\n\n // (1) attach to new host\n addAttacher(newHost, shape);\n\n // (2) update host\n shape.host = newHost;\n\n return shape;\n};\n\nUpdateAttachmentHandler.prototype.revert = function(context) {\n var shape = context.shape,\n newHost = context.newHost,\n oldHost = context.oldHost,\n attacherIdx = context.attacherIdx;\n\n // (2) update host\n shape.host = oldHost;\n\n // (1) attach to new host\n removeAttacher(newHost, shape);\n\n // (0) detach from old host\n addAttacher(oldHost, shape, attacherIdx);\n\n return shape;\n};\n\n\nfunction removeAttacher(host, attacher) {\n\n // remove attacher from host\n return (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(host && host.attachers, attacher);\n}\n\nfunction addAttacher(host, attacher, idx) {\n\n if (!host) {\n return;\n }\n\n var attachers = host.attachers;\n\n if (!attachers) {\n host.attachers = attachers = [];\n }\n\n (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(attachers, attacher, idx);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js": /*!*************************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ UpdateWaypointsHandler)\n/* harmony export */ });\nfunction UpdateWaypointsHandler() { }\n\nUpdateWaypointsHandler.prototype.execute = function(context) {\n\n var connection = context.connection,\n newWaypoints = context.newWaypoints;\n\n context.oldWaypoints = connection.waypoints;\n\n connection.waypoints = newWaypoints;\n\n return connection;\n};\n\nUpdateWaypointsHandler.prototype.revert = function(context) {\n\n var connection = context.connection,\n oldWaypoints = context.oldWaypoints;\n\n connection.waypoints = oldWaypoints;\n\n return connection;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js": /*!***********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getResizedSourceAnchor\": () => (/* binding */ getResizedSourceAnchor),\n/* harmony export */ \"getResizedTargetAnchor\": () => (/* binding */ getResizedTargetAnchor),\n/* harmony export */ \"getMovedSourceAnchor\": () => (/* binding */ getMovedSourceAnchor),\n/* harmony export */ \"getMovedTargetAnchor\": () => (/* binding */ getMovedTargetAnchor)\n/* harmony export */ });\n/* harmony import */ var _util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../util/AttachUtil */ \"./node_modules/diagram-js/lib/util/AttachUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\nfunction getResizedSourceAnchor(connection, shape, oldBounds) {\n\n var waypoints = safeGetWaypoints(connection),\n waypointsInsideNewBounds = getWaypointsInsideBounds(waypoints, shape),\n oldAnchor = waypoints[0];\n\n // new anchor is the last waypoint enclosed be resized source\n if (waypointsInsideNewBounds.length) {\n return waypointsInsideNewBounds[ waypointsInsideNewBounds.length - 1 ];\n }\n\n return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, shape);\n}\n\n\nfunction getResizedTargetAnchor(connection, shape, oldBounds) {\n\n var waypoints = safeGetWaypoints(connection),\n waypointsInsideNewBounds = getWaypointsInsideBounds(waypoints, shape),\n oldAnchor = waypoints[waypoints.length - 1];\n\n // new anchor is the first waypoint enclosed be resized target\n if (waypointsInsideNewBounds.length) {\n return waypointsInsideNewBounds[ 0 ];\n }\n\n return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, shape);\n}\n\n\nfunction getMovedSourceAnchor(connection, source, moveDelta) {\n\n var waypoints = safeGetWaypoints(connection),\n oldBounds = subtract(source, moveDelta),\n oldAnchor = waypoints[ 0 ];\n\n return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, source);\n}\n\n\nfunction getMovedTargetAnchor(connection, target, moveDelta) {\n\n var waypoints = safeGetWaypoints(connection),\n oldBounds = subtract(target, moveDelta),\n oldAnchor = waypoints[ waypoints.length - 1 ];\n\n return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, target);\n}\n\n\n// helpers //////////////////////\n\nfunction subtract(bounds, delta) {\n return {\n x: bounds.x - delta.x,\n y: bounds.y - delta.y,\n width: bounds.width,\n height: bounds.height\n };\n}\n\n\n/**\n * Return waypoints of given connection; throw if non exists (should not happen!!).\n *\n * @param {Connection} connection\n *\n * @return {Array}\n */\nfunction safeGetWaypoints(connection) {\n\n var waypoints = connection.waypoints;\n\n if (!waypoints.length) {\n throw new Error('connection#' + connection.id + ': no waypoints');\n }\n\n return waypoints;\n}\n\nfunction getWaypointsInsideBounds(waypoints, bounds) {\n var originalWaypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.map)(waypoints, getOriginal);\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(originalWaypoints, function(waypoint) {\n return isInsideBounds(waypoint, bounds);\n });\n}\n\n/**\n * Checks if point is inside bounds, incl. edges.\n *\n * @param {Point} point\n * @param {Bounds} bounds\n */\nfunction isInsideBounds(point, bounds) {\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.getOrientation)(bounds, point, 1) === 'intersect';\n}\n\nfunction getOriginal(point) {\n return point.original || point;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js": /*!*********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js ***! \*********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveClosure)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\nfunction MoveClosure() {\n\n this.allShapes = {};\n this.allConnections = {};\n\n this.enclosedElements = {};\n this.enclosedConnections = {};\n\n this.topLevel = {};\n}\n\n\nMoveClosure.prototype.add = function(element, isTopLevel) {\n return this.addAll([ element ], isTopLevel);\n};\n\n\nMoveClosure.prototype.addAll = function(elements, isTopLevel) {\n\n var newClosure = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_0__.getClosure)(elements, !!isTopLevel, this);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(this, newClosure);\n\n return this;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js": /*!********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveHelper)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n/* harmony import */ var _MoveClosure__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MoveClosure */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js\");\n\n\n\n\n\n\n\n/**\n * A helper that is able to carry out serialized move\n * operations on multiple elements.\n *\n * @param {Modeling} modeling\n */\nfunction MoveHelper(modeling) {\n this._modeling = modeling;\n}\n\n/**\n * Move the specified elements and all children by the given delta.\n *\n * This moves all enclosed connections, too and layouts all affected\n * external connections.\n *\n * @param {Array} elements\n * @param {Point} delta\n * @param {djs.model.Base} newParent applied to the first level of shapes\n *\n * @return {Array} list of touched elements\n */\nMoveHelper.prototype.moveRecursive = function(elements, delta, newParent) {\n if (!elements) {\n return [];\n } else {\n return this.moveClosure(this.getClosure(elements), delta, newParent);\n }\n};\n\n/**\n * Move the given closure of elmements.\n *\n * @param {Object} closure\n * @param {Point} delta\n * @param {djs.model.Base} [newParent]\n * @param {djs.model.Base} [newHost]\n */\nMoveHelper.prototype.moveClosure = function(closure, delta, newParent, newHost, primaryShape) {\n var modeling = this._modeling;\n\n var allShapes = closure.allShapes,\n allConnections = closure.allConnections,\n enclosedConnections = closure.enclosedConnections,\n topLevel = closure.topLevel,\n keepParent = false;\n\n if (primaryShape && primaryShape.parent === newParent) {\n keepParent = true;\n }\n\n // move all shapes\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(allShapes, function(shape) {\n\n // move the element according to the given delta\n modeling.moveShape(shape, delta, topLevel[shape.id] && !keepParent && newParent, {\n recurse: false,\n layout: false\n });\n });\n\n // move all child connections / layout external connections\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(allConnections, function(c) {\n\n var sourceMoved = !!allShapes[c.source.id],\n targetMoved = !!allShapes[c.target.id];\n\n if (enclosedConnections[c.id] && sourceMoved && targetMoved) {\n modeling.moveConnection(c, delta, topLevel[c.id] && !keepParent && newParent);\n } else {\n modeling.layoutConnection(c, {\n connectionStart: sourceMoved && (0,_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getMovedSourceAnchor)(c, c.source, delta),\n connectionEnd: targetMoved && (0,_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getMovedTargetAnchor)(c, c.target, delta)\n });\n }\n });\n};\n\n/**\n * Returns the closure for the selected elements\n *\n * @param {Array} elements\n * @return {MoveClosure} closure\n */\nMoveHelper.prototype.getClosure = function(elements) {\n return new _MoveClosure__WEBPACK_IMPORTED_MODULE_2__.default().addAll(elements, true);\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/mouse/Mouse.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/mouse/Mouse.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Mouse),\n/* harmony export */ \"createMoveEvent\": () => (/* binding */ createMoveEvent)\n/* harmony export */ });\nfunction Mouse(eventBus) {\r\n var self = this;\r\n\r\n this._lastMoveEvent = null;\r\n\r\n function setLastMoveEvent(mousemoveEvent) {\r\n self._lastMoveEvent = mousemoveEvent;\r\n }\r\n\r\n eventBus.on('canvas.init', function(context) {\r\n var svg = self._svg = context.svg;\r\n\r\n svg.addEventListener('mousemove', setLastMoveEvent);\r\n });\r\n\r\n eventBus.on('canvas.destroy', function() {\r\n self._lastMouseEvent = null;\r\n\r\n self._svg.removeEventListener('mousemove', setLastMoveEvent);\r\n });\r\n}\r\n\r\nMouse.$inject = [ 'eventBus' ];\r\n\r\nMouse.prototype.getLastMoveEvent = function() {\r\n return this._lastMoveEvent || createMoveEvent(0, 0);\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction createMoveEvent(x, y) {\r\n var event = document.createEvent('MouseEvent');\r\n\r\n var screenX = x,\r\n screenY = y,\r\n clientX = x,\r\n clientY = y;\r\n\r\n if (event.initMouseEvent) {\r\n event.initMouseEvent(\r\n 'mousemove',\r\n true,\r\n true,\r\n window,\r\n 0,\r\n screenX,\r\n screenY,\r\n clientX,\r\n clientY,\r\n false,\r\n false,\r\n false,\r\n false,\r\n 0,\r\n null\r\n );\r\n }\r\n\r\n return event;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/mouse/Mouse.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/mouse/index.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/mouse/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Mouse */ \"./node_modules/diagram-js/lib/features/mouse/Mouse.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'mouse' ],\n mouse: [ 'type', _Mouse__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/mouse/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/move/Move.js": /*!***********************************************************!*\ !*** ./node_modules/diagram-js/lib/features/move/Move.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveEvents)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n\n\nvar LOW_PRIORITY = 500,\n MEDIUM_PRIORITY = 1250,\n HIGH_PRIORITY = 1500;\n\n\n\n\n\nvar round = Math.round;\n\nfunction mid(element) {\n return {\n x: element.x + round(element.width / 2),\n y: element.y + round(element.height / 2)\n };\n}\n\n/**\n * A plugin that makes shapes draggable / droppable.\n *\n * @param {EventBus} eventBus\n * @param {Dragging} dragging\n * @param {Modeling} modeling\n * @param {Selection} selection\n * @param {Rules} rules\n */\nfunction MoveEvents(\n eventBus, dragging, modeling,\n selection, rules) {\n\n // rules\n\n function canMove(shapes, delta, position, target) {\n\n return rules.allowed('elements.move', {\n shapes: shapes,\n delta: delta,\n position: position,\n target: target\n });\n }\n\n\n // move events\n\n // assign a high priority to this handler to setup the environment\n // others may hook up later, e.g. at default priority and modify\n // the move environment.\n //\n // This sets up the context with\n //\n // * shape: the primary shape being moved\n // * shapes: a list of shapes to be moved\n // * validatedShapes: a list of shapes that are being checked\n // against the rules before and during move\n //\n eventBus.on('shape.move.start', HIGH_PRIORITY, function(event) {\n\n var context = event.context,\n shape = event.shape,\n shapes = selection.get().slice();\n\n // move only single shape if the dragged element\n // is not part of the current selection\n if (shapes.indexOf(shape) === -1) {\n shapes = [ shape ];\n }\n\n // ensure we remove nested elements in the collection\n // and add attachers for a proper dragger\n shapes = removeNested(shapes);\n\n // attach shapes to drag context\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(context, {\n shapes: shapes,\n validatedShapes: shapes,\n shape: shape\n });\n });\n\n\n // assign a high priority to this handler to setup the environment\n // others may hook up later, e.g. at default priority and modify\n // the move environment\n //\n eventBus.on('shape.move.start', MEDIUM_PRIORITY, function(event) {\n\n var context = event.context,\n validatedShapes = context.validatedShapes,\n canExecute;\n\n canExecute = context.canExecute = canMove(validatedShapes);\n\n // check if we can move the elements\n if (!canExecute) {\n return false;\n }\n });\n\n // assign a low priority to this handler\n // to let others modify the move event before we update\n // the context\n //\n eventBus.on('shape.move.move', LOW_PRIORITY, function(event) {\n\n var context = event.context,\n validatedShapes = context.validatedShapes,\n hover = event.hover,\n delta = { x: event.dx, y: event.dy },\n position = { x: event.x, y: event.y },\n canExecute;\n\n // check if we can move the elements\n canExecute = canMove(validatedShapes, delta, position, hover);\n\n context.delta = delta;\n context.canExecute = canExecute;\n\n // simply ignore move over\n if (canExecute === null) {\n context.target = null;\n\n return;\n }\n\n context.target = hover;\n });\n\n eventBus.on('shape.move.end', function(event) {\n\n var context = event.context;\n\n var delta = context.delta,\n canExecute = context.canExecute,\n isAttach = canExecute === 'attach',\n shapes = context.shapes;\n\n if (canExecute === false) {\n return false;\n }\n\n // ensure we have actual pixel values deltas\n // (important when zoom level was > 1 during move)\n delta.x = round(delta.x);\n delta.y = round(delta.y);\n\n if (delta.x === 0 && delta.y === 0) {\n\n // didn't move\n return;\n }\n\n modeling.moveElements(shapes, delta, context.target, {\n primaryShape: context.shape,\n attach: isAttach\n });\n });\n\n\n // move activation\n\n eventBus.on('element.mousedown', function(event) {\n\n if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.isPrimaryButton)(event)) {\n return;\n }\n\n var originalEvent = (0,_util_Event__WEBPACK_IMPORTED_MODULE_2__.getOriginal)(event);\n\n if (!originalEvent) {\n throw new Error('must supply DOM mousedown event');\n }\n\n return start(originalEvent, event.element);\n });\n\n /**\n * Start move.\n *\n * @param {MouseEvent} event\n * @param {djs.model.Shape} shape\n * @param {boolean} [activate]\n * @param {Object} [context]\n */\n function start(event, element, activate, context) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(activate)) {\n context = activate;\n activate = false;\n }\n\n // do not move connections or the root element\n if (element.waypoints || !element.parent) {\n return;\n }\n\n var referencePoint = mid(element);\n\n dragging.init(event, referencePoint, 'shape.move', {\n cursor: 'grabbing',\n autoActivate: activate,\n data: {\n shape: element,\n context: context || {}\n }\n });\n\n // we've handled the event\n return true;\n }\n\n // API\n\n this.start = start;\n}\n\nMoveEvents.$inject = [\n 'eventBus',\n 'dragging',\n 'modeling',\n 'selection',\n 'rules'\n];\n\n\n/**\n * Return a filtered list of elements that do not contain\n * those nested into others.\n *\n * @param {Array} elements\n *\n * @return {Array} filtered\n */\nfunction removeNested(elements) {\n\n var ids = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.groupBy)(elements, 'id');\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n while ((element = element.parent)) {\n\n // parent in selection\n if (ids[element.id]) {\n return false;\n }\n }\n\n return true;\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/move/Move.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/move/MovePreview.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/move/MovePreview.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MovePreview)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 499;\n\nvar MARKER_DRAGGING = 'djs-dragging',\n MARKER_OK = 'drop-ok',\n MARKER_NOT_OK = 'drop-not-ok',\n MARKER_NEW_PARENT = 'new-parent',\n MARKER_ATTACH = 'attach-ok';\n\n\n/**\n * Provides previews for moving shapes when moving.\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n * @param {Canvas} canvas\n * @param {Styles} styles\n */\nfunction MovePreview(\n eventBus, canvas, styles, previewSupport) {\n\n function getVisualDragShapes(shapes) {\n var elements = getAllDraggedElements(shapes);\n\n var filteredElements = removeEdges(elements);\n\n return filteredElements;\n }\n\n function getAllDraggedElements(shapes) {\n var allShapes = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_0__.selfAndAllChildren)(shapes, true);\n\n var allConnections = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.map)(allShapes, function(shape) {\n return (shape.incoming || []).concat(shape.outgoing || []);\n });\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.flatten)(allShapes.concat(allConnections));\n }\n\n /**\n * Sets drop marker on an element.\n */\n function setMarker(element, marker) {\n\n [ MARKER_ATTACH, MARKER_OK, MARKER_NOT_OK, MARKER_NEW_PARENT ].forEach(function(m) {\n\n if (m === marker) {\n canvas.addMarker(element, m);\n } else {\n canvas.removeMarker(element, m);\n }\n });\n }\n\n /**\n * Make an element draggable.\n *\n * @param {Object} context\n * @param {djs.model.Base} element\n * @param {boolean} addMarker\n */\n function makeDraggable(context, element, addMarker) {\n\n previewSupport.addDragger(element, context.dragGroup);\n\n if (addMarker) {\n canvas.addMarker(element, MARKER_DRAGGING);\n }\n\n if (context.allDraggedElements) {\n context.allDraggedElements.push(element);\n } else {\n context.allDraggedElements = [ element ];\n }\n }\n\n // assign a low priority to this handler\n // to let others modify the move context before\n // we draw things\n eventBus.on('shape.move.start', LOW_PRIORITY, function(event) {\n var context = event.context,\n dragShapes = context.shapes,\n allDraggedElements = context.allDraggedElements;\n\n var visuallyDraggedShapes = getVisualDragShapes(dragShapes);\n\n if (!context.dragGroup) {\n var dragGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(dragGroup, styles.cls('djs-drag-group', [ 'no-events' ]));\n\n var defaultLayer = canvas.getDefaultLayer();\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(defaultLayer, dragGroup);\n\n context.dragGroup = dragGroup;\n }\n\n // add previews\n visuallyDraggedShapes.forEach(function(shape) {\n previewSupport.addDragger(shape, context.dragGroup);\n });\n\n // cache all dragged elements / gfx\n // so that we can quickly undo their state changes later\n if (!allDraggedElements) {\n allDraggedElements = getAllDraggedElements(dragShapes);\n } else {\n allDraggedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.flatten)([\n allDraggedElements,\n getAllDraggedElements(dragShapes)\n ]);\n }\n\n // add dragging marker\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(allDraggedElements, function(e) {\n canvas.addMarker(e, MARKER_DRAGGING);\n });\n\n context.allDraggedElements = allDraggedElements;\n\n // determine, if any of the dragged elements have different parents\n context.differentParents = haveDifferentParents(dragShapes);\n });\n\n // update previews\n eventBus.on('shape.move.move', LOW_PRIORITY, function(event) {\n\n var context = event.context,\n dragGroup = context.dragGroup,\n target = context.target,\n parent = context.shape.parent,\n canExecute = context.canExecute;\n\n if (target) {\n if (canExecute === 'attach') {\n setMarker(target, MARKER_ATTACH);\n } else if (context.canExecute && target && target.id !== parent.id) {\n setMarker(target, MARKER_NEW_PARENT);\n } else {\n setMarker(target, context.canExecute ? MARKER_OK : MARKER_NOT_OK);\n }\n }\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(dragGroup, event.dx, event.dy);\n });\n\n eventBus.on([ 'shape.move.out', 'shape.move.cleanup' ], function(event) {\n var context = event.context,\n target = context.target;\n\n if (target) {\n setMarker(target, null);\n }\n });\n\n // remove previews\n eventBus.on('shape.move.cleanup', function(event) {\n\n var context = event.context,\n allDraggedElements = context.allDraggedElements,\n dragGroup = context.dragGroup;\n\n\n // remove dragging marker\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(allDraggedElements, function(e) {\n canvas.removeMarker(e, MARKER_DRAGGING);\n });\n\n if (dragGroup) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.remove)(dragGroup);\n }\n });\n\n\n // API //////////////////////\n\n /**\n * Make an element draggable.\n *\n * @param {Object} context\n * @param {djs.model.Base} element\n * @param {boolean} addMarker\n */\n this.makeDraggable = makeDraggable;\n}\n\nMovePreview.$inject = [\n 'eventBus',\n 'canvas',\n 'styles',\n 'previewSupport'\n];\n\n\n// helpers //////////////////////\n\n/**\n * returns elements minus all connections\n * where source or target is not elements\n */\nfunction removeEdges(elements) {\n\n var filteredElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(elements, function(element) {\n\n if (!isConnection(element)) {\n return true;\n } else {\n\n return (\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ id: element.source.id })) &&\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ id: element.target.id }))\n );\n }\n });\n\n return filteredElements;\n}\n\nfunction haveDifferentParents(elements) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.size)((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.groupBy)(elements, function(e) { return e.parent && e.parent.id; })) !== 1;\n}\n\n/**\n * Checks if an element is a connection.\n */\nfunction isConnection(element) {\n return element.waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/move/MovePreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/move/index.js": /*!************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/move/index.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../outline */ \"./node_modules/diagram-js/lib/features/outline/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _Move__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Move */ \"./node_modules/diagram-js/lib/features/move/Move.js\");\n/* harmony import */ var _MovePreview__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MovePreview */ \"./node_modules/diagram-js/lib/features/move/MovePreview.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default,\n _selection__WEBPACK_IMPORTED_MODULE_1__.default,\n _outline__WEBPACK_IMPORTED_MODULE_2__.default,\n _rules__WEBPACK_IMPORTED_MODULE_3__.default,\n _dragging__WEBPACK_IMPORTED_MODULE_4__.default,\n _preview_support__WEBPACK_IMPORTED_MODULE_5__.default\n ],\n __init__: [\n 'move',\n 'movePreview'\n ],\n move: [ 'type', _Move__WEBPACK_IMPORTED_MODULE_6__.default ],\n movePreview: [ 'type', _MovePreview__WEBPACK_IMPORTED_MODULE_7__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/move/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js": /*!***************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ OrderingProvider)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n/**\n * An abstract provider that allows modelers to implement a custom\n * ordering of diagram elements on the canvas.\n *\n * It makes sure that the order is always preserved during element\n * creation and move operations.\n *\n * In order to use this behavior, inherit from it and override\n * the method {@link OrderingProvider#getOrdering}.\n *\n * @example\n *\n * ```javascript\n * function CustomOrderingProvider(eventBus) {\n * OrderingProvider.call(this, eventBus);\n *\n * this.getOrdering = function(element, newParent) {\n * // always insert elements at the front\n * // when moving\n * return {\n * index: 0,\n * parent: newParent\n * };\n * };\n * }\n * ```\n *\n * @param {EventBus} eventBus\n */\nfunction OrderingProvider(eventBus) {\n\n _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n var self = this;\n\n this.preExecute([ 'shape.create', 'connection.create' ], function(event) {\n\n var context = event.context,\n element = context.shape || context.connection,\n parent = context.parent;\n\n var ordering = self.getOrdering(element, parent);\n\n if (ordering) {\n\n if (ordering.parent !== undefined) {\n context.parent = ordering.parent;\n }\n\n context.parentIndex = ordering.index;\n }\n });\n\n this.preExecute([ 'shape.move', 'connection.move' ], function(event) {\n\n var context = event.context,\n element = context.shape || context.connection,\n parent = context.newParent || element.parent;\n\n var ordering = self.getOrdering(element, parent);\n\n if (ordering) {\n\n if (ordering.parent !== undefined) {\n context.newParent = ordering.parent;\n }\n\n context.newParentIndex = ordering.index;\n }\n });\n}\n\n/**\n * Return a custom ordering of the element, both in terms\n * of parent element and index in the new parent.\n *\n * Implementors of this method must return an object with\n * `parent` _and_ `index` in it.\n *\n * @param {djs.model.Base} element\n * @param {djs.model.Shape} newParent\n *\n * @return {Object} ordering descriptor\n */\nOrderingProvider.prototype.getOrdering = function(element, newParent) {\n return null;\n};\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(OrderingProvider, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/outline/Outline.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/outline/Outline.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Outline)\n/* harmony export */ });\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar LOW_PRIORITY = 500;\n\n\n\n\n\n\n\n\n/**\n * @class\n *\n * A plugin that adds an outline to shapes and connections that may be activated and styled\n * via CSS classes.\n *\n * @param {EventBus} eventBus\n * @param {Styles} styles\n * @param {ElementRegistry} elementRegistry\n */\nfunction Outline(eventBus, styles, elementRegistry) {\n\n this.offset = 6;\n\n var OUTLINE_STYLE = styles.cls('djs-outline', [ 'no-fill' ]);\n\n var self = this;\n\n function createOutline(gfx, bounds) {\n var outline = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(outline, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({\n x: 10,\n y: 10,\n width: 100,\n height: 100\n }, OUTLINE_STYLE));\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(gfx, outline);\n\n return outline;\n }\n\n // A low priortity is necessary, because outlines of labels have to be updated\n // after the label bounds have been updated in the renderer.\n eventBus.on([ 'shape.added', 'shape.changed' ], LOW_PRIORITY, function(event) {\n var element = event.element,\n gfx = event.gfx;\n\n var outline = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-outline', gfx);\n\n if (!outline) {\n outline = createOutline(gfx, element);\n }\n\n self.updateShapeOutline(outline, element);\n });\n\n eventBus.on([ 'connection.added', 'connection.changed' ], function(event) {\n var element = event.element,\n gfx = event.gfx;\n\n var outline = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-outline', gfx);\n\n if (!outline) {\n outline = createOutline(gfx, element);\n }\n\n self.updateConnectionOutline(outline, element);\n });\n}\n\n\n/**\n * Updates the outline of a shape respecting the dimension of the\n * element and an outline offset.\n *\n * @param {SVGElement} outline\n * @param {djs.model.Base} element\n */\nOutline.prototype.updateShapeOutline = function(outline, element) {\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(outline, {\n x: -this.offset,\n y: -this.offset,\n width: element.width + this.offset * 2,\n height: element.height + this.offset * 2\n });\n\n};\n\n\n/**\n * Updates the outline of a connection respecting the bounding box of\n * the connection and an outline offset.\n *\n * @param {SVGElement} outline\n * @param {djs.model.Base} element\n */\nOutline.prototype.updateConnectionOutline = function(outline, connection) {\n\n var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(connection);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(outline, {\n x: bbox.x - this.offset,\n y: bbox.y - this.offset,\n width: bbox.width + this.offset * 2,\n height: bbox.height + this.offset * 2\n });\n\n};\n\n\nOutline.$inject = ['eventBus', 'styles', 'elementRegistry'];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/outline/Outline.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/outline/index.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/outline/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Outline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Outline */ \"./node_modules/diagram-js/lib/features/outline/Outline.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'outline' ],\n outline: [ 'type', _Outline__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/outline/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/overlays/Overlays.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/overlays/Overlays.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Overlays)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/IdGenerator */ \"./node_modules/diagram-js/lib/util/IdGenerator.js\");\n\n\n\n\n\n\n\n\n// document wide unique overlay ids\nvar ids = new _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__.default('ov');\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * A service that allows users to attach overlays to diagram elements.\n *\n * The overlay service will take care of overlay positioning during updates.\n *\n * @example\n *\n * // add a pink badge on the top left of the shape\n * overlays.add(someShape, {\n * position: {\n * top: -5,\n * left: -5\n * },\n * html: '
    0
    '\n * });\n *\n * // or add via shape id\n *\n * overlays.add('some-element-id', {\n * position: {\n * top: -5,\n * left: -5\n * }\n * html: '
    0
    '\n * });\n *\n * // or add with optional type\n *\n * overlays.add(someShape, 'badge', {\n * position: {\n * top: -5,\n * left: -5\n * }\n * html: '
    0
    '\n * });\n *\n *\n * // remove an overlay\n *\n * var id = overlays.add(...);\n * overlays.remove(id);\n *\n *\n * You may configure overlay defaults during tool by providing a `config` module\n * with `overlays.defaults` as an entry:\n *\n * {\n * overlays: {\n * defaults: {\n * show: {\n * minZoom: 0.7,\n * maxZoom: 5.0\n * },\n * scale: {\n * min: 1\n * }\n * }\n * }\n *\n * @param {Object} config\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {ElementRegistry} elementRegistry\n */\nfunction Overlays(config, eventBus, canvas, elementRegistry) {\n\n this._eventBus = eventBus;\n this._canvas = canvas;\n this._elementRegistry = elementRegistry;\n\n this._ids = ids;\n\n this._overlayDefaults = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({\n\n // no show constraints\n show: null,\n\n // always scale\n scale: true\n }, config && config.defaults);\n\n /**\n * Mapping overlayId -> overlay\n */\n this._overlays = {};\n\n /**\n * Mapping elementId -> overlay container\n */\n this._overlayContainers = [];\n\n // root html element for all overlays\n this._overlayRoot = createRoot(canvas.getContainer());\n\n this._init();\n}\n\n\nOverlays.$inject = [\n 'config.overlays',\n 'eventBus',\n 'canvas',\n 'elementRegistry'\n];\n\n\n/**\n * Returns the overlay with the specified id or a list of overlays\n * for an element with a given type.\n *\n * @example\n *\n * // return the single overlay with the given id\n * overlays.get('some-id');\n *\n * // return all overlays for the shape\n * overlays.get({ element: someShape });\n *\n * // return all overlays on shape with type 'badge'\n * overlays.get({ element: someShape, type: 'badge' });\n *\n * // shape can also be specified as id\n * overlays.get({ element: 'element-id', type: 'badge' });\n *\n *\n * @param {Object} search\n * @param {string} [search.id]\n * @param {string|djs.model.Base} [search.element]\n * @param {string} [search.type]\n *\n * @return {Object|Array} the overlay(s)\n */\nOverlays.prototype.get = function(search) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(search)) {\n search = { id: search };\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(search.element)) {\n search.element = this._elementRegistry.get(search.element);\n }\n\n if (search.element) {\n var container = this._getOverlayContainer(search.element, true);\n\n // return a list of overlays when searching by element (+type)\n if (container) {\n return search.type ? (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(container.overlays, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ type: search.type })) : container.overlays.slice();\n } else {\n return [];\n }\n } else\n if (search.type) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(this._overlays, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ type: search.type }));\n } else {\n\n // return single element when searching by id\n return search.id ? this._overlays[search.id] : null;\n }\n};\n\n/**\n * Adds a HTML overlay to an element.\n *\n * @param {string|djs.model.Base} element attach overlay to this shape\n * @param {string} [type] optional type to assign to the overlay\n * @param {Object} overlay the overlay configuration\n *\n * @param {string|DOMElement} overlay.html html element to use as an overlay\n * @param {Object} [overlay.show] show configuration\n * @param {number} [overlay.show.minZoom] minimal zoom level to show the overlay\n * @param {number} [overlay.show.maxZoom] maximum zoom level to show the overlay\n * @param {Object} overlay.position where to attach the overlay\n * @param {number} [overlay.position.left] relative to element bbox left attachment\n * @param {number} [overlay.position.top] relative to element bbox top attachment\n * @param {number} [overlay.position.bottom] relative to element bbox bottom attachment\n * @param {number} [overlay.position.right] relative to element bbox right attachment\n * @param {boolean|Object} [overlay.scale=true] false to preserve the same size regardless of\n * diagram zoom\n * @param {number} [overlay.scale.min]\n * @param {number} [overlay.scale.max]\n *\n * @return {string} id that may be used to reference the overlay for update or removal\n */\nOverlays.prototype.add = function(element, type, overlay) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isObject)(type)) {\n overlay = type;\n type = null;\n }\n\n if (!element.id) {\n element = this._elementRegistry.get(element);\n }\n\n if (!overlay.position) {\n throw new Error('must specifiy overlay position');\n }\n\n if (!overlay.html) {\n throw new Error('must specifiy overlay html');\n }\n\n if (!element) {\n throw new Error('invalid element specified');\n }\n\n var id = this._ids.next();\n\n overlay = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, this._overlayDefaults, overlay, {\n id: id,\n type: type,\n element: element,\n html: overlay.html\n });\n\n this._addOverlay(overlay);\n\n return id;\n};\n\n\n/**\n * Remove an overlay with the given id or all overlays matching the given filter.\n *\n * @see Overlays#get for filter options.\n *\n * @param {string} [id]\n * @param {Object} [filter]\n */\nOverlays.prototype.remove = function(filter) {\n\n var overlays = this.get(filter) || [];\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(overlays)) {\n overlays = [ overlays ];\n }\n\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(overlays, function(overlay) {\n\n var container = self._getOverlayContainer(overlay.element, true);\n\n if (overlay) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.remove)(overlay.html);\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.remove)(overlay.htmlContainer);\n\n delete overlay.htmlContainer;\n delete overlay.element;\n\n delete self._overlays[overlay.id];\n }\n\n if (container) {\n var idx = container.overlays.indexOf(overlay);\n if (idx !== -1) {\n container.overlays.splice(idx, 1);\n }\n }\n });\n\n};\n\n\nOverlays.prototype.show = function() {\n setVisible(this._overlayRoot);\n};\n\n\nOverlays.prototype.hide = function() {\n setVisible(this._overlayRoot, false);\n};\n\nOverlays.prototype.clear = function() {\n this._overlays = {};\n\n this._overlayContainers = [];\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.clear)(this._overlayRoot);\n};\n\nOverlays.prototype._updateOverlayContainer = function(container) {\n var element = container.element,\n html = container.html;\n\n // update container left,top according to the elements x,y coordinates\n // this ensures we can attach child elements relative to this container\n\n var x = element.x,\n y = element.y;\n\n if (element.waypoints) {\n var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(element);\n x = bbox.x;\n y = bbox.y;\n }\n\n setPosition(html, x, y);\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.attr)(container.html, 'data-container-id', element.id);\n};\n\n\nOverlays.prototype._updateOverlay = function(overlay) {\n\n var position = overlay.position,\n htmlContainer = overlay.htmlContainer,\n element = overlay.element;\n\n // update overlay html relative to shape because\n // it is already positioned on the element\n\n // update relative\n var left = position.left,\n top = position.top;\n\n if (position.right !== undefined) {\n\n var width;\n\n if (element.waypoints) {\n width = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(element).width;\n } else {\n width = element.width;\n }\n\n left = position.right * -1 + width;\n }\n\n if (position.bottom !== undefined) {\n\n var height;\n\n if (element.waypoints) {\n height = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(element).height;\n } else {\n height = element.height;\n }\n\n top = position.bottom * -1 + height;\n }\n\n setPosition(htmlContainer, left || 0, top || 0);\n};\n\n\nOverlays.prototype._createOverlayContainer = function(element) {\n var html = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)('
    ');\n\n this._overlayRoot.appendChild(html);\n\n var container = {\n html: html,\n element: element,\n overlays: []\n };\n\n this._updateOverlayContainer(container);\n\n this._overlayContainers.push(container);\n\n return container;\n};\n\n\nOverlays.prototype._updateRoot = function(viewbox) {\n var scale = viewbox.scale || 1;\n\n var matrix = 'matrix(' +\n [\n scale,\n 0,\n 0,\n scale,\n -1 * viewbox.x * scale,\n -1 * viewbox.y * scale\n ].join(',') +\n ')';\n\n setTransform(this._overlayRoot, matrix);\n};\n\n\nOverlays.prototype._getOverlayContainer = function(element, raw) {\n var container = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(this._overlayContainers, function(c) {\n return c.element === element;\n });\n\n\n if (!container && !raw) {\n return this._createOverlayContainer(element);\n }\n\n return container;\n};\n\n\nOverlays.prototype._addOverlay = function(overlay) {\n\n var id = overlay.id,\n element = overlay.element,\n html = overlay.html,\n htmlContainer,\n overlayContainer;\n\n // unwrap jquery (for those who need it)\n if (html.get && html.constructor.prototype.jquery) {\n html = html.get(0);\n }\n\n // create proper html elements from\n // overlay HTML strings\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(html)) {\n html = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)(html);\n }\n\n overlayContainer = this._getOverlayContainer(element);\n\n htmlContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)('
    ');\n\n htmlContainer.appendChild(html);\n\n if (overlay.type) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.classes)(htmlContainer).add('djs-overlay-' + overlay.type);\n }\n\n overlay.htmlContainer = htmlContainer;\n\n overlayContainer.overlays.push(overlay);\n overlayContainer.html.appendChild(htmlContainer);\n\n this._overlays[id] = overlay;\n\n this._updateOverlay(overlay);\n this._updateOverlayVisibilty(overlay, this._canvas.viewbox());\n};\n\n\nOverlays.prototype._updateOverlayVisibilty = function(overlay, viewbox) {\n var show = overlay.show,\n minZoom = show && show.minZoom,\n maxZoom = show && show.maxZoom,\n htmlContainer = overlay.htmlContainer,\n visible = true;\n\n if (show) {\n if (\n ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(minZoom) && minZoom > viewbox.scale) ||\n ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(maxZoom) && maxZoom < viewbox.scale)\n ) {\n visible = false;\n }\n\n setVisible(htmlContainer, visible);\n }\n\n this._updateOverlayScale(overlay, viewbox);\n};\n\n\nOverlays.prototype._updateOverlayScale = function(overlay, viewbox) {\n var shouldScale = overlay.scale,\n minScale,\n maxScale,\n htmlContainer = overlay.htmlContainer;\n\n var scale, transform = '';\n\n if (shouldScale !== true) {\n\n if (shouldScale === false) {\n minScale = 1;\n maxScale = 1;\n } else {\n minScale = shouldScale.min;\n maxScale = shouldScale.max;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(minScale) && viewbox.scale < minScale) {\n scale = (1 / viewbox.scale || 1) * minScale;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(maxScale) && viewbox.scale > maxScale) {\n scale = (1 / viewbox.scale || 1) * maxScale;\n }\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(scale)) {\n transform = 'scale(' + scale + ',' + scale + ')';\n }\n\n setTransform(htmlContainer, transform);\n};\n\n\nOverlays.prototype._updateOverlaysVisibilty = function(viewbox) {\n\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(this._overlays, function(overlay) {\n self._updateOverlayVisibilty(overlay, viewbox);\n });\n};\n\n\nOverlays.prototype._init = function() {\n\n var eventBus = this._eventBus;\n\n var self = this;\n\n\n // scroll/zoom integration\n\n function updateViewbox(viewbox) {\n self._updateRoot(viewbox);\n self._updateOverlaysVisibilty(viewbox);\n\n self.show();\n }\n\n eventBus.on('canvas.viewbox.changing', function(event) {\n self.hide();\n });\n\n eventBus.on('canvas.viewbox.changed', function(event) {\n updateViewbox(event.viewbox);\n });\n\n\n // remove integration\n\n eventBus.on([ 'shape.remove', 'connection.remove' ], function(e) {\n var element = e.element;\n var overlays = self.get({ element: element });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(overlays, function(o) {\n self.remove(o.id);\n });\n\n var container = self._getOverlayContainer(element);\n\n if (container) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.remove)(container.html);\n var i = self._overlayContainers.indexOf(container);\n if (i !== -1) {\n self._overlayContainers.splice(i, 1);\n }\n }\n });\n\n\n // move integration\n\n eventBus.on('element.changed', LOW_PRIORITY, function(e) {\n var element = e.element;\n\n var container = self._getOverlayContainer(element, true);\n\n if (container) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(container.overlays, function(overlay) {\n self._updateOverlay(overlay);\n });\n\n self._updateOverlayContainer(container);\n }\n });\n\n\n // marker integration, simply add them on the overlays as classes, too.\n\n eventBus.on('element.marker.update', function(e) {\n var container = self._getOverlayContainer(e.element, true);\n if (container) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.classes)(container.html)[e.add ? 'add' : 'remove'](e.marker);\n }\n });\n\n\n // clear overlays with diagram\n\n eventBus.on('diagram.clear', this.clear, this);\n};\n\n\n\n// helpers /////////////////////////////\n\nfunction createRoot(parentNode) {\n var root = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)(\n '
    '\n );\n\n parentNode.insertBefore(root, parentNode.firstChild);\n\n return root;\n}\n\nfunction setPosition(el, x, y) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(el.style, { left: x + 'px', top: y + 'px' });\n}\n\nfunction setVisible(el, visible) {\n el.style.display = visible === false ? 'none' : '';\n}\n\nfunction setTransform(el, transform) {\n\n el.style['transform-origin'] = 'top left';\n\n [ '', '-ms-', '-webkit-' ].forEach(function(prefix) {\n el.style[prefix + 'transform'] = transform;\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/overlays/Overlays.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/overlays/index.js": /*!****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/overlays/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Overlays__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Overlays */ \"./node_modules/diagram-js/lib/features/overlays/Overlays.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'overlays' ],\n overlays: [ 'type', _Overlays__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/overlays/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/palette/Palette.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/palette/Palette.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Palette)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\n\nvar TOGGLE_SELECTOR = '.djs-palette-toggle',\n ENTRY_SELECTOR = '.entry',\n ELEMENT_SELECTOR = TOGGLE_SELECTOR + ', ' + ENTRY_SELECTOR;\n\nvar PALETTE_OPEN_CLS = 'open',\n PALETTE_TWO_COLUMN_CLS = 'two-column';\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A palette containing modeling elements.\n */\nfunction Palette(eventBus, canvas) {\n\n this._eventBus = eventBus;\n this._canvas = canvas;\n\n var self = this;\n\n eventBus.on('tool-manager.update', function(event) {\n var tool = event.tool;\n\n self.updateToolHighlight(tool);\n });\n\n eventBus.on('i18n.changed', function() {\n self._update();\n });\n\n eventBus.on('diagram.init', function() {\n\n self._diagramInitialized = true;\n\n self._rebuild();\n });\n}\n\nPalette.$inject = [ 'eventBus', 'canvas' ];\n\n\n/**\n * Register a provider with the palette\n *\n * @param {number} [priority=1000]\n * @param {PaletteProvider} provider\n *\n * @example\n * const paletteProvider = {\n * getPaletteEntries: function() {\n * return function(entries) {\n * return {\n * ...entries,\n * 'entry-1': {\n * label: 'My Entry',\n * action: function() { alert(\"I have been clicked!\"); }\n * }\n * };\n * }\n * }\n * };\n *\n * palette.registerProvider(800, paletteProvider);\n */\nPalette.prototype.registerProvider = function(priority, provider) {\n if (!provider) {\n provider = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n this._eventBus.on('palette.getProviders', priority, function(event) {\n event.providers.push(provider);\n });\n\n this._rebuild();\n};\n\n\n/**\n * Returns the palette entries\n *\n * @return {Object} map of entries\n */\nPalette.prototype.getEntries = function() {\n var providers = this._getProviders();\n\n return providers.reduce(addPaletteEntries, {});\n};\n\nPalette.prototype._rebuild = function() {\n\n if (!this._diagramInitialized) {\n return;\n }\n\n var providers = this._getProviders();\n\n if (!providers.length) {\n return;\n }\n\n if (!this._container) {\n this._init();\n }\n\n this._update();\n};\n\n/**\n * Initialize\n */\nPalette.prototype._init = function() {\n\n var self = this;\n\n var eventBus = this._eventBus;\n\n var parentContainer = this._getParentContainer();\n\n var container = this._container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(Palette.HTML_MARKUP);\n\n parentContainer.appendChild(container);\n\n min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(container, ELEMENT_SELECTOR, 'click', function(event) {\n\n var target = event.delegateTarget;\n\n if ((0,min_dom__WEBPACK_IMPORTED_MODULE_0__.matches)(target, TOGGLE_SELECTOR)) {\n return self.toggle();\n }\n\n self.trigger('click', event);\n });\n\n // prevent drag propagation\n min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(container, 'mousedown', function(event) {\n event.stopPropagation();\n });\n\n // prevent drag propagation\n min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(container, ENTRY_SELECTOR, 'dragstart', function(event) {\n self.trigger('dragstart', event);\n });\n\n eventBus.on('canvas.resized', this._layoutChanged, this);\n\n eventBus.fire('palette.create', {\n container: container\n });\n};\n\nPalette.prototype._getProviders = function(id) {\n\n var event = this._eventBus.createEvent({\n type: 'palette.getProviders',\n providers: []\n });\n\n this._eventBus.fire(event);\n\n return event.providers;\n};\n\n/**\n * Update palette state.\n *\n * @param {Object} [state] { open, twoColumn }\n */\nPalette.prototype._toggleState = function(state) {\n\n state = state || {};\n\n var parent = this._getParentContainer(),\n container = this._container;\n\n var eventBus = this._eventBus;\n\n var twoColumn;\n\n var cls = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(container);\n\n if ('twoColumn' in state) {\n twoColumn = state.twoColumn;\n } else {\n twoColumn = this._needsCollapse(parent.clientHeight, this._entries || {});\n }\n\n // always update two column\n cls.toggle(PALETTE_TWO_COLUMN_CLS, twoColumn);\n\n if ('open' in state) {\n cls.toggle(PALETTE_OPEN_CLS, state.open);\n }\n\n eventBus.fire('palette.changed', {\n twoColumn: twoColumn,\n open: this.isOpen()\n });\n};\n\nPalette.prototype._update = function() {\n\n var entriesContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('.djs-palette-entries', this._container),\n entries = this._entries = this.getEntries();\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.clear)(entriesContainer);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(entries, function(entry, id) {\n\n var grouping = entry.group || 'default';\n\n var container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('[data-group=' + grouping + ']', entriesContainer);\n if (!container) {\n container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)('
    ');\n entriesContainer.appendChild(container);\n }\n\n var html = entry.html || (\n entry.separator ?\n '
    ' :\n '
    ');\n\n\n var control = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(html);\n container.appendChild(control);\n\n if (!entry.separator) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(control, 'data-action', id);\n\n if (entry.title) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(control, 'title', entry.title);\n }\n\n if (entry.className) {\n addClasses(control, entry.className);\n }\n\n if (entry.imageUrl) {\n control.appendChild((0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(''));\n }\n }\n });\n\n // open after update\n this.open();\n};\n\n\n/**\n * Trigger an action available on the palette\n *\n * @param {string} action\n * @param {Event} event\n */\nPalette.prototype.trigger = function(action, event, autoActivate) {\n var entries = this._entries,\n entry,\n handler,\n originalEvent,\n button = event.delegateTarget || event.target;\n\n if (!button) {\n return event.preventDefault();\n }\n\n entry = entries[(0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(button, 'data-action')];\n\n // when user clicks on the palette and not on an action\n if (!entry) {\n return;\n }\n\n handler = entry.action;\n\n originalEvent = event.originalEvent || event;\n\n // simple action (via callback function)\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isFunction)(handler)) {\n if (action === 'click') {\n handler(originalEvent, autoActivate);\n }\n } else {\n if (handler[action]) {\n handler[action](originalEvent, autoActivate);\n }\n }\n\n // silence other actions\n event.preventDefault();\n};\n\nPalette.prototype._layoutChanged = function() {\n this._toggleState({});\n};\n\n/**\n * Do we need to collapse to two columns?\n *\n * @param {number} availableHeight\n * @param {Object} entries\n *\n * @return {boolean}\n */\nPalette.prototype._needsCollapse = function(availableHeight, entries) {\n\n // top margin + bottom toggle + bottom margin\n // implementors must override this method if they\n // change the palette styles\n var margin = 20 + 10 + 20;\n\n var entriesHeight = Object.keys(entries).length * 46;\n\n return availableHeight < entriesHeight + margin;\n};\n\n/**\n * Close the palette\n */\nPalette.prototype.close = function() {\n\n this._toggleState({\n open: false,\n twoColumn: false\n });\n};\n\n\n/**\n * Open the palette\n */\nPalette.prototype.open = function() {\n this._toggleState({ open: true });\n};\n\n\nPalette.prototype.toggle = function(open) {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n};\n\nPalette.prototype.isActiveTool = function(tool) {\n return tool && this._activeTool === tool;\n};\n\nPalette.prototype.updateToolHighlight = function(name) {\n var entriesContainer,\n toolsContainer;\n\n if (!this._toolsContainer) {\n entriesContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('.djs-palette-entries', this._container);\n\n this._toolsContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('[data-group=tools]', entriesContainer);\n }\n\n toolsContainer = this._toolsContainer;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(toolsContainer.children, function(tool) {\n var actionName = tool.getAttribute('data-action');\n\n if (!actionName) {\n return;\n }\n\n var toolClasses = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(tool);\n\n actionName = actionName.replace('-tool', '');\n\n if (toolClasses.contains('entry') && actionName === name) {\n toolClasses.add('highlighted-entry');\n } else {\n toolClasses.remove('highlighted-entry');\n }\n });\n};\n\n\n/**\n * Return true if the palette is opened.\n *\n * @example\n *\n * palette.open();\n *\n * if (palette.isOpen()) {\n * // yes, we are open\n * }\n *\n * @return {boolean} true if palette is opened\n */\nPalette.prototype.isOpen = function() {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(this._container).has(PALETTE_OPEN_CLS);\n};\n\n/**\n * Get container the palette lives in.\n *\n * @return {Element}\n */\nPalette.prototype._getParentContainer = function() {\n return this._canvas.getContainer();\n};\n\n\n/* markup definition */\n\nPalette.HTML_MARKUP =\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ';\n\n\n// helpers //////////////////////\n\nfunction addClasses(element, classNames) {\n\n var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(element);\n\n var actualClassNames = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(classNames) ? classNames : classNames.split(/\\s+/g);\n actualClassNames.forEach(function(cls) {\n classes.add(cls);\n });\n}\n\nfunction addPaletteEntries(entries, provider) {\n\n var entriesOrUpdater = provider.getPaletteEntries();\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isFunction)(entriesOrUpdater)) {\n return entriesOrUpdater(entries);\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(entriesOrUpdater, function(entry, id) {\n entries[id] = entry;\n });\n\n return entries;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/palette/Palette.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/palette/index.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/palette/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Palette */ \"./node_modules/diagram-js/lib/features/palette/Palette.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'palette' ],\n palette: [ 'type', _Palette__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/palette/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PopupMenu)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar DATA_REF = 'data-id';\n\nvar CLOSE_EVENTS = [\n 'contextPad.close',\n 'canvas.viewbox.changing',\n 'commandStack.changed'\n];\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A popup menu that can be used to display a list of actions anywhere in the canvas.\n *\n * @param {Object} config\n * @param {boolean|Object} [config.scale={ min: 1.0, max: 1.5 }]\n * @param {number} [config.scale.min]\n * @param {number} [config.scale.max]\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n *\n * @class\n * @constructor\n */\nfunction PopupMenu(config, eventBus, canvas) {\n\n var scale = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(config && config.scale) ? config.scale : {\n min: 1,\n max: 1.5\n };\n\n this._config = {\n scale: scale\n };\n\n this._eventBus = eventBus;\n this._canvas = canvas;\n this._providers = {};\n this._current = {};\n}\n\nPopupMenu.$inject = [\n 'config.popupMenu',\n 'eventBus',\n 'canvas'\n];\n\n/**\n * Registers a popup menu provider\n *\n * @param {string} id\n * @param {number} [priority=1000]\n * @param {Object} provider\n *\n * @example\n * const popupMenuProvider = {\n * getPopupMenuEntries: function(element) {\n * return {\n * 'entry-1': {\n * label: 'My Entry',\n * action: function() { alert(\"I have been clicked!\"); }\n * }\n * }\n * }\n * };\n *\n * popupMenu.registerProvider('myMenuID', popupMenuProvider);\n */\nPopupMenu.prototype.registerProvider = function(id, priority, provider) {\n if (!provider) {\n provider = priority;\n priority = DEFAULT_PRIORITY;\n }\n\n this._eventBus.on('popupMenu.getProviders.' + id, priority, function(event) {\n event.providers.push(provider);\n });\n};\n\n/**\n * Determine if the popup menu has entries.\n *\n * @return {boolean} true if empty\n */\nPopupMenu.prototype.isEmpty = function(element, providerId) {\n if (!element) {\n throw new Error('element parameter is missing');\n }\n\n if (!providerId) {\n throw new Error('providerId parameter is missing');\n }\n\n var providers = this._getProviders(providerId);\n\n if (!providers) {\n return true;\n }\n\n var entries = this._getEntries(element, providers),\n headerEntries = this._getHeaderEntries(element, providers);\n\n var hasEntries = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(entries) > 0,\n hasHeaderEntries = headerEntries && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(headerEntries) > 0;\n\n return !hasEntries && !hasHeaderEntries;\n};\n\n\n/**\n * Create entries and open popup menu at given position\n *\n * @param {Object} element\n * @param {string} id provider id\n * @param {Object} position\n *\n * @return {Object} popup menu instance\n */\nPopupMenu.prototype.open = function(element, id, position) {\n\n var providers = this._getProviders(id);\n\n if (!element) {\n throw new Error('Element is missing');\n }\n\n if (!providers || !providers.length) {\n throw new Error('No registered providers for: ' + id);\n }\n\n if (!position) {\n throw new Error('the position argument is missing');\n }\n\n if (this.isOpen()) {\n this.close();\n }\n\n this._emit('open');\n\n var current = this._current = {\n className: id,\n element: element,\n position: position\n };\n\n var entries = this._getEntries(element, providers),\n headerEntries = this._getHeaderEntries(element, providers);\n\n current.entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, entries, headerEntries);\n\n current.container = this._createContainer();\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(headerEntries)) {\n current.container.appendChild(\n this._createEntries(headerEntries, 'djs-popup-header')\n );\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(entries)) {\n current.container.appendChild(\n this._createEntries(entries, 'djs-popup-body')\n );\n }\n\n var canvas = this._canvas,\n parent = canvas.getContainer();\n\n this._attachContainer(current.container, parent, position.cursor);\n this._bindAutoClose();\n};\n\n\n/**\n * Removes the popup menu and unbinds the event handlers.\n */\nPopupMenu.prototype.close = function() {\n\n if (!this.isOpen()) {\n return;\n }\n\n this._emit('close');\n\n this._unbindAutoClose();\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.remove)(this._current.container);\n this._current.container = null;\n};\n\n\n/**\n * Determine if an open popup menu exist.\n *\n * @return {boolean} true if open\n */\nPopupMenu.prototype.isOpen = function() {\n return !!this._current.container;\n};\n\n\n/**\n * Trigger an action associated with an entry.\n *\n * @param {Object} event\n *\n * @return the result of the action callback, if any\n */\nPopupMenu.prototype.trigger = function(event) {\n\n // silence other actions\n event.preventDefault();\n\n var element = event.delegateTarget || event.target,\n entryId = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(element, DATA_REF);\n\n var entry = this._getEntry(entryId);\n\n if (entry.action) {\n return entry.action.call(null, event, entry);\n }\n};\n\nPopupMenu.prototype._getProviders = function(id) {\n\n var event = this._eventBus.createEvent({\n type: 'popupMenu.getProviders.' + id,\n providers: []\n });\n\n this._eventBus.fire(event);\n\n return event.providers;\n};\n\nPopupMenu.prototype._getEntries = function(element, providers) {\n\n var entries = {};\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(providers, function(provider) {\n\n // handle legacy method\n if (!provider.getPopupMenuEntries) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(provider.getEntries(element), function(entry) {\n var id = entry.id;\n\n if (!id) {\n throw new Error('every entry must have the id property set');\n }\n\n entries[id] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(entry, [ 'id' ]);\n });\n\n return;\n }\n\n var entriesOrUpdater = provider.getPopupMenuEntries(element);\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(entriesOrUpdater)) {\n entries = entriesOrUpdater(entries);\n } else {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entriesOrUpdater, function(entry, id) {\n entries[id] = entry;\n });\n }\n });\n\n return entries;\n};\n\nPopupMenu.prototype._getHeaderEntries = function(element, providers) {\n\n var entries = {};\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(providers, function(provider) {\n\n // handle legacy method\n if (!provider.getPopupMenuHeaderEntries) {\n if (!provider.getHeaderEntries) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(provider.getHeaderEntries(element), function(entry) {\n var id = entry.id;\n\n if (!id) {\n throw new Error('every entry must have the id property set');\n }\n\n entries[id] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(entry, [ 'id' ]);\n });\n\n return;\n }\n\n var entriesOrUpdater = provider.getPopupMenuHeaderEntries(element);\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(entriesOrUpdater)) {\n entries = entriesOrUpdater(entries);\n } else {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entriesOrUpdater, function(entry, id) {\n entries[id] = entry;\n });\n }\n });\n\n return entries;\n\n\n};\n\n/**\n * Gets an entry instance (either entry or headerEntry) by id.\n *\n * @param {string} entryId\n *\n * @return {Object} entry instance\n */\nPopupMenu.prototype._getEntry = function(entryId) {\n\n var entry = this._current.entries[entryId];\n\n if (!entry) {\n throw new Error('entry not found');\n }\n\n return entry;\n};\n\nPopupMenu.prototype._emit = function(eventName) {\n this._eventBus.fire('popupMenu.' + eventName);\n};\n\n/**\n * Creates the popup menu container.\n *\n * @return {Object} a DOM container\n */\nPopupMenu.prototype._createContainer = function() {\n var container = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('
    '),\n position = this._current.position,\n className = this._current.className;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(container.style, {\n position: 'absolute',\n left: position.x + 'px',\n top: position.y + 'px',\n visibility: 'hidden'\n });\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(container).add(className);\n\n return container;\n};\n\n\n/**\n * Attaches the container to the DOM.\n *\n * @param {Object} container\n * @param {Object} parent\n */\nPopupMenu.prototype._attachContainer = function(container, parent, cursor) {\n var self = this;\n\n // Event handler\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(container, '.entry' ,'click', function(event) {\n self.trigger(event);\n });\n\n this._updateScale(container);\n\n // Attach to DOM\n parent.appendChild(container);\n\n if (cursor) {\n this._assureIsInbounds(container, cursor);\n }\n};\n\n\n/**\n * Updates popup style.transform with respect to the config and zoom level.\n *\n * @method _updateScale\n *\n * @param {Object} container\n */\nPopupMenu.prototype._updateScale = function(container) {\n var zoom = this._canvas.zoom();\n\n var scaleConfig = this._config.scale,\n minScale,\n maxScale,\n scale = zoom;\n\n if (scaleConfig !== true) {\n\n if (scaleConfig === false) {\n minScale = 1;\n maxScale = 1;\n } else {\n minScale = scaleConfig.min;\n maxScale = scaleConfig.max;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(minScale) && zoom < minScale) {\n scale = minScale;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(maxScale) && zoom > maxScale) {\n scale = maxScale;\n }\n\n }\n\n setTransform(container, 'scale(' + scale + ')');\n};\n\n\n/**\n * Make sure that the menu is always fully shown\n *\n * @method function\n *\n * @param {Object} container\n * @param {Position} cursor {x, y}\n */\nPopupMenu.prototype._assureIsInbounds = function(container, cursor) {\n var canvas = this._canvas,\n clientRect = canvas._container.getBoundingClientRect();\n\n var containerX = container.offsetLeft,\n containerY = container.offsetTop,\n containerWidth = container.scrollWidth,\n containerHeight = container.scrollHeight,\n overAxis = {},\n left, top;\n\n var cursorPosition = {\n x: cursor.x - clientRect.left,\n y: cursor.y - clientRect.top\n };\n\n if (containerX + containerWidth > clientRect.width) {\n overAxis.x = true;\n }\n\n if (containerY + containerHeight > clientRect.height) {\n overAxis.y = true;\n }\n\n if (overAxis.x && overAxis.y) {\n left = cursorPosition.x - containerWidth + 'px';\n top = cursorPosition.y - containerHeight + 'px';\n } else if (overAxis.x) {\n left = cursorPosition.x - containerWidth + 'px';\n top = cursorPosition.y + 'px';\n } else if (overAxis.y && cursorPosition.y < containerHeight) {\n left = cursorPosition.x + 'px';\n top = 10 + 'px';\n } else if (overAxis.y) {\n left = cursorPosition.x + 'px';\n top = cursorPosition.y - containerHeight + 'px';\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(container.style, { left: left, top: top }, { visibility: 'visible', 'z-index': 1000 });\n};\n\n\n/**\n * Creates a list of entries and returns them as a DOM container.\n *\n * @param {Array} entries an array of entry objects\n * @param {string} className the class name of the entry container\n *\n * @return {Object} a DOM container\n */\nPopupMenu.prototype._createEntries = function(entries, className) {\n\n var entriesContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('
    '),\n self = this;\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(entriesContainer).add(className);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entries, function(entry, id) {\n var entryContainer = self._createEntry(entry, id);\n entriesContainer.appendChild(entryContainer);\n });\n\n return entriesContainer;\n};\n\n\n/**\n * Creates a single entry and returns it as a DOM container.\n *\n * @param {Object} entry\n *\n * @return {Object} a DOM container\n */\nPopupMenu.prototype._createEntry = function(entry, id) {\n\n var entryContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('
    '),\n entryClasses = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(entryContainer);\n\n entryClasses.add('entry');\n\n if (entry.className) {\n entry.className.split(' ').forEach(function(className) {\n entryClasses.add(className);\n });\n }\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(entryContainer, DATA_REF, id);\n\n if (entry.label) {\n var label = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('');\n label.textContent = entry.label;\n entryContainer.appendChild(label);\n }\n\n if (entry.imageUrl) {\n entryContainer.appendChild((0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(''));\n }\n\n if (entry.active === true) {\n entryClasses.add('active');\n }\n\n if (entry.disabled === true) {\n entryClasses.add('disabled');\n }\n\n if (entry.title) {\n entryContainer.title = entry.title;\n }\n\n return entryContainer;\n};\n\n\n/**\n * Set up listener to close popup automatically on certain events.\n */\nPopupMenu.prototype._bindAutoClose = function() {\n this._eventBus.once(CLOSE_EVENTS, this.close, this);\n};\n\n\n/**\n * Remove the auto-closing listener.\n */\nPopupMenu.prototype._unbindAutoClose = function() {\n this._eventBus.off(CLOSE_EVENTS, this.close, this);\n};\n\n\n\n// helpers /////////////////////////////\n\nfunction setTransform(element, transform) {\n element.style['transform-origin'] = 'top left';\n\n [ '', '-ms-', '-webkit-' ].forEach(function(prefix) {\n element.style[prefix + 'transform'] = transform;\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/popup-menu/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/popup-menu/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _PopupMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PopupMenu */ \"./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'popupMenu' ],\n popupMenu: [ 'type', _PopupMenu__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/popup-menu/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js": /*!********************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PreviewSupport)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/GraphicsUtil */ \"./node_modules/diagram-js/lib/util/GraphicsUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar MARKER_TYPES = [\r\n 'marker-start',\r\n 'marker-mid',\r\n 'marker-end'\r\n];\r\n\r\nvar NODES_CAN_HAVE_MARKER = [\r\n 'circle',\r\n 'ellipse',\r\n 'line',\r\n 'path',\r\n 'polygon',\r\n 'polyline',\r\n 'rect'\r\n];\r\n\r\n\r\n/**\r\n * Adds support for previews of moving/resizing elements.\r\n */\r\nfunction PreviewSupport(elementRegistry, eventBus, canvas, styles) {\r\n this._elementRegistry = elementRegistry;\r\n this._canvas = canvas;\r\n this._styles = styles;\r\n\r\n this._clonedMarkers = {};\r\n\r\n var self = this;\r\n\r\n eventBus.on('drag.cleanup', function() {\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(self._clonedMarkers, function(clonedMarker) {\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(clonedMarker);\r\n });\r\n\r\n self._clonedMarkers = {};\r\n });\r\n}\r\n\r\nPreviewSupport.$inject = [\r\n 'elementRegistry',\r\n 'eventBus',\r\n 'canvas',\r\n 'styles'\r\n];\r\n\r\n\r\n/**\r\n * Returns graphics of an element.\r\n *\r\n * @param {djs.model.Base} element\r\n *\r\n * @return {SVGElement}\r\n */\r\nPreviewSupport.prototype.getGfx = function(element) {\r\n return this._elementRegistry.getGraphics(element);\r\n};\r\n\r\n/**\r\n * Adds a move preview of a given shape to a given svg group.\r\n *\r\n * @param {djs.model.Base} element\r\n * @param {SVGElement} group\r\n * @param {SVGElement} [gfx]\r\n *\r\n * @return {SVGElement} dragger\r\n */\r\nPreviewSupport.prototype.addDragger = function(element, group, gfx) {\r\n gfx = gfx || this.getGfx(element);\r\n\r\n var dragger = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.clone)(gfx);\r\n var bbox = gfx.getBoundingClientRect();\r\n\r\n this._cloneMarkers((0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_2__.getVisual)(dragger));\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(dragger, this._styles.cls('djs-dragger', [], {\r\n x: bbox.top,\r\n y: bbox.left\r\n }));\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(group, dragger);\r\n\r\n return dragger;\r\n};\r\n\r\n/**\r\n * Adds a resize preview of a given shape to a given svg group.\r\n *\r\n * @param {djs.model.Base} element\r\n * @param {SVGElement} group\r\n *\r\n * @return {SVGElement} frame\r\n */\r\nPreviewSupport.prototype.addFrame = function(shape, group) {\r\n\r\n var frame = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('rect', {\r\n class: 'djs-resize-overlay',\r\n width: shape.width,\r\n height: shape.height,\r\n x: shape.x,\r\n y: shape.y\r\n });\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(group, frame);\r\n\r\n return frame;\r\n};\r\n\r\n/**\r\n * Clone all markers referenced by a node and its child nodes.\r\n *\r\n * @param {SVGElement} gfx\r\n */\r\nPreviewSupport.prototype._cloneMarkers = function(gfx) {\r\n var self = this;\r\n\r\n if (gfx.childNodes) {\r\n\r\n // TODO: use forEach once we drop PhantomJS\r\n for (var i = 0; i < gfx.childNodes.length; i++) {\r\n\r\n // recursively clone markers of child nodes\r\n self._cloneMarkers(gfx.childNodes[ i ]);\r\n }\r\n }\r\n\r\n if (!canHaveMarker(gfx)) {\r\n return;\r\n }\r\n\r\n MARKER_TYPES.forEach(function(markerType) {\r\n if ((0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, markerType)) {\r\n var marker = getMarker(gfx, markerType, self._canvas.getContainer());\r\n\r\n self._cloneMarker(gfx, marker, markerType);\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * Clone marker referenced by an element.\r\n *\r\n * @param {SVGElement} gfx\r\n * @param {SVGElement} marker\r\n * @param {string} markerType\r\n */\r\nPreviewSupport.prototype._cloneMarker = function(gfx, marker, markerType) {\r\n var markerId = marker.id;\r\n\r\n var clonedMarker = this._clonedMarkers[ markerId ];\r\n\r\n if (!clonedMarker) {\r\n clonedMarker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.clone)(marker);\r\n\r\n var clonedMarkerId = markerId + '-clone';\r\n\r\n clonedMarker.id = clonedMarkerId;\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(clonedMarker)\r\n .add('djs-dragger')\r\n .add('djs-dragger-marker');\r\n\r\n this._clonedMarkers[ markerId ] = clonedMarker;\r\n\r\n var defs = (0,min_dom__WEBPACK_IMPORTED_MODULE_3__.query)('defs', this._canvas._svg);\r\n\r\n if (!defs) {\r\n defs = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('defs');\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(this._canvas._svg, defs);\r\n }\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(defs, clonedMarker);\r\n }\r\n\r\n var reference = idToReference(this._clonedMarkers[ markerId ].id);\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, markerType, reference);\r\n};\r\n\r\n// helpers //////////\r\n\r\n/**\r\n * Get marker of given type referenced by node.\r\n *\r\n * @param {Node} node\r\n * @param {string} markerType\r\n * @param {Node} [parentNode]\r\n *\r\n * @param {Node}\r\n */\r\nfunction getMarker(node, markerType, parentNode) {\r\n var id = referenceToId((0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(node, markerType));\r\n\r\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_3__.query)('marker#' + id, parentNode || document);\r\n}\r\n\r\n/**\r\n * Get ID of fragment within current document from its functional IRI reference.\r\n * References may use single or double quotes.\r\n *\r\n * @param {string} reference\r\n *\r\n * @returns {string}\r\n */\r\nfunction referenceToId(reference) {\r\n return reference.match(/url\\(['\"]?#([^'\"]*)['\"]?\\)/)[1];\r\n}\r\n\r\n/**\r\n * Get functional IRI reference for given ID of fragment within current document.\r\n *\r\n * @param {string} id\r\n *\r\n * @returns {string}\r\n */\r\nfunction idToReference(id) {\r\n return 'url(#' + id + ')';\r\n}\r\n\r\n/**\r\n * Check wether node type can have marker attributes.\r\n *\r\n * @param {Node} node\r\n *\r\n * @returns {boolean}\r\n */\r\nfunction canHaveMarker(node) {\r\n return NODES_CAN_HAVE_MARKER.indexOf(node.nodeName) !== -1;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/preview-support/index.js": /*!***********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/preview-support/index.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _PreviewSupport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PreviewSupport */ \"./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'previewSupport' ],\n previewSupport: [ 'type', _PreviewSupport__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/preview-support/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/replace/Replace.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/replace/Replace.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Replace)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar round = Math.round;\n\n/**\n * Service that allow replacing of elements.\n */\nfunction Replace(modeling) {\n\n this._modeling = modeling;\n}\n\nReplace.$inject = [ 'modeling' ];\n\n/**\n * @param {Element} oldElement - Element to be replaced\n * @param {Object} newElementData - Containing information about the new element,\n * for example the new bounds and type.\n * @param {Object} options - Custom options that will be attached to the context. It can be used to inject data\n * that is needed in the command chain. For example it could be used in\n * eventbus.on('commandStack.shape.replace.postExecute') to change shape attributes after\n * shape creation.\n */\nReplace.prototype.replaceElement = function(oldElement, newElementData, options) {\n\n if (oldElement.waypoints) {\n\n // TODO(nikku): we do not replace connections, yet\n return null;\n }\n\n var modeling = this._modeling;\n\n var width = newElementData.width || oldElement.width,\n height = newElementData.height || oldElement.height,\n x = newElementData.x || oldElement.x,\n y = newElementData.y || oldElement.y,\n centerX = round(x + width / 2),\n centerY = round(y + height / 2);\n\n // modeling API requires center coordinates,\n // account for that when handling shape bounds\n\n return modeling.replaceShape(\n oldElement,\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(\n {},\n newElementData,\n {\n x: centerX,\n y: centerY,\n width: width,\n height: height\n }\n ),\n options\n );\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/replace/Replace.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/replace/index.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/replace/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Replace */ \"./node_modules/diagram-js/lib/features/replace/Replace.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'replace' ],\n replace: [ 'type', _Replace__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/replace/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/resize/Resize.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/resize/Resize.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Resize),\n/* harmony export */ \"getReferencePoint\": () => (/* binding */ getReferencePoint)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _ResizeUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\nvar DEFAULT_MIN_WIDTH = 10;\n\n\n/**\n * A component that provides resizing of shapes on the canvas.\n *\n * The following components are part of shape resize:\n *\n * * adding resize handles,\n * * creating a visual during resize\n * * checking resize rules\n * * committing a change once finished\n *\n *\n * ## Customizing\n *\n * It's possible to customize the resizing behaviour by intercepting 'resize.start'\n * and providing the following parameters through the 'context':\n *\n * * minDimensions ({ width, height }): minimum shape dimensions\n *\n * * childrenBoxPadding ({ left, top, bottom, right } || number):\n * gap between the minimum bounding box and the container\n *\n * f.ex:\n *\n * ```javascript\n * eventBus.on('resize.start', 1500, function(event) {\n * var context = event.context,\n *\n * context.minDimensions = { width: 140, height: 120 };\n *\n * // Passing general padding\n * context.childrenBoxPadding = 30;\n *\n * // Passing padding to a specific side\n * context.childrenBoxPadding.left = 20;\n * });\n * ```\n */\nfunction Resize(eventBus, rules, modeling, dragging) {\n\n this._dragging = dragging;\n this._rules = rules;\n\n var self = this;\n\n\n /**\n * Handle resize move by specified delta.\n *\n * @param {Object} context\n * @param {Point} delta\n */\n function handleMove(context, delta) {\n\n var shape = context.shape,\n direction = context.direction,\n resizeConstraints = context.resizeConstraints,\n newBounds;\n\n context.delta = delta;\n\n newBounds = (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.resizeBounds)(shape, direction, delta);\n\n // ensure constraints during resize\n context.newBounds = (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.ensureConstraints)(newBounds, resizeConstraints);\n\n // update + cache executable state\n context.canExecute = self.canResize(context);\n }\n\n /**\n * Handle resize start.\n *\n * @param {Object} context\n */\n function handleStart(context) {\n\n var resizeConstraints = context.resizeConstraints,\n\n // evaluate minBounds for backwards compatibility\n minBounds = context.minBounds;\n\n if (resizeConstraints !== undefined) {\n return;\n }\n\n if (minBounds === undefined) {\n minBounds = self.computeMinResizeBox(context);\n }\n\n context.resizeConstraints = {\n min: (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(minBounds)\n };\n }\n\n /**\n * Handle resize end.\n *\n * @param {Object} context\n */\n function handleEnd(context) {\n var shape = context.shape,\n canExecute = context.canExecute,\n newBounds = context.newBounds;\n\n if (canExecute) {\n\n // ensure we have actual pixel values for new bounds\n // (important when zoom level was > 1 during move)\n newBounds = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.roundBounds)(newBounds);\n\n if (!boundsChanged(shape, newBounds)) {\n\n // no resize necessary\n return;\n }\n\n // perform the actual resize\n modeling.resizeShape(shape, newBounds);\n }\n }\n\n\n eventBus.on('resize.start', function(event) {\n handleStart(event.context);\n });\n\n eventBus.on('resize.move', function(event) {\n var delta = {\n x: event.dx,\n y: event.dy\n };\n\n handleMove(event.context, delta);\n });\n\n eventBus.on('resize.end', function(event) {\n handleEnd(event.context);\n });\n\n}\n\n\nResize.prototype.canResize = function(context) {\n var rules = this._rules;\n\n var ctx = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.pick)(context, [ 'newBounds', 'shape', 'delta', 'direction' ]);\n\n return rules.allowed('shape.resize', ctx);\n};\n\n/**\n * Activate a resize operation.\n *\n * You may specify additional contextual information and must specify a\n * resize direction during activation of the resize event.\n *\n * @param {MouseEvent} event\n * @param {djs.model.Shape} shape\n * @param {Object|string} contextOrDirection\n */\nResize.prototype.activate = function(event, shape, contextOrDirection) {\n var dragging = this._dragging,\n context,\n direction;\n\n if (typeof contextOrDirection === 'string') {\n contextOrDirection = {\n direction: contextOrDirection\n };\n }\n\n context = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ shape: shape }, contextOrDirection);\n\n direction = context.direction;\n\n if (!direction) {\n throw new Error('must provide a direction (n|w|s|e|nw|se|ne|sw)');\n }\n\n dragging.init(event, getReferencePoint(shape, direction), 'resize', {\n autoActivate: true,\n cursor: getCursor(direction),\n data: {\n shape: shape,\n context: context\n }\n });\n};\n\nResize.prototype.computeMinResizeBox = function(context) {\n var shape = context.shape,\n direction = context.direction,\n minDimensions,\n childrenBounds;\n\n minDimensions = context.minDimensions || {\n width: DEFAULT_MIN_WIDTH,\n height: DEFAULT_MIN_WIDTH\n };\n\n // get children bounds\n childrenBounds = (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.computeChildrenBBox)(shape, context.childrenBoxPadding);\n\n // get correct minimum bounds from given resize direction\n // basically ensures that the minBounds is max(childrenBounds, minDimensions)\n return (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.getMinResizeBounds)(direction, shape, minDimensions, childrenBounds);\n};\n\n\nResize.$inject = [\n 'eventBus',\n 'rules',\n 'modeling',\n 'dragging'\n];\n\n// helpers //////////\n\nfunction boundsChanged(shape, newBounds) {\n return shape.x !== newBounds.x ||\n shape.y !== newBounds.y ||\n shape.width !== newBounds.width ||\n shape.height !== newBounds.height;\n}\n\nfunction getReferencePoint(shape, direction) {\n var mid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(shape),\n trbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(shape);\n\n var referencePoint = {\n x: mid.x,\n y: mid.y\n };\n\n if (direction.indexOf('n') !== -1) {\n referencePoint.y = trbl.top;\n } else if (direction.indexOf('s') !== -1) {\n referencePoint.y = trbl.bottom;\n }\n\n if (direction.indexOf('e') !== -1) {\n referencePoint.x = trbl.right;\n } else if (direction.indexOf('w') !== -1) {\n referencePoint.x = trbl.left;\n }\n\n return referencePoint;\n}\n\nfunction getCursor(direction) {\n var prefix = 'resize-';\n\n if (direction === 'n' || direction === 's') {\n return prefix + 'ns';\n } else if (direction === 'e' || direction === 'w') {\n return prefix + 'ew';\n } else if (direction === 'nw' || direction === 'se') {\n return prefix + 'nwse';\n } else {\n return prefix + 'nesw';\n }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/Resize.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/resize/ResizeHandles.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/resize/ResizeHandles.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizeHandles)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _Resize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Resize */ \"./node_modules/diagram-js/lib/features/resize/Resize.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar HANDLE_OFFSET = -6,\n HANDLE_SIZE = 4,\n HANDLE_HIT_SIZE = 20;\n\nvar CLS_RESIZER = 'djs-resizer';\n\nvar directions = [ 'n', 'w', 's', 'e', 'nw', 'ne', 'se', 'sw' ];\n\n\n/**\n * This component is responsible for adding resize handles.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {Selection} selection\n * @param {Resize} resize\n */\nfunction ResizeHandles(eventBus, canvas, selection, resize) {\n\n this._resize = resize;\n this._canvas = canvas;\n\n var self = this;\n\n eventBus.on('selection.changed', function(e) {\n var newSelection = e.newSelection;\n\n // remove old selection markers\n self.removeResizers();\n\n // add new selection markers ONLY if single selection\n if (newSelection.length === 1) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(newSelection, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(self.addResizer, self));\n }\n });\n\n eventBus.on('shape.changed', function(e) {\n var shape = e.element;\n\n if (selection.isSelected(shape)) {\n self.removeResizers();\n\n self.addResizer(shape);\n }\n });\n}\n\n\nResizeHandles.prototype.makeDraggable = function(element, gfx, direction) {\n var resize = this._resize;\n\n function startResize(event) {\n\n // only trigger on left mouse button\n if ((0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.isPrimaryButton)(event)) {\n resize.activate(event, element, direction);\n }\n }\n\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(gfx, 'mousedown', startResize);\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(gfx, 'touchstart', startResize);\n};\n\n\nResizeHandles.prototype._createResizer = function(element, x, y, direction) {\n var resizersParent = this._getResizersParent();\n\n var offset = getHandleOffset(direction);\n\n var group = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('g');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(group).add(CLS_RESIZER);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(group).add(CLS_RESIZER + '-' + element.id);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(group).add(CLS_RESIZER + '-' + direction);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(resizersParent, group);\n\n var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('rect');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(visual, {\n x: -HANDLE_SIZE / 2 + offset.x,\n y: -HANDLE_SIZE / 2 + offset.y,\n width: HANDLE_SIZE,\n height: HANDLE_SIZE\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(visual).add(CLS_RESIZER + '-visual');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(group, visual);\n\n var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('rect');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, {\n x: -HANDLE_HIT_SIZE / 2 + offset.x,\n y: -HANDLE_HIT_SIZE / 2 + offset.y,\n width: HANDLE_HIT_SIZE,\n height: HANDLE_HIT_SIZE\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(hit).add(CLS_RESIZER + '-hit');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(group, hit);\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_4__.transform)(group, x, y);\n\n return group;\n};\n\nResizeHandles.prototype.createResizer = function(element, direction) {\n var point = (0,_Resize__WEBPACK_IMPORTED_MODULE_5__.getReferencePoint)(element, direction);\n\n var resizer = this._createResizer(element, point.x, point.y, direction);\n\n this.makeDraggable(element, resizer, direction);\n};\n\n// resize handles implementation ///////////////////////////////\n\n/**\n * Add resizers for a given element.\n *\n * @param {djs.model.Shape} shape\n */\nResizeHandles.prototype.addResizer = function(shape) {\n var self = this;\n\n var resize = this._resize;\n\n if (!resize.canResize({ shape: shape })) {\n return;\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(directions, function(direction) {\n self.createResizer(shape, direction);\n });\n};\n\n/**\n * Remove all resizers\n */\nResizeHandles.prototype.removeResizers = function() {\n var resizersParent = this._getResizersParent();\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.clear)(resizersParent);\n};\n\nResizeHandles.prototype._getResizersParent = function() {\n return this._canvas.getLayer('resizers');\n};\n\nResizeHandles.$inject = [\n 'eventBus',\n 'canvas',\n 'selection',\n 'resize'\n];\n\n// helpers //////////\n\nfunction getHandleOffset(direction) {\n var offset = {\n x: 0,\n y: 0\n };\n\n if (direction.indexOf('e') !== -1) {\n offset.x = -HANDLE_OFFSET;\n } else if (direction.indexOf('w') !== -1) {\n offset.x = HANDLE_OFFSET;\n }\n\n if (direction.indexOf('s') !== -1) {\n offset.y = -HANDLE_OFFSET;\n } else if (direction.indexOf('n') !== -1) {\n offset.y = HANDLE_OFFSET;\n }\n\n return offset;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/ResizeHandles.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/resize/ResizePreview.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/resize/ResizePreview.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizePreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\nvar MARKER_RESIZING = 'djs-resizing',\n MARKER_RESIZE_NOT_OK = 'resize-not-ok';\n\nvar LOW_PRIORITY = 500;\n\n\n\n\n/**\n * Provides previews for resizing shapes when resizing.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {PreviewSupport} previewSupport\n */\nfunction ResizePreview(eventBus, canvas, previewSupport) {\n\n /**\n * Update resizer frame.\n *\n * @param {Object} context\n */\n function updateFrame(context) {\n\n var shape = context.shape,\n bounds = context.newBounds,\n frame = context.frame;\n\n if (!frame) {\n frame = context.frame = previewSupport.addFrame(shape, canvas.getDefaultLayer());\n\n canvas.addMarker(shape, MARKER_RESIZING);\n }\n\n if (bounds.width > 5) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, { x: bounds.x, width: bounds.width });\n }\n\n if (bounds.height > 5) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, { y: bounds.y, height: bounds.height });\n }\n\n if (context.canExecute) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.classes)(frame).remove(MARKER_RESIZE_NOT_OK);\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.classes)(frame).add(MARKER_RESIZE_NOT_OK);\n }\n }\n\n /**\n * Remove resizer frame.\n *\n * @param {Object} context\n */\n function removeFrame(context) {\n var shape = context.shape,\n frame = context.frame;\n\n if (frame) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(context.frame);\n }\n\n canvas.removeMarker(shape, MARKER_RESIZING);\n }\n\n // add and update previews\n eventBus.on('resize.move', LOW_PRIORITY, function(event) {\n updateFrame(event.context);\n });\n\n // remove previews\n eventBus.on('resize.cleanup', function(event) {\n removeFrame(event.context);\n });\n\n}\n\nResizePreview.$inject = [\n 'eventBus',\n 'canvas',\n 'previewSupport'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/ResizePreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/resize/ResizeUtil.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/resize/ResizeUtil.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"substractTRBL\": () => (/* binding */ substractTRBL),\n/* harmony export */ \"resizeBounds\": () => (/* binding */ resizeBounds),\n/* harmony export */ \"resizeTRBL\": () => (/* binding */ resizeTRBL),\n/* harmony export */ \"reattachPoint\": () => (/* binding */ reattachPoint),\n/* harmony export */ \"ensureConstraints\": () => (/* binding */ ensureConstraints),\n/* harmony export */ \"getMinResizeBounds\": () => (/* binding */ getMinResizeBounds),\n/* harmony export */ \"addPadding\": () => (/* binding */ addPadding),\n/* harmony export */ \"computeChildrenBBox\": () => (/* binding */ computeChildrenBBox)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\nvar max = Math.max,\n min = Math.min;\n\nvar DEFAULT_CHILD_BOX_PADDING = 20;\n\n\n\n\n\n\n/**\n * Substract a TRBL from another\n *\n * @param {TRBL} trblA\n * @param {TRBL} trblB\n *\n * @return {TRBL}\n */\nfunction substractTRBL(trblA, trblB) {\n return {\n top: trblA.top - trblB.top,\n right: trblA.right - trblB.right,\n bottom: trblA.bottom - trblB.bottom,\n left: trblA.left - trblB.left\n };\n}\n\n/**\n * Resize the given bounds by the specified delta from a given anchor point.\n *\n * @param {Bounds} bounds the bounding box that should be resized\n * @param {string} direction in which the element is resized (nw, ne, se, sw)\n * @param {Point} delta of the resize operation\n *\n * @return {Bounds} resized bounding box\n */\nfunction resizeBounds(bounds, direction, delta) {\n var dx = delta.x,\n dy = delta.y;\n\n var newBounds = {\n x: bounds.x,\n y: bounds.y,\n width: bounds.width,\n height: bounds.height\n };\n\n if (direction.indexOf('n') !== -1) {\n newBounds.y = bounds.y + dy;\n newBounds.height = bounds.height - dy;\n } else if (direction.indexOf('s') !== -1) {\n newBounds.height = bounds.height + dy;\n }\n\n if (direction.indexOf('e') !== -1) {\n newBounds.width = bounds.width + dx;\n } else if (direction.indexOf('w') !== -1) {\n newBounds.x = bounds.x + dx;\n newBounds.width = bounds.width - dx;\n }\n\n return newBounds;\n}\n\n\n/**\n * Resize the given bounds by applying the passed\n * { top, right, bottom, left } delta.\n *\n * @param {Bounds} bounds\n * @param {TRBL} trblResize\n *\n * @return {Bounds}\n */\nfunction resizeTRBL(bounds, resize) {\n return {\n x: bounds.x + (resize.left || 0),\n y: bounds.y + (resize.top || 0),\n width: bounds.width - (resize.left || 0) + (resize.right || 0),\n height: bounds.height - (resize.top || 0) + (resize.bottom || 0)\n };\n}\n\n\nfunction reattachPoint(bounds, newBounds, point) {\n\n var sx = bounds.width / newBounds.width,\n sy = bounds.height / newBounds.height;\n\n return {\n x: Math.round((newBounds.x + newBounds.width / 2)) - Math.floor(((bounds.x + bounds.width / 2) - point.x) / sx),\n y: Math.round((newBounds.y + newBounds.height / 2)) - Math.floor(((bounds.y + bounds.height / 2) - point.y) / sy)\n };\n}\n\n\nfunction applyConstraints(attr, trbl, resizeConstraints) {\n\n var value = trbl[attr],\n minValue = resizeConstraints.min && resizeConstraints.min[attr],\n maxValue = resizeConstraints.max && resizeConstraints.max[attr];\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(minValue)) {\n value = (/top|left/.test(attr) ? min : max)(value, minValue);\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(maxValue)) {\n value = (/top|left/.test(attr) ? max : min)(value, maxValue);\n }\n\n return value;\n}\n\nfunction ensureConstraints(currentBounds, resizeConstraints) {\n\n if (!resizeConstraints) {\n return currentBounds;\n }\n\n var currentTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(currentBounds);\n\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asBounds)({\n top: applyConstraints('top', currentTrbl, resizeConstraints),\n right: applyConstraints('right', currentTrbl, resizeConstraints),\n bottom: applyConstraints('bottom', currentTrbl, resizeConstraints),\n left: applyConstraints('left', currentTrbl, resizeConstraints)\n });\n}\n\n\nfunction getMinResizeBounds(direction, currentBounds, minDimensions, childrenBounds) {\n\n var currentBox = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(currentBounds);\n\n var minBox = {\n top: /n/.test(direction) ? currentBox.bottom - minDimensions.height : currentBox.top,\n left: /w/.test(direction) ? currentBox.right - minDimensions.width : currentBox.left,\n bottom: /s/.test(direction) ? currentBox.top + minDimensions.height : currentBox.bottom,\n right: /e/.test(direction) ? currentBox.left + minDimensions.width : currentBox.right\n };\n\n var childrenBox = childrenBounds ? (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(childrenBounds) : minBox;\n\n var combinedBox = {\n top: min(minBox.top, childrenBox.top),\n left: min(minBox.left, childrenBox.left),\n bottom: max(minBox.bottom, childrenBox.bottom),\n right: max(minBox.right, childrenBox.right)\n };\n\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asBounds)(combinedBox);\n}\n\nfunction asPadding(mayBePadding, defaultValue) {\n if (typeof mayBePadding !== 'undefined') {\n return mayBePadding;\n } else {\n return DEFAULT_CHILD_BOX_PADDING;\n }\n}\n\nfunction addPadding(bbox, padding) {\n var left, right, top, bottom;\n\n if (typeof padding === 'object') {\n left = asPadding(padding.left);\n right = asPadding(padding.right);\n top = asPadding(padding.top);\n bottom = asPadding(padding.bottom);\n } else {\n left = right = top = bottom = asPadding(padding);\n }\n\n return {\n x: bbox.x - left,\n y: bbox.y - top,\n width: bbox.width + left + right,\n height: bbox.height + top + bottom\n };\n}\n\n\n/**\n * Is the given element part of the resize\n * targets min boundary box?\n *\n * This is the default implementation which excludes\n * connections and labels.\n *\n * @param {djs.model.Base} element\n */\nfunction isBBoxChild(element) {\n\n // exclude connections\n if (element.waypoints) {\n return false;\n }\n\n // exclude labels\n if (element.type === 'label') {\n return false;\n }\n\n return true;\n}\n\n/**\n * Return children bounding computed from a shapes children\n * or a list of prefiltered children.\n *\n * @param {djs.model.Shape|Array} shapeOrChildren\n * @param {number|Object} padding\n *\n * @return {Bounds}\n */\nfunction computeChildrenBBox(shapeOrChildren, padding) {\n\n var elements;\n\n // compute based on shape\n if (shapeOrChildren.length === undefined) {\n\n // grab all the children that are part of the\n // parents children box\n elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(shapeOrChildren.children, isBBoxChild);\n\n } else {\n elements = shapeOrChildren;\n }\n\n if (elements.length) {\n return addPadding((0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(elements), padding);\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/ResizeUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/resize/index.js": /*!**************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/resize/index.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _Resize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Resize */ \"./node_modules/diagram-js/lib/features/resize/Resize.js\");\n/* harmony import */ var _ResizePreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ResizePreview */ \"./node_modules/diagram-js/lib/features/resize/ResizePreview.js\");\n/* harmony import */ var _ResizeHandles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ResizeHandles */ \"./node_modules/diagram-js/lib/features/resize/ResizeHandles.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _rules__WEBPACK_IMPORTED_MODULE_0__.default,\n _dragging__WEBPACK_IMPORTED_MODULE_1__.default,\n _preview_support__WEBPACK_IMPORTED_MODULE_2__.default\n ],\n __init__: [\n 'resize',\n 'resizePreview',\n 'resizeHandles'\n ],\n resize: [ 'type', _Resize__WEBPACK_IMPORTED_MODULE_3__.default ],\n resizePreview: [ 'type', _ResizePreview__WEBPACK_IMPORTED_MODULE_4__.default ],\n resizeHandles: [ 'type', _ResizeHandles__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/rules/RuleProvider.js": /*!********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/rules/RuleProvider.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RuleProvider)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n/**\n * A basic provider that may be extended to implement modeling rules.\n *\n * Extensions should implement the init method to actually add their custom\n * modeling checks. Checks may be added via the #addRule(action, fn) method.\n *\n * @param {EventBus} eventBus\n */\nfunction RuleProvider(eventBus) {\n _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n this.init();\n}\n\nRuleProvider.$inject = [ 'eventBus' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RuleProvider, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Adds a modeling rule for the given action, implemented through\n * a callback function.\n *\n * The function will receive the modeling specific action context\n * to perform its check. It must return `false` to disallow the\n * action from happening or `true` to allow the action.\n *\n * A rule provider may pass over the evaluation to lower priority\n * rules by returning return nothing (or undefined).\n *\n * @example\n *\n * ResizableRules.prototype.init = function() {\n *\n * \\/**\n * * Return `true`, `false` or nothing to denote\n * * _allowed_, _not allowed_ and _continue evaluating_.\n * *\\/\n * this.addRule('shape.resize', function(context) {\n *\n * var shape = context.shape;\n *\n * if (!context.newBounds) {\n * // check general resizability\n * if (!shape.resizable) {\n * return false;\n * }\n *\n * // not returning anything (read: undefined)\n * // will continue the evaluation of other rules\n * // (with lower priority)\n * return;\n * } else {\n * // element must have minimum size of 10*10 points\n * return context.newBounds.width > 10 && context.newBounds.height > 10;\n * }\n * });\n * };\n *\n * @param {string|Array} actions the identifier for the modeling action to check\n * @param {number} [priority] the priority at which this rule is being applied\n * @param {Function} fn the callback function that performs the actual check\n */\nRuleProvider.prototype.addRule = function(actions, priority, fn) {\n\n var self = this;\n\n if (typeof actions === 'string') {\n actions = [ actions ];\n }\n\n actions.forEach(function(action) {\n\n self.canExecute(action, priority, function(context, action, event) {\n return fn(context);\n }, true);\n });\n};\n\n/**\n * Implement this method to add new rules during provider initialization.\n */\nRuleProvider.prototype.init = function() {};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/rules/RuleProvider.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/rules/Rules.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/rules/Rules.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Rules)\n/* harmony export */ });\n/**\n * A service that provides rules for certain diagram actions.\n *\n * The default implementation will hook into the {@link CommandStack}\n * to perform the actual rule evaluation. Make sure to provide the\n * `commandStack` service with this module if you plan to use it.\n *\n * Together with this implementation you may use the {@link RuleProvider}\n * to implement your own rule checkers.\n *\n * This module is ment to be easily replaced, thus the tiny foot print.\n *\n * @param {Injector} injector\n */\nfunction Rules(injector) {\n this._commandStack = injector.get('commandStack', false);\n}\n\nRules.$inject = [ 'injector' ];\n\n\n/**\n * Returns whether or not a given modeling action can be executed\n * in the specified context.\n *\n * This implementation will respond with allow unless anyone\n * objects.\n *\n * @param {string} action the action to be checked\n * @param {Object} [context] the context to check the action in\n *\n * @return {boolean} returns true, false or null depending on whether the\n * operation is allowed, not allowed or should be ignored.\n */\nRules.prototype.allowed = function(action, context) {\n var allowed = true;\n\n var commandStack = this._commandStack;\n\n if (commandStack) {\n allowed = commandStack.canExecute(action, context);\n }\n\n // map undefined to true, i.e. no rules\n return allowed === undefined ? true : allowed;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/rules/Rules.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/rules/index.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/rules/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Rules */ \"./node_modules/diagram-js/lib/features/rules/Rules.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'rules' ],\n rules: [ 'type', _Rules__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/rules/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/search-pad/SearchPad.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/search-pad/SearchPad.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SearchPad)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/EscapeUtil */ \"./node_modules/diagram-js/lib/util/EscapeUtil.js\");\n\n\n\n\n\n\n/**\n * Provides searching infrastructure\n */\nfunction SearchPad(canvas, eventBus, overlays, selection) {\n this._open = false;\n this._results = [];\n this._eventMaps = [];\n\n this._canvas = canvas;\n this._eventBus = eventBus;\n this._overlays = overlays;\n this._selection = selection;\n\n // setup elements\n this._container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(SearchPad.BOX_HTML);\n this._searchInput = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.INPUT_SELECTOR, this._container);\n this._resultsContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.RESULTS_CONTAINER_SELECTOR, this._container);\n\n // attach search pad\n this._canvas.getContainer().appendChild(this._container);\n\n // cleanup on destroy\n eventBus.on([ 'canvas.destroy', 'diagram.destroy' ], this.close, this);\n}\n\n\nSearchPad.$inject = [\n 'canvas',\n 'eventBus',\n 'overlays',\n 'selection'\n];\n\n\n/**\n * Binds and keeps track of all event listereners\n */\nSearchPad.prototype._bindEvents = function() {\n var self = this;\n\n function listen(el, selector, type, fn) {\n self._eventMaps.push({\n el: el,\n type: type,\n listener: min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(el, selector, type, fn)\n });\n }\n\n // close search on clicking anywhere outside\n listen(document, 'html', 'click', function(e) {\n self.close();\n });\n\n // stop event from propagating and closing search\n // focus on input\n listen(this._container, SearchPad.INPUT_SELECTOR, 'click', function(e) {\n e.stopPropagation();\n e.delegateTarget.focus();\n });\n\n // preselect result on hover\n listen(this._container, SearchPad.RESULT_SELECTOR, 'mouseover', function(e) {\n e.stopPropagation();\n self._scrollToNode(e.delegateTarget);\n self._preselect(e.delegateTarget);\n });\n\n // selects desired result on mouse click\n listen(this._container, SearchPad.RESULT_SELECTOR, 'click', function(e) {\n e.stopPropagation();\n self._select(e.delegateTarget);\n });\n\n // prevent cursor in input from going left and right when using up/down to\n // navigate results\n listen(this._container, SearchPad.INPUT_SELECTOR, 'keydown', function(e) {\n\n // up\n if (e.keyCode === 38) {\n e.preventDefault();\n }\n\n // down\n if (e.keyCode === 40) {\n e.preventDefault();\n }\n });\n\n // handle keyboard input\n listen(this._container, SearchPad.INPUT_SELECTOR, 'keyup', function(e) {\n\n // escape\n if (e.keyCode === 27) {\n return self.close();\n }\n\n // enter\n if (e.keyCode === 13) {\n var selected = self._getCurrentResult();\n\n return selected ? self._select(selected) : self.close();\n }\n\n // up\n if (e.keyCode === 38) {\n return self._scrollToDirection(true);\n }\n\n // down\n if (e.keyCode === 40) {\n return self._scrollToDirection();\n }\n\n // left && right\n // do not search while navigating text input\n if (e.keyCode === 37 || e.keyCode === 39) {\n return;\n }\n\n // anything else\n self._search(e.delegateTarget.value);\n });\n};\n\n\n/**\n * Unbinds all previously established listeners\n */\nSearchPad.prototype._unbindEvents = function() {\n this._eventMaps.forEach(function(m) {\n min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.unbind(m.el, m.type, m.listener);\n });\n};\n\n\n/**\n * Performs a search for the given pattern.\n *\n * @param {string} pattern\n */\nSearchPad.prototype._search = function(pattern) {\n var self = this;\n\n this._clearResults();\n\n // do not search on empty query\n if (!pattern || pattern === '') {\n return;\n }\n\n var searchResults = this._searchProvider.find(pattern);\n\n if (!searchResults.length) {\n return;\n }\n\n // append new results\n searchResults.forEach(function(result) {\n var id = result.element.id;\n var node = self._createResultNode(result, id);\n self._results[id] = {\n element: result.element,\n node: node\n };\n });\n\n // preselect first result\n var node = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.RESULT_SELECTOR, this._resultsContainer);\n this._scrollToNode(node);\n this._preselect(node);\n};\n\n\n/**\n * Navigate to the previous/next result. Defaults to next result.\n * @param {boolean} previous\n */\nSearchPad.prototype._scrollToDirection = function(previous) {\n var selected = this._getCurrentResult();\n if (!selected) {\n return;\n }\n\n var node = previous ? selected.previousElementSibling : selected.nextElementSibling;\n if (node) {\n this._scrollToNode(node);\n this._preselect(node);\n }\n};\n\n\n/**\n * Scroll to the node if it is not visible.\n *\n * @param {Element} node\n */\nSearchPad.prototype._scrollToNode = function(node) {\n if (!node || node === this._getCurrentResult()) {\n return;\n }\n\n var nodeOffset = node.offsetTop;\n var containerScroll = this._resultsContainer.scrollTop;\n\n var bottomScroll = nodeOffset - this._resultsContainer.clientHeight + node.clientHeight;\n\n if (nodeOffset < containerScroll) {\n this._resultsContainer.scrollTop = nodeOffset;\n } else if (containerScroll < bottomScroll) {\n this._resultsContainer.scrollTop = bottomScroll;\n }\n};\n\n\n/**\n * Clears all results data.\n */\nSearchPad.prototype._clearResults = function() {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.clear)(this._resultsContainer);\n\n this._results = [];\n\n this._resetOverlay();\n\n this._eventBus.fire('searchPad.cleared');\n};\n\n\n/**\n * Get currently selected result.\n *\n * @return {Element}\n */\nSearchPad.prototype._getCurrentResult = function() {\n return (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.RESULT_SELECTED_SELECTOR, this._resultsContainer);\n};\n\n\n/**\n * Create result DOM element within results container\n * that corresponds to a search result.\n *\n * 'result' : one of the elements returned by SearchProvider\n * 'id' : id attribute value to assign to the new DOM node\n * return : created DOM element\n *\n * @param {SearchResult} result\n * @param {string} id\n * @return {Element}\n */\nSearchPad.prototype._createResultNode = function(result, id) {\n var node = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(SearchPad.RESULT_HTML);\n\n // create only if available\n if (result.primaryTokens.length > 0) {\n createInnerTextNode(node, result.primaryTokens, SearchPad.RESULT_PRIMARY_HTML);\n }\n\n // secondary tokens (represent element ID) are allways available\n createInnerTextNode(node, result.secondaryTokens, SearchPad.RESULT_SECONDARY_HTML);\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(node, SearchPad.RESULT_ID_ATTRIBUTE, id);\n\n this._resultsContainer.appendChild(node);\n\n return node;\n};\n\n\n/**\n * Register search element provider.\n *\n * SearchProvider.find - provides search function over own elements\n * (pattern) => [{ text: , element: }, ...]\n *\n * @param {SearchProvider} provider\n */\nSearchPad.prototype.registerProvider = function(provider) {\n this._searchProvider = provider;\n};\n\n\n/**\n * Open search pad.\n */\nSearchPad.prototype.open = function() {\n if (!this._searchProvider) {\n throw new Error('no search provider registered');\n }\n\n if (this.isOpen()) {\n return;\n }\n\n this._bindEvents();\n\n this._open = true;\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(this._container).add('open');\n\n this._searchInput.focus();\n\n this._eventBus.fire('searchPad.opened');\n};\n\n\n/**\n * Close search pad.\n */\nSearchPad.prototype.close = function() {\n if (!this.isOpen()) {\n return;\n }\n\n this._unbindEvents();\n\n this._open = false;\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(this._container).remove('open');\n\n this._clearResults();\n\n this._searchInput.value = '';\n this._searchInput.blur();\n\n this._resetOverlay();\n\n this._eventBus.fire('searchPad.closed');\n};\n\n\n/**\n * Toggles search pad on/off.\n */\nSearchPad.prototype.toggle = function() {\n this.isOpen() ? this.close() : this.open();\n};\n\n\n/**\n * Report state of search pad.\n */\nSearchPad.prototype.isOpen = function() {\n return this._open;\n};\n\n\n/**\n * Preselect result entry.\n *\n * @param {Element} element\n */\nSearchPad.prototype._preselect = function(node) {\n var selectedNode = this._getCurrentResult();\n\n // already selected\n if (node === selectedNode) {\n return;\n }\n\n // removing preselection from current node\n if (selectedNode) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(selectedNode).remove(SearchPad.RESULT_SELECTED_CLASS);\n }\n\n var id = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(node, SearchPad.RESULT_ID_ATTRIBUTE);\n var element = this._results[id].element;\n\n (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(node).add(SearchPad.RESULT_SELECTED_CLASS);\n\n this._resetOverlay(element);\n\n this._canvas.scrollToElement(element, { top: 400 });\n\n this._selection.select(element);\n\n this._eventBus.fire('searchPad.preselected', element);\n};\n\n\n/**\n * Select result node.\n *\n * @param {Element} element\n */\nSearchPad.prototype._select = function(node) {\n var id = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(node, SearchPad.RESULT_ID_ATTRIBUTE);\n var element = this._results[id].element;\n\n this.close();\n\n this._resetOverlay();\n\n this._canvas.scrollToElement(element, { top: 400 });\n\n this._selection.select(element);\n\n this._eventBus.fire('searchPad.selected', element);\n};\n\n\n/**\n * Reset overlay removes and, optionally, set\n * overlay to a new element.\n *\n * @param {Element} element\n */\nSearchPad.prototype._resetOverlay = function(element) {\n if (this._overlayId) {\n this._overlays.remove(this._overlayId);\n }\n\n if (element) {\n var box = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(element);\n var overlay = constructOverlay(box);\n this._overlayId = this._overlays.add(element, overlay);\n }\n};\n\n\n/**\n * Construct overlay object for the given bounding box.\n *\n * @param {BoundingBox} box\n * @return {Object}\n */\nfunction constructOverlay(box) {\n\n var offset = 6;\n var w = box.width + offset * 2;\n var h = box.height + offset * 2;\n\n var styles = [\n 'width: '+ w +'px',\n 'height: '+ h + 'px'\n ].join('; ');\n\n return {\n position: {\n bottom: h - offset,\n right: w - offset\n },\n show: true,\n html: '
    '\n };\n}\n\n\n/**\n * Creates and appends child node from result tokens and HTML template.\n *\n * @param {Element} node\n * @param {Array} tokens\n * @param {string} template\n */\nfunction createInnerTextNode(parentNode, tokens, template) {\n var text = createHtmlText(tokens);\n var childNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(template);\n childNode.innerHTML = text;\n parentNode.appendChild(childNode);\n}\n\n/**\n * Create internal HTML markup from result tokens.\n * Caters for highlighting pattern matched tokens.\n *\n * @param {Array} tokens\n * @return {string}\n */\nfunction createHtmlText(tokens) {\n var htmlText = '';\n\n tokens.forEach(function(t) {\n if (t.matched) {\n htmlText += '' + (0,_util_EscapeUtil__WEBPACK_IMPORTED_MODULE_2__.escapeHTML)(t.matched) + '';\n } else {\n htmlText += (0,_util_EscapeUtil__WEBPACK_IMPORTED_MODULE_2__.escapeHTML)(t.normal);\n }\n });\n\n return htmlText !== '' ? htmlText : null;\n}\n\n\n/**\n * CONSTANTS\n */\nSearchPad.CONTAINER_SELECTOR = '.djs-search-container';\nSearchPad.INPUT_SELECTOR = '.djs-search-input input';\nSearchPad.RESULTS_CONTAINER_SELECTOR = '.djs-search-results';\nSearchPad.RESULT_SELECTOR = '.djs-search-result';\nSearchPad.RESULT_SELECTED_CLASS = 'djs-search-result-selected';\nSearchPad.RESULT_SELECTED_SELECTOR = '.' + SearchPad.RESULT_SELECTED_CLASS;\nSearchPad.RESULT_ID_ATTRIBUTE = 'data-result-id';\nSearchPad.RESULT_HIGHLIGHT_CLASS = 'djs-search-highlight';\nSearchPad.OVERLAY_CLASS = 'djs-search-overlay';\n\nSearchPad.BOX_HTML =\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n '
    ';\n\nSearchPad.RESULT_HTML =\n '
    ';\n\nSearchPad.RESULT_PRIMARY_HTML =\n '
    ';\n\nSearchPad.RESULT_SECONDARY_HTML =\n '

    ';\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/search-pad/SearchPad.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/search-pad/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/search-pad/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _overlays__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../overlays */ \"./node_modules/diagram-js/lib/features/overlays/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _SearchPad__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SearchPad */ \"./node_modules/diagram-js/lib/features/search-pad/SearchPad.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _overlays__WEBPACK_IMPORTED_MODULE_0__.default,\n _selection__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n searchPad: [ 'type', _SearchPad__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/search-pad/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/selection/Selection.js": /*!*********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/selection/Selection.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Selection)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A service that offers the current selection in a diagram.\n * Offers the api to control the selection, too.\n *\n * @class\n *\n * @param {EventBus} eventBus the event bus\n */\nfunction Selection(eventBus) {\n\n this._eventBus = eventBus;\n\n this._selectedElements = [];\n\n var self = this;\n\n eventBus.on([ 'shape.remove', 'connection.remove' ], function(e) {\n var element = e.element;\n self.deselect(element);\n });\n\n eventBus.on([ 'diagram.clear' ], function(e) {\n self.select(null);\n });\n}\n\nSelection.$inject = [ 'eventBus' ];\n\n\nSelection.prototype.deselect = function(element) {\n var selectedElements = this._selectedElements;\n\n var idx = selectedElements.indexOf(element);\n\n if (idx !== -1) {\n var oldSelection = selectedElements.slice();\n\n selectedElements.splice(idx, 1);\n\n this._eventBus.fire('selection.changed', { oldSelection: oldSelection, newSelection: selectedElements });\n }\n};\n\n\nSelection.prototype.get = function() {\n return this._selectedElements;\n};\n\nSelection.prototype.isSelected = function(element) {\n return this._selectedElements.indexOf(element) !== -1;\n};\n\n\n/**\n * This method selects one or more elements on the diagram.\n *\n * By passing an additional add parameter you can decide whether or not the element(s)\n * should be added to the already existing selection or not.\n *\n * @method Selection#select\n *\n * @param {Object|Object[]} elements element or array of elements to be selected\n * @param {boolean} [add] whether the element(s) should be appended to the current selection, defaults to false\n */\nSelection.prototype.select = function(elements, add) {\n var selectedElements = this._selectedElements,\n oldSelection = selectedElements.slice();\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = elements ? [ elements ] : [];\n }\n\n // selection may be cleared by passing an empty array or null\n // to the method\n if (add) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n if (selectedElements.indexOf(element) !== -1) {\n\n // already selected\n return;\n } else {\n selectedElements.push(element);\n }\n });\n } else {\n this._selectedElements = selectedElements = elements.slice();\n }\n\n this._eventBus.fire('selection.changed', { oldSelection: oldSelection, newSelection: selectedElements });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/Selection.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js": /*!*****************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectionBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\nfunction SelectionBehavior(eventBus, selection, canvas, elementRegistry) {\n\n // Select elements on create\n eventBus.on('create.end', 500, function(event) {\n var context = event.context,\n canExecute = context.canExecute,\n elements = context.elements,\n hints = context.hints || {},\n autoSelect = hints.autoSelect;\n\n if (canExecute) {\n if (autoSelect === false) {\n\n // Select no elements\n return;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(autoSelect)) {\n selection.select(autoSelect);\n } else {\n\n // Select all elements by default\n selection.select(elements.filter(isShown));\n }\n }\n });\n\n // Select connection targets on connect\n eventBus.on('connect.end', 500, function(event) {\n var context = event.context,\n canExecute = context.canExecute,\n hover = context.hover;\n\n if (canExecute && hover) {\n selection.select(hover);\n }\n });\n\n // Select shapes on move\n eventBus.on('shape.move.end', 500, function(event) {\n var previousSelection = event.previousSelection || [];\n\n var shape = elementRegistry.get(event.context.shape.id);\n\n // Always select main shape on move\n var isSelected = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(previousSelection, function(selectedShape) {\n return shape.id === selectedShape.id;\n });\n\n if (!isSelected) {\n selection.select(shape);\n }\n });\n\n // Select elements on click\n eventBus.on('element.click', function(event) {\n\n if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.isPrimaryButton)(event)) {\n return;\n }\n\n var element = event.element;\n\n if (element === canvas.getRootElement()) {\n element = null;\n }\n\n var isSelected = selection.isSelected(element),\n isMultiSelect = selection.get().length > 1;\n\n // Add to selection if CTRL or SHIFT pressed\n var add = (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasPrimaryModifier)(event) || (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasSecondaryModifier)(event);\n\n if (isSelected && isMultiSelect) {\n if (add) {\n\n // Deselect element\n return selection.deselect(element);\n } else {\n\n // Select element only\n return selection.select(element);\n }\n } else if (!isSelected) {\n\n // Select element\n selection.select(element, add);\n } else {\n\n // Deselect element\n selection.deselect(element);\n }\n });\n}\n\nSelectionBehavior.$inject = [\n 'eventBus',\n 'selection',\n 'canvas',\n 'elementRegistry'\n];\n\n\nfunction isShown(element) {\n return !element.hidden;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js": /*!****************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js ***! \****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectionVisuals)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar MARKER_HOVER = 'hover',\n MARKER_SELECTED = 'selected';\n\n\n/**\n * A plugin that adds a visible selection UI to shapes and connections\n * by appending the hover and selected classes to them.\n *\n * @class\n *\n * Makes elements selectable, too.\n *\n * @param {EventBus} events\n * @param {SelectionService} selection\n * @param {Canvas} canvas\n */\nfunction SelectionVisuals(events, canvas, selection, styles) {\n\n this._multiSelectionBox = null;\n\n function addMarker(e, cls) {\n canvas.addMarker(e, cls);\n }\n\n function removeMarker(e, cls) {\n canvas.removeMarker(e, cls);\n }\n\n events.on('element.hover', function(event) {\n addMarker(event.element, MARKER_HOVER);\n });\n\n events.on('element.out', function(event) {\n removeMarker(event.element, MARKER_HOVER);\n });\n\n events.on('selection.changed', function(event) {\n\n function deselect(s) {\n removeMarker(s, MARKER_SELECTED);\n }\n\n function select(s) {\n addMarker(s, MARKER_SELECTED);\n }\n\n var oldSelection = event.oldSelection,\n newSelection = event.newSelection;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(oldSelection, function(e) {\n if (newSelection.indexOf(e) === -1) {\n deselect(e);\n }\n });\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(newSelection, function(e) {\n if (oldSelection.indexOf(e) === -1) {\n select(e);\n }\n });\n });\n}\n\nSelectionVisuals.$inject = [\n 'eventBus',\n 'canvas',\n 'selection',\n 'styles'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/selection/index.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/selection/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _outline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../outline */ \"./node_modules/diagram-js/lib/features/outline/index.js\");\n/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Selection */ \"./node_modules/diagram-js/lib/features/selection/Selection.js\");\n/* harmony import */ var _SelectionVisuals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SelectionVisuals */ \"./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js\");\n/* harmony import */ var _SelectionBehavior__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SelectionBehavior */ \"./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'selectionVisuals', 'selectionBehavior' ],\n __depends__: [\n _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default,\n _outline__WEBPACK_IMPORTED_MODULE_1__.default\n ],\n selection: [ 'type', _Selection__WEBPACK_IMPORTED_MODULE_2__.default ],\n selectionVisuals: [ 'type', _SelectionVisuals__WEBPACK_IMPORTED_MODULE_3__.default ],\n selectionBehavior: [ 'type', _SelectionBehavior__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js": /*!*****************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CreateMoveSnapping)\n/* harmony export */ });\n/* harmony import */ var _SnapContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SnapContext */ \"./node_modules/diagram-js/lib/features/snapping/SnapContext.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGHER_PRIORITY = 1250;\r\n\r\n\r\n/**\r\n * Snap during create and move.\r\n *\r\n * @param {EventBus} elementRegistry\r\n * @param {EventBus} eventBus\r\n * @param {Snapping} snapping\r\n */\r\nfunction CreateMoveSnapping(elementRegistry, eventBus, snapping) {\r\n var self = this;\r\n\r\n this._elementRegistry = elementRegistry;\r\n\r\n eventBus.on([\r\n 'create.start',\r\n 'shape.move.start'\r\n ], function(event) {\r\n self.initSnap(event);\r\n });\r\n\r\n eventBus.on([\r\n 'create.move',\r\n 'create.end',\r\n 'shape.move.move',\r\n 'shape.move.end'\r\n ], HIGHER_PRIORITY, function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n snapContext = context.snapContext,\r\n target = context.target;\r\n\r\n if (event.originalEvent && (0,_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event.originalEvent)) {\r\n return;\r\n }\r\n\r\n if ((0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event) || !target) {\r\n return;\r\n }\r\n\r\n var snapPoints = snapContext.pointsForTarget(target);\r\n\r\n if (!snapPoints.initialized) {\r\n snapPoints = self.addSnapTargetPoints(snapPoints, shape, target);\r\n\r\n snapPoints.initialized = true;\r\n }\r\n\r\n snapping.snap(event, snapPoints);\r\n });\r\n\r\n eventBus.on([\r\n 'create.cleanup',\r\n 'shape.move.cleanup'\r\n ], function() {\r\n snapping.hide();\r\n });\r\n}\r\n\r\nCreateMoveSnapping.$inject = [\r\n 'elementRegistry',\r\n 'eventBus',\r\n 'snapping'\r\n];\r\n\r\nCreateMoveSnapping.prototype.initSnap = function(event) {\r\n var elementRegistry = this._elementRegistry;\r\n\r\n var context = event.context,\r\n shape = context.shape,\r\n snapContext = context.snapContext;\r\n\r\n if (!snapContext) {\r\n snapContext = context.snapContext = new _SnapContext__WEBPACK_IMPORTED_MODULE_2__.default();\r\n }\r\n\r\n var shapeMid;\r\n\r\n if (elementRegistry.get(shape.id)) {\r\n\r\n // move\r\n shapeMid = (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape, event);\r\n } else {\r\n\r\n // create\r\n shapeMid = {\r\n x: event.x + (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape).x,\r\n y: event.y + (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape).y\r\n };\r\n }\r\n\r\n var shapeTopLeft = {\r\n x: shapeMid.x - shape.width / 2,\r\n y: shapeMid.y - shape.height / 2\r\n },\r\n shapeBottomRight = {\r\n x: shapeMid.x + shape.width / 2,\r\n y: shapeMid.y + shape.height / 2\r\n };\r\n\r\n snapContext.setSnapOrigin('mid', {\r\n x: shapeMid.x - event.x,\r\n y: shapeMid.y - event.y\r\n });\r\n\r\n // snap labels to mid only\r\n if (isLabel(shape)) {\r\n return snapContext;\r\n }\r\n\r\n snapContext.setSnapOrigin('top-left', {\r\n x: shapeTopLeft.x - event.x,\r\n y: shapeTopLeft.y - event.y\r\n });\r\n\r\n snapContext.setSnapOrigin('bottom-right', {\r\n x: shapeBottomRight.x - event.x,\r\n y: shapeBottomRight.y - event.y\r\n });\r\n\r\n return snapContext;\r\n};\r\n\r\nCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target) {\r\n var snapTargets = this.getSnapTargets(shape, target);\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(snapTargets, function(snapTarget) {\r\n\r\n // handle labels\r\n if (isLabel(snapTarget)) {\r\n\r\n if (isLabel(shape)) {\r\n snapPoints.add('mid', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(snapTarget));\r\n }\r\n\r\n return;\r\n }\r\n\r\n // handle connections\r\n if (isConnection(snapTarget)) {\r\n\r\n // ignore single segment connections\r\n if (snapTarget.waypoints.length < 3) {\r\n return;\r\n }\r\n\r\n // ignore first and last waypoint\r\n var waypoints = snapTarget.waypoints.slice(1, -1);\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(waypoints, function(waypoint) {\r\n snapPoints.add('mid', waypoint);\r\n });\r\n\r\n return;\r\n }\r\n\r\n // handle shapes\r\n snapPoints.add('mid', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(snapTarget));\r\n });\r\n\r\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(shape.x) || !(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(shape.y)) {\r\n return snapPoints;\r\n }\r\n\r\n // snap to original position when moving\r\n if (this._elementRegistry.get(shape.id)) {\r\n snapPoints.add('mid', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape));\r\n }\r\n\r\n return snapPoints;\r\n};\r\n\r\nCreateMoveSnapping.prototype.getSnapTargets = function(shape, target) {\r\n return (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.getChildren)(target).filter(function(child) {\r\n return !isHidden(child);\r\n });\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction isConnection(element) {\r\n return !!element.waypoints;\r\n}\r\n\r\nfunction isHidden(element) {\r\n return !!element.hidden;\r\n}\r\n\r\nfunction isLabel(element) {\r\n return !!element.labelTarget;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js": /*!*************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ResizeSnapping)\n/* harmony export */ });\n/* harmony import */ var _SnapContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SnapContext */ \"./node_modules/diagram-js/lib/features/snapping/SnapContext.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGHER_PRIORITY = 1250;\r\n\r\n\r\n/**\r\n * Snap during resize.\r\n *\r\n * @param {EventBus} eventBus\r\n * @param {Snapping} snapping\r\n */\r\nfunction ResizeSnapping(eventBus, snapping) {\r\n var self = this;\r\n\r\n eventBus.on([ 'resize.start' ], function(event) {\r\n self.initSnap(event);\r\n });\r\n\r\n eventBus.on([\r\n 'resize.move',\r\n 'resize.end',\r\n ], HIGHER_PRIORITY, function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n parent = shape.parent,\r\n direction = context.direction,\r\n snapContext = context.snapContext;\r\n\r\n if (event.originalEvent && (0,_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event.originalEvent)) {\r\n return;\r\n }\r\n\r\n if ((0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event)) {\r\n return;\r\n }\r\n\r\n var snapPoints = snapContext.pointsForTarget(parent);\r\n\r\n if (!snapPoints.initialized) {\r\n snapPoints = self.addSnapTargetPoints(snapPoints, shape, parent, direction);\r\n\r\n snapPoints.initialized = true;\r\n }\r\n\r\n if (isHorizontal(direction)) {\r\n (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', event.x);\r\n }\r\n\r\n if (isVertical(direction)) {\r\n (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', event.y);\r\n }\r\n\r\n snapping.snap(event, snapPoints);\r\n });\r\n\r\n eventBus.on([ 'resize.cleanup' ], function() {\r\n snapping.hide();\r\n });\r\n}\r\n\r\nResizeSnapping.prototype.initSnap = function(event) {\r\n var context = event.context,\r\n shape = context.shape,\r\n direction = context.direction,\r\n snapContext = context.snapContext;\r\n\r\n if (!snapContext) {\r\n snapContext = context.snapContext = new _SnapContext__WEBPACK_IMPORTED_MODULE_2__.default();\r\n }\r\n\r\n var snapOrigin = getSnapOrigin(shape, direction);\r\n\r\n snapContext.setSnapOrigin('corner', {\r\n x: snapOrigin.x - event.x,\r\n y: snapOrigin.y - event.y\r\n });\r\n\r\n return snapContext;\r\n};\r\n\r\nResizeSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target, direction) {\r\n var snapTargets = this.getSnapTargets(shape, target);\r\n\r\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(snapTargets, function(snapTarget) {\r\n snapPoints.add('corner', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.bottomRight)(snapTarget));\r\n snapPoints.add('corner', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.topLeft)(snapTarget));\r\n });\r\n\r\n snapPoints.add('corner', getSnapOrigin(shape, direction));\r\n\r\n return snapPoints;\r\n};\r\n\r\nResizeSnapping.$inject = [\r\n 'eventBus',\r\n 'snapping'\r\n];\r\n\r\nResizeSnapping.prototype.getSnapTargets = function(shape, target) {\r\n return (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.getChildren)(target).filter(function(child) {\r\n return !isAttached(child, shape)\r\n && !isConnection(child)\r\n && !isHidden(child)\r\n && !isLabel(child);\r\n });\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction getSnapOrigin(shape, direction) {\r\n var mid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.getMid)(shape),\r\n trbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.asTRBL)(shape);\r\n\r\n var snapOrigin = {\r\n x: mid.x,\r\n y: mid.y\r\n };\r\n\r\n if (direction.indexOf('n') !== -1) {\r\n snapOrigin.y = trbl.top;\r\n } else if (direction.indexOf('s') !== -1) {\r\n snapOrigin.y = trbl.bottom;\r\n }\r\n\r\n if (direction.indexOf('e') !== -1) {\r\n snapOrigin.x = trbl.right;\r\n } else if (direction.indexOf('w') !== -1) {\r\n snapOrigin.x = trbl.left;\r\n }\r\n\r\n return snapOrigin;\r\n}\r\n\r\nfunction isAttached(element, host) {\r\n return element.host === host;\r\n}\r\n\r\nfunction isConnection(element) {\r\n return !!element.waypoints;\r\n}\r\n\r\nfunction isHidden(element) {\r\n return !!element.hidden;\r\n}\r\n\r\nfunction isLabel(element) {\r\n return !!element.labelTarget;\r\n}\r\n\r\nfunction isHorizontal(direction) {\r\n return direction === 'n' || direction === 's';\r\n}\r\n\r\nfunction isVertical(direction) {\r\n return direction === 'e' || direction === 'w';\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/snapping/SnapContext.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/snapping/SnapContext.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SnapContext),\n/* harmony export */ \"SnapPoints\": () => (/* binding */ SnapPoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n\n\n\n\n\n/**\n * A snap context, containing the (possibly incomplete)\n * mappings of drop targets (to identify the snapping)\n * to computed snap points.\n */\nfunction SnapContext() {\n\n /**\n * Map mapping drop targets to\n * a list of possible snappings.\n *\n * @type {Object}\n */\n this._targets = {};\n\n /**\n * Map initial positioning of element\n * regarding various snap directions.\n *\n * @type {Object}\n */\n this._snapOrigins = {};\n\n /**\n * List of snap locations\n *\n * @type {Array}\n */\n this._snapLocations = [];\n\n /**\n * Map> of default snapping locations\n *\n * @type {Object}\n */\n this._defaultSnaps = {};\n}\n\n\nSnapContext.prototype.getSnapOrigin = function(snapLocation) {\n return this._snapOrigins[snapLocation];\n};\n\n\nSnapContext.prototype.setSnapOrigin = function(snapLocation, initialValue) {\n this._snapOrigins[snapLocation] = initialValue;\n\n if (this._snapLocations.indexOf(snapLocation) === -1) {\n this._snapLocations.push(snapLocation);\n }\n};\n\n\nSnapContext.prototype.addDefaultSnap = function(type, point) {\n\n var snapValues = this._defaultSnaps[type];\n\n if (!snapValues) {\n snapValues = this._defaultSnaps[type] = [];\n }\n\n snapValues.push(point);\n};\n\n/**\n * Return a number of initialized snaps, i.e. snap locations such as\n * top-left, mid, bottom-right and so forth.\n *\n * @return {Array} snapLocations\n */\nSnapContext.prototype.getSnapLocations = function() {\n return this._snapLocations;\n};\n\n/**\n * Set the snap locations for this context.\n *\n * The order of locations determines precedence.\n *\n * @param {Array} snapLocations\n */\nSnapContext.prototype.setSnapLocations = function(snapLocations) {\n this._snapLocations = snapLocations;\n};\n\n/**\n * Get snap points for a given target\n *\n * @param {Element|string} target\n */\nSnapContext.prototype.pointsForTarget = function(target) {\n\n var targetId = target.id || target;\n\n var snapPoints = this._targets[targetId];\n\n if (!snapPoints) {\n snapPoints = this._targets[targetId] = new SnapPoints();\n snapPoints.initDefaults(this._defaultSnaps);\n }\n\n return snapPoints;\n};\n\n\n/**\n * Creates the snap points and initializes them with the\n * given default values.\n *\n * @param {Object>} [defaultPoints]\n */\nfunction SnapPoints(defaultSnaps) {\n\n /**\n * Map>> mapping snap locations,\n * i.e. top-left, bottom-right, center to actual snap values.\n *\n * @type {Object}\n */\n this._snapValues = {};\n}\n\nSnapPoints.prototype.add = function(snapLocation, point) {\n\n var snapValues = this._snapValues[snapLocation];\n\n if (!snapValues) {\n snapValues = this._snapValues[snapLocation] = { x: [], y: [] };\n }\n\n if (snapValues.x.indexOf(point.x) === -1) {\n snapValues.x.push(point.x);\n }\n\n if (snapValues.y.indexOf(point.y) === -1) {\n snapValues.y.push(point.y);\n }\n};\n\n\nSnapPoints.prototype.snap = function(point, snapLocation, axis, tolerance) {\n var snappingValues = this._snapValues[snapLocation];\n\n return snappingValues && (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_0__.snapTo)(point[axis], snappingValues[axis], tolerance);\n};\n\n/**\n * Initialize a number of default snapping points.\n *\n * @param {Object} defaultSnaps\n */\nSnapPoints.prototype.initDefaults = function(defaultSnaps) {\n\n var self = this;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(defaultSnaps || {}, function(snapPoints, snapLocation) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(snapPoints, function(point) {\n self.add(snapLocation, point);\n });\n });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/SnapContext.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/snapping/SnapUtil.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/snapping/SnapUtil.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"snapTo\": () => (/* binding */ snapTo),\n/* harmony export */ \"topLeft\": () => (/* binding */ topLeft),\n/* harmony export */ \"topRight\": () => (/* binding */ topRight),\n/* harmony export */ \"bottomLeft\": () => (/* binding */ bottomLeft),\n/* harmony export */ \"bottomRight\": () => (/* binding */ bottomRight),\n/* harmony export */ \"mid\": () => (/* binding */ mid),\n/* harmony export */ \"isSnapped\": () => (/* binding */ isSnapped),\n/* harmony export */ \"setSnapped\": () => (/* binding */ setSnapped),\n/* harmony export */ \"getChildren\": () => (/* binding */ getChildren)\n/* harmony export */ });\nvar abs = Math.abs,\n round = Math.round;\n\n\n/**\n * Snap value to a collection of reference values.\n *\n * @param {number} value\n * @param {Array} values\n * @param {number} [tolerance=10]\n *\n * @return {number} the value we snapped to or null, if none snapped\n */\nfunction snapTo(value, values, tolerance) {\n tolerance = tolerance === undefined ? 10 : tolerance;\n\n var idx, snapValue;\n\n for (idx = 0; idx < values.length; idx++) {\n snapValue = values[idx];\n\n if (abs(snapValue - value) <= tolerance) {\n return snapValue;\n }\n }\n}\n\n\nfunction topLeft(bounds) {\n return {\n x: bounds.x,\n y: bounds.y\n };\n}\n\nfunction topRight(bounds) {\n return {\n x: bounds.x + bounds.width,\n y: bounds.y\n };\n}\n\nfunction bottomLeft(bounds) {\n return {\n x: bounds.x,\n y: bounds.y + bounds.height\n };\n}\n\nfunction bottomRight(bounds) {\n return {\n x: bounds.x + bounds.width,\n y: bounds.y + bounds.height\n };\n}\n\nfunction mid(bounds, defaultValue) {\n\n if (!bounds || isNaN(bounds.x) || isNaN(bounds.y)) {\n return defaultValue;\n }\n\n return {\n x: round(bounds.x + bounds.width / 2),\n y: round(bounds.y + bounds.height / 2)\n };\n}\n\n\n/**\n * Retrieve the snap state of the given event.\n *\n * @param {Event} event\n * @param {string} axis\n *\n * @return {boolean} the snapped state\n *\n */\nfunction isSnapped(event, axis) {\n var snapped = event.snapped;\n\n if (!snapped) {\n return false;\n }\n\n if (typeof axis === 'string') {\n return snapped[axis];\n }\n\n return snapped.x && snapped.y;\n}\n\n\n/**\n * Set the given event as snapped.\n *\n * This method may change the x and/or y position of the shape\n * from the given event!\n *\n * @param {Event} event\n * @param {string} axis\n * @param {number|boolean} value\n *\n * @return {number} old value\n */\nfunction setSnapped(event, axis, value) {\n if (typeof axis !== 'string') {\n throw new Error('axis must be in [x, y]');\n }\n\n if (typeof value !== 'number' && value !== false) {\n throw new Error('value must be Number or false');\n }\n\n var delta,\n previousValue = event[axis];\n\n var snapped = event.snapped = (event.snapped || {});\n\n\n if (value === false) {\n snapped[axis] = false;\n } else {\n snapped[axis] = true;\n\n delta = value - previousValue;\n\n event[axis] += delta;\n event['d' + axis] += delta;\n }\n\n return previousValue;\n}\n\n/**\n * Get children of a shape.\n *\n * @param {djs.model.Shape} parent\n *\n * @returns {Array}\n */\nfunction getChildren(parent) {\n return parent.children || [];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/SnapUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/snapping/Snapping.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/snapping/Snapping.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SNAP_LINE_HIDE_DELAY\": () => (/* binding */ SNAP_LINE_HIDE_DELAY),\n/* harmony export */ \"default\": () => (/* binding */ Snapping)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\nvar SNAP_TOLERANCE = 7;\n\nvar SNAP_LINE_HIDE_DELAY = 1000;\n\n\n/**\n * Generic snapping feature.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction Snapping(canvas) {\n this._canvas = canvas;\n\n // delay hide by 1000 seconds since last snap\n this._asyncHide = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.debounce)((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this.hide, this), SNAP_LINE_HIDE_DELAY);\n}\n\nSnapping.$inject = [ 'canvas' ];\n\n/**\n * Snap an event to given snap points.\n *\n * @param {Event} event\n * @param {SnapPoints} snapPoints\n */\nSnapping.prototype.snap = function(event, snapPoints) {\n var context = event.context,\n snapContext = context.snapContext,\n snapLocations = snapContext.getSnapLocations();\n\n var snapping = {\n x: (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event, 'x'),\n y: (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event, 'y')\n };\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(snapLocations, function(location) {\n var snapOrigin = snapContext.getSnapOrigin(location);\n\n var snapCurrent = {\n x: event.x + snapOrigin.x,\n y: event.y + snapOrigin.y\n };\n\n // snap both axis if not snapped already\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ 'x', 'y' ], function(axis) {\n var locationSnapping;\n\n if (!snapping[axis]) {\n locationSnapping = snapPoints.snap(snapCurrent, location, axis, SNAP_TOLERANCE);\n\n if (locationSnapping !== undefined) {\n snapping[axis] = {\n value: locationSnapping,\n originValue: locationSnapping - snapOrigin[axis]\n };\n }\n }\n });\n\n // no need to continue snapping\n if (snapping.x && snapping.y) {\n return false;\n }\n });\n\n // show snap lines\n this.showSnapLine('vertical', snapping.x && snapping.x.value);\n this.showSnapLine('horizontal', snapping.y && snapping.y.value);\n\n // snap event\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ 'x', 'y' ], function(axis) {\n var axisSnapping = snapping[axis];\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(axisSnapping)) {\n (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, axisSnapping.originValue);\n }\n });\n};\n\nSnapping.prototype._createLine = function(orientation) {\n var root = this._canvas.getLayer('snap');\n\n var line = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('path');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, { d: 'M0,0 L0,0' });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(line).add('djs-snap-line');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(root, line);\n\n return {\n update: function(position) {\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(position)) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, { display: 'none' });\n } else {\n if (orientation === 'horizontal') {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, {\n d: 'M-100000,' + position + ' L+100000,' + position,\n display: ''\n });\n } else {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, {\n d: 'M ' + position + ',-100000 L ' + position + ', +100000',\n display: ''\n });\n }\n }\n }\n };\n};\n\nSnapping.prototype._createSnapLines = function() {\n this._snapLines = {\n horizontal: this._createLine('horizontal'),\n vertical: this._createLine('vertical')\n };\n};\n\nSnapping.prototype.showSnapLine = function(orientation, position) {\n\n var line = this.getSnapLine(orientation);\n\n if (line) {\n line.update(position);\n }\n\n this._asyncHide();\n};\n\nSnapping.prototype.getSnapLine = function(orientation) {\n if (!this._snapLines) {\n this._createSnapLines();\n }\n\n return this._snapLines[orientation];\n};\n\nSnapping.prototype.hide = function() {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(this._snapLines, function(snapLine) {\n snapLine.update();\n });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/Snapping.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/snapping/index.js": /*!****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/snapping/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateMoveSnapping */ \"./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js\");\n/* harmony import */ var _ResizeSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResizeSnapping */ \"./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js\");\n/* harmony import */ var _Snapping__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Snapping */ \"./node_modules/diagram-js/lib/features/snapping/Snapping.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [\n 'createMoveSnapping',\n 'resizeSnapping',\n 'snapping'\n ],\n createMoveSnapping: [ 'type', _CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_0__.default ],\n resizeSnapping: [ 'type', _ResizeSnapping__WEBPACK_IMPORTED_MODULE_1__.default ],\n snapping: [ 'type', _Snapping__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SpaceTool)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _SpaceUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SpaceUtil */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var _util_Cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Cursor */ \"./node_modules/diagram-js/lib/util/Cursor.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar abs = Math.abs,\n round = Math.round;\n\nvar AXIS_TO_DIMENSION = {\n x: 'width',\n y: 'height'\n};\n\nvar CURSOR_CROSSHAIR = 'crosshair';\n\nvar DIRECTION_TO_TRBL = {\n n: 'top',\n w: 'left',\n s: 'bottom',\n e: 'right'\n};\n\nvar HIGH_PRIORITY = 1500;\n\nvar DIRECTION_TO_OPPOSITE = {\n n: 's',\n w: 'e',\n s: 'n',\n e: 'w'\n};\n\nvar PADDING = 20;\n\n\n/**\n * Add or remove space by moving and resizing elements.\n *\n * @param {Canvas} canvas\n * @param {Dragging} dragging\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Rules} rules\n * @param {ToolManager} toolManager\n * @param {Mouse} mouse\n */\nfunction SpaceTool(\n canvas, dragging, eventBus,\n modeling, rules, toolManager,\n mouse) {\n\n this._canvas = canvas;\n this._dragging = dragging;\n this._eventBus = eventBus;\n this._modeling = modeling;\n this._rules = rules;\n this._toolManager = toolManager;\n this._mouse = mouse;\n\n var self = this;\n\n toolManager.registerTool('space', {\n tool: 'spaceTool.selection',\n dragging: 'spaceTool'\n });\n\n eventBus.on('spaceTool.selection.end', function(event) {\n eventBus.once('spaceTool.selection.ended', function() {\n self.activateMakeSpace(event.originalEvent);\n });\n });\n\n eventBus.on('spaceTool.move', HIGH_PRIORITY , function(event) {\n var context = event.context,\n initialized = context.initialized;\n\n if (!initialized) {\n initialized = context.initialized = self.init(event, context);\n }\n\n if (initialized) {\n ensureConstraints(event);\n }\n });\n\n eventBus.on('spaceTool.end', function(event) {\n var context = event.context,\n axis = context.axis,\n direction = context.direction,\n movingShapes = context.movingShapes,\n resizingShapes = context.resizingShapes,\n start = context.start;\n\n if (!context.initialized) {\n return;\n }\n\n ensureConstraints(event);\n\n var delta = {\n x: 0,\n y: 0\n };\n\n delta[ axis ] = round(event[ 'd' + axis ]);\n\n self.makeSpace(movingShapes, resizingShapes, delta, direction, start);\n\n eventBus.once('spaceTool.ended', function(event) {\n\n // activate space tool selection after make space\n self.activateSelection(event.originalEvent, true, true);\n });\n });\n}\n\nSpaceTool.$inject = [\n 'canvas',\n 'dragging',\n 'eventBus',\n 'modeling',\n 'rules',\n 'toolManager',\n 'mouse'\n];\n\n/**\n * Activate space tool selection.\n *\n * @param {Object} event\n * @param {boolean} autoActivate\n */\nSpaceTool.prototype.activateSelection = function(event, autoActivate, reactivate) {\n this._dragging.init(event, 'spaceTool.selection', {\n autoActivate: autoActivate,\n cursor: CURSOR_CROSSHAIR,\n data: {\n context: {\n reactivate: reactivate\n }\n },\n trapClick: false\n });\n};\n\n/**\n * Activate space tool make space.\n *\n * @param {MouseEvent} event\n */\nSpaceTool.prototype.activateMakeSpace = function(event) {\n this._dragging.init(event, 'spaceTool', {\n autoActivate: true,\n cursor: CURSOR_CROSSHAIR,\n data: {\n context: {}\n }\n });\n};\n\n/**\n * Make space.\n *\n * @param {Array} movingShapes\n * @param {Array} resizingShapes\n * @param {Object} delta\n * @param {number} delta.x\n * @param {number} delta.y\n * @param {string} direction\n * @param {number} start\n */\nSpaceTool.prototype.makeSpace = function(movingShapes, resizingShapes, delta, direction, start) {\n return this._modeling.createSpace(movingShapes, resizingShapes, delta, direction, start);\n};\n\n/**\n * Initialize make space and return true if that was successful.\n *\n * @param {Object} event\n * @param {Object} context\n *\n * @return {boolean}\n */\nSpaceTool.prototype.init = function(event, context) {\n var axis = abs(event.dx) > abs(event.dy) ? 'x' : 'y',\n delta = event[ 'd' + axis ],\n start = event[ axis ] - delta;\n\n if (abs(delta) < 5) {\n return false;\n }\n\n // invert delta to remove space when moving left\n if (delta < 0) {\n delta *= -1;\n }\n\n // invert delta to add/remove space when removing/adding space if modifier key is pressed\n if ((0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event)) {\n delta *= -1;\n }\n\n var direction = (0,_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__.getDirection)(axis, delta);\n\n var root = this._canvas.getRootElement();\n\n var children = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.selfAndAllChildren)(root, true);\n\n var elements = this.calculateAdjustments(children, axis, delta, start);\n\n var minDimensions = this._eventBus.fire('spaceTool.getMinDimensions', {\n axis: axis,\n direction: direction,\n shapes: elements.resizingShapes,\n start: start\n });\n\n var spaceToolConstraints = getSpaceToolConstraints(elements, axis, direction, start, minDimensions);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(\n context,\n elements,\n {\n axis: axis,\n direction: direction,\n spaceToolConstraints: spaceToolConstraints,\n start: start\n }\n );\n\n (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_4__.set)('resize-' + (axis === 'x' ? 'ew' : 'ns'));\n\n return true;\n};\n\n/**\n * Get elements to be moved and resized.\n *\n * @param {Array} elements\n * @param {string} axis\n * @param {number} delta\n * @param {number} start\n *\n * @return {Object}\n */\nSpaceTool.prototype.calculateAdjustments = function(elements, axis, delta, start) {\n var rules = this._rules;\n\n var movingShapes = [],\n resizingShapes = [];\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(elements, function(element) {\n if (!element.parent || isConnection(element)) {\n return;\n }\n\n var shapeStart = element[ axis ],\n shapeEnd = shapeStart + element[ AXIS_TO_DIMENSION[ axis ] ];\n\n // shape to be moved\n if ((delta > 0 && shapeStart > start) || (delta < 0 && shapeEnd < start)) {\n return movingShapes.push(element);\n }\n\n // shape to be resized\n if (shapeStart < start &&\n shapeEnd > start &&\n rules.allowed('shape.resize', { shape: element })\n ) {\n\n return resizingShapes.push(element);\n }\n });\n\n return {\n movingShapes: movingShapes,\n resizingShapes: resizingShapes\n };\n};\n\nSpaceTool.prototype.toggle = function() {\n\n if (this.isActive()) {\n return this._dragging.cancel();\n }\n\n var mouseEvent = this._mouse.getLastMoveEvent();\n\n this.activateSelection(mouseEvent, !!mouseEvent);\n};\n\nSpaceTool.prototype.isActive = function() {\n var context = this._dragging.context();\n\n return context && /^spaceTool/.test(context.prefix);\n};\n\n// helpers //////////\n\nfunction addPadding(trbl) {\n return {\n top: trbl.top - PADDING,\n right: trbl.right + PADDING,\n bottom: trbl.bottom + PADDING,\n left: trbl.left - PADDING\n };\n}\n\nfunction ensureConstraints(event) {\n var context = event.context,\n spaceToolConstraints = context.spaceToolConstraints;\n\n if (!spaceToolConstraints) {\n return;\n }\n\n var x, y;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.left)) {\n x = Math.max(event.x, spaceToolConstraints.left);\n\n event.dx = event.dx + x - event.x;\n event.x = x;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.right)) {\n x = Math.min(event.x, spaceToolConstraints.right);\n\n event.dx = event.dx + x - event.x;\n event.x = x;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.top)) {\n y = Math.max(event.y, spaceToolConstraints.top);\n\n event.dy = event.dy + y - event.y;\n event.y = y;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.bottom)) {\n y = Math.min(event.y, spaceToolConstraints.bottom);\n\n event.dy = event.dy + y - event.y;\n event.y = y;\n }\n}\n\nfunction getSpaceToolConstraints(elements, axis, direction, start, minDimensions) {\n var movingShapes = elements.movingShapes,\n resizingShapes = elements.resizingShapes;\n\n if (!resizingShapes.length) {\n return;\n }\n\n var spaceToolConstraints = {},\n min,\n max;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(resizingShapes, function(resizingShape) {\n var resizingShapeBBox = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)(resizingShape);\n\n // find children that are not moving or resizing\n var nonMovingResizingChildren = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(resizingShape.children, function(child) {\n return !isConnection(child) &&\n !isLabel(child) &&\n !includes(movingShapes, child) &&\n !includes(resizingShapes, child);\n });\n\n // find children that are moving\n var movingChildren = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(resizingShape.children, function(child) {\n return !isConnection(child) && !isLabel(child) && includes(movingShapes, child);\n });\n\n var minOrMax,\n nonMovingResizingChildrenBBox,\n movingChildrenBBox;\n\n if (nonMovingResizingChildren.length) {\n nonMovingResizingChildrenBBox = addPadding((0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)((0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(nonMovingResizingChildren)));\n\n minOrMax = start -\n resizingShapeBBox[ DIRECTION_TO_TRBL[ direction ] ] +\n nonMovingResizingChildrenBBox[ DIRECTION_TO_TRBL[ direction ] ];\n\n if (direction === 'n') {\n spaceToolConstraints.bottom = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n } else if (direction === 'w') {\n spaceToolConstraints.right = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n } else if (direction === 's') {\n spaceToolConstraints.top = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n } else if (direction === 'e') {\n spaceToolConstraints.left = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n }\n }\n\n if (movingChildren.length) {\n movingChildrenBBox = addPadding((0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)((0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(movingChildren)));\n\n minOrMax = start -\n movingChildrenBBox[ DIRECTION_TO_TRBL[ DIRECTION_TO_OPPOSITE[ direction ] ] ] +\n resizingShapeBBox[ DIRECTION_TO_TRBL[ DIRECTION_TO_OPPOSITE[ direction ] ] ];\n\n if (direction === 'n') {\n spaceToolConstraints.bottom = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n } else if (direction === 'w') {\n spaceToolConstraints.right = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n } else if (direction === 's') {\n spaceToolConstraints.top = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n } else if (direction === 'e') {\n spaceToolConstraints.left = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n }\n }\n\n var resizingShapeMinDimensions = minDimensions && minDimensions[ resizingShape.id ];\n\n if (resizingShapeMinDimensions) {\n if (direction === 'n') {\n minOrMax = start +\n resizingShape[ AXIS_TO_DIMENSION [ axis ] ] -\n resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n spaceToolConstraints.bottom = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n } else if (direction === 'w') {\n minOrMax = start +\n resizingShape[ AXIS_TO_DIMENSION [ axis ] ] -\n resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n spaceToolConstraints.right = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n } else if (direction === 's') {\n minOrMax = start -\n resizingShape[ AXIS_TO_DIMENSION [ axis ] ] +\n resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n spaceToolConstraints.top = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n } else if (direction === 'e') {\n minOrMax = start -\n resizingShape[ AXIS_TO_DIMENSION [ axis ] ] +\n resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n spaceToolConstraints.left = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n }\n }\n });\n\n return spaceToolConstraints;\n}\n\nfunction includes(array, item) {\n return array.indexOf(item) !== -1;\n}\n\nfunction isConnection(element) {\n return !!element.waypoints;\n}\n\nfunction isLabel(element) {\n return !!element.labelTarget;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js": /*!*****************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SpaceToolPreview)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\nvar MARKER_DRAGGING = 'djs-dragging',\n MARKER_RESIZING = 'djs-resizing';\n\nvar LOW_PRIORITY = 250;\n\n\n\n\n\nvar max = Math.max;\n\n\n/**\n * Provides previews for selecting/moving/resizing shapes when creating/removing space.\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n * @param {Canvas} canvas\n * @param {Styles} styles\n */\nfunction SpaceToolPreview(\n eventBus, elementRegistry, canvas,\n styles, previewSupport) {\n\n function addPreviewGfx(collection, dragGroup) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(collection, function(element) {\n previewSupport.addDragger(element, dragGroup);\n\n canvas.addMarker(element, MARKER_DRAGGING);\n });\n }\n\n // add crosshair\n eventBus.on('spaceTool.selection.start', function(event) {\n var space = canvas.getLayer('space'),\n context = event.context;\n\n var orientation = {\n x: 'M 0,-10000 L 0,10000',\n y: 'M -10000,0 L 10000,0'\n };\n\n var crosshairGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(crosshairGroup, styles.cls('djs-crosshair-group', [ 'no-events' ]));\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(space, crosshairGroup);\n\n // horizontal path\n var pathX = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(pathX, 'd', orientation.x);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(pathX).add('djs-crosshair');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(crosshairGroup, pathX);\n\n // vertical path\n var pathY = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(pathY, 'd', orientation.y);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(pathY).add('djs-crosshair');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(crosshairGroup, pathY);\n\n context.crosshairGroup = crosshairGroup;\n });\n\n // update crosshair\n eventBus.on('spaceTool.selection.move', function(event) {\n var crosshairGroup = event.context.crosshairGroup;\n\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(crosshairGroup, event.x, event.y);\n });\n\n // remove crosshair\n eventBus.on('spaceTool.selection.cleanup', function(event) {\n var context = event.context,\n crosshairGroup = context.crosshairGroup;\n\n if (crosshairGroup) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(crosshairGroup);\n }\n });\n\n // add and update move/resize previews\n eventBus.on('spaceTool.move', LOW_PRIORITY, function(event) {\n\n var context = event.context,\n line = context.line,\n axis = context.axis,\n movingShapes = context.movingShapes,\n resizingShapes = context.resizingShapes;\n\n if (!context.initialized) {\n return;\n }\n\n if (!context.dragGroup) {\n var spaceLayer = canvas.getLayer('space');\n\n line = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(line, 'd', 'M0,0 L0,0');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(line).add('djs-crosshair');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(spaceLayer, line);\n\n context.line = line;\n\n var dragGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(dragGroup, styles.cls('djs-drag-group', [ 'no-events' ]));\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(canvas.getDefaultLayer(), dragGroup);\n\n // shapes\n addPreviewGfx(movingShapes, dragGroup);\n\n // connections\n var movingConnections = context.movingConnections = elementRegistry.filter(function(element) {\n var sourceIsMoving = false;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes, function(shape) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.outgoing, function(connection) {\n if (element === connection) {\n sourceIsMoving = true;\n }\n });\n });\n\n var targetIsMoving = false;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes, function(shape) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.incoming, function(connection) {\n if (element === connection) {\n targetIsMoving = true;\n }\n });\n });\n\n var sourceIsResizing = false;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.outgoing, function(connection) {\n if (element === connection) {\n sourceIsResizing = true;\n }\n });\n });\n\n var targetIsResizing = false;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.incoming, function(connection) {\n if (element === connection) {\n targetIsResizing = true;\n }\n });\n });\n\n return isConnection(element)\n && (sourceIsMoving || sourceIsResizing)\n && (targetIsMoving || targetIsResizing);\n });\n\n\n addPreviewGfx(movingConnections, dragGroup);\n\n context.dragGroup = dragGroup;\n }\n\n if (!context.frameGroup) {\n var frameGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(frameGroup, styles.cls('djs-frame-group', [ 'no-events' ]));\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(canvas.getDefaultLayer(), frameGroup);\n\n var frames = [];\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n var frame = previewSupport.addFrame(shape, frameGroup);\n\n var initialBounds = frame.getBBox();\n\n frames.push({\n element: frame,\n initialBounds: initialBounds\n });\n\n canvas.addMarker(shape, MARKER_RESIZING);\n });\n\n context.frameGroup = frameGroup;\n context.frames = frames;\n }\n\n var orientation = {\n x: 'M' + event.x + ', -10000 L' + event.x + ', 10000',\n y: 'M -10000, ' + event.y + ' L 10000, ' + event.y\n };\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(line, { d: orientation[ axis ] });\n\n var opposite = { x: 'y', y: 'x' };\n var delta = { x: event.dx, y: event.dy };\n delta[ opposite[ context.axis ] ] = 0;\n\n // update move previews\n (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(context.dragGroup, delta.x, delta.y);\n\n // update resize previews\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(context.frames, function(frame) {\n var element = frame.element,\n initialBounds = frame.initialBounds,\n width,\n height;\n\n if (context.direction === 'e') {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n width: max(initialBounds.width + delta.x, 5)\n });\n } else {\n width = max(initialBounds.width - delta.x, 5);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n width: width,\n x: initialBounds.x + initialBounds.width - width\n });\n }\n\n if (context.direction === 's') {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n height: max(initialBounds.height + delta.y, 5)\n });\n } else {\n height = max(initialBounds.height - delta.y, 5);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n height: height,\n y: initialBounds.y + initialBounds.height - height\n });\n }\n });\n\n });\n\n // remove move/resize previews\n eventBus.on('spaceTool.cleanup', function(event) {\n\n var context = event.context,\n movingShapes = context.movingShapes,\n movingConnections = context.movingConnections,\n resizingShapes = context.resizingShapes,\n line = context.line,\n dragGroup = context.dragGroup,\n frameGroup = context.frameGroup;\n\n // moving shapes\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes, function(shape) {\n canvas.removeMarker(shape, MARKER_DRAGGING);\n });\n\n // moving connections\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingConnections, function(connection) {\n canvas.removeMarker(connection, MARKER_DRAGGING);\n });\n\n if (dragGroup) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(line);\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(dragGroup);\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n canvas.removeMarker(shape, MARKER_RESIZING);\n });\n\n if (frameGroup) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(frameGroup);\n }\n });\n}\n\nSpaceToolPreview.$inject = [\n 'eventBus',\n 'elementRegistry',\n 'canvas',\n 'styles',\n 'previewSupport'\n];\n\n\n// helpers //////////////////////\n\n/**\n * Checks if an element is a connection.\n */\nfunction isConnection(element) {\n return element.waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js": /*!**********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getDirection\": () => (/* binding */ getDirection),\n/* harmony export */ \"getWaypointsUpdatingConnections\": () => (/* binding */ getWaypointsUpdatingConnections),\n/* harmony export */ \"resizeBounds\": () => (/* binding */ resizeBounds)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Return direction given axis and delta.\n *\n * @param {string} axis\n * @param {number} delta\n *\n * @return {string}\n */\nfunction getDirection(axis, delta) {\n\n if (axis === 'x') {\n if (delta > 0) {\n return 'e';\n }\n\n if (delta < 0) {\n return 'w';\n }\n }\n\n if (axis === 'y') {\n if (delta > 0) {\n return 's';\n }\n\n if (delta < 0) {\n return 'n';\n }\n }\n\n return null;\n}\n\n/**\n * Returns connections whose waypoints are to be updated. Waypoints are to be updated if start\n * or end is to be moved or resized.\n *\n * @param {Array}\n */\nfunction getWaypointsUpdatingConnections(movingShapes, resizingShapes) {\n var waypointsUpdatingConnections = [];\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes.concat(resizingShapes), function(shape) {\n var incoming = shape.incoming,\n outgoing = shape.outgoing;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(incoming.concat(outgoing), function(connection) {\n var source = connection.source,\n target = connection.target;\n\n if (includes(movingShapes, source) ||\n includes(movingShapes, target) ||\n includes(resizingShapes, source) ||\n includes(resizingShapes, target)) {\n\n if (!includes(waypointsUpdatingConnections, connection)) {\n waypointsUpdatingConnections.push(connection);\n }\n }\n });\n });\n\n return waypointsUpdatingConnections;\n}\n\nfunction includes(array, item) {\n return array.indexOf(item) !== -1;\n}\n\n/**\n * Resize bounds.\n *\n * @param {Object} bounds\n * @param {number} bounds.x\n * @param {number} bounds.y\n * @param {number} bounds.width\n * @param {number} bounds.height\n * @param {string} direction\n * @param {Object} delta\n * @param {number} delta.x\n * @param {number} delta.y\n *\n * @return {Object}\n */\nfunction resizeBounds(bounds, direction, delta) {\n var x = bounds.x,\n y = bounds.y,\n width = bounds.width,\n height = bounds.height,\n dx = delta.x,\n dy = delta.y;\n\n switch (direction) {\n case 'n':\n return {\n x: x,\n y: y + dy,\n width: width,\n height: height - dy\n };\n case 's':\n return {\n x: x,\n y: y,\n width: width,\n height: height + dy\n };\n case 'w':\n return {\n x: x + dx,\n y: y,\n width: width - dx,\n height: height\n };\n case 'e':\n return {\n x: x,\n y: y,\n width: width + dx,\n height: height\n };\n default:\n throw new Error('unknown direction: ' + direction);\n }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/space-tool/index.js": /*!******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/space-tool/index.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _SpaceTool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SpaceTool */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js\");\n/* harmony import */ var _SpaceToolPreview__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SpaceToolPreview */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: ['spaceToolPreview'],\n __depends__: [\n _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n _tool_manager__WEBPACK_IMPORTED_MODULE_2__.default,\n _preview_support__WEBPACK_IMPORTED_MODULE_3__.default,\n _mouse__WEBPACK_IMPORTED_MODULE_4__.default\n ],\n spaceTool: ['type', _SpaceTool__WEBPACK_IMPORTED_MODULE_5__.default ],\n spaceToolPreview: ['type', _SpaceToolPreview__WEBPACK_IMPORTED_MODULE_6__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js": /*!**************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ToolManager)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar LOW_PRIORITY = 250;\n\n/**\n * The tool manager acts as middle-man between the available tool's and the Palette,\n * it takes care of making sure that the correct active state is set.\n *\n * @param {Object} eventBus\n * @param {Object} dragging\n */\nfunction ToolManager(eventBus, dragging) {\n this._eventBus = eventBus;\n this._dragging = dragging;\n\n this._tools = [];\n this._active = null;\n}\n\nToolManager.$inject = [ 'eventBus', 'dragging' ];\n\nToolManager.prototype.registerTool = function(name, events) {\n var tools = this._tools;\n\n if (!events) {\n throw new Error('A tool has to be registered with it\\'s \"events\"');\n }\n\n tools.push(name);\n\n this.bindEvents(name, events);\n};\n\nToolManager.prototype.isActive = function(tool) {\n return tool && this._active === tool;\n};\n\nToolManager.prototype.length = function(tool) {\n return this._tools.length;\n};\n\nToolManager.prototype.setActive = function(tool) {\n var eventBus = this._eventBus;\n\n if (this._active !== tool) {\n this._active = tool;\n\n eventBus.fire('tool-manager.update', { tool: tool });\n }\n};\n\nToolManager.prototype.bindEvents = function(name, events) {\n var eventBus = this._eventBus,\n dragging = this._dragging;\n\n var eventsToRegister = [];\n\n eventBus.on(events.tool + '.init', function(event) {\n var context = event.context;\n\n // Active tools that want to reactivate themselves must do this explicitly\n if (!context.reactivate && this.isActive(name)) {\n this.setActive(null);\n\n dragging.cancel();\n return;\n }\n\n this.setActive(name);\n\n }, this);\n\n // Todo[ricardo]: add test cases\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(events, function(event) {\n eventsToRegister.push(event + '.ended');\n eventsToRegister.push(event + '.canceled');\n });\n\n eventBus.on(eventsToRegister, LOW_PRIORITY, function(event) {\n\n // We defer the de-activation of the tool to the .activate phase,\n // so we're able to check if we want to toggle off the current\n // active tool or switch to a new one\n if (!this._active) {\n return;\n }\n\n if (isPaletteClick(event)) {\n return;\n }\n\n this.setActive(null);\n }, this);\n\n};\n\n\n// helpers ///////////////\n\n/**\n * Check if a given event is a palette click event.\n *\n * @param {EventBus.Event} event\n *\n * @return {boolean}\n */\nfunction isPaletteClick(event) {\n var target = event.originalEvent && event.originalEvent.target;\n\n return target && (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.closest)(target, '.group[data-group=\"tools\"]');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/tool-manager/index.js": /*!********************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/tool-manager/index.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _ToolManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ToolManager */ \"./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _dragging__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'toolManager' ],\n toolManager: [ 'type', _ToolManager__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tool-manager/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/tooltips/Tooltips.js": /*!*******************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/tooltips/Tooltips.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Tooltips)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/IdGenerator */ \"./node_modules/diagram-js/lib/util/IdGenerator.js\");\n\n\n\n\n\n\n// document wide unique tooltip ids\nvar ids = new _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__.default('tt');\n\n\nfunction createRoot(parentNode) {\n var root = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(\n '
    '\n );\n\n parentNode.insertBefore(root, parentNode.firstChild);\n\n return root;\n}\n\n\nfunction setPosition(el, x, y) {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(el.style, { left: x + 'px', top: y + 'px' });\n}\n\nfunction setVisible(el, visible) {\n el.style.display = visible === false ? 'none' : '';\n}\n\n\nvar tooltipClass = 'djs-tooltip',\n tooltipSelector = '.' + tooltipClass;\n\n/**\n * A service that allows users to render tool tips on the diagram.\n *\n * The tooltip service will take care of updating the tooltip positioning\n * during navigation + zooming.\n *\n * @example\n *\n * ```javascript\n *\n * // add a pink badge on the top left of the shape\n * tooltips.add({\n * position: {\n * x: 50,\n * y: 100\n * },\n * html: '
    0
    '\n * });\n *\n * // or with optional life span\n * tooltips.add({\n * position: {\n * top: -5,\n * left: -5\n * },\n * html: '
    0
    ',\n * ttl: 2000\n * });\n *\n * // remove a tool tip\n * var id = tooltips.add(...);\n * tooltips.remove(id);\n * ```\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction Tooltips(eventBus, canvas) {\n\n this._eventBus = eventBus;\n this._canvas = canvas;\n\n this._ids = ids;\n\n this._tooltipDefaults = {\n show: {\n minZoom: 0.7,\n maxZoom: 5.0\n }\n };\n\n /**\n * Mapping tooltipId -> tooltip\n */\n this._tooltips = {};\n\n // root html element for all tooltips\n this._tooltipRoot = createRoot(canvas.getContainer());\n\n\n var self = this;\n\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(this._tooltipRoot, tooltipSelector, 'mousedown', function(event) {\n event.stopPropagation();\n });\n\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(this._tooltipRoot, tooltipSelector, 'mouseover', function(event) {\n self.trigger('mouseover', event);\n });\n\n min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(this._tooltipRoot, tooltipSelector, 'mouseout', function(event) {\n self.trigger('mouseout', event);\n });\n\n this._init();\n}\n\n\nTooltips.$inject = [ 'eventBus', 'canvas' ];\n\n\n/**\n * Adds a HTML tooltip to the diagram\n *\n * @param {Object} tooltip the tooltip configuration\n *\n * @param {string|DOMElement} tooltip.html html element to use as an tooltip\n * @param {Object} [tooltip.show] show configuration\n * @param {number} [tooltip.show.minZoom] minimal zoom level to show the tooltip\n * @param {number} [tooltip.show.maxZoom] maximum zoom level to show the tooltip\n * @param {Object} tooltip.position where to attach the tooltip\n * @param {number} [tooltip.position.left] relative to element bbox left attachment\n * @param {number} [tooltip.position.top] relative to element bbox top attachment\n * @param {number} [tooltip.position.bottom] relative to element bbox bottom attachment\n * @param {number} [tooltip.position.right] relative to element bbox right attachment\n * @param {number} [tooltip.timeout=-1]\n *\n * @return {string} id that may be used to reference the tooltip for update or removal\n */\nTooltips.prototype.add = function(tooltip) {\n\n if (!tooltip.position) {\n throw new Error('must specifiy tooltip position');\n }\n\n if (!tooltip.html) {\n throw new Error('must specifiy tooltip html');\n }\n\n var id = this._ids.next();\n\n tooltip = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, this._tooltipDefaults, tooltip, {\n id: id\n });\n\n this._addTooltip(tooltip);\n\n if (tooltip.timeout) {\n this.setTimeout(tooltip);\n }\n\n return id;\n};\n\nTooltips.prototype.trigger = function(action, event) {\n\n var node = event.delegateTarget || event.target;\n\n var tooltip = this.get((0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(node, 'data-tooltip-id'));\n\n if (!tooltip) {\n return;\n }\n\n if (action === 'mouseover' && tooltip.timeout) {\n this.clearTimeout(tooltip);\n }\n\n if (action === 'mouseout' && tooltip.timeout) {\n\n // cut timeout after mouse out\n tooltip.timeout = 1000;\n\n this.setTimeout(tooltip);\n }\n};\n\n/**\n * Get a tooltip with the given id\n *\n * @param {string} id\n */\nTooltips.prototype.get = function(id) {\n\n if (typeof id !== 'string') {\n id = id.id;\n }\n\n return this._tooltips[id];\n};\n\nTooltips.prototype.clearTimeout = function(tooltip) {\n\n tooltip = this.get(tooltip);\n\n if (!tooltip) {\n return;\n }\n\n var removeTimer = tooltip.removeTimer;\n\n if (removeTimer) {\n clearTimeout(removeTimer);\n tooltip.removeTimer = null;\n }\n};\n\nTooltips.prototype.setTimeout = function(tooltip) {\n\n tooltip = this.get(tooltip);\n\n if (!tooltip) {\n return;\n }\n\n this.clearTimeout(tooltip);\n\n var self = this;\n\n tooltip.removeTimer = setTimeout(function() {\n self.remove(tooltip);\n }, tooltip.timeout);\n};\n\n/**\n * Remove an tooltip with the given id\n *\n * @param {string} id\n */\nTooltips.prototype.remove = function(id) {\n\n var tooltip = this.get(id);\n\n if (tooltip) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.remove)(tooltip.html);\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.remove)(tooltip.htmlContainer);\n\n delete tooltip.htmlContainer;\n\n delete this._tooltips[tooltip.id];\n }\n};\n\n\nTooltips.prototype.show = function() {\n setVisible(this._tooltipRoot);\n};\n\n\nTooltips.prototype.hide = function() {\n setVisible(this._tooltipRoot, false);\n};\n\n\nTooltips.prototype._updateRoot = function(viewbox) {\n var a = viewbox.scale || 1;\n var d = viewbox.scale || 1;\n\n var matrix = 'matrix(' + a + ',0,0,' + d + ',' + (-1 * viewbox.x * a) + ',' + (-1 * viewbox.y * d) + ')';\n\n this._tooltipRoot.style.transform = matrix;\n this._tooltipRoot.style['-ms-transform'] = matrix;\n};\n\n\nTooltips.prototype._addTooltip = function(tooltip) {\n\n var id = tooltip.id,\n html = tooltip.html,\n htmlContainer,\n tooltipRoot = this._tooltipRoot;\n\n // unwrap jquery (for those who need it)\n if (html.get && html.constructor.prototype.jquery) {\n html = html.get(0);\n }\n\n // create proper html elements from\n // tooltip HTML strings\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(html)) {\n html = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(html);\n }\n\n htmlContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('
    ');\n\n htmlContainer.appendChild(html);\n\n if (tooltip.type) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(htmlContainer).add('djs-tooltip-' + tooltip.type);\n }\n\n if (tooltip.className) {\n (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(htmlContainer).add(tooltip.className);\n }\n\n tooltip.htmlContainer = htmlContainer;\n\n tooltipRoot.appendChild(htmlContainer);\n\n this._tooltips[id] = tooltip;\n\n this._updateTooltip(tooltip);\n};\n\n\nTooltips.prototype._updateTooltip = function(tooltip) {\n\n var position = tooltip.position,\n htmlContainer = tooltip.htmlContainer;\n\n // update overlay html based on tooltip x, y\n\n setPosition(htmlContainer, position.x, position.y);\n};\n\n\nTooltips.prototype._updateTooltipVisibilty = function(viewbox) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(this._tooltips, function(tooltip) {\n var show = tooltip.show,\n htmlContainer = tooltip.htmlContainer,\n visible = true;\n\n if (show) {\n if (show.minZoom > viewbox.scale ||\n show.maxZoom < viewbox.scale) {\n visible = false;\n }\n\n setVisible(htmlContainer, visible);\n }\n });\n};\n\nTooltips.prototype._init = function() {\n\n var self = this;\n\n // scroll/zoom integration\n\n function updateViewbox(viewbox) {\n self._updateRoot(viewbox);\n self._updateTooltipVisibilty(viewbox);\n\n self.show();\n }\n\n this._eventBus.on('canvas.viewbox.changing', function(event) {\n self.hide();\n });\n\n this._eventBus.on('canvas.viewbox.changed', function(event) {\n updateViewbox(event.viewbox);\n });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tooltips/Tooltips.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/tooltips/index.js": /*!****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/tooltips/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Tooltips__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tooltips */ \"./node_modules/diagram-js/lib/features/tooltips/Tooltips.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'tooltips' ],\n tooltips: [ 'type', _Tooltips__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tooltips/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/touch/TouchFix.js": /*!****************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/touch/TouchFix.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ TouchFix)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\nfunction TouchFix(canvas, eventBus) {\n\n var self = this;\n\n eventBus.on('canvas.init', function(e) {\n self.addBBoxMarker(e.svg);\n });\n}\n\nTouchFix.$inject = [ 'canvas', 'eventBus' ];\n\n\n/**\n * Safari mobile (iOS 7) does not fire touchstart event in element\n * if there is no shape between 0,0 and viewport elements origin.\n *\n * So touchstart event is only fired when the element was hit.\n * Putting an element over and below the 'viewport' fixes that behavior.\n */\nTouchFix.prototype.addBBoxMarker = function(svg) {\n\n var markerStyle = {\n fill: 'none',\n class: 'outer-bound-marker'\n };\n\n var rect1 = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect1, {\n x: -10000,\n y: 10000,\n width: 10,\n height: 10\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect1, markerStyle);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(svg, rect1);\n\n var rect2 = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect2, {\n x: 10000,\n y: 10000,\n width: 10,\n height: 10\n });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect2, markerStyle);\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(svg, rect2);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/touch/TouchFix.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ TouchInteractionEvents)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var hammerjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hammerjs */ \"./node_modules/hammerjs/hammer.js\");\n/* harmony import */ var hammerjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hammerjs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\n\n\n\n\nvar MIN_ZOOM = 0.2,\n MAX_ZOOM = 4;\n\nvar mouseEvents = [\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mouseout',\n 'click',\n 'dblclick'\n];\n\nfunction log() {\n\n // console.log.apply(console, arguments);\n}\n\nfunction get(service, injector) {\n return injector.get(service, false);\n}\n\nfunction stopEvent(event) {\n\n event.preventDefault();\n\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n } else if (event.srcEvent && typeof event.srcEvent.stopPropagation === 'function') {\n\n // iPhone & iPad\n event.srcEvent.stopPropagation();\n }\n\n if (typeof event.stopImmediatePropagation === 'function') {\n event.stopImmediatePropagation();\n }\n}\n\n\nfunction createTouchRecognizer(node) {\n\n function stopMouse(event) {\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(mouseEvents, function(e) {\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, e, stopEvent, true);\n });\n }\n\n function allowMouse(event) {\n setTimeout(function() {\n (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(mouseEvents, function(e) {\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.unbind(node, e, stopEvent, true);\n });\n }, 500);\n }\n\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'touchstart', stopMouse, true);\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'touchend', allowMouse, true);\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'touchcancel', allowMouse, true);\n\n // A touch event recognizer that handles\n // touch events only (we know, we can already handle\n // mouse events out of the box)\n\n var recognizer = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Manager)(node, {\n inputClass: (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().TouchInput),\n recognizers: [],\n domEvents: true\n });\n\n\n var tap = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Tap)();\n var pan = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Pan)({ threshold: 10 });\n var press = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Press)();\n var pinch = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Pinch)();\n\n var doubleTap = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Tap)({ event: 'doubletap', taps: 2 });\n\n pinch.requireFailure(pan);\n pinch.requireFailure(press);\n\n recognizer.add([ pan, press, pinch, doubleTap, tap ]);\n\n recognizer.reset = function(force) {\n var recognizers = this.recognizers,\n session = this.session;\n\n if (session.stopped) {\n return;\n }\n\n log('recognizer', 'stop');\n\n recognizer.stop(force);\n\n setTimeout(function() {\n var i, r;\n\n log('recognizer', 'reset');\n for (i = 0; (r = recognizers[i]); i++) {\n r.reset();\n r.state = 8; // FAILED STATE\n }\n\n session.curRecognizer = null;\n }, 0);\n };\n\n recognizer.on('hammer.input', function(event) {\n if (event.srcEvent.defaultPrevented) {\n recognizer.reset(true);\n }\n });\n\n return recognizer;\n}\n\n/**\n * A plugin that provides touch events for elements.\n *\n * @param {EventBus} eventBus\n * @param {InteractionEvents} interactionEvents\n */\nfunction TouchInteractionEvents(\n injector, canvas, eventBus,\n elementRegistry, interactionEvents) {\n\n // optional integrations\n var dragging = get('dragging', injector),\n move = get('move', injector),\n contextPad = get('contextPad', injector),\n palette = get('palette', injector);\n\n // the touch recognizer\n var recognizer;\n\n function handler(type) {\n\n return function(event) {\n log('element', type, event);\n\n interactionEvents.fire(type, event);\n };\n }\n\n function getGfx(target) {\n var node = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.closest)(target, 'svg, .djs-element', true);\n return node;\n }\n\n function initEvents(svg) {\n\n // touch recognizer\n recognizer = createTouchRecognizer(svg);\n\n recognizer.on('doubletap', handler('element.dblclick'));\n\n recognizer.on('tap', handler('element.click'));\n\n function startGrabCanvas(event) {\n\n log('canvas', 'grab start');\n\n var lx = 0, ly = 0;\n\n function update(e) {\n\n var dx = e.deltaX - lx,\n dy = e.deltaY - ly;\n\n canvas.scroll({ dx: dx, dy: dy });\n\n lx = e.deltaX;\n ly = e.deltaY;\n }\n\n function end(e) {\n recognizer.off('panmove', update);\n recognizer.off('panend', end);\n recognizer.off('pancancel', end);\n\n log('canvas', 'grab end');\n }\n\n recognizer.on('panmove', update);\n recognizer.on('panend', end);\n recognizer.on('pancancel', end);\n }\n\n function startGrab(event) {\n\n var gfx = getGfx(event.target),\n element = gfx && elementRegistry.get(gfx);\n\n // recognizer\n if (move && canvas.getRootElement() !== element) {\n log('element', 'move start', element, event, true);\n return move.start(event, element, true);\n } else {\n startGrabCanvas(event);\n }\n }\n\n function startZoom(e) {\n\n log('canvas', 'zoom start');\n\n var zoom = canvas.zoom(),\n mid = e.center;\n\n function update(e) {\n\n var ratio = 1 - (1 - e.scale) / 1.50,\n newZoom = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, ratio * zoom));\n\n canvas.zoom(newZoom, mid);\n\n stopEvent(e);\n }\n\n function end(e) {\n recognizer.off('pinchmove', update);\n recognizer.off('pinchend', end);\n recognizer.off('pinchcancel', end);\n\n recognizer.reset(true);\n\n log('canvas', 'zoom end');\n }\n\n recognizer.on('pinchmove', update);\n recognizer.on('pinchend', end);\n recognizer.on('pinchcancel', end);\n }\n\n recognizer.on('panstart', startGrab);\n recognizer.on('press', startGrab);\n\n recognizer.on('pinchstart', startZoom);\n }\n\n if (dragging) {\n\n // simulate hover during dragging\n eventBus.on('drag.move', function(event) {\n\n var originalEvent = event.originalEvent;\n\n if (!originalEvent || originalEvent instanceof MouseEvent) {\n return;\n }\n\n var position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_3__.toPoint)(originalEvent);\n\n // this gets really expensive ...\n var node = document.elementFromPoint(position.x, position.y),\n gfx = getGfx(node),\n element = gfx && elementRegistry.get(gfx);\n\n if (element !== event.hover) {\n if (event.hover) {\n dragging.out(event);\n }\n\n if (element) {\n dragging.hover({ element: element, gfx: gfx });\n\n event.hover = element;\n event.hoverGfx = gfx;\n }\n }\n });\n }\n\n if (contextPad) {\n\n eventBus.on('contextPad.create', function(event) {\n var node = event.pad.html;\n\n // touch recognizer\n var padRecognizer = createTouchRecognizer(node);\n\n padRecognizer.on('panstart', function(event) {\n log('context-pad', 'panstart', event);\n contextPad.trigger('dragstart', event, true);\n });\n\n padRecognizer.on('press', function(event) {\n log('context-pad', 'press', event);\n contextPad.trigger('dragstart', event, true);\n });\n\n padRecognizer.on('tap', function(event) {\n log('context-pad', 'tap', event);\n contextPad.trigger('click', event);\n });\n });\n }\n\n if (palette) {\n eventBus.on('palette.create', function(event) {\n var node = event.container;\n\n // touch recognizer\n var padRecognizer = createTouchRecognizer(node);\n\n padRecognizer.on('panstart', function(event) {\n log('palette', 'panstart', event);\n palette.trigger('dragstart', event, true);\n });\n\n padRecognizer.on('press', function(event) {\n log('palette', 'press', event);\n palette.trigger('dragstart', event, true);\n });\n\n padRecognizer.on('tap', function(event) {\n log('palette', 'tap', event);\n palette.trigger('click', event);\n });\n });\n }\n\n eventBus.on('canvas.init', function(event) {\n initEvents(event.svg);\n });\n}\n\n\nTouchInteractionEvents.$inject = [\n 'injector',\n 'canvas',\n 'eventBus',\n 'elementRegistry',\n 'interactionEvents',\n 'touchFix'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/features/touch/index.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/features/touch/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _TouchInteractionEvents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TouchInteractionEvents */ \"./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js\");\n/* harmony import */ var _TouchFix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TouchFix */ \"./node_modules/diagram-js/lib/features/touch/TouchFix.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [ _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default ],\n __init__: [ 'touchInteractionEvents' ],\n touchInteractionEvents: [ 'type', _TouchInteractionEvents__WEBPACK_IMPORTED_MODULE_1__.default ],\n touchFix: [ 'type', _TouchFix__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/touch/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/i18n/translate/index.js": /*!*************************************************************!*\ !*** ./node_modules/diagram-js/lib/i18n/translate/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./translate */ \"./node_modules/diagram-js/lib/i18n/translate/translate.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n translate: [ 'value', _translate__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/i18n/translate/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/i18n/translate/translate.js": /*!*****************************************************************!*\ !*** ./node_modules/diagram-js/lib/i18n/translate/translate.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ translate)\n/* harmony export */ });\n/**\n * A simple translation stub to be used for multi-language support\n * in diagrams. Can be easily replaced with a more sophisticated\n * solution.\n *\n * @example\n *\n * // use it inside any diagram component by injecting `translate`.\n *\n * function MyService(translate) {\n * alert(translate('HELLO {you}', { you: 'You!' }));\n * }\n *\n * @param {string} template to interpolate\n * @param {Object} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nfunction translate(template, replacements) {\n\n replacements = replacements || {};\n\n return template.replace(/{([^}]+)}/g, function(_, key) {\n return replacements[key] || '{' + key + '}';\n });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/i18n/translate/translate.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/layout/BaseLayouter.js": /*!************************************************************!*\ !*** ./node_modules/diagram-js/lib/layout/BaseLayouter.js ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BaseLayouter)\n/* harmony export */ });\n/* harmony import */ var _LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n/**\n * A base connection layouter implementation\n * that layouts the connection by directly connecting\n * mid(source) + mid(target).\n */\nfunction BaseLayouter() {}\n\n\n/**\n * Return the new layouted waypoints for the given connection.\n *\n * The connection passed is still unchanged; you may figure out about\n * the new connection start / end via the layout hints provided.\n *\n * @param {djs.model.Connection} connection\n * @param {Object} [hints]\n * @param {Point} [hints.connectionStart]\n * @param {Point} [hints.connectionEnd]\n * @param {Point} [hints.source]\n * @param {Point} [hints.target]\n *\n * @return {Array} the layouted connection waypoints\n */\nBaseLayouter.prototype.layoutConnection = function(connection, hints) {\n\n hints = hints || {};\n\n return [\n hints.connectionStart || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(hints.source || connection.source),\n hints.connectionEnd || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(hints.target || connection.target)\n ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/BaseLayouter.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js": /*!*************************************************************************!*\ !*** ./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CroppingConnectionDocking)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\nfunction dockingToPoint(docking) {\n\n // use the dockings actual point and\n // retain the original docking\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ original: docking.point.original || docking.point }, docking.actual);\n}\n\n\n/**\n * A {@link ConnectionDocking} that crops connection waypoints based on\n * the path(s) of the connection source and target.\n *\n * @param {djs.core.ElementRegistry} elementRegistry\n */\nfunction CroppingConnectionDocking(elementRegistry, graphicsFactory) {\n this._elementRegistry = elementRegistry;\n this._graphicsFactory = graphicsFactory;\n}\n\nCroppingConnectionDocking.$inject = [ 'elementRegistry', 'graphicsFactory' ];\n\n\n/**\n * @inheritDoc ConnectionDocking#getCroppedWaypoints\n */\nCroppingConnectionDocking.prototype.getCroppedWaypoints = function(connection, source, target) {\n\n source = source || connection.source;\n target = target || connection.target;\n\n var sourceDocking = this.getDockingPoint(connection, source, true),\n targetDocking = this.getDockingPoint(connection, target);\n\n var croppedWaypoints = connection.waypoints.slice(sourceDocking.idx + 1, targetDocking.idx);\n\n croppedWaypoints.unshift(dockingToPoint(sourceDocking));\n croppedWaypoints.push(dockingToPoint(targetDocking));\n\n return croppedWaypoints;\n};\n\n/**\n * Return the connection docking point on the specified shape\n *\n * @inheritDoc ConnectionDocking#getDockingPoint\n */\nCroppingConnectionDocking.prototype.getDockingPoint = function(connection, shape, dockStart) {\n\n var waypoints = connection.waypoints,\n dockingIdx,\n dockingPoint,\n croppedPoint;\n\n dockingIdx = dockStart ? 0 : waypoints.length - 1;\n dockingPoint = waypoints[dockingIdx];\n\n croppedPoint = this._getIntersection(shape, connection, dockStart);\n\n return {\n point: dockingPoint,\n actual: croppedPoint || dockingPoint,\n idx: dockingIdx\n };\n};\n\n\n// helpers //////////////////////\n\nCroppingConnectionDocking.prototype._getIntersection = function(shape, connection, takeFirst) {\n\n var shapePath = this._getShapePath(shape),\n connectionPath = this._getConnectionPath(connection);\n\n return (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getElementLineIntersection)(shapePath, connectionPath, takeFirst);\n};\n\nCroppingConnectionDocking.prototype._getConnectionPath = function(connection) {\n return this._graphicsFactory.getConnectionPath(connection);\n};\n\nCroppingConnectionDocking.prototype._getShapePath = function(shape) {\n return this._graphicsFactory.getShapePath(shape);\n};\n\nCroppingConnectionDocking.prototype._getGfx = function(element) {\n return this._elementRegistry.getGraphics(element);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/layout/LayoutUtil.js": /*!**********************************************************!*\ !*** ./node_modules/diagram-js/lib/layout/LayoutUtil.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"roundBounds\": () => (/* binding */ roundBounds),\n/* harmony export */ \"roundPoint\": () => (/* binding */ roundPoint),\n/* harmony export */ \"asTRBL\": () => (/* binding */ asTRBL),\n/* harmony export */ \"asBounds\": () => (/* binding */ asBounds),\n/* harmony export */ \"getMid\": () => (/* binding */ getMid),\n/* harmony export */ \"getOrientation\": () => (/* binding */ getOrientation),\n/* harmony export */ \"getElementLineIntersection\": () => (/* binding */ getElementLineIntersection),\n/* harmony export */ \"getIntersections\": () => (/* binding */ getIntersections),\n/* harmony export */ \"filterRedundantWaypoints\": () => (/* binding */ filterRedundantWaypoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path-intersection */ \"./node_modules/path-intersection/intersect.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path_intersection__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\n\n\n\nfunction roundBounds(bounds) {\n return {\n x: Math.round(bounds.x),\n y: Math.round(bounds.y),\n width: Math.round(bounds.width),\n height: Math.round(bounds.height)\n };\n}\n\n\nfunction roundPoint(point) {\n\n return {\n x: Math.round(point.x),\n y: Math.round(point.y)\n };\n}\n\n\n/**\n * Convert the given bounds to a { top, left, bottom, right } descriptor.\n *\n * @param {Bounds|Point} bounds\n *\n * @return {Object}\n */\nfunction asTRBL(bounds) {\n return {\n top: bounds.y,\n right: bounds.x + (bounds.width || 0),\n bottom: bounds.y + (bounds.height || 0),\n left: bounds.x\n };\n}\n\n\n/**\n * Convert a { top, left, bottom, right } to an objects bounds.\n *\n * @param {Object} trbl\n *\n * @return {Bounds}\n */\nfunction asBounds(trbl) {\n return {\n x: trbl.left,\n y: trbl.top,\n width: trbl.right - trbl.left,\n height: trbl.bottom - trbl.top\n };\n}\n\n\n/**\n * Get the mid of the given bounds or point.\n *\n * @param {Bounds|Point} bounds\n *\n * @return {Point}\n */\nfunction getMid(bounds) {\n return roundPoint({\n x: bounds.x + (bounds.width || 0) / 2,\n y: bounds.y + (bounds.height || 0) / 2\n });\n}\n\n\n// orientation utils //////////////////////\n\n/**\n * Get orientation of the given rectangle with respect to\n * the reference rectangle.\n *\n * A padding (positive or negative) may be passed to influence\n * horizontal / vertical orientation and intersection.\n *\n * @param {Bounds} rect\n * @param {Bounds} reference\n * @param {Point|number} padding\n *\n * @return {string} the orientation; one of top, top-left, left, ..., bottom, right or intersect.\n */\nfunction getOrientation(rect, reference, padding) {\n\n padding = padding || 0;\n\n // make sure we can use an object, too\n // for individual { x, y } padding\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isObject)(padding)) {\n padding = { x: padding, y: padding };\n }\n\n\n var rectOrientation = asTRBL(rect),\n referenceOrientation = asTRBL(reference);\n\n var top = rectOrientation.bottom + padding.y <= referenceOrientation.top,\n right = rectOrientation.left - padding.x >= referenceOrientation.right,\n bottom = rectOrientation.top - padding.y >= referenceOrientation.bottom,\n left = rectOrientation.right + padding.x <= referenceOrientation.left;\n\n var vertical = top ? 'top' : (bottom ? 'bottom' : null),\n horizontal = left ? 'left' : (right ? 'right' : null);\n\n if (horizontal && vertical) {\n return vertical + '-' + horizontal;\n } else {\n return horizontal || vertical || 'intersect';\n }\n}\n\n\n// intersection utils //////////////////////\n\n/**\n * Get intersection between an element and a line path.\n *\n * @param {PathDef} elementPath\n * @param {PathDef} linePath\n * @param {boolean} cropStart crop from start or end\n *\n * @return {Point}\n */\nfunction getElementLineIntersection(elementPath, linePath, cropStart) {\n\n var intersections = getIntersections(elementPath, linePath);\n\n // recognize intersections\n // only one -> choose\n // two close together -> choose first\n // two or more distinct -> pull out appropriate one\n // none -> ok (fallback to point itself)\n if (intersections.length === 1) {\n return roundPoint(intersections[0]);\n } else if (intersections.length === 2 && (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointDistance)(intersections[0], intersections[1]) < 1) {\n return roundPoint(intersections[0]);\n } else if (intersections.length > 1) {\n\n // sort by intersections based on connection segment +\n // distance from start\n intersections = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.sortBy)(intersections, function(i) {\n var distance = Math.floor(i.t2 * 100) || 1;\n\n distance = 100 - distance;\n\n distance = (distance < 10 ? '0' : '') + distance;\n\n // create a sort string that makes sure we sort\n // line segment ASC + line segment position DESC (for cropStart)\n // line segment ASC + line segment position ASC (for cropEnd)\n return i.segment2 + '#' + distance;\n });\n\n return roundPoint(intersections[cropStart ? 0 : intersections.length - 1]);\n }\n\n return null;\n}\n\n\nfunction getIntersections(a, b) {\n return path_intersection__WEBPACK_IMPORTED_MODULE_0___default()(a, b);\n}\n\n\nfunction filterRedundantWaypoints(waypoints) {\n\n // alter copy of waypoints, not original\n waypoints = waypoints.slice();\n\n var idx = 0,\n point,\n previousPoint,\n nextPoint;\n\n while (waypoints[idx]) {\n point = waypoints[idx];\n previousPoint = waypoints[idx - 1];\n nextPoint = waypoints[idx + 1];\n\n if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointDistance)(point, nextPoint) === 0 ||\n (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsOnLine)(previousPoint, nextPoint, point)) {\n\n // remove point, if overlapping with {nextPoint}\n // or on line with {previousPoint} -> {point} -> {nextPoint}\n waypoints.splice(idx, 1);\n } else {\n idx++;\n }\n }\n\n return waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/LayoutUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/layout/ManhattanLayout.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/layout/ManhattanLayout.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"connectPoints\": () => (/* binding */ connectPoints),\n/* harmony export */ \"connectRectangles\": () => (/* binding */ connectRectangles),\n/* harmony export */ \"repairConnection\": () => (/* binding */ repairConnection),\n/* harmony export */ \"tryLayoutStraight\": () => (/* binding */ tryLayoutStraight),\n/* harmony export */ \"withoutRedundantPoints\": () => (/* binding */ withoutRedundantPoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n\n\n\n\n\n\nvar MIN_SEGMENT_LENGTH = 20,\n POINT_ORIENTATION_PADDING = 5;\n\nvar round = Math.round;\n\nvar INTERSECTION_THRESHOLD = 20,\n ORIENTATION_THRESHOLD = {\n 'h:h': 20,\n 'v:v': 20,\n 'h:v': -10,\n 'v:h': -10\n };\n\nfunction needsTurn(orientation, startDirection) {\n return !{\n t: /top/,\n r: /right/,\n b: /bottom/,\n l: /left/,\n h: /./,\n v: /./\n }[startDirection].test(orientation);\n}\n\nfunction canLayoutStraight(direction, targetOrientation) {\n return {\n t: /top/,\n r: /right/,\n b: /bottom/,\n l: /left/,\n h: /left|right/,\n v: /top|bottom/\n }[direction].test(targetOrientation);\n}\n\nfunction getSegmentBendpoints(a, b, directions) {\n var orientation = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(b, a, POINT_ORIENTATION_PADDING);\n\n var startDirection = directions.split(':')[0];\n\n var xmid = round((b.x - a.x) / 2 + a.x),\n ymid = round((b.y - a.y) / 2 + a.y);\n\n var segmentEnd, segmentDirections;\n\n var layoutStraight = canLayoutStraight(startDirection, orientation),\n layoutHorizontal = /h|r|l/.test(startDirection),\n layoutTurn = false;\n\n var turnNextDirections = false;\n\n if (layoutStraight) {\n segmentEnd = layoutHorizontal ? { x: xmid, y: a.y } : { x: a.x, y: ymid };\n\n segmentDirections = layoutHorizontal ? 'h:h' : 'v:v';\n } else {\n layoutTurn = needsTurn(orientation, startDirection);\n\n segmentDirections = layoutHorizontal ? 'h:v' : 'v:h';\n\n if (layoutTurn) {\n\n if (layoutHorizontal) {\n turnNextDirections = ymid === a.y;\n\n segmentEnd = {\n x: a.x + MIN_SEGMENT_LENGTH * (/l/.test(startDirection) ? -1 : 1),\n y: turnNextDirections ? ymid + MIN_SEGMENT_LENGTH : ymid\n };\n } else {\n turnNextDirections = xmid === a.x;\n\n segmentEnd = {\n x: turnNextDirections ? xmid + MIN_SEGMENT_LENGTH : xmid,\n y: a.y + MIN_SEGMENT_LENGTH * (/t/.test(startDirection) ? -1 : 1)\n };\n }\n\n } else {\n segmentEnd = {\n x: xmid,\n y: ymid\n };\n }\n }\n\n return {\n waypoints: getBendpoints(a, segmentEnd, segmentDirections).concat(segmentEnd),\n directions: segmentDirections,\n turnNextDirections: turnNextDirections\n };\n}\n\nfunction getStartSegment(a, b, directions) {\n return getSegmentBendpoints(a, b, directions);\n}\n\nfunction getEndSegment(a, b, directions) {\n var invertedSegment = getSegmentBendpoints(b, a, invertDirections(directions));\n\n return {\n waypoints: invertedSegment.waypoints.slice().reverse(),\n directions: invertDirections(invertedSegment.directions),\n turnNextDirections: invertedSegment.turnNextDirections\n };\n}\n\nfunction getMidSegment(startSegment, endSegment) {\n\n var startDirection = startSegment.directions.split(':')[1],\n endDirection = endSegment.directions.split(':')[0];\n\n if (startSegment.turnNextDirections) {\n startDirection = startDirection == 'h' ? 'v' : 'h';\n }\n\n if (endSegment.turnNextDirections) {\n endDirection = endDirection == 'h' ? 'v' : 'h';\n }\n\n var directions = startDirection + ':' + endDirection;\n\n var bendpoints = getBendpoints(\n startSegment.waypoints[startSegment.waypoints.length - 1],\n endSegment.waypoints[0],\n directions\n );\n\n return {\n waypoints: bendpoints,\n directions: directions\n };\n}\n\nfunction invertDirections(directions) {\n return directions.split(':').reverse().join(':');\n}\n\n/**\n * Handle simple layouts with maximum two bendpoints.\n */\nfunction getSimpleBendpoints(a, b, directions) {\n\n var xmid = round((b.x - a.x) / 2 + a.x),\n ymid = round((b.y - a.y) / 2 + a.y);\n\n // one point, right or left from a\n if (directions === 'h:v') {\n return [ { x: b.x, y: a.y } ];\n }\n\n // one point, above or below a\n if (directions === 'v:h') {\n return [ { x: a.x, y: b.y } ];\n }\n\n // vertical segment between a and b\n if (directions === 'h:h') {\n return [\n { x: xmid, y: a.y },\n { x: xmid, y: b.y }\n ];\n }\n\n // horizontal segment between a and b\n if (directions === 'v:v') {\n return [\n { x: a.x, y: ymid },\n { x: b.x, y: ymid }\n ];\n }\n\n throw new Error('invalid directions: can only handle varians of [hv]:[hv]');\n}\n\n\n/**\n * Returns the mid points for a manhattan connection between two points.\n *\n * @example h:h (horizontal:horizontal)\n *\n * [a]----[x]\n * |\n * [x]----[b]\n *\n * @example h:v (horizontal:vertical)\n *\n * [a]----[x]\n * |\n * [b]\n *\n * @example h:r (horizontal:right)\n *\n * [a]----[x]\n * |\n * [b]-[x]\n *\n * @param {Point} a\n * @param {Point} b\n * @param {string} directions\n *\n * @return {Array}\n */\nfunction getBendpoints(a, b, directions) {\n directions = directions || 'h:h';\n\n if (!isValidDirections(directions)) {\n throw new Error(\n 'unknown directions: <' + directions + '>: ' +\n 'must be specified as : ' +\n 'with start/end in { h,v,t,r,b,l }'\n );\n }\n\n // compute explicit directions, involving trbl dockings\n // using a three segmented layouting algorithm\n if (isExplicitDirections(directions)) {\n var startSegment = getStartSegment(a, b, directions),\n endSegment = getEndSegment(a, b, directions),\n midSegment = getMidSegment(startSegment, endSegment);\n\n return [].concat(\n startSegment.waypoints,\n midSegment.waypoints,\n endSegment.waypoints\n );\n }\n\n // handle simple [hv]:[hv] cases that can be easily computed\n return getSimpleBendpoints(a, b, directions);\n}\n\n/**\n * Create a connection between the two points according\n * to the manhattan layout (only horizontal and vertical) edges.\n *\n * @param {Point} a\n * @param {Point} b\n *\n * @param {string} [directions='h:h'] specifies manhattan directions for each point as {adirection}:{bdirection}.\n A directionfor a point is either `h` (horizontal) or `v` (vertical)\n *\n * @return {Array}\n */\nfunction connectPoints(a, b, directions) {\n\n var points = getBendpoints(a, b, directions);\n\n points.unshift(a);\n points.push(b);\n\n return withoutRedundantPoints(points);\n}\n\n\n/**\n * Connect two rectangles using a manhattan layouted connection.\n *\n * @param {Bounds} source source rectangle\n * @param {Bounds} target target rectangle\n * @param {Point} [start] source docking\n * @param {Point} [end] target docking\n *\n * @param {Object} [hints]\n * @param {string} [hints.preserveDocking=source] preserve docking on selected side\n * @param {Array} [hints.preferredLayouts]\n * @param {Point|boolean} [hints.connectionStart] whether the start changed\n * @param {Point|boolean} [hints.connectionEnd] whether the end changed\n *\n * @return {Array} connection points\n */\nfunction connectRectangles(source, target, start, end, hints) {\n\n var preferredLayouts = hints && hints.preferredLayouts || [];\n\n var preferredLayout = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.without)(preferredLayouts, 'straight')[0] || 'h:h';\n\n var threshold = ORIENTATION_THRESHOLD[preferredLayout] || 0;\n\n var orientation = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(source, target, threshold);\n\n var directions = getDirections(orientation, preferredLayout);\n\n start = start || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(source);\n end = end || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(target);\n\n var directionSplit = directions.split(':');\n\n // compute actual docking points for start / end\n // this ensures we properly layout only parts of the\n // connection that lies in between the two rectangles\n var startDocking = getDockingPoint(start, source, directionSplit[0], invertOrientation(orientation)),\n endDocking = getDockingPoint(end, target, directionSplit[1], orientation);\n\n return connectPoints(startDocking, endDocking, directions);\n}\n\n\n/**\n * Repair the connection between two rectangles, of which one has been updated.\n *\n * @param {Bounds} source\n * @param {Bounds} target\n * @param {Point} [start]\n * @param {Point} [end]\n * @param {Array} [waypoints]\n * @param {Object} [hints]\n * @param {Array} [hints.preferredLayouts] list of preferred layouts\n * @param {boolean} [hints.connectionStart]\n * @param {boolean} [hints.connectionEnd]\n *\n * @return {Array} repaired waypoints\n */\nfunction repairConnection(source, target, start, end, waypoints, hints) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(start)) {\n waypoints = start;\n hints = end;\n\n start = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(source);\n end = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(target);\n }\n\n hints = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ preferredLayouts: [] }, hints);\n waypoints = waypoints || [];\n\n var preferredLayouts = hints.preferredLayouts,\n preferStraight = preferredLayouts.indexOf('straight') !== -1,\n repairedWaypoints;\n\n // just layout non-existing or simple connections\n // attempt to render straight lines, if required\n\n // attempt to layout a straight line\n repairedWaypoints = preferStraight && tryLayoutStraight(source, target, start, end, hints);\n\n if (repairedWaypoints) {\n return repairedWaypoints;\n }\n\n // try to layout from end\n repairedWaypoints = hints.connectionEnd && tryRepairConnectionEnd(target, source, end, waypoints);\n\n if (repairedWaypoints) {\n return repairedWaypoints;\n }\n\n // try to layout from start\n repairedWaypoints = hints.connectionStart && tryRepairConnectionStart(source, target, start, waypoints);\n\n if (repairedWaypoints) {\n return repairedWaypoints;\n }\n\n // or whether nothing seems to have changed\n if (!hints.connectionStart && !hints.connectionEnd && waypoints && waypoints.length) {\n return waypoints;\n }\n\n // simply reconnect if nothing else worked\n return connectRectangles(source, target, start, end, hints);\n}\n\n\nfunction inRange(a, start, end) {\n return a >= start && a <= end;\n}\n\nfunction isInRange(axis, a, b) {\n var size = {\n x: 'width',\n y: 'height'\n };\n\n return inRange(a[axis], b[axis], b[axis] + b[size[axis]]);\n}\n\n/**\n * Layout a straight connection\n *\n * @param {Bounds} source\n * @param {Bounds} target\n * @param {Point} start\n * @param {Point} end\n * @param {Object} [hints]\n *\n * @return {Array|null} waypoints if straight layout worked\n */\nfunction tryLayoutStraight(source, target, start, end, hints) {\n var axis = {},\n primaryAxis,\n orientation;\n\n orientation = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(source, target);\n\n // only layout a straight connection if shapes are\n // horizontally or vertically aligned\n if (!/^(top|bottom|left|right)$/.test(orientation)) {\n return null;\n }\n\n if (/top|bottom/.test(orientation)) {\n primaryAxis = 'x';\n }\n\n if (/left|right/.test(orientation)) {\n primaryAxis = 'y';\n }\n\n if (hints.preserveDocking === 'target') {\n\n if (!isInRange(primaryAxis, end, source)) {\n return null;\n }\n\n axis[primaryAxis] = end[primaryAxis];\n\n return [\n {\n x: axis.x !== undefined ? axis.x : start.x,\n y: axis.y !== undefined ? axis.y : start.y,\n original: {\n x: axis.x !== undefined ? axis.x : start.x,\n y: axis.y !== undefined ? axis.y : start.y\n }\n },\n {\n x: end.x,\n y: end.y\n }\n ];\n\n } else {\n\n if (!isInRange(primaryAxis, start, target)) {\n return null;\n }\n\n axis[primaryAxis] = start[primaryAxis];\n\n return [\n {\n x: start.x,\n y: start.y\n },\n {\n x: axis.x !== undefined ? axis.x : end.x,\n y: axis.y !== undefined ? axis.y : end.y,\n original: {\n x: axis.x !== undefined ? axis.x : end.x,\n y: axis.y !== undefined ? axis.y : end.y\n }\n }\n ];\n }\n\n}\n\n/**\n * Repair a connection from start.\n *\n * @param {Bounds} moved\n * @param {Bounds} other\n * @param {Point} newDocking\n * @param {Array} points originalPoints from moved to other\n *\n * @return {Array|null} the repaired points between the two rectangles\n */\nfunction tryRepairConnectionStart(moved, other, newDocking, points) {\n return _tryRepairConnectionSide(moved, other, newDocking, points);\n}\n\n/**\n * Repair a connection from end.\n *\n * @param {Bounds} moved\n * @param {Bounds} other\n * @param {Point} newDocking\n * @param {Array} points originalPoints from moved to other\n *\n * @return {Array|null} the repaired points between the two rectangles\n */\nfunction tryRepairConnectionEnd(moved, other, newDocking, points) {\n var waypoints = points.slice().reverse();\n\n waypoints = _tryRepairConnectionSide(moved, other, newDocking, waypoints);\n\n return waypoints ? waypoints.reverse() : null;\n}\n\n/**\n * Repair a connection from one side that moved.\n *\n * @param {Bounds} moved\n * @param {Bounds} other\n * @param {Point} newDocking\n * @param {Array} points originalPoints from moved to other\n *\n * @return {Array} the repaired points between the two rectangles\n */\nfunction _tryRepairConnectionSide(moved, other, newDocking, points) {\n\n function needsRelayout(points) {\n if (points.length < 3) {\n return true;\n }\n\n if (points.length > 4) {\n return false;\n }\n\n // relayout if two points overlap\n // this is most likely due to\n return !!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(points, function(p, idx) {\n var q = points[idx - 1];\n\n return q && (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointDistance)(p, q) < 3;\n });\n }\n\n function repairBendpoint(candidate, oldPeer, newPeer) {\n\n var alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(oldPeer, candidate);\n\n switch (alignment) {\n case 'v':\n\n // repair horizontal alignment\n return { x: newPeer.x, y: candidate.y };\n case 'h':\n\n // repair vertical alignment\n return { x: candidate.x, y: newPeer.y };\n }\n\n return { x: candidate.x, y: candidate. y };\n }\n\n function removeOverlapping(points, a, b) {\n var i;\n\n for (i = points.length - 2; i !== 0; i--) {\n\n // intersects (?) break, remove all bendpoints up to this one and relayout\n if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointInRect)(points[i], a, INTERSECTION_THRESHOLD) ||\n (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointInRect)(points[i], b, INTERSECTION_THRESHOLD)) {\n\n // return sliced old connection\n return points.slice(i);\n }\n }\n\n return points;\n }\n\n // (0) only repair what has layoutable bendpoints\n\n // (1) if only one bendpoint and on shape moved onto other shapes axis\n // (horizontally / vertically), relayout\n\n if (needsRelayout(points)) {\n return null;\n }\n\n var oldDocking = points[0],\n newPoints = points.slice(),\n slicedPoints;\n\n // (2) repair only last line segment and only if it was layouted before\n\n newPoints[0] = newDocking;\n newPoints[1] = repairBendpoint(newPoints[1], oldDocking, newDocking);\n\n\n // (3) if shape intersects with any bendpoint after repair,\n // remove all segments up to this bendpoint and repair from there\n slicedPoints = removeOverlapping(newPoints, moved, other);\n\n if (slicedPoints !== newPoints) {\n newPoints = _tryRepairConnectionSide(moved, other, newDocking, slicedPoints);\n }\n\n // (4) do NOT repair if repaired bendpoints are aligned\n if (newPoints && (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(newPoints)) {\n return null;\n }\n\n return newPoints;\n}\n\n\n/**\n * Returns the manhattan directions connecting two rectangles\n * with the given orientation.\n *\n * Will always return the default layout, if it is specific\n * regarding sides already (trbl).\n *\n * @example\n *\n * getDirections('top'); // -> 'v:v'\n * getDirections('intersect'); // -> 't:t'\n *\n * getDirections('top-right', 'v:h'); // -> 'v:h'\n * getDirections('top-right', 'h:h'); // -> 'h:h'\n *\n *\n * @param {string} orientation\n * @param {string} defaultLayout\n *\n * @return {string}\n */\nfunction getDirections(orientation, defaultLayout) {\n\n // don't override specific trbl directions\n if (isExplicitDirections(defaultLayout)) {\n return defaultLayout;\n }\n\n switch (orientation) {\n case 'intersect':\n return 't:t';\n\n case 'top':\n case 'bottom':\n return 'v:v';\n\n case 'left':\n case 'right':\n return 'h:h';\n\n // 'top-left'\n // 'top-right'\n // 'bottom-left'\n // 'bottom-right'\n default:\n return defaultLayout;\n }\n}\n\nfunction isValidDirections(directions) {\n return directions && /^h|v|t|r|b|l:h|v|t|r|b|l$/.test(directions);\n}\n\nfunction isExplicitDirections(directions) {\n return directions && /t|r|b|l/.test(directions);\n}\n\nfunction invertOrientation(orientation) {\n return {\n 'top': 'bottom',\n 'bottom': 'top',\n 'left': 'right',\n 'right': 'left',\n 'top-left': 'bottom-right',\n 'bottom-right': 'top-left',\n 'top-right': 'bottom-left',\n 'bottom-left': 'top-right',\n }[orientation];\n}\n\nfunction getDockingPoint(point, rectangle, dockingDirection, targetOrientation) {\n\n // ensure we end up with a specific docking direction\n // based on the targetOrientation, if is being passed\n\n if (dockingDirection === 'h') {\n dockingDirection = /left/.test(targetOrientation) ? 'l' : 'r';\n }\n\n if (dockingDirection === 'v') {\n dockingDirection = /top/.test(targetOrientation) ? 't' : 'b';\n }\n\n if (dockingDirection === 't') {\n return { original: point, x: point.x, y: rectangle.y };\n }\n\n if (dockingDirection === 'r') {\n return { original: point, x: rectangle.x + rectangle.width, y: point.y };\n }\n\n if (dockingDirection === 'b') {\n return { original: point, x: point.x, y: rectangle.y + rectangle.height };\n }\n\n if (dockingDirection === 'l') {\n return { original: point, x: rectangle.x, y: point.y };\n }\n\n throw new Error('unexpected dockingDirection: <' + dockingDirection + '>');\n}\n\n\n/**\n * Return list of waypoints with redundant ones filtered out.\n *\n * @example\n *\n * Original points:\n *\n * [x] ----- [x] ------ [x]\n * |\n * [x] ----- [x] - [x]\n *\n * Filtered:\n *\n * [x] ---------------- [x]\n * |\n * [x] ----------- [x]\n *\n * @param {Array} waypoints\n *\n * @return {Array}\n */\nfunction withoutRedundantPoints(waypoints) {\n return waypoints.reduce(function(points, p, idx) {\n\n var previous = points[points.length - 1],\n next = waypoints[idx + 1];\n\n if (!(0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsOnLine)(previous, next, p, 0)) {\n points.push(p);\n }\n\n return points;\n }, []);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/ManhattanLayout.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/model/index.js": /*!****************************************************!*\ !*** ./node_modules/diagram-js/lib/model/index.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base\": () => (/* binding */ Base),\n/* harmony export */ \"Shape\": () => (/* binding */ Shape),\n/* harmony export */ \"Root\": () => (/* binding */ Root),\n/* harmony export */ \"Label\": () => (/* binding */ Label),\n/* harmony export */ \"Connection\": () => (/* binding */ Connection),\n/* harmony export */ \"create\": () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! object-refs */ \"./node_modules/object-refs/index.js\");\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(object_refs__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n\n\nvar parentRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'children', enumerable: true, collection: true }, { name: 'parent' }),\n labelRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'labels', enumerable: true, collection: true }, { name: 'labelTarget' }),\n attacherRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'attachers', collection: true }, { name: 'host' }),\n outgoingRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'outgoing', collection: true }, { name: 'source' }),\n incomingRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'incoming', collection: true }, { name: 'target' });\n\n/**\n * @namespace djs.model\n */\n\n/**\n * @memberOf djs.model\n */\n\n/**\n * The basic graphical representation\n *\n * @class\n *\n * @abstract\n */\nfunction Base() {\n\n /**\n * The object that backs up the shape\n *\n * @name Base#businessObject\n * @type Object\n */\n Object.defineProperty(this, 'businessObject', {\n writable: true\n });\n\n\n /**\n * Single label support, will mapped to multi label array\n *\n * @name Base#label\n * @type Object\n */\n Object.defineProperty(this, 'label', {\n get: function() {\n return this.labels[0];\n },\n set: function(newLabel) {\n\n var label = this.label,\n labels = this.labels;\n\n if (!newLabel && label) {\n labels.remove(label);\n } else {\n labels.add(newLabel, 0);\n }\n }\n });\n\n /**\n * The parent shape\n *\n * @name Base#parent\n * @type Shape\n */\n parentRefs.bind(this, 'parent');\n\n /**\n * The list of labels\n *\n * @name Base#labels\n * @type Label\n */\n labelRefs.bind(this, 'labels');\n\n /**\n * The list of outgoing connections\n *\n * @name Base#outgoing\n * @type Array\n */\n outgoingRefs.bind(this, 'outgoing');\n\n /**\n * The list of incoming connections\n *\n * @name Base#incoming\n * @type Array\n */\n incomingRefs.bind(this, 'incoming');\n}\n\n\n/**\n * A graphical object\n *\n * @class\n * @constructor\n *\n * @extends Base\n */\nfunction Shape() {\n Base.call(this);\n\n /**\n * Indicates frame shapes\n *\n * @name Shape#isFrame\n * @type boolean\n */\n\n /**\n * The list of children\n *\n * @name Shape#children\n * @type Array\n */\n parentRefs.bind(this, 'children');\n\n /**\n * @name Shape#host\n * @type Shape\n */\n attacherRefs.bind(this, 'host');\n\n /**\n * @name Shape#attachers\n * @type Shape\n */\n attacherRefs.bind(this, 'attachers');\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Shape, Base);\n\n\n/**\n * A root graphical object\n *\n * @class\n * @constructor\n *\n * @extends Shape\n */\nfunction Root() {\n Shape.call(this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Root, Shape);\n\n\n/**\n * A label for an element\n *\n * @class\n * @constructor\n *\n * @extends Shape\n */\nfunction Label() {\n Shape.call(this);\n\n /**\n * The labeled element\n *\n * @name Label#labelTarget\n * @type Base\n */\n labelRefs.bind(this, 'labelTarget');\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Label, Shape);\n\n\n/**\n * A connection between two elements\n *\n * @class\n * @constructor\n *\n * @extends Base\n */\nfunction Connection() {\n Base.call(this);\n\n /**\n * The element this connection originates from\n *\n * @name Connection#source\n * @type Base\n */\n outgoingRefs.bind(this, 'source');\n\n /**\n * The element this connection points to\n *\n * @name Connection#target\n * @type Base\n */\n incomingRefs.bind(this, 'target');\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Connection, Base);\n\n\nvar types = {\n connection: Connection,\n shape: Shape,\n label: Label,\n root: Root\n};\n\n/**\n * Creates a new model element of the specified type\n *\n * @method create\n *\n * @example\n *\n * var shape1 = Model.create('shape', { x: 10, y: 10, width: 100, height: 100 });\n * var shape2 = Model.create('shape', { x: 210, y: 210, width: 100, height: 100 });\n *\n * var connection = Model.create('connection', { waypoints: [ { x: 110, y: 55 }, {x: 210, y: 55 } ] });\n *\n * @param {string} type lower-cased model name\n * @param {Object} attrs attributes to initialize the new model instance with\n *\n * @return {Base} the new model instance\n */\nfunction create(type, attrs) {\n var Type = types[type];\n if (!Type) {\n throw new Error('unknown type: <' + type + '>');\n }\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(new Type(), attrs);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/model/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js": /*!******************************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ KeyboardMove)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nvar DEFAULT_CONFIG = {\n moveSpeed: 50,\n moveSpeedAccelerated: 200\n};\n\n\n/**\n * A feature that allows users to move the canvas using the keyboard.\n *\n * @param {Object} config\n * @param {number} [config.moveSpeed=50]\n * @param {number} [config.moveSpeedAccelerated=200]\n * @param {Keyboard} keyboard\n * @param {Canvas} canvas\n */\nfunction KeyboardMove(\n config,\n keyboard,\n canvas\n) {\n\n var self = this;\n\n this._config = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, DEFAULT_CONFIG, config || {});\n\n keyboard.addListener(arrowsListener);\n\n\n function arrowsListener(context) {\n\n var event = context.keyEvent,\n config = self._config;\n\n if (!keyboard.isCmd(event)) {\n return;\n }\n\n if (keyboard.isKey([\n 'ArrowLeft', 'Left',\n 'ArrowUp', 'Up',\n 'ArrowDown', 'Down',\n 'ArrowRight', 'Right'\n ], event)) {\n\n var speed = (\n keyboard.isShift(event) ?\n config.moveSpeedAccelerated :\n config.moveSpeed\n );\n\n var direction;\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'Left':\n direction = 'left';\n break;\n case 'ArrowUp':\n case 'Up':\n direction = 'up';\n break;\n case 'ArrowRight':\n case 'Right':\n direction = 'right';\n break;\n case 'ArrowDown':\n case 'Down':\n direction = 'down';\n break;\n }\n\n self.moveCanvas({\n speed: speed,\n direction: direction\n });\n\n return true;\n }\n }\n\n this.moveCanvas = function(opts) {\n\n var dx = 0,\n dy = 0,\n speed = opts.speed;\n\n var actualSpeed = speed / Math.min(Math.sqrt(canvas.viewbox().scale), 1);\n\n switch (opts.direction) {\n case 'left': // Left\n dx = actualSpeed;\n break;\n case 'up': // Up\n dy = actualSpeed;\n break;\n case 'right': // Right\n dx = -actualSpeed;\n break;\n case 'down': // Down\n dy = -actualSpeed;\n break;\n }\n\n canvas.scroll({\n dx: dx,\n dy: dy\n });\n };\n\n}\n\n\nKeyboardMove.$inject = [\n 'config.keyboardMove',\n 'keyboard',\n 'canvas'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/keyboard-move/index.js": /*!***********************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/keyboard-move/index.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _features_keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../features/keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/index.js\");\n/* harmony import */ var _KeyboardMove__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KeyboardMove */ \"./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _features_keyboard__WEBPACK_IMPORTED_MODULE_0__.default\n ],\n __init__: [ 'keyboardMove' ],\n keyboardMove: [ 'type', _KeyboardMove__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/keyboard-move/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js": /*!*************************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MoveCanvas)\n/* harmony export */ });\n/* harmony import */ var _util_Cursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Cursor */ \"./node_modules/diagram-js/lib/util/Cursor.js\");\n/* harmony import */ var _util_ClickTrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ClickTrap */ \"./node_modules/diagram-js/lib/util/ClickTrap.js\");\n/* harmony import */ var _util_PositionUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar THRESHOLD = 15;\n\n\n/**\n * Move the canvas via mouse.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction MoveCanvas(eventBus, canvas) {\n\n var context;\n\n\n // listen for move on element mouse down;\n // allow others to hook into the event before us though\n // (dragging / element moving will do this)\n eventBus.on('element.mousedown', 500, function(e) {\n return handleStart(e.originalEvent);\n });\n\n\n function handleMove(event) {\n\n var start = context.start,\n button = context.button,\n position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event),\n delta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_1__.delta)(position, start);\n\n if (!context.dragging && length(delta) > THRESHOLD) {\n context.dragging = true;\n\n if (button === 0) {\n (0,_util_ClickTrap__WEBPACK_IMPORTED_MODULE_2__.install)(eventBus);\n }\n\n (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.set)('grab');\n }\n\n if (context.dragging) {\n\n var lastPosition = context.last || context.start;\n\n delta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_1__.delta)(position, lastPosition);\n\n canvas.scroll({\n dx: delta.x,\n dy: delta.y\n });\n\n context.last = position;\n }\n\n // prevent select\n event.preventDefault();\n }\n\n\n function handleEnd(event) {\n min_dom__WEBPACK_IMPORTED_MODULE_4__.event.unbind(document, 'mousemove', handleMove);\n min_dom__WEBPACK_IMPORTED_MODULE_4__.event.unbind(document, 'mouseup', handleEnd);\n\n context = null;\n\n (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.unset)();\n }\n\n function handleStart(event) {\n\n // event is already handled by '.djs-draggable'\n if ((0,min_dom__WEBPACK_IMPORTED_MODULE_4__.closest)(event.target, '.djs-draggable')) {\n return;\n }\n\n var button = event.button;\n\n // reject right mouse button or modifier key\n if (button >= 2 || event.ctrlKey || event.shiftKey || event.altKey) {\n return;\n }\n\n context = {\n button: button,\n start: (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event)\n };\n\n min_dom__WEBPACK_IMPORTED_MODULE_4__.event.bind(document, 'mousemove', handleMove);\n min_dom__WEBPACK_IMPORTED_MODULE_4__.event.bind(document, 'mouseup', handleEnd);\n\n // we've handled the event\n return true;\n }\n\n this.isActive = function() {\n return !!context;\n };\n\n}\n\n\nMoveCanvas.$inject = [\n 'eventBus',\n 'canvas'\n];\n\n\n\n// helpers ///////\n\nfunction length(point) {\n return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/movecanvas/index.js": /*!********************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/movecanvas/index.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MoveCanvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MoveCanvas */ \"./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'moveCanvas' ],\n moveCanvas: [ 'type', _MoveCanvas__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/movecanvas/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/touch/index.js": /*!***************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/touch/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _features_touch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../features/touch */ \"./node_modules/diagram-js/lib/features/touch/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __depends__: [\n _features_touch__WEBPACK_IMPORTED_MODULE_0__.default\n ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/touch/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js": /*!*************************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ZoomScroll)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _ZoomUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ZoomUtil */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js\");\n/* harmony import */ var _util_Math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Math */ \"./node_modules/diagram-js/lib/util/Math.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar sign = Math.sign || function(n) {\n return n >= 0 ? 1 : -1;\n};\n\nvar RANGE = { min: 0.2, max: 4 },\n NUM_STEPS = 10;\n\nvar DELTA_THRESHOLD = 0.1;\n\nvar DEFAULT_SCALE = 0.75;\n\n/**\n * An implementation of zooming and scrolling within the\n * {@link Canvas} via the mouse wheel.\n *\n * Mouse wheel zooming / scrolling may be disabled using\n * the {@link toggle(enabled)} method.\n *\n * @param {Object} [config]\n * @param {boolean} [config.enabled=true] default enabled state\n * @param {number} [config.scale=.75] scroll sensivity\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction ZoomScroll(config, eventBus, canvas) {\n\n config = config || {};\n\n this._enabled = false;\n\n this._canvas = canvas;\n this._container = canvas._container;\n\n this._handleWheel = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this._handleWheel, this);\n\n this._totalDelta = 0;\n this._scale = config.scale || DEFAULT_SCALE;\n\n var self = this;\n\n eventBus.on('canvas.init', function(e) {\n self._init(config.enabled !== false);\n });\n}\n\nZoomScroll.$inject = [\n 'config.zoomScroll',\n 'eventBus',\n 'canvas'\n];\n\nZoomScroll.prototype.scroll = function scroll(delta) {\n this._canvas.scroll(delta);\n};\n\n\nZoomScroll.prototype.reset = function reset() {\n this._canvas.zoom('fit-viewport');\n};\n\n/**\n * Zoom depending on delta.\n *\n * @param {number} delta\n * @param {Object} position\n */\nZoomScroll.prototype.zoom = function zoom(delta, position) {\n\n // zoom with half the step size of stepZoom\n var stepSize = (0,_ZoomUtil__WEBPACK_IMPORTED_MODULE_1__.getStepSize)(RANGE, NUM_STEPS * 2);\n\n // add until threshold reached\n this._totalDelta += delta;\n\n if (Math.abs(this._totalDelta) > DELTA_THRESHOLD) {\n this._zoom(delta, position, stepSize);\n\n // reset\n this._totalDelta = 0;\n }\n};\n\n\nZoomScroll.prototype._handleWheel = function handleWheel(event) {\n\n // event is already handled by '.djs-scrollable'\n if ((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.closest)(event.target, '.djs-scrollable', true)) {\n return;\n }\n\n var element = this._container;\n\n event.preventDefault();\n\n // pinch to zoom is mapped to wheel + ctrlKey = true\n // in modern browsers (!)\n\n var isZoom = event.ctrlKey;\n\n var isHorizontalScroll = event.shiftKey;\n\n var factor = -1 * this._scale,\n delta;\n\n if (isZoom) {\n factor *= event.deltaMode === 0 ? 0.020 : 0.32;\n } else {\n factor *= event.deltaMode === 0 ? 1.0 : 16.0;\n }\n\n if (isZoom) {\n var elementRect = element.getBoundingClientRect();\n\n var offset = {\n x: event.clientX - elementRect.left,\n y: event.clientY - elementRect.top\n };\n\n delta = (\n Math.sqrt(\n Math.pow(event.deltaY, 2) +\n Math.pow(event.deltaX, 2)\n ) * sign(event.deltaY) * factor\n );\n\n // zoom in relative to diagram {x,y} coordinates\n this.zoom(delta, offset);\n } else {\n\n if (isHorizontalScroll) {\n delta = {\n dx: factor * event.deltaY,\n dy: 0\n };\n } else {\n delta = {\n dx: factor * event.deltaX,\n dy: factor * event.deltaY\n };\n }\n\n this.scroll(delta);\n }\n};\n\n/**\n * Zoom with fixed step size.\n *\n * @param {number} delta - Zoom delta (1 for zooming in, -1 for out).\n * @param {Object} position\n */\nZoomScroll.prototype.stepZoom = function stepZoom(delta, position) {\n\n var stepSize = (0,_ZoomUtil__WEBPACK_IMPORTED_MODULE_1__.getStepSize)(RANGE, NUM_STEPS);\n\n this._zoom(delta, position, stepSize);\n};\n\n\n/**\n * Zoom in/out given a step size.\n *\n * @param {number} delta\n * @param {Object} position\n * @param {number} stepSize\n */\nZoomScroll.prototype._zoom = function(delta, position, stepSize) {\n var canvas = this._canvas;\n\n var direction = delta > 0 ? 1 : -1;\n\n var currentLinearZoomLevel = (0,_util_Math__WEBPACK_IMPORTED_MODULE_3__.log10)(canvas.zoom());\n\n // snap to a proximate zoom step\n var newLinearZoomLevel = Math.round(currentLinearZoomLevel / stepSize) * stepSize;\n\n // increase or decrease one zoom step in the given direction\n newLinearZoomLevel += stepSize * direction;\n\n // calculate the absolute logarithmic zoom level based on the linear zoom level\n // (e.g. 2 for an absolute x2 zoom)\n var newLogZoomLevel = Math.pow(10, newLinearZoomLevel);\n\n canvas.zoom((0,_ZoomUtil__WEBPACK_IMPORTED_MODULE_1__.cap)(RANGE, newLogZoomLevel), position);\n};\n\n\n/**\n * Toggle the zoom scroll ability via mouse wheel.\n *\n * @param {boolean} [newEnabled] new enabled state\n */\nZoomScroll.prototype.toggle = function toggle(newEnabled) {\n\n var element = this._container;\n var handleWheel = this._handleWheel;\n\n var oldEnabled = this._enabled;\n\n if (typeof newEnabled === 'undefined') {\n newEnabled = !oldEnabled;\n }\n\n // only react on actual changes\n if (oldEnabled !== newEnabled) {\n\n // add or remove wheel listener based on\n // changed enabled state\n min_dom__WEBPACK_IMPORTED_MODULE_2__.event[newEnabled ? 'bind' : 'unbind'](element, 'wheel', handleWheel, false);\n }\n\n this._enabled = newEnabled;\n\n return newEnabled;\n};\n\n\nZoomScroll.prototype._init = function(newEnabled) {\n this.toggle(newEnabled);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js": /*!***********************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getStepSize\": () => (/* binding */ getStepSize),\n/* harmony export */ \"cap\": () => (/* binding */ cap)\n/* harmony export */ });\n/* harmony import */ var _util_Math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Math */ \"./node_modules/diagram-js/lib/util/Math.js\");\n\n\n/**\n * Get step size for given range and number of steps.\n *\n * @param {Object} range\n * @param {number} range.min\n * @param {number} range.max\n */\nfunction getStepSize(range, steps) {\n\n var minLinearRange = (0,_util_Math__WEBPACK_IMPORTED_MODULE_0__.log10)(range.min),\n maxLinearRange = (0,_util_Math__WEBPACK_IMPORTED_MODULE_0__.log10)(range.max);\n\n var absoluteLinearRange = Math.abs(minLinearRange) + Math.abs(maxLinearRange);\n\n return absoluteLinearRange / steps;\n}\n\nfunction cap(range, scale) {\n return Math.max(range.min, Math.min(range.max, scale));\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/navigation/zoomscroll/index.js": /*!********************************************************************!*\ !*** ./node_modules/diagram-js/lib/navigation/zoomscroll/index.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ZoomScroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ZoomScroll */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __init__: [ 'zoomScroll' ],\n zoomScroll: [ 'type', _ZoomScroll__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/zoomscroll/index.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/AttachUtil.js": /*!********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/AttachUtil.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getNewAttachPoint\": () => (/* binding */ getNewAttachPoint),\n/* harmony export */ \"getNewAttachShapeDelta\": () => (/* binding */ getNewAttachShapeDelta)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _PositionUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n\n\n\n\n\n/**\n * Calculates the absolute point relative to the new element's position\n *\n * @param {point} point [absolute]\n * @param {bounds} oldBounds\n * @param {bounds} newBounds\n *\n * @return {point} point [absolute]\n */\nfunction getNewAttachPoint(point, oldBounds, newBounds) {\n var oldCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(oldBounds),\n newCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(newBounds),\n oldDelta = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)(point, oldCenter);\n\n var newDelta = {\n x: oldDelta.x * (newBounds.width / oldBounds.width),\n y: oldDelta.y * (newBounds.height / oldBounds.height)\n };\n\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.roundPoint)({\n x: newCenter.x + newDelta.x,\n y: newCenter.y + newDelta.y\n });\n}\n\n\n/**\n * Calculates the shape's delta relative to a new position\n * of a certain element's bounds\n *\n * @param {djs.model.Shape} point [absolute]\n * @param {bounds} oldBounds\n * @param {bounds} newBounds\n *\n * @return {delta} delta\n */\nfunction getNewAttachShapeDelta(shape, oldBounds, newBounds) {\n var shapeCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(shape),\n oldCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(oldBounds),\n newCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(newBounds),\n shapeDelta = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)(shape, shapeCenter),\n oldCenterDelta = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)(shapeCenter, oldCenter),\n stickyPositionDelta = getStickyPositionDelta(shapeCenter, oldBounds, newBounds);\n\n if (stickyPositionDelta) {\n return stickyPositionDelta;\n }\n\n var newCenterDelta = {\n x: oldCenterDelta.x * (newBounds.width / oldBounds.width),\n y: oldCenterDelta.y * (newBounds.height / oldBounds.height)\n };\n\n var newShapeCenter = {\n x: newCenter.x + newCenterDelta.x,\n y: newCenter.y + newCenterDelta.y\n };\n\n return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.roundPoint)({\n x: newShapeCenter.x + shapeDelta.x - shape.x,\n y: newShapeCenter.y + shapeDelta.y - shape.y\n });\n}\n\nfunction getStickyPositionDelta(oldShapeCenter, oldBounds, newBounds) {\n var oldTRBL = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(oldBounds),\n newTRBL = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds);\n\n if (isMoved(oldTRBL, newTRBL)) {\n return null;\n }\n\n var oldOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getOrientation)(oldBounds, oldShapeCenter),\n stickyPositionDelta,\n newShapeCenter,\n newOrientation;\n\n if (oldOrientation === 'top') {\n stickyPositionDelta = {\n x: 0,\n y: newTRBL.bottom - oldTRBL.bottom\n };\n } else if (oldOrientation === 'bottom') {\n stickyPositionDelta = {\n x: 0,\n y: newTRBL.top - oldTRBL.top\n };\n } else if (oldOrientation === 'right') {\n stickyPositionDelta = {\n x: newTRBL.left - oldTRBL.left,\n y: 0\n };\n } else if (oldOrientation === 'left') {\n stickyPositionDelta = {\n x: newTRBL.right - oldTRBL.right,\n y: 0\n };\n } else {\n\n // fallback to proportional movement for corner-placed attachments\n return null;\n }\n\n newShapeCenter = {\n x: oldShapeCenter.x + stickyPositionDelta.x,\n y: oldShapeCenter.y + stickyPositionDelta.y\n };\n\n newOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getOrientation)(newBounds, newShapeCenter);\n\n if (newOrientation !== oldOrientation) {\n\n // fallback to proportional movement if orientation would otherwise change\n return null;\n }\n\n return stickyPositionDelta;\n}\n\nfunction isMoved(oldTRBL, newTRBL) {\n return isHorizontallyMoved(oldTRBL, newTRBL) || isVerticallyMoved(oldTRBL, newTRBL);\n}\n\nfunction isHorizontallyMoved(oldTRBL, newTRBL) {\n return oldTRBL.right !== newTRBL.right && oldTRBL.left !== newTRBL.left;\n}\n\nfunction isVerticallyMoved(oldTRBL, newTRBL) {\n return oldTRBL.top !== newTRBL.top && oldTRBL.bottom !== newTRBL.bottom;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/AttachUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/ClickTrap.js": /*!*******************************************************!*\ !*** ./node_modules/diagram-js/lib/util/ClickTrap.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"install\": () => (/* binding */ install)\n/* harmony export */ });\nvar TRAP_PRIORITY = 5000;\n\n/**\n * Installs a click trap that prevents a ghost click following a dragging operation.\n *\n * @return {Function} a function to immediately remove the installed trap.\n */\nfunction install(eventBus, eventName) {\n\n eventName = eventName || 'element.click';\n\n function trap() {\n return false;\n }\n\n eventBus.once(eventName, TRAP_PRIORITY, trap);\n\n return function() {\n eventBus.off(eventName, trap);\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/ClickTrap.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Collections.js": /*!*********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Collections.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"remove\": () => (/* binding */ remove),\n/* harmony export */ \"add\": () => (/* binding */ add),\n/* harmony export */ \"indexOf\": () => (/* binding */ indexOf)\n/* harmony export */ });\n/**\n * Failsafe remove an element from a collection\n *\n * @param {Array} [collection]\n * @param {Object} [element]\n *\n * @return {number} the previous index of the element\n */\nfunction remove(collection, element) {\n\n if (!collection || !element) {\n return -1;\n }\n\n var idx = collection.indexOf(element);\n\n if (idx !== -1) {\n collection.splice(idx, 1);\n }\n\n return idx;\n}\n\n/**\n * Fail save add an element to the given connection, ensuring\n * it does not yet exist.\n *\n * @param {Array} collection\n * @param {Object} element\n * @param {number} idx\n */\nfunction add(collection, element, idx) {\n\n if (!collection || !element) {\n return;\n }\n\n if (typeof idx !== 'number') {\n idx = -1;\n }\n\n var currentIdx = collection.indexOf(element);\n\n if (currentIdx !== -1) {\n\n if (currentIdx === idx) {\n\n // nothing to do, position has not changed\n return;\n } else {\n\n if (idx !== -1) {\n\n // remove from current position\n collection.splice(currentIdx, 1);\n } else {\n\n // already exists in collection\n return;\n }\n }\n }\n\n if (idx !== -1) {\n\n // insert at specified position\n collection.splice(idx, 0, element);\n } else {\n\n // push to end\n collection.push(element);\n }\n}\n\n\n/**\n * Fail save get the index of an element in a collection.\n *\n * @param {Array} collection\n * @param {Object} element\n *\n * @return {number} the index or -1 if collection or element do\n * not exist or the element is not contained.\n */\nfunction indexOf(collection, element) {\n\n if (!collection || !element) {\n return -1;\n }\n\n return collection.indexOf(element);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Collections.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Cursor.js": /*!****************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Cursor.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"set\": () => (/* binding */ set),\n/* harmony export */ \"unset\": () => (/* binding */ unset),\n/* harmony export */ \"has\": () => (/* binding */ has)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\nvar CURSOR_CLS_PATTERN = /^djs-cursor-.*$/;\n\n\nfunction set(mode) {\n var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(document.body);\n\n classes.removeMatching(CURSOR_CLS_PATTERN);\n\n if (mode) {\n classes.add('djs-cursor-' + mode);\n }\n}\n\nfunction unset() {\n set(null);\n}\n\nfunction has(mode) {\n var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(document.body);\n\n return classes.has('djs-cursor-' + mode);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Cursor.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Elements.js": /*!******************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Elements.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getParents\": () => (/* binding */ getParents),\n/* harmony export */ \"add\": () => (/* binding */ add),\n/* harmony export */ \"eachElement\": () => (/* binding */ eachElement),\n/* harmony export */ \"selfAndChildren\": () => (/* binding */ selfAndChildren),\n/* harmony export */ \"selfAndDirectChildren\": () => (/* binding */ selfAndDirectChildren),\n/* harmony export */ \"selfAndAllChildren\": () => (/* binding */ selfAndAllChildren),\n/* harmony export */ \"getClosure\": () => (/* binding */ getClosure),\n/* harmony export */ \"getBBox\": () => (/* binding */ getBBox),\n/* harmony export */ \"getEnclosedElements\": () => (/* binding */ getEnclosedElements),\n/* harmony export */ \"getType\": () => (/* binding */ getType),\n/* harmony export */ \"isFrameElement\": () => (/* binding */ isFrameElement)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * Get parent elements.\n *\n * @param {Array} elements\n *\n * @returns {Array}\n */\nfunction getParents(elements) {\n\n // find elements that are not children of any other elements\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n return !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(e) {\n return e !== element && getParent(element, e);\n });\n });\n}\n\n\nfunction getParent(element, parent) {\n if (!parent) {\n return;\n }\n\n if (element === parent) {\n return parent;\n }\n\n if (!element.parent) {\n return;\n }\n\n return getParent(element.parent, parent);\n}\n\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Array} elements\n * @param {Object} e\n * @param {boolean} unique\n */\nfunction add(elements, e, unique) {\n var canAdd = !unique || elements.indexOf(e) === -1;\n\n if (canAdd) {\n elements.push(e);\n }\n\n return canAdd;\n}\n\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param {Object|Array} elements\n * @param {Function} fn iterator function called with (element, index, recursionDepth)\n * @param {number} [depth] maximum recursion depth\n */\nfunction eachElement(elements, fn, depth) {\n\n depth = depth || 0;\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [ elements ];\n }\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(s, i) {\n var filter = fn(s, i, depth);\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(filter) && filter.length) {\n eachElement(filter, fn, depth + 1);\n }\n });\n}\n\n\n/**\n * Collects self + child elements up to a given depth from a list of elements.\n *\n * @param {djs.model.Base|Array} elements the elements to select the children from\n * @param {boolean} unique whether to return a unique result set (no duplicates)\n * @param {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Array} found elements\n */\nfunction selfAndChildren(elements, unique, maxDepth) {\n var result = [],\n processedChildren = [];\n\n eachElement(elements, function(element, i, depth) {\n add(result, element, unique);\n\n var children = element.children;\n\n // max traversal depth not reached yet\n if (maxDepth === -1 || depth < maxDepth) {\n\n // children exist && children not yet processed\n if (children && add(processedChildren, children, unique)) {\n return children;\n }\n }\n });\n\n return result;\n}\n\n/**\n * Return self + direct children for a number of elements\n *\n * @param {Array} elements to query\n * @param {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array} the collected elements\n */\nfunction selfAndDirectChildren(elements, allowDuplicates) {\n return selfAndChildren(elements, !allowDuplicates, 1);\n}\n\n\n/**\n * Return self + ALL children for a number of elements\n *\n * @param {Array} elements to query\n * @param {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array} the collected elements\n */\nfunction selfAndAllChildren(elements, allowDuplicates) {\n return selfAndChildren(elements, !allowDuplicates, -1);\n}\n\n\n/**\n * Gets the the closure for all selected elements,\n * their enclosed children and connections.\n *\n * @param {Array} elements\n * @param {boolean} [isTopLevel=true]\n * @param {Object} [existingClosure]\n *\n * @return {Object} newClosure\n */\nfunction getClosure(elements, isTopLevel, closure) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isUndefined)(isTopLevel)) {\n isTopLevel = true;\n }\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(isTopLevel)) {\n closure = isTopLevel;\n isTopLevel = true;\n }\n\n\n closure = closure || {};\n\n var allShapes = copyObject(closure.allShapes),\n allConnections = copyObject(closure.allConnections),\n enclosedElements = copyObject(closure.enclosedElements),\n enclosedConnections = copyObject(closure.enclosedConnections);\n\n var topLevel = copyObject(\n closure.topLevel,\n isTopLevel && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.groupBy)(elements, function(e) { return e.id; })\n );\n\n\n function handleConnection(c) {\n if (topLevel[c.source.id] && topLevel[c.target.id]) {\n topLevel[c.id] = [ c ];\n }\n\n // not enclosed as a child, but maybe logically\n // (connecting two moved elements?)\n if (allShapes[c.source.id] && allShapes[c.target.id]) {\n enclosedConnections[c.id] = enclosedElements[c.id] = c;\n }\n\n allConnections[c.id] = c;\n }\n\n function handleElement(element) {\n\n enclosedElements[element.id] = element;\n\n if (element.waypoints) {\n\n // remember connection\n enclosedConnections[element.id] = allConnections[element.id] = element;\n } else {\n\n // remember shape\n allShapes[element.id] = element;\n\n // remember all connections\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.incoming, handleConnection);\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.outgoing, handleConnection);\n\n // recurse into children\n return element.children;\n }\n }\n\n eachElement(elements, handleElement);\n\n return {\n allShapes: allShapes,\n allConnections: allConnections,\n topLevel: topLevel,\n enclosedConnections: enclosedConnections,\n enclosedElements: enclosedElements\n };\n}\n\n/**\n * Returns the surrounding bbox for all elements in\n * the array or the element primitive.\n *\n * @param {Array|djs.model.Shape} elements\n * @param {boolean} stopRecursion\n */\nfunction getBBox(elements, stopRecursion) {\n\n stopRecursion = !!stopRecursion;\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n elements = [elements];\n }\n\n var minX,\n minY,\n maxX,\n maxY;\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n // If element is a connection the bbox must be computed first\n var bbox = element;\n if (element.waypoints && !stopRecursion) {\n bbox = getBBox(element.waypoints, true);\n }\n\n var x = bbox.x,\n y = bbox.y,\n height = bbox.height || 0,\n width = bbox.width || 0;\n\n if (x < minX || minX === undefined) {\n minX = x;\n }\n if (y < minY || minY === undefined) {\n minY = y;\n }\n\n if ((x + width) > maxX || maxX === undefined) {\n maxX = x + width;\n }\n if ((y + height) > maxY || maxY === undefined) {\n maxY = y + height;\n }\n });\n\n return {\n x: minX,\n y: minY,\n height: maxY - minY,\n width: maxX - minX\n };\n}\n\n\n/**\n * Returns all elements that are enclosed from the bounding box.\n *\n * * If bbox.(width|height) is not specified the method returns\n * all elements with element.x/y > bbox.x/y\n * * If only bbox.x or bbox.y is specified, method return all elements with\n * e.x > bbox.x or e.y > bbox.y\n *\n * @param {Array} elements List of Elements to search through\n * @param {djs.model.Shape} bbox the enclosing bbox.\n *\n * @return {Array} enclosed elements\n */\nfunction getEnclosedElements(elements, bbox) {\n\n var filteredElements = {};\n\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n var e = element;\n\n if (e.waypoints) {\n e = getBBox(e);\n }\n\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.y) && (e.x > bbox.x)) {\n filteredElements[element.id] = element;\n }\n if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.x) && (e.y > bbox.y)) {\n filteredElements[element.id] = element;\n }\n if (e.x > bbox.x && e.y > bbox.y) {\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.width) && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.height) &&\n e.width + e.x < bbox.width + bbox.x &&\n e.height + e.y < bbox.height + bbox.y) {\n\n filteredElements[element.id] = element;\n } else if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.width) || !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.height)) {\n filteredElements[element.id] = element;\n }\n }\n });\n\n return filteredElements;\n}\n\n\nfunction getType(element) {\n\n if ('waypoints' in element) {\n return 'connection';\n }\n\n if ('x' in element) {\n return 'shape';\n }\n\n return 'root';\n}\n\nfunction isFrameElement(element) {\n\n return !!(element && element.isFrame);\n}\n\n// helpers ///////////////////////////////\n\nfunction copyObject(src1, src2) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, src1 || {}, src2 || {});\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Elements.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/EscapeUtil.js": /*!********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/EscapeUtil.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"escapeCSS\": () => (/* reexport default from dynamic */ css_escape__WEBPACK_IMPORTED_MODULE_0___default.a),\n/* harmony export */ \"escapeHTML\": () => (/* binding */ escapeHTML)\n/* harmony export */ });\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css.escape */ \"./node_modules/css.escape/css.escape.js\");\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_escape__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar HTML_ESCAPE_MAP = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nfunction escapeHTML(str) {\n str = '' + str;\n\n return str && str.replace(/[&<>\"']/g, function(match) {\n return HTML_ESCAPE_MAP[match];\n });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/EscapeUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Event.js": /*!***************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Event.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getOriginal\": () => (/* binding */ getOriginal),\n/* harmony export */ \"stopPropagation\": () => (/* binding */ stopPropagation),\n/* harmony export */ \"toPoint\": () => (/* binding */ toPoint)\n/* harmony export */ });\nfunction __stopPropagation(event) {\n if (!event || typeof event.stopPropagation !== 'function') {\n return;\n }\n\n event.stopPropagation();\n}\n\n\nfunction getOriginal(event) {\n return event.originalEvent || event.srcEvent;\n}\n\n\nfunction stopPropagation(event, immediate) {\n __stopPropagation(event, immediate);\n __stopPropagation(getOriginal(event), immediate);\n}\n\n\nfunction toPoint(event) {\n\n if (event.pointers && event.pointers.length) {\n event = event.pointers[0];\n }\n\n if (event.touches && event.touches.length) {\n event = event.touches[0];\n }\n\n return event ? {\n x: event.clientX,\n y: event.clientY\n } : null;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Event.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Geometry.js": /*!******************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Geometry.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"pointDistance\": () => (/* binding */ pointDistance),\n/* harmony export */ \"pointsOnLine\": () => (/* binding */ pointsOnLine),\n/* harmony export */ \"pointsAligned\": () => (/* binding */ pointsAligned),\n/* harmony export */ \"pointsAlignedHorizontally\": () => (/* binding */ pointsAlignedHorizontally),\n/* harmony export */ \"pointsAlignedVertically\": () => (/* binding */ pointsAlignedVertically),\n/* harmony export */ \"pointInRect\": () => (/* binding */ pointInRect),\n/* harmony export */ \"getMidPoint\": () => (/* binding */ getMidPoint)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Computes the distance between two points\n *\n * @param {Point} p\n * @param {Point} q\n *\n * @return {number} distance\n */\nfunction pointDistance(a, b) {\n if (!a || !b) {\n return -1;\n }\n\n return Math.sqrt(\n Math.pow(a.x - b.x, 2) +\n Math.pow(a.y - b.y, 2)\n );\n}\n\n\n/**\n * Returns true if the point r is on the line between p and q\n *\n * @param {Point} p\n * @param {Point} q\n * @param {Point} r\n * @param {number} [accuracy=5] accuracy for points on line check (lower is better)\n *\n * @return {boolean}\n */\nfunction pointsOnLine(p, q, r, accuracy) {\n\n if (typeof accuracy === 'undefined') {\n accuracy = 5;\n }\n\n if (!p || !q || !r) {\n return false;\n }\n\n var val = (q.x - p.x) * (r.y - p.y) - (q.y - p.y) * (r.x - p.x),\n dist = pointDistance(p, q);\n\n // @see http://stackoverflow.com/a/907491/412190\n return Math.abs(val / dist) <= accuracy;\n}\n\n\nvar ALIGNED_THRESHOLD = 2;\n\n/**\n * Check whether two points are horizontally or vertically aligned.\n *\n * @param {Array|Point}\n * @param {Point}\n *\n * @return {string|boolean}\n */\nfunction pointsAligned(a, b) {\n var points;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(a)) {\n points = a;\n } else {\n points = [ a, b ];\n }\n\n if (pointsAlignedHorizontally(points)) {\n return 'h';\n }\n\n if (pointsAlignedVertically(points)) {\n return 'v';\n }\n\n return false;\n}\n\nfunction pointsAlignedHorizontally(a, b) {\n var points;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(a)) {\n points = a;\n } else {\n points = [ a, b ];\n }\n\n var firstPoint = points.slice().shift();\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(points, function(point) {\n return Math.abs(firstPoint.y - point.y) <= ALIGNED_THRESHOLD;\n });\n}\n\nfunction pointsAlignedVertically(a, b) {\n var points;\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(a)) {\n points = a;\n } else {\n points = [ a, b ];\n }\n\n var firstPoint = points.slice().shift();\n\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(points, function(point) {\n return Math.abs(firstPoint.x - point.x) <= ALIGNED_THRESHOLD;\n });\n}\n\n\n\n/**\n * Returns true if the point p is inside the rectangle rect\n *\n * @param {Point} p\n * @param {Rect} rect\n * @param {number} tolerance\n *\n * @return {boolean}\n */\nfunction pointInRect(p, rect, tolerance) {\n tolerance = tolerance || 0;\n\n return p.x > rect.x - tolerance &&\n p.y > rect.y - tolerance &&\n p.x < rect.x + rect.width + tolerance &&\n p.y < rect.y + rect.height + tolerance;\n}\n\n/**\n * Returns a point in the middle of points p and q\n *\n * @param {Point} p\n * @param {Point} q\n *\n * @return {Point} middle point\n */\nfunction getMidPoint(p, q) {\n return {\n x: Math.round(p.x + ((q.x - p.x) / 2.0)),\n y: Math.round(p.y + ((q.y - p.y) / 2.0))\n };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Geometry.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/GraphicsUtil.js": /*!**********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/GraphicsUtil.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getVisual\": () => (/* binding */ getVisual),\n/* harmony export */ \"getChildren\": () => (/* binding */ getChildren)\n/* harmony export */ });\n/**\n * SVGs for elements are generated by the {@link GraphicsFactory}.\n *\n * This utility gives quick access to the important semantic\n * parts of an element.\n */\n\n/**\n * Returns the visual part of a diagram element\n *\n * @param {Snap} gfx\n *\n * @return {Snap}\n */\nfunction getVisual(gfx) {\n return gfx.childNodes[0];\n}\n\n/**\n * Returns the children for a given diagram element.\n *\n * @param {Snap} gfx\n * @return {Snap}\n */\nfunction getChildren(gfx) {\n return gfx.parentNode.childNodes[1];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/GraphicsUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/IdGenerator.js": /*!*********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/IdGenerator.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ IdGenerator)\n/* harmony export */ });\n/**\n * Util that provides unique IDs.\n *\n * @class djs.util.IdGenerator\n * @constructor\n * @memberOf djs.util\n *\n * The ids can be customized via a given prefix and contain a random value to avoid collisions.\n *\n * @param {string} prefix a prefix to prepend to generated ids (for better readability)\n */\nfunction IdGenerator(prefix) {\n\n this._counter = 0;\n this._prefix = (prefix ? prefix + '-' : '') + Math.floor(Math.random() * 1000000000) + '-';\n}\n\n/**\n * Returns a next unique ID.\n *\n * @method djs.util.IdGenerator#next\n *\n * @returns {string} the id\n */\nIdGenerator.prototype.next = function() {\n return this._prefix + (++this._counter);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/IdGenerator.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/LineIntersection.js": /*!**************************************************************!*\ !*** ./node_modules/diagram-js/lib/util/LineIntersection.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getApproxIntersection\": () => (/* binding */ getApproxIntersection)\n/* harmony export */ });\n/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path-intersection */ \"./node_modules/path-intersection/intersect.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path_intersection__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\nvar round = Math.round,\n max = Math.max;\n\n\nfunction circlePath(center, r) {\n var x = center.x,\n y = center.y;\n\n return [\n ['M', x, y],\n ['m', 0, -r],\n ['a', r, r, 0, 1, 1, 0, 2 * r],\n ['a', r, r, 0, 1, 1, 0, -2 * r],\n ['z']\n ];\n}\n\nfunction linePath(points) {\n var segments = [];\n\n points.forEach(function(p, idx) {\n segments.push([ idx === 0 ? 'M' : 'L', p.x, p.y ]);\n });\n\n return segments;\n}\n\n\nvar INTERSECTION_THRESHOLD = 10;\n\nfunction getBendpointIntersection(waypoints, reference) {\n\n var i, w;\n\n for (i = 0; (w = waypoints[i]); i++) {\n\n if ((0,_Geometry__WEBPACK_IMPORTED_MODULE_1__.pointDistance)(w, reference) <= INTERSECTION_THRESHOLD) {\n return {\n point: waypoints[i],\n bendpoint: true,\n index: i\n };\n }\n }\n\n return null;\n}\n\nfunction getPathIntersection(waypoints, reference) {\n\n var intersections = path_intersection__WEBPACK_IMPORTED_MODULE_0___default()(circlePath(reference, INTERSECTION_THRESHOLD), linePath(waypoints));\n\n var a = intersections[0],\n b = intersections[intersections.length - 1],\n idx;\n\n if (!a) {\n\n // no intersection\n return null;\n }\n\n if (a !== b) {\n\n if (a.segment2 !== b.segment2) {\n\n // we use the bendpoint in between both segments\n // as the intersection point\n\n idx = max(a.segment2, b.segment2) - 1;\n\n return {\n point: waypoints[idx],\n bendpoint: true,\n index: idx\n };\n }\n\n return {\n point: {\n x: (round(a.x + b.x) / 2),\n y: (round(a.y + b.y) / 2)\n },\n index: a.segment2\n };\n }\n\n return {\n point: {\n x: round(a.x),\n y: round(a.y)\n },\n index: a.segment2\n };\n}\n\n/**\n * Returns the closest point on the connection towards a given reference point.\n *\n * @param {Array} waypoints\n * @param {Point} reference\n *\n * @return {Object} intersection data (segment, point)\n */\nfunction getApproxIntersection(waypoints, reference) {\n return getBendpointIntersection(waypoints, reference) || getPathIntersection(waypoints, reference);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/LineIntersection.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Math.js": /*!**************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Math.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"log10\": () => (/* binding */ log10),\n/* harmony export */ \"substract\": () => (/* reexport safe */ _PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)\n/* harmony export */ });\n/* harmony import */ var _PositionUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/**\n * Get the logarithm of x with base 10\n * @param {Integer} value\n */\nfunction log10(x) {\n return Math.log(x) / Math.log(10);\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Math.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Mouse.js": /*!***************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Mouse.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isMac\": () => (/* reexport safe */ _Platform__WEBPACK_IMPORTED_MODULE_0__.isMac),\n/* harmony export */ \"isButton\": () => (/* binding */ isButton),\n/* harmony export */ \"isPrimaryButton\": () => (/* binding */ isPrimaryButton),\n/* harmony export */ \"isAuxiliaryButton\": () => (/* binding */ isAuxiliaryButton),\n/* harmony export */ \"isSecondaryButton\": () => (/* binding */ isSecondaryButton),\n/* harmony export */ \"hasPrimaryModifier\": () => (/* binding */ hasPrimaryModifier),\n/* harmony export */ \"hasSecondaryModifier\": () => (/* binding */ hasSecondaryModifier)\n/* harmony export */ });\n/* harmony import */ var _Event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _Platform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Platform */ \"./node_modules/diagram-js/lib/util/Platform.js\");\n\n\n\n\n\n\nfunction isButton(event, button) {\n return ((0,_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event).button === button;\n}\n\nfunction isPrimaryButton(event) {\n\n // button === 0 -> left áka primary mouse button\n return isButton(event, 0);\n}\n\nfunction isAuxiliaryButton(event) {\n\n // button === 1 -> auxiliary áka wheel button\n return isButton(event, 1);\n}\n\nfunction isSecondaryButton(event) {\n\n // button === 2 -> right áka secondary button\n return isButton(event, 2);\n}\n\nfunction hasPrimaryModifier(event) {\n var originalEvent = (0,_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event;\n\n if (!isPrimaryButton(event)) {\n return false;\n }\n\n // Use cmd as primary modifier key for mac OS\n if ((0,_Platform__WEBPACK_IMPORTED_MODULE_0__.isMac)()) {\n return originalEvent.metaKey;\n } else {\n return originalEvent.ctrlKey;\n }\n}\n\n\nfunction hasSecondaryModifier(event) {\n var originalEvent = (0,_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event;\n\n return isPrimaryButton(event) && originalEvent.shiftKey;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Mouse.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Platform.js": /*!******************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Platform.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isMac\": () => (/* binding */ isMac)\n/* harmony export */ });\nfunction isMac() {\n return (/mac/i).test(navigator.platform);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Platform.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/PositionUtil.js": /*!**********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/PositionUtil.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"center\": () => (/* binding */ center),\n/* harmony export */ \"delta\": () => (/* binding */ delta)\n/* harmony export */ });\nfunction center(bounds) {\n return {\n x: bounds.x + (bounds.width / 2),\n y: bounds.y + (bounds.height / 2)\n };\n}\n\n\nfunction delta(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/PositionUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Removal.js": /*!*****************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Removal.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"saveClear\": () => (/* binding */ saveClear)\n/* harmony export */ });\n/**\n * Remove from the beginning of a collection until it is empty.\n *\n * This is a null-safe operation that ensures elements\n * are being removed from the given collection until the\n * collection is empty.\n *\n * The implementation deals with the fact that a remove operation\n * may touch, i.e. remove multiple elements in the collection\n * at a time.\n *\n * @param {Array} [collection]\n * @param {Function} removeFn\n *\n * @return {Array} the cleared collection\n */\nfunction saveClear(collection, removeFn) {\n\n if (typeof removeFn !== 'function') {\n throw new Error('removeFn iterator must be a function');\n }\n\n if (!collection) {\n return;\n }\n\n var e;\n\n while ((e = collection[0])) {\n removeFn(e);\n }\n\n return collection;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Removal.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/RenderUtil.js": /*!********************************************************!*\ !*** ./node_modules/diagram-js/lib/util/RenderUtil.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"componentsToPath\": () => (/* binding */ componentsToPath),\n/* harmony export */ \"toSVGPoints\": () => (/* binding */ toSVGPoints),\n/* harmony export */ \"createLine\": () => (/* binding */ createLine),\n/* harmony export */ \"updateLine\": () => (/* binding */ updateLine)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\nfunction componentsToPath(elements) {\n return elements.join(',').replace(/,?([A-z]),?/g, '$1');\n}\n\nfunction toSVGPoints(points) {\n var result = '';\n\n for (var i = 0, p; (p = points[i]); i++) {\n result += p.x + ',' + p.y + ' ';\n }\n\n return result;\n}\n\nfunction createLine(points, attrs) {\n\n var line = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('polyline');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(line, { points: toSVGPoints(points) });\n\n if (attrs) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(line, attrs);\n }\n\n return line;\n}\n\nfunction updateLine(gfx, points) {\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(gfx, { points: toSVGPoints(points) });\n\n return gfx;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/RenderUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/SvgTransformUtil.js": /*!**************************************************************!*\ !*** ./node_modules/diagram-js/lib/util/SvgTransformUtil.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"transform\": () => (/* binding */ transform),\n/* harmony export */ \"translate\": () => (/* binding */ translate),\n/* harmony export */ \"rotate\": () => (/* binding */ rotate),\n/* harmony export */ \"scale\": () => (/* binding */ scale)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\r\n\r\n\r\n/**\r\n * @param {} element\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} angle\r\n * @param {number} amount\r\n */\r\nfunction transform(gfx, x, y, angle, amount) {\r\n var translate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n translate.setTranslate(x, y);\r\n\r\n var rotate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n rotate.setRotate(angle || 0, 0, 0);\r\n\r\n var scale = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n scale.setScale(amount || 1, amount || 1);\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, [ translate, rotate, scale ]);\r\n}\r\n\r\n\r\n/**\r\n * @param {SVGElement} element\r\n * @param {number} x\r\n * @param {number} y\r\n */\r\nfunction translate(gfx, x, y) {\r\n var translate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n translate.setTranslate(x, y);\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, translate);\r\n}\r\n\r\n\r\n/**\r\n * @param {SVGElement} element\r\n * @param {number} angle\r\n */\r\nfunction rotate(gfx, angle) {\r\n var rotate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n rotate.setRotate(angle, 0, 0);\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, rotate);\r\n}\r\n\r\n\r\n/**\r\n * @param {SVGElement} element\r\n * @param {number} amount\r\n */\r\nfunction scale(gfx, amount) {\r\n var scale = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n scale.setScale(amount, amount);\r\n\r\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, scale);\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/SvgTransformUtil.js?"); /***/ }), /***/ "./node_modules/diagram-js/lib/util/Text.js": /*!**************************************************!*\ !*** ./node_modules/diagram-js/lib/util/Text.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Text)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\nvar DEFAULT_BOX_PADDING = 0;\n\nvar DEFAULT_LABEL_SIZE = {\n width: 150,\n height: 50\n};\n\n\nfunction parseAlign(align) {\n\n var parts = align.split('-');\n\n return {\n horizontal: parts[0] || 'center',\n vertical: parts[1] || 'top'\n };\n}\n\nfunction parsePadding(padding) {\n\n if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(padding)) {\n return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ top: 0, left: 0, right: 0, bottom: 0 }, padding);\n } else {\n return {\n top: padding,\n left: padding,\n right: padding,\n bottom: padding\n };\n }\n}\n\nfunction getTextBBox(text, fakeText) {\n\n fakeText.textContent = text;\n\n var textBBox;\n\n try {\n var bbox,\n emptyLine = text === '';\n\n // add dummy text, when line is empty to\n // determine correct height\n fakeText.textContent = emptyLine ? 'dummy' : text;\n\n textBBox = fakeText.getBBox();\n\n // take text rendering related horizontal\n // padding into account\n bbox = {\n width: textBBox.width + textBBox.x * 2,\n height: textBBox.height\n };\n\n if (emptyLine) {\n\n // correct width\n bbox.width = 0;\n }\n\n return bbox;\n } catch (e) {\n return { width: 0, height: 0 };\n }\n}\n\n\n/**\n * Layout the next line and return the layouted element.\n *\n * Alters the lines passed.\n *\n * @param {Array} lines\n * @return {Object} the line descriptor, an object { width, height, text }\n */\nfunction layoutNext(lines, maxWidth, fakeText) {\n\n var originalLine = lines.shift(),\n fitLine = originalLine;\n\n var textBBox;\n\n for (;;) {\n textBBox = getTextBBox(fitLine, fakeText);\n\n textBBox.width = fitLine ? textBBox.width : 0;\n\n // try to fit\n if (fitLine === ' ' || fitLine === '' || textBBox.width < Math.round(maxWidth) || fitLine.length < 2) {\n return fit(lines, fitLine, originalLine, textBBox);\n }\n\n fitLine = shortenLine(fitLine, textBBox.width, maxWidth);\n }\n}\n\nfunction fit(lines, fitLine, originalLine, textBBox) {\n if (fitLine.length < originalLine.length) {\n var remainder = originalLine.slice(fitLine.length).trim();\n\n lines.unshift(remainder);\n }\n\n return {\n width: textBBox.width,\n height: textBBox.height,\n text: fitLine\n };\n}\n\nvar SOFT_BREAK = '\\u00AD';\n\n\n/**\n * Shortens a line based on spacing and hyphens.\n * Returns the shortened result on success.\n *\n * @param {string} line\n * @param {number} maxLength the maximum characters of the string\n * @return {string} the shortened string\n */\nfunction semanticShorten(line, maxLength) {\n\n var parts = line.split(/(\\s|-|\\u00AD)/g),\n part,\n shortenedParts = [],\n length = 0;\n\n // try to shorten via break chars\n if (parts.length > 1) {\n\n while ((part = parts.shift())) {\n if (part.length + length < maxLength) {\n shortenedParts.push(part);\n length += part.length;\n } else {\n\n // remove previous part, too if hyphen does not fit anymore\n if (part === '-' || part === SOFT_BREAK) {\n shortenedParts.pop();\n }\n\n break;\n }\n }\n }\n\n var last = shortenedParts[shortenedParts.length - 1];\n\n // translate trailing soft break to actual hyphen\n if (last && last === SOFT_BREAK) {\n shortenedParts[shortenedParts.length - 1] = '-';\n }\n\n return shortenedParts.join('');\n}\n\n\nfunction shortenLine(line, width, maxWidth) {\n var length = Math.max(line.length * (maxWidth / width), 1);\n\n // try to shorten semantically (i.e. based on spaces and hyphens)\n var shortenedLine = semanticShorten(line, length);\n\n if (!shortenedLine) {\n\n // force shorten by cutting the long word\n shortenedLine = line.slice(0, Math.max(Math.round(length - 1), 1));\n }\n\n return shortenedLine;\n}\n\n\nfunction getHelperSvg() {\n var helperSvg = document.getElementById('helper-svg');\n\n if (!helperSvg) {\n helperSvg = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('svg');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(helperSvg, {\n id: 'helper-svg',\n width: 0,\n height: 0,\n style: 'visibility: hidden; position: fixed'\n });\n\n document.body.appendChild(helperSvg);\n }\n\n return helperSvg;\n}\n\n\n/**\n * Creates a new label utility\n *\n * @param {Object} config\n * @param {Dimensions} config.size\n * @param {number} config.padding\n * @param {Object} config.style\n * @param {string} config.align\n */\nfunction Text(config) {\n\n this._config = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, {\n size: DEFAULT_LABEL_SIZE,\n padding: DEFAULT_BOX_PADDING,\n style: {},\n align: 'center-top'\n }, config || {});\n}\n\n/**\n * Returns the layouted text as an SVG element.\n *\n * @param {string} text\n * @param {Object} options\n *\n * @return {SVGElement}\n */\nText.prototype.createText = function(text, options) {\n return this.layoutText(text, options).element;\n};\n\n/**\n * Returns a labels layouted dimensions.\n *\n * @param {string} text to layout\n * @param {Object} options\n *\n * @return {Dimensions}\n */\nText.prototype.getDimensions = function(text, options) {\n return this.layoutText(text, options).dimensions;\n};\n\n/**\n * Creates and returns a label and its bounding box.\n *\n * @method Text#createText\n *\n * @param {string} text the text to render on the label\n * @param {Object} options\n * @param {string} options.align how to align in the bounding box.\n * Any of { 'center-middle', 'center-top' },\n * defaults to 'center-top'.\n * @param {string} options.style style to be applied to the text\n * @param {boolean} options.fitBox indicates if box will be recalculated to\n * fit text\n *\n * @return {Object} { element, dimensions }\n */\nText.prototype.layoutText = function(text, options) {\n var box = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, this._config.size, options.box),\n style = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, this._config.style, options.style),\n align = parseAlign(options.align || this._config.align),\n padding = parsePadding(options.padding !== undefined ? options.padding : this._config.padding),\n fitBox = options.fitBox || false;\n\n var lineHeight = getLineHeight(style);\n\n // we split text by lines and normalize\n // {soft break} + {line break} => { line break }\n var lines = text.split(/\\u00AD?\\r?\\n/),\n layouted = [];\n\n var maxWidth = box.width - padding.left - padding.right;\n\n // ensure correct rendering by attaching helper text node to invisible SVG\n var helperText = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('text');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(helperText, { x: 0, y: 0 });\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(helperText, style);\n\n var helperSvg = getHelperSvg();\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(helperSvg, helperText);\n\n while (lines.length) {\n layouted.push(layoutNext(lines, maxWidth, helperText));\n }\n\n if (align.vertical === 'middle') {\n padding.top = padding.bottom = 0;\n }\n\n var totalHeight = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(layouted, function(sum, line, idx) {\n return sum + (lineHeight || line.height);\n }, 0) + padding.top + padding.bottom;\n\n var maxLineWidth = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(layouted, function(sum, line, idx) {\n return line.width > sum ? line.width : sum;\n }, 0);\n\n // the y position of the next line\n var y = padding.top;\n\n if (align.vertical === 'middle') {\n y += (box.height - totalHeight) / 2;\n }\n\n // magic number initial offset\n y -= (lineHeight || layouted[0].height) / 4;\n\n\n var textElement = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('text');\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(textElement, style);\n\n // layout each line taking into account that parent\n // shape might resize to fit text size\n (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(layouted, function(line) {\n\n var x;\n\n y += (lineHeight || line.height);\n\n switch (align.horizontal) {\n case 'left':\n x = padding.left;\n break;\n\n case 'right':\n x = ((fitBox ? maxLineWidth : maxWidth)\n - padding.right - line.width);\n break;\n\n default:\n\n // aka center\n x = Math.max((((fitBox ? maxLineWidth : maxWidth)\n - line.width) / 2 + padding.left), 0);\n }\n\n var tspan = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('tspan');\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(tspan, { x: x, y: y });\n\n tspan.textContent = line.text;\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(textElement, tspan);\n });\n\n (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(helperText);\n\n var dimensions = {\n width: maxLineWidth,\n height: totalHeight\n };\n\n return {\n dimensions: dimensions,\n element: textElement\n };\n};\n\n\nfunction getLineHeight(style) {\n if ('fontSize' in style && 'lineHeight' in style) {\n return style.lineHeight * parseInt(style.fontSize, 10);\n }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Text.js?"); /***/ }), /***/ "./node_modules/didi/dist/index.esm.js": /*!*********************************************!*\ !*** ./node_modules/didi/dist/index.esm.js ***! \*********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"annotate\": () => (/* binding */ annotate),\n/* harmony export */ \"parseAnnotations\": () => (/* binding */ parseAnnotations),\n/* harmony export */ \"Module\": () => (/* binding */ Module),\n/* harmony export */ \"Injector\": () => (/* binding */ Injector)\n/* harmony export */ });\nvar CLASS_PATTERN = /^class /;\n\nfunction isClass(fn) {\n return CLASS_PATTERN.test(fn.toString());\n}\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction annotate() {\n var args = Array.prototype.slice.call(arguments);\n\n if (args.length === 1 && isArray(args[0])) {\n args = args[0];\n }\n\n var fn = args.pop();\n\n fn.$inject = args;\n\n return fn;\n}\n\n\n// Current limitations:\n// - can't put into \"function arg\" comments\n// function /* (no parenthesis like this) */ (){}\n// function abc( /* xx (no parenthesis like this) */ a, b) {}\n//\n// Just put the comment before function or inside:\n// /* (((this is fine))) */ function(a, b) {}\n// function abc(a) { /* (((this is fine))) */}\n//\n// - can't reliably auto-annotate constructor; we'll match the\n// first constructor(...) pattern found which may be the one\n// of a nested class, too.\n\nvar CONSTRUCTOR_ARGS = /constructor\\s*[^(]*\\(\\s*([^)]*)\\)/m;\nvar FN_ARGS = /^(?:async )?(?:function\\s*)?[^(]*\\(\\s*([^)]*)\\)/m;\nvar FN_ARG = /\\/\\*([^*]*)\\*\\//m;\n\nfunction parseAnnotations(fn) {\n\n if (typeof fn !== 'function') {\n throw new Error('Cannot annotate \"' + fn + '\". Expected a function!');\n }\n\n var match = fn.toString().match(isClass(fn) ? CONSTRUCTOR_ARGS : FN_ARGS);\n\n // may parse class without constructor\n if (!match) {\n return [];\n }\n\n return match[1] && match[1].split(',').map(function(arg) {\n match = arg.match(FN_ARG);\n return match ? match[1].trim() : arg.trim();\n }) || [];\n}\n\nfunction Module() {\n var providers = [];\n\n this.factory = function(name, factory) {\n providers.push([name, 'factory', factory]);\n return this;\n };\n\n this.value = function(name, value) {\n providers.push([name, 'value', value]);\n return this;\n };\n\n this.type = function(name, type) {\n providers.push([name, 'type', type]);\n return this;\n };\n\n this.forEach = function(iterator) {\n providers.forEach(iterator);\n };\n\n}\n\nfunction Injector(modules, parent) {\n parent = parent || {\n get: function(name, strict) {\n currentlyResolving.push(name);\n\n if (strict === false) {\n return null;\n } else {\n throw error('No provider for \"' + name + '\"!');\n }\n }\n };\n\n var currentlyResolving = [];\n var providers = this._providers = Object.create(parent._providers || null);\n var instances = this._instances = Object.create(null);\n\n var self = instances.injector = this;\n\n var error = function(msg) {\n var stack = currentlyResolving.join(' -> ');\n currentlyResolving.length = 0;\n return new Error(stack ? msg + ' (Resolving: ' + stack + ')' : msg);\n };\n\n /**\n * Return a named service.\n *\n * @param {String} name\n * @param {Boolean} [strict=true] if false, resolve missing services to null\n *\n * @return {Object}\n */\n var get = function(name, strict) {\n if (!providers[name] && name.indexOf('.') !== -1) {\n var parts = name.split('.');\n var pivot = get(parts.shift());\n\n while (parts.length) {\n pivot = pivot[parts.shift()];\n }\n\n return pivot;\n }\n\n if (hasOwnProp(instances, name)) {\n return instances[name];\n }\n\n if (hasOwnProp(providers, name)) {\n if (currentlyResolving.indexOf(name) !== -1) {\n currentlyResolving.push(name);\n throw error('Cannot resolve circular dependency!');\n }\n\n currentlyResolving.push(name);\n instances[name] = providers[name][0](providers[name][1]);\n currentlyResolving.pop();\n\n return instances[name];\n }\n\n return parent.get(name, strict);\n };\n\n var fnDef = function(fn, locals) {\n\n if (typeof locals === 'undefined') {\n locals = {};\n }\n\n if (typeof fn !== 'function') {\n if (isArray(fn)) {\n fn = annotate(fn.slice());\n } else {\n throw new Error('Cannot invoke \"' + fn + '\". Expected a function!');\n }\n }\n\n var inject = fn.$inject || parseAnnotations(fn);\n var dependencies = inject.map(function(dep) {\n if (hasOwnProp(locals, dep)) {\n return locals[dep];\n } else {\n return get(dep);\n }\n });\n\n return {\n fn: fn,\n dependencies: dependencies\n };\n };\n\n var instantiate = function(Type) {\n var def = fnDef(Type);\n\n var fn = def.fn,\n dependencies = def.dependencies;\n\n // instantiate var args constructor\n var Constructor = Function.prototype.bind.apply(fn, [ null ].concat(dependencies));\n\n return new Constructor();\n };\n\n var invoke = function(func, context, locals) {\n var def = fnDef(func, locals);\n\n var fn = def.fn,\n dependencies = def.dependencies;\n\n return fn.apply(context, dependencies);\n };\n\n\n var createPrivateInjectorFactory = function(privateChildInjector) {\n return annotate(function(key) {\n return privateChildInjector.get(key);\n });\n };\n\n var createChild = function(modules, forceNewInstances) {\n if (forceNewInstances && forceNewInstances.length) {\n var fromParentModule = Object.create(null);\n var matchedScopes = Object.create(null);\n\n var privateInjectorsCache = [];\n var privateChildInjectors = [];\n var privateChildFactories = [];\n\n var provider;\n var cacheIdx;\n var privateChildInjector;\n var privateChildInjectorFactory;\n for (var name in providers) {\n provider = providers[name];\n\n if (forceNewInstances.indexOf(name) !== -1) {\n if (provider[2] === 'private') {\n cacheIdx = privateInjectorsCache.indexOf(provider[3]);\n if (cacheIdx === -1) {\n privateChildInjector = provider[3].createChild([], forceNewInstances);\n privateChildInjectorFactory = createPrivateInjectorFactory(privateChildInjector);\n privateInjectorsCache.push(provider[3]);\n privateChildInjectors.push(privateChildInjector);\n privateChildFactories.push(privateChildInjectorFactory);\n fromParentModule[name] = [privateChildInjectorFactory, name, 'private', privateChildInjector];\n } else {\n fromParentModule[name] = [privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx]];\n }\n } else {\n fromParentModule[name] = [provider[2], provider[1]];\n }\n matchedScopes[name] = true;\n }\n\n if ((provider[2] === 'factory' || provider[2] === 'type') && provider[1].$scope) {\n /* jshint -W083 */\n forceNewInstances.forEach(function(scope) {\n if (provider[1].$scope.indexOf(scope) !== -1) {\n fromParentModule[name] = [provider[2], provider[1]];\n matchedScopes[scope] = true;\n }\n });\n }\n }\n\n forceNewInstances.forEach(function(scope) {\n if (!matchedScopes[scope]) {\n throw new Error('No provider for \"' + scope + '\". Cannot use provider from the parent!');\n }\n });\n\n modules.unshift(fromParentModule);\n }\n\n return new Injector(modules, self);\n };\n\n var factoryMap = {\n factory: invoke,\n type: instantiate,\n value: function(value) {\n return value;\n }\n };\n\n modules.forEach(function(module) {\n\n function arrayUnwrap(type, value) {\n if (type !== 'value' && isArray(value)) {\n value = annotate(value.slice());\n }\n\n return value;\n }\n\n // TODO(vojta): handle wrong inputs (modules)\n if (module instanceof Module) {\n module.forEach(function(provider) {\n var name = provider[0];\n var type = provider[1];\n var value = provider[2];\n\n providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];\n });\n } else if (typeof module === 'object') {\n if (module.__exports__) {\n var clonedModule = Object.keys(module).reduce(function(m, key) {\n if (key.substring(0, 2) !== '__') {\n m[key] = module[key];\n }\n return m;\n }, Object.create(null));\n\n var privateInjector = new Injector((module.__modules__ || []).concat([clonedModule]), self);\n var getFromPrivateInjector = annotate(function(key) {\n return privateInjector.get(key);\n });\n module.__exports__.forEach(function(key) {\n providers[key] = [getFromPrivateInjector, key, 'private', privateInjector];\n });\n } else {\n Object.keys(module).forEach(function(name) {\n if (module[name][2] === 'private') {\n providers[name] = module[name];\n return;\n }\n\n var type = module[name][0];\n var value = module[name][1];\n\n providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];\n });\n }\n }\n });\n\n // public API\n this.get = get;\n this.invoke = invoke;\n this.instantiate = instantiate;\n this.createChild = createChild;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/didi/dist/index.esm.js?"); /***/ }), /***/ "./node_modules/hammerjs/hammer.js": /*!*****************************************!*\ !*** ./node_modules/hammerjs/hammer.js ***! \*****************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return Hammer;\n }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {}\n\n})(window, document, 'Hammer');\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/hammerjs/hammer.js?"); /***/ }), /***/ "./node_modules/ids/dist/index.esm.js": /*!********************************************!*\ !*** ./node_modules/ids/dist/index.esm.js ***! \********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar hat_1 = createCommonjsModule(function (module) {\nvar hat = module.exports = function (bits, base) {\n if (!base) base = 16;\n if (bits === undefined) bits = 128;\n if (bits <= 0) return '0';\n \n var digits = Math.log(Math.pow(2, bits)) / Math.log(base);\n for (var i = 2; digits === Infinity; i *= 2) {\n digits = Math.log(Math.pow(2, bits / i)) / Math.log(base) * i;\n }\n \n var rem = digits - Math.floor(digits);\n \n var res = '';\n \n for (var i = 0; i < Math.floor(digits); i++) {\n var x = Math.floor(Math.random() * base).toString(base);\n res = x + res;\n }\n \n if (rem) {\n var b = Math.pow(base, rem);\n var x = Math.floor(Math.random() * b).toString(base);\n res = x + res;\n }\n \n var parsed = parseInt(res, base);\n if (parsed !== Infinity && parsed >= Math.pow(2, bits)) {\n return hat(bits, base)\n }\n else return res;\n};\n\nhat.rack = function (bits, base, expandBy) {\n var fn = function (data) {\n var iters = 0;\n do {\n if (iters ++ > 10) {\n if (expandBy) bits += expandBy;\n else throw new Error('too many ID collisions, use more bits')\n }\n \n var id = hat(bits, base);\n } while (Object.hasOwnProperty.call(hats, id));\n \n hats[id] = data;\n return id;\n };\n var hats = fn.hats = {};\n \n fn.get = function (id) {\n return fn.hats[id];\n };\n \n fn.set = function (id, value) {\n fn.hats[id] = value;\n return fn;\n };\n \n fn.bits = bits || 128;\n fn.base = base || 16;\n return fn;\n};\n});\n\n/**\n * Create a new id generator / cache instance.\n *\n * You may optionally provide a seed that is used internally.\n *\n * @param {Seed} seed\n */\n\nfunction Ids(seed) {\n if (!(this instanceof Ids)) {\n return new Ids(seed);\n }\n\n seed = seed || [128, 36, 1];\n this._seed = seed.length ? hat_1.rack(seed[0], seed[1], seed[2]) : seed;\n}\n/**\n * Generate a next id.\n *\n * @param {Object} [element] element to bind the id to\n *\n * @return {String} id\n */\n\nIds.prototype.next = function (element) {\n return this._seed(element || true);\n};\n/**\n * Generate a next id with a given prefix.\n *\n * @param {Object} [element] element to bind the id to\n *\n * @return {String} id\n */\n\n\nIds.prototype.nextPrefixed = function (prefix, element) {\n var id;\n\n do {\n id = prefix + this.next(true);\n } while (this.assigned(id)); // claim {prefix}{random}\n\n\n this.claim(id, element); // return\n\n return id;\n};\n/**\n * Manually claim an existing id.\n *\n * @param {String} id\n * @param {String} [element] element the id is claimed by\n */\n\n\nIds.prototype.claim = function (id, element) {\n this._seed.set(id, element || true);\n};\n/**\n * Returns true if the given id has already been assigned.\n *\n * @param {String} id\n * @return {Boolean}\n */\n\n\nIds.prototype.assigned = function (id) {\n return this._seed.get(id) || false;\n};\n/**\n * Unclaim an id.\n *\n * @param {String} id the id to unclaim\n */\n\n\nIds.prototype.unclaim = function (id) {\n delete this._seed.hats[id];\n};\n/**\n * Clear all claimed ids.\n */\n\n\nIds.prototype.clear = function () {\n var hats = this._seed.hats,\n id;\n\n for (id in hats) {\n this.unclaim(id);\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Ids);\n//# sourceMappingURL=index.esm.js.map\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/ids/dist/index.esm.js?"); /***/ }), /***/ "./node_modules/inherits/inherits_browser.js": /*!***************************************************!*\ !*** ./node_modules/inherits/inherits_browser.js ***! \***************************************************/ /***/ ((module) => { eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/inherits/inherits_browser.js?"); /***/ }), /***/ "./node_modules/jquery/dist/jquery.js": /*!********************************************!*\ !*** ./node_modules/jquery/dist/jquery.js ***! \********************************************/ /***/ (function(module, exports) { eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( true && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \", \"
    \" ],\n\tcol: [ 2, \"\", \"
    \" ],\n\ttr: [ 2, \"\", \"
    \" ],\n\ttd: [ 3, \"\", \"
    \" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"