@genexus/genexus-ide-ui 1.1.39 → 1.1.41

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 (140) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +12 -28
  3. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  4. package/dist/cjs/{gx-ide-status-message.cjs.entry.js → gx-ide-sign-in-result.cjs.entry.js} +10 -9
  5. package/dist/cjs/gx-ide-sign-in-result.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +20 -4
  7. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +99 -238
  9. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +9 -7
  11. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +60 -10
  13. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/tabular-grid-column-sort-5ca06dc1.js +43 -0
  16. package/dist/cjs/tabular-grid-column-sort-5ca06dc1.js.map +1 -0
  17. package/dist/cjs/tabular-grid-render-4350dbaf.js +223 -0
  18. package/dist/cjs/tabular-grid-render-4350dbaf.js.map +1 -0
  19. package/dist/cjs/uncheck-ignored-77ca69fe.js +43 -0
  20. package/dist/cjs/uncheck-ignored-77ca69fe.js.map +1 -0
  21. package/dist/collection/collection-manifest.json +1 -1
  22. package/dist/collection/common/chameleon/tabular-grid-column-sort.js +39 -0
  23. package/dist/collection/common/chameleon/tabular-grid-column-sort.js.map +1 -0
  24. package/dist/collection/components/{status-message/status-message.css → sign-in-result/sign-in-result.css} +2 -0
  25. package/dist/collection/components/{status-message/status-message.js → sign-in-result/sign-in-result.js} +10 -9
  26. package/dist/collection/components/sign-in-result/sign-in-result.js.map +1 -0
  27. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +18 -4
  28. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  29. package/dist/collection/components/team-dev/history/history.js +10 -8
  30. package/dist/collection/components/team-dev/history/history.js.map +1 -1
  31. package/dist/collection/components/team-dev/server-selector/server-selector.css +18 -14
  32. package/dist/collection/components/team-dev/server-selector/server-selector.js +11 -27
  33. package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
  34. package/dist/collection/components/team-dev/update/update.css +1 -0
  35. package/dist/collection/components/team-dev/update/update.js +62 -9
  36. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  37. package/dist/collection/components/team-dev/version-control/commit/commit.css +1 -0
  38. package/dist/collection/components/team-dev/version-control/commit/commit.js +79 -20
  39. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
  40. package/dist/collection/components/team-dev/version-control/common/are-sets-equal.js +21 -0
  41. package/dist/collection/components/team-dev/version-control/common/are-sets-equal.js.map +1 -0
  42. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js +13 -3
  43. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js.map +1 -1
  44. package/dist/collection/components/team-dev/version-control/common/uncheck-ignored.js +18 -0
  45. package/dist/collection/components/team-dev/version-control/common/uncheck-ignored.js.map +1 -0
  46. package/dist/collection/testing/locale.e2e.js +1 -1
  47. package/dist/collection/testing/locale.e2e.js.map +1 -1
  48. package/dist/components/gx-ide-server-selector.js +12 -28
  49. package/dist/components/gx-ide-server-selector.js.map +1 -1
  50. package/dist/components/{gx-ide-status-message.d.ts → gx-ide-sign-in-result.d.ts} +4 -4
  51. package/dist/components/{gx-ide-status-message.js → gx-ide-sign-in-result.js} +15 -14
  52. package/dist/components/gx-ide-sign-in-result.js.map +1 -0
  53. package/dist/components/gx-ide-team-dev-bring-changes.js +18 -4
  54. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  55. package/dist/components/gx-ide-team-dev-commit.js +78 -221
  56. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  57. package/dist/components/gx-ide-team-dev-history.js +9 -7
  58. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  59. package/dist/components/gx-ide-team-dev-update.js +61 -10
  60. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  61. package/dist/components/tabular-grid-column-sort.js +41 -0
  62. package/dist/components/tabular-grid-column-sort.js.map +1 -0
  63. package/dist/components/tabular-grid-render.js +216 -0
  64. package/dist/components/tabular-grid-render.js.map +1 -0
  65. package/dist/components/uncheck-ignored.js +40 -0
  66. package/dist/components/uncheck-ignored.js.map +1 -0
  67. package/dist/esm/genexus-ide-ui.js +1 -1
  68. package/dist/esm/gx-ide-server-selector.entry.js +12 -28
  69. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  70. package/dist/esm/{gx-ide-status-message.entry.js → gx-ide-sign-in-result.entry.js} +10 -9
  71. package/dist/esm/gx-ide-sign-in-result.entry.js.map +1 -0
  72. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +20 -4
  73. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  74. package/dist/esm/gx-ide-team-dev-commit.entry.js +81 -220
  75. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  76. package/dist/esm/gx-ide-team-dev-history.entry.js +9 -7
  77. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  78. package/dist/esm/gx-ide-team-dev-update.entry.js +60 -10
  79. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  80. package/dist/esm/loader.js +1 -1
  81. package/dist/esm/tabular-grid-column-sort-1d503b27.js +41 -0
  82. package/dist/esm/tabular-grid-column-sort-1d503b27.js.map +1 -0
  83. package/dist/esm/tabular-grid-render-f7eb612b.js +216 -0
  84. package/dist/esm/tabular-grid-render-f7eb612b.js.map +1 -0
  85. package/dist/esm/uncheck-ignored-4ba48c9e.js +40 -0
  86. package/dist/esm/uncheck-ignored-4ba48c9e.js.map +1 -0
  87. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  88. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  89. package/dist/genexus-ide-ui/p-02fb496a.js +36 -0
  90. package/dist/genexus-ide-ui/p-02fb496a.js.map +1 -0
  91. package/dist/genexus-ide-ui/p-06e8d9d6.entry.js +63 -0
  92. package/dist/genexus-ide-ui/p-06e8d9d6.entry.js.map +1 -0
  93. package/dist/genexus-ide-ui/{p-585fac4a.entry.js → p-2b38e18e.entry.js} +15 -13
  94. package/dist/genexus-ide-ui/p-2b38e18e.entry.js.map +1 -0
  95. package/dist/genexus-ide-ui/{p-970e89ac.entry.js → p-4b06b578.entry.js} +100 -115
  96. package/dist/genexus-ide-ui/p-4b06b578.entry.js.map +1 -0
  97. package/dist/genexus-ide-ui/{p-34447b77.entry.js → p-4e3ad78d.entry.js} +261 -234
  98. package/dist/genexus-ide-ui/p-4e3ad78d.entry.js.map +1 -0
  99. package/dist/genexus-ide-ui/p-77c2e69d.js +314 -0
  100. package/dist/genexus-ide-ui/p-77c2e69d.js.map +1 -0
  101. package/dist/genexus-ide-ui/p-a7883e6b.entry.js +691 -0
  102. package/dist/genexus-ide-ui/p-a7883e6b.entry.js.map +1 -0
  103. package/dist/genexus-ide-ui/p-c9b9e260.js +36 -0
  104. package/dist/genexus-ide-ui/p-c9b9e260.js.map +1 -0
  105. package/dist/genexus-ide-ui/{p-42f37527.entry.js → p-e1a2550e.entry.js} +351 -289
  106. package/dist/genexus-ide-ui/p-e1a2550e.entry.js.map +1 -0
  107. package/dist/types/common/chameleon/tabular-grid-column-sort.d.ts +4 -0
  108. package/dist/types/components/{status-message/status-message.d.ts → sign-in-result/sign-in-result.d.ts} +2 -2
  109. package/dist/types/components/team-dev/history/history.d.ts +2 -2
  110. package/dist/types/components/team-dev/update/update.d.ts +6 -0
  111. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +15 -13
  112. package/dist/types/components/team-dev/version-control/common/are-sets-equal.d.ts +12 -0
  113. package/dist/types/components/team-dev/version-control/common/tabular-grid-render.d.ts +13 -1
  114. package/dist/types/components/team-dev/version-control/common/uncheck-ignored.d.ts +13 -0
  115. package/dist/types/components.d.ts +13 -13
  116. package/package.json +1 -1
  117. package/dist/cjs/gx-ide-status-message.cjs.entry.js.map +0 -1
  118. package/dist/collection/components/status-message/status-message.js.map +0 -1
  119. package/dist/components/gx-ide-status-message.js.map +0 -1
  120. package/dist/esm/gx-ide-status-message.entry.js.map +0 -1
  121. package/dist/genexus-ide-ui/p-34447b77.entry.js.map +0 -1
  122. package/dist/genexus-ide-ui/p-42f37527.entry.js.map +0 -1
  123. package/dist/genexus-ide-ui/p-50253b96.entry.js +0 -61
  124. package/dist/genexus-ide-ui/p-50253b96.entry.js.map +0 -1
  125. package/dist/genexus-ide-ui/p-585fac4a.entry.js.map +0 -1
  126. package/dist/genexus-ide-ui/p-723d25ae.entry.js +0 -912
  127. package/dist/genexus-ide-ui/p-723d25ae.entry.js.map +0 -1
  128. package/dist/genexus-ide-ui/p-970e89ac.entry.js.map +0 -1
  129. /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/genexus-next-logo.svg +0 -0
  130. /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/left-side-illustration.svg +0 -0
  131. /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/right-side-illustration.svg +0 -0
  132. /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.en.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json} +0 -0
  133. /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.ja.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json} +0 -0
  134. /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.zh.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.zh.json} +0 -0
  135. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/genexus-next-logo.svg +0 -0
  136. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/left-side-illustration.svg +0 -0
  137. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/right-side-illustration.svg +0 -0
  138. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.en.json → sign-in-result/langs/sign-in-result.lang.en.json} +0 -0
  139. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.ja.json → sign-in-result/langs/sign-in-result.lang.ja.json} +0 -0
  140. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.zh.json → sign-in-result/langs/sign-in-result.lang.zh.json} +0 -0
@@ -6,26 +6,28 @@ import { c as r } from "./p-9a03ac9f.js";
6
6
 
7
7
  import { L as l } from "./p-311eedf3.js";
8
8
 
9
- const o = ":host{display:grid;block-size:100%;grid-template-rows:max-content max-content 1fr max-content;row-gap:var(--mer-spacing--md);overflow:auto}:host(.new-connection){grid-template-rows:max-content 1fr}:host(.recently-used-empty){grid-template-rows:max-content 1fr}.section{display:contents}.tabular-grid{border-radius:var(--mer-border__radius--sm);overflow:hidden;border-inline:1px solid var(--grid-cell__border-color);--grid-cell__box-shadow-inline-block:inset 0 0px var(--grid-cell__border-color),\n inset 0 -1px var(--grid-cell__border-color);overflow:auto}.tabular-grid-rowset-empty{border-block-end:1px solid var(--grid-cell__border-color);overflow:hidden}.tabular-grid ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}.text-neutral-gray-400,.tabular-grid-cell.text-neutral-gray-400{color:var(--mer-color__neutral-gray--400)}.search-server{inline-size:50%}.tabular-grid-recently-used .tabular-grid-column::part(bar){--grid-cell__padding-block:0;--grid-cell__padding-inline:0}.tabular-grid.tabular-grid-recently-used{border-block-end:1px solid var(--grid-cell__border-color);max-block-size:100px}.tabular-grid-all-servers{overflow:auto}.field-block-all-servers{overflow:auto}.tabular-grid-all-servers{border-block:1px solid var(--grid-cell__border-color)}.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar-name-icon){background-image:var(--icon__system_order-alphabetically_on-elevation--enabled);block-size:var(--mer-icon__box--md);inline-size:var(--mer-icon__box--md);background-size:var(--mer-icon__size--md)}.tabular-grid-all-servers .tabular-grid-rowset-empty{border-block-end:none;overflow:hidden}.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar){--grid-common__gap:0}";
9
+ import { s as o } from "./p-02fb496a.js";
10
10
 
11
- var n = undefined && undefined.__classPrivateFieldGet || function(e, t, s, i) {
11
+ const n = ":host{display:grid;block-size:100%;grid-template-rows:max-content max-content 1fr max-content;row-gap:var(--mer-spacing--md);overflow:auto}:host(.new-connection){grid-template-rows:max-content 1fr}:host(.recently-used-empty){grid-template-rows:max-content 1fr}.section{display:contents}.tabular-grid{border-radius:var(--mer-border__radius--sm);overflow:hidden;overflow:auto;border-inline:1px solid var(--grid-cell__border-color)}.tabular-grid-rowset-empty{border-block-end:1px solid var(--grid-cell__border-color);overflow:hidden}.tabular-grid ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}.text-neutral-gray-400,.tabular-grid-cell.text-neutral-gray-400{color:var(--mer-color__neutral-gray--400)}.search-server{inline-size:50%}.tabular-grid-recently-used .tabular-grid-column::part(bar){--grid-cell__padding-block:0;--grid-cell__padding-inline:0}.tabular-grid.tabular-grid-recently-used{border-block-end:1px solid var(--grid-cell__border-color);max-block-size:100px}.tabular-grid-all-servers{overflow:auto}.field-block-all-servers{overflow:auto}.tabular-grid-all-servers{border-block:1px solid var(--grid-cell__border-color)}.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar){--grid-common__gap:0}.tabular-grid-wrapper{position:relative;overflow:auto}.border-patch{--tabular-grid-border-radius:4px;position:absolute;top:0;inline-size:calc(100% - var(--tabular-grid-border-radius) * 2);inset-inline-start:var(--tabular-grid-border-radius);block-size:2px;background-color:var(--items-container__bg-color);z-index:9999;border-block-start:1px solid var(--mer-border-color__on-surface)}";
12
+
13
+ var c = undefined && undefined.__classPrivateFieldGet || function(e, t, s, i) {
12
14
  if (s === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
13
15
  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");
14
16
  return s === "m" ? i : s === "a" ? i.call(e) : i ? i.value : t.get(e);
15
17
  };
16
18
 
17
- var c = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, a) {
19
+ var d = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, a) {
18
20
  if (i === "m") throw new TypeError("Private method is not writable");
19
21
  if (i === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
20
22
  if (typeof t === "function" ? e !== t || !a : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
21
23
  return i === "a" ? a.call(e, s) : a ? a.value = s : t.set(e, s), s;
22
24
  };
23
25
 
24
- var d, h, u, b, f, m, g, p, w, v, y, k, _, M, W, x, C, z, N, I, S, T, E, R, j, A, H, U;
26
+ var h, u, b, f, g, p, m, w, v, y, k, _, M, x, W, z, N, C, I, S, T, j, E, A, H, R;
25
27
 
26
- const L = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "components/tooltip", "chameleon/scrollbar", "components/tabular-grid" ];
28
+ const U = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "components/tooltip", "chameleon/scrollbar", "components/tabular-grid" ];
27
29
 
28
- const D = a({
30
+ const L = a({
29
31
  category: "system",
30
32
  name: "information",
31
33
  colorType: "on-surface"
@@ -46,35 +48,35 @@ const P = a({
46
48
  const $ = class {
47
49
  constructor(s) {
48
50
  e(this, s);
49
- d.set(this, a({
51
+ h.set(this, a({
50
52
  category: "system",
51
53
  name: "search",
52
54
  colorType: "on-surface"
53
55
  }));
54
- h.set(this, [ {
56
+ u.set(this, [ {
55
57
  value: "select",
56
58
  caption: "Select a server from the list below"
57
59
  }, {
58
60
  value: "new",
59
61
  caption: "Enter a server URL manually"
60
62
  } ]);
61
- u.set(this, void 0);
62
63
  b.set(this, void 0);
63
64
  f.set(this, void 0);
64
- m.set(this, void 0);
65
65
  g.set(this, void 0);
66
66
  p.set(this, void 0);
67
- w.set(this, (() => {
67
+ m.set(this, void 0);
68
+ w.set(this, void 0);
69
+ v.set(this, (() => {
68
70
  this.cancelCallback();
69
71
  }));
70
- v.set(this, (async () => {
72
+ y.set(this, (async () => {
71
73
  if (this.selectedConnectionType === "select") {
72
74
  await this.selectServerCallback({
73
75
  uri: this.selectedServerUri,
74
76
  name: this.selectedServerName
75
77
  });
76
78
  } else if (this.selectedConnectionType === "new") {
77
- this.isValidUrl = n(this, _, "f").call(this, this.serverUrlInputValue);
79
+ this.isValidUrl = c(this, M, "f").call(this, this.serverUrlInputValue);
78
80
  if (this.isValidUrl) {
79
81
  await this.selectServerCallback({
80
82
  uri: this.serverUrlInputValue,
@@ -83,16 +85,16 @@ const $ = class {
83
85
  }
84
86
  }
85
87
  }));
86
- y.set(this, (e => {
88
+ k.set(this, (e => {
87
89
  this.filterValue = e.detail.toLowerCase();
88
90
  this.filteredConnectedServersData = this.connectedServersData.filter((e => e.serverName.toLowerCase().includes(this.filterValue)));
89
91
  }));
90
- k.set(this, ((e, t) => {
92
+ _.set(this, ((e, t) => {
91
93
  this.enableConfirmButton = false;
92
94
  this[t] = e.detail;
93
- n(this, M, "f").call(this);
95
+ c(this, x, "f").call(this);
94
96
  }));
95
- _.set(this, (e => {
97
+ M.set(this, (e => {
96
98
  try {
97
99
  const t = new URL(e);
98
100
  const s = (t.protocol === "http:" || t.protocol === "https:") && e.startsWith(`${t.protocol}//`);
@@ -101,44 +103,36 @@ const $ = class {
101
103
  return false;
102
104
  }
103
105
  }));
104
- M.set(this, (() => {
106
+ x.set(this, (() => {
105
107
  if (this.serverUrlInputValue && this.serverUrlInputValue.length > 0 && this.serverNameInputValue && this.serverNameInputValue.length > 0) {
106
108
  this.enableConfirmButton = true;
107
109
  } else {
108
110
  this.enableConfirmButton = false;
109
111
  }
110
112
  }));
111
- W.set(this, (e => {
112
- n(this, C, "f").call(this, e);
113
- n(this, v, "f").call(this);
114
- }));
115
- x.set(this, (e => {
116
- n(this, z, "f").call(this, e);
117
- n(this, v, "f").call(this);
118
- }));
119
- C.set(this, (e => n(this, N, "f").call(this, e, this.connectedServersData, n(this, b, "f"))));
120
- z.set(this, (e => n(this, N, "f").call(this, e, this.recentlyUsedServersData, n(this, f, "f"))));
113
+ W.set(this, (e => c(this, N, "f").call(this, e, this.connectedServersData, c(this, f, "f"))));
114
+ z.set(this, (e => c(this, N, "f").call(this, e, this.recentlyUsedServersData, c(this, g, "f"))));
121
115
  N.set(this, (async (e, t, s) => {
122
116
  if (!this.isFirstSelection) {
123
- c(this, m, n(this, g, "f"), "f");
117
+ d(this, p, c(this, m, "f"), "f");
124
118
  }
125
- c(this, g, e.detail.rowId, "f");
126
- if (n(this, g, "f") === undefined) {
119
+ d(this, m, e.detail.rowId, "f");
120
+ if (c(this, m, "f") === undefined) {
127
121
  this.enableConfirmButton = false;
128
122
  this.selectedServerUri = undefined;
129
123
  this.selectedServerName = undefined;
130
124
  return;
131
125
  } else {
132
- const e = t.find((e => e.id === n(this, g, "f")));
126
+ const e = t.find((e => e.id === c(this, m, "f")));
133
127
  this.enableConfirmButton = true;
134
128
  this.selectedServerName = e === null || e === void 0 ? void 0 : e.serverName;
135
129
  this.selectedServerUri = e === null || e === void 0 ? void 0 : e.serverUrl;
136
130
  this.userName = (e === null || e === void 0 ? void 0 : e.gxServerUsername) || "";
137
131
  this.isFirstSelection = false;
138
- await (s === null || s === void 0 ? void 0 : s.selectRow(n(this, m, "f"), false));
132
+ await (s === null || s === void 0 ? void 0 : s.selectRow(c(this, p, "f"), false));
139
133
  }
140
134
  }));
141
- I.set(this, (e => {
135
+ C.set(this, (e => {
142
136
  this.selectedConnectionType = e.detail;
143
137
  if (this.selectedConnectionType === "new") {
144
138
  this.enableConfirmButton = false;
@@ -146,56 +140,59 @@ const $ = class {
146
140
  }
147
141
  this.selectedServerName = "None";
148
142
  }));
143
+ I.set(this, (e => {
144
+ this.filteredConnectedServersData = [ ...o(e, this.filteredConnectedServersData, "string", undefined) ];
145
+ }));
149
146
  S.set(this, ((e = false) => t("ch-tabular-grid-columnset", {
150
147
  class: "tabular-grid-column-set"
151
148
  }, t("ch-tabular-grid-column", {
152
149
  columnId: "icon",
153
- class: "tabular-grid-column",
150
+ class: "tabular-grid-column tabular-grid-column-icon",
154
151
  columnName: "Icon",
155
152
  settingable: false,
156
153
  columnNameHidden: true,
157
154
  size: r.tabularGrid.colSize.maxContent,
158
- resizable: false
155
+ resizable: false,
156
+ sortable: false
159
157
  }), t("ch-tabular-grid-column", {
160
158
  columnId: "serverName",
161
159
  class: "tabular-grid-column",
162
- sortable: true,
163
160
  columnName: "Server Name",
164
161
  settingable: false,
165
162
  columnNameHidden: e,
166
- onColumnSortChanged: n(this, A, "f"),
167
163
  size: r.tabularGrid.colSize.serverName,
168
- resizable: false
164
+ resizable: false,
165
+ sortable: !e,
166
+ onColumnSortChanged: c(this, I, "f")
169
167
  }), t("ch-tabular-grid-column", {
170
168
  columnId: "serverUrl",
171
169
  class: "tabular-grid-column",
172
- sortable: true,
173
170
  columnName: "Server Url",
174
171
  settingable: false,
175
172
  columnNameHidden: e,
176
- onColumnSortChanged: n(this, A, "f"),
177
173
  size: r.tabularGrid.colSize.auto,
178
- resizable: false
174
+ resizable: false,
175
+ sortable: !e,
176
+ onColumnSortChanged: c(this, I, "f")
179
177
  }), t("ch-tabular-grid-column", {
180
178
  columnId: "userName",
181
179
  class: "tabular-grid-column",
182
- sortable: true,
183
180
  columnName: "Username",
184
181
  settingable: false,
185
182
  columnNameHidden: e,
186
- onColumnSortChanged: n(this, A, "f"),
187
183
  size: r.tabularGrid.colSize.userName,
188
- resizable: false
184
+ resizable: false,
185
+ sortable: !e,
186
+ onColumnSortChanged: c(this, I, "f")
189
187
  }), t("ch-tabular-grid-column", {
190
188
  columnId: "status",
191
189
  class: "tabular-grid-column",
192
- sortable: true,
193
190
  columnName: "Status",
194
191
  settingable: false,
195
192
  columnNameHidden: e,
196
- onColumnSortChanged: n(this, A, "f"),
197
193
  size: r.tabularGrid.colSize.maxContent,
198
- resizable: false
194
+ resizable: false,
195
+ sortable: false
199
196
  }))));
200
197
  T.set(this, (e => e !== "" ? t("ch-tooltip", {
201
198
  class: "tooltip",
@@ -204,73 +201,61 @@ const $ = class {
204
201
  inlineAlign: r.tooltipSettings.inlineAlign,
205
202
  delay: r.tooltipSettings.delay
206
203
  }, e) : null));
207
- E.set(this, (e => [ t("ch-tabular-grid-cell", {
204
+ j.set(this, (e => [ t("ch-tabular-grid-cell", {
208
205
  class: "tabular-grid-cell"
209
- }, n(this, H, "f").call(this, e.accessLevel)), t("ch-tabular-grid-cell", {
206
+ }, c(this, H, "f").call(this, e.accessLevel)), t("ch-tabular-grid-cell", {
210
207
  class: "tabular-grid-cell tabular-grid-cell-server-name"
211
208
  }, e.serverName), t("ch-tabular-grid-cell", {
212
209
  class: "tabular-grid-cell tabular-grid-cell-server-url"
213
- }, e.serverUrl, n(this, T, "f").call(this, e.serverUrl)), t("ch-tabular-grid-cell", {
210
+ }, e.serverUrl, c(this, T, "f").call(this, e.serverUrl)), t("ch-tabular-grid-cell", {
214
211
  class: "tabular-grid-cell"
215
212
  }, e.gxServerUsername), t("ch-tabular-grid-cell", {
216
213
  class: "tabular-grid-cell text-neutral-gray-400 body-italic-s"
217
214
  }, e.isConnected && "Connected") ]));
218
- R.set(this, (e => t("ch-tabular-grid", {
215
+ E.set(this, (e => t("ch-tabular-grid", {
219
216
  class: "tabular-grid-recently-used tabular-grid",
220
217
  rowSelectionMode: "single",
221
- ref: e => c(this, b, e, "f"),
218
+ ref: e => d(this, f, e, "f"),
222
219
  allowColumnReorder: false,
223
- onRowClicked: n(this, z, "f"),
224
- onRowDoubleClicked: n(this, x, "f"),
220
+ onRowClicked: c(this, z, "f"),
225
221
  id: "recently-used-servers"
226
- }, n(this, S, "f").call(this, e), this.recentlyUsedServersData.length > 0 ? t("ch-tabular-grid-rowset", {
222
+ }, c(this, S, "f").call(this, e), this.recentlyUsedServersData.length > 0 ? t("ch-tabular-grid-rowset", {
227
223
  class: "tabular-grid-rowset"
228
224
  }, this.recentlyUsedServersData.map((e => t("ch-tabular-grid-row", {
229
225
  rowid: e.id,
230
226
  class: "tabular-grid-row"
231
- }, n(this, E, "f").call(this, e))))) : t("ch-tabular-grid-rowset", {
227
+ }, c(this, j, "f").call(this, e))))) : t("ch-tabular-grid-rowset", {
232
228
  class: "tabular-grid-rowset"
233
229
  }, t("ch-tabular-grid-rowset-empty", null, t("gx-ide-empty-state", {
234
- stateIconSrc: D,
235
- stateTitle: n(this, u, "f").emptyConnectedServers,
230
+ stateIconSrc: L,
231
+ stateTitle: c(this, b, "f").emptyConnectedServers,
236
232
  isAnimated: true
237
233
  }))))));
238
- j.set(this, (() => t("ch-tabular-grid", {
234
+ A.set(this, (() => t("div", {
235
+ class: "tabular-grid-wrapper"
236
+ }, t("div", {
237
+ class: "border-patch"
238
+ }), t("ch-tabular-grid", {
239
239
  class: "tabular-grid tabular-grid-all-servers",
240
240
  rowSelectionMode: "single",
241
- ref: e => c(this, f, e, "f"),
241
+ ref: e => d(this, g, e, "f"),
242
242
  allowColumnReorder: false,
243
- onRowClicked: n(this, C, "f"),
244
- onRowDoubleClicked: n(this, W, "f"),
243
+ onRowClicked: c(this, W, "f"),
245
244
  id: "all-servers"
246
- }, n(this, S, "f").call(this), this.filteredConnectedServersData.length > 0 ? t("ch-tabular-grid-rowset", {
245
+ }, c(this, S, "f").call(this), this.filteredConnectedServersData.length > 0 ? t("ch-tabular-grid-rowset", {
247
246
  class: "tabular-grid-rowset"
248
247
  }, this.filteredConnectedServersData.map((e => t("ch-tabular-grid-row", {
249
248
  rowid: e.id,
250
249
  class: "tabular-grid-row"
251
- }, n(this, E, "f").call(this, e))))) : t("ch-tabular-grid-rowset", {
250
+ }, c(this, j, "f").call(this, e))))) : t("ch-tabular-grid-rowset", {
252
251
  class: "tabular-grid-rowset"
253
252
  }, t("ch-tabular-grid-rowset-empty", {
254
253
  class: "tabular-grid-rowset-empty"
255
254
  }, t("gx-ide-empty-state", {
256
- stateIconSrc: D,
257
- stateTitle: n(this, u, "f").emptyConnectedServers,
255
+ stateIconSrc: L,
256
+ stateTitle: c(this, b, "f").emptyConnectedServers,
258
257
  isAnimated: true
259
- }))))));
260
- A.set(this, (e => {
261
- const {columnId: t, sortDirection: s} = e.detail;
262
- const i = this.connectedServersData;
263
- i.sort(((e, i) => {
264
- if (e[t] < i[t]) {
265
- return s === "asc" ? -1 : 1;
266
- }
267
- if (e[t] > i[t]) {
268
- return s === "asc" ? 1 : -1;
269
- }
270
- return 0;
271
- }));
272
- this.connectedServersData = [ ...i ];
273
- }));
258
+ })))))));
274
259
  H.set(this, (e => {
275
260
  const s = e === "private" ? F : P;
276
261
  return t("ch-image", {
@@ -278,7 +263,7 @@ const $ = class {
278
263
  src: s
279
264
  });
280
265
  }));
281
- U.set(this, (() => {
266
+ R.set(this, (() => {
282
267
  const e = this.selectedConnectionType === "select";
283
268
  return t("footer", {
284
269
  class: {
@@ -295,13 +280,13 @@ const $ = class {
295
280
  }, t("button", {
296
281
  // cancel button
297
282
  class: "button-secondary",
298
- onClick: n(this, w, "f")
299
- }, n(this, u, "f").footer.cancel), t("button", {
283
+ onClick: c(this, v, "f")
284
+ }, c(this, b, "f").footer.cancel), t("button", {
300
285
  // confirm button
301
286
  class: "button-primary",
302
- onClick: this.enableConfirmButton && n(this, v, "f"),
287
+ onClick: this.enableConfirmButton && c(this, y, "f"),
303
288
  disabled: !this.enableConfirmButton
304
- }, n(this, u, "f").footer.confirm)));
289
+ }, c(this, b, "f").footer.confirm)));
305
290
  }));
306
291
  this.enableConfirmButton = false;
307
292
  this.isFirstSelection = true;
@@ -322,7 +307,7 @@ const $ = class {
322
307
  }
323
308
  async componentWillLoad() {
324
309
  var e, t;
325
- c(this, u, await l.getComponentStrings(this.el), "f");
310
+ d(this, b, await l.getComponentStrings(this.el), "f");
326
311
  this.selectedServerUri = (e = this.connectedServersData[0]) === null || e === void 0 ? void 0 : e.serverUrl;
327
312
  this.userName = (t = this.connectedServersData[0]) === null || t === void 0 ? void 0 : t.gxServerUsername;
328
313
  this.filteredConnectedServersData = this.connectedServersData;
@@ -333,7 +318,7 @@ const $ = class {
333
318
  return t(s, {
334
319
  class: `widget elevation-1 ${e} ${i}`
335
320
  }, t("ch-theme", {
336
- model: L
321
+ model: U
337
322
  }), t("main", {
338
323
  class: "section"
339
324
  }, t("header", {
@@ -342,17 +327,17 @@ const $ = class {
342
327
  class: "field-group"
343
328
  }, t("label", {
344
329
  class: "body-regular-m text-neutral-gray-400"
345
- }, n(this, u, "f").header.title), t("ch-radio-group-render", {
330
+ }, c(this, b, "f").header.title), t("ch-radio-group-render", {
346
331
  class: "radio-group",
347
- model: n(this, h, "f"),
348
- onChange: n(this, I, "f"),
349
- value: n(this, h, "f")[0].value
332
+ model: c(this, u, "f"),
333
+ onChange: c(this, C, "f"),
334
+ value: c(this, u, "f")[0].value
350
335
  }), this.selectedConnectionType === "select" && t("ch-edit", {
351
336
  class: "input search-server",
352
337
  id: "server-name-search",
353
- startImgSrc: n(this, d, "f"),
354
- onInput: n(this, y, "f"),
355
- placeholder: n(this, u, "f").placeholders.searchServers,
338
+ startImgSrc: c(this, h, "f"),
339
+ onInput: c(this, k, "f"),
340
+ placeholder: c(this, b, "f").placeholders.searchServers,
356
341
  accessibleName: "search server",
357
342
  type: "search"
358
343
  }))), this.selectedConnectionType === "select" && [ this.recentlyUsedServersData.length > 0 && t("div", {
@@ -360,12 +345,12 @@ const $ = class {
360
345
  }, t("label", {
361
346
  class: "label",
362
347
  htmlFor: "recently-used-servers"
363
- }, n(this, u, "f").recentlyUsed.title), n(this, R, "f").call(this, true)), t("div", {
348
+ }, c(this, b, "f").recentlyUsed.title), c(this, E, "f").call(this, true)), t("div", {
364
349
  class: "field field-block field-block-all-servers spacing-body-inline"
365
350
  }, t("label", {
366
351
  class: "label",
367
352
  htmlFor: "all-servers"
368
- }, n(this, u, "f").allServers.title), n(this, j, "f").call(this)) ], this.selectedConnectionType === "new" && t("section", {
353
+ }, c(this, b, "f").allServers.title), c(this, A, "f").call(this)) ], this.selectedConnectionType === "new" && t("section", {
369
354
  class: "spacing-body-inline"
370
355
  }, t("div", {
371
356
  class: "layout layout--cols-2"
@@ -374,7 +359,7 @@ const $ = class {
374
359
  }, t("label", {
375
360
  class: "label",
376
361
  htmlFor: "server-url"
377
- }, n(this, u, "f").labels.serverUrl), t("ch-edit", {
362
+ }, c(this, b, "f").labels.serverUrl), t("ch-edit", {
378
363
  // server url
379
364
  class: {
380
365
  input: true,
@@ -382,29 +367,29 @@ const $ = class {
382
367
  },
383
368
  id: "server-url",
384
369
  value: this.serverUrlInputValue,
385
- onInput: e => n(this, k, "f").call(this, e, "serverUrlInputValue"),
386
- placeholder: n(this, u, "f").placeholders.serverUrl,
387
- ref: e => c(this, p, e, "f")
370
+ onInput: e => c(this, _, "f").call(this, e, "serverUrlInputValue"),
371
+ placeholder: c(this, b, "f").placeholders.serverUrl,
372
+ ref: e => d(this, w, e, "f")
388
373
  })), t("div", {
389
374
  class: "field field-block layout__panel"
390
375
  }, t("label", {
391
376
  class: "label",
392
377
  htmlFor: "server-name"
393
- }, n(this, u, "f").labels.serverName), t("ch-edit", {
378
+ }, c(this, b, "f").labels.serverName), t("ch-edit", {
394
379
  // server friendly name
395
380
  class: "input",
396
381
  id: "server-name",
397
382
  value: this.serverNameInputValue,
398
- onInput: e => n(this, k, "f").call(this, e, "serverNameInputValue"),
399
- placeholder: n(this, u, "f").placeholders.serverName,
383
+ onInput: e => c(this, _, "f").call(this, e, "serverNameInputValue"),
384
+ placeholder: c(this, b, "f").placeholders.serverName,
400
385
  maxLength: 18
401
386
  })), !this.isValidUrl && t("ch-tooltip", {
402
387
  class: "tooltip",
403
- actionElement: n(this, p, "f"),
388
+ actionElement: c(this, w, "f"),
404
389
  blockAlign: "outside-end",
405
390
  inlineAlign: r.tooltipSettings.inlineAlign,
406
391
  delay: r.tooltipSettings.delay
407
- }, n(this, u, "f").errors.serverUrlInvalid))), n(this, U, "f").call(this)));
392
+ }, c(this, b, "f").errors.serverUrlInvalid))), c(this, R, "f").call(this)));
408
393
  }
409
394
  static get assetsDirs() {
410
395
  return [ "gx-ide-assets/server-selector" ];
@@ -414,14 +399,14 @@ const $ = class {
414
399
  }
415
400
  };
416
401
 
417
- d = new WeakMap, h = new WeakMap, u = new WeakMap, b = new WeakMap, f = new WeakMap,
418
- m = new WeakMap, g = new WeakMap, p = new WeakMap, w = new WeakMap, v = new WeakMap,
419
- y = new WeakMap, k = new WeakMap, _ = new WeakMap, M = new WeakMap, W = new WeakMap,
420
- x = new WeakMap, C = new WeakMap, z = new WeakMap, N = new WeakMap, I = new WeakMap,
421
- S = new WeakMap, T = new WeakMap, E = new WeakMap, R = new WeakMap, j = new WeakMap,
422
- A = new WeakMap, H = new WeakMap, U = new WeakMap;
402
+ h = new WeakMap, u = new WeakMap, b = new WeakMap, f = new WeakMap, g = new WeakMap,
403
+ p = new WeakMap, m = new WeakMap, w = new WeakMap, v = new WeakMap, y = new WeakMap,
404
+ k = new WeakMap, _ = new WeakMap, M = new WeakMap, x = new WeakMap, W = new WeakMap,
405
+ z = new WeakMap, N = new WeakMap, C = new WeakMap, I = new WeakMap, S = new WeakMap,
406
+ T = new WeakMap, j = new WeakMap, E = new WeakMap, A = new WeakMap, H = new WeakMap,
407
+ R = new WeakMap;
423
408
 
424
- $.style = o;
409
+ $.style = n;
425
410
 
426
411
  export { $ as gx_ide_server_selector };
427
- //# sourceMappingURL=p-970e89ac.entry.js.map
412
+ //# sourceMappingURL=p-4b06b578.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["serverSelectorCss","CSS_BUNDLES","INFO_ICON","getIconPath","category","name","colorType","LOCK_ICON","LANGUAGE_ICON","GxIdeServerSelector","_GxIdeServerSelector_chSearchIcon","set","this","_GxIdeServerSelector_versionsSelect","value","caption","_GxIdeServerSelector__componentLocale","_GxIdeServerSelector_chGridRecentlyUsedServersEl","_GxIdeServerSelector_chGridConnectedServersEl","_GxIdeServerSelector_previousSelectedRowId","_GxIdeServerSelector_selectedRowId","_GxIdeServerSelector_serverUrlEL","_GxIdeServerSelector_cancelHandler","cancelCallback","_GxIdeServerSelector_confirmHandler","async","selectedConnectionType","selectServerCallback","uri","selectedServerUri","selectedServerName","isValidUrl","__classPrivateFieldGet","_GxIdeServerSelector_validateUrl","call","serverUrlInputValue","serverNameInputValue","_GxIdeServerSelector_filterValueChangedHandler","event","filterValue","detail","toLowerCase","filteredConnectedServersData","connectedServersData","filter","item","serverName","includes","_GxIdeServerSelector_inputHandler","field","enableConfirmButton","_GxIdeServerSelector_enableConfirmButton","url","serverUrl","URL","protocolValid","protocol","startsWith","ex","length","_GxIdeServerSelector_selectConnectedServersHandler","_GxIdeServerSelector_handleServerSelection","_GxIdeServerSelector_selectRecentlyUsedServersHandler","recentlyUsedServersData","serversData","otherGridEl","isFirstSelection","__classPrivateFieldSet","rowId","undefined","selectedServer","find","server","id","userName","gxServerUsername","selectRow","_GxIdeServerSelector_connectionTypeChangedHandler","_GxIdeServerSelector_sortTabularGridColumnCallback","e","sortTabularGridColumn","_GxIdeServerSelector_renderTabularGridColumnSet","hideColumnName","h","class","columnId","columnName","settingable","columnNameHidden","size","config","tabularGrid","colSize","maxContent","resizable","sortable","onColumnSortChanged","auto","_GxIdeServerSelector_renderTooltip","text","actionElement","blockAlign","inlineAlign","tooltipSettings","delay","_GxIdeServerSelector_renderTabularGridCommonCells","_GxIdeServerSelector_renderIcon","accessLevel","isConnected","_GxIdeServerSelector_renderRecentlyUsedServersGrid","rowSelectionMode","ref","el","allowColumnReorder","onRowClicked","map","rowid","stateIconSrc","stateTitle","emptyConnectedServers","isAnimated","_GxIdeServerSelector_renderConnectedServersGrid","icon","src","_GxIdeServerSelector_renderFooter","isSelectionMode","onClick","footer","cancel","disabled","confirm","Map","componentWillLoad","Locale","getComponentStrings","_a","_b","render","connectionTypeClass","recentlyUsedEmptyClass","Host","model","header","title","onChange","startImgSrc","onInput","placeholder","placeholders","searchServers","accessibleName","type","htmlFor","recentlyUsed","allServers","labels","input","maxLength","errors","serverUrlInvalid"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n ControlValidation\n // validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * State to track if the server URL is valid.\n */\n @State() isValidUrl: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin\n ) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void | ServerType> => {\n if (this.selectedConnectionType === \"select\") {\n await this.selectServerCallback({\n uri: this.selectedServerUri,\n name: this.selectedServerName\n });\n } else if (this.selectedConnectionType === \"new\") {\n this.isValidUrl = this.#validateUrl(this.serverUrlInputValue);\n if (this.isValidUrl) {\n await this.selectServerCallback({\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n });\n }\n }\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n this.#enableConfirmButton();\n };\n\n #validateUrl = (url: string): boolean => {\n try {\n const serverUrl = new URL(url);\n const protocolValid =\n (serverUrl.protocol === \"http:\" || serverUrl.protocol === \"https:\") &&\n url.startsWith(`${serverUrl.protocol}//`);\n return protocolValid;\n } catch (ex) {\n return false;\n }\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredConnectedServersData = [\n ...sortTabularGridColumn(\n e,\n this.filteredConnectedServersData,\n \"string\",\n undefined\n )\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectRecentlyUsedServersHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectConnectedServersHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row\n rowid={server.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class={{ \"input\": true, \"input-error\": !this.isValidUrl }}\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n </div>\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ></ch-edit>\n </div>\n {!this.isValidUrl && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#serverUrlEL as unknown as HTMLButtonElement\n }\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#_componentLocale.errors.serverUrlInvalid}\n </ch-tooltip>\n )}\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerType = \"legacy\" | \"next\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"mappings":"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"}