5.6.116 • Published 1 year ago

@devtea2026/ducimus-ullam-reprehenderit-ratione v5.6.116

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Extending the properties panel changed significantly with bpmn-js-properties-panel>=1. For the 0.x version of the library, check out the 0.x branch. Read more on the changes in the changelog.

bpmn-js-properties-panel

CI

A properties panel extension for bpmn-js that adds the ability to edit technical properties (generic and Camunda).

bpmn-js-properties-panel screenshot

Features

The properties panel allows users to edit invisible BPMN properties in a convenient way.

Some of the features are:

  • Edit element ids, multi-instance details and more
  • Edit execution related Camunda 7 and Camunda 8 properties
  • Redo and undo (plugs into the bpmn-js editing cycle)

Usage

Provide two HTML elements, one for the properties panel and one for the BPMN diagram:

<div class="modeler">
  <div id="canvas"></div>
  <div id="properties"></div>
</div>

Bootstrap bpmn-js with the properties panel and a properties provider:

import BpmnModeler from 'bpmn-js/lib/Modeler';
import {
  BpmnPropertiesPanelModule,
  BpmnPropertiesProviderModule,
} from 'bpmn-js-properties-panel';

const modeler = new BpmnModeler({
  container: '#canvas',
  propertiesPanel: {
    parent: '#properties'
  },
  additionalModules: [
    BpmnPropertiesPanelModule,
    BpmnPropertiesProviderModule
  ]
});

Styling

For proper styling include the necessary stylesheets:

<link rel="stylesheet" href="https://unpkg.com/@bpmn-io/properties-panel/dist/assets/properties-panel.css">

Dynamic Attach/Detach

You may attach or detach the properties panel dynamically to any element on the page, too:

const propertiesPanel = bpmnJS.get('propertiesPanel');

// detach the panel
propertiesPanel.detach();

// attach it to some other element
propertiesPanel.attachTo('#other-properties');

Edit Camunda Properties

To edit Camunda properties, you have to use a moddle extension so bpmn-js is can read and write Camunda properties and use a provider so these properties are shown in the properties panel.

For example, to edit Camunda 8 properties, use the Camunda 8 moddle extension and the Camunda 8 provider. Additionally, you should use behaviors specific to Camunda 8 to ensure parts of the model that are specific to Camunda 8 are maintained correctly.

import BpmnModeler from 'bpmn-js/lib/Modeler';
import {
  BpmnPropertiesPanelModule,
  BpmnPropertiesProviderModule,
  ZeebePropertiesProviderModule // Camunda 8 provider
} from 'bpmn-js-properties-panel';

// Camunda 8 moddle extension
import zeebeModdle from 'zeebe-bpmn-moddle/resources/zeebe';

// Camunda 8 behaviors
import ZeebeBehaviorsModule from 'camunda-bpmn-js-behaviors/lib/camunda-cloud';

const modeler = new BpmnModeler({
  container: '#canvas',
  propertiesPanel: {
    parent: '#properties'
  },
  additionalModules: [
    BpmnPropertiesPanelModule,
    BpmnPropertiesProviderModule,
    ZeebePropertiesProviderModule,
    ZeebeBehaviorsModule
  ],
  moddleExtensions: {
    zeebe: zeebeModdle
  }
});

API

BpmnPropertiesPanelRenderer#attachTo(container: HTMLElement) => void

Attach the properties panel to a parent node.

const propertiesPanel = modeler.get('propertiesPanel');

propertiesPanel.attachTo('#other-properties');

BpmnPropertiesPanelRenderer#detach() => void

Detach the properties panel from its parent node.

const propertiesPanel = modeler.get('propertiesPanel');

propertiesPanel.detach();

BpmnPropertiesPanelRenderer#registerProvider(priority: Number, provider: PropertiesProvider) => void

Register a new properties provider to the properties panel.

class ExamplePropertiesProvider {
  constructor(propertiesPanel) {
    propertiesPanel.registerProvider(500, this);
  }

  getGroups(element) {
    return (groups) => {

      // add, modify or remove groups
      // ...

      return groups;
    };
  }
}

ExamplePropertiesProvider.$inject = [ 'propertiesPanel' ];

Additional Resources

Development

Prepare the project by installing all dependencies:

npm install

Then, depending on your use-case, you may run any of the following commands:

# build the library and run all tests
npm run all

# spin up a single local modeler instance
npm start

# run the full development setup
npm run dev

License

MIT

routerFloat64ArrayES2022javascripthigher-order$.extendconnectreactjsonenvironmentsTypedArraywordwrapmixinslogcreateeslintconfigmobileESes2016rfc4122Array.prototype.containsfastcloneelasticachesequencegroupglacierflagswafutilityawesomesaucees-shimstypescriptredux-toolkitjapanesejestexit-codepipecss-in-jseverycheckextraprototypecryptoiegettercjkinternal slotless compilerstateconsumeeslint-plugincall-boundpyyamlaccessibilitysesECMAScript 3fixed-widthhascss nestingbluebirdstyled-componentsECMAScript 2016buffergetoptsymbolreadablestreamendersuperagentinspecttyped arraymochaajvmapreducetostringtagmake dirflatmomentgetOwnPropertyDescriptorrmexitviewstructuredClonejwtbyteOffsetiterationauthdirwgetfpslanguageflagdeepcopybootstrap cssparseslotpackages.envyamlcurlcore-jsbrowserlistfastmoduleslimitglobalchromiumES2018typesgraphqlvpchttpArrayBuffer#sliceclass-validatorxtermamazonerror-handlingArray.prototype.flatdefineefficientwaitstringavaArray.prototype.flattenflattenglobirqestoSortednegative zeroes8256typerecursiveschemanamestrimEndboundcommand-linefetchserializationwalkelbargsSymboluuidjQueryarraycss lessprocessbrowserslistworkspace:*workflowexecinES2016packageObject.assigncloudformationclassnamesdataViewpathpositivetrimStartArray.prototype.findLastIndexdescriptorsmime-dbkarmawordbreaktslibregularfull-widthparserreadreduxfullsearchInt8Arrayidlecode pointsdomfast-copyFunction.prototype.nameincludesclientURLSearchParamsapiSymbol.toStringTagformatio-tsecmascriptdynamodbassignreusenativeweaksetphonereduce[[Prototype]]importexportstyleguideentriesArray.prototype.flatMapMapjsdiffES2021gradients csspasswordtrimLeftcolorvestshellmatchAllgenericsbyteLengthjasminefullwidthmatcheswatcherrestbundlereast-asian-widthpruneBigInt64Arraythrottlees2015has-owncoercibletelephonepropertiesECMAScript 2022watchFileelectronauthenticationqsagentAsyncIteratorcompare@@toStringTagformsetPrototypeOfsameValueZeroresolvenumberunicodedeep-clonestatuspnpm9PromiseArray.prototype.filterWebSocketvisualES5queryRFC-6455prefixprivate datalint__proto__validimmutableECMAScript 6robusthandlersTypeScriptArray.prototype.findLastArrayBufferObject.definePropertystreams2dotenvStreamkeycloudfrontslicevalueshookformminimalconcatMaptapObject.fromEntriesspecasyncpackage managerworkertestshammkdirfolderwhatwgupidECMAScript 5encryptionimportemojicliwarningisConcatSpreadablestarterautoprefixeryupcontainstapehardlinkscolorssnsindicatortddarraybuffercopyECMAScript 2019
5.6.116

1 year ago

5.6.115

1 year ago

5.6.114

1 year ago

5.6.113

1 year ago

5.6.112

1 year ago

5.6.111

1 year ago

5.6.110

1 year ago

4.6.110

1 year ago

3.2.29

1 year ago

3.3.71

1 year ago

3.3.72

1 year ago

3.4.100

1 year ago

3.4.101

1 year ago

3.4.102

1 year ago

3.3.70

1 year ago

3.2.35

1 year ago

3.2.34

1 year ago

3.2.37

1 year ago

3.2.36

1 year ago

3.2.39

1 year ago

3.2.38

1 year ago

3.2.31

1 year ago

3.2.30

1 year ago

3.2.33

1 year ago

3.2.32

1 year ago

4.4.102

1 year ago

4.5.106

1 year ago

4.5.107

1 year ago

4.5.108

1 year ago

4.5.104

1 year ago

4.5.105

1 year ago

3.3.57

1 year ago

3.3.58

1 year ago

3.3.59

1 year ago

3.3.50

1 year ago

3.3.51

1 year ago

3.3.52

1 year ago

3.3.53

1 year ago

3.3.54

1 year ago

3.3.55

1 year ago

3.3.56

1 year ago

2.1.27

1 year ago

2.1.28

1 year ago

2.1.25

1 year ago

2.1.26

1 year ago

3.3.68

1 year ago

3.3.69

1 year ago

3.3.60

1 year ago

3.3.61

1 year ago

3.3.62

1 year ago

3.3.63

1 year ago

3.3.64

1 year ago

3.3.65

1 year ago

3.3.66

1 year ago

2.1.29

1 year ago

3.3.67

1 year ago

3.4.83

1 year ago

3.4.84

1 year ago

3.4.85

1 year ago

3.4.86

1 year ago

3.4.87

1 year ago

3.4.88

1 year ago

3.4.89

1 year ago

3.4.80

1 year ago

3.4.81

1 year ago

3.4.82

1 year ago

3.3.48

1 year ago

3.3.49

1 year ago

4.6.109

1 year ago

3.1.29

1 year ago

3.4.94

1 year ago

4.6.108

1 year ago

3.4.95

1 year ago

3.4.96

1 year ago

3.4.97

1 year ago

3.4.98

1 year ago

3.4.99

1 year ago

3.4.90

1 year ago

3.4.91

1 year ago

3.4.92

1 year ago

3.4.93

1 year ago

3.2.46

1 year ago

3.2.45

1 year ago

3.2.48

1 year ago

3.2.47

1 year ago

4.4.103

1 year ago

3.2.40

1 year ago

4.4.104

1 year ago

3.2.42

1 year ago

3.2.41

1 year ago

3.2.44

1 year ago

3.2.43

1 year ago

3.4.72

1 year ago

3.4.73

1 year ago

3.4.74

1 year ago

3.4.75

1 year ago

3.4.76

1 year ago

3.4.77

1 year ago

3.4.78

1 year ago

3.4.79

1 year ago

2.0.24

1 year ago

2.0.25

1 year ago

2.0.22

1 year ago

2.0.23

1 year ago

2.0.21

1 year ago

2.0.20

1 year ago

2.0.19

1 year ago

2.0.17

1 year ago

2.0.18

1 year ago

2.0.16

1 year ago

2.0.15

1 year ago

2.0.14

1 year ago

2.0.13

1 year ago

2.0.12

1 year ago

2.0.11

1 year ago

2.0.10

1 year ago

2.0.9

1 year ago

2.0.8

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago