@genexus/genexus-ide-ui 0.0.142 → 0.0.143

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.
@@ -10,8 +10,52 @@ export class GxIdeTemplate {
10
10
  // 7.LISTENERS //
11
11
  // 8.PUBLIC METHODS API //
12
12
  // 9.LOCAL METHODS //
13
- this.automaticBackupHandler = () => { };
13
+ this.loadFileHandle = async () => {
14
+ this.fileInput.click();
15
+ };
16
+ this.handleFileInputChange = (event) => {
17
+ const fileInput = event.target;
18
+ if (fileInput.files && fileInput.files.length > 0) {
19
+ const newFile = fileInput.files[0];
20
+ this.selectedFile = newFile;
21
+ this.pathValue = this.selectedFile.name;
22
+ }
23
+ this.fileInput.value = null;
24
+ };
25
+ this.handlePathInputChange = (event) => {
26
+ this.selectedFile = null;
27
+ const inputElement = event.target;
28
+ const newValue = inputElement.value;
29
+ this.pathValue = newValue;
30
+ };
31
+ this.confirmCallbackHandle = async () => {
32
+ if (this.confirmCallback) {
33
+ const fileName = this.pathValue
34
+ .replace(/^.*?([^\\\/]*)$/, "$1")
35
+ .toLowerCase()
36
+ .trim();
37
+ if (fileName === ".gxpm" || !fileName.endsWith(".gxpm")) {
38
+ return;
39
+ }
40
+ const fileData = this.selectedFile
41
+ ? this.selectedFile
42
+ : new File([this.pathValue], fileName);
43
+ const data = {
44
+ automaticBackup: this.automaticBackupEl.value === "true",
45
+ file: fileData
46
+ };
47
+ await this.confirmCallback(data);
48
+ this.fileInput.value = null;
49
+ this.selectedFile = null;
50
+ this.pathValue = "";
51
+ this.automaticBackupEl.value = "false";
52
+ }
53
+ };
54
+ this.selectedFile = null;
55
+ this.pathValue = "";
14
56
  this.displayTitle = false;
57
+ this.confirmCallback = undefined;
58
+ this.cancelCallback = undefined;
15
59
  }
16
60
  // 6.COMPONENT LIFECYCLE METHODS //
17
61
  async componentWillLoad() {
@@ -25,7 +69,7 @@ export class GxIdeTemplate {
25
69
  }
26
70
  // 10.RENDER() FUNCTION //
27
71
  render() {
28
- return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, slimmerFooter: config.gxIdeContainer.slimmerFooter }, h("div", { class: "header" }, h("label", { htmlFor: "project-path" }, "Project Path"), h("input", { type: "text", class: "input-text", id: "project-path" }), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal" })), h("div", { class: "control-wrapper" }, h("label", { htmlFor: "automatic-backup" }, "Automatic Backup"), h("ch-checkbox", { id: "automatic-backup", accessibleName: "el mismo que el label", checkedValue: "true", unCheckedValue: "false", value: "checked", onInput: this.automaticBackupHandler })), h("button", { slot: "footer-end" }, "Cancel"), h("button", { slot: "footer-end" }, "Ok")))));
72
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, slimmerFooter: config.gxIdeContainer.slimmerFooter }, h("div", { class: "header" }, h("label", { htmlFor: "project-path" }, this._componentLocale.main.projectPathInputLabel), h("input", { type: "text", class: "input-text", id: "project-path", value: this.pathValue, onChange: this.handlePathInputChange }), h("input", { type: "file", id: "input_file", accept: ".gxpm", ref: el => (this.fileInput = el), onChange: this.handleFileInputChange, class: "hidden-input" }), h("button", { onClick: this.loadFileHandle }, this._componentLocale.main.addFilesButton)), h("div", { class: "control-wrapper" }, h("label", { htmlFor: "automatic-backup" }, this._componentLocale.main.automaticBackupCheckboxLabel), h("ch-checkbox", { id: "automatic-backup", accessibleName: "automatic-backup", checkedValue: "true", unCheckedValue: "false", value: "checked", ref: el => (this.automaticBackupEl = el) })), h("button", { slot: "footer-end", onClick: this.cancelCallback }, this._componentLocale.footer.cancelButton), h("button", { slot: "footer-end", onClick: this.confirmCallbackHandle }, this._componentLocale.footer.confirmButton)))));
29
73
  }
30
74
  static get is() { return "gx-ide-bpm-import-gxpm"; }
31
75
  static get encapsulation() { return "shadow"; }
@@ -59,9 +103,66 @@ export class GxIdeTemplate {
59
103
  "attribute": "display-title",
60
104
  "reflect": false,
61
105
  "defaultValue": "false"
106
+ },
107
+ "confirmCallback": {
108
+ "type": "unknown",
109
+ "mutable": false,
110
+ "complexType": {
111
+ "original": "(data: ImportData) => Promise<void>",
112
+ "resolved": "(data: ImportData) => Promise<void>",
113
+ "references": {
114
+ "ImportData": {
115
+ "location": "local",
116
+ "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/bpm/import-gxpm/import-gxpm.tsx",
117
+ "id": "src/components/bpm/import-gxpm/import-gxpm.tsx::ImportData"
118
+ },
119
+ "Promise": {
120
+ "location": "global",
121
+ "id": "global::Promise"
122
+ }
123
+ }
124
+ },
125
+ "required": false,
126
+ "optional": false,
127
+ "docs": {
128
+ "tags": [{
129
+ "name": "param",
130
+ "text": "data - The data to be processed. This can be a string or a File object."
131
+ }, {
132
+ "name": "returns",
133
+ "text": "A Promise that resolves to void, indicating the completion of the operation."
134
+ }],
135
+ "text": "Callback function to be executed when OK button is pressed.\nThis callback is expected to handle the file or string input and return a Promise that resolves when is completed."
136
+ }
137
+ },
138
+ "cancelCallback": {
139
+ "type": "unknown",
140
+ "mutable": false,
141
+ "complexType": {
142
+ "original": "() => Promise<void>",
143
+ "resolved": "() => Promise<void>",
144
+ "references": {
145
+ "Promise": {
146
+ "location": "global",
147
+ "id": "global::Promise"
148
+ }
149
+ }
150
+ },
151
+ "required": false,
152
+ "optional": false,
153
+ "docs": {
154
+ "tags": [],
155
+ "text": "Callback invoked when user press 'Cancel' button."
156
+ }
62
157
  }
63
158
  };
64
159
  }
160
+ static get states() {
161
+ return {
162
+ "selectedFile": {},
163
+ "pathValue": {}
164
+ };
165
+ }
65
166
  static get events() {
66
167
  return [{
67
168
  "method": "componentDidRenderFirstTime",
@@ -1 +1 @@
1
- {"version":3,"file":"import-gxpm.js","sourceRoot":"","sources":["../../../../src/components/bpm/import-gxpm/import-gxpm.tsx"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,OAAO,EACP,KAAK,EAEN,MAAM,eAAe,CAAC;AACvB,6BAA6B;AAC7B,oBAAoB;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQhD,MAAM,OAAO,aAAa;;QAOhB,sBAAiB,GAAG,KAAK,CAAC;QAqClC,iBAAiB;QAEjB,0BAA0B;QAE1B,qBAAqB;QAEb,2BAAsB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;4BA9BV,KAAK;;IASrC,mCAAmC;IAEnC,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;IACH,CAAC;IAUD,0BAA0B;IAE1B,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAC,kBAAkB;YAC5B,WAAK,KAAK,EAAC,qBAAqB;gBAC9B,wBACE,cAAc,EACZ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAEhE,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,aAAa;oBAElD,WAAK,KAAK,EAAC,QAAQ;wBACjB,aAAO,OAAO,EAAC,cAAc,mBAAqB;wBAClD,aAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,YAAY,EAAC,EAAE,EAAC,cAAc,GAAG;wBAC1D,kBACE,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAC,mCAAmC,GAC5B,CACV;oBAEN,WAAK,KAAK,EAAC,iBAAiB;wBAC1B,aAAO,OAAO,EAAC,kBAAkB,uBAAyB;wBAC1D,mBACE,EAAE,EAAC,kBAAkB,EACrB,cAAc,EAAC,uBAAuB,EACtC,YAAY,EAAC,MAAM,EACnB,cAAc,EAAC,OAAO,EACtB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,IAAI,CAAC,sBAAsB,GACvB,CACX;oBACN,cAAQ,IAAI,EAAC,YAAY,aAAgB;oBACzC,cAAQ,IAAI,EAAC,YAAY,SAAY,CACpB,CACf,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\n\n@Component({\n tag: \"gx-ide-bpm-import-gxpm\",\n styleUrl: \"import-gxpm.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-import-gxpm\"]\n})\nexport class GxIdeTemplate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmImportGxpmElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private automaticBackupHandler = () => {};\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"project-path\">Project Path</label>\n <input type=\"text\" class=\"input-text\" id=\"project-path\" />\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n ></gxg-button>\n </div>\n\n <div class=\"control-wrapper\">\n <label htmlFor=\"automatic-backup\">Automatic Backup</label>\n <ch-checkbox\n id=\"automatic-backup\"\n accessibleName=\"el mismo que el label\"\n checkedValue=\"true\"\n unCheckedValue=\"false\"\n value=\"checked\"\n onInput={this.automaticBackupHandler}\n ></ch-checkbox>\n </div>\n <button slot=\"footer-end\">Cancel</button>\n <button slot=\"footer-end\">Ok</button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"import-gxpm.js","sourceRoot":"","sources":["../../../../src/components/bpm/import-gxpm/import-gxpm.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\n\n@Component({\n tag: \"gx-ide-bpm-import-gxpm\",\n styleUrl: \"import-gxpm.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-import-gxpm\"]\n})\nexport class GxIdeTemplate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmImportGxpmElement;\n\n private fileInput: HTMLInputElement;\n private automaticBackupEl: HTMLChCheckboxElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Contains the list of files\n */\n @State() selectedFile: File = null;\n\n /**\n * Contains the path input value\n */\n @State() pathValue: string = \"\";\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n /**\n * Callback function to be executed when OK button is pressed.\n * This callback is expected to handle the file or string input and return a Promise that resolves when is completed.\n *\n * @param {ImportData} data - The data to be processed. This can be a string or a File object.\n * @returns {Promise<void>} A Promise that resolves to void, indicating the completion of the operation.\n */\n @Prop() readonly confirmCallback: (data: ImportData) => Promise<void>;\n /**\n * Callback invoked when user press 'Cancel' button.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private loadFileHandle = async () => {\n this.fileInput.click();\n };\n\n private handleFileInputChange = (event: Event) => {\n const fileInput = event.target as HTMLInputElement;\n\n if (fileInput.files && fileInput.files.length > 0) {\n const newFile: File = fileInput.files[0];\n this.selectedFile = newFile;\n this.pathValue = this.selectedFile.name;\n }\n\n this.fileInput.value = null;\n };\n\n private handlePathInputChange = (event: Event) => {\n this.selectedFile = null;\n const inputElement = event.target as HTMLInputElement;\n const newValue = inputElement.value;\n\n this.pathValue = newValue;\n };\n\n private confirmCallbackHandle = async () => {\n if (this.confirmCallback) {\n const fileName = this.pathValue\n .replace(/^.*?([^\\\\\\/]*)$/, \"$1\")\n .toLowerCase()\n .trim();\n if (fileName === \".gxpm\" || !fileName.endsWith(\".gxpm\")) {\n return;\n }\n const fileData = this.selectedFile\n ? this.selectedFile\n : new File([this.pathValue], fileName);\n\n const data: ImportData = {\n automaticBackup: this.automaticBackupEl.value === \"true\",\n file: fileData\n };\n\n await this.confirmCallback(data);\n\n this.fileInput.value = null;\n this.selectedFile = null;\n this.pathValue = \"\";\n this.automaticBackupEl.value = \"false\";\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"project-path\">\n {this._componentLocale.main.projectPathInputLabel}\n </label>\n <input\n type=\"text\"\n class=\"input-text\"\n id=\"project-path\"\n value={this.pathValue}\n onChange={this.handlePathInputChange}\n />\n <input\n type=\"file\"\n id=\"input_file\"\n accept=\".gxpm\"\n ref={el => (this.fileInput = el as HTMLInputElement)}\n onChange={this.handleFileInputChange}\n class=\"hidden-input\"\n />\n <button onClick={this.loadFileHandle}>\n {this._componentLocale.main.addFilesButton}\n </button>\n </div>\n\n <div class=\"control-wrapper\">\n <label htmlFor=\"automatic-backup\">\n {this._componentLocale.main.automaticBackupCheckboxLabel}\n </label>\n\n <ch-checkbox\n id=\"automatic-backup\"\n accessibleName=\"automatic-backup\"\n checkedValue=\"true\"\n unCheckedValue=\"false\"\n value=\"checked\"\n ref={el =>\n (this.automaticBackupEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n </div>\n <button slot=\"footer-end\" onClick={this.cancelCallback}>\n {this._componentLocale.footer.cancelButton}\n </button>\n <button slot=\"footer-end\" onClick={this.confirmCallbackHandle}>\n {this._componentLocale.footer.confirmButton}\n </button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ImportData = {\n file: File;\n automaticBackup: boolean;\n};\n"]}
@@ -1,15 +1,12 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { c as config } from './config.js';
3
3
  import { L as Locale } from './locale.js';
4
- import { d as defineCustomElement$8 } from './checkbox.js';
5
- import { d as defineCustomElement$7 } from './icon.js';
6
- import { d as defineCustomElement$6 } from './container.js';
7
- import { d as defineCustomElement$5 } from './title2.js';
8
- import { d as defineCustomElement$4 } from './button.js';
9
- import { d as defineCustomElement$3 } from './icon2.js';
4
+ import { d as defineCustomElement$5 } from './checkbox.js';
5
+ import { d as defineCustomElement$4 } from './container.js';
6
+ import { d as defineCustomElement$3 } from './title2.js';
10
7
  import { d as defineCustomElement$2 } from './title.js';
11
8
 
12
- const importGxpmCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}p{margin:0;font-size:var(--mer-font__size--xxs)}.control-wrapper{display:flex;gap:var(--mer-spacing--xs);align-items:center}.control-wrapper--vertical{flex-direction:column;align-items:start}.controls-wrapper{display:flex;gap:var(--mer-spacing--xs)}.controls-wrapper--vertical{flex-direction:column;align-items:start}.input-text{box-sizing:border-box;background-color:transparent;border:var(--mer-border__width--sm) solid var(--mer-border-color__dim);border-radius:var(--mer-border__width--lg);height:26px;color:var(--mer-text__bright);font-size:var(--mer-font__size--xxs)}.input-text--full-width{align-self:stretch}:host{display:block}.header{display:grid;align-items:center;grid-template-columns:max-content 1fr min-content;gap:var(--mer-spacing--sm)}";
9
+ const importGxpmCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}p{margin:0;font-size:var(--mer-font__size--xxs)}.control-wrapper{display:flex;gap:var(--mer-spacing--xs);align-items:center}.control-wrapper--vertical{flex-direction:column;align-items:start}.controls-wrapper{display:flex;gap:var(--mer-spacing--xs)}.controls-wrapper--vertical{flex-direction:column;align-items:start}.input-text{box-sizing:border-box;background-color:transparent;border:var(--mer-border__width--sm) solid var(--mer-border-color__dim);border-radius:var(--mer-border__width--lg);height:26px;color:var(--mer-text__bright);font-size:var(--mer-font__size--xxs)}.input-text--full-width{align-self:stretch}:host{display:block}.header{display:grid;align-items:center;grid-template-columns:max-content 1fr min-content;gap:var(--mer-spacing--sm)}.hidden-input{display:none}";
13
10
 
14
11
  const GxIdeTemplate = /*@__PURE__*/ proxyCustomElement(class GxIdeTemplate extends HTMLElement {
15
12
  constructor() {
@@ -21,8 +18,52 @@ const GxIdeTemplate = /*@__PURE__*/ proxyCustomElement(class GxIdeTemplate exten
21
18
  // 7.LISTENERS //
22
19
  // 8.PUBLIC METHODS API //
23
20
  // 9.LOCAL METHODS //
24
- this.automaticBackupHandler = () => { };
21
+ this.loadFileHandle = async () => {
22
+ this.fileInput.click();
23
+ };
24
+ this.handleFileInputChange = (event) => {
25
+ const fileInput = event.target;
26
+ if (fileInput.files && fileInput.files.length > 0) {
27
+ const newFile = fileInput.files[0];
28
+ this.selectedFile = newFile;
29
+ this.pathValue = this.selectedFile.name;
30
+ }
31
+ this.fileInput.value = null;
32
+ };
33
+ this.handlePathInputChange = (event) => {
34
+ this.selectedFile = null;
35
+ const inputElement = event.target;
36
+ const newValue = inputElement.value;
37
+ this.pathValue = newValue;
38
+ };
39
+ this.confirmCallbackHandle = async () => {
40
+ if (this.confirmCallback) {
41
+ const fileName = this.pathValue
42
+ .replace(/^.*?([^\\\/]*)$/, "$1")
43
+ .toLowerCase()
44
+ .trim();
45
+ if (fileName === ".gxpm" || !fileName.endsWith(".gxpm")) {
46
+ return;
47
+ }
48
+ const fileData = this.selectedFile
49
+ ? this.selectedFile
50
+ : new File([this.pathValue], fileName);
51
+ const data = {
52
+ automaticBackup: this.automaticBackupEl.value === "true",
53
+ file: fileData
54
+ };
55
+ await this.confirmCallback(data);
56
+ this.fileInput.value = null;
57
+ this.selectedFile = null;
58
+ this.pathValue = "";
59
+ this.automaticBackupEl.value = "false";
60
+ }
61
+ };
62
+ this.selectedFile = null;
63
+ this.pathValue = "";
25
64
  this.displayTitle = false;
65
+ this.confirmCallback = undefined;
66
+ this.cancelCallback = undefined;
26
67
  }
27
68
  // 6.COMPONENT LIFECYCLE METHODS //
28
69
  async componentWillLoad() {
@@ -36,19 +77,23 @@ const GxIdeTemplate = /*@__PURE__*/ proxyCustomElement(class GxIdeTemplate exten
36
77
  }
37
78
  // 10.RENDER() FUNCTION //
38
79
  render() {
39
- return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, slimmerFooter: config.gxIdeContainer.slimmerFooter }, h("div", { class: "header" }, h("label", { htmlFor: "project-path" }, "Project Path"), h("input", { type: "text", class: "input-text", id: "project-path" }), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal" })), h("div", { class: "control-wrapper" }, h("label", { htmlFor: "automatic-backup" }, "Automatic Backup"), h("ch-checkbox", { id: "automatic-backup", accessibleName: "el mismo que el label", checkedValue: "true", unCheckedValue: "false", value: "checked", onInput: this.automaticBackupHandler })), h("button", { slot: "footer-end" }, "Cancel"), h("button", { slot: "footer-end" }, "Ok")))));
80
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, slimmerFooter: config.gxIdeContainer.slimmerFooter }, h("div", { class: "header" }, h("label", { htmlFor: "project-path" }, this._componentLocale.main.projectPathInputLabel), h("input", { type: "text", class: "input-text", id: "project-path", value: this.pathValue, onChange: this.handlePathInputChange }), h("input", { type: "file", id: "input_file", accept: ".gxpm", ref: el => (this.fileInput = el), onChange: this.handleFileInputChange, class: "hidden-input" }), h("button", { onClick: this.loadFileHandle }, this._componentLocale.main.addFilesButton)), h("div", { class: "control-wrapper" }, h("label", { htmlFor: "automatic-backup" }, this._componentLocale.main.automaticBackupCheckboxLabel), h("ch-checkbox", { id: "automatic-backup", accessibleName: "automatic-backup", checkedValue: "true", unCheckedValue: "false", value: "checked", ref: el => (this.automaticBackupEl = el) })), h("button", { slot: "footer-end", onClick: this.cancelCallback }, this._componentLocale.footer.cancelButton), h("button", { slot: "footer-end", onClick: this.confirmCallbackHandle }, this._componentLocale.footer.confirmButton)))));
40
81
  }
41
82
  static get assetsDirs() { return ["gx-ide-assets/bpm-import-gxpm"]; }
42
83
  get el() { return this; }
43
84
  static get style() { return importGxpmCss; }
44
85
  }, [1, "gx-ide-bpm-import-gxpm", {
45
- "displayTitle": [4, "display-title"]
86
+ "displayTitle": [4, "display-title"],
87
+ "confirmCallback": [16],
88
+ "cancelCallback": [16],
89
+ "selectedFile": [32],
90
+ "pathValue": [32]
46
91
  }]);
47
92
  function defineCustomElement$1() {
48
93
  if (typeof customElements === "undefined") {
49
94
  return;
50
95
  }
51
- const components = ["gx-ide-bpm-import-gxpm", "ch-checkbox", "ch-icon", "gx-ide-container", "gx-ide-title", "gxg-button", "gxg-icon", "gxg-title"];
96
+ const components = ["gx-ide-bpm-import-gxpm", "ch-checkbox", "gx-ide-container", "gx-ide-title", "gxg-title"];
52
97
  components.forEach(tagName => { switch (tagName) {
53
98
  case "gx-ide-bpm-import-gxpm":
54
99
  if (!customElements.get(tagName)) {
@@ -56,31 +101,16 @@ function defineCustomElement$1() {
56
101
  }
57
102
  break;
58
103
  case "ch-checkbox":
59
- if (!customElements.get(tagName)) {
60
- defineCustomElement$8();
61
- }
62
- break;
63
- case "ch-icon":
64
- if (!customElements.get(tagName)) {
65
- defineCustomElement$7();
66
- }
67
- break;
68
- case "gx-ide-container":
69
- if (!customElements.get(tagName)) {
70
- defineCustomElement$6();
71
- }
72
- break;
73
- case "gx-ide-title":
74
104
  if (!customElements.get(tagName)) {
75
105
  defineCustomElement$5();
76
106
  }
77
107
  break;
78
- case "gxg-button":
108
+ case "gx-ide-container":
79
109
  if (!customElements.get(tagName)) {
80
110
  defineCustomElement$4();
81
111
  }
82
112
  break;
83
- case "gxg-icon":
113
+ case "gx-ide-title":
84
114
  if (!customElements.get(tagName)) {
85
115
  defineCustomElement$3();
86
116
  }
@@ -1 +1 @@
1
- {"file":"gx-ide-bpm-import-gxpm.js","mappings":";;;;;;;;;;;AAAA,MAAM,aAAa,GAAG,+kXAA+kX;;MCqBxlX,aAAa;;;;;;QAOhB,sBAAiB,GAAG,KAAK,CAAC;;;;QA2C1B,2BAAsB,GAAG,SAAQ,CAAC;4BA9BV,KAAK;;;IAWrC,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;KACF;;IAYD,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,kBAAkB,IAC5B,WAAK,KAAK,EAAC,qBAAqB,IAC9B,wBACE,cAAc,EACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,EAEhE,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,aAAa,IAElD,WAAK,KAAK,EAAC,QAAQ,IACjB,aAAO,OAAO,EAAC,cAAc,mBAAqB,EAClD,aAAO,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,YAAY,EAAC,EAAE,EAAC,cAAc,GAAG,EAC1D,kBACE,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAC,mCAAmC,GAC5B,CACV,EAEN,WAAK,KAAK,EAAC,iBAAiB,IAC1B,aAAO,OAAO,EAAC,kBAAkB,uBAAyB,EAC1D,mBACE,EAAE,EAAC,kBAAkB,EACrB,cAAc,EAAC,uBAAuB,EACtC,YAAY,EAAC,MAAM,EACnB,cAAc,EAAC,OAAO,EACtB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,IAAI,CAAC,sBAAsB,GACvB,CACX,EACN,cAAQ,IAAI,EAAC,YAAY,aAAgB,EACzC,cAAQ,IAAI,EAAC,YAAY,SAAY,CACpB,CACf,CACD,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/bpm/import-gxpm/import-gxpm.scss?tag=gx-ide-bpm-import-gxpm&encapsulation=shadow","src/components/bpm/import-gxpm/import-gxpm.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n\n.header {\n display: grid;\n align-items: center;\n grid-template-columns: max-content 1fr min-content;\n gap: var(--mer-spacing--sm);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\n\n@Component({\n tag: \"gx-ide-bpm-import-gxpm\",\n styleUrl: \"import-gxpm.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-import-gxpm\"]\n})\nexport class GxIdeTemplate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmImportGxpmElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private automaticBackupHandler = () => {};\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"project-path\">Project Path</label>\n <input type=\"text\" class=\"input-text\" id=\"project-path\" />\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n ></gxg-button>\n </div>\n\n <div class=\"control-wrapper\">\n <label htmlFor=\"automatic-backup\">Automatic Backup</label>\n <ch-checkbox\n id=\"automatic-backup\"\n accessibleName=\"el mismo que el label\"\n checkedValue=\"true\"\n unCheckedValue=\"false\"\n value=\"checked\"\n onInput={this.automaticBackupHandler}\n ></ch-checkbox>\n </div>\n <button slot=\"footer-end\">Cancel</button>\n <button slot=\"footer-end\">Ok</button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"gx-ide-bpm-import-gxpm.js","mappings":"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","names":[],"sources":["src/components/bpm/import-gxpm/import-gxpm.scss?tag=gx-ide-bpm-import-gxpm&encapsulation=shadow","src/components/bpm/import-gxpm/import-gxpm.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n\n.header {\n display: grid;\n align-items: center;\n grid-template-columns: max-content 1fr min-content;\n gap: var(--mer-spacing--sm);\n}\n.hidden-input {\n display: none;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\n\n@Component({\n tag: \"gx-ide-bpm-import-gxpm\",\n styleUrl: \"import-gxpm.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-import-gxpm\"]\n})\nexport class GxIdeTemplate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmImportGxpmElement;\n\n private fileInput: HTMLInputElement;\n private automaticBackupEl: HTMLChCheckboxElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Contains the list of files\n */\n @State() selectedFile: File = null;\n\n /**\n * Contains the path input value\n */\n @State() pathValue: string = \"\";\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n /**\n * Callback function to be executed when OK button is pressed.\n * This callback is expected to handle the file or string input and return a Promise that resolves when is completed.\n *\n * @param {ImportData} data - The data to be processed. This can be a string or a File object.\n * @returns {Promise<void>} A Promise that resolves to void, indicating the completion of the operation.\n */\n @Prop() readonly confirmCallback: (data: ImportData) => Promise<void>;\n /**\n * Callback invoked when user press 'Cancel' button.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private loadFileHandle = async () => {\n this.fileInput.click();\n };\n\n private handleFileInputChange = (event: Event) => {\n const fileInput = event.target as HTMLInputElement;\n\n if (fileInput.files && fileInput.files.length > 0) {\n const newFile: File = fileInput.files[0];\n this.selectedFile = newFile;\n this.pathValue = this.selectedFile.name;\n }\n\n this.fileInput.value = null;\n };\n\n private handlePathInputChange = (event: Event) => {\n this.selectedFile = null;\n const inputElement = event.target as HTMLInputElement;\n const newValue = inputElement.value;\n\n this.pathValue = newValue;\n };\n\n private confirmCallbackHandle = async () => {\n if (this.confirmCallback) {\n const fileName = this.pathValue\n .replace(/^.*?([^\\\\\\/]*)$/, \"$1\")\n .toLowerCase()\n .trim();\n if (fileName === \".gxpm\" || !fileName.endsWith(\".gxpm\")) {\n return;\n }\n const fileData = this.selectedFile\n ? this.selectedFile\n : new File([this.pathValue], fileName);\n\n const data: ImportData = {\n automaticBackup: this.automaticBackupEl.value === \"true\",\n file: fileData\n };\n\n await this.confirmCallback(data);\n\n this.fileInput.value = null;\n this.selectedFile = null;\n this.pathValue = \"\";\n this.automaticBackupEl.value = \"false\";\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"project-path\">\n {this._componentLocale.main.projectPathInputLabel}\n </label>\n <input\n type=\"text\"\n class=\"input-text\"\n id=\"project-path\"\n value={this.pathValue}\n onChange={this.handlePathInputChange}\n />\n <input\n type=\"file\"\n id=\"input_file\"\n accept=\".gxpm\"\n ref={el => (this.fileInput = el as HTMLInputElement)}\n onChange={this.handleFileInputChange}\n class=\"hidden-input\"\n />\n <button onClick={this.loadFileHandle}>\n {this._componentLocale.main.addFilesButton}\n </button>\n </div>\n\n <div class=\"control-wrapper\">\n <label htmlFor=\"automatic-backup\">\n {this._componentLocale.main.automaticBackupCheckboxLabel}\n </label>\n\n <ch-checkbox\n id=\"automatic-backup\"\n accessibleName=\"automatic-backup\"\n checkedValue=\"true\"\n unCheckedValue=\"false\"\n value=\"checked\"\n ref={el =>\n (this.automaticBackupEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n </div>\n <button slot=\"footer-end\" onClick={this.cancelCallback}>\n {this._componentLocale.footer.cancelButton}\n </button>\n <button slot=\"footer-end\" onClick={this.confirmCallbackHandle}>\n {this._componentLocale.footer.confirmButton}\n </button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ImportData = {\n file: File;\n automaticBackup: boolean;\n};\n"],"version":3}