@paris-ias/trees 1.8.56

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 (202) hide show
  1. package/LICENSE +679 -0
  2. package/dist/form/action.js +83 -0
  3. package/dist/form/affiliation.js +178 -0
  4. package/dist/form/apps.js +132 -0
  5. package/dist/form/disciplines.js +30 -0
  6. package/dist/form/events.js +836 -0
  7. package/dist/form/fellowships.js +1307 -0
  8. package/dist/form/files.js +30 -0
  9. package/dist/form/mailing.js +43 -0
  10. package/dist/form/news.js +252 -0
  11. package/dist/form/people.js +658 -0
  12. package/dist/form/projects.js +338 -0
  13. package/dist/form/publications.js +364 -0
  14. package/dist/form/tags.js +38 -0
  15. package/dist/form/users.js +576 -0
  16. package/dist/graphql/client/action/query.get.action.gql +22 -0
  17. package/dist/graphql/client/action/query.list.action.gql +32 -0
  18. package/dist/graphql/client/affiliation/query.get.affiliations.gql +37 -0
  19. package/dist/graphql/client/affiliation/query.list.affiliations.gql +43 -0
  20. package/dist/graphql/client/apps/query.get.apps.gql +33 -0
  21. package/dist/graphql/client/apps/query.list.apps.gql +43 -0
  22. package/dist/graphql/client/events/query.get.events.gql +119 -0
  23. package/dist/graphql/client/events/query.list.events.gql +40 -0
  24. package/dist/graphql/client/fellowships/query.get.fellowships.gql +163 -0
  25. package/dist/graphql/client/fellowships/query.list.fellowships.gql +49 -0
  26. package/dist/graphql/client/files/query.get.files.gql +24 -0
  27. package/dist/graphql/client/files/query.list.files.gql +37 -0
  28. package/dist/graphql/client/mailing/query.get.mailing.gql +24 -0
  29. package/dist/graphql/client/mailing/query.list.mailing.gql +23 -0
  30. package/dist/graphql/client/misc/apex.mutations.delete.gql +0 -0
  31. package/dist/graphql/client/misc/apex.mutations.upsert.gql +0 -0
  32. package/dist/graphql/client/misc/apex.queries.login.gql +0 -0
  33. package/dist/graphql/client/misc/query.get.disciplines.gql +17 -0
  34. package/dist/graphql/client/misc/query.get.tags.gql +13 -0
  35. package/dist/graphql/client/misc/query.list.disciplines.gql +23 -0
  36. package/dist/graphql/client/misc/query.list.tags.gql +23 -0
  37. package/dist/graphql/client/news/query.get.news.gql +128 -0
  38. package/dist/graphql/client/news/query.list.news.gql +35 -0
  39. package/dist/graphql/client/people/query.get.people.gql +173 -0
  40. package/dist/graphql/client/people/query.get.users.gql +0 -0
  41. package/dist/graphql/client/people/query.list.people.gql +55 -0
  42. package/dist/graphql/client/people/query.list.users.gql +31 -0
  43. package/dist/graphql/client/projects/query.get.projects.gql +166 -0
  44. package/dist/graphql/client/projects/query.list.projects.gql +33 -0
  45. package/dist/graphql/client/publications/query.get.publications.gql +169 -0
  46. package/dist/graphql/client/publications/query.list.publications.gql +35 -0
  47. package/dist/graphql/schemas/apex-resolvers-list.json +45 -0
  48. package/dist/graphql/schemas/schema.apex.graphql +946 -0
  49. package/dist/graphql/schemas/schema.website.graphql +794 -0
  50. package/dist/graphql/schemas/website-resolvers-list.json +22 -0
  51. package/dist/list/action.js +133 -0
  52. package/dist/list/affiliation.js +133 -0
  53. package/dist/list/apps.js +133 -0
  54. package/dist/list/disciplines.js +132 -0
  55. package/dist/list/events.js +186 -0
  56. package/dist/list/fellowships.js +149 -0
  57. package/dist/list/files.js +132 -0
  58. package/dist/list/mailing.js +132 -0
  59. package/dist/list/news.js +135 -0
  60. package/dist/list/people.js +176 -0
  61. package/dist/list/projects.js +135 -0
  62. package/dist/list/publications.js +152 -0
  63. package/dist/list/tags.js +133 -0
  64. package/dist/list/users.js +176 -0
  65. package/index.ts +63 -0
  66. package/lib/README.md +206 -0
  67. package/lib/buildClientGraphQL.ts +342 -0
  68. package/lib/buildDefaults.ts +0 -0
  69. package/lib/buildSchemas.ts +109 -0
  70. package/lib/generate.ts +505 -0
  71. package/lib/generateAll.ts +231 -0
  72. package/lib/utils.ts +24 -0
  73. package/package.json +34 -0
  74. package/readme.md +116 -0
  75. package/src/LICENSE +661 -0
  76. package/src/action/graphql/client/query.get.action.gql +22 -0
  77. package/src/action/graphql/client/query.list.action.gql +32 -0
  78. package/src/action/graphql/server/apex.types.action.graphql +15 -0
  79. package/src/action/models/action.ts +147 -0
  80. package/src/affiliation/graphql/client/query.get.affiliations.gql +37 -0
  81. package/src/affiliation/graphql/client/query.list.affiliations.gql +43 -0
  82. package/src/affiliation/graphql/server/shared.types.affiliations.graphql +20 -0
  83. package/src/affiliation/models/affiliation.ts +130 -0
  84. package/src/affiliation/models/member.ts +11 -0
  85. package/src/affiliation/models/partner.ts +9 -0
  86. package/src/apps/graphql/client/query.get.apps.gql +33 -0
  87. package/src/apps/graphql/client/query.list.apps.gql +43 -0
  88. package/src/apps/models/apps.ts +195 -0
  89. package/src/events/graphql/client/query.get.events.gql +119 -0
  90. package/src/events/graphql/client/query.list.events.gql +40 -0
  91. package/src/events/graphql/server/shared.inputs.events.graphql +24 -0
  92. package/src/events/models/eventSlot.ts +73 -0
  93. package/src/events/models/events.ts +569 -0
  94. package/src/fellowships/graphql/client/query.get.fellowships.gql +163 -0
  95. package/src/fellowships/graphql/client/query.list.fellowships.gql +49 -0
  96. package/src/fellowships/graphql/server/apex.inputs.fellowshipDetails.graphql +13 -0
  97. package/src/fellowships/graphql/server/shared.types.fellowshipDetails.graphql +13 -0
  98. package/src/fellowships/graphql/server/shared.types.fellowships.graphql +38 -0
  99. package/src/fellowships/models/fellowshipDetails.ts +145 -0
  100. package/src/fellowships/models/fellowships.ts +341 -0
  101. package/src/files/graphql/client/query.get.files.gql +24 -0
  102. package/src/files/graphql/client/query.list.files.gql +37 -0
  103. package/src/files/graphql/server/apex.inputs.files.graphql +7 -0
  104. package/src/files/graphql/server/apex.inputs.video.graphql +9 -0
  105. package/src/files/graphql/server/apex.types.files.graphql +4 -0
  106. package/src/files/graphql/server/shared.inputs.image.graphql +9 -0
  107. package/src/files/graphql/server/shared.types.files.graphql +15 -0
  108. package/src/files/graphql/server/shared.types.image.graphql +9 -0
  109. package/src/files/graphql/server/shared.types.video.graphql +9 -0
  110. package/src/files/models/files.ts +113 -0
  111. package/src/files/models/gallery.ts +11 -0
  112. package/src/files/models/image.ts +159 -0
  113. package/src/files/models/video.ts +166 -0
  114. package/src/form.ts +52 -0
  115. package/src/index.ts +98 -0
  116. package/src/list.ts +34 -0
  117. package/src/mailing/graphql/client/query.get.mailing.gql +24 -0
  118. package/src/mailing/graphql/client/query.list.mailing.gql +23 -0
  119. package/src/mailing/graphql/server/apex.types.mailing.graphql +13 -0
  120. package/src/mailing/models/mailing.ts +123 -0
  121. package/src/misc/graphql/client/apex.mutations.delete.gql +0 -0
  122. package/src/misc/graphql/client/apex.mutations.upsert.gql +0 -0
  123. package/src/misc/graphql/client/apex.queries.login.gql +0 -0
  124. package/src/misc/graphql/client/query.get.disciplines.gql +17 -0
  125. package/src/misc/graphql/client/query.get.tags.gql +13 -0
  126. package/src/misc/graphql/client/query.list.disciplines.gql +23 -0
  127. package/src/misc/graphql/client/query.list.tags.gql +23 -0
  128. package/src/misc/graphql/server/apex.inputs.misc.graphql +13 -0
  129. package/src/misc/graphql/server/apex.inputs.socials.graphql +12 -0
  130. package/src/misc/graphql/server/apex.mutations.graphql +23 -0
  131. package/src/misc/graphql/server/apex.queries.graphql +36 -0
  132. package/src/misc/graphql/server/apex.types.disciplines.graphql +4 -0
  133. package/src/misc/graphql/server/apex.types.tags.graphql +4 -0
  134. package/src/misc/graphql/server/shared.enums.graphql +112 -0
  135. package/src/misc/graphql/server/shared.inputs.misc.graphql +101 -0
  136. package/src/misc/graphql/server/shared.queries.graphql +35 -0
  137. package/src/misc/graphql/server/shared.types.disciplines.graphql +8 -0
  138. package/src/misc/graphql/server/shared.types.events.graphql +39 -0
  139. package/src/misc/graphql/server/shared.types.location.graphql +17 -0
  140. package/src/misc/graphql/server/shared.types.misc.graphql +120 -0
  141. package/src/misc/graphql/server/shared.types.related.graphql +10 -0
  142. package/src/misc/graphql/server/shared.types.relatedAffiliation.graphql +7 -0
  143. package/src/misc/graphql/server/shared.types.relatedEvent.graphql +7 -0
  144. package/src/misc/graphql/server/shared.types.relatedFellowships.graphql +7 -0
  145. package/src/misc/graphql/server/shared.types.relatedNews.graphql +7 -0
  146. package/src/misc/graphql/server/shared.types.relatedPeople.graphql +6 -0
  147. package/src/misc/graphql/server/shared.types.relatedProject.graphql +7 -0
  148. package/src/misc/graphql/server/shared.types.relatedPublications.graphql +6 -0
  149. package/src/misc/graphql/server/shared.types.socials.graphql +22 -0
  150. package/src/misc/graphql/server/shared.types.tags.graphql +11 -0
  151. package/src/misc/graphql/server/website.mutations.graphql +4 -0
  152. package/src/misc/models/disciplines.ts +116 -0
  153. package/src/misc/models/location.ts +136 -0
  154. package/src/misc/models/organizers.ts +13 -0
  155. package/src/misc/models/related.ts +123 -0
  156. package/src/misc/models/relatedEvents.ts +16 -0
  157. package/src/misc/models/relatedFellowships.ts +7 -0
  158. package/src/misc/models/relatedNews.ts +13 -0
  159. package/src/misc/models/relatedPeople.ts +8 -0
  160. package/src/misc/models/relatedProject.ts +14 -0
  161. package/src/misc/models/relatedPublications.ts +14 -0
  162. package/src/misc/models/socials.ts +133 -0
  163. package/src/misc/models/sponsor.ts +13 -0
  164. package/src/misc/models/tags.ts +116 -0
  165. package/src/misc/models/taxonomy.ts +1 -0
  166. package/src/model.ts +7 -0
  167. package/src/news/graphql/client/query.get.news.gql +128 -0
  168. package/src/news/graphql/client/query.list.news.gql +35 -0
  169. package/src/news/graphql/server/share.types.news.graphql +27 -0
  170. package/src/news/models/news.ts +257 -0
  171. package/src/people/graphql/client/query.get.people.gql +173 -0
  172. package/src/people/graphql/client/query.get.users.gql +0 -0
  173. package/src/people/graphql/client/query.list.people.gql +55 -0
  174. package/src/people/graphql/client/query.list.users.gql +31 -0
  175. package/src/people/graphql/server/apex.inputs.consent.graphql +9 -0
  176. package/src/people/graphql/server/apex.inputs.groups.graphql +8 -0
  177. package/src/people/graphql/server/apex.inputs.vintage.graphql +6 -0
  178. package/src/people/graphql/server/shared.types.consent.graphql +9 -0
  179. package/src/people/graphql/server/shared.types.groups.graphql +8 -0
  180. package/src/people/graphql/server/shared.types.people.graphql +29 -0
  181. package/src/people/graphql/server/shared.types.position.graphql +6 -0
  182. package/src/people/graphql/server/shared.types.users.graphql +17 -0
  183. package/src/people/graphql/server/shared.types.vintage.graphql +6 -0
  184. package/src/people/models/consent.ts +82 -0
  185. package/src/people/models/discussants.ts +9 -0
  186. package/src/people/models/experiences.ts +38 -0
  187. package/src/people/models/fellows.ts +12 -0
  188. package/src/people/models/groups.ts +58 -0
  189. package/src/people/models/people.ts +244 -0
  190. package/src/people/models/position.ts +62 -0
  191. package/src/people/models/speakers.ts +9 -0
  192. package/src/people/models/users.ts +252 -0
  193. package/src/people/models/vintage.ts +124 -0
  194. package/src/projects/graphql/client/query.get.projects.gql +166 -0
  195. package/src/projects/graphql/client/query.list.projects.gql +33 -0
  196. package/src/projects/graphql/server/shared.types.projects.graphql +29 -0
  197. package/src/projects/models/projects.ts +249 -0
  198. package/src/publications/graphql/client/query.get.publications.gql +169 -0
  199. package/src/publications/graphql/client/query.list.publications.gql +35 -0
  200. package/src/publications/graphql/server/shared.types.publications.graphql +34 -0
  201. package/src/publications/models/article.ts +262 -0
  202. package/src/publications/models/publications.ts +306 -0
@@ -0,0 +1,120 @@
1
+
2
+
3
+ type App {
4
+ appId: String
5
+ name: String!
6
+ description: String
7
+ summary: String
8
+ subtitle: String
9
+ logo: Image
10
+ url: AWSURL
11
+ state: appState
12
+ tags: [Tag]
13
+ date: AWSDateTime
14
+ color: String
15
+ slug: String
16
+ }
17
+
18
+ type AppList {
19
+ total: Int!
20
+ items: [App]
21
+ }
22
+
23
+ type AppRole {
24
+ appId: String
25
+ roles: [Int!]!
26
+ }
27
+
28
+
29
+ type Entity_sm {
30
+ name: String!
31
+ description: String
32
+ logo: String
33
+ place: Place
34
+ }
35
+
36
+
37
+ type Filters {
38
+ events: EventFilters
39
+ fellowships: FellowshipFilters
40
+ news: NewsFilters
41
+ projects: ProjectFilters
42
+ people: PeopleFilters
43
+ publications: PublicationFilters
44
+ }
45
+
46
+
47
+
48
+ type Nomenclature {
49
+ version: String!
50
+ settings: NomenclatureSettings!
51
+ data: [Wikipedia!]!
52
+ }
53
+
54
+ type NomenclatureSettings {
55
+ lang: [String!]
56
+ defaultLang: String
57
+ extended: Boolean
58
+ }
59
+
60
+ type Place {
61
+ name: String!
62
+ address: String
63
+ url: AWSURL
64
+ }
65
+
66
+ type Profile {
67
+ country: Int
68
+ firstname: String!
69
+ lastname: String!
70
+ position: String
71
+ image: Image
72
+ references: [String]
73
+ presentation: String
74
+ twitter: String
75
+ linkedin: String
76
+ wikipedia: String
77
+ }
78
+
79
+
80
+ type SearchList {
81
+ news: NewsList
82
+ projects: ProjectsList
83
+ events: EventsList
84
+ people: PeopleList
85
+ publications: PublicationsList
86
+ fellowships: FellowshipList
87
+ }
88
+
89
+ type Settings {
90
+ lang: String
91
+ }
92
+
93
+ type Slot {
94
+ firstname: String!
95
+ lastname: String!
96
+ email: AWSEmail!
97
+ institution: String
98
+ lang: String!
99
+ }
100
+
101
+ # type Slug {
102
+ # fr: String
103
+ # en: String
104
+ # }
105
+
106
+
107
+ type Token {
108
+ accessToken: String!
109
+ }
110
+
111
+ type TokenAndUser {
112
+ accessToken: String
113
+ user: User
114
+ }
115
+
116
+
117
+
118
+
119
+
120
+
@@ -0,0 +1,10 @@
1
+
2
+ type Related {
3
+ events: [RelatedEvent]
4
+ news: [RelatedNews]
5
+ people: [RelatedPeople]
6
+ projects: [RelatedProject]
7
+ publications: [RelatedPublication]
8
+ fellowships: [RelatedFellowship]
9
+ affiliations: [RelatedAffiliation]
10
+ }
@@ -0,0 +1,7 @@
1
+ type RelatedAffiliation {
2
+ name: String
3
+ url: AWSURL
4
+ image: Image
5
+ description: String
6
+ slug: AWSJSON
7
+ }
@@ -0,0 +1,7 @@
1
+ type RelatedEvent {
2
+ name: String
3
+ url: AWSURL
4
+ image: Image
5
+ description: String
6
+ slug: AWSJSON
7
+ }
@@ -0,0 +1,7 @@
1
+ type RelatedFellowship {
2
+ name: String
3
+ url: AWSURL
4
+ image: Image
5
+ description: String
6
+ slug: AWSJSON
7
+ }
@@ -0,0 +1,7 @@
1
+ type RelatedNews {
2
+ name: String
3
+ url: AWSURL
4
+ image: Image
5
+ description: String
6
+ slug: AWSJSON
7
+ }
@@ -0,0 +1,6 @@
1
+ type RelatedPeople {
2
+ firstname: String
3
+ lastname: String
4
+ image: Image
5
+ slug: AWSJSON
6
+ }
@@ -0,0 +1,7 @@
1
+ type RelatedProject {
2
+ name: String
3
+ url: AWSURL
4
+ image: Image
5
+ description: String
6
+ slug: AWSJSON
7
+ }
@@ -0,0 +1,6 @@
1
+
2
+ type RelatedPublication {
3
+ name: String!
4
+ url: AWSURL!
5
+ slug: AWSJSON
6
+ }
@@ -0,0 +1,22 @@
1
+ type Socials {
2
+ website: AWSURL
3
+ wikipedia: AWSURL
4
+ orcid: AWSURL
5
+ linkedin: AWSURL
6
+ twitter: AWSURL
7
+ instagram: AWSURL
8
+ scholar: AWSURL
9
+ researchgate: AWSURL
10
+ mendeley: AWSURL
11
+ idRef: Int
12
+ }
13
+
14
+
15
+ type Wikipedia {
16
+ lang: String!
17
+ disciplines: AWSJSON
18
+ thematics: AWSJSON
19
+ types: AWSJSON
20
+ tags: AWSJSON
21
+ }
22
+
@@ -0,0 +1,11 @@
1
+ type Tag {
2
+ name: String
3
+ description: String
4
+ icon: String
5
+ createdAt: AWSDateTime
6
+ updatedAt: AWSDateTime
7
+ appId: String
8
+ slug: AWSJSON
9
+ }
10
+
11
+
@@ -0,0 +1,4 @@
1
+ type Mutation {
2
+ # Public event booking
3
+ bookEvent(itemId: ID!, slot: SlotInput!): Boolean
4
+ }
@@ -0,0 +1,116 @@
1
+ import Model from "../../model"
2
+ import { formType } from "../../form"
3
+
4
+ export interface Disciplines {
5
+ createdAt: Date
6
+ description: string
7
+ icon: string
8
+ name: string
9
+ updatedAt: Date
10
+ }
11
+
12
+ const configDefault: Model = {
13
+ list: {
14
+ create: true, // allow to create new items
15
+ filters: {
16
+ year: {
17
+ type: "Select",
18
+ },
19
+ },
20
+ sort: {
21
+ // sort options
22
+ nameasc: {
23
+ // by name from a to z
24
+ icon: "sort-alphabetical-ascending",
25
+ text: "by-name-from-a-to-z",
26
+ value: ["article_title", 1],
27
+ },
28
+ namedesc: {
29
+ // by name from z to a
30
+ icon: "sort-alphabetical-descending",
31
+ text: "by-name-from-z-to-a",
32
+ value: ["article_title", -1],
33
+ },
34
+ dateasc: {
35
+ // by date from most recent to oldest
36
+ icon: "sort-calendar-descending",
37
+ text: "by-date-most-recent-first",
38
+ value: ["date", -1],
39
+ default: true,
40
+ },
41
+ datedesc: {
42
+ // by date from oldest to most recent
43
+ icon: "sort-calendar-ascending",
44
+ text: "by-date-oldest-first",
45
+ value: ["date", 1],
46
+ },
47
+ },
48
+ views: {
49
+ rows: {
50
+ name: "rows",
51
+ icon: "view-list",
52
+ perPage: {
53
+ options: [9, 12, 16],
54
+ default: 9,
55
+ },
56
+ },
57
+ dense: {
58
+ default: true,
59
+ name: "dense",
60
+ icon: "land-rows-horizontal",
61
+ perPage: {
62
+ options: [20, 40, 60, 80, 100],
63
+ default: 20,
64
+ },
65
+ },
66
+ tiles: {
67
+ name: "tiles",
68
+ icon: "view-quilt",
69
+ },
70
+ grid: {
71
+ name: "grid",
72
+ icon: "view-day",
73
+ },
74
+ },
75
+ },
76
+ form: {
77
+ name: {
78
+ label: "name",
79
+ component: "TextField",
80
+ type: formType.Primitive,
81
+
82
+ rules: {
83
+ required: true,
84
+ min: 5,
85
+ max: 200,
86
+ },
87
+ meta: "name",
88
+ },
89
+ description: {
90
+ label: "description",
91
+ component: "TextField",
92
+ type: formType.Primitive,
93
+
94
+ rules: {
95
+ required: true,
96
+ min: 5,
97
+ max: 200,
98
+ },
99
+ meta: "description",
100
+ },
101
+ // TODO: add discipline picker based on the complete list of disciplines
102
+ /* icon: {
103
+ label: "icon",
104
+ component: "TextField",
105
+ type: formType.Primitive,
106
+ rules: {
107
+ required: true,
108
+ min: 5,
109
+ max: 200,
110
+ },
111
+ meta: "icon",
112
+ }, */
113
+ },
114
+ }
115
+
116
+ export default configDefault
@@ -0,0 +1,136 @@
1
+ import { Form, formType } from "../../form"
2
+
3
+ export interface Location {
4
+ name: string
5
+ details?: string // natural language description of the location
6
+ alt?: string
7
+ street?: string
8
+ city?: string
9
+ country?: string
10
+ zip?: number
11
+ geocode?: {
12
+ lat: number
13
+ lng: number
14
+ }
15
+ }
16
+
17
+ export interface LocationForm {
18
+ form: Record<string, Form>
19
+ }
20
+ const defaultConfig: LocationForm = {
21
+ form: {
22
+ name: {
23
+ label: "name",
24
+ component: "TextField",
25
+ type: formType.Primitive,
26
+
27
+ rules: {
28
+ required: true,
29
+ min: 5,
30
+ max: 200,
31
+ },
32
+ meta: "name",
33
+ },
34
+ details: {
35
+ label: "details",
36
+ component: "TextArea",
37
+ type: formType.Primitive,
38
+
39
+ rules: {
40
+ required: true,
41
+ min: 5,
42
+ max: 200,
43
+ },
44
+ meta: "details",
45
+ },
46
+ alt: {
47
+ label: "alt",
48
+ component: "TextArea",
49
+ type: formType.Primitive,
50
+
51
+ rules: {
52
+ required: true,
53
+ min: 5,
54
+ max: 200,
55
+ },
56
+ meta: "alt",
57
+ },
58
+ street: {
59
+ label: "street",
60
+ component: "TextField",
61
+ type: formType.Primitive,
62
+
63
+ rules: {
64
+ required: true,
65
+ max: 200,
66
+ },
67
+ meta: "street",
68
+ },
69
+ city: {
70
+ label: "city",
71
+ component: "TextField",
72
+ type: formType.Primitive,
73
+
74
+ rules: {
75
+ required: true,
76
+ max: 200,
77
+ },
78
+ meta: "city",
79
+ },
80
+ country: {
81
+ label: "country",
82
+ component: "AutoComplete",
83
+ type: formType.Primitive,
84
+
85
+ meta: "country",
86
+ },
87
+ zip: {
88
+ label: "zip",
89
+ component: "TextField",
90
+ type: formType.Primitive,
91
+ rules: {
92
+ required: true,
93
+ min: 5,
94
+ max: 200,
95
+ },
96
+ meta: "zip",
97
+ },
98
+ geocode: {
99
+ label: "geocode",
100
+ component: "LocationPicker",
101
+ type: formType.Object,
102
+ rules: {
103
+ required: true,
104
+ min: 5,
105
+ max: 200,
106
+ },
107
+ items: {
108
+ lat: {
109
+ label: "latitude",
110
+ component: "TextField",
111
+ type: formType.Primitive,
112
+ rules: {
113
+ required: true,
114
+ min: 5,
115
+ max: 200,
116
+ },
117
+ meta: "latitude",
118
+ },
119
+ lng: {
120
+ label: "longitude",
121
+ component: "TextField",
122
+ type: formType.Primitive,
123
+ rules: {
124
+ required: true,
125
+ min: 5,
126
+ max: 200,
127
+ },
128
+ meta: "longitude",
129
+ },
130
+ },
131
+ meta: "geocode",
132
+ },
133
+ },
134
+ }
135
+
136
+ export default defaultConfig
@@ -0,0 +1,13 @@
1
+ import configPeople, { People } from "../../people/models/people"
2
+ import configAffiliation, {
3
+ Affiliation,
4
+ } from "../../affiliation/models/affiliation"
5
+ import Model from "../../model"
6
+
7
+ export interface Organizer extends People, Affiliation {}
8
+ const defaultConfig: Model = {
9
+ aliases: ["people", "affiliations"],
10
+ ...configPeople,
11
+ ...configAffiliation,
12
+ }
13
+ export default defaultConfig
@@ -0,0 +1,123 @@
1
+ import Model from "../../model"
2
+ import { RelatedEvent } from "./relatedEvents"
3
+ import { RelatedNews } from "./relatedNews"
4
+ import { RelatedProject } from "./relatedProject"
5
+ import { RelatedPeople } from "./relatedPeople"
6
+ import { RelatedPublications } from "./relatedPublications"
7
+ import { RelatedFellowships } from "./relatedFellowships"
8
+ import { formType } from "../../form"
9
+ export interface Related {
10
+ events: RelatedEvent[]
11
+ news: RelatedNews[]
12
+ projects: RelatedProject[]
13
+ people: RelatedPeople[]
14
+ publications: RelatedPublications[]
15
+ fellowships: RelatedFellowships[]
16
+ }
17
+
18
+ const defaultConfig: Model = {
19
+ list: {
20
+ create: true, // allow to create new items
21
+ filters: {
22
+ year: {
23
+ type: "Select",
24
+ items: "",
25
+ },
26
+ },
27
+ sort: {
28
+ // sort options
29
+ nameasc: {
30
+ // by name from a to z
31
+ icon: "sort-alphabetical-ascending",
32
+ text: "by-name-from-a-to-z",
33
+ value: ["article_title", 1],
34
+ },
35
+ namedesc: {
36
+ // by name from z to a
37
+ icon: "sort-alphabetical-descending",
38
+ text: "by-name-from-z-to-a",
39
+ value: ["article_title", -1],
40
+ },
41
+ dateasc: {
42
+ // by date from most recent to oldest
43
+ icon: "sort-calendar-descending",
44
+ text: "by-date-most-recent-first",
45
+ value: ["date", -1],
46
+ default: true,
47
+ },
48
+ datedesc: {
49
+ // by date from oldest to most recent
50
+ icon: "sort-calendar-ascending",
51
+ text: "by-date-oldest-first",
52
+ value: ["date", 1],
53
+ },
54
+ },
55
+ views: {
56
+ rows: {
57
+ name: "rows",
58
+ icon: "view-list",
59
+ perPage: {
60
+ options: [9, 12, 16],
61
+ default: 9,
62
+ },
63
+ },
64
+ dense: {
65
+ default: true,
66
+ name: "dense",
67
+ icon: "land-rows-horizontal",
68
+ perPage: {
69
+ options: [20, 40, 60, 80, 100],
70
+ default: 20,
71
+ },
72
+ },
73
+ tiles: {
74
+ name: "tiles",
75
+ icon: "view-quilt",
76
+ },
77
+ grid: {
78
+ name: "grid",
79
+ icon: "view-day",
80
+ },
81
+ },
82
+ },
83
+ form: {
84
+ events: {
85
+ label: "relatedEvent",
86
+ component: "DocumentPicker",
87
+ type: formType.Document,
88
+ meta: "event",
89
+ },
90
+ news: {
91
+ label: "relatedNews",
92
+ component: "DocumentPicker",
93
+ type: formType.Document,
94
+ meta: "news",
95
+ },
96
+ people: {
97
+ label: "relatedPeople",
98
+ component: "DocumentPicker",
99
+ type: formType.Document,
100
+ meta: "people",
101
+ },
102
+ publications: {
103
+ label: "relatedPublication",
104
+ component: "DocumentPicker",
105
+ type: formType.Document,
106
+ meta: "publication",
107
+ },
108
+ projects: {
109
+ label: "relatedProject",
110
+ component: "DocumentPicker",
111
+ type: formType.Document,
112
+ meta: "project",
113
+ },
114
+ fellowships: {
115
+ label: "relatedFellowships",
116
+ component: "DocumentPicker",
117
+ type: formType.Document,
118
+ meta: "fellowship",
119
+ },
120
+ },
121
+ }
122
+
123
+ export default defaultConfig
@@ -0,0 +1,16 @@
1
+ import { Image } from "../../files/models/image"
2
+
3
+ export interface RelatedEvent {
4
+ bookingState: number // 0 - Server & Client -
5
+ createdAt: Date // 0 - Server & Client -
6
+ description?: string // 0 - Server & Client -
7
+ image?: Image // 3 - Server & Client -
8
+ name: string // 0 - Server & Client -
9
+ outside?: boolean // 0 - Server & Client -
10
+ start?: string // 0 - Server & Client -
11
+ state: number // 0 - Server & Client -
12
+ summary?: string // 0 - Server & Client -
13
+ eventType: number // 0 : online, 1: physical, 2: hybrid// 0 - Server & Client -
14
+ url: URL // 0 - Server & Client -
15
+ slug: string
16
+ }
@@ -0,0 +1,7 @@
1
+ export interface RelatedFellowships {
2
+ name: string
3
+ description?: string
4
+ url: URL
5
+ date?: Date
6
+ slug: string
7
+ }
@@ -0,0 +1,13 @@
1
+ import { Image } from "../../files/models/image"
2
+
3
+ export interface RelatedNews {
4
+ name: string
5
+ description?: string
6
+ image?: Image
7
+ color?: string
8
+ url: URL
9
+ date?: Date
10
+ // authors: People[];
11
+ featured?: Date
12
+ slug: string
13
+ }
@@ -0,0 +1,8 @@
1
+ import { Image } from "../../files/models/image"
2
+
3
+ export interface RelatedPeople {
4
+ firstname: string
5
+ lastname: string
6
+ image?: Image
7
+ slug: string
8
+ }
@@ -0,0 +1,14 @@
1
+ import { Image } from "../../files/models/image"
2
+ import { Video } from "../../files/models/video"
3
+
4
+ export interface RelatedProject {
5
+ name: string
6
+ shortDescription?: string
7
+ description?: string
8
+ url: URL
9
+ image?: Image
10
+ video?: Video
11
+ color?: string
12
+ date?: Date
13
+ slug: string
14
+ }
@@ -0,0 +1,14 @@
1
+ import { Image } from "../../files/models/image"
2
+ import { Video } from "../../files/models/video"
3
+
4
+ export interface RelatedPublications {
5
+ name: string
6
+ shortDescription?: string
7
+ description?: string
8
+ url: URL
9
+ image?: Image
10
+ video?: Video
11
+ color?: string
12
+ date?: Date
13
+ slug: string
14
+ }