@bpmn-io/form-js-viewer 1.5.0-alpha.0 → 1.6.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.
Files changed (78) hide show
  1. package/dist/assets/form-js-base.css +244 -16
  2. package/dist/assets/form-js.css +676 -670
  3. package/dist/index.cjs +2100 -722
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.es.js +2083 -717
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/types/Form.d.ts +15 -4
  8. package/dist/types/core/FieldFactory.d.ts +3 -1
  9. package/dist/types/core/FormFieldRegistry.d.ts +2 -1
  10. package/dist/types/core/FormLayouter.d.ts +2 -2
  11. package/dist/types/core/Importer.d.ts +1 -1
  12. package/dist/types/core/PathRegistry.d.ts +8 -4
  13. package/dist/types/core/Validator.d.ts +1 -1
  14. package/dist/types/core/index.d.ts +8 -8
  15. package/dist/types/features/{expression-language → expressionLanguage}/ConditionChecker.d.ts +9 -5
  16. package/dist/types/features/{expression-language → expressionLanguage}/FeelExpressionLanguage.d.ts +1 -1
  17. package/dist/types/features/{expression-language → expressionLanguage}/FeelersTemplating.d.ts +1 -1
  18. package/dist/types/features/{expression-language → expressionLanguage}/index.d.ts +4 -4
  19. package/dist/types/features/index.d.ts +4 -2
  20. package/dist/types/features/markdown/MarkdownRenderer.d.ts +1 -1
  21. package/dist/types/features/markdown/index.d.ts +2 -2
  22. package/dist/types/features/repeatRender/RepeatRenderManager.d.ts +21 -0
  23. package/dist/types/features/repeatRender/index.d.ts +7 -0
  24. package/dist/types/features/viewerCommands/ViewerCommands.d.ts +2 -2
  25. package/dist/types/features/viewerCommands/cmd/UpdateFieldValidationHandler.d.ts +1 -1
  26. package/dist/types/features/viewerCommands/index.d.ts +3 -3
  27. package/dist/types/index.d.ts +1 -1
  28. package/dist/types/render/Renderer.d.ts +1 -1
  29. package/dist/types/render/components/Label.d.ts +21 -1
  30. package/dist/types/render/components/Sanitizer.d.ts +8 -0
  31. package/dist/types/render/components/Util.d.ts +1 -1
  32. package/dist/types/render/components/form-fields/Button.d.ts +3 -3
  33. package/dist/types/render/components/form-fields/Checkbox.d.ts +4 -4
  34. package/dist/types/render/components/form-fields/Checklist.d.ts +5 -5
  35. package/dist/types/render/components/form-fields/Datetime.d.ts +4 -4
  36. package/dist/types/render/components/form-fields/Default.d.ts +4 -4
  37. package/dist/types/render/components/form-fields/DynamicList.d.ts +18 -0
  38. package/dist/types/render/components/form-fields/Group.d.ts +4 -4
  39. package/dist/types/render/components/form-fields/IFrame.d.ts +12 -0
  40. package/dist/types/render/components/form-fields/Image.d.ts +3 -3
  41. package/dist/types/render/components/form-fields/Number.d.ts +4 -4
  42. package/dist/types/render/components/form-fields/Radio.d.ts +5 -5
  43. package/dist/types/render/components/form-fields/Select.d.ts +5 -5
  44. package/dist/types/render/components/form-fields/Separator.d.ts +3 -3
  45. package/dist/types/render/components/form-fields/Spacer.d.ts +3 -3
  46. package/dist/types/render/components/form-fields/Table.d.ts +71 -0
  47. package/dist/types/render/components/form-fields/Taglist.d.ts +5 -5
  48. package/dist/types/render/components/form-fields/Text.d.ts +3 -3
  49. package/dist/types/render/components/form-fields/Textarea.d.ts +4 -4
  50. package/dist/types/render/components/form-fields/Textfield.d.ts +4 -4
  51. package/dist/types/render/components/form-fields/parts/ChildrenRenderer.d.ts +1 -0
  52. package/dist/types/render/components/index.d.ts +5 -2
  53. package/dist/types/render/components/util/optionsUtil.d.ts +8 -0
  54. package/dist/types/render/context/FormRenderContext.d.ts +4 -3
  55. package/dist/types/render/context/LocalExpressionContext.d.ts +7 -0
  56. package/dist/types/render/context/index.d.ts +1 -0
  57. package/dist/types/render/hooks/index.d.ts +1 -0
  58. package/dist/types/render/hooks/useCleanupMultiSelectValues.d.ts +1 -0
  59. package/dist/types/render/hooks/useCleanupSingleSelectValue.d.ts +1 -0
  60. package/dist/types/render/hooks/useExpressionEvaluation.d.ts +3 -3
  61. package/dist/types/render/hooks/useFilteredFormData.d.ts +1 -0
  62. package/dist/types/render/hooks/useOptionsAsync.d.ts +28 -0
  63. package/dist/types/render/hooks/useScrollIntoView.d.ts +18 -0
  64. package/dist/types/render/hooks/useTemplateEvaluation.d.ts +1 -1
  65. package/dist/types/render/index.d.ts +4 -3
  66. package/dist/types/util/constants/DatetimeConstants.d.ts +6 -6
  67. package/dist/types/util/constants/OptionsSourceConstants.d.ts +19 -0
  68. package/dist/types/util/constants/index.d.ts +1 -1
  69. package/dist/types/util/getSchemaVariables.d.ts +39 -0
  70. package/dist/types/util/index.d.ts +3 -52
  71. package/dist/types/util/simple.d.ts +20 -0
  72. package/dist/types/util/structure.d.ts +1 -0
  73. package/package.json +5 -5
  74. package/dist/types/render/components/form-fields/parts/Grid.d.ts +0 -1
  75. package/dist/types/render/components/util/valuesUtil.d.ts +0 -8
  76. package/dist/types/render/hooks/useValuesAsync.d.ts +0 -28
  77. package/dist/types/util/constants/ValuesSourceConstants.d.ts +0 -19
  78. /package/dist/types/features/{expression-language → expressionLanguage}/variableExtractionHelpers.d.ts +0 -0
@@ -13,6 +13,7 @@
13
13
  --color-grey-225-10-93: hsl(225, 10%, 93%);
14
14
  --color-grey-225-10-95: hsl(225, 10%, 95%);
15
15
  --color-grey-225-10-97: hsl(225, 10%, 97%);
16
+ --color-grey-0-0-88: hsl(0, 0%, 88%);
16
17
 
17
18
  --color-blue-219-100-53: hsl(219, 99%, 53%);
18
19
  --color-blue-219-100-53-05: hsla(219, 99%, 53%, 0.5);
@@ -52,10 +53,9 @@
52
53
  --color-background-inverted: var(--cds-background-inverse, var(--color-grey-225-10-90));
53
54
  --color-background-inverted-hover: var(--cds-background-inverse-hover, var(--color-grey-225-10-93));
54
55
  --color-background-active: var(--cds-background-active, var(--color-grey-225-10-75));
55
- --color-layer: var(
56
- --cds-layer,
57
- var(--cds-layer-01, var(--color-white))
58
- );
56
+ --color-layer: var(--cds-layer,
57
+ var(--cds-layer-01, var(--color-white)));
58
+ --color-layer-accent: var(--cds-layer-accent, var(--color-grey-0-0-88));
59
59
 
60
60
  --color-icon-base: var(--cds-icon-primary, var(--color-black));
61
61
  --color-icon-inverted: var(--cds-icon-inverse, var(--color-black));
@@ -71,6 +71,7 @@
71
71
  var(--cds-border-strong-01, var(--color-grey-225-10-55))
72
72
  );
73
73
  --color-borders-group: var(--cds-border-subtle, var(--color-grey-225-10-85));
74
+ --color-borders-table: var(--color-borders-group);
74
75
  --color-borders-disabled: var(--cds-border-disabled, var(--color-grey-225-10-75));
75
76
  --color-borders-adornment: var(
76
77
  --cds-border-subtle,
@@ -109,6 +110,7 @@
109
110
  --border-definition: 1px solid var(--color-borders);
110
111
  --border-definition-adornment: 1px solid var(--color-borders-adornment);
111
112
  --outline-definition: 1px solid var(--cds-focus, var(--color-borders));
113
+ --button-warning-outline-definition: 2px solid var(--color-warning);
112
114
  --border-definition-disabled: 1px solid var(--color-borders-disabled);
113
115
  --border-definition-readonly: 1px solid var(--color-borders-readonly);
114
116
 
@@ -319,47 +321,47 @@
319
321
  color: var(--color-text-lighter);
320
322
  }
321
323
 
322
- .fjs-container .fjs-form-field-group {
324
+ .fjs-container .fjs-form-field-grouplike {
323
325
  padding: 10px 6px 0 6px;
324
326
  margin: 0 10px;
325
327
  }
326
328
 
327
- .fjs-container .fjs-form-field-group .cds--grid {
329
+ .fjs-container .fjs-form-field-grouplike .cds--grid {
328
330
  padding: 4px 16px;
329
331
  }
330
332
 
331
- .fjs-container .fjs-form-field-group .fjs-form-field-group .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group),
332
- .fjs-container .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
333
+ .fjs-container .fjs-form-field-grouplike .fjs-form-field-grouplike .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike),
334
+ .fjs-container .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
333
335
  margin-left: -6px;
334
336
  }
335
337
 
336
- .fjs-container .fjs-form-field-group .fjs-form-field-group .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group),
337
- .fjs-container .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
338
+ .fjs-container .fjs-form-field-grouplike .fjs-form-field-grouplike .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike),
339
+ .fjs-container .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
338
340
  margin-right: -6px;
339
341
  }
340
342
 
341
- .fjs-container .fjs-form-field-group .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
343
+ .fjs-container .fjs-form-field-grouplike .fjs-layout-column:first-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
342
344
  margin-left: 11px;
343
345
  }
344
346
 
345
- .fjs-container .fjs-form-field-group .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-group:not(.fjs-editor-container .fjs-form-field-group) {
347
+ .fjs-container .fjs-form-field-grouplike .fjs-layout-column:last-child > .fjs-element > .fjs-form-field-grouplike:not(.fjs-editor-container .fjs-form-field-grouplike) {
346
348
  margin-right: 11px;
347
349
  }
348
350
 
349
- .fjs-container .fjs-form-field-group.fjs-outlined {
351
+ .fjs-container .fjs-form-field-grouplike.fjs-outlined {
350
352
  outline: solid var(--color-borders-group) 2px;
351
353
  }
352
354
 
353
- .fjs-container .fjs-form-field-group label {
355
+ .fjs-container .fjs-form-field-grouplike label {
354
356
  font-size: var(--font-size-label);
355
357
  }
356
358
 
357
- .fjs-container .fjs-form-field-group .fjs-form-field-group .cds--grid {
359
+ .fjs-container .fjs-form-field-grouplike .fjs-form-field-grouplike .cds--grid {
358
360
  padding-left: 2rem;
359
361
  padding-right: 2rem;
360
362
  }
361
363
 
362
- .fjs-container .fjs-form-field-group > label {
364
+ .fjs-container .fjs-form-field-grouplike > label {
363
365
  font-size: var(--font-size-group);
364
366
  line-height: var(--line-height-input);
365
367
  margin-left: 7px;
@@ -799,6 +801,27 @@
799
801
  cursor: default;
800
802
  }
801
803
 
804
+ .fjs-container .fjs-form-field-text table {
805
+ border-collapse: collapse;
806
+ width: auto;
807
+ }
808
+
809
+ .fjs-container .fjs-form-field-text table,
810
+ .fjs-container .fjs-form-field-text th,
811
+ .fjs-container .fjs-form-field-text td {
812
+ border: 1px solid var(--color-borders-table);
813
+ padding: 8px;
814
+ }
815
+
816
+ .fjs-container .fjs-form-field-text th {
817
+ font-weight: bold;
818
+ }
819
+
820
+ .fjs-container .fjs-form-field-text td {
821
+ white-space: nowrap;
822
+ }
823
+
824
+
802
825
  .fjs-container .fjs-taglist-anchor,
803
826
  .fjs-container .fjs-select-anchor,
804
827
  .fjs-container .fjs-timepicker-anchor {
@@ -965,6 +988,211 @@
965
988
  margin: 4px 0;
966
989
  }
967
990
 
991
+ .fjs-container .fjs-iframe {
992
+ margin: 4px 0;
993
+ width: 100%;
994
+ border: 1px solid var(--color-borders-readonly);
995
+ }
996
+
997
+ .fjs-container .fjs-iframe-placeholder {
998
+ margin: 4px 0;
999
+ height: 90px;
1000
+ display: flex;
1001
+ justify-content: center;
1002
+ background: var(--color-background-readonly);
1003
+ color: var(--color-text-light);
1004
+ border: 1px solid var(--color-borders-readonly);
1005
+ }
1006
+
1007
+ .fjs-container .fjs-iframe-placeholder .fjs-iframe-placeholder-text {
1008
+ display: flex;
1009
+ align-items: center;
1010
+ justify-content: center;
1011
+ flex-wrap: wrap;
1012
+ overflow: hidden;
1013
+ }
1014
+
1015
+ .fjs-container .fjs-form-field-table {
1016
+ display: flex;
1017
+ flex-direction: column;
1018
+ row-gap: 4px;
1019
+ }
1020
+
1021
+ .fjs-container .fjs-table-middle-container {
1022
+ display: flex;
1023
+ flex-direction: column;
1024
+ overflow-x: hidden;
1025
+ border: 1px solid var(--color-borders-group);
1026
+ border-radius: 3px;
1027
+ }
1028
+
1029
+ .fjs-container .fjs-table-middle-container.fjs-table-empty {
1030
+ border: none;
1031
+ color: var(--color-text-disabled);
1032
+ padding-left: 16px;
1033
+ }
1034
+
1035
+ .fjs-container .fjs-table-inner-container {
1036
+ display: flex;
1037
+ flex-direction: column;
1038
+ overflow-x: auto;
1039
+ }
1040
+
1041
+ .fjs-container .fjs-table {
1042
+ overflow-y: auto;
1043
+ border-collapse: collapse;
1044
+ }
1045
+
1046
+ .fjs-container .fjs-table-head {
1047
+ background-color: var(--color-layer-accent);
1048
+ }
1049
+
1050
+ .fjs-container .fjs-table-th {
1051
+ min-width: 120px;
1052
+ cursor: pointer;
1053
+ }
1054
+
1055
+ .fjs-container .fjs-table-th-label {
1056
+ user-select: none;
1057
+ display: flex;
1058
+ align-items: center;
1059
+ flex-direction: row;
1060
+ justify-content: space-between;
1061
+ }
1062
+
1063
+ .fjs-container .fjs-table-th:focus {
1064
+ outline: var(--outline-definition);
1065
+ outline-offset: -1px;
1066
+ }
1067
+
1068
+ .fjs-container .fjs-table-th,
1069
+ .fjs-container .fjs-table-td {
1070
+ text-align: left;
1071
+ height: 32px;
1072
+ padding: 0 16px;
1073
+ }
1074
+
1075
+ .fjs-container .fjs-table-body .fjs-table-tr:not(:last-child) {
1076
+ border-bottom: 1px solid var(--color-borders-group);
1077
+ }
1078
+
1079
+ .fjs-container .fjs-table-nav {
1080
+ display: flex;
1081
+ flex-direction: row;
1082
+ align-items: center;
1083
+ justify-content: flex-end;
1084
+ border-top: 1px solid var(--color-borders-group);
1085
+ }
1086
+
1087
+ .fjs-container .fjs-table-nav-button {
1088
+ border: unset;
1089
+ background: unset;
1090
+ width: 32px;
1091
+ height: 32px;
1092
+ cursor: pointer;
1093
+ display: flex;
1094
+ align-items: center;
1095
+ justify-content: center;
1096
+ border-left: 1px solid var(--color-borders-group);
1097
+ }
1098
+
1099
+ .fjs-container .fjs-table-nav-button:first-of-type {
1100
+ margin-left: 16px;
1101
+ }
1102
+
1103
+ .fjs-container .fjs-table-nav-button:focus {
1104
+ outline: var(--outline-definition);
1105
+ outline-offset: -1px;
1106
+ }
1107
+
1108
+ .fjs-container .fjs-table-nav-button svg {
1109
+ width: 16px;
1110
+ }
1111
+
1112
+ .fjs-container .fjs-table-sort-icon-asc,
1113
+ .fjs-container .fjs-table-sort-icon-desc {
1114
+ width: 16px;
1115
+ }
1116
+
1117
+ .fjs-container .fjs-repeat-row-container {
1118
+ display: flex;
1119
+ flex-direction: row;
1120
+ gap: 1rem;
1121
+ }
1122
+
1123
+ .fjs-container .fjs-repeat-row-rows {
1124
+ flex: 1;
1125
+ margin-right: 1rem;
1126
+ }
1127
+
1128
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove {
1129
+ display: flex;
1130
+ cursor: pointer;
1131
+ background: transparent;
1132
+ border: none;
1133
+ width: 32px;
1134
+ color: var(--color-icon-base);
1135
+ align-items: center;
1136
+ justify-content: center;
1137
+ padding: 0;
1138
+ }
1139
+
1140
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:focus-visible {
1141
+ outline: none;
1142
+ }
1143
+
1144
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove .fjs-repeat-row-remove-icon-container {
1145
+ display: flex;
1146
+ width: 24px;
1147
+ height: 24px;
1148
+ border-radius: 2px;
1149
+ align-items: center;
1150
+ justify-content: center;
1151
+ }
1152
+
1153
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:focus-visible .fjs-repeat-row-remove-icon-container {
1154
+ outline: var(--button-warning-outline-definition);
1155
+ }
1156
+
1157
+ .fjs-container .fjs-repeat-row-container:hover .fjs-repeat-render-footer-spacer {
1158
+ width: 24px;
1159
+ }
1160
+
1161
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:hover,
1162
+ .fjs-container .fjs-repeat-row-container .fjs-repeat-row-remove:focus-visible {
1163
+ color: var(--color-warning);
1164
+ }
1165
+
1166
+ .fjs-container .fjs-repeat-render-footer {
1167
+ display: flex;
1168
+ flex-direction: row;
1169
+ align-items: center;
1170
+ justify-content: center;
1171
+ padding: 12px 4px;
1172
+ }
1173
+
1174
+ .fjs-container .fjs-repeat-render-footer.fjs-remove-allowed {
1175
+ margin-right: 32px;
1176
+ justify-content: space-between;
1177
+ }
1178
+
1179
+ .fjs-container .fjs-repeat-render-footer button {
1180
+ background: none;
1181
+ border: none;
1182
+ padding: 4px;
1183
+ margin: 0;
1184
+ font-family: inherit;
1185
+ font-size: inherit;
1186
+ cursor: pointer;
1187
+ color: var(--color-accent);
1188
+ display: flex;
1189
+ align-items: center;
1190
+ }
1191
+
1192
+ .fjs-container .fjs-repeat-render-footer button svg {
1193
+ margin-right: 4px;
1194
+ }
1195
+
968
1196
  /**
969
1197
  * Flatpickr style adjustments
970
1198
  */