@memberjunction/ng-file-storage 5.3.1 → 5.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it, expect } from 'vitest';\nimport { existsSync } from 'fs';\nimport { resolve } from 'path';\n\ndescribe('@memberjunction/ng-file-storage', () => {\n it('should have a public API entry point', () => {\n const pkgRoot = resolve(__dirname, '../..');\n const hasPublicApi = existsSync(resolve(pkgRoot, 'src/public-api.ts'));\n const hasIndex = existsSync(resolve(pkgRoot, 'src/index.ts'));\n expect(hasPublicApi || hasIndex).toBe(true);\n });\n\n it('should have a package.json with correct name', () => {\n const pkgRoot = resolve(__dirname, '../..');\n const pkg = require(resolve(pkgRoot, 'package.json'));\n expect(pkg.name).toBe('@memberjunction/ng-file-storage');\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it, expect } from 'vitest';\n\ndescribe('@memberjunction/ng-file-storage', () => {\n it('should have a passing test', () => {\n expect(true).toBe(true);\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"category-tree.js","sourceRoot":"","sources":["../../../src/lib/category-tree/category-tree.ts","../../../src/lib/category-tree/category-tree.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"category-tree.js","sourceRoot":"","sources":["../../../src/lib/category-tree/category-tree.ts","../../../src/lib/category-tree/category-tree.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJFileCategoryEntity } from '@memberjunction/core-entities';\nimport { SharedService } from '@memberjunction/ng-shared';\n\nimport { ContextMenuSelectEvent } from '@progress/kendo-angular-menu';\nimport { TreeItemAddRemoveArgs } from '@progress/kendo-angular-treeview';\n\n@Component({\n standalone: false,\n selector: 'mj-files-category-tree',\n templateUrl: './category-tree.html',\n styleUrls: ['./category-tree.css'],\n})\nexport class CategoryTreeComponent implements OnInit {\n @Output() categorySelected = new EventEmitter<string | undefined>();\n\n public isLoading: boolean = false;\n public showNew: boolean = false;\n public newCategoryName = '';\n public selectedKeys = [];\n public renameFileCategory: MJFileCategoryEntity | undefined;\n\n public categoriesData: MJFileCategoryEntity[] = [];\n\n private md = new Metadata();\n\n constructor(private sharedService: SharedService) {}\n\n ngOnInit(): void {\n this.Refresh();\n }\n\n async createNewCategory() {\n this.showNew = true;\n }\n\n cancelNewCategory() {\n this.showNew = false;\n }\n\n async handleDrop(e: TreeItemAddRemoveArgs) {\n console.log(e);\n const sourceCategory: MJFileCategoryEntity = e.sourceItem.item.dataItem;\n const targetCategory: MJFileCategoryEntity = e.destinationItem.item.dataItem;\n sourceCategory.ParentID = targetCategory.ID;\n\n this.isLoading = true;\n await sourceCategory.Save();\n this.isLoading = false;\n }\n\n async saveNewCategory() {\n this.isLoading = true;\n const categoryEntity: MJFileCategoryEntity = await this.md.GetEntityObject('MJ: File Categories');\n categoryEntity.NewRecord();\n categoryEntity.Name = this.newCategoryName;\n await categoryEntity?.Save();\n this.categoriesData = [...this.categoriesData, categoryEntity];\n this.showNew = false;\n this.isLoading = false;\n }\n\n async deleteCategory(fileCategory: MJFileCategoryEntity) {\n this.isLoading = true;\n const { ID } = fileCategory;\n const success = await fileCategory.Delete();\n if (!success) {\n console.error('Unable to delete file category:', fileCategory);\n this.sharedService.CreateSimpleNotification(`Unable to delete category '${fileCategory.Name}'`, 'error');\n return;\n }\n\n this.categoriesData = this.categoriesData.filter((c) => c.ID !== ID);\n this.clearSelection();\n this.isLoading = false;\n }\n\n clearSelection() {\n this.selectedKeys = [];\n this.categorySelected.emit(undefined);\n }\n\n handleMenuSelect(e: ContextMenuSelectEvent) {\n const action = e.item?.text?.toLowerCase() ?? '';\n switch (action) {\n case 'rename':\n this.renameFileCategory = e.item.data;\n break;\n\n case 'delete':\n this.deleteCategory(e.item.data);\n break;\n\n default:\n break;\n }\n }\n\n cancelRename() {\n this.renameFileCategory?.Revert();\n this.renameFileCategory = undefined;\n }\n\n async saveRename() {\n this.isLoading = true;\n await this.renameFileCategory?.Save();\n this.renameFileCategory = undefined;\n this.isLoading = false;\n }\n\n async Refresh() {\n this.isLoading = true;\n\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: 'MJ: File Categories',\n ResultType: 'entity_object',\n });\n\n if (result.Success) {\n this.categoriesData = <MJFileCategoryEntity[]>result.Results;\n } else {\n throw new Error('Error loading file categories: ' + result.ErrorMessage);\n }\n this.isLoading = false;\n }\n}\n","<div class=\"container\">\n <div class=\"tree-header\">\n <button kendoButton (click)=\"clearSelection()\">All Files</button>\n <button kendoButton (click)=\"createNewCategory()\" size=\"small\">Add category</button>\n </div>\n <kendo-treeview\n [nodes]=\"categoriesData\"\n textField=\"Name\"\n kendoTreeViewExpandable\n kendoTreeViewFlatDataBinding\n idField=\"ID\"\n parentIdField=\"ParentID\"\n (selectionChange)=\"categorySelected.emit($event.dataItem.ID)\"\n kendoTreeViewDragAndDrop\n kendoTreeViewSelectable\n (addItem)=\"handleDrop($event)\"\n [selectedKeys]=\"selectedKeys\"\n >\n <ng-template kendoTreeViewNodeTemplate let-dataItem>\n <span #target>{{ dataItem.Name }} </span>\n <kendo-contextmenu [target]=\"target\" (select)=\"handleMenuSelect($event)\">\n <kendo-menu-item text=\"Rename\" [data]=\"dataItem\"> </kendo-menu-item>\n <kendo-menu-item text=\"Delete\" [data]=\"dataItem\" [disabled]=\"true\"> </kendo-menu-item>\n </kendo-contextmenu>\n </ng-template>\n </kendo-treeview>\n\n @if (showNew) {\n <kendo-dialog title=\"New file category\" (close)=\"cancelNewCategory()\" [minWidth]=\"250\" [width]=\"450\">\n <div class=\"container\">\n <form #templateForm=\"ngForm\">\n <kendo-label class=\"k-form\" text=\"Name\">\n <kendo-textbox\n name=\"name\"\n [(ngModel)]=\"newCategoryName\"\n [showSuccessIcon]=\"newCategoryName.length > 0\"\n showErrorIcon=\"initial\"\n required\n [disabled]=\"isLoading\"\n ></kendo-textbox>\n </kendo-label>\n </form>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"cancelNewCategory()\" [disabled]=\"isLoading\">Cancel</button>\n <button kendoButton (click)=\"saveNewCategory()\" [disabled]=\"isLoading\" themeColor=\"primary\">Save</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n\n @if (!!renameFileCategory) {\n <kendo-dialog title=\"Rename file category\" (close)=\"cancelRename()\" [minWidth]=\"250\" [width]=\"450\">\n <div class=\"container\">\n <form #templateForm=\"ngForm\">\n <kendo-label class=\"k-form\" text=\"Name\">\n <kendo-textbox\n name=\"Name\"\n [(ngModel)]=\"renameFileCategory.Name\"\n [showSuccessIcon]=\"renameFileCategory.Name.length > 0\"\n showErrorIcon=\"initial\"\n required\n [disabled]=\"isLoading\"\n ></kendo-textbox>\n </kendo-label>\n </form>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"cancelRename()\" [disabled]=\"isLoading\">Cancel</button>\n <button kendoButton (click)=\"saveRename()\" [disabled]=\"isLoading || !renameFileCategory.Dirty\" themeColor=\"primary\">Save</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-browser-demo.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-browser-demo.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;;;AAE1C;;;GAGG;AAyBH,MAAM,OAAO,wBAAwB;kHAAxB,wBAAwB;6DAAxB,wBAAwB;YAlB7B,AADF,AADF,8BAAiF,aACO,YAC5C;YAAA,iCAAiB;YAAA,iBAAK;YAC9D,4BAA4D;YAC1D,qEACF;YACF,AADE,iBAAI,EACA;YACN,8BAAwC;YACtC,kCAAmC;YAEvC,AADE,iBAAM,EACF;;;iFAUG,wBAAwB;cAxBpC,SAAS;6BACI,KAAK,YACP,sBAAsB,YACtB;;;;;;;;;;;;GAYT;;kFASU,wBAAwB"}
1
+ {"version":3,"file":"file-browser-demo.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-browser-demo.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;;;AAE1C;;;GAGG;AAyBH,MAAM,OAAO,wBAAwB;kHAAxB,wBAAwB;6DAAxB,wBAAwB;YAlB7B,AADF,AADF,8BAAiF,aACO,YAC5C;YAAA,iCAAiB;YAAA,iBAAK;YAC9D,4BAA4D;YAC1D,qEACF;YACF,AADE,iBAAI,EACA;YACN,8BAAwC;YACtC,kCAAmC;YAEvC,AADE,iBAAM,EACF;;;iFAUG,wBAAwB;cAxBpC,SAAS;6BACI,KAAK,YACP,sBAAsB,YACtB;;;;;;;;;;;;GAYT;;kFASU,wBAAwB","sourcesContent":["import { Component } from '@angular/core';\n\n/**\n * Demo wrapper component for testing the file browser UI.\n * Navigate to this component to see the file browser in action.\n */\n@Component({\n standalone: false,\n selector: 'mj-file-browser-demo',\n template: `\n <div style=\"height: 100vh; width: 100vw; display: flex; flex-direction: column;\">\n <div style=\"padding: 16px; background-color: #f0f0f0; border-bottom: 1px solid #ccc;\">\n <h1 style=\"margin: 0; font-size: 20px;\">File Browser Demo</h1>\n <p style=\"margin: 4px 0 0 0; font-size: 14px; color: #666;\">\n Testing the Mac Finder-style file browser component\n </p>\n </div>\n <div style=\"flex: 1; overflow: hidden;\">\n <mj-file-browser></mj-file-browser>\n </div>\n </div>\n `,\n styles: [`\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n `]\n})\nexport class FileBrowserDemoComponent {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-browser-resource.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-browser-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;;;AAEvD;;;GAGG;AA4BI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,qBAAqB;IACpD,UAAU,GAAG,KAAK,CAAC;IAE3B;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,IAAa,IAAI,CAAC,KAAmB;QACnC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAa,IAAI;QACf,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YACH,iCAAiC;YACjC,kFAAkF;YAClF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QACtD,OAAO,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;IACrC,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QACpD,OAAO,yBAAyB,CAAC;IACnC,CAAC;6GAhDU,mBAAmB;6DAAnB,mBAAmB;YAtB5B,8BAA6C;YAC3C,kCAAmC;YACrC,iBAAM;;;AAoBG,mBAAmB;IA3B/B,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;GA2B/C,mBAAmB,CAiD/B;;iFAjDY,mBAAmB;cA1B/B,SAAS;6BACI,KAAK,YACP,0BAA0B,YAC1B;;;;GAIT;;kFAmBU,mBAAmB"}
1
+ {"version":3,"file":"file-browser-resource.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-browser-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;;;AAEvD;;;GAGG;AA4BI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,qBAAqB;IACpD,UAAU,GAAG,KAAK,CAAC;IAE3B;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,IAAa,IAAI,CAAC,KAAmB;QACnC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAa,IAAI;QACf,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YACH,iCAAiC;YACjC,kFAAkF;YAClF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QACtD,OAAO,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;IACrC,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QACpD,OAAO,yBAAyB,CAAC;IACnC,CAAC;6GAhDU,mBAAmB;6DAAnB,mBAAmB;YAtB5B,8BAA6C;YAC3C,kCAAmC;YACrC,iBAAM;;;AAoBG,mBAAmB;IA3B/B,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;GA2B/C,mBAAmB,CAiD/B;;iFAjDY,mBAAmB;cA1B/B,SAAS;6BACI,KAAK,YACP,0BAA0B,YAC1B;;;;GAIT;;kFAmBU,mBAAmB","sourcesContent":["import { Component } from '@angular/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\n\n/**\n * File Browser Resource Wrapper - displays the file browser in a tab\n * Extends BaseResourceComponent to work with the MJ resource type system\n */\n@RegisterClass(BaseResourceComponent, 'FileBrowserResource')\n@Component({\n standalone: false,\n selector: 'mj-file-browser-resource',\n template: `\n <div class=\"file-browser-resource-container\">\n <mj-file-browser></mj-file-browser>\n </div>\n `,\n styles: [`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n .file-browser-resource-container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n }\n `]\n})\nexport class FileBrowserResource extends BaseResourceComponent {\n private dataLoaded = false;\n\n constructor() {\n super();\n }\n\n override set Data(value: ResourceData) {\n super.Data = value;\n if (!this.dataLoaded) {\n this.dataLoaded = true;\n this.loadFileBrowser();\n }\n }\n\n override get Data(): ResourceData {\n return super.Data;\n }\n\n /**\n * Load the file browser (currently just notifies load complete)\n * In future phases, this could pass configuration from ResourceData\n */\n private async loadFileBrowser(): Promise<void> {\n this.NotifyLoadStarted();\n\n try {\n // File browser loads immediately\n // In future, could pass provider selection or folder path from Data.Configuration\n this.NotifyLoadComplete();\n } catch (error) {\n console.error('Error loading file browser:', error);\n this.NotifyLoadComplete();\n }\n }\n\n /**\n * Get the display name for the file browser resource\n */\n override async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return data.Name || 'File Browser';\n }\n\n /**\n * Get the icon class for file browser resources\n */\n override async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-folder-tree';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-browser.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-browser.component.ts","../../../src/lib/file-browser/file-browser.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;;;;;AAG9D;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,oBAAoB;IAC/B;;OAEG;IAC6B,UAAU,CAAuB;IAEjE;;;OAGG;IACI,kBAAkB,GAAY,KAAK,CAAC;IAE3C;;OAEG;IACI,eAAe,GAAsC,IAAI,CAAC;IAEjE;;OAEG;IACI,kBAAkB,GAAW,GAAG,CAAC;IAExC,gBAAe,CAAC;IAEhB;;;OAGG;IACI,aAAa;QAClB,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,mBAAsD;QAC7E,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,wCAAwC;IACzE,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,UAAkB;QACxC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,UAAkB;QACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,wBAAwB;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,mEAAmE;YACnE,uDAAuD;YACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;8GAzEU,oBAAoB;6DAApB,oBAAoB;2BAIpB,mBAAmB;;;;;YCzB5B,AADF,AAFF,8BAA0B,aAEG,gBACgC;YAAjD,iGAAS,mBAAe,IAAC;YAC/B,uBAAgC;YAClC,iBAAS;YACT,6BAA0B;YAAA,4BAAY;YACxC,AADwC,iBAAK,EACvC;YASE,AADF,AADF,AAFF,AAFF,8BAA+B,aAE+B,aAE7B,aACC,UACtB;YAAA,yBAAQ;YACd,AADc,iBAAK,EACb;YAEJ,AADF,+BAA6B,qCAG1B;YADC,+IAAmB,6BAAyB,IAAC;YAGnD,AADE,AADG,iBAA4B,EACzB,EACF;YAKF,AADF,AADF,+BAA6B,cACC,UACtB;YAAA,wBAAO;YACb,AADa,iBAAK,EACZ;YAEJ,AADF,+BAA6B,0BAI1B;YADC,kIAAkB,4BAAwB,IAAC;YAInD,AADE,AADE,AADG,iBAAiB,EACd,EACF,EACF;YAIJ,AADF,gCAAwB,wBAMrB;YADC,AADA,gIAAkB,4BAAwB,IAAC,6HACjB,8BAA0B,IAAC;YAI7D,AADE,AADE,AADG,iBAAe,EACZ,EACF,EACF;;YArCmB,eAAsC;YAAtC,mDAAsC;YAoBnD,gBAA2B;YAA3B,6CAA2B;YAU/B,eAA2B;YAC3B,AADA,6CAA2B,sCACM;;;iFDnB5B,oBAAoB;cANhC,SAAS;6BACI,KAAK,YACP,iBAAiB;;kBAQ1B,SAAS;mBAAC,mBAAmB;;kFAJnB,oBAAoB"}
1
+ {"version":3,"file":"file-browser.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-browser.component.ts","../../../src/lib/file-browser/file-browser.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;;;;;AAG9D;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,oBAAoB;IAC/B;;OAEG;IAC6B,UAAU,CAAuB;IAEjE;;;OAGG;IACI,kBAAkB,GAAY,KAAK,CAAC;IAE3C;;OAEG;IACI,eAAe,GAAsC,IAAI,CAAC;IAEjE;;OAEG;IACI,kBAAkB,GAAW,GAAG,CAAC;IAExC,gBAAe,CAAC;IAEhB;;;OAGG;IACI,aAAa;QAClB,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,mBAAsD;QAC7E,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,wCAAwC;IACzE,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,UAAkB;QACxC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,UAAkB;QACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,wBAAwB;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,mEAAmE;YACnE,uDAAuD;YACvD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;8GAzEU,oBAAoB;6DAApB,oBAAoB;2BAIpB,mBAAmB;;;;;YCzB5B,AADF,AAFF,8BAA0B,aAEG,gBACgC;YAAjD,iGAAS,mBAAe,IAAC;YAC/B,uBAAgC;YAClC,iBAAS;YACT,6BAA0B;YAAA,4BAAY;YACxC,AADwC,iBAAK,EACvC;YASE,AADF,AADF,AAFF,AAFF,8BAA+B,aAE+B,aAE7B,aACC,UACtB;YAAA,yBAAQ;YACd,AADc,iBAAK,EACb;YAEJ,AADF,+BAA6B,qCAG1B;YADC,+IAAmB,6BAAyB,IAAC;YAGnD,AADE,AADG,iBAA4B,EACzB,EACF;YAKF,AADF,AADF,+BAA6B,cACC,UACtB;YAAA,wBAAO;YACb,AADa,iBAAK,EACZ;YAEJ,AADF,+BAA6B,0BAI1B;YADC,kIAAkB,4BAAwB,IAAC;YAInD,AADE,AADE,AADG,iBAAiB,EACd,EACF,EACF;YAIJ,AADF,gCAAwB,wBAMrB;YADC,AADA,gIAAkB,4BAAwB,IAAC,6HACjB,8BAA0B,IAAC;YAI7D,AADE,AADE,AADG,iBAAe,EACZ,EACF,EACF;;YArCmB,eAAsC;YAAtC,mDAAsC;YAoBnD,gBAA2B;YAA3B,6CAA2B;YAU/B,eAA2B;YAC3B,AADA,6CAA2B,sCACM;;;iFDnB5B,oBAAoB;cANhC,SAAS;6BACI,KAAK,YACP,iBAAiB;;kBAQ1B,SAAS;mBAAC,mBAAmB;;kFAJnB,oBAAoB","sourcesContent":["import { Component, ViewChild } from '@angular/core';\nimport { FolderTreeComponent } from './folder-tree.component';\nimport { StorageAccountWithProvider } from '@memberjunction/core-entities';\n\n/**\n * Mac Finder-style file browser component with three-panel layout.\n *\n * Layout:\n * - Left sidebar: Storage account selection\n * - Middle panel: Folder tree navigation\n * - Right panel: File grid with current folder contents\n *\n * In the enterprise model, users select from organizational storage accounts\n * rather than connecting their own OAuth credentials.\n *\n * Features responsive design with collapsible sidebar for mobile devices.\n * Responsive layout is handled via CSS media queries.\n */\n@Component({\n standalone: false,\n selector: 'mj-file-browser',\n templateUrl: './file-browser.component.html',\n styleUrls: ['./file-browser.component.css'],\n})\nexport class FileBrowserComponent {\n /**\n * Reference to the folder tree component for programmatic navigation\n */\n @ViewChild(FolderTreeComponent) folderTree!: FolderTreeComponent;\n\n /**\n * Controls manual collapse of the sidebar (toggle button on mobile).\n * CSS media queries handle the responsive layout automatically.\n */\n public isSidebarCollapsed: boolean = false;\n\n /**\n * Currently selected storage account with its provider details.\n */\n public selectedAccount: StorageAccountWithProvider | null = null;\n\n /**\n * Currently selected folder path in the tree.\n */\n public selectedFolderPath: string = '/';\n\n constructor() {}\n\n /**\n * Toggles the visibility of the accounts sidebar.\n * Used for manual toggle on mobile devices.\n */\n public toggleSidebar(): void {\n this.isSidebarCollapsed = !this.isSidebarCollapsed;\n }\n\n /**\n * Handles storage account selection from the sidebar.\n *\n * @param accountWithProvider - The selected storage account with provider details, or null if no accounts available\n */\n public onAccountSelected(accountWithProvider: StorageAccountWithProvider | null): void {\n this.selectedAccount = accountWithProvider;\n this.selectedFolderPath = '/'; // Reset to root when switching accounts\n }\n\n /**\n * Handles folder selection from the tree navigation.\n *\n * @param folderPath - The full path of the selected folder\n */\n public onFolderSelected(folderPath: string): void {\n this.selectedFolderPath = folderPath;\n }\n\n /**\n * Handles folder navigation from the file grid (double-click on folder).\n * Updates the folder tree to navigate to the selected folder.\n *\n * @param folderPath - The full path of the folder to navigate to\n */\n public onFolderNavigate(folderPath: string): void {\n if (this.folderTree) {\n this.folderTree.navigateToPath(folderPath);\n }\n }\n\n /**\n * Handles folder structure changes (e.g., new folder created, folder deleted).\n * Refreshes the folder tree to show the new structure.\n */\n public onFolderStructureChanged(): void {\n if (this.folderTree) {\n // Trigger a refresh of the folder tree without changing navigation\n // This will reload the folders at the current location\n this.folderTree.refresh();\n }\n }\n}\n","<div class=\"file-browser\">\n <!-- Mobile header with sidebar toggle -->\n <div class=\"mobile-header\">\n <button (click)=\"toggleSidebar()\" class=\"sidebar-toggle\">\n <i class=\"fa-solid fa-bars\"></i>\n </button>\n <h2 class=\"browser-title\">File Browser</h2>\n </div>\n\n <!-- Main two-panel layout -->\n <div class=\"browser-container\">\n <!-- Left Sidebar: Accounts + Categories -->\n <div class=\"sidebar\" [class.collapsed]=\"isSidebarCollapsed\">\n <!-- Accounts Section -->\n <div class=\"sidebar-section\">\n <div class=\"section-header\">\n <h3>ACCOUNTS</h3>\n </div>\n <div class=\"section-content\">\n <mj-storage-providers-list\n (accountSelected)=\"onAccountSelected($event)\"\n ></mj-storage-providers-list>\n </div>\n </div>\n\n <!-- Categories Section -->\n <div class=\"sidebar-section\">\n <div class=\"section-header\">\n <h3>FOLDERS</h3>\n </div>\n <div class=\"section-content\">\n <mj-folder-tree\n [account]=\"selectedAccount\"\n (folderSelected)=\"onFolderSelected($event)\"\n ></mj-folder-tree>\n </div>\n </div>\n </div>\n\n <!-- Right Panel: File Grid -->\n <div class=\"main-panel\">\n <mj-file-grid\n [account]=\"selectedAccount\"\n [folderPath]=\"selectedFolderPath\"\n (folderNavigate)=\"onFolderNavigate($event)\"\n (folderStructureChanged)=\"onFolderStructureChanged()\"\n ></mj-file-grid>\n </div>\n </div>\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-grid.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-grid.component.ts","../../../src/lib/file-browser/file-grid.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-grid.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/file-grid.component.ts","../../../src/lib/file-browser/file-grid.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAoC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAA8B,MAAM,+BAA+B,CAAC;;;;;;;IC6BpF,kCAEuB;IADrB,qMAAS,oBAAa,KAAC;IAEvB,wBAAiC;IACnC,iBAAS;;;;IA1BX,AADF,AADF,8BAA4B,cACD,iBAIU;IAD/B,qLAAS,mBAAY,KAAC;IAEtB,wBAAoC;IACtC,iBAAS;IACT,kCAA4D;IAApC,qLAAS,gBAAS,KAAC;IACzC,wBAAyC;IAE7C,AADE,iBAAS,EACL;IACN,+BAA6B;IAC3B,wBAAkC;IAClC,gCAAwB;IAAA,YAA4B;IACtD,AADsD,iBAAO,EACvD;IAEJ,AADF,gCAAwB,iBAMgC;IAHpD,gTAAyB;IACzB,2MAAiB,6BAAsB,KAAC;IAH1C,iBAKsD;IACtD,uGAAiD;IAOjD,mCAGsD;IAFpD,uTAA4B;IAC5B,4MAAiB,qCAA8B,KAAC;IAEhD,mCAAoB;IAAA,oBAAG;IAAA,iBAAS;IAChC,mCAAsB;IAAA,sBAAK;IAAA,iBAAS;IACpC,mCAAwB;IAAA,wBAAO;IACjC,AADiC,iBAAS,EACjC;IACT,mCAG8C;IAD5C,sLAAS,qCAA8B,KAAC;IAExC,yBAAiD;IAGvD,AADE,AADE,iBAAS,EACL,EACF;;;IA1CA,eAA6B;IAA7B,kDAA6B;IAWP,eAA4B;IAA5B,4DAA4B;IAKlD,eAAyB;IAAzB,kDAAyB;IAGzB,+EAAmD;IACrD,cAMC;IAND,mFAMC;IAEC,cAA4B;IAA5B,qDAA4B;IAE5B,+EAAmD;IAMnD,eAA0C;IAA1C,0DAA0C;;;IA8BtC,wBAA2C;;;IAG3C,wBAAkC;;;IAoB9B,gCAA8B;IAAA,2BAAW;IAAA,iBAAO;;;;IAPlD,AAJF,iCAGmF,gBAIxC;IADvC,qNAAU,2CAAiC,KAAC;IAF9C,iBAGyC;IACzC,gCAA4B;IAAA,YAAoB;IAAA,iBAAO;IACvD,gCAA4B;IAAA,YAAuB;IAAA,iBAAO;IAC1D,0GAAiC;IAGnC,iBAAQ;;;;IAXN,+DAA4C;IAC5C,wGAAgF;IAE9E,cAAoD;IAEpD,AAFA,4EAAoD,iDAEd;IACZ,eAAoB;IAApB,uCAAoB;IACpB,eAAuB;IAAvB,mDAAuB;IACnD,cAEC;IAFD,8DAEC;;;IAcD,gCAA2B;IACzB,YACF;IAAA,iBAAO;;;IADL,cACF;IADE,0FACF;;;IAgBM,gCAA2B;IACzB,YACF;IAAA,iBAAO;;;IADL,cACF;IADE,4EACF;;;IAGA,gCAA0B;IACxB,wBAAgD;IAChD,YACF;IAAA,iBAAO;;;IADL,eACF;IADE,8DACF;;;IAME,+BAAgC;IAC9B,wBAA6D;IAE3D,AADF,+BAAuB,eACG;IAAA,YAAe;IAAA,iBAAO;IAC9C,gCAAwB;IAAA,YAAe;IACzC,AADyC,iBAAO,EAC1C;IACN,gCAAwB;IAAA,YAAuC;IAAA,iBAAO;IACtE,gCAAwB;IAAA,aAA+C;IACzE,AADyE,iBAAO,EAC1E;;;;IAPD,cAAmC;IAAnC,kDAAmC;IAEZ,eAAe;IAAf,kCAAe;IACf,eAAe;IAAf,kCAAe;IAEjB,eAAuC;IAAvC,iEAAuC;IACvC,eAA+C;IAA/C,yEAA+C;;;IAT7E,+BAAmC;IACjC,0JAUC;IACH,iBAAM;;;IAXJ,cAUC;IAVD,uCAUC;;;IAIH,+BAAgC;IAC9B,yCACF;IAAA,iBAAM;;;IAjCR,AAHF,+BAE0C,cACJ;IAClC,wBAAiC;IACjC,gCAA4B;IAAA,YAA+B;IAAA,iBAAO;IAClE,yHAA6B;IAK7B,yHAA8B;IAMhC,iBAAM;IACN,wHAAiE;IAejE,wHAAmE;IAKrE,iBAAM;;;IApCJ,mDAAuC;IAGT,eAA+B;IAA/B,kDAA+B;IAC3D,cAIC;IAJD,mDAIC;IACD,cAKC;IALD,oDAKC;IAEH,cAcC;IAdD,0FAcC;IACD,cAIC;IAJD,4FAIC;;;;IApDP,AADF,AADF,+BAAsC,cACA,eACP;IAAA,YAAqE;IAAA,iBAAO;IACvG,gCAA6B;IAC3B,YACA;IAAA,kHAAqD;IAIlD,kBACH;IAAA,iBAAO;IACP,kCAAuE;IAArC,qMAAS,iCAA0B,KAAC;IACpE,wBAAiC;IAAC,wBACpC;IACF,AADE,iBAAS,EACL;IACN,gCAAmC;IACjC,sIAwCC;IAEL,AADE,iBAAM,EACF;;;IAxDuB,eAAqE;IAArE,qGAAqE;IAE9F,eACA;IADA,0GACA;IAAA,cAIG;IAJH,+EAIG;IAOH,eAwCC;IAxCD,+DAwCC;;;IAML,+BAA6B;IAC3B,iCAA8D;IAChE,iBAAM;;;;IAjHR,AADF,AADF,8BAAyC,cACN,SAC3B;IAAA,wBAA4C;IAAC,wCAAuB;IAAA,iBAAK;IAC7E,kCAAyE;IAAzC,qLAAS,qCAA8B,KAAC;IACtE,wBAAiC;IAErC,AADE,iBAAS,EACL;IAGF,AADF,AADF,+BAA+B,cACC,gBAMD;IAHzB,yUAAsC;IAEtC,oMAAiB,kCAA2B,KAAC;IAJ/C,iBAK2B;IAC3B,mCAEqG;IADnG,sLAAS,kCAA2B,KAAC;IAErC,kGAAmB;IAGnB,kGAAoB;IAGpB,aACF;IACF,AADE,iBAAS,EACL;IAEJ,AADF,gCAAgC,iBACU;IAAA,2CAA0B;IAAA,iBAAQ;IAC1E,gCAAiC;IAC/B,yHAeC;IAGP,AADE,AADE,iBAAM,EACF,EACF;IAEN,qGAAkC;IA8DhC,oGAAmB;IAKrB,iBAAM;;;IA1GA,eAAsC;IAAtC,+DAAsC;IAGtC,6CAAwB;IAGxB,cAAkG;IAAlG,qIAAkG;IAClG,cAEC;IAFD,8CAEC;IACD,cAEC;IAFD,+CAEC;IACD,cACF;IADE,+EACF;IAKE,eAeC;IAfD,uCAeC;IAKP,eA4DG;IA5DH,6DA4DG;IAED,cAIC;IAJD,8CAIC;;;IAMH,8BAA2B;IACzB,iCAAiD;IACnD,iBAAM;;;;IAMJ,AADF,8BAAyB,cACC;IACtB,wBAA8C;IAChD,iBAAM;IACN,6BAAyB;IAAA,YAAkB;IAAA,iBAAI;IAC/C,kCAA8C;IAApB,sLAAS,gBAAS,KAAC;IAC3C,wBAAyC;IACzC,uBACF;IACF,AADE,iBAAS,EACL;;;IALqB,eAAkB;IAAlB,yCAAkB;;;;IAwCrC,8BAIuC;IAArC,AADA,2NAAS,oCAAyB,KAAC,8MACvB,kCAAuB,KAAC;IACpC,8BAAqB;IACnB,wBAAqD;IACrD,gCAAwB;IAAA,YAAe;IACzC,AADyC,iBAAO,EAC3C;IAEH,AADF,8BAAqB,eACK;IAAA,YAAuB;IACjD,AADiD,iBAAO,EACnD;IAEH,AADF,8BAAqB,eACK;IAAA,aAA8D;IACxF,AADwF,iBAAO,EAC1F;IAEH,AADF,+BAAyB,gBACC;IAAA,aAAmC;IAE/D,AADE,AAD6D,iBAAO,EAC/D,EACF;;;;IAhBH,uEAAmD;IAI9C,eAA2B;IAA3B,2CAA2B;IACN,eAAe;IAAf,mCAAe;IAGf,eAAuB;IAAvB,kDAAuB;IAGvB,eAA8D;IAA9D,kGAA8D;IAG9D,eAAmC;IAAnC,8DAAmC;;;;IA1C/D,AADF,AADF,AADF,AADF,8BAAgC,gBACJ,YACjB,SACD,aACwI;IAArH,kLAAS,qBAAc,SAAS,MAAM,mBAAY,CAAC,YAAY,MAAM,gBAAS,CAAC,UAAU,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,EAAE,KAAC;IACvI,4BAAM;IAAA,oBAAI;IAAA,iBAAO;IACjB,wBAG+C;IACjD,iBAAK;IACL,8BAAqB;IAAA,oBAAI;IAAA,iBAAK;IAC9B,+BAA0I;IAArH,mLAAS,qBAAc,SAAS,MAAM,mBAAY,CAAC,YAAY,MAAM,gBAAS,CAAC,UAAU,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,EAAE,KAAC;IACvI,6BAAM;IAAA,qBAAI;IAAA,iBAAO;IACjB,yBAG+C;IACjD,iBAAK;IACL,+BAA8J;IAArI,mLAAS,qBAAc,SAAS,cAAc,mBAAY,CAAC,YAAY,cAAc,gBAAS,CAAC,UAAU,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,EAAE,KAAC;IAC3J,6BAAM;IAAA,yBAAQ;IAAA,iBAAO;IACrB,yBAGuD;IAG7D,AADE,AADE,iBAAK,EACF,EACC;IACR,8BAAO;IACL,uHAoBC;IAGP,AADE,AADE,iBAAQ,EACF,EACJ;;;IA7CM,eAAuE;IAEzE,AADE,AADA,8FAAuE,mFACG,4CAClC;IAMxC,eAAuE;IAEzE,AADE,AADA,8FAAuE,mFACG,4CAClC;IAKxC,eAA+E;IAEjF,AADE,AADA,sGAA+E,2FACG,oDAClC;IAKtD,eAoBC;IApBD,mCAoBC;;;IAqBG,+BAAuB;IAAA,YAA+B;IAAA,iBAAM;;;;IAArC,cAA+B;IAA/B,0DAA+B;;;IAGtD,+BAAuB;IAAA,sBAAM;IAAA,iBAAM;;;;IAbvC,+BAIuC;IAArC,AADA,2NAAS,oCAAyB,KAAC,8MACvB,kCAAuB,KAAC;IACpC,+BAAuB;IACrB,oBAAmC;IACrC,iBAAM;IACN,+BAAuB;IAAA,YAAe;IAAA,iBAAM;IAC5C,wGAA4B;IAG5B,wGAA8B;IAGhC,iBAAM;;;;IAbJ,uEAAmD;IAI9C,eAA2B;IAA3B,2CAA2B;IAET,eAAe;IAAf,mCAAe;IACtC,cAEC;IAFD,mDAEC;IACD,cAEC;IAFD,qDAEC;;;IAhBP,AADF,8BAA+B,cACN;IACrB,qHAiBC;IAEL,AADE,iBAAM,EACF;;;IAnBF,eAiBC;IAjBD,mCAiBC;;;;IAQH,AADF,8BAAyB,eACC;IACtB,yBAAuC;IACzC,iBAAM;IACN,8BAAyB;IAAA,oCAAoB;IAAA,iBAAI;IACjD,mCAAqD;IAA1B,sLAAS,sBAAe,KAAC;IAClD,yBAAkC;IAClC,8BACF;IACF,AADE,iBAAS,EACL;;;;IAOF,AADF,AADF,8BAA4B,eACA,kBAC8B;IAA1B,sLAAS,sBAAe,KAAC;IACnD,yBAAkC;IAClC,wBACF;IAAA,iBAAS;IACT,mCAAyD;IAA7B,sLAAS,yBAAkB,KAAC;IACtD,yBAAuC;IACvC,4BACF;IAAA,iBAAS;IACT,mCAE8B;IAA5B,sLAAS,wBAAiB,KAAC;IAC3B,yBAAoC;IACpC,2BACF;IAAA,iBAAS;IACT,oCAE4B;IAA1B,uLAAS,sBAAe,KAAC;IACzB,0BAA+B;IAC/B,yBACF;IAAA,iBAAS;IACT,oCAE0B;IAAxB,uLAAS,oBAAa,KAAC;IACvB,0BAAgC;IAChC,uBACF;IAAA,iBAAS;IACT,oCAG+C;IAD7C,uLAAS,6BAAsB,KAAC;IAEhC,0BAA0C;IAC1C,6BACF;IAAA,iBAAS;IACT,oCAE0B;IAAxB,uLAAS,oBAAa,KAAC;IACvB,0BAAqD;IACrD,uBACF;IAAA,iBAAS;IACT,oCAE4B;IAA1B,uLAAS,sBAAe,KAAC;IACzB,0BAAiC;IACjC,yBACF;IACF,AADE,iBAAS,EACL;IAIF,AADF,AAFF,iCAA2B,gBAEA,mBAIH;IADlB,yMAAoB,MAAM,KAAC;IAE3B,0BAAgC;IAClC,iBAAS;IACT,oCAGoB;IADlB,yMAAoB,MAAM,KAAC;IAE3B,0BAA8B;IAElC,AADE,iBAAS,EACL;IACN,kCAAyB;IACvB,aACF;IAEJ,AADE,AADE,iBAAO,EACH,EACF;;;;IAzDA,eAAuC;IAAvC,4DAAuC;IAMvC,eAAuC;IAAvC,4DAAuC;IAMvC,eAAuC;IAAvC,4DAAuC;IAMvC,eAA+E;IAA/E,iJAA+E;IAO/E,eAAuC;IAAvC,4DAAuC;IAMvC,eAAuC;IAAvC,4DAAuC;IAUrC,eAAoC;IAApC,oDAAoC;IAMpC,eAAoC;IAApC,oDAAoC;IAOtC,eACF;IADE,+HACF;;;IASA,AADF,AADF,8BAA0B,eACE,eACD;IACrB,yBAA0C;IAC5C,iBAAM;IACN,+BAAuB;IAAA,oCAAoB;IAE/C,AADE,AAD6C,iBAAK,EAC5C,EACF;;;IAOF,AADF,AADF,+BAA6B,eACG,eACD;IACzB,wBAA2C;IAC3C,4BAAM;IAAA,YAAoC;IAC5C,AAD4C,iBAAO,EAC7C;IACN,gCAA+B;IAC7B,2BAAiE;IACnE,iBAAM;IACN,iCAA+B;IAAA,YAAqB;IAExD,AADE,AADsD,iBAAO,EACvD,EACF;;;IAPM,eAAoC;IAApC,oEAAoC;IAGhB,eAAgC;IAAhC,mDAAgC;IAE7B,eAAqB;IAArB,qDAAqB;;;IA4BhD,wBAA2C;;;;IApBrD,gCAAyD;IAA9B,oLAAS,0BAAmB,KAAC;IACtD,gCAA6D;IAAnC,uJAAS,wBAAwB,KAAC;IAExD,AADF,gCAA0B,SACpB;IAAA,iCAAiB;IAAA,iBAAK;IAC1B,mCAA0D;IAA9B,uLAAS,0BAAmB,KAAC;IACvD,wBAAiC;IAErC,AADE,iBAAS,EACL;IAEJ,AADF,gCAAwB,YACf;IAAA,4BAAY;IAAA,iBAAQ;IAC3B,mCAIqC;IAHnC,sTAA2B;IAG3B,uMAAiB,uBAAgB,KAAC;IACtC,AALE,iBAIqC,EACjC;IAEJ,AADF,iCAA0B,mBAC4C;IAA5D,wLAAS,0BAAmB,KAAC;IAA+B,uBAAM;IAAA,iBAAS;IACnF,oCAA0F;IAAlF,wLAAS,uBAAgB,KAAC;IAChC,mGAAwB;IAGxB,aACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACF,EACF;;;IAfE,gBAA2B;IAA3B,oDAA2B;IAC3B,kDAA6B;IAKO,eAA6B;IAA7B,kDAA6B;IAChC,eAAsD;IAAtD,kFAAsD;IACvF,cAEC;IAFD,mDAEC;IACD,cACF;IADE,mFACF;;;IAmBE,8BAAmB;IAAA,iEAAiD;IAAA,iBAAI;;;IAOtE,wBAA2C;;;;IAlBrD,gCAAsD;IAA3B,oLAAS,uBAAgB,KAAC;IACnD,gCAA6D;IAAnC,uJAAS,wBAAwB,KAAC;IAExD,AADF,gCAA0B,SACpB;IAAA,YAAgE;IAAA,iBAAK;IACzE,mCAAuD;IAA3B,uLAAS,uBAAgB,KAAC;IACpD,wBAAiC;IAErC,AADE,iBAAS,EACL;IAEJ,AADF,gCAAwB,QACnB;IAAA,gDAAgC;IAAA,+BAAQ;IAAA,aAAuB;IAAA,iBAAS;IAAA,kBAAC;IAAA,iBAAI;IAChF,oGAAsC;IAGxC,iBAAM;IAEJ,AADF,iCAA0B,mBACmC;IAAnD,wLAAS,uBAAgB,KAAC;IAAyB,uBAAM;IAAA,iBAAS;IAC1E,oCAA2E;IAAnE,wLAAS,wBAAiB,KAAC;IACjC,mGAAkB;IAGlB,aACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACF,EACF;;;IArBI,eAAgE;IAAhE,gGAAgE;IAMzB,eAAuB;IAAvB,8CAAuB;IAClE,eAEC;IAFD,iEAEC;IAGkC,eAAuB;IAAvB,4CAAuB;IACtB,eAAuB;IAAvB,4CAAuB;IACzD,cAEC;IAFD,6CAEC;IACD,cACF;IADE,6EACF;;;IA4BI,wBAA2C;;;;IApBrD,gCAAsD;IAA3B,oLAAS,uBAAgB,KAAC;IACnD,gCAA6D;IAAnC,uJAAS,wBAAwB,KAAC;IAExD,AADF,gCAA0B,SACpB;IAAA,YAA+D;IAAA,iBAAK;IACxE,mCAAuD;IAA3B,uLAAS,uBAAgB,KAAC;IACpD,wBAAiC;IAErC,AADE,iBAAS,EACL;IAEJ,AADF,gCAAwB,YACf;IAAA,yBAAS;IAAA,iBAAQ;IACxB,mCAIsC;IAHpC,kTAAyB;IAGzB,uMAAiB,wBAAiB,KAAC;IACvC,AALE,iBAIsC,EAClC;IAEJ,AADF,iCAA0B,mBACmC;IAAnD,wLAAS,uBAAgB,KAAC;IAAyB,uBAAM;IAAA,iBAAS;IAC1E,oCAAmF;IAA3E,wLAAS,wBAAiB,KAAC;IACjC,mGAAkB;IAGlB,aACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACF,EACF;;;IAvBI,eAA+D;IAA/D,2FAA+D;IAQjE,eAAyB;IAAzB,kDAAyB;IACzB,4CAAuB;IAKU,eAAuB;IAAvB,4CAAuB;IACtB,eAA8C;IAA9C,0EAA8C;IAChF,cAEC;IAFD,6CAEC;IACD,cACF;IADE,6EACF;;;IA6BI,wBAA2C;;;;IArBrD,gCAAoD;IAAzB,oLAAS,qBAAc,KAAC;IACjD,gCAA6D;IAAnC,uJAAS,wBAAwB,KAAC;IAExD,AADF,gCAA0B,SACpB;IAAA,YAA2D;IAAA,iBAAK;IACpE,mCAAqD;IAAzB,uLAAS,qBAAc,KAAC;IAClD,wBAAiC;IAErC,AADE,iBAAS,EACL;IAEJ,AADF,gCAAwB,QACnB;IAAA,yBAAS;IAAA,+BAAQ;IAAA,aAAqB;IAAS,AAAT,iBAAS,EAAI;IACtD,8BAAO;IAAA,kCAAiB;IAAA,iBAAQ;IAChC,mCAIoC;IAHlC,kUAAiC;IAGjC,uMAAiB,sBAAe,KAAC;IACrC,AALE,iBAIoC,EAChC;IAEJ,AADF,iCAA0B,mBACgC;IAAhD,wLAAS,qBAAc,KAAC;IAAwB,uBAAM;IAAA,iBAAS;IACvE,oCAAwF;IAAhF,wLAAS,sBAAe,KAAC;IAC/B,mGAAiB;IAGjB,aACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACF,EACF;;;IAxBI,eAA2D;IAA3D,uFAA2D;IAM3C,eAAqB;IAArB,4CAAqB;IAGvC,eAAiC;IAAjC,0DAAiC;IACjC,2CAAsB;IAKS,eAAsB;IAAtB,2CAAsB;IACrB,eAAqD;IAArD,iFAAqD;IACrF,cAEC;IAFD,4CAEC;IACD,cACF;IADE,yEACF;;;IAgCI,wBAA2C;;;;IAxBrD,gCAAoD;IAAzB,oLAAS,qBAAc,KAAC;IACjD,gCAA6D;IAAnC,uJAAS,wBAAwB,KAAC;IAExD,AADF,gCAA0B,SACpB;IAAA,YAA2D;IAAA,iBAAK;IACpE,mCAAqD;IAAzB,uLAAS,qBAAc,KAAC;IAClD,wBAAiC;IAErC,AADE,iBAAS,EACL;IAEJ,AADF,gCAAwB,QACnB;IAAA,wBAAQ;IAAA,+BAAQ;IAAA,aAAqB;IAAS,AAAT,iBAAS,EAAI;IACrD,8BAAO;IAAA,yCAAwB;IAAA,iBAAQ;IACvC,mCAIoC;IAHlC,kUAAiC;IAGjC,uMAAiB,sBAAe,KAAC;IAJnC,iBAIoC;IACpC,+BAA0D;IACxD,aACF;IACF,AADE,iBAAI,EACA;IAEJ,AADF,iCAA0B,mBAC+B;IAA/C,wLAAS,qBAAc,KAAC;IAAuB,uBAAM;IAAA,iBAAS;IACtE,oCAAuF;IAA/E,wLAAS,sBAAe,KAAC;IAC/B,mGAAgB;IAGhB,aACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACF,EACF;;;IA3BI,eAA2D;IAA3D,uFAA2D;IAM5C,eAAqB;IAArB,4CAAqB;IAGtC,eAAiC;IAAjC,0DAAiC;IACjC,0CAAqB;IAIrB,eACF;IADE,8GACF;IAGiC,eAAqB;IAArB,0CAAqB;IACpB,eAAoD;IAApD,gFAAoD;IACpF,cAEC;IAFD,2CAEC;IACD,cACF;IADE,uEACF;;;;IAyBM,AADF,gCAAmC,iBAKmB;IAAlD,wNAAU,iDAAsC,KAAC;IAJnD,iBAIoD;IACpD,kCAA8C;IAC5C,YAAqB;IAAA,iCAA6B;IAAA,YAAqB;IAE3E,AADE,AADyE,iBAAO,EACxE,EACJ;;;;IAPF,cAAqC;IAErC,AADA,AADA,uDAAqC,kEACiB,uCACvB;IAE1B,cAAsC;IAAtC,wDAAsC;IAC3C,cAAqB;IAArB,mDAAqB;IAA6B,eAAqB;IAArB,yCAAqB;;;IAY7E,gCAA2B;IACzB,wBAA2C;IAC3C,YACF;IAAA,iBAAM;;;IADJ,eACF;IADE,gLACF;;;IAQE,wBAA2C;;;;IA9CrD,gCAA6D;IAAlC,oLAAS,8BAAuB,KAAC;IAC1D,gCAA6D;IAAnC,uJAAS,wBAAwB,KAAC;IAExD,AADF,gCAA0B,SACpB;IAAA,uCAAuB;IAAA,iBAAK;IAChC,mCAA8D;IAAlC,uLAAS,8BAAuB,KAAC;IAC3D,wBAAiC;IAErC,AADE,iBAAS,EACL;IAEJ,AADF,gCAAwB,QACnB;IAAA,yBAAS;IAAA,+BAAQ;IAAA,aAA+B;IAAS,AAAT,iBAAS,EAAI;IAChE,+BAA8D;IAC5D,wBAAM;IAAA,+BAAQ;IAAA,aAA4B;IAC5C,AAD4C,iBAAS,EACjD;IACJ,8BAAO;IAAA,+CAA8B;IAAA,iBAAQ;IAC7C,iCAAmC;IACjC,yHAWC;IACH,iBAAM;IACN,mCAAiC;IAAA,sCAAqB;IAAA,iBAAQ;IAC9D,mCAI6C;IAH3C,oVAA0C;IAG1C,uMAAiB,+BAAwB,KAAC;IAJ5C,iBAI6C;IAC7C,sGAA6B;IAM/B,iBAAM;IAEJ,AADF,iCAA0B,mBACkD;IAAlE,wLAAS,8BAAuB,KAAC;IAAiC,uBAAM;IAAA,iBAAS;IACzF,oCACoH;IAD5G,wLAAS,+BAAwB,KAAC;IAExC,mGAA0B;IAG1B,aACF;IAGN,AADE,AADE,AADE,iBAAS,EACL,EACF,EACF;;;IA3CoB,gBAA+B;IAA/B,sDAA+B;IAEnC,eAA4B;IAA5B,yHAA4B;IAI1C,eAWC;IAXD,uCAWC;IAID,eAA0C;IAA1C,mEAA0C;IAC1C,oDAA+B;IAGjC,cAKC;IALD,wDAKC;IAGyC,eAA+B;IAA/B,oDAA+B;IAEvE,eAAiH;IAAjH,oJAAiH;IACjH,cAEC;IAFD,qDAEC;IACD,cACF;IADE,0MACF;;ADtiBV;;;;GAIG;AAOH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACM,OAAO,GAAsC,IAAI,CAAC;IAE3D;;OAEG;IACM,UAAU,GAAW,EAAE,CAAC;IAEjC;;OAEG;IACO,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;IAEtD;;;OAGG;IACO,sBAAsB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAE5D;;OAEG;IACI,KAAK,GAAmB,EAAE,CAAC;IAElC;;OAEG;IACI,aAAa,GAAa,EAAE,CAAC;IAEpC;;OAEG;IACI,SAAS,GAAY,KAAK,CAAC;IAElC;;OAEG;IACI,YAAY,GAAkB,IAAI,CAAC;IAE1C;;OAEG;IACI,QAAQ,GAAoB,MAAM,CAAC;IAE1C;;OAEG;IACI,IAAI,GAAmD;QAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;KAC9B,CAAC;IAEF;;OAEG;IACI,WAAW,GAAW,EAAE,CAAC;IAEhC;;OAEG;IACI,cAAc,GAAgC,KAAK,CAAC;IAE3D;;OAEG;IACI,aAAa,GAAmB,EAAE,CAAC;IAE1C;;OAEG;IACI,UAAU,GAAY,KAAK,CAAC;IAEnC;;OAEG;IACI,WAAW,GAAY,KAAK,CAAC;IAC7B,cAAc,GAAW,CAAC,CAAC;IAC3B,iBAAiB,GAAW,EAAE,CAAC;IAEtC;;OAEG;IACI,mBAAmB,GAAY,KAAK,CAAC;IACrC,aAAa,GAAW,EAAE,CAAC;IAC3B,gBAAgB,GAAY,KAAK,CAAC;IAEzC;;OAEG;IACI,gBAAgB,GAAY,KAAK,CAAC;IAClC,YAAY,GAAwB,IAAI,CAAC;IACzC,UAAU,GAAY,KAAK,CAAC;IAEnC;;OAEG;IACI,gBAAgB,GAAY,KAAK,CAAC;IAClC,YAAY,GAAwB,IAAI,CAAC;IACzC,WAAW,GAAW,EAAE,CAAC;IACzB,UAAU,GAAY,KAAK,CAAC;IAEnC;;OAEG;IACI,cAAc,GAAY,KAAK,CAAC;IAChC,UAAU,GAAwB,IAAI,CAAC;IACvC,mBAAmB,GAAW,EAAE,CAAC;IACjC,SAAS,GAAY,KAAK,CAAC;IAElC;;OAEG;IACI,cAAc,GAAY,KAAK,CAAC;IAChC,UAAU,GAAwB,IAAI,CAAC;IACvC,mBAAmB,GAAW,EAAE,CAAC;IACjC,QAAQ,GAAY,KAAK,CAAC;IAEjC;;OAEG;IACI,wBAAwB,GAAY,KAAK,CAAC;IAC1C,oBAAoB,GAAwB,IAAI,CAAC;IACjD,iBAAiB,GAAiC,EAAE,CAAC;IACrD,2BAA2B,GAAgB,IAAI,GAAG,EAAE,CAAC;IACrD,4BAA4B,GAAW,EAAE,CAAC;IAC1C,kBAAkB,GAAY,KAAK,CAAC;IACpC,qBAAqB,GAAsE,IAAI,CAAC;IAEvG;;OAEG;IACI,yBAAyB,GAAY,KAAK,CAAC;IAC3C,wBAAwB,GAAW,EAAE,CAAC;IACtC,uBAAuB,GAAgB,IAAI,GAAG,EAAE,CAAC;IACjD,WAAW,GAAY,KAAK,CAAC;IAC7B,0BAA0B,GAAqC,IAAI,CAAC;IAE3E;;OAEG;IACK,aAAa,CAA2B;IAEhD;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,QAAQ;QACN,mEAAmE;IACrE,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,oDAAoD;QACpD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxG,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAElG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CACrD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,IAAI,CAAC,UAAU,IAAI,EAAE,EACrB,GAAG,CACJ,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,UAAU,CAAC,CAAC;YAE1D,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAEhB,gEAAgE;YAChE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACzC,+CAA+C;oBAC/C,oEAAoE;oBACpE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACrC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;wBACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBAE5B,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;4BACd,GAAG,EAAE,MAAM;4BACX,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC;4BACP,YAAY,EAAE,IAAI,IAAI,EAAE;4BACxB,WAAW,EAAE,yBAAyB;yBACvC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACrC,sEAAsE;oBACtE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;wBACpB,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACd,GAAG,EAAE,GAAG,CAAC,QAAQ;wBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,sBAAsB,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,yBAAyB;QACzB,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;YACpC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,KAAa;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,UAAuC;QACnE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACjC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,KAAa;QACjC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE9B,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,IAAU;QAC1B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAkB;QACnC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAElE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,sBAAsB,CAAC;QAChC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,uBAAuB,CAAC;QACjC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,6BAA6B,CAAC;QACvC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,OAAO,yBAAyB,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/F,OAAO,uBAAuB,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,kBAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,YAAsB;QAC7C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAkB,EAAE,KAAiB;QACtD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,gCAAgC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,qDAAqD;YACrD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;YACrE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,IAAkB;QACzC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,mDAAmD;YACnD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,IAAkB;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,CACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,IAAI,CAAC,GAAG,CACT,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEpF,IAAI,WAAW,EAAE,CAAC;gBAChB,2BAA2B;gBAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,8BAA8B;gBACtD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAEhC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACvD,IAAI,CAAC,YAAY,GAAG,iCAAiC,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,4BAA4B,YAAY,EAAE,CAAC;YAE/D,8BAA8B;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,kBAAkB;YAClB,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAEpB,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,sBAAsB;QAEtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,2DAA2D;QAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC;IAC3D,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,IAAoD;QACtE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAkB;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAElE,MAAM,OAAO,GAA2B;YACtC,YAAY;YACZ,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,eAAe;YACpB,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,mBAAmB;YACzB,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,WAAW;YAEhB,SAAS;YACT,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,WAAW;YAEhB,WAAW;YACX,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,aAAa;YAClB,EAAE,EAAE,cAAc;YAElB,QAAQ;YACR,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,iBAAiB;YACtB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAEhB,OAAO;YACP,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,KAAK;YACV,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,KAAK;SACX,CAAC;QAEF,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;QACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;YAChD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QACF,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAgB;QACjC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAgB;QAChC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAgB;QACjC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,gEAAgE;QAChE,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAgB;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;QACxC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,KAAa;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,IAAU,EAAE,OAAe,EAAE,KAAa;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,GAAG,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAExB,IAAI,CAAC;YACH,kDAAkD;YAClD,gEAAgE;YAChE,IAAI,UAAkB,CAAC;YACvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;gBACpB,UAAU,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,UAAU,CAAC,CAAC;YAE9D,mCAAmC;YACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAChE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,UAAU,EACV,IAAI,CAAC,IAAI,IAAI,0BAA0B,CACxC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YAEhE,yDAAyD;YACzD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YAEvD,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAE9E,wGAAwG;YACxG,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,YAAY,GAAG,4BAA4B,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,cAAc,0CAA0C,CAAC;YACzI,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,oBAAoB,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvE,CAAC;YAED,8BAA8B;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBAC/G,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,IAAU,EAAE,GAAW;QAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;YAEjC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBAChC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC1C,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,wEAAwE;YACxE,sCAAsC;YACtC,sDAAsD;YACtD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC;YACH,iCAAiC;YACjC,gEAAgE;YAChE,IAAI,UAAkB,CAAC;YACvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;gBACpB,UAAU,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACzC,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YAEvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CACtD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,UAAU,CACX,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,UAAU,CAAC,CAAC;gBAEnE,2BAA2B;gBAC3B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,8CAA8C;gBAC9C,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBAEnC,wBAAwB;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,4BAA4B,YAAY,EAAE,CAAC;YAE/D,8BAA8B;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,mDAAmD;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CACnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,QAAQ,CACT,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEtD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,QAAQ,CAAC,CAAC;gBAE/D,8DAA8D;gBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAEtD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;oBACtC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;oBAC5B,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;oBAC5B,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;oBAC1B,SAAS;iBACV,CAAC,CAAC;gBAEH,eAAe;gBACf,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAEzB,kBAAkB;gBAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,sEAAsE;gBACtE,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;oBAChE,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBACrC,CAAC;gBAED,wBAAwB;gBACxB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC5D,IAAI,CAAC,YAAY,GAAG,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,qBAAqB,YAAY,EAAE,CAAC;YAExD,8BAA8B;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,mDAAmD;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1D,iEAAiE;YACjE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEpC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,OAAO,EACP,OAAO,CACR,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEtD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAE3E,8DAA8D;gBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAEtD,eAAe;gBACf,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBAEtB,kBAAkB;gBAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,sEAAsE;gBACtE,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;oBAChE,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBACrC,CAAC;gBAED,wBAAwB;gBACxB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC5D,IAAI,CAAC,YAAY,GAAG,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,qBAAqB,YAAY,EAAE,CAAC;YAExD,8BAA8B;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe;QAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,gDAAgD,CAAC;YACrE,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE9C,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,QAAQ,CAAC,CAAC;YAE/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,CACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,QAAQ,CACT,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;gBAEpE,wDAAwD;gBACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,+BAA+B,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,uBAAuB,YAAY,EAAE,CAAC;YAE1D,8BAA8B;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,UAAU,EACV,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAChC,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,eAAe;gBACf,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBAE9B,kBAAkB;gBAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,wBAAwB;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,mBAAmB,YAAY,EAAE,CAAC;YAEtD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,kCAAkC;QAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC5D,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;gBACxD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAEpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,UAAU,EACV,QAAQ,CACT,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAEpD,eAAe;gBACf,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBAE9B,kBAAkB;gBAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBAExB,oEAAoE;gBACpE,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBACrC,CAAC;gBAED,wBAAwB;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,mBAAmB,YAAY,EAAE,CAAC;YAEtD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAkB;QAC1C,2CAA2C;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,IAAI,CAAC,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QAC/B,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;QAED,gDAAgD;QAChD,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAEpB,kCAAkC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,IAAI,CAAC,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,GAAG,oBAAoB,IAAI,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC7E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC1C,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,+BAA+B;YAE5D,uDAAuD;YACvD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,qBAAqB;iBAClD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;gBAC1D,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;wBAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,2BAA2B;YAC1E,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QAEvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,iCAAiC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACI,qBAAqB;QAC1B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,wBAAwB,CAAC,SAAiB;QAC/C,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACI,4BAA4B,CAAC,SAAiB;QACnD,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB;QACjC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/F,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAE/B,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACzD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CACnD,CAAC;QAEF,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,YAAY,GAAyC,EAAE,CAAC;QAE9D,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;YAEzG,gCAAgC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,qBAAqB,GAAG;oBAC3B,OAAO,EAAE,CAAC,GAAG,CAAC;oBACd,KAAK,EAAE,gBAAgB,CAAC,MAAM;oBAC9B,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;iBACzC,CAAC;gBAEF,IAAI,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAExE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,WAAW,CAAC,OAAO,CAAC,EAAE,EACtB,UAAU,EACV,IAAI,CAAC,4BAA4B,CAClC,CAAC;oBAEF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACvB,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACN,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC9E,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,eAAe;YACf,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,0BAA0B,gBAAgB,CAAC,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3J,CAAC;iBAAM,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,YAAY,GAAG,iCAAiC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,aAAa,gBAAgB,CAAC,MAAM,wBAAwB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChI,CAAC;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACxF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,eAAe;YACf,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAEpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,gBAAgB,YAAY,EAAE,CAAC;YAEnD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,+BAA+B;IAC/B,6CAA6C;IAE7C;;OAEG;IACI,4BAA4B;QACjC,IAAI,CAAC,yBAAyB,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAEjE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACnC,gDAAgD;YAChD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACxC,CAAC;YACD,0CAA0C;YAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gDAAgD;YAChD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,8BAA8B;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC1C,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,+BAA+B;YAC5D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,SAAiB;QAC1C,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,0BAA0B,CAAC,SAAiB;QACjD,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,mBAA+C;QAC1E,OAAO,mBAAmB,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC;IAC9D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,yBAAyB;QACpC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE;gBACxD,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;gBACpD,KAAK,EAAE,IAAI,CAAC,wBAAwB;aACrC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,EACxC,IAAI,CAAC,wBAAwB,EAC7B,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAC7B,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAC;YAErE,2DAA2D;YAC3D,IAAI,CAAC,0BAA0B,GAAG;gBAChC,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAmV,EAAE,EAAE,CAAC,CAAC;oBACxY,SAAS,EAAE,EAAE,CAAC,SAAS;oBACvB,WAAW,EAAE,EAAE,CAAC,WAAW;oBAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,YAAY,EAAE,EAAE,CAAC,YAAY;oBAC7B,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAA4K,EAAE,EAAE,CAAC,CAAC;wBACzM,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;wBAC1C,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC;oBACH,YAAY,EAAE,EAAE,CAAC,YAAY;oBAC7B,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,aAAa,EAAE,EAAE,CAAC,aAAa;iBAChC,CAAC,CAAC;gBACH,oBAAoB,EAAE,YAAY,CAAC,oBAAoB;gBACvD,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;gBACnD,cAAc,EAAE,YAAY,CAAC,cAAc;aAC5C,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,kCAAkC,CAAC;YACvD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,YAAY,KAAK,kCAAkC,EAAE,CAAC;oBAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,wBAAwB;QAC7B,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,MAA4B;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAEpE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,sBAAsB,CAAC;QAChC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,uBAAuB,CAAC;QACjC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,6BAA6B,CAAC;QACvC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,OAAO,yBAAyB,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,kBAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,OAAe;QAC3C,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;2GA9mDU,iBAAiB;6DAAjB,iBAAiB;YCnE9B,8BAI0B;YAAxB,AADA,AADA,AADA,yGAAa,uBAAmB,IAAC,0FACrB,sBAAkB,IAAC,4FAClB,uBAAmB,IAAC,kFACzB,kBAAc,IAAC;YAEvB,oFAAmC;YAkDnC,oFAAiC;YA0H/B,mFAA+C;YAO/C,mFAAkC;YAclC,qFAAsF;YAyDtF,mFAAsF;YA0BtF,mFAAiE;YAcjE,qFAAmC;YAyEnC,mFAAkB;YAYlB,uFAAmB;YAcrB,iBAAM;YAGN,uFAA2B;YA+B3B,uFAAwC;YA6BxC,uFAAwC;YA+BxC,uFAAoC;YAgCpC,wFAAoC;YAmCpC,uFAAwD;;YAtiBxD,cA+CC;YA/CD,8DA+CC;YAGD,cAuHG;YAvHH,wDAuHG;YAGD,cAIC;YAJD,0EAIC;YAGD,cAWC;YAXD,6DAWC;YAGD,cAsDC;YAtDD,yHAsDC;YAGD,cAuBC;YAvBD,yHAuBC;YAGD,cAWC;YAXD,gGAWC;YAGD,cAsEC;YAtED,8DAsEC;YAGD,cASC;YATD,yCASC;YAGD,cAaC;YAbD,2CAaC;YAIH,cA4BC;YA5BD,mDA4BC;YAGD,cA0BC;YA1BD,oEA0BC;YAGD,cA4BC;YA5BD,oEA4BC;YAGD,cA6BC;YA7BD,gEA6BC;YAGD,cAgCC;YAhCD,gEAgCC;YAGD,cAsDC;YAtDD,oFAsDC;;;iFD/hBU,iBAAiB;cAN7B,SAAS;6BACI,KAAK,YACP,cAAc;;kBAQvB,KAAK;;kBAKL,KAAK;;kBAKL,MAAM;;kBAMN,MAAM;;kFApBI,iBAAiB","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { GraphQLDataProvider, GraphQLFileStorageClient } from '@memberjunction/graphql-dataprovider';\nimport { FileStorageEngine, StorageAccountWithProvider } from '@memberjunction/core-entities';\n\n/**\n * Represents a file or folder item in the grid\n */\nexport interface FileGridItem {\n key: string;\n name: string;\n type: 'file' | 'folder';\n size: number;\n lastModified: Date;\n contentType?: string;\n etag?: string;\n}\n\n/**\n * Result from a single provider's search\n */\nexport interface FileSearchResultItem {\n path: string;\n name: string;\n size: number;\n contentType: string;\n lastModified: string;\n relevance?: number;\n excerpt?: string;\n matchInFilename?: boolean;\n objectId?: string;\n}\n\n/**\n * Search results from a single account\n */\nexport interface AccountSearchResult {\n accountID: string;\n accountName: string;\n success: boolean;\n errorMessage?: string;\n results: FileSearchResultItem[];\n totalMatches?: number;\n hasMore: boolean;\n nextPageToken?: string;\n}\n\n/**\n * Aggregated search results from multiple accounts\n */\nexport interface MultiProviderSearchResult {\n accountResults: AccountSearchResult[];\n totalResultsReturned: number;\n successfulAccounts: number;\n failedAccounts: number;\n}\n\n/**\n * Displays files and folders in a grid/list view.\n * Shows file metadata like name, size, type, and last modified date.\n * Supports file selection and navigation to folders.\n */\n@Component({\n standalone: false,\n selector: 'mj-file-grid',\n templateUrl: './file-grid.component.html',\n styleUrls: ['./file-grid.component.css']\n})\nexport class FileGridComponent implements OnInit, OnChanges {\n /**\n * The storage account to list files from (includes provider details)\n */\n @Input() account: StorageAccountWithProvider | null = null;\n\n /**\n * The current folder path to display\n */\n @Input() folderPath: string = '';\n\n /**\n * Emits when a folder is double-clicked for navigation\n */\n @Output() folderNavigate = new EventEmitter<string>();\n\n /**\n * Emits when the folder structure has changed (e.g., new folder created)\n * This signals that the folder tree should refresh\n */\n @Output() folderStructureChanged = new EventEmitter<void>();\n\n /**\n * List of files and folders in the current directory\n */\n public items: FileGridItem[] = [];\n\n /**\n * Currently selected item keys in the grid (Kendo stores keys, not full objects)\n */\n public selectedItems: string[] = [];\n\n /**\n * Loading state indicator\n */\n public isLoading: boolean = false;\n\n /**\n * Error message if loading fails\n */\n public errorMessage: string | null = null;\n\n /**\n * View mode: 'grid' or 'list'\n */\n public viewMode: 'grid' | 'list' = 'list';\n\n /**\n * Sort configuration for the grid\n */\n public sort: Array<{ field: string; dir?: 'asc' | 'desc' }> = [\n { field: 'name', dir: 'asc' }\n ];\n\n /**\n * Search query for filtering files/folders\n */\n public searchQuery: string = '';\n\n /**\n * File type filter ('all', 'files', 'folders')\n */\n public fileTypeFilter: 'all' | 'files' | 'folders' = 'all';\n\n /**\n * Filtered list of items based on search and filter criteria\n */\n public filteredItems: FileGridItem[] = [];\n\n /**\n * Drag-and-drop state\n */\n public isDragging: boolean = false;\n\n /**\n * Upload progress state\n */\n public isUploading: boolean = false;\n public uploadProgress: number = 0;\n public uploadingFileName: string = '';\n\n /**\n * New folder dialog state\n */\n public showNewFolderDialog: boolean = false;\n public newFolderName: string = '';\n public isCreatingFolder: boolean = false;\n\n /**\n * Delete confirmation dialog state\n */\n public showDeleteDialog: boolean = false;\n public itemToDelete: FileGridItem | null = null;\n public isDeleting: boolean = false;\n\n /**\n * Rename dialog state\n */\n public showRenameDialog: boolean = false;\n public itemToRename: FileGridItem | null = null;\n public newItemName: string = '';\n public isRenaming: boolean = false;\n\n /**\n * Copy dialog state\n */\n public showCopyDialog: boolean = false;\n public itemToCopy: FileGridItem | null = null;\n public copyDestinationPath: string = '';\n public isCopying: boolean = false;\n\n /**\n * Move dialog state\n */\n public showMoveDialog: boolean = false;\n public itemToMove: FileGridItem | null = null;\n public moveDestinationPath: string = '';\n public isMoving: boolean = false;\n\n /**\n * Copy to provider dialog state\n */\n public showCopyToProviderDialog: boolean = false;\n public itemToCopyToProvider: FileGridItem | null = null;\n public availableAccounts: StorageAccountWithProvider[] = [];\n public selectedDestinationAccounts: Set<string> = new Set();\n public copyToAccountDestinationPath: string = '';\n public isCopyingToAccount: boolean = false;\n public copyToAccountProgress: { current: number; total: number; currentAccount: string } | null = null;\n\n /**\n * Multi-provider search state\n */\n public isMultiProviderSearchMode: boolean = false;\n public multiProviderSearchQuery: string = '';\n public selectedSearchProviders: Set<string> = new Set();\n public isSearching: boolean = false;\n public multiProviderSearchResults: MultiProviderSearchResult | null = null;\n\n /**\n * GraphQL client for file storage operations\n */\n private storageClient: GraphQLFileStorageClient;\n\n constructor() {\n this.storageClient = new GraphQLFileStorageClient(GraphQLDataProvider.Instance);\n }\n\n ngOnInit(): void {\n // Don't load items here - wait for ngOnChanges when inputs are set\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Reload items when provider or folder path changes\n if (changes['account'] || changes['folderPath']) {\n this.loadItems();\n }\n }\n\n /**\n * Loads files and folders from the current path\n */\n private async loadItems(): Promise<void> {\n if (!this.account) {\n this.items = [];\n return;\n }\n\n const previousItemCount = this.items.length;\n const previousItemNames = this.items.map(i => i.name);\n\n this.isLoading = true;\n this.errorMessage = null;\n\n try {\n console.log('[FileGrid] Loading items for account:', this.account.account.ID, 'path:', this.folderPath);\n console.log('[FileGrid] Previous items:', { count: previousItemCount, names: previousItemNames });\n\n const listResult = await this.storageClient.ListObjects(\n this.account.account.ID,\n this.folderPath || '',\n '/'\n );\n\n console.log('[FileGrid] ListObjects result:', listResult);\n\n this.items = [];\n\n // Add folders from prefixes first (so they appear before files)\n if (listResult.prefixes) {\n for (const prefix of listResult.prefixes) {\n // Extract the folder name from the prefix path\n // Prefix comes as \"path/to/folder/\" so we need to get just \"folder\"\n const folderName = prefix.endsWith('/')\n ? prefix.slice(0, -1).split('/').pop()\n : prefix.split('/').pop();\n\n if (folderName) {\n this.items.push({\n key: prefix,\n name: folderName,\n type: 'folder',\n size: 0,\n lastModified: new Date(),\n contentType: 'application/x-directory'\n });\n }\n }\n }\n\n // Add files from objects\n if (listResult.objects) {\n for (const obj of listResult.objects) {\n // Skip directories from objects - we already added them from prefixes\n if (obj.isDirectory) {\n continue;\n }\n\n this.items.push({\n key: obj.fullPath,\n name: obj.name,\n type: 'file',\n size: obj.size,\n lastModified: obj.lastModified,\n contentType: obj.contentType,\n etag: obj.etag\n });\n }\n }\n\n } catch (error) {\n this.errorMessage = 'Failed to load files';\n console.error('[FileGrid] Error loading files:', error);\n } finally {\n this.isLoading = false;\n }\n\n // Apply filters after loading\n this.applyFilters();\n }\n\n /**\n * Applies search and filter criteria to the items list\n */\n private applyFilters(): void {\n let filtered = [...this.items];\n\n // Apply file type filter\n if (this.fileTypeFilter === 'files') {\n filtered = filtered.filter(item => item.type === 'file');\n } else if (this.fileTypeFilter === 'folders') {\n filtered = filtered.filter(item => item.type === 'folder');\n }\n\n // Apply search query\n if (this.searchQuery.trim()) {\n const query = this.searchQuery.toLowerCase();\n filtered = filtered.filter(item =>\n item.name.toLowerCase().includes(query)\n );\n }\n\n this.filteredItems = filtered;\n }\n\n /**\n * Handles search query changes\n */\n public onSearchChange(query: string): void {\n this.searchQuery = query;\n this.applyFilters();\n }\n\n /**\n * Clears the search query\n */\n public clearSearch(): void {\n this.searchQuery = '';\n this.applyFilters();\n }\n\n /**\n * Handles file type filter changes\n */\n public onFileTypeFilterChange(filterType: 'all' | 'files' | 'folders'): void {\n this.fileTypeFilter = filterType;\n this.applyFilters();\n }\n\n /**\n * Formats a file size in bytes to a human-readable string\n */\n public formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];\n }\n\n /**\n * Formats a date to a readable string\n */\n public formatDate(date: Date): string {\n return date.toLocaleString();\n }\n\n /**\n * Gets the icon class for a file or folder\n */\n public getItemIcon(item: FileGridItem): string {\n if (!item || !item.name) {\n return 'fa-solid fa-file';\n }\n\n if (item.type === 'folder') {\n return 'fa-solid fa-folder';\n }\n\n // Determine file icon based on content type or extension\n const extension = item.name.split('.').pop()?.toLowerCase() || '';\n\n if (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg'].includes(extension)) {\n return 'fa-solid fa-file-image';\n } else if (['pdf'].includes(extension)) {\n return 'fa-solid fa-file-pdf';\n } else if (['doc', 'docx'].includes(extension)) {\n return 'fa-solid fa-file-word';\n } else if (['xls', 'xlsx'].includes(extension)) {\n return 'fa-solid fa-file-excel';\n } else if (['ppt', 'pptx'].includes(extension)) {\n return 'fa-solid fa-file-powerpoint';\n } else if (['zip', 'rar', '7z', 'tar', 'gz'].includes(extension)) {\n return 'fa-solid fa-file-zipper';\n } else if (['mp4', 'avi', 'mov', 'wmv'].includes(extension)) {\n return 'fa-solid fa-file-video';\n } else if (['mp3', 'wav', 'ogg', 'flac'].includes(extension)) {\n return 'fa-solid fa-file-audio';\n } else if (['txt', 'log'].includes(extension)) {\n return 'fa-solid fa-file-lines';\n } else if (['js', 'ts', 'html', 'css', 'json', 'xml', 'py', 'java', 'cpp'].includes(extension)) {\n return 'fa-solid fa-file-code';\n } else {\n return 'fa-solid fa-file';\n }\n }\n\n /**\n * Handles item selection change (not used - Kendo handles selection internally)\n */\n public onSelectionChange(selectedKeys: string[]): void {\n this.selectedItems = selectedKeys;\n }\n\n /**\n * Handles tile click in grid view for selection\n */\n public onTileClick(item: FileGridItem, event: MouseEvent): void {\n if (event.ctrlKey || event.metaKey) {\n // Multi-select: toggle item key\n const index = this.selectedItems.indexOf(item.key);\n if (index >= 0) {\n this.selectedItems.splice(index, 1);\n } else {\n this.selectedItems.push(item.key);\n }\n } else if (event.shiftKey && this.selectedItems.length > 0) {\n // Range select: select from last selected to current\n const lastSelectedKey = this.selectedItems[this.selectedItems.length - 1];\n const lastSelected = this.items.find(i => i.key === lastSelectedKey);\n if (lastSelected) {\n const lastIndex = this.items.indexOf(lastSelected);\n const currentIndex = this.items.indexOf(item);\n const start = Math.min(lastIndex, currentIndex);\n const end = Math.max(lastIndex, currentIndex);\n this.selectedItems = this.items.slice(start, end + 1).map(i => i.key);\n }\n } else {\n // Single select: replace selection\n this.selectedItems = [item.key];\n }\n }\n\n /**\n * Handles double-click on an item\n * For folders, navigate into them. For files, open/download them.\n */\n public onItemDoubleClick(item: FileGridItem): void {\n if (item.type === 'folder') {\n // Navigate into folder by emitting the folder path\n console.log('[FileGrid] Navigating to folder:', item.key);\n this.folderNavigate.emit(item.key);\n } else {\n // Download file\n this.downloadFile(item);\n }\n }\n\n /**\n * Downloads a file by creating a pre-authenticated download URL\n */\n private async downloadFile(item: FileGridItem): Promise<void> {\n if (!this.account) {\n return;\n }\n\n try {\n console.log('[FileGrid] Downloading file:', item.key);\n\n const downloadUrl = await this.storageClient.CreatePreAuthDownloadUrl(\n this.account.account.ID,\n item.key\n );\n\n console.log('[FileGrid] Download URL created:', downloadUrl ? 'success' : 'failed');\n\n if (downloadUrl) {\n // Trigger browser download\n const link = document.createElement('a');\n link.href = downloadUrl;\n link.download = item.name;\n link.target = '_blank'; // Open in new tab as fallback\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n console.log('[FileGrid] File download initiated:', item.name);\n } else {\n console.error('[FileGrid] Failed to get download URL');\n this.errorMessage = 'Failed to generate download URL';\n }\n } catch (error) {\n console.error('[FileGrid] Error downloading file:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to download file: ${errorMessage}`;\n\n // Clear error after 5 seconds\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to download')) {\n this.errorMessage = null;\n }\n }, 5000);\n }\n }\n\n /**\n * Toggles between grid and list view\n */\n public toggleViewMode(): void {\n this.viewMode = this.viewMode === 'grid' ? 'list' : 'grid';\n }\n\n /**\n * Refreshes the current directory\n */\n public refresh(): void {\n this.loadItems();\n }\n\n /**\n * Navigates up to the parent directory\n */\n public navigateUp(): void {\n if (!this.folderPath) {\n // Already at root\n return;\n }\n\n // Remove trailing slash if present\n const cleanPath = this.folderPath.endsWith('/')\n ? this.folderPath.slice(0, -1)\n : this.folderPath;\n\n // Get parent path by removing last segment\n const segments = cleanPath.split('/').filter(s => s.length > 0);\n segments.pop(); // Remove last segment\n\n const parentPath = segments.length > 0 ? segments.join('/') + '/' : '';\n\n // Emit navigation event to update the folder tree and path\n this.folderNavigate.emit(parentPath);\n }\n\n /**\n * Checks if we can navigate up (not at root)\n */\n public canNavigateUp(): boolean {\n return this.folderPath !== '' && this.folderPath !== '/';\n }\n\n /**\n * Handles sort change event from the grid\n */\n public onSortChange(sort: Array<{ field: string; dir?: 'asc' | 'desc' }>): void {\n this.sort = sort;\n }\n\n /**\n * Gets a human-readable file type based on extension\n */\n public getFileType(item: FileGridItem): string {\n if (item.type === 'folder') {\n return 'Folder';\n }\n\n const extension = item.name.split('.').pop()?.toLowerCase() || '';\n\n const typeMap: Record<string, string> = {\n // Documents\n pdf: 'PDF Document',\n doc: 'Word Document',\n docx: 'Word Document',\n xls: 'Excel Spreadsheet',\n xlsx: 'Excel Spreadsheet',\n ppt: 'PowerPoint',\n pptx: 'PowerPoint',\n txt: 'Text File',\n\n // Images\n jpg: 'JPEG Image',\n jpeg: 'JPEG Image',\n png: 'PNG Image',\n gif: 'GIF Image',\n bmp: 'Bitmap Image',\n svg: 'SVG Image',\n\n // Archives\n zip: 'ZIP Archive',\n rar: 'RAR Archive',\n '7z': '7-Zip Archive',\n tar: 'TAR Archive',\n gz: 'GZIP Archive',\n\n // Media\n mp4: 'MP4 Video',\n avi: 'AVI Video',\n mov: 'QuickTime Video',\n mp3: 'MP3 Audio',\n wav: 'WAV Audio',\n\n // Code\n js: 'JavaScript',\n ts: 'TypeScript',\n html: 'HTML',\n css: 'CSS',\n json: 'JSON',\n xml: 'XML',\n py: 'Python',\n java: 'Java',\n cpp: 'C++'\n };\n\n return typeMap[extension] || `${extension.toUpperCase()} File`;\n }\n\n /**\n * Handles upload button click - triggers file input\n */\n public onUploadClick(): void {\n const fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.multiple = true;\n fileInput.onchange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n if (target.files && target.files.length > 0) {\n this.uploadFiles(Array.from(target.files));\n }\n };\n fileInput.click();\n }\n\n /**\n * Handles drag enter event\n */\n public onDragEnter(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n /**\n * Handles drag over event\n */\n public onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * Handles drag leave event\n */\n public onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // Only hide if leaving the container itself, not child elements\n if (event.currentTarget === event.target) {\n this.isDragging = false;\n }\n }\n\n /**\n * Handles drop event\n */\n public onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n\n const files = event.dataTransfer?.files;\n if (files && files.length > 0) {\n this.uploadFiles(Array.from(files));\n }\n }\n\n /**\n * Uploads multiple files to the current folder\n */\n private async uploadFiles(files: File[]): Promise<void> {\n if (!this.account) {\n return;\n }\n\n console.log('[FileGrid] Uploading files:', files.map(f => f.name));\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n await this.uploadSingleFile(file, i + 1, files.length);\n }\n\n // Refresh the file list after all uploads complete\n this.loadItems();\n }\n\n /**\n * Uploads a single file\n */\n private async uploadSingleFile(file: File, current: number, total: number): Promise<void> {\n if (!this.account) {\n return;\n }\n\n this.isUploading = true;\n this.uploadingFileName = `${file.name} (${current}/${total})`;\n this.uploadProgress = 0;\n\n try {\n // Construct the full object name with folder path\n // Remove trailing slash from folderPath to avoid double slashes\n let objectName: string;\n if (this.folderPath) {\n const cleanPath = this.folderPath.endsWith('/')\n ? this.folderPath.slice(0, -1)\n : this.folderPath;\n objectName = `${cleanPath}/${file.name}`;\n } else {\n objectName = file.name;\n }\n\n console.log('[FileGrid] Getting upload URL for:', objectName);\n\n // Get pre-authenticated upload URL\n const uploadData = await this.storageClient.CreatePreAuthUploadUrl(\n this.account.account.ID,\n objectName,\n file.type || 'application/octet-stream'\n );\n\n console.log('[FileGrid] Got upload URL:', uploadData.uploadUrl);\n\n // Upload the file using XMLHttpRequest to track progress\n await this.uploadFileToUrl(file, uploadData.uploadUrl);\n\n console.log('[FileGrid] File uploaded successfully:', file.name);\n\n } catch (error) {\n console.error('[FileGrid] Error uploading file:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n\n // Check if this is an unsupported operation error (e.g., Google Drive doesn't support pre-auth uploads)\n if (errorMessage.includes('not supported')) {\n this.errorMessage = `Upload not supported for ${this.account?.account.Name || 'this account'}. Try using a different storage account.`;\n } else {\n this.errorMessage = `Failed to upload ${file.name}: ${errorMessage}`;\n }\n\n // Clear error after 5 seconds\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to upload') || this.errorMessage?.startsWith('Upload not supported')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isUploading = false;\n this.uploadProgress = 0;\n this.uploadingFileName = '';\n }\n }\n\n /**\n * Uploads file to the pre-authenticated URL with progress tracking\n */\n private uploadFileToUrl(file: File, url: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n this.uploadProgress = Math.round((event.loaded / event.total) * 100);\n }\n });\n\n xhr.addEventListener('load', () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve();\n } else {\n reject(new Error(`Upload failed with status ${xhr.status}`));\n }\n });\n\n xhr.addEventListener('error', () => {\n reject(new Error('Network error during upload'));\n });\n\n xhr.addEventListener('abort', () => {\n reject(new Error('Upload cancelled'));\n });\n\n // Use POST for Dropbox temporary upload links (required by Dropbox API)\n // Use PUT for other providers like S3\n // Dropbox requires POST with application/octet-stream\n xhr.open('POST', url, true);\n xhr.setRequestHeader('Content-Type', 'application/octet-stream');\n xhr.send(file);\n });\n }\n\n /**\n * Opens the new folder dialog\n */\n public onNewFolderClick(): void {\n this.newFolderName = '';\n this.showNewFolderDialog = true;\n }\n\n /**\n * Closes the new folder dialog\n */\n public onCancelNewFolder(): void {\n this.showNewFolderDialog = false;\n this.newFolderName = '';\n }\n\n /**\n * Creates a new folder in the current directory\n */\n public async onCreateFolder(): Promise<void> {\n if (!this.account || !this.newFolderName.trim()) {\n return;\n }\n\n this.isCreatingFolder = true;\n\n try {\n // Construct the full folder path\n // Remove trailing slash from folderPath to avoid double slashes\n let folderPath: string;\n if (this.folderPath) {\n const cleanPath = this.folderPath.endsWith('/')\n ? this.folderPath.slice(0, -1)\n : this.folderPath;\n folderPath = `${cleanPath}/${this.newFolderName.trim()}`;\n } else {\n folderPath = this.newFolderName.trim();\n }\n\n console.log('[FileGrid] Creating folder:', folderPath);\n\n const success = await this.storageClient.CreateDirectory(\n this.account.account.ID,\n folderPath\n );\n\n if (success) {\n console.log('[FileGrid] Folder created successfully:', folderPath);\n\n // Close dialog and refresh\n this.showNewFolderDialog = false;\n this.newFolderName = '';\n\n // Notify parent that folder structure changed\n this.folderStructureChanged.emit();\n\n // Refresh the file grid\n this.loadItems();\n } else {\n this.errorMessage = 'Failed to create folder';\n }\n } catch (error) {\n console.error('[FileGrid] Error creating folder:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to create folder: ${errorMessage}`;\n\n // Clear error after 5 seconds\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to create')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isCreatingFolder = false;\n }\n }\n\n /**\n * Opens the delete confirmation dialog for the selected items\n */\n public onDeleteClick(): void {\n if (this.selectedItems.length === 0) {\n return;\n }\n\n // selectedItems contains keys (strings), not full objects\n // Find the actual item object from the items array\n const selectedKey = this.selectedItems[0];\n const item = this.items.find(i => i.key === selectedKey);\n\n if (!item) {\n console.error('[FileGrid] Could not find selected item with key:', selectedKey);\n return;\n }\n\n this.itemToDelete = item;\n this.showDeleteDialog = true;\n }\n\n /**\n * Closes the delete confirmation dialog\n */\n public onCancelDelete(): void {\n this.showDeleteDialog = false;\n this.itemToDelete = null;\n }\n\n /**\n * Deletes the selected item after confirmation\n */\n public async onConfirmDelete(): Promise<void> {\n if (!this.account || !this.itemToDelete) {\n return;\n }\n\n this.isDeleting = true;\n\n try {\n // Construct the full path to the item\n const itemPath = this.constructItemPath(this.itemToDelete);\n\n console.log('[FileGrid] Deleting item:', itemPath);\n\n const success = await this.storageClient.DeleteObject(\n this.account.account.ID,\n itemPath\n );\n\n console.log('[FileGrid] Delete result:', { success });\n\n if (success) {\n console.log('[FileGrid] Item deleted successfully:', itemPath);\n\n // Check if we deleted a folder (before clearing itemToDelete)\n const wasFolder = this.itemToDelete.type === 'folder';\n\n console.log('[FileGrid] Item details:', {\n type: this.itemToDelete.type,\n name: this.itemToDelete.name,\n key: this.itemToDelete.key,\n wasFolder\n });\n\n // Close dialog\n this.showDeleteDialog = false;\n this.itemToDelete = null;\n\n // Clear selection\n this.selectedItems = [];\n\n // If we deleted a folder, notify parent that folder structure changed\n if (wasFolder) {\n console.log('[FileGrid] Emitting folderStructureChanged event');\n this.folderStructureChanged.emit();\n }\n\n // Refresh the file grid\n console.log('[FileGrid] Calling loadItems() to refresh grid');\n this.loadItems();\n } else {\n console.error('[FileGrid] Delete operation returned false');\n this.errorMessage = `Failed to delete ${this.itemToDelete.type}`;\n }\n } catch (error) {\n console.error('[FileGrid] Error deleting item:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to delete: ${errorMessage}`;\n\n // Clear error after 5 seconds\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to delete')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isDeleting = false;\n }\n }\n\n /**\n * Opens the rename dialog for the selected item\n */\n public onRenameClick(): void {\n if (this.selectedItems.length !== 1) {\n return;\n }\n\n // selectedItems contains keys (strings), not full objects\n // Find the actual item object from the items array\n const selectedKey = this.selectedItems[0];\n const item = this.items.find(i => i.key === selectedKey);\n\n if (!item) {\n console.error('[FileGrid] Could not find selected item with key:', selectedKey);\n return;\n }\n\n this.itemToRename = item;\n this.newItemName = item.name;\n this.showRenameDialog = true;\n }\n\n /**\n * Closes the rename dialog\n */\n public onCancelRename(): void {\n this.showRenameDialog = false;\n this.itemToRename = null;\n this.newItemName = '';\n }\n\n /**\n * Renames the selected item after confirmation\n */\n public async onConfirmRename(): Promise<void> {\n if (!this.account || !this.itemToRename || !this.newItemName.trim()) {\n return;\n }\n\n // Check if name actually changed\n if (this.newItemName.trim() === this.itemToRename.name) {\n this.onCancelRename();\n return;\n }\n\n this.isRenaming = true;\n\n try {\n // Construct the old and new paths\n const oldPath = this.constructItemPath(this.itemToRename);\n\n // Build the new path by replacing the old name with the new name\n const pathParts = oldPath.split('/');\n pathParts[pathParts.length - 1] = this.newItemName.trim();\n const newPath = pathParts.join('/');\n\n console.log('[FileGrid] Renaming item:', { oldPath, newPath });\n\n const success = await this.storageClient.MoveObject(\n this.account.account.ID,\n oldPath,\n newPath\n );\n\n console.log('[FileGrid] Rename result:', { success });\n\n if (success) {\n console.log('[FileGrid] Item renamed successfully:', { oldPath, newPath });\n\n // Check if we renamed a folder (before clearing itemToRename)\n const wasFolder = this.itemToRename.type === 'folder';\n\n // Close dialog\n this.showRenameDialog = false;\n this.itemToRename = null;\n this.newItemName = '';\n\n // Clear selection\n this.selectedItems = [];\n\n // If we renamed a folder, notify parent that folder structure changed\n if (wasFolder) {\n console.log('[FileGrid] Emitting folderStructureChanged event');\n this.folderStructureChanged.emit();\n }\n\n // Refresh the file grid\n console.log('[FileGrid] Calling loadItems() to refresh grid');\n this.loadItems();\n } else {\n console.error('[FileGrid] Rename operation returned false');\n this.errorMessage = `Failed to rename ${this.itemToRename.type}`;\n }\n } catch (error) {\n console.error('[FileGrid] Error renaming item:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to rename: ${errorMessage}`;\n\n // Clear error after 5 seconds\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to rename')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isRenaming = false;\n }\n }\n\n /**\n * Downloads the selected file\n */\n public async onDownloadClick(): Promise<void> {\n if (this.selectedItems.length !== 1) {\n return;\n }\n\n // Find the selected item\n const selectedKey = this.selectedItems[0];\n const item = this.items.find(i => i.key === selectedKey);\n\n if (!item) {\n console.error('[FileGrid] Could not find selected item with key:', selectedKey);\n return;\n }\n\n // Can only download files, not folders\n if (item.type === 'folder') {\n this.errorMessage = 'Cannot download folders. Please select a file.';\n setTimeout(() => {\n if (this.errorMessage?.includes('Cannot download folders')) {\n this.errorMessage = null;\n }\n }, 3000);\n return;\n }\n\n if (!this.account) {\n return;\n }\n\n try {\n const itemPath = this.constructItemPath(item);\n\n console.log('[FileGrid] Creating download URL for:', itemPath);\n\n const downloadUrl = await this.storageClient.CreatePreAuthDownloadUrl(\n this.account.account.ID,\n itemPath\n );\n\n if (downloadUrl) {\n console.log('[FileGrid] Download URL created, initiating download');\n\n // Create a temporary anchor element to trigger download\n const link = document.createElement('a');\n link.href = downloadUrl;\n link.download = item.name;\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n this.errorMessage = 'Failed to create download URL';\n }\n } catch (error) {\n console.error('[FileGrid] Error downloading file:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to download: ${errorMessage}`;\n\n // Clear error after 5 seconds\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to download')) {\n this.errorMessage = null;\n }\n }, 5000);\n }\n }\n\n /**\n * Opens the copy dialog for the selected item\n */\n public onCopyClick(): void {\n if (this.selectedItems.length !== 1) {\n return;\n }\n\n const selectedKey = this.selectedItems[0];\n const item = this.items.find(i => i.key === selectedKey);\n\n if (!item) {\n console.error('[FileGrid] Could not find selected item with key:', selectedKey);\n return;\n }\n\n this.itemToCopy = item;\n this.copyDestinationPath = this.folderPath + item.name + '-copy';\n this.showCopyDialog = true;\n }\n\n /**\n * Cancels the copy operation\n */\n public onCancelCopy(): void {\n this.showCopyDialog = false;\n this.itemToCopy = null;\n this.copyDestinationPath = '';\n }\n\n /**\n * Confirms and executes the copy operation\n */\n public async onConfirmCopy(): Promise<void> {\n if (!this.account || !this.itemToCopy || !this.copyDestinationPath.trim()) {\n return;\n }\n\n this.isCopying = true;\n\n try {\n const sourcePath = this.constructItemPath(this.itemToCopy);\n\n const success = await this.storageClient.CopyObject(\n this.account.account.ID,\n sourcePath,\n this.copyDestinationPath.trim()\n );\n\n if (success) {\n // Close dialog\n this.showCopyDialog = false;\n this.itemToCopy = null;\n this.copyDestinationPath = '';\n\n // Clear selection\n this.selectedItems = [];\n\n // Refresh the file grid\n this.loadItems();\n } else {\n this.errorMessage = 'Failed to copy item';\n }\n } catch (error) {\n console.error('[FileGrid] Error copying item:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to copy: ${errorMessage}`;\n\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to copy')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isCopying = false;\n }\n }\n\n /**\n * Opens the move dialog for the selected item\n */\n public onMoveClick(): void {\n if (this.selectedItems.length !== 1) {\n return;\n }\n\n const selectedKey = this.selectedItems[0];\n const item = this.items.find(i => i.key === selectedKey);\n\n if (!item) {\n console.error('[FileGrid] Could not find selected item with key:', selectedKey);\n return;\n }\n\n this.itemToMove = item;\n // Suggest a different folder path\n this.moveDestinationPath = this.folderPath;\n this.showMoveDialog = true;\n }\n\n /**\n * Cancels the move operation\n */\n public onCancelMove(): void {\n this.showMoveDialog = false;\n this.itemToMove = null;\n this.moveDestinationPath = '';\n }\n\n /**\n * Confirms and executes the move operation\n */\n public async onConfirmMove(): Promise<void> {\n if (!this.account || !this.itemToMove || !this.moveDestinationPath.trim()) {\n return;\n }\n\n this.isMoving = true;\n\n try {\n const sourcePath = this.constructItemPath(this.itemToMove);\n const destPath = this.moveDestinationPath.trim().endsWith('/')\n ? this.moveDestinationPath.trim() + this.itemToMove.name\n : this.moveDestinationPath.trim();\n\n const success = await this.storageClient.MoveObject(\n this.account.account.ID,\n sourcePath,\n destPath\n );\n\n if (success) {\n const wasFolder = this.itemToMove.type === 'folder';\n\n // Close dialog\n this.showMoveDialog = false;\n this.itemToMove = null;\n this.moveDestinationPath = '';\n\n // Clear selection\n this.selectedItems = [];\n\n // If we moved a folder, notify parent that folder structure changed\n if (wasFolder) {\n this.folderStructureChanged.emit();\n }\n\n // Refresh the file grid\n this.loadItems();\n } else {\n this.errorMessage = 'Failed to move item';\n }\n } catch (error) {\n console.error('[FileGrid] Error moving item:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Failed to move: ${errorMessage}`;\n\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Failed to move')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isMoving = false;\n }\n }\n\n /**\n * Constructs the full path for an item\n */\n private constructItemPath(item: FileGridItem): string {\n // Validate that we have either key or name\n if (!item.key && !item.name) {\n console.error('[FileGrid] Cannot construct path - item has no key or name:', item);\n throw new Error('Cannot construct path for item without key or name');\n }\n\n // If item.key exists and is at root level, use it directly\n if (!this.folderPath || this.folderPath === '/') {\n return item.key || item.name;\n }\n\n // If the item key already includes the folder path, use it as is\n if (item.key && item.key.startsWith(this.folderPath)) {\n return item.key;\n }\n\n // Otherwise, combine folder path with item name\n const normalizedFolderPath = this.folderPath.endsWith('/')\n ? this.folderPath.slice(0, -1)\n : this.folderPath;\n\n // Make sure we have a name to use\n const itemName = item.name || item.key;\n if (!itemName) {\n console.error('[FileGrid] Cannot construct path - item has no usable name:', item);\n throw new Error('Cannot construct path for item without name');\n }\n\n return `${normalizedFolderPath}/${itemName}`;\n }\n\n /**\n * Gets the currently selected item (if exactly one is selected)\n */\n public getSelectedItem(): FileGridItem | null {\n if (this.selectedItems.length !== 1) {\n return null;\n }\n return this.items.find(item => item.key === this.selectedItems[0]) || null;\n }\n\n /**\n * Opens the copy to account dialog\n */\n public async onCopyToAccountClick(): Promise<void> {\n const item = this.getSelectedItem();\n if (!item || item.type === 'folder') {\n return;\n }\n\n try {\n const engine = FileStorageEngine.Instance;\n await engine.Config(false); // Use cached data if available\n\n // Build available accounts (excluding current account)\n this.availableAccounts = engine.AccountsWithProviders\n .filter(a => a.account.ID !== this.account?.account.ID);\n\n if (this.availableAccounts.length === 0) {\n this.errorMessage = 'No other storage accounts available';\n setTimeout(() => {\n if (this.errorMessage?.includes('No other storage accounts')) {\n this.errorMessage = null;\n }\n }, 3000);\n return;\n }\n\n this.itemToCopyToProvider = item;\n this.copyToAccountDestinationPath = item.name; // Default to same filename\n this.selectedDestinationAccounts.clear();\n this.copyToAccountProgress = null;\n this.showCopyToProviderDialog = true;\n\n } catch (error) {\n console.error('[FileGrid] Error loading accounts:', error);\n this.errorMessage = 'Failed to load storage accounts';\n }\n }\n\n /**\n * Cancels the copy to account dialog\n */\n public onCancelCopyToAccount(): void {\n this.showCopyToProviderDialog = false;\n this.itemToCopyToProvider = null;\n this.selectedDestinationAccounts.clear();\n this.copyToAccountDestinationPath = '';\n this.copyToAccountProgress = null;\n }\n\n /**\n * Toggles selection of a destination account for copying\n */\n public toggleDestinationAccount(accountId: string): void {\n if (this.selectedDestinationAccounts.has(accountId)) {\n this.selectedDestinationAccounts.delete(accountId);\n } else {\n this.selectedDestinationAccounts.add(accountId);\n }\n }\n\n /**\n * Checks if an account is selected as a destination\n */\n public isDestinationAccountSelected(accountId: string): boolean {\n return this.selectedDestinationAccounts.has(accountId);\n }\n\n /**\n * Executes the cross-account copy to multiple selected accounts\n */\n public async onConfirmCopyToAccount(): Promise<void> {\n if (!this.itemToCopyToProvider || this.selectedDestinationAccounts.size === 0 || !this.account) {\n return;\n }\n\n this.isCopyingToAccount = true;\n\n // Get selected accounts\n const selectedAccounts = this.availableAccounts.filter(a =>\n this.selectedDestinationAccounts.has(a.account.ID)\n );\n\n const successfulCopies: string[] = [];\n const failedCopies: { account: string; error: string }[] = [];\n\n try {\n // Construct source path and normalize it\n const rawSourcePath = this.constructItemPath(this.itemToCopyToProvider);\n const sourcePath = rawSourcePath.replace(/^\\/+|\\/+$/g, '').replace(/\\/+/g, '/');\n console.log('[FileGrid] Cross-account copy sourcePath:', { raw: rawSourcePath, normalized: sourcePath });\n\n // Copy to each selected account\n for (let i = 0; i < selectedAccounts.length; i++) {\n const destAccount = selectedAccounts[i];\n this.copyToAccountProgress = {\n current: i + 1,\n total: selectedAccounts.length,\n currentAccount: destAccount.account.Name\n };\n\n try {\n console.log('[FileGrid] Copying to account:', destAccount.account.Name);\n\n const copyResult = await this.storageClient.CopyObjectBetweenAccounts(\n this.account.account.ID,\n destAccount.account.ID,\n sourcePath,\n this.copyToAccountDestinationPath\n );\n\n if (copyResult.success) {\n successfulCopies.push(destAccount.account.Name);\n } else {\n failedCopies.push({ account: destAccount.account.Name, error: copyResult.message });\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n failedCopies.push({ account: destAccount.account.Name, error: errorMessage });\n }\n }\n\n // Show results\n if (failedCopies.length === 0) {\n this.errorMessage = `Successfully copied to ${successfulCopies.length} account${successfulCopies.length > 1 ? 's' : ''}: ${successfulCopies.join(', ')}`;\n } else if (successfulCopies.length === 0) {\n this.errorMessage = `Copy failed for all accounts: ${failedCopies.map(f => `${f.account} (${f.error})`).join(', ')}`;\n } else {\n this.errorMessage = `Copied to ${successfulCopies.length} account(s). Failed: ${failedCopies.map(f => f.account).join(', ')}`;\n }\n\n setTimeout(() => {\n if (this.errorMessage?.includes('copied') || this.errorMessage?.includes('Copy failed')) {\n this.errorMessage = null;\n }\n }, 5000);\n\n // Close dialog\n this.showCopyToProviderDialog = false;\n this.itemToCopyToProvider = null;\n this.selectedDestinationAccounts.clear();\n this.copyToAccountDestinationPath = '';\n this.copyToAccountProgress = null;\n\n } catch (error) {\n console.error('[FileGrid] Error copying to accounts:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n this.errorMessage = `Copy failed: ${errorMessage}`;\n\n setTimeout(() => {\n if (this.errorMessage?.startsWith('Copy failed')) {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isCopyingToAccount = false;\n this.copyToAccountProgress = null;\n }\n }\n\n // ==========================================\n // Multi-Account Search Methods\n // ==========================================\n\n /**\n * Toggles multi-account search mode\n */\n public toggleMultiAccountSearchMode(): void {\n this.isMultiProviderSearchMode = !this.isMultiProviderSearchMode;\n\n if (this.isMultiProviderSearchMode) {\n // Load available accounts if not already loaded\n if (this.availableAccounts.length === 0) {\n this.loadAvailableAccountsForSearch();\n }\n // Pre-select current account if available\n if (this.account) {\n this.selectedSearchProviders.add(this.account.account.ID);\n }\n } else {\n // Clear search results when exiting search mode\n this.multiProviderSearchResults = null;\n this.multiProviderSearchQuery = '';\n }\n }\n\n /**\n * Loads available accounts for search selection\n */\n private async loadAvailableAccountsForSearch(): Promise<void> {\n try {\n const engine = FileStorageEngine.Instance;\n await engine.Config(false); // Use cached data if available\n this.availableAccounts = engine.AccountsWithProviders;\n } catch (error) {\n console.error('[FileGrid] Error loading accounts for search:', error);\n }\n }\n\n /**\n * Toggles account selection for search\n */\n public toggleSearchAccount(accountID: string): void {\n if (this.selectedSearchProviders.has(accountID)) {\n this.selectedSearchProviders.delete(accountID);\n } else {\n this.selectedSearchProviders.add(accountID);\n }\n }\n\n /**\n * Checks if an account is selected for search\n */\n public isAccountSelectedForSearch(accountID: string): boolean {\n return this.selectedSearchProviders.has(accountID);\n }\n\n /**\n * Checks if an account's provider supports search\n */\n public accountSupportsSearch(accountWithProvider: StorageAccountWithProvider): boolean {\n return accountWithProvider.provider.SupportsSearch === true;\n }\n\n /**\n * Executes multi-account search\n */\n public async executeMultiAccountSearch(): Promise<void> {\n if (!this.multiProviderSearchQuery.trim() || this.selectedSearchProviders.size === 0) {\n return;\n }\n\n this.isSearching = true;\n this.multiProviderSearchResults = null;\n\n try {\n console.log('[FileGrid] Executing multi-account search:', {\n accountIds: Array.from(this.selectedSearchProviders),\n query: this.multiProviderSearchQuery\n });\n\n const searchResult = await this.storageClient.SearchFiles(\n Array.from(this.selectedSearchProviders),\n this.multiProviderSearchQuery,\n { maxResultsPerAccount: 50 }\n );\n\n console.log('[FileGrid] Multi-account search result:', searchResult);\n\n // Map the client result to the component's expected format\n this.multiProviderSearchResults = {\n accountResults: searchResult.accountResults.map((ar: { accountId: string; accountName: string; success: boolean; errorMessage?: string; results: Array<{ path: string; name: string; size: number; contentType: string; lastModified: Date; relevance?: number; excerpt?: string; matchInFilename?: boolean; objectId?: string }>; totalMatches?: number; hasMore: boolean; nextPageToken?: string }) => ({\n accountID: ar.accountId,\n accountName: ar.accountName,\n success: ar.success,\n errorMessage: ar.errorMessage,\n results: ar.results.map((r: { path: string; name: string; size: number; contentType: string; lastModified: Date; relevance?: number; excerpt?: string; matchInFilename?: boolean; objectId?: string }) => ({\n path: r.path,\n name: r.name,\n size: r.size,\n contentType: r.contentType,\n lastModified: r.lastModified.toISOString(),\n relevance: r.relevance,\n excerpt: r.excerpt,\n matchInFilename: r.matchInFilename,\n objectId: r.objectId\n })),\n totalMatches: ar.totalMatches,\n hasMore: ar.hasMore,\n nextPageToken: ar.nextPageToken\n })),\n totalResultsReturned: searchResult.totalResultsReturned,\n successfulAccounts: searchResult.successfulAccounts,\n failedAccounts: searchResult.failedAccounts\n };\n\n } catch (error) {\n console.error('[FileGrid] Error executing multi-provider search:', error);\n this.errorMessage = 'Search failed. Please try again.';\n setTimeout(() => {\n if (this.errorMessage === 'Search failed. Please try again.') {\n this.errorMessage = null;\n }\n }, 5000);\n } finally {\n this.isSearching = false;\n }\n }\n\n /**\n * Clears multi-provider search results\n */\n public clearMultiProviderSearch(): void {\n this.multiProviderSearchQuery = '';\n this.multiProviderSearchResults = null;\n }\n\n /**\n * Gets icon for a search result based on content type\n */\n public getSearchResultIcon(result: FileSearchResultItem): string {\n const extension = result.name.split('.').pop()?.toLowerCase() || '';\n\n if (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg'].includes(extension)) {\n return 'fa-solid fa-file-image';\n } else if (['pdf'].includes(extension)) {\n return 'fa-solid fa-file-pdf';\n } else if (['doc', 'docx'].includes(extension)) {\n return 'fa-solid fa-file-word';\n } else if (['xls', 'xlsx'].includes(extension)) {\n return 'fa-solid fa-file-excel';\n } else if (['ppt', 'pptx'].includes(extension)) {\n return 'fa-solid fa-file-powerpoint';\n } else if (['zip', 'rar', '7z', 'tar', 'gz'].includes(extension)) {\n return 'fa-solid fa-file-zipper';\n } else if (['mp4', 'avi', 'mov', 'wmv'].includes(extension)) {\n return 'fa-solid fa-file-video';\n } else if (['mp3', 'wav', 'ogg', 'flac'].includes(extension)) {\n return 'fa-solid fa-file-audio';\n } else {\n return 'fa-solid fa-file';\n }\n }\n\n /**\n * Formats file size for search results\n */\n public formatSearchResultSize(bytes: number): string {\n return this.formatFileSize(bytes);\n }\n\n /**\n * Formats date for search results\n */\n public formatSearchResultDate(dateStr: string): string {\n return new Date(dateStr).toLocaleString();\n }\n}","<div class=\"file-grid-container\"\n (dragenter)=\"onDragEnter($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\">\n <!-- Breadcrumb Navigation Bar -->\n @if (!isLoading && !errorMessage) {\n <div class=\"breadcrumb-bar\">\n <div class=\"nav-buttons\">\n <button class=\"nav-btn\"\n [disabled]=\"!canNavigateUp()\"\n (click)=\"navigateUp()\"\n title=\"Go up to parent folder\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button class=\"nav-btn\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n </div>\n <div class=\"breadcrumb-path\">\n <i class=\"fa-solid fa-folder\"></i>\n <span class=\"path-text\">{{ folderPath || 'Root' }} /</span>\n </div>\n <div class=\"search-bar\">\n <input type=\"text\"\n class=\"search-input\"\n [(ngModel)]=\"searchQuery\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"Search files and folders...\"\n [disabled]=\"isLoading || isMultiProviderSearchMode\">\n @if (searchQuery && !isMultiProviderSearchMode) {\n <button class=\"search-clear-btn\"\n (click)=\"clearSearch()\"\n title=\"Clear search\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n <select class=\"file-type-filter\"\n [(ngModel)]=\"fileTypeFilter\"\n (ngModelChange)=\"onFileTypeFilterChange($event)\"\n [disabled]=\"isLoading || isMultiProviderSearchMode\">\n <option value=\"all\">All</option>\n <option value=\"files\">Files</option>\n <option value=\"folders\">Folders</option>\n </select>\n <button class=\"multi-search-btn\"\n [class.active]=\"isMultiProviderSearchMode\"\n (click)=\"toggleMultiAccountSearchMode()\"\n title=\"Search across all storage providers\">\n <i class=\"fa-solid fa-magnifying-glass-plus\"></i>\n </button>\n </div>\n </div>\n }\n\n <!-- Multi-Provider Search Panel -->\n @if (isMultiProviderSearchMode) {\n <div class=\"multi-provider-search-panel\">\n <div class=\"search-panel-header\">\n <h3><i class=\"fa-solid fa-magnifying-glass\"></i> Search Across Providers</h3>\n <button class=\"close-panel-btn\" (click)=\"toggleMultiAccountSearchMode()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"search-panel-body\">\n <div class=\"search-input-row\">\n <input type=\"text\"\n class=\"multi-search-input\"\n [(ngModel)]=\"multiProviderSearchQuery\"\n placeholder=\"Enter search term...\"\n (keydown.enter)=\"executeMultiAccountSearch()\"\n [disabled]=\"isSearching\">\n <button class=\"search-execute-btn\"\n (click)=\"executeMultiAccountSearch()\"\n [disabled]=\"isSearching || !multiProviderSearchQuery.trim() || selectedSearchProviders.size === 0\">\n @if (isSearching) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n @if (!isSearching) {\n <i class=\"fa-solid fa-search\"></i>\n }\n {{ isSearching ? 'Searching...' : 'Search' }}\n </button>\n </div>\n <div class=\"provider-selection\">\n <label class=\"provider-selection-label\">Select accounts to search:</label>\n <div class=\"provider-checkboxes\">\n @for (a of availableAccounts; track a) {\n <label\n class=\"provider-checkbox\"\n [class.disabled]=\"!accountSupportsSearch(a)\"\n [title]=\"accountSupportsSearch(a) ? '' : 'This account does not support search'\">\n <input type=\"checkbox\"\n [checked]=\"isAccountSelectedForSearch(a.account.ID)\"\n (change)=\"toggleSearchAccount(a.account.ID)\"\n [disabled]=\"!accountSupportsSearch(a)\">\n <span class=\"provider-name\">{{ a.account.Name }}</span>\n <span class=\"provider-type\">({{ a.provider.Name }})</span>\n @if (!accountSupportsSearch(a)) {\n <span class=\"no-search-badge\">(no search)</span>\n }\n </label>\n }\n </div>\n </div>\n </div>\n <!-- Search Results -->\n @if (multiProviderSearchResults) {\n <div class=\"search-results-container\">\n <div class=\"search-results-summary\">\n <span class=\"result-count\">{{ multiProviderSearchResults.totalResultsReturned }} result(s) found</span>\n <span class=\"provider-stats\">\n ({{ multiProviderSearchResults.successfulAccounts }} account(s) searched\n @if (multiProviderSearchResults.failedAccounts > 0) {\n <span class=\"failed-count\">\n , {{ multiProviderSearchResults.failedAccounts }} failed\n </span>\n })\n </span>\n <button class=\"clear-results-btn\" (click)=\"clearMultiProviderSearch()\">\n <i class=\"fa-solid fa-xmark\"></i> Clear\n </button>\n </div>\n <div class=\"provider-results-list\">\n @for (accountResult of multiProviderSearchResults.accountResults; track accountResult) {\n <div\n class=\"provider-result-group\"\n [class.failed]=\"!accountResult.success\">\n <div class=\"provider-result-header\">\n <i class=\"fa-solid fa-cloud\"></i>\n <span class=\"provider-name\">{{ accountResult.accountName }}</span>\n @if (accountResult.success) {\n <span class=\"result-count\">\n ({{ accountResult.results.length }} result(s))\n </span>\n }\n @if (!accountResult.success) {\n <span class=\"error-badge\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ accountResult.errorMessage }}\n </span>\n }\n </div>\n @if (accountResult.success && accountResult.results.length > 0) {\n <div class=\"provider-result-files\">\n @for (file of accountResult.results; track file) {\n <div class=\"search-result-item\">\n <i [class]=\"getSearchResultIcon(file)\" class=\"file-icon\"></i>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ file.name }}</span>\n <span class=\"file-path\">{{ file.path }}</span>\n </div>\n <span class=\"file-size\">{{ formatSearchResultSize(file.size) }}</span>\n <span class=\"file-date\">{{ formatSearchResultDate(file.lastModified) }}</span>\n </div>\n }\n </div>\n }\n @if (accountResult.success && accountResult.results.length === 0) {\n <div class=\"no-results-message\">\n No matching files found\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n <!-- Searching State -->\n @if (isSearching) {\n <div class=\"searching-state\">\n <mj-loading text=\"Searching across providers...\"></mj-loading>\n </div>\n }\n </div>\n }\n\n <!-- Loading State -->\n @if (isLoading && !isMultiProviderSearchMode) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading files...\"></mj-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (errorMessage && !isLoading) {\n <div class=\"error-state\">\n <div class=\"error-icon\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n </div>\n <p class=\"error-message\">{{ errorMessage }}</p>\n <button class=\"retry-btn\" (click)=\"refresh()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n Retry\n </button>\n </div>\n }\n\n <!-- List View -->\n @if (!isLoading && !errorMessage && filteredItems.length > 0 && viewMode === 'list') {\n <div class=\"file-table-wrapper\">\n <table class=\"file-table\">\n <thead>\n <tr>\n <th class=\"col-name\" (click)=\"onSortChange([{ field: 'name', dir: sort[0].field === 'name' && sort[0].dir === 'asc' ? 'desc' : 'asc' }])\">\n <span>Name</span>\n <i class=\"fa-solid sort-icon\"\n [class.fa-caret-up]=\"sort[0].field === 'name' && sort[0].dir === 'asc'\"\n [class.fa-caret-down]=\"sort[0].field === 'name' && sort[0].dir === 'desc'\"\n [class.fa-sort]=\"sort[0].field !== 'name'\"></i>\n </th>\n <th class=\"col-type\">Type</th>\n <th class=\"col-size\" (click)=\"onSortChange([{ field: 'size', dir: sort[0].field === 'size' && sort[0].dir === 'asc' ? 'desc' : 'asc' }])\">\n <span>Size</span>\n <i class=\"fa-solid sort-icon\"\n [class.fa-caret-up]=\"sort[0].field === 'size' && sort[0].dir === 'asc'\"\n [class.fa-caret-down]=\"sort[0].field === 'size' && sort[0].dir === 'desc'\"\n [class.fa-sort]=\"sort[0].field !== 'size'\"></i>\n </th>\n <th class=\"col-modified\" (click)=\"onSortChange([{ field: 'lastModified', dir: sort[0].field === 'lastModified' && sort[0].dir === 'asc' ? 'desc' : 'asc' }])\">\n <span>Modified</span>\n <i class=\"fa-solid sort-icon\"\n [class.fa-caret-up]=\"sort[0].field === 'lastModified' && sort[0].dir === 'asc'\"\n [class.fa-caret-down]=\"sort[0].field === 'lastModified' && sort[0].dir === 'desc'\"\n [class.fa-sort]=\"sort[0].field !== 'lastModified'\"></i>\n </th>\n </tr>\n </thead>\n <tbody>\n @for (item of filteredItems; track item) {\n <tr\n class=\"file-row\"\n [class.selected]=\"selectedItems.includes(item.key)\"\n (click)=\"onTileClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\">\n <td class=\"col-name\">\n <i [class]=\"getItemIcon(item)\" class=\"item-icon\"></i>\n <span class=\"item-name\">{{ item.name }}</span>\n </td>\n <td class=\"col-type\">\n <span class=\"item-type\">{{ getFileType(item) }}</span>\n </td>\n <td class=\"col-size\">\n <span class=\"item-size\">{{ item.type === 'folder' ? '—' : formatFileSize(item.size) }}</span>\n </td>\n <td class=\"col-modified\">\n <span class=\"item-date\">{{ formatDate(item.lastModified) }}</span>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <!-- Grid View -->\n @if (!isLoading && !errorMessage && filteredItems.length > 0 && viewMode === 'grid') {\n <div class=\"file-grid-wrapper\">\n <div class=\"file-grid\">\n @for (item of filteredItems; track item) {\n <div\n class=\"grid-item\"\n [class.selected]=\"selectedItems.includes(item.key)\"\n (click)=\"onTileClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\">\n <div class=\"grid-icon\">\n <i [class]=\"getItemIcon(item)\"></i>\n </div>\n <div class=\"grid-name\">{{ item.name }}</div>\n @if (item.type === 'file') {\n <div class=\"grid-meta\">{{ formatFileSize(item.size) }}</div>\n }\n @if (item.type === 'folder') {\n <div class=\"grid-meta\">Folder</div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Empty State -->\n @if (!isLoading && !errorMessage && filteredItems.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </div>\n <p class=\"empty-message\">This folder is empty</p>\n <button class=\"upload-btn\" (click)=\"onUploadClick()\">\n <i class=\"fa-solid fa-upload\"></i>\n Upload Files\n </button>\n </div>\n }\n\n <!-- Bottom Toolbar -->\n @if (!isLoading && !errorMessage) {\n <div class=\"bottom-toolbar\">\n <div class=\"toolbar-left\">\n <button class=\"toolbar-btn\" (click)=\"onUploadClick()\">\n <i class=\"fa-solid fa-upload\"></i>\n Upload\n </button>\n <button class=\"toolbar-btn\" (click)=\"onNewFolderClick()\">\n <i class=\"fa-solid fa-folder-plus\"></i>\n New Folder\n </button>\n <button class=\"toolbar-btn\"\n [disabled]=\"selectedItems.length !== 1\"\n (click)=\"onDownloadClick()\">\n <i class=\"fa-solid fa-download\"></i>\n Download\n </button>\n <button class=\"toolbar-btn\"\n [disabled]=\"selectedItems.length !== 1\"\n (click)=\"onRenameClick()\">\n <i class=\"fa-solid fa-pen\"></i>\n Rename\n </button>\n <button class=\"toolbar-btn\"\n [disabled]=\"selectedItems.length !== 1\"\n (click)=\"onCopyClick()\">\n <i class=\"fa-solid fa-copy\"></i>\n Copy\n </button>\n <button class=\"toolbar-btn\"\n [disabled]=\"selectedItems.length !== 1 || getSelectedItem()?.type === 'folder'\"\n (click)=\"onCopyToAccountClick()\"\n title=\"Copy file to another storage account\">\n <i class=\"fa-solid fa-cloud-arrow-up\"></i>\n Copy to...\n </button>\n <button class=\"toolbar-btn\"\n [disabled]=\"selectedItems.length !== 1\"\n (click)=\"onMoveClick()\">\n <i class=\"fa-solid fa-arrows-up-down-left-right\"></i>\n Move\n </button>\n <button class=\"toolbar-btn\"\n [disabled]=\"selectedItems.length === 0\"\n (click)=\"onDeleteClick()\">\n <i class=\"fa-solid fa-trash\"></i>\n Delete\n </button>\n </div>\n <div class=\"toolbar-right\">\n <!-- View Toggle -->\n <div class=\"view-toggle\">\n <button class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"viewMode = 'list'\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n <button class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"viewMode = 'grid'\"\n title=\"Grid View\">\n <i class=\"fa-solid fa-th\"></i>\n </button>\n </div>\n <span class=\"item-count\">\n {{ filteredItems.length }} {{ filteredItems.length === 1 ? 'item' : 'filteredItems' }}\n </span>\n </div>\n </div>\n }\n\n <!-- Drag & Drop Overlay -->\n @if (isDragging) {\n <div class=\"drag-overlay\">\n <div class=\"drag-content\">\n <div class=\"drag-icon\">\n <i class=\"fa-solid fa-cloud-arrow-up\"></i>\n </div>\n <h2 class=\"drag-title\">Drop files to upload</h2>\n </div>\n </div>\n }\n\n <!-- Upload Progress -->\n @if (isUploading) {\n <div class=\"upload-progress\">\n <div class=\"progress-content\">\n <div class=\"progress-info\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Uploading {{ uploadingFileName }}...</span>\n </div>\n <div class=\"progress-bar-wrap\">\n <div class=\"progress-bar\" [style.width.%]=\"uploadProgress\"></div>\n </div>\n <span class=\"progress-percent\">{{ uploadProgress }}%</span>\n </div>\n </div>\n }\n </div>\n\n <!-- New Folder Modal -->\n @if (showNewFolderDialog) {\n <div class=\"modal-overlay\" (click)=\"onCancelNewFolder()\">\n <div class=\"modal-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"modal-header\">\n <h3>Create New Folder</h3>\n <button class=\"modal-close\" (click)=\"onCancelNewFolder()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"modal-body\">\n <label>Folder name:</label>\n <input type=\"text\"\n [(ngModel)]=\"newFolderName\"\n [disabled]=\"isCreatingFolder\"\n placeholder=\"Enter folder name\"\n (keydown.enter)=\"onCreateFolder()\">\n </div>\n <div class=\"modal-footer\">\n <button (click)=\"onCancelNewFolder()\" [disabled]=\"isCreatingFolder\">Cancel</button>\n <button (click)=\"onCreateFolder()\" [disabled]=\"!newFolderName.trim() || isCreatingFolder\">\n @if (isCreatingFolder) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ isCreatingFolder ? 'Creating...' : 'Create' }}\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Delete Confirmation Modal -->\n @if (showDeleteDialog && itemToDelete) {\n <div class=\"modal-overlay\" (click)=\"onCancelDelete()\">\n <div class=\"modal-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"modal-header\">\n <h3>Delete {{ itemToDelete.type === 'folder' ? 'Folder' : 'File' }}?</h3>\n <button class=\"modal-close\" (click)=\"onCancelDelete()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"modal-body\">\n <p>Are you sure you want to delete <strong>{{ itemToDelete.name }}</strong>?</p>\n @if (itemToDelete.type === 'folder') {\n <p class=\"warning\">This will delete the folder and all its contents.</p>\n }\n </div>\n <div class=\"modal-footer\">\n <button (click)=\"onCancelDelete()\" [disabled]=\"isDeleting\">Cancel</button>\n <button (click)=\"onConfirmDelete()\" [disabled]=\"isDeleting\" class=\"danger\">\n @if (isDeleting) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ isDeleting ? 'Deleting...' : 'Delete' }}\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Rename Modal -->\n @if (showRenameDialog && itemToRename) {\n <div class=\"modal-overlay\" (click)=\"onCancelRename()\">\n <div class=\"modal-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"modal-header\">\n <h3>Rename {{ itemToRename.type === 'folder' ? 'Folder' : 'File' }}</h3>\n <button class=\"modal-close\" (click)=\"onCancelRename()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"modal-body\">\n <label>New name:</label>\n <input type=\"text\"\n [(ngModel)]=\"newItemName\"\n [disabled]=\"isRenaming\"\n placeholder=\"Enter new name\"\n (keydown.enter)=\"onConfirmRename()\">\n </div>\n <div class=\"modal-footer\">\n <button (click)=\"onCancelRename()\" [disabled]=\"isRenaming\">Cancel</button>\n <button (click)=\"onConfirmRename()\" [disabled]=\"isRenaming || !newItemName.trim()\">\n @if (isRenaming) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ isRenaming ? 'Renaming...' : 'Rename' }}\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Copy Modal -->\n @if (showCopyDialog && itemToCopy) {\n <div class=\"modal-overlay\" (click)=\"onCancelCopy()\">\n <div class=\"modal-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"modal-header\">\n <h3>Copy {{ itemToCopy.type === 'folder' ? 'Folder' : 'File' }}</h3>\n <button class=\"modal-close\" (click)=\"onCancelCopy()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"modal-body\">\n <p>Copying: <strong>{{ itemToCopy.name }}</strong></p>\n <label>Destination path:</label>\n <input type=\"text\"\n [(ngModel)]=\"copyDestinationPath\"\n [disabled]=\"isCopying\"\n placeholder=\"Enter destination path\"\n (keydown.enter)=\"onConfirmCopy()\">\n </div>\n <div class=\"modal-footer\">\n <button (click)=\"onCancelCopy()\" [disabled]=\"isCopying\">Cancel</button>\n <button (click)=\"onConfirmCopy()\" [disabled]=\"isCopying || !copyDestinationPath.trim()\">\n @if (isCopying) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ isCopying ? 'Copying...' : 'Copy' }}\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Move Modal -->\n @if (showMoveDialog && itemToMove) {\n <div class=\"modal-overlay\" (click)=\"onCancelMove()\">\n <div class=\"modal-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"modal-header\">\n <h3>Move {{ itemToMove.type === 'folder' ? 'Folder' : 'File' }}</h3>\n <button class=\"modal-close\" (click)=\"onCancelMove()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"modal-body\">\n <p>Moving: <strong>{{ itemToMove.name }}</strong></p>\n <label>Destination folder path:</label>\n <input type=\"text\"\n [(ngModel)]=\"moveDestinationPath\"\n [disabled]=\"isMoving\"\n placeholder=\"Enter destination folder (e.g., folder1/folder2/)\"\n (keydown.enter)=\"onConfirmMove()\">\n <p style=\"font-size: 11px; color: #666; margin-top: 8px;\">\n File will be moved to: {{ moveDestinationPath }}{{ itemToMove.name }}\n </p>\n </div>\n <div class=\"modal-footer\">\n <button (click)=\"onCancelMove()\" [disabled]=\"isMoving\">Cancel</button>\n <button (click)=\"onConfirmMove()\" [disabled]=\"isMoving || !moveDestinationPath.trim()\">\n @if (isMoving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ isMoving ? 'Moving...' : 'Move' }}\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Copy to Account Modal -->\n @if (showCopyToProviderDialog && itemToCopyToProvider) {\n <div class=\"modal-overlay\" (click)=\"onCancelCopyToAccount()\">\n <div class=\"modal-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"modal-header\">\n <h3>Copy to Another Account</h3>\n <button class=\"modal-close\" (click)=\"onCancelCopyToAccount()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"modal-body\">\n <p>Copying: <strong>{{ itemToCopyToProvider.name }}</strong></p>\n <p style=\"font-size: 12px; color: #666; margin-bottom: 16px;\">\n From: <strong>{{ account?.account?.Name }}</strong>\n </p>\n <label>Select destination account(s):</label>\n <div class=\"account-checkbox-list\">\n @for (a of availableAccounts; track a) {\n <div class=\"account-checkbox-item\">\n <input type=\"checkbox\"\n [id]=\"'dest-account-' + a.account.ID\"\n [checked]=\"isDestinationAccountSelected(a.account.ID)\"\n [disabled]=\"isCopyingToAccount\"\n (change)=\"toggleDestinationAccount(a.account.ID)\">\n <label [for]=\"'dest-account-' + a.account.ID\">\n {{ a.account.Name }} <span class=\"provider-badge\">{{ a.provider.Name }}</span>\n </label>\n </div>\n }\n </div>\n <label style=\"margin-top: 16px;\">Destination filename:</label>\n <input type=\"text\"\n [(ngModel)]=\"copyToAccountDestinationPath\"\n [disabled]=\"isCopyingToAccount\"\n placeholder=\"Enter destination filename\"\n (keydown.enter)=\"onConfirmCopyToAccount()\">\n @if (copyToAccountProgress) {\n <div class=\"copy-progress\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Copying to {{ copyToAccountProgress.currentAccount }} ({{ copyToAccountProgress.current }}/{{ copyToAccountProgress.total }})...\n </div>\n }\n </div>\n <div class=\"modal-footer\">\n <button (click)=\"onCancelCopyToAccount()\" [disabled]=\"isCopyingToAccount\">Cancel</button>\n <button (click)=\"onConfirmCopyToAccount()\"\n [disabled]=\"isCopyingToAccount || selectedDestinationAccounts.size === 0 || !copyToAccountDestinationPath.trim()\">\n @if (isCopyingToAccount) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ isCopyingToAccount ? 'Copying...' : 'Copy to ' + selectedDestinationAccounts.size + ' account' + (selectedDestinationAccounts.size !== 1 ? 's' : '') }}\n </button>\n </div>\n </div>\n </div>\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"folder-tree.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/folder-tree.component.ts","../../../src/lib/file-browser/folder-tree.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folder-tree.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/folder-tree.component.ts","../../../src/lib/file-browser/folder-tree.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;;;;;IC0CzF,wBAA8D;;;;IAXhE,kCAOG;IAHD,wNAAS,iCAAuB,KAAC;IAIjC,YACF;IAAA,iBAAS;IACT,wGAAa;;;;;IALX,8DAAsB;IAGtB,cACF;IADE,8CACF;IACA,cAEC;IAFD,iEAEC;;;;IAtCH,AADF,AAFF,8BAA4B,aAED,gBASpB;IAHD,uLAAS,qBAAc,KAAC;IAIxB,uBAAwC;IAC1C,iBAAS;IACT,iCAQG;IAHD,uLAAS,wBAAiB,KAAC;IAI3B,wBAAyC;IAE7C,AADE,iBAAS,EACL;IAEN,+BAAyB;IACvB,wHAcC;IAEL,AADE,iBAAM,EACF;;;IArCA,eAAyB;IAAzB,8CAAyB;IAWzB,eAA4B;IAA5B,iDAA4B;IAU9B,eAcC;IAdD,iCAcC;;;IASH,gCAAmD;;;IAMjD,AADF,8BAAwB,cACE;IACtB,wBAAgD;IAClD,iBAAM;IACN,6BAAsB;IAAA,YAAkB;IAC1C,AAD0C,iBAAI,EACxC;;;IADkB,eAAkB;IAAlB,yCAAkB;;;;IAQtC,+BAGG;IADD,uNAAS,+BAAqB,KAAC;IAE/B,wBAA8C;IAC9C,gCAA0B;IAAA,YAAiB;IAC7C,AAD6C,iBAAO,EAC9C;;;IADsB,eAAiB;IAAjB,oCAAiB;;;IAWzC,6BAA4B;IAC1B,YACF;IAAA,iBAAI;;;IADF,cACF;IADE,qEACF;;;IAPF,AADF,+BAA8B,cACE;IAC5B,wBAAuC;IACzC,iBAAM;IACN,6BAA4B;IAAA,2CAA2B;IAAA,iBAAI;IAC3D,gHAAe;IAKf,6BAA4B;IAC1B,YACF;IACF,AADE,iBAAI,EACA;;;IARJ,eAIC;IAJD,yCAIC;IAEC,eACF;IADE,yDACF;;;IAxBN,8BAAyB;IACvB,uHAQC;IAED,oGAA4B;IAgB9B,iBAAM;;;IA1BJ,cAQC;IARD,6BAQC;IAED,eAeC;IAfD,sDAeC;;AD3ET;;;;GAIG;AAOH,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACK,aAAa,CAA2B;IAEhD;;OAEG;IACK,QAAQ,GAAsC,IAAI,CAAC;IAE3D;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,IACI,OAAO,CAAC,KAAwC;QAClD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,eAAe,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACO,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;IAEtD;;OAEG;IACI,WAAW,GAAW,GAAG,CAAC;IAEjC;;OAEG;IACI,OAAO,GAAa,EAAE,CAAC;IAE9B;;OAEG;IACI,YAAY,GAAW,CAAC,CAAC,CAAC;IAEjC;;OAEG;IACI,WAAW,GAAqB,EAAE,CAAC;IAE1C;;OAEG;IACI,OAAO,GAAiB,EAAE,CAAC;IAElC;;OAEG;IACI,SAAS,GAAY,KAAK,CAAC;IAElC;;OAEG;IACI,YAAY,GAAkB,IAAI,CAAC;IAE1C;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,IAAY;QAChC,yCAAyC;QACzC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,MAAM,KAAK,GAAqB;YAC9B;gBACE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;gBAChC,IAAI,EAAE,GAAG;aACV;SACF,CAAC;QAEF,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvE,IAAI,SAAS,GAAG,EAAE,CAAC;YAEnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,SAAS,IAAI,GAAG,GAAG,OAAO,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,IAAoB;QAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CACrD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAChD,GAAG,CACJ,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE;gBAC9C,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;gBAC/C,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;aAC9C,CAAC,CAAC;YAEH,kCAAkC;YAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE;gBAC7C,qDAAqD;gBACrD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;gBAErD,OAAO;oBACL,IAAI;oBACJ,QAAQ,EAAE,MAAM;iBACjB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;YACtF,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,MAAkB;QACrC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;6GA5PU,mBAAmB;6DAAnB,mBAAmB;YC/BhC,8BAAyB;YAEvB,qFAAe;YAiDf,8BAA0B;YAExB,4FAAiB;YAKjB,qFAAkC;YAUlC,qFAAmC;YA+BvC,AADE,iBAAM,EACF;;YAjGJ,cA8CC;YA9CD,sCA8CC;YAKC,eAEC;YAFD,wCAEC;YAGD,cAOC;YAPD,6DAOC;YAGD,cA6BC;YA7BD,8DA6BC;;;iFDlEQ,mBAAmB;cAN/B,SAAS;6BACI,KAAK,YACP,gBAAgB;;kBAmBzB,KAAK;;kBAiBL,MAAM;;kFAhCI,mBAAmB","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { GraphQLDataProvider, GraphQLFileStorageClient } from '@memberjunction/graphql-dataprovider';\nimport { StorageAccountWithProvider } from '@memberjunction/core-entities';\n\n/**\n * Represents a breadcrumb item in the path\n */\nexport interface BreadcrumbItem {\n label: string;\n path: string;\n}\n\n/**\n * Represents a folder in the tree\n */\nexport interface FolderItem {\n name: string;\n fullPath: string;\n}\n\n/**\n * Folder tree navigation component with breadcrumbs and history navigation.\n * Provides Mac Finder-style navigation with back/forward buttons and breadcrumb path.\n * Loads actual folder structure from storage accounts via GraphQL.\n */\n@Component({\n standalone: false,\n selector: 'mj-folder-tree',\n templateUrl: './folder-tree.component.html',\n styleUrls: ['./folder-tree.component.css']\n})\nexport class FolderTreeComponent {\n /**\n * GraphQL client for file storage operations\n */\n private storageClient: GraphQLFileStorageClient;\n\n /**\n * Currently selected storage account with provider details\n */\n private _account: StorageAccountWithProvider | null = null;\n\n constructor() {\n this.storageClient = new GraphQLFileStorageClient(GraphQLDataProvider.Instance);\n }\n\n @Input()\n set account(value: StorageAccountWithProvider | null) {\n const previousAccount = this._account;\n this._account = value;\n\n if (value && value.account.ID !== previousAccount?.account.ID) {\n this.resetNavigation();\n this.loadFolders();\n }\n }\n get account(): StorageAccountWithProvider | null {\n return this._account;\n }\n\n /**\n * Emits when a folder is selected in the tree\n */\n @Output() folderSelected = new EventEmitter<string>();\n\n /**\n * Current folder path\n */\n public currentPath: string = '/';\n\n /**\n * Navigation history (for back button)\n */\n public history: string[] = [];\n\n /**\n * Current position in history\n */\n public historyIndex: number = -1;\n\n /**\n * Breadcrumb items for current path\n */\n public breadcrumbs: BreadcrumbItem[] = [];\n\n /**\n * Folders in current path\n */\n public folders: FolderItem[] = [];\n\n /**\n * Loading state\n */\n public isLoading: boolean = false;\n\n /**\n * Error message\n */\n public errorMessage: string | null = null;\n\n /**\n * Resets navigation when provider changes\n */\n private resetNavigation(): void {\n this.currentPath = '/';\n this.history = ['/'];\n this.historyIndex = 0;\n this.updateBreadcrumbs();\n }\n\n /**\n * Navigates to a specific folder path\n */\n public navigateToPath(path: string): void {\n // Don't navigate if already at this path\n if (path === this.currentPath) {\n return;\n }\n\n // Add to history if navigating from user action (not back/forward)\n if (this.historyIndex === this.history.length - 1) {\n this.history.push(path);\n this.historyIndex = this.history.length - 1;\n } else {\n // Navigating from middle of history - truncate forward history\n this.history = this.history.slice(0, this.historyIndex + 1);\n this.history.push(path);\n this.historyIndex = this.history.length - 1;\n }\n\n this.currentPath = path;\n this.updateBreadcrumbs();\n this.loadFolders();\n this.folderSelected.emit(path);\n }\n\n /**\n * Refreshes the current folder view without changing navigation\n * Used when folder structure changes (e.g., folder deleted) but we're staying in the same location\n */\n public refresh(): void {\n this.loadFolders();\n }\n\n /**\n * Navigates back in history\n */\n public navigateBack(): void {\n if (!this.canGoBack()) {\n return;\n }\n\n this.historyIndex--;\n this.currentPath = this.history[this.historyIndex];\n this.updateBreadcrumbs();\n this.folderSelected.emit(this.currentPath);\n this.loadFolders();\n }\n\n /**\n * Navigates forward in history\n */\n public navigateForward(): void {\n if (!this.canGoForward()) {\n return;\n }\n\n this.historyIndex++;\n this.currentPath = this.history[this.historyIndex];\n this.updateBreadcrumbs();\n this.folderSelected.emit(this.currentPath);\n this.loadFolders();\n }\n\n /**\n * Checks if can navigate back\n */\n public canGoBack(): boolean {\n return this.historyIndex > 0;\n }\n\n /**\n * Checks if can navigate forward\n */\n public canGoForward(): boolean {\n return this.historyIndex < this.history.length - 1;\n }\n\n /**\n * Updates breadcrumbs based on current path\n */\n private updateBreadcrumbs(): void {\n if (!this.account) {\n this.breadcrumbs = [];\n return;\n }\n\n // Start with account root (show account name)\n const items: BreadcrumbItem[] = [\n {\n label: this.account.account.Name,\n path: '/'\n }\n ];\n\n // Add path segments if not at root\n if (this.currentPath !== '/') {\n const segments = this.currentPath.split('/').filter(s => s.length > 0);\n let builtPath = '';\n\n for (const segment of segments) {\n builtPath += '/' + segment;\n items.push({\n label: segment,\n path: builtPath\n });\n }\n }\n\n this.breadcrumbs = items;\n }\n\n /**\n * Handles breadcrumb click\n */\n public onBreadcrumbClick(item: BreadcrumbItem): void {\n this.navigateToPath(item.path);\n this.loadFolders();\n }\n\n /**\n * Loads folders from the storage account for the current path\n */\n private async loadFolders(): Promise<void> {\n if (!this.account) {\n this.folders = [];\n return;\n }\n\n this.isLoading = true;\n this.errorMessage = null;\n\n try {\n const listResult = await this.storageClient.ListObjects(\n this.account.account.ID,\n this.currentPath === '/' ? '' : this.currentPath,\n '/'\n );\n\n console.log('[FolderTree] ListObjects result:', {\n prefixesCount: listResult.prefixes?.length || 0,\n prefixes: listResult.prefixes,\n objectsCount: listResult.objects?.length || 0\n });\n\n // Convert prefixes to FolderItems\n const prefixes = listResult.prefixes || [];\n console.log('[FolderTree] Processing prefixes:', prefixes);\n this.folders = prefixes.map((prefix: string) => {\n // Remove trailing slash and get just the folder name\n const cleanPath = prefix.endsWith('/') ? prefix.slice(0, -1) : prefix;\n const name = cleanPath.split('/').pop() || cleanPath;\n\n return {\n name,\n fullPath: prefix\n };\n });\n } catch (error) {\n console.error('Error loading folders:', error);\n this.errorMessage = error instanceof Error ? error.message : 'Failed to load folders';\n this.folders = [];\n } finally {\n this.isLoading = false;\n }\n }\n\n /**\n * Handles folder click for navigation\n */\n public onFolderClick(folder: FolderItem): void {\n this.navigateToPath(folder.fullPath);\n this.loadFolders();\n }\n}\n","<div class=\"folder-tree\">\n <!-- Navigation bar with back/forward buttons and breadcrumbs -->\n @if (account) {\n <div class=\"navigation-bar\">\n <!-- Back/Forward buttons -->\n <div class=\"nav-buttons\">\n <button\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n [disabled]=\"!canGoBack()\"\n (click)=\"navigateBack()\"\n title=\"Go back\"\n class=\"nav-button\"\n >\n <i class=\"fa-solid fa-chevron-left\"></i>\n </button>\n <button\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n [disabled]=\"!canGoForward()\"\n (click)=\"navigateForward()\"\n title=\"Go forward\"\n class=\"nav-button\"\n >\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n </div>\n <!-- Breadcrumb path -->\n <div class=\"breadcrumbs\">\n @for (item of breadcrumbs; track item; let last = $last) {\n <button\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"onBreadcrumbClick(item)\"\n [class.current]=\"last\"\n class=\"breadcrumb-item\"\n >\n {{ item.label }}\n </button>\n @if (!last) {\n <i class=\"fa-solid fa-chevron-right breadcrumb-separator\"></i>\n }\n }\n </div>\n </div>\n }\n\n <!-- Folder tree content -->\n <div class=\"tree-content\">\n <!-- Loading state -->\n @if (isLoading) {\n <mj-loading text=\"Loading folders...\"></mj-loading>\n }\n\n <!-- Error state -->\n @if (errorMessage && !isLoading) {\n <div class=\"tree-error\">\n <div class=\"error-icon\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n </div>\n <p class=\"error-text\">{{ errorMessage }}</p>\n </div>\n }\n\n <!-- Folder list -->\n @if (!isLoading && !errorMessage) {\n <div class=\"folder-list\">\n @for (folder of folders; track folder) {\n <div\n class=\"folder-item\"\n (click)=\"onFolderClick(folder)\"\n >\n <i class=\"fa-solid fa-folder folder-icon\"></i>\n <span class=\"folder-name\">{{ folder.name }}</span>\n </div>\n }\n <!-- Empty state -->\n @if (folders.length === 0) {\n <div class=\"tree-placeholder\">\n <div class=\"placeholder-icon\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </div>\n <p class=\"placeholder-text\">No folders in this location</p>\n @if (account) {\n <p class=\"placeholder-hint\">\n Account: {{ account.account.Name }}\n </p>\n }\n <p class=\"placeholder-hint\">\n Path: {{ currentPath }}\n </p>\n </div>\n }\n </div>\n }\n </div>\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-providers-list.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/storage-providers-list.component.ts","../../../src/lib/file-browser/storage-providers-list.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-providers-list.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/storage-providers-list.component.ts","../../../src/lib/file-browser/storage-providers-list.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, OnInit, Output, ChangeDetectorRef } from '@angular/core';\nimport { FileStorageEngine, StorageAccountWithProvider } from '@memberjunction/core-entities';\n\n/**\n * Displays a list of organizational file storage accounts.\n * In the enterprise model, accounts are configured by administrators\n * and available to users based on permissions. Users no longer manage\n * their own OAuth connections - credentials are handled at the org level.\n */\n@Component({\n standalone: false,\n selector: 'mj-storage-providers-list',\n templateUrl: './storage-providers-list.component.html',\n styleUrls: ['./storage-providers-list.component.css']\n})\nexport class StorageProvidersListComponent implements OnInit {\n /**\n * Emits when an account is selected by the user, or null when no accounts are available.\n * Emits the full account-with-provider object for downstream components to use.\n */\n @Output() accountSelected = new EventEmitter<StorageAccountWithProvider | null>();\n\n /**\n * All available storage accounts with their provider details.\n */\n public accounts: StorageAccountWithProvider[] = [];\n\n /**\n * Currently selected account.\n */\n public selectedAccount: StorageAccountWithProvider | null = null;\n\n /**\n * Loading state indicator.\n */\n public isLoading: boolean = false;\n\n /**\n * Error message if loading fails.\n */\n public errorMessage: string | null = null;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.loadAccounts();\n }\n\n /**\n * Loads all available file storage accounts with their provider details.\n * Uses FileStorageEngine for centralized, cached access.\n */\n private async loadAccounts(): Promise<void> {\n this.isLoading = true;\n this.errorMessage = null;\n\n try {\n const engine = FileStorageEngine.Instance;\n await engine.Config(false); // Use cached data if available\n\n this.accounts = engine.AccountsWithProviders;\n\n console.log('[StorageAccountsList] Loaded accounts:', this.accounts.map(a => ({\n name: a.account.Name,\n provider: a.provider.Name,\n hasCredential: !!a.account.CredentialID\n })));\n\n // Auto-select first account if available\n if (this.accounts.length > 0) {\n this.selectAccount(this.accounts[0]);\n } else {\n this.accountSelected.emit(null);\n }\n\n } catch (error) {\n this.errorMessage = error instanceof Error ? error.message : 'Failed to load storage accounts';\n console.error('[StorageProvidersList] Error loading accounts:', error);\n } finally {\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Handles account selection by the user.\n */\n public selectAccount(accountWithProvider: StorageAccountWithProvider): void {\n this.selectedAccount = accountWithProvider;\n this.accountSelected.emit(accountWithProvider);\n }\n\n /**\n * Checks if an account is currently selected.\n */\n public isSelected(accountWithProvider: StorageAccountWithProvider): boolean {\n return this.selectedAccount?.account.ID === accountWithProvider.account.ID;\n }\n\n /**\n * Gets the icon class for a provider based on its name.\n */\n public getProviderIcon(providerName: string): string {\n const name = providerName.toLowerCase();\n\n if (name.includes('aws') || name.includes('s3')) {\n return 'fa-brands fa-aws';\n } else if (name.includes('azure')) {\n return 'fa-brands fa-microsoft';\n } else if (name.includes('google drive')) {\n return 'fa-brands fa-google-drive';\n } else if (name.includes('google cloud')) {\n return 'fa-brands fa-google';\n } else if (name.includes('dropbox')) {\n return 'fa-brands fa-dropbox';\n } else if (name.includes('box')) {\n return 'fa-solid fa-box';\n } else if (name.includes('sharepoint') || name.includes('onedrive')) {\n return 'fa-brands fa-microsoft';\n } else {\n return 'fa-solid fa-cloud';\n }\n }\n\n /**\n * Refreshes the accounts list by forcing a reload from the database.\n */\n public refresh(): void {\n FileStorageEngine.Instance.Config(true).then(() => this.loadAccounts());\n }\n}\n","<div class=\"providers-list\">\n <!-- Header -->\n <div class=\"providers-header\">\n <span class=\"header-title\">Storage Accounts</span>\n </div>\n\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading accounts...\"></mj-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (errorMessage && !isLoading) {\n <div class=\"error-state\">\n <div class=\"error-icon\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n </div>\n <p class=\"error-message\">{{ errorMessage }}</p>\n </div>\n }\n\n <!-- Empty State -->\n @if (!isLoading && !errorMessage && accounts.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-plus\"></i>\n </div>\n <p class=\"empty-message\">No storage accounts configured</p>\n <p class=\"empty-hint\">Contact your administrator to set up file storage accounts</p>\n </div>\n }\n\n <!-- Account List -->\n @if (!isLoading && !errorMessage && accounts.length > 0) {\n <div class=\"providers-container\">\n @for (item of accounts; track item) {\n <div\n class=\"provider-item\"\n [class.selected]=\"isSelected(item)\"\n (click)=\"selectAccount(item)\"\n [title]=\"item.account.Description || item.account.Name\"\n >\n <div class=\"provider-icon\">\n <i [class]=\"getProviderIcon(item.provider.Name)\"></i>\n </div>\n <div class=\"provider-info\">\n <div class=\"provider-name\">{{ item.account.Name }}</div>\n <div class=\"provider-meta\">\n <!-- Provider type badge -->\n <span class=\"provider-type-badge\" [title]=\"item.provider.Name\">\n {{ item.provider.Name }}\n </span>\n <!-- Search support badge -->\n @if (item.provider.SupportsSearch) {\n <span class=\"search-badge\" title=\"Supports search\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </span>\n }\n <!-- Credential configured badge -->\n @if (item.account.CredentialID) {\n <span class=\"credential-badge\" title=\"Credentials configured\">\n <i class=\"fa-solid fa-key\"></i>\n </span>\n }\n <!-- No credential warning -->\n @if (!item.account.CredentialID) {\n <span class=\"unconfigured-badge\" title=\"No credentials configured\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../../src/lib/file-upload/file-upload.ts","../../../src/lib/file-upload/file-upload.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../../src/lib/file-upload/file-upload.ts","../../../src/lib/file-upload/file-upload.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJFileEntity, MJFileSchema, MJFileStorageProviderEntity } from '@memberjunction/core-entities';\nimport { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';\n\nimport { FileInfo, SelectEvent } from '@progress/kendo-angular-upload';\nimport { z } from 'zod';\n\nexport type FileUploadEvent = { success: true; file: MJFileEntity } | { success: false; file: FileInfo };\n\nconst FileFieldsFragment = gql`\n fragment FileFields on MJFile_ {\n Category\n CategoryID\n ContentType\n _mj__CreatedAt\n Description\n ID\n Name\n Provider\n ProviderID\n ProviderKey\n Status\n _mj__UpdatedAt\n }\n`;\n\nconst FileUploadMutation = gql`\n ${FileFieldsFragment}\n mutation CreateMJFile($input: CreateMJFileInput!) {\n CreateMJFile(input: $input) {\n NameExists\n UploadUrl\n File {\n ...FileFields\n }\n }\n }\n`;\n\nconst FileUploadMutationSchema = z.object({\n CreateMJFile: z.object({\n NameExists: z.boolean(),\n UploadUrl: z.string(),\n File: MJFileSchema.omit({ __mj_CreatedAt: true, __mj_UpdatedAt: true }).passthrough(),\n }),\n});\n\ntype ApiFile = z.infer<typeof FileUploadMutationSchema>['CreateMJFile']['File'];\ntype UploadTuple = [FileInfo, ApiFile, string];\n\n@Component({\n standalone: false,\n selector: 'mj-files-file-upload',\n templateUrl: './file-upload.html',\n styleUrls: ['./file-upload.css'],\n})\nexport class FileUploadComponent implements OnInit {\n public ConfirmQueue: Array<UploadTuple> = [];\n public UploadQueue: Array<FileInfo> = [];\n private defaultProviderID = '';\n private md = new Metadata();\n\n get IsUploading(): boolean {\n return this.UploadQueue.length + this.ConfirmQueue.length > 0;\n }\n\n constructor() {}\n\n @Input() disabled = false;\n @Input() CategoryID: string | undefined = undefined;\n @Output() uploadStarted = new EventEmitter<void>();\n @Output() fileUpload = new EventEmitter<FileUploadEvent>();\n\n ngOnInit(): void {\n this.Refresh();\n }\n\n async Refresh() {\n const rv = new RunView();\n const viewResults = await rv.RunView({ EntityName: 'MJ: File Storage Providers', ExtraFilter: 'IsActive = 1', OrderBy: 'Priority DESC' });\n const provider: MJFileStorageProviderEntity | undefined = viewResults.Results[0];\n if (typeof provider?.ID === 'string') {\n this.defaultProviderID = provider.ID;\n }\n }\n\n Confirm() {\n const confirmed = this.ConfirmQueue.shift();\n if (confirmed) {\n this._uploadFile(...confirmed);\n }\n }\n\n async CancelConfirm() {\n const cancelled = this.ConfirmQueue.shift();\n if (cancelled) {\n const [file, fileRecord] = cancelled;\n\n const fileEntity: MJFileEntity = await this.md.GetEntityObject('MJ: Files');\n await fileEntity.LoadFromData(fileRecord);\n await fileEntity.Delete();\n\n this.fileUpload.emit({ success: false, file });\n }\n }\n\n async SelectEventHandler(e: SelectEvent) {\n e.preventDefault();\n this.uploadStarted.emit();\n\n this.UploadQueue = e.files;\n this._processUploadQueue();\n }\n\n private async _processUploadQueue() {\n // for each selected file to upload\n let file = this.UploadQueue.shift();\n while (file) {\n const input = {\n Name: file.name,\n ProviderID: this.defaultProviderID,\n Status: 'Pending',\n CategoryID: this.CategoryID,\n };\n\n // call the gql\n const result = await GraphQLDataProvider.ExecuteGQL(FileUploadMutation, { input });\n\n // make sure the response is correct\n const parsedResult = FileUploadMutationSchema.safeParse(result);\n if (parsedResult.success) {\n const { File, UploadUrl, NameExists } = parsedResult.data.CreateMJFile;\n const uploadTuple: UploadTuple = [file, File, UploadUrl];\n\n // Confirm we want to overwrite\n if (NameExists) {\n this.ConfirmQueue.push(uploadTuple);\n } else {\n await this._uploadFile(...uploadTuple);\n }\n } else {\n console.error('The API returned an unexpected result', parsedResult.error.issues);\n this.fileUpload.emit({ success: false, file });\n }\n file = this.UploadQueue.shift();\n }\n }\n\n private async _uploadFile(file: FileInfo, fileRecord: ApiFile, uploadUrl: string) {\n try {\n // now upload to the url\n await window.fetch(uploadUrl, {\n method: 'PUT',\n headers: { 'x-ms-blob-type': 'BlockBlob' },\n body: file.rawFile,\n });\n\n // now update that file to set status\n const fileEntity: MJFileEntity = await this.md.GetEntityObject('MJ: Files');\n await fileEntity.LoadFromData(fileRecord);\n fileEntity.Status = 'Uploaded';\n await fileEntity.Save();\n\n // emit an event about a new file uploaded, include the file data\n this.fileUpload.emit({ success: true, file: fileEntity });\n // Could also emit a progress event with each iteration\n } catch (e) {\n console.error(e);\n // something failed when actually uploading or when updating the API, what do to about pending file?\n this.fileUpload.emit({ success: false, file });\n }\n }\n}\n","<div>\n <kendo-fileselect [disabled]=\"IsUploading || disabled\" [multiple]=\"false\" (select)=\"SelectEventHandler($event)\"> </kendo-fileselect>\n @if (ConfirmQueue.length > 0) {\n <kendo-dialog title=\"Please confirm\" (close)=\"CancelConfirm()\" [minWidth]=\"250\" [width]=\"450\">\n <p style=\"margin: 30px; text-align: center\">\n This will overwrite an existing file named '{{ConfirmQueue[0][0].name}}'. Are you sure you want to continue?\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"CancelConfirm()\">Cancel</button>\n <button kendoButton (click)=\"Confirm()\" themeColor=\"primary\">Overwrite</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"files-grid.js","sourceRoot":"","sources":["../../../src/lib/files-grid/files-grid.ts","../../../src/lib/files-grid/files-grid.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files-grid.js","sourceRoot":"","sources":["../../../src/lib/files-grid/files-grid.ts","../../../src/lib/files-grid/files-grid.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAoC,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;;;;;;;;ICGhB,kCAGG;IADD,oNAAS,gCAAsB,KAAC;IAEhC,2BAA0C;IAC5C,iBAAS;IACT,kCAAwF;IAA/B,oNAAS,8BAAoB,KAAC;IACrF,2BAA2C;IAC7C,iBAAS;IACT,kCAGG;IADD,sPAA6B;IAE7B,2BAA+C;IACjD,iBAAS;;;;IAbP,4DAAyC;IAKvB,eAAoC;IAApC,4DAAoC;IAItD,eAAyC;IAAzC,4DAAyC;;;;IAiB/C,wCAAyF;IAAzD,6LAAS,sBAAe,KAAC;IAIjD,AADF,AADF,AADF,8BAAuB,oBACQ,sBACa,wBAQrC;IALC,6TAA2B;IAM/B,AADG,iBAAgB,EACL;IAEZ,AADF,uCAA+C,wBAC+C;IAA1D,2UAAkC;IAG1E,AADE,AADE,AAD8F,iBAAgB,EAChG,EACT,EACH;IAEJ,AADF,4CAAsB,iBACiD;IAAjD,uLAAS,sBAAe,KAAC;IAAwB,uBAAM;IAAA,iBAAS;IACpF,mCAA4G;IAAxF,wLAAS,qBAAc,KAAC;IAAgE,qBAAI;IAEpH,AADE,AADkH,iBAAS,EACpG,EACV;;;IAtB4D,AAAjB,8BAAgB,cAAc;IAM9E,eAA2B;IAA3B,oDAA2B;IAI3B,AAHA,iEAA4C,8BAGtB;IAIU,eAAkC;IAAlC,2DAAkC;IAAC,2CAAsB;IAKjD,eAAsB;IAAtB,2CAAsB;IACvB,eAAyC;IAAzC,qEAAyC;;AD/C9F;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAE,QAAgB,EAAE,WAA2B,EAAE,EAAE;IAC3F,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAEtF,yDAAyD;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACpB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;;;;CAO5B,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;CACH,CAAC,CAAC;AAQH,MAAM,OAAO,kBAAkB;IAKT;IAJb,KAAK,GAAmB,EAAE,CAAC;IAC3B,SAAS,GAAY,KAAK,CAAC;IAC3B,QAAQ,CAA2B;IAE1C,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE3C,UAAU,GAAuB,SAAS,CAAC;IAEpD,QAAQ;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,aAAa;QAClB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,YAAY;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,EAAE;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC5H,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,uBAAuB,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YACxH,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,YAAY,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,iBAAiB,EAAE;YACrE,MAAM,EAAE,IAAI,CAAC,EAAE;SAChB,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE/D,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACzD,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,2BAA2B,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,2BAA2B,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC;IAEF;;;;;OAKG;IACI,YAAY,CAAC,IAAkB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC5F,8EAA8E;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,UAAU,GAAG,KAAK,EAAE,IAAkB,EAAE,EAAE;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,6BAA6B,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,yBAAyB,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC;IAEF;;;;;OAKG;IACI,gBAAgB,CAAC,CAAkB;QACxC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;YAC9B,UAAU,EAAE,WAAW;YACvB,UAAU,EAAE,eAAe;YAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,eAAe,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACzF,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAmB,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;4GAtJU,kBAAkB;6DAAlB,kBAAkB;YC5D7B,AADF,8BAAuB,oBAC4B;YAK/C,AADA,AADA,AADA,AADA,uCAA8D,2BACY,2BACR,2BACc,2BACV;YACtE,4CAAmC;YACjC,mFAAgD;YAkBpD,AADE,iBAAoB,EACT;YAEb,gDAKC;YADC,AADA,6IAA6B,IAAI,IAAC,gHACpB,4BAAwB,IAAC;YACxC,iBAAuB;YAExB,iGAAgB;YAyBlB,iBAAM;;YA3DQ,cAAc;YAAC,AAAf,gCAAc,0BAAsB;YA4B9C,eAAyB;YACzB,AADA,2CAAyB,2BACH;YAKxB,cAwBC;YAxBD,wCAwBC;;;iFDEU,kBAAkB;cAN9B,SAAS;6BACI,KAAK,YACP,eAAe;;kBAWxB,KAAK;;kFAPK,kBAAkB","sourcesContent":["import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { RunView } from '@memberjunction/core';\nimport { MJFileEntity } from '@memberjunction/core-entities';\nimport { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { z } from 'zod';\nimport { FileUploadEvent } from '../file-upload/file-upload';\n\n/**\n * Downloads a file from the provided URL.\n *\n * @param url - The URL of the file to be downloaded.\n * @param fileName - The name to be given to the downloaded file.\n * @param contentType - The content type of the file. Defaults to 'application/octet-stream'.\n * @returns Promise<void> - A promise that resolves when the file download is complete.\n */\nconst downloadFromUrl = async (url: string, fileName: string, contentType?: string | null) => {\n // First, fetch the data and create a blob with the correct content type\n const response = await fetch(url);\n if (!response.ok) {\n return false;\n }\n const rawBlob = await response.blob();\n const blob = new Blob([rawBlob], { type: contentType || 'application/octet-stream' });\n\n // Then add a temporary link to the document and click it\n const link = document.createElement('a');\n const blobUrl = window.URL.createObjectURL(blob);\n link.href = blobUrl;\n link.setAttribute('download', fileName);\n document.body.appendChild(link);\n link.click();\n link.parentNode?.removeChild(link);\n window.URL.revokeObjectURL(blobUrl);\n\n return true;\n};\n\nconst FileDownloadQuery = gql`\n query FileDownloadUrl($FileID: String!) {\n MJFile(ID: $FileID) {\n ContentType\n DownloadUrl\n }\n }\n`;\n\nconst FileDownloadQuerySchema = z.object({\n MJFile: z.object({\n ContentType: z.string().optional(),\n DownloadUrl: z.string(),\n }),\n});\n\n@Component({\n standalone: false,\n selector: 'mj-files-grid',\n templateUrl: './files-grid.html',\n styleUrls: ['./files-grid.css'],\n})\nexport class FilesGridComponent implements OnInit, OnChanges {\n public files: MJFileEntity[] = [];\n public isLoading: boolean = false;\n public editFile: MJFileEntity | undefined;\n\n constructor(private sharedService: SharedService) {}\n\n @Input() CategoryID: string | undefined = undefined;\n\n ngOnInit(): void {\n this.Refresh();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['CategoryID']) {\n this.Refresh();\n }\n }\n\n /**\n * Resets the edited file.\n *\n * This method reverts any changes made to the edited file by calling the Revert method of the MJFileEntity class. It then sets the editFile property to undefined, indicating that there is no longer an edited file.\n *\n * @returns void\n */\n public resetEditFile() {\n this.editFile?.Revert();\n this.editFile = undefined;\n }\n\n /**\n * Saves the edited file.\n *\n * This method saves the changes made to the edited file. It first checks if there is an edited file available. If so, it sets the isLoading property to true to indicate that the save operation is in progress. Then, it calls the Save method of the edited file to save the changes. If the save operation is successful, it creates a success notification using the sharedService.CreateSimpleNotification method. The notification message includes the ID and name of the saved file. Finally, it sets the edited file to undefined and sets the isLoading property to false to indicate that the save operation is complete.\n *\n * @returns Promise<void> - A promise that resolves when the save operation is complete.\n * @throws Error - If there is an error during the save operation.\n */\n public async saveEditFile() {\n if (this.editFile) {\n this.isLoading = true;\n //\n const success = await this.editFile.Save();\n if (success) {\n this.sharedService.CreateSimpleNotification(`Successfully saved file ${this.editFile.ID} ${this.editFile.Name}`, 'success');\n this.editFile = undefined;\n } else {\n this.sharedService.CreateSimpleNotification(`Unable to save file ${this.editFile.ID} ${this.editFile.Name}`, 'error');\n }\n this.isLoading = false;\n }\n }\n\n /**\n * Downloads a file using the provided MJFileEntity.\n *\n * @param file - The MJFileEntity representing the file to be downloaded.\n * @returns Promise<void> - A promise that resolves when the file download is complete.\n * @throws Error - If there is an error during the file download process.\n */\n public downloadFile = async (file: MJFileEntity) => {\n this.isLoading = true;\n const result = await GraphQLDataProvider.ExecuteGQL(FileDownloadQuery, {\n FileID: file.ID,\n });\n const parsedResult = FileDownloadQuerySchema.safeParse(result);\n\n if (parsedResult.success) {\n const downloadUrl = parsedResult.data.MJFile.DownloadUrl;\n const success = downloadFromUrl(downloadUrl, file.Name, file.ContentType);\n if (!success) {\n this.sharedService.CreateSimpleNotification(`Unable to download file ${file.ID} ${file.Name}`, 'error');\n }\n } else {\n console.error(parsedResult.error);\n this.sharedService.CreateSimpleNotification(`Unable to download file ${file.ID} ${file.Name}`, 'error');\n }\n this.isLoading = false;\n };\n\n /**\n * Determines whether a file can be deleted based on its status and creation time.\n *\n * @param file - The MJFileEntity representing the file to be checked.\n * @returns boolean - True if the file can be deleted, false otherwise.\n */\n public canBeDeleted(file: MJFileEntity): boolean {\n const status = file.Status;\n const deletable = status === 'Uploaded' || Date.now() - +file.__mj_CreatedAt > 10 * 60 * 60;\n // console.log({ status, deletable, ID: file.ID, CreatedAt: file.CreatedAt });\n return deletable;\n }\n\n /**\n * Deletes a file using the provided MJFileEntity.\n *\n * @param file - The MJFileEntity representing the file to be deleted.\n * @returns Promise<void> - A promise that resolves when the file deletion is complete.\n * @throws Error - If there is an error during the file deletion process.\n */\n public deleteFile = async (file: MJFileEntity) => {\n this.isLoading = true;\n const ID = file.ID;\n const Name = file.Name;\n const deleteResult = await file.Delete();\n if (deleteResult) {\n this.sharedService.CreateSimpleNotification(`Successfully deleted file ${ID} ${Name}`, 'info');\n this.files = this.files.filter((f) => typeof f.ID === 'string' && f.ID !== ID);\n } else {\n this.sharedService.CreateSimpleNotification(`Unable to delete file ${ID} ${Name}`, 'error');\n }\n this.isLoading = false;\n };\n\n /**\n * Handles the file upload event, sending a notification in case of failure and otherwise adding\n * the newly uploaded files to the files currently displayed.\n *\n * @param e - The file upload event.\n */\n public handleFileUpload(e: FileUploadEvent) {\n if (!e.success) {\n this.sharedService.CreateSimpleNotification(`Unable to upload file '${e.file.name}'`, 'error');\n return;\n }\n\n this.files.push(e.file);\n this.isLoading = false;\n }\n\n /**\n * Refreshes the data by running a view and loading the files.\n * @returns {Promise<void>} - A promise that resolves when the data is refreshed.\n */\n async Refresh() {\n this.isLoading = true;\n\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: 'MJ: Files',\n ResultType: 'entity_object',\n ...(this.CategoryID !== undefined && { ExtraFilter: `CategoryID='${this.CategoryID}'` }),\n });\n if (result.Success) {\n this.files = <MJFileEntity[]>result.Results ?? [];\n } else {\n throw new Error('Error loading files: ' + result.ErrorMessage);\n }\n this.isLoading = false;\n }\n}\n","<div class=\"container\">\n <kendo-grid [data]=\"files\" [loading]=\"isLoading\">\n <kendo-grid-column field=\"ID\" title=\"ID\"> </kendo-grid-column>\n <kendo-grid-column field=\"Category\" title=\"Category\"> </kendo-grid-column>\n <kendo-grid-column field=\"Name\" title=\"Name\"> </kendo-grid-column>\n <kendo-grid-column field=\"Description\" title=\"Description\"> </kendo-grid-column>\n <kendo-grid-column field=\"Status\" title=\"Status\"> </kendo-grid-column>\n <kendo-grid-column field=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <button kendoButton\n [disabled]=\"dataItem.Status!=='Uploaded'\"\n (click)=\"downloadFile(dataItem)\"\n >\n <span class=\"fa-solid fa-download\"></span>\n </button>\n <button kendoButton [disabled]=\"!canBeDeleted(dataItem)\" (click)=\"deleteFile(dataItem)\">\n <span class=\"fa-solid fa-trash-can\"></span>\n </button>\n <button kendoButton\n [disabled]=\"dataItem.Status!=='Uploaded'\"\n (click)=\"editFile = dataItem\"\n >\n <span class=\"fa-solid fa-pen-to-square\"></span>\n </button>\n </ng-template>\n </kendo-grid-column>\n </kendo-grid>\n\n <mj-files-file-upload\n [CategoryID]=\"CategoryID\"\n [disabled]=\"isLoading\"\n (uploadStarted)=\"isLoading = true\"\n (fileUpload)=\"handleFileUpload($event)\"\n ></mj-files-file-upload>\n\n @if (editFile) {\n <kendo-dialog title=\"Edit file\" (close)=\"resetEditFile()\" [minWidth]=\"250\" [width]=\"450\">\n <div class=\"container\">\n <form #templateForm=\"ngForm\">\n <kendo-label class=\"k-form\" text=\"Name\">\n <kendo-textbox\n name=\"name\"\n [(ngModel)]=\"editFile.Name\"\n [showSuccessIcon]=\"editFile.Name.length > 0\"\n showErrorIcon=\"initial\"\n required\n [disabled]=\"isLoading\"\n ></kendo-textbox>\n </kendo-label>\n <kendo-label class=\"k-form\" text=\"Description\">\n <kendo-textbox name=\"description\" [(ngModel)]=\"editFile.Description\" [disabled]=\"isLoading\"></kendo-textbox>\n </kendo-label>\n </form>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"resetEditFile()\" [disabled]=\"isLoading\">Cancel</button>\n <button kendoButton (click)=\"saveEditFile()\" [disabled]=\"isLoading || !editFile.Dirty\" themeColor=\"primary\">Save</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"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","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\n// Kendo UI Angular imports\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\nimport { ExcelExportModule } from '@progress/kendo-angular-excel-export';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { IndicatorsModule } from '@progress/kendo-angular-indicators';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { LabelModule } from '@progress/kendo-angular-label';\nimport { MenusModule } from '@progress/kendo-angular-menu';\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\n\nimport { FormsModule } from '@angular/forms';\nimport { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { UploadsModule } from '@progress/kendo-angular-upload';\nimport { CategoryTreeComponent } from './category-tree/category-tree';\nimport { FileUploadComponent } from './file-upload/file-upload';\nimport { FilesGridComponent } from './files-grid/files-grid';\nimport { FileBrowserComponent } from './file-browser/file-browser.component';\nimport { FileBrowserDemoComponent } from './file-browser/file-browser-demo.component';\nimport { FileBrowserResource } from './file-browser/file-browser-resource.component';\nimport { StorageProvidersListComponent } from './file-browser/storage-providers-list.component';\nimport { FolderTreeComponent } from './file-browser/folder-tree.component';\nimport { FileGridComponent } from './file-browser/file-grid.component';\n\n@NgModule({\n declarations: [\n CategoryTreeComponent,\n FilesGridComponent,\n FileUploadComponent,\n FileBrowserComponent,\n FileBrowserDemoComponent,\n FileBrowserResource,\n StorageProvidersListComponent,\n FolderTreeComponent,\n FileGridComponent\n ],\n imports: [\n CommonModule,\n TreeViewModule,\n FormsModule,\n DialogsModule,\n ExcelExportModule,\n ContainerDirectivesModule,\n SharedGenericModule,\n ButtonsModule,\n LabelModule,\n GridModule,\n DropDownsModule,\n BrowserModule,\n BrowserAnimationsModule,\n InputsModule,\n UploadsModule,\n MenusModule,\n IndicatorsModule,\n ],\n exports: [\n CategoryTreeComponent,\n FilesGridComponent,\n FileUploadComponent,\n FileBrowserComponent,\n FileBrowserDemoComponent,\n FileBrowserResource\n ],\n})\nexport class FileStorageModule {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oDAAoD,CAAC;AACnE,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oDAAoD,CAAC;AACnE,cAAc,cAAc,CAAC","sourcesContent":["/*\n * Public API Surface\n */\n\nexport * from './lib/category-tree/category-tree';\nexport * from './lib/files-grid/files-grid';\nexport * from './lib/file-browser/file-browser.component';\nexport * from './lib/file-browser/file-browser-demo.component';\nexport * from './lib/file-browser/file-browser-resource.component';\nexport * from './lib/module';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-file-storage",
3
- "version": "5.3.1",
3
+ "version": "5.4.1",
4
4
  "description": "MemberJunction: Angular components for managing files, and related components.",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -29,13 +29,13 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@angular/platform-browser": "21.1.3",
32
- "@memberjunction/core": "5.3.1",
33
- "@memberjunction/core-entities": "5.3.1",
34
- "@memberjunction/global": "5.3.1",
35
- "@memberjunction/graphql-dataprovider": "5.3.1",
36
- "@memberjunction/ng-container-directives": "5.3.1",
37
- "@memberjunction/ng-shared": "5.3.1",
38
- "@memberjunction/ng-shared-generic": "5.3.1",
32
+ "@memberjunction/core": "5.4.1",
33
+ "@memberjunction/core-entities": "5.4.1",
34
+ "@memberjunction/global": "5.4.1",
35
+ "@memberjunction/graphql-dataprovider": "5.4.1",
36
+ "@memberjunction/ng-container-directives": "5.4.1",
37
+ "@memberjunction/ng-shared": "5.4.1",
38
+ "@memberjunction/ng-shared-generic": "5.4.1",
39
39
  "@progress/kendo-angular-buttons": "22.0.1",
40
40
  "@progress/kendo-angular-dialog": "22.0.1",
41
41
  "@progress/kendo-angular-dropdowns": "22.0.1",