@genexus/genexus-ide-ui 1.0.68 → 1.0.69
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-new-version.cjs.entry.js +101 -0
- package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +2 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-sign-in.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.en.json +16 -0
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.ja.json +16 -0
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.zh.json +16 -0
- package/dist/collection/components/new-version/new-version.css +17 -0
- package/dist/collection/components/new-version/new-version.js +181 -0
- package/dist/collection/components/new-version/new-version.js.map +1 -0
- package/dist/collection/components/select-kb-items/select-kb-items.js +20 -1
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +3 -3
- package/dist/collection/components/sign-in/sign-in.js +1 -1
- package/dist/collection/components/sign-in/sign-in.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-new-version.d.ts +11 -0
- package/dist/components/gx-ide-new-version.js +124 -0
- package/dist/components/gx-ide-new-version.js.map +1 -0
- package/dist/components/gx-ide-select-kb-items.js +3 -1
- package/dist/components/gx-ide-select-kb-items.js.map +1 -1
- package/dist/components/gx-ide-sign-in.js +1 -1
- package/dist/components/gx-ide-sign-in.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-new-version.entry.js +97 -0
- package/dist/esm/gx-ide-new-version.entry.js.map +1 -0
- package/dist/esm/gx-ide-select-kb-items.entry.js +2 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-sign-in.entry.js +1 -1
- package/dist/esm/gx-ide-sign-in.entry.js.map +1 -1
- 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/new-version/langs/new-version.lang.en.json +16 -0
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.ja.json +16 -0
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.zh.json +16 -0
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +3 -3
- package/dist/genexus-ide-ui/{p-842a081e.entry.js → p-6b957e82.entry.js} +2 -4
- package/dist/genexus-ide-ui/p-6b957e82.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6331b2f2.entry.js → p-72d32141.entry.js} +10 -8
- package/dist/genexus-ide-ui/p-72d32141.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-c91af626.entry.js +149 -0
- package/dist/genexus-ide-ui/p-c91af626.entry.js.map +1 -0
- package/dist/types/components/new-version/new-version.d.ts +36 -0
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +4 -0
- package/dist/types/components.d.ts +51 -0
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-6331b2f2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-842a081e.entry.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"componentName": "New Version",
|
|
3
|
+
"buttons": {
|
|
4
|
+
"create": "Create",
|
|
5
|
+
"cancel": "Cancel"
|
|
6
|
+
},
|
|
7
|
+
"labels": {
|
|
8
|
+
"name": "Name",
|
|
9
|
+
"description": "Description",
|
|
10
|
+
"setActive": "Set new version as active"
|
|
11
|
+
},
|
|
12
|
+
"placeHolders": {
|
|
13
|
+
"name": "Version name",
|
|
14
|
+
"description": "Version description"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"illustrationAriaLabel": "GeneXus Next geometric shapes illustration",
|
|
3
3
|
"illustrationFigureAriaLabel": "Geometric shape illustration",
|
|
4
4
|
"illustrationAlternativeText": "GeneXus Next isologotype",
|
|
5
|
-
"title": "
|
|
6
|
-
"descriptionText": "
|
|
5
|
+
"title": "Log in to GeneXus Next Desktop",
|
|
6
|
+
"descriptionText": "The most advanced professional IDE to build and evolve Intelligent Enterprise Systems. ",
|
|
7
7
|
"byContinuingTextFirstPart": "By continuing you agree to ",
|
|
8
8
|
"byContinuingCallBackText": "terms and conditions",
|
|
9
|
-
"signInButtonCaption": "
|
|
9
|
+
"signInButtonCaption": "Log In"
|
|
10
10
|
}
|
|
@@ -66,9 +66,7 @@ const m = class {
|
|
|
66
66
|
class: "slide__sign-in-title"
|
|
67
67
|
}, l(this, d, "f").title)), s("div", {
|
|
68
68
|
class: "slide__sign-in-description"
|
|
69
|
-
}, s("p", {
|
|
70
|
-
hidden: true
|
|
71
|
-
}, s("span", null, l(this, d, "f").descriptionText)), s("span", null, l(this, d, "f").byContinuingTextFirstPart, s("a", {
|
|
69
|
+
}, s("p", null, s("span", null, l(this, d, "f").descriptionText)), s("span", null, l(this, d, "f").byContinuingTextFirstPart, s("a", {
|
|
72
70
|
class: "terms-conditions",
|
|
73
71
|
onClick: this.termsCallback
|
|
74
72
|
}, l(this, d, "f").byContinuingCallBackText))), s("div", null, s("button", {
|
|
@@ -89,4 +87,4 @@ d = new WeakMap;
|
|
|
89
87
|
m.style = a;
|
|
90
88
|
|
|
91
89
|
export { m as gx_ide_sign_in };
|
|
92
|
-
//# sourceMappingURL=p-
|
|
90
|
+
//# sourceMappingURL=p-6b957e82.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["signInCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","GxIdeUiSplash","_GxIdeUiSplash_componentLocale","set","this","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","h","Host","model","class","role","__classPrivateFieldGet","illustrationAriaLabel","src","alt","illustrationFigureAriaLabel","illustrationAlternativeText","title","descriptionText","byContinuingTextFirstPart","onClick","termsCallback","byContinuingCallBackText","signInCallback","signInButtonCaption"],"sources":["src/components/sign-in/sign-in.scss?tag=gx-ide-sign-in&encapsulation=shadow","src/components/sign-in/sign-in.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n max-inline-size: 1100px;\n grid-template-columns: 1fr 550px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n max-block-size: 700px;\n }\n\n &__sign-in {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n }\n\n &__sign-in-container {\n display: grid;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n place-self: center;\n }\n\n &__sign-in-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__sign-in-title {\n font-size: var(--mer-font__size--xl);\n color: var(--mer-text__on-surface);\n letter-spacing: 0.02em;\n font-weight: var(--mer-font__weight--semi-bold);\n }\n\n &__sign-in-description {\n display: grid;\n color: var(--mer-text__complementary);\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n.sign-in-btn {\n padding-inline-start: var(--mer-spacing--3xl) !important;\n padding-inline-end: var(--mer-spacing--3xl) !important;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, getAssetPath } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\"\n];\n\n@Component({\n tag: \"gx-ide-sign-in\",\n styleUrl: \"sign-in.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in\"]\n})\nexport class GxIdeUiSplash {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeSignInElement;\n\n /**\n * Callback executed when the user click on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user click the Sign In button\n */\n @Prop() readonly signInCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.illustrationAriaLabel}\n >\n <img\n // base image (acts like a background)\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt={this.#componentLocale.illustrationFigureAriaLabel}\n />\n </div>\n\n <div class=\"slide__sign-in\">\n <div class=\"slide__sign-in-container\">\n <header class=\"slide__sign-in-header\">\n <img\n src={ICON_NEXT}\n alt={this.#componentLocale.illustrationAlternativeText}\n />\n <h2 class=\"slide__sign-in-title\">\n {this.#componentLocale.title}\n </h2>\n </header>\n <div class=\"slide__sign-in-description\">\n <p>\n <span>{this.#componentLocale.descriptionText}</span>\n </p>\n <span>\n {this.#componentLocale.byContinuingTextFirstPart}\n <a class=\"terms-conditions\" onClick={this.termsCallback}>\n {this.#componentLocale.byContinuingCallBackText}\n </a>\n </span>\n </div>\n <div>\n <button\n class=\"button-primary sign-in-btn\"\n onClick={this.signInCallback}\n >\n {this.#componentLocale.signInButtonCaption}\n </button>\n </div>\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAY;;;;;;;;;;;;;;;;;ACOlB,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAEF,MAAME,IAA8B,EAClC,qBACA,oBACA;;MASWC,IAAa;;;;;;;QAKxBC,EAAAC,IAAAC,WAAA;;;;EAcA,uBAAMC;IACJC,EAAAF,MAAIF,SAA0BK,EAAOC,oBAAoBJ,KAAKK,KAAG;;EAGnE,MAAAC;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOb;QACjBW,EAAA;MAASG,OAAM;OACbH,EAAA;MACEG,OAAM;MACNC,MAAK;MAAK,cACEC,EAAAZ,MAAIF,GAAA,KAAkBe;OAElCN,EAAA;;MAEEO,KAAKrB;MACLiB,OAAM;MACNK,KAAKH,EAAAZ,MAAIF,GAAA,KAAkBkB;SAI/BT,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAQG,OAAM;OACZH,EAAA;MACEO,KAAKnB;MACLoB,KAAKH,EAAAZ,MAAIF,GAAA,KAAkBmB;QAE7BV,EAAA;MAAIG,OAAM;OACPE,EAAAZ,MAAIF,GAAA,KAAkBoB,SAG3BX,EAAA;MAAKG,OAAM;OACTH,EAAA,WACEA,EAAA,cAAOK,EAAAZ,MAAIF,GAAA,KAAkBqB,mBAE/BZ,EAAA,cACGK,EAAAZ,MAAIF,GAAA,KAAkBsB,2BACvBb,EAAA;MAAGG,OAAM;MAAmBW,SAASrB,KAAKsB;OACvCV,EAAAZ,MAAIF,GAAA,KAAkByB,6BAI7BhB,EAAA,aACEA,EAAA;MACEG,OAAM;MACNW,SAASrB,KAAKwB;OAEbZ,EAAAZ,MAAIF,GAAA,KAAkB2B"}
|
|
@@ -209,9 +209,9 @@ const A = "tree";
|
|
|
209
209
|
|
|
210
210
|
const H = "list";
|
|
211
211
|
|
|
212
|
-
const
|
|
212
|
+
const O = "on";
|
|
213
213
|
|
|
214
|
-
const
|
|
214
|
+
const P = class {
|
|
215
215
|
constructor(i) {
|
|
216
216
|
t(this, i);
|
|
217
217
|
l.set(this, void 0);
|
|
@@ -332,7 +332,7 @@ const z = class {
|
|
|
332
332
|
h(this, T, "f").call(this, h(this, m, "f"));
|
|
333
333
|
}));
|
|
334
334
|
N.set(this, (t => {
|
|
335
|
-
this.toggleCheckboxes = t.detail ===
|
|
335
|
+
this.toggleCheckboxes = t.detail === O;
|
|
336
336
|
}));
|
|
337
337
|
this.nodeListFlattenedTreeModel = [];
|
|
338
338
|
this.loading = true;
|
|
@@ -342,6 +342,7 @@ const z = class {
|
|
|
342
342
|
this.toggleCheckboxes = true;
|
|
343
343
|
this.cancelCallback = undefined;
|
|
344
344
|
this.checkboxType = undefined;
|
|
345
|
+
this.expandOnClick = true;
|
|
345
346
|
this.checkedChanged = undefined;
|
|
346
347
|
this.confirmCallback = undefined;
|
|
347
348
|
this.dialogActions = [];
|
|
@@ -421,8 +422,8 @@ const z = class {
|
|
|
421
422
|
}, "Toggle Checkboxes"), s("ch-checkbox", {
|
|
422
423
|
class: "checkbox",
|
|
423
424
|
id: "toggle-checkboxes",
|
|
424
|
-
checkedValue:
|
|
425
|
-
value:
|
|
425
|
+
checkedValue: O,
|
|
426
|
+
value: O,
|
|
426
427
|
onInput: h(this, N, "f")
|
|
427
428
|
}))), s("ch-edit", {
|
|
428
429
|
class: "input pattern-filter",
|
|
@@ -442,6 +443,7 @@ const z = class {
|
|
|
442
443
|
onItemContextmenu: h(this, y, "f"),
|
|
443
444
|
onCheckedItemsChange: h(this, v, "f"),
|
|
444
445
|
onSelectedItemsChange: h(this, _, "f"),
|
|
446
|
+
expandOnClick: this.expandOnClick,
|
|
445
447
|
multiSelection: this.multiSelection,
|
|
446
448
|
filter: this.searchPatternValue,
|
|
447
449
|
filterType: "caption",
|
|
@@ -470,7 +472,7 @@ k = new WeakMap, y = new WeakMap, x = new WeakMap, W = new WeakMap, I = new Weak
|
|
|
470
472
|
M = new WeakMap, _ = new WeakMap, C = new WeakMap, S = new WeakMap, T = new WeakMap,
|
|
471
473
|
j = new WeakMap, N = new WeakMap;
|
|
472
474
|
|
|
473
|
-
|
|
475
|
+
P.style = r;
|
|
474
476
|
|
|
475
|
-
export {
|
|
476
|
-
//# sourceMappingURL=p-
|
|
477
|
+
export { P as gx_ide_select_kb_items };
|
|
478
|
+
//# sourceMappingURL=p-72d32141.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["convertItemsNodeListToFlattenedTreeViewModel","itemsList","checkboxType","itemsListFlattenedTreeViewModel","processNode","item","leaf","_a","nodes","length","checkbox","metaData","JSON","stringify","versionType","type","push","id","toString","metadata","caption","name","checked","expanded","startImgSrc","iconStart","endImgSrc","iconEnd","items","selected","forEach","childNode","convertItemsListToTreeViewModel","itemsListTreeViewModel","order","parseInt","findItemNode","itemNode","result","findItemInArray","itemsNodes","setAllLeafsCheckedFalse","uncheck","unselectAllNodes","unselect","checkItems","idsChecked","itemFind","expandItems","selectItems","idsSelected","searchInNode","node","parents","searchParentsItems","ids","rootItem","results","selectKbItemsCss","CSS_BUNDLES","SYSTEM_SEARCH_ICON","getIconPath","category","colorType","VIEW_AS_TREE_ID","VIEW_AS_LIST_ID","TOGGLE_CHECKBOXES_CHECKED_VALUE","GxIdeSelectKbItems","_GxIdeSelectKbItems__componentLocale","set","this","_GxIdeSelectKbItems_checkedNodesIds","_GxIdeSelectKbItems_chShortcutsEl","_GxIdeSelectKbItems_selectedNodesIds","_GxIdeSelectKbItems_shortcutsSrc","getAssetPath","_GxIdeSelectKbItems_updatedModelList","_GxIdeSelectKbItems_viewItemsAsModel","_GxIdeSelectKbItems_treeViewRenderEl","_GxIdeSelectKbItems_cancelHandler","cancelCallback","_GxIdeSelectKbItems_checkedItemsChangeHandler","async","e","checkedNodesIds","detail","__classPrivateFieldSet","__classPrivateFieldGet","checkedChanged","_GxIdeSelectKbItems_confirmHandler","confirmCallback","_GxIdeSelectKbItems_contextMenuHandler","itemContextMenuCallback","info","isSelected","find","updateItemsProperties","clientX","contextmenuEvent","clientY","selection","_GxIdeSelectKbItems_executeDialogAction","callback","_GxIdeSelectKbItems_patternSearchValueChangedHandler","event","searchPatternValue","_GxIdeSelectKbItems_renderActionButtons","h","dialogActions","map","action","class","part","onClick","call","disabled","loading","_GxIdeSelectKbItems_renderFooter","footer","cancel","select","_GxIdeSelectKbItems_selectedItemsChangeHandler","selectedNodesIds","selectionChanged","_GxIdeSelectKbItems_toggleAndSelectNodesInModelItems","selectedItemsIds","nodesToToggle","newItemsSelected","newItemsExpanded","_GxIdeSelectKbItems_updateViews","_GxIdeSelectKbItems_toggleCheckedNodesInModelItems","newItemsList","nodeVersionsListTreeModel","nodeListFlattenedTreeModel","_GxIdeSelectKbItems_viewItemsAsChangedHandler","selectedViewType","nodesVersionsViewType","_GxIdeSelectKbItems_toggleCheckboxesChangedHandler","toggleCheckboxes","watchNodeListHandler","componentWillLoad","Locale","getComponentStrings","el","value","main","tree","suspendShortcuts","suspend","updateSelection","render","Host","model","src","ref","htmlFor","onChange","checkedValue","onInput","placeholder","header","searchPatternPlaceholder","loaderTitle","loader","title","show","expandableButton","onItemContextmenu","onCheckedItemsChange","onSelectedItemsChange","expandOnClick","multiSelection","filter","filterType"],"sources":["src/components/select-kb-items/helpers.tsx","src/components/select-kb-items/select-kb-items.scss?tag=gx-ide-select-kb-items&encapsulation=shadow","src/components/select-kb-items/select-kb-items.tsx"],"sourcesContent":["import { ItemNode, CheckboxType } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n id: item.id.toString(),\n metadata: metaData,\n caption: item.name,\n checked: item.checked,\n checkbox: checkbox,\n expanded: item.expanded,\n startImgSrc: item.iconStart,\n endImgSrc: item.iconEnd,\n items: null,\n leaf: leaf,\n selected: item.selected\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const leaf = !item.nodes?.length;\n const expanded = item.expanded;\n const iconStart = item.iconStart;\n const iconEnd = item.iconEnd;\n const order = parseInt(item.id);\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListTreeViewModel.push({\n id: item.id.toString(),\n metadata: metaData,\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n order: order,\n selected: item.selected,\n expanded: expanded,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n",":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.view-mode__toggle-checkboxes {\n grid-template-columns: max-content max-content;\n}\n.field__items-view-type {\n align-items: center;\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n.field__toggle-checkboxes {\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n\n.trees {\n position: relative;\n}\n","import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #checkedNodesIds: string[] = [];\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean = true;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n if (newItemsList.length > 0) {\n this.loading = false;\n }\n this.#updateViews(newItemsList);\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.watchNodeListHandler(this.itemsList);\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.#checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.#checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.#checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.#checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.#checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.#checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header class=\"control-header field-group spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group view-mode__toggle-checkboxes\">\n <div class=\"field field-inline field__items-view-type\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && (\n <div class=\"field field-inline field__toggle-checkboxes\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <ch-edit\n class=\"input pattern-filter\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n ></ch-edit>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {(this.dialogActions.length > 0 ||\n this.cancelCallback ||\n this.confirmCallback) &&\n this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n selected?: boolean;\n type: ItemType;\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { r as e, h as t, H as s, a as i } from "./p-25a9f1d7.js";
|
|
2
|
+
|
|
3
|
+
import { L as n } from "./p-311eedf3.js";
|
|
4
|
+
|
|
5
|
+
const o = ":host{display:grid;block-size:100%;grid-template-rows:1fr max-content}.field-group{grid-auto-rows:max-content}.main{overflow:auto}.section{display:contents}";
|
|
6
|
+
|
|
7
|
+
var a = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, n) {
|
|
8
|
+
if (i === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (i === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof t === "function" ? e !== t || !n : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return i === "a" ? n.call(e, s) : n ? n.value = s : t.set(e, s), s;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
var r = undefined && undefined.__classPrivateFieldGet || function(e, t, s, i) {
|
|
15
|
+
if (s === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
16
|
+
if (typeof t === "function" ? e !== t || !i : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
17
|
+
return s === "m" ? i : s === "a" ? i.call(e) : i ? i.value : t.get(e);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var c, d, l, h, f, u;
|
|
21
|
+
|
|
22
|
+
const p = [ "resets/box-sizing", "utils/form", "utils/spacing", "utils/layout", "chameleon/scrollbar", "components/checkbox", "components/button", "components/edit" ];
|
|
23
|
+
|
|
24
|
+
// ch-checkbox
|
|
25
|
+
const w = "on";
|
|
26
|
+
|
|
27
|
+
const v = "set-new-version-as-active";
|
|
28
|
+
|
|
29
|
+
const m = class {
|
|
30
|
+
constructor(t) {
|
|
31
|
+
e(this, t);
|
|
32
|
+
/**
|
|
33
|
+
* The component hard-coded strings translations.
|
|
34
|
+
*/
|
|
35
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
36
|
+
c.set(this, void 0);
|
|
37
|
+
d.set(this, (e => {
|
|
38
|
+
const t = e.target;
|
|
39
|
+
if (t.id === v) {
|
|
40
|
+
this.setNewVersionAsActive = e.detail === w;
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
l.set(this, (e => {
|
|
44
|
+
this.versionName = e.detail;
|
|
45
|
+
}));
|
|
46
|
+
h.set(this, (e => {
|
|
47
|
+
this.versionDescription = e.detail;
|
|
48
|
+
}));
|
|
49
|
+
f.set(this, (async () => {
|
|
50
|
+
this.cancelCallback();
|
|
51
|
+
}));
|
|
52
|
+
u.set(this, (async () => {
|
|
53
|
+
const e = {
|
|
54
|
+
versionName: this.versionName,
|
|
55
|
+
versionDescription: this.versionDescription,
|
|
56
|
+
setNewVersionAsActive: this.setNewVersionAsActive
|
|
57
|
+
};
|
|
58
|
+
this.createCallback(e);
|
|
59
|
+
}));
|
|
60
|
+
this.versionName = undefined;
|
|
61
|
+
this.versionDescription = undefined;
|
|
62
|
+
this.setNewVersionAsActive = false;
|
|
63
|
+
this.cancelCallback = undefined;
|
|
64
|
+
this.createCallback = undefined;
|
|
65
|
+
this.defaultInputValues = undefined;
|
|
66
|
+
}
|
|
67
|
+
defaultInputValuesChanged(e) {
|
|
68
|
+
this.versionName = e === null || e === void 0 ? void 0 : e.versionName;
|
|
69
|
+
this.versionDescription = e === null || e === void 0 ? void 0 : e.versionDescription;
|
|
70
|
+
}
|
|
71
|
+
async componentWillLoad() {
|
|
72
|
+
a(this, c, await n.getComponentStrings(this.el), "f");
|
|
73
|
+
this.defaultInputValuesChanged(this.defaultInputValues);
|
|
74
|
+
}
|
|
75
|
+
render() {
|
|
76
|
+
const e = !this.versionName || this.versionName.length === 0;
|
|
77
|
+
return t(s, {
|
|
78
|
+
class: "widget"
|
|
79
|
+
}, t("ch-theme", {
|
|
80
|
+
model: p
|
|
81
|
+
}), t("section", {
|
|
82
|
+
class: "section"
|
|
83
|
+
}, t("div", {
|
|
84
|
+
class: "main scrollable field-group spacing-body"
|
|
85
|
+
}, t("div", {
|
|
86
|
+
class: "field field-block"
|
|
87
|
+
}, t("label", {
|
|
88
|
+
class: "label",
|
|
89
|
+
htmlFor: "version-name"
|
|
90
|
+
}, r(this, c, "f").labels.name), t("ch-edit", {
|
|
91
|
+
type: "text",
|
|
92
|
+
id: "version-name",
|
|
93
|
+
class: "input",
|
|
94
|
+
placeholder: r(this, c, "f").placeHolders.name,
|
|
95
|
+
value: this.versionName,
|
|
96
|
+
onInput: r(this, l, "f")
|
|
97
|
+
})), t("div", {
|
|
98
|
+
class: "field field-block"
|
|
99
|
+
}, t("label", {
|
|
100
|
+
class: "label",
|
|
101
|
+
htmlFor: "version-description"
|
|
102
|
+
}, r(this, c, "f").labels.description), t("ch-edit", {
|
|
103
|
+
type: "text",
|
|
104
|
+
id: "version-description",
|
|
105
|
+
class: "input",
|
|
106
|
+
placeholder: r(this, c, "f").placeHolders.description,
|
|
107
|
+
value: this.versionDescription,
|
|
108
|
+
onInput: r(this, h, "f")
|
|
109
|
+
})), t("div", {
|
|
110
|
+
class: "field field-inline"
|
|
111
|
+
}, t("ch-checkbox", {
|
|
112
|
+
class: "checkbox",
|
|
113
|
+
id: "set-new-version-as-active",
|
|
114
|
+
checkedValue: w,
|
|
115
|
+
onInput: r(this, d, "f"),
|
|
116
|
+
caption: r(this, c, "f").labels.setActive
|
|
117
|
+
}))), t("footer", {
|
|
118
|
+
class: "control-footer-with-border spacing-body"
|
|
119
|
+
}, t("div", {
|
|
120
|
+
class: "buttons-spacer"
|
|
121
|
+
}, t("button", {
|
|
122
|
+
class: "button-secondary",
|
|
123
|
+
onClick: r(this, f, "f")
|
|
124
|
+
}, r(this, c, "f").buttons.cancel), t("button", {
|
|
125
|
+
class: "button-primary",
|
|
126
|
+
onClick: r(this, u, "f"),
|
|
127
|
+
disabled: e
|
|
128
|
+
}, r(this, c, "f").buttons.create)))));
|
|
129
|
+
}
|
|
130
|
+
static get assetsDirs() {
|
|
131
|
+
return [ "gx-ide-assets/new-version" ];
|
|
132
|
+
}
|
|
133
|
+
get el() {
|
|
134
|
+
return i(this);
|
|
135
|
+
}
|
|
136
|
+
static get watchers() {
|
|
137
|
+
return {
|
|
138
|
+
defaultInputValues: [ "defaultInputValuesChanged" ]
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
c = new WeakMap, d = new WeakMap, l = new WeakMap, h = new WeakMap, f = new WeakMap,
|
|
144
|
+
u = new WeakMap;
|
|
145
|
+
|
|
146
|
+
m.style = o;
|
|
147
|
+
|
|
148
|
+
export { m as gx_ide_new_version };
|
|
149
|
+
//# sourceMappingURL=p-c91af626.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["newVersionCss","CSS_BUNDLES","CHECKED_VALUE","SET_NEW_VERSION_AS_ACTIVE_ID","GxIdeNewVersion","_GxIdeNewVersion_componentLocale","set","this","_GxIdeNewVersion_handleCheckBoxValueChange","event","target","id","setNewVersionAsActive","detail","_GxIdeNewVersion_handleNameValueChange","versionName","_GxIdeNewVersion_handleDescriptionValueChange","versionDescription","_GxIdeNewVersion_cancelClickHandler","async","cancelCallback","_GxIdeNewVersion_createClickHandler","newVersionData","createCallback","defaultInputValuesChanged","newDefaultInputValues","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","defaultInputValues","render","createButtonDisabled","length","h","Host","class","model","htmlFor","__classPrivateFieldGet","labels","name","type","placeholder","placeHolders","value","onInput","description","checkedValue","caption","setActive","onClick","buttons","cancel","disabled","create"],"sources":["src/components/new-version/new-version.scss?tag=gx-ide-new-version&encapsulation=shadow","src/components/new-version/new-version.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.field-group {\n grid-auto-rows: max-content;\n}\n\n.main {\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n","import { Component, Host, Prop, Element, State, h, Watch } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ChCheckboxCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/spacing\",\n \"utils/layout\",\n \"chameleon/scrollbar\",\n \"components/checkbox\",\n \"components/button\",\n \"components/edit\"\n];\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\nconst SET_NEW_VERSION_AS_ACTIVE_ID = \"set-new-version-as-active\";\n\n@Component({\n tag: \"gx-ide-new-version\",\n styleUrl: \"new-version.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-version\"]\n})\nexport class GxIdeNewVersion {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeNewVersionElement;\n\n /**\n * The version selected name\n */\n @State() versionName: string;\n\n /**\n * The version selected description\n */\n @State() versionDescription: string;\n\n /**\n * Checkbox value to set the new version as active\n */\n @State() setNewVersionAsActive: boolean = false;\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create' button is pressed.\n */\n @Prop() readonly createCallback: (\n newVersionData: NewVersionData\n ) => Promise<void>;\n\n /**\n * This property is used to set the initial values of the input fields when the component is loaded.\n */\n @Prop() readonly defaultInputValues: NewVersionData;\n @Watch(\"defaultInputValues\")\n defaultInputValuesChanged(newDefaultInputValues: NewVersionData) {\n this.versionName = newDefaultInputValues?.versionName;\n this.versionDescription = newDefaultInputValues?.versionDescription;\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.defaultInputValuesChanged(this.defaultInputValues);\n }\n\n #handleCheckBoxValueChange = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n const target = event.target as HTMLInputElement;\n if (target.id === SET_NEW_VERSION_AS_ACTIVE_ID) {\n this.setNewVersionAsActive = event.detail === CHECKED_VALUE;\n }\n };\n\n #handleNameValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.versionName = event.detail as string;\n };\n\n #handleDescriptionValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.versionDescription = event.detail as string;\n };\n\n #cancelClickHandler = async () => {\n this.cancelCallback();\n };\n\n #createClickHandler = async () => {\n const newVersionData: NewVersionData = {\n versionName: this.versionName,\n versionDescription: this.versionDescription,\n setNewVersionAsActive: this.setNewVersionAsActive\n };\n this.createCallback(newVersionData);\n };\n\n render() {\n const createButtonDisabled =\n !this.versionName || this.versionName.length === 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <div class=\"main scrollable field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"version-name\">\n {this.#componentLocale.labels.name}\n </label>\n <ch-edit\n type=\"text\"\n id=\"version-name\"\n class=\"input\"\n placeholder={this.#componentLocale.placeHolders.name}\n value={this.versionName}\n onInput={this.#handleNameValueChange}\n ></ch-edit>\n </div>\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"version-description\">\n {this.#componentLocale.labels.description}\n </label>\n <ch-edit\n type=\"text\"\n id=\"version-description\"\n class=\"input\"\n placeholder={this.#componentLocale.placeHolders.description}\n value={this.versionDescription}\n onInput={this.#handleDescriptionValueChange}\n ></ch-edit>\n </div>\n <div class=\"field field-inline\">\n <ch-checkbox\n class=\"checkbox\"\n id=\"set-new-version-as-active\"\n checkedValue={CHECKED_VALUE}\n onInput={this.#handleCheckBoxValueChange}\n caption={this.#componentLocale.labels.setActive}\n ></ch-checkbox>\n </div>\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.buttons.cancel}\n </button>\n\n <button\n class=\"button-primary\"\n onClick={this.#createClickHandler}\n disabled={createButtonDisabled}\n >\n {this.#componentLocale.buttons.create}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NewVersionData = {\n versionName: string;\n versionDescription: string;\n setNewVersionAsActive?: boolean;\n};\n"],"mappings":";;;;AAAA,MAAMA,IAAgB;;;;;;;;;;;;;;;;;ACMtB,MAAMC,IAA8B,EAClC,qBACA,cACA,iBACA,gBACA,uBACA,uBACA,qBACA;;cAIF;MAAMC,IAAgB;;AACtB,MAAMC,IAA+B;;MAQxBC,IAAe;;;;;;;QAK1BC,EAAAC,IAAAC,WAAA;IA8CAC,EAAAF,IAAAC,OACEE;MAEA,MAAMC,IAASD,EAAMC;MACrB,IAAIA,EAAOC,OAAOR,GAA8B;QAC9CI,KAAKK,wBAAwBH,EAAMI,WAAWX;;;IAIlDY,EAAAR,IAAAC,OAA0BE;MACxBF,KAAKQ,cAAcN,EAAMI;AAAgB;IAG3CG,EAAAV,IAAAC,OAAiCE;MAC/BF,KAAKU,qBAAqBR,EAAMI;AAAgB;IAGlDK,EAAAZ,IAAAC,OAAsBY;MACpBZ,KAAKa;AAAgB;IAGvBC,EAAAf,IAAAC,OAAsBY;MACpB,MAAMG,IAAiC;QACrCP,aAAaR,KAAKQ;QAClBE,oBAAoBV,KAAKU;QACzBL,uBAAuBL,KAAKK;;MAE9BL,KAAKgB,eAAeD;AAAe;;;iCAxDK;;;;;EAmB1C,yBAAAE,CAA0BC;IACxBlB,KAAKQ,cAAcU,MAAqB,QAArBA,WAAqB,aAArBA,EAAuBV;IAC1CR,KAAKU,qBAAqBQ,MAAqB,QAArBA,WAAqB,aAArBA,EAAuBR;;EAGnD,uBAAMS;IACJC,EAAApB,MAAIF,SAA0BuB,EAAOC,oBAAoBtB,KAAKuB,KAAG;IACjEvB,KAAKiB,0BAA0BjB,KAAKwB;;EAiCtC,MAAAC;IACE,MAAMC,KACH1B,KAAKQ,eAAeR,KAAKQ,YAAYmB,WAAW;IAEnD,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOrC;QACjBkC,EAAA;MAASE,OAAM;OACbF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BC,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOC,OAEhCP,EAAA;MACEQ,MAAK;MACLhC,IAAG;MACH0B,OAAM;MACNO,aAAaJ,EAAAjC,MAAIF,GAAA,KAAkBwC,aAAaH;MAChDI,OAAOvC,KAAKQ;MACZgC,SAASP,EAAAjC,MAAIO,GAAA;SAGjBqB,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BC,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOO,cAEhCb,EAAA;MACEQ,MAAK;MACLhC,IAAG;MACH0B,OAAM;MACNO,aAAaJ,EAAAjC,MAAIF,GAAA,KAAkBwC,aAAaG;MAChDF,OAAOvC,KAAKU;MACZ8B,SAASP,EAAAjC,MAAIS,GAAA;SAGjBmB,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACN1B,IAAG;MACHsC,cAAc/C;MACd6C,SAASP,EAAAjC,MAAIC,GAAA;MACb0C,SAASV,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOU;UAK5ChB,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACNe,SAASZ,EAAAjC,MAAIW,GAAA;OAEZsB,EAAAjC,MAAIF,GAAA,KAAkBgD,QAAQC,SAGjCnB,EAAA;MACEE,OAAM;MACNe,SAASZ,EAAAjC,MAAIc,GAAA;MACbkC,UAAUtB;OAETO,EAAAjC,MAAIF,GAAA,KAAkBgD,QAAQG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare class GxIdeNewVersion {
|
|
2
|
+
#private;
|
|
3
|
+
el: HTMLGxIdeNewVersionElement;
|
|
4
|
+
/**
|
|
5
|
+
* The version selected name
|
|
6
|
+
*/
|
|
7
|
+
versionName: string;
|
|
8
|
+
/**
|
|
9
|
+
* The version selected description
|
|
10
|
+
*/
|
|
11
|
+
versionDescription: string;
|
|
12
|
+
/**
|
|
13
|
+
* Checkbox value to set the new version as active
|
|
14
|
+
*/
|
|
15
|
+
setNewVersionAsActive: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Callback that must be invoked when the 'Cancel' button is pressed.
|
|
18
|
+
*/
|
|
19
|
+
readonly cancelCallback: () => Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Callback that must be invoked when the 'Create' button is pressed.
|
|
22
|
+
*/
|
|
23
|
+
readonly createCallback: (newVersionData: NewVersionData) => Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* This property is used to set the initial values of the input fields when the component is loaded.
|
|
26
|
+
*/
|
|
27
|
+
readonly defaultInputValues: NewVersionData;
|
|
28
|
+
defaultInputValuesChanged(newDefaultInputValues: NewVersionData): void;
|
|
29
|
+
componentWillLoad(): Promise<void>;
|
|
30
|
+
render(): any;
|
|
31
|
+
}
|
|
32
|
+
export type NewVersionData = {
|
|
33
|
+
versionName: string;
|
|
34
|
+
versionDescription: string;
|
|
35
|
+
setNewVersionAsActive?: boolean;
|
|
36
|
+
};
|
|
@@ -35,6 +35,10 @@ export declare class GxIdeSelectKbItems {
|
|
|
35
35
|
* Defines which nodes of the component have checkboxes.
|
|
36
36
|
*/
|
|
37
37
|
readonly checkboxType: CheckboxType;
|
|
38
|
+
/**
|
|
39
|
+
* Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.
|
|
40
|
+
*/
|
|
41
|
+
readonly expandOnClick: boolean;
|
|
38
42
|
/**
|
|
39
43
|
* Callback emitted when the items checked items change
|
|
40
44
|
*/
|
|
@@ -44,6 +44,7 @@ import { CancelCallback as CancelCallback9, CloseCallback, ConfirmCallback as Co
|
|
|
44
44
|
import { CancelCallback as CancelCallback10, CreateCallback, GetDataSourcesCallback, GetEnvironmentNameCallback, GetFrontEndsCallback } from "./components/new-environment/new-environment";
|
|
45
45
|
import { CancelCallback as CancelCallback11, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
|
|
46
46
|
import { CancelCallback as CancelCallback12, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback1, SuggestDescriptionCallback, SuggestNameCallback, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
|
|
47
|
+
import { NewVersionData } from "./components/new-version/new-version";
|
|
47
48
|
import { CancelCallback as CancelCallback13, LoadCallback as LoadCallback2, NewObjectCallback, OpenSelectionCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/object-selector/object-selector";
|
|
48
49
|
import { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
|
|
49
50
|
import { CheckboxType, DialogAction, ItemNode } from "./components/select-kb-items/select-kb-items";
|
|
@@ -102,6 +103,7 @@ export { CancelCallback as CancelCallback9, CloseCallback, ConfirmCallback as Co
|
|
|
102
103
|
export { CancelCallback as CancelCallback10, CreateCallback, GetDataSourcesCallback, GetEnvironmentNameCallback, GetFrontEndsCallback } from "./components/new-environment/new-environment";
|
|
103
104
|
export { CancelCallback as CancelCallback11, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
|
|
104
105
|
export { CancelCallback as CancelCallback12, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback1, SuggestDescriptionCallback, SuggestNameCallback, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
|
|
106
|
+
export { NewVersionData } from "./components/new-version/new-version";
|
|
105
107
|
export { CancelCallback as CancelCallback13, LoadCallback as LoadCallback2, NewObjectCallback, OpenSelectionCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/object-selector/object-selector";
|
|
106
108
|
export { LoadReferencesCallback, ObjectData as ObjectData1, OpenObjectCallback, OpenSelectorDialogCallback, SelectorSourceCallback, SelectReferenceCallback } from "./components/references/references";
|
|
107
109
|
export { CheckboxType, DialogAction, ItemNode } from "./components/select-kb-items/select-kb-items";
|
|
@@ -1419,6 +1421,22 @@ export namespace Components {
|
|
|
1419
1421
|
*/
|
|
1420
1422
|
"validateNameCallback": ValidateNameCallback;
|
|
1421
1423
|
}
|
|
1424
|
+
interface GxIdeNewVersion {
|
|
1425
|
+
/**
|
|
1426
|
+
* Callback that must be invoked when the 'Cancel' button is pressed.
|
|
1427
|
+
*/
|
|
1428
|
+
"cancelCallback": () => Promise<void>;
|
|
1429
|
+
/**
|
|
1430
|
+
* Callback that must be invoked when the 'Create' button is pressed.
|
|
1431
|
+
*/
|
|
1432
|
+
"createCallback": (
|
|
1433
|
+
newVersionData: NewVersionData
|
|
1434
|
+
) => Promise<void>;
|
|
1435
|
+
/**
|
|
1436
|
+
* This property is used to set the initial values of the input fields when the component is loaded.
|
|
1437
|
+
*/
|
|
1438
|
+
"defaultInputValues": NewVersionData;
|
|
1439
|
+
}
|
|
1422
1440
|
interface GxIdeObjectSelector {
|
|
1423
1441
|
/**
|
|
1424
1442
|
* Callback invoked when the user wishes to cancel the selection of objects.
|
|
@@ -1530,6 +1548,10 @@ export namespace Components {
|
|
|
1530
1548
|
* Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)
|
|
1531
1549
|
*/
|
|
1532
1550
|
"dialogActions": DialogAction[];
|
|
1551
|
+
/**
|
|
1552
|
+
* Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.
|
|
1553
|
+
*/
|
|
1554
|
+
"expandOnClick": boolean;
|
|
1533
1555
|
/**
|
|
1534
1556
|
* Callback emitted when the user right click on an item
|
|
1535
1557
|
*/
|
|
@@ -2691,6 +2713,12 @@ declare global {
|
|
|
2691
2713
|
prototype: HTMLGxIdeNewObjectElement;
|
|
2692
2714
|
new (): HTMLGxIdeNewObjectElement;
|
|
2693
2715
|
};
|
|
2716
|
+
interface HTMLGxIdeNewVersionElement extends Components.GxIdeNewVersion, HTMLStencilElement {
|
|
2717
|
+
}
|
|
2718
|
+
var HTMLGxIdeNewVersionElement: {
|
|
2719
|
+
prototype: HTMLGxIdeNewVersionElement;
|
|
2720
|
+
new (): HTMLGxIdeNewVersionElement;
|
|
2721
|
+
};
|
|
2694
2722
|
interface HTMLGxIdeObjectSelectorElement extends Components.GxIdeObjectSelector, HTMLStencilElement {
|
|
2695
2723
|
}
|
|
2696
2724
|
var HTMLGxIdeObjectSelectorElement: {
|
|
@@ -3000,6 +3028,7 @@ declare global {
|
|
|
3000
3028
|
"gx-ide-new-environment": HTMLGxIdeNewEnvironmentElement;
|
|
3001
3029
|
"gx-ide-new-kb": HTMLGxIdeNewKbElement;
|
|
3002
3030
|
"gx-ide-new-object": HTMLGxIdeNewObjectElement;
|
|
3031
|
+
"gx-ide-new-version": HTMLGxIdeNewVersionElement;
|
|
3003
3032
|
"gx-ide-object-selector": HTMLGxIdeObjectSelectorElement;
|
|
3004
3033
|
"gx-ide-references": HTMLGxIdeReferencesElement;
|
|
3005
3034
|
"gx-ide-sc-chat-container": HTMLGxIdeScChatContainerElement;
|
|
@@ -4374,6 +4403,22 @@ declare namespace LocalJSX {
|
|
|
4374
4403
|
*/
|
|
4375
4404
|
"validateNameCallback"?: ValidateNameCallback;
|
|
4376
4405
|
}
|
|
4406
|
+
interface GxIdeNewVersion {
|
|
4407
|
+
/**
|
|
4408
|
+
* Callback that must be invoked when the 'Cancel' button is pressed.
|
|
4409
|
+
*/
|
|
4410
|
+
"cancelCallback"?: () => Promise<void>;
|
|
4411
|
+
/**
|
|
4412
|
+
* Callback that must be invoked when the 'Create' button is pressed.
|
|
4413
|
+
*/
|
|
4414
|
+
"createCallback"?: (
|
|
4415
|
+
newVersionData: NewVersionData
|
|
4416
|
+
) => Promise<void>;
|
|
4417
|
+
/**
|
|
4418
|
+
* This property is used to set the initial values of the input fields when the component is loaded.
|
|
4419
|
+
*/
|
|
4420
|
+
"defaultInputValues"?: NewVersionData;
|
|
4421
|
+
}
|
|
4377
4422
|
interface GxIdeObjectSelector {
|
|
4378
4423
|
/**
|
|
4379
4424
|
* Callback invoked when the user wishes to cancel the selection of objects.
|
|
@@ -4477,6 +4522,10 @@ declare namespace LocalJSX {
|
|
|
4477
4522
|
* Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)
|
|
4478
4523
|
*/
|
|
4479
4524
|
"dialogActions"?: DialogAction[];
|
|
4525
|
+
/**
|
|
4526
|
+
* Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.
|
|
4527
|
+
*/
|
|
4528
|
+
"expandOnClick"?: boolean;
|
|
4480
4529
|
/**
|
|
4481
4530
|
* Callback emitted when the user right click on an item
|
|
4482
4531
|
*/
|
|
@@ -5151,6 +5200,7 @@ declare namespace LocalJSX {
|
|
|
5151
5200
|
"gx-ide-new-environment": GxIdeNewEnvironment;
|
|
5152
5201
|
"gx-ide-new-kb": GxIdeNewKb;
|
|
5153
5202
|
"gx-ide-new-object": GxIdeNewObject;
|
|
5203
|
+
"gx-ide-new-version": GxIdeNewVersion;
|
|
5154
5204
|
"gx-ide-object-selector": GxIdeObjectSelector;
|
|
5155
5205
|
"gx-ide-references": GxIdeReferences;
|
|
5156
5206
|
"gx-ide-sc-chat-container": GxIdeScChatContainer;
|
|
@@ -5219,6 +5269,7 @@ declare module "@stencil/core" {
|
|
|
5219
5269
|
"gx-ide-new-environment": LocalJSX.GxIdeNewEnvironment & JSXBase.HTMLAttributes<HTMLGxIdeNewEnvironmentElement>;
|
|
5220
5270
|
"gx-ide-new-kb": LocalJSX.GxIdeNewKb & JSXBase.HTMLAttributes<HTMLGxIdeNewKbElement>;
|
|
5221
5271
|
"gx-ide-new-object": LocalJSX.GxIdeNewObject & JSXBase.HTMLAttributes<HTMLGxIdeNewObjectElement>;
|
|
5272
|
+
"gx-ide-new-version": LocalJSX.GxIdeNewVersion & JSXBase.HTMLAttributes<HTMLGxIdeNewVersionElement>;
|
|
5222
5273
|
"gx-ide-object-selector": LocalJSX.GxIdeObjectSelector & JSXBase.HTMLAttributes<HTMLGxIdeObjectSelectorElement>;
|
|
5223
5274
|
"gx-ide-references": LocalJSX.GxIdeReferences & JSXBase.HTMLAttributes<HTMLGxIdeReferencesElement>;
|
|
5224
5275
|
"gx-ide-sc-chat-container": LocalJSX.GxIdeScChatContainer & JSXBase.HTMLAttributes<HTMLGxIdeScChatContainerElement>;
|