@metadev/daga 1.4.1 → 1.4.2

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 (30) hide show
  1. package/Changelog.md +18 -1
  2. package/assets/styles/_property-editor.scss +225 -157
  3. package/assets/styles/daga.scss +149 -156
  4. package/fesm2022/metadev-daga.mjs +1537 -592
  5. package/fesm2022/metadev-daga.mjs.map +1 -1
  6. package/index.d.ts +5 -3
  7. package/lib/daga.module.d.ts +4 -5
  8. package/lib/diagram-editor/diagram/collab/collab-action.d.ts +90 -0
  9. package/lib/diagram-editor/diagram/collab/collab-client.d.ts +57 -0
  10. package/lib/diagram-editor/diagram/collab/collab-engine.d.ts +46 -0
  11. package/lib/diagram-editor/diagram/collab/message-types.d.ts +97 -0
  12. package/lib/diagram-editor/diagram/collab/primitives.d.ts +15 -0
  13. package/lib/diagram-editor/diagram/converters/daga-model.d.ts +3 -0
  14. package/lib/diagram-editor/diagram/diagram-action.d.ts +27 -19
  15. package/lib/diagram-editor/diagram/diagram-canvas.d.ts +3 -1
  16. package/lib/diagram-editor/diagram/diagram-connection.d.ts +35 -3
  17. package/lib/diagram-editor/diagram/diagram-element.d.ts +7 -2
  18. package/lib/diagram-editor/diagram/diagram-field.d.ts +13 -2
  19. package/lib/diagram-editor/diagram/diagram-model.d.ts +6 -0
  20. package/lib/diagram-editor/diagram/diagram-node.d.ts +67 -3
  21. package/lib/diagram-editor/diagram/diagram-port.d.ts +28 -2
  22. package/lib/diagram-editor/diagram/diagram-property.d.ts +143 -19
  23. package/lib/diagram-editor/diagram/diagram-section.d.ts +40 -3
  24. package/lib/interfaces/canvas.d.ts +7 -0
  25. package/lib/property-editor/autocomplete/autocomplete.component.d.ts +39 -0
  26. package/lib/{object-editor → property-editor/object-editor}/object-editor.component.d.ts +5 -6
  27. package/lib/property-editor/option-list-editor/option-list-editor.component.d.ts +29 -0
  28. package/lib/{text-list-editor → property-editor/text-list-editor}/text-list-editor.component.d.ts +2 -2
  29. package/lib/{text-map-editor → property-editor/text-map-editor}/text-map-editor.component.d.ts +2 -2
  30. package/package.json +3 -3
package/Changelog.md CHANGED
@@ -6,6 +6,23 @@ List of releases and changes.
6
6
 
7
7
  ## Next release Colada
8
8
 
9
+ ## v. 1.4.2
10
+
11
+ Date: _2024-04-11_
12
+
13
+ - Allow instancing nodes and connections referencing their type by its identifier rather than having to get the type from the set of types [#94](https://github.com/metadevpro/daga/pull/94)
14
+ - Use logical removal of diagram elements via the `removed` flag instead of removing them from the model [#96](https://github.com/metadevpro/daga/pull/96)
15
+ - Add `do()` method to `DiagramAction` [#96](https://github.com/metadevpro/daga/pull/96)
16
+ - Only register changed values in `UpdateValuesAction` to reduce chances of overwriting when different users edit the same `ValueSet` simultaneously [#106](https://github.com/metadevpro/daga/pull/106)
17
+ - Define and document the behavior of `ValueSet` [#106](https://github.com/metadevpro/daga/pull/106)
18
+ - When creating a new `DiagramElement` with a `ValueSet`, set the `DiagramElement`'s attributes to the `ValueSet`'s values if any of the values has an associated attribute [#106](https://github.com/metadevpro/daga/pull/106)
19
+ - Move the components of property editor to within property editor folder for better code organization [#106](https://github.com/metadevpro/daga/pull/106)
20
+ - Remove Lux dependence [#106](https://github.com/metadevpro/daga/pull/106)
21
+ - Make the `rootAttribute` of `Property` optional to make diagram configurations simpler [#106](https://github.com/metadevpro/daga/pull/106)
22
+ - Improve behavior of nested `ValueSet`s [#106](https://github.com/metadevpro/daga/pull/106)
23
+ - Fix bug with the list of options in properties of `Option` type appearing misplaced in scrolled property editors [#116](https://github.com/metadevpro/daga/pull/116)
24
+ - Make property editor not appear when collapsed [#118](https://github.com/metadevpro/daga/pull/118)
25
+
9
26
  ## v. 1.4.1
10
27
 
11
28
  - Fix bug with diagram changes not triggering validation [#91](https://github.com/metadevpro/daga/pull/91)
@@ -39,7 +56,7 @@ List of releases and changes.
39
56
 
40
57
  Date: _2024.02.13_
41
58
 
42
- - Add link to documentation and tutorials: https://daga.metadev.pro/
59
+ - Add link to documentation and tutorials: <https://daga.metadev.pro/>
43
60
 
44
61
  ## v. 1.3.0
45
62
 
@@ -1,157 +1,225 @@
1
- daga-property-editor {
2
- .title {
3
- margin: 0;
4
- width: 100%;
5
- font-size: 1rem;
6
- font-weight: 500;
7
- }
8
- .panel-content {
9
- padding: 1rem;
10
- }
11
- .property {
12
- color: var(--daga-font-color);
13
- :disabled,
14
- .disabled {
15
- color: var(--daga-font-color-disabled);
16
- }
17
- input,
18
- select,
19
- textarea,
20
- button,
21
- .radio-item {
22
- background-color: var(--daga-property-background-color);
23
- border: 1px solid var(--daga-property-border-color);
24
- font-weight: 500;
25
- font-size: 0.8rem;
26
- }
27
- input,
28
- select,
29
- textarea {
30
- border-radius: var(--lux-border-radius);
31
- box-sizing: border-box;
32
- font-family: var(--daga-monospace-font-family);
33
- width: 100%;
34
- }
35
- input,
36
- select {
37
- height: 1.5rem;
38
- }
39
- select {
40
- padding: 0 0.5rem;
41
- }
42
- textarea {
43
- height: 5rem;
44
- padding: var(--lux-input-padding, 0rem 0.5rem);
45
- resize: none;
46
- }
47
- .radio-item {
48
- width: 50%;
49
- }
50
- .radio-item.radio-start {
51
- border-bottom-left-radius: var(--lux-border-radius);
52
- border-top-left-radius: var(--lux-border-radius);
53
- }
54
- .radio-item.radio-end {
55
- border-bottom-right-radius: var(--lux-border-radius);
56
- border-top-right-radius: var(--lux-border-radius);
57
- }
58
- }
59
- }
60
-
61
- daga-object-editor,
62
- daga-text-list-editor,
63
- daga-text-map-editor {
64
- .property {
65
- padding-top: 0.5rem;
66
- padding-bottom: 0.5rem;
67
- .property-name {
68
- display: flex;
69
- justify-content: space-between;
70
- align-items: center;
71
- height: 1.5rem;
72
- padding-bottom: 0.5rem;
73
- margin: 0;
74
- width: 100%;
75
- font-size: 0.75rem;
76
- font-weight: 500;
77
- text-transform: uppercase;
78
- }
79
- }
80
-
81
- .value-item-input {
82
- display: flex;
83
- align-items: stretch;
84
- flex-direction: row;
85
- height: 1.5rem;
86
- gap: 0.5rem;
87
- }
88
- .value-item-element {
89
- @extend .value-item-input;
90
- margin-bottom: 0.5rem;
91
- }
92
- .left-bar {
93
- padding-left: 1rem;
94
- border-left: 0.25rem solid var(--daga-property-background-color);
95
- }
96
-
97
- lux-input {
98
- height: 1.5rem;
99
- flex-grow: 1;
100
- flex-basis: 0;
101
- }
102
- p.value-item {
103
- @extend lux-input;
104
- margin: 0;
105
- overflow: hidden;
106
- text-overflow: ellipsis;
107
- }
108
- .relatively-positioned {
109
- @extend lux-input;
110
- position: relative;
111
- }
112
- button.property-button {
113
- .icon {
114
- background-size: contain;
115
- margin: 0.25rem;
116
- width: 1rem;
117
- height: 1rem;
118
- }
119
- .hide-icon {
120
- background-image: url(../icon/property/hide.svg);
121
- }
122
- .close-icon {
123
- background-image: url(../icon/property/close.svg);
124
- }
125
- .add-icon {
126
- background-image: url(../icon/property/add.svg);
127
- }
128
- min-width: 1.5rem;
129
- min-height: 1.5rem;
130
- width: 1.5rem;
131
- height: 1.5rem;
132
- padding: 0;
133
- border-radius: 0.25rem;
134
- border: none;
135
- background-color: transparent;
136
- font-size: 1rem;
137
- }
138
- button.property-button:hover {
139
- background-color: var(--daga-property-background-color);
140
- }
141
- button.clear {
142
- position: absolute;
143
- top: 0;
144
- right: 0;
145
- min-width: 1.5rem;
146
- min-height: 1.5rem;
147
- width: 1.5rem;
148
- height: 1.5rem;
149
- padding: 0;
150
- border-radius: 0.25rem;
151
- border: none;
152
- background-color: transparent;
153
- background: var(--lux-autocomplete-icon-clear);
154
- background-size: 0.5rem 0.5rem;
155
- z-index: 1;
156
- }
157
- }
1
+ daga-property-editor {
2
+ .title {
3
+ margin: 0;
4
+ width: 100%;
5
+ font-size: 1rem;
6
+ font-weight: 500;
7
+ }
8
+ .panel-content {
9
+ padding: 1rem;
10
+ }
11
+ .property {
12
+ color: var(--daga-font-color);
13
+ :disabled,
14
+ .disabled {
15
+ color: var(--daga-font-color-disabled);
16
+ }
17
+ input,
18
+ select,
19
+ textarea,
20
+ button,
21
+ .radio-item {
22
+ background-color: var(--daga-property-background-color);
23
+ border: 1px solid var(--daga-property-border-color);
24
+ font-weight: 500;
25
+ font-size: 0.8rem;
26
+ }
27
+ input,
28
+ select,
29
+ textarea {
30
+ border-radius: var(--daga-property-border-radius);
31
+ box-sizing: border-box;
32
+ font-family: var(--daga-monospace-font-family);
33
+ width: 100%;
34
+ }
35
+ input,
36
+ select {
37
+ height: 1.5rem;
38
+ }
39
+ select {
40
+ padding: var(--daga-property-input-padding);
41
+ }
42
+ textarea {
43
+ height: 5rem;
44
+ padding: var(--daga-property-input-padding);
45
+ resize: none;
46
+ }
47
+ .radio {
48
+ .radio-item {
49
+ text-align: center;
50
+ padding: 0.2rem;
51
+ width: 50%;
52
+ cursor: pointer;
53
+ input {
54
+ display: none;
55
+ }
56
+ }
57
+ .radio-item:has(:checked) {
58
+ color: var(--daga-property-selected-color);
59
+ background-color: var(--daga-property-selected-background-color);
60
+ }
61
+ .radio-item.radio-start {
62
+ border-bottom-left-radius: var(--daga-property-border-radius);
63
+ border-top-left-radius: var(--daga-property-border-radius);
64
+ }
65
+ .radio-item.radio-end {
66
+ border-bottom-right-radius: var(--daga-property-border-radius);
67
+ border-top-right-radius: var(--daga-property-border-radius);
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ daga-object-editor,
74
+ daga-text-list-editor,
75
+ daga-text-map-editor,
76
+ daga-autocomplete {
77
+ .property {
78
+ padding-top: 0.5rem;
79
+ padding-bottom: 0.5rem;
80
+ .property-name {
81
+ display: flex;
82
+ justify-content: space-between;
83
+ align-items: center;
84
+ height: 1.5rem;
85
+ padding-bottom: 0.5rem;
86
+ margin: 0;
87
+ width: 100%;
88
+ font-size: 0.75rem;
89
+ font-weight: 500;
90
+ text-transform: uppercase;
91
+ }
92
+ }
93
+
94
+ .value-item-input {
95
+ display: flex;
96
+ align-items: stretch;
97
+ flex-direction: row;
98
+ height: 1.5rem;
99
+ gap: 0.5rem;
100
+ }
101
+ .value-item-element {
102
+ @extend .value-item-input;
103
+ margin-bottom: 0.5rem;
104
+ }
105
+ .left-bar {
106
+ padding-left: 1rem;
107
+ border-left: 0.25rem solid var(--daga-property-background-color);
108
+ }
109
+
110
+ .input {
111
+ height: 1.5rem;
112
+ flex-grow: 1;
113
+ flex-basis: 0;
114
+ }
115
+ input {
116
+ @extend .input;
117
+ padding: var(--daga-property-input-padding);
118
+ }
119
+ .radio {
120
+ @extend .input;
121
+ display: flex;
122
+ flex-direction: row;
123
+ input {
124
+ margin: 0;
125
+ height: 100%;
126
+ }
127
+ }
128
+ p.value-item {
129
+ @extend .input;
130
+ margin: 0;
131
+ overflow: hidden;
132
+ text-overflow: ellipsis;
133
+ }
134
+ .relatively-positioned {
135
+ position: relative;
136
+ }
137
+ button.property-button {
138
+ .icon {
139
+ background-size: contain;
140
+ margin: 0.25rem;
141
+ width: 1rem;
142
+ height: 1rem;
143
+ }
144
+ .hide-icon {
145
+ background-image: url(../icon/property/hide.svg);
146
+ }
147
+ .close-icon {
148
+ background-image: url(../icon/property/close.svg);
149
+ }
150
+ .add-icon {
151
+ background-image: url(../icon/property/add.svg);
152
+ }
153
+ min-width: 1.5rem;
154
+ min-height: 1.5rem;
155
+ width: 1.5rem;
156
+ height: 1.5rem;
157
+ padding: 0;
158
+ border-radius: 0.25rem;
159
+ border: none;
160
+ background-color: transparent;
161
+ font-size: 1rem;
162
+ }
163
+ button.property-button:hover {
164
+ background-color: var(--daga-property-background-color);
165
+ }
166
+ button.clear {
167
+ position: absolute;
168
+ top: 0;
169
+ right: 0;
170
+ min-width: 1.5rem;
171
+ min-height: 1.5rem;
172
+ width: 1.5rem;
173
+ height: 1.5rem;
174
+ padding: 0;
175
+ border-radius: 0.25rem;
176
+ border: none;
177
+ background-color: transparent;
178
+ background: url(../icon/action/filter-clear.png) no-repeat;
179
+ background-size: 0.5rem 0.5rem;
180
+ background-position: 0.5rem 0.5rem;
181
+ z-index: 1;
182
+ }
183
+
184
+ .autocomplete {
185
+ .autocomplete-input {
186
+ position: relative;
187
+ }
188
+ .autocomplete-options {
189
+ visibility: hidden;
190
+ .autocomplete-option-list {
191
+ position: absolute;
192
+ width: 100%;
193
+ background-color: #ffffff;
194
+ border: 1px solid var(--daga-property-border-color);
195
+ border-radius: 0 0 var(--daga-property-border-radius)
196
+ var(--daga-property-border-radius);
197
+ max-height: 10rem;
198
+ box-sizing: border-box;
199
+ overflow: auto;
200
+ list-style-type: none;
201
+ padding: 0;
202
+ margin: 0;
203
+ .autocomplete-option {
204
+ .match {
205
+ font-weight: bold;
206
+ }
207
+ padding: var(--daga-property-input-padding);
208
+ cursor: pointer;
209
+ }
210
+ .autocomplete-option.focused {
211
+ background-color: var(--daga-property-background-color);
212
+ }
213
+ }
214
+ }
215
+ }
216
+ .autocomplete.showing-options {
217
+ input {
218
+ border-radius: var(--daga-property-border-radius)
219
+ var(--daga-property-border-radius) 0 0;
220
+ }
221
+ .autocomplete-options {
222
+ visibility: visible;
223
+ }
224
+ }
225
+ }