ballerina-core 1.0.40 → 1.0.43

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.40",
5
+ "version": "1.0.43",
6
6
  "main": "main.ts",
7
7
  "dependencies": {
8
8
  "immutable": "^5.0.0-beta.5",
@@ -3,7 +3,7 @@ import { ApiConverters, BoolExpr, BuiltIns, FieldName, FormsConfigMerger, Inject
3
3
 
4
4
  export type FieldConfig = {
5
5
  renderer: string;
6
- label: string;
6
+ label?: string;
7
7
  tooltip?: string;
8
8
  api: { stream?: string, enumOptions?: string };
9
9
  elementRenderer?: string;
@@ -478,7 +478,7 @@ export const FormsConfig = {
478
478
  formDef.fields = formDef.fields.set(
479
479
  fieldName, {
480
480
  renderer: fieldConfig.renderer,
481
- label: fieldConfig.label ?? revertKeyword(fieldName),
481
+ label: fieldConfig.label,
482
482
  tooltip: fieldConfig.tooltip,
483
483
  elementTooltip: fieldConfig.elementTooltip,
484
484
  elementRenderer: fieldConfig.elementRenderer,
@@ -24,7 +24,7 @@ const parseOptions = (leafPredicates: any, options: any) => {
24
24
  };
25
25
 
26
26
  export const FieldView = //<Context, FieldViews extends DefaultFieldViews, EnumFieldConfigs extends {}, EnumSources extends {}>() => <ViewType extends keyof FieldViews, ViewName extends keyof FieldViews[ViewType]>
27
- <T,>(fieldConfig:FieldConfig, fieldViews: any, viewType: any, viewName: any, fieldName: string, label: string, tooltip: string | undefined, enumFieldConfigs: EnumOptionsSources, enumSources: any, leafPredicates: any, injectedPrimitives?: InjectedPrimitives<T>): any =>
27
+ <T,>(fieldConfig:FieldConfig, fieldViews: any, viewType: any, viewName: any, label: string | undefined, tooltip: string | undefined, enumFieldConfigs: EnumOptionsSources, enumSources: any, leafPredicates: any, injectedPrimitives?: InjectedPrimitives<T>): any =>
28
28
  {
29
29
  if (viewType == "maybeBoolean")
30
30
  return MaybeBooleanForm<any & FormLabel, Unit>()
@@ -208,8 +208,8 @@ export const ParseForm = <T,>(
208
208
  ).withView(((fieldViews as any)[viewType] as any)[viewName]() as any)
209
209
  .mapContext<any>(_ => ({ ..._, label, tooltip }))
210
210
  } else { // the list argument is a primitive
211
- const elementForm = FieldView(fieldConfig, fieldViews, fieldNameToElementViewCategory(formFieldElementRenderers)(fieldName) as any, elementRendererName, fieldName, elementLabel ?? label, elementTooltip, EnumOptionsSources, fieldsOptionsConfig, leafPredicates, injectedPrimitives)
212
- const initialFormState = FieldFormState(fieldConfig, fieldViews, fieldNameToElementViewCategory(formFieldElementRenderers)(fieldName) as any, elementRendererName, fieldName, InfiniteStreamSources, fieldsInfiniteStreamsConfig, injectedPrimitives);
211
+ const elementForm = FieldView(fieldConfig, fieldViews, fieldNameToElementViewCategory(formFieldElementRenderers)(fieldName) as any, elementRendererName, elementLabel, elementTooltip, EnumOptionsSources, fieldsOptionsConfig, leafPredicates, injectedPrimitives)
212
+ const initialFormState = FieldFormState(fieldConfig, fieldViews, fieldNameToElementViewCategory(formFieldElementRenderers)(fieldName) as any, elementRendererName, InfiniteStreamSources, fieldsInfiniteStreamsConfig, injectedPrimitives);
213
213
  formConfig[fieldName] = ListForm<any, any, any & FormLabel, Unit>(
214
214
  { Default: () => initialFormState },
215
215
  { Default: () => initialElementValue },
@@ -239,7 +239,7 @@ export const ParseForm = <T,>(
239
239
  const initialValueValue = defaultValue(valueType)
240
240
  const getFormAndInitialState = (elementRenderers:any, rendererName:any, fieldConfig:FieldConfig) => {
241
241
  const formDef = otherForms.get(rendererName)
242
- const elementLabel = elementRenderers[fieldName].label ?? label
242
+ const elementLabel = elementRenderers[fieldName].label
243
243
  const elementTooltip = elementRenderers[fieldName].tooltip
244
244
  if (formDef != undefined) {
245
245
  return [
@@ -248,7 +248,7 @@ export const ParseForm = <T,>(
248
248
  ]
249
249
  } else {
250
250
  const categoryName = fieldNameToElementViewCategory(elementRenderers)(fieldName) as any
251
- const form = FieldView(fieldConfig, fieldViews, categoryName, rendererName, fieldName, elementLabel, elementTooltip, EnumOptionsSources, fieldsOptionsConfig, leafPredicates, injectedPrimitives)
251
+ const form = FieldView(fieldConfig, fieldViews, categoryName, rendererName, elementLabel, elementTooltip, EnumOptionsSources, fieldsOptionsConfig, leafPredicates, injectedPrimitives)
252
252
  const initialFormState = FieldFormState(fieldConfig, fieldViews, categoryName, rendererName, fieldName, InfiniteStreamSources, fieldsInfiniteStreamsConfig, injectedPrimitives);
253
253
  return [
254
254
  form,
@@ -272,7 +272,7 @@ export const ParseForm = <T,>(
272
272
  ).withView(((fieldViews as any)[viewType] as any)[viewName]() as any)
273
273
  .mapContext<any>(_ => ({ ..._, label, tooltip }))
274
274
  } else {
275
- formConfig[fieldName] = FieldView(fieldConfig, fieldViews, viewType, viewName, fieldName, label, tooltip, EnumOptionsSources, fieldsOptionsConfig, leafPredicates, injectedPrimitives);
275
+ formConfig[fieldName] = FieldView(fieldConfig, fieldViews, viewType, viewName, label, tooltip, EnumOptionsSources, fieldsOptionsConfig, leafPredicates, injectedPrimitives);
276
276
  }
277
277
  }
278
278
  }
@@ -409,6 +409,15 @@ export const parseForms =
409
409
  if (formsConfig.forms.has(field.elementRenderer))
410
410
  traverse(formsConfig.forms.get(field.elementRenderer)!)
411
411
  }
412
+ if (fieldType?.kind == "application" && fieldType?.value == "Map" && fieldType?.args.length == 2 && field.mapRenderer != undefined) {
413
+ const mapRenderer = field.mapRenderer
414
+ if (mapRenderer && formsConfig.forms.has(mapRenderer.keyRenderer.renderer)) {
415
+ traverse(formsConfig.forms.get(mapRenderer.keyRenderer.renderer)!)
416
+ }
417
+ if (mapRenderer && formsConfig.forms.has(mapRenderer.valueRenderer.renderer)) {
418
+ traverse(formsConfig.forms.get(mapRenderer.valueRenderer.renderer)!)
419
+ }
420
+ }
412
421
  } catch (error) {
413
422
  errors.push(`unhandled error: ${JSON.stringify(error)} -> ${formDef.name}`)
414
423
  }
@@ -591,6 +600,9 @@ export const revertKeyword = (fieldName: string): string => {
591
600
 
592
601
  export const replaceKeywords = (obj: any, kind: "from api" | "to api"): any => {
593
602
  const replacementFn = kind == "from api" ? replaceKeyword : revertKeyword;
603
+ if(obj instanceof Date && !isNaN(obj.valueOf())) {
604
+ return obj;
605
+ }
594
606
  if (Array.isArray(obj) || List.isList(obj)) {
595
607
  return obj.map((item) =>
596
608
  typeof item == "string"
@@ -1,2 +1,2 @@
1
1
 
2
- export type FormLabel = { label: string; tooltip?: string; };
2
+ export type FormLabel = { label?: string; tooltip?: string; };