@things-factory/personalization 7.0.1-alpha.63 → 7.0.1-alpha.64

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 (51) hide show
  1. package/client/grid-preference-editor.ts +8 -8
  2. package/client/index.ts +2 -0
  3. package/client/page-preference-provider-impl.ts +63 -0
  4. package/client/types.ts +8 -0
  5. package/dist-client/grid-preference-editor.d.ts +1 -1
  6. package/dist-client/grid-preference-editor.js +8 -8
  7. package/dist-client/grid-preference-editor.js.map +1 -1
  8. package/dist-client/index.d.ts +2 -0
  9. package/dist-client/index.js +2 -1
  10. package/dist-client/index.js.map +1 -1
  11. package/dist-client/page-preference-provider-impl.d.ts +17 -0
  12. package/dist-client/page-preference-provider-impl.js +52 -0
  13. package/dist-client/page-preference-provider-impl.js.map +1 -0
  14. package/dist-client/tsconfig.tsbuildinfo +1 -1
  15. package/dist-client/types.d.ts +15 -0
  16. package/dist-client/types.js +2 -0
  17. package/dist-client/types.js.map +1 -0
  18. package/dist-server/service/index.js +4 -4
  19. package/dist-server/service/index.js.map +1 -1
  20. package/dist-server/service/page-preference/index.js +9 -0
  21. package/dist-server/service/page-preference/index.js.map +1 -0
  22. package/dist-server/service/{screen-preference/screen-preference-mutation.js → page-preference/page-preference-mutation.js} +39 -39
  23. package/dist-server/service/page-preference/page-preference-mutation.js.map +1 -0
  24. package/dist-server/service/page-preference/page-preference-query.js +94 -0
  25. package/dist-server/service/page-preference/page-preference-query.js.map +1 -0
  26. package/dist-server/service/{screen-preference/screen-preference-type.js → page-preference/page-preference-type.js} +28 -28
  27. package/dist-server/service/page-preference/page-preference-type.js.map +1 -0
  28. package/dist-server/service/{screen-preference/screen-preference.js → page-preference/page-preference.js} +30 -30
  29. package/dist-server/service/page-preference/page-preference.js.map +1 -0
  30. package/dist-server/tsconfig.tsbuildinfo +1 -1
  31. package/helps/personalization/screen-preference.md +1 -1
  32. package/package.json +4 -4
  33. package/server/service/index.ts +4 -4
  34. package/server/service/page-preference/index.ts +6 -0
  35. package/server/service/page-preference/page-preference-mutation.ts +101 -0
  36. package/server/service/page-preference/page-preference-query.ts +61 -0
  37. package/server/service/{screen-preference/screen-preference-type.ts → page-preference/page-preference-type.ts} +8 -8
  38. package/server/service/{screen-preference/screen-preference.ts → page-preference/page-preference.ts} +13 -13
  39. package/dist-server/migrations/index.js +0 -12
  40. package/dist-server/migrations/index.js.map +0 -1
  41. package/dist-server/service/screen-preference/index.js +0 -9
  42. package/dist-server/service/screen-preference/index.js.map +0 -1
  43. package/dist-server/service/screen-preference/screen-preference-mutation.js.map +0 -1
  44. package/dist-server/service/screen-preference/screen-preference-query.js +0 -94
  45. package/dist-server/service/screen-preference/screen-preference-query.js.map +0 -1
  46. package/dist-server/service/screen-preference/screen-preference-type.js.map +0 -1
  47. package/dist-server/service/screen-preference/screen-preference.js.map +0 -1
  48. package/server/migrations/index.ts +0 -9
  49. package/server/service/screen-preference/index.ts +0 -6
  50. package/server/service/screen-preference/screen-preference-mutation.ts +0 -101
  51. package/server/service/screen-preference/screen-preference-query.ts +0 -61
@@ -73,7 +73,7 @@ export class GridPreferenceEditor extends localize(i18next)(LitElement) {
73
73
  ]
74
74
 
75
75
  @property({ type: Object }) target!: DataGrist
76
- @property({ type: String }) route!: string
76
+ @property({ type: String }) page!: string
77
77
 
78
78
  @query('ox-grist') private grist!: DataGrist
79
79
 
@@ -85,7 +85,7 @@ export class GridPreferenceEditor extends localize(i18next)(LitElement) {
85
85
  rows: { selectable: false, appendable: false },
86
86
  pagination: { infinite: true },
87
87
  list: {
88
- fields: ['route', 'element'],
88
+ fields: ['page', 'element'],
89
89
  details: ['active', 'updatedAt']
90
90
  },
91
91
  columns: [
@@ -166,14 +166,14 @@ export class GridPreferenceEditor extends localize(i18next)(LitElement) {
166
166
 
167
167
  const response = await client.query({
168
168
  query: gql`
169
- mutation ($route: String!, $element: String!) {
170
- deleteMyScreenPreference(route: $route, element: $element) {
169
+ mutation ($page: String!, $element: String!) {
170
+ deleteMyPagePreference(page: $page, element: $element) {
171
171
  id
172
172
  }
173
173
  }
174
174
  `,
175
175
  variables: {
176
- route: this.route,
176
+ page: this.page,
177
177
  element
178
178
  }
179
179
  })
@@ -216,14 +216,14 @@ export class GridPreferenceEditor extends localize(i18next)(LitElement) {
216
216
 
217
217
  const response = await client.query({
218
218
  query: gql`
219
- mutation ($route: String!, $element: String!, $preference: Object!) {
220
- updateMyScreenPreference(route: $route, element: $element, preference: $preference) {
219
+ mutation ($page: String!, $element: String!, $preference: Object!) {
220
+ updateMyPagePreference(page: $page, element: $element, preference: $preference) {
221
221
  id
222
222
  }
223
223
  }
224
224
  `,
225
225
  variables: {
226
- route: this.route,
226
+ page: this.page,
227
227
  element,
228
228
  preference
229
229
  }
package/client/index.ts CHANGED
@@ -0,0 +1,2 @@
1
+ export * from './types.js'
2
+ export * from './page-preference-provider-impl.js'
@@ -0,0 +1,63 @@
1
+ import gql from 'graphql-tag'
2
+ import { client } from '@operato/graphql'
3
+ import { i18next } from '@operato/i18n'
4
+
5
+ import { PagePreferenceProvider } from './types'
6
+
7
+ export class PagePreferenceProviderImpl implements PagePreferenceProvider {
8
+ public page?: string
9
+ public element?: string
10
+ public preference?: { [key: string]: any }
11
+
12
+ constructor(page: string, element: string, preference?: { [key: string]: any }) {
13
+ this.page = page
14
+ this.element = element
15
+ this.preference = preference
16
+ }
17
+
18
+ async load(): Promise<{ [key: string]: any } | undefined> {
19
+ const response = await client.query({
20
+ query: gql`
21
+ query ($page: String!, $element: String!) {
22
+ myPagePreference(page: $page, element: $element) {
23
+ preference
24
+ }
25
+ }
26
+ `,
27
+ variables: {
28
+ page: this.page,
29
+ element: this.element
30
+ }
31
+ })
32
+
33
+ if (!response.errors) {
34
+ this.preference = response.data.myPagePreference?.preference || {}
35
+ return this.preference
36
+ }
37
+ }
38
+
39
+ async save(preference: { [key: string]: any }): Promise<void> {
40
+ const response = await client.mutate({
41
+ mutation: gql`
42
+ mutation ($page: String!, $element: String!, $preference: Object!) {
43
+ updateMyPagePreference(page: $page, element: $element, preference: $preference) {
44
+ preference
45
+ }
46
+ }
47
+ `,
48
+ variables: {
49
+ page: this.page,
50
+ element: this.element,
51
+ preference
52
+ }
53
+ })
54
+
55
+ if (!response.errors) {
56
+ document.dispatchEvent(
57
+ new CustomEvent('notify', {
58
+ detail: { message: i18next.t('text.updated_successfully'), option: { timer: 3000 } }
59
+ })
60
+ )
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,8 @@
1
+ export interface PagePreferenceProvider {
2
+ page?: string
3
+ element?: string
4
+ preference?: { [key: string]: any }
5
+
6
+ load: () => { [key: string]: any } | undefined | Promise<{ [key: string]: any } | undefined>
7
+ save: (preference: { [key: string]: any }) => void | Promise<void>
8
+ }
@@ -5,7 +5,7 @@ declare const GridPreferenceEditor_base: (new (...args: any[]) => LitElement) &
5
5
  export declare class GridPreferenceEditor extends GridPreferenceEditor_base {
6
6
  static styles: import("lit").CSSResult[];
7
7
  target: DataGrist;
8
- route: string;
8
+ page: string;
9
9
  private grist;
10
10
  private gridConfig;
11
11
  connectedCallback(): Promise<void>;
@@ -14,7 +14,7 @@ let GridPreferenceEditor = class GridPreferenceEditor extends localize(i18next)(
14
14
  rows: { selectable: false, appendable: false },
15
15
  pagination: { infinite: true },
16
16
  list: {
17
- fields: ['route', 'element'],
17
+ fields: ['page', 'element'],
18
18
  details: ['active', 'updatedAt']
19
19
  },
20
20
  columns: [
@@ -87,14 +87,14 @@ let GridPreferenceEditor = class GridPreferenceEditor extends localize(i18next)(
87
87
  const element = this.target.id;
88
88
  const response = await client.query({
89
89
  query: gql `
90
- mutation ($route: String!, $element: String!) {
91
- deleteMyScreenPreference(route: $route, element: $element) {
90
+ mutation ($page: String!, $element: String!) {
91
+ deleteMyPagePreference(page: $page, element: $element) {
92
92
  id
93
93
  }
94
94
  }
95
95
  `,
96
96
  variables: {
97
- route: this.route,
97
+ page: this.page,
98
98
  element
99
99
  }
100
100
  });
@@ -127,14 +127,14 @@ let GridPreferenceEditor = class GridPreferenceEditor extends localize(i18next)(
127
127
  });
128
128
  const response = await client.query({
129
129
  query: gql `
130
- mutation ($route: String!, $element: String!, $preference: Object!) {
131
- updateMyScreenPreference(route: $route, element: $element, preference: $preference) {
130
+ mutation ($page: String!, $element: String!, $preference: Object!) {
131
+ updateMyPagePreference(page: $page, element: $element, preference: $preference) {
132
132
  id
133
133
  }
134
134
  }
135
135
  `,
136
136
  variables: {
137
- route: this.route,
137
+ page: this.page,
138
138
  element,
139
139
  preference
140
140
  }
@@ -214,7 +214,7 @@ __decorate([
214
214
  __decorate([
215
215
  property({ type: String }),
216
216
  __metadata("design:type", String)
217
- ], GridPreferenceEditor.prototype, "route", void 0);
217
+ ], GridPreferenceEditor.prototype, "page", void 0);
218
218
  __decorate([
219
219
  query('ox-grist'),
220
220
  __metadata("design:type", DataGrist)
@@ -1 +1 @@
1
- {"version":3,"file":"grid-preference-editor.js","sourceRoot":"","sources":["../client/grid-preference-editor.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAGpF,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAqErE,KAAK,CAAC,iBAAiB;QACrB,eAAe;QACf,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;YAC9C,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9B,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;aACjC;YACD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;gBAC1C;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC/B,MAAM,EAAE;wBACN,KAAK,EAAE,MAAM;qBACd;oBACD,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,GAAG;iBACX;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;oBAC/B,MAAM,EAAE;wBACN,KAAK,EAAE,MAAM;qBACd;oBACD,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,GAAG;iBACX;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;oBACjC,MAAM,EAAE;wBACN,KAAK,EAAE,QAAQ;wBACf,QAAQ,EAAE,IAAI;qBACf;oBACD,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE;iBACV;aACF;SACF,CAAA;QAED,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAA;IACjC,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAA;;wCAEyB,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;;;2BAI1E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;;2BAEhF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;kCAChE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;uCACjB,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;;;;WAItD,CAAA;IACT,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAC/C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC7E,CAAA;QAED,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,CAAa;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;QAE9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;OAMT;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO;aACR;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,EAAE,CAAA;SACf;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,CAAa;QACvB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAa;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAA;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAA;QAEhD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;YAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;YAEtE,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAA;aAC7B;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;YAE/B,OAAO;gBACL,IAAI;gBACJ,MAAM;aACP,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;OAMT;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO;gBACP,UAAU;aACX;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAA;SAClD;IACH,CAAC;IAED,SAAS,CAAC,OAAO;QACf,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;;AAjOM,2BAAM,GAAG;IACd,eAAe;IACf,iBAAiB;IACjB,qBAAqB;IACrB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsDF;CACF,CAAA;AAED;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8BAAU,SAAS;oDAAA;AAC9C;IAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDAAe;AAE1C;IAAC,KAAK,CAAC,UAAU,CAAC;8BAAiB,SAAS;mDAAA;AAjEjC,oBAAoB;IADhC,aAAa,CAAC,wBAAwB,CAAC;GAC3B,oBAAoB,CAmOhC;SAnOY,oBAAoB","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { client } from '@operato/graphql'\nimport { DataGrist } from '@operato/data-grist'\nimport { ScrollbarStyles, CommonGristStyles, ButtonContainerStyles } from '@operato/styles'\n\n@customElement('grid-preference-editor')\nexport class GridPreferenceEditor extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n ButtonContainerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n }\n\n .container {\n flex: 1;\n display: grid;\n overflow: hidden;\n }\n\n .container_detail {\n background-color: var(--main-section-background-color);\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n }\n\n h2 {\n padding: var(--subtitle-padding);\n font: var(--subtitle-font);\n color: var(--subtitle-text-color);\n border-bottom: var(--subtitle-border-bottom);\n }\n\n .container_detail h2 {\n margin: var(--grist-title-margin);\n border: var(--grist-title-border);\n font: var(--grist-title-font);\n color: var(--secondary-color);\n }\n\n .container_detail h2 md-icon {\n --md-icon-size: var(--grist-title-icon-size);\n vertical-align: middle;\n margin: var(--grist-title-icon-margin);\n color: var(--grist-title-icon-color);\n }\n\n h2 {\n padding-bottom: var(--grist-title-with-grid-padding);\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n ox-filters-form {\n flex: 1;\n }\n `\n ]\n\n @property({ type: Object }) target!: DataGrist\n @property({ type: String }) route!: string\n\n @query('ox-grist') private grist!: DataGrist\n\n private gridConfig: any\n\n async connectedCallback() {\n // 메뉴 그룹 그리드 설정\n this.gridConfig = {\n rows: { selectable: false, appendable: false },\n pagination: { infinite: true },\n list: {\n fields: ['route', 'element'],\n details: ['active', 'updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n align: 'left'\n },\n hidden: true,\n filter: 'search',\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'header',\n header: i18next.t('field.name'),\n record: {\n align: 'left'\n },\n filter: 'search',\n width: 200\n },\n {\n type: 'checkbox',\n name: 'hidden',\n label: true,\n header: i18next.t('field.hidden'),\n record: {\n align: 'center',\n editable: true\n },\n filter: true,\n sortable: true,\n width: 60\n }\n ]\n }\n\n await super.connectedCallback()\n }\n\n /**\n * @description 라이프 사이클\n ***************************\n */\n render() {\n return html` <div id=\"container\" class=\"container\">\n <div class=\"container_detail\">\n <ox-grist mode=\"GRID\" .config=${this.gridConfig} .fetchHandler=${this.fetchColumns.bind(this)} auto-fetch>\n </ox-grist>\n\n <div class=\"button-container\" style=\"margin-left:unset\">\n <button @click=${this.reset.bind(this)}><md-icon>restart_alt</md-icon>${i18next.t('button.reset')}</button>\n <div filler></div>\n <button @click=${this.save.bind(this)}><md-icon>save</md-icon>${i18next.t('button.save')}</button>\n <button danger @click=${this.delete.bind(this)}>\n <md-icon>delete</md-icon>${i18next.t('button.delete')}\n </button>\n </div>\n </div>\n </div>`\n }\n\n async fetchColumns() {\n const columns = this.target.config.columns.filter(\n column => column.type != 'gutter' && column.name != 'id' && !column.unusable\n )\n\n return { total: 0, records: columns }\n }\n\n async delete(e: MouseEvent) {\n const element = this.target.id\n\n const response = await client.query({\n query: gql`\n mutation ($route: String!, $element: String!) {\n deleteMyScreenPreference(route: $route, element: $element) {\n id\n }\n }\n `,\n variables: {\n route: this.route,\n element\n }\n })\n\n if (!response.errors) {\n this.showToast(i18next.t('text.success to delete'))\n history.back()\n }\n }\n\n async reset(e: MouseEvent) {\n await this.grist.fetch()\n }\n\n async save(e: MouseEvent) {\n const element = this.target.id\n\n const dirties = this.grist.dirtyRecords\n const targetColumns = this.target.config.columns\n\n dirties.forEach(record => {\n const { name, hidden } = record\n const targetColumn = targetColumns.find(column => column.name == name)\n\n if (targetColumn) {\n targetColumn.hidden = hidden\n }\n })\n\n await this.target.requestUpdate()\n\n const preference = this.grist.data.records.map(record => {\n const { name, hidden } = record\n\n return {\n name,\n hidden\n }\n })\n\n const response = await client.query({\n query: gql`\n mutation ($route: String!, $element: String!, $preference: Object!) {\n updateMyScreenPreference(route: $route, element: $element, preference: $preference) {\n id\n }\n }\n `,\n variables: {\n route: this.route,\n element,\n preference\n }\n })\n\n if (!response.errors) {\n this.showToast(i18next.t('text.success to save'))\n }\n }\n\n showToast(message) {\n document.dispatchEvent(new CustomEvent('notify', { detail: { message } }))\n }\n}\n"]}
1
+ {"version":3,"file":"grid-preference-editor.js","sourceRoot":"","sources":["../client/grid-preference-editor.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { client } from '@operato/graphql'\nimport { DataGrist } from '@operato/data-grist'\nimport { ScrollbarStyles, CommonGristStyles, ButtonContainerStyles } from '@operato/styles'\n\n@customElement('grid-preference-editor')\nexport class GridPreferenceEditor extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n ButtonContainerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n }\n\n .container {\n flex: 1;\n display: grid;\n overflow: hidden;\n }\n\n .container_detail {\n background-color: var(--main-section-background-color);\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n }\n\n h2 {\n padding: var(--subtitle-padding);\n font: var(--subtitle-font);\n color: var(--subtitle-text-color);\n border-bottom: var(--subtitle-border-bottom);\n }\n\n .container_detail h2 {\n margin: var(--grist-title-margin);\n border: var(--grist-title-border);\n font: var(--grist-title-font);\n color: var(--secondary-color);\n }\n\n .container_detail h2 md-icon {\n --md-icon-size: var(--grist-title-icon-size);\n vertical-align: middle;\n margin: var(--grist-title-icon-margin);\n color: var(--grist-title-icon-color);\n }\n\n h2 {\n padding-bottom: var(--grist-title-with-grid-padding);\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n ox-filters-form {\n flex: 1;\n }\n `\n ]\n\n @property({ type: Object }) target!: DataGrist\n @property({ type: String }) page!: string\n\n @query('ox-grist') private grist!: DataGrist\n\n private gridConfig: any\n\n async connectedCallback() {\n // 메뉴 그룹 그리드 설정\n this.gridConfig = {\n rows: { selectable: false, appendable: false },\n pagination: { infinite: true },\n list: {\n fields: ['page', 'element'],\n details: ['active', 'updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n align: 'left'\n },\n hidden: true,\n filter: 'search',\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'header',\n header: i18next.t('field.name'),\n record: {\n align: 'left'\n },\n filter: 'search',\n width: 200\n },\n {\n type: 'checkbox',\n name: 'hidden',\n label: true,\n header: i18next.t('field.hidden'),\n record: {\n align: 'center',\n editable: true\n },\n filter: true,\n sortable: true,\n width: 60\n }\n ]\n }\n\n await super.connectedCallback()\n }\n\n /**\n * @description 라이프 사이클\n ***************************\n */\n render() {\n return html` <div id=\"container\" class=\"container\">\n <div class=\"container_detail\">\n <ox-grist mode=\"GRID\" .config=${this.gridConfig} .fetchHandler=${this.fetchColumns.bind(this)} auto-fetch>\n </ox-grist>\n\n <div class=\"button-container\" style=\"margin-left:unset\">\n <button @click=${this.reset.bind(this)}><md-icon>restart_alt</md-icon>${i18next.t('button.reset')}</button>\n <div filler></div>\n <button @click=${this.save.bind(this)}><md-icon>save</md-icon>${i18next.t('button.save')}</button>\n <button danger @click=${this.delete.bind(this)}>\n <md-icon>delete</md-icon>${i18next.t('button.delete')}\n </button>\n </div>\n </div>\n </div>`\n }\n\n async fetchColumns() {\n const columns = this.target.config.columns.filter(\n column => column.type != 'gutter' && column.name != 'id' && !column.unusable\n )\n\n return { total: 0, records: columns }\n }\n\n async delete(e: MouseEvent) {\n const element = this.target.id\n\n const response = await client.query({\n query: gql`\n mutation ($page: String!, $element: String!) {\n deleteMyPagePreference(page: $page, element: $element) {\n id\n }\n }\n `,\n variables: {\n page: this.page,\n element\n }\n })\n\n if (!response.errors) {\n this.showToast(i18next.t('text.success to delete'))\n history.back()\n }\n }\n\n async reset(e: MouseEvent) {\n await this.grist.fetch()\n }\n\n async save(e: MouseEvent) {\n const element = this.target.id\n\n const dirties = this.grist.dirtyRecords\n const targetColumns = this.target.config.columns\n\n dirties.forEach(record => {\n const { name, hidden } = record\n const targetColumn = targetColumns.find(column => column.name == name)\n\n if (targetColumn) {\n targetColumn.hidden = hidden\n }\n })\n\n await this.target.requestUpdate()\n\n const preference = this.grist.data.records.map(record => {\n const { name, hidden } = record\n\n return {\n name,\n hidden\n }\n })\n\n const response = await client.query({\n query: gql`\n mutation ($page: String!, $element: String!, $preference: Object!) {\n updateMyPagePreference(page: $page, element: $element, preference: $preference) {\n id\n }\n }\n `,\n variables: {\n page: this.page,\n element,\n preference\n }\n })\n\n if (!response.errors) {\n this.showToast(i18next.t('text.success to save'))\n }\n }\n\n showToast(message) {\n document.dispatchEvent(new CustomEvent('notify', { detail: { message } }))\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './types.js';
2
+ export * from './page-preference-provider-impl.js';
@@ -1,2 +1,3 @@
1
- "use strict";
1
+ export * from './types.js';
2
+ export * from './page-preference-provider-impl.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"","sourcesContent":[""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,oCAAoC,CAAA","sourcesContent":["export * from './types.js'\nexport * from './page-preference-provider-impl.js'\n"]}
@@ -0,0 +1,17 @@
1
+ import { PagePreferenceProvider } from './types';
2
+ export declare class PagePreferenceProviderImpl implements PagePreferenceProvider {
3
+ page?: string;
4
+ element?: string;
5
+ preference?: {
6
+ [key: string]: any;
7
+ };
8
+ constructor(page: string, element: string, preference?: {
9
+ [key: string]: any;
10
+ });
11
+ load(): Promise<{
12
+ [key: string]: any;
13
+ } | undefined>;
14
+ save(preference: {
15
+ [key: string]: any;
16
+ }): Promise<void>;
17
+ }
@@ -0,0 +1,52 @@
1
+ import gql from 'graphql-tag';
2
+ import { client } from '@operato/graphql';
3
+ import { i18next } from '@operato/i18n';
4
+ export class PagePreferenceProviderImpl {
5
+ constructor(page, element, preference) {
6
+ this.page = page;
7
+ this.element = element;
8
+ this.preference = preference;
9
+ }
10
+ async load() {
11
+ var _a;
12
+ const response = await client.query({
13
+ query: gql `
14
+ query ($page: String!, $element: String!) {
15
+ myPagePreference(page: $page, element: $element) {
16
+ preference
17
+ }
18
+ }
19
+ `,
20
+ variables: {
21
+ page: this.page,
22
+ element: this.element
23
+ }
24
+ });
25
+ if (!response.errors) {
26
+ this.preference = ((_a = response.data.myPagePreference) === null || _a === void 0 ? void 0 : _a.preference) || {};
27
+ return this.preference;
28
+ }
29
+ }
30
+ async save(preference) {
31
+ const response = await client.mutate({
32
+ mutation: gql `
33
+ mutation ($page: String!, $element: String!, $preference: Object!) {
34
+ updateMyPagePreference(page: $page, element: $element, preference: $preference) {
35
+ preference
36
+ }
37
+ }
38
+ `,
39
+ variables: {
40
+ page: this.page,
41
+ element: this.element,
42
+ preference
43
+ }
44
+ });
45
+ if (!response.errors) {
46
+ document.dispatchEvent(new CustomEvent('notify', {
47
+ detail: { message: i18next.t('text.updated_successfully'), option: { timer: 3000 } }
48
+ }));
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=page-preference-provider-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-preference-provider-impl.js","sourceRoot":"","sources":["../client/page-preference-provider-impl.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,MAAM,OAAO,0BAA0B;IAKrC,YAAY,IAAY,EAAE,OAAe,EAAE,UAAmC;QAC5E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;;QACR,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,GAAG,CAAA;;;;;;OAMT;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,0CAAE,UAAU,KAAI,EAAE,CAAA;YAClE,OAAO,IAAI,CAAC,UAAU,CAAA;SACvB;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAkC;QAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;OAMZ;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU;aACX;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACxB,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;aACrF,CAAC,CACH,CAAA;SACF;IACH,CAAC;CACF","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\nimport { i18next } from '@operato/i18n'\n\nimport { PagePreferenceProvider } from './types'\n\nexport class PagePreferenceProviderImpl implements PagePreferenceProvider {\n public page?: string\n public element?: string\n public preference?: { [key: string]: any }\n\n constructor(page: string, element: string, preference?: { [key: string]: any }) {\n this.page = page\n this.element = element\n this.preference = preference\n }\n\n async load(): Promise<{ [key: string]: any } | undefined> {\n const response = await client.query({\n query: gql`\n query ($page: String!, $element: String!) {\n myPagePreference(page: $page, element: $element) {\n preference\n }\n }\n `,\n variables: {\n page: this.page,\n element: this.element\n }\n })\n\n if (!response.errors) {\n this.preference = response.data.myPagePreference?.preference || {}\n return this.preference\n }\n }\n\n async save(preference: { [key: string]: any }): Promise<void> {\n const response = await client.mutate({\n mutation: gql`\n mutation ($page: String!, $element: String!, $preference: Object!) {\n updateMyPagePreference(page: $page, element: $element, preference: $preference) {\n preference\n }\n }\n `,\n variables: {\n page: this.page,\n element: this.element,\n preference\n }\n })\n\n if (!response.errors) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: { message: i18next.t('text.updated_successfully'), option: { timer: 3000 } }\n })\n )\n }\n }\n}\n"]}