D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
build
/
Filename :
DashboardListPage.ad2724ee208bbbf53547.js
back
Copy
"use strict";(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[4074],{5336:(ne,K,n)=>{n.d(K,{P:()=>b});var l=n(27702),e=n(25111),W=n(28580),z=n(73453),A=n(15758),O=n(63064);const P=()=>(0,O.getGrafanaSearcher)().getSortOptions();function b({onChange:p,value:R,placeholder:x,filter:B,getSortOptions:N,isClearable:Z}){const H=(0,e.Z)(async()=>{const V=await(N??P)();return B?V.filter(U=>B.includes(U.value)):V},[N,B]);if(H.loading)return null;const T=!!(R?.includes("desc")||R?.startsWith("-"));return l.createElement(W.Ph,{key:R,width:28,onChange:p,value:H.value?.find(V=>V.value===R)??null,options:H.value,"aria-label":"Sort",placeholder:x??`Sort (Default ${A.yw.label})`,prefix:l.createElement(z.J,{name:T?"sort-amount-down":"sort-amount-up"}),isClearable:Z})}},31279:(ne,K,n)=>{n.d(K,{b:()=>z});var l=n(27702),e=n(69966),W=n(75340);class z{constructor(P){this._subject=new e.x,this._state=P}useState(){return A(this)}get state(){return this._state}setState(P){this._state={...this._state,...P},this._subject.next(this._state)}subscribeToState(P){return this._subject.subscribe(P)}}function A(O){const P=(0,W.N)();return(0,l.useEffect)(()=>{const b=O.subscribeToState({next:P});return()=>b.unsubscribe()},[O,P]),O.state}},11297:(ne,K,n)=>{n.d(K,{p:()=>P});var l=n(27702),e=n(60426),W=n(3613),z=n(21323),A=n(65322),O=n(50837);const P=({onConfirm:b,onDismiss:p,selectedItems:R,...x})=>{const[B,N]=(0,l.useState)(!1),Z=async()=>{N(!0);try{await b(),N(!1),p()}catch{N(!1)}};return l.createElement(W.s,{body:l.createElement(l.Fragment,null,l.createElement(z.x,{element:"p"},l.createElement(A.cC,{i18nKey:"browse-dashboards.action.delete-modal-text"},"This action will delete the following content:")),l.createElement(O.X,{selectedItems:R}),l.createElement(e.T,{v:2})),confirmationText:"Delete",confirmText:B?(0,A.t)("browse-dashboards.action.deleting","Deleting..."):(0,A.t)("browse-dashboards.action.delete-button","Delete"),onDismiss:p,onConfirm:Z,title:(0,A.t)("browse-dashboards.action.delete-modal-title","Delete"),...x})}},78222:(ne,K,n)=>{n.d(K,{_:()=>x});var l=n(27702),e=n(60426),W=n(13741),z=n(63439),A=n(22209),O=n(66670),P=n(21323),b=n(74729),p=n(65322),R=n(50837);const x=({onConfirm:B,onDismiss:N,selectedItems:Z,...H})=>{const[T,V]=(0,l.useState)(),[U,I]=(0,l.useState)(!1),se=Object.keys(Z.folder).filter(ie=>Z.folder[ie]),_=async()=>{if(T!==void 0){I(!0);try{await B(T),I(!1),N()}catch{I(!1)}}};return l.createElement(W.u,{title:(0,p.t)("browse-dashboards.action.move-modal-title","Move"),onDismiss:N,...H},se.length>0&&l.createElement(z.b,{severity:"info",title:(0,p.t)("browse-dashboards.action.move-modal-alert","Moving this item may change its permissions.")}),l.createElement(P.x,{element:"p"},l.createElement(p.cC,{i18nKey:"browse-dashboards.action.move-modal-text"},"This action will move the following content:")),l.createElement(R.X,{selectedItems:Z}),l.createElement(e.T,{v:3}),l.createElement(A.g,{label:(0,p.t)("browse-dashboards.action.move-modal-field-label","Folder name")},l.createElement(b.E,{value:T,excludeUIDs:se,onChange:V})),l.createElement(W.u.ButtonRow,null,l.createElement(O.zx,{onClick:N,variant:"secondary",fill:"outline"},l.createElement(p.cC,{i18nKey:"browse-dashboards.action.cancel-button"},"Cancel")),l.createElement(O.zx,{disabled:T===void 0||U,onClick:_,variant:"primary"},U?(0,p.t)("browse-dashboards.action.moving","Moving..."):(0,p.t)("browse-dashboards.action.move-button","Move"))))}},72760:(ne,K,n)=>{n.d(K,{A:()=>U});var l=n(27702),e=n(86312),W=n(26129),z=n(89746),A=n(79655),O=n(80434),P=n(66670),b=n(73453),p=n(14574),R=n(1541),x=n(66574),B=n(65322),N=n(18771),Z=n(43620),H=n(67572),T=n(11297),V=n(78222);function U({folder:I}){const[se,_]=(0,l.useState)(!1),[ie,ve]=(0,l.useState)(!1),[oe]=(0,H.OH)(),[de]=(0,H.yC)(),q=x.Vt.hasPermission(N.AccessControlAction.FoldersPermissionsRead),S=x.Vt.hasPermission(N.AccessControlAction.FoldersPermissionsWrite),ue=x.Vt.hasPermission(N.AccessControlAction.FoldersWrite),me=x.Vt.hasPermission(N.AccessControlAction.FoldersDelete),he=async F=>{await oe({folder:I,destinationUID:F}),(0,e.ff)("grafana_manage_dashboards_item_moved",{item_counts:{folder:1,dashboard:0},source:"folder_actions"})},Ee=async()=>{await de(I),(0,e.ff)("grafana_manage_dashboards_item_deleted",{item_counts:{folder:1,dashboard:0},source:"folder_actions"});const{parents:F}=I,we=F&&F.length?F[F.length-1].url:"/dashboards";W.E1.push(we)},pe=()=>{x.h$.publish(new Z.Dn({component:V._,props:{selectedItems:{folder:{[I.uid]:!0},dashboard:{},panel:{},$all:!1},onConfirm:he}}))},X=()=>{x.h$.publish(new Z.Dn({component:T.p,props:{selectedItems:{folder:{[I.uid]:!0},dashboard:{},panel:{},$all:!1},onConfirm:Ee}}))},G=(0,B.t)("browse-dashboards.folder-actions-button.manage-permissions","Manage permissions"),$=(0,B.t)("browse-dashboards.folder-actions-button.move","Move"),ye=(0,B.t)("browse-dashboards.folder-actions-button.delete","Delete"),Ce=l.createElement(z.v,null,q&&l.createElement(A.s,{onClick:()=>ve(!0),label:G}),ue&&l.createElement(A.s,{onClick:pe,label:$}),me&&l.createElement(A.s,{destructive:!0,onClick:X,label:ye}));return!q&&!ue&&!me?null:l.createElement(l.Fragment,null,l.createElement(O.L,{overlay:Ce,onVisibleChange:_},l.createElement(P.zx,{variant:"secondary"},l.createElement(B.cC,{i18nKey:"browse-dashboards.folder-actions-button.folder-actions"},"Folder actions"),l.createElement(b.J,{name:se?"angle-up":"angle-down"}))),ie&&l.createElement(p.d,{title:(0,B.t)("browse-dashboards.action.manage-permissions-button","Manage permissions"),subtitle:I.title,scrollableContent:!0,onClose:()=>ve(!1),size:"md"},l.createElement(R.P,{resource:"folders",resourceId:I.uid,canSetPermissions:S})))}},88347:(ne,K,n)=>{n.r(K),n.d(K,{DashboardListPageFeatureToggle:()=>Oe,default:()=>Oa});var l=n(42844),e=n(27702),W=n(25111),z=n(94469),A=n(34667),O=n(26129),P=n(44644),b=n(55925),p=n(66310),R=n(33716),x=n(18771),B=n(40127),N=n(89949),Z=n(31279),H=n(56812),T=n(15758),V=n(46430),U=n(63064),I=n(14172),se=n(55670);const _={query:"",tag:[],starred:!1,layout:I.A.Folders,sort:void 0,prevSort:void 0,eventTrackingNamespace:"dashboard_search"},ie={sort:null,starred:null,query:null,tag:null,layout:null};class ve extends Z.b{constructor(){super(...arguments),this.updateLocation=(0,N.debounce)(a=>O.E1.partial(a,!0),300),this.doSearchWithDebounce=(0,N.debounce)(()=>this.doSearch(),300),this.lastSearchTimestamp=0,this.onCloseSearch=()=>{this.updateLocation({search:null,folder:null,...ie})},this.onClearSearchAndFilters=()=>{this.setStateAndDoSearch({query:"",datasource:void 0,tag:[],panel_type:void 0,starred:void 0,sort:void 0})},this.onQueryChange=a=>{this.setStateAndDoSearch({query:a})},this.onRemoveTag=a=>{this.setStateAndDoSearch({tag:this.state.tag.filter(s=>s!==a)})},this.onTagFilterChange=a=>{this.setStateAndDoSearch({tag:a})},this.onAddTag=a=>{this.state.tag&&this.state.tag.includes(a)||this.setStateAndDoSearch({tag:[...this.state.tag,a]})},this.onDatasourceChange=a=>{this.setStateAndDoSearch({datasource:a})},this.onPanelTypeChange=a=>{this.setStateAndDoSearch({panel_type:a})},this.onStarredFilterChange=a=>{const s=a.currentTarget.checked;this.setStateAndDoSearch({starred:s})},this.onClearStarred=()=>{this.setStateAndDoSearch({starred:!1})},this.onSortChange=a=>{a?localStorage.setItem(T.qb,a):localStorage.removeItem(T.qb),this.state.layout===I.A.Folders?this.setStateAndDoSearch({sort:a,layout:I.A.List}):this.setStateAndDoSearch({sort:a})},this.onLayoutChange=a=>{localStorage.setItem(T.rh,a),this.state.sort&&a===I.A.Folders?this.setStateAndDoSearch({layout:a,prevSort:this.state.sort,sort:void 0}):this.setStateAndDoSearch({layout:a,sort:this.state.prevSort})},this.onSetIncludePanels=a=>{this.setStateAndDoSearch({includePanels:a}),H.Z.set(T.to,a)},this.getTagOptions=()=>{const a=this.lastQuery??{kind:["dashboard","folder"],query:"*"};return(0,U.getGrafanaSearcher)().tags(a)},this.onSearchItemClicked=a=>{(0,V.OY)(this.state.eventTrackingNamespace,{layout:this.state.layout,starred:this.state.starred,sortValue:this.state.sort,query:this.state.query,tagCount:this.state.tag?.length,includePanels:this.state.includePanels})},this.onReportSearchUsage=()=>{(0,V.Qw)(this.state.eventTrackingNamespace,{layout:this.state.layout,starred:this.state.starred,sortValue:this.state.sort,query:this.state.query,tagCount:this.state.tag?.length,includePanels:this.state.includePanels})}}initStateFromUrl(a,s=!0){const r=(0,se.vj)(O.E1.getSearchObject());(r.query||r.datasource||r.panel_type)&&(r.layout=I.A.List),oe.setState({..._,...r,folderUid:a,eventTrackingNamespace:a?"manage_dashboards":"dashboard_search"}),s&&this.doSearch()}setStateAndDoSearch(a){const s=a.sort||this.state.sort||localStorage.getItem(T.qb)||void 0;this.setState({sort:s,...a}),this.updateLocation({query:this.state.query.length===0?null:this.state.query,tag:this.state.tag,datasource:this.state.datasource,panel_type:this.state.panel_type,starred:this.state.starred?this.state.starred:null,sort:this.state.sort}),this.doSearchWithDebounce()}hasSearchFilters(){return this.state.query||this.state.tag.length||this.state.starred||this.state.panel_type||this.state.sort}getSearchQuery(){const a={query:this.state.query,tags:this.state.tag,ds_uid:this.state.datasource,panel_type:this.state.panel_type,location:this.state.folderUid,sort:this.state.sort,explain:this.state.explain,withAllowedActions:this.state.explain,starred:this.state.starred};return a.sort?.length&&!a.sort.includes("name")&&(a.kind=["dashboard","folder"]),a.query?.length||(a.query="*",a.location||(a.kind=["dashboard","folder"])),!this.state.includePanels&&!a.kind&&(a.kind=["dashboard","folder"]),a.panel_type?.length&&(a.kind=["panel"]),a}doSearch(){const a={layout:this.state.layout,starred:this.state.starred,sortValue:this.state.sort,query:this.state.query,tagCount:this.state.tag?.length,includePanels:this.state.includePanels};(0,V.Jy)(this.state.eventTrackingNamespace,a),this.lastQuery=this.getSearchQuery(),this.setState({loading:!0});const s=(0,U.getGrafanaSearcher)(),r=Date.now();(this.state.starred?s.starred(this.lastQuery):s.search(this.lastQuery)).then(o=>{r>this.lastSearchTimestamp&&(this.setState({result:o,loading:!1}),this.lastSearchTimestamp=r)}).catch(o=>{(0,V.TP)(this.state.eventTrackingNamespace,{...a,error:o?.message}),this.setState({loading:!1})})}}let oe;function de(){if(!oe){const a=localStorage.getItem(T.rh)??_.layout;let s=H.Z.getBool(T.to,!0);s&&(s=!1),oe=new ve({..._,layout:a,includePanels:s})}return oe}function q(){const t=de();return[t.useState(),t]}var S=n(65322);function ue(t=!1){return t?(0,S.t)("search.search-input.include-panels-placeholder","Search for dashboards, folders, and panels"):(0,S.t)("search.search-input.placeholder","Search for dashboards and folders")}function me(){return(0,S.t)("search.dashboard-actions.new-dashboard","New dashboard")}function he(){return(0,S.t)("search.dashboard-actions.new-folder","New folder")}function Ee(){return(0,S.t)("search.dashboard-actions.import","Import")}function pe(){return(0,S.t)("search.dashboard-actions.new","New")}var X=n(67572),G=n(86312),$=n(66670),ye=n(5933),Ce=n(43620),F=n(1631),we=n(11297),dt=n(78222);function ut(){const t=(0,p.wW)(mt),a=(0,x.useDispatch)(),s=(0,F.m2)(),[r]=(0,X.zu)(),[c]=(0,X.jL)(),[,o]=q(),i=o.hasSearchFilters(),d=()=>{a((0,F.u6)({isSelected:!1,folderUID:void 0})),i&&o.doSearchWithDebounce()},h=async()=>{await r({selectedItems:s}),Be("delete",s),d()},u=async y=>{await c({selectedItems:s,destinationUID:y}),Be("move",s),d()},m=()=>{ye.Z.publish(new Ce.Dn({component:dt._,props:{selectedItems:s,onConfirm:u}}))},g=()=>{ye.Z.publish(new Ce.Dn({component:we.p,props:{selectedItems:s,onConfirm:h}}))};return e.createElement("div",{className:t.row,"data-testid":"manage-actions"},e.createElement($.zx,{onClick:m,variant:"secondary"},e.createElement(S.cC,{i18nKey:"browse-dashboards.action.move-button"},"Move")),e.createElement($.zx,{onClick:g,variant:"destructive"},e.createElement(S.cC,{i18nKey:"browse-dashboards.action.delete-button"},"Delete")))}const mt=t=>({row:(0,l.css)({display:"flex",flexDirection:"row",gap:t.spacing(1),marginBottom:t.spacing(2)})}),ht={move:"grafana_manage_dashboards_item_moved",delete:"grafana_manage_dashboards_item_deleted"};function Be(t,a){const s=Object.keys(a.dashboard).filter(c=>a.dashboard[c]),r=Object.keys(a.folder).filter(c=>a.folder[c]);(0,G.ff)(ht[t],{item_counts:{folder:r.length,dashboard:s.length},source:"tree_actions"})}var re=n(64022),ee=n(83967),gt=n(40705),ft=n(5336),vt=n(1041);function Et(){return[{value:I.A.Folders,icon:"folder",description:(0,S.t)("search.actions.view-as-folders","View by folders")},{value:I.A.List,icon:"list-ul",description:(0,S.t)("search.actions.view-as-list","View as list")}]}function $e(t){const a=t.layout??I.A.Folders;return a===I.A.Folders&&(t.query||t.sort||t.starred||t.tag.length>0)?I.A.List:a}const Pe=({onLayoutChange:t,onSortChange:a,onStarredFilterChange:s=()=>{},onTagFilterChange:r,getTagOptions:c,getSortOptions:o,sortPlaceholder:i,onDatasourceChange:d,onPanelTypeChange:h,onSetIncludePanels:u,state:m,showStarredFilter:g,hideLayout:y})=>{const D=(0,p.wW)(We),f=$e(m),E=m.query||m.datasource||m.panel_type?[I.A.Folders]:[];return e.createElement("div",{className:D.actionRow},e.createElement(re.Lh,{spacing:"md",width:"auto"},e.createElement(vt.D,{isClearable:!1,tags:m.tag,tagOptions:c,onChange:r}),A.config.featureToggles.panelTitleSearch&&e.createElement(ee.X,{"data-testid":"include-panels",disabled:f===I.A.Folders,value:m.includePanels,onChange:()=>u(!m.includePanels),label:(0,S.t)("search.actions.include-panels","Include panels")}),g&&e.createElement("div",{className:D.checkboxWrapper},e.createElement(ee.X,{label:(0,S.t)("search.actions.starred","Starred"),onChange:s,value:m.starred})),m.datasource&&e.createElement($.zx,{icon:"times",variant:"secondary",onClick:()=>d(void 0)},e.createElement(S.cC,{i18nKey:"search.actions.remove-datasource-filter"},"Datasource: ",{datasource:m.datasource})),m.panel_type&&e.createElement($.zx,{icon:"times",variant:"secondary",onClick:()=>h(void 0)},"Panel: ",m.panel_type)),e.createElement(re.Lh,{spacing:"md",width:"auto"},!y&&e.createElement(gt.S,{options:Et(),disabledOptions:E,onChange:t,value:f}),e.createElement(ft.P,{onChange:v=>a(v?.value),value:m.sort,getSortOptions:o,placeholder:i||(0,S.t)("search.actions.sort-placeholder","Sort"),isClearable:!0})))};Pe.displayName="ActionRow";const We=t=>({actionRow:(0,l.css)` display: none; ${t.breakpoints.up("md")} { display: flex; justify-content: space-between; align-items: center; padding-bottom: ${t.spacing(2)}; width: 100%; } `,checkboxWrapper:(0,l.css)` label { line-height: 1.2; } `});function pt(){const[t,a]=q();return e.createElement("div",null,e.createElement(Pe,{hideLayout:!0,showStarredFilter:!0,state:t,getTagOptions:a.getTagOptions,getSortOptions:(0,U.getGrafanaSearcher)().getSortOptions,sortPlaceholder:(0,U.getGrafanaSearcher)().sortPlaceholder,includePanels:t.includePanels??!1,onLayoutChange:a.onLayoutChange,onStarredFilterChange:a.onStarredFilterChange,onSortChange:a.onSortChange,onTagFilterChange:a.onTagFilterChange,onDatasourceChange:a.onDatasourceChange,onPanelTypeChange:a.onPanelTypeChange,onSetIncludePanels:a.onSetIncludePanels}))}var yt=n(60801),Ue=n(66970),Ie=n(49079),k=n(6309),Ct=n(10350),Ke=n(25472),ke=n(56365),St=n(53933),le=n(74639);function bt({row:{original:t},isSelected:a,onItemSelectionChange:s}){const r=(0,p.wW)(Dt),c=t.item;if(!a)return e.createElement("span",{className:r.checkboxSpacer});if(c.kind==="ui")return c.uiKind==="pagination-placeholder"?e.createElement(ee.X,{disabled:!0,value:!1}):e.createElement("span",{className:r.checkboxSpacer});const o=a(c);return e.createElement(ee.X,{"data-testid":le.wl.pages.BrowseDashbards.table.checkbox(c.uid),value:o===k.f.Selected,indeterminate:o===k.f.Mixed,onChange:i=>s?.(c,i.currentTarget.checked)})}const Dt=t=>({checkboxSpacer:(0,l.css)({paddingLeft:t.spacing(2)})});function Mt({isSelected:t,onAllSelectionChange:a}){const s=t?.("$all")??k.f.Unselected;return e.createElement(ee.X,{value:s===k.f.Selected,indeterminate:s===k.f.Mixed,onChange:r=>{s===k.f.Mixed?a?.(!1):a?.(r.currentTarget.checked)}})}var wt=n(57704),ze=n(67437),Se=n(62108),Y=n(73453),Pt=n(9848),Ve=n(94851),Ze=n(21323),te=n(6092),He=n(4571);const Te="md",Qe="sm";function It({row:{original:t},onFolderClick:a}){const s=(0,p.wW)(Tt),{item:r,level:c,isOpen:o}=t,i=(0,F.$H)(),d=o&&!i[r.uid],h=(0,te.J6)(t.item.kind,o);return r.kind==="ui"?e.createElement(e.Fragment,null,e.createElement(He.A,{level:c}),e.createElement("span",{className:s.folderButtonSpacer}),r.uiKind==="empty-folder"?e.createElement("em",{className:s.emptyText},e.createElement(Ze.x,{variant:"body",color:"secondary",truncate:!0},"No items")):e.createElement(wt.Z,{width:200})):e.createElement(e.Fragment,null,e.createElement(He.A,{level:c}),r.kind==="folder"?e.createElement(ze.h,{size:Te,className:s.chevron,onClick:()=>{a(r.uid,!o)},name:o?"angle-down":"angle-right","aria-label":o?"Collapse folder":"Expand folder"}):e.createElement("span",{className:s.folderButtonSpacer}),e.createElement("div",{className:s.iconNameContainer},d?e.createElement(Se.$,{size:Qe}):e.createElement(Y.J,{size:Qe,name:h}),e.createElement(Ze.x,{variant:"body",truncate:!0},r.url?e.createElement(Pt.r,{onClick:()=>{(0,G.ff)("manage_dashboards_result_clicked")},href:r.url,className:s.link},r.title):r.title)))}const Tt=t=>({chevron:(0,l.css)({marginRight:t.spacing(1),width:(0,Ve.B)(Te)}),emptyText:(0,l.css)({overflow:"hidden"}),folderButtonSpacer:(0,l.css)({paddingLeft:`calc(${(0,Ve.B)(Te)}px + ${t.spacing(1)})`}),iconNameContainer:(0,l.css)({alignItems:"center",display:"flex",gap:t.spacing(1),overflow:"hidden"}),link:(0,l.css)({"&:hover":{textDecoration:"underline"}})});var xe=n(86004);function xt({row:{original:t}}){const a=(0,p.wW)(Ft),s=t.item;return s.kind==="ui"?s.uiKind==="pagination-placeholder"?e.createElement(xe.P.Skeleton,null):null:s.tags?e.createElement(xe.P,{className:a.tagList,tags:s.tags}):null}function Ft(t){return{tagList:(0,l.css)({justifyContent:"flex-start",flexWrap:"nowrap"})}}var At=n(4049);const Ge=36,je=36;function Lt({items:t,width:a,height:s,isSelected:r,onFolderClick:c,onAllSelectionChange:o,onItemSelectionChange:i,isItemLoaded:d,requestLoadMore:h,canSelect:u=!1}){const m=(0,e.useRef)(null),g=(0,p.wW)(Je);(0,e.useEffect)(()=>{m.current&&m.current.resetloadMoreItemsCache(!0)},[t]);const y=(0,e.useMemo)(()=>{const L={id:"checkbox",width:0,Header:Mt,Cell:bt},Q={id:"name",width:3,Header:e.createElement("span",{style:{paddingLeft:24}},e.createElement(S.cC,{i18nKey:"browse-dashboards.dashboards-tree.name-column"},"Name")),Cell:Re=>e.createElement(It,{...Re,onFolderClick:c})},j={id:"tags",width:2,Header:(0,S.t)("browse-dashboards.dashboards-tree.tags-column","Tags"),Cell:xt};return[u&&L,Q,j].filter(St.fQ)},[c,u]),D=(0,Ct.useTable)({columns:y,data:t},At._),{getTableProps:f,getTableBodyProps:E,headerGroups:v}=D,C=(0,e.useMemo)(()=>({table:D,isSelected:r,onAllSelectionChange:o,onItemSelectionChange:i}),[D,r,o,i,t]),M=(0,e.useCallback)(L=>d(L),[d]),w=(0,e.useCallback)((L,Q)=>{const{parentUID:j}=t[L];h(j)},[h,t]);return e.createElement("div",{...f(),className:g.tableRoot,role:"table"},v.map(L=>{const{key:Q,...j}=L.getHeaderGroupProps({style:{width:a}});return e.createElement("div",{key:Q,...j,className:(0,l.cx)(g.row,g.headerRow)},L.headers.map(Ne=>{const{key:Re,...Na}=Ne.getHeaderProps();return e.createElement("div",{key:Re,...Na,role:"columnheader",className:g.cell},Ne.render("Header",{isSelected:r,onAllSelectionChange:o}))}))}),e.createElement("div",{...E()},e.createElement(ke.Z,{ref:m,itemCount:t.length,isItemLoaded:M,loadMoreItems:w},({onItemsRendered:L,ref:Q})=>e.createElement(Ke.t7,{ref:Q,height:s-Ge,width:a,itemCount:t.length,itemData:C,itemSize:je,onItemsRendered:L},Ot))))}function Ot({index:t,style:a,data:s}){const r=(0,p.wW)(Je),{table:c,isSelected:o,onItemSelectionChange:i}=s,{rows:d,prepareRow:h}=c,u=d[t];return h(u),e.createElement("div",{...u.getRowProps({style:a}),className:(0,l.cx)(r.row,r.bodyRow),"data-testid":le.wl.pages.BrowseDashbards.table.row(u.original.item.uid)},u.cells.map(m=>{const{key:g,...y}=m.getCellProps();return e.createElement("div",{key:g,...y,className:r.cell},m.render("Cell",{isSelected:o,onItemSelectionChange:i}))}))}const Je=t=>({tableRoot:(0,l.css)({[k.w]:t.spacing(1),[t.breakpoints.up("md")]:{[k.w]:t.spacing(3)}}),row:(0,l.css)({gap:t.spacing(1)}),headerRow:(0,l.css)({backgroundColor:t.colors.background.secondary,height:Ge}),bodyRow:(0,l.css)({height:je,"&:hover":{backgroundColor:t.colors.emphasize(t.colors.background.primary,.03)}}),cell:(0,l.css)({padding:t.spacing(1),overflow:"hidden",display:"flex",alignItems:"center"}),link:(0,l.css)({"&:hover":{textDecoration:"underline"}})});function Nt({folderUID:t,width:a,height:s,canSelect:r}){const c=(0,F.zw)(t),o=(0,x.useDispatch)(),i=(0,F.Sk)(t),d=(0,F.aw)(),h=(0,F.$H)(),u=(0,e.useCallback)((f,E)=>{o((0,F.xm)({folderUID:f,isOpen:E})),E&&o((0,F.si)({parentUID:f,pageSize:Ie.IV}))},[o]),m=(0,e.useCallback)((f,E)=>{o((0,F.wk)({item:f,isSelected:E}))},[o]),g=(0,e.useCallback)(f=>{if(f==="$all"){if(d.$all)return k.f.Selected;for(const C of Object.values(d))if(typeof C!="boolean"){for(const M in C)if(C[M])return k.f.Mixed}return k.f.Unselected}return d[f.kind][f.uid]?k.f.Selected:Xe(f,h,d)?k.f.Mixed:k.f.Unselected},[d,h]),y=(0,e.useCallback)(f=>{const E=i[f];if(!E)return!1;const v=E.item;return!(v.kind==="ui"&&v.uiKind==="pagination-placeholder")},[i]),D=(0,F.D$)();return c==="fulfilled"&&i.length===0?e.createElement("div",{style:{width:a}},r?e.createElement(Ue.Z,{title:t?"This folder doesn't have any dashboards yet":"No dashboards yet. Create your first!",buttonIcon:"plus",buttonTitle:"Create Dashboard",buttonLink:t?`dashboard/new?folderUid=${t}`:"dashboard/new",proTip:t&&"Add/move dashboards to your folder at ->",proTipLink:t&&"dashboards",proTipLinkTitle:t&&"Browse dashboards",proTipTarget:""}):e.createElement(yt._,{callToActionElement:e.createElement("span",null,"This folder is empty")})):e.createElement(Lt,{canSelect:r,items:i,width:a,height:s,isSelected:g,onFolderClick:u,onAllSelectionChange:f=>o((0,F.u6)({isSelected:f,folderUID:t})),onItemSelectionChange:m,isItemLoaded:y,requestLoadMore:D})}function Xe(t,a,s){const r=a[t.uid];return r?r.items.some(c=>{const o=s[c.kind][c.uid];return o||Xe(c,a,s)}):!1}var Rt=n(7662),ge=n(89746),Fe=n(79655),Ye=n(80434),Bt=n(14574),$t=n(23839),Wt=n(22209),Ut=n(1128),Kt=n(39345);const kt={folderName:""};function zt({onCancel:t,onConfirm:a}){const s=(0,S.t)("browse-dashboards.action.new-folder-name-required-phrase","Folder name is required."),r=async o=>{try{return await Kt.t.validateNewFolderName(o),!0}catch(i){if(i instanceof Error)return i.message;throw i}},c=(0,S.t)("browse-dashboards.new-folder-form.name-label","Folder name");return e.createElement($t.l,{defaultValues:kt,onSubmit:o=>a(o.folderName)},({register:o,errors:i})=>e.createElement(e.Fragment,null,e.createElement(Wt.g,{label:c,invalid:!!i.folderName,error:i.folderName&&i.folderName.message},e.createElement(Ut.I,{id:"folder-name-input",...o("folderName",{required:s,validate:async d=>await r(d)})})),e.createElement(re.Lh,null,e.createElement($.zx,{variant:"secondary",fill:"outline",onClick:t},e.createElement(S.cC,{i18nKey:"browse-dashboards.new-folder-form.cancel-label"},"Cancel")),e.createElement($.zx,{type:"submit"},e.createElement(S.cC,{i18nKey:"browse-dashboards.new-folder-form.create-label"},"Create")))))}function Vt({parentFolder:t,canCreateDashboard:a,canCreateFolder:s}){const[r,c]=(0,e.useState)(!1),o=(0,Rt.TH)(),[i]=(0,X.wo)(),[d,h]=(0,e.useState)(!1),u=async g=>{try{await i({title:g,parentUid:t?.uid});const y=t?.parents?t.parents.length+1:0;(0,G.ff)("grafana_manage_dashboards_folder_created",{is_subfolder:!!t?.uid,folder_depth:y})}finally{h(!1)}},m=e.createElement(ge.v,null,a&&e.createElement(Fe.s,{label:me(),onClick:()=>(0,G.ff)("grafana_menu_item_clicked",{url:be("/dashboard/new",t?.uid),from:o.pathname}),url:be("/dashboard/new",t?.uid)}),s&&e.createElement(Fe.s,{onClick:()=>h(!0),label:he()}),a&&e.createElement(Fe.s,{label:Ee(),onClick:()=>(0,G.ff)("grafana_menu_item_clicked",{url:be("/dashboard/import",t?.uid),from:o.pathname}),url:be("/dashboard/import",t?.uid)}));return e.createElement(e.Fragment,null,e.createElement(Ye.L,{overlay:m,onVisibleChange:c},e.createElement($.zx,null,pe(),e.createElement(Y.J,{name:r?"angle-up":"angle-down"}))),d&&e.createElement(Bt.d,{title:he(),subtitle:t?.title?`Location: ${t.title}`:void 0,scrollableContent:!0,onClose:()=>h(!1),size:"sm"},e.createElement(zt,{onConfirm:u,onCancel:()=>h(!1)})))}function be(t,a){return a?t+"?folderUid="+a:t}var Zt=n(72760),Ht=n(27938),Qt=n(32053),J=n(50230),Ae=n(63419),_e=n(73153);const ce=50,Gt={view:new Ht.U((0,Qt.g0)({fields:[{name:"uid",display:!0,values:Array(ce).fill(null)},{name:"kind",display:!0,values:Array(ce).fill("dashboard")},{name:"name",display:!0,values:Array(ce).fill("")},{name:"location",display:!0,values:Array(ce).fill("")},{name:"tags",display:!0,values:Array(ce).fill([])}],meta:{custom:{locationInfo:[]}}})),loadMoreItems:()=>Promise.resolve(),isItemLoaded:()=>!1,totalRows:ce};function jt({width:t,height:a,canSelect:s}){const r=(0,x.useDispatch)(),c=(0,x.useSelector)(f=>f.browseDashboards.selectedItems),o=(0,F.QD)(),{keyboardEvents:i}=(0,Ae.A)(),[d,h]=q(),u=d.result??Gt,m=(0,e.useCallback)((f,E)=>f?f==="*"&&E==="*"?o:f==="*"?!1:c[qe(f)][E]??!1:!1,[c,o]),g=(0,e.useCallback)(()=>{r((0,F.u6)({isSelected:!1,folderUID:void 0}))},[r]),y=(0,e.useCallback)((f,E)=>{const v=!m(f,E);r((0,F.wk)({item:{kind:qe(f),uid:E},isSelected:v}))},[m,r]);if(u.totalRows===0)return e.createElement("div",{style:{width:t}},e.createElement(J.Z,null,e.createElement(J.Z.Heading,null,e.createElement(S.cC,{i18nKey:"browse-dashboards.no-results.text"},"No results found for your query.")),e.createElement(J.Z.Actions,null,e.createElement($.zx,{variant:"secondary",onClick:h.onClearSearchAndFilters},e.createElement(S.cC,{i18nKey:"browse-dashboards.no-results.clear"},"Clear search and filters")))));const D={response:u,selection:s?m:void 0,selectionToggle:s?y:void 0,clearSelection:g,width:t,height:a,onTagSelected:h.onAddTag,keyboardEvents:i,onDatasourceChange:d.datasource?h.onDatasourceChange:void 0,onClickItem:h.onSearchItemClicked};return e.createElement(_e.Q,{...D})}function qe(t){switch(t){case"folder":return"folder";case"dashboard":return"dashboard";case"panel":return"panel"}throw new Error("Unsupported kind"+t)}var De=n(66574);function Le(t,a,s){return s?De.Vt.hasAccessInMetadata(t,s,a):De.Vt.hasAccess(t,a)}function Jt(t){const a=t?t.canSave:De.Vt.hasEditPermissionInFolders,s=Le(x.AccessControlAction.FoldersWrite,a,t),r=Le(x.AccessControlAction.FoldersCreate,De.Vt.isEditor),c=Le(x.AccessControlAction.DashboardsCreate,a||!!t?.canSave);return{canEditInFolder:s,canCreateDashboards:c,canCreateFolder:r}}const et=(0,e.memo)(({match:t})=>{const{uid:a}=t.params,s=(0,x.useDispatch)(),r=(0,p.wW)(Xt),[c,o]=q(),i=o.hasSearchFilters();(0,e.useEffect)(()=>{o.initStateFromUrl(a),s((0,F.u6)({isSelected:!1,folderUID:void 0}))},[s,a,o]),(0,e.useEffect)(()=>{!i&&c.result&&o.setState({result:void 0,includePanels:void 0})},[i,c.result,o]);const{data:d}=(0,X.t4)(a??X.CN),[h]=(0,X.vN)(),u=(0,e.useMemo)(()=>{if(!d)return;const v=(0,B.B1)(d),C=(0,B.Pr)(d.uid),M=v.children?.find(w=>w.id===C);return M&&(M.active=!0),v},[d]),m=(0,F.QD)(),{canEditInFolder:g,canCreateDashboards:y,canCreateFolder:D}=Jt(d),f=g&&a,E=async v=>{if(d){const C=await h({...d,title:v});if("error"in C)throw C.error}};return e.createElement(P.T,{navId:"dashboards/browse",pageNav:u,onEditTitle:f?E:void 0,actions:e.createElement(e.Fragment,null,d&&e.createElement(Zt.A,{folder:d}),(y||D)&&e.createElement(Vt,{parentFolder:d,canCreateDashboard:y,canCreateFolder:D}))},e.createElement(P.T.Contents,{className:r.pageContents},e.createElement(R.H,{placeholder:ue(c.includePanels),value:c.query,escapeRegex:!1,onChange:v=>o.onQueryChange(v)}),m?e.createElement(ut,null):e.createElement(pt,null),e.createElement("div",{className:r.subView},e.createElement(b.Z,null,({width:v,height:C})=>i?e.createElement(jt,{canSelect:g,width:v,height:C}):e.createElement(Nt,{canSelect:g,width:v,height:C,folderUID:a})))))}),Xt=t=>({pageContents:(0,l.css)({display:"grid",gridTemplateRows:"auto auto 1fr",height:"100%",rowGap:t.spacing(1)}),subView:(0,l.css)({height:"100%"})});et.displayName="BrowseDashboardsPage";const Yt=et;var _t=n(45937);const qt=t=>_t.ae.getFolderByUid(t,{withAccessControl:!0}).then(a=>{const s=(0,B.B1)(a);return s.children[0].active=!0,{folder:a,folderNav:s}});var ae=n(91368),ea=n(29956);function ta(){const t=new Map;return{items:t,isSelected:(s,r)=>!!t.get(s)?.has(r)}}function aa(t,a,s,r){const c=t.items;if(r.length){const o=c.get(s);if(o){for(const i of r)a?o.add(i):o.delete(i);o.size<1&&c.delete(s)}else a&&c.set(s,new Set(r))}return{items:c,isSelected:(o,i)=>{if(i==="*"){if(o==="*"){for(const d of c.keys())if(c.get(d)?.size)return!0;return!1}return!!c.get(o)?.size}return!!c.get(o)?.has(i)}}}var na=n(8553),sa=n(62499),fe=n(12308);const tt=(0,e.memo)(({onClick:t,className:a,checked:s=!1,editable:r=!1,"aria-label":c})=>r?e.createElement(ee.X,{onClick:t,className:a,value:s,"aria-label":c}):null);tt.displayName="SearchCheckbox";const oa=le.wl.components.Search,ra=(t="")=>{const a=new Map([["errors","info-circle"],["views","eye"]]);return a.has(t)?a.get(t):"sort-amount-down"},at=({item:t,isSelected:a,editable:s,onToggleChecked:r,onTagSelected:c,onClickItem:o})=>{const i=(0,p.wW)(ca),d=(0,e.useCallback)((m,g)=>{g.stopPropagation(),g.preventDefault(),c(m)},[c]),h=(0,e.useCallback)(m=>{m.stopPropagation(),r&&r(t)},[t,r]),u=A.config.featureToggles.nestedFolders?e.createElement(e.Fragment,null,e.createElement(Y.J,{name:(0,te.J6)(t.kind),"aria-hidden":!0})," ",la(t.kind)):e.createElement(e.Fragment,null,e.createElement(Y.J,{name:(0,te.J6)(t.parentKind??"folder"),"aria-hidden":!0})," ",t.parentTitle||"General");return e.createElement("div",{className:i.cardContainer},e.createElement(tt,{className:i.checkbox,"aria-label":"Select dashboard",editable:s,checked:a,onClick:h}),e.createElement(J.Z,{className:i.card,"data-testid":oa.dashboardItem(t.title),href:t.url,style:{minHeight:T.CN},onClick:o},e.createElement(J.Z.Heading,null,t.title),e.createElement(J.Z.Meta,{separator:""},e.createElement("span",{className:i.metaContainer},u),t.sortMetaName&&e.createElement("span",{className:i.metaContainer},e.createElement(Y.J,{name:ra(t.sortMetaName)}),t.sortMeta," ",t.sortMetaName)),e.createElement(J.Z.Tags,null,e.createElement(xe.P,{tags:t.tags??[],onClick:d,getAriaLabel:m=>`Filter by tag "${m}"`}))))};function la(t){switch(t){case"folder":return(0,S.t)("search.result-kind.folder","Folder");case"dashboard":return(0,S.t)("search.result-kind.dashboard","Dashboard");case"panel":return(0,S.t)("search.result-kind.panel","Panel")}}const ca=t=>({cardContainer:(0,l.css)` display: flex; align-items: center; margin-bottom: ${t.spacing(.75)}; `,card:(0,l.css)` padding: ${t.spacing(1)} ${t.spacing(2)}; margin-bottom: 0; `,checkbox:(0,l.css)({marginRight:t.spacing(1)}),metaContainer:(0,l.css)` display: flex; align-items: center; margin-right: ${t.spacing(1)}; svg { margin-right: ${t.spacing(.5)}; } `});var ia=n(91342);async function nt(t,a,s=!1){if(!fe.default.featureToggles.nestedFolders)return console.error("getFolderChildren requires nestedFolders feature toggle"),[];if(!s&&!t)return await(0,Ie.ry)();const c=await(0,ia.O)().search({kind:["dashboard"],query:"*",location:t||"general",limit:1e3}),o=c.view.map(d=>(0,te.f9)(d,c.view));return[...await(0,Ie.ry)(t,a),...o]}async function da(t,a){if(fe.config.featureToggles.nestedFolders)return nt(t.uid,t.title);const s=t.itemsUIDs?{uid:t.itemsUIDs}:{query:"*",kind:["dashboard"],location:t.uid,sort:"name_sort",limit:1e3},r=await(0,U.getGrafanaSearcher)().search({...s,tags:a});return r.view.map(c=>(0,te.f9)(c,r.view))}const st=({section:t,selectionToggle:a,onClickItem:s,onTagSelected:r,selection:c,renderStandaloneBody:o,tags:i})=>{const d=t.uid,h=a!=null,u=(0,p.wW)((0,e.useCallback)(w=>ua(w,h),[h])),[m,g]=(0,e.useState)(()=>window.localStorage.getItem(T.__)===d),y=(0,W.Z)(async()=>!m&&!o?Promise.resolve([]):da(t,i),[m,i]),D=()=>{const w=!m;w?window.localStorage.setItem(T.__,d):window.localStorage.getItem(T.__)===d&&window.localStorage.removeItem(T.__),g(w)},f=w=>{if(w.preventDefault(),w.stopPropagation(),a&&c){const L=!c(t.kind,t.uid);a(t.kind,t.uid);const Q=y.value??[];for(const j of Q)c(j.kind,j.uid)!==L&&a(j.kind,j.uid)}},v=`section-header-label-${(0,e.useId)()}`;let C=(0,na.iJ)(t.icon??"");C||(C=m?"folder-open":"folder");const M=()=>{if(y.value){if(y.value.length===0&&!y.loading)return e.createElement(J.Z,null,e.createElement(J.Z.Heading,null,"No results found"))}else return null;return y.value.map(w=>e.createElement(at,{key:w.uid,item:w,onTagSelected:r,onToggleChecked:L=>a?.(L.kind,L.uid),editable:c!=null,onClickItem:s,isSelected:c?.(w.kind,w.uid)}))};return o?e.createElement("div",{className:u.folderViewResults},!y.value?.length&&y.loading?e.createElement(Se.$,{className:u.spinner}):M()):e.createElement(sa.s,{headerDataTestId:le.wl.components.Search.folderHeader(t.title),contentDataTestId:le.wl.components.Search.folderContent(t.title),isOpen:m??!1,onToggle:D,className:u.wrapper,contentClassName:u.content,loading:y.loading,labelId:v,label:e.createElement(e.Fragment,null,a&&c&&e.createElement("div",{onClick:f},e.createElement(ee.X,{className:u.checkbox,value:c(t.kind,t.uid),"aria-label":(0,S.t)("search.folder-view.select-folder","Select folder")})),e.createElement("div",{className:u.icon},e.createElement(Y.J,{name:C})),e.createElement("div",{className:u.text},e.createElement("span",{id:v},t.title),t.url&&t.uid!==T.YQ&&e.createElement("a",{href:t.url,className:u.link},e.createElement("span",{className:u.separator},"|")," ",e.createElement(Y.J,{name:"folder-upload"})," ",(0,S.t)("search.folder-view.go-to-folder","Go to folder"))))},y.value&&e.createElement("ul",{className:u.sectionItems},M()))},ua=(t,a)=>{const s=t.spacing(1);return{wrapper:(0,l.css)` align-items: center; font-size: ${t.typography.size.base}; padding: 12px; border-bottom: none; color: ${t.colors.text.secondary}; z-index: 1; &:hover, &.selected { color: ${t.colors.text}; } &:hover, &:focus-visible, &:focus-within { a { opacity: 1; } } `,sectionItems:(0,l.css)` margin: 0 24px 0 32px; `,icon:(0,l.css)` padding: 0 ${s} 0 ${a?0:s}; `,folderViewResults:(0,l.css)` overflow: auto; `,text:(0,l.css)` flex-grow: 1; line-height: 24px; `,link:(0,l.css)` padding: 2px 10px 0; color: ${t.colors.text.secondary}; opacity: 0; transition: opacity 150ms ease-in-out; `,separator:(0,l.css)` margin-right: 6px; `,content:(0,l.css)` padding-top: 0px; padding-bottom: 0px; `,spinner:(0,l.css)` display: grid; place-content: center; padding-bottom: 1rem; `,checkbox:(0,l.css)({marginRight:t.spacing(1)})}};var ma=n(3613),Me=n(77799);const ha=({results:t,onDeleteItems:a,onDismiss:s})=>{const r=(0,p.wW)(ga),c=Array.from(t.get("dashboard")??[]),o=Array.from(t.get("folder")??[]),i=o.length,d=c.length;let h="Do you want to delete the ",u;const m=d===1?"":"s",g=i===1?"":"s";i>0&&d>0?(h+=`selected folder${g} and dashboard${m}? `,u=`All dashboards and alerts of the selected folder${g} will also be deleted`):i>0?h+=`selected folder${g} and all ${i===1?"its":"their"} dashboards and alerts?`:h+=`${d} selected dashboard${m}?`;const y=()=>{(0,Me.Fd)(o,c).then(()=>{a(),s()})},D=fe.config.featureToggles.nestedFolders&&i>0;return e.createElement(ma.s,{isOpen:!0,title:"Delete",body:e.createElement(e.Fragment,null,h," ",u&&e.createElement("div",{className:r.subtitle},u)),confirmText:"Delete",confirmationText:D?"delete":void 0,onConfirm:y,onDismiss:s})},ga=t=>({subtitle:(0,l.css)` font-size: ${t.typography.fontSize}px; padding-top: ${t.spacing(2)}; `});var fa=n(13741),ot=n(63439),va=n(41482),Ea=n(73807);const rt=({results:t,onMoveItems:a,onDismiss:s})=>{const[r,c]=(0,e.useState)(null),o=(0,p.wW)(ya),i=(0,Ea.iG)(),[d,h]=(0,e.useState)(!1),u=fe.default.featureToggles.nestedFolders,m=Array.from(t.get("dashboard")??[]),g=u?Array.from(t.get("folder")??[]).filter(E=>E!==T.YQ):[],y=(0,e.useCallback)(E=>{c(E)},[c]),D=async()=>{if(r){if(u){h(!0);let E=0,v=0;if(m.length){const M=await(0,Me.ct)(m,r);E+=M.totalCount,v+=M.successCount}if(g.length){const M=await(0,Me.Jx)(g,r);E+=M.totalCount,v+=M.successCount}const C=r.title??"General";pa(i,C,{selectedDashboardsCount:m.length,selectedFoldersCount:g.length,totalCount:E,successCount:v}),a(),h(!1),s();return}if(m.length){const E=r.title??"General";h(!0),(0,Me.ct)(m,r).then(v=>{if(v.successCount>0){const C=v.successCount===1?"":"s",M=`Dashboard${C} Moved`,w=`${v.successCount} dashboard${C} moved to ${E}`;i.success(M,w)}v.totalCount===v.alreadyInFolderCount?i.error("Error",`Dashboard already belongs to folder ${E}`):a(),h(!1),s()})}}},f=[["folder","folders",g.length],["dashboard","dashboards",m.length]].filter(([E,v,C])=>C>0).map(([E,v,C])=>`${C.toLocaleString()} ${C===1?E:v}`).join(" and ");return e.createElement(fa.u,{isOpen:!0,className:o.modal,title:u?"Move":"Choose Dashboard Folder",icon:"folder-plus",onDismiss:s},e.createElement(e.Fragment,null,e.createElement("div",{className:o.content},u&&g.length>0&&e.createElement(ot.b,{severity:"warning",title:" Moving this item may change its permissions"}),e.createElement("p",null,"Move ",f," to:"),e.createElement(va.Fz,{allowEmpty:!0,enableCreateNew:!1,onChange:y})),e.createElement(re.Lh,{justify:"flex-end"},e.createElement($.zx,{variant:"secondary",onClick:s,fill:"outline"},"Cancel"),e.createElement($.zx,{icon:d?"fa fa-spinner":void 0,variant:"primary",onClick:D},"Move"))))};function pa(t,a,{selectedDashboardsCount:s,selectedFoldersCount:r,totalCount:c,successCount:o}){let i;const d=o===1?"":"s",h=c-o;if(s&&r?i=`Item${d}`:s?i=`Dashboard${d}`:r&&(i=`Folder${d}`),i){const u=i?.toLocaleLowerCase();c===o?t.success(`${i} moved`,`Moved ${o} ${u} to ${a}`):o===0?t.error(`Failed to move ${u}`,`Could not move ${c} ${u} due to an error`):t.warning(`Partially moved ${u}`,`Failed to move ${h} ${u} to ${a}`)}}const ya=t=>({modal:(0,l.css)` width: 500px; `,content:(0,l.css)` margin-bottom: ${t.spacing(3)}; `});function Ca({items:t,folder:a,onChange:s,clearSelection:r}){const c=(0,p.wW)(We),o=a?.canSave,i=a?o:ae.contextSrv.hasEditPermissionInFolders,d=i,u=Array.from(t.get("folder")??[]).find(C=>C===T.YQ),m=i&&!u,[g,y]=(0,e.useState)(!1),[D,f]=(0,e.useState)(!1),E=()=>{y(!0)},v=()=>{f(!0)};return e.createElement("div",{className:c.actionRow,"data-testid":"manage-actions"},e.createElement(re.Lh,{spacing:"md",width:"auto"},e.createElement(ze.h,{name:"check-square",onClick:r,tooltip:"Uncheck everything"}),e.createElement($.zx,{disabled:!d,onClick:E,icon:"exchange-alt",variant:"secondary"},"Move"),e.createElement($.zx,{disabled:!m,onClick:v,icon:"trash-alt",variant:"destructive"},"Delete")),D&&e.createElement(ha,{onDeleteItems:s,results:t,onDismiss:()=>f(!1)}),g&&e.createElement(rt,{onMoveItems:s,results:t,onDismiss:()=>y(!1)}))}var Sa=n(73289),ba=n(6872);async function Da(){if(fe.default.featureToggles.nestedFolders)return nt();const t=(0,U.getGrafanaSearcher)(),a=await t.search({query:"*",kind:["folder"],sort:t.getFolderViewSort(),limit:1e3});return a.view.map(s=>(0,te.f9)(s,a.view))}const Ma=({selection:t,selectionToggle:a,onTagSelected:s,tags:r,hidePseudoFolders:c,onClickItem:o})=>{const i=(0,p.wW)(wa),d=(0,W.Z)(async()=>{const u=await Da();if(u.unshift({title:"General",url:"/dashboards",kind:"folder",uid:T.YQ}),!c){const m=await ba.Z.getDashboardOpened();if(m.length&&u.unshift({title:"Recent",icon:"clock-nine",kind:"folder",uid:"__recent",itemsUIDs:m}),ae.contextSrv.isSignedIn){const g=await(0,Sa.i)().get("api/user/stars");g.length>0&&u.unshift({title:"Starred",icon:"star",kind:"folder",uid:"__starred",itemsUIDs:g})}}return u},[]),h=()=>d.loading?e.createElement(Se.$,{className:i.spinner}):d.value?d.value.map(u=>e.createElement("div",{"data-testid":le.wl.components.Search.sectionV2,className:i.section,key:u.title},u.title&&e.createElement(st,{selection:t,selectionToggle:a,onTagSelected:s,section:u,tags:r,onClickItem:o}))):e.createElement(ot.b,{className:i.error,title:d.error?d.error.message:"Something went wrong"});return e.createElement("div",{className:i.wrapper},h())},wa=t=>({wrapper:(0,l.css)` display: flex; flex-direction: column; overflow: auto; > ul { list-style: none; } border: solid 1px ${t.v1.colors.border2}; `,section:(0,l.css)` display: flex; flex-direction: column; background: ${t.v1.colors.panelBg}; &:not(:last-child) { border-bottom: solid 1px ${t.v1.colors.border2}; } `,spinner:(0,l.css)` align-items: center; display: flex; justify-content: center; min-height: 100px; `,error:(0,l.css)` margin: ${t.spacing(4)} auto; `}),lt=e.memo(({response:t,width:a,height:s,selection:r,selectionToggle:c,onTagSelected:o,keyboardEvents:i,onClickItem:d})=>{const h=(0,p.wW)(Pa),u=(0,e.useRef)(null),[m,g]=(0,e.useState)(null),y=(0,Ae.v)(i,0,t);(0,e.useEffect)(()=>{u.current&&u.current.resetloadMoreItemsCache(),m&&m.scrollTo(0)},[t,m]);const D=(0,e.useCallback)(({index:f,style:E})=>{let v="";f===y.y&&(v+=" "+h.selectedRow);const C=t.view.get(f),M=(0,te.f9)(C,t.view),w=c&&r?.(M.kind,M.uid);return e.createElement("div",{style:E,key:C.uid,className:v,role:"row"},e.createElement(at,{item:M,onTagSelected:o,onToggleChecked:L=>{c&&c("dashboard",L.uid)},editable:r!=null,onClickItem:d,isSelected:w}))},[t.view,y,h,o,r,c,d]);return t.totalRows?e.createElement("div",{"aria-label":"Search results list",style:{width:a},role:"list"},e.createElement(ke.Z,{ref:u,isItemLoaded:t.isItemLoaded,itemCount:t.totalRows,loadMoreItems:t.loadMoreItems},({onItemsRendered:f,ref:E})=>e.createElement(Ke.t7,{ref:v=>{E(v),g(v)},onItemsRendered:f,height:s,itemCount:t.totalRows,itemSize:72,width:"100%",style:{overflow:"hidden auto"}},D))):e.createElement("div",{className:h.noData,style:{width:a}},"No data")});lt.displayName="SearchResultsCards";const Pa=t=>({noData:(0,l.css)` display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; `,selectedRow:(0,l.css)` border-left: 3px solid ${t.colors.primary.border}; `}),Ia=({showManage:t,folderDTO:a,hidePseudoFolders:s,keyboardEvents:r})=>{const c=(0,p.wW)(Ta),o=de(),i=o.useState(),[d,h]=(0,e.useState)(ta()),u=$e(i),m=u===I.A.Folders,[g,y]=(0,e.useState)(Date.now());(0,ea.Z)(o.onReportSearchUsage,1e3,[]);const D=(0,e.useCallback)(()=>{d.items.clear(),h({...d})},[d]),f=(0,e.useCallback)((C,M)=>{const w=d.isSelected(C,M);h(aa(d,!w,C,[M]))},[d]),E=async()=>{D(),y(Date.now()),o.onQueryChange(i.query)},v=()=>{const C=i.result;if((!C||!C.totalRows)&&!m)return i.loading&&!C?e.createElement(Se.$,null):e.createElement("div",{className:c.noResults},e.createElement("div",null,e.createElement(S.cC,{i18nKey:"search-view.no-results.text"},"No results found for your query.")),e.createElement("br",null),e.createElement($.zx,{variant:"secondary",onClick:o.onClearSearchAndFilters},e.createElement(S.cC,{i18nKey:"search-view.no-results.clear"},"Clear search and filters")));const M=t?d.isSelected:void 0;return u===I.A.Folders?a?e.createElement(st,{section:xa(a),selection:M,selectionToggle:f,onTagSelected:o.onAddTag,renderStandaloneBody:!0,tags:i.tag,key:g,onClickItem:o.onSearchItemClicked}):e.createElement(Ma,{key:g,selection:M,selectionToggle:f,tags:i.tag,onTagSelected:o.onAddTag,hidePseudoFolders:s,onClickItem:o.onSearchItemClicked}):e.createElement("div",{style:{height:"100%",width:"100%"}},e.createElement(b.Z,null,({width:w,height:L})=>{const Q={response:C,selection:M,selectionToggle:f,clearSelection:D,width:w,height:L,onTagSelected:o.onAddTag,keyboardEvents:r,onDatasourceChange:i.datasource?o.onDatasourceChange:void 0,onClickItem:o.onSearchItemClicked};return w<800?e.createElement(lt,{...Q}):e.createElement(_e.Q,{...Q})}))};return a&&!A.config.featureToggles.nestedFolders&&!i.loading&&!i.result?.totalRows&&!o.hasSearchFilters()?e.createElement(Ue.Z,{title:"This folder doesn't have any dashboards yet",buttonIcon:"plus",buttonTitle:"Create Dashboard",buttonLink:`dashboard/new?folderUid=${a.uid}`,proTip:"Add/move dashboards to your folder at ->",proTipLink:"dashboards",proTipLinkTitle:"Manage dashboards",proTipTarget:""}):e.createElement(e.Fragment,null,d.items.size>0?e.createElement(Ca,{items:d.items,onChange:E,clearSelection:D}):e.createElement(Pe,{onLayoutChange:o.onLayoutChange,showStarredFilter:s,onStarredFilterChange:s?o.onStarredFilterChange:void 0,onSortChange:o.onSortChange,onTagFilterChange:o.onTagFilterChange,getTagOptions:o.getTagOptions,getSortOptions:(0,U.getGrafanaSearcher)().getSortOptions,sortPlaceholder:(0,U.getGrafanaSearcher)().sortPlaceholder,onDatasourceChange:o.onDatasourceChange,onPanelTypeChange:o.onPanelTypeChange,state:i,includePanels:i.includePanels,onSetIncludePanels:o.onSetIncludePanels}),v())},Ta=t=>({searchInput:(0,l.css)` margin-bottom: 6px; min-height: ${t.spacing(4)}; `,unsupported:(0,l.css)` padding: 10px; display: flex; align-items: center; justify-content: center; height: 100%; font-size: 18px; `,noResults:(0,l.css)` padding: ${t.v1.spacing.md}; background: ${t.v1.colors.bg2}; font-style: italic; margin-top: ${t.v1.spacing.md}; `});function xa(t){return{uid:t.uid,kind:"folder",title:t.title}}const Fa=({folder:t,canCreateFolders:a=!1,canCreateDashboards:s=!1})=>{const[r,c]=(0,e.useState)(!1),o=A.config.featureToggles.nestedFolders&&(t?.canSave??!1),i=(0,e.useMemo)(()=>new Map([["folder",new Set(t?.uid?[t.uid]:[])]]),[t]),d=u=>{let m=`dashboard/${u}`;return u==="new_folder"&&(m="dashboards/folder/new/"),t?.uid&&(m+=`?folderUid=${t.uid}`),m},h=()=>e.createElement(ge.v,null,s&&e.createElement(ge.v.Item,{url:d("new"),label:me(),onClick:()=>(0,G.ff)("grafana_menu_item_clicked",{url:d("new"),from:"/dashboards"})}),a&&(A.config.featureToggles.nestedFolders||!t?.uid)&&e.createElement(ge.v.Item,{url:d("new_folder"),label:he(),onClick:()=>(0,G.ff)("grafana_menu_item_clicked",{url:d("new_folder"),from:"/dashboards"})}),s&&e.createElement(ge.v.Item,{url:d("import"),label:Ee(),onClick:()=>(0,G.ff)("grafana_menu_item_clicked",{url:d("import"),from:"/dashboards"})}));return e.createElement(e.Fragment,null,e.createElement("div",null,e.createElement(re.Lh,null,o&&e.createElement($.zx,{onClick:()=>c(!0),icon:"exchange-alt",variant:"secondary"},"Move"),e.createElement(Ye.L,{overlay:h,placement:"bottom-start"},e.createElement($.zx,{variant:"primary"},pe(),e.createElement(Y.J,{name:"angle-down"}))))),o&&r&&e.createElement(rt,{onMoveItems:()=>{},results:i,onDismiss:()=>c(!1)}))},ct=e.memo(({folder:t})=>{const a=(0,p.wW)(La),s=de(),r=s.useState(),{onKeyDown:c,keyboardEvents:o}=(0,Ae.A)(),i=t?.uid,d=t?.canSave,{isEditor:h}=ae.contextSrv,u=t?d:ae.contextSrv.hasEditPermissionInFolders,m=ae.contextSrv.hasAccess(x.AccessControlAction.FoldersCreate,h),g=u||!!d,y=i?ae.contextSrv.hasAccessInMetadata(x.AccessControlAction.DashboardsCreate,t,g):ae.contextSrv.hasAccess(x.AccessControlAction.DashboardsCreate,g),D=t===void 0&&m||y;return(0,e.useEffect)(()=>s.initStateFromUrl(t?.uid),[t?.uid,s]),e.createElement(e.Fragment,null,e.createElement("div",{className:(0,l.cx)(a.actionBar,"page-action-bar")},e.createElement("div",{className:(0,l.cx)(a.inputWrapper,"gf-form gf-form--grow m-r-2")},e.createElement(R.H,{value:r.query??"",onChange:f=>s.onQueryChange(f),onKeyDown:c,autoFocus:!0,spellCheck:!1,placeholder:ue(r.includePanels),escapeRegex:!1,className:a.searchInput})),D&&e.createElement(Fa,{folder:t,canCreateFolders:m,canCreateDashboards:y})),e.createElement(Ia,{showManage:!!(h||u||d),folderDTO:t,hidePseudoFolders:!0,keyboardEvents:o}))});ct.displayName="ManageDashboardsNew";const Aa=ct,La=t=>({actionBar:(0,l.css)` ${t.breakpoints.down("sm")} { flex-wrap: wrap; } `,inputWrapper:(0,l.css)` ${t.breakpoints.down("sm")} { margin-right: 0 !important; } `,searchInput:(0,l.css)` margin-bottom: 6px; min-height: ${t.spacing(4)}; `,unsupported:(0,l.css)` padding: 10px; display: flex; align-items: center; justify-content: center; height: 100%; font-size: 18px; `,noResults:(0,l.css)` padding: ${t.v1.spacing.md}; background: ${t.v1.colors.bg2}; font-style: italic; margin-top: ${t.v1.spacing.md}; `}),Oe=(0,e.memo)(t=>A.config.featureToggles.nestedFolders?e.createElement(Yt,{...t}):e.createElement(it,{...t}));Oe.displayName="DashboardListPageFeatureToggle";const it=(0,e.memo)(({match:t,location:a})=>{const{loading:s,value:r}=(0,W.Z)(()=>{const c=t.params.uid,o=a.pathname;return!c||!o.startsWith("/dashboards")?Promise.resolve({}):qt(c).then(({folder:i,folderNav:d})=>{const h=z.u.stripBaseFromUrl(i.url);return h!==a.pathname&&O.E1.replace(h),{folder:i,pageNav:d}})},[t.params.uid]);return e.createElement(P.T,{navId:"dashboards/browse",pageNav:r?.pageNav},e.createElement(P.T.Contents,{isLoading:s,className:(0,l.css)` display: flex; flex-direction: column; height: 100%; `},e.createElement(Aa,{folder:r?.folder})))});it.displayName="DashboardListPage";const Oa=Oe},46430:(ne,K,n)=>{n.d(K,{Jy:()=>z,Nw:()=>O,OY:()=>W,Qw:()=>e,TP:()=>A});var l=n(86312);const e=(b,p)=>{(0,l.ff)(`${b}_viewed`,P(p))},W=(b,p)=>{(0,l.ff)(`${b}_result_clicked`,P(p))},z=(b,p)=>{(0,l.ff)(`${b}_query_submitted`,P(p))},A=(b,{error:p,...R})=>{(0,l.ff)(`${b}_query_failed`,{...P(R),error:p})},O=(b,p,R)=>{(0,l.ff)(`grafana_panel_inspect_${b}_${p}_clicked`,R)},P=b=>({layout:b.layout,starredFilter:b.starred??!1,sort:b.sortValue??"",tagCount:b.tagCount??0,queryLength:b.query?.length??0,includePanels:b.includePanels??!1})}}]); //# sourceMappingURL=DashboardListPage.ad2724ee208bbbf53547.js.map