@operato/process 1.5.25 → 1.5.27

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.
@@ -3,7 +3,9 @@ import '@material/mwc-textarea';
3
3
  import '@material/mwc-select';
4
4
  import '@material/mwc-list/mwc-list-item';
5
5
  import '@material/mwc-button';
6
+ import '../ox-process-template-list';
6
7
  import { LitElement } from 'lit';
8
+ import { OxProcessTemplateList } from '../ox-process-template-list';
7
9
  declare const ProcessCreationPopup_base: (new (...args: any[]) => LitElement) & typeof LitElement;
8
10
  export declare class ProcessCreationPopup extends ProcessCreationPopup_base {
9
11
  static get styles(): import("lit").CSSResult[];
@@ -12,8 +14,9 @@ export declare class ProcessCreationPopup extends ProcessCreationPopup_base {
12
14
  id: string;
13
15
  name: string;
14
16
  }[];
17
+ processTemplateList: OxProcessTemplateList;
15
18
  render(): import("lit-html").TemplateResult<1>;
16
19
  firstUpdated(): void;
17
- onClickSubmit(): void;
20
+ onClickSubmit(): Promise<void>;
18
21
  }
19
22
  export {};
@@ -4,8 +4,9 @@ import '@material/mwc-textarea';
4
4
  import '@material/mwc-select';
5
5
  import '@material/mwc-list/mwc-list-item';
6
6
  import '@material/mwc-button';
7
+ import '../ox-process-template-list';
7
8
  import { css, html, LitElement } from 'lit';
8
- import { customElement, property } from 'lit/decorators.js';
9
+ import { customElement, property, query } from 'lit/decorators.js';
9
10
  import { i18next, localize } from '@operato/i18n';
10
11
  let ProcessCreationPopup = class ProcessCreationPopup extends localize(i18next)(LitElement) {
11
12
  static get styles() {
@@ -14,24 +15,46 @@ let ProcessCreationPopup = class ProcessCreationPopup extends localize(i18next)(
14
15
  :host {
15
16
  display: flex;
16
17
  flex-direction: column;
17
-
18
+ gap: 10px;
18
19
  padding: 10px;
20
+
19
21
  background-color: white;
20
22
  }
21
23
 
22
- :host > * {
23
- margin: 10px;
24
+ [body] {
25
+ flex: 1;
26
+
27
+ display: flex;
28
+ flex-direction: row;
29
+ gap: 10px;
30
+
31
+ overflow: hidden;
24
32
  }
25
33
 
26
34
  [content] {
27
35
  flex: 1;
36
+
28
37
  display: flex;
29
38
  flex-direction: column;
39
+ gap: 10px;
40
+
30
41
  overflow: auto;
31
42
  }
32
43
 
33
- [content] > * {
34
- margin: 10px 0;
44
+ [content] > mwc-textarea {
45
+ flex: 1;
46
+ }
47
+
48
+ [templates] {
49
+ flex: 2;
50
+ display: flex;
51
+ flex-direction: column;
52
+ overflow: hidden;
53
+ }
54
+
55
+ [templates] > ox-process-template-list {
56
+ flex: 1;
57
+ overflow: hidden;
35
58
  }
36
59
  `
37
60
  ];
@@ -39,22 +62,31 @@ let ProcessCreationPopup = class ProcessCreationPopup extends localize(i18next)(
39
62
  render() {
40
63
  var groups = this.groups || [];
41
64
  return html `
42
- <div content>
43
- <mwc-textfield label=${String(i18next.t('label.name'))} name="name" required field-name></mwc-textfield>
44
- <mwc-textarea
45
- label=${String(i18next.t('label.description'))}
46
- name="description"
47
- field-description
48
- ></mwc-textarea>
49
- <mwc-select
50
- label=${String(i18next.t('label.group'))}
51
- field-group
52
- helper="If there is no group to choose, you can leave it empty."
53
- >
54
- ${groups.map(group => html `
55
- <mwc-list-item value=${group.id} ?selected=${this.defaultGroup == group.id}>${group.name}</mwc-list-item>
56
- `)}
57
- </mwc-select>
65
+ <div body>
66
+ <div content>
67
+ <mwc-textfield label=${String(i18next.t('label.name'))} name="name" required field-name></mwc-textfield>
68
+ <mwc-textarea
69
+ label=${String(i18next.t('label.description'))}
70
+ name="description"
71
+ field-description
72
+ ></mwc-textarea>
73
+ <mwc-select
74
+ label=${String(i18next.t('label.group'))}
75
+ field-group
76
+ helper="If there is no group to choose, you can leave it empty."
77
+ >
78
+ ${groups.map(group => html `
79
+ <mwc-list-item value=${group.id} ?selected=${this.defaultGroup == group.id}
80
+ >${group.name}</mwc-list-item
81
+ >
82
+ `)}
83
+ </mwc-select>
84
+ </div>
85
+
86
+ <div templates>
87
+ <div>${i18next.t('label.process-template')}</div>
88
+ <ox-process-template-list></ox-process-template-list>
89
+ </div>
58
90
  </div>
59
91
 
60
92
  <mwc-button
@@ -71,7 +103,7 @@ let ProcessCreationPopup = class ProcessCreationPopup extends localize(i18next)(
71
103
  (_a = this.renderRoot.querySelector('mwc-textfield')) === null || _a === void 0 ? void 0 : _a.focus();
72
104
  }, 100);
73
105
  }
74
- onClickSubmit() {
106
+ async onClickSubmit() {
75
107
  var [name, description, groupId] = ['name', 'description', 'group'].map(attr => {
76
108
  var _a;
77
109
  return (_a = this.renderRoot.querySelector(`[field-${attr}]`)) === null || _a === void 0 ? void 0 : _a.value;
@@ -79,11 +111,14 @@ let ProcessCreationPopup = class ProcessCreationPopup extends localize(i18next)(
79
111
  if (!name) {
80
112
  return;
81
113
  }
114
+ const template = await this.processTemplateList.getSelected();
82
115
  this.dispatchEvent(new CustomEvent('create-process', {
83
116
  detail: {
84
117
  name,
85
118
  description,
86
- groupId
119
+ groupId,
120
+ model: template === null || template === void 0 ? void 0 : template.model,
121
+ thumbnail: template === null || template === void 0 ? void 0 : template.thumbnail
87
122
  }
88
123
  }));
89
124
  }
@@ -94,6 +129,9 @@ __decorate([
94
129
  __decorate([
95
130
  property({ type: Array })
96
131
  ], ProcessCreationPopup.prototype, "groups", void 0);
132
+ __decorate([
133
+ query('ox-process-template-list')
134
+ ], ProcessCreationPopup.prototype, "processTemplateList", void 0);
97
135
  ProcessCreationPopup = __decorate([
98
136
  customElement('process-creation-popup')
99
137
  ], ProcessCreationPopup);
@@ -1 +1 @@
1
- {"version":3,"file":"process-creation-popup.js","sourceRoot":"","sources":["../../../src/selector/process-creation-popup.ts"],"names":[],"mappings":";AAAA,OAAO,yBAAyB,CAAA;AAChC,OAAO,wBAAwB,CAAA;AAC/B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,kCAAkC,CAAA;AACzC,OAAO,sBAAsB,CAAA;AAE7B,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,QAAQ,EAAE,MAAM,eAAe,CAAA;AAG1C,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IACrE,MAAM,KAAK,MAAM;QACf,OAAO;YACL,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;OAuBF;SACF,CAAA;IACH,CAAC;IAKD,MAAM;QACJ,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;QAE9B,OAAO,IAAI,CAAA;;+BAEgB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;;kBAE5C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;;;;;kBAKtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;;;;YAItC,MAAM,CAAC,GAAG,CACV,KAAK,CAAC,EAAE,CAAC,IAAI,CAAA;qCACY,KAAK,CAAC,EAAE,cAAc,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI;aACzF,CACF;;;;;;gBAMK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;iBACjC,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;KAEnD,CAAA;IACH,CAAC;IAED,YAAY;QACV,UAAU,CAAC,GAAG,EAAE;;YACd,CAAC;YAAA,MAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAS,0CAAE,KAAK,EAAE,CAAA;QACnE,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;YAC7E,OAAO,MAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,IAAI,GAAG,CAAS,0CAAE,KAAK,CAAA;QACzE,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,EAAE;YACT,OAAM;SACP;QAED,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAChC,MAAM,EAAE;gBACN,IAAI;gBACJ,WAAW;gBACX,OAAO;aACR;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAA;AA5D6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAsB;AACtB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oDAAwC;AA/BvD,oBAAoB;IADhC,aAAa,CAAC,wBAAwB,CAAC;GAC3B,oBAAoB,CA0FhC","sourcesContent":["import '@material/mwc-textfield'\nimport '@material/mwc-textarea'\nimport '@material/mwc-select'\nimport '@material/mwc-list/mwc-list-item'\nimport '@material/mwc-button'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\n\n@customElement('process-creation-popup')\nexport class ProcessCreationPopup extends localize(i18next)(LitElement) {\n static get styles() {\n return [\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n padding: 10px;\n background-color: white;\n }\n\n :host > * {\n margin: 10px;\n }\n\n [content] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n [content] > * {\n margin: 10px 0;\n }\n `\n ]\n }\n\n @property({ type: String }) defaultGroup?: string\n @property({ type: Array }) groups?: { id: string; name: string }[]\n\n render() {\n var groups = this.groups || []\n\n return html`\n <div content>\n <mwc-textfield label=${String(i18next.t('label.name'))} name=\"name\" required field-name></mwc-textfield>\n <mwc-textarea\n label=${String(i18next.t('label.description'))}\n name=\"description\"\n field-description\n ></mwc-textarea>\n <mwc-select\n label=${String(i18next.t('label.group'))}\n field-group\n helper=\"If there is no group to choose, you can leave it empty.\"\n >\n ${groups.map(\n group => html`\n <mwc-list-item value=${group.id} ?selected=${this.defaultGroup == group.id}>${group.name}</mwc-list-item>\n `\n )}\n </mwc-select>\n </div>\n\n <mwc-button\n raised\n label=${String(i18next.t('button.create'))}\n @click=${(e: MouseEvent) => this.onClickSubmit()}\n ></mwc-button>\n `\n }\n\n firstUpdated() {\n setTimeout(() => {\n ;(this.renderRoot.querySelector('mwc-textfield') as any)?.focus()\n }, 100)\n }\n\n onClickSubmit() {\n var [name, description, groupId] = ['name', 'description', 'group'].map(attr => {\n return (this.renderRoot.querySelector(`[field-${attr}]`) as any)?.value\n })\n\n if (!name) {\n return\n }\n\n this.dispatchEvent(\n new CustomEvent('create-process', {\n detail: {\n name,\n description,\n groupId\n }\n })\n )\n }\n}\n"]}
1
+ {"version":3,"file":"process-creation-popup.js","sourceRoot":"","sources":["../../../src/selector/process-creation-popup.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-textfield'\nimport '@material/mwc-textarea'\nimport '@material/mwc-select'\nimport '@material/mwc-list/mwc-list-item'\nimport '@material/mwc-button'\nimport '../ox-process-template-list'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { OxProcessTemplateList } from '../ox-process-template-list'\n\n@customElement('process-creation-popup')\nexport class ProcessCreationPopup extends localize(i18next)(LitElement) {\n static get styles() {\n return [\n css`\n :host {\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 10px;\n\n background-color: white;\n }\n\n [body] {\n flex: 1;\n\n display: flex;\n flex-direction: row;\n gap: 10px;\n\n overflow: hidden;\n }\n\n [content] {\n flex: 1;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n overflow: auto;\n }\n\n [content] > mwc-textarea {\n flex: 1;\n }\n\n [templates] {\n flex: 2;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n [templates] > ox-process-template-list {\n flex: 1;\n overflow: hidden;\n }\n `\n ]\n }\n\n @property({ type: String }) defaultGroup?: string\n @property({ type: Array }) groups?: { id: string; name: string }[]\n\n @query('ox-process-template-list') processTemplateList!: OxProcessTemplateList\n\n render() {\n var groups = this.groups || []\n\n return html`\n <div body>\n <div content>\n <mwc-textfield label=${String(i18next.t('label.name'))} name=\"name\" required field-name></mwc-textfield>\n <mwc-textarea\n label=${String(i18next.t('label.description'))}\n name=\"description\"\n field-description\n ></mwc-textarea>\n <mwc-select\n label=${String(i18next.t('label.group'))}\n field-group\n helper=\"If there is no group to choose, you can leave it empty.\"\n >\n ${groups.map(\n group => html`\n <mwc-list-item value=${group.id} ?selected=${this.defaultGroup == group.id}\n >${group.name}</mwc-list-item\n >\n `\n )}\n </mwc-select>\n </div>\n\n <div templates>\n <div>${i18next.t('label.process-template')}</div>\n <ox-process-template-list></ox-process-template-list>\n </div>\n </div>\n\n <mwc-button\n raised\n label=${String(i18next.t('button.create'))}\n @click=${(e: MouseEvent) => this.onClickSubmit()}\n ></mwc-button>\n `\n }\n\n firstUpdated() {\n setTimeout(() => {\n ;(this.renderRoot.querySelector('mwc-textfield') as any)?.focus()\n }, 100)\n }\n\n async onClickSubmit() {\n var [name, description, groupId] = ['name', 'description', 'group'].map(attr => {\n return (this.renderRoot.querySelector(`[field-${attr}]`) as any)?.value\n })\n\n if (!name) {\n return\n }\n\n const template = await this.processTemplateList.getSelected()\n\n this.dispatchEvent(\n new CustomEvent('create-process', {\n detail: {\n name,\n description,\n groupId,\n model: template?.model,\n thumbnail: template?.thumbnail\n }\n })\n )\n }\n}\n"]}
@@ -29,6 +29,7 @@ export type Process = {
29
29
  description?: string;
30
30
  model?: any;
31
31
  groupId?: string;
32
+ thumbnail?: string;
32
33
  };
33
34
  export type ProcessGroup = {
34
35
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model } from '@hatiolab/things-scene'\n\nexport interface PalletItem {\n type: string\n description: string\n icon: HTMLImageElement\n group: string | string[]\n model: Model\n}\n\nexport interface Pallet {\n name: string\n templates: PalletItem[]\n}\n\nexport type ComponentTemplate = {\n type: string\n description: string\n group:\n | 'line'\n | 'shape'\n | 'textAndMedia'\n | 'chartAndGauge'\n | 'table'\n | 'container'\n | 'dataSource'\n | 'IoT'\n | '3D'\n | 'warehouse'\n | 'form'\n | 'etc'\n | string\n icon: any\n model: Model\n}\n\nexport type ComponentGroup = {\n name: string\n description: string\n icon: string\n templates: ComponentTemplate[]\n}\n\nexport type Process = {\n id?: string\n name?: string\n description?: string\n model?: any\n groupId?: string\n}\n\nexport type ProcessGroup = {\n id?: string\n name?: string\n description?: string\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model } from '@hatiolab/things-scene'\n\nexport interface PalletItem {\n type: string\n description: string\n icon: HTMLImageElement\n group: string | string[]\n model: Model\n}\n\nexport interface Pallet {\n name: string\n templates: PalletItem[]\n}\n\nexport type ComponentTemplate = {\n type: string\n description: string\n group:\n | 'line'\n | 'shape'\n | 'textAndMedia'\n | 'chartAndGauge'\n | 'table'\n | 'container'\n | 'dataSource'\n | 'IoT'\n | '3D'\n | 'warehouse'\n | 'form'\n | 'etc'\n | string\n icon: any\n model: Model\n}\n\nexport type ComponentGroup = {\n name: string\n description: string\n icon: string\n templates: ComponentTemplate[]\n}\n\nexport type Process = {\n id?: string\n name?: string\n description?: string\n model?: any\n groupId?: string\n thumbnail?: string\n}\n\nexport type ProcessGroup = {\n id?: string\n name?: string\n description?: string\n}\n"]}