@genexus/genexus-ide-ui 0.0.30 → 0.0.32

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 (108) hide show
  1. package/dist/cjs/ch-action-group_2.cjs.entry.js +2 -9
  2. package/dist/cjs/ch-checkbox.cjs.entry.js +1 -1
  3. package/dist/cjs/ch-dropdown-item.cjs.entry.js +8 -8
  4. package/dist/cjs/ch-dropdown.cjs.entry.js +11 -10
  5. package/dist/cjs/ch-suggest_4.cjs.entry.js +1 -0
  6. package/dist/cjs/ch-test-action-group.cjs.entry.js +2 -2
  7. package/dist/cjs/ch-test-tree-x.cjs.entry.js +150 -80
  8. package/dist/cjs/ch-tree-x_3.cjs.entry.js +211 -132
  9. package/dist/cjs/ch-window_2.cjs.entry.js +28 -12
  10. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  11. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  12. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +17 -32
  13. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +16 -1
  14. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +33 -31
  15. package/dist/cjs/gxg-combo-box_6.cjs.entry.js +10 -4
  16. package/dist/cjs/gxg-date-picker.cjs.entry.js +4 -4
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/components/team-dev-commit/team-dev-commit.js +12 -18
  19. package/dist/collection/components/team-dev-update/team-dev-update.js +75 -35
  20. package/dist/collection/components/team-dev-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +4 -2
  21. package/dist/collection/components/team-dev-update-partial-selection/team-dev-update-partial-selection.css +1 -0
  22. package/dist/collection/components/team-dev-update-partial-selection/team-dev-update-partial-selection.js +22 -46
  23. package/dist/collection/components/team-dev-update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +1 -1
  24. package/dist/collection/components/team-dev-update-to-revision/team-dev-update-to-revision.js +33 -1
  25. package/dist/components/action-group-item.js +1 -9
  26. package/dist/components/action-group.js +1 -1
  27. package/dist/components/ch-suggest2.js +1 -0
  28. package/dist/components/ch-test-action-group.js +2 -2
  29. package/dist/components/ch-test-tree-x.js +157 -83
  30. package/dist/components/ch-window2.js +31 -13
  31. package/dist/components/checkbox.js +1 -1
  32. package/dist/components/combo-box-item.js +2 -2
  33. package/dist/components/combo-box.js +8 -2
  34. package/dist/components/dropdown-item.js +8 -8
  35. package/dist/components/dropdown.js +11 -10
  36. package/dist/components/gx-ide-team-dev-commit.js +4 -4
  37. package/dist/components/gx-ide-team-dev-update-partial-selection.js +18 -33
  38. package/dist/components/gx-ide-team-dev-update-to-revision.js +17 -1
  39. package/dist/components/gx-ide-team-dev-update.js +36 -32
  40. package/dist/components/gxg-date-picker.js +4 -4
  41. package/dist/components/tree-x-list-item.js +31 -17
  42. package/dist/components/tree-x-list.js +9 -4
  43. package/dist/components/tree-x.js +182 -117
  44. package/dist/esm/ch-action-group_2.entry.js +2 -9
  45. package/dist/esm/ch-checkbox.entry.js +1 -1
  46. package/dist/esm/ch-dropdown-item.entry.js +8 -8
  47. package/dist/esm/ch-dropdown.entry.js +11 -10
  48. package/dist/esm/ch-suggest_4.entry.js +1 -0
  49. package/dist/esm/ch-test-action-group.entry.js +2 -2
  50. package/dist/esm/ch-test-tree-x.entry.js +150 -80
  51. package/dist/esm/ch-tree-x_3.entry.js +211 -132
  52. package/dist/esm/ch-window_2.entry.js +28 -12
  53. package/dist/esm/genexus-ide-ui.js +1 -1
  54. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  55. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +17 -32
  56. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +16 -1
  57. package/dist/esm/gx-ide-team-dev-update.entry.js +33 -31
  58. package/dist/esm/gxg-combo-box_6.entry.js +10 -4
  59. package/dist/esm/gxg-date-picker.entry.js +4 -4
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
  62. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  63. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +4 -2
  64. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +1 -1
  65. package/dist/genexus-ide-ui/p-1b6b11e1.entry.js +1 -0
  66. package/dist/genexus-ide-ui/p-1fe05a05.entry.js +1 -0
  67. package/dist/genexus-ide-ui/p-24f47ee2.entry.js +1 -0
  68. package/dist/genexus-ide-ui/{p-54bab171.entry.js → p-28d0afda.entry.js} +1 -1
  69. package/dist/genexus-ide-ui/{p-6050cdba.entry.js → p-48412811.entry.js} +1 -1
  70. package/dist/genexus-ide-ui/p-714bd8ea.entry.js +1 -0
  71. package/dist/genexus-ide-ui/p-8592f072.entry.js +1 -0
  72. package/dist/genexus-ide-ui/p-8c2ab053.entry.js +1 -0
  73. package/dist/genexus-ide-ui/p-976e8118.entry.js +1 -0
  74. package/dist/genexus-ide-ui/p-a5463fc9.entry.js +1 -0
  75. package/dist/genexus-ide-ui/p-b2923298.entry.js +1 -0
  76. package/dist/genexus-ide-ui/p-bb1809cb.entry.js +1 -0
  77. package/dist/genexus-ide-ui/p-cf41f154.entry.js +1 -0
  78. package/dist/genexus-ide-ui/p-e8a21ed7.entry.js +1 -0
  79. package/dist/genexus-ide-ui/p-f794dc13.entry.js +1 -0
  80. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/action-group-item/action-group-item.css +0 -1
  81. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +5 -3
  82. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +15 -33
  83. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown-item/dropdown-item.css +0 -4
  84. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -10
  85. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x/tree-x.css +20 -3
  86. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list-item/tree-x-list-item.css +25 -8
  87. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/window/ch-window.css +51 -2
  88. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box-item/combo-box-item.css +1 -1
  89. package/dist/types/common/types.d.ts +9 -0
  90. package/dist/types/components/team-dev-commit/team-dev-commit.d.ts +8 -15
  91. package/dist/types/components/team-dev-update/team-dev-update.d.ts +16 -13
  92. package/dist/types/components/team-dev-update-partial-selection/team-dev-update-partial-selection.d.ts +11 -14
  93. package/dist/types/components/team-dev-update-to-revision/team-dev-update-to-revision.d.ts +8 -0
  94. package/dist/types/components.d.ts +39 -19
  95. package/package.json +3 -3
  96. package/dist/genexus-ide-ui/p-097a3eeb.entry.js +0 -1
  97. package/dist/genexus-ide-ui/p-32b8abf6.entry.js +0 -1
  98. package/dist/genexus-ide-ui/p-3d9a4ede.entry.js +0 -1
  99. package/dist/genexus-ide-ui/p-4bbe1c18.entry.js +0 -1
  100. package/dist/genexus-ide-ui/p-53d36ef7.entry.js +0 -1
  101. package/dist/genexus-ide-ui/p-5c64c57f.entry.js +0 -1
  102. package/dist/genexus-ide-ui/p-5ff04ebe.entry.js +0 -1
  103. package/dist/genexus-ide-ui/p-6e80380b.entry.js +0 -1
  104. package/dist/genexus-ide-ui/p-757f8567.entry.js +0 -1
  105. package/dist/genexus-ide-ui/p-8d46f8d8.entry.js +0 -1
  106. package/dist/genexus-ide-ui/p-a0e85c2a.entry.js +0 -1
  107. package/dist/genexus-ide-ui/p-cda1623a.entry.js +0 -1
  108. package/dist/genexus-ide-ui/p-f8561da6.entry.js +0 -1
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as e,H as o,g as a}from"./p-976c3a09.js";import{L as l}from"./p-26957490.js";import{f as s,r}from"./p-72303355.js";const n=class{constructor(o){t(this,o),this.componentDidLoadEvent=i(this,"componentDidLoadEvent",7),this.loadDataCalledFirstTime=!1,this.markAllPendingCommitsRows=()=>{this.chGridPendingCommitsEl.markAllRows()},this.togglePendingCommitsCheckboxes=async t=>{if(this.chGridPendingCommitsEl){const i=t.itemsToCheck,e=t.itemsToUncheck;for(const t of i)await this.chGridPendingCommitsEl.markRow(t,!0);for(const t of e)await this.chGridPendingCommitsEl.markRow(t,!1)}},this.revertPendingCommitsCheckboxes=async(t,i)=>{if(this.chGridPendingCommitsEl){for(const i of t)await this.chGridPendingCommitsEl.markRow(i,!1);for(const t of i)await this.chGridPendingCommitsEl.markRow(t,!0)}},this.renderIconState=t=>{let i,o;switch(t){case"inserted":i="gx-server/new",o="success";break;case"modified":i="gx-server/changes-commit-pending",o="primary-active";break;case"deleted":i="gx-server/delete",o="error";break;case"conflicted":i="gx-server/conflict",o="warning"}return e("gxg-icon",{type:i,color:o})},this.pendingCommitsRowMarkingChangedHandler=async t=>{if(this.chGridPendingCommitsEl.removeEventListener("rowMarkingChanged",this.pendingCommitsRowMarkingChangedHandler),this.chGridPendingCommitsEl){const i=t.detail.addedRowsId,e=t.detail.removedRowsId,o=await this.pendingItemCheckedCallback({itemsChecked:i,itemsUnchecked:e});void 0===o?await this.revertPendingCommitsCheckboxes(i,e):await this.togglePendingCommitsCheckboxes(o),this.chGridPendingCommitsEl.addEventListener("rowMarkingChanged",this.pendingCommitsRowMarkingChangedHandler)}},this.objectsOnContextMenuCallbackHandler=t=>async i=>{i.preventDefault(),i.stopPropagation();let e=[];"commit"===t?e=i.detail.selectedRowsId:"ignored"===t&&(e=await this.chGridIgnoredObjectsEl.getSelectedRows()),this.objectsContextMenuCallback&&await this.objectsContextMenuCallback(t,{selection:e,clientX:i.detail.clientX,clientY:i.detail.clientY})},this.gridOnSelectionChangedCallbackHandler=t=>async i=>{this.selectCallback&&await this.selectCallback(t,i.detail.rowsId)},this.renderPendingCommitsGrid=()=>e("gxg-grid",null,e("ch-grid",{rowSelectionMode:"multiple",ref:t=>this.chGridPendingCommitsEl=t,part:"ch-grid-pending-commits",class:"no-border",onRowContextMenu:this.objectsOnContextMenuCallbackHandler("commit"),onSelectionChanged:this.gridOnSelectionChangedCallbackHandler("commit")},e("ch-grid-columnset",null,e("ch-grid-column",{columnType:"rich",richRowSelector:!0,richRowSelectorMode:"mark",settingable:!1,sortable:!1,size:"auto"}),e("ch-grid-column",{columnName:"State",settingable:!1,sortable:!1,size:"auto"}),e("ch-grid-column",{settingable:!1,sortable:!1,size:"auto"}),e("ch-grid-column",{sortable:!0,columnName:"Name",settingable:!1,size:"auto"}),e("ch-grid-column",{sortable:!0,columnName:"Type",settingable:!1,size:"auto"}),e("ch-grid-column",{columnName:"Description",settingable:!1,size:"auto"}),e("ch-grid-column",{sortable:!0,columnName:"Modified On",settingable:!1}),e("ch-grid-column",{columnName:"Module",settingable:!1,size:"auto"}),e("ch-grid-column",{columnName:"Local State",settingable:!1,size:"auto"}),e("ch-grid-column",{columnName:"Last Synchronized",settingable:!1,size:"150px"}),e("ch-grid-column",{sortable:!0,columnName:"User",settingable:!1,size:"auto"})),this.pendingCommits.map((t=>e("ch-grid-row",{rowid:t.id},e("ch-grid-cell",{"cell-type":"rich","row-selector":!0}),e("ch-grid-cell",null," ",this.renderIconState(t.state)," "),e("ch-grid-cell",null,e("gxg-icon",{color:"auto",type:t.iconType})),e("ch-grid-cell",null," ",t.name," "),e("ch-grid-cell",null," ",t.type," "),e("ch-grid-cell",null," ",t.description," "),e("ch-grid-cell",null,`${s(t.modifiedOn)}`),e("ch-grid-cell",null," ",t.module," "),e("ch-grid-cell",null," ",t.localState," "),e("ch-grid-cell",null,`${s(t.lastSynchronized)}`),e("ch-grid-cell",null," ",t.user," ")))))),this.renderIgnoredObjectsGrid=()=>e("gxg-grid",null,e("ch-grid",{rowSelectionMode:"multiple",ref:t=>this.chGridIgnoredObjectsEl=t,part:"ch-grid-pending-commits",onRowContextMenu:this.objectsOnContextMenuCallbackHandler("ignored"),onSelectionChanged:this.gridOnSelectionChangedCallbackHandler("ignored")},e("ch-grid-columnset",null,e("ch-grid-column",{columnName:"",settingable:!1}),e("ch-grid-column",{columnName:"TypeIcon",settingable:!1}),e("ch-grid-column",{columnName:"Name",settingable:!1,sortable:!0}),e("ch-grid-column",{columnName:"Type",settingable:!1}),e("ch-grid-column",{columnName:"Description",settingable:!1}),e("ch-grid-column",{columnName:"Modified On",settingable:!1}),e("ch-grid-column",{columnName:"Module",settingable:!1}),e("ch-grid-column",{columnName:"Local State",settingable:!1}),e("ch-grid-column",{columnName:"Last Synchronized",settingable:!1}),e("ch-grid-column",{columnName:"User",settingable:!1})),this.ignoredObjects.map((t=>e("ch-grid-row",{rowid:t.id,selected:!0},e("ch-grid-cell",null," ",this.renderIconState(t.state)," "),e("ch-grid-cell",null,e("gxg-icon",{color:"auto",type:t.iconType})),e("ch-grid-cell",null," ",t.name," "),e("ch-grid-cell",null," ",t.type," "),e("ch-grid-cell",null," ",t.description," "),e("ch-grid-cell",null,`${s(t.modifiedOn)}`),e("ch-grid-cell",null," ",t.module," "),e("ch-grid-cell",null," ",t.localState," "),e("ch-grid-cell",null,`${s(t.lastSynchronized)}`),e("ch-grid-cell",null," ",t.user," ")))))),this.getRecentCommentHandler=async()=>{if(this.getRecentCommentCallback){const t=await this.getRecentCommentCallback();t&&(this.comment=t)}},this.commitCallbackHandler=async()=>{const t=this.commitComment.value;this.chGridPendingCommitsEl.getMarkedRows().then((async i=>{await this.commitCallback(i,t)}))},this.loadData=async()=>{const t={pattern:this.patternEl.value,changeSet:this.changeSetEl.value,folder:this.foldersEl.value,category:this.categoriesEl.value,type:this.typesEl.value};return await this.loadCallback(t).then((async({pending:t,ignored:i})=>{this.pendingCommits=t,this.ignoredObjects=i}))},this.toggleFiltersHandler=()=>{this.filtersHidden=!this.filtersHidden},this.filtersHidden=!0,this.comment="",this.pendingCommits=[],this.ignoredObjects=[],this.changeSet=void 0,this.types=void 0,this.folders=void 0,this.categories=void 0,this.getRecentCommentCallback=void 0,this.loadCallback=void 0,this.commitCallback=void 0,this.selectCallback=void 0,this.pendingItemCheckedCallback=void 0,this.objectsContextMenuCallback=void 0}async componentWillLoad(){this._componentLocale=await l.getComponentStrings(this.el)}async componentDidLoad(){await this.loadData(),this.loadDataCalledFirstTime=!0,this.componentDidLoadEvent.emit(!0)}async componentDidRender(){this.loadDataCalledFirstTime&&(await this.markAllPendingCommitsRows(),this.chGridPendingCommitsEl.addEventListener("rowMarkingChanged",this.pendingCommitsRowMarkingChangedHandler),this.loadDataCalledFirstTime=!1)}async reload(){this.loadData()}render(){return e(o,{class:"gx-ide-component"},e("div",{class:"gx-ide-main-wrapper gx-ide-overflow"},e("gxg-container",null,e("header",{class:"header grid"},e("gxg-form-textarea",{id:"gxg-textarea",height:"100px",label:this._componentLocale.topMenu.commentLabel,value:this.comment,ref:t=>this.commitComment=t,placeholder:this._componentLocale.topMenu.commentPlaceholder,part:"comment"}),e("gxg-button",{class:"header-button",type:"outlined",part:"location",onClick:this.getRecentCommentHandler},this._componentLocale.topMenu.recentCommentsButton))),e("main",{class:"main"},e("gxg-container",{fieldset:!0,noContentPadding:!!this.filtersHidden},e("div",{class:"grid second-grid"},e("div",{class:"actions-row grid"},e("gxg-form-text",{class:this.filtersHidden?"hidden":null,"disable-filter":!0,label:this._componentLocale.filtersMenu.patternLabel,labelPosition:"start",value:"",ref:t=>this.patternEl=t,"display-validation-styles":!0,"display-validation-message":!0,part:"pattern",onInput:this.loadData}),e("div",{class:"action-buttons",slot:"tab-bar"},e("gxg-button",{onClick:this.toggleFiltersHandler,type:"secondary-icon-only",icon:"patterns/filters",part:"gxg-button gxg-button--show-filter"}),e("gxg-button",{type:"secondary-icon-only",icon:"gemini-tools/reset",onClick:this.loadData,part:"gxg-button gxg-button--reload"}))),e("div",{class:"filters-grid grid "+(this.filtersHidden?"hidden":null)},e("div",{class:"first-row grid"},e("gxg-combo-box",{labelPosition:"start","disable-filter":!0,label:this._componentLocale.filtersMenu.changesetLabel,value:this.changeSet[0].id,ref:t=>this.changeSetEl=t,part:"change-set","display-validation-styles":!0,"display-validation-message":!0,onValueChanged:this.loadData},r(this.changeSet)),e("gxg-combo-box",{labelPosition:"start","disable-filter":!0,label:this._componentLocale.filtersMenu.typeLabel,value:this.types[0].id,ref:t=>this.typesEl=t,part:"type",onValueChanged:this.loadData},r(this.types))),e("div",{class:"second-row grid"},e("gxg-combo-box",{labelPosition:"start","disable-filter":!0,label:this._componentLocale.filtersMenu.folderLabel,value:this.folders[0].id,ref:t=>this.foldersEl=t,part:"folder","display-validation-styles":!0,"display-validation-message":!0,onValueChanged:this.loadData},r(this.folders)),e("gxg-combo-box",{labelPosition:"start","disable-filter":!0,label:this._componentLocale.filtersMenu.categoryLabel,value:this.categories[0].id,ref:t=>this.categoriesEl=t,part:"categories",onValueChanged:this.loadData},r(this.categories)))))),e("gxg-container",null,e("gxg-tabs",{height:"100%",position:"top",class:"gxg-tabs"},e("gxg-tab-bar",{slot:"tab-bar-container"},e("gxg-tab-button",{slot:"tab-bar","tab-label":`${this._componentLocale.tabs.pendingCommits} (${this.pendingCommits.length})`,tab:"pending-commits","is-selected":!0}),e("gxg-tab-button",{slot:"tab-bar","tab-label":`${this._componentLocale.tabs.ignoredObjects} (${this.ignoredObjects.length})`,tab:"ignored-objects"})),e("gxg-tab",{tab:"pending-commits","no-padding":!0},this.renderPendingCommitsGrid()),e("gxg-tab",{tab:"ignored-objects","no-padding":!0},this.renderIgnoredObjectsGrid())),e("gxg-button",{slot:"footer",type:"primary-text-only",onClick:this.commitCallbackHandler,part:"commit-button"},this._componentLocale.footer.commitButton)))))}static get assetsDirs(){return["gx-ide-assets/team-dev-commit"]}get el(){return a(this)}};n.style=".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}:host{display:block}.main-wrapper{width:100%}.gxg-tabs{margin-top:0;box-shadow:none}.header{grid-template-columns:4fr auto}.header .header-button{height:fit-content}.second-grid{grid-template-rows:1fr auto}.second-grid .actions-row{grid-template-columns:1fr auto}.action-buttons{justify-self:flex-end}.hidden{display:none}.filters-grid{grid-template-rows:repeat(2, 1fr)}.filters-grid .first-row{grid-template-columns:repeat(2, 1fr)}.filters-grid .second-row{grid-template-columns:repeat(2, 1fr)}";export{n as gx_ide_team_dev_commit}
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,g as o}from"./p-976c3a09.js";const a={OutsideStart:"outside-start",InsideStart:"inside-start",Center:"center",InsideEnd:"inside-end",OutsideEnd:"outside-end"},n="ch-dropdown-item",r=`:scope > ${n}`,h=class{constructor(s){t(this,s),this.expandedChange=i(this,"expandedChange",7),this.keyEventsDictionary={ArrowDown:t=>{if(t.preventDefault(),!this.currentFocusedItem)return void this.focusFirstDropDownItem();const i=this.findNextDropDownItemSibling();i&&i.handleFocusElement()},ArrowUp:t=>{if(t.preventDefault(),!this.currentFocusedItem)return void this.focusFirstDropDownItem();const i=this.findPreviousDropDownItemSibling();i&&i.handleFocusElement()},Escape:()=>{this.closeDropdown(),this.returnFocusToButton()}},this.showHeader=!1,this.showFooter=!1,this.expanded=!1,this.expandedWithHover=!1,this.buttonLabel="Show options",this.expandBehavior="ClickOrHover",this.nestedDropdown=!1,this.openOnFocus=!1,this.position="Center_OutsideEnd",this.closeDropdown=()=>{this.closeDropdownWithHover(),this.expanded=!1,this.expandedChange.emit(!1)},this.closeDropdownWithHover=()=>{this.expandedWithHover=!1,this.expanded||this.expandedChange.emit(!1)},this.closeDropdownWhenClickingOutside=t=>{void 0===t.composedPath().find((t=>t===this.el))&&this.closeDropdown()},this.handleKeyDownEvents=t=>{const i=this.keyEventsDictionary[t.code];i&&i(t)},this.handleKeyUpEvents=t=>{"Tab"===t.code&&(t.composedPath().includes(this.el)||this.closeDropdown())},this.handleMouseLeave=()=>{document.activeElement.closest("ch-dropdown")===this.el&&(this.expanded=!0),this.closeDropdownWithHover()},this.handleMouseEnter=()=>{this.expandedWithHover||(this.expandedWithHover=!0,this.expanded||this.expandedChange.emit(!0))},this.handleButtonClick=t=>{t.stopPropagation(),this.expandedChange.emit(!this.expanded),this.expanded=!this.expanded},this.handleButtonFocus=t=>{t.stopPropagation(),this.expanded||(this.expanded=!0,this.expandedWithHover||this.expandedChange.emit(!0))}}handleExpandedChange(t){t?(this.currentFocusedItem=void 0,document.body.addEventListener("click",this.closeDropdownWhenClickingOutside,{capture:!0}),this.nestedDropdown||document.body.addEventListener("keydown",this.handleKeyDownEvents,{capture:!0}),document.body.addEventListener("keyup",this.handleKeyUpEvents,{capture:!0})):(document.body.removeEventListener("click",this.closeDropdownWhenClickingOutside,{capture:!0}),this.nestedDropdown||document.body.removeEventListener("keydown",this.handleKeyDownEvents,{capture:!0}),document.body.removeEventListener("keyup",this.handleKeyUpEvents,{capture:!0}))}handleActionClick(){this.closeDropdown()}handleDropDownItemFocusChange(t){this.currentFocusedItem=t.target}focusFirstDropDownItem(){this.currentFocusedItem=this.el.querySelector(r),this.currentFocusedItem&&this.currentFocusedItem.handleFocusElement()}findNextDropDownItemSibling(){let t=this.currentFocusedItem.nextElementSibling;for(;t&&t.tagName.toLowerCase()!==n;)t=t.nextElementSibling;return t}findPreviousDropDownItemSibling(){let t=this.currentFocusedItem.previousElementSibling;for(;t&&t.tagName.toLowerCase()!==n;)t=t.previousElementSibling;return t}returnFocusToButton(){this.openOnFocus||this.nestedDropdown||this.expandableButton.focus()}componentWillLoad(){this.showHeader=!!this.el.querySelector(':scope > [slot="header"]'),this.showFooter=!!this.el.querySelector(':scope > [slot="footer"]')}render(){const t=this.position.split("_"),i=t[1],o="OutsideStart"===i||"OutsideEnd"===i,n=a[t[0]],r=a[i],h=this.expanded||this.expandedWithHover;return s(e,{onMouseLeave:"ClickOrHover"===this.expandBehavior?this.handleMouseLeave:void 0},s("button",{id:"expandable-button","aria-controls":"section","aria-expanded":this.expanded.toString(),"aria-haspopup":"true","aria-label":this.buttonLabel,class:"expandable-button",part:"expandable-button",type:"button",onClick:this.handleButtonClick,onFocus:this.openOnFocus?this.handleButtonFocus:void 0,onMouseEnter:"ClickOrHover"===this.expandBehavior?this.handleMouseEnter:void 0,ref:t=>this.expandableButton=t},s("slot",{name:"action"})),"ClickOrHover"===this.expandBehavior&&s("div",{"aria-hidden":"true",class:{separation:!0,[`separation--y separation--y-${r}`]:o,[`separation--x separation--x-${n}`]:!o},part:"separation"}),s("ch-window",{part:"window",exportparts:"window:section,mask,header,footer",container:this.el,closeOnEscape:!0,hidden:!h,modal:!1,showFooter:this.showFooter,showHeader:this.showHeader,xAlign:n,yAlign:r},this.showHeader&&s("slot",{name:"header",slot:"header"}),s("div",{role:"list",class:"list",part:"list"},s("slot",{name:"items"})),this.showFooter&&s("slot",{name:"footer",slot:"footer"})))}get el(){return o(this)}static get watchers(){return{expanded:["handleExpandedChange"]}}};h.style=":where(button){all:unset}*,::before,::after{box-sizing:border-box}:host{--separation:0px;--separation-x:var(--separation);--separation-y:var(--separation);display:flex;position:relative;width:100%;height:100%}.expandable-button{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:100%;cursor:pointer;z-index:108}.expandable-button:focus-within{transition:box-shadow 250ms}::slotted([slot=action]){pointer-events:none}.separation{display:flex;position:absolute;z-index:107}.separation--y{width:100%;height:var(--separation-y)}.separation--y-outside-start{inset-block-start:calc(var(--separation-y) * -1)}.separation--y-outside-start+ch-window{--ch-window-offset-y:calc(var(--separation-y) * -1)}.separation--y-outside-end{inset-block-end:calc(var(--separation-y) * -1)}.separation--y-outside-end+ch-window{--ch-window-offset-y:var(--separation-y)}.separation--x{width:var(--separation-x);height:100%}.separation--x-outside-start{inset-inline-start:calc(var(--separation-x) * -1)}.separation--x-outside-start+ch-window{--ch-window-offset-x:calc(var(--separation-x) * -1)}.separation--x-outside-end{inset-inline-end:calc(var(--separation-x) * -1)}.separation--x-outside-end+ch-window{--ch-window-offset-x:var(--separation-x)}.list{display:flex;flex-direction:column}";export{h as ch_dropdown}