@things-factory/contact 10.1.123 → 10.1.134

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 (38) hide show
  1. package/dist-client/components/contact-popup.d.ts +2 -0
  2. package/dist-client/components/contact-popup.js +35 -3
  3. package/dist-client/components/contact-popup.js.map +1 -1
  4. package/dist-client/components/contact-selector.js +11 -7
  5. package/dist-client/components/contact-selector.js.map +1 -1
  6. package/dist-client/pages/contact-importer.d.ts +1 -0
  7. package/dist-client/pages/contact-importer.js +35 -1
  8. package/dist-client/pages/contact-importer.js.map +1 -1
  9. package/dist-client/pages/contact-list-page.js +18 -14
  10. package/dist-client/pages/contact-list-page.js.map +1 -1
  11. package/dist-client/tsconfig.tsbuildinfo +1 -1
  12. package/dist-server/service/contact/contact-counterparty.d.ts +12 -0
  13. package/dist-server/service/contact/contact-counterparty.js +27 -0
  14. package/dist-server/service/contact/contact-counterparty.js.map +1 -0
  15. package/dist-server/service/contact/contact-item.js +8 -8
  16. package/dist-server/service/contact/contact-item.js.map +1 -1
  17. package/dist-server/service/contact/contact-mutation.js +8 -5
  18. package/dist-server/service/contact/contact-mutation.js.map +1 -1
  19. package/dist-server/service/contact/contact-query.d.ts +2 -0
  20. package/dist-server/service/contact/contact-query.js +19 -1
  21. package/dist-server/service/contact/contact-query.js.map +1 -1
  22. package/dist-server/service/contact/contact-type.d.ts +3 -2
  23. package/dist-server/service/contact/contact-type.js +29 -28
  24. package/dist-server/service/contact/contact-type.js.map +1 -1
  25. package/dist-server/service/contact/contact.d.ts +3 -2
  26. package/dist-server/service/contact/contact.js +22 -17
  27. package/dist-server/service/contact/contact.js.map +1 -1
  28. package/dist-server/service/contact/index.d.ts +1 -1
  29. package/dist-server/service/contact/profile.js +11 -11
  30. package/dist-server/service/contact/profile.js.map +1 -1
  31. package/dist-server/service/index.d.ts +1 -1
  32. package/dist-server/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +6 -2
  34. package/translations/en.json +4 -2
  35. package/translations/ja.json +4 -2
  36. package/translations/ko.json +4 -2
  37. package/translations/ms.json +4 -2
  38. package/translations/zh.json +4 -2
@@ -7,6 +7,7 @@ const type_graphql_1 = require("type-graphql");
7
7
  const graphql_scalars_1 = require("graphql-scalars");
8
8
  const shell_1 = require("@things-factory/shell");
9
9
  const auth_base_1 = require("@things-factory/auth-base");
10
+ const biz_base_1 = require("@things-factory/biz-base");
10
11
  const contact_item_1 = require("./contact-item");
11
12
  const profile_1 = require("./profile");
12
13
  var ContactField;
@@ -20,12 +21,11 @@ var ContactField;
20
21
  ContactField["Profile"] = "profile";
21
22
  ContactField["Picture"] = "picture";
22
23
  ContactField["Department"] = "department";
23
- ContactField["Company"] = "company";
24
24
  ContactField["Homepage"] = "homepage";
25
25
  })(ContactField || (exports.ContactField = ContactField = {}));
26
26
  (0, type_graphql_1.registerEnumType)(ContactField, {
27
27
  name: 'ContactField',
28
- description: 'field enumeration of a contact'
28
+ description: 'The kind of a contact item - phone, email, address and the like'
29
29
  });
30
30
  let Contact = class Contact {
31
31
  getContactItem(type, label) {
@@ -49,58 +49,62 @@ tslib_1.__decorate([
49
49
  ], Contact.prototype, "domainId", void 0);
50
50
  tslib_1.__decorate([
51
51
  (0, typeorm_1.Column)(),
52
- (0, type_graphql_1.Field)({ nullable: true }),
52
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The name of the person' }),
53
53
  tslib_1.__metadata("design:type", String)
54
54
  ], Contact.prototype, "name", void 0);
55
55
  tslib_1.__decorate([
56
- (0, typeorm_1.Column)({ nullable: true }),
57
- (0, type_graphql_1.Field)({ nullable: true }),
56
+ (0, typeorm_1.ManyToOne)(type => biz_base_1.Counterparty, { nullable: true }),
57
+ (0, type_graphql_1.Field)(type => biz_base_1.Counterparty, { nullable: true, description: 'The counterparty the person belongs to - one of the same domain' }),
58
+ tslib_1.__metadata("design:type", biz_base_1.Counterparty)
59
+ ], Contact.prototype, "counterparty", void 0);
60
+ tslib_1.__decorate([
61
+ (0, typeorm_1.RelationId)((contact) => contact.counterparty),
58
62
  tslib_1.__metadata("design:type", String)
59
- ], Contact.prototype, "company", void 0);
63
+ ], Contact.prototype, "counterpartyId", void 0);
60
64
  tslib_1.__decorate([
61
- (0, type_graphql_1.Field)(type => graphql_scalars_1.GraphQLEmailAddress, { nullable: true }),
65
+ (0, type_graphql_1.Field)(type => graphql_scalars_1.GraphQLEmailAddress, { nullable: true, description: 'The work email, read from the items' }),
62
66
  tslib_1.__metadata("design:type", String)
63
67
  ], Contact.prototype, "email", void 0);
64
68
  tslib_1.__decorate([
65
- (0, type_graphql_1.Field)({ nullable: true }),
69
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The work phone, read from the items' }),
66
70
  tslib_1.__metadata("design:type", String)
67
71
  ], Contact.prototype, "phone", void 0);
68
72
  tslib_1.__decorate([
69
- (0, type_graphql_1.Field)({ nullable: true }),
73
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The work address, read from the items' }),
70
74
  tslib_1.__metadata("design:type", String)
71
75
  ], Contact.prototype, "address", void 0);
72
76
  tslib_1.__decorate([
73
- (0, type_graphql_1.Field)({ nullable: true }),
77
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The department at work, read from the items' }),
74
78
  tslib_1.__metadata("design:type", String)
75
79
  ], Contact.prototype, "department", void 0);
76
80
  tslib_1.__decorate([
77
81
  (0, typeorm_1.Column)({ nullable: true }),
78
- (0, type_graphql_1.Field)({ nullable: true }),
82
+ (0, type_graphql_1.Field)({ nullable: true, description: 'A note about the person' }),
79
83
  tslib_1.__metadata("design:type", String)
80
84
  ], Contact.prototype, "note", void 0);
81
85
  tslib_1.__decorate([
82
86
  (0, typeorm_1.Column)('simple-json', { nullable: true }),
83
- (0, type_graphql_1.Field)(type => profile_1.Profile, { nullable: true }),
87
+ (0, type_graphql_1.Field)(type => profile_1.Profile, { nullable: true, description: 'The profile picture and how it is framed' }),
84
88
  tslib_1.__metadata("design:type", profile_1.Profile)
85
89
  ], Contact.prototype, "profile", void 0);
86
90
  tslib_1.__decorate([
87
91
  (0, typeorm_1.Column)('simple-json', { nullable: true }),
88
- (0, type_graphql_1.Field)(type => [contact_item_1.ContactItem], { nullable: true }),
92
+ (0, type_graphql_1.Field)(type => [contact_item_1.ContactItem], { nullable: true, description: 'Ways to reach the person, each a kind, a label and a value' }),
89
93
  tslib_1.__metadata("design:type", Array)
90
94
  ], Contact.prototype, "items", void 0);
91
95
  tslib_1.__decorate([
92
96
  (0, typeorm_1.CreateDateColumn)(),
93
- (0, type_graphql_1.Field)({ nullable: true }),
97
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When it was created' }),
94
98
  tslib_1.__metadata("design:type", Date)
95
99
  ], Contact.prototype, "createdAt", void 0);
96
100
  tslib_1.__decorate([
97
101
  (0, typeorm_1.UpdateDateColumn)(),
98
- (0, type_graphql_1.Field)({ nullable: true }),
102
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When it was last changed' }),
99
103
  tslib_1.__metadata("design:type", Date)
100
104
  ], Contact.prototype, "updatedAt", void 0);
101
105
  tslib_1.__decorate([
102
106
  (0, typeorm_1.DeleteDateColumn)(),
103
- (0, type_graphql_1.Field)({ nullable: true }),
107
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When it was deleted' }),
104
108
  tslib_1.__metadata("design:type", Date)
105
109
  ], Contact.prototype, "deletedAt", void 0);
106
110
  tslib_1.__decorate([
@@ -124,6 +128,7 @@ tslib_1.__decorate([
124
128
  exports.Contact = Contact = tslib_1.__decorate([
125
129
  (0, typeorm_1.Entity)(),
126
130
  (0, typeorm_1.Index)('ix_contact_0', (contact) => [contact.domain, contact.name]),
127
- (0, type_graphql_1.ObjectType)({ description: 'Entity for Contact' })
131
+ (0, typeorm_1.Index)('ix_contact_1', (contact) => [contact.domain, contact.counterparty]),
132
+ (0, type_graphql_1.ObjectType)({ description: 'A person to reach, the counterparty they belong to and how to reach them' })
128
133
  ], Contact);
129
134
  //# sourceMappingURL=contact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../server/service/contact/contact.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nimport { ContactItem } from './contact-item'\nimport { Profile } from './profile'\n\nexport enum ContactField {\n Name = 'name',\n JobTitle = 'job-title',\n Phone = 'phone',\n Address = 'address',\n Email = 'email',\n Birthday = 'birthday',\n Profile = 'profile',\n Picture = 'picture',\n Department = 'department',\n Company = 'company',\n Homepage = 'homepage'\n}\n\nregisterEnumType(ContactField, {\n name: 'ContactField',\n description: 'field enumeration of a contact'\n})\n\n@Entity()\n@Index('ix_contact_0', (contact: Contact) => [contact.domain, contact.name])\n@ObjectType({ description: 'Entity for Contact' })\nexport class Contact {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((contact: Contact) => contact.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n company?: string\n\n @Field(type => GraphQLEmailAddress, { nullable: true })\n email?: string\n\n @Field({ nullable: true })\n phone?: string\n\n @Field({ nullable: true })\n address?: string\n\n @Field({ nullable: true })\n department?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n note?: string\n\n @Column('simple-json', { nullable: true })\n @Field(type => Profile, { nullable: true })\n profile: Profile\n\n @Column('simple-json', { nullable: true })\n @Field(type => [ContactItem], { nullable: true })\n items?: ContactItem[]\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((contact: Contact) => contact.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((contact: Contact) => contact.updater)\n updaterId?: string\n\n getContactItem(type: ContactField, label?: string) {\n return (this.items || []).find(item => item.type === type && (!item.label || item.label === label))?.value\n }\n}\n"]}
1
+ {"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../server/service/contact/contact.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Counterparty } from '@things-factory/biz-base'\n\nimport { ContactItem } from './contact-item'\nimport { Profile } from './profile'\n\nexport enum ContactField {\n Name = 'name',\n JobTitle = 'job-title',\n Phone = 'phone',\n Address = 'address',\n Email = 'email',\n Birthday = 'birthday',\n Profile = 'profile',\n Picture = 'picture',\n Department = 'department',\n Homepage = 'homepage'\n}\n\nregisterEnumType(ContactField, {\n name: 'ContactField',\n description: 'The kind of a contact item - phone, email, address and the like'\n})\n\n@Entity()\n@Index('ix_contact_0', (contact: Contact) => [contact.domain, contact.name])\n@Index('ix_contact_1', (contact: Contact) => [contact.domain, contact.counterparty])\n@ObjectType({ description: 'A person to reach, the counterparty they belong to and how to reach them' })\nexport class Contact {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((contact: Contact) => contact.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true, description: 'The name of the person' })\n name?: string\n\n @ManyToOne(type => Counterparty, { nullable: true })\n @Field(type => Counterparty, { nullable: true, description: 'The counterparty the person belongs to - one of the same domain' })\n counterparty?: Counterparty\n\n @RelationId((contact: Contact) => contact.counterparty)\n counterpartyId?: string\n\n @Field(type => GraphQLEmailAddress, { nullable: true, description: 'The work email, read from the items' })\n email?: string\n\n @Field({ nullable: true, description: 'The work phone, read from the items' })\n phone?: string\n\n @Field({ nullable: true, description: 'The work address, read from the items' })\n address?: string\n\n @Field({ nullable: true, description: 'The department at work, read from the items' })\n department?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'A note about the person' })\n note?: string\n\n @Column('simple-json', { nullable: true })\n @Field(type => Profile, { nullable: true, description: 'The profile picture and how it is framed' })\n profile: Profile\n\n @Column('simple-json', { nullable: true })\n @Field(type => [ContactItem], { nullable: true, description: 'Ways to reach the person, each a kind, a label and a value' })\n items?: ContactItem[]\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was created' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When it was last changed' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When it was deleted' })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((contact: Contact) => contact.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((contact: Contact) => contact.updater)\n updaterId?: string\n\n getContactItem(type: ContactField, label?: string) {\n return (this.items || []).find(item => item.type === type && (!item.label || item.label === label))?.value\n }\n}\n"]}
@@ -2,5 +2,5 @@ import { Contact } from './contact';
2
2
  import { Profile } from './profile';
3
3
  import { ContactQuery } from './contact-query';
4
4
  import { ContactMutation } from './contact-mutation';
5
- export declare const entities: (typeof Contact | typeof Profile)[];
5
+ export declare const entities: (typeof Profile | typeof Contact)[];
6
6
  export declare const resolvers: (typeof ContactQuery | typeof ContactMutation)[];
@@ -8,48 +8,48 @@ let Profile = class Profile {
8
8
  };
9
9
  exports.Profile = Profile;
10
10
  tslib_1.__decorate([
11
- (0, type_graphql_1.Field)({ nullable: true }),
11
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The horizontal offset of the picture in its frame' }),
12
12
  tslib_1.__metadata("design:type", Number)
13
13
  ], Profile.prototype, "left", void 0);
14
14
  tslib_1.__decorate([
15
- (0, type_graphql_1.Field)({ nullable: true }),
15
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The vertical offset of the picture in its frame' }),
16
16
  tslib_1.__metadata("design:type", Number)
17
17
  ], Profile.prototype, "top", void 0);
18
18
  tslib_1.__decorate([
19
- (0, type_graphql_1.Field)({ nullable: true }),
19
+ (0, type_graphql_1.Field)({ nullable: true, description: 'How far the picture is zoomed in its frame' }),
20
20
  tslib_1.__metadata("design:type", Number)
21
21
  ], Profile.prototype, "zoom", void 0);
22
22
  tslib_1.__decorate([
23
- (0, type_graphql_1.Field)({ nullable: true }),
23
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The address of the picture' }),
24
24
  tslib_1.__metadata("design:type", String)
25
25
  ], Profile.prototype, "picture", void 0);
26
26
  exports.Profile = Profile = tslib_1.__decorate([
27
- (0, type_graphql_1.ObjectType)({ description: 'Object type for Profile' })
27
+ (0, type_graphql_1.ObjectType)({ description: 'A contact’s profile picture and how it is framed' })
28
28
  ], Profile);
29
29
  let ProfileInput = class ProfileInput {
30
30
  };
31
31
  exports.ProfileInput = ProfileInput;
32
32
  tslib_1.__decorate([
33
- (0, type_graphql_1.Field)({ nullable: true }),
33
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The horizontal offset of the picture in its frame' }),
34
34
  tslib_1.__metadata("design:type", Number)
35
35
  ], ProfileInput.prototype, "left", void 0);
36
36
  tslib_1.__decorate([
37
- (0, type_graphql_1.Field)({ nullable: true }),
37
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The vertical offset of the picture in its frame' }),
38
38
  tslib_1.__metadata("design:type", Number)
39
39
  ], ProfileInput.prototype, "top", void 0);
40
40
  tslib_1.__decorate([
41
- (0, type_graphql_1.Field)({ nullable: true }),
41
+ (0, type_graphql_1.Field)({ nullable: true, description: 'How far the picture is zoomed in its frame' }),
42
42
  tslib_1.__metadata("design:type", Number)
43
43
  ], ProfileInput.prototype, "zoom", void 0);
44
44
  tslib_1.__decorate([
45
- (0, type_graphql_1.Field)({ nullable: true }),
45
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The address of the picture' }),
46
46
  tslib_1.__metadata("design:type", String)
47
47
  ], ProfileInput.prototype, "picture", void 0);
48
48
  tslib_1.__decorate([
49
- (0, type_graphql_1.Field)(type => GraphQLUpload_js_1.default, { nullable: true }),
49
+ (0, type_graphql_1.Field)(type => GraphQLUpload_js_1.default, { nullable: true, description: 'A new picture to upload' }),
50
50
  tslib_1.__metadata("design:type", Object)
51
51
  ], ProfileInput.prototype, "file", void 0);
52
52
  exports.ProfileInput = ProfileInput = tslib_1.__decorate([
53
- (0, type_graphql_1.InputType)({ description: 'Input type for Profile' })
53
+ (0, type_graphql_1.InputType)({ description: 'A contact’s profile picture and how it is framed, as it is given' })
54
54
  ], ProfileInput);
55
55
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../server/service/contact/profile.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,+FAA2D;AAGpD,IAAM,OAAO,GAAb,MAAM,OAAO;CAYnB,CAAA;AAZY,0BAAO;AAElB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACV;kBAXL,OAAO;IADnB,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;GAC1C,OAAO,CAYnB;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAexB,CAAA;AAfY,oCAAY;AAEvB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,0BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAChC;uBAdN,YAAY;IADxB,IAAA,wBAAS,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;GACxC,YAAY,CAexB","sourcesContent":["import { ObjectType, Field, InputType } from 'type-graphql'\nimport type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\n\n@ObjectType({ description: 'Object type for Profile' })\nexport class Profile {\n @Field({ nullable: true })\n left?: number\n\n @Field({ nullable: true })\n top?: number\n\n @Field({ nullable: true })\n zoom?: number\n\n @Field({ nullable: true })\n picture?: string\n}\n\n@InputType({ description: 'Input type for Profile' })\nexport class ProfileInput {\n @Field({ nullable: true })\n left?: number\n\n @Field({ nullable: true })\n top?: number\n\n @Field({ nullable: true })\n zoom?: number\n\n @Field({ nullable: true })\n picture?: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n file?: FileUpload\n}\n"]}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../server/service/contact/profile.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,+FAA2D;AAGpD,IAAM,OAAO,GAAb,MAAM,OAAO;CAYnB,CAAA;AAZY,0BAAO;AAElB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;qCAC/E;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;;oCAC9E;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;;qCACxE;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;wCACrD;kBAXL,OAAO;IADnB,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;GACnE,OAAO,CAYnB;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAexB,CAAA;AAfY,oCAAY;AAEvB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;;0CAC/E;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;;yCAC9E;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;;0CACxE;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;6CACrD;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,0BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;;0CACxE;uBAdN,YAAY;IADxB,IAAA,wBAAS,EAAC,EAAE,WAAW,EAAE,kEAAkE,EAAE,CAAC;GAClF,YAAY,CAexB","sourcesContent":["import { ObjectType, Field, InputType } from 'type-graphql'\nimport type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\n\n@ObjectType({ description: 'A contact’s profile picture and how it is framed' })\nexport class Profile {\n @Field({ nullable: true, description: 'The horizontal offset of the picture in its frame' })\n left?: number\n\n @Field({ nullable: true, description: 'The vertical offset of the picture in its frame' })\n top?: number\n\n @Field({ nullable: true, description: 'How far the picture is zoomed in its frame' })\n zoom?: number\n\n @Field({ nullable: true, description: 'The address of the picture' })\n picture?: string\n}\n\n@InputType({ description: 'A contact’s profile picture and how it is framed, as it is given' })\nexport class ProfileInput {\n @Field({ nullable: true, description: 'The horizontal offset of the picture in its frame' })\n left?: number\n\n @Field({ nullable: true, description: 'The vertical offset of the picture in its frame' })\n top?: number\n\n @Field({ nullable: true, description: 'How far the picture is zoomed in its frame' })\n zoom?: number\n\n @Field({ nullable: true, description: 'The address of the picture' })\n picture?: string\n\n @Field(type => GraphQLUpload, { nullable: true, description: 'A new picture to upload' })\n file?: FileUpload\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  export * from './contact/profile';
2
2
  export * from './contact/contact-item';
3
3
  export * from './contact/contact';
4
- export declare const entities: (typeof import("./contact/contact").Contact | typeof import("./contact/profile").Profile)[];
4
+ export declare const entities: (typeof import("./contact/profile").Profile | typeof import("./contact/contact").Contact)[];
5
5
  export declare const subscribers: any[];
6
6
  export declare const schema: {
7
7
  resolverClasses: (typeof import("./contact/contact-query").ContactQuery | typeof import("./contact/contact-mutation").ContactMutation)[];