iop-bpmn-react 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +294 -0
- package/README.md +294 -0
- package/dist/favicon.svg +1 -0
- package/dist/icons.svg +24 -0
- package/dist/index.css +2 -0
- package/dist/index.js +83511 -0
- package/dist/index.umd.cjs +2430 -0
- package/dist/types/components/BpmnModeler/ColorPickerPopup.d.ts +2 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/FlowablePropertiesProvider.d.ts +11 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/FlowablePropertiesProvider.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/index.d.ts +7 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/index.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/AssignmentProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/AssignmentProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/AsyncProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/AsyncProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/BusinessRuleTaskProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/BusinessRuleTaskProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/CallActivityProperties.d.ts +27 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/CallActivityProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/EventDefinitionProperties.d.ts +43 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/EventDefinitionProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ExtensionProperties.d.ts +13 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ExtensionProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ExternalTaskProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ExternalTaskProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/FieldProperties.d.ts +21 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/FieldProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/FormDataProperties.d.ts +15 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/FormDataProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/FormProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/FormProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/InitiatorProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/InitiatorProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ListenerProperties.d.ts +84 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ListenerProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/MultiInstanceProperties.d.ts +18 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/MultiInstanceProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ProcessProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ProcessProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ScriptTaskProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ScriptTaskProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ServiceTaskProperties.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/ServiceTaskProperties.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/index.d.ts +17 -0
- package/dist/types/components/BpmnModeler/FlowablePropertiesProvider/properties/index.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/LintingModule.d.ts +21 -0
- package/dist/types/components/BpmnModeler/LintingModule.d.ts.map +1 -0
- package/dist/types/components/BpmnModeler/index.d.ts +7 -0
- package/dist/types/components/BpmnModeler/index.d.ts.map +1 -0
- package/dist/types/components/BpmnViewer/index.d.ts +7 -0
- package/dist/types/components/BpmnViewer/index.d.ts.map +1 -0
- package/dist/types/hooks/useBpmn.d.ts +26 -0
- package/dist/types/hooks/useBpmn.d.ts.map +1 -0
- package/dist/types/i18n/LanguageContext.d.ts +48 -0
- package/dist/types/i18n/LanguageContext.d.ts.map +1 -0
- package/dist/types/i18n/en.d.ts +7 -0
- package/dist/types/i18n/en.d.ts.map +1 -0
- package/dist/types/i18n/index.d.ts +9 -0
- package/dist/types/i18n/index.d.ts.map +1 -0
- package/dist/types/i18n/ja.d.ts +7 -0
- package/dist/types/i18n/ja.d.ts.map +1 -0
- package/dist/types/i18n/zh.d.ts +7 -0
- package/dist/types/i18n/zh.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +48 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +54 -0
package/README.en.md
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
# IOP BPMN React Plugin
|
|
2
|
+
|
|
3
|
+
A React component library based on [bpmn.js](https://bpmn.io/toolkit/bpmn-js/) with complete Flowable extension property support.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🎨 **Out of the box** - Provides BpmnViewer and BpmnModeler React components
|
|
8
|
+
- 📝 **Flowable Extensions** - Complete support for 26 Flowable/activiti extension types
|
|
9
|
+
- 🌐 **Internationalization** - Built-in Chinese translation support
|
|
10
|
+
- 🎯 **TypeScript** - Full type definitions
|
|
11
|
+
- 📦 **Multiple formats** - ES Module and UMD formats
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install iop-bpmn-react
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { BpmnViewer, BpmnModeler } from 'iop-bpmn-react'
|
|
23
|
+
import 'iop-bpmn-react/style.css'
|
|
24
|
+
|
|
25
|
+
// Read-only viewer
|
|
26
|
+
function Viewer() {
|
|
27
|
+
return <BpmnViewer bpmnXml={xml} />
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Editable modeler
|
|
31
|
+
function Modeler() {
|
|
32
|
+
return <BpmnModeler bpmnXml={xml} />
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Development Commands
|
|
37
|
+
|
|
38
|
+
| Task | Command |
|
|
39
|
+
|------|---------|
|
|
40
|
+
| Dev server | `npm run dev` |
|
|
41
|
+
| Build library | `npm run build` |
|
|
42
|
+
| Lint | `npm run lint` |
|
|
43
|
+
| Preview build | `npm run preview` |
|
|
44
|
+
|
|
45
|
+
## Project Structure
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
src/
|
|
49
|
+
├── lib/ # Library source (build entry)
|
|
50
|
+
│ ├── index.ts # Unified exports + bpmn-js styles
|
|
51
|
+
│ ├── components/
|
|
52
|
+
│ │ ├── BpmnViewer/ # Read-only viewer component
|
|
53
|
+
│ │ └── BpmnModeler/ # Editable modeler component
|
|
54
|
+
│ │ ├── FlowablePropertiesProvider/ # Flowable properties panel
|
|
55
|
+
│ │ └── flowable-bpmn-moddle/ # Flowable moddle extension
|
|
56
|
+
│ ├── hooks/
|
|
57
|
+
│ │ └── useBpmn.ts # Common hook (bpmn-js lifecycle)
|
|
58
|
+
│ ├── i18n/
|
|
59
|
+
│ │ └── zh.ts # Chinese translations
|
|
60
|
+
│ ├── resources/
|
|
61
|
+
│ │ └── flowable.json # Flowable moddle descriptor
|
|
62
|
+
│ └── types/
|
|
63
|
+
│ └── index.ts # Type definitions
|
|
64
|
+
├── App.tsx # Demo app (development)
|
|
65
|
+
├── main.tsx # Demo entry
|
|
66
|
+
└── ...
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Flowable Extension Properties Support
|
|
70
|
+
|
|
71
|
+
This project provides complete support for Flowable/activiti BPMN extension properties through `FlowablePropertiesProvider` with visual editing in the properties panel.
|
|
72
|
+
|
|
73
|
+
### Moddle Descriptor Types
|
|
74
|
+
|
|
75
|
+
A total of **26** Flowable extension types are defined:
|
|
76
|
+
|
|
77
|
+
| Type Name | Extends | Properties |
|
|
78
|
+
|-----------|---------|------------|
|
|
79
|
+
| `Process` | bpmn:Process | candidateStarterGroups, candidateStarterUsers |
|
|
80
|
+
| `Assignable` | bpmn:UserTask | assignee, candidateUsers, candidateGroups, dueDate, followUpDate, priority |
|
|
81
|
+
| `TaskFormSupported` | bpmn:UserTask | formKey, formFieldValidation |
|
|
82
|
+
| `StartFormSupported` | bpmn:StartEvent | formKey, formFieldValidation |
|
|
83
|
+
| `Initiator` | bpmn:StartEvent | initiator |
|
|
84
|
+
| `AsyncCapable` | bpmn:Activity, bpmn:Gateway, bpmn:Event | async, asyncBefore, asyncAfter, exclusive |
|
|
85
|
+
| `ServiceTaskLike` | bpmn:ServiceTask, bpmn:BusinessRuleTask, bpmn:SendTask | class, delegateExpression, expression, resultVariable |
|
|
86
|
+
| `ScriptTaskLike` | bpmn:ScriptTask | autoStoreVariables, resultVariable, failedJobRetryTimeCycle |
|
|
87
|
+
| `DmnCapable` | bpmn:BusinessRuleTask | decisionTable, decisionRef, decisionRefBinding, mapDecisionResult, resultVariable |
|
|
88
|
+
| `ExternalCapable` | bpmn:ServiceTask | topic, taskPriority |
|
|
89
|
+
| `VariableMappingCapable` | bpmn:CallActivity | variableMappingClass, variableMappingDelegateExpression |
|
|
90
|
+
| `Collectable` | bpmn:MultiInstanceLoopCharacteristics | collection, elementVariable |
|
|
91
|
+
| `FormData` | — | formProperty[] |
|
|
92
|
+
| `FormProperty` | — | id, name, type, expression, variable, default, datePattern, readable, writable, required, formValues[] |
|
|
93
|
+
| `FormValue` | — | id, name |
|
|
94
|
+
| `Properties` | — | values (Property[]) |
|
|
95
|
+
| `Property` | — | id, name, value |
|
|
96
|
+
| `In` | — | source, sourceExpression, target, variables |
|
|
97
|
+
| `Out` | — | source, sourceExpression, target, variables |
|
|
98
|
+
| `Field` | — | name, stringValue, expression |
|
|
99
|
+
| `ExecutionListener` | — | expression, class, delegateExpression, event, field[] |
|
|
100
|
+
| `TaskListener` | — | expression, class, delegateExpression, event, field[] |
|
|
101
|
+
| `FailedJobRetryTimeCycle` | — | body |
|
|
102
|
+
| `SignalEventDefinitionExtension` | bpmn:SignalEventDefinition | signalExpression |
|
|
103
|
+
| `ErrorEventDefinitionExtension` | bpmn:ErrorEventDefinition | errorCodeVariable, errorMessageVariable |
|
|
104
|
+
| `ConditionalEventDefinitionExtension` | bpmn:ConditionalEventDefinition | variableName, variableEvents |
|
|
105
|
+
|
|
106
|
+
### Properties Panel Groups
|
|
107
|
+
|
|
108
|
+
The properties panel automatically displays relevant property groups based on the element type:
|
|
109
|
+
|
|
110
|
+
#### Process
|
|
111
|
+
- **Process** - Candidate starter groups, candidate starter users
|
|
112
|
+
|
|
113
|
+
#### Start Event
|
|
114
|
+
- **Form** - Form key, form field validation
|
|
115
|
+
- **Form Data** - Form properties list (with enum values)
|
|
116
|
+
- **Initiator** - Initiator variable name
|
|
117
|
+
- **Execution Listeners** - With field injection support
|
|
118
|
+
|
|
119
|
+
#### User Task
|
|
120
|
+
- **Assignment** - Assignee, candidate users, candidate groups, due date, follow-up date, priority
|
|
121
|
+
- **Form** - Form key, form field validation
|
|
122
|
+
- **Form Data** - Form properties list (with enum values)
|
|
123
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
124
|
+
- **Task Listeners** - With field injection support
|
|
125
|
+
|
|
126
|
+
#### Service Task
|
|
127
|
+
- **Implementation** - Java class, delegate expression, expression, result variable
|
|
128
|
+
- **External Task** - Topic, task priority
|
|
129
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
130
|
+
- **Execution Listeners** - With field injection support
|
|
131
|
+
- **Field Injection** - Field name, string value, expression
|
|
132
|
+
- **Extension Properties** - Custom key-value pairs
|
|
133
|
+
|
|
134
|
+
#### Business Rule Task
|
|
135
|
+
- **Implementation** - Java class, delegate expression, expression, result variable
|
|
136
|
+
- **Decision** - Decision reference, decision binding, map decision result, result variable
|
|
137
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
138
|
+
- **Execution Listeners** - With field injection support
|
|
139
|
+
- **Field Injection** - Field name, string value, expression
|
|
140
|
+
- **Extension Properties** - Custom key-value pairs
|
|
141
|
+
|
|
142
|
+
#### Script Task
|
|
143
|
+
- **Script** - Script format, result variable, auto store variables
|
|
144
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
145
|
+
- **Execution Listeners** - With field injection support
|
|
146
|
+
- **Field Injection** - Field name, string value, expression
|
|
147
|
+
- **Extension Properties** - Custom key-value pairs
|
|
148
|
+
|
|
149
|
+
#### Call Activity
|
|
150
|
+
- **Variable Mapping** - Variable mapping class, variable mapping delegate expression
|
|
151
|
+
- **In/Out Mappings** - In/Out mapping list
|
|
152
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
153
|
+
- **Execution Listeners** - With field injection support
|
|
154
|
+
- **Extension Properties** - Custom key-value pairs
|
|
155
|
+
|
|
156
|
+
#### Gateway
|
|
157
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
158
|
+
- **Execution Listeners** - With field injection support
|
|
159
|
+
- **Extension Properties** - Custom key-value pairs
|
|
160
|
+
|
|
161
|
+
#### Event
|
|
162
|
+
- **Async** - Async before, async after, exclusive, failed job retry time cycle
|
|
163
|
+
- **Execution Listeners** - With field injection support
|
|
164
|
+
- **Extension Properties** - Custom key-value pairs
|
|
165
|
+
|
|
166
|
+
#### Signal Event Definition
|
|
167
|
+
- **Signal** - Signal expression
|
|
168
|
+
|
|
169
|
+
#### Error Event Definition
|
|
170
|
+
- **Error** - Error code variable, error message variable
|
|
171
|
+
|
|
172
|
+
#### Conditional Event Definition
|
|
173
|
+
- **Condition** - Variable name, variable events
|
|
174
|
+
|
|
175
|
+
#### Multi-Instance
|
|
176
|
+
- **Multi-Instance** - Collection, element variable
|
|
177
|
+
|
|
178
|
+
### Property Descriptions
|
|
179
|
+
|
|
180
|
+
#### Assignment Properties
|
|
181
|
+
| Property | Description | Example |
|
|
182
|
+
|----------|-------------|---------|
|
|
183
|
+
| assignee | Task assignee | `john` or `${assignee}` |
|
|
184
|
+
| candidateUsers | Candidate users (comma-separated) | `user1,user2` |
|
|
185
|
+
| candidateGroups | Candidate groups (comma-separated) | `group1,group2` |
|
|
186
|
+
| dueDate | Due date | `2024-12-31` or `${dueDate}` |
|
|
187
|
+
| followUpDate | Follow-up date | `2024-12-31` or `${followUpDate}` |
|
|
188
|
+
| priority | Priority | `50` or `${priority}` |
|
|
189
|
+
|
|
190
|
+
#### Form Properties
|
|
191
|
+
| Property | Description | Example |
|
|
192
|
+
|----------|-------------|---------|
|
|
193
|
+
| formKey | Form key | `embedded:app:forms/start.html` |
|
|
194
|
+
| formFieldValidation | Form field validation | `true` / `false` |
|
|
195
|
+
|
|
196
|
+
#### Async Configuration
|
|
197
|
+
| Property | Description | Default |
|
|
198
|
+
|----------|-------------|---------|
|
|
199
|
+
| asyncBefore | Async before | `false` |
|
|
200
|
+
| asyncAfter | Async after | `false` |
|
|
201
|
+
| exclusive | Exclusive | `true` |
|
|
202
|
+
| failedJobRetryTimeCycle | Failed job retry time cycle | `R3/PT10M` |
|
|
203
|
+
|
|
204
|
+
#### Service Task Implementation
|
|
205
|
+
| Property | Description | Example |
|
|
206
|
+
|----------|-------------|---------|
|
|
207
|
+
| class | Java class | `com.example.MyDelegate` |
|
|
208
|
+
| delegateExpression | Delegate expression | `${myDelegate}` |
|
|
209
|
+
| expression | Expression | `${myService.execute(execution)}` |
|
|
210
|
+
| resultVariable | Result variable | `result` |
|
|
211
|
+
|
|
212
|
+
#### Business Rule Task Decision
|
|
213
|
+
| Property | Description | Example |
|
|
214
|
+
|----------|-------------|---------|
|
|
215
|
+
| decisionRef | Decision reference | `myDecision` |
|
|
216
|
+
| decisionRefBinding | Decision binding | `latest` / `deployment` / `versionTag` |
|
|
217
|
+
| mapDecisionResult | Map decision result | `singleEntry` / `singleResult` / `collectEntries` / `resultList` |
|
|
218
|
+
| resultVariable | Result variable | `result` |
|
|
219
|
+
|
|
220
|
+
#### Script Task
|
|
221
|
+
| Property | Description | Example |
|
|
222
|
+
|----------|-------------|---------|
|
|
223
|
+
| scriptFormat | Script format | `groovy` / `javascript` |
|
|
224
|
+
| resultVariable | Result variable | `result` |
|
|
225
|
+
| autoStoreVariables | Auto store variables | `true` / `false` |
|
|
226
|
+
|
|
227
|
+
#### External Task
|
|
228
|
+
| Property | Description | Example |
|
|
229
|
+
|----------|-------------|---------|
|
|
230
|
+
| topic | Topic | `myTopic` |
|
|
231
|
+
| taskPriority | Task priority | `50` |
|
|
232
|
+
|
|
233
|
+
#### Call Activity Variable Mapping
|
|
234
|
+
| Property | Description | Example |
|
|
235
|
+
|----------|-------------|---------|
|
|
236
|
+
| variableMappingClass | Variable mapping class | `com.example.MyMapping` |
|
|
237
|
+
| variableMappingDelegateExpression | Variable mapping delegate expression | `${myMapping}` |
|
|
238
|
+
|
|
239
|
+
#### Initiator
|
|
240
|
+
| Property | Description | Example |
|
|
241
|
+
|----------|-------------|---------|
|
|
242
|
+
| initiator | Initiator variable name | `initiator` |
|
|
243
|
+
|
|
244
|
+
#### Listeners
|
|
245
|
+
| Property | Description | Example |
|
|
246
|
+
|----------|-------------|---------|
|
|
247
|
+
| event | Event type | `start` / `end` / `create` / `assignment` / `complete` / `delete` / `update` / `timeout` |
|
|
248
|
+
| class | Java class | `com.example.MyListener` |
|
|
249
|
+
| expression | Expression | `${myListener.notify(execution)}` |
|
|
250
|
+
| delegateExpression | Delegate expression | `${myListener}` |
|
|
251
|
+
| field | Field injection | Supports name, stringValue, expression |
|
|
252
|
+
|
|
253
|
+
#### Field Injection
|
|
254
|
+
| Property | Description | Example |
|
|
255
|
+
|----------|-------------|---------|
|
|
256
|
+
| name | Field name | `myField` |
|
|
257
|
+
| stringValue | String value | `hello` |
|
|
258
|
+
| expression | Expression | `${myVariable}` |
|
|
259
|
+
|
|
260
|
+
#### Extension Properties
|
|
261
|
+
Custom key-value pairs for storing arbitrary extension information.
|
|
262
|
+
|
|
263
|
+
#### Multi-Instance
|
|
264
|
+
| Property | Description | Example |
|
|
265
|
+
|----------|-------------|---------|
|
|
266
|
+
| collection | Collection variable or expression | `${users}` |
|
|
267
|
+
| elementVariable | Element variable name | `user` |
|
|
268
|
+
|
|
269
|
+
#### Form Data
|
|
270
|
+
Supports `flowable:formData` and `flowable:formProperty`, including:
|
|
271
|
+
- Form properties: id, name, type, expression, variable, default, datePattern
|
|
272
|
+
- Property options: readable, writable, required
|
|
273
|
+
- Enum values: formValues (id, name)
|
|
274
|
+
|
|
275
|
+
#### Event Definition Extensions
|
|
276
|
+
| Event Type | Property | Description |
|
|
277
|
+
|------------|----------|-------------|
|
|
278
|
+
| Signal Event | signalExpression | Signal expression |
|
|
279
|
+
| Error Event | errorCodeVariable | Error code variable |
|
|
280
|
+
| Error Event | errorMessageVariable | Error message variable |
|
|
281
|
+
| Conditional Event | variableName | Variable name |
|
|
282
|
+
| Conditional Event | variableEvents | Variable events (comma-separated) |
|
|
283
|
+
|
|
284
|
+
## Tech Stack
|
|
285
|
+
|
|
286
|
+
- **Vite** - Build tool
|
|
287
|
+
- **React 18** + TypeScript
|
|
288
|
+
- **bpmn-js** - BPMN 2.0 process diagram engine
|
|
289
|
+
- **bpmn-js-properties-panel** - Properties panel component
|
|
290
|
+
- **bpmn-js-i18n** - Internationalization translations
|
|
291
|
+
|
|
292
|
+
## License
|
|
293
|
+
|
|
294
|
+
MIT
|
package/README.md
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
# 智能运维与IT工作台前端BPMN流程插件
|
|
2
|
+
|
|
3
|
+
基于 [bpmn.js](https://bpmn.io/toolkit/bpmn-js/) 封装的 React 组件库,同时提供 Viewer(只读查看)和 Modeler(可编辑建模)两个组件,并深度集成了 Flowable 扩展属性支持。
|
|
4
|
+
|
|
5
|
+
## 特性
|
|
6
|
+
|
|
7
|
+
- 🎨 **开箱即用** - 提供 BpmnViewer 和 BpmnModeler 两个 React 组件
|
|
8
|
+
- 📝 **Flowable 扩展属性** - 完整支持 26 种 Flowable/activiti 扩展类型
|
|
9
|
+
- 🌐 **国际化** - 内置中文翻译支持
|
|
10
|
+
- 🎯 **TypeScript** - 完整的类型定义
|
|
11
|
+
- 📦 **多种构建格式** - 支持 ES Module 和 UMD 格式
|
|
12
|
+
|
|
13
|
+
## 安装
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install iop-bpmn-react
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 快速开始
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { BpmnViewer, BpmnModeler } from 'iop-bpmn-react'
|
|
23
|
+
import 'iop-bpmn-react/style.css'
|
|
24
|
+
|
|
25
|
+
// 只读查看
|
|
26
|
+
function Viewer() {
|
|
27
|
+
return <BpmnViewer bpmnXml={xml} />
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// 可编辑建模
|
|
31
|
+
function Modeler() {
|
|
32
|
+
return <BpmnModeler bpmnXml={xml} />
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 开发命令
|
|
37
|
+
|
|
38
|
+
| 任务 | 命令 |
|
|
39
|
+
|------|------|
|
|
40
|
+
| 启动开发服务器 | `npm run dev` |
|
|
41
|
+
| 构建库 | `npm run build` |
|
|
42
|
+
| 代码检查 | `npm run lint` |
|
|
43
|
+
| 预览构建产物 | `npm run preview` |
|
|
44
|
+
|
|
45
|
+
## 项目结构
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
src/
|
|
49
|
+
├── lib/ # 库源码(构建入口)
|
|
50
|
+
│ ├── index.ts # 统一导出 + bpmn-js 样式引入
|
|
51
|
+
│ ├── components/
|
|
52
|
+
│ │ ├── BpmnViewer/ # 只读查看器组件
|
|
53
|
+
│ │ └── BpmnModeler/ # 可编辑建模器组件
|
|
54
|
+
│ │ ├── FlowablePropertiesProvider/ # Flowable 属性面板
|
|
55
|
+
│ │ └── flowable-bpmn-moddle/ # Flowable moddle 扩展
|
|
56
|
+
│ ├── hooks/
|
|
57
|
+
│ │ └── useBpmn.ts # 公共 hook(封装 bpmn-js 生命周期)
|
|
58
|
+
│ ├── i18n/
|
|
59
|
+
│ │ └── zh.ts # 中文翻译
|
|
60
|
+
│ ├── resources/
|
|
61
|
+
│ │ └── flowable.json # Flowable moddle 描述符
|
|
62
|
+
│ └── types/
|
|
63
|
+
│ └── index.ts # 类型定义
|
|
64
|
+
├── App.tsx # Demo 应用(开发调试用)
|
|
65
|
+
├── main.tsx # Demo 入口
|
|
66
|
+
└── ...
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Flowable 扩展属性支持
|
|
70
|
+
|
|
71
|
+
本项目完整支持 Flowable/activiti 的 BPMN 扩展属性,通过 `FlowablePropertiesProvider` 在属性面板中提供可视化编辑。
|
|
72
|
+
|
|
73
|
+
### Moddle 描述符类型
|
|
74
|
+
|
|
75
|
+
共定义 **26 种** Flowable 扩展类型:
|
|
76
|
+
|
|
77
|
+
| 类型名称 | 扩展目标 | 属性 |
|
|
78
|
+
|----------|----------|------|
|
|
79
|
+
| `Process` | bpmn:Process | candidateStarterGroups, candidateStarterUsers |
|
|
80
|
+
| `Assignable` | bpmn:UserTask | assignee, candidateUsers, candidateGroups, dueDate, followUpDate, priority |
|
|
81
|
+
| `TaskFormSupported` | bpmn:UserTask | formKey, formFieldValidation |
|
|
82
|
+
| `StartFormSupported` | bpmn:StartEvent | formKey, formFieldValidation |
|
|
83
|
+
| `Initiator` | bpmn:StartEvent | initiator |
|
|
84
|
+
| `AsyncCapable` | bpmn:Activity, bpmn:Gateway, bpmn:Event | async, asyncBefore, asyncAfter, exclusive |
|
|
85
|
+
| `ServiceTaskLike` | bpmn:ServiceTask, bpmn:BusinessRuleTask, bpmn:SendTask | class, delegateExpression, expression, resultVariable |
|
|
86
|
+
| `ScriptTaskLike` | bpmn:ScriptTask | autoStoreVariables, resultVariable, failedJobRetryTimeCycle |
|
|
87
|
+
| `DmnCapable` | bpmn:BusinessRuleTask | decisionTable, decisionRef, decisionRefBinding, mapDecisionResult, resultVariable |
|
|
88
|
+
| `ExternalCapable` | bpmn:ServiceTask | topic, taskPriority |
|
|
89
|
+
| `VariableMappingCapable` | bpmn:CallActivity | variableMappingClass, variableMappingDelegateExpression |
|
|
90
|
+
| `Collectable` | bpmn:MultiInstanceLoopCharacteristics | collection, elementVariable |
|
|
91
|
+
| `FormData` | — | formProperty[] |
|
|
92
|
+
| `FormProperty` | — | id, name, type, expression, variable, default, datePattern, readable, writable, required, formValues[] |
|
|
93
|
+
| `FormValue` | — | id, name |
|
|
94
|
+
| `Properties` | — | values (Property[]) |
|
|
95
|
+
| `Property` | — | id, name, value |
|
|
96
|
+
| `In` | — | source, sourceExpression, target, variables |
|
|
97
|
+
| `Out` | — | source, sourceExpression, target, variables |
|
|
98
|
+
| `Field` | — | name, stringValue, expression |
|
|
99
|
+
| `ExecutionListener` | — | expression, class, delegateExpression, event, field[] |
|
|
100
|
+
| `TaskListener` | — | expression, class, delegateExpression, event, field[] |
|
|
101
|
+
| `FailedJobRetryTimeCycle` | — | body |
|
|
102
|
+
| `SignalEventDefinitionExtension` | bpmn:SignalEventDefinition | signalExpression |
|
|
103
|
+
| `ErrorEventDefinitionExtension` | bpmn:ErrorEventDefinition | errorCodeVariable, errorMessageVariable |
|
|
104
|
+
| `ConditionalEventDefinitionExtension` | bpmn:ConditionalEventDefinition | variableName, variableEvents |
|
|
105
|
+
|
|
106
|
+
### 属性面板分组
|
|
107
|
+
|
|
108
|
+
属性面板根据元素类型自动显示对应的属性分组:
|
|
109
|
+
|
|
110
|
+
#### 流程 (Process)
|
|
111
|
+
- **流程属性** - 候选启动组、候选启动用户
|
|
112
|
+
|
|
113
|
+
#### 开始事件 (StartEvent)
|
|
114
|
+
- **表单** - 表单键、表单字段验证
|
|
115
|
+
- **表单数据** - 表单属性列表(支持枚举值)
|
|
116
|
+
- **发起者** - 发起者变量名
|
|
117
|
+
- **执行监听器** - 支持字段注入
|
|
118
|
+
|
|
119
|
+
#### 用户任务 (UserTask)
|
|
120
|
+
- **分配** - 负责人、候选用户、候选组、到期日期、跟进日期、优先级
|
|
121
|
+
- **表单** - 表单键、表单字段验证
|
|
122
|
+
- **表单数据** - 表单属性列表(支持枚举值)
|
|
123
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
124
|
+
- **任务监听器** - 支持字段注入
|
|
125
|
+
|
|
126
|
+
#### 服务任务 (ServiceTask)
|
|
127
|
+
- **实现** - Java类、委托表达式、表达式、结果变量
|
|
128
|
+
- **外部任务** - 主题、任务优先级
|
|
129
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
130
|
+
- **执行监听器** - 支持字段注入
|
|
131
|
+
- **字段注入** - 字段名、字符串值、表达式
|
|
132
|
+
- **扩展属性** - 自定义键值对
|
|
133
|
+
|
|
134
|
+
#### 业务规则任务 (BusinessRuleTask)
|
|
135
|
+
- **实现** - Java类、委托表达式、表达式、结果变量
|
|
136
|
+
- **决策** - 决策引用、决策绑定、映射决策结果、结果变量
|
|
137
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
138
|
+
- **执行监听器** - 支持字段注入
|
|
139
|
+
- **字段注入** - 字段名、字符串值、表达式
|
|
140
|
+
- **扩展属性** - 自定义键值对
|
|
141
|
+
|
|
142
|
+
#### 脚本任务 (ScriptTask)
|
|
143
|
+
- **脚本** - 脚本格式、结果变量、自动存储变量
|
|
144
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
145
|
+
- **执行监听器** - 支持字段注入
|
|
146
|
+
- **字段注入** - 字段名、字符串值、表达式
|
|
147
|
+
- **扩展属性** - 自定义键值对
|
|
148
|
+
|
|
149
|
+
#### 调用活动 (CallActivity)
|
|
150
|
+
- **变量映射** - 变量映射类、变量映射委托表达式
|
|
151
|
+
- **输入/输出映射** - In/Out 映射列表
|
|
152
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
153
|
+
- **执行监听器** - 支持字段注入
|
|
154
|
+
- **扩展属性** - 自定义键值对
|
|
155
|
+
|
|
156
|
+
#### 网关 (Gateway)
|
|
157
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
158
|
+
- **执行监听器** - 支持字段注入
|
|
159
|
+
- **扩展属性** - 自定义键值对
|
|
160
|
+
|
|
161
|
+
#### 事件 (Event)
|
|
162
|
+
- **异步配置** - 异步前、异步后、排他、失败重试周期
|
|
163
|
+
- **执行监听器** - 支持字段注入
|
|
164
|
+
- **扩展属性** - 自定义键值对
|
|
165
|
+
|
|
166
|
+
#### 信号事件定义 (SignalEventDefinition)
|
|
167
|
+
- **信号** - 信号表达式
|
|
168
|
+
|
|
169
|
+
#### 错误事件定义 (ErrorEventDefinition)
|
|
170
|
+
- **错误** - 错误代码变量、错误消息变量
|
|
171
|
+
|
|
172
|
+
#### 条件事件定义 (ConditionalEventDefinition)
|
|
173
|
+
- **条件** - 变量名、变量事件
|
|
174
|
+
|
|
175
|
+
#### 多实例 (MultiInstance)
|
|
176
|
+
- **多实例** - 集合、元素变量
|
|
177
|
+
|
|
178
|
+
### 属性说明
|
|
179
|
+
|
|
180
|
+
#### 分配属性
|
|
181
|
+
| 属性 | 说明 | 示例 |
|
|
182
|
+
|------|------|------|
|
|
183
|
+
| assignee | 任务负责人 | `张三` 或 `${assignee}` |
|
|
184
|
+
| candidateUsers | 候选用户(逗号分隔) | `user1,user2` |
|
|
185
|
+
| candidateGroups | 候选组(逗号分隔) | `group1,group2` |
|
|
186
|
+
| dueDate | 到期日期 | `2024-12-31` 或 `${dueDate}` |
|
|
187
|
+
| followUpDate | 跟进日期 | `2024-12-31` 或 `${followUpDate}` |
|
|
188
|
+
| priority | 优先级 | `50` 或 `${priority}` |
|
|
189
|
+
|
|
190
|
+
#### 表单属性
|
|
191
|
+
| 属性 | 说明 | 示例 |
|
|
192
|
+
|------|------|------|
|
|
193
|
+
| formKey | 表单键 | `embedded:app:forms/start.html` |
|
|
194
|
+
| formFieldValidation | 表单字段验证 | `true` / `false` |
|
|
195
|
+
|
|
196
|
+
#### 异步配置
|
|
197
|
+
| 属性 | 说明 | 默认值 |
|
|
198
|
+
|------|------|--------|
|
|
199
|
+
| asyncBefore | 异步前 | `false` |
|
|
200
|
+
| asyncAfter | 异步后 | `false` |
|
|
201
|
+
| exclusive | 排他 | `true` |
|
|
202
|
+
| failedJobRetryTimeCycle | 失败重试周期 | `R3/PT10M` |
|
|
203
|
+
|
|
204
|
+
#### 服务任务实现
|
|
205
|
+
| 属性 | 说明 | 示例 |
|
|
206
|
+
|------|------|------|
|
|
207
|
+
| class | Java类 | `com.example.MyDelegate` |
|
|
208
|
+
| delegateExpression | 委托表达式 | `${myDelegate}` |
|
|
209
|
+
| expression | 表达式 | `${myService.execute(execution)}` |
|
|
210
|
+
| resultVariable | 结果变量 | `result` |
|
|
211
|
+
|
|
212
|
+
#### 业务规则任务决策
|
|
213
|
+
| 属性 | 说明 | 示例 |
|
|
214
|
+
|------|------|------|
|
|
215
|
+
| decisionRef | 决策引用 | `myDecision` |
|
|
216
|
+
| decisionRefBinding | 决策绑定 | `latest` / `deployment` / `versionTag` |
|
|
217
|
+
| mapDecisionResult | 映射决策结果 | `singleEntry` / `singleResult` / `collectEntries` / `resultList` |
|
|
218
|
+
| resultVariable | 结果变量 | `result` |
|
|
219
|
+
|
|
220
|
+
#### 脚本任务
|
|
221
|
+
| 属性 | 说明 | 示例 |
|
|
222
|
+
|------|------|------|
|
|
223
|
+
| scriptFormat | 脚本格式 | `groovy` / `javascript` |
|
|
224
|
+
| resultVariable | 结果变量 | `result` |
|
|
225
|
+
| autoStoreVariables | 自动存储变量 | `true` / `false` |
|
|
226
|
+
|
|
227
|
+
#### 外部任务
|
|
228
|
+
| 属性 | 说明 | 示例 |
|
|
229
|
+
|------|------|------|
|
|
230
|
+
| topic | 主题 | `myTopic` |
|
|
231
|
+
| taskPriority | 任务优先级 | `50` |
|
|
232
|
+
|
|
233
|
+
#### 调用活动变量映射
|
|
234
|
+
| 属性 | 说明 | 示例 |
|
|
235
|
+
|------|------|------|
|
|
236
|
+
| variableMappingClass | 变量映射类 | `com.example.MyMapping` |
|
|
237
|
+
| variableMappingDelegateExpression | 变量映射委托表达式 | `${myMapping}` |
|
|
238
|
+
|
|
239
|
+
#### 发起者
|
|
240
|
+
| 属性 | 说明 | 示例 |
|
|
241
|
+
|------|------|------|
|
|
242
|
+
| initiator | 发起者变量名 | `initiator` |
|
|
243
|
+
|
|
244
|
+
#### 监听器
|
|
245
|
+
| 属性 | 说明 | 示例 |
|
|
246
|
+
|------|------|------|
|
|
247
|
+
| event | 事件类型 | `start` / `end` / `create` / `assignment` / `complete` / `delete` / `update` / `timeout` |
|
|
248
|
+
| class | Java类 | `com.example.MyListener` |
|
|
249
|
+
| expression | 表达式 | `${myListener.notify(execution)}` |
|
|
250
|
+
| delegateExpression | 委托表达式 | `${myListener}` |
|
|
251
|
+
| field | 字段注入 | 支持 name, stringValue, expression |
|
|
252
|
+
|
|
253
|
+
#### 字段注入
|
|
254
|
+
| 属性 | 说明 | 示例 |
|
|
255
|
+
|------|------|------|
|
|
256
|
+
| name | 字段名 | `myField` |
|
|
257
|
+
| stringValue | 字段值 | `hello` |
|
|
258
|
+
| expression | 表达式 | `${myVariable}` |
|
|
259
|
+
|
|
260
|
+
#### 扩展属性
|
|
261
|
+
自定义键值对,可用于存储任意扩展信息。
|
|
262
|
+
|
|
263
|
+
#### 多实例
|
|
264
|
+
| 属性 | 说明 | 示例 |
|
|
265
|
+
|------|------|------|
|
|
266
|
+
| collection | 集合变量或表达式 | `${users}` |
|
|
267
|
+
| elementVariable | 元素变量名 | `user` |
|
|
268
|
+
|
|
269
|
+
#### 表单数据
|
|
270
|
+
支持 `flowable:formData` 和 `flowable:formProperty`,包括:
|
|
271
|
+
- 表单属性:id, name, type, expression, variable, default, datePattern
|
|
272
|
+
- 属性选项:readable, writable, required
|
|
273
|
+
- 枚举值:formValues (id, name)
|
|
274
|
+
|
|
275
|
+
#### 事件定义扩展
|
|
276
|
+
| 事件类型 | 属性 | 说明 |
|
|
277
|
+
|----------|------|------|
|
|
278
|
+
| 信号事件 | signalExpression | 信号表达式 |
|
|
279
|
+
| 错误事件 | errorCodeVariable | 错误代码变量 |
|
|
280
|
+
| 错误事件 | errorMessageVariable | 错误消息变量 |
|
|
281
|
+
| 条件事件 | variableName | 变量名 |
|
|
282
|
+
| 条件事件 | variableEvents | 变量事件(逗号分隔) |
|
|
283
|
+
|
|
284
|
+
## 技术栈
|
|
285
|
+
|
|
286
|
+
- **Vite** - 构建工具
|
|
287
|
+
- **React 18** + TypeScript
|
|
288
|
+
- **bpmn-js** - BPMN 2.0 流程图引擎
|
|
289
|
+
- **bpmn-js-properties-panel** - 属性面板组件
|
|
290
|
+
- **bpmn-js-i18n** - 国际化翻译
|
|
291
|
+
|
|
292
|
+
## 许可证
|
|
293
|
+
|
|
294
|
+
MIT
|
package/dist/favicon.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
|
package/dist/icons.svg
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<symbol id="bluesky-icon" viewBox="0 0 16 17">
|
|
3
|
+
<g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
|
|
4
|
+
<defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
|
|
5
|
+
</symbol>
|
|
6
|
+
<symbol id="discord-icon" viewBox="0 0 20 19">
|
|
7
|
+
<path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
|
|
8
|
+
</symbol>
|
|
9
|
+
<symbol id="documentation-icon" viewBox="0 0 21 20">
|
|
10
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
|
|
11
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
|
|
12
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
|
|
13
|
+
</symbol>
|
|
14
|
+
<symbol id="github-icon" viewBox="0 0 19 19">
|
|
15
|
+
<path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
|
|
16
|
+
</symbol>
|
|
17
|
+
<symbol id="social-icon" viewBox="0 0 20 20">
|
|
18
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
|
|
19
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
|
|
20
|
+
</symbol>
|
|
21
|
+
<symbol id="x-icon" viewBox="0 0 19 19">
|
|
22
|
+
<path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
|
|
23
|
+
</symbol>
|
|
24
|
+
</svg>
|