@things-factory/scheduler 9.0.0-beta.8 → 9.0.2

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.
@@ -7,35 +7,10 @@ import { i18next } from '@operato/i18n';
7
7
  import { closePopup } from '@operato/popup';
8
8
  import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
9
9
  let PopupCrontabInput = class PopupCrontabInput extends LitElement {
10
- render() {
11
- return html `
12
- <ox-input-crontab .value=${this.value} @change=${this.onChange.bind(this)}> </ox-input-crontab>
13
-
14
- <div class="footer">
15
- <div filler></div>
16
- <button @click=${this.onCancel.bind(this)} danger>
17
- <md-icon>cancel</md-icon>${i18next.t('button.cancel')}
18
- </button>
19
- <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>
20
- </div>
21
- `;
22
- }
23
- onChange(e) {
24
- e.stopPropagation();
25
- this.value = e.detail;
26
- }
27
- onCancel(e) {
28
- closePopup(this);
29
- }
30
- onConfirm(e) {
31
- this.confirmCallback && this.confirmCallback(this.value);
32
- closePopup(this);
33
- }
34
- };
35
- PopupCrontabInput.styles = [
36
- CommonHeaderStyles,
37
- ScrollbarStyles,
38
- css `
10
+ static { this.styles = [
11
+ CommonHeaderStyles,
12
+ ScrollbarStyles,
13
+ css `
39
14
  :host {
40
15
  display: flex;
41
16
  flex-direction: column;
@@ -61,7 +36,32 @@ PopupCrontabInput.styles = [
61
36
  color: var(--md-sys-color-on-primary-container);
62
37
  }
63
38
  `
64
- ];
39
+ ]; }
40
+ render() {
41
+ return html `
42
+ <ox-input-crontab .value=${this.value} @change=${this.onChange.bind(this)}> </ox-input-crontab>
43
+
44
+ <div class="footer">
45
+ <div filler></div>
46
+ <button @click=${this.onCancel.bind(this)} danger>
47
+ <md-icon>cancel</md-icon>${i18next.t('button.cancel')}
48
+ </button>
49
+ <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>
50
+ </div>
51
+ `;
52
+ }
53
+ onChange(e) {
54
+ e.stopPropagation();
55
+ this.value = e.detail;
56
+ }
57
+ onCancel(e) {
58
+ closePopup(this);
59
+ }
60
+ onConfirm(e) {
61
+ this.confirmCallback && this.confirmCallback(this.value);
62
+ closePopup(this);
63
+ }
64
+ };
65
65
  __decorate([
66
66
  property({ type: Object }),
67
67
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"popup-crontab-input.js","sourceRoot":"","sources":["../../../client/pages/scheduler/popup-crontab-input.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,oCAAoC,CAAA;AAE3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG9D,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAmC/C,MAAM;QACJ,OAAO,IAAI,CAAA;iCACkB,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;;yBAItD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;qCACZ,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;;yBAEtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;;KAExG,CAAA;IACH,CAAC;IAEO,QAAQ,CAAC,CAAc;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAA;IACvB,CAAC;IAEO,QAAQ,CAAC,CAAQ;QACvB,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;;AA7DM,wBAAM,GAAG;IACd,kBAAkB;IAClB,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAyBF;CACF,AA7BY,CA6BZ;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDAAW;AACV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0DAAwC;AAjCxD,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CA+D7B","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/input/ox-input-crontab.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { closePopup } from '@operato/popup'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\n\n@customElement('popup-crontab-input')\nexport class PopupCrontabInput extends LitElement {\n static styles = [\n CommonHeaderStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: var(--md-sys-color-surface);\n\n width: var(--overlay-center-normal-width, 50%);\n height: var(--overlay-center-normal-height, 50%);\n }\n\n ox-input-crontab {\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(--md-sys-color-on-primary-container);\n }\n `\n ]\n\n @property({ type: Object }) value: any\n @property({ type: Object }) confirmCallback!: (newval: any) => void\n\n render() {\n return html`\n <ox-input-crontab .value=${this.value} @change=${this.onChange.bind(this)}> </ox-input-crontab>\n\n <div class=\"footer\">\n <div filler></div>\n <button @click=${this.onCancel.bind(this)} danger>\n <md-icon>cancel</md-icon>${i18next.t('button.cancel')}\n </button>\n <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>\n </div>\n `\n }\n\n private onChange(e: CustomEvent) {\n e.stopPropagation()\n\n this.value = e.detail\n }\n\n private onCancel(e: Event) {\n closePopup(this)\n }\n\n private onConfirm(e: Event) {\n this.confirmCallback && this.confirmCallback(this.value)\n closePopup(this)\n }\n}\n"]}
1
+ {"version":3,"file":"popup-crontab-input.js","sourceRoot":"","sources":["../../../client/pages/scheduler/popup-crontab-input.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,oCAAoC,CAAA;AAE3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG9D,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;aACxC,WAAM,GAAG;QACd,kBAAkB;QAClB,eAAe;QACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAyBF;KACF,AA7BY,CA6BZ;IAKD,MAAM;QACJ,OAAO,IAAI,CAAA;iCACkB,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;;yBAItD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;qCACZ,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;;yBAEtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;;KAExG,CAAA;IACH,CAAC;IAEO,QAAQ,CAAC,CAAc;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAA;IACvB,CAAC;IAEO,QAAQ,CAAC,CAAQ;QACvB,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;;AA9B2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDAAW;AACV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0DAAwC;AAjCxD,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CA+D7B","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/input/ox-input-crontab.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { closePopup } from '@operato/popup'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\n\n@customElement('popup-crontab-input')\nexport class PopupCrontabInput extends LitElement {\n static styles = [\n CommonHeaderStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: var(--md-sys-color-surface);\n\n width: var(--overlay-center-normal-width, 50%);\n height: var(--overlay-center-normal-height, 50%);\n }\n\n ox-input-crontab {\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(--md-sys-color-on-primary-container);\n }\n `\n ]\n\n @property({ type: Object }) value: any\n @property({ type: Object }) confirmCallback!: (newval: any) => void\n\n render() {\n return html`\n <ox-input-crontab .value=${this.value} @change=${this.onChange.bind(this)}> </ox-input-crontab>\n\n <div class=\"footer\">\n <div filler></div>\n <button @click=${this.onCancel.bind(this)} danger>\n <md-icon>cancel</md-icon>${i18next.t('button.cancel')}\n </button>\n <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>\n </div>\n `\n }\n\n private onChange(e: CustomEvent) {\n e.stopPropagation()\n\n this.value = e.detail\n }\n\n private onCancel(e: Event) {\n closePopup(this)\n }\n\n private onConfirm(e: Event) {\n this.confirmCallback && this.confirmCallback(this.value)\n closePopup(this)\n }\n}\n"]}
@@ -22,6 +22,30 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
22
22
  super(...arguments);
23
23
  this.mode = isMobileDevice() ? 'CARD' : 'GRID';
24
24
  }
25
+ static { this.styles = [
26
+ ScrollbarStyles,
27
+ CommonGristStyles,
28
+ CommonHeaderStyles,
29
+ css `
30
+ :host {
31
+ display: flex;
32
+
33
+ width: 100%;
34
+
35
+ --grid-record-emphasized-background-color: #8b0000;
36
+ --grid-record-emphasized-color: #ff6b6b;
37
+ }
38
+
39
+ ox-grist {
40
+ overflow-y: auto;
41
+ flex: 1;
42
+ }
43
+
44
+ ox-filters-form {
45
+ flex: 1;
46
+ }
47
+ `
48
+ ]; }
25
49
  get context() {
26
50
  return {
27
51
  title: i18next.t('title.schedule list'),
@@ -127,7 +151,7 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
127
151
  name: 'application',
128
152
  header: i18next.t('field.schedule-application'),
129
153
  record: {
130
- renderer: (value, column, record, rowIndex, field) => { var _a; return (_a = record.client) === null || _a === void 0 ? void 0 : _a.application; }
154
+ renderer: (value, column, record, rowIndex, field) => record.client?.application
131
155
  },
132
156
  filter: 'i_like' /* only i_like supported */,
133
157
  sortable: true,
@@ -138,7 +162,7 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
138
162
  name: 'group',
139
163
  header: i18next.t('field.group'),
140
164
  record: {
141
- renderer: (value, column, record, rowIndex, field) => { var _a; return (_a = record.client) === null || _a === void 0 ? void 0 : _a.group; }
165
+ renderer: (value, column, record, rowIndex, field) => record.client?.group
142
166
  },
143
167
  filter: 'i_like' /* only i_like supported */,
144
168
  sortable: true,
@@ -149,7 +173,7 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
149
173
  name: 'type',
150
174
  header: i18next.t('field.type'),
151
175
  record: {
152
- renderer: (value, column, record, rowIndex, field) => { var _a; return (_a = record.client) === null || _a === void 0 ? void 0 : _a.type; }
176
+ renderer: (value, column, record, rowIndex, field) => record.client?.type
153
177
  },
154
178
  filter: 'i_like' /* only i_like supported */,
155
179
  sortable: true,
@@ -160,7 +184,7 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
160
184
  name: 'key',
161
185
  header: i18next.t('field.key'),
162
186
  record: {
163
- renderer: (value, column, record, rowIndex, field) => { var _a; return (_a = record.client) === null || _a === void 0 ? void 0 : _a.key; }
187
+ renderer: (value, column, record, rowIndex, field) => record.client?.key
164
188
  },
165
189
  filter: 'i_like' /* only i_like supported */,
166
190
  sortable: true,
@@ -171,7 +195,7 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
171
195
  name: 'operation',
172
196
  header: i18next.t('field.schedule-operation'),
173
197
  record: {
174
- renderer: (value, column, record, rowIndex, field) => { var _a; return (_a = record.client) === null || _a === void 0 ? void 0 : _a.operation; }
198
+ renderer: (value, column, record, rowIndex, field) => record.client?.operation
175
199
  },
176
200
  filter: 'i_like' /* only i_like supported */,
177
201
  sortable: true,
@@ -283,30 +307,6 @@ let SchedulerListPage = class SchedulerListPage extends connect(store)(localize(
283
307
  }
284
308
  }
285
309
  };
286
- SchedulerListPage.styles = [
287
- ScrollbarStyles,
288
- CommonGristStyles,
289
- CommonHeaderStyles,
290
- css `
291
- :host {
292
- display: flex;
293
-
294
- width: 100%;
295
-
296
- --grid-record-emphasized-background-color: #8b0000;
297
- --grid-record-emphasized-color: #ff6b6b;
298
- }
299
-
300
- ox-grist {
301
- overflow-y: auto;
302
- flex: 1;
303
- }
304
-
305
- ox-filters-form {
306
- flex: 1;
307
- }
308
- `
309
- ];
310
310
  __decorate([
311
311
  property({ type: Object }),
312
312
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-list-page.js","sourceRoot":"","sources":["../../../client/pages/scheduler/schedule-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\nimport '@operato/data-grist/ox-grist.js'\nimport '@operato/data-grist/ox-filters-form.js'\nimport '@operato/data-grist/ox-record-creator.js'\nimport './schedule-popup.js'\n\nimport { CommonHeaderStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageView, store } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { DataGrist, FetchOption } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify, openPopup } from '@operato/layout'\nimport { OxPrompt } from '@operato/popup'\nimport { isMobileDevice } from '@operato/utils'\n\nimport { connect } from 'pwa-helpers/connect-mixin'\nimport gql from 'graphql-tag'\n\n@customElement('schedule-list-page')\nexport class SchedulerListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: #8b0000;\n --grid-record-emphasized-color: #ff6b6b;\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 }) gristConfig: any\n @property({ type: String }) mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.schedule list'),\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 help: 'scheduler/scheduler'\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\" class=\"header\">\n <div class=\"filters\">\n <ox-filters-form autofocus without-search></ox-filters-form>\n\n <div id=\"modes\">\n <md-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</md-icon>\n <md-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</md-icon>\n <md-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</md-icon>\n </div>\n\n <ox-record-creator id=\"add\" .customPopupCallback=${this.popupCallback.bind(this)}>\n <button>\n <md-icon>add</md-icon>\n </button>\n <schedule-popup slot=\"popup\"></schedule-popup>\n </ox-record-creator>\n </div>\n </div>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle: any) {\n this.gristConfig = {\n list: {\n fields: ['name', 'description'],\n details: ['active', 'updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: record => (!record ? 'reorder' : record.id ? 'reorder' : ''),\n iconOnly: false,\n title: record => (!record ? i18next.t('button.detail') : record.id ? i18next.t('button.detail') : ''),\n width: 72,\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n openPopup(\n html`\n <schedule-popup schedule-id=${record.id} @requestRefresh=${() => this.grist.fetch()}></schedule-popup>\n `,\n {\n backdrop: true,\n help: 'scheduler/scheduler',\n size: 'large',\n title: i18next.t('title.schedule detail')\n }\n )\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: record => (!record ? 'delete' : record.id ? 'delete' : ''),\n iconOnly: false,\n title: record => (!record ? i18next.t('button.delete') : record.id ? i18next.t('button.delete') : ''),\n width: 72,\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record) this.unregisterSchedule(record.id)\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'application',\n header: i18next.t('field.schedule-application'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.application\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'group',\n header: i18next.t('field.group'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.group\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'type',\n header: i18next.t('field.type'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.type\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'key',\n header: i18next.t('field.key'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.key\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'operation',\n header: i18next.t('field.schedule-operation'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.operation\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n record: {\n editable: false\n },\n sortable: true,\n width: 180\n }\n ],\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n }\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (this.active) {\n this.grist.fetch()\n }\n }\n\n async popupCallback(popup) {\n popup.onclosed = () => {}\n }\n\n async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: schedules(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n client {\n application\n group\n type\n key\n operation\n }\n type\n schedule\n timezone\n task {\n type\n connection {\n host\n headers\n topic\n }\n data\n history_check\n failed_policy\n retry_wait\n retry_count\n max_retry_count\n }\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.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n async unregisterSchedule(handle: string) {\n if (\n await OxPrompt.open({\n title: i18next.t('text.are_you_sure'),\n text: i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }),\n confirmButton: { text: i18next.t('button.confirm') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n ) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($handle: ID!) {\n unregisterSchedule(handle: $handle)\n }\n `,\n variables: {\n handle\n }\n })\n\n if (!response.errors) {\n this.grist.fetch()\n notify({\n message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })\n })\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"schedule-list-page.js","sourceRoot":"","sources":["../../../client/pages/scheduler/schedule-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\nimport '@operato/data-grist/ox-grist.js'\nimport '@operato/data-grist/ox-filters-form.js'\nimport '@operato/data-grist/ox-record-creator.js'\nimport './schedule-popup.js'\n\nimport { CommonHeaderStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageView, store } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { DataGrist, FetchOption } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify, openPopup } from '@operato/layout'\nimport { OxPrompt } from '@operato/popup'\nimport { isMobileDevice } from '@operato/utils'\n\nimport { connect } from 'pwa-helpers/connect-mixin'\nimport gql from 'graphql-tag'\n\n@customElement('schedule-list-page')\nexport class SchedulerListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n\n width: 100%;\n\n --grid-record-emphasized-background-color: #8b0000;\n --grid-record-emphasized-color: #ff6b6b;\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 }) gristConfig: any\n @property({ type: String }) mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.schedule list'),\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 help: 'scheduler/scheduler'\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\" class=\"header\">\n <div class=\"filters\">\n <ox-filters-form autofocus without-search></ox-filters-form>\n\n <div id=\"modes\">\n <md-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</md-icon>\n <md-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</md-icon>\n <md-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</md-icon>\n </div>\n\n <ox-record-creator id=\"add\" .customPopupCallback=${this.popupCallback.bind(this)}>\n <button>\n <md-icon>add</md-icon>\n </button>\n <schedule-popup slot=\"popup\"></schedule-popup>\n </ox-record-creator>\n </div>\n </div>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle: any) {\n this.gristConfig = {\n list: {\n fields: ['name', 'description'],\n details: ['active', 'updatedAt']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence' },\n { type: 'gutter', gutterName: 'row-selector', multiple: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: record => (!record ? 'reorder' : record.id ? 'reorder' : ''),\n iconOnly: false,\n title: record => (!record ? i18next.t('button.detail') : record.id ? i18next.t('button.detail') : ''),\n width: 72,\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n if (!record.id) return\n openPopup(\n html`\n <schedule-popup schedule-id=${record.id} @requestRefresh=${() => this.grist.fetch()}></schedule-popup>\n `,\n {\n backdrop: true,\n help: 'scheduler/scheduler',\n size: 'large',\n title: i18next.t('title.schedule detail')\n }\n )\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: record => (!record ? 'delete' : record.id ? 'delete' : ''),\n iconOnly: false,\n title: record => (!record ? i18next.t('button.delete') : record.id ? i18next.t('button.delete') : ''),\n width: 72,\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record) this.unregisterSchedule(record.id)\n }\n }\n },\n {\n type: 'string',\n name: 'name',\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'application',\n header: i18next.t('field.schedule-application'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.application\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'group',\n header: i18next.t('field.group'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.group\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'type',\n header: i18next.t('field.type'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.type\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'key',\n header: i18next.t('field.key'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.key\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'string',\n name: 'operation',\n header: i18next.t('field.schedule-operation'),\n record: {\n renderer: (value, column, record, rowIndex, field) => record.client?.operation\n },\n filter: 'i_like' /* only i_like supported */,\n sortable: true,\n width: 150\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n record: {\n editable: false\n },\n sortable: true,\n width: 180\n }\n ],\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n }\n },\n sorters: [\n {\n name: 'name'\n }\n ]\n }\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (this.active) {\n this.grist.fetch()\n }\n }\n\n async popupCallback(popup) {\n popup.onclosed = () => {}\n }\n\n async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: schedules(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n client {\n application\n group\n type\n key\n operation\n }\n type\n schedule\n timezone\n task {\n type\n connection {\n host\n headers\n topic\n }\n data\n history_check\n failed_policy\n retry_wait\n retry_count\n max_retry_count\n }\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.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n async unregisterSchedule(handle: string) {\n if (\n await OxPrompt.open({\n title: i18next.t('text.are_you_sure'),\n text: i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }),\n confirmButton: { text: i18next.t('button.confirm') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n ) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($handle: ID!) {\n unregisterSchedule(handle: $handle)\n }\n `,\n variables: {\n handle\n }\n })\n\n if (!response.errors) {\n this.grist.fetch()\n notify({\n message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })\n })\n }\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { __decorate, __metadata, __rest } from "tslib";
1
+ import { __decorate, __metadata } from "tslib";
2
2
  import '@material/web/icon/icon.js';
3
3
  import '@material/web/textfield/filled-text-field.js';
4
4
  import '@material/web/select/outlined-select.js';
@@ -34,8 +34,43 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
34
34
  super(...arguments);
35
35
  this.schedule = {};
36
36
  }
37
+ static { this.styles = [
38
+ ScrollbarStyles,
39
+ CommonHeaderStyles,
40
+ css `
41
+ :host {
42
+ display: flex;
43
+ flex-direction: column;
44
+ color: var(--popup-content-color);
45
+ background-color: var(--popup-content-background-color);
46
+ }
47
+
48
+ [content] {
49
+ flex: 1;
50
+ padding: var(--spacing-medium);
51
+ overflow: auto;
52
+ }
53
+
54
+ label {
55
+ display: flex;
56
+ flex-direction: row;
57
+ gap: 10px;
58
+ align-items: center;
59
+ }
60
+
61
+ md-filled-button,
62
+ md-outlined-button {
63
+ margin-top: 16px;
64
+ }
65
+
66
+ .footer {
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: space-between;
70
+ }
71
+ `
72
+ ]; }
37
73
  render() {
38
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
39
74
  const updatable = !!this.scheduleId;
40
75
  return html `
41
76
  <div content>
@@ -57,7 +92,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
57
92
  type="text"
58
93
  id="application"
59
94
  name="client.application"
60
- .value=${((_a = this.schedule.client) === null || _a === void 0 ? void 0 : _a.application) || ''}
95
+ .value=${this.schedule.client?.application || ''}
61
96
  ?readonly=${updatable}
62
97
  required
63
98
  ></md-filled-text-field>
@@ -68,7 +103,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
68
103
  type="text"
69
104
  id="group"
70
105
  name="client.group"
71
- .value=${((_b = this.schedule.client) === null || _b === void 0 ? void 0 : _b.group) || ''}
106
+ .value=${this.schedule.client?.group || ''}
72
107
  ?readonly=${updatable}
73
108
  required
74
109
  ></md-filled-text-field>
@@ -79,7 +114,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
79
114
  type="text"
80
115
  id="type"
81
116
  name="client.type"
82
- .value=${((_c = this.schedule.client) === null || _c === void 0 ? void 0 : _c.type) || ''}
117
+ .value=${this.schedule.client?.type || ''}
83
118
  ?readonly=${updatable}
84
119
  required
85
120
  ></md-filled-text-field>
@@ -90,7 +125,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
90
125
  type="text"
91
126
  id="key"
92
127
  name="client.key"
93
- .value=${((_d = this.schedule.client) === null || _d === void 0 ? void 0 : _d.key) || ''}
128
+ .value=${this.schedule.client?.key || ''}
94
129
  ?readonly=${updatable}
95
130
  required
96
131
  ></md-filled-text-field>
@@ -101,7 +136,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
101
136
  type="text"
102
137
  id="operation"
103
138
  name="client.operation"
104
- .value=${((_e = this.schedule.client) === null || _e === void 0 ? void 0 : _e.operation) || ''}
139
+ .value=${this.schedule.client?.operation || ''}
105
140
  ?readonly=${updatable}
106
141
  required
107
142
  ></md-filled-text-field>
@@ -163,9 +198,9 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
163
198
  <fieldset>
164
199
  <legend>Task Details</legend>
165
200
  <md-outlined-select label="Task Type" name="task.type" required>
166
- <md-select-option value="rest" ?selected=${((_f = this.schedule.task) === null || _f === void 0 ? void 0 : _f.type) === 'rest'}>REST</md-select-option>
167
- <md-select-option value="kafka" ?selected=${((_g = this.schedule.task) === null || _g === void 0 ? void 0 : _g.type) === 'kafka'}>Kafka</md-select-option>
168
- <md-select-option value="redis" ?selected=${((_h = this.schedule.task) === null || _h === void 0 ? void 0 : _h.type) === 'redis'}>Redis</md-select-option>
201
+ <md-select-option value="rest" ?selected=${this.schedule.task?.type === 'rest'}>REST</md-select-option>
202
+ <md-select-option value="kafka" ?selected=${this.schedule.task?.type === 'kafka'}>Kafka</md-select-option>
203
+ <md-select-option value="redis" ?selected=${this.schedule.task?.type === 'redis'}>Redis</md-select-option>
169
204
  </md-outlined-select>
170
205
  <br /><br />
171
206
 
@@ -173,7 +208,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
173
208
  label="Connection Host"
174
209
  id="connectionHost"
175
210
  name="task.connection.host"
176
- .value=${((_k = (_j = this.schedule.task) === null || _j === void 0 ? void 0 : _j.connection) === null || _k === void 0 ? void 0 : _k.host) || ''}
211
+ .value=${this.schedule.task?.connection?.host || ''}
177
212
  required
178
213
  ></md-filled-text-field>
179
214
  <br /><br />
@@ -182,7 +217,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
182
217
  label="Connection Topic (optional)"
183
218
  id="connectionTopic"
184
219
  name="task.connection.topic"
185
- .value=${((_m = (_l = this.schedule.task) === null || _l === void 0 ? void 0 : _l.connection) === null || _m === void 0 ? void 0 : _m.topic) || ''}
220
+ .value=${this.schedule.task?.connection?.topic || ''}
186
221
  ></md-filled-text-field>
187
222
  <br /><br />
188
223
 
@@ -190,7 +225,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
190
225
  <legend>Connection Headers (optional)</legend>
191
226
  <ox-input-key-values
192
227
  name="task.connection.headers"
193
- .value=${((_p = (_o = this.schedule.task) === null || _o === void 0 ? void 0 : _o.connection) === null || _p === void 0 ? void 0 : _p.headers) || {}}
228
+ .value=${this.schedule.task?.connection?.headers || {}}
194
229
  ></ox-input-key-values>
195
230
  </fieldset>
196
231
  <br /><br />
@@ -198,7 +233,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
198
233
  <fieldset>
199
234
  <legend>Data (JSON)</legend>
200
235
 
201
- <ox-input-data name="task.data" .value=${(_q = this.schedule.task) === null || _q === void 0 ? void 0 : _q.data}> </ox-input-data>
236
+ <ox-input-data name="task.data" .value=${this.schedule.task?.data}> </ox-input-data>
202
237
  </fieldset>
203
238
  <br /><br />
204
239
 
@@ -207,20 +242,20 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
207
242
  type="checkbox"
208
243
  id="historyCheck"
209
244
  name="task.history_check"
210
- .checked=${((_r = this.schedule.task) === null || _r === void 0 ? void 0 : _r.history_check) || false}
245
+ .checked=${this.schedule.task?.history_check || false}
211
246
  ></md-checkbox
212
247
  >History Check
213
248
  </label>
214
249
  <br /><br />
215
250
 
216
251
  <md-outlined-select label="Failed Policy" name="task.failed_policy" required>
217
- <md-select-option value="ignore" ?selected=${((_s = this.schedule.task) === null || _s === void 0 ? void 0 : _s.failed_policy) === 'ignore'}
252
+ <md-select-option value="ignore" ?selected=${this.schedule.task?.failed_policy === 'ignore'}
218
253
  >Ignore</md-select-option
219
254
  >
220
- <md-select-option value="retry" ?selected=${((_t = this.schedule.task) === null || _t === void 0 ? void 0 : _t.failed_policy) === 'retry'}
255
+ <md-select-option value="retry" ?selected=${this.schedule.task?.failed_policy === 'retry'}
221
256
  >Retry</md-select-option
222
257
  >
223
- <md-select-option value="retry_dlq" ?selected=${((_u = this.schedule.task) === null || _u === void 0 ? void 0 : _u.failed_policy) === 'retry_dlq'}
258
+ <md-select-option value="retry_dlq" ?selected=${this.schedule.task?.failed_policy === 'retry_dlq'}
224
259
  >Retry DLQ</md-select-option
225
260
  >
226
261
  </md-outlined-select>
@@ -231,7 +266,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
231
266
  type="number"
232
267
  id="retryWait"
233
268
  name="task.retry_wait"
234
- .valueAsNumber=${((_v = this.schedule.task) === null || _v === void 0 ? void 0 : _v.retry_wait) || 0}
269
+ .valueAsNumber=${this.schedule.task?.retry_wait || 0}
235
270
  ></md-filled-text-field>
236
271
  <br /><br />
237
272
 
@@ -240,7 +275,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
240
275
  type="number"
241
276
  id="retryCount"
242
277
  name="task.retry_count"
243
- .valueAsNumber=${((_w = this.schedule.task) === null || _w === void 0 ? void 0 : _w.retry_count) || 0}
278
+ .valueAsNumber=${this.schedule.task?.retry_count || 0}
244
279
  ></md-filled-text-field>
245
280
  <br /><br />
246
281
 
@@ -249,7 +284,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
249
284
  type="number"
250
285
  id="maxRetryCount"
251
286
  name="task.max_retry_count"
252
- .valueAsNumber=${((_x = this.schedule.task) === null || _x === void 0 ? void 0 : _x.max_retry_count) || 0}
287
+ .valueAsNumber=${this.schedule.task?.max_retry_count || 0}
253
288
  ></md-filled-text-field>
254
289
  </fieldset>
255
290
  </form>
@@ -303,19 +338,33 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
303
338
  history.back();
304
339
  }
305
340
  prepareSchedule() {
306
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
307
- this.schedule = Object.assign(Object.assign({}, this.schedule), { client: {
308
- application: ((_a = this.schedule.client) === null || _a === void 0 ? void 0 : _a.application) || '',
309
- group: ((_b = this.schedule.client) === null || _b === void 0 ? void 0 : _b.group) || '',
310
- type: ((_c = this.schedule.client) === null || _c === void 0 ? void 0 : _c.type) || '',
311
- key: ((_d = this.schedule.client) === null || _d === void 0 ? void 0 : _d.key) || '',
312
- operation: ((_e = this.schedule.client) === null || _e === void 0 ? void 0 : _e.operation) || ''
313
- }, task: Object.assign(Object.assign({}, this.schedule.task), { data: ((_f = this.schedule.task) === null || _f === void 0 ? void 0 : _f.data) || {}, history_check: (_h = (_g = this.schedule.task) === null || _g === void 0 ? void 0 : _g.history_check) !== null && _h !== void 0 ? _h : false, failed_policy: ((_j = this.schedule.task) === null || _j === void 0 ? void 0 : _j.failed_policy) || 'ignore', retry_wait: ((_k = this.schedule.task) === null || _k === void 0 ? void 0 : _k.retry_wait) || 0, retry_count: ((_l = this.schedule.task) === null || _l === void 0 ? void 0 : _l.retry_count) || 0, max_retry_count: ((_m = this.schedule.task) === null || _m === void 0 ? void 0 : _m.max_retry_count) || 0, connection: Object.assign(Object.assign({}, (_o = this.schedule.task) === null || _o === void 0 ? void 0 : _o.connection), { headers: ((_q = (_p = this.schedule.task) === null || _p === void 0 ? void 0 : _p.connection) === null || _q === void 0 ? void 0 : _q.headers) || {} }) }) });
341
+ this.schedule = {
342
+ ...this.schedule,
343
+ client: {
344
+ application: this.schedule.client?.application || '',
345
+ group: this.schedule.client?.group || '',
346
+ type: this.schedule.client?.type || '',
347
+ key: this.schedule.client?.key || '',
348
+ operation: this.schedule.client?.operation || ''
349
+ },
350
+ task: {
351
+ ...this.schedule.task,
352
+ data: this.schedule.task?.data || {},
353
+ history_check: this.schedule.task?.history_check ?? false,
354
+ failed_policy: this.schedule.task?.failed_policy || 'ignore',
355
+ retry_wait: this.schedule.task?.retry_wait || 0,
356
+ retry_count: this.schedule.task?.retry_count || 0,
357
+ max_retry_count: this.schedule.task?.max_retry_count || 0,
358
+ connection: {
359
+ ...this.schedule.task?.connection,
360
+ headers: this.schedule.task?.connection?.headers || {}
361
+ }
362
+ }
363
+ };
314
364
  }
315
365
  async registerSchedule() {
316
- var _a;
317
366
  this.prepareSchedule();
318
- const _b = this.schedule, { id } = _b, newSchedule = __rest(_b, ["id"]);
367
+ const { id, ...newSchedule } = this.schedule;
319
368
  const response = await client.mutate({
320
369
  mutation: gql `
321
370
  mutation ($schedule: NewSchedule!) {
@@ -326,7 +375,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
326
375
  schedule: newSchedule
327
376
  }
328
377
  });
329
- if ((_a = response.data) === null || _a === void 0 ? void 0 : _a.handle) {
378
+ if (response.data?.handle) {
330
379
  this.scheduleId = response.data.handle;
331
380
  notify({
332
381
  message: i18next.t('text.info_x_successfully', { x: i18next.t('text.register') })
@@ -334,7 +383,6 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
334
383
  }
335
384
  }
336
385
  async updateSchedule() {
337
- var _a;
338
386
  this.prepareSchedule();
339
387
  const response = await client.mutate({
340
388
  mutation: gql `
@@ -346,7 +394,7 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
346
394
  schedule: this.schedule
347
395
  }
348
396
  });
349
- if ((_a = response.data) === null || _a === void 0 ? void 0 : _a.handle) {
397
+ if (response.data?.handle) {
350
398
  this.scheduleId = response.data.handle;
351
399
  notify({
352
400
  message: i18next.t('text.info_x_successfully', { x: i18next.t('text.update') })
@@ -354,7 +402,6 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
354
402
  }
355
403
  }
356
404
  async fetchSchedule(id) {
357
- var _a;
358
405
  const response = await client.query({
359
406
  query: gql `
360
407
  query ($id: ID!) {
@@ -392,48 +439,12 @@ let NewSchedulePopup = class NewSchedulePopup extends LitElement {
392
439
  id
393
440
  }
394
441
  });
395
- if ((_a = response.data) === null || _a === void 0 ? void 0 : _a.schedule) {
442
+ if (response.data?.schedule) {
396
443
  console.log(`a schedule fetched : ${response.data.schedule}`);
397
444
  return response.data.schedule;
398
445
  }
399
446
  }
400
447
  };
401
- NewSchedulePopup.styles = [
402
- ScrollbarStyles,
403
- CommonHeaderStyles,
404
- css `
405
- :host {
406
- display: flex;
407
- flex-direction: column;
408
- color: var(--popup-content-color);
409
- background-color: var(--popup-content-background-color);
410
- }
411
-
412
- [content] {
413
- flex: 1;
414
- padding: var(--spacing-medium);
415
- overflow: auto;
416
- }
417
-
418
- label {
419
- display: flex;
420
- flex-direction: row;
421
- gap: 10px;
422
- align-items: center;
423
- }
424
-
425
- md-filled-button,
426
- md-outlined-button {
427
- margin-top: 16px;
428
- }
429
-
430
- .footer {
431
- display: flex;
432
- align-items: center;
433
- justify-content: space-between;
434
- }
435
- `
436
- ];
437
448
  __decorate([
438
449
  property({ type: Object }),
439
450
  __metadata("design:type", Function)