@powerhousedao/connect 5.0.0-staging.22 → 5.0.0-staging.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{atlas-import.BgATR-r7.js → atlas-import.DV9NGIcV.js} +2 -2
- package/dist/assets/{atlas-import.BgATR-r7.js.map → atlas-import.DV9NGIcV.js.map} +1 -1
- package/dist/assets/{ccip.jl18lENV.js → ccip.BYxx80kf.js} +2 -2
- package/dist/assets/{ccip.jl18lENV.js.map → ccip.BYxx80kf.js.map} +1 -1
- package/dist/assets/{content.DvmXmlAV.js → content.DS8bCjW3.js} +2 -2
- package/dist/assets/{content.DvmXmlAV.js.map → content.DS8bCjW3.js.map} +1 -1
- package/dist/assets/{creators.DxnBvZmB.js → creators.CjFm02Wg.js} +2 -2
- package/dist/assets/{creators.DxnBvZmB.js.map → creators.CjFm02Wg.js.map} +1 -1
- package/dist/assets/{drive-icon.BkTTXAVC.js → drive-icon.BEe60eO5.js} +2 -2
- package/dist/assets/{drive-icon.BkTTXAVC.js.map → drive-icon.BEe60eO5.js.map} +1 -1
- package/dist/assets/{index.gzsoMXLp.js → index.6RVr5bn1.js} +2 -2
- package/dist/assets/{index.gzsoMXLp.js.map → index.6RVr5bn1.js.map} +1 -1
- package/dist/assets/{index.HEXeD-Ya.js → index.Bt-6AiBl.js} +2 -2
- package/dist/assets/{index.HEXeD-Ya.js.map → index.Bt-6AiBl.js.map} +1 -1
- package/dist/assets/{index.huU8PUzV.js → index.CSVNwIam.js} +2 -2
- package/dist/assets/{index.huU8PUzV.js.map → index.CSVNwIam.js.map} +1 -1
- package/dist/assets/{index.D0MzbN42.js → index.DHgLJqcJ.js} +2 -2
- package/dist/assets/{index.D0MzbN42.js.map → index.DHgLJqcJ.js.map} +1 -1
- package/dist/assets/{index.m18NImLB.js → index.DnJYbUXB.js} +2 -2
- package/dist/assets/{index.m18NImLB.js.map → index.DnJYbUXB.js.map} +1 -1
- package/dist/assets/{index.BxyhGJau.js → index.J5BySxKV.js} +2 -2
- package/dist/assets/{index.BxyhGJau.js.map → index.J5BySxKV.js.map} +1 -1
- package/dist/assets/{index.r8UiWE99.js → index.OK3T5arx.js} +2 -2
- package/dist/assets/{index.r8UiWE99.js.map → index.OK3T5arx.js.map} +1 -1
- package/dist/assets/{main.CrANKVyU.js → main.D9OoNJWh.js} +7 -7
- package/dist/assets/{main.CrANKVyU.js.map → main.D9OoNJWh.js.map} +1 -1
- package/dist/assets/{nodefs.BoXHuKHB.js → nodefs.D4Jzt58G.js} +2 -2
- package/dist/assets/{nodefs.BoXHuKHB.js.map → nodefs.D4Jzt58G.js.map} +1 -1
- package/dist/assets/{opfs-ahp.hLLeu4rw.js → opfs-ahp.DuAFuh-M.js} +2 -2
- package/dist/assets/{opfs-ahp.hLLeu4rw.js.map → opfs-ahp.DuAFuh-M.js.map} +1 -1
- package/dist/assets/{root.BB4-uWle.js → root.DytsescB.js} +2 -2
- package/dist/assets/{root.BB4-uWle.js.map → root.DytsescB.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/vite-envs.sh +1 -1
- package/package.json +9 -9
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var y=Object.defineProperty;var m=(s,t,e)=>t in s?y(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var g=(s,t,e)=>m(s,typeof t!="symbol"?t+"":t,e);import{k as $,A as p,r as S,D as v}from"./main.
|
|
2
|
-
//# sourceMappingURL=index.
|
|
1
|
+
var y=Object.defineProperty;var m=(s,t,e)=>t in s?y(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var g=(s,t,e)=>m(s,typeof t!="symbol"?t+"":t,e);import{k as $,A as p,r as S,D as v}from"./main.D9OoNJWh.js";import"react/jsx-runtime";import"react-dom/client";import"react";import"react-dom";function w(s,t){const e=[],o=d(s,t,"state.global","global");e.push(...o);const i=e.filter(l=>l.type==="add").length,a=e.filter(l=>l.type==="remove").length,r={global:e.filter(l=>l.scope==="global")};return{totalChanges:e.length,additions:i,removals:a,changesByScope:r,changes:e}}function d(s,t,e,o){const i=[];if(Array.isArray(s)&&Array.isArray(t)){let n=0;for(;n<s.length;n++){const c=s[n];if(!t[n])i.push(...d(c,typeof c=="string"?"":null,`${e}[${n}]`,o));else{const f=d(c,t[n],`${e}[${n}]`,o);i.push(...f)}}for(;n<t.length;n++){const c=t[n];if(!s[n])i.push(...d(typeof c=="string"?"":null,c,`${e}[${n}]`,o));else{const f=d(s[n],c,`${e}[${n}]`,o);i.push(...f)}}return i}if(typeof s!="object"||typeof t!="object"||s===null||t===null){if(s!==t){if(typeof s=="string"&&typeof t=="string")return A(s,t,e,o);i.push({type:"remove",path:e,oldValue:s,scope:o}),i.push({type:"add",path:e,newValue:t,scope:o})}return i}const a=s,r=t,l=Object.keys(a),u=Object.keys(r);for(const n of l)n in r||i.push({type:"remove",path:`${e}.${n}`,oldValue:a[n],scope:o});for(const n of u)if(!(n in a))i.push({type:"add",path:`${e}.${n}`,newValue:r[n],scope:o});else if(a[n]!==r[n]){const c=d(a[n],r[n],`${e}.${n}`,o);i.push(...c)}return i}function A(s,t,e,o){const i=[],a=Math.max(s.length,t.length);for(let r=0;r<a;r++)r>=s.length?i.push({type:"add",path:`${e}[${r}]`,newValue:t[r],scope:o}):r>=t.length?i.push({type:"remove",path:`${e}[${r}]`,oldValue:s[r],scope:o}):s[r]!==t[r]&&(i.push({type:"remove",path:`${e}[${r}]`,oldValue:s[r],scope:o}),i.push({type:"add",path:`${e}[${r}]`,newValue:t[r],scope:o}));return i}class V{constructor(t,e=$(["processor","diff-analytics"])){g(this,"analyticsStore");g(this,"logger");this.analyticsStore=t,this.logger=e}async onStrands(t){if(t.length!==0)for(const e of t){if(e.operations.length===0)continue;const o=e.operations[0],i=p.fromString(`ph/diff/${e.driveId}/${e.documentId}/${e.branch}/${e.scope}`);o.index===0&&await this.clearSource(i);const a=50;for(let r=0;r<e.operations.length;r+=a){const l=e.operations.slice(r,r+a),u=[];for(const n of l){const f=(await S(async()=>w(n.previousState,n.state))).changes.map(h=>this.generateInput(e.driveId,e.documentId,e.branch,e.scope,n.index,h.type,1,i,n.timestamp,h.path));for(u.push(...f);u.length>=a;){const h=u.splice(0,a);await this.analyticsStore.addSeriesValues(h)}}u.length>0&&await this.analyticsStore.addSeriesValues(u)}}}async onDisconnect(){}async clearSource(t){try{await this.analyticsStore.clearSeriesBySource(t,!0)}catch(e){this.logger.error("Failed to clear source",e)}}generateInput(t,e,o,i,a,r,l,u,n,c){const f={},h=c.split("[")[0].replaceAll(".","/");return f.changes=p.fromString(`ph/diff/changes/${r}`),f.document=p.fromString(`ph/diff/document/${e}/${o}/${i}/${a}`),f.path=p.fromString(`ph/diff/path/${h}`),f.drive=p.fromString(`ph/diff/drive/${t}/${e}`),{dimensions:f,metric:"Count",start:v.fromISO(n),source:u,value:l}}}const K=s=>t=>[{processor:new V(s.analyticsStore),filter:{branch:["main"],documentId:["*"],scope:["*"],documentType:["*"]}}];export{K as processorFactory};
|
|
2
|
+
//# sourceMappingURL=index.CSVNwIam.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.huU8PUzV.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.10_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/lib/document-diff.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.10_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/diff-analytics/index.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.10_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/index.js"],"sourcesContent":["/**\n * Calculates the difference between two document states\n */\nexport function diffDocumentStates(doc1, doc2) {\n const changes = [];\n // Compare global state\n const globalChanges = diffStateObjects(doc1, doc2, \"state.global\", \"global\");\n changes.push(...globalChanges);\n // Count changes by type\n const additions = changes.filter((c) => c.type === \"add\").length;\n const removals = changes.filter((c) => c.type === \"remove\").length;\n // Group changes by scope\n const changesByScope = {\n global: changes.filter((c) => c.scope === \"global\"),\n };\n return {\n totalChanges: changes.length,\n additions,\n removals,\n changesByScope,\n changes,\n };\n}\n/**\n * Recursively compares two state objects and returns a list of changes\n */\nfunction diffStateObjects(obj1, obj2, path, scope) {\n const changes = [];\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n let index = 0;\n for (; index < obj1.length; index++) {\n const element = obj1[index];\n if (!obj2[index]) {\n changes.push(...diffStateObjects(element, typeof element === \"string\" ? \"\" : null, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(element, obj2[index], `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n for (; index < obj2.length; index++) {\n const element = obj2[index];\n if (!obj1[index]) {\n changes.push(...diffStateObjects(typeof element === \"string\" ? \"\" : null, element, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(obj1[index], element, `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n return changes;\n }\n // Handle primitive values\n if (typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\" ||\n obj1 === null ||\n obj2 === null) {\n if (obj1 !== obj2) {\n // Special handling for strings to diff character by character\n if (typeof obj1 === \"string\" && typeof obj2 === \"string\") {\n return diffStateStrings(obj1, obj2, path, scope);\n }\n else {\n // For non-string primitives, treat a change as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n }\n }\n return changes;\n }\n // Handle objects\n const obj1Record = obj1;\n const obj2Record = obj2;\n const obj1Keys = Object.keys(obj1Record);\n const obj2Keys = Object.keys(obj2Record);\n // First, check for removed keys\n for (const key of obj1Keys) {\n if (!(key in obj2Record)) {\n // Key was removed\n changes.push({\n type: \"remove\",\n path: `${path}.${key}`,\n oldValue: obj1Record[key],\n scope,\n });\n }\n }\n // Then, check for added keys and modified values\n for (const key of obj2Keys) {\n if (!(key in obj1Record)) {\n // Key was added\n changes.push({\n type: \"add\",\n path: `${path}.${key}`,\n newValue: obj2Record[key],\n scope,\n });\n }\n else if (obj1Record[key] !== obj2Record[key]) {\n // For object changes, recursively diff the objects\n const nestedChanges = diffStateObjects(obj1Record[key], obj2Record[key], `${path}.${key}`, scope);\n changes.push(...nestedChanges);\n }\n }\n return changes;\n}\n/**\n * Compares two strings character by character and returns a list of changes\n */\nfunction diffStateStrings(str1, str2, path, scope) {\n const changes = [];\n const maxLen = Math.max(str1.length, str2.length);\n for (let i = 0; i < maxLen; i++) {\n if (i >= str1.length) {\n // Addition of new character\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n else if (i >= str2.length) {\n // Removal of character\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n }\n else if (str1[i] !== str2[i]) {\n // Character changed\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n }\n return changes;\n}\n/**\n * Generates analytics data from a state diff summary\n */\nexport function generateStateAnalyticsData(diff) {\n return {\n totalChanges: diff.totalChanges,\n changesByType: {\n add: diff.additions,\n remove: diff.removals,\n },\n changesByScope: {\n global: diff.changesByScope.global.length,\n },\n changePaths: diff.changes.map((c) => c.path),\n };\n}\n","import { AnalyticsPath, } from \"@powerhousedao/analytics-engine-core\";\nimport { DateTime } from \"luxon\";\nimport { diffDocumentStates } from \"../../lib/document-diff.js\";\nimport { childLogger } from \"document-drive\";\nimport { runAsapAsync } from \"document-drive/utils/misc\";\nexport class DiffAnalyticsProcessor {\n analyticsStore;\n logger;\n constructor(analyticsStore, logger = childLogger([\"processor\", \"diff-analytics\"])) {\n this.analyticsStore = analyticsStore;\n this.logger = logger;\n //\n }\n async onStrands(strands) {\n if (strands.length === 0) {\n return;\n }\n for (const strand of strands) {\n if (strand.operations.length === 0) {\n continue;\n }\n const firstOp = strand.operations[0];\n const source = AnalyticsPath.fromString(`ph/diff/${strand.driveId}/${strand.documentId}/${strand.branch}/${strand.scope}`);\n if (firstOp.index === 0) {\n await this.clearSource(source);\n }\n const CHUNK_SIZE = 50;\n for (let i = 0; i < strand.operations.length; i += CHUNK_SIZE) {\n const chunk = strand.operations.slice(i, i + CHUNK_SIZE);\n const buffer = [];\n for (const operation of chunk) {\n const diff = await runAsapAsync(async () => diffDocumentStates(operation.previousState, operation.state));\n const inputs = diff.changes.map((change) => this.generateInput(strand.driveId, strand.documentId, strand.branch, strand.scope, operation.index, change.type, 1, source, operation.timestamp, change.path));\n buffer.push(...inputs);\n while (buffer.length >= CHUNK_SIZE) {\n const batch = buffer.splice(0, CHUNK_SIZE);\n await this.analyticsStore.addSeriesValues(batch);\n }\n }\n // Flush any remaining inputs\n if (buffer.length > 0) {\n await this.analyticsStore.addSeriesValues(buffer);\n }\n }\n }\n }\n async onDisconnect() { }\n async clearSource(source) {\n try {\n await this.analyticsStore.clearSeriesBySource(source, true);\n }\n catch (e) {\n this.logger.error(\"Failed to clear source\", e);\n }\n }\n generateInput(driveId, documentId, branch, scope, revision, type, value, source, timestamp, path) {\n const dimensions = {};\n const changePath = path.split(\"[\")[0].replaceAll(\".\", \"/\");\n dimensions.changes = AnalyticsPath.fromString(`ph/diff/changes/${type}`);\n dimensions.document = AnalyticsPath.fromString(`ph/diff/document/${documentId}/${branch}/${scope}/${revision}`);\n dimensions.path = AnalyticsPath.fromString(`ph/diff/path/${changePath}`);\n dimensions.drive = AnalyticsPath.fromString(`ph/diff/drive/${driveId}/${documentId}`);\n return {\n dimensions,\n metric: \"Count\",\n start: DateTime.fromISO(timestamp),\n source,\n value,\n };\n }\n}\n","/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\nimport { DiffAnalyticsProcessor } from \"./diff-analytics/index.js\";\nexport const processorFactory = (module) => (driveId) => {\n return [\n {\n processor: new DiffAnalyticsProcessor(module.analyticsStore),\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n scope: [\"*\"],\n documentType: [\"*\"],\n },\n },\n ];\n};\n"],"names":["diffDocumentStates","doc1","doc2","changes","globalChanges","diffStateObjects","additions","c","removals","changesByScope","obj1","obj2","path","scope","index","element","elementChanges","diffStateStrings","obj1Record","obj2Record","obj1Keys","obj2Keys","key","nestedChanges","str1","str2","maxLen","i","DiffAnalyticsProcessor","analyticsStore","logger","childLogger","__publicField","strands","strand","firstOp","source","AnalyticsPath","CHUNK_SIZE","chunk","buffer","operation","inputs","runAsapAsync","change","batch","driveId","documentId","branch","revision","type","value","timestamp","dimensions","changePath","DateTime","processorFactory","module"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"index.CSVNwIam.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.10_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/lib/document-diff.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.10_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/diff-analytics/index.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.10_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@powerhousedao/diff-analyzer/dist/processors/index.js"],"sourcesContent":["/**\n * Calculates the difference between two document states\n */\nexport function diffDocumentStates(doc1, doc2) {\n const changes = [];\n // Compare global state\n const globalChanges = diffStateObjects(doc1, doc2, \"state.global\", \"global\");\n changes.push(...globalChanges);\n // Count changes by type\n const additions = changes.filter((c) => c.type === \"add\").length;\n const removals = changes.filter((c) => c.type === \"remove\").length;\n // Group changes by scope\n const changesByScope = {\n global: changes.filter((c) => c.scope === \"global\"),\n };\n return {\n totalChanges: changes.length,\n additions,\n removals,\n changesByScope,\n changes,\n };\n}\n/**\n * Recursively compares two state objects and returns a list of changes\n */\nfunction diffStateObjects(obj1, obj2, path, scope) {\n const changes = [];\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n let index = 0;\n for (; index < obj1.length; index++) {\n const element = obj1[index];\n if (!obj2[index]) {\n changes.push(...diffStateObjects(element, typeof element === \"string\" ? \"\" : null, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(element, obj2[index], `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n for (; index < obj2.length; index++) {\n const element = obj2[index];\n if (!obj1[index]) {\n changes.push(...diffStateObjects(typeof element === \"string\" ? \"\" : null, element, `${path}[${index}]`, scope));\n }\n else {\n const elementChanges = diffStateObjects(obj1[index], element, `${path}[${index}]`, scope);\n changes.push(...elementChanges);\n }\n }\n return changes;\n }\n // Handle primitive values\n if (typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\" ||\n obj1 === null ||\n obj2 === null) {\n if (obj1 !== obj2) {\n // Special handling for strings to diff character by character\n if (typeof obj1 === \"string\" && typeof obj2 === \"string\") {\n return diffStateStrings(obj1, obj2, path, scope);\n }\n else {\n // For non-string primitives, treat a change as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n }\n }\n return changes;\n }\n // Handle objects\n const obj1Record = obj1;\n const obj2Record = obj2;\n const obj1Keys = Object.keys(obj1Record);\n const obj2Keys = Object.keys(obj2Record);\n // First, check for removed keys\n for (const key of obj1Keys) {\n if (!(key in obj2Record)) {\n // Key was removed\n changes.push({\n type: \"remove\",\n path: `${path}.${key}`,\n oldValue: obj1Record[key],\n scope,\n });\n }\n }\n // Then, check for added keys and modified values\n for (const key of obj2Keys) {\n if (!(key in obj1Record)) {\n // Key was added\n changes.push({\n type: \"add\",\n path: `${path}.${key}`,\n newValue: obj2Record[key],\n scope,\n });\n }\n else if (obj1Record[key] !== obj2Record[key]) {\n // For object changes, recursively diff the objects\n const nestedChanges = diffStateObjects(obj1Record[key], obj2Record[key], `${path}.${key}`, scope);\n changes.push(...nestedChanges);\n }\n }\n return changes;\n}\n/**\n * Compares two strings character by character and returns a list of changes\n */\nfunction diffStateStrings(str1, str2, path, scope) {\n const changes = [];\n const maxLen = Math.max(str1.length, str2.length);\n for (let i = 0; i < maxLen; i++) {\n if (i >= str1.length) {\n // Addition of new character\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n else if (i >= str2.length) {\n // Removal of character\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n }\n else if (str1[i] !== str2[i]) {\n // Character changed\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n }\n return changes;\n}\n/**\n * Generates analytics data from a state diff summary\n */\nexport function generateStateAnalyticsData(diff) {\n return {\n totalChanges: diff.totalChanges,\n changesByType: {\n add: diff.additions,\n remove: diff.removals,\n },\n changesByScope: {\n global: diff.changesByScope.global.length,\n },\n changePaths: diff.changes.map((c) => c.path),\n };\n}\n","import { AnalyticsPath, } from \"@powerhousedao/analytics-engine-core\";\nimport { DateTime } from \"luxon\";\nimport { diffDocumentStates } from \"../../lib/document-diff.js\";\nimport { childLogger } from \"document-drive\";\nimport { runAsapAsync } from \"document-drive/utils/misc\";\nexport class DiffAnalyticsProcessor {\n analyticsStore;\n logger;\n constructor(analyticsStore, logger = childLogger([\"processor\", \"diff-analytics\"])) {\n this.analyticsStore = analyticsStore;\n this.logger = logger;\n //\n }\n async onStrands(strands) {\n if (strands.length === 0) {\n return;\n }\n for (const strand of strands) {\n if (strand.operations.length === 0) {\n continue;\n }\n const firstOp = strand.operations[0];\n const source = AnalyticsPath.fromString(`ph/diff/${strand.driveId}/${strand.documentId}/${strand.branch}/${strand.scope}`);\n if (firstOp.index === 0) {\n await this.clearSource(source);\n }\n const CHUNK_SIZE = 50;\n for (let i = 0; i < strand.operations.length; i += CHUNK_SIZE) {\n const chunk = strand.operations.slice(i, i + CHUNK_SIZE);\n const buffer = [];\n for (const operation of chunk) {\n const diff = await runAsapAsync(async () => diffDocumentStates(operation.previousState, operation.state));\n const inputs = diff.changes.map((change) => this.generateInput(strand.driveId, strand.documentId, strand.branch, strand.scope, operation.index, change.type, 1, source, operation.timestamp, change.path));\n buffer.push(...inputs);\n while (buffer.length >= CHUNK_SIZE) {\n const batch = buffer.splice(0, CHUNK_SIZE);\n await this.analyticsStore.addSeriesValues(batch);\n }\n }\n // Flush any remaining inputs\n if (buffer.length > 0) {\n await this.analyticsStore.addSeriesValues(buffer);\n }\n }\n }\n }\n async onDisconnect() { }\n async clearSource(source) {\n try {\n await this.analyticsStore.clearSeriesBySource(source, true);\n }\n catch (e) {\n this.logger.error(\"Failed to clear source\", e);\n }\n }\n generateInput(driveId, documentId, branch, scope, revision, type, value, source, timestamp, path) {\n const dimensions = {};\n const changePath = path.split(\"[\")[0].replaceAll(\".\", \"/\");\n dimensions.changes = AnalyticsPath.fromString(`ph/diff/changes/${type}`);\n dimensions.document = AnalyticsPath.fromString(`ph/diff/document/${documentId}/${branch}/${scope}/${revision}`);\n dimensions.path = AnalyticsPath.fromString(`ph/diff/path/${changePath}`);\n dimensions.drive = AnalyticsPath.fromString(`ph/diff/drive/${driveId}/${documentId}`);\n return {\n dimensions,\n metric: \"Count\",\n start: DateTime.fromISO(timestamp),\n source,\n value,\n };\n }\n}\n","/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\nimport { DiffAnalyticsProcessor } from \"./diff-analytics/index.js\";\nexport const processorFactory = (module) => (driveId) => {\n return [\n {\n processor: new DiffAnalyticsProcessor(module.analyticsStore),\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n scope: [\"*\"],\n documentType: [\"*\"],\n },\n },\n ];\n};\n"],"names":["diffDocumentStates","doc1","doc2","changes","globalChanges","diffStateObjects","additions","c","removals","changesByScope","obj1","obj2","path","scope","index","element","elementChanges","diffStateStrings","obj1Record","obj2Record","obj1Keys","obj2Keys","key","nestedChanges","str1","str2","maxLen","i","DiffAnalyticsProcessor","analyticsStore","logger","childLogger","__publicField","strands","strand","firstOp","source","AnalyticsPath","CHUNK_SIZE","chunk","buffer","operation","inputs","runAsapAsync","change","batch","driveId","documentId","branch","revision","type","value","timestamp","dimensions","changePath","DateTime","processorFactory","module"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{jsxs as N,jsx as l}from"react/jsx-runtime";import{I as C,F as A,aU as me,aV as xe,aW as fe,aX as pe,aY as ge,aZ as be,a_ as Ae,a$ as Ie,b0 as Me,b1 as Ee,b2 as Fe,b3 as ze,b4 as De,b5 as Oe,b6 as Re,a2 as ke,b7 as Y,b8 as P,b9 as Be,ba as Te,bb as Le,bc as Ve,bd as Ge,be as Pe,bf as He,bg as Ue,bh as We,i as je,bi as Je,bj as W,bk as Ye,bl as Ze,bm as Qe}from"./main.
|
|
1
|
+
import{jsxs as N,jsx as l}from"react/jsx-runtime";import{I as C,F as A,aU as me,aV as xe,aW as fe,aX as pe,aY as ge,aZ as be,a_ as Ae,a$ as Ie,b0 as Me,b1 as Ee,b2 as Fe,b3 as ze,b4 as De,b5 as Oe,b6 as Re,a2 as ke,b7 as Y,b8 as P,b9 as Be,ba as Te,bb as Le,bc as Ve,bd as Ge,be as Pe,bf as He,bg as Ue,bh as We,i as je,bi as Je,bj as W,bk as Ye,bl as Ze,bm as Qe}from"./main.D9OoNJWh.js";import*as U from"react";import Ke,{useState as D,useEffect as Xe,useCallback as E,Fragment as qe,useRef as Z,useMemo as Q,useLayoutEffect as _e}from"react";import{flushSync as $e}from"react-dom";const et=()=>{const[i,s]=D({innerWidth:window.innerWidth,innerHeight:window.innerHeight});return Xe(()=>{const e=()=>{s({innerWidth:window.innerWidth,innerHeight:window.innerHeight})};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]),i};function tt(i){const{breadcrumbs:s,createEnabled:e,onBreadcrumbSelected:n}=i,[t,o]=D(!1),r=i.createEnabled?i.onCreate:void 0;function a(){o(!0)}const d=E(c=>{var f;!e||!r||(r(c,(f=s.at(-1))==null?void 0:f.id),o(!1))},[s,e,r]),u=E(()=>{o(!1)},[]);return N("div",{className:"flex h-9 flex-row items-center gap-2 p-6 text-gray-500",children:[s.map(c=>N(qe,{children:[l(nt,{node:c,onClick:n}),l("span",{children:"/"})]},c.id)),e&&(t?l(X,{className:"text-gray-800",defaultValue:"New Folder",onCancel:u,onSubmit:d,placeholder:"New Folder"}):N("button",{type:"button",className:"ml-1 flex items-center justify-center gap-2 rounded-md bg-gray-50 px-2 py-1.5 transition-colors hover:bg-gray-200 hover:text-gray-800",onClick:a,children:[l(C,{name:"Plus",size:14}),"Add new"]}))]})}function nt(i){const{node:s,onClick:e}=i;return l("div",{className:"transition-colors last-of-type:text-gray-800 hover:text-gray-800",onClick:()=>e(s),role:"button",children:s.name})}function st({selectedNodePath:i,setSelectedNode:s}){const e=E(n=>{s(n)},[s]);return{breadcrumbs:i,onBreadcrumbSelected:e}}function K(i){const{node:s,onAddFile:e,onCopyNode:n,onMoveNode:t,trackNestedDrag:o=!1,acceptedFileExtensions:r}=i,[a,d]=D(!1),u=Z(0),c=E(m=>!r||r.length===0||m.types.includes(J)?!0:m.types.includes("Files")?Array.from(m.items).some(S=>{if(S.kind==="file"){if(S.type==="application/zip"||S.type==="application/x-zip-compressed")return r.includes(".zip");if(S.type===""||S.type==="application/octet-stream")return!0}return!1}):!1,[r]),f=E(m=>{m.preventDefault(),m.stopPropagation(),c(m.dataTransfer)?d(!0):m.dataTransfer.dropEffect="none"},[c]),g=E(m=>{m.preventDefault(),m.stopPropagation(),c(m.dataTransfer)&&(u.current+=1,d(!0))},[c]),h=E(m=>{m.preventDefault(),m.stopPropagation(),u.current=Math.max(0,u.current-1),u.current===0&&d(!1)},[]),p=E(()=>{d(!1)},[]),b=E(async m=>{m.preventDefault();const S=m.target.closest("[data-drop-zone]"),M=(s==null?void 0:s.id)||"root";if(((S==null?void 0:S.getAttribute("data-drop-zone"))||"root")!==M){d(!1);return}try{let y=ot(m.dataTransfer.items).filter(Boolean);if(r&&r.length>0&&(y=y.filter(R=>{if(!R)return!1;const V=R.name.toLowerCase();return r.some(x=>V.endsWith(x.toLowerCase()))})),y.length){for(const R of y)R&&await e(R,s);return}const k=m.getModifierState("Alt"),O=m.dataTransfer.getData(J),v=JSON.parse(O);k?await n(v,s):await t(v,s)}catch(y){console.error(y)}finally{o&&(u.current=0),d(!1)}},[e,n,t,parent,s==null?void 0:s.id,o]);return Q(()=>{const m={onDragOver:f,onDrop:b,"data-drop-zone":(s==null?void 0:s.id)||"root"};return o?(m.onDragEnter=g,m.onDragLeave=h):m.onDragLeave=p,{isDropTarget:a,dropProps:m}},[a,s==null?void 0:s.id,g,h,p,f,b,o])}function ot(i){return Array.from(i).map(e=>e.kind==="file"?e.getAsFile():null).filter(Boolean)}const it={SYNCING:"Syncing",SUCCESS:"Synced",CONFLICT:"Error",MISSING:"Circle",ERROR:"Error",INITIAL_SYNC:"Syncing"};function Se(i){const{syncStatus:s,className:e,overrideSyncIcons:n={},...t}=i,o={...it,...n};return{[ue]:l(C,{size:16,...t,className:A("text-blue-900",e),name:o[ue]}),[re]:l(C,{size:16,...t,className:A("text-blue-900",e),name:o[re]}),[le]:l(C,{size:16,...t,className:A("text-green-900",e),name:o[le]}),[ae]:l(C,{size:16,...t,className:A("text-orange-900",e),name:o[ae]}),[ce]:l(C,{size:16,...t,className:A("text-red-900",e),name:o[ce]}),[de]:l(C,{size:16,...t,className:A("text-red-900",e),name:o[de]})}[s]}function rt(i){const{fileNode:s,sharingType:e,className:n,customDocumentIconSrc:t,isAllowedToCreateDocuments:o,getSyncStatusSync:r,setSelectedNode:a,onRenameNode:d,onDuplicateNode:u,showDeleteNodeModal:c}=i,[f,g]=D(B),[h,p]=D(!1),{dragProps:b}=ve({node:s}),m=f===B,w=r(s.id,e),S={[be]:()=>u(s),[ge]:()=>g(ye),[pe]:()=>c(s)},M=Object.entries(me).map(([x,T])=>({...T,id:x})).filter(x=>xe.includes(x.id));function F(x){d(x,s),g(B)}function y(){g(B)}function k(x){const T=S[x];if(!T){console.error(`No handler found for dropdown menu item: ${x}`);return}T(),p(!1)}const O=xt(s.documentType,t),v=N("div",{className:"relative",children:[l("img",{alt:"file icon",className:"max-w-none",height:34,src:O,width:32}),m&&w&&l("div",{className:"absolute bottom-[-2px] right-0 size-3 rounded-full bg-white",children:l("div",{className:"absolute left-[-2px] top-[-2px]",children:l(Se,{overrideSyncIcons:{SUCCESS:"CheckCircleFill"},syncStatus:w})})})]}),R=A("group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2 text-gray-600 hover:text-gray-800",n),V=m?N("div",{className:"flex w-52 items-center justify-between",children:[N("div",{className:"mr-2 truncate group-hover:mr-0",children:[l("div",{className:"max-h-6 truncate text-sm font-medium group-hover:text-gray-800",children:s.name}),l("div",{className:"max-h-6 truncate text-xs font-medium text-gray-600 group-hover:text-gray-800",children:s.documentType})]}),o?l(fe,{items:M,onItemClick:k,onOpenChange:p,open:h,children:l("button",{className:A("hidden group-hover:block",h&&"block"),onClick:x=>{x.stopPropagation(),p(!0)},children:l(C,{className:"text-gray-600",name:"VerticalDots"})})}):null]}):l(X,{className:"ml-3 flex-1 font-medium",defaultValue:s.name,onCancel:y,onSubmit:F});return l("div",{className:"relative w-64",onClick:()=>a(s),children:l("div",{...b,className:R,children:N("div",{className:"flex items-center",children:[l("div",{className:"mr-1.5",children:v}),V]})})})}function lt(i){const{folderNode:s,sharingType:e,isAllowedToCreateDocuments:n,className:t,setSelectedNode:o,getSyncStatusSync:r,onRenameNode:a,onDuplicateNode:d,showDeleteNodeModal:u,onAddFile:c,onCopyNode:f,onMoveNode:g}=i,[h,p]=D(B),[b,m]=D(!1),{dragProps:w}=ve({node:s}),{isDropTarget:S,dropProps:M}=K({node:s,onAddFile:c,onCopyNode:f,onMoveNode:g}),F=h===B,y=r(s.id,e);function k(){p(B)}function O(z){a(z,s),p(B)}const v={[be]:()=>d(s),[ge]:()=>p(ye),[pe]:()=>u(s)},R=Object.entries(me).map(([z,H])=>({...H,id:z})).filter(z=>Ae.includes(z.id));function V(z){const H=v[z];if(!H){console.error(`No handler found for dropdown menu item: ${z}`);return}H(),m(!1)}const x=F||!n?l("div",{className:"ml-3 max-h-6 truncate font-medium text-gray-600 group-hover:text-gray-800",children:s.name}):l(X,{className:"ml-3 font-medium",defaultValue:s.name,onCancel:k,onSubmit:O}),T=A("group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2",t,S&&"bg-blue-100");return l("div",{className:"relative w-64",onClick:()=>o(s),children:N("div",{...w,...M,className:T,children:[N("div",{className:"flex items-center overflow-hidden",children:[l("div",{className:"p-1",children:N("div",{className:"relative",children:[l(C,{name:"FolderClose",size:24}),F&&y?l("div",{className:"absolute bottom-[-3px] right-[-2px] size-3 rounded-full bg-white",children:l("div",{className:"absolute left-[-2px] top-[-2px]",children:l(Se,{overrideSyncIcons:{SUCCESS:"CheckCircleFill"},syncStatus:y})})}):null]})}),x]}),F&&n?l(fe,{items:R,onItemClick:V,onOpenChange:m,open:b,children:l("button",{className:A("ml-auto hidden group-hover:block",b&&"block"),onClick:z=>{z.stopPropagation(),m(!0)},children:l(C,{className:"text-gray-600",name:"VerticalDots"})})}):null]})})}function X(i){const{onSubmit:s,onCancel:e,defaultValue:n,className:t,minLength:o=1,...r}=i,[a,d]=D(n??""),u=Z(null);Ie(u,c),Me("keyup",f=>{f.key==="Enter"&&c(),f.key==="Escape"&&e()}),_e(()=>{setTimeout(()=>{var f,g,h;(f=u.current)==null||f.focus(),(g=u.current)==null||g.select(),(h=u.current)==null||h.scroll({left:9999})},100)},[]);function c(){a.length>=o&&s(a)}return l("input",{...r,autoFocus:!0,className:A("bg-inherit text-inherit outline-none",t),minLength:o,onChange:f=>d(f.target.value),ref:u,required:!0,type:"text",value:a})}function L(i,s,e){let n=e.initialDeps??[],t;function o(){var r,a,d,u;let c;e.key&&((r=e.debug)!=null&&r.call(e))&&(c=Date.now());const f=i();if(!(f.length!==n.length||f.some((p,b)=>n[b]!==p)))return t;n=f;let h;if(e.key&&((a=e.debug)!=null&&a.call(e))&&(h=Date.now()),t=s(...f),e.key&&((d=e.debug)!=null&&d.call(e))){const p=Math.round((Date.now()-c)*100)/100,b=Math.round((Date.now()-h)*100)/100,m=b/16,w=(S,M)=>{for(S=String(S);S.length<M;)S=" "+S;return S};console.info(`%c⏱ ${w(b,5)} /${w(p,5)} ms`,`
|
|
2
2
|
font-size: .6rem;
|
|
3
3
|
font-weight: bold;
|
|
4
4
|
color: hsl(${Math.max(0,Math.min(120-120*m,120))}deg 100% 31%);`,e==null?void 0:e.key)}return(u=e==null?void 0:e.onChange)==null||u.call(e,t),t}return o.updateDeps=r=>{n=r},o}function _(i,s){if(i===void 0)throw new Error("Unexpected undefined");return i}const at=(i,s)=>Math.abs(i-s)<1.01,ct=(i,s,e)=>{let n;return function(...t){i.clearTimeout(n),n=i.setTimeout(()=>s.apply(this,t),e)}},$=i=>{const{offsetWidth:s,offsetHeight:e}=i;return{width:s,height:e}},dt=i=>i,ut=i=>{const s=Math.max(i.startIndex-i.overscan,0),e=Math.min(i.endIndex+i.overscan,i.count-1),n=[];for(let t=s;t<=e;t++)n.push(t);return n},ht=(i,s)=>{const e=i.scrollElement;if(!e)return;const n=i.targetWindow;if(!n)return;const t=r=>{const{width:a,height:d}=r;s({width:Math.round(a),height:Math.round(d)})};if(t($(e)),!n.ResizeObserver)return()=>{};const o=new n.ResizeObserver(r=>{const a=()=>{const d=r[0];if(d!=null&&d.borderBoxSize){const u=d.borderBoxSize[0];if(u){t({width:u.inlineSize,height:u.blockSize});return}}t($(e))};i.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return o.observe(e,{box:"border-box"}),()=>{o.unobserve(e)}},ee={passive:!0},te=typeof window>"u"?!0:"onscrollend"in window,mt=(i,s)=>{const e=i.scrollElement;if(!e)return;const n=i.targetWindow;if(!n)return;let t=0;const o=i.options.useScrollendEvent&&te?()=>{}:ct(n,()=>{s(t,!1)},i.options.isScrollingResetDelay),r=c=>()=>{const{horizontal:f,isRtl:g}=i.options;t=f?e.scrollLeft*(g&&-1||1):e.scrollTop,o(),s(t,c)},a=r(!0),d=r(!1);d(),e.addEventListener("scroll",a,ee);const u=i.options.useScrollendEvent&&te;return u&&e.addEventListener("scrollend",d,ee),()=>{e.removeEventListener("scroll",a),u&&e.removeEventListener("scrollend",d)}},ft=(i,s,e)=>{if(s!=null&&s.borderBoxSize){const n=s.borderBoxSize[0];if(n)return Math.round(n[e.options.horizontal?"inlineSize":"blockSize"])}return i[e.options.horizontal?"offsetWidth":"offsetHeight"]},pt=(i,{adjustments:s=0,behavior:e},n)=>{var t,o;const r=i+s;(o=(t=n.scrollElement)==null?void 0:t.scrollTo)==null||o.call(t,{[n.options.horizontal?"left":"top"]:r,behavior:e})};class gt{constructor(s){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const n=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(t=>{t.forEach(o=>{const r=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()})}));return{disconnect:()=>{var t;(t=n())==null||t.disconnect(),e=null},observe:t=>{var o;return(o=n())==null?void 0:o.observe(t,{box:"border-box"})},unobserve:t=>{var o;return(o=n())==null?void 0:o.unobserve(t)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([n,t])=>{typeof t>"u"&&delete e[n]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:dt,rangeExtractor:ut,onChange:()=>{},measureElement:ft,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var n,t;(t=(n=this.options).onChange)==null||t.call(n,this,e)},this.maybeNotify=L(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const n=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==n){if(this.cleanup(),!n){this.maybeNotify();return}this.scrollElement=n,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(t=>{this.observer.observe(t)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,t=>{this.scrollRect=t,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(t,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<t?"forward":"backward":null,this.scrollOffset=t,this.isScrolling=o,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,n)=>{const t=new Map,o=new Map;for(let r=n-1;r>=0;r--){const a=e[r];if(t.has(a.lane))continue;const d=o.get(a.lane);if(d==null||a.end>d.end?o.set(a.lane,a):a.end<d.end&&t.set(a.lane,!0),t.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((r,a)=>r.end===a.end?r.index-a.index:r.end-a.end)[0]:void 0},this.getMeasurementOptions=L(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,n,t,o,r)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:n,scrollMargin:t,getItemKey:o,enabled:r}),{key:!1}),this.getMeasurements=L(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:n,scrollMargin:t,getItemKey:o,enabled:r},a)=>{if(!r)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const d=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const u=this.measurementsCache.slice(0,d);for(let c=d;c<e;c++){const f=o(c),g=this.options.lanes===1?u[c-1]:this.getFurthestMeasurement(u,c),h=g?g.end+this.options.gap:n+t,p=a.get(f),b=typeof p=="number"?p:this.options.estimateSize(c),m=h+b,w=g?g.lane:c%this.options.lanes;u[c]={index:c,start:h,size:b,end:m,key:f,lane:w}}return this.measurementsCache=u,u},{key:!1,debug:()=>this.options.debug}),this.calculateRange=L(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,n,t,o)=>this.range=e.length>0&&n>0?bt({measurements:e,outerSize:n,scrollOffset:t,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=L(()=>{let e=null,n=null;const t=this.calculateRange();return t&&(e=t.startIndex,n=t.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,n]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,n]},(e,n,t,o,r)=>o===null||r===null?[]:e({startIndex:o,endIndex:r,overscan:n,count:t}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const n=this.options.indexAttribute,t=e.getAttribute(n);return t?parseInt(t,10):(console.warn(`Missing attribute name '${n}={index}' on measured element.`),-1)},this._measureElement=(e,n)=>{const t=this.indexFromElement(e),o=this.measurementsCache[t];if(!o)return;const r=o.key,a=this.elementsCache.get(r);a!==e&&(a&&this.observer.unobserve(a),this.observer.observe(e),this.elementsCache.set(r,e)),e.isConnected&&this.resizeItem(t,this.options.measureElement(e,n,this))},this.resizeItem=(e,n)=>{const t=this.measurementsCache[e];if(!t)return;const o=this.itemSizeCache.get(t.key)??t.size,r=n-o;r!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(t,r,this):t.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(t.index),this.itemSizeCache=new Map(this.itemSizeCache.set(t.key,n)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((n,t)=>{n.isConnected||(this.observer.unobserve(n),this.elementsCache.delete(t))});return}this._measureElement(e,void 0)},this.getVirtualItems=L(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,n)=>{const t=[];for(let o=0,r=e.length;o<r;o++){const a=e[o],d=n[a];t.push(d)}return t},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const n=this.getMeasurements();if(n.length!==0)return _(n[Ne(0,n.length-1,t=>_(n[t]).start,e)])},this.getOffsetForAlignment=(e,n,t=0)=>{const o=this.getSize(),r=this.getScrollOffset();n==="auto"&&(n=e>=r+o?"end":"start"),n==="center"?e+=(t-o)/2:n==="end"&&(e-=o);const a=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,n="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const t=this.measurementsCache[e];if(!t)return;const o=this.getSize(),r=this.getScrollOffset();if(n==="auto")if(t.end>=r+o-this.options.scrollPaddingEnd)n="end";else if(t.start<=r+this.options.scrollPaddingStart)n="start";else return[r,n];const a=n==="end"?t.end+this.options.scrollPaddingEnd:t.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,n,t.size),n]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:n="start",behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,n),{adjustments:void 0,behavior:t})},this.scrollToIndex=(e,{align:n="auto",behavior:t}={})=>{t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let o=0;const r=10,a=u=>{if(!this.targetWindow)return;const c=this.getOffsetForIndex(e,u);if(!c){console.warn("Failed to get offset for index:",e);return}const[f,g]=c;this._scrollToOffset(f,{adjustments:void 0,behavior:t}),this.targetWindow.requestAnimationFrame(()=>{const h=this.getScrollOffset(),p=this.getOffsetForIndex(e,g);if(!p){console.warn("Failed to get offset for index:",e);return}at(p[0],h)||d(g)})},d=u=>{this.targetWindow&&(o++,o<r?this.targetWindow.requestAnimationFrame(()=>a(u)):console.warn(`Failed to scroll to index ${e} after ${r} attempts.`))};a(n)},this.scrollBy=(e,{behavior:n}={})=>{n==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:n})},this.getTotalSize=()=>{var e;const n=this.getMeasurements();let t;if(n.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=((e=n[n.length-1])==null?void 0:e.end)??0;else{const o=Array(this.options.lanes).fill(null);let r=n.length-1;for(;r>=0&&o.some(a=>a===null);){const a=n[r];o[a.lane]===null&&(o[a.lane]=a.end),r--}t=Math.max(...o.filter(a=>a!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:n,behavior:t})=>{this.options.scrollToFn(e,{behavior:t,adjustments:n},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(s)}}const Ne=(i,s,e,n)=>{for(;i<=s;){const t=(i+s)/2|0,o=e(t);if(o<n)i=t+1;else if(o>n)s=t-1;else return t}return i>0?i-1:0};function bt({measurements:i,outerSize:s,scrollOffset:e,lanes:n}){const t=i.length-1,o=d=>i[d].start;if(i.length<=n)return{startIndex:0,endIndex:t};let r=Ne(0,t,o,e),a=r;if(n===1)for(;a<t&&i[a].end<e+s;)a++;else if(n>1){const d=Array(n).fill(0);for(;a<t&&d.some(c=>c<e+s);){const c=i[a];d[c.lane]=c.end,a++}const u=Array(n).fill(e+s);for(;r>=0&&u.some(c=>c>=e);){const c=i[r];u[c.lane]=c.start,r--}r=Math.max(0,r-r%n),a=Math.min(t,a+(n-1-a%n))}return{startIndex:r,endIndex:a}}const ne=typeof document<"u"?U.useLayoutEffect:U.useEffect;function St(i){const s=U.useReducer(()=>({}),{})[1],e={...i,onChange:(t,o)=>{var r;o?$e(s):s(),(r=i.onChange)==null||r.call(i,t,o)}},[n]=U.useState(()=>new gt(e));return n.setOptions(e),ne(()=>n._didMount(),[]),ne(()=>n._willUpdate()),n}function se(i){return St({observeElementRect:ht,observeElementOffset:mt,scrollToFn:pt,...i})}const oe=i=>{const{item:s,...e}=i;return N("div",{...Ee(e,"flex h-full flex-row items-center justify-between gap-x-4 px-2"),children:[s.icon,l("div",{className:"text-sm font-semibold text-slate-200",children:s.label})]})},Nt=i=>{const{value:s,onChange:e,placeholder:n,filterLabel:t,filterItems:o,selectedFilter:r,onFilterSelect:a=()=>{},className:d}=i,u=Q(()=>(o==null?void 0:o.map(h=>({id:h.id,content:l(oe,{item:h})})))??[],[o]),c=o==null?void 0:o.find(h=>h.id===r),f=c?l(oe,{className:"gap-x-1",item:c}):t&&l("div",{className:"mr-2 text-sm font-semibold text-slate-200",children:t});function g(h){e==null||e(h.target.value)}return N("div",{className:Fe("flex items-center",d),children:[l(C,{className:"mr-3",name:"Search"}),l("input",{className:A("flex h-[52px] min-w-0 flex-1 items-center rounded-xl border border-gray-200 bg-gray-50 px-4 text-sm text-slate-200 outline-none"),onChange:g,placeholder:n,value:s}),N(ze,{children:[N(De,{className:"ml-3 flex h-full flex-row items-center outline-none",children:[f," ",l(C,{name:"ChevronDown"})]}),l(Oe,{className:"rounded-xl border border-gray-100 bg-gray-50 p-2",children:u.map(h=>l(Re,{className:"h-10 cursor-pointer overflow-hidden rounded-lg hover:bg-gray-100",id:h.id,onSelect:()=>a(h.id),children:h.content},h.id))})]})]})},we="powerhouse/budget-statement",q="powerhouse/default",Ce="makerdao/rwa-portfolio",wt=[we,q,Ce],Ct="data:image/png;base64,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",yt=""+new URL("rwa-report-Bb0W5-ac.png",import.meta.url).href,vt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAAB4CAYAAAAXIRdAAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAzzSURBVHgB7V1dbFxHFT5zdwNt+lCTJq1EItkPBKmJlCK1JW+JBTzQgkTAtUPlKAGUhzit0ki88JL4biseeCEiLQG1AqlpEaqdP/riIBFk961VHwhVUkErYUsND7FjuT9J1Nq+0zmzc8Znx/fau/buvbP2fNJm7996N/e758w538ycEVA/BP4jj/+0Ez6X+yBKHgEputWRDnW4A9YsREWcGYrBE4h6zkspAZ7pO6T2DoGEblhviBRpL/lB2iLCFDn2mBACZo/2dZcB/qzOdME6RqIsrXRmqGJ2JRSEGsI4WR8f/WHH/WLjoNp8ruYT994HcmsnyF2PAXxjB8gHNutjawmlY09nnNHuscIO5E7cIsLQqu4e7u2656twQf2cb9mTSFT39yHpfmLNEeQimzAg91iJ41ioFxKWK2nC3ZbP9nZBIv7JXaBUJCVP9Kx5oghLEoZQpMGLb1Tw4XbQcvLKZFWImYEfdCwi6ycHq1YVsIBEDsIz+3Gr4pwRGKCp+9ky4iL+lFTbLEZW/5FAVibk4PzRvkH3KN1PHg80E5H9+qO9h4AFGNqydu+FgGxEKaTpFEjzhsbWfNKihU1hv1ju3hMsq064pHELw+1mk6YJmxt46mfWFW7aogKMpyCgfiBp0rE0aseaTZomrBSJY3QArQtJC2gUNaQhWTUCBCyvKtWFCHMunm+Fdms1sO5RR4uYq+FRfDdt26oh5MD+4yCSU/rrlHqRHP4lrHcsm4ctC1GpPLjjeZNYa5hwH1Yb9keKMmtSUklNAc2AHDxx8/pJfoSCkZRkuyEgYV12T2mEAc1BWiCC1kVh/0oDkbJqv7rsH9wWCENIFXSJ6UlYPRRpz/ZBZfOO53HP5GZgtin0b8g9YpS40Pm4TrTCZdHMKFnJWINT108ODg5yYmzI3ygiCFgEuf1haCqq2uMgRotIknqn+96wGhIIS4HsfhKaD2VpKhBh3TII0aiVBcLScO/GFkXMmrQTKSfqDkICYRlIDhxpUZsu4yyVvx7SAmFZ0JpqD7QCJBhnqB9i6c8GZAJ72mULSVOByElOWj3tWSBsGWDPRaL6BlvlHnkeZgKSJVkTquPSfmD+9F8hIAMqkY5GzoF4+y1oJsSZ4Yh0RgTbTvWXZQioD9im9Q8AKIsT/363+roxAXD3NqwWlUoFGapL8QiENQpFnG7bVtEjv5regNCGeQBKpEkJAacDlCMQ5hG4ApJ1TSCsYFBYT9Ghk5vhsRoVJBBWMNAHIllGzZc8AOFdMWCsLhBWMBRZ2hUaomgMiOYlpa9MhCjRA6AlKcL0Nh8HAosnqwQLKxpoYVyS4m0ZVz0oggwW5gkUIQksuEQaOsBlK70dLKxgoIUpYOARsXGMMktTLNTCxB0l63z4PogPrwPcuQPNBo6z1DNF+XcaWQk2Vjsp3fNFwJBG79rSnLbMojDCxMh5iEZHmqLFZUFP53UJuTEO4p2x6m/A70eNcPfelnWj1AsTLYIK75ccNpC7SxS3JqH0m19p5buVZNUNo8KX4mP6t+UNIgpH41y7dk1wtoxblDyZzpUwvCHRiy+op3wCvMO0+W0FPERImMnDiEC9bZLpGovLl7DL5/WN8RZI2iu/hZwhqA3buXMnicCp4xZzzcPE22P65TswABIfXIe80Nvbm3rczcHwHQnMkbDm9tS2EhgQ5QW0KhNskHXpn8CjRL6dC2HYdunQvU2gf2tObRkGGviObRgFIICDPUzAgTvc2vIJ630MMpYB5moyp8mNPFI0s9lJ+LWJNF2bj0tUuU/b4W7zE/k0DA8PSyIMrUy1aal5GFmZN1oiJq6ygVkjOjhoZbuYk0ukCBGB7hEJNMd50CHJyrwgbCXVdtBdia1dEF04C+0MThIGIOpl+8jSrvdC/F1pTRC5BibQK7IwtNeukGmKgk9o59f74RLR/axgZK0Wj9sc3JLQutgxHXTwbheEFxYWnX8NVgJxsb3dIQJdIlmR2bbzoM0l/lkYquclFURg4cx6LU28964f4nETYIIK3JQULfJ2jMJ87DPzp8dZ6XjCZ52xRcA2jLlCe5y7Sho1hcdCj3PBSIsGnQnsNQhjOgoGSVBc7aDjLplh1JQHILWeAg4hFvow3RmaXo2a8k7pyAksWeZJs6BAxLW0oHQUDFI6yCVStIj/pLnFoHR4Ah4hmn1OVs5q/XJYYT61FpQOQlw71M2SZYIS4ZVaj0qHrovRINaC0oF5mOMOwe1t5jUWg9LhGUwPdE0Xi1E5tNUFpaNgUFiP1oVkYdSIVmeOcUtLUJoKeZgnIHeIKkdWhRwkLRBWMJg16eECPHFOgQiEFQwWDbrir50nxizOnzZsvSodBB7Wx2acopGqrN4IvkyZXe9KB76T2kH7FBnidpz7MLdlsN7HdGBkSGM6aCQwwuiJNUFIGNNRMDCs5/ohgoYJkDvk1QTCmI6CQaOmnFheUqToir9B6SgY1I1iCqzURIppyIewekjwTenIqYY/EcTG1XPrqhGB85Om2nGJkJx+MxFGI6V46aI4ZcpRLm2Y3NbVdqtOyO35LBzEQnfaX1RUhV+Xk0vcCHLXo22T6OpF73ICRYksB5NOCVk9HjFXC0O00zKNef5W0hIRbI4zL8VX0JgOrIehFA3flQldryPHJSXRwvhA0piN+E0TgXPNw1pZB74ZwN+Wtyfgaj1piPw8pWckAueeh+ENwackz4nf9aCoFeGpA9NIU7zWb21pUmNthSgdSNp8fLrauBcZParvRqvH31LkutWkIdK+rEJvkzyVb5SYBqoD3w/Vuhg4p7jJyoVOJ9xjux6HRKn8upy5RysSmpG/NW0X0xNtMOJH98r2HBdLVQmx9CiRp24VBUljOugcW5XWTjkKPc6ewNUQnQLNlrRAWMGgfjAa04HH+FoshOLbsAANp3IAWZotu8eCDqlC/rC6URHga6+IM8Nlt88Lc7GskVPBJRYMPpCU3lntxEUCcHCJnoFLU47laZcYLMwDxBm9zFyWAlOZNBBWMHje5RLHQ3pyj4GwgmEiQL6/qO3iCFFiAeBRYt8klJnaoYFRohkyIB2lI+RhRYPyMATlYSJl0VJyi8Elegpyi2hp1BcWh0o4fsBRORB8eJvk6n0grGBQQRVCnDGYFEkLYb1H4CJwzKq4uQhBR8GgPIyLwBQROgty6+FuwcI8AXeD1GaZSX220GUIOjwFd4Wxj6WL1jPi2nLn+t3tZUbQOxI2Yz+9BguVeIfaBQxm+FBtDnfUFJGngg6hCJMd+uz0FMDW9pq00G4QH43bbXX/J0zQwYOL6nW1K8/a0VRRIsHOUMhzGaZ1C7YOjbr/42g9vPxeFhZcooR/2T+Ai3kGtBbMKBIQY/FCIctU1xiztcMQ0aeJeJNOihvjINdQSTvvcOsmRO8tGMXU3BdvUpkHBCbP+B6zVSEMoXbkb9Tx8hvjytjG9CdUg6hXfg1oOnQyzObHqd2r+/87M8GnG7GFcqRDli3/EGGUMpckdg5QNDYSrKzJ0O0PzuF+Z4GwBOTvtmzZIt0lFWOnZmLMFuHWQQcy3H8relXtjusr0cpGzkFGRbGABmGDhZHzbNK9GP/e+1O21gUfMcURp1TCwVV1Srhx9gHYe08EV+hE8uMDkHQ/Wb1oiYWgA7JhcynVzJQuLtQimZfyF+U/nNNezVUyTNHmxP07i6YbHbwFYwkkp2k/uvi6XhXWqSYWUCfovuE95GQpV3j66SlhmyBX6RgaGkrcv0XjFBG4oS0MfempB+c6vg7lK0LCI3TB/L4Deu4Ul0sC0sEfbB0gjF2uIUudnfjPZ9OPPnz2ilaXzHRZO2uFSqJTrY54qTLo2JZt+/3FmU9mox7bnimULr0O0V/+CHLqpv4RSZLYpye8Ml63P4Powms1ZCmMfy43fOfk3U2WLHbvbRcLvvOyRbEzggoZjMxJzSay/MrXZrvuL3/lH+qZ6LJPx6bNMP/4HpDf3qO3XUvj+2mzL1zwa9Kud4/Rfj3XNoqVft61KAzYSsqqorcug2CaoRRw9ZPZ2Z6Oly+N436WZfE/7X4X8aPJouQND05OTgr8wzfE7GPob+kDQumM5b9fgA0vHIfyn04BqIZUfnBNP01kefRy99Ne/Jq067P+Zj3XNvpa6ef1//2j/+l7UX7p1/relNQ94mThPfw/zH13n8q5XAKo1B6V3zPHUx8Ksja8KOKyCM+80U1+caTn0IaodIJbW0BdGL89Lw//fFqM0gFKkskdklUhWUQetV8Etx3TYT0fyGjM036gu7tbjI6OyrmB/QejKHmOByQBi4Gq0ZwQZ/tvylc5Qei51L1MUtwf1xBTJ/Rx0rSF0YfoncwTvwSzcdzGL0fyLn3zoc77RPIjEcHeKIJORWCnOt0B6xMz6uZ8rNzemJwXV6fl7N8eUs0JPeSuioFwx9KTdS01JwxBJH4JoOdEKaNKcdAAAAAASUVORK5CYII=",ie={[we]:Ct,[q]:vt,[Ce]:yt},ye="WRITE",B="READ",J="UI_NODE",re="SYNCING",le="SUCCESS",ae="CONFLICT",ce="MISSING",de="ERROR",ue="INITIAL_SYNC";function ve(i){const{node:s}=i,[e,n]=D(!1),t=E(r=>{r.dataTransfer.setData(J,JSON.stringify(s))},[s]),o=E(()=>{n(!1)},[]);return Q(()=>({isDragging:e,dragProps:{draggable:!0,onDragStart:t,onDragEnd:o}}),[e,o,t])}function xt(i,s){return s||(wt.includes(i)?ie[i]:ie[q])}function At(i){return"documentModelState"in i?i.documentModelState:i.documentModel}const It=({documentModels:i,createDocument:s})=>N("div",{className:"px-6",children:[l("h3",{className:"mb-3 mt-4 text-xl font-bold text-gray-600",children:"New document"}),l("div",{className:"flex w-full flex-wrap gap-4",children:i==null?void 0:i.map(e=>{const n=At(e);return l(ke,{color:"light",title:n.name,"aria-description":n.description,onClick:()=>s(e),children:l("span",{className:"text-sm",children:n.name})},n.id)})})]}),G=8,j=256,he=48,Mt=420;function Et(i){const s=Z(null),{t:e}=Y(),n=et(),{fileNodes:t}=i,o=n.innerWidth-Mt,r=Math.floor(o/(j+G))||1,a=Math.ceil(t.length/r),d=se({count:a,getScrollElement:()=>s.current,estimateSize:h=>h>0?he+G:he,overscan:5}),u=se({horizontal:!0,count:r,getScrollElement:()=>s.current,estimateSize:h=>h>0?j+G:j,overscan:5}),c=(h,p)=>h*r+p,f=(h,p)=>{const b=c(h,p);return t[b]||null};if(t.length===0)return l("div",{className:"mb-8 text-sm text-gray-400",children:e("folderView.sections.documents.empty",{defaultValue:"No documents or files 📄"})});const g=(h,p)=>{const b=f(h,p);return b?l("div",{style:{marginLeft:p===0?0:G},children:l(rt,{fileNode:b,...i},b.id)}):null};return l("div",{ref:s,style:{height:"400px",width:"100%",overflow:"auto"},children:l("div",{style:{height:`${d.getTotalSize()}px`,width:`${u.getTotalSize()}px`,position:"relative"},children:d.getVirtualItems().map(h=>l(Ke.Fragment,{children:u.getVirtualItems().map(p=>l("div",{style:{position:"absolute",top:0,left:0,marginTop:h.index===0?0:G,width:`${p.size}px`,height:`${h.size}px`,transform:`translateX(${p.start}px) translateY(${h.start}px)`},children:g(h.index,p.index)},p.key))},h.key))})})}function I({children:i,className:s,...e}){return l(I.Container,{className:s,...e,children:i})}I.Container=function({children:s,className:e,containerProps:n,...t}){return l("div",{className:P("flex grow flex-col overflow-auto rounded-2xl bg-gray-50 p-2",e),...n,...t,children:s})};I.Header=function({children:s,className:e,containerProps:n,...t}){return l("div",{className:P("flex-0",e),...n,...t,children:s})};I.Content=function({children:s,className:e,containerProps:n,...t}){return l("div",{className:P("mb-5 flex-1 px-4",e),...n,...t,children:s})};I.ContentSection=function({title:s,children:e,className:n,containerProps:t,...o}){return N("div",{className:P(n),...t,...o,children:[s&&l("div",{className:"mb-4 text-base font-semibold text-gray-600",children:s}),l("div",{className:"flex flex-wrap gap-2",children:e})]})};I.Footer=function({children:s,className:e,containerProps:n,...t}){return l("div",{className:P("flex-0",e),...n,...t,children:s})};function Ft(i){const{node:s,isAllowedToCreateDocuments:e,className:n,containerProps:t,sharingType:o,getSyncStatusSync:r,setSelectedNode:a,onAddFile:d,onCopyNode:u,onMoveNode:c,onRenameNode:f,onDuplicateNode:g,onAddFolder:h,onAddAndSelectNewFolder:p,showDeleteNodeModal:b}=i,{t:m}=Y(),w=Be(s==null?void 0:s.id),S=Te(s==null?void 0:s.id),{isDropTarget:M,dropProps:F}=K({node:s,onAddFile:d,onCopyNode:u,onMoveNode:c});return N("div",{className:A("rounded-md border-2 border-transparent p-2",M&&"border-dashed border-blue-100",n),...t,...F,children:[l(I.ContentSection,{title:m("folderView.sections.folders.title",{defaultValue:"Folders"}),className:"mb-4",children:w.length>0?w.map(y=>l(lt,{folderNode:y,isAllowedToCreateDocuments:e,sharingType:o,getSyncStatusSync:r,setSelectedNode:a,onAddFile:d,onCopyNode:u,onMoveNode:c,onRenameNode:f,onDuplicateNode:g,onAddFolder:h,onAddAndSelectNewFolder:p,showDeleteNodeModal:b},y.id)):l("div",{className:"mb-8 text-sm text-gray-400",children:m("folderView.sections.folders.empty",{defaultValue:"No documents or files 📄"})})}),l(I.ContentSection,{title:m("folderView.sections.documents.title",{defaultValue:"Documents and files"}),children:l("div",{className:A("w-full",S.length>0?"min-h-[400px]":"min-h-14"),children:l(Et,{fileNodes:S,isAllowedToCreateDocuments:e,sharingType:o,getSyncStatusSync:r,setSelectedNode:a,showDeleteNodeModal:b,onAddFile:d,onCopyNode:u,onMoveNode:c,onRenameNode:f,onDuplicateNode:g,onAddFolder:h,onAddAndSelectNewFolder:p})})})]})}const zt=[{id:"project",label:".project",icon:l(C,{name:"Project",color:"#FF6A55",size:16})},{id:"budget",label:".budget",icon:l(C,{name:"BarChart",color:"#8E55EA",size:16})},{id:"profile",label:".profile",icon:l(C,{name:"Person",color:"#3E90F0",size:16})},{id:"legal",label:".legal",icon:l(C,{name:"Briefcase",color:"#4BAB71",size:16})},{id:"atlas",label:".Atlas",icon:l(C,{name:"Globe",color:"#FF8A00",size:16})}],Dt=()=>{const{t:i}=Y(),[s,e]=D("");return l(Nt,{className:"max-w-searchbar-width m-4 shrink-0 bg-gray-100",placeholder:i("searchbar.placeholder"),filterLabel:i("searchbar.filterLabel"),filterItems:zt,value:s,onChange:e})};function Ot(i){const{className:s,children:e}=i,[n]=Le(),{onRenameNode:t,onDuplicateNode:o,onAddFolder:r,onAddFile:a,onCopyNode:d,onMoveNode:u}=Ve(),c=Ge(),f=Ze(n),g=Pe(),h=He(),{isAllowedToCreateDocuments:p}=Ue(),b=We(),m=v=>{Qe(v.documentModel.id)},{isDropTarget:w,dropProps:S}=K({node:f,onAddFile:a,onCopyNode:d,onMoveNode:u}),{breadcrumbs:M,onBreadcrumbSelected:F}=st({selectedNodePath:h,setSelectedNode:W}),y=je(n);async function k(v){await r(v,c),W(c)}const O=!!e;return N(I,{className:s,children:[!O&&N(I.Header,{children:[l(tt,{breadcrumbs:M,createEnabled:p,onCreate:k,onBreadcrumbSelected:F}),b&&l(Dt,{})]}),O?e:l(I.Content,{...S,className:w?"rounded-xl bg-blue-100":"",children:l(Ft,{node:c??f,sharingType:y,getSyncStatusSync:Ye,setSelectedNode:W,onRenameNode:t,onDuplicateNode:o,onAddFolder:r,onAddFile:a,onCopyNode:d,onMoveNode:u,onAddAndSelectNewFolder:k,showDeleteNodeModal:v=>Je(v.id),isAllowedToCreateDocuments:p})}),!O&&l(I.Footer,{children:p&&l(It,{documentModels:g==null?void 0:g.filter(v=>v.documentModel.id!=="powerhouse/document-drive"),createDocument:m})})]})}const Rt={Component:Ot,documentTypes:["powerhouse/document-drive"],config:{id:"GenericDriveExplorer",name:"Drive Explorer App",disableExternalControls:!0,documentToolbarEnabled:!0,showSwitchboardLink:!0}},Vt=Object.freeze(Object.defineProperty({__proto__:null,GenericDriveExplorer:Rt},Symbol.toStringTag,{value:"Module"}));export{Rt as G,Vt as i,se as u};
|
|
5
|
-
//# sourceMappingURL=index.
|
|
5
|
+
//# sourceMappingURL=index.DHgLJqcJ.js.map
|