@things-factory/auth-ui 9.1.19 → 10.0.0-beta.1

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 (47) hide show
  1. package/dist-client/bootstrap.js +24 -0
  2. package/dist-client/bootstrap.js.map +1 -1
  3. package/dist-client/components/domain-switch.d.ts +2 -12
  4. package/dist-client/components/domain-switch.js +5 -18
  5. package/dist-client/components/domain-switch.js.map +1 -1
  6. package/dist-client/components/user-role-editor.js +13 -4
  7. package/dist-client/components/user-role-editor.js.map +1 -1
  8. package/dist-client/pages/app-binding/app-binding.js +66 -111
  9. package/dist-client/pages/app-binding/app-binding.js.map +1 -1
  10. package/dist-client/pages/app-binding/app-bindings.js +38 -59
  11. package/dist-client/pages/app-binding/app-bindings.js.map +1 -1
  12. package/dist-client/pages/appliance/appliance.js +72 -120
  13. package/dist-client/pages/appliance/appliance.js.map +1 -1
  14. package/dist-client/pages/appliance/home.js +39 -61
  15. package/dist-client/pages/appliance/home.js.map +1 -1
  16. package/dist-client/pages/appliance/register.js +33 -52
  17. package/dist-client/pages/appliance/register.js.map +1 -1
  18. package/dist-client/pages/application/application.js +67 -107
  19. package/dist-client/pages/application/application.js.map +1 -1
  20. package/dist-client/pages/application/applications.js +38 -59
  21. package/dist-client/pages/application/applications.js.map +1 -1
  22. package/dist-client/pages/application/register.js +41 -64
  23. package/dist-client/pages/application/register.js.map +1 -1
  24. package/dist-client/pages/attribute/attribute-set-management.d.ts +0 -6
  25. package/dist-client/pages/attribute/attribute-set-management.js +46 -87
  26. package/dist-client/pages/attribute/attribute-set-management.js.map +1 -1
  27. package/dist-client/pages/auth-provider/auth-provider-management.d.ts +0 -6
  28. package/dist-client/pages/auth-provider/auth-provider-management.js +67 -127
  29. package/dist-client/pages/auth-provider/auth-provider-management.js.map +1 -1
  30. package/dist-client/pages/domain/domain-management.d.ts +0 -6
  31. package/dist-client/pages/domain/domain-management.js +64 -119
  32. package/dist-client/pages/domain/domain-management.js.map +1 -1
  33. package/dist-client/pages/domain-link/domain-link-management.d.ts +1 -7
  34. package/dist-client/pages/domain-link/domain-link-management.js +67 -125
  35. package/dist-client/pages/domain-link/domain-link-management.js.map +1 -1
  36. package/dist-client/pages/env-var/env-var-list-page.d.ts +0 -6
  37. package/dist-client/pages/env-var/env-var-list-page.js +44 -82
  38. package/dist-client/pages/env-var/env-var-list-page.js.map +1 -1
  39. package/dist-client/pages/partner/partner-management.js +17 -28
  40. package/dist-client/pages/partner/partner-management.js.map +1 -1
  41. package/dist-client/pages/role/role-management.js +20 -33
  42. package/dist-client/pages/role/role-management.js.map +1 -1
  43. package/dist-client/tsconfig.tsbuildinfo +1 -1
  44. package/dist-server/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +12 -12
  46. package/views/auth-page.html +1 -1
  47. package/views/oauth2-page.html +1 -1
@@ -8,16 +8,15 @@ import '../../components/create-domain-popup.js';
8
8
  import gql from 'graphql-tag';
9
9
  import { css, html } from 'lit';
10
10
  import { customElement, property, query } from 'lit/decorators.js';
11
- import { connect } from 'pwa-helpers/connect-mixin';
12
11
  import { DataGrist } from '@operato/data-grist/ox-grist.js';
13
12
  import { client } from '@operato/graphql';
14
13
  import { i18next, localize } from '@operato/i18n';
15
14
  import { openPopup } from '@operato/layout';
16
- import { PageView, store } from '@operato/shell';
15
+ import { PageView } from '@operato/shell';
17
16
  import { CommonHeaderStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles';
18
17
  import { isMobileDevice } from '@operato/utils';
19
18
  import { p13n } from '@operato/p13n';
20
- let DomainManagement = class DomainManagement extends connect(store)(p13n(localize(i18next)(PageView))) {
19
+ let DomainManagement = class DomainManagement extends p13n(localize(i18next)(PageView)) {
21
20
  constructor() {
22
21
  super(...arguments);
23
22
  this.active = false;
@@ -28,47 +27,38 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
28
27
  CommonHeaderStyles,
29
28
  ScrollbarStyles,
30
29
  css `
31
- :host {
32
- display: flex;
30
+ :host { display: flex;
33
31
  flex-direction: column;
34
32
 
35
33
  overflow: hidden;
36
- }
34
+ }
37
35
 
38
- ox-grist {
39
- overflow-y: auto;
36
+ ox-grist { overflow-y: auto;
40
37
  flex: 1;
41
- }
38
+ }
42
39
  `
43
40
  ]; }
44
41
  get context() {
45
- return {
46
- title: i18next.t('text.domain management'),
47
- search: {
48
- handler: (search) => {
42
+ return { title: i18next.t('text.domain management'),
43
+ search: { handler: (search) => {
49
44
  this.grist.searchText = search;
50
45
  },
51
- value: this.grist?.searchText || ''
52
- },
53
- filter: {
54
- handler: () => {
46
+ value: this.grist?.searchText || '' },
47
+ filter: { handler: () => {
55
48
  this.grist.toggleHeadroom();
56
49
  }
57
50
  },
58
51
  actions: [
59
- {
60
- title: i18next.t('button.add'),
52
+ { title: i18next.t('button.add'),
61
53
  action: this.onCreateDomain.bind(this),
62
54
  icon: 'add'
63
55
  },
64
- {
65
- title: i18next.t('button.save'),
56
+ { title: i18next.t('button.save'),
66
57
  action: this.onUpdateDomains.bind(this),
67
58
  icon: 'save'
68
59
  }
69
60
  ],
70
- toolbar: false
71
- };
61
+ toolbar: false };
72
62
  }
73
63
  render() {
74
64
  return html `
@@ -87,19 +77,15 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
87
77
  `;
88
78
  }
89
79
  async pageInitialized() {
90
- this.config = {
91
- rows: {
92
- appendable: false
80
+ this.config = { rows: { appendable: false
93
81
  },
94
82
  columns: [
95
83
  { type: 'gutter', gutterName: 'sequence' },
96
- {
97
- type: 'gutter',
84
+ { type: 'gutter',
98
85
  gutterName: 'button',
99
86
  icon: 'assignment',
100
87
  title: i18next.t('title.open attributes view'),
101
- handlers: {
102
- click: async (columns, data, column, record, rowIndex) => {
88
+ handlers: { click: async (columns, data, column, record, rowIndex) => {
103
89
  const attributeSet = await this.getAttributeSetForDomain();
104
90
  openPopup(html `
105
91
  <ox-attribute-view
@@ -107,21 +93,18 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
107
93
  .value=${record.attributes}
108
94
  style="background-color: white;"
109
95
  ></ox-attribute-view>
110
- `, {
111
- backdrop: true,
96
+ `, { backdrop: true,
112
97
  size: 'large',
113
98
  title: record.name + ' ' + i18next.t('title.attributes')
114
99
  });
115
100
  }
116
101
  }
117
102
  },
118
- {
119
- type: 'gutter',
103
+ { type: 'gutter',
120
104
  gutterName: 'button',
121
105
  icon: 'domain',
122
106
  title: i18next.t('title.move to this domain'),
123
- handlers: {
124
- click: (_columns, _data, _column, record, _rowIndex) => {
107
+ handlers: { click: (_columns, _data, _column, record, _rowIndex) => {
125
108
  if (record.id) {
126
109
  const subdomain = record.subdomain;
127
110
  const extType = record.extType || 'domain';
@@ -130,45 +113,36 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
130
113
  }
131
114
  }
132
115
  },
133
- {
134
- type: 'string',
116
+ { type: 'string',
135
117
  name: 'name',
136
118
  header: i18next.t('field.name'),
137
- record: {
138
- editable: false
119
+ record: { editable: false
139
120
  },
140
121
  filter: 'search',
141
122
  sortable: true,
142
123
  width: 200
143
124
  },
144
- {
145
- type: 'string',
125
+ { type: 'string',
146
126
  name: 'description',
147
127
  header: i18next.t('field.description'),
148
- record: {
149
- editable: true
128
+ record: { editable: true
150
129
  },
151
130
  filter: 'search',
152
131
  width: 200
153
132
  },
154
- {
155
- type: 'string',
133
+ { type: 'string',
156
134
  name: 'subdomain',
157
135
  header: i18next.t('field.subdomain'),
158
- record: {
159
- editable: false
136
+ record: { editable: false
160
137
  },
161
138
  filter: 'search',
162
139
  width: 200
163
140
  },
164
- {
165
- type: 'resource-object',
141
+ { type: 'resource-object',
166
142
  name: 'parent',
167
143
  header: i18next.t('field.parent-domain'),
168
- record: {
169
- editable: true,
170
- options: {
171
- title: i18next.t('text.select domain'),
144
+ record: { editable: true,
145
+ options: { title: i18next.t('text.select domain'),
172
146
  queryName: 'domains',
173
147
  nameField: 'name',
174
148
  descriptionField: 'description',
@@ -182,14 +156,11 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
182
156
  },
183
157
  width: 140
184
158
  },
185
- {
186
- type: 'resource-object',
159
+ { type: 'resource-object',
187
160
  name: 'ownerUser',
188
161
  header: i18next.t('field.owner-user'),
189
- record: {
190
- editable: true,
191
- options: {
192
- title: i18next.t('title.lookup user'),
162
+ record: { editable: true,
163
+ options: { title: i18next.t('title.lookup user'),
193
164
  queryName: 'users',
194
165
  nameField: 'name',
195
166
  descriptionField: 'email',
@@ -204,44 +175,36 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
204
175
  },
205
176
  width: 140
206
177
  },
207
- {
208
- type: 'select',
178
+ { type: 'select',
209
179
  name: 'extType',
210
180
  header: i18next.t('field.type'),
211
- record: {
212
- editable: true,
181
+ record: { editable: true,
213
182
  options: async () => {
214
183
  return ['', ...(await this.getDomainTypes())];
215
184
  }
216
185
  },
217
186
  width: 100
218
187
  },
219
- {
220
- type: 'timezone',
188
+ { type: 'timezone',
221
189
  name: 'timezone',
222
190
  header: i18next.t('field.timezone'),
223
- record: {
224
- editable: true
191
+ record: { editable: true
225
192
  },
226
193
  width: 120
227
194
  },
228
- {
229
- type: 'attributes',
195
+ { type: 'attributes',
230
196
  name: 'attributes',
231
197
  header: i18next.t('field.attributes'),
232
- record: {
233
- editable: true,
198
+ record: { editable: true,
234
199
  options: async () => {
235
- return {
236
- objectified: true,
200
+ return { objectified: true,
237
201
  attributeSet: await this.getAttributeSetForDomain()
238
202
  };
239
203
  }
240
204
  },
241
205
  width: 120
242
206
  },
243
- {
244
- type: 'datetime',
207
+ { type: 'datetime',
245
208
  name: 'updatedAt',
246
209
  header: i18next.t('field.updated_at'),
247
210
  width: 180
@@ -256,41 +219,33 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
256
219
  }
257
220
  }
258
221
  async fetchHandler({ page, limit, sortings = [], filters = [] }) {
259
- const response = await client.query({
260
- query: gql `
261
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
262
- domains(filters: $filters, pagination: $pagination, sortings: $sortings) {
263
- items {
264
- id
222
+ const response = await client.query({ query: gql `
223
+ query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) { domains(filters: $filters, pagination: $pagination, sortings: $sortings) { items { id
265
224
  name
266
225
  description
267
226
  subdomain
268
- parent {
269
- id
227
+ parent { id
270
228
  name
271
- }
272
- ownerUser {
273
- id
229
+ }
230
+ ownerUser { id
274
231
  name
275
232
  email
276
- }
233
+ }
277
234
  extType
278
235
  timezone
279
236
  attributes
280
237
  updatedAt
281
- }
238
+ }
282
239
  total
283
- }
284
- }
240
+ }
241
+ }
285
242
  `,
286
- variables: {
287
- filters,
243
+ variables: { filters,
288
244
  pagination: { page, limit },
289
245
  sortings
290
246
  }
291
247
  });
292
- return {
293
- total: response.data.domains.total || 0,
248
+ return { total: response.data.domains.total || 0,
294
249
  records: response.data.domains.items || []
295
250
  };
296
251
  }
@@ -309,15 +264,12 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
309
264
  patchField[key] = dirtyFields[key].after;
310
265
  }
311
266
  }
312
- return {
313
- ...patchField
267
+ return { ...patchField
314
268
  };
315
269
  });
316
- const response = await client.mutate({
317
- mutation: gql `
318
- mutation updateDomains($patches: [DomainPatch!]!) {
319
- updateDomains(patches: $patches)
320
- }
270
+ const response = await client.mutate({ mutation: gql `
271
+ mutation updateDomains($patches: [DomainPatch!]!) { updateDomains(patches: $patches)
272
+ }
321
273
  `,
322
274
  variables: { patches }
323
275
  });
@@ -334,40 +286,33 @@ let DomainManagement = class DomainManagement extends connect(store)(p13n(locali
334
286
  this.grist.fetch();
335
287
  }}
336
288
  ></create-domain-popup>
337
- `, {
338
- size: 'small',
289
+ `, { size: 'small',
339
290
  title: `${i18next.t('title.create_domain')}`
340
291
  });
341
292
  }
342
293
  async getAttributeSetForDomain() {
343
- const response = await client.query({
344
- query: gql `
345
- query {
346
- attributeSet: attributeSetByEntity(entity: "Domain") {
347
- entity
294
+ const response = await client.query({ query: gql `
295
+ query { attributeSet: attributeSetByEntity(entity: "Domain") { entity
348
296
  description
349
- items {
350
- name
297
+ items { name
351
298
  description
352
299
  tag
353
300
  type
354
301
  active
355
302
  hidden
356
303
  options
357
- }
358
- }
359
- }
304
+ }
305
+ }
306
+ }
360
307
  `
361
308
  });
362
309
  return response.data?.attributeSet || {};
363
310
  }
364
311
  async getDomainTypes() {
365
312
  if (!this.domainTypes) {
366
- const response = await client.query({
367
- query: gql `
368
- query {
369
- domainTypes
370
- }
313
+ const response = await client.query({ query: gql `
314
+ query { domainTypes
315
+ }
371
316
  `
372
317
  });
373
318
  this.domainTypes = response.data?.domainTypes || ['domain'];
@@ -1 +1 @@
1
- {"version":3,"file":"domain-management.js","sourceRoot":"","sources":["../../../client/pages/domain/domain-management.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport '@operato/data-grist/ox-grist.js'\nimport '@operato/data-grist/ox-filters-form.js'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport '@operato/attribute/ox-attribute-view.js'\nimport '../../components/create-domain-popup.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { DataGrist } from '@operato/data-grist/ox-grist.js'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonHeaderStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { p13n } from '@operato/p13n'\nimport { FetchOption } from '@operato/data-grist'\n\n@customElement('domain-management')\nexport class DomainManagement extends connect(store)(p13n(localize(i18next)(PageView))) {\n static styles = [\n CommonGristStyles,\n CommonHeaderStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n `\n ]\n\n @property({ type: Boolean }) active: boolean = false\n @property({ type: Object }) config: any\n @property({ type: String }) mode: 'CARD' | 'LIST' | 'GRID' = isMobileDevice() ? 'CARD' : 'GRID'\n\n private domainTypes?: string[]\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('text.domain management'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n actions: [\n {\n title: i18next.t('button.add'),\n action: this.onCreateDomain.bind(this),\n icon: 'add'\n },\n {\n title: i18next.t('button.save'),\n action: this.onUpdateDomains.bind(this),\n icon: 'save'\n }\n ],\n toolbar: false\n }\n }\n\n render() {\n return html`\n <ox-grist\n .mode=${this.mode}\n .config=${this.config}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}\n >\n <div slot=\"headroom\" class=\"header\">\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n `\n }\n\n async pageInitialized() {\n this.config = {\n rows: {\n appendable: false\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'assignment',\n title: i18next.t('title.open attributes view'),\n handlers: {\n click: async (columns, data, column, record, rowIndex) => {\n const attributeSet = await this.getAttributeSetForDomain()\n\n openPopup(\n html`\n <ox-attribute-view\n .attributeSet=${attributeSet}\n .value=${record.attributes}\n style=\"background-color: white;\"\n ></ox-attribute-view>\n `,\n {\n backdrop: true,\n size: 'large',\n title: record.name + ' ' + i18next.t('title.attributes')\n }\n )\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'domain',\n title: i18next.t('title.move to this domain'),\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record.id) {\n const subdomain = record.subdomain\n const extType = record.extType || 'domain'\n location.pathname = `/${extType}/${subdomain}/users`\n }\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'search',\n sortable: true,\n width: 200\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n record: {\n editable: true\n },\n filter: 'search',\n width: 200\n },\n {\n type: 'string',\n name: 'subdomain',\n header: i18next.t('field.subdomain'),\n record: {\n editable: false\n },\n filter: 'search',\n width: 200\n },\n {\n type: 'resource-object',\n name: 'parent',\n header: i18next.t('field.parent-domain'),\n record: {\n editable: true,\n options: {\n title: i18next.t('text.select domain'),\n queryName: 'domains',\n nameField: 'name',\n descriptionField: 'description',\n select: [\n { name: 'id', hidden: true },\n { name: 'name', header: i18next.t('field.name'), filter: 'search' },\n { name: 'description', header: i18next.t('field.description'), filter: 'search' }\n ],\n list: { fields: ['name', 'description'] }\n }\n },\n width: 140\n },\n {\n type: 'resource-object',\n name: 'ownerUser',\n header: i18next.t('field.owner-user'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup user'),\n queryName: 'users',\n nameField: 'name',\n descriptionField: 'email',\n select: [\n { name: 'id', hidden: true },\n { name: 'name', header: i18next.t('field.name'), filter: 'search' },\n { name: 'email', header: i18next.t('field.email'), filter: 'search' }\n ],\n filters: [{ name: 'userType', operator: 'eq', value: 'user' }],\n list: { fields: ['name', 'email'] }\n }\n },\n width: 140\n },\n {\n type: 'select',\n name: 'extType',\n header: i18next.t('field.type'),\n record: {\n editable: true,\n options: async () => {\n return ['', ...(await this.getDomainTypes())]\n }\n },\n width: 100\n },\n {\n type: 'timezone',\n name: 'timezone',\n header: i18next.t('field.timezone'),\n record: {\n editable: true\n },\n width: 120\n },\n {\n type: 'attributes',\n name: 'attributes',\n header: i18next.t('field.attributes'),\n record: {\n editable: true,\n options: async () => {\n return {\n objectified: true,\n attributeSet: await this.getAttributeSetForDomain()\n }\n }\n },\n width: 120\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n width: 180\n }\n ]\n }\n }\n\n async pageUpdated(changes, lifecycle) {\n if (this.active) {\n await this.updateComplete\n\n this.grist.fetch()\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n domains(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n subdomain\n parent {\n id\n name\n }\n ownerUser {\n id\n name\n email\n }\n extType\n timezone\n attributes\n updatedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.domains.total || 0,\n records: response.data.domains.items || []\n }\n }\n\n async onUpdateDomains() {\n let patches = this.grist.dirtyRecords\n\n if (patches && patches.length) {\n patches = patches.map(domain => {\n let patchField = domain.id ? { id: domain.id } : {}\n const dirtyFields = domain.__dirtyfields__\n for (let key in dirtyFields) {\n if (key == 'ownerUser') {\n const ownerUser = dirtyFields[key].after\n patchField['owner'] = ownerUser.id || ''\n } else {\n patchField[key] = dirtyFields[key].after\n }\n }\n\n return {\n ...patchField\n }\n })\n\n const response = await client.mutate({\n mutation: gql`\n mutation updateDomains($patches: [DomainPatch!]!) {\n updateDomains(patches: $patches)\n }\n `,\n variables: { patches }\n })\n\n if (!response.errors) {\n this.grist.fetch()\n return this.showToast(i18next.t('text.updated_successfully'))\n }\n }\n }\n\n async onCreateDomain() {\n openPopup(\n html`\n <create-domain-popup\n @fetch-data=${async () => {\n this.grist.fetch()\n }}\n ></create-domain-popup>\n `,\n {\n size: 'small',\n title: `${i18next.t('title.create_domain')}`\n }\n )\n }\n\n async getAttributeSetForDomain() {\n const response = await client.query({\n query: gql`\n query {\n attributeSet: attributeSetByEntity(entity: \"Domain\") {\n entity\n description\n items {\n name\n description\n tag\n type\n active\n hidden\n options\n }\n }\n }\n `\n })\n\n return response.data?.attributeSet || {}\n }\n\n async getDomainTypes() {\n if (!this.domainTypes) {\n const response = await client.query({\n query: gql`\n query {\n domainTypes\n }\n `\n })\n\n this.domainTypes = response.data?.domainTypes || ['domain']\n }\n\n return this.domainTypes || []\n }\n\n showToast(message) {\n document.dispatchEvent(new CustomEvent('notify', { detail: { message } }))\n }\n}\n"]}
1
+ {"version":3,"file":"domain-management.js","sourceRoot":"","sources":["../../../client/pages/domain/domain-management.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport '@operato/data-grist/ox-grist.js'\nimport '@operato/data-grist/ox-filters-form.js'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport '@operato/attribute/ox-attribute-view.js'\nimport '../../components/create-domain-popup.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { DataGrist } from '@operato/data-grist/ox-grist.js'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView } from '@operato/shell'\nimport { CommonHeaderStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice } from '@operato/utils'\nimport { p13n } from '@operato/p13n'\nimport { FetchOption } from '@operato/data-grist'\n\n@customElement('domain-management')\nexport class DomainManagement extends p13n(localize(i18next)(PageView)) { static styles = [\n CommonGristStyles,\n CommonHeaderStyles,\n ScrollbarStyles,\n css`\n :host { display: flex;\n flex-direction: column;\n\n overflow: hidden;\n }\n\n ox-grist { overflow-y: auto;\n flex: 1;\n }\n `\n ]\n\n @property({ type: Boolean }) active: boolean = false\n @property({ type: Object }) config: any\n @property({ type: String }) mode: 'CARD' | 'LIST' | 'GRID' = isMobileDevice() ? 'CARD' : 'GRID'\n\n private domainTypes?: string[]\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() { return { title: i18next.t('text.domain management'),\n search: { handler: (search: string) => { this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: { handler: () => { this.grist.toggleHeadroom()\n }\n },\n actions: [\n { title: i18next.t('button.add'),\n action: this.onCreateDomain.bind(this),\n icon: 'add'\n },\n { title: i18next.t('button.save'),\n action: this.onUpdateDomains.bind(this),\n icon: 'save'\n }\n ],\n toolbar: false\n }\n }\n\n render() { return html`\n <ox-grist\n .mode=${this.mode}\n .config=${this.config}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}\n >\n <div slot=\"headroom\" class=\"header\">\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n `\n }\n\n async pageInitialized() { this.config = { rows: { appendable: false\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter',\n gutterName: 'button',\n icon: 'assignment',\n title: i18next.t('title.open attributes view'),\n handlers: { click: async (columns, data, column, record, rowIndex) => { const attributeSet = await this.getAttributeSetForDomain()\n\n openPopup(\n html`\n <ox-attribute-view\n .attributeSet=${attributeSet}\n .value=${record.attributes}\n style=\"background-color: white;\"\n ></ox-attribute-view>\n `,\n { backdrop: true,\n size: 'large',\n title: record.name + ' ' + i18next.t('title.attributes')\n }\n )\n }\n }\n },\n { type: 'gutter',\n gutterName: 'button',\n icon: 'domain',\n title: i18next.t('title.move to this domain'),\n handlers: { click: (_columns, _data, _column, record, _rowIndex) => { if (record.id) { const subdomain = record.subdomain\n const extType = record.extType || 'domain'\n location.pathname = `/${extType}/${subdomain}/users`\n }\n }\n }\n },\n { type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: { editable: false\n },\n filter: 'search',\n sortable: true,\n width: 200\n },\n { type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n record: { editable: true\n },\n filter: 'search',\n width: 200\n },\n { type: 'string',\n name: 'subdomain',\n header: i18next.t('field.subdomain'),\n record: { editable: false\n },\n filter: 'search',\n width: 200\n },\n { type: 'resource-object',\n name: 'parent',\n header: i18next.t('field.parent-domain'),\n record: { editable: true,\n options: { title: i18next.t('text.select domain'),\n queryName: 'domains',\n nameField: 'name',\n descriptionField: 'description',\n select: [\n { name: 'id', hidden: true },\n { name: 'name', header: i18next.t('field.name'), filter: 'search' },\n { name: 'description', header: i18next.t('field.description'), filter: 'search' }\n ],\n list: { fields: ['name', 'description'] }\n }\n },\n width: 140\n },\n { type: 'resource-object',\n name: 'ownerUser',\n header: i18next.t('field.owner-user'),\n record: { editable: true,\n options: { title: i18next.t('title.lookup user'),\n queryName: 'users',\n nameField: 'name',\n descriptionField: 'email',\n select: [\n { name: 'id', hidden: true },\n { name: 'name', header: i18next.t('field.name'), filter: 'search' },\n { name: 'email', header: i18next.t('field.email'), filter: 'search' }\n ],\n filters: [{ name: 'userType', operator: 'eq', value: 'user' }],\n list: { fields: ['name', 'email'] }\n }\n },\n width: 140\n },\n { type: 'select',\n name: 'extType',\n header: i18next.t('field.type'),\n record: { editable: true,\n options: async () => { return ['', ...(await this.getDomainTypes())]\n }\n },\n width: 100\n },\n { type: 'timezone',\n name: 'timezone',\n header: i18next.t('field.timezone'),\n record: { editable: true\n },\n width: 120\n },\n { type: 'attributes',\n name: 'attributes',\n header: i18next.t('field.attributes'),\n record: { editable: true,\n options: async () => { return { objectified: true,\n attributeSet: await this.getAttributeSetForDomain()\n }\n }\n },\n width: 120\n },\n { type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n width: 180\n }\n ]\n }\n }\n\n async pageUpdated(changes, lifecycle) { if (this.active) { await this.updateComplete\n\n this.grist.fetch()\n }\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) { const response = await client.query({ query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) { domains(filters: $filters, pagination: $pagination, sortings: $sortings) { items { id\n name\n description\n subdomain\n parent { id\n name\n }\n ownerUser { id\n name\n email\n }\n extType\n timezone\n attributes\n updatedAt\n }\n total\n }\n }\n `,\n variables: { filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return { total: response.data.domains.total || 0,\n records: response.data.domains.items || []\n }\n }\n\n async onUpdateDomains() { let patches = this.grist.dirtyRecords\n\n if (patches && patches.length) { patches = patches.map(domain => { let patchField = domain.id ? { id: domain.id } : {}\n const dirtyFields = domain.__dirtyfields__\n for (let key in dirtyFields) { if (key == 'ownerUser') { const ownerUser = dirtyFields[key].after\n patchField['owner'] = ownerUser.id || ''\n } else { patchField[key] = dirtyFields[key].after\n }\n }\n\n return { ...patchField\n }\n })\n\n const response = await client.mutate({ mutation: gql`\n mutation updateDomains($patches: [DomainPatch!]!) { updateDomains(patches: $patches)\n }\n `,\n variables: { patches }\n })\n\n if (!response.errors) { this.grist.fetch()\n return this.showToast(i18next.t('text.updated_successfully'))\n }\n }\n }\n\n async onCreateDomain() { openPopup(\n html`\n <create-domain-popup\n @fetch-data=${async () => { this.grist.fetch()\n }}\n ></create-domain-popup>\n `,\n { size: 'small',\n title: `${i18next.t('title.create_domain')}`\n }\n )\n }\n\n async getAttributeSetForDomain() { const response = await client.query({ query: gql`\n query { attributeSet: attributeSetByEntity(entity: \"Domain\") { entity\n description\n items { name\n description\n tag\n type\n active\n hidden\n options\n }\n }\n }\n `\n })\n\n return response.data?.attributeSet || {}\n }\n\n async getDomainTypes() { if (!this.domainTypes) { const response = await client.query({ query: gql`\n query { domainTypes\n }\n `\n })\n\n this.domainTypes = response.data?.domainTypes || ['domain']\n }\n\n return this.domainTypes || []\n }\n\n showToast(message) { document.dispatchEvent(new CustomEvent('notify', { detail: { message } }))\n }\n}\n"]}
@@ -5,13 +5,7 @@ import '@operato/data-grist/ox-filters-form.js';
5
5
  import '@operato/data-grist/ox-record-creator.js';
6
6
  import { PageView } from '@operato/shell';
7
7
  import { FetchOption } from '@operato/data-grist';
8
- declare const DomainLinkLManagement_base: (new (...args: any[]) => {
9
- _storeUnsubscribe: import("redux").Unsubscribe;
10
- connectedCallback(): void;
11
- disconnectedCallback(): void;
12
- stateChanged(_state: unknown): void;
13
- readonly isConnected: boolean;
14
- }) & (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
8
+ declare const DomainLinkLManagement_base: (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
15
9
  export declare class DomainLinkLManagement extends DomainLinkLManagement_base {
16
10
  static styles: import("lit").CSSResult[];
17
11
  gristConfig: any;