@steedos/objectql 2.3.0-beta.9 → 2.3.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.
@@ -5,9 +5,10 @@ var tslib_1 = require("tslib");
5
5
  var _ = require("underscore");
6
6
  var moment = require("moment");
7
7
  var __1 = require("../..");
8
+ var __2 = require("../../..");
8
9
  var i18n_1 = require("@steedos/i18n");
9
10
  var gql = require("moleculer-apollo-server").moleculerGql;
10
- var __2 = require("../../..");
11
+ var __3 = require("../../..");
11
12
  var getQueryFields_1 = require("./getQueryFields");
12
13
  var getPrimaryFieldType_1 = require("./getPrimaryFieldType");
13
14
  var consts_1 = require("./consts");
@@ -120,6 +121,19 @@ function generateSettingsGraphql(objectConfig) {
120
121
  };
121
122
  var _display_type = _getDisplayType(_display_type_name, fields);
122
123
  type = gql(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _display_type, type);
124
+ var _ui_type_name = "".concat(consts_1.UI_PREFIX, "_").concat(objectName);
125
+ type += "".concat(consts_1.UI_PREFIX, "(fields: [String]): ").concat(_ui_type_name, " ");
126
+ resolvers[objectName][consts_1.UI_PREFIX] = {
127
+ action: "".concat((0, __1.getObjectServiceName)(objectName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX),
128
+ rootParams: {
129
+ _id: "_id",
130
+ },
131
+ params: {
132
+ objectName: objectName,
133
+ },
134
+ };
135
+ var _ui_type = _getUIType(_ui_type_name, fields);
136
+ type = gql(templateObject_8 || (templateObject_8 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _ui_type, type);
123
137
  if (objectConfig.enable_files) {
124
138
  var relatedObjName = "cms_files";
125
139
  var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_files");
@@ -176,7 +190,7 @@ function dealWithRelatedFields(objectConfig, graphql) {
176
190
  return tslib_1.__generator(this, function (_b) {
177
191
  switch (_b.label) {
178
192
  case 0:
179
- steedosSchema = (0, __2.getSteedosSchema)();
193
+ steedosSchema = (0, __3.getSteedosSchema)();
180
194
  objectName = objectConfig.name;
181
195
  obj = steedosSchema.getObject(objectName);
182
196
  return [4, obj.getRelationsInfo()];
@@ -238,7 +252,7 @@ function getGraphqlActions(objectConfig) {
238
252
  }
239
253
  filters = [[referenceToField || "_id", "in", ids]];
240
254
  selector = { filters: filters };
241
- steedosSchema = (0, __2.getSteedosSchema)();
255
+ steedosSchema = (0, __3.getSteedosSchema)();
242
256
  obj = steedosSchema.getObject(objectName);
243
257
  resolveInfo = ctx.meta.resolveInfo;
244
258
  fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
@@ -261,7 +275,7 @@ function getGraphqlActions(objectConfig) {
261
275
  if (!id) {
262
276
  return [2];
263
277
  }
264
- steedosSchema = (0, __2.getSteedosSchema)();
278
+ steedosSchema = (0, __3.getSteedosSchema)();
265
279
  obj = steedosSchema.getObject(objectName);
266
280
  selector = { filters: [[referenceToField || "_id", "=", id]] };
267
281
  resolveInfo = ctx.meta.resolveInfo;
@@ -296,7 +310,7 @@ function getGraphqlActions(objectConfig) {
296
310
  _parentId = params._parentId, _related_params = params._related_params;
297
311
  objectName = _related_params.objectName, parentObjectName = _related_params.parentObjectName, foreignKey = _related_params.foreignKey;
298
312
  userSession = ctx.meta.user;
299
- steedosSchema = (0, __2.getSteedosSchema)();
313
+ steedosSchema = (0, __3.getSteedosSchema)();
300
314
  object = steedosSchema.getObject(objectName);
301
315
  filters = [];
302
316
  filters = [
@@ -326,7 +340,7 @@ function getGraphqlActions(objectConfig) {
326
340
  _parentId = params._parentId, _related_params = params._related_params;
327
341
  objectName = _related_params.objectName, parentObjectName = _related_params.parentObjectName, fieldName = _related_params.fieldName, referenceToParentFieldName = _related_params.referenceToParentFieldName;
328
342
  userSession = ctx.meta.user;
329
- steedosSchema = (0, __2.getSteedosSchema)();
343
+ steedosSchema = (0, __3.getSteedosSchema)();
330
344
  object = steedosSchema.getObject(objectName);
331
345
  parentObj = steedosSchema.getObject(parentObjectName);
332
346
  return [4, parentObj.findOne(_parentId)];
@@ -364,7 +378,7 @@ function getGraphqlActions(objectConfig) {
364
378
  params = ctx.params;
365
379
  _id = params._id, objectName = params.objectName, fields = params.fields;
366
380
  userSession = ctx.meta.user;
367
- steedosSchema = (0, __2.getSteedosSchema)();
381
+ steedosSchema = (0, __3.getSteedosSchema)();
368
382
  obj = steedosSchema.getObject(objectName);
369
383
  selector = { filters: [["_id", "=", _id]] };
370
384
  if (fields && fields.length > 0) {
@@ -389,6 +403,41 @@ function getGraphqlActions(objectConfig) {
389
403
  });
390
404
  },
391
405
  };
406
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX)] = {
407
+ handler: function (ctx) {
408
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
409
+ var params, _id, objectName, fields, userSession, steedosSchema, obj, selector, resolveInfo, fieldNames, doc, result;
410
+ return tslib_1.__generator(this, function (_a) {
411
+ switch (_a.label) {
412
+ case 0:
413
+ params = ctx.params;
414
+ _id = params._id, objectName = params.objectName, fields = params.fields;
415
+ userSession = ctx.meta.user;
416
+ steedosSchema = (0, __3.getSteedosSchema)();
417
+ obj = steedosSchema.getObject(objectName);
418
+ selector = { filters: [["_id", "=", _id]] };
419
+ if (fields && fields.length > 0) {
420
+ selector.fields = fields;
421
+ }
422
+ else {
423
+ resolveInfo = ctx.meta.resolveInfo;
424
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
425
+ if (!_.isEmpty(fieldNames)) {
426
+ selector.fields = fieldNames;
427
+ }
428
+ }
429
+ return [4, obj.find(selector)];
430
+ case 1:
431
+ doc = (_a.sent())[0];
432
+ return [4, translateToUI(objectName, doc, userSession)];
433
+ case 2:
434
+ result = _a.sent();
435
+ return [2, result];
436
+ }
437
+ });
438
+ });
439
+ },
440
+ };
392
441
  return actions;
393
442
  }
394
443
  exports.getGraphqlActions = getGraphqlActions;
@@ -427,14 +476,46 @@ exports.getRelatedResolver = getRelatedResolver;
427
476
  function getTranslatedFieldConfig(translatedObject, name) {
428
477
  return translatedObject.fields[name.replace(/__label$/, "")];
429
478
  }
479
+ var numberToString = function (number, scale, notThousands) {
480
+ if (notThousands === void 0) { notThousands = false; }
481
+ if (typeof number === "number") {
482
+ number = number.toString();
483
+ }
484
+ if (!number) {
485
+ return '';
486
+ }
487
+ if (number !== "NaN") {
488
+ if (scale || scale === 0) {
489
+ number = Number(number).toFixed(scale);
490
+ }
491
+ if (!notThousands) {
492
+ if (!(scale || scale === 0)) {
493
+ var regDots = number.match(/\.(\d+)/);
494
+ scale = regDots && regDots[1] && regDots[1].length;
495
+ if (!scale) {
496
+ scale = 0;
497
+ }
498
+ }
499
+ var reg = /(\d)(?=(\d{3})+\.)/g;
500
+ if (scale === 0) {
501
+ reg = /(\d)(?=(\d{3})+\b)/g;
502
+ }
503
+ number = number.replace(reg, '$1,');
504
+ }
505
+ return number;
506
+ }
507
+ else {
508
+ return "";
509
+ }
510
+ };
430
511
  function translateToDisplay(objectName, doc, userSession) {
431
512
  return tslib_1.__awaiter(this, void 0, void 0, function () {
432
513
  var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_1, _a, _b, _i, name;
433
514
  return tslib_1.__generator(this, function (_c) {
434
515
  switch (_c.label) {
435
516
  case 0:
436
- lng = (0, __2.getUserLocale)(userSession);
437
- steedosSchema = (0, __2.getSteedosSchema)();
517
+ lng = (0, __3.getUserLocale)(userSession);
518
+ steedosSchema = (0, __3.getSteedosSchema)();
438
519
  object = steedosSchema.getObject(objectName);
439
520
  return [4, object.toConfig()];
440
521
  case 1:
@@ -444,29 +525,29 @@ function translateToDisplay(objectName, doc, userSession) {
444
525
  displayObj = { _id: doc._id };
445
526
  utcOffset = userSession.utcOffset;
446
527
  _loop_1 = function (name) {
447
- var field, fType, label, map_1, value, translatedField, translatedFieldOptions, labels_1, i, lookupLabel, refTo, refValue, refObj, nameFieldKey, refRecords, refRecord, masterDetailLabel, refTo, refValue, refObj, nameFieldKey, refRecords, refRecord, fileLabel, value, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
528
+ var field, fType, label, map_1, value, translatedField, translatedFieldOptions, labels_1, i, refTo, refField, refValue, refObj, nameFieldKey, refRecords, refRecord, refTo, refField, refValue, refObj, nameFieldKey, refRecords, refRecord, refValue, refTo, refValues, refObj, nameFieldKey, refRecords, fileLabel, value, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
448
529
  return tslib_1.__generator(this, function (_d) {
449
530
  switch (_d.label) {
450
531
  case 0:
451
- if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 38];
532
+ if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 41];
452
533
  field = fields[name];
453
- if (!_.has(doc, name)) return [3, 37];
534
+ if (!_.has(doc, name)) return [3, 40];
454
535
  fType = field.type;
455
536
  if (!(fType == "text")) return [3, 1];
456
537
  displayObj[name] = doc[name] || "";
457
- return [3, 36];
538
+ return [3, 39];
458
539
  case 1:
459
540
  if (!(fType == "textarea")) return [3, 2];
460
541
  displayObj[name] = doc[name] || "";
461
- return [3, 36];
542
+ return [3, 39];
462
543
  case 2:
463
544
  if (!(fType == "html_text")) return [3, 3];
464
545
  displayObj[name] = doc[name] || "";
465
- return [3, 36];
546
+ return [3, 39];
466
547
  case 3:
467
548
  if (!(fType == "html")) return [3, 4];
468
549
  displayObj[name] = doc[name] || "";
469
- return [3, 36];
550
+ return [3, 39];
470
551
  case 4:
471
552
  if (!(fType == "select")) return [3, 5];
472
553
  label = "";
@@ -488,7 +569,7 @@ function translateToDisplay(objectName, doc, userSession) {
488
569
  label = map_1[value];
489
570
  }
490
571
  displayObj[name] = label;
491
- return [3, 36];
572
+ return [3, 39];
492
573
  case 5:
493
574
  if (!(fType == "boolean")) return [3, 6];
494
575
  if (doc[name]) {
@@ -497,35 +578,35 @@ function translateToDisplay(objectName, doc, userSession) {
497
578
  else {
498
579
  displayObj[name] = "";
499
580
  }
500
- return [3, 36];
581
+ return [3, 39];
501
582
  case 6:
502
583
  if (!(fType == "date")) return [3, 7];
503
584
  displayObj[name] = doc[name] ? moment.utc(doc[name])
504
585
  .format("YYYY-MM-DD") : '';
505
- return [3, 36];
586
+ return [3, 39];
506
587
  case 7:
507
588
  if (!(fType == "datetime")) return [3, 8];
508
589
  displayObj[name] = doc[name] ? moment(doc[name])
509
590
  .utcOffset(utcOffset)
510
591
  .format("YYYY-MM-DD HH:mm") : '';
511
- return [3, 36];
592
+ return [3, 39];
512
593
  case 8:
513
594
  if (!(fType == "time")) return [3, 9];
514
595
  displayObj[name] = doc[name] ? moment.utc(doc[name])
515
596
  .format("HH:mm") : '';
516
- return [3, 36];
597
+ return [3, 39];
517
598
  case 9:
518
599
  if (!(fType == "number")) return [3, 10];
519
- displayObj[name] = doc[name] || "";
520
- return [3, 36];
600
+ displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
601
+ return [3, 39];
521
602
  case 10:
522
603
  if (!(fType == "currency")) return [3, 11];
523
- displayObj[name] = doc[name] || "";
524
- return [3, 36];
604
+ displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
605
+ return [3, 39];
525
606
  case 11:
526
607
  if (!(fType == "percent")) return [3, 12];
527
608
  displayObj[name] = "".concat(doc[name] * 100, "%");
528
- return [3, 36];
609
+ return [3, 39];
529
610
  case 12:
530
611
  if (!(fType == "password")) return [3, 13];
531
612
  displayObj[name] = "";
@@ -534,11 +615,15 @@ function translateToDisplay(objectName, doc, userSession) {
534
615
  displayObj[name] += "*";
535
616
  }
536
617
  }
537
- return [3, 36];
618
+ return [3, 39];
538
619
  case 13:
539
620
  if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 19];
540
- lookupLabel = "";
541
621
  refTo = field.reference_to;
622
+ refField = field.reference_to_field || '_id';
623
+ if (refTo === 'users') {
624
+ refTo = 'space_users';
625
+ refField = 'user';
626
+ }
542
627
  refValue = doc[name];
543
628
  if (!refValue) {
544
629
  return [2, "continue"];
@@ -549,30 +634,32 @@ function translateToDisplay(objectName, doc, userSession) {
549
634
  nameFieldKey = _d.sent();
550
635
  if (!field.multiple) return [3, 16];
551
636
  return [4, refObj.find({
552
- filters: ["_id", "in", refValue],
637
+ filters: [refField, "in", refValue],
553
638
  fields: [nameFieldKey],
554
639
  })];
555
640
  case 15:
556
641
  refRecords = _d.sent();
557
- lookupLabel = _.pluck(refRecords, nameFieldKey).join(",");
642
+ displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
558
643
  return [3, 18];
559
644
  case 16: return [4, refObj.find({
560
- filters: ["_id", "=", refValue],
645
+ filters: [refField, "=", refValue],
561
646
  fields: [nameFieldKey],
562
647
  })];
563
648
  case 17:
564
649
  refRecord = (_d.sent())[0];
565
650
  if (refRecord) {
566
- lookupLabel = refRecord[nameFieldKey];
651
+ displayObj[name] = refRecord[nameFieldKey];
567
652
  }
568
653
  _d.label = 18;
569
- case 18:
570
- displayObj[name] = lookupLabel;
571
- return [3, 36];
654
+ case 18: return [3, 39];
572
655
  case 19:
573
656
  if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 25];
574
- masterDetailLabel = "";
575
657
  refTo = field.reference_to;
658
+ refField = field.reference_to_field || '_id';
659
+ if (refTo === 'users') {
660
+ refTo = 'space_users';
661
+ refField = 'user';
662
+ }
576
663
  refValue = doc[name];
577
664
  if (!refValue) {
578
665
  return [2, "continue"];
@@ -583,48 +670,69 @@ function translateToDisplay(objectName, doc, userSession) {
583
670
  nameFieldKey = _d.sent();
584
671
  if (!field.multiple) return [3, 22];
585
672
  return [4, refObj.find({
586
- filters: ["_id", "in", refValue],
673
+ filters: [refField, "in", refValue],
587
674
  fields: [nameFieldKey],
588
675
  })];
589
676
  case 21:
590
677
  refRecords = _d.sent();
591
- masterDetailLabel = _.pluck(refRecords, nameFieldKey).join(",");
678
+ displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
592
679
  return [3, 24];
593
680
  case 22: return [4, refObj.find({
594
- filters: ["_id", "=", refValue],
681
+ filters: [refField, "=", refValue],
595
682
  fields: [nameFieldKey],
596
683
  })];
597
684
  case 23:
598
685
  refRecord = (_d.sent())[0];
599
686
  if (refRecord) {
600
- masterDetailLabel = refRecord[nameFieldKey];
687
+ displayObj[name] = refRecord[nameFieldKey];
601
688
  }
602
689
  _d.label = 24;
603
- case 24:
604
- displayObj[name] = masterDetailLabel;
605
- return [3, 36];
690
+ case 24: return [3, 39];
606
691
  case 25:
607
- if (!(fType == "autonumber")) return [3, 26];
608
- displayObj[name] = doc[name] || "";
609
- return [3, 36];
692
+ if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 28];
693
+ refValue = doc[name];
694
+ if (!refValue) {
695
+ return [2, "continue"];
696
+ }
697
+ refTo = refValue.o;
698
+ refValues = refValue.ids;
699
+ if (!refTo) {
700
+ return [2, "continue"];
701
+ }
702
+ refObj = steedosSchema.getObject(refTo);
703
+ return [4, refObj.getNameFieldKey()];
610
704
  case 26:
611
- if (!(fType == "url")) return [3, 27];
612
- displayObj[name] = doc[name] || "";
613
- return [3, 36];
705
+ nameFieldKey = _d.sent();
706
+ return [4, refObj.find({
707
+ filters: ["_id", "in", refValues],
708
+ fields: [nameFieldKey]
709
+ })];
614
710
  case 27:
615
- if (!(fType == "email")) return [3, 28];
616
- displayObj[name] = doc[name] || "";
617
- return [3, 36];
711
+ refRecords = _d.sent();
712
+ displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
713
+ return [3, 39];
618
714
  case 28:
619
- if (!(fType == "formula")) return [3, 29];
715
+ if (!(fType == "autonumber")) return [3, 29];
620
716
  displayObj[name] = doc[name] || "";
621
- return [3, 36];
717
+ return [3, 39];
622
718
  case 29:
623
- if (!(fType == "summary")) return [3, 30];
719
+ if (!(fType == "url")) return [3, 30];
624
720
  displayObj[name] = doc[name] || "";
625
- return [3, 36];
721
+ return [3, 39];
626
722
  case 30:
627
- if (!(fType == "image" || fType == "file")) return [3, 35];
723
+ if (!(fType == "email")) return [3, 31];
724
+ displayObj[name] = doc[name] || "";
725
+ return [3, 39];
726
+ case 31:
727
+ if (!(fType == "formula")) return [3, 32];
728
+ displayObj[name] = doc[name] || "";
729
+ return [3, 39];
730
+ case 32:
731
+ if (!(fType == "summary")) return [3, 33];
732
+ displayObj[name] = doc[name] || "";
733
+ return [3, 39];
734
+ case 33:
735
+ if (!(fType == "image" || fType == "file")) return [3, 38];
628
736
  fileLabel = "";
629
737
  value = doc[name];
630
738
  if (!value) {
@@ -633,40 +741,40 @@ function translateToDisplay(objectName, doc, userSession) {
633
741
  fileObjectName = fType == "image" ? "cfs_images_filerecord" : "cfs_files_filerecord";
634
742
  fileObject = steedosSchema.getObject(fileObjectName);
635
743
  fileNameFieldKey = "original.name";
636
- if (!field.multiple) return [3, 32];
744
+ if (!field.multiple) return [3, 35];
637
745
  return [4, fileObject.find({
638
746
  filters: ["_id", "in", value],
639
747
  fields: [fileNameFieldKey],
640
748
  })];
641
- case 31:
749
+ case 34:
642
750
  fileRecords = _d.sent();
643
751
  fileLabel = _.map(fileRecords, function (fileRecord) {
644
752
  var _a;
645
753
  return (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name;
646
754
  }).join(",");
647
- return [3, 34];
648
- case 32: return [4, fileObject.find({
755
+ return [3, 37];
756
+ case 35: return [4, fileObject.find({
649
757
  filters: ["_id", "=", value],
650
758
  fields: [fileNameFieldKey],
651
759
  })];
652
- case 33:
760
+ case 36:
653
761
  fileRecord = (_d.sent())[0];
654
762
  if (fileRecord) {
655
763
  fileLabel = fileRecord["original"]["name"];
656
764
  }
657
- _d.label = 34;
658
- case 34:
765
+ _d.label = 37;
766
+ case 37:
659
767
  displayObj[name] = fileLabel;
660
- return [3, 36];
661
- case 35:
768
+ return [3, 39];
769
+ case 38:
662
770
  console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
663
771
  displayObj[name] = doc[name] || "";
664
- _d.label = 36;
665
- case 36: return [3, 38];
666
- case 37:
772
+ _d.label = 39;
773
+ case 39: return [3, 41];
774
+ case 40:
667
775
  displayObj[name] = "";
668
- _d.label = 38;
669
- case 38: return [2];
776
+ _d.label = 41;
777
+ case 41: return [2];
670
778
  }
671
779
  });
672
780
  };
@@ -704,12 +812,366 @@ function _getDisplayType(typeName, fields) {
704
812
  type += "}";
705
813
  return type;
706
814
  }
815
+ var getFileStorageName = function (type) {
816
+ switch (type) {
817
+ case 'avatar':
818
+ return 'avatars';
819
+ case 'image':
820
+ return 'images';
821
+ case 'file':
822
+ return 'files';
823
+ default:
824
+ break;
825
+ }
826
+ };
827
+ function translateToUI(objectName, doc, userSession) {
828
+ var _a, _b;
829
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
830
+ var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_2, _c, _d, _i, name;
831
+ return tslib_1.__generator(this, function (_e) {
832
+ switch (_e.label) {
833
+ case 0:
834
+ lng = (0, __3.getUserLocale)(userSession);
835
+ steedosSchema = (0, __3.getSteedosSchema)();
836
+ object = steedosSchema.getObject(objectName);
837
+ return [4, object.toConfig()];
838
+ case 1:
839
+ objConfig = _e.sent();
840
+ fields = objConfig.fields;
841
+ (0, i18n_1.translationObject)(lng, objConfig.name, objConfig);
842
+ displayObj = { _id: doc._id };
843
+ utcOffset = userSession.utcOffset;
844
+ _loop_2 = function (name) {
845
+ var field, fType, label, map_2, value, translatedField, translatedFieldOptions, labels_2, i, refTo_1, refField, refValue, refObj, nameFieldKey_1, refRecords, refRecord, refTo_2, refField, refValue, refObj, nameFieldKey_2, refRecords, refRecord, refValue, refTo_3, refValues, refObj, nameFieldKey_3, refRecords, fileValue, value, storageName_1, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
846
+ return tslib_1.__generator(this, function (_f) {
847
+ switch (_f.label) {
848
+ case 0:
849
+ if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 41];
850
+ field = fields[name];
851
+ if (!_.has(doc, name)) return [3, 40];
852
+ fType = field.type;
853
+ if (!(fType == "text")) return [3, 1];
854
+ displayObj[name] = doc[name] || "";
855
+ return [3, 39];
856
+ case 1:
857
+ if (!(fType == "textarea")) return [3, 2];
858
+ displayObj[name] = doc[name] || "";
859
+ return [3, 39];
860
+ case 2:
861
+ if (!(fType == "html_text")) return [3, 3];
862
+ displayObj[name] = doc[name] || "";
863
+ return [3, 39];
864
+ case 3:
865
+ if (!(fType == "html")) return [3, 4];
866
+ displayObj[name] = doc[name] || "";
867
+ return [3, 39];
868
+ case 4:
869
+ if (!(fType == "select")) return [3, 5];
870
+ label = "";
871
+ map_2 = {};
872
+ value = doc[name];
873
+ translatedField = getTranslatedFieldConfig(objConfig, name);
874
+ translatedFieldOptions = translatedField && translatedField.options;
875
+ _.forEach(translatedFieldOptions, function (o) {
876
+ map_2[o.value] = o.label;
877
+ });
878
+ if (field.multiple) {
879
+ labels_2 = [];
880
+ _.forEach(value, function (v) {
881
+ labels_2.push(map_2[v]);
882
+ });
883
+ label = labels_2.join(",");
884
+ }
885
+ else {
886
+ label = map_2[value];
887
+ }
888
+ displayObj[name] = label;
889
+ return [3, 39];
890
+ case 5:
891
+ if (!(fType == "boolean")) return [3, 6];
892
+ if (doc[name]) {
893
+ displayObj[name] = "√";
894
+ }
895
+ else {
896
+ displayObj[name] = "";
897
+ }
898
+ return [3, 39];
899
+ case 6:
900
+ if (!(fType == "date")) return [3, 7];
901
+ displayObj[name] = doc[name] ? moment.utc(doc[name])
902
+ .format("YYYY-MM-DD") : '';
903
+ return [3, 39];
904
+ case 7:
905
+ if (!(fType == "datetime")) return [3, 8];
906
+ displayObj[name] = doc[name] ? moment(doc[name])
907
+ .utcOffset(utcOffset)
908
+ .format("YYYY-MM-DD HH:mm") : '';
909
+ return [3, 39];
910
+ case 8:
911
+ if (!(fType == "time")) return [3, 9];
912
+ displayObj[name] = doc[name] ? moment.utc(doc[name])
913
+ .format("HH:mm") : '';
914
+ return [3, 39];
915
+ case 9:
916
+ if (!(fType == "number")) return [3, 10];
917
+ displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
918
+ return [3, 39];
919
+ case 10:
920
+ if (!(fType == "currency")) return [3, 11];
921
+ displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
922
+ return [3, 39];
923
+ case 11:
924
+ if (!(fType == "percent")) return [3, 12];
925
+ displayObj[name] = "".concat(doc[name] * 100, "%");
926
+ return [3, 39];
927
+ case 12:
928
+ if (!(fType == "password")) return [3, 13];
929
+ displayObj[name] = "";
930
+ if (_.isString(doc[name])) {
931
+ for (i = 0; i < doc[name].length; i++) {
932
+ displayObj[name] += "*";
933
+ }
934
+ }
935
+ return [3, 39];
936
+ case 13:
937
+ if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 19];
938
+ refTo_1 = field.reference_to;
939
+ refField = field.reference_to_field || '_id';
940
+ if (refTo_1 === 'users') {
941
+ refTo_1 = 'space_users';
942
+ refField = 'user';
943
+ }
944
+ refValue = doc[name];
945
+ if (!refValue) {
946
+ return [2, "continue"];
947
+ }
948
+ refObj = steedosSchema.getObject(refTo_1);
949
+ return [4, refObj.getNameFieldKey()];
950
+ case 14:
951
+ nameFieldKey_1 = _f.sent();
952
+ if (!field.multiple) return [3, 16];
953
+ return [4, refObj.find({
954
+ filters: [refField, "in", refValue],
955
+ fields: [nameFieldKey_1],
956
+ })];
957
+ case 15:
958
+ refRecords = _f.sent();
959
+ displayObj[name] = _.map(refRecords, function (item) {
960
+ return {
961
+ objectName: refTo_1,
962
+ value: item._id,
963
+ label: item[nameFieldKey_1]
964
+ };
965
+ });
966
+ return [3, 18];
967
+ case 16: return [4, refObj.find({
968
+ filters: [refField, "=", refValue],
969
+ fields: [nameFieldKey_1],
970
+ })];
971
+ case 17:
972
+ refRecord = (_f.sent())[0];
973
+ if (refRecord) {
974
+ displayObj[name] = {
975
+ objectName: refTo_1,
976
+ value: refRecord._id,
977
+ label: refRecord[nameFieldKey_1]
978
+ };
979
+ }
980
+ _f.label = 18;
981
+ case 18: return [3, 39];
982
+ case 19:
983
+ if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 25];
984
+ refTo_2 = field.reference_to;
985
+ refField = field.reference_to_field || '_id';
986
+ if (refTo_2 === 'users') {
987
+ refTo_2 = 'space_users';
988
+ refField = 'user';
989
+ }
990
+ refValue = doc[name];
991
+ if (!refValue) {
992
+ return [2, "continue"];
993
+ }
994
+ refObj = steedosSchema.getObject(refTo_2);
995
+ return [4, refObj.getNameFieldKey()];
996
+ case 20:
997
+ nameFieldKey_2 = _f.sent();
998
+ if (!field.multiple) return [3, 22];
999
+ return [4, refObj.find({
1000
+ filters: [refField, "in", refValue],
1001
+ fields: [nameFieldKey_2],
1002
+ })];
1003
+ case 21:
1004
+ refRecords = _f.sent();
1005
+ displayObj[name] = _.map(refRecords, function (item) {
1006
+ return {
1007
+ objectName: refTo_2,
1008
+ value: item._id,
1009
+ label: item[nameFieldKey_2]
1010
+ };
1011
+ });
1012
+ return [3, 24];
1013
+ case 22: return [4, refObj.find({
1014
+ filters: [refField, "=", refValue],
1015
+ fields: [nameFieldKey_2],
1016
+ })];
1017
+ case 23:
1018
+ refRecord = (_f.sent())[0];
1019
+ if (refRecord) {
1020
+ displayObj[name] = {
1021
+ objectName: refTo_2,
1022
+ value: refRecord._id,
1023
+ label: refRecord[nameFieldKey_2]
1024
+ };
1025
+ }
1026
+ _f.label = 24;
1027
+ case 24: return [3, 39];
1028
+ case 25:
1029
+ if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 28];
1030
+ refValue = doc[name];
1031
+ if (!refValue) {
1032
+ return [2, "continue"];
1033
+ }
1034
+ refTo_3 = refValue.o;
1035
+ refValues = refValue.ids;
1036
+ if (!refTo_3) {
1037
+ return [2, "continue"];
1038
+ }
1039
+ refObj = steedosSchema.getObject(refTo_3);
1040
+ return [4, refObj.getNameFieldKey()];
1041
+ case 26:
1042
+ nameFieldKey_3 = _f.sent();
1043
+ return [4, refObj.find({
1044
+ filters: ["_id", "in", refValues],
1045
+ fields: [nameFieldKey_3]
1046
+ })];
1047
+ case 27:
1048
+ refRecords = _f.sent();
1049
+ displayObj[name] = _.map(refRecords, function (item) {
1050
+ return {
1051
+ objectName: refTo_3,
1052
+ value: item._id,
1053
+ label: item[nameFieldKey_3]
1054
+ };
1055
+ });
1056
+ return [3, 39];
1057
+ case 28:
1058
+ if (!(fType == "autonumber")) return [3, 29];
1059
+ displayObj[name] = doc[name] || "";
1060
+ return [3, 39];
1061
+ case 29:
1062
+ if (!(fType == "url")) return [3, 30];
1063
+ displayObj[name] = doc[name] || "";
1064
+ return [3, 39];
1065
+ case 30:
1066
+ if (!(fType == "email")) return [3, 31];
1067
+ displayObj[name] = doc[name] || "";
1068
+ return [3, 39];
1069
+ case 31:
1070
+ if (!(fType == "formula")) return [3, 32];
1071
+ displayObj[name] = doc[name] || "";
1072
+ return [3, 39];
1073
+ case 32:
1074
+ if (!(fType == "summary")) return [3, 33];
1075
+ displayObj[name] = doc[name] || "";
1076
+ return [3, 39];
1077
+ case 33:
1078
+ if (!(fType == "image" || fType == "file" || fType === 'avatar')) return [3, 38];
1079
+ fileValue = null;
1080
+ value = doc[name];
1081
+ if (!value) {
1082
+ return [2, "continue"];
1083
+ }
1084
+ storageName_1 = getFileStorageName(fType);
1085
+ fileObjectName = "cfs_".concat(storageName_1, "_filerecord");
1086
+ fileObject = steedosSchema.getObject(fileObjectName);
1087
+ fileNameFieldKey = "original.name";
1088
+ if (!field.multiple) return [3, 35];
1089
+ return [4, fileObject.find({
1090
+ filters: ["_id", "in", value],
1091
+ fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
1092
+ })];
1093
+ case 34:
1094
+ fileRecords = _f.sent();
1095
+ fileValue = _.map(fileRecords, function (fileRecord) {
1096
+ var _a, _b, _c;
1097
+ return {
1098
+ name: (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name,
1099
+ url: (0, __2.absoluteUrl)("/api/files/".concat(storageName_1, "/").concat(fileRecord._id)),
1100
+ size: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.size,
1101
+ type: (_c = fileRecord.original) === null || _c === void 0 ? void 0 : _c.type,
1102
+ };
1103
+ });
1104
+ return [3, 37];
1105
+ case 35: return [4, fileObject.find({
1106
+ filters: ["_id", "=", value],
1107
+ fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
1108
+ })];
1109
+ case 36:
1110
+ fileRecord = (_f.sent())[0];
1111
+ if (fileRecord) {
1112
+ fileValue = {
1113
+ name: fileRecord["original"]["name"],
1114
+ url: (0, __2.absoluteUrl)("/api/files/".concat(storageName_1, "/").concat(value)),
1115
+ size: (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.size,
1116
+ type: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.type
1117
+ };
1118
+ }
1119
+ _f.label = 37;
1120
+ case 37:
1121
+ displayObj[name] = fileValue;
1122
+ return [3, 39];
1123
+ case 38:
1124
+ console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
1125
+ displayObj[name] = doc[name] || "";
1126
+ _f.label = 39;
1127
+ case 39: return [3, 41];
1128
+ case 40:
1129
+ displayObj[name] = "";
1130
+ _f.label = 41;
1131
+ case 41: return [2];
1132
+ }
1133
+ });
1134
+ };
1135
+ _c = [];
1136
+ for (_d in fields)
1137
+ _c.push(_d);
1138
+ _i = 0;
1139
+ _e.label = 2;
1140
+ case 2:
1141
+ if (!(_i < _c.length)) return [3, 5];
1142
+ name = _c[_i];
1143
+ return [5, _loop_2(name)];
1144
+ case 3:
1145
+ _e.sent();
1146
+ _e.label = 4;
1147
+ case 4:
1148
+ _i++;
1149
+ return [3, 2];
1150
+ case 5: return [2, displayObj];
1151
+ }
1152
+ });
1153
+ });
1154
+ }
1155
+ function _getUIType(typeName, fields) {
1156
+ var type = "type ".concat(typeName, " { _id: String ");
1157
+ if (_.has(fields, "_id")) {
1158
+ type = "type ".concat(typeName, " { ");
1159
+ }
1160
+ _.each(fields, function (field, name) {
1161
+ if (name.indexOf(".") > -1) {
1162
+ return;
1163
+ }
1164
+ type += "".concat(name, ": JSON ");
1165
+ });
1166
+ type += "}";
1167
+ return type;
1168
+ }
707
1169
  function getLocalService(objectApiName) {
708
- var steedosSchema = (0, __2.getSteedosSchema)();
1170
+ var steedosSchema = (0, __3.getSteedosSchema)();
709
1171
  return steedosSchema.broker.getLocalService((0, __1.getObjectServiceName)(objectApiName));
710
1172
  }
711
1173
  exports.getLocalService = getLocalService;
712
1174
  tslib_1.__exportStar(require("./getQueryFields"), exports);
713
1175
  tslib_1.__exportStar(require("./consts"), exports);
714
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
1176
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
715
1177
  //# sourceMappingURL=index.js.map