@genexus/genexus-ide-ui 1.1.1 → 1.1.3
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.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-file-item.cjs.entry.js +110 -0
- package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +399 -0
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/file-uploader/file-item/file-item.css +97 -0
- package/dist/collection/components/file-uploader/file-item/file-item.js +246 -0
- package/dist/collection/components/file-uploader/file-item/file-item.js.map +1 -0
- package/dist/collection/components/file-uploader/file-uploader.css +678 -0
- package/dist/collection/components/file-uploader/file-uploader.js +750 -0
- package/dist/collection/components/file-uploader/file-uploader.js.map +1 -0
- package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.en.json +36 -0
- package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.ja.json +36 -0
- package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.zh.json +36 -0
- package/dist/collection/components/file-uploader/types.js +2 -0
- package/dist/collection/components/file-uploader/types.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +4 -1
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/file-item.js +130 -0
- package/dist/components/file-item.js.map +1 -0
- package/dist/components/gx-ide-file-item.d.ts +11 -0
- package/dist/components/gx-ide-file-item.js +8 -0
- package/dist/components/gx-ide-file-item.js.map +1 -0
- package/dist/components/gx-ide-file-uploader.d.ts +11 -0
- package/dist/components/gx-ide-file-uploader.js +438 -0
- package/dist/components/gx-ide-file-uploader.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-file-item.entry.js +106 -0
- package/dist/esm/gx-ide-file-item.entry.js.map +1 -0
- package/dist/esm/gx-ide-file-uploader.entry.js +395 -0
- package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.en.json +36 -0
- package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.ja.json +36 -0
- package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.zh.json +36 -0
- package/dist/genexus-ide-ui/p-961cd6c2.entry.js +475 -0
- package/dist/genexus-ide-ui/p-961cd6c2.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-ef5dfd35.entry.js +157 -0
- package/dist/genexus-ide-ui/p-ef5dfd35.entry.js.map +1 -0
- package/dist/types/components/file-uploader/file-item/file-item.d.ts +31 -0
- package/dist/types/components/file-uploader/file-uploader.d.ts +51 -0
- package/dist/types/components/file-uploader/types.d.ts +31 -0
- package/dist/types/components.d.ts +247 -0
- package/package.json +1 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { r as e, c as i, h as t } from "./p-25a9f1d7.js";
|
|
2
|
+
|
|
3
|
+
import { g as r } from "./p-6e4208d8.js";
|
|
4
|
+
|
|
5
|
+
import "./p-5ac47c69.js";
|
|
6
|
+
|
|
7
|
+
const s = ":host{display:block;inline-size:100%}.file-item{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto;gap:var(--mer-spacing--sm);align-items:center;border:var(--mer-border__width--sm) solid var(--mer-border__default);border-radius:var(--mer-border__radius--sm)}.file-item__icon{display:flex;align-items:center}.file-item__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;inline-size:100%;font-weight:var(--mer-font__weight--regular)}.file-item__name ch-edit{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;inline-size:100%;font-weight:var(--mer-font__weight--regular)}.file-item__name .label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;inline-size:100%;font-weight:var(--mer-font__weight--regular)}.file-item__actions{display:flex;gap:var(--mer-spacing--xs)}.file-item__actions button:active,.file-item__actions button:focus,.file-item__actions button:hover{background-color:var(--mer-surface__hover)}.file-item__actions button:active{background-color:var(--mer-surface__pressed)}.file-item__progress-container{grid-column:1/-1;display:flex;flex-direction:column;gap:var(--mer-spacing--2xs);inline-size:100%;border:var(--mer-border__width--md) dashed var(--mer-border-color__dim);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--sm)}.file-item__progress-header{display:flex;justify-content:space-between;align-items:center;gap:var(--mer-spacing--sm)}.file-item__uploading-text{font-style:italic;color:var(--mer-text__complementary);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-inline-size:calc(100% - var(--mer-spacing--2xl))}.file-item__progress-bar{inline-size:100%}.file-item__progress-bar progress{inline-size:100%;height:var(--mer-spacing--xs);border:none;border-radius:var(--mer-border__radius--sm);overflow:hidden}.file-item__progress-bar progress::-webkit-progress-bar{background-color:transparent}.file-item__progress-bar progress::-webkit-progress-value{background-color:var(--mer-accent__primary)}.file-item__progress-bar progress::-moz-progress-bar{background-color:var(--mer-accent__primary)}";
|
|
8
|
+
|
|
9
|
+
var o = undefined && undefined.__classPrivateFieldGet || function(e, i, t, r) {
|
|
10
|
+
if (t === "a" && !r) throw new TypeError("Private accessor was defined without a getter");
|
|
11
|
+
if (typeof i === "function" ? e !== i || !r : !i.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
12
|
+
return t === "m" ? r : t === "a" ? r.call(e) : r ? r.value : i.get(e);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
var a, n, l, c, m;
|
|
16
|
+
|
|
17
|
+
const d = r({
|
|
18
|
+
category: "gemini-tools",
|
|
19
|
+
name: "file",
|
|
20
|
+
colorType: "primary"
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const p = r({
|
|
24
|
+
category: "gemini-tools",
|
|
25
|
+
name: "edit",
|
|
26
|
+
colorType: "primary"
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const h = r({
|
|
30
|
+
category: "gemini-tools",
|
|
31
|
+
name: "delete",
|
|
32
|
+
colorType: "primary"
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const f = r({
|
|
36
|
+
category: "gemini-tools",
|
|
37
|
+
name: "close",
|
|
38
|
+
colorType: "primary"
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const _ = [ "resets/box-sizing", "components/button", "components/icon", "components/edit", "utils/typography", "utils/spacing", "utils/form", "utils/layout", "utils/elevation" ];
|
|
42
|
+
|
|
43
|
+
const g = class {
|
|
44
|
+
constructor(t) {
|
|
45
|
+
e(this, t);
|
|
46
|
+
this.fileNameChange = i(this, "fileNameChange", 7);
|
|
47
|
+
this.fileDelete = i(this, "fileDelete", 7);
|
|
48
|
+
this.fileCancel = i(this, "fileCancel", 7);
|
|
49
|
+
a.set(this, (e => {
|
|
50
|
+
const i = e.detail;
|
|
51
|
+
if (i && i !== this.currentName) {
|
|
52
|
+
this.currentName = i;
|
|
53
|
+
this.fileNameChange.emit({
|
|
54
|
+
id: this.file.id,
|
|
55
|
+
name: i
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
n.set(this, (() => {
|
|
60
|
+
this.isEditing = false;
|
|
61
|
+
}));
|
|
62
|
+
/** Handles file deletion */ l.set(this, (() => {
|
|
63
|
+
this.fileDelete.emit(this.file.id);
|
|
64
|
+
}));
|
|
65
|
+
/** Handles upload cancellation */ c.set(this, (e => {
|
|
66
|
+
e.preventDefault();
|
|
67
|
+
this.fileCancel.emit(this.file.id);
|
|
68
|
+
}));
|
|
69
|
+
/** Starts file name editing */ m.set(this, (() => {
|
|
70
|
+
if (this.editable) {
|
|
71
|
+
this.isEditing = true;
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
this.file = undefined;
|
|
75
|
+
this.editable = false;
|
|
76
|
+
this.fileDeletedCallback = undefined;
|
|
77
|
+
this.fileDeletionErrorCallback = undefined;
|
|
78
|
+
this.isEditing = false;
|
|
79
|
+
this.currentName = undefined;
|
|
80
|
+
}
|
|
81
|
+
/** Updates current name when file prop changes */ handleFileChange(e) {
|
|
82
|
+
this.currentName = e.name;
|
|
83
|
+
}
|
|
84
|
+
componentWillLoad() {
|
|
85
|
+
this.currentName = this.file.name;
|
|
86
|
+
}
|
|
87
|
+
render() {
|
|
88
|
+
return t("div", {
|
|
89
|
+
class: "file-item"
|
|
90
|
+
}, t("ch-theme", {
|
|
91
|
+
model: _
|
|
92
|
+
}), t("div", {
|
|
93
|
+
class: "file-item__icon"
|
|
94
|
+
}, t("ch-image", {
|
|
95
|
+
src: d,
|
|
96
|
+
class: "icon-md"
|
|
97
|
+
})), t("div", {
|
|
98
|
+
class: "file-item__name"
|
|
99
|
+
}, this.isEditing ? t("ch-edit", {
|
|
100
|
+
value: this.currentName,
|
|
101
|
+
autoFocus: true,
|
|
102
|
+
onInput: o(this, a, "f"),
|
|
103
|
+
onBlur: o(this, n, "f"),
|
|
104
|
+
class: "input"
|
|
105
|
+
}) : t("label", {
|
|
106
|
+
class: "label"
|
|
107
|
+
}, this.currentName)), t("div", {
|
|
108
|
+
class: "file-item__actions"
|
|
109
|
+
}, !this.file.pending && this.editable && t("button", {
|
|
110
|
+
class: "button-tertiary button-icon-only",
|
|
111
|
+
type: "button",
|
|
112
|
+
onClick: o(this, m, "f")
|
|
113
|
+
}, t("ch-image", {
|
|
114
|
+
src: p,
|
|
115
|
+
class: "icon-md"
|
|
116
|
+
})), !this.file.pending && t("button", {
|
|
117
|
+
class: "button-tertiary button-icon-only",
|
|
118
|
+
type: "button",
|
|
119
|
+
onClick: o(this, l, "f"),
|
|
120
|
+
"aria-label": "Delete file"
|
|
121
|
+
}, t("ch-image", {
|
|
122
|
+
src: h,
|
|
123
|
+
class: "icon-md"
|
|
124
|
+
}))), this.file.pending && t("div", {
|
|
125
|
+
class: "file-item__progress-container"
|
|
126
|
+
}, t("div", {
|
|
127
|
+
class: "file-item__progress-header"
|
|
128
|
+
}, t("span", {
|
|
129
|
+
class: "file-item__uploading-text"
|
|
130
|
+
}, "Uploading ", this.currentName, "..."), t("button", {
|
|
131
|
+
class: "button-tertiary button-icon-only",
|
|
132
|
+
type: "button",
|
|
133
|
+
onClick: o(this, c, "f")
|
|
134
|
+
}, t("ch-image", {
|
|
135
|
+
src: f,
|
|
136
|
+
class: "icon-md"
|
|
137
|
+
}))), t("div", {
|
|
138
|
+
class: "file-item__progress-bar"
|
|
139
|
+
}, t("progress", {
|
|
140
|
+
class: "elevation-1",
|
|
141
|
+
value: this.file.progress,
|
|
142
|
+
max: "100"
|
|
143
|
+
}))));
|
|
144
|
+
}
|
|
145
|
+
static get watchers() {
|
|
146
|
+
return {
|
|
147
|
+
file: [ "handleFileChange" ]
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
a = new WeakMap, n = new WeakMap, l = new WeakMap, c = new WeakMap, m = new WeakMap;
|
|
153
|
+
|
|
154
|
+
g.style = s;
|
|
155
|
+
|
|
156
|
+
export { g as gx_ide_file_item };
|
|
157
|
+
//# sourceMappingURL=p-ef5dfd35.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fileItemCss","FILE_ICON","getIconPath","category","name","colorType","EDIT_ICON","DELETE_ICON","CANCEL_ICON","CSS_BUNDLES","FileItem","_FileItem_handleNameChange","set","this","event","newName","detail","currentName","fileNameChange","emit","id","file","_FileItem_handleBlur","isEditing","_FileItem_handleDelete","fileDelete","_FileItem_handleCancelClick","e","preventDefault","fileCancel","_FileItem_startEditing","editable","handleFileChange","newFile","componentWillLoad","render","h","class","model","src","value","autoFocus","onInput","__classPrivateFieldGet","onBlur","pending","type","onClick","progress","max"],"sources":["src/components/file-uploader/file-item/file-item.scss?tag=gx-ide-file-item&encapsulation=shadow","src/components/file-uploader/file-item/file-item.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n inline-size: 100%;\n}\n\n.file-item {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto;\n gap: var(--mer-spacing--sm);\n align-items: center;\n border: var(--mer-border__width--sm) solid var(--mer-border__default);\n border-radius: var(--mer-border__radius--sm);\n\n &__icon {\n display: flex;\n align-items: center;\n }\n\n &__name {\n @include ellipsis;\n inline-size: 100%;\n font-weight: var(--mer-font__weight--regular);\n\n ch-edit {\n @include ellipsis;\n inline-size: 100%;\n font-weight: var(--mer-font__weight--regular);\n }\n\n .label {\n @include ellipsis;\n inline-size: 100%;\n font-weight: var(--mer-font__weight--regular);\n }\n }\n\n &__actions {\n display: flex;\n gap: var(--mer-spacing--xs);\n\n button {\n &:active,\n &:focus,\n &:hover {\n background-color: var(--mer-surface__hover);\n }\n\n &:active {\n background-color: var(--mer-surface__pressed);\n }\n }\n }\n\n &__progress-container {\n grid-column: 1 / -1;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--2xs);\n inline-size: 100%;\n border: var(--mer-border__width--md) dashed var(--mer-border-color__dim);\n border-radius: var(--mer-border__radius--md);\n padding: var(--mer-spacing--sm);\n }\n\n &__progress-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--mer-spacing--sm);\n }\n\n &__uploading-text {\n font-style: italic;\n color: var(--mer-text__complementary);\n @include ellipsis;\n max-inline-size: calc(100% - var(--mer-spacing--2xl));\n }\n\n &__progress-bar {\n inline-size: 100%;\n\n progress {\n inline-size: 100%;\n height: var(--mer-spacing--xs);\n border: none;\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n\n &::-webkit-progress-bar {\n background-color: transparent;\n }\n\n &::-webkit-progress-value {\n background-color: var(--mer-accent__primary);\n }\n\n &::-moz-progress-bar {\n background-color: var(--mer-accent__primary);\n }\n }\n }\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport { FileUploadState } from \"../types\";\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst EDIT_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"edit\",\n colorType: \"primary\"\n});\n\nconst DELETE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CANCEL_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"close\",\n colorType: \"primary\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/icon\",\n \"components/edit\",\n \"utils/typography\",\n \"utils/spacing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/elevation\"\n];\n\n@Component({\n tag: \"gx-ide-file-item\",\n styleUrl: \"file-item.scss\",\n shadow: true\n})\nexport class FileItem {\n /** File state containing upload information */\n @Prop() readonly file!: FileUploadState;\n\n /** Whether the file name can be edited */\n @Prop() readonly editable: boolean = false;\n\n /** Callback when a file is deleted */\n @Prop() readonly fileDeletedCallback?: (fileId: string) => Promise<void>;\n\n /** Callback when a file deletion error occurs */\n @Prop() readonly fileDeletionErrorCallback?: (data: {\n fileName: string;\n error: string;\n }) => Promise<void>;\n\n /** Updates current name when file prop changes */\n @Watch(\"file\")\n handleFileChange(newFile: FileUploadState) {\n this.currentName = newFile.name;\n }\n\n @State() isEditing: boolean = false;\n @State() currentName: string;\n\n /** Emitted when the file name is changed */\n @Event() fileNameChange: EventEmitter<{ id: string; name: string }>;\n\n /** Emitted when the file is deleted */\n @Event() fileDelete: EventEmitter<string>;\n\n /** Emitted when the file upload is cancelled */\n @Event() fileCancel: EventEmitter<string>;\n\n componentWillLoad() {\n this.currentName = this.file.name;\n }\n\n #handleNameChange = (event: ChEditCustomEvent<string> | InputEvent) => {\n const newName = (event as CustomEvent<string>).detail;\n\n if (newName && newName !== this.currentName) {\n this.currentName = newName;\n this.fileNameChange.emit({\n id: this.file.id,\n name: newName\n });\n }\n };\n\n #handleBlur = () => {\n this.isEditing = false;\n };\n\n /** Handles file deletion */\n #handleDelete = () => {\n this.fileDelete.emit(this.file.id);\n };\n\n /** Handles upload cancellation */\n #handleCancelClick = (e: MouseEvent) => {\n e.preventDefault();\n this.fileCancel.emit(this.file.id);\n };\n\n /** Starts file name editing */\n #startEditing = () => {\n if (this.editable) {\n this.isEditing = true;\n }\n };\n\n render() {\n return (\n <div class=\"file-item\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"file-item__icon\">\n <ch-image src={FILE_ICON} class=\"icon-md\" />\n </div>\n\n <div class=\"file-item__name\">\n {this.isEditing ? (\n <ch-edit\n value={this.currentName}\n autoFocus={true}\n onInput={this.#handleNameChange}\n onBlur={this.#handleBlur}\n class=\"input\"\n />\n ) : (\n <label class=\"label\">{this.currentName}</label>\n )}\n </div>\n\n <div class=\"file-item__actions\">\n {!this.file.pending && this.editable && (\n <button\n class=\"button-tertiary button-icon-only\"\n type=\"button\"\n onClick={this.#startEditing}\n >\n <ch-image src={EDIT_ICON} class=\"icon-md\" />\n </button>\n )}\n {!this.file.pending && (\n <button\n class=\"button-tertiary button-icon-only\"\n type=\"button\"\n onClick={this.#handleDelete}\n aria-label=\"Delete file\"\n >\n <ch-image src={DELETE_ICON} class=\"icon-md\" />\n </button>\n )}\n </div>\n\n {this.file.pending && (\n <div class=\"file-item__progress-container\">\n <div class=\"file-item__progress-header\">\n <span class=\"file-item__uploading-text\">\n Uploading {this.currentName}...\n </span>\n <button\n class=\"button-tertiary button-icon-only\"\n type=\"button\"\n onClick={this.#handleCancelClick}\n >\n <ch-image src={CANCEL_ICON} class=\"icon-md\" />\n </button>\n </div>\n <div class=\"file-item__progress-bar\">\n <progress\n class=\"elevation-1\"\n value={this.file.progress}\n max=\"100\"\n />\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":";;;;;;AAAA,MAAMA,IAAc;;;;;;;;;;ACapB,MAAMC,IAAYC,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAGb,MAAMC,IAAYJ,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAGb,MAAME,IAAcL,EAAY;EAC9BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAGb,MAAMG,IAAcN,EAAY;EAC9BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAGb,MAAMI,IAA8B,EAClC,qBACA,qBACA,mBACA,mBACA,oBACA,iBACA,cACA,gBACA;;MAQWC,IAAQ;;;;;;IAsCnBC,EAAAC,IAAAC,OAAqBC;MACnB,MAAMC,IAAWD,EAA8BE;MAE/C,IAAID,KAAWA,MAAYF,KAAKI,aAAa;QAC3CJ,KAAKI,cAAcF;QACnBF,KAAKK,eAAeC,KAAK;UACvBC,IAAIP,KAAKQ,KAAKD;UACdhB,MAAMW;;;;IAKZO,EAAAV,IAAAC,OAAc;MACZA,KAAKU,YAAY;AAAK;oCAIxBC,EAAAZ,IAAAC,OAAgB;MACdA,KAAKY,WAAWN,KAAKN,KAAKQ,KAAKD;AAAG;0CAIpCM,EAAAd,IAAAC,OAAsBc;MACpBA,EAAEC;MACFf,KAAKgB,WAAWV,KAAKN,KAAKQ,KAAKD;AAAG;uCAIpCU,EAAAlB,IAAAC,OAAgB;MACd,IAAIA,KAAKkB,UAAU;QACjBlB,KAAKU,YAAY;;;;oBA/DgB;;;qBAiBP;;;sDAJ9B,gBAAAS,CAAiBC;IACfpB,KAAKI,cAAcgB,EAAQ7B;;EAe7B,iBAAA8B;IACErB,KAAKI,cAAcJ,KAAKQ,KAAKjB;;EAqC/B,MAAA+B;IACE,OACEC,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAUE,OAAO7B;QACjB2B,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAUG,KAAKtC;MAAWoC,OAAM;SAGlCD,EAAA;MAAKC,OAAM;OACRxB,KAAKU,YACJa,EAAA;MACEI,OAAO3B,KAAKI;MACZwB,WAAW;MACXC,SAASC,EAAA9B,MAAIF,GAAA;MACbiC,QAAQD,EAAA9B,MAAIS,GAAA;MACZe,OAAM;SAGRD,EAAA;MAAOC,OAAM;OAASxB,KAAKI,eAI/BmB,EAAA;MAAKC,OAAM;QACPxB,KAAKQ,KAAKwB,WAAWhC,KAAKkB,YAC1BK,EAAA;MACEC,OAAM;MACNS,MAAK;MACLC,SAASJ,EAAA9B,MAAIiB,GAAA;OAEbM,EAAA;MAAUG,KAAKjC;MAAW+B,OAAM;UAGlCxB,KAAKQ,KAAKwB,WACVT,EAAA;MACEC,OAAM;MACNS,MAAK;MACLC,SAASJ,EAAA9B,MAAIW,GAAA;MAAc,cAChB;OAEXY,EAAA;MAAUG,KAAKhC;MAAa8B,OAAM;UAKvCxB,KAAKQ,KAAKwB,WACTT,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAMC,OAAM;OAA2B,cAC1BxB,KAAKI,aAAW,QAE7BmB,EAAA;MACEC,OAAM;MACNS,MAAK;MACLC,SAASJ,EAAA9B,MAAIa,GAAA;OAEbU,EAAA;MAAUG,KAAK/B;MAAa6B,OAAM;UAGtCD,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAM;MACNG,OAAO3B,KAAKQ,KAAK2B;MACjBC,KAAI"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EventEmitter } from "../../../stencil-public-runtime";
|
|
2
|
+
import { FileUploadState } from "../types";
|
|
3
|
+
export declare class FileItem {
|
|
4
|
+
#private;
|
|
5
|
+
/** File state containing upload information */
|
|
6
|
+
readonly file: FileUploadState;
|
|
7
|
+
/** Whether the file name can be edited */
|
|
8
|
+
readonly editable: boolean;
|
|
9
|
+
/** Callback when a file is deleted */
|
|
10
|
+
readonly fileDeletedCallback?: (fileId: string) => Promise<void>;
|
|
11
|
+
/** Callback when a file deletion error occurs */
|
|
12
|
+
readonly fileDeletionErrorCallback?: (data: {
|
|
13
|
+
fileName: string;
|
|
14
|
+
error: string;
|
|
15
|
+
}) => Promise<void>;
|
|
16
|
+
/** Updates current name when file prop changes */
|
|
17
|
+
handleFileChange(newFile: FileUploadState): void;
|
|
18
|
+
isEditing: boolean;
|
|
19
|
+
currentName: string;
|
|
20
|
+
/** Emitted when the file name is changed */
|
|
21
|
+
fileNameChange: EventEmitter<{
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Emitted when the file is deleted */
|
|
26
|
+
fileDelete: EventEmitter<string>;
|
|
27
|
+
/** Emitted when the file upload is cancelled */
|
|
28
|
+
fileCancel: EventEmitter<string>;
|
|
29
|
+
componentWillLoad(): void;
|
|
30
|
+
render(): any;
|
|
31
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { UploadedFile, UploadResult } from "./types";
|
|
2
|
+
export declare class FileUploader {
|
|
3
|
+
#private;
|
|
4
|
+
el: HTMLGxIdeFileUploaderElement;
|
|
5
|
+
/** Allowed file types/extensions (e.g. ['.jpg', '.png', 'image/*', 'application/pdf']) */
|
|
6
|
+
readonly types?: string[];
|
|
7
|
+
/** Whether multiple files can be selected */
|
|
8
|
+
readonly multiple: boolean;
|
|
9
|
+
/** Whether file names can be edited */
|
|
10
|
+
readonly canEditName: boolean;
|
|
11
|
+
/** Label to display in the uploader dialog */
|
|
12
|
+
readonly label?: string;
|
|
13
|
+
/** Function to handle file upload */
|
|
14
|
+
readonly uploadFunction: (file: File, progressCallback: (progress: number) => void) => Promise<UploadResult>;
|
|
15
|
+
/** Function to cancel file upload */
|
|
16
|
+
readonly cancelUploadFunction?: (fileId: string) => Promise<void>;
|
|
17
|
+
/** Callback when a file is uploaded successfully */
|
|
18
|
+
readonly fileUploadedCallback?: (file: UploadedFile) => Promise<void>;
|
|
19
|
+
/** Callback when the dialog is canceled */
|
|
20
|
+
readonly dialogCanceledCallback?: () => Promise<void>;
|
|
21
|
+
/** Callback when the dialog is confirmed with files */
|
|
22
|
+
readonly dialogConfirmedCallback?: (files: UploadedFile[]) => Promise<void>;
|
|
23
|
+
/** Callback when upload is cancelled */
|
|
24
|
+
readonly uploadCancelledCallback?: (fileId: string) => Promise<void>;
|
|
25
|
+
/** Callback when file is renamed */
|
|
26
|
+
readonly fileRenamedCallback?: (data: {
|
|
27
|
+
fileId: string;
|
|
28
|
+
newName: string;
|
|
29
|
+
}) => Promise<void>;
|
|
30
|
+
/** Callback when a file validation error occurs */
|
|
31
|
+
readonly fileValidationErrorCallback?: (data: {
|
|
32
|
+
fileName: string;
|
|
33
|
+
error: string;
|
|
34
|
+
}) => Promise<void>;
|
|
35
|
+
/** Callback when a file deletion error occurs */
|
|
36
|
+
readonly fileDeletionErrorCallback?: (data: {
|
|
37
|
+
fileName: string;
|
|
38
|
+
error: string;
|
|
39
|
+
}) => Promise<void>;
|
|
40
|
+
/** Callback when a file is deleted */
|
|
41
|
+
readonly fileDeletedCallback?: (file: UploadedFile) => Promise<void>;
|
|
42
|
+
/** Callback before deleting a file to get confirmation */
|
|
43
|
+
readonly onBeforeDelete?: (file: UploadedFile) => Promise<boolean>;
|
|
44
|
+
private fileStates;
|
|
45
|
+
private isDragging;
|
|
46
|
+
/** Initializes component with locale strings */
|
|
47
|
+
componentWillLoad(): Promise<void>;
|
|
48
|
+
/** Clears the current file selection */
|
|
49
|
+
clear(): Promise<void>;
|
|
50
|
+
render(): any;
|
|
51
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface FileUploadState {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
file: File;
|
|
5
|
+
pending: boolean;
|
|
6
|
+
progress: number;
|
|
7
|
+
remoteId?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
isEditing?: boolean;
|
|
10
|
+
uploadPromise?: any;
|
|
11
|
+
}
|
|
12
|
+
export interface UploadedFile {
|
|
13
|
+
name: string;
|
|
14
|
+
originalName: string;
|
|
15
|
+
remoteId: string;
|
|
16
|
+
}
|
|
17
|
+
export interface FileItemProps {
|
|
18
|
+
file: FileUploadState;
|
|
19
|
+
canEdit?: boolean;
|
|
20
|
+
onNameChange?: (id: string, newName: string) => void;
|
|
21
|
+
onDelete?: (id: string) => void;
|
|
22
|
+
onEdit?: (id: string) => void;
|
|
23
|
+
onCancelUpload?: (id: string) => void;
|
|
24
|
+
}
|
|
25
|
+
export type UploadResult = {
|
|
26
|
+
success: boolean;
|
|
27
|
+
remoteId?: string;
|
|
28
|
+
errors?: {
|
|
29
|
+
[key: string]: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -35,6 +35,7 @@ import { CancelCallback as CancelCallback5, ConfirmCallback as ConfirmCallback4,
|
|
|
35
35
|
import { DirectorySelectorLabels, LabelPosition } from "./components/_helpers/directory-selector/directory-selector";
|
|
36
36
|
import { ModuleServerData, ModuleServerType } from "./components/modules/types";
|
|
37
37
|
import { CancelCallback as CancelCallback6, ConfirmCallback as ConfirmCallback5, SelectSourceCallback } from "./components/modules/edit-module-server/edit-module-server";
|
|
38
|
+
import { FileUploadState, UploadedFile, UploadResult } from "./components/file-uploader/types";
|
|
38
39
|
import { CancelCallback as CancelCallback7, GamConfigData, RepairCallback, SaveCallback } from "./components/gam-installation-settings/gam-installation-settings";
|
|
39
40
|
import { AddObjectsCallback as AddObjectsCallback1, AddReferencesCallback, CancelCallback as CancelCallback8, ExportCallback as ExportCallback1, ExportFileDirectoryCallback, KBPropertiesCallback, KBPropertyType, OptionsCallback as OptionsCallback1 } from "./components/kb-manager-export/types";
|
|
40
41
|
import { CancelCallback as CancelCallback9, ImportCallback, LoadCallback as LoadCallback1, ObjectContextMenuCallback, OptionsCallback as OptionsCallback2 } from "./components/kb-manager-import/kb-manager-import";
|
|
@@ -99,6 +100,7 @@ export { CancelCallback as CancelCallback5, ConfirmCallback as ConfirmCallback4,
|
|
|
99
100
|
export { DirectorySelectorLabels, LabelPosition } from "./components/_helpers/directory-selector/directory-selector";
|
|
100
101
|
export { ModuleServerData, ModuleServerType } from "./components/modules/types";
|
|
101
102
|
export { CancelCallback as CancelCallback6, ConfirmCallback as ConfirmCallback5, SelectSourceCallback } from "./components/modules/edit-module-server/edit-module-server";
|
|
103
|
+
export { FileUploadState, UploadedFile, UploadResult } from "./components/file-uploader/types";
|
|
102
104
|
export { CancelCallback as CancelCallback7, GamConfigData, RepairCallback, SaveCallback } from "./components/gam-installation-settings/gam-installation-settings";
|
|
103
105
|
export { AddObjectsCallback as AddObjectsCallback1, AddReferencesCallback, CancelCallback as CancelCallback8, ExportCallback as ExportCallback1, ExportFileDirectoryCallback, KBPropertiesCallback, KBPropertyType, OptionsCallback as OptionsCallback1 } from "./components/kb-manager-export/types";
|
|
104
106
|
export { CancelCallback as CancelCallback9, ImportCallback, LoadCallback as LoadCallback1, ObjectContextMenuCallback, OptionsCallback as OptionsCallback2 } from "./components/kb-manager-import/kb-manager-import";
|
|
@@ -1019,6 +1021,107 @@ export namespace Components {
|
|
|
1019
1021
|
*/
|
|
1020
1022
|
"value": EntityData | null | undefined;
|
|
1021
1023
|
}
|
|
1024
|
+
interface GxIdeFileItem {
|
|
1025
|
+
/**
|
|
1026
|
+
* Whether the file name can be edited
|
|
1027
|
+
*/
|
|
1028
|
+
"editable": boolean;
|
|
1029
|
+
/**
|
|
1030
|
+
* File state containing upload information
|
|
1031
|
+
*/
|
|
1032
|
+
"file": FileUploadState;
|
|
1033
|
+
/**
|
|
1034
|
+
* Callback when a file is deleted
|
|
1035
|
+
*/
|
|
1036
|
+
"fileDeletedCallback"?: (fileId: string) => Promise<void>;
|
|
1037
|
+
/**
|
|
1038
|
+
* Callback when a file deletion error occurs
|
|
1039
|
+
*/
|
|
1040
|
+
"fileDeletionErrorCallback"?: (data: {
|
|
1041
|
+
fileName: string;
|
|
1042
|
+
error: string;
|
|
1043
|
+
}) => Promise<void>;
|
|
1044
|
+
}
|
|
1045
|
+
interface GxIdeFileUploader {
|
|
1046
|
+
/**
|
|
1047
|
+
* Whether file names can be edited
|
|
1048
|
+
*/
|
|
1049
|
+
"canEditName": boolean;
|
|
1050
|
+
/**
|
|
1051
|
+
* Function to cancel file upload
|
|
1052
|
+
*/
|
|
1053
|
+
"cancelUploadFunction"?: (fileId: string) => Promise<void>;
|
|
1054
|
+
/**
|
|
1055
|
+
* Clears the current file selection
|
|
1056
|
+
*/
|
|
1057
|
+
"clear": () => Promise<void>;
|
|
1058
|
+
/**
|
|
1059
|
+
* Callback when the dialog is canceled
|
|
1060
|
+
*/
|
|
1061
|
+
"dialogCanceledCallback"?: () => Promise<void>;
|
|
1062
|
+
/**
|
|
1063
|
+
* Callback when the dialog is confirmed with files
|
|
1064
|
+
*/
|
|
1065
|
+
"dialogConfirmedCallback"?: (
|
|
1066
|
+
files: UploadedFile[]
|
|
1067
|
+
) => Promise<void>;
|
|
1068
|
+
/**
|
|
1069
|
+
* Callback when a file is deleted
|
|
1070
|
+
*/
|
|
1071
|
+
"fileDeletedCallback"?: (file: UploadedFile) => Promise<void>;
|
|
1072
|
+
/**
|
|
1073
|
+
* Callback when a file deletion error occurs
|
|
1074
|
+
*/
|
|
1075
|
+
"fileDeletionErrorCallback"?: (data: {
|
|
1076
|
+
fileName: string;
|
|
1077
|
+
error: string;
|
|
1078
|
+
}) => Promise<void>;
|
|
1079
|
+
/**
|
|
1080
|
+
* Callback when file is renamed
|
|
1081
|
+
*/
|
|
1082
|
+
"fileRenamedCallback"?: (data: {
|
|
1083
|
+
fileId: string;
|
|
1084
|
+
newName: string;
|
|
1085
|
+
}) => Promise<void>;
|
|
1086
|
+
/**
|
|
1087
|
+
* Callback when a file is uploaded successfully
|
|
1088
|
+
*/
|
|
1089
|
+
"fileUploadedCallback"?: (file: UploadedFile) => Promise<void>;
|
|
1090
|
+
/**
|
|
1091
|
+
* Callback when a file validation error occurs
|
|
1092
|
+
*/
|
|
1093
|
+
"fileValidationErrorCallback"?: (data: {
|
|
1094
|
+
fileName: string;
|
|
1095
|
+
error: string;
|
|
1096
|
+
}) => Promise<void>;
|
|
1097
|
+
/**
|
|
1098
|
+
* Label to display in the uploader dialog
|
|
1099
|
+
*/
|
|
1100
|
+
"label"?: string;
|
|
1101
|
+
/**
|
|
1102
|
+
* Whether multiple files can be selected
|
|
1103
|
+
*/
|
|
1104
|
+
"multiple": boolean;
|
|
1105
|
+
/**
|
|
1106
|
+
* Callback before deleting a file to get confirmation
|
|
1107
|
+
*/
|
|
1108
|
+
"onBeforeDelete"?: (file: UploadedFile) => Promise<boolean>;
|
|
1109
|
+
/**
|
|
1110
|
+
* Allowed file types/extensions (e.g. ['.jpg', '.png', 'image/*', 'application/pdf'])
|
|
1111
|
+
*/
|
|
1112
|
+
"types"?: string[];
|
|
1113
|
+
/**
|
|
1114
|
+
* Callback when upload is cancelled
|
|
1115
|
+
*/
|
|
1116
|
+
"uploadCancelledCallback"?: (fileId: string) => Promise<void>;
|
|
1117
|
+
/**
|
|
1118
|
+
* Function to handle file upload
|
|
1119
|
+
*/
|
|
1120
|
+
"uploadFunction": (
|
|
1121
|
+
file: File,
|
|
1122
|
+
progressCallback: (progress: number) => void
|
|
1123
|
+
) => Promise<UploadResult>;
|
|
1124
|
+
}
|
|
1022
1125
|
interface GxIdeGamInstallationSettings {
|
|
1023
1126
|
/**
|
|
1024
1127
|
* Determines 'Panels' checkbox activation, enabled only if an SD generator is in the KB. Otherwise, the checkbox is disabled.
|
|
@@ -2428,6 +2531,10 @@ export interface GxIdeEntitySelectorCustomEvent<T> extends CustomEvent<T> {
|
|
|
2428
2531
|
detail: T;
|
|
2429
2532
|
target: HTMLGxIdeEntitySelectorElement;
|
|
2430
2533
|
}
|
|
2534
|
+
export interface GxIdeFileItemCustomEvent<T> extends CustomEvent<T> {
|
|
2535
|
+
detail: T;
|
|
2536
|
+
target: HTMLGxIdeFileItemElement;
|
|
2537
|
+
}
|
|
2431
2538
|
export interface GxIdeKbManagerImportCustomEvent<T> extends CustomEvent<T> {
|
|
2432
2539
|
detail: T;
|
|
2433
2540
|
target: HTMLGxIdeKbManagerImportElement;
|
|
@@ -2817,6 +2924,31 @@ declare global {
|
|
|
2817
2924
|
prototype: HTMLGxIdeEntitySelectorElement;
|
|
2818
2925
|
new (): HTMLGxIdeEntitySelectorElement;
|
|
2819
2926
|
};
|
|
2927
|
+
interface HTMLGxIdeFileItemElementEventMap {
|
|
2928
|
+
"fileNameChange": { id: string; name: string };
|
|
2929
|
+
"fileDelete": string;
|
|
2930
|
+
"fileCancel": string;
|
|
2931
|
+
}
|
|
2932
|
+
interface HTMLGxIdeFileItemElement extends Components.GxIdeFileItem, HTMLStencilElement {
|
|
2933
|
+
addEventListener<K extends keyof HTMLGxIdeFileItemElementEventMap>(type: K, listener: (this: HTMLGxIdeFileItemElement, ev: GxIdeFileItemCustomEvent<HTMLGxIdeFileItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2934
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2935
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2936
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2937
|
+
removeEventListener<K extends keyof HTMLGxIdeFileItemElementEventMap>(type: K, listener: (this: HTMLGxIdeFileItemElement, ev: GxIdeFileItemCustomEvent<HTMLGxIdeFileItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2938
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2939
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2940
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2941
|
+
}
|
|
2942
|
+
var HTMLGxIdeFileItemElement: {
|
|
2943
|
+
prototype: HTMLGxIdeFileItemElement;
|
|
2944
|
+
new (): HTMLGxIdeFileItemElement;
|
|
2945
|
+
};
|
|
2946
|
+
interface HTMLGxIdeFileUploaderElement extends Components.GxIdeFileUploader, HTMLStencilElement {
|
|
2947
|
+
}
|
|
2948
|
+
var HTMLGxIdeFileUploaderElement: {
|
|
2949
|
+
prototype: HTMLGxIdeFileUploaderElement;
|
|
2950
|
+
new (): HTMLGxIdeFileUploaderElement;
|
|
2951
|
+
};
|
|
2820
2952
|
interface HTMLGxIdeGamInstallationSettingsElement extends Components.GxIdeGamInstallationSettings, HTMLStencilElement {
|
|
2821
2953
|
}
|
|
2822
2954
|
var HTMLGxIdeGamInstallationSettingsElement: {
|
|
@@ -3320,6 +3452,8 @@ declare global {
|
|
|
3320
3452
|
"gx-ide-edit-module-server": HTMLGxIdeEditModuleServerElement;
|
|
3321
3453
|
"gx-ide-empty-state": HTMLGxIdeEmptyStateElement;
|
|
3322
3454
|
"gx-ide-entity-selector": HTMLGxIdeEntitySelectorElement;
|
|
3455
|
+
"gx-ide-file-item": HTMLGxIdeFileItemElement;
|
|
3456
|
+
"gx-ide-file-uploader": HTMLGxIdeFileUploaderElement;
|
|
3323
3457
|
"gx-ide-gam-installation-settings": HTMLGxIdeGamInstallationSettingsElement;
|
|
3324
3458
|
"gx-ide-kb-manager-export": HTMLGxIdeKbManagerExportElement;
|
|
3325
3459
|
"gx-ide-kb-manager-import": HTMLGxIdeKbManagerImportElement;
|
|
@@ -4285,6 +4419,115 @@ declare namespace LocalJSX {
|
|
|
4285
4419
|
*/
|
|
4286
4420
|
"value"?: EntityData | null | undefined;
|
|
4287
4421
|
}
|
|
4422
|
+
interface GxIdeFileItem {
|
|
4423
|
+
/**
|
|
4424
|
+
* Whether the file name can be edited
|
|
4425
|
+
*/
|
|
4426
|
+
"editable"?: boolean;
|
|
4427
|
+
/**
|
|
4428
|
+
* File state containing upload information
|
|
4429
|
+
*/
|
|
4430
|
+
"file": FileUploadState;
|
|
4431
|
+
/**
|
|
4432
|
+
* Callback when a file is deleted
|
|
4433
|
+
*/
|
|
4434
|
+
"fileDeletedCallback"?: (fileId: string) => Promise<void>;
|
|
4435
|
+
/**
|
|
4436
|
+
* Callback when a file deletion error occurs
|
|
4437
|
+
*/
|
|
4438
|
+
"fileDeletionErrorCallback"?: (data: {
|
|
4439
|
+
fileName: string;
|
|
4440
|
+
error: string;
|
|
4441
|
+
}) => Promise<void>;
|
|
4442
|
+
/**
|
|
4443
|
+
* Emitted when the file upload is cancelled
|
|
4444
|
+
*/
|
|
4445
|
+
"onFileCancel"?: (event: GxIdeFileItemCustomEvent<string>) => void;
|
|
4446
|
+
/**
|
|
4447
|
+
* Emitted when the file is deleted
|
|
4448
|
+
*/
|
|
4449
|
+
"onFileDelete"?: (event: GxIdeFileItemCustomEvent<string>) => void;
|
|
4450
|
+
/**
|
|
4451
|
+
* Emitted when the file name is changed
|
|
4452
|
+
*/
|
|
4453
|
+
"onFileNameChange"?: (event: GxIdeFileItemCustomEvent<{ id: string; name: string }>) => void;
|
|
4454
|
+
}
|
|
4455
|
+
interface GxIdeFileUploader {
|
|
4456
|
+
/**
|
|
4457
|
+
* Whether file names can be edited
|
|
4458
|
+
*/
|
|
4459
|
+
"canEditName"?: boolean;
|
|
4460
|
+
/**
|
|
4461
|
+
* Function to cancel file upload
|
|
4462
|
+
*/
|
|
4463
|
+
"cancelUploadFunction"?: (fileId: string) => Promise<void>;
|
|
4464
|
+
/**
|
|
4465
|
+
* Callback when the dialog is canceled
|
|
4466
|
+
*/
|
|
4467
|
+
"dialogCanceledCallback"?: () => Promise<void>;
|
|
4468
|
+
/**
|
|
4469
|
+
* Callback when the dialog is confirmed with files
|
|
4470
|
+
*/
|
|
4471
|
+
"dialogConfirmedCallback"?: (
|
|
4472
|
+
files: UploadedFile[]
|
|
4473
|
+
) => Promise<void>;
|
|
4474
|
+
/**
|
|
4475
|
+
* Callback when a file is deleted
|
|
4476
|
+
*/
|
|
4477
|
+
"fileDeletedCallback"?: (file: UploadedFile) => Promise<void>;
|
|
4478
|
+
/**
|
|
4479
|
+
* Callback when a file deletion error occurs
|
|
4480
|
+
*/
|
|
4481
|
+
"fileDeletionErrorCallback"?: (data: {
|
|
4482
|
+
fileName: string;
|
|
4483
|
+
error: string;
|
|
4484
|
+
}) => Promise<void>;
|
|
4485
|
+
/**
|
|
4486
|
+
* Callback when file is renamed
|
|
4487
|
+
*/
|
|
4488
|
+
"fileRenamedCallback"?: (data: {
|
|
4489
|
+
fileId: string;
|
|
4490
|
+
newName: string;
|
|
4491
|
+
}) => Promise<void>;
|
|
4492
|
+
/**
|
|
4493
|
+
* Callback when a file is uploaded successfully
|
|
4494
|
+
*/
|
|
4495
|
+
"fileUploadedCallback"?: (file: UploadedFile) => Promise<void>;
|
|
4496
|
+
/**
|
|
4497
|
+
* Callback when a file validation error occurs
|
|
4498
|
+
*/
|
|
4499
|
+
"fileValidationErrorCallback"?: (data: {
|
|
4500
|
+
fileName: string;
|
|
4501
|
+
error: string;
|
|
4502
|
+
}) => Promise<void>;
|
|
4503
|
+
/**
|
|
4504
|
+
* Label to display in the uploader dialog
|
|
4505
|
+
*/
|
|
4506
|
+
"label"?: string;
|
|
4507
|
+
/**
|
|
4508
|
+
* Whether multiple files can be selected
|
|
4509
|
+
*/
|
|
4510
|
+
"multiple"?: boolean;
|
|
4511
|
+
/**
|
|
4512
|
+
* Callback before deleting a file to get confirmation
|
|
4513
|
+
*/
|
|
4514
|
+
"onBeforeDelete"?: (file: UploadedFile) => Promise<boolean>;
|
|
4515
|
+
/**
|
|
4516
|
+
* Allowed file types/extensions (e.g. ['.jpg', '.png', 'image/*', 'application/pdf'])
|
|
4517
|
+
*/
|
|
4518
|
+
"types"?: string[];
|
|
4519
|
+
/**
|
|
4520
|
+
* Callback when upload is cancelled
|
|
4521
|
+
*/
|
|
4522
|
+
"uploadCancelledCallback"?: (fileId: string) => Promise<void>;
|
|
4523
|
+
/**
|
|
4524
|
+
* Function to handle file upload
|
|
4525
|
+
*/
|
|
4526
|
+
"uploadFunction": (
|
|
4527
|
+
file: File,
|
|
4528
|
+
progressCallback: (progress: number) => void
|
|
4529
|
+
) => Promise<UploadResult>;
|
|
4530
|
+
}
|
|
4288
4531
|
interface GxIdeGamInstallationSettings {
|
|
4289
4532
|
/**
|
|
4290
4533
|
* Determines 'Panels' checkbox activation, enabled only if an SD generator is in the KB. Otherwise, the checkbox is disabled.
|
|
@@ -5697,6 +5940,8 @@ declare namespace LocalJSX {
|
|
|
5697
5940
|
"gx-ide-edit-module-server": GxIdeEditModuleServer;
|
|
5698
5941
|
"gx-ide-empty-state": GxIdeEmptyState;
|
|
5699
5942
|
"gx-ide-entity-selector": GxIdeEntitySelector;
|
|
5943
|
+
"gx-ide-file-item": GxIdeFileItem;
|
|
5944
|
+
"gx-ide-file-uploader": GxIdeFileUploader;
|
|
5700
5945
|
"gx-ide-gam-installation-settings": GxIdeGamInstallationSettings;
|
|
5701
5946
|
"gx-ide-kb-manager-export": GxIdeKbManagerExport;
|
|
5702
5947
|
"gx-ide-kb-manager-import": GxIdeKbManagerImport;
|
|
@@ -5771,6 +6016,8 @@ declare module "@stencil/core" {
|
|
|
5771
6016
|
"gx-ide-edit-module-server": LocalJSX.GxIdeEditModuleServer & JSXBase.HTMLAttributes<HTMLGxIdeEditModuleServerElement>;
|
|
5772
6017
|
"gx-ide-empty-state": LocalJSX.GxIdeEmptyState & JSXBase.HTMLAttributes<HTMLGxIdeEmptyStateElement>;
|
|
5773
6018
|
"gx-ide-entity-selector": LocalJSX.GxIdeEntitySelector & JSXBase.HTMLAttributes<HTMLGxIdeEntitySelectorElement>;
|
|
6019
|
+
"gx-ide-file-item": LocalJSX.GxIdeFileItem & JSXBase.HTMLAttributes<HTMLGxIdeFileItemElement>;
|
|
6020
|
+
"gx-ide-file-uploader": LocalJSX.GxIdeFileUploader & JSXBase.HTMLAttributes<HTMLGxIdeFileUploaderElement>;
|
|
5774
6021
|
"gx-ide-gam-installation-settings": LocalJSX.GxIdeGamInstallationSettings & JSXBase.HTMLAttributes<HTMLGxIdeGamInstallationSettingsElement>;
|
|
5775
6022
|
"gx-ide-kb-manager-export": LocalJSX.GxIdeKbManagerExport & JSXBase.HTMLAttributes<HTMLGxIdeKbManagerExportElement>;
|
|
5776
6023
|
"gx-ide-kb-manager-import": LocalJSX.GxIdeKbManagerImport & JSXBase.HTMLAttributes<HTMLGxIdeKbManagerImportElement>;
|