/*! JointJS v0.9.7 - JavaScript diagramming library 2016-04-20
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
// JointJS library.
// (c) 2011-2013 client IO
joint.shapes.erd = {};
joint.shapes.erd.Entity = joint.dia.Element.extend({
markup: '',
defaults: joint.util.deepSupplement({
type: 'erd.Entity',
size: { width: 150, height: 60 },
attrs: {
'.outer': {
fill: '#2ECC71', stroke: '#27AE60', 'stroke-width': 2,
points: '100,0 100,60 0,60 0,0'
},
'.inner': {
fill: '#2ECC71', stroke: '#27AE60', 'stroke-width': 2,
points: '95,5 95,55 5,55 5,5',
display: 'none'
},
text: {
text: 'Entity',
'font-family': 'Arial', 'font-size': 14,
ref: '.outer', 'ref-x': .5, 'ref-y': .5,
'x-alignment': 'middle', 'y-alignment': 'middle'
}
}
}, joint.dia.Element.prototype.defaults)
});
joint.shapes.erd.WeakEntity = joint.shapes.erd.Entity.extend({
defaults: joint.util.deepSupplement({
type: 'erd.WeakEntity',
attrs: {
'.inner' : { display: 'auto' },
text: { text: 'Weak Entity' }
}
}, joint.shapes.erd.Entity.prototype.defaults)
});
joint.shapes.erd.Relationship = joint.dia.Element.extend({
markup: '',
defaults: joint.util.deepSupplement({
type: 'erd.Relationship',
size: { width: 80, height: 80 },
attrs: {
'.outer': {
fill: '#3498DB', stroke: '#2980B9', 'stroke-width': 2,
points: '40,0 80,40 40,80 0,40'
},
'.inner': {
fill: '#3498DB', stroke: '#2980B9', 'stroke-width': 2,
points: '40,5 75,40 40,75 5,40',
display: 'none'
},
text: {
text: 'Relationship',
'font-family': 'Arial', 'font-size': 12,
ref: '.', 'ref-x': .5, 'ref-y': .5,
'x-alignment': 'middle', 'y-alignment': 'middle'
}
}
}, joint.dia.Element.prototype.defaults)
});
joint.shapes.erd.IdentifyingRelationship = joint.shapes.erd.Relationship.extend({
defaults: joint.util.deepSupplement({
type: 'erd.IdentifyingRelationship',
attrs: {
'.inner': { display: 'auto' },
text: { text: 'Identifying' }
}
}, joint.shapes.erd.Relationship.prototype.defaults)
});
joint.shapes.erd.Attribute = joint.dia.Element.extend({
markup: '',
defaults: joint.util.deepSupplement({
type: 'erd.Attribute',
size: { width: 100, height: 50 },
attrs: {
'ellipse': {
transform: 'translate(50, 25)'
},
'.outer': {
stroke: '#D35400', 'stroke-width': 2,
cx: 0, cy: 0, rx: 50, ry: 25,
fill: '#E67E22'
},
'.inner': {
stroke: '#D35400', 'stroke-width': 2,
cx: 0, cy: 0, rx: 45, ry: 20,
fill: '#E67E22', display: 'none'
},
text: {
'font-family': 'Arial', 'font-size': 14,
ref: '.', 'ref-x': .5, 'ref-y': .5,
'x-alignment': 'middle', 'y-alignment': 'middle'
}
}
}, joint.dia.Element.prototype.defaults)
});
joint.shapes.erd.Multivalued = joint.shapes.erd.Attribute.extend({
defaults: joint.util.deepSupplement({
type: 'erd.Multivalued',
attrs: {
'.inner': { display: 'block' },
text: { text: 'multivalued' }
}
}, joint.shapes.erd.Attribute.prototype.defaults)
});
joint.shapes.erd.Derived = joint.shapes.erd.Attribute.extend({
defaults: joint.util.deepSupplement({
type: 'erd.Derived',
attrs: {
'.outer': { 'stroke-dasharray': '3,5' },
text: { text: 'derived' }
}
}, joint.shapes.erd.Attribute.prototype.defaults)
});
joint.shapes.erd.Key = joint.shapes.erd.Attribute.extend({
defaults: joint.util.deepSupplement({
type: 'erd.Key',
attrs: {
ellipse: { 'stroke-width': 4 },
text: { text: 'key', 'font-weight': '800', 'text-decoration': 'underline' }
}
}, joint.shapes.erd.Attribute.prototype.defaults)
});
joint.shapes.erd.Normal = joint.shapes.erd.Attribute.extend({
defaults: joint.util.deepSupplement({
type: 'erd.Normal',
attrs: { text: { text: 'Normal' }}
}, joint.shapes.erd.Attribute.prototype.defaults)
});
joint.shapes.erd.ISA = joint.dia.Element.extend({
markup: '',
defaults: joint.util.deepSupplement({
type: 'erd.ISA',
size: { width: 100, height: 50 },
attrs: {
polygon: {
points: '0,0 50,50 100,0',
fill: '#F1C40F', stroke: '#F39C12', 'stroke-width': 2
},
text: {
text: 'ISA', 'font-size': 18,
ref: 'polygon', 'ref-x': .5, 'ref-y': .3,
'x-alignment': 'middle', 'y-alignment': 'middle'
}
}
}, joint.dia.Element.prototype.defaults)
});
joint.shapes.erd.Line = joint.dia.Link.extend({
defaults: { type: 'erd.Line' },
cardinality: function(value) {
this.set('labels', [{ position: -20, attrs: { text: { dy: -8, text: value }}}]);
}
});