UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 14.1 kB
(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`n8n@2.13.4`}}catch{}})();try{(function(){var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`a762284c-e4b8-49bf-a75b-2496a80ed196`,e._sentryDebugIdIdentifier=`sentry-dbid-a762284c-e4b8-49bf-a75b-2496a80ed196`)})()}catch{}import{o as e}from"./chunk-DxpFCn6T.js";import{$ as t,A as n,C as r,E as i,F as a,Ft as o,N as s,S as c,Sn as l,T as u,W as ee,Wt as d,X as te,_ as f,_n as p,bt as ne,ft as re,gt as m,it as h,j as g,p as ie,q as ae,rt as _,vn as oe,w as v,yt as y}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{M as b,bt as x}from"./_MapCache-CUJwh2qp.js";import{$i as se,Ct as ce,Et as le,Fi as ue,Kt as de,Ri as fe,Tt as pe,V as me,Zi as he,_t as ge,gt as _e,lt as ve,tt as ye,zt as S}from"./src-wni2AGA3.js";import{t as C}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import{Jr as w,ai as be,en as xe,ri as T,t as Se}from"./users.store-BHWXXawf.js";import{wc as E}from"./constants-CIP7tKq1.js";import{t as Ce}from"./useDebounce-CTeIt-cH.js";import{r as D}from"./readyToRun.store-DpPozriV.js";import{t as we}from"./ResourceFiltersDropdown-xUxdFA2c.js";var O={wrapper:`_wrapper_1bol0_125`,content:`_content_1bol0_141`},k={};function A(e,n){return t(),i(`div`,{class:p(e.$style.wrapper)},[h(e.$slots,`header`),r(`main`,{class:p(e.$style.content)},[h(e.$slots,`default`)],2)],2)}var Te=C(k,[[`render`,A],[`__cssModules`,{$style:O}]]),Ee=C(s({__name:`PageViewLayoutList`,props:{overflow:{type:Boolean}},setup(e){return(n,a)=>(t(),i(`div`,{class:p({[n.$style.wrapper]:!0,[n.$style.overflow]:e.overflow})},[r(`div`,{class:p(n.$style.list)},[n.$slots.header?(t(),i(`div`,{key:0,class:p(n.$style.header)},[h(n.$slots,`header`)],2)):u(``,!0),r(`div`,{class:p(n.$style.body)},[h(n.$slots,`default`)],2)],2)],2))}}),[[`__cssModules`,{$style:{wrapper:`_wrapper_mbox7_125`,overflow:`_overflow_mbox7_130`,list:`_list_mbox7_130`,body:`_body_mbox7_130`}}]]);function De(){let e=D(),t=t=>e.isOverviewSubPage?`home`:t;return{saveProjectPreferencesToLocalStorage:(e,n,r)=>{let i=t(e);if(!i)return;let a=b(E,{});a.value[i]||(a.value[i]={}),a.value[i][n]={...a.value[i][n],...r}},loadProjectPreferencesFromLocalStorage:(e,n)=>{let r=t(e);return r&&b(`N8N_WORKFLOWS_LIST_PREFERENCES`,{}).value[r]?.[n]||{}},getProjectKey:t}}function Oe(e){let t=x();return{getResourceText:(n,r,i)=>{let a=`${e}.${n}`,o=`resources.${n}`,s=r?`resources.${r}`:void 0;return w(a)?t.baseText(a,{interpolate:i}):w(o)?t.baseText(o,{interpolate:i}):s&&w(s)?t.baseText(s,{interpolate:i}):n.split(`.`).pop()?.replace(/([A-Z])/g,` $1`).trim()||n}}}var ke={key:0,class:`resource-list-loading`},Ae={key:0},je={key:0,class:`mt-xs`,"data-test-id":`resources-list-filters-applied-info`},Me={key:0,class:`resource-list-loading resource-list-loading-instant`},j=C(s({__name:`ResourcesListLayout`,props:{resourceKey:{},displayName:{type:Function,default:e=>e.name||``},resources:{},disabled:{type:Boolean},initialize:{type:Function,default:async()=>{}},filters:{default:()=>({search:``,homeProject:``})},additionalFiltersHandler:{type:Function,default:void 0},shareable:{type:Boolean,default:!0},sortFns:{default:()=>({})},sortOptions:{default:()=>[`lastUpdated`,`lastCreated`,`nameAsc`,`nameDesc`]},type:{default:`list-full`},typeProps:{default:()=>({itemSize:80})},loading:{type:Boolean,default:!0},customPageSize:{default:25},availablePageSizeOptions:{default:()=>[10,25,50,100]},totalItems:{default:0},resourcesRefreshing:{type:Boolean,default:!1},dontPerformSortingAndFiltering:{type:Boolean,default:!1},hasEmptyState:{type:Boolean,default:!0},uiConfig:{default:()=>({searchEnabled:!0,showFiltersDropdown:!0,sortEnabled:!0})},tabKey:{default:`workflows`},persistKeyExclusions:{default:()=>[]}},emits:[`update:filters`,`click:add`,`update:pagination-and-sort`,`update:search`],setup(e,{expose:s,emit:b}){let x=_e(),C=ge(),{callDebounced:w}=Ce(),E=Se(),D=xe(),O=De(),k=e,{getResourceText:A}=Oe(k.resourceKey),j=o(k.sortOptions[0]),M=o(!1),N=o(1),P=o(k.customPageSize),F=o(!1),I=o(null),L=o(null),R=o(null),z=o(k.customPageSize),B=o(k.sortOptions[0]),V=b;re();let H=c({get:()=>k.filters,set:e=>V(`update:filters`,e)}),Ne=c(()=>k.hasEmptyState&&k.resources.length===0&&!M.value&&!H.value.search&&!k.resourcesRefreshing),U=c(()=>Object.keys(H.value)),W=c(()=>k.dontPerformSortingAndFiltering?k.resources:k.resources.filter(e=>{let t=!0;if(H.value.homeProject&&be(e)&&(t&&=!!(`homeProject`in e&&e.homeProject&&e.homeProject.id===H.value.homeProject)),H.value.search){let n=H.value.search.toLowerCase();t&&=k.displayName(e).toLowerCase().includes(n)}return k.additionalFiltersHandler&&(t=k.additionalFiltersHandler(e,H.value,t)),t}).sort((e,t)=>{let n=T(e)&&T(t);switch(j.value){case`lastUpdated`:return n&&`updatedAt`in e&&`updatedAt`in t?k.sortFns.lastUpdated?k.sortFns.lastUpdated(e,t):new Date(t.updatedAt??``).valueOf()-new Date(e.updatedAt??``).valueOf():0;case`lastCreated`:return n&&`createdAt`in e&&`createdAt`in t?k.sortFns.lastCreated?k.sortFns.lastCreated(e,t):new Date(t.createdAt??``).valueOf()-new Date(e.createdAt??``).valueOf():0;case`nameAsc`:return k.sortFns.nameAsc?k.sortFns.nameAsc(e,t):k.displayName(e).trim().localeCompare(k.displayName(t).trim());case`nameDesc`:return k.sortFns.nameDesc?k.sortFns.nameDesc(e,t):k.displayName(t).trim().localeCompare(k.displayName(e).trim());default:return k.sortFns[j.value]?k.sortFns[j.value](e,t):0}}));m(()=>k.filters,e=>{H.value=e,q()&&(M.value=!0)}),m(()=>H.value.homeProject,()=>{Z(`homeProject`)}),m(()=>H.value.tags,()=>{Z(`tags`)}),m(()=>H.value.type,()=>{Z(`type`)}),m(()=>H.value.search,()=>w(Z,{debounceTime:1e3,trailing:!0},`search`)),m(()=>H.value.setupNeeded,()=>{Z(`setupNeeded`)}),m(()=>H.value.incomplete,()=>{Z(`incomplete`)}),m([()=>x.params?.projectId,()=>x.name],async()=>{await Q(),await We(),await k.initialize()}),te(async()=>{await We(),await k.initialize(),await ee(),q()&&(M.value=!0),window.addEventListener(`keydown`,G)}),ae(()=>{window.removeEventListener(`keydown`,G)});let G=e=>{k.uiConfig.searchEnabled&&(e.ctrlKey||e.metaKey)&&e.key===`f`&&(e.preventDefault(),Pe())},Pe=()=>{I.value&&I.value.focus()},K=e=>e===`search`?!1:typeof k.filters[e]==`boolean`?k.filters[e]:Array.isArray(k.filters[e])?k.filters[e].length>0:k.filters[e]!==``,Fe=c(()=>{let e=U.value.filter(K),t=[`showArchived`];return e.every(e=>t.includes(e))}),q=()=>!!U.value.find(K),J=async e=>{P.value=e,await $(),V(`update:pagination-and-sort`,{pageSize:e})},Y=async(e,t=!0)=>{j.value=e,t&&(await $(),Be()),V(`update:pagination-and-sort`,{sort:e})},X=async(e,t=!0)=>{N.value=e,t&&await $(),V(`update:pagination-and-sort`,{page:e})},Z=e=>{if(F.value){if(e!==`reset`)return;setTimeout(()=>F.value=!1,1500)}let t=H.value,n=[],r=[];Object.keys(t).forEach(e=>{t[e]&&(n.push(e),r.push(e===`search`?null:t[e]))}),D.track(`User set filters in ${k.resourceKey} list`,{filters_set:n,filter_values:r,[`${k.resourceKey}_total_in_view`]:k.resources.length,[`${k.resourceKey}_after_filtering`]:W.value.length})},Ie=e=>{V(`click:add`,e)},Le=e=>{V(`update:filters`,e)},Q=async()=>{Object.keys(H.value).forEach(e=>{H.value[e]=Array.isArray(H.value[e])?[]:``}),await X(1,!1),F.value=!0,M.value=!1,Z(`reset`),V(`update:filters`,H.value)},Re=()=>`itemSize`in k.typeProps?k.typeProps.itemSize:0,ze=()=>`columns`in k.typeProps?k.typeProps.columns:[],Be=()=>{D.track(`User changed sorting in ${k.resourceKey} list`,{sorting:j.value})},Ve=e=>{M.value=e>0},He=e=>{H.value.search=e,V(`update:search`,e)},Ue=e=>k.availablePageSizeOptions.reduce((t,n)=>Math.abs(n-e)<Math.abs(t-e)?n:t),$=async()=>{if(k.type!==`list-paginated`)return;let e={...x.query};N.value===1?delete e.page:e.page=N.value.toString(),P.value===z.value?delete e.pageSize:(e.pageSize=P.value.toString(),z.value=P.value),j.value!==B.value&&!k.persistKeyExclusions.includes(j.value)?(e.sort=j.value,B.value=j.value):delete e.sort,O.saveProjectPreferencesToLocalStorage(x.params.projectId??``,k.tabKey,{sort:k.persistKeyExclusions.includes(j.value)?B.value:j.value,pageSize:P.value}),await C.replace({query:Object.keys(e).length?e:void 0})},We=async()=>{if(k.type!==`list-paginated`)return;let e=x.query,t=O.loadProjectPreferencesFromLocalStorage(x.params.projectId??``,k.tabKey),n={};if(e.page){let t=parseInt(e.page,10);t>1&&(N.value=t,n.page=t)}if(e.pageSize??t.pageSize){let r=Ue(parseInt(e.pageSize||String(t.pageSize),10));P.value=r,n.pageSize=r,z.value=r}else P.value=k.customPageSize,n.pageSize=k.customPageSize;e.sort?j.value=n.sort=B.value=e.sort:t.sort?(await Y(t.sort,!1),n.sort=t.sort,B.value=t.sort):j.value=k.sortOptions[0],V(`update:pagination-and-sort`,n)};return s({currentPage:N,setCurrentPage:X,getScrollContainer:()=>k.type===`list-paginated`?R.value??null:L.value??null}),(o,s)=>(t(),v(Te,null,{header:y(()=>[h(o.$slots,`header`,{},void 0,!0)]),default:y(()=>[e.loading?(t(),i(`div`,ke,[g(d(S),{rows:25,"shrink-last":!1})])):(t(),i(f,{key:1},[Ne.value?(t(),i(`div`,Ae,[h(o.$slots,`empty`,{},()=>[g(d(fe),{"data-test-id":`empty-resources-list`,icon:{type:`emoji`,value:`👋`},heading:d(A)(d(E).currentUser?.firstName?`empty.heading`:`empty.heading.userNotSetup`,d(E).currentUser?.firstName?`empty.heading`:`empty.heading.userNotSetup`,{name:d(E).currentUser?.firstName??``}),description:d(A)(`empty.description`),"button-text":d(A)(`empty.button`),"button-type":`secondary`,"button-disabled":e.disabled,"onClick:button":Ie},{disabledButtonTooltip:y(()=>[n(l(d(A)(`empty.button.disabled.tooltip`)),1)]),_:1},8,[`heading`,`description`,`button-text`,`button-disabled`])],!0)])):(t(),v(Ee,{key:1},{header:y(()=>[r(`div`,{class:p(o.$style[`filters-row`])},[r(`div`,{class:p(o.$style.filters)},[h(o.$slots,`breadcrumbs`,{},void 0,!0),k.uiConfig.searchEnabled?(t(),v(d(ue),{key:0,ref_key:`search`,ref:I,"model-value":H.value.search,class:p(o.$style.search),placeholder:d(A)(`search.placeholder`,`search.placeholder`),size:`medium`,clearable:``,"data-test-id":`resources-list-search`,"onUpdate:modelValue":He},{prefix:y(()=>[g(d(se),{icon:`search`})]),_:1},8,[`model-value`,`class`,`placeholder`])):u(``,!0),k.uiConfig.sortEnabled?(t(),i(`div`,{key:1,class:p(o.$style[`sort-and-filter`])},[g(d(pe),{modelValue:j.value,"onUpdate:modelValue":s[0]||=e=>j.value=e,size:`small`,class:p(o.$style.resourceList),"data-test-id":`resources-list-sort`,onChange:s[1]||=e=>Y(j.value)},{default:y(()=>[(t(!0),i(f,null,_(e.sortOptions,e=>(t(),v(d(le),{key:e,"data-test-id":`resources-list-sort-item`,value:e,label:d(A)(`sort.${e}`,`sort.${e}`)},null,8,[`value`,`label`]))),128))]),_:1},8,[`modelValue`,`class`])],2)):u(``,!0),k.uiConfig.showFiltersDropdown?(t(),i(`div`,{key:2,class:p(o.$style[`sort-and-filter`])},[g(we,{keys:U.value,reset:Q,"model-value":H.value,shareable:e.shareable,"just-icon":!0,"onUpdate:modelValue":Le,"onUpdate:filtersLength":Ve},{default:y(e=>[h(o.$slots,`filters`,oe(a(e)),void 0,!0)]),_:3},8,[`keys`,`model-value`,`shareable`]),h(o.$slots,`add-button`,{},void 0,!0)],2)):u(``,!0)],2)],2),h(o.$slots,`callout`,{},void 0,!0),k.uiConfig.showFiltersDropdown?ne((t(),i(`div`,je,[g(d(ye),{bold:!1},{default:y(()=>[n(l(Fe.value?d(A)(`filters.active.shortText`,`filters.active.shortText`):d(A)(`filters.active`,`filters.active`))+` `,1),g(d(ve),{"data-test-id":`workflows-filter-reset`,size:`small`,onClick:Q},{default:y(()=>[n(l(d(A)(`filters.active.reset`,`filters.active.reset`)),1)]),_:1})]),_:1})],512)),[[ie,M.value]]):u(``,!0),s[4]||=r(`div`,{class:`pb-xs`},null,-1)]),default:y(()=>[h(o.$slots,`preamble`,{},void 0,!0),e.resourcesRefreshing?(t(),i(`div`,Me,[g(d(S),{rows:P.value,"shrink-last":!1},null,8,[`rows`])])):W.value.length>0?(t(),i(`div`,{key:1,ref_key:`listWrapperRef`,ref:L,"data-test-id":`resources-list-wrapper`,class:p(o.$style.listWrapper)},[e.type===`list-full`?(t(),v(d(me),{key:0,"data-test-id":`resources-list`,items:W.value,"item-size":Re(),"item-key":`id`},{default:y(({item:e,updateItemSize:t})=>[h(o.$slots,`default`,{data:e,updateItemSize:t},void 0,!0)]),_:3},8,[`items`,`item-size`])):e.type===`list-paginated`?(t(),i(`div`,{key:1,class:p(o.$style.paginatedListWrapper),"data-test-id":`paginated-list`},[r(`div`,{ref_key:`listItemsRef`,ref:R,class:p(o.$style.listItems)},[(t(!0),i(f,null,_(e.resources,(e,r)=>(t(),i(`div`,{key:r,class:p(o.$style.listItem)},[h(o.$slots,`item`,{item:e,index:r},()=>[n(l(e),1)],!0)],2))),128))],2),r(`div`,{class:p(o.$style.listPagination)},[g(d(de),{"current-page":N.value,"onUpdate:currentPage":[s[2]||=e=>N.value=e,X],"page-size":P.value,"onUpdate:pageSize":s[3]||=e=>P.value=e,background:``,total:e.totalItems,"page-sizes":e.availablePageSizeOptions,layout:`total, prev, pager, next, sizes`,"data-test-id":`resources-list-pagination`,onSizeChange:J},null,8,[`current-page`,`page-size`,`total`,`page-sizes`])],2)],2)):u(``,!0),e.type===`datatable`?(t(),v(d(ce),{key:2,"data-test-id":`resources-table`,class:p(o.$style.datatable),columns:ze(),rows:W.value,"current-page":N.value,"rows-per-page":P.value,"onUpdate:currentPage":X,"onUpdate:rowsPerPage":J},{row:y(({columns:e,row:t})=>[h(o.$slots,`default`,{data:t,columns:e},void 0,!0)]),postdata:y(()=>[h(o.$slots,`postdata`,{},void 0,!0)]),_:3},8,[`class`,`columns`,`rows`,`current-page`,`rows-per-page`])):u(``,!0)],2)):q()||H.value.search!==``?(t(),v(d(he),{key:2,color:`text-base`,size:`medium`,"data-test-id":`resources-list-empty`},{default:y(()=>[n(l(d(A)(`noResults`,`noResults`)),1)]),_:1})):u(``,!0),h(o.$slots,`postamble`,{},void 0,!0)]),_:3}))],64))]),_:3}))}}),[[`__cssModules`,{$style:{"filters-row":`_filters-row_sk3u7_125`,filters:`_filters_sk3u7_125`,"sort-and-filter":`_sort-and-filter_sk3u7_143`,search:`_search_sk3u7_161`,listWrapper:`_listWrapper_sk3u7_171`,paginatedListWrapper:`_paginatedListWrapper_sk3u7_177`,listItems:`_listItems_sk3u7_185`,listPagination:`_listPagination_sk3u7_189`,datatable:`_datatable_sk3u7_216`}}],[`__scopeId`,`data-v-83bc4a30`]]);export{j as t}; //# sourceMappingURL=ResourcesListLayout-BwbPvp3x.js.map