j-Flow
- Идентификаторите не могат да съдържат
__
Конфигуриране:
width {Number}ширина на Flow дизайнер, по подразбиране:6000height {Number}- височина на дизайнера на потока, по подразбиране:6000grid {Number}размер на мрежата, по подразбиране:25paddingX {Number}Вътрешно поддръжка и дефолт:6curvedlines {Boolean}позволява закръглени линии, по подразбиране:falseinfopath {String}- пътят към променлив/метод, отговор:{ zoom: Number, selected: Object }undopath {String}е пътят към променлив/метод, отговорът е обектredopath {String}е пътят към променлив/метод, отговорът е обектondrop {String}Пътят към методаfn(dropmeta, grid)onmake {String}е пътят към методаfn(el, com), той се изпълнява, когато компонентът е създаденondone {String}е пътят към методаfn(el, com), той се изпълнява, когато компонентът е създаденonmove {String}Пътят към методаfn(el, com/group, type), тя се изпълнява, когато компонентът / групата се движиonremove {String}е пътят към методаfn(el, com), той се изпълнява, когато компонентът е премахнатonconnect {String}е пътят към методаfn(meta), той се изпълнява, когато двете компоненти са свързаниondisconnect {String}Пътят към методаfn(meta)Извършва се, когато двете компоненти са разединени.- NEW
onpause {String}пътят към методаfn(path, is), той се изпълнява, когато изходът / входа е спрян steplines {Boolean}позволява стъпка линии (дефолт:false)- Анимационен радиус
animationradius {Number}в пиксели (предварително:5) contextmenu {String}е път къмfunction(e, type, component/meta)(типът може да бъдеmap,component,connection,group)dblclick {String}Пътят къмfunction(component)outputoffsetX {Number}е дефолт X за точка на изход (дефолта:10)outputoffsetY {Number}е дефолт Y отстъпка за точка на изход (дефолта:12)inputoffsetX {Number}- дефолт X за входната точка (дефолта:10)inputoffsetY {Number}е дефолт Y отстъпка за входната точка (дефолта:12)snapping {Number}Изтегляне в пиксели (дефолт:0• инвалидност)multiple {Boolean}позволява многократно избиране на компонента (предварително:true)history {Number}- броят на стъпките в историята на undo/redo (предварително:100)animationlimit {Number}- максимален брой точки за всички анимации (предварително:100)animationlimitconnection {Number}- Максимален брой точки на връзка (предварително:5)allowpause {Boolean}позволява спиране на изходите / входа (предварително:true)markers {Boolean}добавя стрелките към връзката (предварително:true)
Командиране:
flow.refreshпреизчислява позициитеflow.selected.disconnectотключва избраната връзкаflow.selected.removeпремахва избрания компонентflow.selected.clearпремахва избрания компонент или връзкаflow.zoomизпълнява зом, аргумент:type(може да бъде:in,out,resetилиpercentage {Number}), втори опционен аргумент -percentageflow.undoизпълнява стъпкаflow.redoизпълнява готов кракflow.resetРедактиранеflow.components.addдобавя нов компонент, аргумент:component_declarationflow.components.findнамира компонент, аргумент:component_idflow.cleanпочиства данни и несъществуващи връзкиflow.traffic(componentid__outputid, { count: 3, speed: 3, limit: 20, delay: 50, reverse: false })Анимация- Анимацията на
reverseможе да бъде активирана чрез добавяне на_като стартиране на идентификатора на_componentid__outputid
- Анимацията на
- NEW
flow.groups.findнамира група, аргумент:group_id - NEW
flow.checkе нова по-бърза алтернатива на командатаflow.refresh - NEW
flow.findнамира компонент или група, аргумент:component_idилиgroup_id
Добавяне на нов компонент:
- Съставът автоматично създава идентификатор на компонента
connectionsе{Object}
// Component declaration
var component = {
x: 100,
y: 50,
html: 'Component test',
outputs: ['1 output name', '2 output name'],
// or
// outputs: [{ id: 'A', name: 'A output name' }, { id: 'B', name: 'B output name', color: '#FF8E37' }],
connections: { '0': [{ id: '0002', index: '2', disabled: false }] }, // Look to the connection object below
// or
// connections: { 'A': [{ id: '0002', index: 'B', disabled: false }] },
actions: { select: true, move: true, disabled: false, remove: true, connect: true }
};
// Appends component
CMD('flow.components.add', component);// Connection object
// connections: { '0': [CONNECTION_OBJECT1, CONNECTION_OBJECT2, CONNECTION_OBJECT3] }
{
id: 'TARGET_ID_COMPONENT',
index: '0', // An input index or index id, must be string!!!
disabled: false // Optional, it's the connection disabled? Disabled connection can't be removed
}Изходът на потока:
- Върни
Object, чиито ключове саIDот компонентите
{
'F1562743923216': { x: 1, y: 1, connections: [], ... },
'F1562743965303': { x: 1, y: 1, connections: [], ... },
// Contains paused endpoints
paused: { 'input__COMPONENTID__INDEXID': 1, 'output__COMPONENTID__INDEXID': 1 },
// Contains groups
groups: [{ id: 'GroupID', name: 'Name', x: 100, y: 100, width: 100, height: 100, background: 'rgba(0,0,0,0.1)', color: '#000', border: 'rgba(0,0,0,0.1)' }, ...];
}Добре е да се знае:
- Всеки компонент (в потока) съдържа клас
f-COMPONENTNAME - Класа
selectableв елемента позволява копиране на текст и прекъсване connectionsподкрепяtype:"transform"с дъска
Използвайте го с <ui-component name="flow">Когато компонентът все още не е зареден, jComponent Изтегляне на първия адрес в DEF.fallback (След това Componentator Източник: Питър Шерка Componentator Съставни съставки, лиценз на MIT.
<style>
.toolbar { margin-bottom: 10px; }
.toolbar button { min-width: 26px; height: 24px; background-color: transparent; border: 0; font-size: 12px; color: gray; }
.toolbar button span { margin-left: 3px; }
.toolbar button[name="remove"] { color: red !important; }
.toolbar button:disabled { color: #C0C0C0 !important; cursor: not-allowed; }
.toolbar button:hover { color: black; }
.toolbar button:first-child { border-left: 0; }
</style>
<div class="toolbar">
<button is="is-button" path="floweditor.undo" config="enabled:value && value.length > 0;click:floweditor_undo" disabled="disabled"><i class="ti ti-undo"></i></button>
<button is="is-button" path="floweditor.redo" config="enabled:value && value.length > 0;click:floweditor_redo" disabled="disabled"><i class="ti ti-redo"></i></button>
<button is="is-button" path="floweditor.info.selected" config="enabled;click:floweditor_remove" name="remove" disabled="disabled"><i class="ti ti-trash"></i></button>
</div>
<ui-component name="flow" path="flowmodel" config="width:6000;height:6000;grid:26;infopath:floweditor.info;undopath:floweditor.undo;redopath:floweditor.redo"></ui-component>
<script>
var flowmodel = {
groups: [{ id: 'G12345', name: 'My group', x: 50, y: 50, width: 300, height: 300 }],
'F1562743923216': { x: 100, y: 150, html: 'Component 1', outputs: ['Done', 'Error'], connections: { '0': [{ id: 'F1562743965303', index: '2', disabled: false }] }},
'F1562743965303': { x: 500, y: 250, html: 'Component 2', inputs: ['1', '2', '3'] }
};
var floweditor = {};
function floweditor_undo() {
CMD('flow.undo');
}
function floweditor_redo() {
CMD('flow.redo');
}
function floweditor_remove() {
CMD('flow.selected.clear');
}
// Extend buttons for using Web components
customElements.define('is-button', class extends HTMLButtonElement {
constructor() {
super();
setTimeout(NEWUIBIND, 2, this);
}
}, { extends: 'button' });
</script>