@ds-mo/ui 14.28.0 → 14.29.0

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 (210) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +27 -17
  3. package/dist/agent.json +148 -25
  4. package/dist/angular/ds-button-filled.d.ts +1 -1
  5. package/dist/angular/ds-button-filled.js +3 -3
  6. package/dist/angular/ds-button-unfilled.d.ts +1 -1
  7. package/dist/angular/ds-button-unfilled.js +3 -3
  8. package/dist/angular/ds-panel-nav.d.ts +1 -1
  9. package/dist/angular/ds-panel-nav.js +3 -3
  10. package/dist/angular/ds-panel-tool-header.d.ts +1 -1
  11. package/dist/angular/ds-panel-tool-header.js +3 -3
  12. package/dist/angular/ds-panel-tool-search.d.ts +1 -1
  13. package/dist/angular/ds-panel-tool-search.js +3 -3
  14. package/dist/angular/ds-table.d.ts +1 -1
  15. package/dist/angular/ds-table.js +3 -3
  16. package/dist/angular/ds-tag.d.ts +1 -1
  17. package/dist/angular/ds-tag.js +3 -3
  18. package/dist/components/ds-agent-questionnaire.js +1 -1
  19. package/dist/components/ds-agent-response.js +1 -1
  20. package/dist/components/ds-banner.js +1 -1
  21. package/dist/components/ds-bar-nav.js +1 -1
  22. package/dist/components/ds-bar-title.js +1 -1
  23. package/dist/components/ds-bar-workflow.js +1 -1
  24. package/dist/components/ds-button-filled.js +1 -1
  25. package/dist/components/ds-button-unfilled.js +1 -1
  26. package/dist/components/ds-card-chart.js +1 -1
  27. package/dist/components/ds-card-navigation.js +1 -1
  28. package/dist/components/ds-card-navigation.js.map +1 -1
  29. package/dist/components/ds-card-overview.js +1 -1
  30. package/dist/components/ds-card-overview.js.map +1 -1
  31. package/dist/components/ds-card-setting.js +1 -1
  32. package/dist/components/ds-chart-legend.js +1 -1
  33. package/dist/components/ds-chart-legend.js.map +1 -1
  34. package/dist/components/ds-checkbox.js +1 -1
  35. package/dist/components/ds-chip.js +1 -1
  36. package/dist/components/ds-code-block.js +1 -1
  37. package/dist/components/ds-conversation-list-item.js +1 -1
  38. package/dist/components/ds-conversation-list-item.js.map +1 -1
  39. package/dist/components/ds-filter-menu.js +1 -1
  40. package/dist/components/ds-input.js +1 -1
  41. package/dist/components/ds-markdown.js +1 -1
  42. package/dist/components/ds-menu.js +1 -1
  43. package/dist/components/ds-message-actions.js +1 -1
  44. package/dist/components/ds-message-composer.js +1 -1
  45. package/dist/components/ds-message-scroller.js +1 -1
  46. package/dist/components/ds-mobile-bar-nav.js +1 -1
  47. package/dist/components/ds-mobile-header.js +1 -1
  48. package/dist/components/ds-mobile-section-switcher.js +1 -1
  49. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  50. package/dist/components/ds-modal.js +1 -1
  51. package/dist/components/ds-pagination.js +1 -1
  52. package/dist/components/ds-panel-nav.js +1 -1
  53. package/dist/components/ds-panel-sub-nav.js +1 -1
  54. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  55. package/dist/components/ds-panel-tool-header.js +1 -1
  56. package/dist/components/ds-panel-tool-search.js +1 -1
  57. package/dist/components/ds-panel-tool-search.js.map +1 -1
  58. package/dist/components/ds-panel-tools.js +1 -1
  59. package/dist/components/ds-radio.js +1 -1
  60. package/dist/components/ds-select.js +1 -1
  61. package/dist/components/ds-shell-app.js +1 -1
  62. package/dist/components/ds-shell-app.js.map +1 -1
  63. package/dist/components/ds-shell-tools.js +1 -1
  64. package/dist/components/ds-tab-group.js +1 -1
  65. package/dist/components/ds-table-filter.js +1 -1
  66. package/dist/components/ds-table-group.js +1 -1
  67. package/dist/components/ds-table-group.js.map +1 -1
  68. package/dist/components/ds-table-saved-views.js +1 -1
  69. package/dist/components/ds-table-saved-views.js.map +1 -1
  70. package/dist/components/ds-table-search.js +1 -1
  71. package/dist/components/ds-table-search.js.map +1 -1
  72. package/dist/components/ds-table-sort.js +1 -1
  73. package/dist/components/ds-table-sort.js.map +1 -1
  74. package/dist/components/ds-table.js +1 -1
  75. package/dist/components/ds-table.js.map +1 -1
  76. package/dist/components/ds-tag.js +1 -1
  77. package/dist/components/ds-textarea.js +1 -1
  78. package/dist/components/ds-textarea.js.map +1 -1
  79. package/dist/components/ds-toast.js +1 -1
  80. package/dist/components/p--yvQzZoO.js +2 -0
  81. package/dist/components/p--yvQzZoO.js.map +1 -0
  82. package/dist/components/p-B5AZd41L.js +2 -0
  83. package/dist/components/p-B5AZd41L.js.map +1 -0
  84. package/dist/components/p-B5eMVBlz.js +2 -0
  85. package/dist/components/p-B5eMVBlz.js.map +1 -0
  86. package/dist/components/p-BGnRFtBa.js +2 -0
  87. package/dist/components/p-BGnRFtBa.js.map +1 -0
  88. package/dist/components/p-BIDGQ4tc.js +2 -0
  89. package/dist/components/p-BIDGQ4tc.js.map +1 -0
  90. package/dist/components/p-BZDQLjE0.js +2 -0
  91. package/dist/components/p-BZDQLjE0.js.map +1 -0
  92. package/dist/components/{p-DmYZLH_L.js → p-BdC7wxhu.js} +2 -2
  93. package/dist/components/{p-DmYZLH_L.js.map → p-BdC7wxhu.js.map} +1 -1
  94. package/dist/components/p-BfVlFinS.js +2 -0
  95. package/dist/components/{p-WM1GTEun.js.map → p-BfVlFinS.js.map} +1 -1
  96. package/dist/components/p-BmRHJ_jo.js +2 -0
  97. package/dist/components/p-BmRHJ_jo.js.map +1 -0
  98. package/dist/components/{p-CxbGZJBU.js → p-BwAWZAHk.js} +2 -2
  99. package/dist/components/{p-8atLxerP.js → p-By5TDnbF.js} +2 -2
  100. package/dist/components/{p-BdXUd-tK.js → p-CDXcINTO.js} +2 -2
  101. package/dist/components/{p-BdXUd-tK.js.map → p-CDXcINTO.js.map} +1 -1
  102. package/dist/components/{p-DGHeKNfG.js → p-CE8gsv7V.js} +2 -2
  103. package/dist/components/p-CLcwh1kq.js +2 -0
  104. package/dist/components/p-CLcwh1kq.js.map +1 -0
  105. package/dist/components/p-CcK3UiTu.js +2 -0
  106. package/dist/components/{p-NB-SoVpo.js.map → p-CcK3UiTu.js.map} +1 -1
  107. package/dist/components/p-Cr5vn5JO.js +2 -0
  108. package/dist/components/{p-CsW_2w-s.js.map → p-Cr5vn5JO.js.map} +1 -1
  109. package/dist/components/{p-CW7JhWlS.js → p-Crd3PEUx.js} +2 -2
  110. package/dist/components/{p-CW7JhWlS.js.map → p-Crd3PEUx.js.map} +1 -1
  111. package/dist/components/{p-Kp8ifB1g.js → p-Ct90k-nz.js} +2 -2
  112. package/dist/components/{p-C82vesh_.js → p-Cx2dWjaW.js} +2 -2
  113. package/dist/components/p-CyoLh8su.js +2 -0
  114. package/dist/components/p-CyoLh8su.js.map +1 -0
  115. package/dist/components/p-CysCSinT.js +2 -0
  116. package/dist/components/{p-BdU6FPu4.js.map → p-CysCSinT.js.map} +1 -1
  117. package/dist/components/p-CzbsTZt7.js.map +1 -1
  118. package/dist/components/p-D1pPq-y0.js +2 -0
  119. package/dist/components/{p-BWDbER5T.js.map → p-D1pPq-y0.js.map} +1 -1
  120. package/dist/components/{p-B3iy9Rl_.js → p-DF8W85Tz.js} +2 -2
  121. package/dist/components/p-GbtafFds.js +2 -0
  122. package/dist/components/p-GbtafFds.js.map +1 -0
  123. package/dist/components/{p-B_NN7k8H.js → p-K39w53Bw.js} +2 -2
  124. package/dist/components/p-K39w53Bw.js.map +1 -0
  125. package/dist/components/p-frKsmPQn.js +2 -0
  126. package/dist/components/{p-CvB76TJn.js.map → p-frKsmPQn.js.map} +1 -1
  127. package/dist/docs/components.json +188 -6
  128. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +11 -3
  129. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +2 -0
  130. package/dist/lib/components/ShellApp/shell-app-types.d.ts +2 -0
  131. package/dist/lib/shell/index.js.map +1 -1
  132. package/dist/lib/utils/choice-list.d.ts +2 -0
  133. package/dist/mcp-data/registry/bar-nav.json +7 -2
  134. package/dist/mcp-data/registry/bar-title.json +8 -3
  135. package/dist/mcp-data/registry/button-filled.json +26 -5
  136. package/dist/mcp-data/registry/button-unfilled.json +27 -6
  137. package/dist/mcp-data/registry/filter-menu.json +7 -2
  138. package/dist/mcp-data/registry/mobile-section-switcher.json +8 -3
  139. package/dist/mcp-data/registry/panel-nav.json +27 -6
  140. package/dist/mcp-data/registry/panel-tool-header.json +23 -2
  141. package/dist/mcp-data/registry/panel-tool-search.json +23 -2
  142. package/dist/mcp-data/registry/panel-tools.json +7 -2
  143. package/dist/mcp-data/registry/registry.json +147 -24
  144. package/dist/mcp-data/registry/select.json +8 -3
  145. package/dist/mcp-data/registry/shell-app.json +8 -3
  146. package/dist/mcp-data/registry/shell-tools.json +7 -2
  147. package/dist/mcp-data/registry/table-group.json +7 -2
  148. package/dist/mcp-data/registry/table-saved-views.json +7 -2
  149. package/dist/mcp-data/registry/table-search.json +7 -2
  150. package/dist/mcp-data/registry/table-sort.json +7 -2
  151. package/dist/mcp-data/registry/table.json +24 -3
  152. package/dist/mcp-data/registry/tag.json +24 -3
  153. package/dist/styles/table.css +1 -0
  154. package/dist/types/components/BarTitle/BarTitle.d.ts +3 -0
  155. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +11 -3
  156. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +11 -5
  157. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +2 -0
  158. package/dist/types/components/PanelNav/PanelNav.d.ts +4 -1
  159. package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -0
  160. package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +2 -0
  161. package/dist/types/components/PanelTools/panel-tools-types.d.ts +2 -0
  162. package/dist/types/components/ShellApp/ShellApp.d.ts +1 -0
  163. package/dist/types/components/ShellApp/shell-app-types.d.ts +2 -0
  164. package/dist/types/components/Table/Table.d.ts +10 -0
  165. package/dist/types/components/Table/table-row-view.d.ts +6 -1
  166. package/dist/types/components/TableSort/TableSort.d.ts +1 -0
  167. package/dist/types/components/Tag/Tag.d.ts +3 -0
  168. package/dist/types/components.d.ts +69 -6
  169. package/dist/types/utils/choice-list.d.ts +2 -0
  170. package/dist/vue/ds-button-filled.js +1 -0
  171. package/dist/vue/ds-button-unfilled.js +1 -0
  172. package/dist/vue/ds-panel-nav.js +1 -0
  173. package/dist/vue/ds-panel-tool-header.js +1 -0
  174. package/dist/vue/ds-panel-tool-search.js +1 -0
  175. package/dist/vue/ds-table.js +1 -0
  176. package/dist/vue/ds-tag.js +1 -0
  177. package/package.json +1 -1
  178. package/dist/components/p-6iF6gdoc.js +0 -2
  179. package/dist/components/p-6iF6gdoc.js.map +0 -1
  180. package/dist/components/p-BWDbER5T.js +0 -2
  181. package/dist/components/p-B_NN7k8H.js.map +0 -1
  182. package/dist/components/p-BdU6FPu4.js +0 -2
  183. package/dist/components/p-Bj018KMC.js +0 -2
  184. package/dist/components/p-Bj018KMC.js.map +0 -1
  185. package/dist/components/p-BxLF8b8a.js +0 -2
  186. package/dist/components/p-BxLF8b8a.js.map +0 -1
  187. package/dist/components/p-C1BJgnHY.js +0 -2
  188. package/dist/components/p-C1BJgnHY.js.map +0 -1
  189. package/dist/components/p-C78uTz-n.js +0 -2
  190. package/dist/components/p-C78uTz-n.js.map +0 -1
  191. package/dist/components/p-COn7l__5.js +0 -2
  192. package/dist/components/p-COn7l__5.js.map +0 -1
  193. package/dist/components/p-CsW_2w-s.js +0 -2
  194. package/dist/components/p-CvB76TJn.js +0 -2
  195. package/dist/components/p-D4-RkuER.js +0 -2
  196. package/dist/components/p-D4-RkuER.js.map +0 -1
  197. package/dist/components/p-DB_tlJ2d.js +0 -2
  198. package/dist/components/p-DB_tlJ2d.js.map +0 -1
  199. package/dist/components/p-NB-SoVpo.js +0 -2
  200. package/dist/components/p-P9My22Z1.js +0 -2
  201. package/dist/components/p-P9My22Z1.js.map +0 -1
  202. package/dist/components/p-WM1GTEun.js +0 -2
  203. package/dist/components/p-oAbq-DLk.js +0 -2
  204. package/dist/components/p-oAbq-DLk.js.map +0 -1
  205. /package/dist/components/{p-CxbGZJBU.js.map → p-BwAWZAHk.js.map} +0 -0
  206. /package/dist/components/{p-8atLxerP.js.map → p-By5TDnbF.js.map} +0 -0
  207. /package/dist/components/{p-DGHeKNfG.js.map → p-CE8gsv7V.js.map} +0 -0
  208. /package/dist/components/{p-Kp8ifB1g.js.map → p-Ct90k-nz.js.map} +0 -0
  209. /package/dist/components/{p-C82vesh_.js.map → p-Cx2dWjaW.js.map} +0 -0
  210. /package/dist/components/{p-B3iy9Rl_.js.map → p-DF8W85Tz.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{p as s,H as e,c as t,h as i,a,t as l}from"./index.js";import{d as r}from"./p-rSC7ZUpy.js";import{d as o}from"./p-oAbq-DLk.js";import{d as n}from"./p-BdU6FPu4.js";import{d as c}from"./p-BFHWoNH3.js";import{d}from"./p-NB-SoVpo.js";import{d as h}from"./p-Cea7rROU.js";import{d as m}from"./p-CsW_2w-s.js";import{d as f}from"./p-0XTyQNRG.js";import{d as u}from"./p-CW7JhWlS.js";import{d as p}from"./p-C1BJgnHY.js";import{d as b}from"./p-aMyflqva.js";import{d as g}from"./p-CN8PQLZu.js";const C=()=>`.sc-ds-table-filter-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}ds-filter-menu.sc-ds-table-filter{min-inline-size:0;max-inline-size:100%;--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}`;const k=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsClear=t(this,"dsClear",7);this.dsMatchModeChange=t(this,"dsMatchModeChange",7);this.dsActiveFilterChange=t(this,"dsActiveFilterChange",7);this.dsClose=t(this,"dsClose",7);this.dsOpenChange=t(this,"dsOpenChange",7);this.dsAfterClose=t(this,"dsAfterClose",7);this.open=false;this.filters=[];this.values={};this.matchModes={};this.label="Filter";this.ariaLabel=null;this.menuLabel=null;this.categoriesLabel="Filter categories";this.clearLabel="Clear";this.searchPlaceholder="Search";this.noResultsText="No results"}render(){const s=this.ariaLabel?.trim()||"Filter table";const e=this.menuLabel?.trim()||s;return i(a,{key:"6f753c298526644a0f69ffec4c530149b338e529"},i("ds-filter-menu",{key:"b5c0dcdbf29e58eed2b592476601266c47ac0734",open:this.open,triggerLabel:this.label,showSelectedCount:false,icon:"Filters",size:"md",width:"hug",hasBorder:true,activeFill:false,collapseLabel:true,align:"start","aria-label":s,filters:this.filters,values:this.values,matchModes:this.matchModes,activeFilterId:this.activeFilterId,menuLabel:e,categoriesLabel:this.categoriesLabel,clearLabel:this.clearLabel,searchPlaceholder:this.searchPlaceholder,noResultsText:this.noResultsText,footerLayout:"categories-clear",onDsChange:s=>this.forward(s,this.dsChange),onDsClear:s=>this.forward(s,this.dsClear),onDsMatchModeChange:s=>this.forward(s,this.dsMatchModeChange),onDsActiveFilterChange:s=>this.forward(s,this.dsActiveFilterChange),onDsClose:s=>this.forward(s,this.dsClose),onDsOpenChange:s=>{s.stopPropagation();this.open=s.detail;this.dsOpenChange.emit(s.detail)},onDsAfterClose:s=>this.forward(s,this.dsAfterClose)}))}forward(s,e){s.stopPropagation();e.emit(s.detail)}static get style(){return C()}},[2,"ds-table-filter",{open:[1028],filters:[16],values:[16],matchModes:[16],activeFilterId:[1,"active-filter-id"],label:[1],ariaLabel:[1,"aria-label"],menuLabel:[1,"menu-label"],categoriesLabel:[1,"categories-label"],clearLabel:[1,"clear-label"],searchPlaceholder:[1,"search-placeholder"],noResultsText:[1,"no-results-text"]}]);function x(){if(typeof customElements==="undefined"){return}const s=["ds-table-filter","ds-badge","ds-button-unfilled","ds-checkbox","ds-empty-state","ds-filter-menu","ds-icon","ds-input","ds-loader","ds-tab-group","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-table-filter":if(!customElements.get(l(s))){customElements.define(l(s),k)}break;case"ds-badge":if(!customElements.get(l(s))){r()}break;case"ds-button-unfilled":if(!customElements.get(l(s))){o()}break;case"ds-checkbox":if(!customElements.get(l(s))){n()}break;case"ds-empty-state":if(!customElements.get(l(s))){c()}break;case"ds-filter-menu":if(!customElements.get(l(s))){d()}break;case"ds-icon":if(!customElements.get(l(s))){h()}break;case"ds-input":if(!customElements.get(l(s))){m()}break;case"ds-loader":if(!customElements.get(l(s))){f()}break;case"ds-tab-group":if(!customElements.get(l(s))){u()}break;case"ds-tag":if(!customElements.get(l(s))){p()}break;case"ds-text":if(!customElements.get(l(s))){b()}break;case"ds-tooltip":if(!customElements.get(l(s))){g()}break}}))}x();const E=k;const j=x;export{E as DsTableFilter,j as defineCustomElement};
1
+ import{p as e,H as s,c as t,h as i,a,t as l}from"./index.js";import{d as r}from"./p-rSC7ZUpy.js";import{d as o}from"./p--yvQzZoO.js";import{d as n}from"./p-CysCSinT.js";import{d as c}from"./p-BFHWoNH3.js";import{d}from"./p-CcK3UiTu.js";import{d as h}from"./p-Cea7rROU.js";import{d as m}from"./p-Cr5vn5JO.js";import{d as f}from"./p-0XTyQNRG.js";import{d as u}from"./p-Crd3PEUx.js";import{d as p}from"./p-BGnRFtBa.js";import{d as b}from"./p-aMyflqva.js";import{d as g}from"./p-CN8PQLZu.js";const C=()=>`.sc-ds-table-filter-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}ds-filter-menu.sc-ds-table-filter{min-inline-size:0;max-inline-size:100%;--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}`;const k=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsClear=t(this,"dsClear",7);this.dsMatchModeChange=t(this,"dsMatchModeChange",7);this.dsActiveFilterChange=t(this,"dsActiveFilterChange",7);this.dsClose=t(this,"dsClose",7);this.dsOpenChange=t(this,"dsOpenChange",7);this.dsAfterClose=t(this,"dsAfterClose",7);this.open=false;this.filters=[];this.values={};this.matchModes={};this.label="Filter";this.ariaLabel=null;this.menuLabel=null;this.categoriesLabel="Filter categories";this.clearLabel="Clear";this.searchPlaceholder="Search";this.noResultsText="No results"}render(){const e=this.ariaLabel?.trim()||"Filter table";const s=this.menuLabel?.trim()||e;return i(a,{key:"6f753c298526644a0f69ffec4c530149b338e529"},i("ds-filter-menu",{key:"b5c0dcdbf29e58eed2b592476601266c47ac0734",open:this.open,triggerLabel:this.label,showSelectedCount:false,icon:"Filters",size:"md",width:"hug",hasBorder:true,activeFill:false,collapseLabel:true,align:"start","aria-label":e,filters:this.filters,values:this.values,matchModes:this.matchModes,activeFilterId:this.activeFilterId,menuLabel:s,categoriesLabel:this.categoriesLabel,clearLabel:this.clearLabel,searchPlaceholder:this.searchPlaceholder,noResultsText:this.noResultsText,footerLayout:"categories-clear",onDsChange:e=>this.forward(e,this.dsChange),onDsClear:e=>this.forward(e,this.dsClear),onDsMatchModeChange:e=>this.forward(e,this.dsMatchModeChange),onDsActiveFilterChange:e=>this.forward(e,this.dsActiveFilterChange),onDsClose:e=>this.forward(e,this.dsClose),onDsOpenChange:e=>{e.stopPropagation();this.open=e.detail;this.dsOpenChange.emit(e.detail)},onDsAfterClose:e=>this.forward(e,this.dsAfterClose)}))}forward(e,s){e.stopPropagation();s.emit(e.detail)}static get style(){return C()}},[2,"ds-table-filter",{open:[1028],filters:[16],values:[16],matchModes:[16],activeFilterId:[1,"active-filter-id"],label:[1],ariaLabel:[1,"aria-label"],menuLabel:[1,"menu-label"],categoriesLabel:[1,"categories-label"],clearLabel:[1,"clear-label"],searchPlaceholder:[1,"search-placeholder"],noResultsText:[1,"no-results-text"]}]);function x(){if(typeof customElements==="undefined"){return}const e=["ds-table-filter","ds-badge","ds-button-unfilled","ds-checkbox","ds-empty-state","ds-filter-menu","ds-icon","ds-input","ds-loader","ds-tab-group","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-filter":if(!customElements.get(l(e))){customElements.define(l(e),k)}break;case"ds-badge":if(!customElements.get(l(e))){r()}break;case"ds-button-unfilled":if(!customElements.get(l(e))){o()}break;case"ds-checkbox":if(!customElements.get(l(e))){n()}break;case"ds-empty-state":if(!customElements.get(l(e))){c()}break;case"ds-filter-menu":if(!customElements.get(l(e))){d()}break;case"ds-icon":if(!customElements.get(l(e))){h()}break;case"ds-input":if(!customElements.get(l(e))){m()}break;case"ds-loader":if(!customElements.get(l(e))){f()}break;case"ds-tab-group":if(!customElements.get(l(e))){u()}break;case"ds-tag":if(!customElements.get(l(e))){p()}break;case"ds-text":if(!customElements.get(l(e))){b()}break;case"ds-tooltip":if(!customElements.get(l(e))){g()}break}}))}x();const E=k;const j=x;export{E as DsTableFilter,j as defineCustomElement};
2
2
  //# sourceMappingURL=ds-table-filter.js.map
@@ -1,2 +1,2 @@
1
- import{p as e,H as o,c as i,h as t,a as s,t as r}from"./index.js";import{A as n,r as a}from"./p-DjF2m7bf.js";import{r as d,A as c}from"./p-etg-Uk1u.js";import{d as l,C as p}from"./p-BEttT0UB.js";import{d as u}from"./p-rSC7ZUpy.js";import{d as g}from"./p-oAbq-DLk.js";import{d as h}from"./p-BFHWoNH3.js";import{d as b}from"./p-Cea7rROU.js";import{d as f}from"./p-CsW_2w-s.js";import{d as v}from"./p-0XTyQNRG.js";import{d as m}from"./p-aMyflqva.js";import{d as x}from"./p-CN8PQLZu.js";import{r as y}from"./p-CochmPyg.js";import{a as w,T as _,b as k}from"./p-CUL5_8JM.js";const z=()=>`@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-table-group-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-table-group-h,.ds-focus-ring.sc-ds-table-group,.ds-focus-ring-inset.sc-ds-table-group-h,.ds-focus-ring-inset.sc-ds-table-group{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-table-group-h:focus-visible,.ds-focus-ring.sc-ds-table-group:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-table-group-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-table-group{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-table-group-h:focus-visible,.ds-focus-ring-inset.sc-ds-table-group:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-table-group-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-table-group:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-table-group-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-table-group-h,.ds-interaction-fill.sc-ds-table-group{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-table-group-h::before,.ds-interaction-fill.sc-ds-table-group::before,.ds-interaction-fill.sc-ds-table-group-h::after,.ds-interaction-fill.sc-ds-table-group::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-table-group-h::before,.ds-interaction-fill.sc-ds-table-group::before{z-index:1}.ds-interaction-fill.sc-ds-table-group-h::after,.ds-interaction-fill.sc-ds-table-group::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-table-group-h,.ds-interaction-fill--bordered.sc-ds-table-group{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-table-group-h::before,.ds-interaction-fill--selected.sc-ds-table-group::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-table-group-h,.ds-interaction-fill--selected.sc-ds-table-group{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-table-group-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-group:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-table-group-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-group:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-table-group-h::after,.ds-interaction-fill--grouped.sc-ds-table-group::after,.ds-interaction-fill--grouped.sc-ds-table-group-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-group:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-table-group-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-group:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-table-group-h,.ds-interaction-fill--grouped.sc-ds-table-group{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-table-group-h>.ds-interaction-fill__content.sc-ds-table-group,.ds-interaction-fill.sc-ds-table-group>.ds-interaction-fill__content.sc-ds-table-group,.ds-interaction-fill__content.sc-ds-table-group{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-table-group-h,.ds-interaction-fill--on-faint.sc-ds-table-group{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-table-group-h,.ds-interaction-fill--on-medium.sc-ds-table-group{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-table-group-h,.ds-interaction-fill--on-bold.sc-ds-table-group{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-table-group-h,.ds-interaction-fill--on-strong.sc-ds-table-group{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-table-group-h,.ds-interaction-fill--on-translucent.sc-ds-table-group{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-table-group-h,.ds-interaction-fill--on-inverted.sc-ds-table-group{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-table-group-h,.ds-interaction-fill--on-media.sc-ds-table-group{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-table-group-h,.ds-interaction-fill--on-always-dark.sc-ds-table-group{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-table-group-h,.ds-interaction-fill--on-navigation.sc-ds-table-group{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-table-group-h::after,.ds-interaction-fill.sc-ds-table-group::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--selected.sc-ds-table-group-h::before,.ds-interaction-fill--selected.sc-ds-table-group::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-table-group-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-table-group:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-table-group-h,.ds-control-inactive.sc-ds-table-group{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-table-group-h,.ds-control-inactive.sc-ds-table-group{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-table-group,.ds-control--lg.sc-ds-table-group-h,.ds-control--md.sc-ds-table-group-h,.ds-control--md.sc-ds-table-group,.ds-control--sm.sc-ds-table-group-h,.ds-control--sm.sc-ds-table-group,.ds-control--xs.sc-ds-table-group-h,.ds-control--xs.sc-ds-table-group{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-table-group-h,.ds-control--lg.sc-ds-table-group{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-table-group-h,.ds-control--md.sc-ds-table-group{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-table-group-h,.ds-control--sm.sc-ds-table-group{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-table-group-h,.ds-control--xs.sc-ds-table-group{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-table-group-h,.ds-chrome-space--sm.sc-ds-table-group{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-table-group-h,.ds-chrome-space--md.sc-ds-table-group{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-table-group-h,.ds-chrome-space--lg.sc-ds-table-group{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-table-group-h,.ds-chrome-row.sc-ds-table-group,.ds-chrome-column.sc-ds-table-group-h,.ds-chrome-column.sc-ds-table-group,.ds-chrome-grid.sc-ds-table-group-h,.ds-chrome-grid.sc-ds-table-group{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-table-group-h,.ds-chrome-row.sc-ds-table-group{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-table-group-h,.ds-chrome-column.sc-ds-table-group{flex-direction:column}.ds-chrome-grid.sc-ds-table-group-h,.ds-chrome-grid.sc-ds-table-group{display:grid;align-items:center}.ds-control-frame.sc-ds-table-group{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-table-group{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-table-group{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-table-group{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-table-group{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-table-group{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-table-group{display:flex;flex:1 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:0}.ds-empty-region--padded.sc-ds-table-group{padding:var(--dimension-space-200)}.sc-ds-table-group:where(.ds-text-decoration,.ds-text-action).sc-ds-table-group{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text-action.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-bold-brand);--ds-text-decoration-color:var(--ds-text-action-foreground);color:var(--ds-text-action-foreground);text-decoration-line:none}.ds-text-action--on-medium.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-on-medium-background-primary);--ds-text-decoration-color:var(--color-foreground-on-medium-background-secondary);text-decoration-line:underline}.ds-text-action--on-strong.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-on-strong-background-primary);--ds-text-decoration-color:var(--color-foreground-on-strong-background-secondary);text-decoration-line:underline}.ds-text-action--on-bold.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-on-bold-background-primary);--ds-text-decoration-color:var(--color-foreground-on-bold-background-secondary);text-decoration-line:underline}@media (hover: hover) and (pointer: fine){.ds-text-action.sc-ds-table-group:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-table-group{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-table-group{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--dimension-radius-075);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-table-group::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-table-group{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-table-group{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-table-group{opacity:0}}.ds-choice-list.sc-ds-table-group{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-table-group{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-table-group{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-table-group{margin-block-start:var(--dimension-space-050)}.ds-choice-item.sc-ds-table-group{width:100%;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));background:transparent;cursor:default;-webkit-user-select:none;user-select:none;text-align:left;color:inherit}.ds-choice-item.sc-ds-table-group:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item__content.sc-ds-table-group{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-table-group{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-table-group{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-table-group,.ds-choice-item__suffix.sc-ds-table-group{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.ds-choice-item.ds-interaction-fill--selected.sc-ds-table-group .ds-choice-item__icon.sc-ds-table-group{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-table-group{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-table-group,.ds-choice-loading.sc-ds-table-group{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-table-group{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-table-group::before{content:'';position:absolute;inset:0 0 auto;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.ds-choice-footer__content.sc-ds-table-group{display:flex;align-items:center;justify-content:space-between;column-gap:var(--dimension-space-050);box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400))}.ds-choice-footer__summary.sc-ds-table-group,.ds-choice-footer__summary-measure.sc-ds-table-group,.ds-choice-footer__clear.sc-ds-table-group ds-text.sc-ds-table-group,.ds-choice-footer__action.sc-ds-table-group ds-text.sc-ds-table-group{padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-choice-footer__summary.sc-ds-table-group,.ds-choice-footer__summary-measure.sc-ds-table-group,.ds-choice-footer__clear.sc-ds-table-group,.ds-choice-footer__action.sc-ds-table-group{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-table-group{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-table-group,.ds-choice-footer__action.sc-ds-table-group{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-popup.sc-ds-table-group{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-table-group::after{box-shadow:none}.ds-choice-section--divided.sc-ds-table-group{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-table-group::before{background-color:var(--ds-forced-color-content)}}.ds-control-frame.sc-ds-table-group{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-table-group{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-table-group{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-table-group{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-table-group{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-table-group{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-table-caption-control.sc-ds-table-group-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-table-group-h{flex:0 0 auto;width:var(--ds-control-height, var(--dimension-size-400));height:var(--ds-control-height, var(--dimension-size-400));min-width:var(--ds-control-height, var(--dimension-size-400));min-height:var(--ds-control-height, var(--dimension-size-400));max-width:var(--ds-control-height, var(--dimension-size-400));inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-table-group-h .trigger.sc-ds-table-group{justify-content:center;inline-size:100%;min-inline-size:100%;height:100%;padding-inline:0}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-table-group-h .trigger--has-value.sc-ds-table-group{--ds-select-prefix-fg:var(--ds-select-fg-active)}@container ds-table (max-width: 899px){.sc-ds-table-group-h.ds-table-caption-control{flex:0 0 auto;inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.sc-ds-table-group-h.ds-table-caption-control .trigger{justify-content:center;inline-size:100%;min-inline-size:100%;padding-inline:0}.sc-ds-table-group-h.ds-table-caption-control .trigger--has-value{--ds-select-prefix-fg:var(--ds-select-fg-active)}}.sc-ds-table-group-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}[hidden].sc-ds-table-group-h{display:none}.table-group__body.sc-ds-table-group{display:grid;grid-template-columns:var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);min-height:calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));max-height:calc(100vh - var(--dimension-size-800) - var(--dimension-size-600))}.table-group__data-pane.sc-ds-table-group,.table-group__order-pane.sc-ds-table-group{display:flex;min-width:0;min-height:0;flex-direction:column}.table-group__data-pane.sc-ds-table-group{border-inline-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.table-group__list.sc-ds-table-group{flex:1 1 auto}.table-group__empty.sc-ds-table-group{flex:1 1 auto}.table-group__footer.sc-ds-table-group{flex:0 0 auto}.table-group__footer.sc-ds-table-group .ds-choice-footer__content.sc-ds-table-group{justify-content:flex-start}.table-group__footer[aria-hidden='true'].sc-ds-table-group::before{visibility:hidden}.table-group__footer[aria-hidden='true'].sc-ds-table-group .ds-choice-footer__content.sc-ds-table-group{visibility:hidden}@media (forced-colors: active){.table-group__data-pane.sc-ds-table-group{border-inline-end-color:var(--ds-forced-color-content)}}`;const C=[{label:"Ascending",direction:"asc"},{label:"Descending",direction:"desc"}];let j=0;const T=e(class e extends o{constructor(e){super();if(e!==false){this.__registerHost()}this.dsGroupChange=i(this,"dsGroupChange",7);this.dsClear=i(this,"dsClear",7);this.dsOpenChange=i(this,"dsOpenChange",7);this.options=[];this.grouping=null;this.ariaLabel=null;this.open=false;this.emptyMessage="Select a group to choose its order.";this.clearLabel="Clear";this.shouldRender=false;this.closing=false;this.positionReady=false;this.pos={x:0,y:0};this.focusRingVisible=false;this.componentId=`ds-table-group-${++j}`;this.triggerId=`${this.componentId}-trigger`;this.popupId=`${this.componentId}-popup`;this.triggerElement=null;this.pendingInitialFocusVisible=false;this.closeTimer=null;this.position=new n({getAnchor:()=>this.triggerElement,getPopup:()=>this.el.querySelector(".table-group-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(e,o)=>{if(!this.open)return null;const i=y(_.space050,_.space050);return{anchorRect:e.getBoundingClientRect(),popupWidth:o.offsetWidth||this.popupFallbackWidth,popupHeight:o.offsetHeight||this.popupFallbackHeight,side:"bottom",align:"end",sideOffsetPx:y(k.space050,_.space050),alignOffsetPx:d({align:"end",alignOffsetPx:0,sectionInsetPx:i}),viewportPadPx:y(_.space050,_.space050),viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:a(e)}},apply:({x:e,y:o})=>{this.pos={x:e,y:o}},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",observeResize:true,topLayer:true});this.interaction=new c({getAnchor:()=>this.triggerElement,getPopup:()=>this.el.querySelector(".table-group-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.close()})}componentDidLoad(){if(this.open)this.onOpenChange(true)}disconnectedCallback(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer)clearTimeout(this.closeTimer)}onOpenChange(e){if(e){this.teardown();this.shouldRender=true;this.closing=false;this.positionReady=false;this.focusRingVisible=this.pendingInitialFocusVisible;this.interaction.connect();this.position.observe();this.position.schedule((()=>this.focusInitialDataPoint()));return}if(!this.shouldRender)return;this.position.cancel();this.closing=true;this.interaction.disconnect();this.position.unobserve();const o=w(_.motionShort2,_.animationDurationShort3);if(o<=0)this.finishClose();else this.closeTimer=setTimeout((()=>this.finishClose()),o)}handleKeyDown(e){if(!this.shouldRender||this.closing)return;if(e.key==="Escape"){e.preventDefault();this.close();return}if(e.key!=="Tab"||!this.interaction.tabLeavesPopup(e))return;e.preventDefault();this.close(false);this.interaction.moveFocusAfterTab(e.shiftKey)}get popupFallbackWidth(){return y(_.menuWidthLg,_.menuWidthLg)}get popupFallbackHeight(){return y(_.menuFallbackHeight,_.menuFallbackHeight)}teardown(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}toggle(e=false){if(this.open){this.close();return}this.pendingInitialFocusVisible=e;this.open=true;this.dsOpenChange.emit(true);this.onOpenChange(true)}close(e=true){if(e)this.interaction.focusAnchor();this.open=false;this.dsOpenChange.emit(false);this.onOpenChange(false)}finishClose(){const e=this.el.querySelector(".table-group-popup");if(e?.matches(":popover-open"))e.hidePopover();this.shouldRender=false;this.closing=false;this.closeTimer=null}focusInitialDataPoint(){requestAnimationFrame((()=>{const e=this.grouping?this.el.querySelector(`[data-group-value="${CSS.escape(this.grouping.columnId)}"] [role="option"]`):null;const o=e??this.el.querySelector('[data-group-value] [role="option"]:not([aria-disabled="true"])');o?.focus();this.pendingInitialFocusVisible=false}))}selectData(e){if(e.isInactive)return;if(this.grouping?.columnId===e.value){this.dsGroupChange.emit({...this.grouping});return}const o=e.orderOptions?.[0];this.dsGroupChange.emit({columnId:e.value,direction:o?.direction??"asc",...o?.orderBy?{orderBy:o.orderBy}:{}})}get activeOrderOptions(){const e=this.options.find((e=>e.value===this.grouping?.columnId))?.orderOptions;return e?.length?e:C}get selectedOrderIndex(){if(!this.grouping)return-1;const e=this.activeOrderOptions.findIndex((e=>e.direction===this.grouping?.direction&&e.orderBy===this.grouping?.orderBy));if(e>=0)return e;if(this.grouping.orderBy===undefined){return this.activeOrderOptions.findIndex((e=>e.direction===this.grouping?.direction))}return-1}selectOrder(e,o){if(!this.grouping||this.selectedOrderIndex===o)return;const i={columnId:this.grouping.columnId,direction:e.direction};if(e.orderBy)i.orderBy=e.orderBy;this.dsGroupChange.emit(i)}moveFocus(e,o,i,t){if(t&&(e.key==="ArrowLeft"||e.key==="ArrowRight")){e.preventDefault();this.focusRingVisible=true;this.el.querySelector(t)?.focus();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key))return;e.preventDefault();const s=Array.from(this.el.querySelectorAll(o)).filter((e=>e.getAttribute("aria-disabled")!=="true"));if(!s.length)return;let r;if(e.key==="Home")r=0;else if(e.key==="End")r=s.length-1;else r=(i+(e.key==="ArrowDown"?1:-1)+s.length)%s.length;this.focusRingVisible=true;s[r]?.focus()}renderDataOption(e,o){const i=e.value===this.grouping?.columnId;return t(p,{id:`${this.componentId}-data-${o}`,option:{...e},selected:i,active:i,focusRingVisible:this.focusRingVisible,usesSubtext:Boolean(e.description),tabIndex:i||!this.grouping&&o===0?0:-1,onHover:()=>{this.focusRingVisible=false},onSelect:()=>this.selectData(e),onKeyDown:o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();this.selectData(e);return}this.moveFocus(o,'[data-group-value] [role="option"]',this.options.filter((e=>!e.isInactive)).findIndex((o=>o.value===e.value)),this.grouping?`[data-group-order-index="${this.selectedOrderIndex}"] [role="option"]`:undefined)}})}renderOrder(e,o){const i=o===this.selectedOrderIndex;return t(p,{id:`${this.componentId}-order-${o}`,option:{label:e.label,value:String(o)},selected:i,active:i,focusRingVisible:this.focusRingVisible,usesSubtext:false,tabIndex:i?0:-1,onHover:()=>{this.focusRingVisible=false},onSelect:()=>this.selectOrder(e,o),onKeyDown:i=>{if(i.key==="Enter"||i.key===" "){i.preventDefault();this.selectOrder(e,o);return}this.moveFocus(i,'[data-group-order-index] [role="option"]',o,`[data-group-value="${CSS.escape(this.grouping?.columnId??"")}"] [role="option"]`)}})}render(){const e=this.ariaLabel?.trim()||"Group table";const o={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"9998",visibility:this.positionReady?"visible":"hidden"};return t(s,{key:"5bd53f166bfef3a729968ca61012aecd24f46f31",hidden:this.options.length===0?true:undefined},this.options.length?t("ds-button-unfilled",{ref:e=>{this.triggerElement=e??null},id:this.triggerId,variant:"icon-label",size:"md",icon:"SectionList",label:"Group",labelEmphasis:false,pressScale:false,"aria-label":e,hasMenu:true,collapseLabel:true,expanded:this.open,controls:this.popupId,onDsClick:e=>this.toggle(e.detail.detail===0)}):null,this.shouldRender?t("div",{id:this.popupId,popover:"manual",class:{"table-group-popup":true,"ds-choice-popup":true,"ds-choice-popup--closing":this.closing},style:o,role:"dialog","aria-label":e},t("div",{class:"table-group__body"},t("div",{class:"table-group__data-pane"},t(l,{heading:"Data",ariaLabel:"Group data",className:"table-group__list"},this.options.map(((e,o)=>t("div",{"data-group-value":e.value},this.renderDataOption(e,o))))),t("div",{class:"table-group__footer ds-choice-footer","aria-hidden":!this.grouping?"true":undefined},t("div",{class:"ds-choice-footer__content ds-control--md"},this.grouping?t("button",{class:"ds-choice-footer__clear ds-text-action ds-focus-ring",type:"button",onClick:()=>this.dsClear.emit()},t("ds-text",{as:"span",variant:"text-body-medium",color:"inherit"},this.clearLabel)):null))),t("div",{class:"table-group__order-pane"},this.grouping?t(l,{heading:"Order",ariaLabel:"Group order",className:"table-group__list"},this.activeOrderOptions.map(((e,o)=>t("div",{"data-group-order-index":o},this.renderOrder(e,o))))):t("div",{class:"table-group__empty ds-choice-empty ds-empty-region"},t("ds-empty-state",{body:this.emptyMessage}))))):null)}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}]}}static get style(){return z()}},[2,"ds-table-group",{options:[16],grouping:[16],ariaLabel:[1,"aria-label"],open:[1028],emptyMessage:[1,"empty-message"],clearLabel:[1,"clear-label"],shouldRender:[32],closing:[32],positionReady:[32],pos:[32],focusRingVisible:[32]},[[0,"keydown","handleKeyDown"]],{open:[{onOpenChange:0}]}]);function O(){if(typeof customElements==="undefined"){return}const e=["ds-table-group","ds-badge","ds-button-unfilled","ds-empty-state","ds-icon","ds-input","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-group":if(!customElements.get(r(e))){customElements.define(r(e),T)}break;case"ds-badge":if(!customElements.get(r(e))){u()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){g()}break;case"ds-empty-state":if(!customElements.get(r(e))){h()}break;case"ds-icon":if(!customElements.get(r(e))){b()}break;case"ds-input":if(!customElements.get(r(e))){f()}break;case"ds-loader":if(!customElements.get(r(e))){v()}break;case"ds-text":if(!customElements.get(r(e))){m()}break;case"ds-tooltip":if(!customElements.get(r(e))){x()}break}}))}O();const E=T;const D=O;export{E as DsTableGroup,D as defineCustomElement};
1
+ import{p as e,H as o,c as i,h as t,a as s,t as r}from"./index.js";import{A as n,r as a}from"./p-DjF2m7bf.js";import{r as d,A as c}from"./p-etg-Uk1u.js";import{d as l,C as u}from"./p-BEttT0UB.js";import{d as p}from"./p-rSC7ZUpy.js";import{d as g}from"./p--yvQzZoO.js";import{d as h}from"./p-BFHWoNH3.js";import{d as b}from"./p-Cea7rROU.js";import{d as f}from"./p-Cr5vn5JO.js";import{d as v}from"./p-0XTyQNRG.js";import{d as m}from"./p-aMyflqva.js";import{d as x}from"./p-CN8PQLZu.js";import{r as y}from"./p-CochmPyg.js";import{a as w,T as _,b as k}from"./p-CUL5_8JM.js";const z=()=>`@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-table-group-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-table-group-h,.ds-focus-ring.sc-ds-table-group,.ds-focus-ring-inset.sc-ds-table-group-h,.ds-focus-ring-inset.sc-ds-table-group{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-table-group-h:focus-visible,.ds-focus-ring.sc-ds-table-group:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-table-group-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-table-group{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-table-group-h:focus-visible,.ds-focus-ring-inset.sc-ds-table-group:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-table-group-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-table-group:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-table-group::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-table-group-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-table-group-h,.ds-interaction-fill.sc-ds-table-group{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-table-group-h::before,.ds-interaction-fill.sc-ds-table-group::before,.ds-interaction-fill.sc-ds-table-group-h::after,.ds-interaction-fill.sc-ds-table-group::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-table-group-h::before,.ds-interaction-fill.sc-ds-table-group::before{z-index:1}.ds-interaction-fill.sc-ds-table-group-h::after,.ds-interaction-fill.sc-ds-table-group::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-table-group-h,.ds-interaction-fill--bordered.sc-ds-table-group{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-table-group-h::before,.ds-interaction-fill--selected.sc-ds-table-group::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-table-group-h,.ds-interaction-fill--selected.sc-ds-table-group{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-table-group-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-group:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-table-group-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-table-group:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-table-group-h::after,.ds-interaction-fill--grouped.sc-ds-table-group::after,.ds-interaction-fill--grouped.sc-ds-table-group-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-group:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-table-group-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-table-group:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-table-group-h,.ds-interaction-fill--grouped.sc-ds-table-group{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-table-group-h>.ds-interaction-fill__content.sc-ds-table-group,.ds-interaction-fill.sc-ds-table-group>.ds-interaction-fill__content.sc-ds-table-group,.ds-interaction-fill__content.sc-ds-table-group{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-table-group-h,.ds-interaction-fill--on-faint.sc-ds-table-group{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-table-group-h,.ds-interaction-fill--on-medium.sc-ds-table-group{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-table-group-h,.ds-interaction-fill--on-bold.sc-ds-table-group{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-table-group-h,.ds-interaction-fill--on-strong.sc-ds-table-group{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-table-group-h,.ds-interaction-fill--on-translucent.sc-ds-table-group{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-table-group-h,.ds-interaction-fill--on-inverted.sc-ds-table-group{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-table-group-h,.ds-interaction-fill--on-media.sc-ds-table-group{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-table-group-h,.ds-interaction-fill--on-always-dark.sc-ds-table-group{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-table-group-h,.ds-interaction-fill--on-navigation.sc-ds-table-group{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-table-group-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-table-group:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-table-group-h::after,.ds-interaction-fill.sc-ds-table-group::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-table-group-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-table-group:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-table-group-h::before,.ds-interaction-fill--selected.sc-ds-table-group::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-table-group-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-table-group:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-table-group:root,.sc-ds-table-group-h,.ds-forced-colors-scope.sc-ds-table-group{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-table-group-h,.ds-control-inactive.sc-ds-table-group{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-table-group-h,.ds-control-inactive.sc-ds-table-group{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-table-group,.ds-control--lg.sc-ds-table-group-h,.ds-control--md.sc-ds-table-group-h,.ds-control--md.sc-ds-table-group,.ds-control--sm.sc-ds-table-group-h,.ds-control--sm.sc-ds-table-group,.ds-control--xs.sc-ds-table-group-h,.ds-control--xs.sc-ds-table-group{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-table-group-h,.ds-control--lg.sc-ds-table-group{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-table-group-h,.ds-control--md.sc-ds-table-group{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-table-group-h,.ds-control--sm.sc-ds-table-group{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-table-group-h,.ds-control--xs.sc-ds-table-group{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-table-group-h,.ds-chrome-space--sm.sc-ds-table-group{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-table-group-h,.ds-chrome-space--md.sc-ds-table-group{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-table-group-h,.ds-chrome-space--lg.sc-ds-table-group{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-table-group-h,.ds-chrome-row.sc-ds-table-group,.ds-chrome-column.sc-ds-table-group-h,.ds-chrome-column.sc-ds-table-group,.ds-chrome-grid.sc-ds-table-group-h,.ds-chrome-grid.sc-ds-table-group{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-table-group-h,.ds-chrome-row.sc-ds-table-group{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-table-group-h,.ds-chrome-column.sc-ds-table-group{flex-direction:column}.ds-chrome-grid.sc-ds-table-group-h,.ds-chrome-grid.sc-ds-table-group{display:grid;align-items:center}.ds-control-frame.sc-ds-table-group{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-table-group{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-table-group{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-table-group{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-table-group{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-table-group{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-table-group{display:flex;flex:1 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:0}.ds-empty-region--padded.sc-ds-table-group{padding:var(--dimension-space-200)}.sc-ds-table-group:where(.ds-text-decoration,.ds-text-action).sc-ds-table-group{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text-action.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-bold-brand);--ds-text-decoration-color:var(--ds-text-action-foreground);color:var(--ds-text-action-foreground);text-decoration-line:none}.ds-text-action--on-medium.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-on-medium-background-primary);--ds-text-decoration-color:var(--color-foreground-on-medium-background-secondary);text-decoration-line:underline}.ds-text-action--on-strong.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-on-strong-background-primary);--ds-text-decoration-color:var(--color-foreground-on-strong-background-secondary);text-decoration-line:underline}.ds-text-action--on-bold.sc-ds-table-group{--ds-text-action-foreground:var(--color-foreground-on-bold-background-primary);--ds-text-decoration-color:var(--color-foreground-on-bold-background-secondary);text-decoration-line:underline}@media (hover: hover) and (pointer: fine){.ds-text-action.sc-ds-table-group:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-table-group{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-table-group{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--dimension-radius-075);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-table-group::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-table-group{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-table-group{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-table-group{opacity:0}}.ds-choice-list.sc-ds-table-group{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-table-group{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-table-group{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-table-group{margin-block-start:var(--dimension-space-050)}.ds-choice-item.sc-ds-table-group{width:100%;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));background:transparent;cursor:default;-webkit-user-select:none;user-select:none;text-align:left;color:inherit}.ds-choice-item.sc-ds-table-group:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item__content.sc-ds-table-group{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-table-group{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-table-group{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-table-group,.ds-choice-item__suffix.sc-ds-table-group{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.ds-choice-item.ds-interaction-fill--selected.sc-ds-table-group .ds-choice-item__icon.sc-ds-table-group{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-table-group{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-table-group,.ds-choice-loading.sc-ds-table-group{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-table-group{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-table-group::before{content:'';position:absolute;inset:0 0 auto;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.ds-choice-footer__content.sc-ds-table-group{display:flex;align-items:center;justify-content:space-between;column-gap:var(--dimension-space-050);box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400))}.ds-choice-footer__summary.sc-ds-table-group,.ds-choice-footer__summary-measure.sc-ds-table-group,.ds-choice-footer__clear.sc-ds-table-group ds-text.sc-ds-table-group,.ds-choice-footer__action.sc-ds-table-group ds-text.sc-ds-table-group{padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-choice-footer__summary.sc-ds-table-group,.ds-choice-footer__summary-measure.sc-ds-table-group,.ds-choice-footer__clear.sc-ds-table-group,.ds-choice-footer__action.sc-ds-table-group{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-table-group{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-table-group,.ds-choice-footer__action.sc-ds-table-group{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-popup.sc-ds-table-group{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-table-group::after{box-shadow:none}.ds-choice-section--divided.sc-ds-table-group{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-table-group::before{background-color:var(--ds-forced-color-content)}}.ds-control-frame.sc-ds-table-group{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-table-group{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-table-group{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-table-group{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-table-group{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-table-group{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-table-caption-control.sc-ds-table-group-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-table-group-h{flex:0 0 auto;width:var(--ds-control-height, var(--dimension-size-400));height:var(--ds-control-height, var(--dimension-size-400));min-width:var(--ds-control-height, var(--dimension-size-400));min-height:var(--ds-control-height, var(--dimension-size-400));max-width:var(--ds-control-height, var(--dimension-size-400));inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-table-group-h .trigger.sc-ds-table-group{justify-content:center;inline-size:100%;min-inline-size:100%;height:100%;padding-inline:0}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-table-group-h .trigger--has-value.sc-ds-table-group{--ds-select-prefix-fg:var(--ds-select-fg-active)}@container ds-table (max-width: 899px){.sc-ds-table-group-h.ds-table-caption-control{flex:0 0 auto;inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.sc-ds-table-group-h.ds-table-caption-control .trigger{justify-content:center;inline-size:100%;min-inline-size:100%;padding-inline:0}.sc-ds-table-group-h.ds-table-caption-control .trigger--has-value{--ds-select-prefix-fg:var(--ds-select-fg-active)}}.sc-ds-table-group-h{display:inline-flex;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}[hidden].sc-ds-table-group-h{display:none}.table-group__body.sc-ds-table-group{display:grid;grid-template-columns:var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);min-height:calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));max-height:calc(100vh - var(--dimension-size-800) - var(--dimension-size-600))}.table-group__data-pane.sc-ds-table-group,.table-group__order-pane.sc-ds-table-group{display:flex;min-width:0;min-height:0;flex-direction:column}.table-group__data-pane.sc-ds-table-group{border-inline-end:var(--dimension-stroke-width-012) solid var(--color-border-tertiary)}.table-group__list.sc-ds-table-group{flex:1 1 auto}.table-group__empty.sc-ds-table-group{flex:1 1 auto}.table-group__footer.sc-ds-table-group{flex:0 0 auto}.table-group__footer.sc-ds-table-group .ds-choice-footer__content.sc-ds-table-group{justify-content:flex-start}.table-group__footer[aria-hidden='true'].sc-ds-table-group::before{visibility:hidden}.table-group__footer[aria-hidden='true'].sc-ds-table-group .ds-choice-footer__content.sc-ds-table-group{visibility:hidden}@media (forced-colors: active){.table-group__data-pane.sc-ds-table-group{border-inline-end-color:var(--ds-forced-color-content)}}`;const C=[{label:"Ascending",direction:"asc"},{label:"Descending",direction:"desc"}];let j=0;const O=e(class e extends o{constructor(e){super();if(e!==false){this.__registerHost()}this.dsGroupChange=i(this,"dsGroupChange",7);this.dsClear=i(this,"dsClear",7);this.dsOpenChange=i(this,"dsOpenChange",7);this.options=[];this.grouping=null;this.ariaLabel=null;this.open=false;this.emptyMessage="Select a group to choose its order.";this.clearLabel="Clear";this.shouldRender=false;this.closing=false;this.positionReady=false;this.pos={x:0,y:0};this.focusRingVisible=false;this.componentId=`ds-table-group-${++j}`;this.triggerId=`${this.componentId}-trigger`;this.popupId=`${this.componentId}-popup`;this.triggerElement=null;this.pendingInitialFocusVisible=false;this.closeTimer=null;this.position=new n({getAnchor:()=>this.triggerElement,getPopup:()=>this.el.querySelector(".table-group-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(e,o)=>{if(!this.open)return null;const i=y(_.space050,_.space050);return{anchorRect:e.getBoundingClientRect(),popupWidth:o.offsetWidth||this.popupFallbackWidth,popupHeight:o.offsetHeight||this.popupFallbackHeight,side:"bottom",align:"end",sideOffsetPx:y(k.space050,_.space050),alignOffsetPx:d({align:"end",alignOffsetPx:0,sectionInsetPx:i}),viewportPadPx:y(_.space050,_.space050),viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:a(e)}},apply:({x:e,y:o})=>{this.pos={x:e,y:o}},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",observeResize:true,topLayer:true});this.interaction=new c({getAnchor:()=>this.triggerElement,getPopup:()=>this.el.querySelector(".table-group-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.close()})}componentDidLoad(){if(this.open)this.onOpenChange(true)}disconnectedCallback(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer)clearTimeout(this.closeTimer)}onOpenChange(e){if(e){this.teardown();this.shouldRender=true;this.closing=false;this.positionReady=false;this.focusRingVisible=this.pendingInitialFocusVisible;this.interaction.connect();this.position.observe();this.position.schedule((()=>this.focusInitialDataPoint()));return}if(!this.shouldRender)return;this.position.cancel();this.closing=true;this.interaction.disconnect();this.position.unobserve();const o=w(_.motionShort2,_.animationDurationShort3);if(o<=0)this.finishClose();else this.closeTimer=setTimeout((()=>this.finishClose()),o)}handleKeyDown(e){if(!this.shouldRender||this.closing)return;if(e.key==="Escape"){e.preventDefault();this.close();return}if(e.key!=="Tab"||!this.interaction.tabLeavesPopup(e))return;e.preventDefault();this.close(false);this.interaction.moveFocusAfterTab(e.shiftKey)}get popupFallbackWidth(){return y(_.menuWidthLg,_.menuWidthLg)}get popupFallbackHeight(){return y(_.menuFallbackHeight,_.menuFallbackHeight)}teardown(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}toggle(e=false){if(this.open){this.close();return}this.pendingInitialFocusVisible=e;this.open=true;this.dsOpenChange.emit(true);this.onOpenChange(true)}close(e=true){if(e)this.interaction.focusAnchor();this.open=false;this.dsOpenChange.emit(false);this.onOpenChange(false)}finishClose(){const e=this.el.querySelector(".table-group-popup");if(e?.matches(":popover-open"))e.hidePopover();this.shouldRender=false;this.closing=false;this.closeTimer=null}focusInitialDataPoint(){requestAnimationFrame((()=>{const e=this.grouping?this.el.querySelector(`[data-group-value="${CSS.escape(this.grouping.columnId)}"] [role="option"]`):null;const o=e??this.el.querySelector('[data-group-value] [role="option"]:not([aria-disabled="true"])');o?.focus();this.pendingInitialFocusVisible=false}))}selectData(e){if(e.isInactive)return;if(this.grouping?.columnId===e.value){this.dsGroupChange.emit({...this.grouping});return}const o=e.orderOptions?.[0];this.dsGroupChange.emit({columnId:e.value,direction:o?.direction??"asc",...o?.orderBy?{orderBy:o.orderBy}:{}})}get activeOrderOptions(){const e=this.options.find((e=>e.value===this.grouping?.columnId))?.orderOptions;return e?.length?e:C}get selectedOrderIndex(){if(!this.grouping)return-1;const e=this.activeOrderOptions.findIndex((e=>e.direction===this.grouping?.direction&&e.orderBy===this.grouping?.orderBy));if(e>=0)return e;if(this.grouping.orderBy===undefined){return this.activeOrderOptions.findIndex((e=>e.direction===this.grouping?.direction))}return-1}selectOrder(e,o){if(!this.grouping||this.selectedOrderIndex===o)return;const i={columnId:this.grouping.columnId,direction:e.direction};if(e.orderBy)i.orderBy=e.orderBy;this.dsGroupChange.emit(i)}moveFocus(e,o,i,t){if(t&&(e.key==="ArrowLeft"||e.key==="ArrowRight")){e.preventDefault();this.focusRingVisible=true;this.el.querySelector(t)?.focus();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key))return;e.preventDefault();const s=Array.from(this.el.querySelectorAll(o)).filter((e=>e.getAttribute("aria-disabled")!=="true"));if(!s.length)return;let r;if(e.key==="Home")r=0;else if(e.key==="End")r=s.length-1;else r=(i+(e.key==="ArrowDown"?1:-1)+s.length)%s.length;this.focusRingVisible=true;s[r]?.focus()}renderDataOption(e,o){const i=e.value===this.grouping?.columnId;return t(u,{id:`${this.componentId}-data-${o}`,option:{...e},selected:i,active:i,focusRingVisible:this.focusRingVisible,usesSubtext:Boolean(e.description),tabIndex:i||!this.grouping&&o===0?0:-1,onHover:()=>{this.focusRingVisible=false},onSelect:()=>this.selectData(e),onKeyDown:o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();this.selectData(e);return}this.moveFocus(o,'[data-group-value] [role="option"]',this.options.filter((e=>!e.isInactive)).findIndex((o=>o.value===e.value)),this.grouping?`[data-group-order-index="${this.selectedOrderIndex}"] [role="option"]`:undefined)}})}renderOrder(e,o){const i=o===this.selectedOrderIndex;return t(u,{id:`${this.componentId}-order-${o}`,option:{label:e.label,value:String(o)},selected:i,active:i,focusRingVisible:this.focusRingVisible,usesSubtext:false,tabIndex:i?0:-1,onHover:()=>{this.focusRingVisible=false},onSelect:()=>this.selectOrder(e,o),onKeyDown:i=>{if(i.key==="Enter"||i.key===" "){i.preventDefault();this.selectOrder(e,o);return}this.moveFocus(i,'[data-group-order-index] [role="option"]',o,`[data-group-value="${CSS.escape(this.grouping?.columnId??"")}"] [role="option"]`)}})}render(){const e=this.ariaLabel?.trim()||"Group table";const o={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"9998",visibility:this.positionReady?"visible":"hidden"};return t(s,{key:"5bd53f166bfef3a729968ca61012aecd24f46f31",hidden:this.options.length===0?true:undefined},this.options.length?t("ds-button-unfilled",{ref:e=>{this.triggerElement=e??null},id:this.triggerId,variant:"icon-label",size:"md",icon:"SectionList",label:"Group",labelEmphasis:false,pressScale:false,"aria-label":e,hasMenu:true,collapseLabel:true,expanded:this.open,surfaceOpen:this.open||this.closing,controls:this.popupId,onDsClick:e=>this.toggle(e.detail.detail===0)}):null,this.shouldRender?t("div",{id:this.popupId,popover:"manual",class:{"table-group-popup":true,"ds-choice-popup":true,"ds-choice-popup--closing":this.closing},style:o,role:"dialog","aria-label":e},t("div",{class:"table-group__body"},t("div",{class:"table-group__data-pane"},t(l,{heading:"Data",ariaLabel:"Group data",className:"table-group__list"},this.options.map(((e,o)=>t("div",{"data-group-value":e.value},this.renderDataOption(e,o))))),t("div",{class:"table-group__footer ds-choice-footer","aria-hidden":!this.grouping?"true":undefined},t("div",{class:"ds-choice-footer__content ds-control--md"},this.grouping?t("button",{class:"ds-choice-footer__clear ds-text-action ds-focus-ring",type:"button",onClick:()=>this.dsClear.emit()},t("ds-text",{as:"span",variant:"text-body-medium",color:"inherit"},this.clearLabel)):null))),t("div",{class:"table-group__order-pane"},this.grouping?t(l,{heading:"Order",ariaLabel:"Group order",className:"table-group__list"},this.activeOrderOptions.map(((e,o)=>t("div",{"data-group-order-index":o},this.renderOrder(e,o))))):t("div",{class:"table-group__empty ds-choice-empty ds-empty-region"},t("ds-empty-state",{body:this.emptyMessage}))))):null)}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}]}}static get style(){return z()}},[2,"ds-table-group",{options:[16],grouping:[16],ariaLabel:[1,"aria-label"],open:[1028],emptyMessage:[1,"empty-message"],clearLabel:[1,"clear-label"],shouldRender:[32],closing:[32],positionReady:[32],pos:[32],focusRingVisible:[32]},[[0,"keydown","handleKeyDown"]],{open:[{onOpenChange:0}]}]);function T(){if(typeof customElements==="undefined"){return}const e=["ds-table-group","ds-badge","ds-button-unfilled","ds-empty-state","ds-icon","ds-input","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-group":if(!customElements.get(r(e))){customElements.define(r(e),O)}break;case"ds-badge":if(!customElements.get(r(e))){p()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){g()}break;case"ds-empty-state":if(!customElements.get(r(e))){h()}break;case"ds-icon":if(!customElements.get(r(e))){b()}break;case"ds-input":if(!customElements.get(r(e))){f()}break;case"ds-loader":if(!customElements.get(r(e))){v()}break;case"ds-text":if(!customElements.get(r(e))){m()}break;case"ds-tooltip":if(!customElements.get(r(e))){x()}break}}))}T();const E=O;const H=T;export{E as DsTableGroup,H as defineCustomElement};
2
2
  //# sourceMappingURL=ds-table-group.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tableGroupCss","DEFAULT_ORDER_OPTIONS","label","direction","tableGroupSeq","TableGroup","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","options","grouping","ariaLabel","open","emptyMessage","clearLabel","shouldRender","closing","positionReady","pos","x","y","focusRingVisible","componentId","triggerId","popupId","triggerElement","pendingInitialFocusVisible","closeTimer","position","AnchoredPositionController","getAnchor","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","TOKEN_CSS_LENGTHS","alignOffsetPx","resolveChoicePopupAlignOffset","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","componentDidLoad","onOpenChange","disconnectedCallback","unobserve","disconnect","clearTimeout","isOpen","teardown","connect","observe","schedule","focusInitialDataPoint","cancel","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","handleKeyDown","event","key","preventDefault","tabLeavesPopup","moveFocusAfterTab","shiftKey","menuWidthLg","menuFallbackHeight","toggle","fromKeyboard","dsOpenChange","emit","restoreFocus","focusAnchor","matches","hidePopover","requestAnimationFrame","selected","CSS","escape","columnId","initial","focus","selectData","option","isInactive","value","dsGroupChange","initialOrder","orderOptions","orderBy","activeOrderOptions","configured","find","length","selectedOrderIndex","exact","findIndex","undefined","selectOrder","index","moveFocus","selector","currentIndex","oppositeSelector","includes","items","Array","from","querySelectorAll","filter","item","getAttribute","next","renderDataOption","h","ChoiceOptionRow","id","active","usesSubtext","Boolean","description","tabIndex","onHover","onSelect","onKeyDown","candidate","renderOrder","String","render","name","trim","popupStyle","left","top","transform","Math","round","zIndex","visibility","Host","hidden","ref","element","variant","size","icon","labelEmphasis","pressScale","hasMenu","collapseLabel","expanded","controls","onDsClick","detail","popover","class","style","role","ChoiceListSection","heading","className","map","type","onClick","dsClear","as","color","body"],"sources":["src/wc/components/TableGroup/TableGroup.css?tag=ds-table-group&encapsulation=scoped","src/wc/components/TableGroup/TableGroup.tsx"],"sourcesContent":["@import '../../utils/choice-list.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/table-caption-control.css';\n\n:host {\n display: inline-flex;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.table-group__body {\n display: grid;\n grid-template-columns: var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);\n min-height: calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));\n max-height: calc(100vh - var(--dimension-size-800) - var(--dimension-size-600));\n}\n\n.table-group__data-pane,\n.table-group__order-pane {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n}\n\n.table-group__data-pane {\n border-inline-end: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.table-group__list {\n flex: 1 1 auto;\n}\n\n.table-group__empty {\n flex: 1 1 auto;\n}\n\n.table-group__footer {\n flex: 0 0 auto;\n}\n\n.table-group__footer .ds-choice-footer__content {\n justify-content: flex-start;\n}\n\n.table-group__footer[aria-hidden='true']::before {\n visibility: hidden;\n}\n\n.table-group__footer[aria-hidden='true'] .ds-choice-footer__content {\n visibility: hidden;\n}\n\n@media (forced-colors: active) {\n .table-group__data-pane {\n border-inline-end-color: var(--ds-forced-color-content);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport { ChoiceListSection, ChoiceOptionRow } from '../../utils/choice-list-parts';\nimport type { TableGroupingState, TableSortDirection } from '../Table/table-types';\n\nexport interface TableGroupOrderOption {\n label: string;\n direction: TableSortDirection;\n /** Optional application-owned data point used to order the group sections. */\n orderBy?: string;\n}\n\nexport interface TableGroupOption {\n label: string;\n value: string;\n description?: string;\n isInactive?: boolean;\n /** Product-owned order choices for this grouping data point. */\n orderOptions?: TableGroupOrderOption[];\n}\n\nconst DEFAULT_ORDER_OPTIONS: TableGroupOrderOption[] = [\n { label: 'Ascending', direction: 'asc' },\n { label: 'Descending', direction: 'desc' },\n];\n\nlet tableGroupSeq = 0;\n\n@Component({\n tag: 'ds-table-group',\n styleUrl: 'TableGroup.css',\n scoped: true,\n})\nexport class TableGroup {\n @Element() private el!: HTMLElement;\n\n /** Product-owned data points that may group the table. */\n @Prop() options: TableGroupOption[] = [];\n /** Controlled grouping field and the order of its group sections. */\n @Prop() grouping: TableGroupingState | null = null;\n /** Accessible name for the trigger and non-modal dialog. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Controlled popup visibility. */\n @Prop({ mutable: true }) open = false;\n /** Empty message kept in the order pane until a grouping data point is selected. */\n @Prop() emptyMessage = 'Select a group to choose its order.';\n /** Clear action label. */\n @Prop() clearLabel = 'Clear';\n\n /** Requests replacement of the complete controlled grouping state. */\n @Event() dsGroupChange!: EventEmitter<TableGroupingState>;\n /** Requests removal of the controlled grouping state. */\n @Event() dsClear!: EventEmitter<void>;\n /** Reports controlled popup visibility changes. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n @State() private focusRingVisible = false;\n\n private readonly componentId = `ds-table-group-${++tableGroupSeq}`;\n private readonly triggerId = `${this.componentId}-trigger`;\n private readonly popupId = `${this.componentId}-popup`;\n private triggerElement: HTMLElement | null = null;\n private pendingInitialFocusVisible = false;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.table-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_CSS_LENGTHS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.table-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n\n componentDidLoad() {\n if (this.open) this.onOpenChange(true);\n }\n\n disconnectedCallback() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) clearTimeout(this.closeTimer);\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (isOpen) {\n this.teardown();\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.focusRingVisible = this.pendingInitialFocusVisible;\n this.interaction.connect();\n this.position.observe();\n this.position.schedule(() => this.focusInitialDataPoint());\n return;\n }\n if (!this.shouldRender) return;\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) this.finishClose();\n else this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (!this.shouldRender || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n return;\n }\n if (event.key !== 'Tab' || !this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.close(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthLg, TOKEN_DEFAULTS.menuWidthLg);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private teardown() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private toggle(fromKeyboard = false) {\n if (this.open) {\n this.close();\n return;\n }\n this.pendingInitialFocusVisible = fromKeyboard;\n this.open = true;\n this.dsOpenChange.emit(true);\n this.onOpenChange(true);\n }\n\n private close(restoreFocus = true) {\n if (restoreFocus) this.interaction.focusAnchor();\n this.open = false;\n this.dsOpenChange.emit(false);\n this.onOpenChange(false);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.table-group-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private focusInitialDataPoint() {\n requestAnimationFrame(() => {\n const selected = this.grouping\n ? this.el.querySelector<HTMLElement>(\n `[data-group-value=\"${CSS.escape(this.grouping.columnId)}\"] [role=\"option\"]`\n )\n : null;\n const initial =\n selected ??\n this.el.querySelector<HTMLElement>(\n '[data-group-value] [role=\"option\"]:not([aria-disabled=\"true\"])'\n );\n initial?.focus();\n this.pendingInitialFocusVisible = false;\n });\n }\n\n private selectData(option: TableGroupOption) {\n if (option.isInactive) return;\n if (this.grouping?.columnId === option.value) {\n this.dsGroupChange.emit({ ...this.grouping });\n return;\n }\n const initialOrder = option.orderOptions?.[0];\n this.dsGroupChange.emit({\n columnId: option.value,\n direction: initialOrder?.direction ?? 'asc',\n ...(initialOrder?.orderBy ? { orderBy: initialOrder.orderBy } : {}),\n });\n }\n\n private get activeOrderOptions(): TableGroupOrderOption[] {\n const configured = this.options.find(\n option => option.value === this.grouping?.columnId\n )?.orderOptions;\n return configured?.length ? configured : DEFAULT_ORDER_OPTIONS;\n }\n\n private get selectedOrderIndex(): number {\n if (!this.grouping) return -1;\n const exact = this.activeOrderOptions.findIndex(\n option =>\n option.direction === this.grouping?.direction && option.orderBy === this.grouping?.orderBy\n );\n if (exact >= 0) return exact;\n if (this.grouping.orderBy === undefined) {\n return this.activeOrderOptions.findIndex(\n option => option.direction === this.grouping?.direction\n );\n }\n return -1;\n }\n\n private selectOrder(option: TableGroupOrderOption, index: number) {\n if (!this.grouping || this.selectedOrderIndex === index) return;\n const grouping: TableGroupingState = {\n columnId: this.grouping.columnId,\n direction: option.direction,\n };\n if (option.orderBy) grouping.orderBy = option.orderBy;\n this.dsGroupChange.emit(grouping);\n }\n\n private moveFocus(\n event: KeyboardEvent,\n selector: string,\n currentIndex: number,\n oppositeSelector?: string\n ) {\n if (oppositeSelector && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n event.preventDefault();\n this.focusRingVisible = true;\n this.el.querySelector<HTMLElement>(oppositeSelector)?.focus();\n return;\n }\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) return;\n event.preventDefault();\n const items = Array.from(this.el.querySelectorAll<HTMLElement>(selector)).filter(\n item => item.getAttribute('aria-disabled') !== 'true'\n );\n if (!items.length) return;\n let next: number;\n if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = items.length - 1;\n else next = (currentIndex + (event.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length;\n this.focusRingVisible = true;\n items[next]?.focus();\n }\n\n private renderDataOption(option: TableGroupOption, index: number) {\n const selected = option.value === this.grouping?.columnId;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-data-${index}`}\n option={{ ...option }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={Boolean(option.description)}\n tabIndex={selected || (!this.grouping && index === 0) ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectData(option)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectData(option);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-value] [role=\"option\"]',\n this.options\n .filter(candidate => !candidate.isInactive)\n .findIndex(candidate => candidate.value === option.value),\n this.grouping\n ? `[data-group-order-index=\"${this.selectedOrderIndex}\"] [role=\"option\"]`\n : undefined\n );\n }}\n />\n );\n }\n\n private renderOrder(option: TableGroupOrderOption, index: number) {\n const selected = index === this.selectedOrderIndex;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-order-${index}`}\n option={{ label: option.label, value: String(index) }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={false}\n tabIndex={selected ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectOrder(option, index)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectOrder(option, index);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-order-index] [role=\"option\"]',\n index,\n `[data-group-value=\"${CSS.escape(this.grouping?.columnId ?? '')}\"] [role=\"option\"]`\n );\n }}\n />\n );\n }\n\n render() {\n const name = this.ariaLabel?.trim() || 'Group table';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: '9998',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host hidden={this.options.length === 0 ? true : undefined}>\n {this.options.length ? (\n <ds-button-unfilled\n ref={element => {\n this.triggerElement = (element as HTMLElement) ?? null;\n }}\n id={this.triggerId}\n variant=\"icon-label\"\n size=\"md\"\n icon=\"SectionList\"\n label=\"Group\"\n labelEmphasis={false}\n pressScale={false}\n aria-label={name}\n hasMenu={true}\n collapseLabel={true}\n expanded={this.open}\n controls={this.popupId}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.toggle(event.detail.detail === 0)}\n />\n ) : null}\n\n {this.shouldRender ? (\n <div\n id={this.popupId}\n popover=\"manual\"\n class={{\n 'table-group-popup': true,\n 'ds-choice-popup': true,\n 'ds-choice-popup--closing': this.closing,\n }}\n style={popupStyle}\n role=\"dialog\"\n aria-label={name}\n >\n <div class=\"table-group__body\">\n <div class=\"table-group__data-pane\">\n <ChoiceListSection\n heading=\"Data\"\n ariaLabel=\"Group data\"\n className=\"table-group__list\"\n >\n {this.options.map((option, index) => (\n <div data-group-value={option.value}>\n {this.renderDataOption(option, index)}\n </div>\n ))}\n </ChoiceListSection>\n <div\n class=\"table-group__footer ds-choice-footer\"\n aria-hidden={!this.grouping ? 'true' : undefined}\n >\n <div class=\"ds-choice-footer__content ds-control--md\">\n {this.grouping ? (\n <button\n class=\"ds-choice-footer__clear ds-text-action ds-focus-ring\"\n type=\"button\"\n onClick={() => this.dsClear.emit()}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {this.clearLabel}\n </ds-text>\n </button>\n ) : null}\n </div>\n </div>\n </div>\n\n <div class=\"table-group__order-pane\">\n {this.grouping ? (\n <ChoiceListSection\n heading=\"Order\"\n ariaLabel=\"Group order\"\n className=\"table-group__list\"\n >\n {this.activeOrderOptions.map((option, index) => (\n <div data-group-order-index={index}>{this.renderOrder(option, index)}</div>\n ))}\n </ChoiceListSection>\n ) : (\n <div class=\"table-group__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body={this.emptyMessage} />\n </div>\n )}\n </div>\n </div>\n </div>\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tableGroupCss","DEFAULT_ORDER_OPTIONS","label","direction","tableGroupSeq","TableGroup","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","options","grouping","ariaLabel","open","emptyMessage","clearLabel","shouldRender","closing","positionReady","pos","x","y","focusRingVisible","componentId","triggerId","popupId","triggerElement","pendingInitialFocusVisible","closeTimer","position","AnchoredPositionController","getAnchor","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","TOKEN_CSS_LENGTHS","alignOffsetPx","resolveChoicePopupAlignOffset","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","componentDidLoad","onOpenChange","disconnectedCallback","unobserve","disconnect","clearTimeout","isOpen","teardown","connect","observe","schedule","focusInitialDataPoint","cancel","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","handleKeyDown","event","key","preventDefault","tabLeavesPopup","moveFocusAfterTab","shiftKey","menuWidthLg","menuFallbackHeight","toggle","fromKeyboard","dsOpenChange","emit","restoreFocus","focusAnchor","matches","hidePopover","requestAnimationFrame","selected","CSS","escape","columnId","initial","focus","selectData","option","isInactive","value","dsGroupChange","initialOrder","orderOptions","orderBy","activeOrderOptions","configured","find","length","selectedOrderIndex","exact","findIndex","undefined","selectOrder","index","moveFocus","selector","currentIndex","oppositeSelector","includes","items","Array","from","querySelectorAll","filter","item","getAttribute","next","renderDataOption","h","ChoiceOptionRow","id","active","usesSubtext","Boolean","description","tabIndex","onHover","onSelect","onKeyDown","candidate","renderOrder","String","render","name","trim","popupStyle","left","top","transform","Math","round","zIndex","visibility","Host","hidden","ref","element","variant","size","icon","labelEmphasis","pressScale","hasMenu","collapseLabel","expanded","surfaceOpen","controls","onDsClick","detail","popover","class","style","role","ChoiceListSection","heading","className","map","type","onClick","dsClear","as","color","body"],"sources":["src/wc/components/TableGroup/TableGroup.css?tag=ds-table-group&encapsulation=scoped","src/wc/components/TableGroup/TableGroup.tsx"],"sourcesContent":["@import '../../utils/choice-list.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/table-caption-control.css';\n\n:host {\n display: inline-flex;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.table-group__body {\n display: grid;\n grid-template-columns: var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);\n min-height: calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));\n max-height: calc(100vh - var(--dimension-size-800) - var(--dimension-size-600));\n}\n\n.table-group__data-pane,\n.table-group__order-pane {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n}\n\n.table-group__data-pane {\n border-inline-end: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.table-group__list {\n flex: 1 1 auto;\n}\n\n.table-group__empty {\n flex: 1 1 auto;\n}\n\n.table-group__footer {\n flex: 0 0 auto;\n}\n\n.table-group__footer .ds-choice-footer__content {\n justify-content: flex-start;\n}\n\n.table-group__footer[aria-hidden='true']::before {\n visibility: hidden;\n}\n\n.table-group__footer[aria-hidden='true'] .ds-choice-footer__content {\n visibility: hidden;\n}\n\n@media (forced-colors: active) {\n .table-group__data-pane {\n border-inline-end-color: var(--ds-forced-color-content);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport { ChoiceListSection, ChoiceOptionRow } from '../../utils/choice-list-parts';\nimport type { TableGroupingState, TableSortDirection } from '../Table/table-types';\n\nexport interface TableGroupOrderOption {\n label: string;\n direction: TableSortDirection;\n /** Optional application-owned data point used to order the group sections. */\n orderBy?: string;\n}\n\nexport interface TableGroupOption {\n label: string;\n value: string;\n description?: string;\n isInactive?: boolean;\n /** Product-owned order choices for this grouping data point. */\n orderOptions?: TableGroupOrderOption[];\n}\n\nconst DEFAULT_ORDER_OPTIONS: TableGroupOrderOption[] = [\n { label: 'Ascending', direction: 'asc' },\n { label: 'Descending', direction: 'desc' },\n];\n\nlet tableGroupSeq = 0;\n\n@Component({\n tag: 'ds-table-group',\n styleUrl: 'TableGroup.css',\n scoped: true,\n})\nexport class TableGroup {\n @Element() private el!: HTMLElement;\n\n /** Product-owned data points that may group the table. */\n @Prop() options: TableGroupOption[] = [];\n /** Controlled grouping field and the order of its group sections. */\n @Prop() grouping: TableGroupingState | null = null;\n /** Accessible name for the trigger and non-modal dialog. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Controlled popup visibility. */\n @Prop({ mutable: true }) open = false;\n /** Empty message kept in the order pane until a grouping data point is selected. */\n @Prop() emptyMessage = 'Select a group to choose its order.';\n /** Clear action label. */\n @Prop() clearLabel = 'Clear';\n\n /** Requests replacement of the complete controlled grouping state. */\n @Event() dsGroupChange!: EventEmitter<TableGroupingState>;\n /** Requests removal of the controlled grouping state. */\n @Event() dsClear!: EventEmitter<void>;\n /** Reports controlled popup visibility changes. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n @State() private focusRingVisible = false;\n\n private readonly componentId = `ds-table-group-${++tableGroupSeq}`;\n private readonly triggerId = `${this.componentId}-trigger`;\n private readonly popupId = `${this.componentId}-popup`;\n private triggerElement: HTMLElement | null = null;\n private pendingInitialFocusVisible = false;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.table-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_CSS_LENGTHS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.table-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n\n componentDidLoad() {\n if (this.open) this.onOpenChange(true);\n }\n\n disconnectedCallback() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) clearTimeout(this.closeTimer);\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (isOpen) {\n this.teardown();\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.focusRingVisible = this.pendingInitialFocusVisible;\n this.interaction.connect();\n this.position.observe();\n this.position.schedule(() => this.focusInitialDataPoint());\n return;\n }\n if (!this.shouldRender) return;\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) this.finishClose();\n else this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (!this.shouldRender || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n return;\n }\n if (event.key !== 'Tab' || !this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.close(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthLg, TOKEN_DEFAULTS.menuWidthLg);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private teardown() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private toggle(fromKeyboard = false) {\n if (this.open) {\n this.close();\n return;\n }\n this.pendingInitialFocusVisible = fromKeyboard;\n this.open = true;\n this.dsOpenChange.emit(true);\n this.onOpenChange(true);\n }\n\n private close(restoreFocus = true) {\n if (restoreFocus) this.interaction.focusAnchor();\n this.open = false;\n this.dsOpenChange.emit(false);\n this.onOpenChange(false);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.table-group-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private focusInitialDataPoint() {\n requestAnimationFrame(() => {\n const selected = this.grouping\n ? this.el.querySelector<HTMLElement>(\n `[data-group-value=\"${CSS.escape(this.grouping.columnId)}\"] [role=\"option\"]`\n )\n : null;\n const initial =\n selected ??\n this.el.querySelector<HTMLElement>(\n '[data-group-value] [role=\"option\"]:not([aria-disabled=\"true\"])'\n );\n initial?.focus();\n this.pendingInitialFocusVisible = false;\n });\n }\n\n private selectData(option: TableGroupOption) {\n if (option.isInactive) return;\n if (this.grouping?.columnId === option.value) {\n this.dsGroupChange.emit({ ...this.grouping });\n return;\n }\n const initialOrder = option.orderOptions?.[0];\n this.dsGroupChange.emit({\n columnId: option.value,\n direction: initialOrder?.direction ?? 'asc',\n ...(initialOrder?.orderBy ? { orderBy: initialOrder.orderBy } : {}),\n });\n }\n\n private get activeOrderOptions(): TableGroupOrderOption[] {\n const configured = this.options.find(\n option => option.value === this.grouping?.columnId\n )?.orderOptions;\n return configured?.length ? configured : DEFAULT_ORDER_OPTIONS;\n }\n\n private get selectedOrderIndex(): number {\n if (!this.grouping) return -1;\n const exact = this.activeOrderOptions.findIndex(\n option =>\n option.direction === this.grouping?.direction && option.orderBy === this.grouping?.orderBy\n );\n if (exact >= 0) return exact;\n if (this.grouping.orderBy === undefined) {\n return this.activeOrderOptions.findIndex(\n option => option.direction === this.grouping?.direction\n );\n }\n return -1;\n }\n\n private selectOrder(option: TableGroupOrderOption, index: number) {\n if (!this.grouping || this.selectedOrderIndex === index) return;\n const grouping: TableGroupingState = {\n columnId: this.grouping.columnId,\n direction: option.direction,\n };\n if (option.orderBy) grouping.orderBy = option.orderBy;\n this.dsGroupChange.emit(grouping);\n }\n\n private moveFocus(\n event: KeyboardEvent,\n selector: string,\n currentIndex: number,\n oppositeSelector?: string\n ) {\n if (oppositeSelector && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n event.preventDefault();\n this.focusRingVisible = true;\n this.el.querySelector<HTMLElement>(oppositeSelector)?.focus();\n return;\n }\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) return;\n event.preventDefault();\n const items = Array.from(this.el.querySelectorAll<HTMLElement>(selector)).filter(\n item => item.getAttribute('aria-disabled') !== 'true'\n );\n if (!items.length) return;\n let next: number;\n if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = items.length - 1;\n else next = (currentIndex + (event.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length;\n this.focusRingVisible = true;\n items[next]?.focus();\n }\n\n private renderDataOption(option: TableGroupOption, index: number) {\n const selected = option.value === this.grouping?.columnId;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-data-${index}`}\n option={{ ...option }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={Boolean(option.description)}\n tabIndex={selected || (!this.grouping && index === 0) ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectData(option)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectData(option);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-value] [role=\"option\"]',\n this.options\n .filter(candidate => !candidate.isInactive)\n .findIndex(candidate => candidate.value === option.value),\n this.grouping\n ? `[data-group-order-index=\"${this.selectedOrderIndex}\"] [role=\"option\"]`\n : undefined\n );\n }}\n />\n );\n }\n\n private renderOrder(option: TableGroupOrderOption, index: number) {\n const selected = index === this.selectedOrderIndex;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-order-${index}`}\n option={{ label: option.label, value: String(index) }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={false}\n tabIndex={selected ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectOrder(option, index)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectOrder(option, index);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-order-index] [role=\"option\"]',\n index,\n `[data-group-value=\"${CSS.escape(this.grouping?.columnId ?? '')}\"] [role=\"option\"]`\n );\n }}\n />\n );\n }\n\n render() {\n const name = this.ariaLabel?.trim() || 'Group table';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: '9998',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host hidden={this.options.length === 0 ? true : undefined}>\n {this.options.length ? (\n <ds-button-unfilled\n ref={element => {\n this.triggerElement = (element as HTMLElement) ?? null;\n }}\n id={this.triggerId}\n variant=\"icon-label\"\n size=\"md\"\n icon=\"SectionList\"\n label=\"Group\"\n labelEmphasis={false}\n pressScale={false}\n aria-label={name}\n hasMenu={true}\n collapseLabel={true}\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.popupId}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.toggle(event.detail.detail === 0)}\n />\n ) : null}\n\n {this.shouldRender ? (\n <div\n id={this.popupId}\n popover=\"manual\"\n class={{\n 'table-group-popup': true,\n 'ds-choice-popup': true,\n 'ds-choice-popup--closing': this.closing,\n }}\n style={popupStyle}\n role=\"dialog\"\n aria-label={name}\n >\n <div class=\"table-group__body\">\n <div class=\"table-group__data-pane\">\n <ChoiceListSection\n heading=\"Data\"\n ariaLabel=\"Group data\"\n className=\"table-group__list\"\n >\n {this.options.map((option, index) => (\n <div data-group-value={option.value}>\n {this.renderDataOption(option, index)}\n </div>\n ))}\n </ChoiceListSection>\n <div\n class=\"table-group__footer ds-choice-footer\"\n aria-hidden={!this.grouping ? 'true' : undefined}\n >\n <div class=\"ds-choice-footer__content ds-control--md\">\n {this.grouping ? (\n <button\n class=\"ds-choice-footer__clear ds-text-action ds-focus-ring\"\n type=\"button\"\n onClick={() => this.dsClear.emit()}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {this.clearLabel}\n </ds-text>\n </button>\n ) : null}\n </div>\n </div>\n </div>\n\n <div class=\"table-group__order-pane\">\n {this.grouping ? (\n <ChoiceListSection\n heading=\"Order\"\n ariaLabel=\"Group order\"\n className=\"table-group__list\"\n >\n {this.activeOrderOptions.map((option, index) => (\n <div data-group-order-index={index}>{this.renderOrder(option, index)}</div>\n ))}\n </ChoiceListSection>\n ) : (\n <div class=\"table-group__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body={this.emptyMessage} />\n </div>\n )}\n </div>\n </div>\n </div>\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as s,c as t,h as i,a,t as n}from"./index.js";import{d}from"./p-rSC7ZUpy.js";import{d as l}from"./p-DB_tlJ2d.js";import{d as o}from"./p-oAbq-DLk.js";import{d as r}from"./p-BdU6FPu4.js";import{d as h}from"./p-BFHWoNH3.js";import{d as c}from"./p-BLTHIBsE.js";import{d as m}from"./p-Cea7rROU.js";import{d as f}from"./p-CsW_2w-s.js";import{d as u}from"./p-0XTyQNRG.js";import{d as b}from"./p-BWDbER5T.js";import{d as p}from"./p-8atLxerP.js";import{d as v}from"./p-P9My22Z1.js";import{d as w}from"./p-BCFpqnAg.js";import{d as g}from"./p-Bl5wd3v3.js";import{d as k}from"./p-C1BJgnHY.js";import{d as y}from"./p-aMyflqva.js";import{d as E}from"./p-CN8PQLZu.js";const D=()=>`.sc-ds-table-saved-views-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs);display:inline-block;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}ds-select.sc-ds-table-saved-views{display:block;min-inline-size:0;max-inline-size:100%}.table-saved-views__dialog-actions.sc-ds-table-saved-views{display:flex;align-items:center;justify-content:flex-start;gap:var(--dimension-space-100)}`;let C=0;const x=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsViewChange=t(this,"dsViewChange",7);this.dsViewCreate=t(this,"dsViewCreate",7);this.dsViewRename=t(this,"dsViewRename",7);this.dsViewRemove=t(this,"dsViewRemove",7);this.dsViewSave=t(this,"dsViewSave",7);this.dsViewDiscard=t(this,"dsViewDiscard",7);this.views=[];this.value="__default__";this.dirty=false;this.defaultViewId="__default__";this.defaultViewLabel="Default";this.label="Saved views";this.triggerLabel="Views";this.createLabel="New view";this.actionViewId=null;this.actionMenuOpen=false;this.actionMenuInitialFocusVisible=false;this.dialogOpen=false;this.dialogMode="create";this.dialogViewId=null;this.nameDraft="";this.nameError="";this.componentId=`ds-table-saved-views-${++C}`;this.selectId=`${this.componentId}-select`;this.actionMenuId=`${this.componentId}-actions`;this.fieldId=`${this.componentId}-name-field`;this.inputId=`${this.componentId}-name-input`;this.actionItems=[{label:"Rename",value:"rename"},{label:"Remove",value:"remove",isDestructive:true}]}get selectedCustomView(){return this.views.find((e=>e.id===this.value))}get dialogView(){return this.views.find((e=>e.id===this.dialogViewId))}get sections(){const e=this.views.map((e=>({label:e.label,value:e.id,subtextActions:this.dirty&&e.id===this.selectedCustomView?.id?[{label:"Save",value:"save"},{label:"Discard",value:"discard",tone:"negative"}]:undefined,action:{label:`Options for ${e.label}`,controls:this.actionMenuId,expanded:this.actionViewId===e.id&&this.actionMenuOpen}})));const s={header:"Templates",options:[{label:this.defaultViewLabel,value:this.defaultViewId}],divider:e.length>0};return e.length>0?[s,{header:"Custom",options:e}]:[s]}handleViewChange(e){if(typeof e==="string")this.dsViewChange.emit({viewId:e})}handleSubtextAction(e){const s=this.selectedCustomView;if(!s||!this.dirty||e.value!==s.id)return;if(e.actionValue==="save")this.dsViewSave.emit({viewId:s.id});if(e.actionValue==="discard")this.dsViewDiscard.emit({viewId:s.id})}handleOptionAction(e){if(!this.views.some((s=>s.id===e.value)))return;this.actionMenuInitialFocusVisible=e.originalEvent.detail===0;if(this.actionViewId===e.value&&this.actionMenuOpen){this.actionMenuOpen=false;return}this.actionViewId=e.value;this.actionAnchorId=e.anchorId;this.actionMenuOpen=true}handleActionSelect(e){const s=this.actionViewId;this.actionMenuOpen=false;if(!s)return;if(e.detail.value==="rename")this.openDialog("rename",s);if(e.detail.value==="remove")this.dsViewRemove.emit({viewId:s})}openDialog(e,s=null){const t=e==="rename"?this.views.find((e=>e.id===s)):undefined;if(e==="rename"&&!t)return;this.dialogMode=e;this.dialogViewId=t?.id??null;this.nameDraft=t?.label??"";this.nameError="";this.dialogOpen=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{const e=this.el.querySelector(`#${this.inputId}`);void e?.setFocus?.()}))}))}validateName(){const e=this.nameDraft.trim();if(!e)return"View name is required.";const s=this.views.some((s=>s.id!==this.dialogViewId&&s.label.trim().toLocaleLowerCase()===e.toLocaleLowerCase()));if(s||this.defaultViewLabel.trim().toLocaleLowerCase()===e.toLocaleLowerCase()){return"A view with this name already exists."}return""}submitDialog(){const e=this.validateName();if(e){this.nameError=e;return}const s=this.nameDraft.trim();if(this.dialogMode==="rename"&&this.dialogView){this.dsViewRename.emit({viewId:this.dialogView.id,name:s})}else{this.dsViewCreate.emit({name:s})}this.dialogOpen=false}finishDialogClose(){if(this.dialogOpen)return;this.dialogViewId=null;this.nameDraft="";this.nameError="";const e=this.el.querySelector(`#${this.selectId}`);void e?.setFocus?.()}render(){return i(a,{key:"b24017eeb75aa9d5a19f437e27c6ff7051cb981e"},i("ds-select",{key:"425de2b2816998432433d3fad8587cc502d29827",id:this.selectId,size:"md",width:"fill",placeholder:this.label,"aria-label":this.label,sections:this.sections,value:this.value,triggerLabel:this.selectedCustomView?undefined:this.triggerLabel,triggerLabelPlaceholder:!this.selectedCustomView,dot:this.dirty&&Boolean(this.selectedCustomView),footerActionLabel:this.createLabel,activeFill:false,allowClear:false,onDsChange:e=>this.handleViewChange(e.detail),onDsFooterAction:()=>this.openDialog("create"),onDsOptionSubtextAction:e=>this.handleSubtextAction(e.detail),onDsOptionAction:e=>this.handleOptionAction(e.detail)}),i("ds-menu",{key:"f0e131b4735c69d06c944f6779b8cae3cdf0d2ba",id:this.actionMenuId,anchorId:this.actionAnchorId,menuLabel:"Saved view options",side:"bottom",align:"end",menuWidth:"max-content",minWidth:"0",items:this.actionItems,open:this.actionMenuOpen,initialFocusVisible:this.actionMenuInitialFocusVisible,onDsClose:()=>this.actionMenuOpen=false,onDsAfterClose:()=>{if(this.actionMenuOpen)return;this.actionViewId=null;this.actionAnchorId=undefined},onDsSelect:e=>this.handleActionSelect(e)}),i("ds-modal",{key:"261c95b39f33e6df2a46a2723f9a6826e2244b77",open:this.dialogOpen,heading:this.dialogMode==="rename"?"Rename view":"Save as new view",modalWidth:"sm",onDsClose:()=>this.dialogOpen=false,onDsAfterClose:()=>this.finishDialogClose()},i("ds-field",{key:"da945e13c8c2dafa024ad23a49d4b57df2bf0a5a",label:"Name",fieldId:this.fieldId,error:this.nameError.length>0,errorMessage:this.nameError},i("ds-input",{key:"03a134427c36ea65d4639414b0ce69b4fcf7ed5f",id:this.inputId,size:"md",placeholder:"Enter a unique name",value:this.nameDraft,autoFocus:true,onDsChange:e=>{this.nameDraft=e.detail;if(this.nameError)this.nameError=""},onKeyDown:e=>{if(e.key==="Enter")this.submitDialog()}})),i("div",{key:"fd098fef628cae68674e65884b541d3ee6358737",slot:"footer",class:"table-saved-views__dialog-actions"},i("ds-button-filled",{key:"12bae65c31da6ea6b77ee2e6282f9b6f94495942",label:this.dialogMode==="rename"?"Rename":"Save",size:"md",onDsClick:()=>this.submitDialog()}),i("ds-button-unfilled",{key:"9b5db430fe592b363ddf787ce0892227f1b9f9d8",label:"Cancel",size:"md",onDsClick:()=>this.dialogOpen=false}))))}get el(){return this}static get style(){return D()}},[2,"ds-table-saved-views",{views:[16],value:[1],dirty:[4],defaultViewId:[1,"default-view-id"],defaultViewLabel:[1,"default-view-label"],label:[1],triggerLabel:[1,"trigger-label"],createLabel:[1,"create-label"],actionViewId:[32],actionAnchorId:[32],actionMenuOpen:[32],actionMenuInitialFocusVisible:[32],dialogOpen:[32],dialogMode:[32],dialogViewId:[32],nameDraft:[32],nameError:[32]}]);function j(){if(typeof customElements==="undefined"){return}const e=["ds-table-saved-views","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-empty-state","ds-field","ds-icon","ds-input","ds-loader","ds-menu","ds-modal","ds-select","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-saved-views":if(!customElements.get(n(e))){customElements.define(n(e),x)}break;case"ds-badge":if(!customElements.get(n(e))){d()}break;case"ds-button-filled":if(!customElements.get(n(e))){l()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){o()}break;case"ds-checkbox":if(!customElements.get(n(e))){r()}break;case"ds-empty-state":if(!customElements.get(n(e))){h()}break;case"ds-field":if(!customElements.get(n(e))){c()}break;case"ds-icon":if(!customElements.get(n(e))){m()}break;case"ds-input":if(!customElements.get(n(e))){f()}break;case"ds-loader":if(!customElements.get(n(e))){u()}break;case"ds-menu":if(!customElements.get(n(e))){b()}break;case"ds-modal":if(!customElements.get(n(e))){p()}break;case"ds-select":if(!customElements.get(n(e))){v()}break;case"ds-swatch-picker":if(!customElements.get(n(e))){w()}break;case"ds-switch":if(!customElements.get(n(e))){g()}break;case"ds-tag":if(!customElements.get(n(e))){k()}break;case"ds-text":if(!customElements.get(n(e))){y()}break;case"ds-tooltip":if(!customElements.get(n(e))){E()}break}}))}j();const V=x;const A=j;export{V as DsTableSavedViews,A as defineCustomElement};
1
+ import{p as e,H as s,c as t,h as i,a,t as n}from"./index.js";import{d as o}from"./p-rSC7ZUpy.js";import{d as l}from"./p-GbtafFds.js";import{d}from"./p--yvQzZoO.js";import{d as r}from"./p-CysCSinT.js";import{d as h}from"./p-BFHWoNH3.js";import{d as c}from"./p-BLTHIBsE.js";import{d as m}from"./p-Cea7rROU.js";import{d as f}from"./p-Cr5vn5JO.js";import{d as u}from"./p-0XTyQNRG.js";import{d as b}from"./p-D1pPq-y0.js";import{d as p}from"./p-By5TDnbF.js";import{d as v}from"./p-BIDGQ4tc.js";import{d as w}from"./p-BCFpqnAg.js";import{d as g}from"./p-Bl5wd3v3.js";import{d as k}from"./p-BGnRFtBa.js";import{d as y}from"./p-aMyflqva.js";import{d as D}from"./p-CN8PQLZu.js";const E=()=>`.sc-ds-table-saved-views-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs);display:inline-block;min-inline-size:0;max-inline-size:var(--dimension-menu-width-xs)}ds-select.sc-ds-table-saved-views{display:block;min-inline-size:0;max-inline-size:100%}.table-saved-views__dialog-actions.sc-ds-table-saved-views{display:flex;align-items:center;justify-content:flex-start;gap:var(--dimension-space-100)}`;let C=0;const j=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsViewChange=t(this,"dsViewChange",7);this.dsViewCreate=t(this,"dsViewCreate",7);this.dsViewRename=t(this,"dsViewRename",7);this.dsViewRemove=t(this,"dsViewRemove",7);this.dsViewSave=t(this,"dsViewSave",7);this.dsViewDiscard=t(this,"dsViewDiscard",7);this.views=[];this.value="__default__";this.dirty=false;this.defaultViewId="__default__";this.defaultViewLabel="Default";this.label="Saved views";this.triggerLabel="Views";this.createLabel="New view";this.actionViewId=null;this.actionMenuOpen=false;this.actionMenuInitialFocusVisible=false;this.dialogOpen=false;this.dialogMode="create";this.dialogViewId=null;this.nameDraft="";this.nameError="";this.componentId=`ds-table-saved-views-${++C}`;this.selectId=`${this.componentId}-select`;this.actionMenuId=`${this.componentId}-actions`;this.fieldId=`${this.componentId}-name-field`;this.inputId=`${this.componentId}-name-input`;this.actionItems=[{label:"Rename",value:"rename"},{label:"Remove",value:"remove",isDestructive:true}]}get selectedCustomView(){return this.views.find((e=>e.id===this.value))}get dialogView(){return this.views.find((e=>e.id===this.dialogViewId))}get sections(){const e=this.views.map((e=>({label:e.label,value:e.id,subtextActions:this.dirty&&e.id===this.selectedCustomView?.id?[{label:"Save",value:"save"},{label:"Discard",value:"discard",tone:"negative"}]:undefined,action:{label:`Options for ${e.label}`,controls:this.actionMenuId,expanded:this.actionViewId===e.id&&this.actionMenuOpen,surfaceOpen:this.actionViewId===e.id}})));const s={header:"Templates",options:[{label:this.defaultViewLabel,value:this.defaultViewId}],divider:e.length>0};return e.length>0?[s,{header:"Custom",options:e}]:[s]}handleViewChange(e){if(typeof e==="string")this.dsViewChange.emit({viewId:e})}handleSubtextAction(e){const s=this.selectedCustomView;if(!s||!this.dirty||e.value!==s.id)return;if(e.actionValue==="save")this.dsViewSave.emit({viewId:s.id});if(e.actionValue==="discard")this.dsViewDiscard.emit({viewId:s.id})}handleOptionAction(e){if(!this.views.some((s=>s.id===e.value)))return;this.actionMenuInitialFocusVisible=e.originalEvent.detail===0;if(this.actionViewId===e.value&&this.actionMenuOpen){this.actionMenuOpen=false;return}this.actionViewId=e.value;this.actionAnchorId=e.anchorId;this.actionMenuOpen=true}handleActionSelect(e){const s=this.actionViewId;this.actionMenuOpen=false;if(!s)return;if(e.detail.value==="rename")this.openDialog("rename",s);if(e.detail.value==="remove")this.dsViewRemove.emit({viewId:s})}openDialog(e,s=null){const t=e==="rename"?this.views.find((e=>e.id===s)):undefined;if(e==="rename"&&!t)return;this.dialogMode=e;this.dialogViewId=t?.id??null;this.nameDraft=t?.label??"";this.nameError="";this.dialogOpen=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{const e=this.el.querySelector(`#${this.inputId}`);void e?.setFocus?.()}))}))}validateName(){const e=this.nameDraft.trim();if(!e)return"View name is required.";const s=this.views.some((s=>s.id!==this.dialogViewId&&s.label.trim().toLocaleLowerCase()===e.toLocaleLowerCase()));if(s||this.defaultViewLabel.trim().toLocaleLowerCase()===e.toLocaleLowerCase()){return"A view with this name already exists."}return""}submitDialog(){const e=this.validateName();if(e){this.nameError=e;return}const s=this.nameDraft.trim();if(this.dialogMode==="rename"&&this.dialogView){this.dsViewRename.emit({viewId:this.dialogView.id,name:s})}else{this.dsViewCreate.emit({name:s})}this.dialogOpen=false}finishDialogClose(){if(this.dialogOpen)return;this.dialogViewId=null;this.nameDraft="";this.nameError="";const e=this.el.querySelector(`#${this.selectId}`);void e?.setFocus?.()}render(){return i(a,{key:"32fbe9f7c79e222a56847646ebe8c65016734223"},i("ds-select",{key:"ccd5b159f79b0754c0291c5e125cc84d0e120a1c",id:this.selectId,size:"md",width:"fill",placeholder:this.label,"aria-label":this.label,sections:this.sections,value:this.value,triggerLabel:this.selectedCustomView?undefined:this.triggerLabel,triggerLabelPlaceholder:!this.selectedCustomView,dot:this.dirty&&Boolean(this.selectedCustomView),footerActionLabel:this.createLabel,activeFill:false,allowClear:false,onDsChange:e=>this.handleViewChange(e.detail),onDsFooterAction:()=>this.openDialog("create"),onDsOptionSubtextAction:e=>this.handleSubtextAction(e.detail),onDsOptionAction:e=>this.handleOptionAction(e.detail)}),i("ds-menu",{key:"6788a66032daa09313e2b830863614deb3fba29a",id:this.actionMenuId,anchorId:this.actionAnchorId,menuLabel:"Saved view options",side:"bottom",align:"end",menuWidth:"max-content",minWidth:"0",items:this.actionItems,open:this.actionMenuOpen,initialFocusVisible:this.actionMenuInitialFocusVisible,onDsClose:()=>this.actionMenuOpen=false,onDsAfterClose:()=>{if(this.actionMenuOpen)return;this.actionViewId=null;this.actionAnchorId=undefined},onDsSelect:e=>this.handleActionSelect(e)}),i("ds-modal",{key:"ac6f6faa96faf2b9085d35642e026f0e27fbb338",open:this.dialogOpen,heading:this.dialogMode==="rename"?"Rename view":"Save as new view",modalWidth:"sm",onDsClose:()=>this.dialogOpen=false,onDsAfterClose:()=>this.finishDialogClose()},i("ds-field",{key:"c08447ba1484e540c513c145ed87199bb7696943",label:"Name",fieldId:this.fieldId,error:this.nameError.length>0,errorMessage:this.nameError},i("ds-input",{key:"3b9e93890f7763f333ba079095b6af4374219219",id:this.inputId,size:"md",placeholder:"Enter a unique name",value:this.nameDraft,autoFocus:true,onDsChange:e=>{this.nameDraft=e.detail;if(this.nameError)this.nameError=""},onKeyDown:e=>{if(e.key==="Enter")this.submitDialog()}})),i("div",{key:"57de10dd8973afcdb9503be59b867b401e31e08e",slot:"footer",class:"table-saved-views__dialog-actions"},i("ds-button-filled",{key:"791b30b527b2f249e3f07976f3c37e5ce736cb69",label:this.dialogMode==="rename"?"Rename":"Save",size:"md",onDsClick:()=>this.submitDialog()}),i("ds-button-unfilled",{key:"6fd80c7db50c2ea8579afee74804ce99e5892a5b",label:"Cancel",size:"md",onDsClick:()=>this.dialogOpen=false}))))}get el(){return this}static get style(){return E()}},[2,"ds-table-saved-views",{views:[16],value:[1],dirty:[4],defaultViewId:[1,"default-view-id"],defaultViewLabel:[1,"default-view-label"],label:[1],triggerLabel:[1,"trigger-label"],createLabel:[1,"create-label"],actionViewId:[32],actionAnchorId:[32],actionMenuOpen:[32],actionMenuInitialFocusVisible:[32],dialogOpen:[32],dialogMode:[32],dialogViewId:[32],nameDraft:[32],nameError:[32]}]);function x(){if(typeof customElements==="undefined"){return}const e=["ds-table-saved-views","ds-badge","ds-button-filled","ds-button-unfilled","ds-checkbox","ds-empty-state","ds-field","ds-icon","ds-input","ds-loader","ds-menu","ds-modal","ds-select","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-table-saved-views":if(!customElements.get(n(e))){customElements.define(n(e),j)}break;case"ds-badge":if(!customElements.get(n(e))){o()}break;case"ds-button-filled":if(!customElements.get(n(e))){l()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){d()}break;case"ds-checkbox":if(!customElements.get(n(e))){r()}break;case"ds-empty-state":if(!customElements.get(n(e))){h()}break;case"ds-field":if(!customElements.get(n(e))){c()}break;case"ds-icon":if(!customElements.get(n(e))){m()}break;case"ds-input":if(!customElements.get(n(e))){f()}break;case"ds-loader":if(!customElements.get(n(e))){u()}break;case"ds-menu":if(!customElements.get(n(e))){b()}break;case"ds-modal":if(!customElements.get(n(e))){p()}break;case"ds-select":if(!customElements.get(n(e))){v()}break;case"ds-swatch-picker":if(!customElements.get(n(e))){w()}break;case"ds-switch":if(!customElements.get(n(e))){g()}break;case"ds-tag":if(!customElements.get(n(e))){k()}break;case"ds-text":if(!customElements.get(n(e))){y()}break;case"ds-tooltip":if(!customElements.get(n(e))){D()}break}}))}x();const V=j;const A=x;export{V as DsTableSavedViews,A as defineCustomElement};
2
2
  //# sourceMappingURL=ds-table-saved-views.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tableSavedViewsCss","tableSavedViewsId","TableSavedViews","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","views","value","dirty","defaultViewId","defaultViewLabel","label","triggerLabel","createLabel","actionViewId","actionMenuOpen","actionMenuInitialFocusVisible","dialogOpen","dialogMode","dialogViewId","nameDraft","nameError","componentId","selectId","actionMenuId","fieldId","inputId","actionItems","isDestructive","selectedCustomView","find","view","id","dialogView","sections","custom","map","subtextActions","tone","undefined","action","controls","expanded","templates","header","options","divider","length","handleViewChange","dsViewChange","emit","viewId","handleSubtextAction","detail","actionValue","dsViewSave","dsViewDiscard","handleOptionAction","some","originalEvent","actionAnchorId","anchorId","handleActionSelect","event","openDialog","dsViewRemove","mode","item","requestAnimationFrame","input","el","querySelector","setFocus","validateName","name","trim","duplicate","toLocaleLowerCase","submitDialog","error","dsViewRename","dsViewCreate","finishDialogClose","select","render","h","Host","key","size","width","placeholder","triggerLabelPlaceholder","dot","Boolean","footerActionLabel","activeFill","allowClear","onDsChange","onDsFooterAction","onDsOptionSubtextAction","onDsOptionAction","menuLabel","side","align","menuWidth","minWidth","items","open","initialFocusVisible","onDsClose","onDsAfterClose","onDsSelect","heading","modalWidth","errorMessage","autoFocus","onKeyDown","slot","class","onDsClick"],"sources":["src/wc/components/TableSavedViews/TableSavedViews.css?tag=ds-table-saved-views&encapsulation=scoped","src/wc/components/TableSavedViews/TableSavedViews.tsx"],"sourcesContent":[":host {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n\n display: inline-block;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\nds-select {\n display: block;\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.table-saved-views__dialog-actions {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--dimension-space-100);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { MenuItemData } from '../Menu/menu-types';\nimport type {\n SelectOptionActionDetail,\n SelectOptionSubtextActionDetail,\n SelectValue,\n} from '../Select/Select';\nimport type {\n TableSavedView,\n TableSavedViewChangeDetail,\n TableSavedViewCreateDetail,\n TableSavedViewDiscardDetail,\n TableSavedViewRemoveDetail,\n TableSavedViewRenameDetail,\n TableSavedViewSaveDetail,\n} from './table-saved-views-types';\n\ntype SavedViewDialogMode = 'create' | 'rename';\n\nlet tableSavedViewsId = 0;\n\n@Component({\n tag: 'ds-table-saved-views',\n styleUrl: 'TableSavedViews.css',\n scoped: true,\n})\nexport class TableSavedViews {\n @Element() el!: HTMLElement;\n\n /** Application-owned custom saved views. Assign arrays through the JavaScript property. */\n @Prop() views: TableSavedView[] = [];\n /** ID of the controlled active view, including the default view ID. */\n @Prop() value: string = '__default__';\n /** Whether the current table state differs from the selected custom view. Ignored for the default view. */\n @Prop() dirty: boolean = false;\n /** ID used for the built-in default view. */\n @Prop() defaultViewId: string = '__default__';\n /** Label used for the built-in default view. */\n @Prop() defaultViewLabel: string = 'Default';\n /** Accessible name for the saved-views select. */\n @Prop() label: string = 'Saved views';\n /** Trigger label shown while the default view is selected. */\n @Prop() triggerLabel: string = 'Views';\n /** Footer action label that opens the create-view dialog. */\n @Prop() createLabel: string = 'New view';\n\n /** Emitted when a view selection is requested. */\n @Event() dsViewChange!: EventEmitter<TableSavedViewChangeDetail>;\n /** Emitted after a valid create-view name is submitted. */\n @Event() dsViewCreate!: EventEmitter<TableSavedViewCreateDetail>;\n /** Emitted after a valid renamed view name is submitted. */\n @Event() dsViewRename!: EventEmitter<TableSavedViewRenameDetail>;\n /** Emitted when a custom view removal is requested. */\n @Event() dsViewRemove!: EventEmitter<TableSavedViewRemoveDetail>;\n /** Emitted when changes to the active custom view should replace its stored payload. */\n @Event() dsViewSave!: EventEmitter<TableSavedViewSaveDetail>;\n /** Emitted when the active custom view's stored payload should be restored. */\n @Event() dsViewDiscard!: EventEmitter<TableSavedViewDiscardDetail>;\n\n @State() private actionViewId: string | null = null;\n @State() private actionAnchorId: string | undefined;\n @State() private actionMenuOpen = false;\n @State() private actionMenuInitialFocusVisible = false;\n @State() private dialogOpen = false;\n @State() private dialogMode: SavedViewDialogMode = 'create';\n @State() private dialogViewId: string | null = null;\n @State() private nameDraft = '';\n @State() private nameError = '';\n\n private readonly componentId = `ds-table-saved-views-${++tableSavedViewsId}`;\n private readonly selectId = `${this.componentId}-select`;\n private readonly actionMenuId = `${this.componentId}-actions`;\n private readonly fieldId = `${this.componentId}-name-field`;\n private readonly inputId = `${this.componentId}-name-input`;\n private readonly actionItems: MenuItemData[] = [\n { label: 'Rename', value: 'rename' },\n { label: 'Remove', value: 'remove', isDestructive: true },\n ];\n\n private get selectedCustomView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.value);\n }\n\n private get dialogView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.dialogViewId);\n }\n\n private get sections() {\n const custom = this.views.map(view => ({\n label: view.label,\n value: view.id,\n subtextActions:\n this.dirty && view.id === this.selectedCustomView?.id\n ? [\n { label: 'Save', value: 'save' },\n { label: 'Discard', value: 'discard', tone: 'negative' as const },\n ]\n : undefined,\n action: {\n label: `Options for ${view.label}`,\n controls: this.actionMenuId,\n expanded: this.actionViewId === view.id && this.actionMenuOpen,\n },\n }));\n const templates = {\n header: 'Templates',\n options: [{ label: this.defaultViewLabel, value: this.defaultViewId }],\n divider: custom.length > 0,\n };\n return custom.length > 0 ? [templates, { header: 'Custom', options: custom }] : [templates];\n }\n\n private handleViewChange(value: SelectValue) {\n if (typeof value === 'string') this.dsViewChange.emit({ viewId: value });\n }\n\n private handleSubtextAction(detail: SelectOptionSubtextActionDetail) {\n const view = this.selectedCustomView;\n if (!view || !this.dirty || detail.value !== view.id) return;\n if (detail.actionValue === 'save') this.dsViewSave.emit({ viewId: view.id });\n if (detail.actionValue === 'discard') this.dsViewDiscard.emit({ viewId: view.id });\n }\n\n private handleOptionAction(detail: SelectOptionActionDetail) {\n if (!this.views.some(view => view.id === detail.value)) return;\n this.actionMenuInitialFocusVisible = detail.originalEvent.detail === 0;\n if (this.actionViewId === detail.value && this.actionMenuOpen) {\n this.actionMenuOpen = false;\n return;\n }\n this.actionViewId = detail.value;\n this.actionAnchorId = detail.anchorId;\n this.actionMenuOpen = true;\n }\n\n private handleActionSelect(event: CustomEvent<MenuItemData>) {\n const viewId = this.actionViewId;\n this.actionMenuOpen = false;\n if (!viewId) return;\n if (event.detail.value === 'rename') this.openDialog('rename', viewId);\n if (event.detail.value === 'remove') this.dsViewRemove.emit({ viewId });\n }\n\n private openDialog(mode: SavedViewDialogMode, viewId: string | null = null) {\n const view = mode === 'rename' ? this.views.find(item => item.id === viewId) : undefined;\n if (mode === 'rename' && !view) return;\n this.dialogMode = mode;\n this.dialogViewId = view?.id ?? null;\n this.nameDraft = view?.label ?? '';\n this.nameError = '';\n this.dialogOpen = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const input = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.inputId}`\n );\n void input?.setFocus?.();\n });\n });\n }\n\n private validateName(): string {\n const name = this.nameDraft.trim();\n if (!name) return 'View name is required.';\n const duplicate = this.views.some(\n view =>\n view.id !== this.dialogViewId &&\n view.label.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n );\n if (\n duplicate ||\n this.defaultViewLabel.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n ) {\n return 'A view with this name already exists.';\n }\n return '';\n }\n\n private submitDialog() {\n const error = this.validateName();\n if (error) {\n this.nameError = error;\n return;\n }\n const name = this.nameDraft.trim();\n if (this.dialogMode === 'rename' && this.dialogView) {\n this.dsViewRename.emit({ viewId: this.dialogView.id, name });\n } else {\n this.dsViewCreate.emit({ name });\n }\n this.dialogOpen = false;\n }\n\n private finishDialogClose() {\n if (this.dialogOpen) return;\n this.dialogViewId = null;\n this.nameDraft = '';\n this.nameError = '';\n const select = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.selectId}`\n );\n void select?.setFocus?.();\n }\n\n render() {\n return (\n <Host>\n <ds-select\n id={this.selectId}\n size=\"md\"\n width=\"fill\"\n placeholder={this.label}\n aria-label={this.label}\n sections={this.sections}\n value={this.value}\n triggerLabel={this.selectedCustomView ? undefined : this.triggerLabel}\n triggerLabelPlaceholder={!this.selectedCustomView}\n dot={this.dirty && Boolean(this.selectedCustomView)}\n footerActionLabel={this.createLabel}\n activeFill={false}\n allowClear={false}\n onDsChange={(event: CustomEvent<SelectValue>) => this.handleViewChange(event.detail)}\n onDsFooterAction={() => this.openDialog('create')}\n onDsOptionSubtextAction={(event: CustomEvent<SelectOptionSubtextActionDetail>) =>\n this.handleSubtextAction(event.detail)\n }\n onDsOptionAction={(event: CustomEvent<SelectOptionActionDetail>) =>\n this.handleOptionAction(event.detail)\n }\n />\n\n <ds-menu\n id={this.actionMenuId}\n anchorId={this.actionAnchorId}\n menuLabel=\"Saved view options\"\n side=\"bottom\"\n align=\"end\"\n menuWidth=\"max-content\"\n minWidth=\"0\"\n items={this.actionItems}\n open={this.actionMenuOpen}\n initialFocusVisible={this.actionMenuInitialFocusVisible}\n onDsClose={() => (this.actionMenuOpen = false)}\n onDsAfterClose={() => {\n if (this.actionMenuOpen) return;\n this.actionViewId = null;\n this.actionAnchorId = undefined;\n }}\n onDsSelect={(event: CustomEvent<MenuItemData>) => this.handleActionSelect(event)}\n />\n\n <ds-modal\n open={this.dialogOpen}\n heading={this.dialogMode === 'rename' ? 'Rename view' : 'Save as new view'}\n modalWidth=\"sm\"\n onDsClose={() => (this.dialogOpen = false)}\n onDsAfterClose={() => this.finishDialogClose()}\n >\n <ds-field\n label=\"Name\"\n fieldId={this.fieldId}\n error={this.nameError.length > 0}\n errorMessage={this.nameError}\n >\n <ds-input\n id={this.inputId}\n size=\"md\"\n placeholder=\"Enter a unique name\"\n value={this.nameDraft}\n autoFocus={true}\n onDsChange={(event: CustomEvent<string>) => {\n this.nameDraft = event.detail;\n if (this.nameError) this.nameError = '';\n }}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter') this.submitDialog();\n }}\n />\n </ds-field>\n\n <div slot=\"footer\" class=\"table-saved-views__dialog-actions\">\n <ds-button-filled\n label={this.dialogMode === 'rename' ? 'Rename' : 'Save'}\n size=\"md\"\n onDsClick={() => this.submitDialog()}\n />\n <ds-button-unfilled\n label=\"Cancel\"\n size=\"md\"\n onDsClick={() => (this.dialogOpen = false)}\n />\n </div>\n </ds-modal>\n </Host>\n );\n }\n}\n"],"mappings":"4pBAAA,MAAMA,EAAqB,IAAM,iaCmBjC,IAAIC,EAAoB,E,MAOXC,EAAeC,EAAA,MAAAD,UAAAE,EAL5B,WAAAC,CAAAC,G,4SASUC,KAAAC,MAA0B,GAE1BD,KAAAE,MAAgB,cAEhBF,KAAAG,MAAiB,MAEjBH,KAAAI,cAAwB,cAExBJ,KAAAK,iBAA2B,UAE3BL,KAAAM,MAAgB,cAEhBN,KAAAO,aAAuB,QAEvBP,KAAAQ,YAAsB,WAebR,KAAAS,aAA8B,KAE9BT,KAAAU,eAAiB,MACjBV,KAAAW,8BAAgC,MAChCX,KAAAY,WAAa,MACbZ,KAAAa,WAAkC,SAClCb,KAAAc,aAA8B,KAC9Bd,KAAAe,UAAY,GACZf,KAAAgB,UAAY,GAEZhB,KAAAiB,YAAc,0BAA0BvB,IACxCM,KAAAkB,SAAW,GAAGlB,KAAKiB,qBACnBjB,KAAAmB,aAAe,GAAGnB,KAAKiB,sBACvBjB,KAAAoB,QAAU,GAAGpB,KAAKiB,yBAClBjB,KAAAqB,QAAU,GAAGrB,KAAKiB,yBAClBjB,KAAAsB,YAA8B,CAC7C,CAAEhB,MAAO,SAAUJ,MAAO,UAC1B,CAAEI,MAAO,SAAUJ,MAAO,SAAUqB,cAAe,MA4NtD,CAzNC,sBAAYC,GACV,OAAOxB,KAAKC,MAAMwB,MAAKC,GAAQA,EAAKC,KAAO3B,KAAKE,O,CAGlD,cAAY0B,GACV,OAAO5B,KAAKC,MAAMwB,MAAKC,GAAQA,EAAKC,KAAO3B,KAAKc,c,CAGlD,YAAYe,GACV,MAAMC,EAAS9B,KAAKC,MAAM8B,KAAIL,IAAI,CAChCpB,MAAOoB,EAAKpB,MACZJ,MAAOwB,EAAKC,GACZK,eACEhC,KAAKG,OAASuB,EAAKC,KAAO3B,KAAKwB,oBAAoBG,GAC/C,CACE,CAAErB,MAAO,OAAQJ,MAAO,QACxB,CAAEI,MAAO,UAAWJ,MAAO,UAAW+B,KAAM,aAE9CC,UACNC,OAAQ,CACN7B,MAAO,eAAeoB,EAAKpB,QAC3B8B,SAAUpC,KAAKmB,aACfkB,SAAUrC,KAAKS,eAAiBiB,EAAKC,IAAM3B,KAAKU,oBAGpD,MAAM4B,EAAY,CAChBC,OAAQ,YACRC,QAAS,CAAC,CAAElC,MAAON,KAAKK,iBAAkBH,MAAOF,KAAKI,gBACtDqC,QAASX,EAAOY,OAAS,GAE3B,OAAOZ,EAAOY,OAAS,EAAI,CAACJ,EAAW,CAAEC,OAAQ,SAAUC,QAASV,IAAY,CAACQ,E,CAG3E,gBAAAK,CAAiBzC,GACvB,UAAWA,IAAU,SAAUF,KAAK4C,aAAaC,KAAK,CAAEC,OAAQ5C,G,CAG1D,mBAAA6C,CAAoBC,GAC1B,MAAMtB,EAAO1B,KAAKwB,mBAClB,IAAKE,IAAS1B,KAAKG,OAAS6C,EAAO9C,QAAUwB,EAAKC,GAAI,OACtD,GAAIqB,EAAOC,cAAgB,OAAQjD,KAAKkD,WAAWL,KAAK,CAAEC,OAAQpB,EAAKC,KACvE,GAAIqB,EAAOC,cAAgB,UAAWjD,KAAKmD,cAAcN,KAAK,CAAEC,OAAQpB,EAAKC,I,CAGvE,kBAAAyB,CAAmBJ,GACzB,IAAKhD,KAAKC,MAAMoD,MAAK3B,GAAQA,EAAKC,KAAOqB,EAAO9C,QAAQ,OACxDF,KAAKW,8BAAgCqC,EAAOM,cAAcN,SAAW,EACrE,GAAIhD,KAAKS,eAAiBuC,EAAO9C,OAASF,KAAKU,eAAgB,CAC7DV,KAAKU,eAAiB,MACtB,M,CAEFV,KAAKS,aAAeuC,EAAO9C,MAC3BF,KAAKuD,eAAiBP,EAAOQ,SAC7BxD,KAAKU,eAAiB,I,CAGhB,kBAAA+C,CAAmBC,GACzB,MAAMZ,EAAS9C,KAAKS,aACpBT,KAAKU,eAAiB,MACtB,IAAKoC,EAAQ,OACb,GAAIY,EAAMV,OAAO9C,QAAU,SAAUF,KAAK2D,WAAW,SAAUb,GAC/D,GAAIY,EAAMV,OAAO9C,QAAU,SAAUF,KAAK4D,aAAaf,KAAK,CAAEC,U,CAGxD,UAAAa,CAAWE,EAA2Bf,EAAwB,MACpE,MAAMpB,EAAOmC,IAAS,SAAW7D,KAAKC,MAAMwB,MAAKqC,GAAQA,EAAKnC,KAAOmB,IAAUZ,UAC/E,GAAI2B,IAAS,WAAanC,EAAM,OAChC1B,KAAKa,WAAagD,EAClB7D,KAAKc,aAAeY,GAAMC,IAAM,KAChC3B,KAAKe,UAAYW,GAAMpB,OAAS,GAChCN,KAAKgB,UAAY,GACjBhB,KAAKY,WAAa,KAClBmD,uBAAsB,KACpBA,uBAAsB,KACpB,MAAMC,EAAQhE,KAAKiE,GAAGC,cACpB,IAAIlE,KAAKqB,gBAEN2C,GAAOG,YAAY,GACxB,G,CAIE,YAAAC,GACN,MAAMC,EAAOrE,KAAKe,UAAUuD,OAC5B,IAAKD,EAAM,MAAO,yBAClB,MAAME,EAAYvE,KAAKC,MAAMoD,MAC3B3B,GACEA,EAAKC,KAAO3B,KAAKc,cACjBY,EAAKpB,MAAMgE,OAAOE,sBAAwBH,EAAKG,sBAEnD,GACED,GACAvE,KAAKK,iBAAiBiE,OAAOE,sBAAwBH,EAAKG,oBAC1D,CACA,MAAO,uC,CAET,MAAO,E,CAGD,YAAAC,GACN,MAAMC,EAAQ1E,KAAKoE,eACnB,GAAIM,EAAO,CACT1E,KAAKgB,UAAY0D,EACjB,M,CAEF,MAAML,EAAOrE,KAAKe,UAAUuD,OAC5B,GAAItE,KAAKa,aAAe,UAAYb,KAAK4B,WAAY,CACnD5B,KAAK2E,aAAa9B,KAAK,CAAEC,OAAQ9C,KAAK4B,WAAWD,GAAI0C,Q,KAChD,CACLrE,KAAK4E,aAAa/B,KAAK,CAAEwB,Q,CAE3BrE,KAAKY,WAAa,K,CAGZ,iBAAAiE,GACN,GAAI7E,KAAKY,WAAY,OACrBZ,KAAKc,aAAe,KACpBd,KAAKe,UAAY,GACjBf,KAAKgB,UAAY,GACjB,MAAM8D,EAAS9E,KAAKiE,GAAGC,cACrB,IAAIlE,KAAKkB,iBAEN4D,GAAQX,Y,CAGf,MAAAY,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,aAAAE,IAAA,2CACEvD,GAAI3B,KAAKkB,SACTiE,KAAK,KACLC,MAAM,OACNC,YAAarF,KAAKM,MAAK,aACXN,KAAKM,MACjBuB,SAAU7B,KAAK6B,SACf3B,MAAOF,KAAKE,MACZK,aAAcP,KAAKwB,mBAAqBU,UAAYlC,KAAKO,aACzD+E,yBAA0BtF,KAAKwB,mBAC/B+D,IAAKvF,KAAKG,OAASqF,QAAQxF,KAAKwB,oBAChCiE,kBAAmBzF,KAAKQ,YACxBkF,WAAY,MACZC,WAAY,MACZC,WAAalC,GAAoC1D,KAAK2C,iBAAiBe,EAAMV,QAC7E6C,iBAAkB,IAAM7F,KAAK2D,WAAW,UACxCmC,wBAA0BpC,GACxB1D,KAAK+C,oBAAoBW,EAAMV,QAEjC+C,iBAAmBrC,GACjB1D,KAAKoD,mBAAmBM,EAAMV,UAIlCgC,EAAA,WAAAE,IAAA,2CACEvD,GAAI3B,KAAKmB,aACTqC,SAAUxD,KAAKuD,eACfyC,UAAU,qBACVC,KAAK,SACLC,MAAM,MACNC,UAAU,cACVC,SAAS,IACTC,MAAOrG,KAAKsB,YACZgF,KAAMtG,KAAKU,eACX6F,oBAAqBvG,KAAKW,8BAC1B6F,UAAW,IAAOxG,KAAKU,eAAiB,MACxC+F,eAAgB,KACd,GAAIzG,KAAKU,eAAgB,OACzBV,KAAKS,aAAe,KACpBT,KAAKuD,eAAiBrB,SAAS,EAEjCwE,WAAahD,GAAqC1D,KAAKyD,mBAAmBC,KAG5EsB,EAAA,YAAAE,IAAA,2CACEoB,KAAMtG,KAAKY,WACX+F,QAAS3G,KAAKa,aAAe,SAAW,cAAgB,mBACxD+F,WAAW,KACXJ,UAAW,IAAOxG,KAAKY,WAAa,MACpC6F,eAAgB,IAAMzG,KAAK6E,qBAE3BG,EAAA,YAAAE,IAAA,2CACE5E,MAAM,OACNc,QAASpB,KAAKoB,QACdsD,MAAO1E,KAAKgB,UAAU0B,OAAS,EAC/BmE,aAAc7G,KAAKgB,WAEnBgE,EAAA,YAAAE,IAAA,2CACEvD,GAAI3B,KAAKqB,QACT8D,KAAK,KACLE,YAAY,sBACZnF,MAAOF,KAAKe,UACZ+F,UAAW,KACXlB,WAAalC,IACX1D,KAAKe,UAAY2C,EAAMV,OACvB,GAAIhD,KAAKgB,UAAWhB,KAAKgB,UAAY,EAAE,EAEzC+F,UAAYrD,IACV,GAAIA,EAAMwB,MAAQ,QAASlF,KAAKyE,cAAc,KAKpDO,EAAA,OAAAE,IAAA,2CAAK8B,KAAK,SAASC,MAAM,qCACvBjC,EAAA,oBAAAE,IAAA,2CACE5E,MAAON,KAAKa,aAAe,SAAW,SAAW,OACjDsE,KAAK,KACL+B,UAAW,IAAMlH,KAAKyE,iBAExBO,EAAA,sBAAAE,IAAA,2CACE5E,MAAM,SACN6E,KAAK,KACL+B,UAAW,IAAOlH,KAAKY,WAAa,U","ignoreList":[]}
1
+ {"version":3,"names":["tableSavedViewsCss","tableSavedViewsId","TableSavedViews","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","views","value","dirty","defaultViewId","defaultViewLabel","label","triggerLabel","createLabel","actionViewId","actionMenuOpen","actionMenuInitialFocusVisible","dialogOpen","dialogMode","dialogViewId","nameDraft","nameError","componentId","selectId","actionMenuId","fieldId","inputId","actionItems","isDestructive","selectedCustomView","find","view","id","dialogView","sections","custom","map","subtextActions","tone","undefined","action","controls","expanded","surfaceOpen","templates","header","options","divider","length","handleViewChange","dsViewChange","emit","viewId","handleSubtextAction","detail","actionValue","dsViewSave","dsViewDiscard","handleOptionAction","some","originalEvent","actionAnchorId","anchorId","handleActionSelect","event","openDialog","dsViewRemove","mode","item","requestAnimationFrame","input","el","querySelector","setFocus","validateName","name","trim","duplicate","toLocaleLowerCase","submitDialog","error","dsViewRename","dsViewCreate","finishDialogClose","select","render","h","Host","key","size","width","placeholder","triggerLabelPlaceholder","dot","Boolean","footerActionLabel","activeFill","allowClear","onDsChange","onDsFooterAction","onDsOptionSubtextAction","onDsOptionAction","menuLabel","side","align","menuWidth","minWidth","items","open","initialFocusVisible","onDsClose","onDsAfterClose","onDsSelect","heading","modalWidth","errorMessage","autoFocus","onKeyDown","slot","class","onDsClick"],"sources":["src/wc/components/TableSavedViews/TableSavedViews.css?tag=ds-table-saved-views&encapsulation=scoped","src/wc/components/TableSavedViews/TableSavedViews.tsx"],"sourcesContent":[":host {\n --ds-choice-popup-min-inline-size: var(--dimension-menu-width-xs);\n\n display: inline-block;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\nds-select {\n display: block;\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.table-saved-views__dialog-actions {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--dimension-space-100);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { MenuItemData } from '../Menu/menu-types';\nimport type {\n SelectOptionActionDetail,\n SelectOptionSubtextActionDetail,\n SelectValue,\n} from '../Select/Select';\nimport type {\n TableSavedView,\n TableSavedViewChangeDetail,\n TableSavedViewCreateDetail,\n TableSavedViewDiscardDetail,\n TableSavedViewRemoveDetail,\n TableSavedViewRenameDetail,\n TableSavedViewSaveDetail,\n} from './table-saved-views-types';\n\ntype SavedViewDialogMode = 'create' | 'rename';\n\nlet tableSavedViewsId = 0;\n\n@Component({\n tag: 'ds-table-saved-views',\n styleUrl: 'TableSavedViews.css',\n scoped: true,\n})\nexport class TableSavedViews {\n @Element() el!: HTMLElement;\n\n /** Application-owned custom saved views. Assign arrays through the JavaScript property. */\n @Prop() views: TableSavedView[] = [];\n /** ID of the controlled active view, including the default view ID. */\n @Prop() value: string = '__default__';\n /** Whether the current table state differs from the selected custom view. Ignored for the default view. */\n @Prop() dirty: boolean = false;\n /** ID used for the built-in default view. */\n @Prop() defaultViewId: string = '__default__';\n /** Label used for the built-in default view. */\n @Prop() defaultViewLabel: string = 'Default';\n /** Accessible name for the saved-views select. */\n @Prop() label: string = 'Saved views';\n /** Trigger label shown while the default view is selected. */\n @Prop() triggerLabel: string = 'Views';\n /** Footer action label that opens the create-view dialog. */\n @Prop() createLabel: string = 'New view';\n\n /** Emitted when a view selection is requested. */\n @Event() dsViewChange!: EventEmitter<TableSavedViewChangeDetail>;\n /** Emitted after a valid create-view name is submitted. */\n @Event() dsViewCreate!: EventEmitter<TableSavedViewCreateDetail>;\n /** Emitted after a valid renamed view name is submitted. */\n @Event() dsViewRename!: EventEmitter<TableSavedViewRenameDetail>;\n /** Emitted when a custom view removal is requested. */\n @Event() dsViewRemove!: EventEmitter<TableSavedViewRemoveDetail>;\n /** Emitted when changes to the active custom view should replace its stored payload. */\n @Event() dsViewSave!: EventEmitter<TableSavedViewSaveDetail>;\n /** Emitted when the active custom view's stored payload should be restored. */\n @Event() dsViewDiscard!: EventEmitter<TableSavedViewDiscardDetail>;\n\n @State() private actionViewId: string | null = null;\n @State() private actionAnchorId: string | undefined;\n @State() private actionMenuOpen = false;\n @State() private actionMenuInitialFocusVisible = false;\n @State() private dialogOpen = false;\n @State() private dialogMode: SavedViewDialogMode = 'create';\n @State() private dialogViewId: string | null = null;\n @State() private nameDraft = '';\n @State() private nameError = '';\n\n private readonly componentId = `ds-table-saved-views-${++tableSavedViewsId}`;\n private readonly selectId = `${this.componentId}-select`;\n private readonly actionMenuId = `${this.componentId}-actions`;\n private readonly fieldId = `${this.componentId}-name-field`;\n private readonly inputId = `${this.componentId}-name-input`;\n private readonly actionItems: MenuItemData[] = [\n { label: 'Rename', value: 'rename' },\n { label: 'Remove', value: 'remove', isDestructive: true },\n ];\n\n private get selectedCustomView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.value);\n }\n\n private get dialogView(): TableSavedView | undefined {\n return this.views.find(view => view.id === this.dialogViewId);\n }\n\n private get sections() {\n const custom = this.views.map(view => ({\n label: view.label,\n value: view.id,\n subtextActions:\n this.dirty && view.id === this.selectedCustomView?.id\n ? [\n { label: 'Save', value: 'save' },\n { label: 'Discard', value: 'discard', tone: 'negative' as const },\n ]\n : undefined,\n action: {\n label: `Options for ${view.label}`,\n controls: this.actionMenuId,\n expanded: this.actionViewId === view.id && this.actionMenuOpen,\n surfaceOpen: this.actionViewId === view.id,\n },\n }));\n const templates = {\n header: 'Templates',\n options: [{ label: this.defaultViewLabel, value: this.defaultViewId }],\n divider: custom.length > 0,\n };\n return custom.length > 0 ? [templates, { header: 'Custom', options: custom }] : [templates];\n }\n\n private handleViewChange(value: SelectValue) {\n if (typeof value === 'string') this.dsViewChange.emit({ viewId: value });\n }\n\n private handleSubtextAction(detail: SelectOptionSubtextActionDetail) {\n const view = this.selectedCustomView;\n if (!view || !this.dirty || detail.value !== view.id) return;\n if (detail.actionValue === 'save') this.dsViewSave.emit({ viewId: view.id });\n if (detail.actionValue === 'discard') this.dsViewDiscard.emit({ viewId: view.id });\n }\n\n private handleOptionAction(detail: SelectOptionActionDetail) {\n if (!this.views.some(view => view.id === detail.value)) return;\n this.actionMenuInitialFocusVisible = detail.originalEvent.detail === 0;\n if (this.actionViewId === detail.value && this.actionMenuOpen) {\n this.actionMenuOpen = false;\n return;\n }\n this.actionViewId = detail.value;\n this.actionAnchorId = detail.anchorId;\n this.actionMenuOpen = true;\n }\n\n private handleActionSelect(event: CustomEvent<MenuItemData>) {\n const viewId = this.actionViewId;\n this.actionMenuOpen = false;\n if (!viewId) return;\n if (event.detail.value === 'rename') this.openDialog('rename', viewId);\n if (event.detail.value === 'remove') this.dsViewRemove.emit({ viewId });\n }\n\n private openDialog(mode: SavedViewDialogMode, viewId: string | null = null) {\n const view = mode === 'rename' ? this.views.find(item => item.id === viewId) : undefined;\n if (mode === 'rename' && !view) return;\n this.dialogMode = mode;\n this.dialogViewId = view?.id ?? null;\n this.nameDraft = view?.label ?? '';\n this.nameError = '';\n this.dialogOpen = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const input = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.inputId}`\n );\n void input?.setFocus?.();\n });\n });\n }\n\n private validateName(): string {\n const name = this.nameDraft.trim();\n if (!name) return 'View name is required.';\n const duplicate = this.views.some(\n view =>\n view.id !== this.dialogViewId &&\n view.label.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n );\n if (\n duplicate ||\n this.defaultViewLabel.trim().toLocaleLowerCase() === name.toLocaleLowerCase()\n ) {\n return 'A view with this name already exists.';\n }\n return '';\n }\n\n private submitDialog() {\n const error = this.validateName();\n if (error) {\n this.nameError = error;\n return;\n }\n const name = this.nameDraft.trim();\n if (this.dialogMode === 'rename' && this.dialogView) {\n this.dsViewRename.emit({ viewId: this.dialogView.id, name });\n } else {\n this.dsViewCreate.emit({ name });\n }\n this.dialogOpen = false;\n }\n\n private finishDialogClose() {\n if (this.dialogOpen) return;\n this.dialogViewId = null;\n this.nameDraft = '';\n this.nameError = '';\n const select = this.el.querySelector<HTMLElement & { setFocus?: () => Promise<void> }>(\n `#${this.selectId}`\n );\n void select?.setFocus?.();\n }\n\n render() {\n return (\n <Host>\n <ds-select\n id={this.selectId}\n size=\"md\"\n width=\"fill\"\n placeholder={this.label}\n aria-label={this.label}\n sections={this.sections}\n value={this.value}\n triggerLabel={this.selectedCustomView ? undefined : this.triggerLabel}\n triggerLabelPlaceholder={!this.selectedCustomView}\n dot={this.dirty && Boolean(this.selectedCustomView)}\n footerActionLabel={this.createLabel}\n activeFill={false}\n allowClear={false}\n onDsChange={(event: CustomEvent<SelectValue>) => this.handleViewChange(event.detail)}\n onDsFooterAction={() => this.openDialog('create')}\n onDsOptionSubtextAction={(event: CustomEvent<SelectOptionSubtextActionDetail>) =>\n this.handleSubtextAction(event.detail)\n }\n onDsOptionAction={(event: CustomEvent<SelectOptionActionDetail>) =>\n this.handleOptionAction(event.detail)\n }\n />\n\n <ds-menu\n id={this.actionMenuId}\n anchorId={this.actionAnchorId}\n menuLabel=\"Saved view options\"\n side=\"bottom\"\n align=\"end\"\n menuWidth=\"max-content\"\n minWidth=\"0\"\n items={this.actionItems}\n open={this.actionMenuOpen}\n initialFocusVisible={this.actionMenuInitialFocusVisible}\n onDsClose={() => (this.actionMenuOpen = false)}\n onDsAfterClose={() => {\n if (this.actionMenuOpen) return;\n this.actionViewId = null;\n this.actionAnchorId = undefined;\n }}\n onDsSelect={(event: CustomEvent<MenuItemData>) => this.handleActionSelect(event)}\n />\n\n <ds-modal\n open={this.dialogOpen}\n heading={this.dialogMode === 'rename' ? 'Rename view' : 'Save as new view'}\n modalWidth=\"sm\"\n onDsClose={() => (this.dialogOpen = false)}\n onDsAfterClose={() => this.finishDialogClose()}\n >\n <ds-field\n label=\"Name\"\n fieldId={this.fieldId}\n error={this.nameError.length > 0}\n errorMessage={this.nameError}\n >\n <ds-input\n id={this.inputId}\n size=\"md\"\n placeholder=\"Enter a unique name\"\n value={this.nameDraft}\n autoFocus={true}\n onDsChange={(event: CustomEvent<string>) => {\n this.nameDraft = event.detail;\n if (this.nameError) this.nameError = '';\n }}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter') this.submitDialog();\n }}\n />\n </ds-field>\n\n <div slot=\"footer\" class=\"table-saved-views__dialog-actions\">\n <ds-button-filled\n label={this.dialogMode === 'rename' ? 'Rename' : 'Save'}\n size=\"md\"\n onDsClick={() => this.submitDialog()}\n />\n <ds-button-unfilled\n label=\"Cancel\"\n size=\"md\"\n onDsClick={() => (this.dialogOpen = false)}\n />\n </div>\n </ds-modal>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}