PageSourceSearch

https://baserow.io/_nuxt/C0q2Wyhg.js

js baserow.io collected 2026-09-24 22:01:13 UTC 72,767 bytes, 3 lines download raw bytes

1(function(){try{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]=`8274c546-f4ac-4796-ad0a-9be57c60c5a5`,e._sentryDebugIdIdentifier=`sentry-dbid-8274c546-f4ac-4796-ad0a-9be57c60c5a5`)}catch{}})();import{o as e}from"./T7Kr6sqh.js";import{i as t}from"./D1yk4oGm.js";import{G as n,H as r,J as i,K as a,Kt as o,M as s,N as c,S as l,Y as u,Yt as d,at as f,f as p,h as m,i as h,m as g,ot as _,p as v,q as y,x as b,y as x}from"./CdYnTnNr.js";import{l as S,s as C}from"./4vY_npPg.js";import{b as w,o as T}from"./BSjTeOux.js";import{t as E}from"./RA2W1m_I.js";import{t as D}from"./CuIVXLjr.js";import{r as O}from"./CH1s2Gfg.js";import{t as k}from"./BuuqxS5P.js";import{t as A}from"./DDw8eM802.js";import{t as j}from"./B6pOslfY2.js";import{_ as ee,c as M,d as te,f as N,p as ne,r as re,s as P,t as ie,u as ae,y as oe}from"./BjlkpwVW2.js";import{t as F}from"./oB7W6JYn2.js";import{r as se}from"./BNhXlrA32.js";import{n as I,r as ce,t as le}from"./CQZ0Fi6h2.js";import{t as L}from"./B4Vcb6cr.js";import{t as R}from"./C5uGgdSj.js";import{d as z,n as ue}from"./Bpy1LfzQ.js";import{t as B}from"./DeT11tzC.js";import{t as de}from"./BCNC76Dv.js";import{t as V}from"./DmqOwnU3.js";import{t as H}from"./Bs2AdChp.js";import{t as U}from"./Cx2DE90B.js";import{t as W}from"./C3r9698c.js";import{t as fe}from"./GQLJJ2wk.js";import{n as G}from"./D65cKq_W2.js";import{i as pe,n as me,r as he,t as ge}from"./_oc6E9XH2.js";import{t as _e}from"./B0E-KrfN2.js";import{a as K,o as q,r as J,t as ve}from"./BhASW8aL2.js";import{t as ye}from"./BhCM0vfT2.js";var be={name:`GridViewRowExpandButton`,emits:[`edit-modal`],methods:{onClick(){this.$emit(`edit-modal`)}}};function xe(e,t,n,i,a,o){return r(),m(`a`,{class:`grid-view__row-more`,onClick:t[0]||=(...e)=>o.onClick&&o.onClick(...e)},[...t[1]||=[p(`i`,{class:`baserow-icon-enlarge-row`},null,-1)]])}var Se=k(be,[[`render`,xe]]),Ce={name:`SidebarDuplicateTableContextItem`,props:{database:{type:Object,required:!0},table:{type:Object,required:!0},disabled:{type:Boolean,required:!1,default:!1}},emits:[`click`],data(){return{duplicating:!1,job:null}},watch:{"job.state"(e){[`finished`,`failed`].includes(e)&&(this.duplicating=!1)}},methods:{async duplicateTable(){if(!(this.duplicating||this.disabled)){this.duplicating=!0;try{let{data:e}=await N(this.$client).asyncDuplicate(this.table.id);this.job=e,this.$store.dispatch(`job/create`,e)}catch(e){V(e,`table`)}this.$emit(`click`)}}}};function we(e,t,n,i,a,s){return r(),m(`a`,{class:o([`context__menu-item-link`,{"context__menu-item-link--loading":a.duplicating,disabled:n.disabled||a.duplicating}]),onClick:t[0]||=e=>s.duplicateTable()},[t[1]||=p(`i`,{class:`context__menu-item-icon iconoir-copy`},null,-1),b(` `+d(e.$t(`action.duplicate`)),1)],2)}var Te=k(Ce,[[`render`,we]]),Y=new Map;function Ee(e,t){let n=Y.get(t);if(n)return n.again=!0,n.promise;let r={again:!1};return r.promise=(async()=>{try{do r.again=!1,await e(`application/refreshPermissions`,t,{root:!0});while(r.again)}catch{await e(`toast/setPermissionsUpdated`,!0,{root:!0})}finally{Y.delete(t)}})(),Y.set(t,r),r.promise}function X(e,t){let n=t.get(`field`,e.type);return e._={type:n.serialize(),loading:!1},n.populate(e)}var De={namespaced:!0,state:()=>({types:{},loading:!1,loaded:null,items:[],errorRefreshGeneration:0}),getters:{isLoaded(e){return!!e.loaded},isLoadedFor:e=>(t,n)=>!!e.loaded&&e.loaded.tableId===t&&e.loaded.viewId===n,get:e=>t=>e.items.find(e=>e.id===t),getAll(e){return e.items}},actions:{setItemLoading({commit:e},{field:t,value:n}){e(`SET_ITEM_LOADING`,{field:t,value:n})},setItemError({commit:e},{field:t,value:n}
1){e(`SET_ITEM_ERROR`,{field:t,value:n})},setItemValues({commit:e},{id:t,values:n}){e(`SET_ITEM_VALUES`,{id:t,values:n})},async refreshLoadedFieldErrors({state:e,commit:t},{realtimeRecovery:n=!1}={}){if(!e.loaded)return;let r={...e.loaded},i=e.errorRefreshGeneration+1;t(`SET_ERROR_REFRESH_GENERATION`,i);let{$client:a}=this,{data:o}=await I(a).fetchAll(r.tableId,r.viewId,n);if(!e.loaded||e.errorRefreshGeneration!==i||e.loaded.tableId!==r.tableId||e.loaded.viewId!==r.viewId)return;let s=new Map(o.map(e=>[e.id,e]));for(let n of e.items){let e=s.get(n.id);e&&Object.prototype.hasOwnProperty.call(e,`error`)&&t(`SET_ITEM_ERROR`,{field:n,value:e.error||null})}},async fetchAll({commit:e,getters:t,dispatch:n,state:r,rootGetters:i},{table:a,viewId:o=null}){let{$registry:s,$client:c}=this;e(`SET_LOADING`,!0),e(`SET_ERROR_REFRESH_GENERATION`,r.errorRefreshGeneration+1),e(`UNSELECT`,{});let l=()=>{let e=i[`table/getSelectedId`];return e&&e!==a.id};try{let{data:r}=await I(c).fetchAll(a.id,o);if(l())return t.getAll;await n(`forceSetFields`,{fields:r}),e(`SET_LOADED`,{tableId:a.id,viewId:o})}catch(t){throw l()||(e(`SET_ITEMS`,[]),e(`SET_LOADING`,!1),e(`SET_LOADED`,null)),t}return t.getAll},forceSetFields({commit:e,rootGetters:t},{fields:n}){let{$registry:r}=this;return n.forEach((e,t)=>{X(n[t],r)}),e(`SET_ITEMS`,n),e(`SET_LOADING`,!1),{fields:n}},async create(e,{type:t,table:n,values:r,forceCreate:i=!0,undoRedoActionGroupId:a=null}){let{$registry:o,$client:s}=this,{dispatch:c}=e;if(Object.prototype.hasOwnProperty.call(r,`type`))throw Error(`The key "type" is a reserved, but is already set on the values when creating a new field.`);if(!o.exists(`field`,t))throw Error(`A field with type "${t}" doesn't exist.`);let l=j(r);l.type=t;let{data:u}=await I(s).create(n.id,l,a),d=async()=>await c(`forceCreate`,{table:n,values:u,relatedFields:u.related_fields}),f=o.get(`field`,t).shouldFetchDataWhenAdded()||Oe(u.related_fields,o);return{forceCreateCallback:i?await d():d,fetchNeeded:f,newField:u,undoRedoActionGroupId:a}},async fieldRestored(e,{table:t,selectedView:n,values:r}){let{$registry:i}=this,{commit:a,dispatch:o}=e,s=i.get(`field`,r.type),c=X(r,i);a(`ADD_ITEM`,c),Ee(o,t.database_id),n&&await i.get(`view`,n.type).fieldRestored(e,t,n,c,s,`page/`)},async forceCreate(e,{table:t,values:n,relatedFields:r=[]}){let{$registry:i}=this,{commit:a,dispatch:o}=e,s=i.get(`field`,n.type),c=X(n,i);a(`ADD_ITEM`,c),Ee(o,t.database_id);for(let n of Object.values(i.getAll(`view`)))await n.afterFieldCreated(e,t,c,s,`page/`);await o(`forceUpdateFields`,{fields:r})},async update(e,{field:t,type:n,values:r,forceUpdate:i=!0,undoRedoActionGroupId:a=null}){let{$registry:o,$client:s}=this,{dispatch:c}=e;if(Object.prototype.hasOwnProperty.call(r,`type`))throw Error(`The key "type" is a reserved, but is already set on the values when creating a new field.`);if(!o.exists(`field`,n))throw Error(`A field with type "${n}" doesn't exist.`);let l=j(t),u=j(r);u.type=n;let{data:d}=await I(s).update(t.id,u,a),f=async()=>await c(`forceUpdate`,{field:t,oldField:l,data:d,relatedFields:d.related_fields});return i?await f():f},async changePrimary(e,{field:t,forceUpdate:n=!0}){let{$registry:r,$client:i}=this,{dispatch:a}=e,o=j(t),s=j(t);o.primary=!0;let{data:c}=await I(i).changePrimary(t.table_id,t.id),l=async()=>await a(`forceUpdate`,{field:t,oldField:s,data:c,relatedFields:c.related_fields});return n?await l():l},async forceUpdate(e,{field:t,oldField:n,data:r,relatedFields:i=[]}){let{$registry:a}=this,{commit:o,dispatch:s}=e,c=a.get(`field`,r.type);r=X(r,a),o(`UPDATE_ITEM`,{id:t.id,values:r}),await s(`view/fieldUpdated`,{field:r,fieldType:c},{root:!0});for(let t of Object.values(a.getAll(`view`)))await t.afterFieldUpdated(e,r,n,c,`page/`);await s(`forceUpdateFields`,{fields:i})},async forceUpdateFields({getters:e,dispatch:t},{fields:n}){for(let r of n){let n=e.get(r.id);n!==void 0&&await t(`forceUpdate`,{field:n,oldField:j(n),data:r})}},async delete({commit:e,dispatch:t},n){try{let{data:e}=await t(`deleteCall`,n);await t(`forceDelete`,n),await t(`forceUpdateFields`,{fields:e.related_fields})}catch(e){if(e.response&&e.response.status===404)t(`forceDelete`,n);else throw e}},async deleteCall({commit:e,dispatch:t},n){let{$client:r}=this;return await I(r).delete(n.id)}
1,async forceDelete(e,t){let{commit:n,dispatch:r}=e;r(`view/fieldDeleted`,{field:t},{root:!0}),n(`DELETE_ITEM`,t.id);let i=this.$registry.get(`field`,t.type);for(let n of Object.values(this.$registry.getAll(`view`)))await n.afterFieldDeleted(e,t,i,`page/`)}},mutations:{SET_ITEMS(e,t){e.items=t},SET_LOADING(e,t){e.loading=t},SET_ITEM_LOADING(e,{field:t,value:n}){Object.prototype.hasOwnProperty.call(t,`_`)&&(t._.loading=n)},SET_ITEM_ERROR(e,{field:t,value:n}){let r=e.items.find(e=>e.id===t.id)||t;r.error=n},SET_ITEM_VALUES(e,{id:t,values:n}){let r=e.items.find(e=>e.id===t);r&&Object.assign(r,n)},SET_LOADED(e,t){e.loaded=t&&{tableId:t.tableId,viewId:t.viewId}},SET_ERROR_REFRESH_GENERATION(e,t){e.errorRefreshGeneration=t},ADD_ITEM(e,t){e.items.push(t)},UPDATE_ITEM(e,{id:t,values:n}){let r=e.items.findIndex(e=>e.id===t);e.items.splice(r,1,n)},DELETE_ITEM(e,t){let n=e.items.findIndex(e=>e.id===t);e.items.splice(n,1)},SET_SELECTED(e,t){Object.values(e.items).forEach(e=>{e._.selected=!1}),t._.selected=!0,e.selected=t},UNSELECT(e){Object.values(e.items).forEach(e=>{e._.selected=!1}),e.selected={}}}};function Oe(e,t){return e.some(e=>t.get(`field`,e.type).shouldFetchDataWhenAdded())}var ke={name:`SidebarImportTableContextItem`,components:{ImportFileModal:re},props:{database:{type:Object,required:!0},table:{type:Object,required:!0},disabled:{type:Boolean,required:!1,default:!1}},emits:[`click`],data(){return{loading:!1,fields:[]}},methods:{async importFile(){if(!(this.loading||this.disabled)){this.loading=!0;try{let{data:e}=await I(this.$client).fetchAll(this.table.id);this.fields=e.map(e=>X(e,this.$registry)),this.$refs.importFileModal.show()}catch(e){V(e,`table`)}finally{this.$emit(`click`),this.loading=!1}}}}};function Ae(e,t,n,i,a,s){let c=y(`ImportFileModal`);return r(),m(`a`,{class:o([`context__menu-item-link`,{"context__menu-item-link--loading":a.loading,disabled:n.disabled||a.loading}]),onClick:t[0]||=e=>s.importFile()},[t[1]||=p(`i`,{class:`context__menu-item-icon iconoir-import`},null,-1),b(` `+d(e.$t(`sidebarItem.importFile`))+` `,1),l(c,{ref:`importFileModal`,database:n.database,table:n.table,fields:a.fields},null,8,[`database`,`table`,`fields`])],2)}var je=k(ke,[[`render`,Ae]]),Me=e(A(),1),Z=[`finished`,`failed`,`cancelled`],Ne=200,Pe=100;function Fe(e,t){return t.get(`job`,e.type).populate(e)}var Ie={namespaced:!0,state:()=>({loaded:!1,loading:!1,refreshing:!1,items:[],updateTimeoutId:null,nextTimeoutInMs:null,remainingPollingAttempts:Pe,lastUpdateJobIds:[]}),getters:{isLoading(e){return e.loading},isLoaded(e){return e.loaded},get:e=>t=>e.items.find(e=>e.id===t),getAll:e=>e.items,getUnfinishedJobs:e=>e.items.filter(e=>!Z.includes(e.state))},actions:{async initializePoller({dispatch:e,state:t}){!t.loaded&&!t.loading&&await e(`fetchAllUnfinished`),this.updateTimeoutId||await e(`tryScheduleNextUpdate`)},tryScheduleNextUpdate({getters:e,commit:t,dispatch:n,state:r}){clearTimeout(this.updateTimeoutId),t(`SET_REFRESHING`,!0);let i=e.getUnfinishedJobs,a=i?i.map(e=>e.id):[],o=this.$config.public.baserowFrontendJobsPollingTimeoutMs;t(`COMPUTE_NEXT_TIMEOUT_MS`,{unfinishedJobIds:a,maxTimeout:o});let s=r.nextTimeoutInMs;s!==null&&(this.updateTimeoutId=setTimeout(async()=>{a.length>0&&await n(`updateAllAndScheduleNext`,a),t(`SET_REFRESHING`,!1)},s))},async fetchAllUnfinished({commit:e}){e(`SET_LOADING`,!0);try{let{data:t}=await W(this.$client).fetchAll({states:Z.map(e=>`!${e}`)}),n=[];for(let e of t.jobs){try{this.$registry.get(`job`,e.type)}catch{continue}n.push(Fe(e,this.$registry))}e(`SET_ITEMS`,n),e(`SET_LOADED`,!0)}catch{e(`SET_ITEMS`,[])}e(`SET_LOADING`,!1)},async updateAllAndScheduleNext({dispatch:e},t){try{await e(`updateAll`,t),await e(`tryScheduleNextUpdate`)}catch{}},async updateAll({commit:e,dispatch:t,getters:n,state:r},i=null){i===null&&(i=n.getUnfinishedJobs.map(e=>e.id)),e(`SET_LOADING`,!0);try{let{data:e}=await W(this.$client).fetchAll({jobIds:i});for(let n of e.jobs)await t(`forceUpdate`,{job:n,data:n})}finally{e(`SET_LOADING`,!1)}},create({dispatch:e},t){return e(`forceCreate`,t),e(`tryScheduleNextUpdate`),this.getters[`job/get`](t.id)},async cancel({dispatch:e},{id:t}){let n=this.getters[`job/get`](t);if(!n)throw Error(`Job not found in store.`);try{let{data:t}=await W(this.$client).cancel(n.id);await e(`forceUpdate`,{job:n,data:t})}finally{await e(`tryScheduleNextUpdate`)}},forceCreate({commit:e},t){Fe(t,this.$registry),e(`ADD_ITEM`,t)},async forceUpdate({commit:e},{job:t,data:n}){let r=this.$registry.get(`job`,t.type);await r.beforeUpdate(t,n),e(`UPDATE_ITEM`,{id:t.id,values:n}),await r.afterUpdate(t,n)},forceDelete({commit:e},t){this.$registry.get(`job`,t.type).beforeDelete(t,this),e(`DELETE_ITEM`,t.id)}
1,deleteForWorkspace({commit:e,state:t},n){t.items.filter(e=>this.$registry.get(`job`,e.type).isJobPartOfWorkspace(e,n)).forEach(t=>e(`DELETE_ITEM`,t.id))},deleteForApplication({commit:e,state:t},n){t.items.filter(e=>this.$registry.get(`job`,e.type).isJobPartOfApplication(e,n)).forEach(t=>e(`DELETE_ITEM`,t.id))},clearAll({commit:e,dispatch:t}){clearTimeout(this.updateTimeoutId),e(`SET_ITEMS`,[]),e(`SET_LOADED`,!1)}},mutations:{SET_LOADED(e,t){e.loaded=t},SET_LOADING(e,t){e.loading=t},SET_ITEMS(e,t){e.items=t},ADD_ITEM(e,t){e.items.findIndex(e=>e.id===t.id)===-1&&e.items.push(t)},UPDATE_ITEM(e,{id:t,values:n}){let r=e.items.findIndex(e=>e.id===t);r!==-1&&Object.assign(e.items[r],e.items[r],n)},DELETE_ITEM(e,t){let n=e.items.findIndex(e=>e.id===t);n!==-1&&e.items.splice(n,1)},COMPUTE_NEXT_TIMEOUT_MS(e,{unfinishedJobIds:t,maxTimeout:n}){let r=!Me.default.isEqual(t,e.lastUpdateJobIds);if(t.length===0)e.nextTimeoutInMs=n;else if(r)e.remainingPollingAttempts=Pe,e.lastUpdateJobIds=t,e.nextTimeoutInMs=Ne;else if(e.remainingPollingAttempts===0)return null;else--e.remainingPollingAttempts,e.nextTimeoutInMs=Math.floor(Math.min(e.nextTimeoutInMs*1.5,n))},SET_REFRESHING(e,t){e.refreshing=t}}},Le={name:`DataSyncRunHead`,props:{expandable:{type:Boolean,required:!0},expanded:{type:Boolean,required:!0},controls:{type:String,required:!0}},emits:[`toggle`]},Re=[`aria-expanded`,`aria-controls`],ze={key:1,class:`data-sync-runs__head`};function Be(e,t,n,i,o,s){return n.expandable?(r(),m(`button`,{key:0,type:`button`,class:`data-sync-runs__head data-sync-runs__head--expandable`,"aria-expanded":n.expanded,"aria-controls":n.controls,onClick:t[0]||=t=>e.$emit(`toggle`)},[a(e.$slots,`default`)],8,Re)):(r(),m(`div`,ze,[a(e.$slots,`default`)]))}var Ve={name:`DataSyncRunsList`,components:{DataSyncRunHead:k(Le,[[`render`,Be]]),Paginator:ye},mixins:[B],props:{dataSyncId:{type:Number,required:!0},limit:{type:Number,required:!1,default:10}},emits:[`running-job`],data(){return{loading:!1,loaded:!1,jobs:[],count:0,page:1,expandedJobIds:[]}},computed:{storeJobs(){return this.$store.getters[`job/getAll`]},totalPages(){return Math.max(1,Math.ceil(this.count/this.limit))},rows(){let e=new Map;if(this.page===1)for(let t of this.storeJobs)t.type===`sync_data_sync_table`&&t.data_sync?.id===this.dataSyncId&&e.set(t.id,t);for(let t of this.jobs)e.has(t.id)||e.set(t.id,this.storeJobs.find(e=>e.id===t.id)||t);return[...e.values()].sort((e,t)=>t.id-e.id)},unfinishedTrackedJobCount(){return this.storeJobs.filter(e=>!Z.includes(e.state)&&this.rows.some(t=>t.id===e.id)).length}},watch:{unfinishedTrackedJobCount(e,t){e<t&&this.page===1&&this.reload()}},mounted(){this.reload()},methods:{async reload(e=this.page){this.loaded||(this.loading=!0);try{let{data:t}=await q(this.$client).fetchSyncJobs(this.dataSyncId,{limit:this.limit,offset:(e-1)*this.limit});this.hideError(),this.page=e,this.jobs=t.jobs,this.count=t.count??t.jobs.length;let n=t.jobs.filter(e=>!Z.includes(e.state));await Promise.all(n.map(e=>this.$store.dispatch(`job/create`,e))),n.length>0&&this.$emit(`running-job`,n[0]),this.loaded=!0}catch(e){this.handleError(e)}finally{this.loading=!1}},changePage(e){e>=1&&e<=this.totalPages&&e!==this.page&&this.reload(e)},isEnded(e){return Z.includes(e.state)},isExpanded(e){return this.expandedJobIds.includes(e)},stateColor(e){return{finished:`green`,failed:`red`,cancelled:`yellow`}[e]||`cyan`},stateLabel(e){return{pending:this.$t(`job.statePending`),started:this.$t(`job.stateStarted`),failed:this.$t(`job.stateFailed`),finished:this.$t(`job.stateFinished`),cancelled:this.$t(`job.stateCanceled`)}[e]||this.$t(`job.stateStarted`)},timestamp(e){return F.utc(e.created_on).local().format(`YYYY-MM-DD HH:mm:ss`)},duration(e){return Math.max(0,Math.round((F.utc(e.updated_on)-F.utc(e.created_on))/1e3))},toggleExpanded(e){let t=this.expandedJobIds.indexOf(e);t>-1?this.expandedJobIds.splice(t,1):this.expandedJobIds.push(e)}}},He={key:0,class:`loading margin-top-2`},Ue={key:0,class:`data-sync-runs__empty`},We={key:1,class:`data-sync-runs`},Ge={class:`data-sync-runs__info`},Ke={class:`data-sync-runs__duration`},qe=[`id`];function Je(e,t,i,a,s,c){let u=y(`Error`),_=y(`Badge`),x=y(`DataSyncRunHead`),S=y(`Paginator`);return r(),m(`div`,null,[s.loading?(r(),m(`div`,He)):(r(),m(h,{key:1},[l(u,{error:e.error},null,8,[`error`]),s.loaded?(r(),m(h,{key:0},[c.rows.length===0?(r(),m(`p`,Ue,[t[0]||=p(`i`,{class:`iconoir-data-transfer-down data-sync-runs__empty-icon`},null,-1),b(` `+d(e.$t(`dataSyncRuns.noRuns`)),1)])):(r(),m(`div`,We,[(r(!0),m(h,null,n(c.rows,t=>(r(),m(`div`,{key:t.id,class:o([`data-sync-runs__item`,{"data-sync-runs__item--open":c.isExpanded(t.id)}])},[l(x,{expandable:!!t.human_readable_error,expanded:c.isExpanded(t.id),controls:`data-sync-run-error-${t.id}`,onToggle:e=>c.toggleExpanded(t.id)},{default:f(()=>[l(_,{color:c.stateColor(t.state),rounded:``},{default:f(()=>
1[b(d(c.stateLabel(t.state)),1)]),_:2},1032,[`color`]),l(_,{color:t.triggered_by===`periodic`?`cyan`:`neutral`,rounded:``},{default:f(()=>[b(d(t.triggered_by===`periodic`?e.$t(`dataSyncRuns.triggerPeriodic`):e.$t(`dataSyncRuns.triggerManual`)),1)]),_:2},1032,[`color`]),p(`span`,Ge,[b(d(c.timestamp(t))+` `,1),t.user_name?(r(),m(h,{key:0},[b(d(e.$t(`dataSyncRuns.byUser`,{name:t.user_name})),1)],64)):g(``,!0)]),p(`span`,Ke,[c.isEnded(t)?(r(),m(h,{key:0},[b(d(e.$t(`dataSyncRuns.duration`,{seconds:c.duration(t)})),1)],64)):(r(),m(h,{key:1},[b(d(t.progress_percentage)+`%`,1)],64))]),t.human_readable_error?(r(),m(`i`,{key:0,class:o([`data-sync-runs__toggle-icon`,c.isExpanded(t.id)?`iconoir-nav-arrow-up`:`iconoir-nav-arrow-down`])},null,2)):g(``,!0)]),_:2},1032,[`expandable`,`expanded`,`controls`,`onToggle`]),c.isExpanded(t.id)?(r(),m(`div`,{key:0,id:`data-sync-run-error-${t.id}`,class:`data-sync-runs__error`},d(t.human_readable_error),9,qe)):g(``,!0)],2))),128))])),c.totalPages>1?(r(),v(S,{key:2,class:`data-sync-runs__paginator`,"total-pages":c.totalPages,page:s.page,onChangePage:c.changePage},null,8,[`total-pages`,`page`,`onChangePage`])):g(``,!0)],64)):g(``,!0)],64))])}var Ye=k(Ve,[[`render`,Je]]),Xe={name:`SyncTableModal`,components:{DataSyncRunsList:Ye},mixins:[L,K],props:{table:{type:Object,required:!0}},data(){return{attachedToExistingRun:!1}},methods:{show(){this.job=null,this.attachedToExistingRun=!1,this.hideError(),L.methods.show.bind(this)()},startSync(){return this.attachedToExistingRun=!1,this.syncTable(this.table)},async attachToRunningJob(e){this.jobIsRunning||(this.attachedToExistingRun=!0,await this.createAndMonitorJob(e))},hidden(){}}},Ze={class:`import-modal__header`},Qe={class:`import-modal__title`},$e={class:`modal-progress__actions margin-top-2`},et={class:`align-right`},tt={key:0,class:`margin-top-3`};function nt(e,t,n,i,a,o){let s=y(`Error`),c=y(`ProgressBar`),u=y(`Button`),h=y(`DataSyncRunsList`),_=y(`Modal`);return r(),v(_,{ref:`modal`,"can-close":!e.syncLoading&&(!e.jobIsRunning||a.attachedToExistingRun),onHidden:o.hidden},{content:f(()=>[p(`div`,Ze,[p(`h2`,Qe,d(e.$t(`syncTableModal.title`,{name:n.table.name})),1)]),p(`p`,null,d(e.$t(`syncTableModal.description`)),1),l(s,{error:e.error},null,8,[`error`]),p(`div`,$e,[e.syncLoading||e.jobIsRunning||e.jobIsFinished?(r(),v(c,{key:0,value:e.job?.progress_percentage||0,status:e.jobHumanReadableState},null,8,[`value`,`status`])):g(``,!0),p(`div`,et,[e.jobIsFinished?(r(),v(u,{key:1,type:`secondary`,size:`large`,onClick:t[1]||=t=>e.hide()},{default:f(()=>[b(d(e.$t(`syncTableModal.hide`)),1)]),_:1})):(r(),v(u,{key:0,type:`primary`,size:`large`,disabled:e.syncLoading||e.jobIsRunning,loading:e.syncLoading||e.jobIsRunning,onClick:t[0]||=e=>o.startSync()},{default:f(()=>[b(d(e.$t(`syncTableModal.sync`)),1)]),_:1},8,[`disabled`,`loading`]))])]),n.table.data_sync?(r(),m(`div`,tt,[p(`h3`,null,d(e.$t(`dataSyncRuns.previousRuns`)),1),l(h,{"data-sync-id":n.table.data_sync.id,onRunningJob:o.attachToRunningJob},null,8,[`data-sync-id`,`onRunningJob`])])):g(``,!0)]),_:1},8,[`can-close`,`onHidden`])}var rt={name:`SidebarItem`,components:{ConfigureDataSyncModal:ve,ExportTableModal:ne,WebhookModal:le,SyncTableModal:k(Xe,[[`render`,nt]]),SidebarDuplicateTableContextItem:Te,SidebarImportTableContextItem:je},props:{database:{type:Object,required:!0},table:{type:Object,required:!0}},data(){return{deleteLoading:!1}},computed:{showOptions(){return this.additionalContextComponents.length>0||this.$hasPermission(`database.table.run_export`,this.table,this.database.workspace.id)||this.$hasPermission(`database.table.import_rows`,this.table,this.database.workspace.id)||this.$hasPermission(`database.table.create_webhook`,this.table,this.database.workspace.id)||this.$hasPermission(`database.table.update`,this.table,this.database.workspace.id)||this.$hasPermission(`database.table.duplicate`,this.table,this.database.workspace.id)},additionalContextComponents(){return Object.values(this.$registry.getAll(`plugin`)).reduce((e,t)=>e.concat(t.getAdditionalApplicationChildContextComponents(this.database.workspace,this.database,this.table)),[]).filter(e=>e!==null)},syncTooltipOptions(){return{contentClasses:[`tooltip__content--align-right`]}},lastSyncedDate(){if(!this.table.data_sync||!this.table.data_sync.last_sync)return this.$t(`sidebarItem.notSynced`);let{period:e,count:t}=se(this.table.data_sync.last_sync);return this.$t(`datetime.${e}Ago`,{count:t})},dataSyncType(){return this.$registry.get(`dataSync`,this.table.data_sync.type)},dataSyncDeactivated(){return this.dataSyncType.isDeactivated(this.database.workspace.id)},dataSyncDeactivatedClickModal(){return this.dataSyncType.getDeactivatedClickModal()}},methods:{setLoading(e,t){this.$store.dispatch(`application/setItemLoading`,{application:e,value:t})},selectTable(e,t){if(!t._.selected)return this.$router.push({name:`database-table`,params:{databaseId:e.id,tableId:t.id}})},exportTable(){this.$refs.context.hide(),this.$refs.exportTableModal.show()},openWebhookModal(){this.$refs.context.hide(),this.$refs.webhookModal.show()},openSyncModal(){this.dataSyncDeactivated?this.$refs.deactivatedDataSyncClickModal.show():(this.$refs.context.hide(),this.$refs.syncModal.show())},openConfigureDataSyncModal(){this.dataSyncDeactivated?this.$refs.deactivatedDataSyncClickModal.show():(this.$refs.context.hide(),this.$refs.configureDataSyncModal.show())},enableRename(){this.$refs.context.hide(),this.$refs.rename.edit()},async renameTable(e,t,n){this.setLoading(e,!0);try{await this.$store.dispatch(`table/update`,{database:e,table:t,values:{name:n.value}})}catch(e){this.$refs.rename.set(n.oldValue),V(e,`table`)}this.setLoading(e,!1)},async deleteTable(){this.deleteLoading=!0;try{await this.$store.dispatch(`table/delete`,{database:this.database,table:this.table}),await this.$store.dispatch(`toast/restore`,{trash_item_type:`table`,trash_item_id:this.table.id})}catch(e){V(e,`table`)}this.deleteLoading=!1},resolveTableHref(e,t){return this.$router.resolve({name:`database-table`,params:{databaseId:e.id,tableId:t.id}}).href}}},it=[`title`,`href`],at={key:0,class:`iconoir-data-transfer-down`},ot={class:`context__menu-title`},st={class:`context__menu`},ct={key:0,class:`context__menu-item`},lt={key:1,class:`context__menu-item`},ut={key:2,class:`context__menu-item`},dt={key:3,class:`context__menu-item`},ft={key:0,class:`deactivated-label`},pt={key:4,class:`context__menu-item`},mt={key:0,class:`deactivated-label`},ht={key:5,class:`context__menu-item`},gt={key:6,class:`context__menu-item`},_t={key:7,class:`context__menu-item`};function vt(e,t,a,c,x,w){let T=y(`Editable`),E=y(`SidebarImportTableContextItem`),D=y(`ConfigureDataSyncModal`),O=y(`SidebarDuplicateTableContextItem`),k=y(`ExportTableModal`),A=y(`WebhookModal`),j=y(`SyncTableModal`),ee=y(`Context`),M=i(`tooltip`);return r(),m(`li`,{class:o([`tree__sub`,{active:a.table._.selected}])},[p(`a`,{class:o([`tree__sub-link`,{"tree__sub-link--empty":a.table.name===``}]),title:a.table.name,href:w.resolveTableHref(a.database,a.table),onMousedown:t[1]||=S(()=>{},[`prevent`]),onClick:t[2]||=S(e=>w.selectTable(a.database,a.table),[`prevent`])},[a.table.data_sync?_((r(),m(`i`,at,null,512)),[[M,`${e.$t(`sidebarItem.lastSynced`)}: ${w.lastSyncedDate}`,w.syncTooltipOptions]]):g(``,!0),l(T,{ref:`rename`,value:a.table.name,onChange:t[0]||=e=>w.renameTable(a.database,a.table,e)},null,8,[`value`])],42,it),w.showOptions?_((r(),m(`a`,{key:0,class:`tree__options`,onClick:t[3]||=t=>e.$refs.context.toggle(t.currentTarget,`bottom`,`right`,0),onMousedown:t[4]||=S(()=>{},[`stop`])},[...t[14]||=[p(`i`,{class:`baserow-icon-more-vertical`},null,-1)]],544)),[[C,!a.database._.loading]]):g(``,!0),l(ee,{ref:`context`,"overflow-scroll":``,"max-height-if-outside-viewport":``},{default:f(()=>[p(`div`,ot,d(a.table.name)+` (`+d(a.table.id)+`)`,1),p(`ul`,st,[(r(!0),m(h,null,n(w.additionalContextComponents,(n,i)=>(r(),m(`li`,{key:i,class:`context__menu-item`,onClick:t[5]||=t=>e.$refs.context.hide()},[(r(),v(u(n),{table:a.table,database:a.database},null,8,[`table`,`database`]))]))),128)),e.$hasPermission(`database.table.run_export`,a.table,a.database.workspace.id)?(r(),m(`li`,ct,[p(`a`,{class:`context__menu-item-link`,onClick:t[6]||=e=>w.exportTable()},[t[15]||=p(`i`,{class:`context__menu-item-icon iconoir-share-ios`},null,-1),b(` `+d(e.$t(`sidebarItem.exportTable`)),1)])])):g(``,!0),e.$hasPermission(`database.table.import_rows`,a.table,a.database.workspace.id)?(r(),m(`li`,lt,[l
1(E,{database:a.database,table:a.table,disabled:x.deleteLoading,onClick:t[7]||=t=>e.$refs.context.hide()},null,8,[`database`,`table`,`disabled`])])):g(``,!0),e.$hasPermission(`database.table.create_webhook`,a.table,a.database.workspace.id)?(r(),m(`li`,ut,[p(`a`,{class:`context__menu-item-link`,onClick:t[8]||=e=>w.openWebhookModal()},[t[16]||=p(`i`,{class:`context__menu-item-icon iconoir-globe`},null,-1),b(` `+d(e.$t(`sidebarItem.webhooks`)),1)])])):g(``,!0),a.table.data_sync&&e.$hasPermission(`database.data_sync.sync_table`,a.table,a.database.workspace.id)?(r(),m(`li`,dt,[p(`a`,{class:`context__menu-item-link`,onClick:t[9]||=e=>w.openSyncModal()},[t[18]||=p(`i`,{class:`context__menu-item-icon iconoir-data-transfer-down`},null,-1),b(` `+d(e.$t(`sidebarItem.sync`))+` `,1),w.dataSyncDeactivated?(r(),m(`div`,ft,[...t[17]||=[p(`i`,{class:`iconoir-lock`},null,-1)]])):g(``,!0)]),w.dataSyncDeactivatedClickModal===null?g(``,!0):(r(),v(u(w.dataSyncDeactivatedClickModal[0]),s({key:0,ref:`deactivatedDataSyncClickModal`},w.dataSyncDeactivatedClickModal[1],{workspace:a.database.workspace,name:w.dataSyncType.getName()}),null,16,[`workspace`,`name`]))])):g(``,!0),a.table.data_sync&&e.$hasPermission(`database.table.update`,a.table,a.database.workspace.id)&&e.$hasPermission(`database.data_sync.get`,a.table,a.database.workspace.id)?(r(),m(`li`,pt,[p(`a`,{class:`context__menu-item-link`,onClick:t[10]||=e=>w.openConfigureDataSyncModal()},[t[20]||=p(`i`,{class:`context__menu-item-icon iconoir-settings`},null,-1),b(` `+d(e.$t(`sidebarItem.updateSyncConfig`))+` `,1),w.dataSyncDeactivated?(r(),m(`div`,mt,[...t[19]||=[p(`i`,{class:`iconoir-lock`},null,-1)]])):g(``,!0)]),l(D,{ref:`configureDataSyncModal`,database:a.database,table:a.table},null,8,[`database`,`table`])])):g(``,!0),e.$hasPermission(`database.table.update`,a.table,a.database.workspace.id)?(r(),m(`li`,ht,[p(`a`,{class:`context__menu-item-link`,onClick:t[11]||=e=>w.enableRename()},[t[21]||=p(`i`,{class:`context__menu-item-icon iconoir-edit-pencil`},null,-1),b(` `+d(e.$t(`action.rename`)),1)])])):g(``,!0),e.$hasPermission(`database.table.duplicate`,a.table,a.database.workspace.id)?(r(),m(`li`,gt,[l(O,{database:a.database,table:a.table,disabled:x.deleteLoading,onClick:t[12]||=t=>e.$refs.context.hide()},null,8,[`database`,`table`,`disabled`])])):g(``,!0),e.$hasPermission(`database.table.delete`,a.table,a.database.workspace.id)?(r(),m(`li`,_t,[p(`a`,{class:o([`context__menu-item-link context__menu-item-link--delete`,{"context__menu-item-link--loading":x.deleteLoading}]),onClick:t[13]||=e=>w.deleteTable()},[t[22]||=p(`i`,{class:`context__menu-item-icon iconoir-bin`},null,-1),b(` `+d(e.$t(`action.delete`)),1)],2)])):g(``,!0)]),l(k,{ref:`exportTableModal`,database:a.database,table:a.table},null,8,[`database`,`table`]),l(A,{ref:`webhookModal`,database:a.database,table:a.table},null,8,[`database`,`table`]),l(j,{ref:`syncModal`,table:a.table},null,8,[`table`])]),_:1},512)],2)}var yt=k(rt,[[`render`,vt]]),bt={name:`CreateTable`,components:{ImportErrorReport:ae,TableForm:J,SimpleGrid:te},mixins:[B,_e],props:{database:{type:Object,required:!0},chosenType:{type:String,required:!0}},emits:[`hide`,`import-in-progress`,`uploading-before-job-created`],setup(){return{nuxtApp:t()}},data(){return{restoredFromStore:!1,uploadProgressPercentage:0,importState:null,showProgressBar:!1,header:[],mapping:{},getData:null,previewData:[],dataLoaded:!1,importerKey:0}},computed:{restoredImporterName(){if(!this.job?.importer_type)return``;try{return this.$registry.get(`importer`,this.job.importer_type).getName()}catch{return this.job.importer_type}},isTableCreated(){return this.job?.table_id?this.database.tables.some(({id:e})=>e===this.job.table_id):!1},fileFields(){return this.header.map((e,t)=>({type:`text`,name:e,id:w(),order:t}))},fileFieldOptions(){return Object.fromEntries(this.fileFields.map(e=>[e.id,{hidden:!1}]))},previewFileData(){return this.previewData.map(e=>{let t=Object.fromEntries(this.fileFields.map((t,n)=>[`field_${t.id}`,`${e[n]}`]));return t.id=w(),t})},selectedFields(){return Object.values(this.mapping)},progressPercentage(){switch(this.state){case null:return 0;case`preparingData`:return 1;case`uploading`:return this.uploadProgressPercentage/100*40+10;default:return 50+this.job.progress_percentage/2}},state(){return this.job===null?this.importState:this.job.state},importInProgress(){return this.state!==null&&!this.jobIsFinished&&!this.jobHasFailed&&!this.error.visible},uploadingBeforeJobCreated(){return this.job===null&&this.importInProgress},importerComponent(){if(this.chosenType===``)return null;try{return this.$registry.get(`importer`,this.chosenType).getFormComponent()}catch{return null}},humanReadableState(){switch(this.state){case null:return``;case`preparingData`:return this.$t(`createTable.preparing`);case`uploading`:return this.uploadProgressPercentage===100?this.$t(`job.statePending`):this.$t(`createTable.uploading`);default:return this.jobHumanReadableState}},hasErrors(){return this.job&&Object.keys(this.job.report.failing_rows).length>0}},watch:{importInProgress:{handler(e){this.$emit(`import-in-progress`,e)},immediate:!0},uploadingBeforeJobCreated:{handler(e){this.$emit(`uploading-before-job-created`,e)},immediate:!0}},mounted(){this.loadRunningJob()},methods:{hide(){},getDefaultName(){let e=this.database.tables.map(e=>e.name),t=this.$t(`createTableModal.defaultName`);return T(t,e)},reset(e=!0){this.job=null,this.restoredFromStore=!1,this.uploadProgressPercentage=0,e&&(this.header=[],this.importState=null,this.mapping={},this.getData=null,this.previewData=[],this.dataLoaded=!1),this.hideError()},onData({header:e,previewData:t}){this.header=e,this.previewData=t,this.mapping=Object.fromEntries(e.map((e,t)=>
1[t,0])),this.dataLoaded=e.length>0||t.length>0},onGetData(e){this.getData=e},onHeader(e){this.header=e,this.mapping=Object.fromEntries(e.map((e,t)=>[t,0]))},async submitted(e){this.showProgressBar=!1,this.reset(!1);let t=null,n={...e};if(typeof this.getData==`function`)try{this.showProgressBar=!0,this.importState=`preparingData`,await this.$ensureRender(),t=await this.getData(),t=[this.header,...t]}catch(e){this.reset(),this.handleError(e,`application`)}this.importState=`uploading`,n.importer_type=this.chosenType,n.original_file_name=this.$refs.importerRef?.values?.filename||``;let r=({loaded:e,total:t})=>this.uploadProgressPercentage=e/t*100;try{t&&t.length>0&&(this.showProgressBar=!0);let{data:e}=await N(this.$client).create(this.database.id,n,t,!0,{onUploadProgress:r});await this.createAndMonitorJob(e)}catch(e){this.handleError(e,`application`,{ERROR_MAX_JOB_COUNT_EXCEEDED:new H(this.$t(`job.errorJobAlreadyRunningTitle`),this.$t(`job.errorJobAlreadyRunningDescription`))})}},getCustomHumanReadableJobState(e){return{"row-import-creation":this.$t(`createTable.stateRowCreation`),"row-import-validation":this.$t(`createTable.statePreValidation`),"import-create-table":this.$t(`createTable.stateCreateTable`)}[e]},async openTable(){await this.$router.push({name:`database-table`,params:{databaseId:this.database.id,tableId:this.job.table_id}}),await E(this.nuxtApp),await c(),this.$emit(`hide`)},async onJobFinished(){let{data:e}=await N(this.$client).get(this.job.table_id);await this.$store.dispatch(`table/forceUpsert`,{database:this.database,data:e}),this.hasErrors||await this.openTable()},onJobFailed(){this.showError(new H(this.$t(`createTable.importError`),this.job.human_readable_error))},onJobCancelled(){this.reset(),this.importerKey++},loadRunningJob(){let e=this.$store.getters[`job/getUnfinishedJobs`].find(e=>e.type===P.getType()&&e.table_id===null&&e.database_id===this.database.id);e&&(this.job=e,this.restoredFromStore=!0,this.showProgressBar=!0)}}},xt={key:0,class:`margin-top-3 margin-bottom-2`},St={key:0,class:`control__label control__label--small`},Ct={key:1,class:`margin-bottom-1`},wt={class:`import-modal__restored-badge`},Tt={key:0,class:`margin-left-1`},Et={key:3,class:`modal-progress__actions`},Dt={key:4,class:`align-right`};function Ot(e,t,n,i,a,o){let s=y(`TableForm`),c=y(`SimpleGrid`),_=y(`ImportErrorReport`),x=y(`ProgressBar`),S=y(`ButtonText`),C=y(`Button`);return r(),m(`div`,null,[a.restoredFromStore?(r(),m(`div`,xt,[e.job.name?(r(),m(`label`,St,d(e.$t(`createTable.importingTable`,{name:e.job.name})),1)):g(``,!0),e.job.importer_type?(r(),m(`div`,Ct,[p(`span`,wt,d(o.restoredImporterName),1),e.job.original_file_name?(r(),m(`span`,Tt,d(e.job.original_file_name),1)):g(``,!0)])):g(``,!0)])):(r(),m(h,{key:1},[l(s,{ref:`tableForm`,class:`margin-top-3 margin-bottom-2`,"default-name":o.getDefaultName(),onSubmitted:o.submitted},{default:f(()=>[(r(),v(u(o.importerComponent),{key:a.importerKey,ref:`importerRef`,disabled:o.importInProgress,onChanged:t[0]||=e=>o.reset(),onHeader:t[1]||=e=>o.onHeader(e),onData:t[2]||=e=>o.onData(e),onGetData:t[3]||=e=>o.onGetData(e)},null,40,[`disabled`]))]),_:1},8,[`default-name`,`onSubmitted`]),a.dataLoaded?(r(),v(c,{key:0,class:`import-modal__preview margin-bottom-2`,rows:o.previewFileData,fields:o.fileFields},null,8,[`rows`,`fields`])):g(``,!0)],64)),l(_,{job:e.job,error:e.error},null,8,[`job`,`error`]),a.dataLoaded?(r(),v(c,{key:2,class:`import-modal__preview margin-bottom-2`,rows:o.previewFileData,fields:o.fileFields,"field-options":o.fileFieldOptions},null,8,[`rows`,`fields`,`field-options`])):g(``,!0),o.hasErrors?(r(),m(`div`,Dt,[l(C,{type:`primary`,size:`large`,loading:!o.isTableCreated,onClick:t[5]||=e=>o.openTable()},{default:f(()=>[b(d(e.$t(`createTable.showTable`)),1)]),_:1},8,[`loading`])])):(r(),m(`div`,Et,[(o.importInProgress||e.jobIsFinished)&&a.showProgressBar?(r(),v(x,{key:0,value:o.progressPercentage,status:o.humanReadableState},null,8,[`value`,`status`])):g(``,!0),e.jobIsRunning||e.cancelLoading?(r(),v(S,{key:1,tag:`a`,type:`secondary`,class:`modal-progress__cancel-button`,loading:e.cancelLoading,onClick:e.cancelJob},{default:f(()=>[b(d(e.$t(`action.cancel`)),1)]),_:1},8,[`loading`,`onClick`])):g(``,!0),a.restoredFromStore?g(``,!0):(r(),v(C,{key:2,type:`primary`,size:`large`,"full-width":``,class:`modal-progress__primary-button`,loading:o.importInProgress||e.jobIsFinished,disabled:o.importInProgress||e.jobIsFinished,onClick:t[4]||=t=>e.$refs.tableForm.submit()},{default:f(()=>[b(d(e.$t(`createTable.addButton`)),1)]),_:1},8,[`loading`,`disabled`]))]))])}var kt=k(bt,[[`render`,Ot]]),At={name:`CreateDataSync`,components:{TableForm:J},mixins:[K],props:{database:{type:Object,required:!0},chosenType:{type:String,required:!0}},emits:[`hide`,`import-in-progress`,`uploading-before-job-created`],setup(){return{nuxtApp:t()}},data(){return{restoredFromStore:!1,formValues:null,properties:null,creatingTable:!1,
1createdTable:null,autoAddNewProperties:!1,deleteUnmatchedRows:!0,twoWaySync:!1}},computed:{dataSyncType(){if(this.chosenType===``)return null;try{return this.$registry.get(`dataSync`,this.chosenType)}catch{return null}},dataSyncComponent(){return this.dataSyncType?this.dataSyncType.getFormComponent():null},twoWaySyncStrategy(){if(!this.dataSyncType)return null;let e=this.dataSyncType.getTwoWayDataSyncStrategy();return e?this.$registry.get(`twoWaySyncStrategy`,e):null},isTwoWaySyncDeactivated(){return!this.twoWaySyncStrategy||this.twoWaySyncStrategy.isDeactivated(this.database.workspace.id)},syncInProgress(){return this.creatingTable||this.jobIsRunning},uploadingBeforeJobCreated(){return this.creatingTable&&this.job===null},twoWaySyncDeactivatedModal(){return this.twoWaySyncStrategy?this.twoWaySyncStrategy.getDeactivatedClickModal():null}},watch:{syncInProgress:{handler(e){this.$emit(`import-in-progress`,e)},immediate:!0},uploadingBeforeJobCreated:{handler(e){this.$emit(`uploading-before-job-created`,e)},immediate:!0},chosenType(e,t){e!==t&&(this.hideError(),this.loadedProperties=!1,this.loadingProperties=!1,this.formValues=null,this.properties=null,this.syncedProperties=null,this.creatingTable=!1,this.createdTable=null)}},mounted(){this.loadRunningJob()},methods:{hide(){},loadRunningJob(){let e=this.$store.getters[`job/getUnfinishedJobs`].find(e=>e.type===M.getType()&&e.data_sync?.database_id===this.database.id&&e.data_sync?.last_sync===null);e&&(this.job=e,this.restoredFromStore=!0)},getDefaultName(){let e=this.database.tables.map(e=>e.name),t=this.$t(`createTableModal.defaultName`);return T(t,e)},async submitted(e){this.formValues=e,await this.fetchNonExistingProperties(this.chosenType,e,this.database.id)},async create(){this.hideError(),this.job=null,this.uploadProgressPercentage=0;let e=j(this.formValues);e.table_name=e.name,e.synced_properties=this.syncedProperties,e.auto_add_new_properties=this.autoAddNewProperties,e.delete_unmatched_rows=this.deleteUnmatchedRows,e.two_way_sync=this.twoWaySync,this.creatingTable=!0,this.hideError();try{let{data:t}=await q(this.$client).create(this.database.id,e);this.createdTable=t,await this.$store.dispatch(`table/forceUpsert`,{database:this.database,data:this.createdTable}),await this.syncTable(this.createdTable)}catch(e){if(e.handler&&e.handler.code===`ERROR_SYNC_ERROR`){this.showError(this.$t(`dataSyncType.syncError`),e.handler.detail),e.handler.handled();return}this.handleError(e)}finally{this.creatingTable=!1}},async onJobFinished(){let e=this.createdTable?.id||this.job?.data_sync?.table_id;e&&(await this.$router.push({name:`database-table`,params:{databaseId:this.database.id,tableId:e}}),await E(this.nuxtApp),await c()),this.restoredFromStore=!1,this.$emit(`hide`)},onJobCancelled(){let e=this.job.data_sync?.table_id;if(!e)return;let t=this.database.tables.find(t=>t.id===e);t&&(this.$store.dispatch(`table/forceDelete`,{database:this.database,table:t}),this.restoredFromStore=!1,this.job=null)},clickTwoWaySync(){this.isTwoWaySyncDeactivated&&this.$refs.twoWaySyncDeactivatedModal.show()}}},jt={key:0,class:`margin-top-3 margin-bottom-3`},Mt={class:`margin-bottom-2`},Nt={class:`modal-progress__actions`},Pt={key:1},Ft={class:`align-right`},It={key:2},Lt={key:0,class:`iconoir-lock`},Rt={class:`modal-progress__actions margin-top-2`};function zt(e,t,i,a,c,_){let x=y(`ProgressBar`),S=y(`ButtonText`),C=y(`TableForm`),w=y(`Error`),T=y(`Button`),E=y(`SwitchInput`),D=y(`FormGroup`);return c.restoredFromStore?(r(),m(`div`,jt,[p(`p`,Mt,d(e.$t(`createDataSync.syncing`)),1),p(`div`,Nt,[e.jobIsRunning||e.jobIsFinished?(r(),v(x,{key:0,value:e.job.progress_percentage,status:e.jobHumanReadableState},null,8,[`value`,`status`])):g(``,!0),e.jobIsRunning||e.cancelLoading?(r(),v(S,{key:1,tag:`a`,type:`secondary`,class:`modal-progress__cancel-button`,loading:e.cancelLoading,onClick:e.cancelJob},{default:f(()=>[b(d(e.$t(`action.cancel`)),1)]),_:1},8,[`loading`,`onClick`])):g(``,!0)])])):e.loadedProperties?(r(),m(`div`,It,[l(D,{"small-label":``,class:`margin-top-3`},{label:f(()=>[b(d(e.$t(`createDataSync.fields`)),1)]),default:f(()=>[(r(!0),m(h,null,n(e.orderedProperties,t=>(r(),v(E,{key:t.key,class:`margin-top-2`,small:``,value:e.syncedProperties.includes(t.key)||c.autoAddNewProperties,disabled:t.unique_primary||c.autoAddNewProperties||e.jobIsRunning||e.jobIsFinished,onInput:n=>e.toggleVisibleField(t.key)},{default:f(()=>[p(`i`,{class:o(e.getFieldTypeIconClass(t.field_type))},null,2),b(` `+d(t.name),1)]),_:2},1032,[`value`,`disabled`,`onInput`]))),128))]),_:1}),l(D,{"small-label":``,class:`margin-top-2`,"helper-text":e.$t(`createDataSync.autoAddHelper`)},{default:f(()=>[l(E,{modelValue:c.autoAddNewProperties,"onUpdate:modelValue":t[1]||=e=>c.autoAddNewProperties=e,class:`margin-top-2`,small:``,disabled:e.j
1obIsRunning||e.jobIsFinished},{default:f(()=>[b(d(e.$t(`createDataSync.autoAddLabel`)),1)]),_:1},8,[`modelValue`,`disabled`])]),_:1},8,[`helper-text`]),l(D,{"small-label":``,class:`margin-top-2`,"helper-text":e.$t(`createDataSync.deleteUnmatchedRowsHelper`)},{default:f(()=>[l(E,{modelValue:c.deleteUnmatchedRows,"onUpdate:modelValue":t[2]||=e=>c.deleteUnmatchedRows=e,class:`margin-top-2`,small:``,disabled:e.jobIsRunning||e.jobIsFinished},{default:f(()=>[b(d(e.$t(`createDataSync.deleteUnmatchedRowsLabel`)),1)]),_:1},8,[`modelValue`,`disabled`])]),_:1},8,[`helper-text`]),_.twoWaySyncStrategy?(r(),v(D,{key:0,"small-label":``,class:`margin-top-2`,"helper-text":_.twoWaySyncStrategy.getDescription()},{default:f(()=>[l(E,{modelValue:c.twoWaySync,"onUpdate:modelValue":t[3]||=e=>c.twoWaySync=e,class:`margin-top-2`,small:``,disabled:e.jobIsRunning||e.jobIsFinished||_.isTwoWaySyncDeactivated,onClick:_.clickTwoWaySync},{default:f(()=>[b(d(e.$t(`createDataSync.twoWaySyncLabel`))+` `,1),_.isTwoWaySyncDeactivated?(r(),m(`i`,Lt)):g(``,!0)]),_:1},8,[`modelValue`,`disabled`,`onClick`])]),_:1},8,[`helper-text`])):g(``,!0),_.twoWaySyncDeactivatedModal===null?g(``,!0):(r(),v(u(_.twoWaySyncDeactivatedModal[0]),s({key:1,ref:`twoWaySyncDeactivatedModal`},_.twoWaySyncDeactivatedModal[1]),null,16)),l(w,{error:e.error},null,8,[`error`]),p(`div`,Rt,[e.jobIsRunning||e.jobIsFinished?(r(),v(x,{key:0,value:e.job.progress_percentage,status:e.jobHumanReadableState},null,8,[`value`,`status`])):g(``,!0),e.jobIsRunning||e.cancelLoading?(r(),v(S,{key:1,tag:`a`,type:`secondary`,class:`modal-progress__cancel-button`,loading:e.cancelLoading,onClick:e.cancelJob},{default:f(()=>[b(d(e.$t(`action.cancel`)),1)]),_:1},8,[`loading`,`onClick`])):g(``,!0),l(T,{type:`primary`,size:`large`,"full-width":``,class:`modal-progress__primary-button`,disabled:c.creatingTable||e.jobIsFinished||e.jobIsRunning,loading:c.creatingTable||e.jobIsFinished||e.jobIsRunning,onClick:_.create},{default:f(()=>[b(d(e.$t(`createDataSync.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])])])):(r(),m(`div`,Pt,[l(C,{ref:`tableForm`,class:`margin-top-3 margin-bottom-2`,"default-name":_.getDefaultName(),onSubmitted:_.submitted},{default:f(()=>[(r(),v(u(_.dataSyncComponent),{disabled:e.loadingProperties},null,8,[`disabled`]))]),_:1},8,[`default-name`,`onSubmitted`]),l(w,{error:e.error},null,8,[`error`]),p(`div`,Ft,[l(T,{type:`primary`,size:`large`,disabled:e.loadingProperties,loading:e.loadingProperties,onClick:t[0]||=t=>e.$refs.tableForm.submit()},{default:f(()=>[b(d(e.$t(`createDataSync.next`)),1)]),_:1},8,[`disabled`,`loading`])])]))}var Bt=k(At,[[`render`,zt]]),Vt={name:`DataSyncTypeChoice`,props:{database:{type:Object,required:!0},dataSyncType:{required:!0,type:Object},active:{required:!0,type:Boolean},disabled:{type:Boolean,default:!1}},emits:[`selected`],computed:{deactivated(){return this.dataSyncType.isDeactivated(this.database.workspace.id)},deactivatedClickModal(){return this.dataSyncType.getDeactivatedClickModal()}},methods:{select(e){e.isDeactivated(this.database.workspace.id)?this.$refs.deactivatedClickModal.show():this.$emit(`selected`)}}},Ht={key:0,class:`deactivated-label`},Ut={key:1,class:`choice-items__icon-active iconoir-check-circle`};function Wt(e,t,n,i,a,c){return r(),m(`li`,null,[p(`a`,{class:o([`choice-items__link`,{active:n.active,disabled:n.disabled}]),onClick:t[0]||=e=>!n.disabled&&c.select(n.dataSyncType)},[p(`i`,{class:o([`choice-items__icon`,n.dataSyncType.iconClass])},null,2),p(`span`,null,d(n.dataSyncType.getName()),1),c.deactivated?(r(),m(`div`,Ht,[...t[1]||=[p(`i`,{class:`iconoir-lock`},null,-1)]])):g(``,!0),n.active?(r(),m(`i`,Ut)):g(``,!0)],2),c.deactivatedClickModal===null?g(``,!0):(r(),v(u(c.deactivatedClickModal[0]),s({key:0,ref:`deactivatedClickModal`},c.deactivatedClickModal[1],{workspace:n.database.workspace,name:n.dataSyncType.getName()}),null,16,[`workspace`,`name`]))])}var Gt={name:`CreateTableModal`,components:{DataSyncTypeChoice:k(Vt,[[`render`,Wt]]),CreateTable:kt,CreateDataSync:Bt},mixins:[L],props:{database:{type:Object,required:!0}},data(){return{chosenType:``,importInProgress:!1,uploadingBeforeJobCreated:!1}},computed:{importerTypes(){return this.$registry.getAll(`importer`)},dataSyncTypes(){return this.$registry.getAll(`dataSync`)},isImporter(){return this.chosenType===``||this.$registry.exists(`importer`,this.chosenType)}},methods:{onShow(){let e=this.getRunningJobType();this.setChosenType(e||``)},getRunningJobType(){let e=this.$store.getters[`job/getUnfinishedJobs`],t=this.database.id,n=e.find(e=>e.type===P.getType()&&e.table_id===null&&e.database_id===t);if(n){let e=n.importer_type||``;return e&&this.$registry.exists(`importer`,e)?e:``}let r=e.find(e=>e.type===M.getType()&&e.data_sync?.database_id===t);if(r){let e=r.data_sync?.type||``;return e&&this.$registry.exists(`dataSync`,e)?e:``}return null},callCreateComponentHide(){this.$refs.createComponent.hide()},setChosenType(e){(e!==this.chosenType||e===``)&&(this.chosenType=e,this.$refs.createComponent?.reset())}}},Kt={class:`import-modal__header`},qt={class:`import-modal__title`},Jt={class:`control margin-bottom-2`},Yt={class:`choice-items margin-top-1`},Xt={key:0,class:`choice-items__icon-active iconoir-check-circle`},Zt=[`onClick`],Qt={key:0,class:`choice-items__icon-active iconoir-check-circle`};function $t(e,t,i,a,s,c){let u=y(`DataSyncTypeChoice`),_=y(`FormGroup`),b=y(`CreateTable`),x=y(`CreateDataSync`),S=y(`Modal`);return r(),v(S,{ref:`modal`,"can-close":!s.uploadingBeforeJobCreated,onShow:c.onShow,onHidden:t[7]||=e=>c.callCreateComponentHide()},{content:f(()=>[p(`div`,Kt,[p(`h2`,qt,d(e.$t(`createTableModal.title`)),1)]),p(`div`,Jt,[l(_,{label:e.$t(`createTableModal.importLabel`),"small-label":``,required:``},{default:f(()=>[p(`ul`,Yt,[p(`li`,null,[p(`a`,{class:o([`choice-items__link`,{active:s.chosenType===``,disabled:s.importInProgress}]),onClick:t[0]||=e=>
1!s.importInProgress&&c.setChosenType(``)},[t[8]||=p(`i`,{class:`choice-items__icon iconoir-copy`},null,-1),p(`span`,null,d(e.$t(`createTableModal.newTable`)),1),s.chosenType===``?(r(),m(`i`,Xt)):g(``,!0)],2)]),(r(!0),m(h,null,n(c.importerTypes,e=>(r(),m(`li`,{key:e.type},[p(`a`,{class:o([`choice-items__link`,{active:s.chosenType===e.type,disabled:s.importInProgress}]),onClick:t=>!s.importInProgress&&c.setChosenType(e.type)},[p(`i`,{class:o([`choice-items__icon`,e.iconClass])},null,2),p(`span`,null,d(e.getName()),1),s.chosenType===e.type?(r(),m(`i`,Qt)):g(``,!0)],10,Zt)]))),128)),(r(!0),m(h,null,n(c.dataSyncTypes,e=>(r(),v(u,{key:e.type,active:s.chosenType===e.type,"data-sync-type":e,database:i.database,disabled:s.importInProgress,onSelected:t=>!s.importInProgress&&c.setChosenType(e.type)},null,8,[`active`,`data-sync-type`,`database`,`disabled`,`onSelected`]))),128))])]),_:1},8,[`label`])]),c.isImporter?(r(),v(b,{key:0,ref:`createComponent`,"chosen-type":s.chosenType,database:i.database,onHide:t[1]||=t=>e.hide(),onImportInProgress:t[2]||=e=>s.importInProgress=e,onUploadingBeforeJobCreated:t[3]||=e=>s.uploadingBeforeJobCreated=e},null,8,[`chosen-type`,`database`])):(r(),v(x,{key:1,ref:`createComponent`,"chosen-type":s.chosenType,database:i.database,onHide:t[4]||=t=>e.hide(),onImportInProgress:t[5]||=e=>s.importInProgress=e,onUploadingBeforeJobCreated:t[6]||=e=>s.uploadingBeforeJobCreated=e},null,8,[`chosen-type`,`database`]))]),_:1},8,[`can-close`,`onShow`])}var en={name:`DBSidebar`,components:{CreateTableModal:k(Gt,[[`render`,$t]]),SidebarApplication:he,SidebarItem:yt},props:{application:{type:Object,required:!0},workspace:{type:Object,required:!0}},computed:{orderedTables(){return this.application.tables.map(e=>e).sort((e,t)=>e.order-t.order)},pendingJobs(){return this.$store.getters[`job/getAll`].filter(e=>this.$registry.get(`job`,e.type).isJobPartOfApplication(e,this.application))},...O({isAppSelected:`application/isSelected`})},methods:{async selected(e){try{await this.$store.dispatch(`application/select`,e)}catch(e){V(e,`workspace`)}},async orderTables(e,t){try{await this.$store.dispatch(`table/order`,{database:this.application,order:e,oldOrder:t})}catch(e){V(e,`table`)}},getPendingJobComponent(e){return this.$registry.get(`job`,e.type).getSidebarComponent()}}},tn={class:`tree__subs`},nn={key:0,class:`tree__subs`};function rn(e,t,a,o,s,c){let S=y(`SidebarItem`),C=y(`CreateTableModal`),w=y(`SidebarApplication`),T=i(`sortable`);return r(),v(w,{workspace:a.workspace,application:a.application,onSelected:c.selected},x({_:2},[e.isAppSelected(a.application)?{name:`body`,fn:f(()=>[p(`ul`,tn,[(r(!0),m(h,null,n(c.orderedTables,t=>_((r(),v(S,{key:t.id,database:a.application,table:t},null,8,[`database`,`table`])),[[T,{id:t.id,update:c.orderTables,marginTop:-1.5,enabled:e.$hasPermission(`database.order_tables`,a.application,a.application.workspace.id)}]])),128))]),c.pendingJobs.length?(r(),m(`ul`,nn,[(r(!0),m(h,null,n(c.pendingJobs,e=>(r(),v(u(c.getPendingJobComponent(e)),{key:e.id,job:e},null,8,[`job`]))),128))])):g(``,!0),e.$hasPermission(`database.create_table`,a.application,a.application.workspace.id)?(r(),m(`a`,{key:1,class:`tree__sub-add`,"data-highlight":`create-table`,onClick:t[0]||=t=>e.$refs.createTableModal.show()},[t[1]||=p(`i`,{class:`tree__sub-add-icon iconoir-plus`},null,-1),b(` `+d(e.$t(`sidebar.createTable`)),1)])):g(``,!0),l(C,{ref:`createTableModal`,database:a.application},null,8,[`database`])]),key:`0`}:void 0]),1032,[`workspace`,`application`,`onSelected`])}var an=k(en,[[`render`,rn]]),on={name:`DBTemplateSidebar`,props:{application:{type:Object,required:!0},page:{required:!0,validator:e=>typeof e==`object`||e===null}},emits:[`selected`,`selected-page`],computed:{orderedTables(){return this.application.tables.map(e=>e).sort((e,t)=>e.order-t.order)}},methods:{selectTable(e,t){this.$emit(`selected-page`,{application:$.getType(),value:{database:e,table:t}})},isTableActive(e){return this.page!==null&&this.page.application===$.getType()&&this.page.value.table.id===e.id}}},sn={class:`tree__action`},cn={class:`tree__link-text`},ln={key:0,class:`tree__subs`},un=[`onClick`],dn={key:0,class:`context__menu-item-icon iconoir-data-transfer-down`};function fn(e,t,i,a,s,c){return r(),m(`li`,{class:o([`tree__item`,{"tree__item--loading":i.application._.loading}])},[p(`div`,sn,[p(`a`,{class:`tree__link`,onClick:t[0]||=t=>e.$emit(`selected`,i.application)},[p(`i`,{class:o([`tree__icon`,i.application._.type.iconClass])},null,2),p(`span`,cn,d(i.application.name),1)])]),i.application._.selected?(r(),m(`ul`,ln,[(r(!0),m(h,null,n(c.orderedTables,e=>(r(),m(`li`,{key:e.id,class:o([`tree__sub`,{active:c.isTableActive(e)}])},[p(`a`,{class:`tree__sub-link`,onClick:t=>c.selectTable(i.application,e)},[e.data_sync?(r(),m(`i`,dn)):g(``,!0),b(` `+d(e.name),1)],8,un)],2))),128))])):g(``,!0)],2)}var pn=k(on,[[`render`,fn]]),mn=Error(`request for lock canceled`),hn=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},gn=class{constructor(e,t=mn){this._value=e,this._cancelError=t,this._weightedQueues=[],this._weightedWaiters=[]}acquire(e=1){if(e<=0)throw Error(`invalid weight ${e}: must be positive`);return new Promise((t,n)=>{this._weightedQueues[e-1]||(this._weightedQueues[e-1]=[]),this._weightedQueues[e-1].push({resolve:t,reject:n}),this._dispatch()})}runExclusive(e,t=1){return hn(this,void 0,void 0,function*(){let[n,r]=yield this.acquire(t);try{return yield e(n)}finally{r()}})}waitForUnlock(e=1){if(e<=0)throw Error(`invalid weight ${e}: must be positive`);return new Promise(t=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),this._weightedWaiters[e-1].push(t),this._dispatch()})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatch()}release(e=1){if(e<=0)throw Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatch()}
1cancel(){this._weightedQueues.forEach(e=>e.forEach(e=>e.reject(this._cancelError))),this._weightedQueues=[]}_dispatch(){for(let e=this._value;e>0;e--){let t=this._weightedQueues[e-1]?.shift();if(!t)continue;let n=this._value,r=e;this._value-=e,e=this._value+1,t.resolve([n,this._newReleaser(r)])}this._drainUnlockWaiters()}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){for(let e=this._value;e>0;e--)this._weightedWaiters[e-1]&&(this._weightedWaiters[e-1].forEach(e=>e()),this._weightedWaiters[e-1]=[])}},_n=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},vn=class{constructor(e){this._semaphore=new gn(1,e)}acquire(){return _n(this,void 0,void 0,function*(){let[,e]=yield this._semaphore.acquire();return e})}runExclusive(e){return this._semaphore.runExclusive(()=>e())}isLocked(){return this._semaphore.isLocked()}waitForUnlock(){return this._semaphore.waitForUnlock()}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}},yn={name:`TableTemplate`,components:{Table:ie},props:{pageValue:{type:Object,required:!0}},data(){return{database:{},table:{},fields:[],views:[],view:{},tableLoading:!0,mutex:new vn}},watch:{pageValue(e){this.fetchTable(e.database,e.table)}},mounted(){this.fetchTable(this.pageValue.database,this.pageValue.table)},methods:{async runExclusiveUnlessAlreadyLocked({callback:e,alreadyLocked:t=!1}){return t?await e():await this.mutex.runExclusive(e)},async fetchTable(e,n){await this.runExclusiveUnlessAlreadyLocked({callback:async()=>{if(n.id===this.table.id)return;this.tableLoading=!0,this.database=e,this.table=n;let{data:r}=await I(this.$client).fetchAll(n.id),{$registry:i}=t();r.forEach((e,t,n)=>{X(r[t],i)}),this.fields=r;let{data:a}=await ce(this.$client).fetchAll(n.id,!0,!0,!0,!0,!0);a.forEach((e,t,n)=>{ee(a[t],this.$registry)}),this.views=a,await this.selectView({alreadyLocked:!0})}})},async selectView({viewId:e=null,alreadyLocked:t=!1}){e!==this.view.id&&await this.runExclusiveUnlessAlreadyLocked({alreadyLocked:t,callback:async()=>{if(e===this.view.id)return;this.tableLoading=!0;let t=this.views.length>0?this.views[0]:null;e===null&&t!==null&&(e=t.id),this.views.forEach(t=>{t._.selected=t.id===e});let n=this.views.find(t=>t.id===e);this.view=n,await this.$registry.get(`view`,n.type).fetch({store:this.$store,app:this},this.database,n,this.fields,`template/`),this.tableLoading=!1}})}}};function bn(e,t,n,i,a,o){let s=y(`Table`);return r(),v(s,{database:a.database,table:a.table,fields:a.fields,views:a.views,view:a.view,"table-loading":a.tableLoading,"read-only":!0,"disable-filter":!0,"disable-sort":!0,"disable-group-by":!0,"store-prefix":`template/`,onSelectedView:t[0]||=e=>o.selectView({viewId:e.id})},null,8,[`database`,`table`,`fields`,`views`,`view`,`table-loading`])}var xn=k(yn,[[`render`,bn]]);function Q(e){return{...e,_:{disabled:!1,selected:!1}}}var Sn={namespaced:!0,state:()=>({selected:{}}),getters:{getSelected:e=>e.selected,getSelectedId(e){return e.selected.id||0}},actions:{async create({commit:e,dispatch:t},{database:n,values:r,initialData:i=null,firstRowHeader:a=!0,onUploadProgress:o=null}){let{$client:s}=this,c=$.getType();if(n.type!==c)throw Error(`The provided database application doesn't have the required type
2        "${c}".`);let{data:l}=await N(s).create(n.id,r,i,a,{onUploadProgress:o});return l},async fetch({dispatch:e},{database:t,tableId:n}){let{$client:r}=this,{data:i}=await N(r).get(n);return e(`forceCreate`,{database:t,data:i}),i},forceUpsert({commit:e},{database:t,data:n}){let r=t.tables.find(e=>e.id===n.id);return r===void 0?e(`ADD_ITEM`,{database:t,table:n}):e(`UPDATE_ITEM`,{database:t,table:r,values:n}),t.tables.find(e=>e.id===n.id)},async update({commit:e,dispatch:t},{database:n,table:r,values:i}){let{$client:a}=this,{data:o}=await N(a).update(r.id,i);t(`forceUpdate`,{database:n,table:r,values:Object.keys(i).reduce((e,t)=>
2(e[t]=o[t],e),{})})},forceUpdate({commit:e},{database:t,table:n,values:r}){e(`UPDATE_ITEM`,{database:t,table:n,values:r})},async order({commit:e,getters:t},{database:n,order:r,oldOrder:i,isHashed:a=!1}){let{$client:o}=this;e(`ORDER_TABLES`,{database:n,order:r,isHashed:a});try{await N(o).order(n.id,r)}catch(t){throw e(`ORDER_TABLES`,{database:n,order:i,isHashed:a}),t}},async delete({commit:e,dispatch:t},{database:n,table:r}){let{$client:i}=this;try{return await N(i).delete(r.id),t(`forceDelete`,{database:n,table:r})}catch(e){if(e.response&&e.response.status===404)return t(`forceDelete`,{database:n,table:r});throw e}},forceDelete(e,{database:t,table:n}){let{$registry:r}=this,{commit:i,rootGetters:a}=e;a[`field/getAll`].forEach(i=>{r.get(`field`,i.type).tableDeleted(e,i,n,t)}),n._.selected&&this.$router.push({name:`dashboard`}),i(`DELETE_ITEM`,{database:t,id:n.id})},async select({commit:e,dispatch:t,getters:n},{database:r,table:i}){return n.getSelectedId===i.id||await t(`forceSelect`,{database:r,table:i}),{database:r,table:i}},forceSelect({commit:e,dispatch:t},{database:n,table:r}){t(`undoRedo/updateCurrentScopeSet`,oe.table(r.id),{root:!0}),e(`UNSELECT`),e(`SET_SELECTED`,{database:n,table:r})},async selectById({dispatch:e,getters:t,rootGetters:n},{databaseId:r,tableId:i}){let a=await e(`application/selectById`,r,{root:!0}),o=$.getType();if(a.type!==o)throw new G(`The application doesn't have the required ${o} type.`);let s=a.tables.find(e=>e.id===i);if(!s)throw new G(`The table is not found in the selected application.`);return await e(`select`,{database:a,table:s})},unselect({commit:e,dispatch:t,getters:n}){t(`undoRedo/updateCurrentScopeSet`,oe.table(null),{root:!0}),e(`UNSELECT`)}},mutations:{ADD_ITEM(e,{database:t,table:n}){t.tables.push(Q(n))},UPDATE_ITEM(e,{table:t,values:n}){Object.assign(t,t,n)},ORDER_TABLES(e,{database:t,order:n,isHashed:r=!1}){t.tables.forEach(e=>{let t=r?de(e.id):e.id,i=n.findIndex(e=>e===t);e.order=i===-1?0:i+1})},SET_SELECTED(e,{database:t,table:n}){Object.values(t.tables).forEach(e=>{e._.selected=!1}),n._.selected=!0,e.selected=n},UNSELECT(e){Object.prototype.hasOwnProperty.call(e.selected,`_`)&&(e.selected._.selected=!1,e.selected={})},DELETE_ITEM(e,{database:t,id:n}){let r=t.tables.findIndex(e=>e.id===n);t.tables.splice(r,1)}}},Cn=e=>({create(t,n,r,i,a){return e.post(`/jobs/`,{type:`airtable`,workspace_id:t,airtable_share_url:n,skip_files:r,session:i,session_signature:a})}}),wn={name:`AirtableImportForm`,mixins:[U],emits:[`input`],setup(){return{v$:R({$lazy:!0})}},data(){return{values:{airtableUrl:``,skipFiles:!1,useSession:!1,session:``,sessionSignature:``}}},watch:{values:{handler(e){this.$emit(`input`,e)},deep:!0}},validations(){let e={values:{airtableUrl:{required:z,valid(e){return!!e.match(/https:\/\/airtable.com\/[shr|app](.*)$/g)}}}};return this.values.useSession&&(e.values.session={required:z},e.values.sessionSignature={required:z}),e}},Tn={class:`margin-bottom-2`},En={class:`margin-bottom-2`},Dn={class:`margin-bottom-2`},On={key:0,class:`margin-bottom-2`},kn={class:`margin-bottom-2`};function An(e,t,n,i,o,s){let c=y(`FormInput`),u=y(`FormGroup`),h=y(`HelpIcon`),_=y(`Checkbox`);return r(),m(`form`,{onSubmit:t[5]||=S((...t)=>e.submit&&e.submit(...t),[`prevent`])},[p(`p`,Tn,[b(d(e.$t(`importFromAirtable.airtableShareLinkDescription`))+` `,1),t[6]||=p(`br`,null,null,-1),t[7]||=p(`br`,null,null,-1),b(` `+d(e.$t(`importFromAirtable.airtableShareLinkBeta`)),1)]),l(u,{label:e.$t(`importFromAirtable.airtableShareLinkTitle`),error:i.v$.values.airtableUrl.$error,"small-label":``,required:``,class:`margin-bottom-2`},{error:f(()=>[b(d(e.$t(`importFromAirtable.linkError`)),1)]),default:f(()=>[l(c,{modelValue:i.v$.values.airtableUrl.$model,"onUpdate:modelValue":t[0]||=e=>i.v$.values.airtableUrl.$model=e,error:i.v$.values.airtableUrl.$error,placeholder:e.$t(`importFromAirtable.airtableShareLinkPaste`),size:`large`,onBlur:i.v$.values.airtableUrl.$touch},null,8,[`modelValue`,`error`,`placeholder`,`onBlur`])]),_:1},8,[`label`,`error`]),p(`div`,En,[l(_,{modelValue:o.values.skipFiles,"onUpdate:modelValue":t[1]||=e=>o.values.skipFiles=e},{default:f(()=>[b(d(e.$t(`importFromAirtable.skipFiles`))+` `,1),l(h,{tooltip:e.$t(`importFromAirtable.skipFilesHelper`),"tooltip-content-type":`plain`,"tooltip-content-classes":[`tooltip__content--expandable`,`tooltip__content--expandable-plain-text`],icon:`info-empty`},null,8,[`tooltip`])]),_:1},8,[`modelValue`])]),p(`div`,Dn,[l(_,{modelValue:o.values.useSession,"onUpdate:modelValue":t[2]||=e=>o.values.useSession=e},{default:f(()=>[b(d(e.$t(`importFromAirtable.useSession`))+` `,1),l(h,{tooltip:e.$t(`importFromAirtable.useSessionHelper`),"tooltip-content-type":`plain`,"tooltip-content-classes":[`tooltip__content--expandable`,`tooltip__content--expandable-plain-text`],icon:`info-empty`},null,8,[`tooltip`])]),_:1},8,[`modelValue`])]),o.values.useSession?(r(),m(`div`,On,[p(`p`,kn,d(e.$t(`importFromAirtable.sessionDescription`)),1),l(u,{label:e.$t(`importFromAirtable.sessionLabel`),error:i.v$.values.session.$error,"small-label":``,required:``,class:`margin-bottom-2`},{default:f(()=>[l(c,{modelValue:i.v$.values.session.$model,"onUpdate:modelValue":t[3]||=e=>i.v$.values.session.$model=e,error:i.v$.values.session.$error,placeholder:`eyJzZXNz...`,size:`large`,onBlur:i.v$.values.session.$touch},null,8,[`modelValue`,`error`,`onBlur`])]),_:1},8,[`label`,`error`]),l(u,{label:e.$t(`importFromAirtable.sessionSignatureLabel`),error:i.v$.values.sessionSignature.$error,"small-label":``,required:``,class:`margin-bottom-2`},{default:f(()=>[l(c,{modelValue:i.v$.values.sessionSignature.$model,"onUpdate:modelValue":t[4]||=e=>i.v$.values.sessionSignature.$model=e,error:i.v$.values.sessionSignature.$error,placeholder:`OYncZ-Nz...`,size:`large`,onBlur:i.v$.values.sessionSignature.$touch},null,8,[`modelValue`,`error`,`onBlur`])]),_:1},8,[`label`,`error`])])):g(``,!0),a(e.$slots,`default`)],32)}var jn=k(wn,[[`render`,An]]),Mn=`AirtableBaseNotPublic`;function Nn(e,t){return{AirtableBaseRequiresAuthentication:{title:e(`importFromAirtable.errorRequiresAuthenticationTitle`),message:e(`importFromAirtable.errorRequiresAuthenticationDescription`)},AirtableBaseNotPublic:{title:e(`importFromAirtable.errorBaseNotPublicTitle`),message:e(`importFromAirtable.errorBaseNotPublicDescription`)}}[t.error_code]||{title:e(`importFromAirtable.importError`),message:t.human_readable_error}}var Pn={name:`ImportFromAirtable`,components:{AirtableImportForm:jn},mixins:[B,fe],props:{workspace:{type:Object,required:!0}},emits:[`hidden`],data(){return{loading:!1,lastAirtableUrl:``,showOpenSharedLink:!1}},beforeUnmount(){this.stopPollIfRunning()},methods:{async importFromAirtable(e){if(!this.loading){this.loading=!0,this.hideError(),this.lastAirtableUrl=e.airtableUrl,this.showOpenSharedLink=!1;try{let{data:t}=await Cn(this.$client).create(this.workspace.id,e.airtableUrl,e.skipFiles,e.useSession?e.session:null,e.useSession?e.sessionSignature:null);this.startJobPoller(t)}catch(e){this.stopPollAndHandleError(e,{ERROR_MAX_JOB_COUNT_EXCEEDED:new H(this.$t(`importFromAirtable.errorJobAlreadyRunningTitle`),this.$t(`importFromAirtable.errorJobAlreadyRunningDescription`))})}}},stopPollAndHandleError(e,t=null){this.loading=!1,this.stopPollIfRunning(),e.handler?this.handleError(e,`airtable`,t):this.showError(e)},getCustomHumanReadableJobState(e){let t=`importing-table-`;if(e.startsWith(t)){let n=e.replace(t,``);return this.$t(`importFromAirtable.stateImportingTable`,{table:n})}return{"downloading-base":this.$t(`importFromAirtable.stateDownloadingBase`),converting:this.$t(`importFromAirtable.stateConverting`),"downloading-files":this.$t(`importFromAirtable.stateDownloadingFiles`),importing:this.$t(`importFromAirtable.stateImporting`)}[e]},async openDatabase(){let e=this.$store.getters[`application/get`](this.job.database.id);await this.$registry.get(`application`,e.type).select(e,this)&&this.$emit(`hidden`)},onJobFailed(){this.job.error_code===`AirtableBaseRequiresAuthentication`&&this.$refs.form&&(this.$refs.form.values.useSession=!0),this.showOpenSharedLink=this.job.error_code===Mn;let e=Nn(e=>this.$t(e),this.job);this.stopPollAndHandleError(new H(e.title,e.message))},onJobPollingError(e){this.stopPollAndHandleError(e)}}},Fn=[`href`],In={class:`modal-progress__actions`};function Ln(e,t,n,i,a,o){let s=y(`Error`),c=y(`ProgressBar`),u=y(`Button`),h=y(`AirtableImportForm`);return r(),m(`div`,null,[l(h,{ref:`form`,onSubmitted:o.importFromAirtable},{default:f(()=>[l(s,{error:e.error},x({_:2},[a.showOpenSharedLink?{name:`actions`,fn:f(()=>[p(`a`,{class:`alert__actions-button-text`,href:a.lastAirtableUrl,target:`_blank`,rel:`noopener noreferrer`}
2,d(e.$t(`importFromAirtable.openSharedLink`)),9,Fn)]),key:`0`}:void 0]),1032,[`error`]),p(`div`,In,[e.jobIsRunning||e.jobHasSucceeded?(r(),v(c,{key:0,value:e.job.progress_percentage,status:e.jobHumanReadableState},null,8,[`value`,`status`])):g(``,!0),e.jobHasSucceeded?(r(),v(u,{key:2,type:`secondary`,size:`large`,class:`modal-progress__export-button`,onClick:o.openDatabase},{default:f(()=>[b(d(e.$t(`importFromAirtable.openButtonLabel`)),1)]),_:1},8,[`onClick`])):(r(),v(u,{key:1,type:`primary`,size:`large`,class:`modal-progress__export-button`,loading:a.loading,disabled:a.loading},{default:f(()=>[b(d(e.$t(`importFromAirtable.importButtonLabel`)),1)]),_:1},8,[`loading`,`disabled`]))])]),_:1},8,[`onSubmitted`])])}var Rn=k(Pn,[[`render`,Ln]]),zn={name:`BlankDatabaseForm`,mixins:[U],props:{defaultName:{type:String,required:!1,default:``},loading:{type:Boolean,required:!0}},setup(){return{v$:R({$lazy:!0})}},data(){return{values:{name:this.defaultName}}},computed:{databaseApplicationType(){return this.$registry.get(`application`,`database`)}},mounted(){this.$refs.name.focus()},validations(){return{values:{name:{required:ue.withMessage(this.$t(`error.requiredField`),z)}}}}},Bn={class:`actions`},Vn={class:`align-right`};function Hn(e,t,n,i,a,o){let s=y(`FormInput`),c=y(`FormGroup`),u=y(`Button`);return r(),m(`form`,{onSubmit:t[2]||=S((...t)=>e.submit&&e.submit(...t),[`prevent`])},[l(c,{error:e.fieldHasErrors(`name`),required:``,"small-label":``},{label:f(()=>[t[3]||=p(`i`,{class:`iconoir-text`},null,-1),b(` `+d(e.$t(`applicationForm.nameLabel`)),1)]),error:f(()=>[b(d(i.v$.values.name.$errors[0]?.$message),1)]),default:f(()=>[l(s,{ref:`name`,modelValue:i.v$.values.name.$model,"onUpdate:modelValue":t[0]||=e=>i.v$.values.name.$model=e,error:e.fieldHasErrors(`name`),type:`text`,size:`large`,placeholder:e.$t(`applicationForm.namePlaceholder`),onFocusOnce:t[1]||=e=>e.target.select(),onBlur:i.v$.values.name.$touch},null,8,[`modelValue`,`error`,`placeholder`,`onBlur`])]),_:1},8,[`error`]),p(`div`,Bn,[p(`div`,Vn,[l(u,{type:`primary`,size:`large`,loading:n.loading,disabled:n.loading},{default:f(()=>[b(d(e.$t(`action.add`))+` `+d(e.$filters.lowercase(o.databaseApplicationType.getName())),1)]),_:1},8,[`loading`,`disabled`])])])],32)}var Un={name:`DatabaseForm`,components:{BlankDatabaseForm:k(zn,[[`render`,Hn]]),ImportFromAirtable:Rn},props:{defaultName:{type:String,required:!1,default:``},loading:{type:Boolean,required:!0},workspace:{type:Object,required:!0}},emits:[`submitted`,`hidden`],data(){return{importType:`none`}}},Wn={class:`choice-items`},Gn={key:0,class:`choice-items__icon-active iconoir-check-circle`},Kn={key:0,class:`choice-items__icon-active iconoir-check-circle`};function qn(e,t,n,i,a,s){let c=y(`FormGroup`),u=y(`BlankDatabaseForm`),h=y(`ImportFromAirtable`);return r(),m(`div`,null,[l(c,{label:e.$t(`databaseForm.importLabel`),"small-label":``,required:``,class:`margin-bottom-3`},{default:f(()=>[p(`ul`,Wn,[p(`li`,null,[p(`a`,{class:o([`choice-items__link`,{active:a.importType===`none`}]),onClick:t[0]||=e=>a.importType=`none`},[t[4]||=p(`i`,{class:`choice-items__icon iconoir-copy`},null,-1),p(`span`,null,d(e.$t(`databaseForm.emptyLabel`)),1),a.importType===`none`?(r(),m(`i`,Gn)):g(``,!0)],2)]),p(`li`,null,[p(`a`,{class:o([`choice-items__link`,{active:a.importType===`airtable`}]),onClick:t[1]||=e=>a.importType=`airtable`},[t[5]||=p(`i`,{class:`choice-items__icon iconoir-copy`},null,-1),p(`span`,null,d(e.$t(`databaseForm.airtableLabel`)),1),a.importType===`airtable`?(r(),m(`i`,Kn)):g(``,!0)],2)])])]),_:1},8,[`label`]),a.importType===`none`?(r(),v(u,{key:0,"default-name":n.defaultName,loading:n.loading,onSubmitted:t[2]||=t=>e.$emit(`submitted`,t)},null,8,[`default-name`,`loading`])):a.importType===`airtable`?(r(),v(h,{key:1,workspace:n.workspace,onHidden:t[3]||=t=>e.$emit(`hidden`,t)},null,8,[`workspace`])):g(``,!0)])}var Jn=k(Un,[[`render`,qn]]),Yn={components:{ApplicationContext:ge},mixins:[me],props:{application:{type:Object,required:!0},workspace:{type:Object,required:!0}}},Xn={class:`context__menu-item`};function Zn(e,t,n,i,a,o){let s=D,c=y(`ApplicationContext`,!0);return r(),v(c,{ref:`context`,application:n.application,workspace:n.workspace},{"additional-context-items":f(()=>[p(`li`,Xn,[l(s,{to:{name:`database-api-docs-detail`,params:{databaseId:n.application.id}},class:`context__menu-item-link`},{default:f(()=>[t[0]||=p(`i`,{class:`context__menu-item-icon iconoir-book`},null,-1),b(` `+d(e.$t(`sidebar.viewAPI`)),1)]),_:1},8,[`to`])])]),_:1},8,[`application`,`workspace`])}var Qn=k(Yn,[[`render`,Zn]]),$=class extends pe{static getType(){return`database`}getRowExpandButtonComponent(){return Se}getIconClass(){return`iconoir-db`}getName(){let{$i18n:e}=this.app;return e.t(`applicationType.database`)}
2getNamePlural(){let{$i18n:e}=this.app;return e.t(`applicationType.databases`)}getDescription(){let{$i18n:e}=this.app;return e.t(`applicationType.databaseDesc`)}getDefaultName(){let{$i18n:e}=this.app;return e.t(`applicationType.databaseDefaultName`)}getSidebarComponent(){return an}getApplicationContextComponent(){return Qn}getTemplateSidebarComponent(){return pn}getTemplatesPageComponent(){return xn}getTemplatePage(e){return e.tables.length===0?null:{database:e,table:e.tables[0]}}getDependentsName(){return[`table`,`tables`]}getDependents(e){return e.tables.map(e=>({id:e.id,iconClass:`table`,name:e.name}))}populate(e){let t=e.tables.map(e=>Q(e));return{...super.populate(e),tables:t,integrations:e.integrations||[],_integrationsLoadedOnce:!1}}delete(e,{$router:t}){e.tables.some(e=>e._.selected)&&t.push({name:`dashboard`})}async select(e,{$router:t,$store:n,$i18n:r}){let i=e.tables.map(e=>e).sort((e,t)=>e.order-t.order);return i.length>0?(await t.push({name:`database-table`,params:{databaseId:e.id,tableId:i[0].id}}),await E(this.app),await c(),!0):(n.dispatch(`toast/error`,{title:r.t(`applicationType.cantSelectTableTitle`),message:r.t(`applicationType.cantSelectTableDescription`)}),!1)}prepareForStoreUpdate(e,t){return Object.prototype.hasOwnProperty.call(t,`tables`)&&delete t.tables,t}getApplicationFormComponent(){return Jn}getOrder(){return 20}};export{Q as a,Ie as c,X as d,Se as f,Cn as i,Oe as l,Nn as n,Sn as o,jn as r,Ye as s,$ as t,De as u};
3//# sourceMappingURL=C0q2Wyhg.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.