-
diff --git a/lib/Modeler.js b/lib/Modeler.js
index f527360..998323b 100644
--- a/lib/Modeler.js
+++ b/lib/Modeler.js
@@ -4,12 +4,13 @@ var inherits = require('inherits'),
BaseBpmnModeler = require('bpmn-js/lib/Modeler'),
// load additional modules
additionalModules = [
- require('./panel'),
- require('diagram-js/lib/i18n'),
- require('bpmn-js-i18next'),
- require('./translate'),
- require('./context-pad'),
- require('./palette'),
+ require('./panel'),
+ require('diagram-js/lib/i18n'),
+ require('bpmn-js-i18next'),
+ require('./translate'),
+ require('./context-pad'),
+ require('./palette'),
+ require('./palette-override'), //
require('./popup-menu'),//,
require('./replace'),
// Descomentar en producción, comentar en desarrollo
diff --git a/lib/palette-override/Palette.js b/lib/palette-override/Palette.js
new file mode 100644
index 0000000..5765b00
--- /dev/null
+++ b/lib/palette-override/Palette.js
@@ -0,0 +1,62 @@
+'use strict';
+
+var inherits = require('inherits'),
+ BasePalette = require('diagram-js/lib/features/palette/Palette');
+
+var domify = require('min-dom/lib/domify'),
+ domQuery = require('min-dom/lib/query'),
+ domMatches = require('min-dom/lib/matches'),
+ domDelegate = require('min-dom/lib/delegate'),
+ domEvent = require('min-dom/lib/event');
+
+
+var toggleSelector = '.djs-palette-toggle',
+ entrySelector = '.entry',
+ elementSelector = toggleSelector + ', ' + entrySelector;
+
+function Palette(config, eventBus, dragging) {
+ this._parent = config.parent;
+ BasePalette.call(this, eventBus, {}, dragging);
+}
+
+inherits(Palette, BasePalette);
+
+/**
+ * Override init method
+ */
+Palette.prototype._init = function() {
+ var parent = domQuery(this._parent),
+ container = this._container = domify(BasePalette.HTML_MARKUP),
+ self = this;
+
+ parent.appendChild(container);
+
+ domDelegate.bind(container, elementSelector, 'click', function(event) {
+
+ var target = event.delegateTarget;
+
+ if (domMatches(target, toggleSelector)) {
+ return self.toggle();
+ }
+
+ self.trigger('click', event);
+ });
+
+ // prevent drag propagation
+ domEvent.bind(container, 'mousedown', function(event) {
+ event.stopPropagation();
+ });
+
+ // prevent drag propagation
+ domDelegate.bind(container, entrySelector, 'dragstart', function(event) {
+ self.trigger('dragstart', event);
+ });
+
+ this._eventBus.fire('palette.create', {
+ html: container
+ });
+};
+
+Palette.$inject = [ 'config.paletteOverride', 'eventBus', 'dragging' ];
+
+module.exports = Palette;
\ No newline at end of file
diff --git a/lib/palette-override/index.js b/lib/palette-override/index.js
new file mode 100644
index 0000000..62fb77e
--- /dev/null
+++ b/lib/palette-override/index.js
@@ -0,0 +1,4 @@
+module.exports = {
+ __init__: [ 'palette' ],
+ palette: [ 'type', require('./Palette') ]
+};
\ No newline at end of file
diff --git a/lib/palette/index.js b/lib/palette/index.js
index 2af7fbe..dfcb703 100644
--- a/lib/palette/index.js
+++ b/lib/palette/index.js
@@ -1,6 +1,6 @@
module.exports = {
__depends__: [
- require('diagram-js/lib/features/palette'),
+ require('../palette-override'),
require('diagram-js/lib/features/create'),
require('diagram-js/lib/features/space-tool'),
require('diagram-js/lib/features/lasso-tool'),