@openmrs/ngx-formentry 18.0.1-pre.487 → 19.0.1-pre.492

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 (28) hide show
  1. package/esm2022/change-tracking/control-relation.mjs +1 -3
  2. package/esm2022/components/custom-component-wrapper/custom-component-wrapper.module.mjs +22 -0
  3. package/esm2022/components/custom-control-wrapper/custom-control-wrapper.module.mjs +23 -0
  4. package/esm2022/form-entry/form-entry.module.mjs +6 -12
  5. package/esm2022/form-entry/form-factory/control-relations.factory.mjs +1 -1
  6. package/esm2022/form-entry/form-factory/form-node.mjs +1 -1
  7. package/esm2022/form-entry/form-factory/form.factory.mjs +6 -7
  8. package/esm2022/form-entry/form-factory/question.factory.mjs +2 -2
  9. package/esm2022/form-entry/helpers/js-expression-helper.mjs +16 -8
  10. package/esm2022/form-entry/services/form-schema-compiler.service.mjs +19 -5
  11. package/esm2022/form-entry/value-adapters/obs.adapter.mjs +4 -5
  12. package/esm2022/form-entry/value-adapters/order.adapter.mjs +4 -4
  13. package/esm2022/form-entry/value-adapters/person-attribute.adapter.mjs +5 -5
  14. package/esm2022/lib/index.mjs +2 -2
  15. package/fesm2022/openmrs-ngx-formentry.mjs +51 -37
  16. package/fesm2022/openmrs-ngx-formentry.mjs.map +1 -1
  17. package/form-entry/form-entry.module.d.ts +2 -2
  18. package/form-entry/form-factory/form.factory.d.ts +2 -2
  19. package/form-entry/helpers/js-expression-helper.d.ts +1 -1
  20. package/form-entry/services/form-schema-compiler.service.d.ts +2 -0
  21. package/form-entry/value-adapters/obs.adapter.d.ts +0 -1
  22. package/form-entry/value-adapters/person-attribute.adapter.d.ts +3 -3
  23. package/lib/index.d.ts +1 -1
  24. package/package.json +1 -1
  25. package/esm2022/components/custom-component-wrapper/custom-component-wrapper..module.mjs +0 -22
  26. package/esm2022/components/custom-control-wrapper/custom-control-wrapper..module.mjs +0 -23
  27. /package/components/custom-component-wrapper/{custom-component-wrapper..module.d.ts → custom-component-wrapper.module.d.ts} +0 -0
  28. /package/components/custom-control-wrapper/{custom-control-wrapper..module.d.ts → custom-control-wrapper.module.d.ts} +0 -0
@@ -178,8 +178,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
178
178
  type: Injectable
179
179
  }] });
180
180
 
181
- // import { CanHide } from '../form-entry/control-hiders-disablers/can-hide';
182
- // import { CanDisable } from '../form-entry/control-hiders-disablers/can-disable';
183
181
  class ControlRelation {
184
182
  constructor(control, relatedTo) {
185
183
  this._control = control;
@@ -1827,14 +1825,21 @@ class JsExpressionHelper {
1827
1825
  formatDate(value, format, offset) {
1828
1826
  format = format || 'yyyy-MM-dd';
1829
1827
  offset = offset || '+0300';
1830
- if (!(value instanceof Date)) {
1831
- value = new Date(value);
1832
- if (value === null || value === undefined) {
1833
- throw new Error('DateFormatException: value passed ' + 'is not a valid date');
1834
- }
1828
+ if (value === null || value === undefined || value === '') {
1829
+ throw new Error('DateFormatException: value passed is not a valid date');
1830
+ }
1831
+ const date = moment(value);
1832
+ if (!date.isValid()) {
1833
+ throw new Error('DateFormatException: value passed is not a valid date');
1834
+ }
1835
+ if (offset) {
1836
+ date.utcOffset(offset);
1835
1837
  }
1836
- return value; // TODO implement this
1837
- // return $filter('date')(value, format, offset);
1838
+ const momentFormat = format
1839
+ .replace(/yyyy/g, 'YYYY')
1840
+ .replace(/yy/g, 'YY')
1841
+ .replace(/dd/g, 'DD');
1842
+ return date.format(momentFormat);
1838
1843
  }
1839
1844
  arrayContainsAny(array, members) {
1840
1845
  if (Array.isArray(members)) {
@@ -10654,6 +10659,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
10654
10659
 
10655
10660
  class FormSchemaCompiler {
10656
10661
  constructor() { }
10662
+ isTestEnv() {
10663
+ const globalRef = typeof globalThis !== 'undefined'
10664
+ ? globalThis
10665
+ : typeof window !== 'undefined'
10666
+ ? window
10667
+ : {};
10668
+ return (typeof globalRef.jasmine !== 'undefined' ||
10669
+ typeof globalRef.__karma__ !== 'undefined');
10670
+ }
10671
+ logError(message, payload) {
10672
+ if (!this.isTestEnv()) {
10673
+ console.error(message, payload);
10674
+ }
10675
+ }
10657
10676
  compileFormSchema(formSchema, referencedComponents) {
10658
10677
  // get all referenced forms
10659
10678
  const refForms = this.getReferencedForms(formSchema, referencedComponents);
@@ -10829,7 +10848,7 @@ class FormSchemaCompiler {
10829
10848
  _.each(placeHoldersArray, (placeHolder) => {
10830
10849
  const referencedObject = this.getReferencedObject(placeHolder.reference, keyValReferencedForms);
10831
10850
  if (_.isEmpty(referencedObject)) {
10832
- console.error('Form compile: Error finding referenced object', placeHolder.reference);
10851
+ this.logError('Form compile: Error finding referenced object', placeHolder.reference);
10833
10852
  }
10834
10853
  else {
10835
10854
  placeHolder = this.fillPlaceholderObject(placeHolder, referencedObject);
@@ -10861,11 +10880,11 @@ class FormSchemaCompiler {
10861
10880
  }
10862
10881
  getReferencedObject(referenceData, keyValReferencedForms) {
10863
10882
  if (_.isEmpty(referenceData.form)) {
10864
- console.error('Form compile: reference missing form attribute', referenceData);
10883
+ this.logError('Form compile: reference missing form attribute', referenceData);
10865
10884
  return;
10866
10885
  }
10867
10886
  if (_.isEmpty(keyValReferencedForms[referenceData.form])) {
10868
- console.error('Form compile: referenced form alias not found', referenceData);
10887
+ this.logError('Form compile: referenced form alias not found', referenceData);
10869
10888
  return;
10870
10889
  }
10871
10890
  if (!_.isEmpty(referenceData.questionId)) {
@@ -10877,7 +10896,7 @@ class FormSchemaCompiler {
10877
10896
  if (!_.isEmpty(referenceData.page)) {
10878
10897
  return this.getPageInSchemaByLabel(keyValReferencedForms[referenceData.form], referenceData.page);
10879
10898
  }
10880
- console.error('Form compile: Unsupported reference type', referenceData.reference);
10899
+ this.logError('Form compile: Unsupported reference type', referenceData.reference);
10881
10900
  }
10882
10901
  getReferencedForms(formSchema, formSchemasLookupArray) {
10883
10902
  const referencedForms = formSchema.referencedForms;
@@ -12209,7 +12228,7 @@ class QuestionFactory {
12209
12228
  return question;
12210
12229
  }
12211
12230
  getSchemaQuestions(schema) {
12212
- const listQuestions = new Array();
12231
+ const listQuestions = [];
12213
12232
  this.getQuestions(schema, listQuestions);
12214
12233
  return listQuestions;
12215
12234
  }
@@ -12546,9 +12565,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
12546
12565
  }], ctorParameters: () => [] });
12547
12566
 
12548
12567
  class FormFactory {
12549
- constructor(controlService, questionFactroy, controlRelationsFactory, translate) {
12568
+ constructor(controlService, questionFactory, controlRelationsFactory, translate) {
12550
12569
  this.controlService = controlService;
12551
- this.questionFactroy = questionFactroy;
12570
+ this.questionFactory = questionFactory;
12552
12571
  this.controlRelationsFactory = controlRelationsFactory;
12553
12572
  this.translate = translate;
12554
12573
  this.nodeIndex = 0;
@@ -12559,7 +12578,7 @@ class FormFactory {
12559
12578
  };
12560
12579
  }
12561
12580
  createForm(schema, dataSource) {
12562
- const form = new Form(schema, this, this.questionFactroy);
12581
+ const form = new Form(schema, this, this.questionFactory);
12563
12582
  if (dataSource) {
12564
12583
  for (const key in dataSource) {
12565
12584
  if (dataSource.hasOwnProperty(key)) {
@@ -12567,7 +12586,7 @@ class FormFactory {
12567
12586
  }
12568
12587
  }
12569
12588
  }
12570
- const question = this.questionFactroy.createQuestionModel(schema, form);
12589
+ const question = this.questionFactory.createQuestionModel(schema, form);
12571
12590
  form.rootNode = this.createNode(question, null, null, form);
12572
12591
  this.buildRelations(form.rootNode);
12573
12592
  form.updateHiddenDisabledStateForAllControls();
@@ -12656,7 +12675,7 @@ class FormFactory {
12656
12675
  removeArrayNodeChild(index, node) {
12657
12676
  const nodeToRemove = node.children[index];
12658
12677
  node.children.splice(index, 1);
12659
- if (node.control !== null || node.control !== undefined) {
12678
+ if (node.control !== null && node.control !== undefined) {
12660
12679
  if (node.control instanceof AfeFormArray) {
12661
12680
  const control = node.control;
12662
12681
  const controlIndexToRemove = control.controls.indexOf(nodeToRemove.control);
@@ -13304,9 +13323,9 @@ class ObsValueAdapter {
13304
13323
  (node.question.extras.type === 'obs' ||
13305
13324
  (node.question.extras.type === 'complex-obs-child' &&
13306
13325
  node.question.extras.questionOptions.obsField === 'value')) &&
13307
- node.question.extras.questionOptions.rendering !== 'multiCheckbox') ||
13308
- node.question.extras.questionOptions.rendering !== 'checkbox' ||
13309
- node.question.extras.questionOptions.rendering !== 'multi-select') {
13326
+ node.question.extras.questionOptions.rendering !== 'multiCheckbox' &&
13327
+ node.question.extras.questionOptions.rendering !== 'checkbox' &&
13328
+ node.question.extras.questionOptions.rendering !== 'multi-select')) {
13310
13329
  const obs = _.find(payload, (o) => {
13311
13330
  return o.concept.uuid === node.question.extras.questionOptions.concept;
13312
13331
  });
@@ -13858,7 +13877,7 @@ class OrderValueAdapter {
13858
13877
  }
13859
13878
  return payload;
13860
13879
  }
13861
- _createPayloadOrder(orderConcept, quesitonExtras) {
13880
+ _createPayloadOrder(orderConcept, questionExtras) {
13862
13881
  const order = {
13863
13882
  concept: '',
13864
13883
  type: '',
@@ -13866,9 +13885,9 @@ class OrderValueAdapter {
13866
13885
  careSetting: ''
13867
13886
  };
13868
13887
  order.concept = orderConcept;
13869
- order.type = quesitonExtras.questionOptions.orderType;
13888
+ order.type = questionExtras.questionOptions.orderType;
13870
13889
  order.orderer = this.provider;
13871
- order.careSetting = quesitonExtras.questionOptions.orderSettingUuid;
13890
+ order.careSetting = questionExtras.questionOptions.orderSettingUuid;
13872
13891
  // delete orderer if provider not provided
13873
13892
  if (order.orderer === '') {
13874
13893
  delete order.orderer;
@@ -14362,7 +14381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
14362
14381
  type: Injectable
14363
14382
  }], ctorParameters: () => [{ type: OrderValueAdapter }, { type: DiagnosisValueAdapter }, { type: ObsValueAdapter }] });
14364
14383
 
14365
- class PersonAttribuAdapter {
14384
+ class PersonAttributeAdapter {
14366
14385
  constructor() { }
14367
14386
  generateFormPayload(form) {
14368
14387
  return this.generateNodePayload(form.rootNode);
@@ -14440,10 +14459,10 @@ class PersonAttribuAdapter {
14440
14459
  });
14441
14460
  }
14442
14461
  }
14443
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonAttribuAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14444
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonAttribuAdapter }); }
14462
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonAttributeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14463
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonAttributeAdapter }); }
14445
14464
  }
14446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonAttribuAdapter, decorators: [{
14465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonAttributeAdapter, decorators: [{
14447
14466
  type: Injectable
14448
14467
  }], ctorParameters: () => [] });
14449
14468
 
@@ -14981,7 +15000,6 @@ class FormEntryModule {
14981
15000
  InputModule,
14982
15001
  DateTimePickerModule,
14983
15002
  NgxRemoteSelectModule,
14984
- // NoopAnimationsModule,
14985
15003
  RemoteFileUploadModule,
14986
15004
  CheckboxModule,
14987
15005
  RadioModule,
@@ -15008,12 +15026,11 @@ class FormEntryModule {
15008
15026
  FormSchemaCompiler,
15009
15027
  FormFactory,
15010
15028
  QuestionFactory,
15011
- ValidationFactory,
15012
15029
  ControlRelationsFactory,
15013
15030
  ObsAdapterHelper,
15014
15031
  ObsValueAdapter,
15015
15032
  EncounterAdapter,
15016
- PersonAttribuAdapter,
15033
+ PersonAttributeAdapter,
15017
15034
  OrderValueAdapter,
15018
15035
  DiagnosisValueAdapter,
15019
15036
  DebugModeService,
@@ -15026,7 +15043,6 @@ class FormEntryModule {
15026
15043
  InputModule,
15027
15044
  DateTimePickerModule,
15028
15045
  NgxRemoteSelectModule,
15029
- // NoopAnimationsModule,
15030
15046
  RemoteFileUploadModule,
15031
15047
  CheckboxModule,
15032
15048
  RadioModule,
@@ -15053,7 +15069,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
15053
15069
  InputModule,
15054
15070
  DateTimePickerModule,
15055
15071
  NgxRemoteSelectModule,
15056
- // NoopAnimationsModule,
15057
15072
  RemoteFileUploadModule,
15058
15073
  CheckboxModule,
15059
15074
  RadioModule,
@@ -15087,12 +15102,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
15087
15102
  FormSchemaCompiler,
15088
15103
  FormFactory,
15089
15104
  QuestionFactory,
15090
- ValidationFactory,
15091
15105
  ControlRelationsFactory,
15092
15106
  ObsAdapterHelper,
15093
15107
  ObsValueAdapter,
15094
15108
  EncounterAdapter,
15095
- PersonAttribuAdapter,
15109
+ PersonAttributeAdapter,
15096
15110
  OrderValueAdapter,
15097
15111
  DiagnosisValueAdapter,
15098
15112
  DebugModeService,
@@ -15121,5 +15135,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
15121
15135
  * Generated bundle index. Do not edit.
15122
15136
  */
15123
15137
 
15124
- export { AfeControlType, AfeFormArray, AfeFormControl, AfeFormGroup, AfeNgSelectComponent, CheckBoxQuestion, ConditionalValidationModel, ControlRelationsFactory, DataSources, DatePickerComponent, DateQuestion, DateTimePickerComponent, DateTimePickerModule, DateValidationModel, EncounterAdapter, ErrorRendererComponent, FileUploadQuestion, Form, FormControlService, FormEntryModule, FormErrorsService, FormFactory, FormRendererComponent, FormSchemaCompiler, HistoricalEncounterDataService, JsExpressionHelper, JsExpressionValidationModel, MaxValidationModel, MinValidationModel, ModalComponent, MomentPipe, MultiSelectQuestion, NestedQuestion, NgxDateTimePickerModule, NgxDatetimeComponent, ObsAdapterHelper, ObsValueAdapter, Option, OrderValueAdapter, Pair, PatientIdentifierAdapter, PersonAttribuAdapter, QuestionBase, QuestionFactory, QuestionGroup, RenderingType, RepeatingQuestion, SelectQuestion, TestOrderQuestion, TextAreaInputQuestion, TextInputQuestion, TimePickerComponent, UiSelectQuestion, ValidationFactory, ValidationModel };
15138
+ export { AfeControlType, AfeFormArray, AfeFormControl, AfeFormGroup, AfeNgSelectComponent, CheckBoxQuestion, ConditionalValidationModel, ControlRelationsFactory, DataSources, DatePickerComponent, DateQuestion, DateTimePickerComponent, DateTimePickerModule, DateValidationModel, EncounterAdapter, ErrorRendererComponent, FileUploadQuestion, Form, FormControlService, FormEntryModule, FormErrorsService, FormFactory, FormRendererComponent, FormSchemaCompiler, HistoricalEncounterDataService, JsExpressionHelper, JsExpressionValidationModel, MaxValidationModel, MinValidationModel, ModalComponent, MomentPipe, MultiSelectQuestion, NestedQuestion, NgxDateTimePickerModule, NgxDatetimeComponent, ObsAdapterHelper, ObsValueAdapter, Option, OrderValueAdapter, Pair, PatientIdentifierAdapter, PersonAttributeAdapter, QuestionBase, QuestionFactory, QuestionGroup, RenderingType, RepeatingQuestion, SelectQuestion, TestOrderQuestion, TextAreaInputQuestion, TextInputQuestion, TimePickerComponent, UiSelectQuestion, ValidationFactory, ValidationModel };
15125
15139
  //# sourceMappingURL=openmrs-ngx-formentry.mjs.map