@operato/process 1.1.35 → 1.1.37

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/src/modeller/property-sidebar/effects/property-event-hover.js +1 -5
  3. package/dist/src/modeller/property-sidebar/effects/property-event-hover.js.map +1 -1
  4. package/dist/src/modeller/property-sidebar/effects/property-event-tap.d.ts +1 -0
  5. package/dist/src/modeller/property-sidebar/effects/property-event-tap.js +2 -5
  6. package/dist/src/modeller/property-sidebar/effects/property-event-tap.js.map +1 -1
  7. package/dist/src/modeller/property-sidebar/inspector/inspector.d.ts +1 -1
  8. package/dist/src/ox-editor-process-selector.d.ts +15 -0
  9. package/dist/src/ox-editor-process-selector.js +86 -0
  10. package/dist/src/ox-editor-process-selector.js.map +1 -0
  11. package/dist/src/ox-process-selector.d.ts +15 -0
  12. package/dist/src/ox-process-selector.js +86 -0
  13. package/dist/src/ox-process-selector.js.map +1 -0
  14. package/dist/src/ox-property-editor-process-selector.d.ts +4 -0
  15. package/dist/src/ox-property-editor-process-selector.js +22 -0
  16. package/dist/src/ox-property-editor-process-selector.js.map +1 -0
  17. package/dist/src/selector/ox-process-creation-card.d.ts +14 -0
  18. package/dist/src/selector/ox-process-creation-card.js +87 -0
  19. package/dist/src/selector/ox-process-creation-card.js.map +1 -0
  20. package/dist/src/selector/ox-process-selector.d.ts +43 -0
  21. package/dist/src/selector/ox-process-selector.js +305 -0
  22. package/dist/src/selector/ox-process-selector.js.map +1 -0
  23. package/dist/src/selector/process-creation-card.d.ts +14 -0
  24. package/dist/src/selector/process-creation-card.js +87 -0
  25. package/dist/src/selector/process-creation-card.js.map +1 -0
  26. package/dist/src/selector/process-creation-popup.d.ts +19 -0
  27. package/dist/src/selector/process-creation-popup.js +100 -0
  28. package/dist/src/selector/process-creation-popup.js.map +1 -0
  29. package/dist/src/selector/process-selector.d.ts +44 -0
  30. package/dist/src/selector/process-selector.js +306 -0
  31. package/dist/src/selector/process-selector.js.map +1 -0
  32. package/dist/src/selector/process-thumbnail-card.d.ts +15 -0
  33. package/dist/src/selector/process-thumbnail-card.js +169 -0
  34. package/dist/src/selector/process-thumbnail-card.js.map +1 -0
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +25 -9
  37. package/src/modeller/property-sidebar/effects/property-event-hover.ts +1 -5
  38. package/src/modeller/property-sidebar/effects/property-event-tap.ts +2 -5
  39. package/src/ox-editor-process-selector.ts +91 -0
  40. package/src/ox-property-editor-process-selector.ts +23 -0
  41. package/src/selector/ox-process-creation-card.ts +94 -0
  42. package/src/selector/ox-process-selector.ts +320 -0
  43. package/src/selector/process-creation-popup.ts +102 -0
  44. package/src/selector/process-thumbnail-card.ts +175 -0
@@ -0,0 +1,102 @@
1
+ import '@material/mwc-textfield'
2
+ import '@material/mwc-textarea'
3
+ import '@material/mwc-select'
4
+ import '@material/mwc-list/mwc-list-item'
5
+ import '@material/mwc-button'
6
+
7
+ import { css, html, LitElement } from 'lit'
8
+ import { customElement, property } from 'lit/decorators.js'
9
+
10
+ import { i18next, localize } from '@operato/i18n'
11
+
12
+ @customElement('process-creation-popup')
13
+ export class ProcessCreationPopup extends localize(i18next)(LitElement) {
14
+ static get styles() {
15
+ return [
16
+ css`
17
+ :host {
18
+ display: flex;
19
+ flex-direction: column;
20
+
21
+ padding: 10px;
22
+ background-color: white;
23
+ }
24
+
25
+ :host > * {
26
+ margin: 10px;
27
+ }
28
+
29
+ [content] {
30
+ flex: 1;
31
+ display: flex;
32
+ flex-direction: column;
33
+ }
34
+
35
+ [content] > * {
36
+ margin: 10px 0;
37
+ }
38
+ `
39
+ ]
40
+ }
41
+
42
+ @property({ type: String }) defaultGroup?: string
43
+ @property({ type: Array }) groups?: { id: string; name: string }[]
44
+
45
+ render() {
46
+ var groups = this.groups || []
47
+
48
+ return html`
49
+ <div content>
50
+ <mwc-textfield label=${String(i18next.t('label.name'))} name="name" required field-name></mwc-textfield>
51
+ <mwc-textarea
52
+ label=${String(i18next.t('label.description'))}
53
+ name="description"
54
+ field-description
55
+ ></mwc-textarea>
56
+ <mwc-select
57
+ label=${String(i18next.t('label.group'))}
58
+ field-group
59
+ helper="If there is no group to choose, you can leave it empty."
60
+ >
61
+ ${groups.map(
62
+ group => html`
63
+ <mwc-list-item value=${group.id} ?selected=${this.defaultGroup == group.id}>${group.name}</mwc-list-item>
64
+ `
65
+ )}
66
+ </mwc-select>
67
+ </div>
68
+
69
+ <mwc-button
70
+ raised
71
+ label=${String(i18next.t('button.create'))}
72
+ @click=${(e: MouseEvent) => this.onClickSubmit()}
73
+ ></mwc-button>
74
+ `
75
+ }
76
+
77
+ firstUpdated() {
78
+ setTimeout(() => {
79
+ ;(this.renderRoot.querySelector('mwc-textfield') as any)?.focus()
80
+ }, 100)
81
+ }
82
+
83
+ onClickSubmit() {
84
+ var [name, description, groupId] = ['name', 'description', 'group'].map(attr => {
85
+ return (this.renderRoot.querySelector(`[field-${attr}]`) as any)?.value
86
+ })
87
+
88
+ if (!name) {
89
+ return
90
+ }
91
+
92
+ this.dispatchEvent(
93
+ new CustomEvent('create-process', {
94
+ detail: {
95
+ name,
96
+ description,
97
+ groupId
98
+ }
99
+ })
100
+ )
101
+ }
102
+ }
@@ -0,0 +1,175 @@
1
+ import { css, html, LitElement } from 'lit'
2
+ import { customElement, property } from 'lit/decorators.js'
3
+
4
+ import { i18next, localize } from '@operato/i18n'
5
+
6
+ @customElement('process-thumbnail-card')
7
+ export class ProcessThumbnailCard extends localize(i18next)(LitElement) {
8
+ static get styles() {
9
+ return [
10
+ css`
11
+ :host {
12
+ position: relative;
13
+
14
+ padding: 0;
15
+ margin: 0;
16
+ height: 100%;
17
+
18
+ -webkit-transform-style: preserve-3d;
19
+ transform-style: preserve-3d;
20
+ -webkit-transition: all 0.5s ease-in-out;
21
+ transition: all 0.5s ease-in-out;
22
+ }
23
+
24
+ :host(.flipped) {
25
+ -webkit-transform: var(--card-list-flip-transform);
26
+ transform: var(--card-list-flip-transform);
27
+ }
28
+
29
+ [front],
30
+ [back] {
31
+ position: absolute;
32
+
33
+ width: 100%;
34
+ height: 100%;
35
+ margin: 0;
36
+ padding: 0;
37
+
38
+ border: var(--card-list-create-border);
39
+ border-radius: var(--card-list-create-border-radius);
40
+
41
+ background-color: #fff;
42
+
43
+ -webkit-backface-visibility: hidden;
44
+ backface-visibility: hidden;
45
+ }
46
+
47
+ [front] {
48
+ text-align: center;
49
+ font-size: 0.8em;
50
+ color: var(--card-list-create-color);
51
+ text-transform: capitalize;
52
+ }
53
+
54
+ [front] mwc-icon {
55
+ margin-top: 15%;
56
+ display: block;
57
+ font-size: 3.5em;
58
+ color: var(--card-list-create-icon-color);
59
+ }
60
+
61
+ [back] {
62
+ -webkit-transform: var(--card-list-flip-transform);
63
+ transform: var(--card-list-flip-transform);
64
+ }
65
+
66
+ [back] form {
67
+ padding: var(--card-list-create-form-padding);
68
+ display: flex;
69
+ flex-flow: row wrap;
70
+ }
71
+
72
+ [back] form label {
73
+ flex: 1 1 25%;
74
+ font: var(--card-list-create-label-font);
75
+ color: var(--card-list-create-label-color);
76
+ }
77
+
78
+ [back] form input,
79
+ [back] form select {
80
+ flex: 1 1 60%;
81
+ width: 10px;
82
+ background-color: #fff;
83
+ border: var(--card-list-create-input-border);
84
+ border-radius: var(--card-list-create-input-border-radius);
85
+ padding: var(--card-list-create-input-padding);
86
+ font: var(--card-list-create-input-font);
87
+ color: var(--card-list-create-input-color);
88
+ }
89
+
90
+ form * {
91
+ margin: var(--card-list-create-margin);
92
+ }
93
+
94
+ input[type='submit'] {
95
+ background-color: var(--button-background-color) !important;
96
+ margin: var(--button-margin);
97
+ font: var(--button-font);
98
+ color: var(--button-color) !important;
99
+ border-radius: var(--button-radius);
100
+ border: var(--button-border);
101
+ }
102
+ `
103
+ ]
104
+ }
105
+
106
+ @property({ type: String }) defaultGroup?: string
107
+ @property({ type: Array }) groups?: { id: string; name: string }[]
108
+
109
+ render() {
110
+ var groups = this.groups || []
111
+
112
+ return html`
113
+ <div @click=${(e: Event) => this.onClickFlip(e)} front><mwc-icon>add_circle_outline</mwc-icon>create process</div>
114
+
115
+ <div @click=${(e: Event) => this.onClickFlip(e)} back>
116
+ <form @submit=${(e: Event) => this.onClickSubmit(e)}>
117
+ <label>${i18next.t('label.name')}</label>
118
+ <input type="text" name="name" />
119
+
120
+ <label>${i18next.t('label.description')}</label>
121
+ <input type="text" name="description" />
122
+
123
+ <label>${i18next.t('label.group')}</label>
124
+ <select .value=${this.defaultGroup || ''} name="groupId">
125
+ ${groups.map(
126
+ group => html`
127
+ <option value=${group.id} ?selected=${this.defaultGroup == group.id}>${group.name}</option>
128
+ `
129
+ )}
130
+ </select>
131
+
132
+ <input type="submit" value=${String(i18next.t('button.create'))} />
133
+ </form>
134
+ </div>
135
+ `
136
+ }
137
+
138
+ onClickFlip(e: Event) {
139
+ if ((e.currentTarget as any)?.hasAttribute('front') || (e.target as any)?.hasAttribute('back')) {
140
+ this.classList.toggle('flipped')
141
+ }
142
+
143
+ e.stopPropagation()
144
+ }
145
+
146
+ onClickSubmit(e: Event) {
147
+ e.preventDefault()
148
+ e.stopPropagation()
149
+
150
+ var form = e.target as any
151
+
152
+ var name = form.elements['name'].value
153
+ var description = form.elements['description'].value
154
+ var groupId = form.elements['groupId'].value
155
+
156
+ this.dispatchEvent(
157
+ new CustomEvent('create-process', {
158
+ detail: {
159
+ name,
160
+ description,
161
+ groupId
162
+ }
163
+ })
164
+ )
165
+ }
166
+
167
+ reset() {
168
+ var form = this.shadowRoot?.querySelector('form')
169
+ if (form) {
170
+ form.reset()
171
+ }
172
+
173
+ this.classList.remove('flipped')
174
+ }
175
+ }