'use strict'; var getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject, cmdHelper = require('../helper/CmdHelper'), escapeHTML = require('../Utils').escapeHTML; var entryFieldDescription = require('./EntryFieldDescription'); var checkbox = function(options, defaultParameters) { var resource = defaultParameters, id = resource.id, label = options.label || id, canBeDisabled = !!options.disabled && typeof options.disabled === 'function', canBeHidden = !!options.hidden && typeof options.hidden === 'function', description = options.description; resource.html = '' + ''; // add description below checkbox entry field if (description) { resource.html += entryFieldDescription(description); } resource.get = function(element) { var bo = getBusinessObject(element), res = {}; res[options.modelProperty] = bo.get(options.modelProperty); return res; }; resource.set = function(element, values) { var res = {}; res[options.modelProperty] = !!values[options.modelProperty]; return cmdHelper.updateProperties(element, res); }; if (typeof options.set === 'function') { resource.set = options.set; } if (typeof options.get === 'function') { resource.get = options.get; } if (canBeDisabled) { resource.isDisabled = function() { return options.disabled.apply(resource, arguments); }; } if (canBeHidden) { resource.isHidden = function() { return !options.hidden.apply(resource, arguments); }; } resource.cssClasses = ['bpp-checkbox']; return resource; }; module.exports = checkbox;