@dartech/arsenal-ui 1.3.82 → 1.3.84

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 (27) hide show
  1. package/index.js +256 -34
  2. package/package.json +1 -1
  3. package/src/interfaces/definition.d.ts +9 -1
  4. package/src/interfaces/index.d.ts +0 -1
  5. package/src/lib/Definition/CreateDefinition/CreateDefinition.d.ts +13 -1
  6. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.d.ts +13 -3
  7. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.d.ts +13 -3
  8. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.d.ts +13 -3
  9. package/src/lib/Property/PropertyFiller/PropertyFiller.d.ts +13 -3
  10. package/src/lib/Property/PropertyWidget/PropertyWidget.d.ts +13 -3
  11. package/src/lib/Property/UpsertProperty/CreatePropertiesList.d.ts +13 -2
  12. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.d.ts +13 -2
  13. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.d.ts +13 -1
  14. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.d.ts +5 -1
  15. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.d.ts +13 -2
  16. package/src/lib/Property/UpsertProperty/PropertyValueField/BooleanValueField.d.ts +0 -1
  17. package/src/lib/Property/UpsertProperty/PropertyValueField/DateTimeValueField.d.ts +0 -1
  18. package/src/lib/Property/UpsertProperty/PropertyValueField/DateValueField.d.ts +0 -1
  19. package/src/lib/Property/UpsertProperty/PropertyValueField/FileValueWidget.d.ts +6 -0
  20. package/src/lib/Property/UpsertProperty/PropertyValueField/JsonValueField.d.ts +0 -1
  21. package/src/lib/Property/UpsertProperty/PropertyValueField/PropertyValueField.d.ts +13 -1
  22. package/src/lib/Property/UpsertProperty/PropertyValueField/StringValueField.d.ts +2 -1
  23. package/src/lib/Property/UpsertProperty/PropertyValueField/TimeValueField.d.ts +0 -1
  24. package/src/lib/Property/ViewProperty/PropertyItem.d.ts +0 -1
  25. package/src/interfaces/instances.d.ts +0 -71
  26. package/src/lib/Property/UpsertProperty/PropertyValueField/EntityReferenceValueField.d.ts +0 -10
  27. package/src/utils/services.d.ts +0 -23
package/index.js CHANGED
@@ -100,6 +100,8 @@ var PropertyType;
100
100
  PropertyType["BOOLEAN"] = "BOOLEAN";
101
101
  PropertyType["ENTITY_REFERENCE"] = "ENTITY_REFERENCE";
102
102
  PropertyType["ENTITY"] = "ENTITY";
103
+ PropertyType["FILE"] = "FILE";
104
+ PropertyType["FILE_REFERENCE"] = "FILE_REFERENCE";
103
105
  PropertyType["JSON"] = "JSON";
104
106
  PropertyType["DATE"] = "DATE";
105
107
  PropertyType["TIME"] = "TIME";
@@ -1836,7 +1838,7 @@ const getSinglePropertyFillOptions = ({
1836
1838
  options[0].label = 'Switch';
1837
1839
  break;
1838
1840
  case PropertyType.ENTITY_REFERENCE:
1839
- options[0].label = 'Entity reference fields';
1841
+ options[0].label = 'Entity reference field';
1840
1842
  break;
1841
1843
  case PropertyType.JSON:
1842
1844
  options[0].label = 'JSON editor';
@@ -3283,7 +3285,10 @@ const defaultPropertyValues$1 = {
3283
3285
  const EntityAdditionalFields = ({
3284
3286
  parentPropertyFieldName,
3285
3287
  entityDefinition: _entityDefinition = false,
3286
- globalParameter: _globalParameter = false
3288
+ globalParameter: _globalParameter = false,
3289
+ entityReferenceDefinitionSources,
3290
+ entityReferenceValueComponent,
3291
+ fileReferenceValueComponent
3287
3292
  }) => {
3288
3293
  const {
3289
3294
  control,
@@ -3426,7 +3431,10 @@ const EntityAdditionalFields = ({
3426
3431
  parentFieldName: parentPropertyFieldName,
3427
3432
  focusOnIndex: focusedProperty,
3428
3433
  entityDefinition: _entityDefinition,
3429
- globalParameter: _globalParameter
3434
+ globalParameter: _globalParameter,
3435
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
3436
+ entityReferenceValueComponent: entityReferenceValueComponent,
3437
+ fileReferenceValueComponent: fileReferenceValueComponent
3430
3438
  })
3431
3439
  }))]
3432
3440
  }))
@@ -3444,6 +3452,59 @@ const EntityAdditionalFields = ({
3444
3452
  };
3445
3453
  var EntityAdditionalFields$1 = EntityAdditionalFields;
3446
3454
 
3455
+ const EntityReferencePropertyFields = ({
3456
+ propertyFieldName,
3457
+ sources: _sources = [{
3458
+ label: 'Arsenal Entities',
3459
+ value: 'ARSENAL_ENTITIES'
3460
+ }]
3461
+ }) => {
3462
+ const {
3463
+ control
3464
+ } = useFormContext();
3465
+ return jsxs(Fragment, {
3466
+ children: [jsx(Grid, {
3467
+ children: jsx(ControlSelect, {
3468
+ required: true,
3469
+ control: control,
3470
+ name: `${propertyFieldName}.source`,
3471
+ label: "Source",
3472
+ options: _sources
3473
+ })
3474
+ }), jsx(Grid, {
3475
+ children: jsx(ControlInput, {
3476
+ required: true,
3477
+ control: control,
3478
+ name: `${propertyFieldName}.definitionCode`,
3479
+ label: "Definition Code"
3480
+ })
3481
+ }), jsx(Grid, {
3482
+ children: jsx(ControlInput, {
3483
+ required: true,
3484
+ control: control,
3485
+ name: `${propertyFieldName}.definitionVersion`,
3486
+ label: "Definition Version",
3487
+ defaultValue: 1
3488
+ })
3489
+ }), jsx(Grid, {
3490
+ children: jsx(ControlInput, {
3491
+ required: true,
3492
+ control: control,
3493
+ name: `${propertyFieldName}.labelPropertyCode`,
3494
+ label: "Label Property Code"
3495
+ })
3496
+ }), jsx(Grid, {
3497
+ children: jsx(ControlInput, {
3498
+ required: true,
3499
+ control: control,
3500
+ name: `${propertyFieldName}.valuePropertyCode`,
3501
+ label: "Value Property Code"
3502
+ })
3503
+ })]
3504
+ });
3505
+ };
3506
+ var EntityReferencePropertyFields$1 = EntityReferencePropertyFields;
3507
+
3447
3508
  const StringPropertyFields = ({
3448
3509
  propertyFieldName
3449
3510
  }) => {
@@ -3543,7 +3604,10 @@ const PropertyAdditionalFields = ({
3543
3604
  propertyType,
3544
3605
  propertyFieldName,
3545
3606
  entityDefinition: _entityDefinition = false,
3546
- globalParameter: _globalParameter = false
3607
+ globalParameter: _globalParameter = false,
3608
+ entityReferenceDefinitionSources,
3609
+ entityReferenceValueComponent,
3610
+ fileReferenceValueComponent
3547
3611
  }) => {
3548
3612
  switch (propertyType) {
3549
3613
  case PropertyType.STRING:
@@ -3570,15 +3634,18 @@ const PropertyAdditionalFields = ({
3570
3634
  defaultValue: DATE_TIME_DEFAULT_FORMAT
3571
3635
  });
3572
3636
  case PropertyType.ENTITY_REFERENCE:
3573
- // return <EntityReferencePropertyFields propertyFieldName={propertyFieldName} />;
3574
- return jsx(StringPropertyFields$1, {
3575
- propertyFieldName: propertyFieldName
3637
+ return jsx(EntityReferencePropertyFields$1, {
3638
+ propertyFieldName: propertyFieldName,
3639
+ sources: entityReferenceDefinitionSources
3576
3640
  });
3577
3641
  case PropertyType.ENTITY:
3578
3642
  return jsx(EntityAdditionalFields$1, {
3579
3643
  parentPropertyFieldName: propertyFieldName,
3580
3644
  globalParameter: _globalParameter,
3581
- entityDefinition: _entityDefinition
3645
+ entityDefinition: _entityDefinition,
3646
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
3647
+ entityReferenceValueComponent: entityReferenceValueComponent,
3648
+ fileReferenceValueComponent: fileReferenceValueComponent
3582
3649
  });
3583
3650
  default:
3584
3651
  return null;
@@ -3607,8 +3674,10 @@ const StringValueField = ({
3607
3674
  name,
3608
3675
  rules: {
3609
3676
  required: required && (Array.isArray(restrictedValues) && restrictedValues.length ? 'Please, select a value' : 'Please, fill this field')
3677
+ // pattern: validate && urlValidator,
3610
3678
  }
3611
3679
  });
3680
+
3612
3681
  const value = useWatch({
3613
3682
  control,
3614
3683
  name
@@ -3646,13 +3715,88 @@ const StringValueField = ({
3646
3715
  };
3647
3716
  var StringValueField$1 = StringValueField;
3648
3717
 
3718
+ const convertBase64 = file => {
3719
+ return new Promise((resolve, reject) => {
3720
+ const fileReader = new FileReader();
3721
+ fileReader.readAsDataURL(file);
3722
+ fileReader.onload = () => {
3723
+ resolve(fileReader.result);
3724
+ };
3725
+ fileReader.onerror = error => {
3726
+ reject(error);
3727
+ };
3728
+ });
3729
+ };
3730
+ const FileValueWidget = ({
3731
+ name
3732
+ }) => {
3733
+ const {
3734
+ control,
3735
+ setValue,
3736
+ register
3737
+ } = useFormContext();
3738
+ const [fileType, setFileType] = useState(null);
3739
+ const fileValue = useWatch({
3740
+ control,
3741
+ name
3742
+ });
3743
+ const handleFileRead = useCallback(event => __awaiter(void 0, void 0, void 0, function* () {
3744
+ const file = event.target.files[0];
3745
+ const reader = new FileReader();
3746
+ reader.readAsDataURL(file);
3747
+ const base64 = yield convertBase64(file);
3748
+ setValue(name, base64);
3749
+ }), [name, setValue]);
3750
+ useEffect(() => {
3751
+ if (fileValue) {
3752
+ const type = fileValue.substring(fileValue.indexOf(':') + 1, fileValue.indexOf(';base64'));
3753
+ if (type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
3754
+ setFileType('application/xls');
3755
+ } else if (type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {
3756
+ setFileType('application/docx');
3757
+ } else {
3758
+ setFileType(type);
3759
+ }
3760
+ }
3761
+ }, [fileValue]);
3762
+ return jsxs(Fragment, {
3763
+ children: [fileType && jsx(Box, Object.assign({
3764
+ mb: 2
3765
+ }, {
3766
+ children: jsx(Typography, Object.assign({
3767
+ variant: "subtitle2"
3768
+ }, {
3769
+ children: `Uploaded file type: ${fileType}`
3770
+ }))
3771
+ })), jsxs(Button, Object.assign({
3772
+ component: "label",
3773
+ variant: "contained",
3774
+ size: "large",
3775
+ color: "primary"
3776
+ }, {
3777
+ children: [fileType ? 'Change file' : 'Upload file', jsx("input", Object.assign({
3778
+ type: "hidden"
3779
+ }, register(`${name}`, {
3780
+ required: true
3781
+ }))), jsx("input", {
3782
+ type: "file",
3783
+ hidden: true,
3784
+ onChange: handleFileRead
3785
+ })]
3786
+ }))]
3787
+ });
3788
+ };
3789
+ var FileValueWidget$1 = FileValueWidget;
3790
+
3649
3791
  const PropertyWidget = ({
3650
3792
  property,
3651
3793
  name,
3652
3794
  label,
3653
3795
  useExpression,
3654
3796
  control,
3655
- baseURL
3797
+ entityReferenceDefinitionSources,
3798
+ entityReferenceValueComponent: EntityReferenceValueComponent,
3799
+ fileReferenceValueComponent: FileReferenceValueComponent
3656
3800
  }) => {
3657
3801
  const propertyType = useMemo(() => typeof property.propertyType === 'string' ? property.propertyType : property['propertyType']['value'], [property]);
3658
3802
  switch (propertyType) {
@@ -3734,10 +3878,32 @@ const PropertyWidget = ({
3734
3878
  restrictedValues: property.restrictedValues
3735
3879
  });
3736
3880
  case PropertyType.ENTITY_REFERENCE:
3737
- return jsx(StringValueField$1, {
3738
- name: name,
3739
- label: label
3881
+ if (EntityReferenceValueComponent) {
3882
+ return jsx(EntityReferenceValueComponent, {
3883
+ name: name,
3884
+ property: property
3885
+ });
3886
+ } else {
3887
+ return jsx(StringValueField$1, {
3888
+ name: name,
3889
+ label: label
3890
+ });
3891
+ }
3892
+ case PropertyType.FILE:
3893
+ return jsx(FileValueWidget$1, {
3894
+ name: name
3740
3895
  });
3896
+ case PropertyType.FILE_REFERENCE:
3897
+ if (FileReferenceValueComponent) {
3898
+ return jsx(FileReferenceValueComponent, {
3899
+ name: name
3900
+ });
3901
+ } else {
3902
+ return jsx(StringValueField$1, {
3903
+ name: name,
3904
+ label: label
3905
+ });
3906
+ }
3741
3907
  case PropertyType.ANY:
3742
3908
  return jsx(ControlAceEditor, {
3743
3909
  control: control,
@@ -3749,7 +3915,10 @@ const PropertyWidget = ({
3749
3915
  return jsx(DefinitionFiller, {
3750
3916
  properties: property.properties,
3751
3917
  dataFieldName: name,
3752
- useExpression: useExpression
3918
+ useExpression: useExpression,
3919
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
3920
+ entityReferenceValueComponent: EntityReferenceValueComponent,
3921
+ fileReferenceValueComponent: FileReferenceValueComponent
3753
3922
  });
3754
3923
  default:
3755
3924
  return jsx("div", {
@@ -3791,6 +3960,8 @@ const usePropertyFiller = ({
3791
3960
  case PropertyType.DATE_TIME:
3792
3961
  case PropertyType.ENTITY_REFERENCE:
3793
3962
  case PropertyType.ANY:
3963
+ case PropertyType.FILE:
3964
+ case PropertyType.FILE_REFERENCE:
3794
3965
  return '';
3795
3966
  case PropertyType.JSON:
3796
3967
  return {};
@@ -3857,7 +4028,9 @@ const PropertyFiller = ({
3857
4028
  label,
3858
4029
  required,
3859
4030
  title,
3860
- baseURL
4031
+ entityReferenceDefinitionSources,
4032
+ entityReferenceValueComponent,
4033
+ fileReferenceValueComponent
3861
4034
  }) => {
3862
4035
  const {
3863
4036
  control,
@@ -4030,10 +4203,15 @@ const PropertyFiller = ({
4030
4203
  name: name,
4031
4204
  useExpression: useExpression,
4032
4205
  label: valueLabel,
4033
- baseURL: baseURL
4206
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
4207
+ entityReferenceValueComponent: entityReferenceValueComponent,
4208
+ fileReferenceValueComponent: fileReferenceValueComponent
4034
4209
  }), fillOption === 'dem_builder' && jsx(CreateDefinition, {
4035
4210
  title: "JSON",
4036
- definitionFieldName: name
4211
+ definitionFieldName: name,
4212
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
4213
+ entityReferenceValueComponent: entityReferenceValueComponent,
4214
+ fileReferenceValueComponent: fileReferenceValueComponent
4037
4215
  }), error && jsx(FormHelperText, Object.assign({
4038
4216
  error: true
4039
4217
  }, {
@@ -4048,7 +4226,9 @@ const MultiplePropertyWidget = ({
4048
4226
  useExpression,
4049
4227
  required,
4050
4228
  label,
4051
- baseURL
4229
+ entityReferenceDefinitionSources,
4230
+ entityReferenceValueComponent,
4231
+ fileReferenceValueComponent
4052
4232
  }) => {
4053
4233
  const {
4054
4234
  control,
@@ -4094,7 +4274,9 @@ const MultiplePropertyWidget = ({
4094
4274
  useExpression: useExpression,
4095
4275
  name: `${name}.${index}`,
4096
4276
  label: `${label || property.name} (${index + 1})`,
4097
- baseURL: baseURL
4277
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
4278
+ entityReferenceValueComponent: entityReferenceValueComponent,
4279
+ fileReferenceValueComponent: fileReferenceValueComponent
4098
4280
  }), jsx(Box, Object.assign({
4099
4281
  mt: "8px",
4100
4282
  ml: "4px"
@@ -4135,7 +4317,9 @@ const MultiplePropertyFiller = ({
4135
4317
  required,
4136
4318
  label,
4137
4319
  title,
4138
- baseURL
4320
+ entityReferenceDefinitionSources,
4321
+ entityReferenceValueComponent,
4322
+ fileReferenceValueComponent
4139
4323
  }) => {
4140
4324
  var _a;
4141
4325
  const [selectTouched, setSelectTouched] = useState(false);
@@ -4278,7 +4462,9 @@ const MultiplePropertyFiller = ({
4278
4462
  useExpression: useExpression,
4279
4463
  required: required,
4280
4464
  label: label,
4281
- baseURL: baseURL
4465
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
4466
+ entityReferenceValueComponent: entityReferenceValueComponent,
4467
+ fileReferenceValueComponent: fileReferenceValueComponent
4282
4468
  }), error && jsx(FormHelperText, Object.assign({
4283
4469
  error: true
4284
4470
  }, {
@@ -4291,7 +4477,10 @@ const PropertyValueField = ({
4291
4477
  propertyFieldName,
4292
4478
  name,
4293
4479
  label: _label = '',
4294
- required
4480
+ required,
4481
+ entityReferenceDefinitionSources,
4482
+ entityReferenceValueComponent,
4483
+ fileReferenceValueComponent
4295
4484
  }) => {
4296
4485
  const {
4297
4486
  control
@@ -4342,12 +4531,18 @@ const PropertyValueField = ({
4342
4531
  name: name,
4343
4532
  property: fillerProperty,
4344
4533
  title: _label,
4345
- required: required
4534
+ required: required,
4535
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
4536
+ entityReferenceValueComponent: entityReferenceValueComponent,
4537
+ fileReferenceValueComponent: fileReferenceValueComponent
4346
4538
  }) : jsx(PropertyFiller, {
4347
4539
  name: name,
4348
4540
  property: fillerProperty,
4349
4541
  title: _label,
4350
- required: required
4542
+ required: required,
4543
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
4544
+ entityReferenceValueComponent: entityReferenceValueComponent,
4545
+ fileReferenceValueComponent: fileReferenceValueComponent
4351
4546
  });
4352
4547
  };
4353
4548
 
@@ -4744,7 +4939,10 @@ const CreatePropertyFormFields = ({
4744
4939
  propertyFieldName,
4745
4940
  entityDefinition: _entityDefinition = false,
4746
4941
  globalParameter: _globalParameter = false,
4747
- customPropertyFields: _customPropertyFields = []
4942
+ customPropertyFields: _customPropertyFields = [],
4943
+ entityReferenceDefinitionSources,
4944
+ entityReferenceValueComponent,
4945
+ fileReferenceValueComponent
4748
4946
  }) => {
4749
4947
  var _a;
4750
4948
  const {
@@ -4870,12 +5068,18 @@ const CreatePropertyFormFields = ({
4870
5068
  propertyType: typeof propertyType === 'string' ? propertyType : propertyType.value,
4871
5069
  propertyFieldName: propertyFieldName,
4872
5070
  globalParameter: _globalParameter,
4873
- entityDefinition: _entityDefinition
5071
+ entityDefinition: _entityDefinition,
5072
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
5073
+ entityReferenceValueComponent: entityReferenceValueComponent,
5074
+ fileReferenceValueComponent: fileReferenceValueComponent
4874
5075
  }), jsx(PropertyValueField, {
4875
5076
  propertyFieldName: propertyFieldName,
4876
5077
  name: `${propertyFieldName}.${_globalParameter ? 'value' : 'defaultValue'}`,
4877
5078
  label: valueLabel,
4878
- required: _globalParameter ? isRequired : false
5079
+ required: _globalParameter ? isRequired : false,
5080
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
5081
+ entityReferenceValueComponent: entityReferenceValueComponent,
5082
+ fileReferenceValueComponent: fileReferenceValueComponent
4879
5083
  })]
4880
5084
  }), customFields.length ? jsx(Fragment, {
4881
5085
  children: customFields.map((field, index) => jsx(Grid, {
@@ -4909,7 +5113,10 @@ const CreatePropertiesList = ({
4909
5113
  globalParameter: _globalParameter = false,
4910
5114
  customPropertyFields: _customPropertyFields = [],
4911
5115
  entityPropFields,
4912
- parentRemove
5116
+ parentRemove,
5117
+ entityReferenceDefinitionSources,
5118
+ entityReferenceValueComponent,
5119
+ fileReferenceValueComponent
4913
5120
  }) => {
4914
5121
  const fieldName = useMemo(() => parentFieldName ? `${parentFieldName}.properties` : `properties`, [parentFieldName]);
4915
5122
  const {
@@ -5003,7 +5210,10 @@ const CreatePropertiesList = ({
5003
5210
  propertyFieldName: `${fieldName}.${index}`,
5004
5211
  entityDefinition: _entityDefinition,
5005
5212
  globalParameter: _globalParameter,
5006
- customPropertyFields: _customPropertyFields
5213
+ customPropertyFields: _customPropertyFields,
5214
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
5215
+ entityReferenceValueComponent: entityReferenceValueComponent,
5216
+ fileReferenceValueComponent: fileReferenceValueComponent
5007
5217
  })
5008
5218
  }), jsx(AccordionActions, {
5009
5219
  children: jsx(Button, Object.assign({
@@ -5037,7 +5247,10 @@ const CreateDefinition = ({
5037
5247
  hideCodeField,
5038
5248
  hideVersionField,
5039
5249
  hideNameField,
5040
- required: _required = false
5250
+ required: _required = false,
5251
+ entityReferenceDefinitionSources,
5252
+ entityReferenceValueComponent,
5253
+ fileReferenceValueComponent
5041
5254
  }) => {
5042
5255
  const {
5043
5256
  control
@@ -5088,7 +5301,10 @@ const CreateDefinition = ({
5088
5301
  })
5089
5302
  })), jsx(CreatePropertiesList, {
5090
5303
  required: _required,
5091
- parentFieldName: definitionFieldName
5304
+ parentFieldName: definitionFieldName,
5305
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
5306
+ entityReferenceValueComponent: entityReferenceValueComponent,
5307
+ fileReferenceValueComponent: fileReferenceValueComponent
5092
5308
  })]
5093
5309
  }));
5094
5310
  };
@@ -5365,7 +5581,9 @@ const DefinitionFiller = ({
5365
5581
  dataFieldName,
5366
5582
  useExpression: _useExpression = false,
5367
5583
  title,
5368
- baseURL
5584
+ entityReferenceDefinitionSources,
5585
+ entityReferenceValueComponent,
5586
+ fileReferenceValueComponent
5369
5587
  }) => {
5370
5588
  const stepperData = useMemo(() => {
5371
5589
  if (properties) {
@@ -5389,20 +5607,24 @@ const DefinitionFiller = ({
5389
5607
  useExpression: _useExpression,
5390
5608
  label: property.name,
5391
5609
  required: property.isRequired,
5392
- baseURL: baseURL
5610
+ entityReferenceValueComponent: entityReferenceValueComponent,
5611
+ fileReferenceValueComponent: fileReferenceValueComponent,
5612
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources
5393
5613
  }) : jsx(PropertyFiller, {
5394
5614
  property: property,
5395
5615
  name: `${dataFieldName}.${property.key}`,
5396
5616
  useExpression: _useExpression,
5397
5617
  label: property.name,
5398
5618
  required: property.isRequired,
5399
- baseURL: baseURL
5619
+ entityReferenceDefinitionSources: entityReferenceDefinitionSources,
5620
+ entityReferenceValueComponent: entityReferenceValueComponent,
5621
+ fileReferenceValueComponent: fileReferenceValueComponent
5400
5622
  })
5401
5623
  };
5402
5624
  });
5403
5625
  }
5404
5626
  return [];
5405
- }, [properties, dataFieldName, _useExpression, baseURL]);
5627
+ }, [properties, dataFieldName, _useExpression, entityReferenceValueComponent, entityReferenceDefinitionSources, fileReferenceValueComponent]);
5406
5628
  return jsx(LocalizationProvider, Object.assign({
5407
5629
  dateAdapter: AdapterDateFns
5408
5630
  }, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dartech/arsenal-ui",
3
- "version": "1.3.82",
3
+ "version": "1.3.84",
4
4
  "author": "DAR",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -10,6 +10,8 @@ export declare enum PropertyType {
10
10
  BOOLEAN = "BOOLEAN",
11
11
  ENTITY_REFERENCE = "ENTITY_REFERENCE",
12
12
  ENTITY = "ENTITY",
13
+ FILE = "FILE",
14
+ FILE_REFERENCE = "FILE_REFERENCE",
13
15
  JSON = "JSON",
14
16
  DATE = "DATE",
15
17
  TIME = "TIME",
@@ -105,7 +107,13 @@ export interface TimeProperty extends Property {
105
107
  export interface AnyProperty extends Property {
106
108
  propertyType: PropertyType.ANY;
107
109
  }
108
- export type PropertyUnion<T = Record<string, never>> = BigDecimalProperty | BigIntegerProperty | BooleanProperty | DateProperty | DateTimeProperty | DoubleProperty | EntityTypeProperty<T> | EntityReferenceProperty | FloatProperty | StringProperty | IntegerProperty | JsonProperty | LongProperty | TimeProperty | AnyProperty | EntityReferenceProperty;
110
+ export interface FileProperty extends Property {
111
+ propertyType: PropertyType.FILE;
112
+ }
113
+ export interface FileReferenceProperty extends Property {
114
+ propertyType: PropertyType.FILE_REFERENCE;
115
+ }
116
+ export type PropertyUnion<T = Record<string, never>> = BigDecimalProperty | BigIntegerProperty | BooleanProperty | DateProperty | DateTimeProperty | DoubleProperty | EntityTypeProperty<T> | EntityReferenceProperty | FloatProperty | StringProperty | IntegerProperty | JsonProperty | LongProperty | TimeProperty | AnyProperty | EntityReferenceProperty | FileProperty | FileReferenceProperty;
109
117
  export declare const DATE_DEFAULT_FORMAT = "yyyy-MM-dd";
110
118
  export declare const TIME_DEFAULT_FORMAT = "HH:mm:ss";
111
119
  export declare const DATE_TIME_DEFAULT_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
@@ -1,4 +1,3 @@
1
1
  export * from './definition';
2
2
  export * from './ui';
3
3
  export * from './common';
4
- export * from './instances';
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { EntityReferenceProperty } from '../../../interfaces';
2
3
  type Props = {
3
4
  definitionFieldName?: string;
4
5
  title?: string;
@@ -6,6 +7,17 @@ type Props = {
6
7
  hideVersionField?: boolean;
7
8
  hideNameField?: boolean;
8
9
  required?: boolean;
10
+ entityReferenceDefinitionSources?: {
11
+ label: string;
12
+ value: string;
13
+ }[];
14
+ entityReferenceValueComponent?: React.ElementType<{
15
+ name: string;
16
+ property: EntityReferenceProperty;
17
+ }>;
18
+ fileReferenceValueComponent?: React.ElementType<{
19
+ name: string;
20
+ }>;
9
21
  };
10
- export declare const CreateDefinition: ({ definitionFieldName, title, hideCodeField, hideVersionField, hideNameField, required, }: Props) => JSX.Element;
22
+ export declare const CreateDefinition: ({ definitionFieldName, title, hideCodeField, hideVersionField, hideNameField, required, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
11
23
  export default CreateDefinition;
@@ -1,11 +1,21 @@
1
1
  /// <reference types="react" />
2
- import { PropertiesArrayType } from '../../../interfaces';
2
+ import { EntityReferenceProperty, PropertiesArrayType } from '../../../interfaces';
3
3
  type Props = {
4
4
  properties: PropertiesArrayType;
5
5
  dataFieldName: string;
6
6
  useExpression?: boolean;
7
7
  title?: string;
8
- baseURL?: string;
8
+ entityReferenceDefinitionSources?: {
9
+ label: string;
10
+ value: string;
11
+ }[];
12
+ entityReferenceValueComponent?: React.ElementType<{
13
+ name: string;
14
+ property: EntityReferenceProperty;
15
+ }>;
16
+ fileReferenceValueComponent?: React.ElementType<{
17
+ name: string;
18
+ }>;
9
19
  };
10
- export declare const DefinitionFiller: ({ properties, dataFieldName, useExpression, title, baseURL, }: Props) => JSX.Element;
20
+ export declare const DefinitionFiller: ({ properties, dataFieldName, useExpression, title, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
11
21
  export default DefinitionFiller;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { PropertyUnion } from '../../../interfaces';
2
+ import { EntityReferenceProperty, PropertyUnion } from '../../../interfaces';
3
3
  type Props = {
4
4
  property: PropertyUnion;
5
5
  name: string;
@@ -7,7 +7,17 @@ type Props = {
7
7
  required?: boolean;
8
8
  label?: string;
9
9
  title?: string;
10
- baseURL?: string;
10
+ entityReferenceDefinitionSources?: {
11
+ label: string;
12
+ value: string;
13
+ }[];
14
+ entityReferenceValueComponent?: React.ElementType<{
15
+ name: string;
16
+ property: EntityReferenceProperty;
17
+ }>;
18
+ fileReferenceValueComponent?: React.ElementType<{
19
+ name: string;
20
+ }>;
11
21
  };
12
- export declare const MultiplePropertyFiller: ({ property, name, useExpression, required, label, title, baseURL, }: Props) => JSX.Element;
22
+ export declare const MultiplePropertyFiller: ({ property, name, useExpression, required, label, title, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
13
23
  export default MultiplePropertyFiller;
@@ -1,12 +1,22 @@
1
1
  /// <reference types="react" />
2
- import { PropertyUnion } from '../../../interfaces';
2
+ import { EntityReferenceProperty, PropertyUnion } from '../../../interfaces';
3
3
  type Props = {
4
4
  name: string;
5
5
  property: PropertyUnion;
6
6
  useExpression?: boolean;
7
7
  required?: boolean;
8
8
  label?: string;
9
- baseURL?: string;
9
+ entityReferenceDefinitionSources?: {
10
+ label: string;
11
+ value: string;
12
+ }[];
13
+ entityReferenceValueComponent?: React.ElementType<{
14
+ name: string;
15
+ property: EntityReferenceProperty;
16
+ }>;
17
+ fileReferenceValueComponent?: React.ElementType<{
18
+ name: string;
19
+ }>;
10
20
  };
11
- export declare const MultiplePropertyWidget: ({ name, property, useExpression, required, label, baseURL, }: Props) => JSX.Element;
21
+ export declare const MultiplePropertyWidget: ({ name, property, useExpression, required, label, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
12
22
  export default MultiplePropertyWidget;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { PropertyUnion } from '../../../interfaces';
2
+ import { EntityReferenceProperty, PropertyUnion } from '../../../interfaces';
3
3
  export type PropertyFillerProps = {
4
4
  property: PropertyUnion;
5
5
  name: string;
@@ -7,7 +7,17 @@ export type PropertyFillerProps = {
7
7
  label?: string;
8
8
  required?: boolean;
9
9
  title?: string;
10
- baseURL?: string;
10
+ entityReferenceDefinitionSources?: {
11
+ label: string;
12
+ value: string;
13
+ }[];
14
+ entityReferenceValueComponent?: React.ElementType<{
15
+ name: string;
16
+ property: EntityReferenceProperty;
17
+ }>;
18
+ fileReferenceValueComponent?: React.ElementType<{
19
+ name: string;
20
+ }>;
11
21
  };
12
- export declare const PropertyFiller: ({ property, name, useExpression, label, required, title, baseURL, }: PropertyFillerProps) => JSX.Element;
22
+ export declare const PropertyFiller: ({ property, name, useExpression, label, required, title, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: PropertyFillerProps) => JSX.Element;
13
23
  export default PropertyFiller;
@@ -1,13 +1,23 @@
1
1
  /// <reference types="react" />
2
2
  import { Control } from 'react-hook-form';
3
- import { PropertyUnion } from '../../../interfaces';
3
+ import { EntityReferenceProperty, PropertyUnion } from '../../../interfaces';
4
4
  type Props = {
5
5
  property: PropertyUnion;
6
6
  name: string;
7
7
  label?: string;
8
8
  useExpression?: boolean;
9
9
  control: Control<any>;
10
- baseURL?: string;
10
+ entityReferenceDefinitionSources?: {
11
+ label: string;
12
+ value: string;
13
+ }[];
14
+ entityReferenceValueComponent?: React.ElementType<{
15
+ name: string;
16
+ property: EntityReferenceProperty;
17
+ }>;
18
+ fileReferenceValueComponent?: React.ElementType<{
19
+ name: string;
20
+ }>;
11
21
  };
12
- export declare const PropertyWidget: ({ property, name, label, useExpression, control, baseURL, }: Props) => JSX.Element;
22
+ export declare const PropertyWidget: ({ property, name, label, useExpression, control, entityReferenceDefinitionSources, entityReferenceValueComponent: EntityReferenceValueComponent, fileReferenceValueComponent: FileReferenceValueComponent, }: Props) => JSX.Element;
13
23
  export default PropertyWidget;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { CustomPropertyFieldProps } from '../../../interfaces';
2
+ import { CustomPropertyFieldProps, EntityReferenceProperty } from '../../../interfaces';
3
3
  type Props = {
4
4
  parentFieldName?: string;
5
5
  hideAddButton?: boolean;
@@ -12,6 +12,17 @@ type Props = {
12
12
  id: string;
13
13
  }>;
14
14
  parentRemove?: (index?: number | number[]) => void;
15
+ entityReferenceDefinitionSources?: {
16
+ label: string;
17
+ value: string;
18
+ }[];
19
+ entityReferenceValueComponent?: React.ElementType<{
20
+ name: string;
21
+ property: EntityReferenceProperty;
22
+ }>;
23
+ fileReferenceValueComponent?: React.ElementType<{
24
+ name: string;
25
+ }>;
15
26
  };
16
- export declare const CreatePropertiesList: ({ parentFieldName, hideAddButton, focusOnIndex, required, entityDefinition, globalParameter, customPropertyFields, entityPropFields, parentRemove, }: Props) => JSX.Element;
27
+ export declare const CreatePropertiesList: ({ parentFieldName, hideAddButton, focusOnIndex, required, entityDefinition, globalParameter, customPropertyFields, entityPropFields, parentRemove, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
17
28
  export default CreatePropertiesList;
@@ -1,10 +1,21 @@
1
1
  /// <reference types="react" />
2
- import { CustomPropertyFieldProps } from '../../../interfaces';
2
+ import { CustomPropertyFieldProps, EntityReferenceProperty } from '../../../interfaces';
3
3
  type Props = {
4
4
  propertyFieldName: string;
5
5
  entityDefinition?: boolean;
6
6
  globalParameter?: boolean;
7
7
  customPropertyFields?: CustomPropertyFieldProps[];
8
+ entityReferenceDefinitionSources?: {
9
+ label: string;
10
+ value: string;
11
+ }[];
12
+ entityReferenceValueComponent?: React.ElementType<{
13
+ name: string;
14
+ property: EntityReferenceProperty;
15
+ }>;
16
+ fileReferenceValueComponent?: React.ElementType<{
17
+ name: string;
18
+ }>;
8
19
  };
9
- export declare const CreatePropertyFormFields: ({ propertyFieldName, entityDefinition, globalParameter, customPropertyFields, }: Props) => JSX.Element;
20
+ export declare const CreatePropertyFormFields: ({ propertyFieldName, entityDefinition, globalParameter, customPropertyFields, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
10
21
  export default CreatePropertyFormFields;
@@ -1,8 +1,20 @@
1
1
  /// <reference types="react" />
2
+ import { EntityReferenceProperty } from '../../../../interfaces';
2
3
  type Props = {
3
4
  parentPropertyFieldName: string;
4
5
  entityDefinition?: boolean;
5
6
  globalParameter?: boolean;
7
+ entityReferenceDefinitionSources?: {
8
+ label: string;
9
+ value: string;
10
+ }[];
11
+ entityReferenceValueComponent?: React.ElementType<{
12
+ name: string;
13
+ property: EntityReferenceProperty;
14
+ }>;
15
+ fileReferenceValueComponent?: React.ElementType<{
16
+ name: string;
17
+ }>;
6
18
  };
7
- declare const EntityAdditionalFields: ({ parentPropertyFieldName, entityDefinition, globalParameter, }: Props) => JSX.Element;
19
+ declare const EntityAdditionalFields: ({ parentPropertyFieldName, entityDefinition, globalParameter, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
8
20
  export default EntityAdditionalFields;
@@ -1,6 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  type Props = {
3
3
  propertyFieldName: string;
4
+ sources?: {
5
+ label: string;
6
+ value: string;
7
+ }[];
4
8
  };
5
- declare const EntityReferencePropertyFields: ({ propertyFieldName }: Props) => JSX.Element;
9
+ declare const EntityReferencePropertyFields: ({ propertyFieldName, sources, }: Props) => JSX.Element;
6
10
  export default EntityReferencePropertyFields;
@@ -1,10 +1,21 @@
1
1
  /// <reference types="react" />
2
- import { PropertyType } from '../../../../interfaces';
2
+ import { PropertyType, EntityReferenceProperty } from '../../../../interfaces';
3
3
  type Props = {
4
4
  propertyType: PropertyType;
5
5
  propertyFieldName: string;
6
6
  entityDefinition?: boolean;
7
7
  globalParameter?: boolean;
8
+ entityReferenceDefinitionSources?: {
9
+ label: string;
10
+ value: string;
11
+ }[];
12
+ entityReferenceValueComponent?: React.ElementType<{
13
+ name: string;
14
+ property: EntityReferenceProperty;
15
+ }>;
16
+ fileReferenceValueComponent?: React.ElementType<{
17
+ name: string;
18
+ }>;
8
19
  };
9
- export declare const PropertyAdditionalFields: ({ propertyType, propertyFieldName, entityDefinition, globalParameter, }: Props) => JSX.Element;
20
+ export declare const PropertyAdditionalFields: ({ propertyType, propertyFieldName, entityDefinition, globalParameter, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
10
21
  export default PropertyAdditionalFields;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type Props = {
3
2
  name: string;
4
3
  label?: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type Props = {
3
2
  name: string;
4
3
  label?: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type Props = {
3
2
  name: string;
4
3
  format: string;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ type Props = {
3
+ name: string;
4
+ };
5
+ declare const FileValueWidget: ({ name }: Props) => JSX.Element;
6
+ export default FileValueWidget;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type Props = {
3
2
  name: string;
4
3
  label?: string;
@@ -1,9 +1,21 @@
1
1
  /// <reference types="react" />
2
+ import { EntityReferenceProperty } from '../../../../interfaces';
2
3
  type Props = {
3
4
  propertyFieldName: string;
4
5
  name: string;
5
6
  label?: string;
6
7
  required?: boolean;
8
+ entityReferenceDefinitionSources?: {
9
+ label: string;
10
+ value: string;
11
+ }[];
12
+ entityReferenceValueComponent?: React.ElementType<{
13
+ name: string;
14
+ property: EntityReferenceProperty;
15
+ }>;
16
+ fileReferenceValueComponent?: React.ElementType<{
17
+ name: string;
18
+ }>;
7
19
  };
8
- export declare const PropertyValueField: ({ propertyFieldName, name, label, required }: Props) => JSX.Element;
20
+ export declare const PropertyValueField: ({ propertyFieldName, name, label, required, entityReferenceDefinitionSources, entityReferenceValueComponent, fileReferenceValueComponent, }: Props) => JSX.Element;
9
21
  export default PropertyValueField;
@@ -4,6 +4,7 @@ type Props = {
4
4
  label?: string;
5
5
  required?: boolean;
6
6
  restrictedValues?: string[];
7
+ urlValidate?: boolean;
7
8
  };
8
- declare const StringValueField: ({ name, label, required, restrictedValues }: Props) => JSX.Element;
9
+ declare const StringValueField: ({ name, label, required, restrictedValues, }: Props) => JSX.Element;
9
10
  export default StringValueField;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type Props = {
3
2
  name: string;
4
3
  label?: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { PropertyUnion } from '../../../interfaces';
3
2
  type PropertyItemProps = {
4
3
  property: PropertyUnion;
@@ -1,71 +0,0 @@
1
- export interface Entity {
2
- id: string;
3
- definitionCode: string;
4
- definitionVersion: number;
5
- data: Record<string, unknown>;
6
- createdAt: Date;
7
- updatedAt: Date;
8
- }
9
- export interface CustomerApplication {
10
- id: string;
11
- customerId: string;
12
- definitionCode: string;
13
- definitionVersion: number | string;
14
- data: Record<string, any>;
15
- createdAt: string;
16
- updatedAt: string;
17
- }
18
- export interface PledgeInstance {
19
- id: string;
20
- definitionCode: string;
21
- definitionVersion: number | string;
22
- data: Record<string, any>;
23
- createdAt: string;
24
- updatedAt: string;
25
- definition?: {
26
- id: string;
27
- name: string;
28
- };
29
- }
30
- export interface Product {
31
- id: string;
32
- definitionCode: string;
33
- definitionVersion: number;
34
- data: {
35
- [key: string]: unknown;
36
- };
37
- customerApplicationDefinitionRef: {
38
- code: string;
39
- version: number | string;
40
- }[];
41
- minAmount: number;
42
- maxAmount: number;
43
- periodType: string;
44
- minTerm: number;
45
- maxTerm: number;
46
- interestRate: number;
47
- currency: string;
48
- overpaymentCoefficient: number;
49
- minPartialRepaymentAmount: number;
50
- principalOverdueRate: number;
51
- interestOverdueRate: number;
52
- carteBlanchePeriod: number;
53
- gracePeriod: number;
54
- maxOverdueCoefficient: number;
55
- maxOverdueDays: number;
56
- maxNumberOfProlongations: number;
57
- prolongationAvailableOverdueDay: number;
58
- prolongationSettings: {
59
- days: number[] | string;
60
- rate: number;
61
- availableFromGap: number;
62
- }[];
63
- maxProlongationDays: number;
64
- createdAt: Date;
65
- updatedAt: Date;
66
- privateMetadata: Record<string, unknown>;
67
- isActive: boolean;
68
- isOverpaymentAllowed: boolean;
69
- isPartialPaymentAllowed: boolean;
70
- isProlongationAllowed: boolean;
71
- }
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { EntityReferenceProperty } from '../../../../interfaces/definition';
3
- type Props = {
4
- name: string;
5
- required?: boolean;
6
- definitionProperty: EntityReferenceProperty;
7
- baseURL?: string;
8
- };
9
- declare const EntityReferenceValueField: ({ name, required, definitionProperty, baseURL, }: Props) => JSX.Element;
10
- export default EntityReferenceValueField;
@@ -1,23 +0,0 @@
1
- import { CustomerApplication, Entity, PledgeInstance, Product } from '../interfaces';
2
- type Props = {
3
- baseURL: string;
4
- };
5
- export declare function useEntitiesService({ baseURL }: Props): {
6
- getEntitiesByCodeAndVersion: ({ definitionCode, definitionVersion, }: {
7
- definitionCode: any;
8
- definitionVersion: any;
9
- }) => Promise<Entity[]>;
10
- getCustomerApplications: (params?: {
11
- definitionCode;
12
- definitionVersion;
13
- }) => Promise<CustomerApplication[]>;
14
- getProducts: (params?: {
15
- definitionCode;
16
- definitionVersion;
17
- }) => Promise<Product[]>;
18
- getPledgeInstances: (params?: {
19
- definitionCode;
20
- definitionVersion;
21
- }) => Promise<PledgeInstance[]>;
22
- };
23
- export {};