ballerina-core 1.0.63 → 1.0.64

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "ballerina-core",
3
3
  "author": "Dr. Giuseppe Maggiore",
4
4
  "private": false,
5
- "version": "1.0.63",
5
+ "version": "1.0.64",
6
6
  "main": "main.ts",
7
7
  "dependencies": {
8
8
  "immutable": "^5.0.0-beta.5",
@@ -18,6 +18,7 @@ export type RawRenderer = {
18
18
  elementRenderer?: any;
19
19
  keyRenderer?: any;
20
20
  valueRenderer?: any;
21
+ details?: any;
21
22
  }
22
23
  export type ParsedRenderer<T> =
23
24
  (
@@ -33,73 +34,80 @@ export type ParsedRenderer<T> =
33
34
  tooltip?: string;
34
35
  visible?: BoolExpr<any>;
35
36
  disabled?: BoolExpr<any>;
37
+ details?: any;
36
38
  }
37
39
  export const ParsedRenderer = {
38
40
  Default: {
39
- primitive: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, label?: string, tooltip?: string ): ParsedRenderer<T> => ({
41
+ primitive: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, label?: string, tooltip?: string, details?: string ): ParsedRenderer<T> => ({
40
42
  kind: "primitive",
41
43
  type,
42
44
  renderer,
43
45
  label,
44
46
  tooltip,
47
+ details,
45
48
  visible: BoolExpr.Default(visible),
46
49
  disabled: disabled != undefined ?
47
50
  BoolExpr.Default(disabled)
48
51
  : BoolExpr.Default.false(),
49
52
  }),
50
- form: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, label?: string, tooltip?: string ): ParsedRenderer<T> => ({
53
+ form: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, label?: string, tooltip?: string, details?: string ): ParsedRenderer<T> => ({
51
54
  kind: "form",
52
55
  type,
53
56
  renderer,
54
57
  label,
55
58
  tooltip,
59
+ details,
56
60
  visible: BoolExpr.Default(visible),
57
61
  disabled: disabled != undefined ?
58
62
  BoolExpr.Default(disabled)
59
63
  : BoolExpr.Default.false(),
60
64
  }),
61
- enum: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, options: string, label?: string, tooltip?: string ): ParsedRenderer<T> => ({
65
+ enum: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, options: string, label?: string, tooltip?: string, details?: string ): ParsedRenderer<T> => ({
62
66
  kind: "enum",
63
67
  type,
64
68
  renderer,
65
69
  label,
66
70
  tooltip,
71
+ details,
67
72
  visible: BoolExpr.Default(visible),
68
73
  disabled: disabled != undefined ?
69
74
  BoolExpr.Default(disabled)
70
75
  : BoolExpr.Default.false(),
71
76
  options
72
77
  }),
73
- stream: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, stream: string, label?: string, tooltip?: string ): ParsedRenderer<T> => ({
78
+ stream: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, stream: string, label?: string, tooltip?: string, details?: string): ParsedRenderer<T> => ({
74
79
  kind: "stream",
75
80
  type,
76
81
  renderer,
77
82
  label,
78
83
  tooltip,
84
+ details,
79
85
  visible: BoolExpr.Default(visible),
80
86
  disabled: disabled != undefined ?
81
87
  BoolExpr.Default(disabled)
82
88
  : BoolExpr.Default.false(),
83
89
  stream
84
90
  }),
85
- list: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, elementRenderer: ParsedRenderer<T>, label?: string, tooltip?: string ): ParsedRenderer<T> => ({
91
+ list: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, elementRenderer: ParsedRenderer<T>, label?: string, tooltip?: string, details?: string ): ParsedRenderer<T> => ({
86
92
  kind: "list",
87
93
  type,
88
94
  renderer,
89
95
  label,
90
96
  tooltip,
97
+ details,
91
98
  visible: BoolExpr.Default(visible),
92
99
  disabled: disabled != undefined ?
93
100
  BoolExpr.Default(disabled)
94
101
  : BoolExpr.Default.false(),
95
102
  elementRenderer
96
103
  }),
97
- map: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, keyRenderer: ParsedRenderer<T>, valueRenderer: ParsedRenderer<T>, label?: string, tooltip?: string ): ParsedRenderer<T> => ({
104
+ map: <T>(type: ParsedType<T>, renderer: string, visible: any, disabled: any, keyRenderer: ParsedRenderer<T>, valueRenderer: ParsedRenderer<T>, label?: string, tooltip?: string, details?: string ): ParsedRenderer<T> => ({
98
105
  kind: "map",
99
106
  type,
100
107
  renderer,
101
108
  label,
102
109
  tooltip,
110
+ details,
103
111
  visible: BoolExpr.Default(visible),
104
112
  disabled: disabled != undefined ?
105
113
  BoolExpr.Default(disabled)
@@ -111,17 +119,17 @@ export const ParsedRenderer = {
111
119
  Operations: {
112
120
  ParseRenderer: <T>(fieldType: ParsedType<T>, field: RawRenderer, types: Map<string, ParsedType<T>>): ParsedRenderer<T> => {
113
121
  if(fieldType.kind == "primitive")
114
- return ParsedRenderer.Default.primitive(fieldType, field.renderer, field.visible, field.disabled, field.label, field.tooltip)
122
+ return ParsedRenderer.Default.primitive(fieldType, field.renderer, field.visible, field.disabled, field.label, field.tooltip, field.details)
115
123
  if(fieldType.kind == "form")
116
- return ParsedRenderer.Default.form(fieldType, field.renderer, field.visible, field.disabled, field.label, field.tooltip)
124
+ return ParsedRenderer.Default.form(fieldType, field.renderer, field.visible, field.disabled, field.label, field.tooltip, field.details)
117
125
  if(fieldType.kind == "application" && "options" in field)
118
- return ParsedRenderer.Default.enum(fieldType, field.renderer, field.visible, field.disabled, field.options, field.label, field.tooltip)
126
+ return ParsedRenderer.Default.enum(fieldType, field.renderer, field.visible, field.disabled, field.options, field.label, field.tooltip, field.details)
119
127
  if(fieldType.kind == "application" && "stream" in field)
120
- return ParsedRenderer.Default.stream(fieldType, field.renderer, field.visible, field.disabled, field.stream, field.label, field.tooltip)
128
+ return ParsedRenderer.Default.stream(fieldType, field.renderer, field.visible, field.disabled, field.stream, field.label, field.tooltip, field.details)
121
129
  if(fieldType.kind == "application" && fieldType.value == "List")
122
- return ParsedRenderer.Default.list(fieldType, field.renderer, field.visible, field.disabled, ParsedRenderer.Operations.ParseRenderer(fieldType.args[0], field.elementRenderer, types), field.label, field.tooltip)
130
+ return ParsedRenderer.Default.list(fieldType, field.renderer, field.visible, field.disabled, ParsedRenderer.Operations.ParseRenderer(fieldType.args[0], field.elementRenderer, types), field.label, field.tooltip, field.details)
123
131
  if(fieldType.kind == "application" && fieldType.value == "Map")
124
- return ParsedRenderer.Default.map(fieldType, field.renderer, field.visible, field.disabled, ParsedRenderer.Operations.ParseRenderer(fieldType.args[0], field.keyRenderer, types), ParsedRenderer.Operations.ParseRenderer(fieldType.args[1], field.valueRenderer, types), field.label, field.tooltip)
132
+ return ParsedRenderer.Default.map(fieldType, field.renderer, field.visible, field.disabled, ParsedRenderer.Operations.ParseRenderer(fieldType.args[0], field.keyRenderer, types), ParsedRenderer.Operations.ParseRenderer(fieldType.args[1], field.valueRenderer, types), field.label, field.tooltip, field.details)
125
133
  if(fieldType.kind == "lookup"){
126
134
  return ParsedRenderer.Operations.ParseRenderer(types.get(fieldType.name)!, field, types)
127
135
  }
@@ -153,13 +161,13 @@ export const ParsedRenderer = {
153
161
  case "enum":
154
162
  case "stream":
155
163
  return ValueOrErrors.Default.return({
156
- renderer: ParsedRenderer.Operations.FormRenderers(parsedRenderer, parsingContext.formViews, viewKind, parsedRenderer.renderer, parsedRenderer.label, parsedRenderer.tooltip, parsingContext.enumOptionsSources, parsingContext.leafPredicates, parsingContext.injectedPrimitives),
164
+ renderer: ParsedRenderer.Operations.FormRenderers(parsedRenderer, parsingContext.formViews, viewKind, parsedRenderer.renderer, parsedRenderer.label, parsedRenderer.tooltip, parsedRenderer.details, parsingContext.enumOptionsSources, parsingContext.leafPredicates, parsingContext.injectedPrimitives),
157
165
  initialValue: parsingContext.defaultValue(parsedRenderer.type),
158
166
  initialState: ParsedRenderer.Operations.FormStates(parsedRenderer, viewKind, parsedRenderer.renderer, parsingContext.infiniteStreamSources, parsingContext.injectedPrimitives)
159
167
  })
160
168
  case "form":
161
169
  return ValueOrErrors.Default.return({
162
- renderer: parsingContext.forms.get(parsedRenderer.renderer)!.form.withView(parsingContext.nestedContainerFormView).mapContext<any>(_ => ({ ..._, label: parsedRenderer.label, tooltip: parsedRenderer.tooltip })),
170
+ renderer: parsingContext.forms.get(parsedRenderer.renderer)!.form.withView(parsingContext.nestedContainerFormView).mapContext<any>(_ => ({ ..._, label: parsedRenderer.label, tooltip: parsedRenderer.tooltip, details: parsedRenderer.details, })),
163
171
  initialValue: parsingContext.defaultValue(parsedRenderer.type),
164
172
  initialState: parsingContext.forms.get(parsedRenderer.renderer)!.initialFormState
165
173
  })
@@ -170,7 +178,7 @@ export const ParsedRenderer = {
170
178
  { Default: () => parsedElementRenderer.initialValue },
171
179
  parsedElementRenderer.renderer,
172
180
  ).withView(((parsingContext.formViews)[viewKind])[parsedRenderer.renderer]() as any)
173
- .mapContext<any>(_ => ({ ..._, label: parsedRenderer.label, tooltip: parsedRenderer.tooltip })),
181
+ .mapContext<any>(_ => ({ ..._, label: parsedRenderer.label, tooltip: parsedRenderer.tooltip, details: parsedRenderer.details })),
174
182
  initialValue: parsingContext.defaultValue(parsedRenderer.type),
175
183
  initialState: ListFieldState<any, any>().Default(Map())
176
184
  })
@@ -186,7 +194,7 @@ export const ParsedRenderer = {
186
194
  parsedKeyRenderer.renderer,
187
195
  parsedValueRenderer.renderer
188
196
  ).withView(((parsingContext.formViews)[viewKind])[parsedRenderer.renderer]() as any)
189
- .mapContext<any>(_ => ({ ..._, label: parsedRenderer.label, tooltip: parsedRenderer.tooltip })),
197
+ .mapContext<any>(_ => ({ ..._, label: parsedRenderer.label, tooltip: parsedRenderer.tooltip, details: parsedRenderer.details })),
190
198
  initialValue: parsingContext.defaultValue(parsedRenderer.type),
191
199
  initialState: MapFieldState<any, any, any, any>().Default(Map())
192
200
  })
@@ -196,32 +204,32 @@ export const ParsedRenderer = {
196
204
  return ValueOrErrors.Default.throw(List([`error: the kind for ${viewKind}::${parsedRenderer} cannot be found`]));
197
205
  }
198
206
  },
199
- FormRenderers: <T,>(rendererConfig: ParsedRenderer<T>, formViews: Record<string, Record<string, any>>, viewKind: string, viewName: any, label: string | undefined, tooltip: string | undefined, enumOptionsSources: EnumOptionsSources, leafPredicates: any, injectedPrimitives?: InjectedPrimitives<T>): any => {
207
+ FormRenderers: <T,>(rendererConfig: ParsedRenderer<T>, formViews: Record<string, Record<string, any>>, viewKind: string, viewName: any, label: string | undefined, tooltip: string | undefined, details: string | undefined, enumOptionsSources: EnumOptionsSources, leafPredicates: any, injectedPrimitives?: InjectedPrimitives<T>): any => {
200
208
  if (viewKind == "maybeBoolean")
201
209
  return MaybeBooleanForm<any & FormLabel, Unit>()
202
210
  .withView(formViews[viewKind][viewName]())
203
- .mapContext<any & CommonFormState & Value<boolean>>(_ => ({ ..._, label: label, tooltip }))
211
+ .mapContext<any & CommonFormState & Value<boolean>>(_ => ({ ..._, label, tooltip, details }))
204
212
  if (viewKind == "boolean")
205
213
  return BooleanForm<any & FormLabel, Unit>()
206
214
  .withView(formViews[viewKind][viewName]())
207
- .mapContext<any & CommonFormState & Value<boolean>>(_ => ({ ..._, label: label, tooltip }))
215
+ .mapContext<any & CommonFormState & Value<boolean>>(_ => ({ ..._, label, tooltip, details }))
208
216
  if (viewKind == "date")
209
217
  return DateForm<any & FormLabel, Unit>()
210
218
  .withView(formViews[viewKind][viewName]())
211
- .mapContext<any & DateFormState & Value<Maybe<Date>>>(_ => ({ ..._, label: label, tooltip }))
219
+ .mapContext<any & DateFormState & Value<Maybe<Date>>>(_ => ({ ..._, label, tooltip, details }))
212
220
  if (viewKind == "number")
213
221
  return NumberForm<any & FormLabel, Unit>()
214
222
  .withView(formViews[viewKind][viewName]())
215
- .mapContext<any & CommonFormState & Value<number>>(_ => ({ ..._, label: label, tooltip }))
223
+ .mapContext<any & CommonFormState & Value<number>>(_ => ({ ..._, label, tooltip, details }))
216
224
  if (viewKind == "string")
217
225
  return StringForm<any & FormLabel, Unit>()
218
226
  .withView(formViews[viewKind][viewName]())
219
- .mapContext<any & CommonFormState & Value<string>>(_ => ({ ..._, label: label, tooltip }))
227
+ .mapContext<any & CommonFormState & Value<string>>(_ => ({ ..._, label, tooltip, details }))
220
228
  if (viewKind == "enumSingleSelection" && rendererConfig.kind == "enum")
221
229
  return EnumForm<any & FormLabel & BaseEnumContext<Value<CollectionReference>>, Unit, Value<CollectionReference>>()
222
230
  .withView(formViews[viewKind][viewName]())
223
231
  .mapContext<any & EnumFormState<any & BaseEnumContext<Value<CollectionReference>>, Value<CollectionReference>> & Value<CollectionSelection<Value<CollectionReference>>>>(_ => ({
224
- ..._, label: label, tooltip, getOptions: () => {
232
+ ..._, label, tooltip, details, getOptions: () => {
225
233
  return ((enumOptionsSources as any)(rendererConfig.options)() as Promise<any>).then(options => Map(options.map((o: {value: CollectionReference}) => [o.value.id, o])))
226
234
  }
227
235
  }))
@@ -229,28 +237,28 @@ export const ParsedRenderer = {
229
237
  return EnumMultiselectForm<any & FormLabel & BaseEnumContext<Value<CollectionReference>>, Unit, Value<CollectionReference>>()
230
238
  .withView(formViews[viewKind][viewName]() )
231
239
  .mapContext<any & EnumFormState<any & BaseEnumContext<Value<CollectionReference>>, Value<CollectionReference>> & Value<OrderedMap<Guid, CollectionReference>>>(_ => ({
232
- ..._, label: label, tooltip, getOptions: () => ((enumOptionsSources as any)(rendererConfig.options)() as Promise<any>).then(options => OrderedMap(options.map((o: {value: CollectionReference}) => [o.value.id, o])))
240
+ ..._, label, details, tooltip, getOptions: () => ((enumOptionsSources as any)(rendererConfig.options)() as Promise<any>).then(options => OrderedMap(options.map((o: {value: CollectionReference}) => [o.value.id, o])))
233
241
  }))
234
242
  if (viewKind == "streamSingleSelection")
235
243
  return SearchableInfiniteStreamForm<CollectionReference, any & FormLabel, Unit>()
236
244
  .withView(formViews[viewKind][viewName]() )
237
- .mapContext<any & SearchableInfiniteStreamState<CollectionReference> & Value<CollectionSelection<CollectionReference>>>(_ => ({ ..._, label: label, tooltip }))
245
+ .mapContext<any & SearchableInfiniteStreamState<CollectionReference> & Value<CollectionSelection<CollectionReference>>>(_ => ({ ..._, label, tooltip, details }))
238
246
  if (viewKind == "streamMultiSelection")
239
247
  return InfiniteMultiselectDropdownForm<CollectionReference, any & FormLabel, Unit>()
240
248
  .withView(formViews[viewKind][viewName]() )
241
- .mapContext<any & FormLabel & CommonFormState & SearchableInfiniteStreamState<CollectionReference> & Value<OrderedMap<Guid, CollectionReference>>>(_ => ({ ..._, label: label, tooltip }))
249
+ .mapContext<any & FormLabel & CommonFormState & SearchableInfiniteStreamState<CollectionReference> & Value<OrderedMap<Guid, CollectionReference>>>(_ => ({ ..._, label, tooltip, details }))
242
250
  if (viewKind == "base64File")
243
251
  return Base64FileForm<any & FormLabel, Unit>()
244
252
  .withView(((formViews )[viewKind] )[viewName]() )
245
- .mapContext<any & FormLabel & CommonFormState & Value<string>>(_ => ({ ..._, label: label, tooltip }))
253
+ .mapContext<any & FormLabel & CommonFormState & Value<string>>(_ => ({ ..._, label, tooltip, details }))
246
254
  if (viewKind == "secret")
247
255
  return SecretForm<any & FormLabel, Unit>()
248
256
  .withView(formViews[viewKind][viewName]() )
249
- .mapContext<any & FormLabel & CommonFormState & Value<string>>(_ => ({ ..._, label: label, tooltip }))
257
+ .mapContext<any & FormLabel & CommonFormState & Value<string>>(_ => ({ ..._, label, tooltip, details }))
250
258
  // check injectedViews
251
259
  if (injectedPrimitives?.injectedPrimitives.has(viewKind as keyof T)) { //TODO error handling instead of cast
252
260
  const injectedPrimitive = injectedPrimitives.injectedPrimitives.get(viewKind as keyof T) //TODO error handling instead of cast
253
- return injectedPrimitive?.fieldView(formViews, viewKind, viewName, label, tooltip)
261
+ return injectedPrimitive?.fieldView(formViews, viewKind, viewName, label, tooltip, details)
254
262
  }
255
263
  return `error: the view for ${viewKind as string}::${viewName as string} cannot be found`;
256
264
  },
@@ -191,6 +191,7 @@ export const FormsConfig = {
191
191
  label: field?.label,
192
192
  visible: field.visible,
193
193
  disabled: field?.disabled,
194
+ description: field?.description,
194
195
  elementRenderer: {
195
196
  renderer: field.elementRenderer,
196
197
  label: field?.elementLabel,
@@ -1,2 +1,2 @@
1
1
 
2
- export type FormLabel = { label?: string; tooltip?: string; };
2
+ export type FormLabel = { label?: string; tooltip?: string; details?: string; };