@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.
Files changed (55) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-new-version.cjs.entry.js +101 -0
  3. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -0
  4. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +2 -1
  5. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-sign-in.cjs.entry.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/collection-manifest.json +1 -0
  10. package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.en.json +16 -0
  11. package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.ja.json +16 -0
  12. package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.zh.json +16 -0
  13. package/dist/collection/components/new-version/new-version.css +17 -0
  14. package/dist/collection/components/new-version/new-version.js +181 -0
  15. package/dist/collection/components/new-version/new-version.js.map +1 -0
  16. package/dist/collection/components/select-kb-items/select-kb-items.js +20 -1
  17. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  18. package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +3 -3
  19. package/dist/collection/components/sign-in/sign-in.js +1 -1
  20. package/dist/collection/components/sign-in/sign-in.js.map +1 -1
  21. package/dist/collection/testing/locale.e2e.js +1 -0
  22. package/dist/collection/testing/locale.e2e.js.map +1 -1
  23. package/dist/components/gx-ide-new-version.d.ts +11 -0
  24. package/dist/components/gx-ide-new-version.js +124 -0
  25. package/dist/components/gx-ide-new-version.js.map +1 -0
  26. package/dist/components/gx-ide-select-kb-items.js +3 -1
  27. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  28. package/dist/components/gx-ide-sign-in.js +1 -1
  29. package/dist/components/gx-ide-sign-in.js.map +1 -1
  30. package/dist/esm/genexus-ide-ui.js +1 -1
  31. package/dist/esm/gx-ide-new-version.entry.js +97 -0
  32. package/dist/esm/gx-ide-new-version.entry.js.map +1 -0
  33. package/dist/esm/gx-ide-select-kb-items.entry.js +2 -1
  34. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  35. package/dist/esm/gx-ide-sign-in.entry.js +1 -1
  36. package/dist/esm/gx-ide-sign-in.entry.js.map +1 -1
  37. package/dist/esm/loader.js +1 -1
  38. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  39. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  40. package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.en.json +16 -0
  41. package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.ja.json +16 -0
  42. package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.zh.json +16 -0
  43. package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +3 -3
  44. package/dist/genexus-ide-ui/{p-842a081e.entry.js → p-6b957e82.entry.js} +2 -4
  45. package/dist/genexus-ide-ui/p-6b957e82.entry.js.map +1 -0
  46. package/dist/genexus-ide-ui/{p-6331b2f2.entry.js → p-72d32141.entry.js} +10 -8
  47. package/dist/genexus-ide-ui/p-72d32141.entry.js.map +1 -0
  48. package/dist/genexus-ide-ui/p-c91af626.entry.js +149 -0
  49. package/dist/genexus-ide-ui/p-c91af626.entry.js.map +1 -0
  50. package/dist/types/components/new-version/new-version.d.ts +36 -0
  51. package/dist/types/components/select-kb-items/select-kb-items.d.ts +4 -0
  52. package/dist/types/components.d.ts +51 -0
  53. package/package.json +1 -1
  54. package/dist/genexus-ide-ui/p-6331b2f2.entry.js.map +0 -1
  55. 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
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "componentName": "",
3
+ "buttons": {
4
+ "create": "",
5
+ "cancel": ""
6
+ },
7
+ "labels": {
8
+ "name": "",
9
+ "description": "",
10
+ "setActive": ""
11
+ },
12
+ "placeHolders": {
13
+ "name": "",
14
+ "description": ""
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "componentName": "",
3
+ "buttons": {
4
+ "create": "",
5
+ "cancel": ""
6
+ },
7
+ "labels": {
8
+ "name": "",
9
+ "description": "",
10
+ "setActive": ""
11
+ },
12
+ "placeHolders": {
13
+ "name": "",
14
+ "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": "Welcome to GeneXus Next Desktop",
6
- "descriptionText": "(This description is to be defined)",
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": "Sign In"
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-842a081e.entry.js.map
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 P = "on";
212
+ const O = "on";
213
213
 
214
- const z = class {
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 === P;
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: P,
425
- value: P,
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
- z.style = r;
475
+ P.style = r;
474
476
 
475
- export { z as gx_ide_select_kb_items };
476
- //# sourceMappingURL=p-6331b2f2.entry.js.map
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>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "1.0.68",
4
+ "version": "1.0.69",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",