{"version":3,"file":"app-917e4ba2.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/components/document-management/custom-elements/folder-pane/folder-pane.ts"],"sourcesContent":["import { autoinject, bindable, customElement, bindingMode, computedFrom, observable } from 'aurelia-framework';\r\nimport { I18N } from 'aurelia-i18n';\r\nimport { IaToastService, IaToastMessage } from 'resources/services/ia-toast-service';\r\nimport { FolderBreadcrumbsEvents } from 'components/document-management/custom-elements/folder-breadcrumbs/folder-breadcrumbs-events';\r\nimport { DeleteDocumentEvents } from 'components/document-management/custom-elements/delete-document/delete-document';\r\nimport { DocumentSearchEvents } from 'components/document-management/custom-elements/document-search/document-search-events';\r\nimport { FolderPaneEvents } from './folder-pane-events';\r\nimport { MoveModal } from 'components/document-management/custom-elements/move/move-modal';\r\nimport { Folder, Config, FolderType, Permissions, Operation } from 'components/document-management/dtos';\r\nimport { info, warn } from 'resources/utilities/logger';\r\nimport { Api } from 'components/document-management/api';\r\nimport styles from './folder-pane.css';\r\nimport { FolderContentEvents } from '../folder-content/folder-content-events';\r\n\r\n@autoinject()\r\n@customElement('folder-pane')\r\nexport class FolderPane {\r\n\r\n @bindable public clientId: number;\r\n @bindable({ defaultBindingMode: bindingMode.fromView }) public selectedRootFolder: Folder;\r\n @bindable public permissions: Permissions;\r\n @bindable public operation = Operation.Default;\r\n @bindable public defaultFolderId;\r\n\r\n protected config: Config;\r\n @observable folders: Folder[];\r\n protected foldersLoaded = false;\r\n protected folderId;\r\n protected folderPaneComponent: HTMLElement;\r\n protected isLoading = false;\r\n protected styles = styles;\r\n protected uniqueId = 'documents-table';\r\n\r\n public constructor(\r\n private api: Api,\r\n private toast: IaToastService,\r\n private i18n: I18N\r\n ) { }\r\n\r\n /**\r\n * Call this method to delete documents with `name > maxNameLength`\r\n * @param maxNameLength maximum allowed name length\r\n */\r\n private deleteDocumentsWithLongNames(maxNameLength = 50) {\r\n\r\n const docsToDelete = this.selectedRootFolder?.documents?.filter(\r\n d => (d.docName.length > maxNameLength) && !d.systemDoc && !d.distributedFlag\r\n );\r\n\r\n info('Documents To Delete =>', docsToDelete);\r\n if (!docsToDelete?.length) return;\r\n\r\n docsToDelete.forEach(d => {\r\n d.$clientId = this.clientId ?? this.selectedRootFolder.clientId;\r\n (this.folderPaneComponent ?? document).dispatchEvent(DeleteDocumentEvents.createEventPurgeDeleteDocument(d))\r\n });\r\n }\r\n\r\n protected async bind() {\r\n const filledDocTree = await this.api.fillDocumentTree(this.clientId);\r\n\r\n if (!filledDocTree) {\r\n const toast = new IaToastMessage(this.i18n.tr('documentTreeFillFailed'), this.i18n.tr('documentManagement'));\r\n this.toast.error(toast);\r\n return;\r\n }\r\n\r\n this.config = await this.api.getConfig(this.clientId);\r\n this.folders = this?.config?.rootFolders ?? [];\r\n }\r\n\r\n protected async attached() {\r\n this.addEventListeners();\r\n if(!this.defaultFolderId){\r\n await this.getRecentDocuments();\r\n }\r\n }\r\n\r\n protected async detached() {\r\n this.removeEventListeners();\r\n }\r\n\r\n protected addEventListeners() {\r\n document.addEventListener(FolderPaneEvents.eventRefreshFolderRecentDocuments, this.getRecentDocuments, false);\r\n document.addEventListener(FolderPaneEvents.eventMarkRootFolderAsSelected, this.markRootFolderAsSelected, false);\r\n document.addEventListener(FolderPaneEvents.eventMarkRecentDocumentsAsSelected, this.markRecentDocumentsAsSelected, false);\r\n document.addEventListener(FolderPaneEvents.eventSelectRootFolderByName, this.selectRootFolderByName, false);\r\n\r\n if (!this.isMove) {\r\n document.addEventListener(FolderBreadcrumbsEvents.eventRootFolderChanged, this.breadcrumbsRootFolderChanged, false);\r\n }\r\n }\r\n\r\n protected removeEventListeners() {\r\n document.removeEventListener(FolderPaneEvents.eventRefreshFolderRecentDocuments, this.getRecentDocuments, false);\r\n document.removeEventListener(FolderPaneEvents.eventMarkRootFolderAsSelected, this.markRootFolderAsSelected, false);\r\n document.removeEventListener(FolderPaneEvents.eventMarkRecentDocumentsAsSelected, this.markRecentDocumentsAsSelected, false);\r\n document.removeEventListener(FolderPaneEvents.eventSelectRootFolderByName, this.selectRootFolderByName, false);\r\n\r\n if (!this.isMove) {\r\n document.removeEventListener(FolderBreadcrumbsEvents.eventRootFolderChanged, this.breadcrumbsRootFolderChanged, false);\r\n }\r\n }\r\n\r\n @computedFrom('operation')\r\n protected get isMove() {\r\n return this.operation === Operation.MoveDocument || this.operation === Operation.MoveFolder;\r\n }\r\n\r\n @computedFrom('operation')\r\n protected get isMoveDocument() {\r\n return this.operation === Operation.MoveDocument;\r\n }\r\n\r\n @computedFrom('operation')\r\n protected get isMoveFolder() {\r\n return this.operation === Operation.MoveFolder;\r\n }\r\n\r\n @computedFrom('selectedRootFolder.children.length')\r\n protected get hasSystemFolders(): boolean {\r\n return this.selectedRootFolder.children?.some(f => f.systemFolder) ?? false;\r\n }\r\n\r\n @computedFrom('selectedRootFolder.children.length')\r\n protected get hasUserDefinedFolders(): boolean {\r\n return this.selectedRootFolder.children?.some(f => f.folderType === FolderType.UserDefined) ?? false;\r\n }\r\n\r\n protected getRecentDocuments = async () => {\r\n if (this.isMove) return;\r\n\r\n this.isLoading = true;\r\n const recentDocs = await this.api.getRecentDocuments(this.clientId);\r\n this.isLoading = false;\r\n\r\n if (!recentDocs) return;\r\n\r\n this.selectedRootFolder = new Folder();\r\n this.selectedRootFolder.children = [];\r\n this.selectedRootFolder.documents = recentDocs;\r\n\r\n this.selectedRootFolder.$hasSystemFolders = this.hasSystemFolders;\r\n this.selectedRootFolder.$hasUserDefinedFolders = this.hasUserDefinedFolders;\r\n this.selectedRootFolder.$areRecentDocuments = true;\r\n this.selectedRootFolder.$pageSize = 5000;\r\n\r\n this.unmarkPreviousSelectedFolder();\r\n\r\n (this.folderPaneComponent ?? document).dispatchEvent(DocumentSearchEvents.createEventClearSearchPhrase());\r\n\r\n document.dispatchEvent(new CustomEvent(FolderContentEvents.eventBreadcrumbsChanged, {\r\n bubbles: true,\r\n detail: { crumb: { folderId: null } }\r\n }));\r\n\r\n this.scrollToTop();\r\n }\r\n\r\n protected markRootFolderAsSelected = (markEvent: CustomEvent<{ rootFolderId: number }>) => {\r\n this.markFolderAsSelected(markEvent.detail.rootFolderId);\r\n }\r\n\r\n protected selectRootFolderByName = (selectEvent: CustomEvent<{ rootFolderName: string }>) => {\r\n const name = selectEvent.detail.rootFolderName?.trim();\r\n\r\n if (!name) {\r\n warn('It seems like you have provided an empty root folder name! Please provide a valid name.');\r\n return;\r\n }\r\n\r\n const nameToLower = name.toLowerCase();\r\n const rootFolder = this.folders?.find(f => f.title.toLowerCase() === nameToLower);\r\n\r\n if (!rootFolder) {\r\n warn(`Sorry but I could not find a root folder matching the given name '${name}'`);\r\n return;\r\n }\r\n\r\n this.rootFolderClicked(rootFolder);\r\n }\r\n\r\n protected markRecentDocumentsAsSelected = () => {\r\n this.unmarkPreviousSelectedFolder();\r\n if (!this.selectedRootFolder) return;\r\n this.selectedRootFolder.$areRecentDocuments = true;\r\n }\r\n\r\n protected breadcrumbsRootFolderChanged = (changeEvent: CustomEvent<{ folderId: number, folderName: string }>) => {\r\n if (MoveModal.getStatus().isOpen) return;\r\n if (this.selectedRootFolder?.folderId === changeEvent.detail.folderId) return;\r\n this.markFolderAsSelected(changeEvent.detail.folderId);\r\n }\r\n\r\n protected async rootFolderClicked(folder: Folder) {\r\n this.isLoading = true;\r\n const folderContents = await this.api.getFolderById(this.clientId, folder.folderId, this.isMove);\r\n this.isLoading = false;\r\n\r\n if (!folderContents) return;\r\n\r\n this.selectedRootFolder = folderContents;\r\n\r\n this.selectedRootFolder.$hasSystemFolders = this.hasSystemFolders;\r\n this.selectedRootFolder.$hasUserDefinedFolders = this.hasUserDefinedFolders;\r\n this.selectedRootFolder.$areRecentDocuments = false;\r\n this.selectedRootFolder.$pageSize = 5000;\r\n\r\n this.markFolderAsSelected(folder.folderId);\r\n\r\n setTimeout(() => {\r\n this.scrollToTop();\r\n }, 0);\r\n }\r\n\r\n protected unmarkPreviousSelectedFolder() {\r\n const selectedFolder = this.folders?.find(f => f.$isSelected);\r\n if (selectedFolder) { selectedFolder.$isSelected = false; }\r\n }\r\n\r\n protected async markFolderAsSelected(folderId: number) {\r\n // For all calls that hit this before the folders have loaded.\r\n // Store the folderId and call again in foldersChanged\r\n\r\n if(this.foldersLoaded){\r\n this.unmarkPreviousSelectedFolder();\r\n\r\n const selectedFolder = this.folders?.find(f => f.folderId === folderId);\r\n\r\n if (!selectedFolder) return;\r\n selectedFolder.$isSelected = true;\r\n\r\n if (!this.selectedRootFolder) return;\r\n this.selectedRootFolder.$areRecentDocuments = false;\r\n }else{\r\n this.folderId = folderId\r\n }\r\n }\r\n\r\n foldersChanged(newVal, oldVal){\r\n if(newVal.length && !oldVal){\r\n this.foldersLoaded = true;\r\n this.markFolderAsSelected(this.folderId);\r\n }\r\n }\r\n\r\n private scrollToTop() {\r\n $('#client-content-container').animate({ scrollTop: 0 }, 0);\r\n }\r\n}\r\n"],"names":["api","toast","i18n","operation","foldersLoaded","isLoading","styles","uniqueId","getRecentDocuments","this","isMove","clientId","recentDocs","selectedRootFolder","children","documents","$hasSystemFolders","hasSystemFolders","$hasUserDefinedFolders","hasUserDefinedFolders","$areRecentDocuments","$pageSize","unmarkPreviousSelectedFolder","folderPaneComponent","document","dispatchEvent","CustomEvent","bubbles","detail","crumb","folderId","scrollToTop","markRootFolderAsSelected","markEvent","markFolderAsSelected","rootFolderId","selectRootFolderByName","selectEvent","name","rootFolderName","trim","nameToLower","toLowerCase","rootFolder","folders","find","f","title","rootFolderClicked","markRecentDocumentsAsSelected","breadcrumbsRootFolderChanged","changeEvent","MoveModal","isOpen","deleteDocumentsWithLongNames","maxNameLength","docsToDelete","filter","d","docName","length","systemDoc","distributedFlag","forEach","$clientId","DeleteDocumentEvents","bind","fillDocumentTree","getConfig","tr","error","config","rootFolders","attached","addEventListeners","defaultFolderId","detached","removeEventListeners","addEventListener","removeEventListener","some","systemFolder","folderType","folder","getFolderById","folderContents","setTimeout","selectedFolder","$isSelected","foldersChanged","newVal","oldVal","$","animate","scrollTop","bindable","defaultBindingMode","bindingMode","observable","computedFrom","autoinject","customElement","I18N","FolderPane"],"sourceRoot":""}