@genexus/genexus-ide-ui 0.0.71 → 0.0.72

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 (132) hide show
  1. package/dist/cjs/ch-checkbox_4.cjs.entry.js +75 -51
  2. package/dist/cjs/ch-shortcuts.cjs.entry.js +187 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +101 -0
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  22. package/dist/cjs/gxg-form-textarea.cjs.entry.js +28 -9
  23. package/dist/cjs/gxg-text.cjs.entry.js +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/collection-manifest.json +2 -0
  26. package/dist/collection/components/_starting-template/template.css +1 -0
  27. package/dist/collection/components/ai-assistant/ai-assistant.css +389 -0
  28. package/dist/collection/components/ai-assistant/ai-assistant.js +268 -0
  29. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +5 -0
  30. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +3 -0
  31. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +3 -0
  32. package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +1 -0
  33. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +1 -0
  34. package/dist/collection/components/kb-manager-export/kb-manager-export.css +1 -0
  35. package/dist/collection/components/kb-manager-import/kb-manager-import.css +1 -0
  36. package/dist/collection/components/new-environment/new-environment.css +1 -0
  37. package/dist/collection/components/new-kb/new-kb.css +1 -0
  38. package/dist/collection/components/new-object/new-object.css +1 -0
  39. package/dist/collection/components/object-selector/object-selector.css +1 -0
  40. package/dist/collection/components/references/references.css +1 -0
  41. package/dist/collection/components/share-kb/share-kb.css +1 -0
  42. package/dist/collection/components/team-dev/commit/commit.css +1 -0
  43. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +1 -0
  44. package/dist/collection/components/team-dev/update/update.css +1 -0
  45. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +1 -0
  46. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +1 -0
  47. package/dist/collection/components/ww-images/ww-images.css +1 -0
  48. package/dist/components/ch-shortcuts.js +217 -0
  49. package/dist/components/form-textarea.js +30 -9
  50. package/dist/components/gx-ide-ai-assistant.d.ts +11 -0
  51. package/dist/components/gx-ide-ai-assistant.js +150 -0
  52. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  53. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  54. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  55. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  56. package/dist/components/gx-ide-new-environment.js +1 -1
  57. package/dist/components/gx-ide-new-kb.js +1 -1
  58. package/dist/components/gx-ide-new-object.js +1 -1
  59. package/dist/components/gx-ide-object-selector.js +1 -1
  60. package/dist/components/gx-ide-references.js +1 -1
  61. package/dist/components/gx-ide-share-kb.js +1 -1
  62. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  63. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  64. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  65. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  66. package/dist/components/gx-ide-team-dev-update.js +1 -1
  67. package/dist/components/gx-ide-template.js +1 -1
  68. package/dist/components/gx-ide-ww-images.js +1 -1
  69. package/dist/components/index.d.ts +1 -0
  70. package/dist/components/index.js +2 -0
  71. package/dist/components/text.js +1 -1
  72. package/dist/components/tree-view-item.js +1 -1
  73. package/dist/components/tree-view-render.js +73 -48
  74. package/dist/components/tree-view.js +2 -2
  75. package/dist/esm/ch-checkbox_4.entry.js +75 -51
  76. package/dist/esm/ch-shortcuts.entry.js +183 -0
  77. package/dist/esm/genexus-ide-ui.js +1 -1
  78. package/dist/esm/gx-ide-ai-assistant.entry.js +97 -0
  79. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  80. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  81. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  82. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  83. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  84. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  85. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  86. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  87. package/dist/esm/gx-ide-references.entry.js +1 -1
  88. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  89. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  90. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  91. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  92. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  93. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  94. package/dist/esm/gx-ide-template.entry.js +1 -1
  95. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  96. package/dist/esm/gxg-form-textarea.entry.js +28 -9
  97. package/dist/esm/gxg-text.entry.js +1 -1
  98. package/dist/esm/loader.js +1 -1
  99. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  100. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +5 -0
  101. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +3 -0
  102. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +3 -0
  103. package/dist/genexus-ide-ui/{p-aacd75fc.entry.js → p-11fa1c83.entry.js} +1 -1
  104. package/dist/genexus-ide-ui/{p-8f4d3169.entry.js → p-13085dd7.entry.js} +1 -1
  105. package/dist/genexus-ide-ui/{p-da1ae937.entry.js → p-3d410e77.entry.js} +1 -1
  106. package/dist/genexus-ide-ui/{p-3f8995ba.entry.js → p-3d4722f2.entry.js} +1 -1
  107. package/dist/genexus-ide-ui/{p-99a0cd49.entry.js → p-440fe7b3.entry.js} +1 -1
  108. package/dist/genexus-ide-ui/{p-4c0ecfe3.entry.js → p-446c0831.entry.js} +1 -1
  109. package/dist/genexus-ide-ui/{p-46c2406e.entry.js → p-7e52f6fb.entry.js} +1 -1
  110. package/dist/genexus-ide-ui/{p-7bcb1954.entry.js → p-8c5919ec.entry.js} +1 -1
  111. package/dist/genexus-ide-ui/p-99277f8f.entry.js +1 -0
  112. package/dist/genexus-ide-ui/{p-4313d9be.entry.js → p-9a15e22e.entry.js} +1 -1
  113. package/dist/genexus-ide-ui/{p-6929875a.entry.js → p-9ad85778.entry.js} +1 -1
  114. package/dist/genexus-ide-ui/{p-2b2acd3d.entry.js → p-abfa88ed.entry.js} +1 -1
  115. package/dist/genexus-ide-ui/{p-e23d6f44.entry.js → p-b34d258d.entry.js} +1 -1
  116. package/dist/genexus-ide-ui/p-b417c899.entry.js +1 -0
  117. package/dist/genexus-ide-ui/{p-c2ffd150.entry.js → p-ba31a49e.entry.js} +1 -1
  118. package/dist/genexus-ide-ui/{p-24b2988b.entry.js → p-baffd9b1.entry.js} +1 -1
  119. package/dist/genexus-ide-ui/{p-083e01a8.entry.js → p-c3895c79.entry.js} +1 -1
  120. package/dist/genexus-ide-ui/{p-8e68f1d3.entry.js → p-cb07fc99.entry.js} +1 -1
  121. package/dist/genexus-ide-ui/{p-46901569.entry.js → p-d2aca59f.entry.js} +1 -1
  122. package/dist/genexus-ide-ui/{p-7af7779b.entry.js → p-d664fa18.entry.js} +1 -1
  123. package/dist/genexus-ide-ui/{p-e090d88c.entry.js → p-e13a299b.entry.js} +1 -1
  124. package/dist/genexus-ide-ui/p-f1922c2f.entry.js +1 -0
  125. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/shortcuts/ch-shortcuts.css +3 -0
  126. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +0 -1
  127. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +44 -2
  128. package/dist/node_modules/@genexus/gemini/dist/collection/components/text/text.css +4 -1
  129. package/dist/types/components/ai-assistant/ai-assistant.d.ts +65 -0
  130. package/dist/types/components.d.ts +70 -0
  131. package/package.json +3 -3
  132. package/dist/genexus-ide-ui/p-ee85040d.entry.js +0 -1
@@ -26,7 +26,6 @@
26
26
  );
27
27
  display: grid;
28
28
  grid-template-rows: min-content;
29
- overflow: hidden;
30
29
  }
31
30
 
32
31
  .header {
@@ -886,7 +886,49 @@ LARGE VERSION (html tag has 'gxg-large' class)
886
886
  :host(.large) label,
887
887
  :host(.large) textarea {
888
888
  font-size: var(--font-size-lg);
889
- }
890
- :host(.large) textarea {
891
889
  padding: var(--spacing-comp-01) var(--spacing-comp-02);
890
+ }
891
+
892
+ /*********************************************
893
+ Mercury
894
+ **********************************************/
895
+ :host(.mercury) {
896
+ font-size: var(--mc-font-size-xs);
897
+ }
898
+ :host(.mercury) .textarea-wrapper {
899
+ /*this is usually a mixing to include in every mercury component*/
900
+ font-family: var(--font-family-primary);
901
+ font-size: var(--mc-font-size-xs);
902
+ color: var(--gray-03);
903
+ line-height: var(--line-height-default);
904
+ font-weight: var(--font-weight-regular);
905
+ box-sizing: border-box;
906
+ font-size: inherit;
907
+ border: var(--border-width-sm) solid var(--gray-05);
908
+ border-radius: var(--border-radius-sm);
909
+ padding: var(--spacing-comp-02) var(--spacing-comp-03);
910
+ }
911
+ :host(.mercury) .textarea-wrapper:focus-within {
912
+ outline: var(--border-width-md) solid var(--gxg-border-color--focused);
913
+ outline-offset: -2px;
914
+ }
915
+ :host(.mercury) textarea {
916
+ border: none;
917
+ padding: 0;
918
+ font-size: inherit;
919
+ font-family: inherit;
920
+ line-height: inherit;
921
+ padding-inline-end: var(--spacing-comp-02);
922
+ background-color: transparent;
923
+ }
924
+ :host(.mercury) textarea:focus {
925
+ outline: none;
926
+ }
927
+
928
+ /*********************************************
929
+ [grow] Only for Mercury
930
+ **********************************************/
931
+ :host([grow].mercury) textarea {
932
+ box-sizing: border-box;
933
+ resize: none;
892
934
  }
@@ -775,12 +775,15 @@ LARGE VERSION (html tag has 'gxg-large' class)
775
775
  font-size: var(--font-size-lg);
776
776
  }
777
777
 
778
+ :host(.mercury) {
779
+ color: var(--gray-02);
780
+ }
778
781
  :host(.mercury) .gxg-text,
779
782
  :host(.mercury) .gxg-link {
780
783
  font-size: var(--mc-font-size-xs);
781
784
  }
782
785
  :host(.mercury) .gxg-text {
783
- color: var(--gray-02);
786
+ color: inherit;
784
787
  }
785
788
 
786
789
  :host(.mercury[italic]) {
@@ -0,0 +1,65 @@
1
+ import { EventEmitter } from "../../stencil-public-runtime";
2
+ export declare class GxIdeTemplate {
3
+ /**
4
+ * The component hard-coded strings translations.
5
+ */
6
+ private _componentLocale;
7
+ private renderedFirstTime;
8
+ el: HTMLGxIdeAiAssistantElement;
9
+ /**
10
+ * Flag used to hide the shortcuts
11
+ */
12
+ userHasTyped: boolean;
13
+ /**
14
+ * The query is being added
15
+ */
16
+ addingQuery: boolean;
17
+ /**
18
+ * A temporary state variable for testing purposes
19
+ */
20
+ showMessage: boolean;
21
+ /**
22
+ * List of messages displayed by the component
23
+ */
24
+ messages: Message[];
25
+ /**
26
+ * The prompt textarea max-height
27
+ */
28
+ readonly promptMaxHeight = "128px";
29
+ /**
30
+ * A temporary property to illustrate the assistant status
31
+ */
32
+ readonly assistantStatus: AiStatus;
33
+ /**
34
+ * List of keys that make up the shortcut to focus on the component's text input
35
+ */
36
+ readonly focusShortcuts: string[];
37
+ /**
38
+ * List of keys that make up the shortcut to focus on the component's text input
39
+ */
40
+ readonly userMessageCallback: UserMessageCallback;
41
+ /**
42
+ * This event is emitted once just after the component is fully loaded and the first render() occurs
43
+ */
44
+ componentDidRenderFirstTime: EventEmitter<boolean>;
45
+ componentDidRender(): void;
46
+ componentWillLoad(): Promise<void>;
47
+ /**
48
+ * Clear the list of messages
49
+ */
50
+ clear(): Promise<void>;
51
+ /**
52
+ * Add a message. This method will be used by the host to add messages from the assistant
53
+ */
54
+ addMessage(message: Message): Promise<void>;
55
+ private renderMessage;
56
+ private textAreaInputHandler;
57
+ private promptEnterHandler;
58
+ render(): any;
59
+ }
60
+ export type AiStatus = "indeterminate" | "success" | "error";
61
+ export type Message = {
62
+ type: "user" | "assistant-chat" | "assistant-action" | "assistant-in-progress" | "assistant-error";
63
+ text: string;
64
+ };
65
+ export type UserMessageCallback = (text: string) => Promise<void>;
@@ -5,6 +5,7 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { AiStatus, Message, UserMessageCallback } from "./components/ai-assistant/ai-assistant";
8
9
  import { ApplicationDeclarationData, CancelCallback, ConfirmCallback, GetDataMappingCallback, SelectApplicationCallback, SelectMappingCallback, SuggestApplicationsCallback } from "./components/bpm-application-declaration/bpm-app-declaration";
9
10
  import { TitleType } from "./components/_helpers/title/title";
10
11
  import { AlignItems, FooterJustify, HeadingJustify, JustifyContent, SectionsPadding } from "./components/_helpers/container/container";
@@ -35,6 +36,36 @@ import { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/updat
35
36
  import { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
36
37
  import { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback4, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback1, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback2 } from "./components/ww-images/ww-images";
37
38
  export namespace Components {
39
+ interface GxIdeAiAssistant {
40
+ /**
41
+ * Add a message. This method will be used by the host to add messages from the assistant
42
+ */
43
+ "addMessage": (message: Message) => Promise<void>;
44
+ /**
45
+ * A temporary property to illustrate the assistant status
46
+ */
47
+ "assistantStatus": AiStatus;
48
+ /**
49
+ * Clear the list of messages
50
+ */
51
+ "clear": () => Promise<void>;
52
+ /**
53
+ * List of keys that make up the shortcut to focus on the component's text input
54
+ */
55
+ "focusShortcuts": string[];
56
+ /**
57
+ * List of messages displayed by the component
58
+ */
59
+ "messages": Message[];
60
+ /**
61
+ * The prompt textarea max-height
62
+ */
63
+ "promptMaxHeight": "128px";
64
+ /**
65
+ * List of keys that make up the shortcut to focus on the component's text input
66
+ */
67
+ "userMessageCallback": UserMessageCallback;
68
+ }
38
69
  interface GxIdeBpmAppDeclaration {
39
70
  /**
40
71
  * Current application value
@@ -1181,6 +1212,10 @@ export namespace Components {
1181
1212
  "validate": () => Promise<boolean>;
1182
1213
  }
1183
1214
  }
1215
+ export interface GxIdeAiAssistantCustomEvent<T> extends CustomEvent<T> {
1216
+ detail: T;
1217
+ target: HTMLGxIdeAiAssistantElement;
1218
+ }
1184
1219
  export interface GxIdeBpmAppDeclarationCustomEvent<T> extends CustomEvent<T> {
1185
1220
  detail: T;
1186
1221
  target: HTMLGxIdeBpmAppDeclarationElement;
@@ -1270,6 +1305,12 @@ export interface GxIdeWwImagesCustomEvent<T> extends CustomEvent<T> {
1270
1305
  target: HTMLGxIdeWwImagesElement;
1271
1306
  }
1272
1307
  declare global {
1308
+ interface HTMLGxIdeAiAssistantElement extends Components.GxIdeAiAssistant, HTMLStencilElement {
1309
+ }
1310
+ var HTMLGxIdeAiAssistantElement: {
1311
+ prototype: HTMLGxIdeAiAssistantElement;
1312
+ new (): HTMLGxIdeAiAssistantElement;
1313
+ };
1273
1314
  interface HTMLGxIdeBpmAppDeclarationElement extends Components.GxIdeBpmAppDeclaration, HTMLStencilElement {
1274
1315
  }
1275
1316
  var HTMLGxIdeBpmAppDeclarationElement: {
@@ -1445,6 +1486,7 @@ declare global {
1445
1486
  new (): HTMLGxIdeWwImagesElement;
1446
1487
  };
1447
1488
  interface HTMLElementTagNameMap {
1489
+ "gx-ide-ai-assistant": HTMLGxIdeAiAssistantElement;
1448
1490
  "gx-ide-bpm-app-declaration": HTMLGxIdeBpmAppDeclarationElement;
1449
1491
  "gx-ide-container": HTMLGxIdeContainerElement;
1450
1492
  "gx-ide-create-kb-from-server": HTMLGxIdeCreateKbFromServerElement;
@@ -1477,6 +1519,32 @@ declare global {
1477
1519
  }
1478
1520
  }
1479
1521
  declare namespace LocalJSX {
1522
+ interface GxIdeAiAssistant {
1523
+ /**
1524
+ * A temporary property to illustrate the assistant status
1525
+ */
1526
+ "assistantStatus"?: AiStatus;
1527
+ /**
1528
+ * List of keys that make up the shortcut to focus on the component's text input
1529
+ */
1530
+ "focusShortcuts"?: string[];
1531
+ /**
1532
+ * List of messages displayed by the component
1533
+ */
1534
+ "messages"?: Message[];
1535
+ /**
1536
+ * This event is emitted once just after the component is fully loaded and the first render() occurs
1537
+ */
1538
+ "onComponentDidRenderFirstTime"?: (event: GxIdeAiAssistantCustomEvent<boolean>) => void;
1539
+ /**
1540
+ * The prompt textarea max-height
1541
+ */
1542
+ "promptMaxHeight"?: "128px";
1543
+ /**
1544
+ * List of keys that make up the shortcut to focus on the component's text input
1545
+ */
1546
+ "userMessageCallback"?: UserMessageCallback;
1547
+ }
1480
1548
  interface GxIdeBpmAppDeclaration {
1481
1549
  /**
1482
1550
  * Current application value
@@ -2731,6 +2799,7 @@ declare namespace LocalJSX {
2731
2799
  "types": GxOption[];
2732
2800
  }
2733
2801
  interface IntrinsicElements {
2802
+ "gx-ide-ai-assistant": GxIdeAiAssistant;
2734
2803
  "gx-ide-bpm-app-declaration": GxIdeBpmAppDeclaration;
2735
2804
  "gx-ide-container": GxIdeContainer;
2736
2805
  "gx-ide-create-kb-from-server": GxIdeCreateKbFromServer;
@@ -2766,6 +2835,7 @@ export { LocalJSX as JSX };
2766
2835
  declare module "@stencil/core" {
2767
2836
  export namespace JSX {
2768
2837
  interface IntrinsicElements {
2838
+ "gx-ide-ai-assistant": LocalJSX.GxIdeAiAssistant & JSXBase.HTMLAttributes<HTMLGxIdeAiAssistantElement>;
2769
2839
  "gx-ide-bpm-app-declaration": LocalJSX.GxIdeBpmAppDeclaration & JSXBase.HTMLAttributes<HTMLGxIdeBpmAppDeclarationElement>;
2770
2840
  "gx-ide-container": LocalJSX.GxIdeContainer & JSXBase.HTMLAttributes<HTMLGxIdeContainerElement>;
2771
2841
  "gx-ide-create-kb-from-server": LocalJSX.GxIdeCreateKbFromServer & JSXBase.HTMLAttributes<HTMLGxIdeCreateKbFromServerElement>;
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": "0.0.71",
4
+ "version": "0.0.72",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",
@@ -36,10 +36,10 @@
36
36
  "@types/react": "^18.2.8"
37
37
  },
38
38
  "peerDependencies": {
39
- "@genexus/gemini": "*0.2.30"
39
+ "@genexus/gemini": "*0.2.35"
40
40
  },
41
41
  "devDependencies": {
42
- "@genexus/gemini": "*0.2.30",
42
+ "@genexus/gemini": "*0.2.36",
43
43
  "@stencil-community/eslint-plugin": "^0.5.0",
44
44
  "@stencil/core": "^2.17.0",
45
45
  "@stencil/sass": "^2.0.1",
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as i,H as s,g as n,w as a,f as h}from"./p-0906fb46.js";import{D as r}from"./p-bac6580b.js";import{f as l,m as d}from"./p-b374d112.js";const o="checkbox",c=class{constructor(i){t(this,i),this.click=e(this,"click",7),this.input=e(this,"input",7),this.disabled=!1,this.highlightable=!1,this.indeterminate=!1,this.readonly=!1,this.getValue=t=>t?this.checkedValue:this.unCheckedValue,this.handleClick=t=>{this.readonly||this.disabled||t.stopPropagation()},this.handleChange=t=>{t.stopPropagation();const e=t.target,i=e.checked,s=this.getValue(i);this.checked=i,this.value=s,e.value=s,this.input.emit(t),this.highlightable&&this.click.emit()}}valueChanged(){this.checked=this.value===this.checkedValue}componentWillLoad(){this.checked=this.value===this.checkedValue}render(){var t;const e=`${this.checked?" checked":""}${this.indeterminate?" indeterminate":""}`;return i(s,{class:{[r]:this.disabled,"ch-checkbox--actionable":!this.readonly&&!this.disabled||this.readonly&&this.highlightable}},i("div",{class:{container:!0,"container--checked":this.checked},part:`container${e}`},i("input",{"aria-label":""!==(null===(t=this.accessibleName)||void 0===t?void 0:t.trim())&&this.accessibleName!==this.caption?this.accessibleName:null,id:this.caption?o:null,class:"input",part:"input",type:"checkbox",checked:this.checked,disabled:this.disabled||this.readonly,indeterminate:this.indeterminate,value:this.value,onClick:this.handleClick,onInput:this.handleChange}),i("div",{class:{option:!0,"option--checked":this.checked&&!this.indeterminate,"option--indeterminate":this.indeterminate},part:`option${e}`,"aria-hidden":"true"})),this.caption&&i("label",{class:"label",part:"label",htmlFor:o,onClick:this.handleClick},this.caption))}get element(){return n(this)}static get watchers(){return{value:["valueChanged"]}}};c.style="*,::before,::after{box-sizing:border-box}:host{display:flex;align-items:center;align-self:stretch;outline:unset;touch-action:manipulation;user-select:none}:host(.ch-checkbox--actionable) :is(.input,.label){cursor:pointer}.container{position:relative;width:min(1em, 20px);height:min(1em, 20px);border:1px solid var(--option-border-color, currentColor);border-radius:18.75%}.container--checked{background-color:var(--option-checked-color, #ffffff00)}.container:focus-within{box-shadow:0 0 1px 1px color-mix(in srgb, currentColor 25%, transparent)}.input{display:flex;width:100%;height:100%;opacity:0;margin:0;padding:0}.option{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);width:50%;height:50%;background-color:currentColor;opacity:0;pointer-events:none}.option--checked{opacity:1;-webkit-mask:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' %3E%3Cpath fill='currentColor' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z' /%3E%3C/svg%3E\")}.option--indeterminate{opacity:1}.label{margin-inline-start:min(0.35em, 7px)}";const p="ch-tree-view-item",v="text/plain",u=t=>t.tagName.toLowerCase()===p,g=()=>l().find(u),m=t=>t&&!t.editing,b=(t,e)=>`"newContainerId":"${t}","metadata":"${JSON.stringify(e)}"`,w=class{constructor(i){t(this,i),this.droppableZoneEnter=e(this,"droppableZoneEnter",7),this.expandedItemChange=e(this,"expandedItemChange",7),this.itemContextmenu=e(this,"itemContextmenu",7),this.itemsDropped=e(this,"itemsDropped",7),this.selectedItemsChange=e(this,"selectedItemsChange",7),this.keyDownEvents={ArrowDown:t=>{const e=g();m(e)&&(t.preventDefault(),e.focusNextItem(d(t)))},ArrowUp:t=>{const e=g();m(e)&&(t.preventDefault(),e.focusPreviousItem(d(t)))},F2:t=>{const e=g();e&&e.editable&&(t.preventDefault(),e.editing=!0)}},this.draggingSelectedItems=!1,this.needForRAF=!0,this.selectedItemsInfo=new Map,this.validDroppableZoneCache=new Map,this.draggedIds=[],this.draggedParentIds=[],this.draggingInTheDocument=!1,this.draggingInTree=!1,this.multiSelection=!1,this.openSubTreeCountdown=750,this.scrollToEdgeOnDrag=!0,this.waitDropProcessing=!1,this.trackItemDrag=t=>{t.preventDefault(),this.lastDragEvent=t,this.updateDropEffect(t),this.needForRAF&&(this.needForRAF=!1,requestAnimationFrame((()=>{this.needForRAF=!0,this.el.style.setProperty("--ch-tree-view-dragging-item-x",`${this.lastDragEvent.pageX}px`),this.el.style.setProperty("--ch-tree-view-dragging-item-y",`${this.lastDragEvent.pageY}px`)})))},this.fixScrollPositionOnDrag=()=>{this.draggingInTree&&this.lastDragEvent&&requestAnimationFrame((()=>{((t,e)=>{const i=this.lastDragEvent.clientY-e.getBoundingClientRect().top,s=e.clientHeight,n=i<=30;(n||i>s-30)&&(e.scrollTop+=(n?i-30:i-(s-30))/10)})(0,this.el),requestAnimationFrame(this.fixScrollPositionOnDrag)}))}}handleContextMenuEvent(t){const e=t.target.closest(p);e&&(t.preventDefault(),this.itemContextmenu.emit({id:e.id,itemRef:e,metadata:e.metadata,contextmenuEvent:t}))}handleKeyDownEvents(t){const e=this.keyDownEvents[t.key];e&&e(t)}handleDragStart(t){this.validDroppableZoneCache.clear(),this.draggingInTheDocument=!0,this.dragStartTimestamp=(new Date).getTime(),this.draggedItems=JSON.parse(t.dataTransfer.getData(v))}handleDragEnd(){this.draggingInTheDocument=!1}handleDragEnter(t){this.cancelSubTreeOpening(null,!0),t.stopPropagation();const e=t.target;e.tagName.toLowerCase()===p&&(this.lastOpenSubTreeItem=e,this.openSubTreeAfterCountdown(e),"valid"===this.validDroppableZone(t)&&(e.dragState="enter"))}handleDragLeave(t){const e=t.target;if(e.tagName.toLowerCase()!==p)return;const i=e;i.dragState="none",this.cancelSubTreeOpening(i)}cancelSubTreeOpening(t,e=!1){(this.lastOpenSubTreeItem===t||e)&&(clearTimeout(this.openSubTreeTimeout),this.lastOpenSubTreeItem=null)}handleItemDrop(t){t.stopPropagation(),this.cancelSubTreeOpening(null,!0);const e=t.target,i=JSON.parse(t.dataTransfer.getData(v));"valid"===this.validDroppableZone(t)&&this.itemsDropped.emit({newContainer:{id:e.id,metadata:e.metadata},draggingSelectedItems:this.draggingSelectedItems,draggedItems:i,dropInTheSameTree:this.draggingInTree})}handleItemDragStart(t){document.body.addEventListener("dragover",this.trackItemDrag,{capture:!0}),this.currentDraggedItem=t.target,this.checkDragValidityAndUpdateDragInfo(t.detail)?(this.draggingInTree=!0,this.scrollToEdgeOnDrag&&this.fixScrollPositionOnDrag()):t.detail.dragEvent.dataTransfer.effectAllowed="none"}handleItemDragEnd(){this.draggingInTree=!1,document.body.removeEventListener("dragover",this.trackItemDrag,{capture:!0}),this.resetVariables()}handleSelectedItemSync(t){t.stopPropagation();const e=t.detail;e.selected?this.selectedItemsInfo.set(e.id,e):this.selectedItemsInfo.delete(e.id)}handleSelectedItemChange(t){t.stopPropagation(),this.handleItemSelection(t.target,t.detail)}async clearSelectedItemsInfo(){this.clearSelectedItems()}async scrollIntoVisible(t){const e=this.el.querySelector(`${p}#${t}`);if(!e)return;let i=e.parentElement;for(;i.tagName.toLowerCase()===p;)i.expanded=!0,i=i.parentElement;requestAnimationFrame((()=>{e.scrollIntoView()}))}async updateValidDropZone(t,e,i,s){var n;if(!this.draggingInTheDocument||t<=this.dragStartTimestamp)return;const a=b(e,i);this.validDroppableZoneCache.set(a,s?"valid":"invalid"),(null===(n=this.lastOpenSubTreeItem)||void 0===n?void 0:n.id)===e&&(this.lastOpenSubTreeItem.dragState="enter")}validDroppableZone(t){const e=t.target,i=b(e.id,this.draggedItems);let s=this.validDroppableZoneCache.get(i);return"temporal-invalid"!==s||e.lazyLoad||e.downloading||(s=null),null!=s?s:"none"===t.dataTransfer.effectAllowed||e.dropDisabled||this.draggingInTree&&(this.draggedIds.includes(e.id)||this.draggedParentIds.includes(e.id))?(this.validDroppableZoneCache.set(i,"invalid"),"invalid"):e.lazyLoad||e.downloading?(this.validDroppableZoneCache.set(i,"temporal-invalid"),"temporal-invalid"):(this.validDroppableZoneCache.set(i,"checking"),this.droppableZoneEnter.emit({newContainer:{id:e.id,metadata:e.metadata},draggedItems:this.draggedItems}),"checking")}openSubTreeAfterCountdown(t){t.leaf||t.expanded||(this.openSubTreeTimeout=setTimeout((()=>{t.expanded=!0,this.expandedItemChange.emit({id:t.id,expanded:!0})}),this.openSubTreeCountdown))}updateDropEffect(t){const e=t.target;if(e.tagName.toLowerCase()!==p||e.closest("ch-tree-view")!==this.el)return;const i=this.validDroppableZone(t);"invalid"!==i&&"temporal-invalid"!==i||(t.dataTransfer.dropEffect="none")}resetVariables(){this.draggedIds=[],this.draggedParentIds=[]}checkDragValidityAndUpdateDragInfo(t){const e=t.elem,i=this.selectedItemsInfo.has(e.id);this.draggingSelectedItems=i;let s,n=[];if(i){const t=[...this.selectedItemsInfo.keys()],i=[...this.selectedItemsInfo.values()],a=t.length;s=i.every((t=>!t.itemRef.dragDisabled)),this.draggedIds=t,n=i.map((t=>({id:t.id,metadata:t.metadata}))),this.dragInfo=1===a?e.caption:a.toString()}else s=!e.dragDisabled,n=[{id:e.id,metadata:e.metadata}],this.draggedIds=[e.id],this.dragInfo=e.caption;this.getDirectParentsOfDraggableItems(i);const a=JSON.stringify(n);return t.dragEvent.dataTransfer.setData(v,a),s}getDirectParentsOfDraggableItems(t){if(t)this.selectedItemsInfo.forEach((t=>{const e=t.parentId;""!==e&&this.draggedParentIds.push(e)}));else{const t=this.currentDraggedItem.parentElement;t.tagName.toLowerCase()===p&&this.draggedParentIds.push(t.id)}}handleItemSelection(t,e){e.ctrlKeyPressed&&this.multiSelection||(this.selectedItemsInfo.delete(e.id),this.selectedItemsInfo.forEach((t=>{t.itemRef.selected=!1})),this.clearSelectedItems(),t.selected=e.selected),e.selected&&this.selectedItemsInfo.set(e.id,e),this.selectedItemsChange.emit(this.selectedItemsInfo)}clearSelectedItems(){this.selectedItemsInfo.clear()}disconnectedCallback(){this.resetVariables(),this.handleItemDragEnd()}render(){return i(s,{class:{"ch-tree-view-dragging-item":this.draggingInTheDocument,"ch-tree-view-not-dragging-item":!this.draggingInTheDocument,"ch-tree-view--dragging-selected-items":this.draggingInTree&&this.draggingSelectedItems,"ch-tree-view-waiting-drop-processing":this.waitDropProcessing}},i("div",{role:"tree",part:"tree-x-container","aria-multiselectable":this.multiSelection.toString(),class:"ch-tree-view-container"},i("slot",null)),this.draggingInTree&&i("span",{"aria-hidden":"true",class:"ch-tree-view-drag-info"},this.dragInfo))}get el(){return n(this)}};w.style="ch-tree-view{display:flex;position:relative;width:100%;overflow:auto}ch-tree-view>.ch-tree-view-container{position:absolute;inset:0}ch-tree-view.ch-tree-view-dragging-item ch-tree-view-item{pointer-events:var(--ch-tree-view-pointer-events, all)}ch-tree-view.ch-tree-view-dragging-item .ch-tree-view-list-item--deny-drop{pointer-events:none}ch-tree-view.ch-tree-view--dragging-selected-items ch-tree-view-item[selected]{--ch-tree-view-pointer-events:none}ch-tree-view.ch-tree-view-waiting-drop-processing{cursor:wait}ch-tree-view.ch-tree-view-waiting-drop-processing>.ch-tree-view-container{pointer-events:none}.ch-tree-view-drag-info{--rtl-offset:16px;position:fixed;left:0;top:0;transform:translate(calc(var(--ch-tree-view-dragging-item-x) + var(--rtl-offset)), calc(var(--ch-tree-view-dragging-item-y) + 8px));pointer-events:none;z-index:1;animation:ch-tree-view-drag-info-fade-in 10ms}@keyframes ch-tree-view-drag-info-fade-in{0%,100%{opacity:0}}html[dir=rtl] .ch-tree-view-drag-info{--rtl-offset:-100%}";const x=new Image,f="ch-tree-view-item",k=`:scope>${f}`,y=`${f}:not([disabled])`,C=`:scope>${f}:last-child`,_="expandable",I="Enter",D=["container","input","option","checked","indeterminate"].map((t=>`${t}:checkbox__${t}`)).join(","),S=class{constructor(s){t(this,s),this.checkboxChange=e(this,"checkboxChange",7),this.checkboxToggleChange=e(this,"checkboxToggleChange",7),this.itemDragStart=e(this,"itemDragStart",7),this.itemDragEnd=e(this,"itemDragEnd",7),this.loadLazyContent=e(this,"loadLazyContent",7),this.modifyCaption=e(this,"modifyCaption",7),this.openReference=e(this,"openReference",7),this.selectedItemChange=e(this,"selectedItemChange",7),this.selectedItemSync=e(this,"selectedItemSync",7),this.ignoreCheckboxChange=!1,this.checkbox=!1,this.checked=!1,this.customRender=!1,this.disabled=!1,this.dragDisabled=!1,this.dropDisabled=!1,this.dragState="none",this.downloading=!1,this.editing=!1,this.expanded=!1,this.lastItem=!1,this.lazyLoad=!1,this.leaf=!1,this.level=0,this.indeterminate=!1,this.selected=!1,this.showDownloadingSpinner=!0,this.showExpandableButton=!0,this.showLines="none",this.toggleCheckboxes=!1,this.checkIfShouldRemoveEditMode=t=>{t.stopPropagation(),(t.code===I||"Escape"===t.code)&&(t.preventDefault(),this.removeEditMode(!0,t.code===I)())},this.removeEditModeOnClick=t=>{!t.composedPath().includes(this.inputRef)&&t.pointerType&&this.removeEditMode(!1)()},this.removeEditMode=(t,e=!1)=>()=>{if(!this.editing)return;this.editing=!1,document.body.removeEventListener("click",this.removeEditModeOnClick,{capture:!0});const i=this.inputRef.value;e&&""!==i.trim()&&this.modifyCaption.emit({id:this.el.id,caption:i}),t&&this.headerRef.focus()},this.toggleExpand=t=>{t.stopPropagation(),this.leaf||(this.expanded=!this.expanded),this.selected=!0,this.selectedItemChange.emit(this.getSelectedInfo(d(t),!0))},this.getSelectedInfo=(t,e)=>({ctrlKeyPressed:t,expanded:this.expanded,id:this.el.id,itemRef:this.el,metadata:this.metadata,parentId:this.el.parentElement.id,selected:e}),this.handleActionDblClick=t=>{t.stopPropagation(),d(t)?this.toggleSelected():(this.emitOpenReference(),this.leaf||this.toggleExpand(t))},this.handleActionClick=t=>{t.stopPropagation(),this.editing||(t.preventDefault(),t.pointerType?this.toggleOrSelect(t):(this.emitOpenReference(),this.toggleExpand(t)))},this.handleActionKeyDown=t=>{d(t)&&t.code===I&&(t.stopPropagation(),this.toggleSelected())},this.handleCheckedChange=t=>{t.stopPropagation(),this.checked=t.target.checked,this.indeterminate=!1,this.checkboxChange.emit({id:this.el.id,checked:this.checked,indeterminate:!1})},this.renderImg=(t,e)=>i("img",{"aria-hidden":"true",class:t,part:t,alt:"",src:e,loading:"lazy"}),this.handleDragStart=t=>{if(this.editing)return t.preventDefault(),void t.stopPropagation();t.dataTransfer.setDragImage(x,0,0),t.dataTransfer.effectAllowed="move",this.dragState="start",this.itemDragStart.emit({elem:this.el,dragEvent:t})},this.handleDragEnd=()=>{this.dragState="none",this.itemDragEnd.emit()},this.handleDrop=()=>{this.dragState="none"}}updateChildrenCheckedValue(t){!this.toggleCheckboxes||this.leaf||this.ignoreCheckboxChange?this.ignoreCheckboxChange=!1:this.getDirectTreeItems().forEach((e=>{e.checked===t&&!1===e.indeterminate||e.updateChecked(t,!1)}))}handleEditingChange(t){t&&(document.body.addEventListener("click",this.removeEditModeOnClick,{capture:!0}),a((()=>{requestAnimationFrame((()=>{this.inputRef&&this.inputRef.focus()}))})))}handleExpandedChange(t){this.lazyLoadItems(t)}handleLasItemChange(t){t&&this.showLines?this.setResizeObserver():this.disconnectObserver()}handleSelectedChange(t){this.selectedItemSync.emit(this.getSelectedInfo(!0,t))}handleShowLinesChange(t){t&&this.lastItem?this.setResizeObserver():this.disconnectObserver()}updateCheckboxValue(t){if(!this.toggleCheckboxes||this.el===t.target)return;const e=t.detail.checked,i=this.getDirectTreeItems().every((t=>t.checked===e)),s=this.checked!==e||this.indeterminate!==!i;this.ignoreCheckboxChange=this.checked!==e,this.checked=e,this.indeterminate=!i,s&&this.checkboxToggleChange.emit({id:this.el.id,checked:e,indeterminate:!i})}async focusNextItem(t){if(!this.leaf&&this.expanded){const e=this.el.querySelector(y);if(e)return void e.setFocus(t)}this.focusNextSibling(t)}async focusNextSibling(t){const e=this.el.nextElementSibling;e?e.disabled?e.focusNextItem(t):e.setFocus(t):0!==this.level&&this.el.parentElement.focusNextSibling(t)}async focusPreviousItem(t){const e=this.el.previousElementSibling;if(e)return void e.focusLastItem(t);if(0===this.level)return;const i=this.el.parentElement;i.disabled?i.focusPreviousItem(t):i.setFocus(t)}async focusLastItem(t){if(!this.leaf&&this.expanded){const e=this.el.querySelector(C);if(e)return void e.focusLastItem(t)}this.disabled?this.focusPreviousItem(t):this.setFocus(t)}async setFocus(t){this.headerRef.focus(),t||this.setSelected()}async updateChecked(t,e){this.checked=t,this.indeterminate=e,this.checkboxToggleChange.emit({id:this.el.id,checked:t,indeterminate:e})}getDirectTreeItems(){return Array.from(this.el.querySelectorAll(k))}setResizeObserver(){this.watcher=new ResizeObserver((()=>{const t=this.el.getBoundingClientRect().height-this.headerRef.getBoundingClientRect().height/2;this.el.style.setProperty("--ch-tree-view-item-distance-to-checkbox",t+"px")})),this.watcher.observe(this.el),this.watcher.observe(this.headerRef)}disconnectObserver(){this.watcher&&(this.watcher.disconnect(),this.watcher=null)}lazyLoadItems(t){this.lazyLoad&&t&&(this.lazyLoad=!1,this.downloading=!0,this.loadLazyContent.emit(this.el.id))}toggleSelected(){const t=!this.selected;this.selected=t,this.selectedItemChange.emit(this.getSelectedInfo(!0,t))}setSelected(){this.selected=!0,this.selectedItemChange.emit(this.getSelectedInfo(!1,!0))}toggleOrSelect(t){d(t)?this.toggleSelected():this.setSelected()}emitOpenReference(){this.openReference.emit({id:this.el.id,leaf:this.leaf,metadata:this.metadata})}componentWillLoad(){this.lazyLoadItems(this.expanded),this.selected&&this.selectedItemChange.emit(this.getSelectedInfo(!0,!0))}componentDidLoad(){this.lastItem&&this.showLines&&this.setResizeObserver()}disconnectedCallback(){this.editing&&this.removeEditMode(!1),this.disconnectObserver()}render(){const t=this.level%2==0,e=!this.leaf&&this.showExpandableButton,n=!this.leaf&&!this.showExpandableButton,a=!this.leaf&&!this.lazyLoad,h="all"===this.showLines&&0!==this.level,r="last"===this.showLines&&0!==this.level&&this.lastItem;return i(s,{role:"treeitem","aria-level":this.level+1,"aria-selected":this.selected?"true":null,class:{[f+"--downloading"]:this.downloading,[f+"--editing"]:this.editing,[f+"--not-editing"]:!this.editing,[f+"--drag-"+this.dragState]:"none"!==this.dragState&&"start"!==this.dragState,[f+"--deny-drop"]:this.leaf},style:{"--level":`${this.level}`},onDrop:this.dropDisabled||this.leaf||"start"===this.dragState?null:this.handleDrop},i("button",{"aria-controls":a?_:null,"aria-expanded":a?this.expanded.toString():null,class:{header:!0,"header--selected":this.selected,"header--disabled":this.disabled,"header--expandable-offset":e,"header--checkbox-offset":n&&this.checkbox,"header--even":t,"header--odd":!t,"header--even-expandable":t&&e,"header--odd-expandable":!t&&e,"header--level-0":0===this.level},part:`header${this.disabled?" disabled":""}${this.selected?" selected":""}${0===this.level?" level-0":""}`,type:"button",disabled:this.disabled,onClick:this.handleActionClick,onKeyDown:this.editing?null:this.handleActionKeyDown,draggable:!this.dragDisabled,onDragStart:this.handleDragStart,onDragEnd:this.dragDisabled?null:this.handleDragEnd,ref:t=>this.headerRef=t},!this.leaf&&this.showExpandableButton&&i("button",{type:"button",class:{"expandable-button":!0,"expandable-button--expanded":this.expanded,"expandable-button--collapsed":!this.expanded},part:`expandable-button${this.disabled?" disabled":""}${this.expanded?" expanded":" collapsed"}`,disabled:this.disabled,onClick:this.toggleExpand}),this.checkbox&&i("ch-checkbox",{accessibleName:this.caption,class:"checkbox",exportparts:D,part:`checkbox${this.disabled?" disabled":""}${this.checked?" checked":""}${this.indeterminate?" indeterminate":""}`,checkedValue:"true",disabled:this.disabled,indeterminate:this.indeterminate,unCheckedValue:"false",value:`${this.checked}`,onInput:this.handleCheckedChange}),this.customRender?i("slot",{name:"custom-content"}):[i("div",{class:{action:!0,"readonly-mode":!this.editing},part:`action${this.editing?"":" readonly-mode"}${!this.leaf&&this.expanded?" expanded":""}`,onDblClick:this.editing?null:this.handleActionDblClick},this.leftImgSrc&&this.renderImg("left-img",this.leftImgSrc),this.editable&&this.editing?i("input",{class:"edit-name",part:"edit-name",disabled:this.disabled,type:"text",value:this.caption,onBlur:this.removeEditMode(!1),onKeyDown:this.checkIfShouldRemoveEditMode,ref:t=>this.inputRef=t}):this.caption,this.rightImgSrc&&this.renderImg("right-img",this.rightImgSrc)),this.showDownloadingSpinner&&!this.leaf&&this.downloading&&i("div",{class:"downloading",part:"downloading"})],(h||r)&&i("div",{class:{"dashed-line":!0,"last-all-line":h&&this.lastItem,"last-line":r},part:"dashed-line"+(this.lastItem?" last-all-line":"")})),a&&i("div",{role:"group","aria-busy":(!!this.downloading).toString(),"aria-live":this.downloading?"polite":null,id:_,class:{expandable:!0,"expandable--collapsed":!this.expanded,"expandable--lazy-loaded":!this.downloading},part:`expandable${this.expanded?" expanded":" collapsed"}${this.downloading?"":" lazy-loaded"}`},i("slot",null)))}get el(){return n(this)}static get watchers(){return{checked:["updateChildrenCheckedValue"],editing:["handleEditingChange"],expanded:["handleExpandedChange"],lastItem:["handleLasItemChange"],selected:["handleSelectedChange"],showLines:["handleShowLinesChange"]}}};S.style=':where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--ch-tree-view-view__checkbox-size:1em;--ch-tree-view-view__expandable-button-width:0.75em;--ch-tree-view-item__dashed-line--inset-inline-start:0px;--ch-tree-view-item__dashed-line--inset-inline-end:4px;--ch-tree-view-item-gap:5px;--ch-tree-view-item-custom-padding-inline-start:0px;--ch-tree-tab-width:calc(\n var(--ch-tree-view-view__checkbox-size) +\n var(--ch-tree-view-view__expandable-button-width) +\n (var(--ch-tree-view-item-gap) * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:calc( var(--padding-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) )}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) / 2\n )}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n );--parent-negative-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n )}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-view-item__dashed-line--inset-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) );height:1px;width:calc( var(--ch-tree-tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-view-item__dashed-line--inset-inline-start) - var(--ch-tree-view-item__dashed-line--inset-inline-end) );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--ch-tree-view-item-distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--ch-tree-view-view__expandable-button-width);height:var(--ch-tree-view-view__expandable-button-width);margin-inline-end:var(--ch-tree-view-item-gap);z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--ch-tree-view-view__expandable-button-width)}.expandable-button::before{content:"";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc( var(--ch-tree-view-view__expandable-button-width) - 2px )}.expandable-button--collapsed::before{-webkit-mask-image:url(\'data:image/svg+xml,<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z"/></svg>\')}.expandable-button--expanded::before{-webkit-mask-image:url(\'data:image/svg+xml,<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.15,8.5H1.93v-1H14.15Z"/></svg>\')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{width:var(--ch-tree-view-view__checkbox-size);margin-inline-end:var(--ch-tree-view-item-gap)}.checkbox::part(container){width:var(--ch-tree-view-view__checkbox-size);height:var(--ch-tree-view-view__checkbox-size)}.action{display:grid;grid-template:"left-img text right-img"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:var(--ch-tree-view-item-gap)}.right-img{grid-area:right-img;margin-inline-start:var(--ch-tree-view-item-gap)}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-auto-rows:min-content;position:relative}.expandable--lazy-loaded{content-visibility:auto;contain-intrinsic-size:auto 100px}.expandable--collapsed{display:none;overflow:hidden;content-visibility:hidden}';const $=(t,e,i)=>i.regularExpression?null!==t.match(e):((t,e,i)=>i?t.includes(e):t.toLowerCase().includes(e.toLowerCase()))(t,e,i.camelCase),z={caption:(t,e)=>{var i;return!e.filter||$(null!==(i=t.caption)&&void 0!==i?i:"",e.filter,e.filterOptions)},checked:(t,e)=>{var i,s;return(null!==(i=t.checkbox)&&void 0!==i?i:e.defaultCheckbox)&&!t.indeterminate&&(null!==(s=t.checked)&&void 0!==s?s:e.defaultChecked)},"id-list":(t,e)=>e.filterList.includes(t.id),metadata:(t,e)=>{var i;return!e.filter||$(null!==(i=t.metadata)&&void 0!==i?i:"",e.filter,e.filterOptions)},none:()=>!0,unchecked:(t,e)=>{var i,s;return(null!==(i=t.checkbox)&&void 0!==i?i:e.defaultCheckbox)&&!t.indeterminate&&!(null!==(s=t.checked)&&void 0!==s?s:e.defaultChecked)}},L=/url\((["']?)([^\)]*)\)(?:\s+([\d.]+)x)?/i;let E;const F=(t,e,i)=>{let s="";if(s=t.id?function(t,e){E||(E=getComputedStyle(document.documentElement));let i=E.getPropertyValue(`--gx-image_${t}`);if(i){let n;const a=e(t);for(;n=i.match(L);)a.densitySet.push({uri:(s=n[1]?n[2].slice(0,-1):n[2],s.startsWith("data:image/svg+xml;utf8,")&&(s=`data:image/svg+xml;base64,${btoa(s.slice(24).replace(/\\"/g,'"'))}`),s=(s=s.replace(/\\/g,"")).replace(/\s/g,"%20")),density:n[3]?parseFloat(n[3]):1}),i=i.slice(n[0].length);return a.densitySet.length>0&&(a.uri=a.densitySet.reduce(((t,e)=>1===t.density||t.density<e.density?t:e)).uri),a}var s}(t.id,i).uri:t.uri,!s)return"";const n=e.WEBAPP_BASE,a=s.toLowerCase();return a.startsWith("assets/")||a.startsWith("http://")||a.startsWith("https://")||a.startsWith("blob:")||a.startsWith("file:")||a.startsWith("data:")?s:a.startsWith(e.BASE_PATH.toLowerCase())?n+s.substring(e.BASE_PATH.length):n+s},O=(t,e,s,n,a)=>{var h,r,l,d,o,c;return("none"===e.filterType||!1!==t.render)&&i("ch-tree-view-item",{id:t.id,caption:t.caption,checkbox:null!==(h=t.checkbox)&&void 0!==h?h:e.checkbox,checked:null!==(r=t.checked)&&void 0!==r?r:e.checked,class:t.class,disabled:t.disabled,downloading:t.downloading,dragDisabled:null!==(l=t.dragDisabled)&&void 0!==l?l:e.dragDisabled,dropDisabled:null!==(d=t.dropDisabled)&&void 0!==d?d:e.dropDisabled,editable:null!==(o=t.editable)&&void 0!==o?o:e.editableItems,expanded:t.expanded,indeterminate:t.indeterminate,lastItem:n,lazyLoad:t.lazy,leaf:t.leaf,leftImgSrc:t.leftImgSrc,level:a,metadata:t.metadata,rightImgSrc:t.rightImgSrc,selected:t.selected,showExpandableButton:t.showExpandableButton,showLines:e.showLines,toggleCheckboxes:null!==(c=t.toggleCheckboxes)&&void 0!==c?c:e.toggleCheckboxes},!t.leaf&&null!=t.items&&t.items.map(((i,n)=>O(i,e,s,"none"!==e.showLines&&(s&&""!==t.lastItemId?i.id===t.lastItemId:n===t.items.length-1),a+1))))},M=(t,e,s,n,a)=>{var h,r,l,d;return("none"===e.filterType||!1!==t.render)&&i("ch-tree-view-item",{id:t.id,caption:t.caption,checkbox:null!==(h=t.checkbox)&&void 0!==h?h:e.checkbox,checked:null!==(r=t.checked)&&void 0!==r?r:e.checked,class:t.class,downloading:t.downloading,dragDisabled:null!=t.dragEnabled?!t.dragEnabled:e.dragDisabled,dropDisabled:null!=t.dropEnabled?!t.dropEnabled:e.dropDisabled,editable:null!==(l=t.editable)&&void 0!==l?l:e.editableItems,expanded:t.expanded,indeterminate:t.indeterminate,lastItem:n,lazyLoad:t.lazy,leaf:t.leaf,leftImgSrc:F(t.leftImage,e.gxSettings,e.gxImageConstructor),level:a,metadata:t.metadata,selected:t.selected,showLines:e.showLines,toggleCheckboxes:null!==(d=t.toggleCheckboxes)&&void 0!==d?d:e.toggleCheckboxes},!t.leaf&&null!=t.items&&t.items.map(((i,n)=>M(i,e,s,"none"!==e.showLines&&(s&&""!==t.lastItemId?i.id===t.lastItemId:n===t.items.length-1),a+1))))},T=class{constructor(i){t(this,i),this.checkedItemsChange=e(this,"checkedItemsChange",7),this.itemContextmenu=e(this,"itemContextmenu",7),this.itemOpenReference=e(this,"itemOpenReference",7),this.selectedItemsChange=e(this,"selectedItemsChange",7),this.flattenedTreeModel=new Map,this.flattenedCheckboxTreeModel=new Map,this.selectedItems=new Set,this.applyFilters=!1,this.emitCheckedChange=!1,this.waitDropProcessing=!1,this.checkbox=!1,this.checked=!1,this.cssClass="tree-view",this.dragDisabled=!1,this.dropDisabled=!1,this.editableItems=!0,this.filterDebounce=250,this.filterList=[],this.filterOptions={},this.filterType="none",this.multiSelection=!1,this.renderItem=O,this.showLines="none",this.toggleCheckboxes=!1,this.treeModel=[],this.useGxRender=!1,this.handleDroppableZoneEnter=t=>{if(!this.checkDroppableZoneCallback)return;t.stopPropagation();const e=(new Date).getTime(),i=t.detail;this.checkDroppableZoneCallback(i).then((t=>{this.updateValidDropZone(e,i.newContainer.id,i.draggedItems,t)}))},this.handleSelectedItemsChange=t=>{t.stopPropagation();const e=new Map(t.detail);this.selectedItems.forEach((t=>{const i=this.flattenedTreeModel.get(t).item,s=e.get(t);s?(i.expanded=s.expanded,e.delete(t)):(i.selected=!1,this.selectedItems.delete(t))})),e.forEach(((t,e)=>{const i=this.flattenedTreeModel.get(e).item;i.selected=!0,i.expanded=t.expanded,this.selectedItems.add(e)})),this.selectedItemsChange.emit(t.detail)},this.handleExpandedItemChange=t=>{const e=t.detail;this.flattenedTreeModel.get(e.id).item.expanded=e.expanded},this.handleItemContextmenu=t=>{t.stopPropagation(),this.itemContextmenu.emit(t.detail)},this.handleItemsDropped=t=>{if(!this.dropItemsCallback)return;t.stopPropagation();const e=t.detail,i=e.newContainer.id;if(!this.flattenedTreeModel.get(i))return;const s=e.draggedItems;if(0===s.length)return;const n=this.dropItemsCallback(e);this.waitDropProcessing=!0,n.then((async t=>{if(this.waitDropProcessing=!1,!t.acceptDrop)return;const n=this.flattenedTreeModel.get(i).item;if(e.dropInTheSameTree)s.forEach(this.moveItemToNewParent(n)),e.draggingSelectedItems&&await this.treeRef.clearSelectedItemsInfo();else{if(null==t.items)return;n.items.push(...t.items),t.items.forEach(this.flattenItemUIModel(n))}this.sortItems(n.items),n.expanded=!0,this.emitCheckedItemsChange(),this.processFilters()}))},this.moveItemToNewParent=t=>e=>{const i=this.flattenedTreeModel.get(e.id),s=i.item,n=i.parentItem;n.items.splice(n.items.indexOf(s),1),t.items.push(s),i.parentItem=t},this.flattenItemUIModel=t=>e=>{var i,s,n,a,h,r;this.flattenedTreeModel.set(e.id,{parentItem:t,item:e}),(null!==(i=e.checkbox)&&void 0!==i?i:this.checkbox)&&this.flattenedCheckboxTreeModel.set(e.id,{parentItem:t,item:e}),e.class||(e.class="tree-view-item"),null!==(s=e.expanded)&&void 0!==s||(e.expanded=!1),null!==(n=e.indeterminate)&&void 0!==n||(e.indeterminate=!1),null!==(a=e.lazy)&&void 0!==a||(e.lazy=!1),null!==(h=e.order)&&void 0!==h||(e.order=0),null!==(r=e.selected)&&void 0!==r||(e.selected=!1),e.selected&&this.selectedItems.add(e.id),this.flattenSubModel(e)}}handleFilterChange(){"caption"!==this.filterType&&"metadata"!==this.filterType||this.processFilters()}handleFilterDebounceChange(){"caption"!==this.filterType&&"metadata"!==this.filterType||this.processFilters()}handleFilterListChange(){"id-list"===this.filterType&&this.processFilters()}handleFilterOptionsChange(){"caption"!==this.filterType&&"metadata"!==this.filterType||this.processFilters()}handleFilterTypeChange(){this.processFilters()}handleTreeModelChange(){this.flattenModel()}async loadLazyContent(t,e,i=!1,s=!1){const n=this.flattenedTreeModel.get(t).item;n.downloading=i,n.lazy=s,null!=e&&(n.items=e,this.sortItems(n.items),this.flattenSubModel(n),this.emitCheckedItemsChange(),this.processFilters(),h(this))}async scrollIntoVisible(t){const e=this.flattenedTreeModel.get(t);if(!e)return;let i=e.parentItem;for(;i&&null!=i.id;)i.expanded=!0,i=this.flattenedTreeModel.get(i.id).parentItem;h(this),this.treeRef.scrollIntoVisible(t)}async toggleItems(t,e){if(!t)return[];const i=[];return t.forEach((t=>{const s=this.flattenedTreeModel.get(t).item;s&&(s.expanded=null!=e?e:!s.expanded,i.push({id:s.id,expanded:s.expanded}))})),h(this),i}async updateAllItemsProperties(t){[...this.flattenedTreeModel.values()].forEach((e=>{null!=t.expanded&&(e.item.expanded=t.expanded),null!=t.checked&&(e.item.checked=t.checked,e.item.indeterminate=!1)})),null!=t.checked&&this.processFilters(),h(this)}async updateItemsProperties(t,e){t.forEach((t=>{const i=this.flattenedTreeModel.get(t);this.updateItemProperty(i,e)})),this.processFilters(),h(this)}async updateValidDropZone(t,e,i,s){this.treeRef.updateValidDropZone(t,e,i,s)}updateItemProperty(t,e){if(!t)return;const i=t.item;Object.keys(e).forEach((t=>{i[t]=e[t]}))}updateCheckboxValue(t){t.stopPropagation();const e=t.detail,i=this.flattenedCheckboxTreeModel.get(e.id);if(!i)return;const s=i.item;s.checked=e.checked,s.indeterminate=e.indeterminate,this.emitCheckedItemsChange(),"checked"!==this.filterType&&"unchecked"!==this.filterType||this.processFilters(),h(this)}loadLazyChildrenHandler(t){if(!this.lazyLoadTreeItemsCallback)return;t.stopPropagation();const e=t.detail,i=this.lazyLoadTreeItemsCallback(e);t.target.downloading=!0,i.then((t=>{this.loadLazyContent(e,t)}))}handleCaptionModification(t){if(!this.modifyItemCaptionCallback)return;t.stopPropagation();const e=t.target,i=t.detail.id,s=this.flattenedTreeModel.get(i),n=s.item,a=t.detail.caption,r=n.caption;n.caption=a,e.caption=a,this.modifyItemCaptionCallback(i,a).then((t=>{t.success?(this.sortItems(s.parentItem.items),this.processFilters(),h(this)):(e.caption=r,n.caption=r)}))}handleOpenReference(t){t.stopPropagation(),this.itemOpenReference.emit(t.detail)}flattenSubModel(t){const e=t.items;e?(this.sortItems(e),e.forEach(this.flattenItemUIModel(t))):!0!==t.leaf&&(t.items=[])}sortItems(t){this.sortItemsCallback&&this.sortItemsCallback(t)}flattenModel(){this.flattenedTreeModel.clear(),this.flattenedCheckboxTreeModel.clear(),this.selectedItems.clear(),this.treeRef&&this.treeRef.clearSelectedItemsInfo(),this.flattenSubModel({id:null,caption:null,items:this.treeModel}),this.emitCheckedItemsChange()}filterSubModel(t,e){let i=!1;if(!0!==t.leaf&&null!=t.items){let s="";t.items.forEach((t=>{const n=this.filterSubModel(t,e);i||(i=n),n&&(s=t.id)})),t.lastItemId=s}const s=z[this.filterType](t,e)||i;return t.render=s,s}emitCheckedItemsChange(){this.emitCheckedChange=!0}updateCheckedItems(){const t=new Map(this.flattenedCheckboxTreeModel);t.forEach((t=>{var e,i;null!==(e=(i=t.item).checked)&&void 0!==e||(i.checked=this.checked)})),this.checkedItemsChange.emit(t)}processFilters(){this.applyFilters=!0}updateFilters(){if("none"===this.filterType)return;clearTimeout(this.filterTimeout);const t=()=>this.filterSubModel({id:null,caption:null,items:this.treeModel},{defaultCheckbox:this.checkbox,defaultChecked:this.checked,filter:this.filter,filterList:this.filterList,filterOptions:this.filterOptions});this.filterDebounce>0&&("caption"===this.filterType||"metadata"===this.filterType)?this.filterTimeout=setTimeout((()=>{t(),h(this)}),this.filterDebounce):t()}componentWillLoad(){this.useGxRender&&(this.renderItem=M),this.flattenModel(),this.updateCheckedItems(),this.updateFilters()}componentWillUpdate(){this.emitCheckedChange&&(this.updateCheckedItems(),this.emitCheckedChange=!1),this.applyFilters&&(this.updateFilters(),this.applyFilters=!1)}render(){return i("ch-tree-view",{class:this.cssClass||null,multiSelection:this.multiSelection,waitDropProcessing:this.waitDropProcessing,onDroppableZoneEnter:this.handleDroppableZoneEnter,onExpandedItemChange:this.handleExpandedItemChange,onItemContextmenu:this.handleItemContextmenu,onItemsDropped:this.handleItemsDropped,onSelectedItemsChange:this.handleSelectedItemsChange,ref:t=>this.treeRef=t},this.treeModel.map(((t,e)=>this.renderItem(t,this,("caption"===this.filterType||"metadata"===this.filterType)&&null!=this.filter,"none"!==this.showLines&&e===this.treeModel.length-1,0))))}static get watchers(){return{filter:["handleFilterChange"],filterDebounce:["handleFilterDebounceChange"],filterList:["handleFilterListChange"],filterOptions:["handleFilterOptionsChange"],filterType:["handleFilterTypeChange"],treeModel:["handleTreeModelChange"]}}};T.style="ch-tree-view-render{display:contents}";export{c as ch_checkbox,w as ch_tree_view,S as ch_tree_view_item,T as ch_tree_view_render}