@operato/app 1.0.0-alpha.21 → 1.0.0-alpha.24

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 (93) hide show
  1. package/CHANGELOG.md +28 -90
  2. package/dist/src/{grist → grist-editor}/index.d.ts +0 -0
  3. package/dist/src/grist-editor/index.js +21 -0
  4. package/dist/src/grist-editor/index.js.map +1 -0
  5. package/dist/src/grist-editor/ox-grist-editor-crontab.d.ts +8 -0
  6. package/dist/src/grist-editor/ox-grist-editor-crontab.js +50 -0
  7. package/dist/src/grist-editor/ox-grist-editor-crontab.js.map +1 -0
  8. package/dist/src/grist-editor/ox-grist-editor-json.d.ts +7 -0
  9. package/dist/src/grist-editor/ox-grist-editor-json.js +54 -0
  10. package/dist/src/grist-editor/ox-grist-editor-json.js.map +1 -0
  11. package/dist/src/grist-editor/ox-grist-editor-parameters.d.ts +12 -0
  12. package/dist/src/{grist/parameters-editor.js → grist-editor/ox-grist-editor-parameters.js} +16 -37
  13. package/dist/src/grist-editor/ox-grist-editor-parameters.js.map +1 -0
  14. package/dist/src/{grist/code-editor.d.ts → grist-editor/ox-grist-editor-resource-code.d.ts} +1 -1
  15. package/dist/src/{grist/code-editor.js → grist-editor/ox-grist-editor-resource-code.js} +6 -6
  16. package/dist/src/grist-editor/ox-grist-editor-resource-code.js.map +1 -0
  17. package/dist/src/grist-editor/ox-grist-editor-resource-id.d.ts +10 -0
  18. package/dist/src/{grist/id-input.js → grist-editor/ox-grist-editor-resource-id.js} +17 -66
  19. package/dist/src/grist-editor/ox-grist-editor-resource-id.js.map +1 -0
  20. package/dist/src/grist-editor/ox-grist-editor-resource-object.d.ts +11 -0
  21. package/dist/src/{grist/object-editor.js → grist-editor/ox-grist-editor-resource-object.js} +11 -62
  22. package/dist/src/grist-editor/ox-grist-editor-resource-object.js.map +1 -0
  23. package/dist/src/grist-editor/ox-grist-editor-value-map.d.ts +11 -0
  24. package/dist/src/grist-editor/ox-grist-editor-value-map.js +74 -0
  25. package/dist/src/grist-editor/ox-grist-editor-value-map.js.map +1 -0
  26. package/dist/src/grist-editor/ox-grist-renderer-resource-id.d.ts +2 -0
  27. package/dist/src/{grist/id-renderer.js → grist-editor/ox-grist-renderer-resource-id.js} +2 -2
  28. package/dist/src/grist-editor/ox-grist-renderer-resource-id.js.map +1 -0
  29. package/dist/src/{grist/parameters-editor-builder.d.ts → grist-editor/ox-parameters-builder.d.ts} +0 -0
  30. package/dist/src/{grist/parameters-editor-builder.js → grist-editor/ox-parameters-builder.js} +10 -10
  31. package/dist/src/grist-editor/ox-parameters-builder.js.map +1 -0
  32. package/dist/src/grist-editor/ox-popup-code-input.d.ts +12 -0
  33. package/dist/src/grist-editor/ox-popup-code-input.js +81 -0
  34. package/dist/src/grist-editor/ox-popup-code-input.js.map +1 -0
  35. package/dist/src/grist-editor/ox-popup-crontab-input.d.ts +11 -0
  36. package/dist/src/grist-editor/ox-popup-crontab-input.js +74 -0
  37. package/dist/src/grist-editor/ox-popup-crontab-input.js.map +1 -0
  38. package/dist/src/{grist/parameters-editor-popup.d.ts → grist-editor/ox-popup-parameters-builder.d.ts} +1 -1
  39. package/dist/src/{grist/parameters-editor-popup.js → grist-editor/ox-popup-parameters-builder.js} +15 -15
  40. package/dist/src/grist-editor/ox-popup-parameters-builder.js.map +1 -0
  41. package/dist/src/grist-editor/ox-popup-value-map-input.d.ts +12 -0
  42. package/dist/src/grist-editor/ox-popup-value-map-input.js +104 -0
  43. package/dist/src/grist-editor/ox-popup-value-map-input.js.map +1 -0
  44. package/dist/src/{grist/id-selector.d.ts → grist-editor/ox-selector-resource-id.d.ts} +1 -1
  45. package/dist/src/{grist/id-selector.js → grist-editor/ox-selector-resource-id.js} +15 -15
  46. package/dist/src/grist-editor/ox-selector-resource-id.js.map +1 -0
  47. package/dist/src/{grist/object-selector.d.ts → grist-editor/ox-selector-resource-object.d.ts} +1 -1
  48. package/dist/src/{grist/object-selector.js → grist-editor/ox-selector-resource-object.js} +20 -20
  49. package/dist/src/grist-editor/ox-selector-resource-object.js.map +1 -0
  50. package/dist/src/index.d.ts +3 -1
  51. package/dist/src/index.js +3 -1
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/input/index.d.ts +3 -0
  54. package/dist/src/input/index.js +4 -0
  55. package/dist/src/input/index.js.map +1 -0
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +28 -23
  58. package/src/grist-editor/index.ts +23 -0
  59. package/src/grist-editor/ox-grist-editor-crontab.ts +62 -0
  60. package/src/grist-editor/ox-grist-editor-json.ts +62 -0
  61. package/src/{grist/parameters-editor.ts → grist-editor/ox-grist-editor-parameters.ts} +13 -26
  62. package/src/{grist/code-editor.ts → grist-editor/ox-grist-editor-resource-code.ts} +2 -2
  63. package/src/grist-editor/ox-grist-editor-resource-id.ts +83 -0
  64. package/src/{grist/object-editor.ts → grist-editor/ox-grist-editor-resource-object.ts} +7 -46
  65. package/src/grist-editor/ox-grist-editor-value-map.ts +86 -0
  66. package/src/{grist/id-renderer.ts → grist-editor/ox-grist-renderer-resource-id.ts} +1 -1
  67. package/src/{grist/parameters-editor-builder.ts → grist-editor/ox-parameters-builder.ts} +4 -4
  68. package/src/grist-editor/ox-popup-code-input.ts +75 -0
  69. package/src/grist-editor/ox-popup-crontab-input.ts +74 -0
  70. package/src/{grist/parameters-editor-popup.ts → grist-editor/ox-popup-parameters-builder.ts} +5 -5
  71. package/src/grist-editor/ox-popup-value-map-input.ts +101 -0
  72. package/src/{grist/id-selector.ts → grist-editor/ox-selector-resource-id.ts} +2 -2
  73. package/src/{grist/object-selector.ts → grist-editor/ox-selector-resource-object.ts} +2 -2
  74. package/src/index.ts +3 -1
  75. package/src/input/index.ts +3 -0
  76. package/yarn-error.log +1 -1
  77. package/dist/src/grist/code-editor.js.map +0 -1
  78. package/dist/src/grist/id-input.d.ts +0 -19
  79. package/dist/src/grist/id-input.js.map +0 -1
  80. package/dist/src/grist/id-renderer.d.ts +0 -2
  81. package/dist/src/grist/id-renderer.js.map +0 -1
  82. package/dist/src/grist/id-selector.js.map +0 -1
  83. package/dist/src/grist/index.js +0 -11
  84. package/dist/src/grist/index.js.map +0 -1
  85. package/dist/src/grist/object-editor.d.ts +0 -18
  86. package/dist/src/grist/object-editor.js.map +0 -1
  87. package/dist/src/grist/object-selector.js.map +0 -1
  88. package/dist/src/grist/parameters-editor-builder.js.map +0 -1
  89. package/dist/src/grist/parameters-editor-popup.js.map +0 -1
  90. package/dist/src/grist/parameters-editor.d.ts +0 -19
  91. package/dist/src/grist/parameters-editor.js.map +0 -1
  92. package/src/grist/id-input.ts +0 -135
  93. package/src/grist/index.ts +0 -13
@@ -3,20 +3,20 @@ import { LitElement, css, html } from 'lit';
3
3
  import { customElement, property } from 'lit/decorators.js';
4
4
  import { ScrollbarStyles } from '@operato/styles';
5
5
  import { i18next } from '@operato/i18n';
6
- let ParametersEditorPopup = class ParametersEditorPopup extends LitElement {
6
+ let OxPopupParametersBuilder = class OxPopupParametersBuilder extends LitElement {
7
7
  render() {
8
8
  var props = this.props instanceof Array ? this.props : [];
9
9
  return html `
10
10
  ${props.length > 0
11
11
  ? html `
12
- <ox-parameters-editor-builder
12
+ <ox-parameters-builder
13
13
  .value=${this.value}
14
14
  .props=${props}
15
15
  .host=${this.host}
16
16
  .context=${this.context}
17
17
  @property-change=${this.onChange.bind(this)}
18
18
  >
19
- </ox-parameters-editor-builder>
19
+ </ox-parameters-builder>
20
20
  `
21
21
  : html ` <span><i18n-msg msgid="text.no properties to set"></i18n-msg></span> `}
22
22
 
@@ -55,7 +55,7 @@ let ParametersEditorPopup = class ParametersEditorPopup extends LitElement {
55
55
  history.back();
56
56
  }
57
57
  };
58
- ParametersEditorPopup.styles = [
58
+ OxPopupParametersBuilder.styles = [
59
59
  ScrollbarStyles,
60
60
  css `
61
61
  :host {
@@ -68,7 +68,7 @@ ParametersEditorPopup.styles = [
68
68
  height: var(--overlay-center-normal-height, 50%);
69
69
  }
70
70
 
71
- ox-parameters-editor-builder {
71
+ ox-parameters-builder {
72
72
  flex: 1;
73
73
  overflow-y: auto;
74
74
  }
@@ -91,21 +91,21 @@ ParametersEditorPopup.styles = [
91
91
  ];
92
92
  __decorate([
93
93
  property({ type: Object })
94
- ], ParametersEditorPopup.prototype, "value", void 0);
94
+ ], OxPopupParametersBuilder.prototype, "value", void 0);
95
95
  __decorate([
96
96
  property({ type: Object })
97
- ], ParametersEditorPopup.prototype, "props", void 0);
97
+ ], OxPopupParametersBuilder.prototype, "props", void 0);
98
98
  __decorate([
99
99
  property({ type: Object })
100
- ], ParametersEditorPopup.prototype, "host", void 0);
100
+ ], OxPopupParametersBuilder.prototype, "host", void 0);
101
101
  __decorate([
102
102
  property({ type: Object })
103
- ], ParametersEditorPopup.prototype, "context", void 0);
103
+ ], OxPopupParametersBuilder.prototype, "context", void 0);
104
104
  __decorate([
105
105
  property({ type: Object })
106
- ], ParametersEditorPopup.prototype, "confirmCallback", void 0);
107
- ParametersEditorPopup = __decorate([
108
- customElement('ox-parameters-editor-popup')
109
- ], ParametersEditorPopup);
110
- export { ParametersEditorPopup };
111
- //# sourceMappingURL=parameters-editor-popup.js.map
106
+ ], OxPopupParametersBuilder.prototype, "confirmCallback", void 0);
107
+ OxPopupParametersBuilder = __decorate([
108
+ customElement('ox-popup-parameters-builder')
109
+ ], OxPopupParametersBuilder);
110
+ export { OxPopupParametersBuilder };
111
+ //# sourceMappingURL=ox-popup-parameters-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-popup-parameters-builder.js","sourceRoot":"","sources":["../../../src/grist-editor/ox-popup-parameters-builder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,UAAU;IA0CtD,MAAM;QACJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAEzD,OAAO,IAAI,CAAA;QACP,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,IAAI,CAAA;;uBAES,IAAI,CAAC,KAAK;uBACV,KAAK;sBACN,IAAI,CAAC,IAAI;yBACN,IAAI,CAAC,OAAO;iCACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;WAG9C;YACH,CAAC,CAAC,IAAI,CAAA,wEAAwE;;;6BAGzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;6BACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;;KAEhF,CAAA;IACH,CAAC;IAEO,QAAQ,CAAC,CAAc;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB;;;;;;;;;;UAUE;QACF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;SAChB;QAED,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SACvB;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAEO,QAAQ,CAAC,CAAQ;QACvB,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;CACF,CAAA;AAjGQ,+BAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BF;CACF,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDAAW;AACV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDAAW;AACV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDAAU;AACT;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDAAa;AACZ;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEAAwC;AAxCxD,wBAAwB;IADpC,aAAa,CAAC,6BAA6B,CAAC;GAChC,wBAAwB,CAkGpC;SAlGY,wBAAwB","sourcesContent":["import { LitElement, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ScrollbarStyles } from '@operato/styles'\nimport { i18next } from '@operato/i18n'\n\n@customElement('ox-popup-parameters-builder')\nexport class OxPopupParametersBuilder extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n\n width: var(--overlay-center-normal-width, 50%);\n height: var(--overlay-center-normal-height, 50%);\n }\n\n ox-parameters-builder {\n flex: 1;\n overflow-y: auto;\n }\n\n span {\n flex: 1;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n color: var(--primary-color);\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n }\n `\n ]\n\n @property({ type: Object }) value: any\n @property({ type: Object }) props: any\n @property({ type: Object }) host: any\n @property({ type: Object }) context: any\n @property({ type: Object }) confirmCallback!: (newval: any) => void\n\n render() {\n var props = this.props instanceof Array ? this.props : []\n\n return html`\n ${props.length > 0\n ? html`\n <ox-parameters-builder\n .value=${this.value}\n .props=${props}\n .host=${this.host}\n .context=${this.context}\n @property-change=${this.onChange.bind(this)}\n >\n </ox-parameters-builder>\n `\n : html` <span><i18n-msg msgid=\"text.no properties to set\"></i18n-msg></span> `}\n\n <div class=\"button-container\">\n <mwc-button @click=${this.onCancel.bind(this)}>${i18next.t('button.cancel')}</mwc-button>\n <mwc-button @click=${this.onConfirm.bind(this)}>${i18next.t('button.confirm')}</mwc-button>\n </div>\n `\n }\n\n private onChange(e: CustomEvent) {\n e.stopPropagation()\n\n /* \n 주의 : 이 팝업 템플릿은 layout 모듈에 의해서 render 되므로, \n layout의 구성에 변화가 발생하면, 다시 render된다.\n 이 팝업이 떠 있는 상태에서, 또 다른 팝업이 뜨는 경우도 layout 구성의 변화를 야기한다. (overlay의 갯수의 증가)\n 이 경우 value, options, confirmCallback 등 클로져를 사용한 것들이 초기 바인딩된 값으로 다시 바인딩되게 되는데,\n 만약, 템플릿 내부에서 이들 속성의 레퍼런스가 변화했다면, 원래 상태로 되돌아가는 현상이 발생하게 된다.\n 따라서, 가급적 이들 속성의 레퍼런스를 변화시키지 않는 것이 좋다.\n (이 팝업 클래스를 템플릿으로 사용한 곳의 코드를 참조하세요.)\n => \n 이런 이유로, Object.assign(...)을 사용하였다.\n */\n if (!this.value) {\n this.value = {}\n }\n\n for (let key in this.value) {\n delete this.value[key]\n }\n Object.assign(this.value, e.detail)\n }\n\n private onCancel(e: Event) {\n history.back()\n }\n\n private onConfirm(e: Event) {\n this.confirmCallback && this.confirmCallback(this.value)\n history.back()\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import '@operato/input/ox-input-value-map.js';
2
+ import { LitElement } from 'lit';
3
+ export declare class OxPopupValueMapInput extends LitElement {
4
+ static styles: import("lit").CSSResult[];
5
+ value: any;
6
+ valuetype: string;
7
+ confirmCallback: (newval: any) => void;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ private onChange;
10
+ private onCancel;
11
+ private onConfirm;
12
+ }
@@ -0,0 +1,104 @@
1
+ import { __decorate } from "tslib";
2
+ import '@operato/input/ox-input-value-map.js';
3
+ import { LitElement, css, html } from 'lit';
4
+ import { customElement, property } from 'lit/decorators.js';
5
+ import { ScrollbarStyles } from '@operato/styles';
6
+ import { i18next } from '@operato/i18n';
7
+ let OxPopupValueMapInput = class OxPopupValueMapInput extends LitElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.valuetype = 'string';
11
+ }
12
+ render() {
13
+ return html `
14
+ <ox-input-value-map
15
+ .value=${this.value}
16
+ keytype="string"
17
+ .valuetype=${this.valuetype}
18
+ @change=${this.onChange.bind(this)}
19
+ >
20
+ </ox-input-value-map>
21
+
22
+ <div class="button-container">
23
+ <mwc-button @click=${this.onCancel.bind(this)}>${i18next.t('button.cancel')}</mwc-button>
24
+ <mwc-button @click=${this.onConfirm.bind(this)}>${i18next.t('button.confirm')}</mwc-button>
25
+ </div>
26
+ `;
27
+ }
28
+ onChange(e) {
29
+ e.stopPropagation();
30
+ /*
31
+ 주의 : 이 팝업 템플릿은 layout 모듈에 의해서 render 되므로,
32
+ layout의 구성에 변화가 발생하면, 다시 render된다.
33
+ 이 팝업이 떠 있는 상태에서, 또 다른 팝업이 뜨는 경우도 layout 구성의 변화를 야기한다. (overlay의 갯수의 증가)
34
+ 이 경우 value, options, confirmCallback 등 클로져를 사용한 것들이 초기 바인딩된 값으로 다시 바인딩되게 되는데,
35
+ 만약, 템플릿 내부에서 이들 속성의 레퍼런스가 변화했다면, 원래 상태로 되돌아가는 현상이 발생하게 된다.
36
+ 따라서, 가급적 이들 속성의 레퍼런스를 변화시키지 않는 것이 좋다.
37
+ (이 팝업 클래스를 템플릿으로 사용한 곳의 코드를 참조하세요.)
38
+ =>
39
+ 이런 이유로, Object.assign(...)을 사용하였다.
40
+ */
41
+ if (!this.value) {
42
+ this.value = {};
43
+ }
44
+ for (let key in this.value) {
45
+ delete this.value[key];
46
+ }
47
+ Object.assign(this.value, e.detail);
48
+ }
49
+ onCancel(e) {
50
+ history.back();
51
+ }
52
+ onConfirm(e) {
53
+ this.confirmCallback && this.confirmCallback(this.value);
54
+ history.back();
55
+ }
56
+ };
57
+ OxPopupValueMapInput.styles = [
58
+ ScrollbarStyles,
59
+ css `
60
+ :host {
61
+ display: flex;
62
+ flex-direction: column;
63
+
64
+ background-color: #fff;
65
+
66
+ width: var(--overlay-center-normal-width, 50%);
67
+ height: var(--overlay-center-normal-height, 50%);
68
+ }
69
+
70
+ ox-input-value-map {
71
+ flex: 1;
72
+ overflow-y: auto;
73
+ }
74
+
75
+ span {
76
+ flex: 1;
77
+
78
+ display: flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+
82
+ color: var(--primary-color);
83
+ }
84
+
85
+ .button-container {
86
+ display: flex;
87
+ margin-left: auto;
88
+ }
89
+ `
90
+ ];
91
+ __decorate([
92
+ property({ type: Object })
93
+ ], OxPopupValueMapInput.prototype, "value", void 0);
94
+ __decorate([
95
+ property({ type: String })
96
+ ], OxPopupValueMapInput.prototype, "valuetype", void 0);
97
+ __decorate([
98
+ property({ type: Object })
99
+ ], OxPopupValueMapInput.prototype, "confirmCallback", void 0);
100
+ OxPopupValueMapInput = __decorate([
101
+ customElement('ox-popup-value-map-input')
102
+ ], OxPopupValueMapInput);
103
+ export { OxPopupValueMapInput };
104
+ //# sourceMappingURL=ox-popup-value-map-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-popup-value-map-input.js","sourceRoot":"","sources":["../../../src/grist-editor/ox-popup-value-map-input.ts"],"names":[],"mappings":";AAAA,OAAO,sCAAsC,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,UAAU;IAApD;;QAqC8B,cAAS,GAAW,QAAQ,CAAA;IAsD1D,CAAC;IAnDC,MAAM;QACJ,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;;qBAEN,IAAI,CAAC,SAAS;kBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;6BAKb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;6BACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;;KAEhF,CAAA;IACH,CAAC;IAEO,QAAQ,CAAC,CAAc;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB;;;;;;;;;;UAUE;QAEF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;SAChB;QAED,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAEO,QAAQ,CAAC,CAAQ;QACvB,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;CACF,CAAA;AA1FQ,2BAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BF;CACF,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDAAW;AACV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDAA6B;AAC5B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DAAwC;AAtCxD,oBAAoB;IADhC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,oBAAoB,CA2FhC;SA3FY,oBAAoB","sourcesContent":["import '@operato/input/ox-input-value-map.js'\n\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ScrollbarStyles } from '@operato/styles'\nimport { i18next } from '@operato/i18n'\n\n@customElement('ox-popup-value-map-input')\nexport class OxPopupValueMapInput extends LitElement {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n\n width: var(--overlay-center-normal-width, 50%);\n height: var(--overlay-center-normal-height, 50%);\n }\n\n ox-input-value-map {\n flex: 1;\n overflow-y: auto;\n }\n\n span {\n flex: 1;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n color: var(--primary-color);\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n }\n `\n ]\n\n @property({ type: Object }) value: any\n @property({ type: String }) valuetype: string = 'string'\n @property({ type: Object }) confirmCallback!: (newval: any) => void\n\n render() {\n return html`\n <ox-input-value-map\n .value=${this.value}\n keytype=\"string\"\n .valuetype=${this.valuetype}\n @change=${this.onChange.bind(this)}\n >\n </ox-input-value-map>\n\n <div class=\"button-container\">\n <mwc-button @click=${this.onCancel.bind(this)}>${i18next.t('button.cancel')}</mwc-button>\n <mwc-button @click=${this.onConfirm.bind(this)}>${i18next.t('button.confirm')}</mwc-button>\n </div>\n `\n }\n\n private onChange(e: CustomEvent) {\n e.stopPropagation()\n\n /* \n 주의 : 이 팝업 템플릿은 layout 모듈에 의해서 render 되므로, \n layout의 구성에 변화가 발생하면, 다시 render된다.\n 이 팝업이 떠 있는 상태에서, 또 다른 팝업이 뜨는 경우도 layout 구성의 변화를 야기한다. (overlay의 갯수의 증가)\n 이 경우 value, options, confirmCallback 등 클로져를 사용한 것들이 초기 바인딩된 값으로 다시 바인딩되게 되는데,\n 만약, 템플릿 내부에서 이들 속성의 레퍼런스가 변화했다면, 원래 상태로 되돌아가는 현상이 발생하게 된다.\n 따라서, 가급적 이들 속성의 레퍼런스를 변화시키지 않는 것이 좋다.\n (이 팝업 클래스를 템플릿으로 사용한 곳의 코드를 참조하세요.)\n => \n 이런 이유로, Object.assign(...)을 사용하였다.\n */\n\n if (!this.value) {\n this.value = {}\n }\n\n for (let key in this.value) {\n delete this.value[key]\n }\n\n Object.assign(this.value, e.detail)\n }\n\n private onCancel(e: Event) {\n history.back()\n }\n\n private onConfirm(e: Event) {\n this.confirmCallback && this.confirmCallback(this.value)\n history.back()\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import '@operato/data-grist';
2
2
  import { DataGrist, FetchOption, GristData, GristRecord } from '@operato/data-grist';
3
3
  import { LitElement } from 'lit';
4
- export declare class IdSelector extends LitElement {
4
+ export declare class OxSelectorResourceId extends LitElement {
5
5
  static styles: import("lit").CSSResult;
6
6
  value?: string;
7
7
  config: any;
@@ -7,7 +7,7 @@ import { client } from '@operato/graphql';
7
7
  import gql from 'graphql-tag';
8
8
  import { i18next } from '@operato/i18n';
9
9
  import { isMobileDevice } from '@operato/utils';
10
- let IdSelector = class IdSelector extends LitElement {
10
+ let OxSelectorResourceId = class OxSelectorResourceId extends LitElement {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.data = ZERO_DATA;
@@ -136,7 +136,7 @@ let IdSelector = class IdSelector extends LitElement {
136
136
  return selected && selected.length > 0 ? selected[0] : undefined;
137
137
  }
138
138
  };
139
- IdSelector.styles = css `
139
+ OxSelectorResourceId.styles = css `
140
140
  :host {
141
141
  display: flex;
142
142
  flex-direction: column;
@@ -168,30 +168,30 @@ IdSelector.styles = css `
168
168
  `;
169
169
  __decorate([
170
170
  property({ type: String })
171
- ], IdSelector.prototype, "value", void 0);
171
+ ], OxSelectorResourceId.prototype, "value", void 0);
172
172
  __decorate([
173
173
  property({ type: Object })
174
- ], IdSelector.prototype, "config", void 0);
174
+ ], OxSelectorResourceId.prototype, "config", void 0);
175
175
  __decorate([
176
176
  property({ type: Object })
177
- ], IdSelector.prototype, "data", void 0);
177
+ ], OxSelectorResourceId.prototype, "data", void 0);
178
178
  __decorate([
179
179
  property({ type: String })
180
- ], IdSelector.prototype, "queryName", void 0);
180
+ ], OxSelectorResourceId.prototype, "queryName", void 0);
181
181
  __decorate([
182
182
  property({ type: Object })
183
- ], IdSelector.prototype, "basicArgs", void 0);
183
+ ], OxSelectorResourceId.prototype, "basicArgs", void 0);
184
184
  __decorate([
185
185
  property({ type: Object })
186
- ], IdSelector.prototype, "confirmCallback", void 0);
186
+ ], OxSelectorResourceId.prototype, "confirmCallback", void 0);
187
187
  __decorate([
188
188
  property({ type: Array })
189
- ], IdSelector.prototype, "selectedRecords", void 0);
189
+ ], OxSelectorResourceId.prototype, "selectedRecords", void 0);
190
190
  __decorate([
191
191
  query('ox-grist')
192
- ], IdSelector.prototype, "grist", void 0);
193
- IdSelector = __decorate([
194
- customElement('ox-id-selector')
195
- ], IdSelector);
196
- export { IdSelector };
197
- //# sourceMappingURL=id-selector.js.map
192
+ ], OxSelectorResourceId.prototype, "grist", void 0);
193
+ OxSelectorResourceId = __decorate([
194
+ customElement('ox-selector-resource-id')
195
+ ], OxSelectorResourceId);
196
+ export { OxSelectorResourceId };
197
+ //# sourceMappingURL=ox-selector-resource-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-selector-resource-id.js","sourceRoot":"","sources":["../../../src/grist-editor/ox-selector-resource-id.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\n\nimport { DataGrist, FetchOption, GristData, GristRecord, ZERO_DATA } from '@operato/data-grist'\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport gql from 'graphql-tag'\nimport { i18next } from '@operato/i18n'\nimport { isMobileDevice } from '@operato/utils'\n\n@customElement('ox-selector-resource-id')\nexport class OxSelectorResourceId extends LitElement {\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n\n width: var(--overlay-center-normal-width, 50%);\n height: var(--overlay-center-normal-height, 50%);\n }\n\n ox-grist {\n flex: 1;\n }\n\n #filters {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n }\n\n #filters > * {\n padding: var(--padding-default) var(--padding-wide);\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n }\n `\n\n @property({ type: String }) value?: string\n @property({ type: Object }) config: any\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: String }) queryName!: string\n @property({ type: Object }) basicArgs: any\n @property({ type: Object }) confirmCallback?: (record: GristRecord | undefined) => void\n @property({ type: Array }) selectedRecords: GristRecord[] = []\n\n @query('ox-grist') grist!: DataGrist\n\n render() {\n return html`\n <ox-grist\n .mode=${isMobileDevice() ? 'LIST' : 'GRID'}\n .config=${this.config}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .selectedRecords=${this.selectedRecords}\n >\n <div id=\"filters\" slot=\"headroom\">\n <ox-filters-form></ox-filters-form>\n </div>\n </ox-grist>\n\n <div class=\"button-container\">\n <mwc-button @click=${this.oncancel.bind(this)}>${i18next.t('button.cancel')}</mwc-button>\n <mwc-button @click=${this.onconfirm.bind(this)}>${i18next.t('button.confirm')}</mwc-button>\n </div>\n `\n }\n\n oncancel() {\n history.back()\n }\n\n onconfirm() {\n this.confirmCallback && this.confirmCallback(this.selected)\n history.back()\n }\n\n async firstUpdated() {\n this.config = {\n columns: [\n {\n type: 'gutter',\n gutterName: 'sequence'\n },\n {\n type: 'gutter',\n gutterName: 'row-selector',\n multiple: false\n },\n {\n type: 'string',\n name: 'id',\n header: i18next.t('field.id'),\n hidden: true\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n align: 'left'\n },\n filter: 'search',\n sortable: true,\n width: 160\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n record: {\n align: 'left'\n },\n filter: 'search',\n sortable: true,\n width: 300\n }\n ],\n rows: {\n selectable: {\n multiple: false\n },\n handlers: {\n click: 'select-row'\n }\n },\n pagination: {\n infinite: true\n }\n }\n\n await this.updateComplete\n\n /* TODO config가 설정될 때, fetch() 가 동작하므로, fetch 완료 이벤트를 받아서, selected를 설정해주는 것이 좋겠다. \n 현재는 fetch() 가 두번 일어난다.\n */\n await this.grist.fetch()\n\n var selected = this.grist.data.records.find(item => this.value == item.id)\n if (selected) {\n this.selectedRecords = [selected]\n }\n /* TODO config가 설정될 때, fetch() 가 동작하므로, fetch 완료 이벤트를 받아서, selected를 설정해주는 것이 좋겠다. */\n\n await this.updateComplete\n this.grist.focus()\n }\n\n async fetchHandler({ page = 1, limit = 100, sorters = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n q: ${this.queryName}(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings: sorters\n }\n })\n\n return {\n total: response.data.q.total || 0,\n records: response.data.q.items || []\n }\n }\n\n get selected() {\n var grist = this.renderRoot.querySelector('ox-grist') as DataGrist\n\n var selected = grist.selected\n\n return selected && selected.length > 0 ? selected[0] : undefined\n }\n}\n"]}
@@ -3,7 +3,7 @@ import '@operato/form/ox-search-form.js';
3
3
  import { DataGrist, FetchHandler, FetchOption, GristData, GristRecord } from '@operato/data-grist';
4
4
  import { LitElement } from 'lit';
5
5
  import { SearchForm } from '@operato/form';
6
- export declare class ObjectSelector extends LitElement {
6
+ export declare class OxSelectResourceObject extends LitElement {
7
7
  static styles: import("lit").CSSResult[];
8
8
  value?: string;
9
9
  config: any;
@@ -9,7 +9,7 @@ import { customElement, property, query } from 'lit/decorators.js';
9
9
  import gql from 'graphql-tag';
10
10
  import { i18next } from '@operato/i18n';
11
11
  import { isMobileDevice } from '@operato/utils';
12
- let ObjectSelector = class ObjectSelector extends LitElement {
12
+ let OxSelectResourceObject = class OxSelectResourceObject extends LitElement {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.data = ZERO_DATA;
@@ -263,7 +263,7 @@ let ObjectSelector = class ObjectSelector extends LitElement {
263
263
  return selected && selected.length > 0 ? selected[0] : undefined;
264
264
  }
265
265
  };
266
- ObjectSelector.styles = [
266
+ OxSelectResourceObject.styles = [
267
267
  MultiColumnFormStyles,
268
268
  css `
269
269
  :host {
@@ -294,45 +294,45 @@ ObjectSelector.styles = [
294
294
  ];
295
295
  __decorate([
296
296
  property({ type: String })
297
- ], ObjectSelector.prototype, "value", void 0);
297
+ ], OxSelectResourceObject.prototype, "value", void 0);
298
298
  __decorate([
299
299
  property({ type: Object })
300
- ], ObjectSelector.prototype, "config", void 0);
300
+ ], OxSelectResourceObject.prototype, "config", void 0);
301
301
  __decorate([
302
302
  property({ type: Object })
303
- ], ObjectSelector.prototype, "data", void 0);
303
+ ], OxSelectResourceObject.prototype, "data", void 0);
304
304
  __decorate([
305
305
  property({ type: String })
306
- ], ObjectSelector.prototype, "queryName", void 0);
306
+ ], OxSelectResourceObject.prototype, "queryName", void 0);
307
307
  __decorate([
308
308
  property({ type: Object })
309
- ], ObjectSelector.prototype, "basicArgs", void 0);
309
+ ], OxSelectResourceObject.prototype, "basicArgs", void 0);
310
310
  __decorate([
311
311
  property({ type: Object })
312
- ], ObjectSelector.prototype, "confirmCallback", void 0);
312
+ ], OxSelectResourceObject.prototype, "confirmCallback", void 0);
313
313
  __decorate([
314
314
  property({ type: Array })
315
- ], ObjectSelector.prototype, "selectedRecords", void 0);
315
+ ], OxSelectResourceObject.prototype, "selectedRecords", void 0);
316
316
  __decorate([
317
317
  property({ type: Array })
318
- ], ObjectSelector.prototype, "searchFields", void 0);
318
+ ], OxSelectResourceObject.prototype, "searchFields", void 0);
319
319
  __decorate([
320
320
  property({ type: Array })
321
- ], ObjectSelector.prototype, "select", void 0);
321
+ ], OxSelectResourceObject.prototype, "select", void 0);
322
322
  __decorate([
323
323
  property({ type: Object })
324
- ], ObjectSelector.prototype, "list", void 0);
324
+ ], OxSelectResourceObject.prototype, "list", void 0);
325
325
  __decorate([
326
326
  property({ type: String })
327
- ], ObjectSelector.prototype, "valueField", void 0);
327
+ ], OxSelectResourceObject.prototype, "valueField", void 0);
328
328
  __decorate([
329
329
  query('ox-grist')
330
- ], ObjectSelector.prototype, "grist", void 0);
330
+ ], OxSelectResourceObject.prototype, "grist", void 0);
331
331
  __decorate([
332
332
  query('ox-search-form')
333
- ], ObjectSelector.prototype, "searchForm", void 0);
334
- ObjectSelector = __decorate([
335
- customElement('ox-object-selector')
336
- ], ObjectSelector);
337
- export { ObjectSelector };
338
- //# sourceMappingURL=object-selector.js.map
333
+ ], OxSelectResourceObject.prototype, "searchForm", void 0);
334
+ OxSelectResourceObject = __decorate([
335
+ customElement('ox-select-resource-object')
336
+ ], OxSelectResourceObject);
337
+ export { OxSelectResourceObject };
338
+ //# sourceMappingURL=ox-selector-resource-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-selector-resource-object.js","sourceRoot":"","sources":["../../../src/grist-editor/ox-selector-resource-object.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\nimport '@operato/form/ox-search-form.js'\n\nimport {\n ColumnConfig,\n DataGrist,\n FetchHandler,\n FetchOption,\n GristData,\n GristEventHandler,\n GristRecord,\n ZERO_DATA\n} from '@operato/data-grist'\nimport { LitElement, css, html } from 'lit'\nimport { MultiColumnFormStyles, SearchForm } from '@operato/form'\nimport { buildArgs, client, gqlContext } from '@operato/graphql'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport gql from 'graphql-tag'\nimport { i18next } from '@operato/i18n'\nimport { isMobileDevice } from '@operato/utils'\n\n@customElement('ox-select-resource-object')\nexport class OxSelectResourceObject extends LitElement {\n static styles = [\n MultiColumnFormStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n data-grist {\n flex: 1;\n }\n\n .button-container {\n display: flex;\n margin-left: auto;\n }\n\n form {\n position: relative;\n }\n\n [search] {\n position: absolute;\n right: 0;\n }\n `\n ]\n\n @property({ type: String }) value?: string\n @property({ type: Object }) config: any\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: String }) queryName!: string\n @property({ type: Object }) basicArgs: any\n @property({ type: Object }) confirmCallback?: (record: GristRecord | undefined) => void\n @property({ type: Array }) selectedRecords: GristRecord[] = []\n\n @property({ type: Array }) searchFields: any\n @property({ type: Array }) select: {\n type: string\n name: string\n header: string\n subFields?: string[]\n hidden: boolean\n ignoreCondition: boolean\n queryName: string\n width: number\n }[] = []\n @property({ type: Object }) list: any\n @property({ type: String }) valueField: string | ((item: any) => any) = 'id'\n\n @query('ox-grist') grist!: DataGrist\n @query('ox-search-form') searchForm!: SearchForm\n\n render() {\n return html`\n <ox-search-form\n id=\"search-form\"\n @keypress=${(e: KeyboardEvent) => {\n if (e.keyCode === 13) {\n this.grist.fetch()\n }\n }}\n @submit=${(e: SubmitEvent) => this.grist.fetch()}\n .fields=${this.searchFields}\n ></ox-search-form>\n\n <ox-grist\n .mode=${isMobileDevice() ? 'LIST' : 'GRID'}\n .config=${this.config}\n .data=${this.data}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .selectedRecords=${this.selectedRecords}\n ></ox-grist>\n\n <div class=\"button-container\">\n <mwc-button @click=${this.oncancel.bind(this)}>${i18next.t('button.cancel')}</mwc-button>\n <mwc-button @click=${this.onconfirm.bind(this)}>${i18next.t('button.confirm')}</mwc-button>\n </div>\n `\n }\n\n oncancel() {\n history.back()\n }\n\n onconfirm() {\n this.confirmCallback && this.confirmCallback(this.selected)\n history.back()\n }\n\n fetchHandler: FetchHandler = async ({ filters, page, limit, sorters = [] }) => {\n const response = await client.query({\n query: gql`\n query {\n fetch: ${this.queryName} (${buildArgs(await this._buildConditions({ filters, page, limit, sorters }))}) {\n ${this.getSelectFields()}\n }\n }\n `,\n context: gqlContext()\n })\n\n if (!response.errors) {\n const records = response.data.fetch.items.map((item: any) => {\n let rowValue\n\n if (this.valueField && typeof this.valueField === 'function') {\n rowValue = this.valueField(item)\n } else if (this.valueField) {\n rowValue = item[this.valueField]\n } else {\n rowValue = item.id\n }\n\n if (this.value && this.value === rowValue) {\n this.selectedRecords = [item]\n item['__selected__'] = true\n }\n\n return item\n })\n const total = response.data.fetch.total\n\n return {\n records,\n total,\n limit,\n page\n }\n }\n }\n\n async firstUpdated() {\n this.config = {\n columns: [\n {\n type: 'gutter',\n gutterName: 'sequence'\n },\n {\n type: 'gutter',\n gutterName: 'row-selector',\n multiple: false\n }\n ],\n rows: {\n selectable: {\n multiple: false\n },\n handlers: {\n click: 'select-row',\n dblclick: ((columns, data, column, record, rowIndex, field) => {\n this.onconfirm()\n }) as GristEventHandler\n },\n appendable: false\n }\n }\n\n if (this.select && this.select.length > 0) {\n let _searchFields = this.select.filter(selectField => !selectField.hidden && !selectField.ignoreCondition)\n if (this.list && this.list.fields && this.list.fields.length > 0) {\n _searchFields = _searchFields.filter(searchField => this.list.fields.indexOf(searchField.name) >= 0)\n } else {\n _searchFields = _searchFields.slice(0, 4)\n }\n\n this.searchFields = _searchFields.map(selectField => {\n const fieldType = (selectField.type && selectField.type.toLowerCase()) || 'string'\n const numberTypes = ['integer', 'float']\n return {\n label: selectField.header || i18next.t(`field.${selectField.name}`),\n name: selectField.name,\n type:\n fieldType === 'string'\n ? 'text'\n : numberTypes.indexOf(fieldType) >= 0\n ? 'number'\n : fieldType === 'boolean'\n ? 'checkbox'\n : fieldType,\n queryName: selectField.queryName,\n props:\n fieldType === 'string'\n ? { searchOper: 'i_like' }\n : fieldType === 'object'\n ? { searchOper: 'in' }\n : { searchOper: 'eq' },\n attrs: fieldType === 'boolean' ? ['indeterminated'] : []\n }\n })\n this.config = {\n ...this.config,\n columns: [\n ...this.config.columns,\n ...this.select.map(selectField => {\n return {\n ...selectField,\n type: selectField.type || 'string',\n width: selectField.width || 160,\n header: selectField.header || i18next.t(`field.${selectField.name}`)\n }\n })\n ]\n }\n } else {\n this.searchFields = [\n {\n label: i18next.t('field.name'),\n name: 'name',\n type: 'text',\n props: { searchOper: 'i_like' }\n },\n {\n label: i18next.t('field.description'),\n name: 'description',\n type: 'text',\n props: { searchOper: 'i_like' }\n }\n ]\n\n this.config = {\n ...this.config,\n columns: [\n ...this.config.columns,\n {\n type: 'string',\n name: 'id',\n header: i18next.t('field.id'),\n hidden: true\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n align: 'left'\n },\n sortable: true,\n width: 160\n },\n {\n type: 'string',\n name: 'description',\n header: i18next.t('field.description'),\n record: {\n align: 'left'\n },\n sortable: true,\n width: 300\n }\n ]\n }\n }\n\n this.config = {\n ...this.config,\n list: {\n ...this.list,\n fields:\n this.list && this.list.fields && this.list.fields.length > 0\n ? this.list.fields\n : (this.config.columns as ColumnConfig[])\n .filter(column => column.type !== 'gutter')\n .slice(0, 3)\n .map(column => column.name)\n }\n }\n\n await this.updateComplete\n this.grist && this.grist.focus()\n }\n\n getSelectFields() {\n if (this.select && this.select.length > 0) {\n return `items {\n ${this.select.map(selectField => {\n return selectField.type === 'object'\n ? `${selectField.name} { ${\n selectField.subFields && selectField.subFields.length > 0\n ? selectField.subFields.join(' ')\n : `id name description`\n } }`\n : `${selectField.name}`\n })}\n }\n total`\n } else {\n return `\n items {\n id\n name\n description\n }\n total\n `\n }\n }\n\n async _buildConditions({ filters, page, limit, sorters }: FetchOption) {\n const queryConditions = {\n filters: [],\n ...this.basicArgs\n }\n\n queryConditions.filters = [...queryConditions.filters, ...(await this.searchForm.getQueryFilters())]\n queryConditions.pagination = { page, limit }\n queryConditions.sortings = sorters\n\n return queryConditions\n }\n\n get selected() {\n var grist = this.renderRoot.querySelector('ox-grist') as DataGrist\n\n var selected = grist.selected\n\n return selected && selected.length > 0 ? selected[0] : undefined\n }\n}\n"]}
@@ -1 +1,3 @@
1
- export * from './grist/index.js';
1
+ export * from './input/index.js';
2
+ export * from './property-editor';
3
+ export * from './grist-editor/index.js';
package/dist/src/index.js CHANGED
@@ -1,2 +1,4 @@
1
- export * from './grist/index.js';
1
+ export * from './input/index.js';
2
+ export * from './property-editor';
3
+ export * from './grist-editor/index.js';
2
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA","sourcesContent":["export * from './grist/index.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA","sourcesContent":["export * from './input/index.js'\nexport * from './property-editor'\nexport * from './grist-editor/index.js'\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './ox-input-background-pattern.js';
2
+ export * from './ox-input-fill-style.js';
3
+ export * from './ox-input-graphql.js';
@@ -0,0 +1,4 @@
1
+ export * from './ox-input-background-pattern.js';
2
+ export * from './ox-input-fill-style.js';
3
+ export * from './ox-input-graphql.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA","sourcesContent":["export * from './ox-input-background-pattern.js'\nexport * from './ox-input-fill-style.js'\nexport * from './ox-input-graphql.js'\n"]}