├── .eslintrc ├── packages ├── examples │ ├── complete-demo │ │ ├── src │ │ │ ├── server │ │ │ │ ├── utils.spec.js │ │ │ │ ├── fsm │ │ │ │ │ ├── index.js │ │ │ │ │ └── fsm.js │ │ │ │ ├── schema │ │ │ │ │ ├── index.js │ │ │ │ │ └── schema.js │ │ │ │ ├── storage │ │ │ │ │ ├── index.js │ │ │ │ │ └── storage.js │ │ │ │ ├── objectConfig │ │ │ │ │ ├── index.js │ │ │ │ │ ├── objectConfig.js │ │ │ │ │ └── objectConfiguration.json │ │ │ │ ├── data │ │ │ │ │ ├── conditions │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── userHasRoles.js │ │ │ │ │ └── actions │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── updateProcessedBy.js │ │ │ │ │ │ ├── sendMail.js │ │ │ │ │ │ └── testAction.js │ │ │ │ ├── routes │ │ │ │ │ ├── states.js │ │ │ │ │ ├── history.js │ │ │ │ │ ├── sendEvent.js │ │ │ │ │ ├── availableTransitions.js │ │ │ │ │ ├── objects.js │ │ │ │ │ └── editorData.js │ │ │ │ ├── utils.js │ │ │ │ └── index.js │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── styles.css │ │ │ │ │ ├── App.react.js │ │ │ │ │ └── Editor.react.js │ │ │ │ ├── constants.js │ │ │ │ ├── customComponentsRegistry │ │ │ │ │ ├── index.js │ │ │ │ │ └── FullName.react.js │ │ │ │ ├── uiGlobalComponents │ │ │ │ │ ├── uiMessageNotifications │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── styles.css │ │ │ │ │ │ └── Notifications.js │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ └── common.js │ │ ├── .gitignore │ │ ├── .eslintrc │ │ ├── config │ │ │ ├── mocha-setup.js │ │ │ └── webpack.config.js │ │ └── package.json │ ├── process-task-manager-ui │ │ ├── src │ │ │ ├── client │ │ │ │ ├── components │ │ │ │ │ ├── index.js │ │ │ │ │ └── TaskList.react.js │ │ │ │ ├── workflow │ │ │ │ │ ├── objectConfiguration.json │ │ │ │ │ ├── conditions.js │ │ │ │ │ ├── actions.js │ │ │ │ │ └── process-schema.json │ │ │ │ ├── static │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── img │ │ │ │ │ │ └── flags.png │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── Lato-Black.woff │ │ │ │ │ │ ├── Lato-Bold.woff │ │ │ │ │ │ ├── Lato-Italic.woff │ │ │ │ │ │ ├── Lato-Light.woff │ │ │ │ │ │ ├── Lato-Hairline.woff │ │ │ │ │ │ ├── Lato-Regular.woff │ │ │ │ │ │ ├── Lato-BlackItalic.woff │ │ │ │ │ │ ├── Lato-BoldItalic.woff │ │ │ │ │ │ ├── Lato-LightItalic.woff │ │ │ │ │ │ ├── Lato-HairlineItalic.woff │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ ├── font-awesome │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ └── fontawesome-webfont.woff │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ ├── index.js │ │ │ │ └── index.html │ │ │ └── server │ │ │ │ └── index.js │ │ ├── package.json │ │ └── webpack.development.config.js │ └── invoice-console │ │ ├── machine-schema.json │ │ ├── package.json │ │ └── forms.js ├── integration-tests │ └── history │ │ ├── .gitignore │ │ ├── data │ │ ├── conditions.js │ │ ├── actions.js │ │ ├── objectConfiguration.json │ │ └── schema.json │ │ └── package.json ├── core │ ├── src │ │ ├── .eslintrc │ │ ├── specs │ │ │ ├── .eslintrc │ │ │ ├── Machine.currentState.spec.js │ │ │ ├── Machine.isInFinalState.spec.js │ │ │ ├── Machine.is.spec.js │ │ │ ├── Machine.availableStates.spec.js │ │ │ ├── Machine.isRunning.spec.js │ │ │ ├── MachineDefinition.objectAlias.spec.js │ │ │ ├── MachineDefinition.contructor.spec.js │ │ │ ├── Machine.availableTransitions.spec.js │ │ │ ├── Machine.availableAutomaticTransitions.spec.js │ │ │ ├── MachineDefinition.availableStates.spec.js │ │ │ ├── ModelDefinition.prepareParams.spec.js │ │ │ ├── Machine.start.spec.js │ │ │ ├── Machine.getHistory.spec.js │ │ │ ├── Machine.can-and-cannot.spec.js │ │ │ └── Machine.constructor.spec.js │ │ └── index.js │ ├── config │ │ └── mocha-setup.js │ ├── actionsAndConditions.md │ └── package.json ├── editor │ ├── src │ │ ├── index.js │ │ ├── components │ │ │ ├── Actions │ │ │ │ ├── index.js │ │ │ │ ├── actionPropTypes.js │ │ │ │ ├── ActionInvocationEditor.less │ │ │ │ ├── ActionsTable.less │ │ │ │ └── utils.js │ │ │ ├── CodeEditor │ │ │ │ ├── index.js │ │ │ │ ├── CodeEditor.react.js │ │ │ │ └── codemirror-placeholder-mod.js │ │ │ ├── Guards │ │ │ │ ├── index.js │ │ │ │ ├── utils.js │ │ │ │ ├── guardPropTypes.js │ │ │ │ └── Guards.less │ │ │ ├── ParamsEditor │ │ │ │ ├── index.js │ │ │ │ ├── components │ │ │ │ │ ├── PathExpressionInputInjector │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── ExpressionInput.react.js │ │ │ │ │ │ ├── ExpressionSwitcher.react.js │ │ │ │ │ │ ├── ExpressionEditor.react.js │ │ │ │ │ │ └── PathExpressionInputInjector.react.js │ │ │ │ │ ├── ArrayEditor.less │ │ │ │ │ ├── DateInput.less │ │ │ │ │ ├── BooleanInput.react.js │ │ │ │ │ ├── StringInput.react.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── GenericInput.react.js │ │ │ │ │ ├── EnumInput.react.js │ │ │ │ │ ├── DateInput.react.js │ │ │ │ │ ├── IntegerInput.react.js │ │ │ │ │ ├── DecimalInput.react.js │ │ │ │ │ ├── MultiSelect.react.js │ │ │ │ │ └── ArrayEditor.react.js │ │ │ │ └── ParamsEditor.react.js │ │ │ ├── StatesTable │ │ │ │ ├── index.js │ │ │ │ ├── statePropTypes.js │ │ │ │ ├── StateEditor.spec.js │ │ │ │ ├── DeleteStateDialogBody.spec.js │ │ │ │ ├── DeleteStateDialogBody.react.js │ │ │ │ └── StatesTable.spec.js │ │ │ ├── ConfirmDialog │ │ │ │ └── index.js │ │ │ ├── WorkflowGraph │ │ │ │ ├── index.js │ │ │ │ └── WorkflowGraph.less │ │ │ ├── TransitionsTable │ │ │ │ ├── index.js │ │ │ │ └── TransitionsTable.spec.js │ │ │ ├── WorkflowEditor │ │ │ │ ├── index.js │ │ │ │ ├── styles.less │ │ │ │ └── customComponents │ │ │ │ │ └── FullName.react.js │ │ │ ├── ErrorLabel.react.js │ │ │ ├── schemaConfigPropTypes.js │ │ │ ├── Label.react.js │ │ │ ├── EditorOutput.react.js │ │ │ ├── Select │ │ │ │ └── index.js │ │ │ ├── TopForm.spec.js │ │ │ ├── utils.spec.js │ │ │ ├── TopForm.react.js │ │ │ ├── ErrorLabel.spec.js │ │ │ ├── TopButtons.react.js │ │ │ ├── utils.js │ │ │ └── ObjectInspector.react.js │ │ └── i18n │ │ │ └── index.js │ ├── config │ │ ├── .eslintrc │ │ ├── webpack.config.build.js │ │ ├── mocha-config.js │ │ ├── webpack.config.showroom.js │ │ └── webpack.config.common.js │ ├── scripts │ │ └── gh-pages │ │ │ ├── build.sh │ │ │ └── deploy.sh │ ├── .gitattributes │ ├── www │ │ ├── index.html │ │ └── index-page.js │ ├── .gitignore │ └── README.md ├── history │ ├── src │ │ ├── models │ │ │ ├── .eslintrc │ │ │ ├── interfaces │ │ │ │ ├── index.js │ │ │ │ └── workflowTransitionHistory.js │ │ │ ├── migrations │ │ │ │ ├── 20181218111220-create-index-WorkflowTransHist_boid_idx.js │ │ │ │ ├── 20200320081228-insert-WorkflowTransHist-indexes.js │ │ │ │ └── 20180123102827-create-workflowTransitionHistory.js │ │ │ └── definitions │ │ │ │ ├── index.js │ │ │ │ └── workflowTransitionHistory.js │ │ ├── index.spec.js │ │ └── index.js │ ├── .eslintrc │ ├── .npmignore │ └── package.json └── task-manager │ ├── src │ ├── specs │ │ ├── .eslintrc │ │ ├── utils.doUntil.spec.js │ │ ├── TaskManager.eventSending.spec.js │ │ └── TaskManager.monitoring.spec.js │ ├── .eslintrc │ ├── index.js │ └── utils.js │ ├── config │ ├── mocha-setup.js │ └── webpack.config.js │ └── package.json ├── .github └── issue_template.md ├── .gitattributes ├── .gitignore ├── lerna.json ├── Dockerfile ├── .editorconfig ├── package.json ├── .dockerignore ├── existingFsmLibsReview.md └── README.md /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "opuscapita" 3 | } 4 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/utils.spec.js: -------------------------------------------------------------------------------- 1 | // TODO 2 | -------------------------------------------------------------------------------- /packages/integration-tests/history/.gitignore: -------------------------------------------------------------------------------- 1 | /data/testdb.sqlite -------------------------------------------------------------------------------- /packages/core/src/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/specs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/editor/src/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./components/WorkflowEditor'); 2 | -------------------------------------------------------------------------------- /packages/history/src/models/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/task-manager/src/specs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/client/components/styles.css: -------------------------------------------------------------------------------- 1 | .dropdown-menu a { 2 | font-size: 12px 3 | } -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/fsm/index.js: -------------------------------------------------------------------------------- 1 | import fsm from './fsm'; 2 | 3 | export default fsm; 4 | -------------------------------------------------------------------------------- /packages/task-manager/src/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "es6": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/components/index.js: -------------------------------------------------------------------------------- 1 | export default from './Container.react'; 2 | -------------------------------------------------------------------------------- /packages/task-manager/src/index.js: -------------------------------------------------------------------------------- 1 | import TaskManager from './TaskManager'; 2 | 3 | export { 4 | TaskManager 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/schema/index.js: -------------------------------------------------------------------------------- 1 | import schema from './schema'; 2 | 3 | export default schema; 4 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/workflow/objectConfiguration.json: -------------------------------------------------------------------------------- 1 | { 2 | "stateFieldName": "status" 3 | } -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/storage/index.js: -------------------------------------------------------------------------------- 1 | import storage from './storage'; 2 | 3 | export default storage; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/Actions/index.js: -------------------------------------------------------------------------------- 1 | import ActionsTable from './ActionsTable.react'; 2 | 3 | export default ActionsTable; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/CodeEditor/index.js: -------------------------------------------------------------------------------- 1 | import CodeEditor from './CodeEditor.react'; 2 | 3 | export default CodeEditor; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/Guards/index.js: -------------------------------------------------------------------------------- 1 | import GuardsTable from './GuardsTable.react'; 2 | 3 | export default GuardsTable; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/ParamsEditor/index.js: -------------------------------------------------------------------------------- 1 | import ParamsEditor from './ParamsEditor.react'; 2 | 3 | export default ParamsEditor; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/StatesTable/index.js: -------------------------------------------------------------------------------- 1 | import StatesTable from './StatesTable.react'; 2 | 3 | export default StatesTable; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/ConfirmDialog/index.js: -------------------------------------------------------------------------------- 1 | import ConfirmDialog from './ConfirmDialog.react'; 2 | 3 | export default ConfirmDialog; 4 | -------------------------------------------------------------------------------- /packages/editor/src/components/WorkflowGraph/index.js: -------------------------------------------------------------------------------- 1 | import WorkflowGraph from './WorkflowGraph.react'; 2 | 3 | export default WorkflowGraph; 4 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | 2 | Meta-Info | Value 3 | -- | -- 4 | ExtProjectId | ??? 5 | Original Estimation | ???h 6 | Remaining Estimation | ???h 7 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/.gitignore: -------------------------------------------------------------------------------- 1 | src/server/storage/demo.sqlite 2 | src/server/schema/workflow-schema.json 3 | src/compiled-server 4 | build -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/client/constants.js: -------------------------------------------------------------------------------- 1 | export const notificationSuccess = 'success'; 2 | export const notificationError = 'error'; 3 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/objectConfig/index.js: -------------------------------------------------------------------------------- 1 | import objectConfig from './objectConfig'; 2 | 3 | export default objectConfig; 4 | -------------------------------------------------------------------------------- /packages/history/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "opuscapita", 3 | "env": { 4 | "node": true, 5 | "es6": true, 6 | "mocha": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/editor/src/components/TransitionsTable/index.js: -------------------------------------------------------------------------------- 1 | import TransitionsTable from './TransitionsTable.react'; 2 | 3 | export default TransitionsTable; 4 | -------------------------------------------------------------------------------- /packages/integration-tests/history/data/conditions.js: -------------------------------------------------------------------------------- 1 | const guard1 = () => true 2 | 3 | guard1.paramsSchema = {} 4 | 5 | module.exports = { 6 | guard1 7 | } -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Automatically normalize line endings for all text-based files 2 | # http://git-scm.com/docs/gitattributes#_end_of_line_conversion 3 | * text=lf 4 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/data/conditions/index.js: -------------------------------------------------------------------------------- 1 | import userHasRoles from './userHasRoles'; 2 | 3 | export default { 4 | userHasRoles 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/client/customComponentsRegistry/index.js: -------------------------------------------------------------------------------- 1 | import FullName from './FullName.react'; 2 | 3 | export default { 4 | fullName: FullName 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/src/index.js: -------------------------------------------------------------------------------- 1 | import Machine from './Machine'; 2 | import MachineDefinition from './MachineDefinition'; 3 | 4 | export { 5 | Machine, 6 | MachineDefinition 7 | } 8 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/client/uiGlobalComponents/uiMessageNotifications/index.js: -------------------------------------------------------------------------------- 1 | import Notifications from './Notifications'; 2 | 3 | export default Notifications; 4 | -------------------------------------------------------------------------------- /packages/editor/config/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "opuscapita", 3 | "env": { 4 | "jasmine": true, 5 | "browser": true, 6 | "node": true, 7 | "es6": true 8 | } 9 | } -------------------------------------------------------------------------------- /packages/examples/complete-demo/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "opuscapita", 3 | "env": { 4 | "jasmine": true, 5 | "browser": true, 6 | "node": true, 7 | "es6": true 8 | } 9 | } -------------------------------------------------------------------------------- /packages/core/config/mocha-setup.js: -------------------------------------------------------------------------------- 1 | // set node evn 2 | process.env.NODE_ENV = 'test'; 3 | 4 | require('babel-register')({ 5 | presets: ['es2015', 'stage-0'], 6 | plugins: ['istanbul'] 7 | }); 8 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/favicon.ico -------------------------------------------------------------------------------- /packages/examples/complete-demo/config/mocha-setup.js: -------------------------------------------------------------------------------- 1 | // set node evn 2 | process.env.NODE_ENV = 'test'; 3 | 4 | require('babel-register')({ 5 | presets: ['env'], 6 | plugins: ['istanbul'] 7 | }); 8 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/img/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/img/flags.png -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/client/uiGlobalComponents/index.js: -------------------------------------------------------------------------------- 1 | const uiMessageNotifications = require('./uiMessageNotifications').default; 2 | 3 | module.exports = { 4 | uiMessageNotifications 5 | } 6 | -------------------------------------------------------------------------------- /packages/task-manager/config/mocha-setup.js: -------------------------------------------------------------------------------- 1 | // set node evn 2 | process.env.NODE_ENV = 'test'; 3 | 4 | require('babel-register')({ 5 | presets: ['es2015', 'stage-0'], 6 | plugins: ['istanbul'] 7 | }); 8 | -------------------------------------------------------------------------------- /packages/history/src/models/interfaces/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = sequelize => { 4 | return require('./workflowTransitionHistory.js')(sequelize.model('WorkflowTransitionHistory')); 5 | } 6 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Black.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Bold.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Italic.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Light.woff -------------------------------------------------------------------------------- /packages/editor/src/components/ParamsEditor/components/PathExpressionInputInjector/index.js: -------------------------------------------------------------------------------- 1 | import PathExpressionInputInjector from './PathExpressionInputInjector.react'; 2 | 3 | export default PathExpressionInputInjector; 4 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Hairline.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Hairline.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-Regular.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-BlackItalic.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-BoldItalic.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-LightItalic.woff -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-HairlineItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/Lato-HairlineItalic.woff -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/common.js: -------------------------------------------------------------------------------- 1 | // export const objectIdProp = 'invoiceNo'; 2 | // export const eventsProp = 'ocfsm_demo__events'; 3 | 4 | module.exports = { 5 | objectIdProp: 'invoiceNo', 6 | eventsProp: 'ocfsm_demo__events' 7 | } 8 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /packages/editor/scripts/gh-pages/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm -rf .gh-pages-tmp && 4 | node node_modules/@opuscapita/react-showroom-server/src/bin/showroom-scan.js src && 5 | node node_modules/webpack/bin/webpack.js --config config/webpack.config.showroom.js -------------------------------------------------------------------------------- /packages/editor/src/components/ParamsEditor/components/ArrayEditor.less: -------------------------------------------------------------------------------- 1 | .oc-fsm-crud-editor--table-array-editor { 2 | width: 100%; 3 | } 4 | 5 | .oc-fsm-crud-editor--table-array-editor td { 6 | vertical-align: top !important; 7 | padding-bottom: 5px; 8 | } -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import Container from './components'; 4 | 5 | ReactDOM.render( 6 | , 7 | document.getElementById("root") 8 | ); 9 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/font-awesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/font-awesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/font-awesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/font-awesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/static/fonts/font-awesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpusCapita/fsm-workflow/HEAD/packages/examples/process-task-manager-ui/src/client/static/fonts/font-awesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/client/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './components/App.react'; 4 | 5 | export const render = (element, props = {}) => { 6 | ReactDOM.render(, element); 7 | } 8 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/data/actions/index.js: -------------------------------------------------------------------------------- 1 | import testAction from './testAction'; 2 | import sendMail from './sendMail'; 3 | import updateProcessedBy from './updateProcessedBy'; 4 | 5 | export default { 6 | testAction, 7 | sendMail, 8 | updateProcessedBy 9 | } 10 | -------------------------------------------------------------------------------- /packages/editor/src/components/Guards/utils.js: -------------------------------------------------------------------------------- 1 | import { isDef } from '../utils'; 2 | 3 | export const removeEmptyParams = ({ params = [], ...rest }) => { 4 | const newParams = params.filter(({ value }) => isDef(value)); 5 | return { ...rest, ...(newParams.length && { params: newParams }) } 6 | } 7 | -------------------------------------------------------------------------------- /packages/editor/src/components/Actions/actionPropTypes.js: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types'; 2 | 3 | export default PropTypes.shape({ 4 | name: PropTypes.string.isRequired, 5 | params: PropTypes.arrayOf(PropTypes.shape({ 6 | name: PropTypes.string.isRequired, 7 | value: PropTypes.any 8 | })) 9 | }); 10 | -------------------------------------------------------------------------------- /packages/editor/src/components/WorkflowEditor/index.js: -------------------------------------------------------------------------------- 1 | import WorkflowEditor from './WorkflowEditor.react'; 2 | import withExpressionInput from '../ParamsEditor/components/PathExpressionInputInjector'; 3 | 4 | export default WorkflowEditor; 5 | 6 | // enable usage with custom components 7 | export { withExpressionInput }; 8 | -------------------------------------------------------------------------------- /packages/editor/.gitattributes: -------------------------------------------------------------------------------- 1 | # Automatically normalize line endings for all text-based files 2 | # http://git-scm.com/docs/gitattributes#_end_of_line_conversion 3 | * text=lf 4 | 5 | # Declare files that will always have LF line endings on checkout. 6 | *.js text eol=lf 7 | *.sh text eol=lf 8 | *.css text eol=lf 9 | *.json text eol=lf -------------------------------------------------------------------------------- /packages/integration-tests/history/data/actions.js: -------------------------------------------------------------------------------- 1 | const action1 = () => {} 2 | 3 | action1.paramsSchema = { 4 | type: "object", 5 | properties: { 6 | param1: { 7 | type: "integer" 8 | }, 9 | param2: { 10 | type: "integer" 11 | } 12 | } 13 | } 14 | 15 | module.exports = { 16 | action1 17 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .*.swp 2 | node_modules 3 | .log 4 | yarn.lock 5 | package-lock.json 6 | *.log 7 | test-results.xml 8 | test-results/report.xml 9 | .idea 10 | .nyc_output 11 | coverage 12 | .gh-pages-tmp 13 | 14 | packages/core/lib 15 | packages/gui/lib 16 | packages/task-manager/lib 17 | packages/business-object-history/.sequelizerc 18 | -------------------------------------------------------------------------------- /packages/examples/process-task-manager-ui/src/client/workflow/conditions.js: -------------------------------------------------------------------------------- 1 | export default { 2 | isJaneDoe: ({firstName, lastName}) => { 3 | return firstName === 'Jane' && lastName === 'Doe' 4 | }, 5 | 6 | isEvenAged: ({age}) => { 7 | return parseInt(age) % 2 === 0; 8 | }, 9 | 10 | isTrue: ({}) => {return true} 11 | } 12 | -------------------------------------------------------------------------------- /packages/examples/complete-demo/src/server/routes/states.js: -------------------------------------------------------------------------------- 1 | import express from 'express' 2 | import schema from '../schema'; 3 | 4 | const router = express.Router(); 5 | 6 | router.get('/api/states', async(req, res) => { 7 | const { states } = await schema.getSchema(); 8 | res.send({ states }) 9 | }) 10 | 11 | export default router; 12 | -------------------------------------------------------------------------------- /packages/editor/src/components/ErrorLabel.react.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import Label from './Label.react'; 4 | 5 | export default function ErrorLabel({ error }) { 6 | return ( 7 |