@memberjunction/ng-conversations 5.3.1 → 5.4.0

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.
Files changed (84) hide show
  1. package/dist/__tests__/index.test.js.map +1 -1
  2. package/dist/__tests__/mention-parser.test.js.map +1 -1
  3. package/dist/__tests__/notification-model.test.js.map +1 -1
  4. package/dist/__tests__/search-service.test.js.map +1 -1
  5. package/dist/__tests__/toast-service.test.js.map +1 -1
  6. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  7. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  8. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  9. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  10. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  11. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  12. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  13. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  14. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  15. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  16. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  17. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  18. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  19. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  20. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  21. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  22. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  23. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  24. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  25. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  26. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  27. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  28. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  29. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  30. package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
  31. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  32. package/dist/lib/components/message/form-question.component.js.map +1 -1
  33. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  34. package/dist/lib/components/message/message-input.component.js.map +1 -1
  35. package/dist/lib/components/message/message-item.component.js.map +1 -1
  36. package/dist/lib/components/message/message-list.component.js.map +1 -1
  37. package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
  38. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  39. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  40. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  41. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  42. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  43. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  44. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  45. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  46. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  47. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  48. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  49. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  50. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  51. package/dist/lib/components/toast/toast.component.js.map +1 -1
  52. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  53. package/dist/lib/conversations.module.js.map +1 -1
  54. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  55. package/dist/lib/models/collection-view.model.js.map +1 -1
  56. package/dist/lib/models/conversation-complete-query.model.js.map +1 -1
  57. package/dist/lib/models/conversation-state.model.js.map +1 -1
  58. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  59. package/dist/lib/models/navigation-request.model.js.map +1 -1
  60. package/dist/lib/models/notification.model.js.map +1 -1
  61. package/dist/lib/services/active-tasks.service.js.map +1 -1
  62. package/dist/lib/services/agent-state.service.js.map +1 -1
  63. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  64. package/dist/lib/services/artifact-state.service.js.map +1 -1
  65. package/dist/lib/services/artifact-use-tracking.service.js.map +1 -1
  66. package/dist/lib/services/collection-permission.service.js.map +1 -1
  67. package/dist/lib/services/collection-state.service.js.map +1 -1
  68. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  69. package/dist/lib/services/conversation-agent.service.js +20 -11
  70. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  71. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  72. package/dist/lib/services/conversation-data.service.js.map +1 -1
  73. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  74. package/dist/lib/services/data-cache.service.js.map +1 -1
  75. package/dist/lib/services/dialog.service.js.map +1 -1
  76. package/dist/lib/services/export.service.js.map +1 -1
  77. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  78. package/dist/lib/services/mention-parser.service.js.map +1 -1
  79. package/dist/lib/services/notification.service.js.map +1 -1
  80. package/dist/lib/services/search.service.js.map +1 -1
  81. package/dist/lib/services/toast.service.js.map +1 -1
  82. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  83. package/dist/public-api.js.map +1 -1
  84. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"file":"collections-full-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/collections-full-view.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections-full-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/collections-full-view.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectorRef, HostListener } from '@angular/core';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { MJCollectionEntity, MJArtifactEntity, MJArtifactVersionEntity, MJCollectionArtifactEntity } from '@memberjunction/core-entities';\nimport { DialogService } from '../../services/dialog.service';\nimport { ArtifactStateService } from '../../services/artifact-state.service';\nimport { CollectionStateService } from '../../services/collection-state.service';\nimport { CollectionPermissionService, CollectionPermission } from '../../services/collection-permission.service';\nimport { ArtifactIconService } from '@memberjunction/ng-artifacts';\nimport { Subject, takeUntil } from 'rxjs';\nimport { CollectionViewMode, CollectionViewItem, CollectionSortBy, CollectionSortOrder } from '../../models/collection-view.model';\n\n/**\n * Full-panel Collections view component\n * Comprehensive collection management with artifacts display\n */\n@Component({\n standalone: false,\n selector: 'mj-collections-full-view',\n template: `\n <div class=\"collections-view\" (keydown)=\"handleKeyboardShortcut($event)\" kendoDialogContainer>\n <!-- Mac Finder-style Header -->\n <div class=\"collections-header\">\n <!-- Breadcrumb navigation -->\n <div class=\"collections-breadcrumb\">\n <div class=\"breadcrumb-item\">\n <i class=\"fas fa-home\"></i>\n <a class=\"breadcrumb-link\" (click)=\"navigateToRoot()\">Collections</a>\n </div>\n @if (breadcrumbs.length > 0) {\n <span class=\"breadcrumb-path\">\n @for (crumb of breadcrumbs; track crumb; let last = $last) {\n <i class=\"fas fa-chevron-right breadcrumb-separator\"></i>\n <a class=\"breadcrumb-link\"\n [class.active]=\"last\"\n (click)=\"navigateTo(crumb)\">\n {{ crumb.name }}\n </a>\n }\n </span>\n }\n </div>\n \n <!-- Action buttons -->\n <div class=\"collections-actions\">\n <!-- View mode toggle -->\n <button class=\"btn-icon\"\n (click)=\"toggleViewMode()\"\n [title]=\"viewMode === 'grid' ? 'Switch to List View' : 'Switch to Grid View'\">\n <i class=\"fas\" [ngClass]=\"viewMode === 'grid' ? 'fa-list' : 'fa-th'\"></i>\n </button>\n \n <!-- Select mode toggle -->\n <button class=\"btn-icon\"\n [class.active]=\"isSelectMode\"\n (click)=\"toggleSelectMode()\"\n [title]=\"isSelectMode ? 'Exit Select Mode' : 'Select Items'\">\n <i class=\"fas fa-check-square\"></i>\n </button>\n \n <!-- Sort dropdown (grid view only) -->\n @if (viewMode === 'grid') {\n <div class=\"dropdown-container\">\n <button class=\"btn-icon\"\n (click)=\"showSortDropdown = !showSortDropdown\"\n title=\"Sort options\">\n <i class=\"fas fa-sort\"></i>\n </button>\n @if (showSortDropdown) {\n <div class=\"dropdown-menu\">\n <button class=\"dropdown-item\"\n [class.active]=\"sortBy === 'name'\"\n (click)=\"setSortBy('name')\">\n <i class=\"fas fa-sort-alpha-down\"></i>\n <span>Sort by Name</span>\n </button>\n <button class=\"dropdown-item\"\n [class.active]=\"sortBy === 'date'\"\n (click)=\"setSortBy('date')\">\n <i class=\"fas fa-calendar\"></i>\n <span>Sort by Date</span>\n </button>\n <button class=\"dropdown-item\"\n [class.active]=\"sortBy === 'type'\"\n (click)=\"setSortBy('type')\">\n <i class=\"fas fa-tag\"></i>\n <span>Sort by Type</span>\n </button>\n </div>\n }\n </div>\n }\n \n <!-- Search -->\n <div class=\"search-container\">\n <i class=\"fas fa-search\"></i>\n <input type=\"text\"\n class=\"search-input\"\n placeholder=\"Search...\"\n [(ngModel)]=\"searchQuery\"\n (ngModelChange)=\"onSearchChange($event)\">\n @if (searchQuery) {\n <button class=\"search-clear\"\n (click)=\"searchQuery = ''; onSearchChange('')\"\n title=\"Clear search\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n\n <!-- Current collection actions (visible when inside a collection) -->\n @if (currentCollectionId && currentCollection) {\n <div class=\"toolbar-separator\"></div>\n <div class=\"toolbar-actions-group\">\n @if (canShareCurrent()) {\n <button class=\"btn-icon\"\n (click)=\"shareCurrentCollection()\"\n [title]=\"'Share: ' + currentCollection.Name\">\n <i class=\"fas fa-share-nodes\"></i>\n </button>\n }\n @if (canEditCurrent()) {\n <button class=\"btn-icon\"\n (click)=\"editCurrentCollection()\"\n [title]=\"'Edit: ' + currentCollection.Name\">\n <i class=\"fas fa-pen-to-square\"></i>\n </button>\n }\n @if (canDeleteCurrent()) {\n <button class=\"btn-icon btn-icon-danger\"\n (click)=\"deleteCurrentCollection()\"\n [title]=\"'Delete: ' + currentCollection.Name\">\n <i class=\"fas fa-trash\"></i>\n </button>\n }\n </div>\n }\n\n <!-- New dropdown -->\n @if (canEditCurrent()) {\n <div class=\"dropdown-container\">\n <button class=\"btn-primary\"\n (click)=\"showNewDropdown = !showNewDropdown\">\n <i class=\"fas fa-plus\"></i>\n <span>New</span>\n <i class=\"fas fa-chevron-down\"></i>\n </button>\n @if (showNewDropdown) {\n <div class=\"dropdown-menu dropdown-menu-right\">\n <button class=\"dropdown-item\" (click)=\"createCollection()\">\n <i class=\"fas fa-folder-plus\"></i>\n <span>New Collection</span>\n </button>\n <button class=\"dropdown-item\"\n (click)=\"addArtifact()\"\n [disabled]=\"!currentCollectionId\">\n <i class=\"fas fa-file-plus\"></i>\n <span>New Artifact</span>\n </button>\n </div>\n }\n </div>\n }\n \n <!-- Refresh button -->\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fas fa-sync\"></i>\n </button>\n </div>\n </div>\n \n <!-- Multi-select toolbar (appears when items selected) -->\n @if (selectedItems.size > 0) {\n <div class=\"selection-toolbar\">\n <div class=\"selection-info\">\n <span class=\"selection-count\">{{ selectedItems.size }} selected</span>\n </div>\n <div class=\"selection-actions\">\n <button class=\"btn-toolbar\" (click)=\"clearSelection()\">\n <i class=\"fas fa-times\"></i>\n Clear Selection\n </button>\n <button class=\"btn-toolbar btn-danger\" (click)=\"deleteSelected()\">\n <i class=\"fas fa-trash\"></i>\n Delete Selected\n </button>\n </div>\n </div>\n }\n \n <!-- Content area -->\n <div class=\"collections-content\">\n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading collections...\" size=\"large\"></mj-loading>\n </div>\n }\n \n <!-- Empty state -->\n @if (!isLoading && unifiedItems.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fas fa-folder-open\"></i>\n <!-- Search returned no results -->\n @if (searchQuery) {\n <h3>No items found</h3>\n <p>Try adjusting your search</p>\n }\n <!-- Empty root level -->\n @if (!searchQuery && !currentCollectionId) {\n <h3>No collections yet</h3>\n <p>Create your first collection to get started</p>\n @if (canEditCurrent()) {\n <button class=\"btn-primary empty-state-cta\"\n (click)=\"createCollection()\"\n >\n <i class=\"fas fa-plus\"></i>\n Create Collection\n </button>\n }\n }\n <!-- Empty collection (has parent) -->\n @if (!searchQuery && currentCollectionId) {\n <h3>This collection is empty</h3>\n <p>Use the <strong>New</strong> button above to add collections or artifacts</p>\n }\n </div>\n }\n \n <!-- Grid view -->\n @if (!isLoading && unifiedItems.length > 0 && viewMode === 'grid') {\n <div\n class=\"unified-grid\"\n [class.select-mode]=\"isSelectMode\">\n @for (item of unifiedItems; track item) {\n <div\n class=\"grid-item\"\n [class.selected]=\"item.selected\"\n [class.active]=\"item.type === 'artifact' && item.artifact?.ID === activeArtifactId\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item, $event)\"\n (contextmenu)=\"onItemContextMenu(item, $event)\">\n <!-- Selection checkbox (only visible in select mode) -->\n @if (isSelectMode) {\n <div class=\"item-checkbox\"\n (click)=\"toggleItemSelection(item, $event)\">\n <i class=\"fas\"\n [ngClass]=\"item.selected ? 'fa-check-circle' : 'fa-circle'\"></i>\n </div>\n }\n <!-- Folder item -->\n @if (item.type === 'folder') {\n <div\n class=\"grid-item-content\"\n [title]=\"item.description || item.name\">\n <div class=\"grid-icon folder-icon\">\n <i class=\"fas fa-folder\"></i>\n @if (item.isShared) {\n <div class=\"shared-badge\" title=\"Shared\">\n <i class=\"fas fa-users\"></i>\n </div>\n }\n </div>\n <div class=\"grid-info\">\n <div class=\"grid-name\">{{ item.name }}</div>\n @if (item.description) {\n <div class=\"grid-description\">\n {{ item.description }}\n </div>\n }\n @if (item.itemCount !== undefined) {\n <div class=\"grid-meta\">\n {{ getItemCountText(item.itemCount) }}\n </div>\n }\n @if (item.isShared && item.owner) {\n <div class=\"grid-owner\">\n <i class=\"fas fa-user\"></i>\n {{ item.owner }}\n </div>\n }\n </div>\n </div>\n }\n <!-- Artifact item -->\n @if (item.type === 'artifact') {\n <div\n class=\"grid-item-content\"\n [title]=\"item.description || item.name\">\n <div class=\"grid-icon artifact-icon\">\n <i class=\"fas\" [ngClass]=\"item.icon\"></i>\n </div>\n <div class=\"grid-info\">\n <div class=\"grid-name\">{{ item.name }}</div>\n @if (item.description) {\n <div class=\"grid-description\">\n {{ item.description }}\n </div>\n }\n <div class=\"grid-meta\">\n @if (item.versionNumber) {\n <span class=\"version-badge\">\n v{{ item.versionNumber }}\n </span>\n }\n @if (item.artifactType) {\n <span class=\"artifact-type-badge\">\n {{ item.artifactType }}\n </span>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n \n <!-- List view -->\n @if (!isLoading && unifiedItems.length > 0 && viewMode === 'list') {\n <div\n class=\"unified-list\"\n [class.select-mode]=\"isSelectMode\">\n <table class=\"list-table\">\n <thead>\n <tr>\n @if (isSelectMode) {\n <th class=\"col-checkbox\">\n <i class=\"fas\"\n [ngClass]=\"selectedItems.size === unifiedItems.length ? 'fa-check-square' : 'fa-square'\"\n (click)=\"selectedItems.size === unifiedItems.length ? clearSelection() : selectAll()\"></i>\n </th>\n }\n <th class=\"col-name sortable\" (click)=\"setSortBy('name')\">\n <span>Name</span>\n @if (sortBy !== 'name') {\n <i class=\"fas fa-sort\"></i>\n }\n @if (sortBy === 'name') {\n <i class=\"fas\"\n [ngClass]=\"sortOrder === 'asc' ? 'fa-sort-up' : 'fa-sort-down'\"></i>\n }\n </th>\n <th class=\"col-type sortable\" (click)=\"setSortBy('type')\">\n <span>Type</span>\n @if (sortBy !== 'type') {\n <i class=\"fas fa-sort\"></i>\n }\n @if (sortBy === 'type') {\n <i class=\"fas\"\n [ngClass]=\"sortOrder === 'asc' ? 'fa-sort-up' : 'fa-sort-down'\"></i>\n }\n </th>\n <th class=\"col-modified sortable\" (click)=\"setSortBy('date')\">\n <span>Modified</span>\n @if (sortBy !== 'date') {\n <i class=\"fas fa-sort\"></i>\n }\n @if (sortBy === 'date') {\n <i class=\"fas\"\n [ngClass]=\"sortOrder === 'asc' ? 'fa-sort-up' : 'fa-sort-down'\"></i>\n }\n </th>\n <th class=\"col-owner\">Owner</th>\n </tr>\n </thead>\n <tbody>\n @for (item of unifiedItems; track item) {\n <tr\n class=\"list-item\"\n [class.selected]=\"item.selected\"\n [class.active]=\"item.type === 'artifact' && item.artifact?.ID === activeArtifactId\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item, $event)\"\n (contextmenu)=\"onItemContextMenu(item, $event)\">\n @if (isSelectMode) {\n <td class=\"col-checkbox\">\n <i class=\"fas\"\n [ngClass]=\"item.selected ? 'fa-check-circle' : 'fa-circle'\"\n (click)=\"toggleItemSelection(item, $event)\"></i>\n </td>\n }\n <td class=\"col-name\">\n <div class=\"list-name-cell\">\n <i class=\"fas\"\n [ngClass]=\"item.type === 'folder' ? 'fa-folder' : item.icon\"></i>\n <span>{{ item.name }}</span>\n @if (item.isShared) {\n <i class=\"fas fa-users shared-indicator\"\n title=\"Shared\"></i>\n }\n </div>\n </td>\n <td class=\"col-type\">\n @if (item.type === 'folder') {\n <span>Folder</span>\n }\n @if (item.type === 'artifact') {\n <span class=\"artifact-type-badge\">\n {{ item.artifactType }}\n </span>\n }\n </td>\n <td class=\"col-modified\">\n @if (item.lastModified) {\n <span>\n {{ item.lastModified | date:'short' }}\n </span>\n }\n </td>\n <td class=\"col-owner\">\n @if (item.owner) {\n <span>{{ item.owner }}</span>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n </div>\n\n <!-- Context Menu -->\n @if (showContextMenu && contextMenuItem) {\n <div class=\"context-menu-backdrop\" (click)=\"closeContextMenu()\"></div>\n <div class=\"context-menu\"\n [style.left.px]=\"contextMenuPosition.x\"\n [style.top.px]=\"contextMenuPosition.y\">\n @if (contextMenuItem.type === 'folder' && contextMenuItem.collection) {\n <button class=\"context-menu-item\" (click)=\"onContextMenuAction('open')\">\n <i class=\"fas fa-folder-open\"></i>\n <span>Open</span>\n </button>\n <div class=\"context-menu-divider\"></div>\n @if (canShare(contextMenuItem.collection)) {\n <button class=\"context-menu-item\" (click)=\"onContextMenuAction('share')\">\n <i class=\"fas fa-share-nodes\"></i>\n <span>Share</span>\n </button>\n }\n @if (canEdit(contextMenuItem.collection)) {\n <button class=\"context-menu-item\" (click)=\"onContextMenuAction('edit')\">\n <i class=\"fas fa-pen-to-square\"></i>\n <span>Edit</span>\n </button>\n }\n @if (canDelete(contextMenuItem.collection)) {\n <div class=\"context-menu-divider\"></div>\n <button class=\"context-menu-item context-menu-danger\" (click)=\"onContextMenuAction('delete')\">\n <i class=\"fas fa-trash\"></i>\n <span>Delete</span>\n </button>\n }\n }\n @if (contextMenuItem.type === 'artifact') {\n <button class=\"context-menu-item\" (click)=\"onContextMenuAction('view')\">\n <i class=\"fas fa-eye\"></i>\n <span>View</span>\n </button>\n @if (canEditCurrent()) {\n <div class=\"context-menu-divider\"></div>\n <button class=\"context-menu-item context-menu-danger\" (click)=\"onContextMenuAction('remove')\">\n <i class=\"fas fa-times-circle\"></i>\n <span>Remove from Collection</span>\n </button>\n }\n }\n </div>\n }\n\n <!-- Modals -->\n <mj-collection-form-modal\n [isOpen]=\"isFormModalOpen\"\n [collection]=\"editingCollection\"\n [parentCollection]=\"currentCollection || undefined\"\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n (saved)=\"onCollectionSaved($event)\"\n (cancelled)=\"onFormCancelled()\">\n </mj-collection-form-modal>\n \n <mj-artifact-create-modal\n [isOpen]=\"isArtifactModalOpen\"\n [collectionId]=\"currentCollectionId || ''\"\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n (saved)=\"onArtifactSaved($event)\"\n (cancelled)=\"onArtifactModalCancelled()\">\n </mj-artifact-create-modal>\n \n <mj-collection-share-modal\n [isOpen]=\"isShareModalOpen\"\n [collection]=\"sharingCollection\"\n [currentUser]=\"currentUser\"\n [currentUserPermissions]=\"sharingCollection ? userPermissions.get(sharingCollection.ID) || null : null\"\n (saved)=\"onPermissionsChanged()\"\n (cancelled)=\"onShareModalCancelled()\">\n </mj-collection-share-modal>\n `,\n styles: [`\n /* Main container */\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #FAFAFA;\n position: relative;\n }\n\n /* Header */\n .collections-header {\n display: flex;\n align-items: center;\n padding: 12px 20px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n background: white;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n font-size: 14px;\n }\n\n .breadcrumb-link:hover {\n color: #0076D6;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n /* Button styles */\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #007AFF;\n border: none;\n border-radius: 6px;\n color: white;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 150ms ease;\n }\n\n .btn-primary:hover {\n background: #0051D5;\n }\n\n .btn-primary i.fa-chevron-down {\n font-size: 10px;\n margin-left: 2px;\n }\n\n .btn-icon {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .btn-icon:hover {\n background: #F9FAFB;\n color: #111827;\n border-color: #9CA3AF;\n }\n\n .btn-icon.active {\n background: #EFF6FF;\n color: #007AFF;\n border-color: #007AFF;\n }\n\n .btn-icon.active:hover {\n background: #DBEAFE;\n }\n\n /* Dropdown menus */\n .dropdown-container {\n position: relative;\n }\n\n .dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 200px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 4px;\n z-index: 1000;\n }\n\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n\n .dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #111827;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n transition: background 100ms ease;\n }\n\n .dropdown-item:hover:not(:disabled) {\n background: #F3F4F6;\n }\n\n .dropdown-item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .dropdown-item.active {\n background: #EFF6FF;\n color: #007AFF;\n }\n\n .dropdown-item i {\n font-size: 14px;\n width: 16px;\n text-align: center;\n color: #6B7280;\n }\n\n .dropdown-item.active i {\n color: #007AFF;\n }\n\n .dropdown-divider {\n height: 1px;\n background: #E5E7EB;\n margin: 4px 0;\n }\n\n /* Search */\n .search-container {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n }\n\n .search-container i.fa-search {\n position: absolute;\n left: 10px;\n color: #9CA3AF;\n font-size: 13px;\n pointer-events: none;\n }\n\n .search-input {\n width: 100%;\n padding: 6px 32px 6px 32px;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n transition: all 150ms ease;\n }\n\n .search-input:focus {\n border-color: #007AFF;\n box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1);\n }\n\n .search-clear {\n position: absolute;\n right: 6px;\n padding: 4px;\n background: transparent;\n border: none;\n color: #9CA3AF;\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .search-clear:hover {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n /* Selection toolbar */\n .selection-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: #EFF6FF;\n border-bottom: 1px solid #BFDBFE;\n }\n\n .selection-info {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .selection-count {\n font-size: 13px;\n font-weight: 600;\n color: #1E40AF;\n }\n\n .selection-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: white;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n color: #374151;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .btn-toolbar:hover {\n background: #F9FAFB;\n border-color: #9CA3AF;\n }\n\n .btn-toolbar.btn-danger {\n color: #DC2626;\n border-color: #FCA5A5;\n }\n\n .btn-toolbar.btn-danger:hover {\n background: #FEE2E2;\n border-color: #DC2626;\n }\n\n /* Content area */\n .collections-content {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n }\n\n /* Loading and empty states */\n .loading-state, .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n min-height: 0;\n color: #9CA3AF;\n text-align: center;\n padding: 24px;\n }\n\n .empty-state > i {\n font-size: 64px;\n margin-bottom: 24px;\n opacity: 0.3;\n color: #D1D5DB;\n }\n\n .empty-state h3 {\n margin: 0 0 8px 0;\n color: #374151;\n font-size: 18px;\n font-weight: 600;\n }\n\n .empty-state p {\n margin: 0 0 24px 0;\n font-size: 14px;\n color: #6B7280;\n }\n\n .empty-state .empty-state-cta {\n padding: 10px 20px;\n font-size: 14px;\n border-radius: 8px;\n }\n\n .empty-state-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n justify-content: center;\n }\n\n /* Grid view */\n .unified-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n gap: 16px;\n padding: 4px;\n }\n\n .grid-item {\n display: flex;\n flex-direction: column;\n padding: 12px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n position: relative;\n user-select: none;\n }\n\n .grid-item:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n }\n\n .grid-item.selected {\n background: #EFF6FF;\n border-color: #007AFF;\n }\n\n .grid-item.active {\n background: #FEF3C7;\n border-color: #F59E0B;\n box-shadow: 0 0 0 1px #F59E0B;\n }\n\n .grid-item.active:hover {\n background: #FDE68A;\n }\n\n /* Select mode styling for grid */\n .unified-grid.select-mode .grid-item {\n cursor: pointer;\n }\n\n .unified-grid.select-mode .grid-item:hover {\n background: #EFF6FF;\n border-color: #93C5FD;\n }\n\n .item-checkbox {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10;\n }\n\n .item-checkbox i {\n font-size: 16px;\n color: #9CA3AF;\n transition: color 150ms ease;\n }\n\n .grid-item.selected .item-checkbox i,\n .item-checkbox:hover i {\n color: #007AFF;\n }\n\n .grid-item-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n }\n\n .grid-icon {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n position: relative;\n }\n\n .grid-icon.folder-icon {\n background: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);\n }\n\n .grid-icon.folder-icon i {\n font-size: 36px;\n color: white;\n }\n\n .grid-icon.artifact-icon {\n background: #F3F4F6;\n }\n\n .grid-icon.artifact-icon i {\n font-size: 32px;\n color: #6B7280;\n }\n\n .shared-badge {\n position: absolute;\n top: -4px;\n right: -4px;\n width: 20px;\n height: 20px;\n background: #10B981;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid white;\n }\n\n .shared-badge i {\n font-size: 10px;\n color: white;\n }\n\n .grid-info {\n width: 100%;\n text-align: center;\n }\n\n .grid-name {\n font-size: 13px;\n font-weight: 500;\n color: #111827;\n line-height: 1.3;\n margin-bottom: 4px;\n /* Allow wrapping to 2 lines max */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-description {\n font-size: 11px;\n color: #6B7280;\n line-height: 1.3;\n margin-bottom: 4px;\n /* Allow wrapping to 2 lines max */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-meta {\n font-size: 11px;\n color: #6B7280;\n margin-top: 4px;\n }\n\n .grid-owner {\n font-size: 11px;\n color: #6B7280;\n margin-top: 2px;\n }\n\n .grid-owner i {\n font-size: 10px;\n margin-right: 3px;\n }\n\n .version-badge {\n display: inline-block;\n padding: 2px 6px;\n background: #FEF3C7;\n color: #92400E;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n font-family: monospace;\n margin-right: 4px;\n }\n\n .artifact-type-badge {\n display: inline-block;\n padding: 2px 6px;\n background: #DBEAFE;\n color: #1E40AF;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n /* List view */\n .unified-list {\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .list-table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .list-table thead {\n background: #F9FAFB;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .list-table th {\n padding: 10px 16px;\n text-align: left;\n font-size: 12px;\n font-weight: 600;\n color: #6B7280;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .list-table th.sortable {\n cursor: pointer;\n user-select: none;\n transition: color 150ms ease;\n }\n\n .list-table th.sortable:hover {\n color: #007AFF;\n }\n\n .list-table th.sortable span {\n display: inline-block;\n margin-right: 6px;\n }\n\n .list-table th.sortable i {\n font-size: 10px;\n opacity: 0.5;\n }\n\n .list-table th.sortable:hover i {\n opacity: 1;\n }\n\n .list-table tbody tr {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n cursor: pointer;\n user-select: none;\n }\n\n .list-table tbody tr:last-child {\n border-bottom: none;\n }\n\n .list-table tbody tr:hover {\n background: #F9FAFB;\n }\n\n .list-table tbody tr.selected {\n background: #EFF6FF;\n }\n\n .list-table tbody tr.active {\n background: #FEF3C7;\n border-left: 3px solid #F59E0B;\n }\n\n .list-table tbody tr.active:hover {\n background: #FDE68A;\n }\n\n .list-table td {\n padding: 12px 16px;\n font-size: 13px;\n color: #374151;\n }\n\n .col-checkbox {\n width: 40px;\n text-align: center;\n }\n\n .col-checkbox i {\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n transition: color 150ms ease;\n }\n\n .col-checkbox i:hover,\n .list-table tbody tr.selected .col-checkbox i {\n color: #007AFF;\n }\n\n .col-name {\n min-width: 300px;\n }\n\n .list-name-cell {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .list-name-cell i {\n font-size: 16px;\n color: #6B7280;\n width: 20px;\n text-align: center;\n }\n\n .list-name-cell .fa-folder {\n color: #3B82F6;\n }\n\n .shared-indicator {\n font-size: 12px;\n color: #10B981;\n margin-left: auto;\n }\n\n .col-type {\n width: 150px;\n }\n\n .col-modified {\n width: 180px;\n }\n\n .col-owner {\n width: 150px;\n }\n\n /* Toolbar separator and action group */\n .toolbar-separator {\n width: 1px;\n height: 24px;\n background: #D1D5DB;\n margin: 0 4px;\n }\n\n .toolbar-actions-group {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .btn-icon-danger {\n color: #DC2626;\n border-color: #FCA5A5;\n }\n\n .btn-icon-danger:hover {\n background: #FEE2E2;\n color: #DC2626;\n border-color: #DC2626;\n }\n\n /* Context menu */\n .context-menu-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1999;\n }\n\n .context-menu {\n position: fixed;\n min-width: 180px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);\n padding: 4px;\n z-index: 2000;\n }\n\n .context-menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #111827;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n transition: background 100ms ease;\n }\n\n .context-menu-item:hover {\n background: #F3F4F6;\n }\n\n .context-menu-item i {\n font-size: 14px;\n width: 16px;\n text-align: center;\n color: #6B7280;\n }\n\n .context-menu-danger {\n color: #DC2626;\n }\n\n .context-menu-danger i {\n color: #DC2626;\n }\n\n .context-menu-danger:hover {\n background: #FEE2E2;\n }\n\n .context-menu-divider {\n height: 1px;\n background: #E5E7EB;\n margin: 4px 0;\n }\n `]\n})\nexport class CollectionsFullViewComponent implements OnInit, OnDestroy {\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n @Output() collectionNavigated = new EventEmitter<{\n collectionId: string | null;\n versionId?: string | null;\n }>();\n\n public collections: MJCollectionEntity[] = [];\n public artifactVersions: Array<{ version: MJArtifactVersionEntity; artifact: MJArtifactEntity }> = [];\n public filteredCollections: MJCollectionEntity[] = [];\n public filteredArtifactVersions: Array<{ version: MJArtifactVersionEntity; artifact: MJArtifactEntity }> = [];\n public isLoading: boolean = false;\n public breadcrumbs: Array<{ id: string; name: string }> = [];\n public currentCollectionId: string | null = null;\n public currentCollection: MJCollectionEntity | null = null;\n\n public isFormModalOpen: boolean = false;\n public editingCollection?: MJCollectionEntity;\n public isArtifactModalOpen: boolean = false;\n\n public userPermissions: Map<string, CollectionPermission> = new Map();\n public isShareModalOpen: boolean = false;\n public sharingCollection: MJCollectionEntity | null = null;\n\n // New UI state for Mac Finder-style view\n public viewMode: CollectionViewMode = 'grid';\n public sortBy: CollectionSortBy = 'name';\n public sortOrder: CollectionSortOrder = 'asc';\n public searchQuery: string = '';\n public unifiedItems: CollectionViewItem[] = [];\n public selectedItems: Set<string> = new Set();\n public showNewDropdown: boolean = false;\n public showSortDropdown: boolean = false;\n public activeArtifactId: string | null = null; // Track which artifact is currently being viewed\n public isSelectMode: boolean = false; // Toggle for selection mode\n\n // Context menu state\n public showContextMenu: boolean = false;\n public contextMenuPosition: { x: number; y: number } = { x: 0, y: 0 };\n public contextMenuItem: CollectionViewItem | null = null;\n\n private destroy$ = new Subject<void>();\n private isNavigatingProgrammatically = false;\n\n constructor(\n private dialogService: DialogService,\n private artifactState: ArtifactStateService,\n private collectionState: CollectionStateService,\n private permissionService: CollectionPermissionService,\n private artifactIconService: ArtifactIconService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n // Subscribe to collection state changes for deep linking FIRST\n // This ensures that if there's a URL with collectionId, we set it before loading data\n this.subscribeToCollectionState();\n\n // Subscribe to artifact state changes to track active artifact\n this.subscribeToArtifactState();\n\n // Check if there's an active collection from URL params (set by parent component)\n const activeCollectionId = this.collectionState.activeCollectionId;\n if (activeCollectionId) {\n // If there's an active collection, navigate to it (which will call loadData)\n console.log('📁 Initial load with active collection:', activeCollectionId);\n this.navigateToCollectionById(activeCollectionId);\n } else {\n // Otherwise, just load the root level\n this.loadData();\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Subscribe to collection state changes for deep linking support\n */\n private subscribeToCollectionState(): void {\n // Watch for external navigation requests (e.g., from search or URL)\n this.collectionState.activeCollectionId$\n .pipe(takeUntil(this.destroy$))\n .subscribe(collectionId => {\n // Ignore state changes that we triggered ourselves\n if (this.isNavigatingProgrammatically) {\n return;\n }\n\n // Only navigate if the state is different from our current state\n // This prevents double-loading during initialization\n if (collectionId !== this.currentCollectionId) {\n if (collectionId) {\n console.log('📁 Collection state changed externally, navigating to:', collectionId);\n this.navigateToCollectionById(collectionId);\n } else {\n console.log('📁 Collection state cleared externally, navigating to root');\n this.navigateToRoot();\n }\n }\n });\n }\n\n /**\n * Subscribe to artifact state changes to track which artifact is currently open\n */\n private subscribeToArtifactState(): void {\n this.artifactState.activeArtifact$\n .pipe(takeUntil(this.destroy$))\n .subscribe(artifact => {\n // Update active artifact ID for highlighting\n this.activeArtifactId = artifact?.ID || null;\n });\n }\n\n async loadData(): Promise<void> {\n // Only show loading spinner if we don't have data yet\n // This prevents flash of loading when navigating between collections\n const hasData = this.collections.length > 0 || this.unifiedItems.length > 0;\n if (!hasData) {\n this.isLoading = true;\n }\n\n try {\n // Load saved view preferences from localStorage\n const savedMode = localStorage.getItem('collections-view-mode');\n if (savedMode === 'grid' || savedMode === 'list') {\n this.viewMode = savedMode;\n }\n\n const savedSortBy = localStorage.getItem('collections-sort-by');\n if (savedSortBy === 'name' || savedSortBy === 'date' || savedSortBy === 'type') {\n this.sortBy = savedSortBy;\n }\n\n const savedSortOrder = localStorage.getItem('collections-sort-order');\n if (savedSortOrder === 'asc' || savedSortOrder === 'desc') {\n this.sortOrder = savedSortOrder;\n }\n\n await Promise.all([\n this.loadCollections(),\n this.loadArtifacts(),\n this.loadCurrentCollectionPermission()\n ]);\n\n // Build unified item list after data loads\n this.buildUnifiedItemList();\n } finally {\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private async loadCollections(): Promise<void> {\n try {\n const rv = new RunView();\n\n // Load collections where user is owner OR has permissions\n const ownerFilter = `OwnerID='${this.currentUser.ID}'`;\n const permissionSubquery = `ID IN (\n SELECT CollectionID\n FROM [__mj].[vwCollectionPermissions]\n WHERE UserID='${this.currentUser.ID}'\n )`;\n\n const baseFilter = `EnvironmentID='${this.environmentId}'` +\n (this.currentCollectionId ? ` AND ParentID='${this.currentCollectionId}'` : ' AND ParentID IS NULL');\n\n const filter = `${baseFilter} AND (OwnerID IS NULL OR ${ownerFilter} OR ${permissionSubquery})`;\n\n const result = await rv.RunView<MJCollectionEntity>(\n {\n EntityName: 'MJ: Collections',\n ExtraFilter: filter,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (result.Success) {\n this.collections = result.Results || [];\n await this.loadUserPermissions();\n this.filteredCollections = [...this.collections];\n }\n } catch (error) {\n console.error('Failed to load collections:', error);\n }\n }\n\n private async loadUserPermissions(): Promise<void> {\n this.userPermissions.clear();\n\n for (const collection of this.collections) {\n const permission = await this.permissionService.checkPermission(\n collection.ID,\n this.currentUser.ID,\n this.currentUser\n );\n\n if (permission) {\n this.userPermissions.set(collection.ID, permission);\n }\n }\n }\n\n private async loadCurrentCollectionPermission(): Promise<void> {\n if (!this.currentCollectionId || !this.currentCollection) {\n return;\n }\n\n const permission = await this.permissionService.checkPermission(\n this.currentCollectionId,\n this.currentUser.ID,\n this.currentUser\n );\n\n if (permission) {\n this.userPermissions.set(this.currentCollectionId, permission);\n }\n }\n\n private async loadArtifacts(): Promise<void> {\n if (!this.currentCollectionId) {\n this.artifactVersions = [];\n this.filteredArtifactVersions = [];\n return;\n }\n\n try {\n this.artifactVersions = await this.artifactState.loadArtifactVersionsForCollection(\n this.currentCollectionId,\n this.currentUser\n );\n this.filteredArtifactVersions = [...this.artifactVersions];\n } catch (error) {\n console.error('Failed to load artifact versions:', error);\n }\n }\n\n async openCollection(collection: MJCollectionEntity): Promise<void> {\n this.isNavigatingProgrammatically = true;\n try {\n this.breadcrumbs.push({ id: collection.ID, name: collection.Name });\n this.currentCollectionId = collection.ID;\n this.currentCollection = collection;\n this.activeArtifactId = null; // Clear active artifact when switching collections\n await this.loadData();\n\n // Update state service\n this.collectionState.setActiveCollection(collection.ID);\n\n // Close any open artifact when switching collections\n this.collectionNavigated.emit({\n collectionId: collection.ID,\n versionId: null\n });\n } finally {\n this.isNavigatingProgrammatically = false;\n }\n }\n\n async navigateTo(crumb: { id: string; name: string }): Promise<void> {\n this.isNavigatingProgrammatically = true;\n try {\n const index = this.breadcrumbs.findIndex(b => b.id === crumb.id);\n if (index !== -1) {\n this.breadcrumbs = this.breadcrumbs.slice(0, index + 1);\n this.currentCollectionId = crumb.id;\n\n // Load the collection entity\n const md = new Metadata();\n this.currentCollection = await md.GetEntityObject<MJCollectionEntity>('MJ: Collections', this.currentUser);\n await this.currentCollection.Load(crumb.id);\n\n await this.loadData();\n\n // Update state service\n this.collectionState.setActiveCollection(crumb.id);\n\n // Close any open artifact when navigating collections\n this.collectionNavigated.emit({\n collectionId: crumb.id,\n versionId: null\n });\n }\n } finally {\n this.isNavigatingProgrammatically = false;\n }\n }\n\n async navigateToRoot(): Promise<void> {\n this.isNavigatingProgrammatically = true;\n try {\n this.breadcrumbs = [];\n this.currentCollectionId = null;\n this.currentCollection = null;\n await this.loadData();\n\n // Update state service\n this.collectionState.setActiveCollection(null);\n\n // Close any open artifact when navigating to root\n this.collectionNavigated.emit({\n collectionId: null,\n versionId: null\n });\n } finally {\n this.isNavigatingProgrammatically = false;\n }\n }\n\n /**\n * Navigate to a collection by ID, building the breadcrumb trail\n * Used for deep linking from search results or URL parameters\n */\n async navigateToCollectionById(collectionId: string): Promise<void> {\n this.isNavigatingProgrammatically = true;\n try {\n console.log('📁 Navigating to collection by ID:', collectionId);\n\n // Load the target collection\n const md = new Metadata();\n const targetCollection = await md.GetEntityObject<MJCollectionEntity>('MJ: Collections', this.currentUser);\n await targetCollection.Load(collectionId);\n\n if (!targetCollection || !targetCollection.ID) {\n console.error('❌ Failed to load collection:', collectionId);\n return;\n }\n\n // Build breadcrumb trail by traversing parent hierarchy\n // Note: breadcrumbs includes ALL collections in the path including the current one\n const trail: Array<{ id: string; name: string }> = [];\n let currentId: string | null = targetCollection.ParentID;\n\n while (currentId) {\n const parentCollection = await md.GetEntityObject<MJCollectionEntity>('MJ: Collections', this.currentUser);\n await parentCollection.Load(currentId);\n\n if (parentCollection && parentCollection.ID) {\n // Add to front of trail (we're working backwards)\n trail.unshift({\n id: parentCollection.ID,\n name: parentCollection.Name\n });\n currentId = parentCollection.ParentID;\n } else {\n break;\n }\n }\n\n // Add the target collection to the trail (breadcrumbs includes current collection)\n trail.push({\n id: targetCollection.ID,\n name: targetCollection.Name\n });\n\n // Update component state\n this.breadcrumbs = trail;\n this.currentCollectionId = targetCollection.ID;\n this.currentCollection = targetCollection;\n\n // Load collections and artifacts for this collection\n await this.loadData();\n\n // Update state service\n this.collectionState.setActiveCollection(targetCollection.ID);\n\n // Emit navigation event\n // NOTE: We don't emit artifactId here because this is for deep linking/programmatic navigation\n // Artifact state is managed separately by the artifact state service\n this.collectionNavigated.emit({\n collectionId: targetCollection.ID\n });\n\n console.log('✅ Successfully navigated to collection with breadcrumb trail:', trail);\n } catch (error) {\n console.error('❌ Error navigating to collection:', error);\n } finally {\n this.isNavigatingProgrammatically = false;\n }\n }\n\n refresh(): void {\n this.loadData();\n }\n\n async createCollection(): Promise<void> {\n // Validate user can edit current collection (or at root level)\n if (this.currentCollection) {\n const canEdit = await this.validatePermission(this.currentCollection, 'edit');\n if (!canEdit) return;\n }\n\n this.showNewDropdown = false;\n this.editingCollection = undefined;\n this.isFormModalOpen = true;\n }\n\n async editCollection(collection: MJCollectionEntity): Promise<void> {\n const canEdit = await this.validatePermission(collection, 'edit');\n if (!canEdit) return;\n\n this.editingCollection = collection;\n this.isFormModalOpen = true;\n }\n\n async deleteCollection(collection: MJCollectionEntity): Promise<void> {\n console.log('deleteCollection called for:', collection.Name, collection.ID);\n\n // Validate user has delete permission\n const canDelete = await this.validatePermission(collection, 'delete');\n if (!canDelete) return;\n\n const confirmed = await this.dialogService.confirm({\n title: 'Delete Collection',\n message: `Are you sure you want to delete \"${collection.Name}\"? This will also delete all child collections and remove all artifacts. This action cannot be undone.`,\n okText: 'Delete',\n cancelText: 'Cancel',\n dangerous: true\n });\n\n console.log('Delete confirmed:', confirmed);\n\n if (confirmed) {\n try {\n console.log('Attempting to delete collection and all children...');\n await this.deleteCollectionRecursive(collection.ID);\n await this.loadCollections();\n } catch (error) {\n console.error('Error deleting collection:', error);\n await this.dialogService.alert('Error', `An error occurred while deleting the collection: ${error}`);\n }\n }\n }\n\n private async deleteCollectionRecursive(collectionId: string): Promise<void> {\n const rv = new RunView();\n\n // Step 1: Find and delete all child collections recursively\n const childrenResult = await rv.RunView<MJCollectionEntity>(\n {\n EntityName: 'MJ: Collections',\n ExtraFilter: `ParentID='${collectionId}'`,\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (childrenResult.Success && childrenResult.Results) {\n for (const child of childrenResult.Results) {\n await this.deleteCollectionRecursive(child.ID);\n }\n }\n\n // Step 2: Delete all permissions for this collection\n await this.permissionService.deleteAllPermissions(collectionId, this.currentUser);\n\n // Step 3: Delete all artifact links for this collection\n const artifactsResult = await rv.RunView<any>(\n {\n EntityName: 'MJ: Collection Artifacts',\n ExtraFilter: `CollectionID='${collectionId}'`,\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (artifactsResult.Success && artifactsResult.Results) {\n for (const ca of artifactsResult.Results) {\n await ca.Delete();\n }\n }\n\n // Step 4: Delete the collection itself\n const md = new Metadata();\n const collection = await md.GetEntityObject<MJCollectionEntity>('MJ: Collections', this.currentUser);\n await collection.Load(collectionId);\n const deleted = await collection.Delete();\n\n if (!deleted) {\n throw new Error(`Failed to delete collection: ${collection.LatestResult?.Message || 'Unknown error'}`);\n }\n }\n\n async onCollectionSaved(collection: MJCollectionEntity): Promise<void> {\n this.isFormModalOpen = false;\n this.editingCollection = undefined;\n await this.loadCollections();\n // Reload current collection permission (it was cleared by loadUserPermissions)\n await this.loadCurrentCollectionPermission();\n // Rebuild unified list to show new collection\n this.buildUnifiedItemList();\n this.cdr.detectChanges();\n }\n\n onFormCancelled(): void {\n this.isFormModalOpen = false;\n this.editingCollection = undefined;\n }\n\n async addArtifact(): Promise<void> {\n // Validate user can edit current collection\n if (this.currentCollection) {\n const canEdit = await this.validatePermission(this.currentCollection, 'edit');\n if (!canEdit) return;\n }\n\n this.showNewDropdown = false;\n this.isArtifactModalOpen = true;\n }\n\n async onArtifactSaved(artifact: MJArtifactEntity): Promise<void> {\n this.isArtifactModalOpen = false;\n await this.loadArtifacts();\n this.cdr.detectChanges();\n }\n\n onArtifactModalCancelled(): void {\n this.isArtifactModalOpen = false;\n }\n\n async removeArtifact(item: { version: MJArtifactVersionEntity; artifact: MJArtifactEntity }): Promise<void> {\n if (!this.currentCollectionId) return;\n\n // Validate user has delete permission on current collection\n if (this.currentCollection) {\n const canDelete = await this.validatePermission(this.currentCollection, 'delete');\n if (!canDelete) return;\n }\n\n const versionLabel = `\"${item.artifact.Name}\" v${item.version.VersionNumber}`;\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Artifact Version',\n message: `Remove ${versionLabel} from this collection?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (confirmed) {\n try {\n // Delete THIS SPECIFIC VERSION from the collection\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: 'MJ: Collection Artifacts',\n ExtraFilter: `CollectionID='${this.currentCollectionId}' AND ArtifactVersionID='${item.version.ID}'`,\n ResultType: 'entity_object'\n }, this.currentUser);\n\n if (result.Success && result.Results && result.Results.length > 0) {\n // Delete this version association\n for (const joinRecord of result.Results) {\n await joinRecord.Delete();\n }\n await this.loadArtifacts();\n } else {\n await this.dialogService.alert('Error', 'Collection artifact link not found.');\n }\n } catch (error) {\n console.error('Error removing artifact version:', error);\n await this.dialogService.alert('Error', 'Failed to remove artifact version from collection.');\n }\n }\n }\n\n viewArtifact(item: { version: MJArtifactVersionEntity; artifact: MJArtifactEntity }): void {\n this.activeArtifactId = item.artifact.ID;\n this.artifactState.openArtifact(item.artifact.ID, item.version.VersionNumber);\n }\n\n // Permission validation and checking methods\n private async validatePermission(\n collection: MJCollectionEntity | null,\n requiredPermission: 'edit' | 'delete' | 'share'\n ): Promise<boolean> {\n // Owner has all permissions (including backwards compatibility for null OwnerID)\n if (!collection?.OwnerID || collection.OwnerID === this.currentUser.ID) {\n return true;\n }\n\n const permission = this.userPermissions.get(collection.ID);\n if (!permission) {\n await this.dialogService.alert(\n 'Permission Denied',\n 'You do not have permission to perform this action.'\n );\n return false;\n }\n\n const hasPermission =\n (requiredPermission === 'edit' && permission.canEdit) ||\n (requiredPermission === 'delete' && permission.canDelete) ||\n (requiredPermission === 'share' && permission.canShare);\n\n if (!hasPermission) {\n const permissionName = requiredPermission.charAt(0).toUpperCase() + requiredPermission.slice(1);\n await this.dialogService.alert(\n 'Permission Denied',\n `You do not have ${permissionName} permission for this collection.`\n );\n return false;\n }\n\n return true;\n }\n\n canEdit(collection: MJCollectionEntity): boolean {\n // Backwards compatibility: treat null OwnerID as owned by current user\n if (!collection.OwnerID || collection.OwnerID === this.currentUser.ID) return true;\n\n // Check permission record\n const permission = this.userPermissions.get(collection.ID);\n return permission?.canEdit || false;\n }\n\n canDelete(collection: MJCollectionEntity): boolean {\n // Backwards compatibility: treat null OwnerID as owned by current user\n if (!collection.OwnerID || collection.OwnerID === this.currentUser.ID) return true;\n\n // Check permission record\n const permission = this.userPermissions.get(collection.ID);\n return permission?.canDelete || false;\n }\n\n canShare(collection: MJCollectionEntity): boolean {\n // Backwards compatibility: treat null OwnerID as owned by current user\n if (!collection.OwnerID || collection.OwnerID === this.currentUser.ID) return true;\n\n // Check permission record\n const permission = this.userPermissions.get(collection.ID);\n return permission?.canShare || false;\n }\n\n canEditCurrent(): boolean {\n // At root level, anyone can create\n if (!this.currentCollectionId || !this.currentCollection) {\n return true;\n }\n return this.canEdit(this.currentCollection);\n }\n\n canDeleteCurrent(): boolean {\n // At root level, no delete needed\n if (!this.currentCollectionId || !this.currentCollection) {\n return false;\n }\n return this.canDelete(this.currentCollection);\n }\n\n canShareCurrent(): boolean {\n // At root level, no share needed\n if (!this.currentCollectionId || !this.currentCollection) {\n return false;\n }\n return this.canShare(this.currentCollection);\n }\n\n isShared(collection: MJCollectionEntity): boolean {\n // Collection is shared if user is not the owner and OwnerID is set\n return collection.OwnerID != null && collection.OwnerID !== this.currentUser.ID;\n }\n\n // Sharing methods\n async shareCollection(collection: MJCollectionEntity): Promise<void> {\n // Validate user has share permission\n const canShare = await this.validatePermission(collection, 'share');\n if (!canShare) return;\n\n this.sharingCollection = collection;\n this.isShareModalOpen = true;\n }\n\n async onPermissionsChanged(): Promise<void> {\n // Reload collections and permissions after sharing changes\n await this.loadCollections();\n this.cdr.detectChanges();\n }\n\n onShareModalCancelled(): void {\n this.isShareModalOpen = false;\n this.sharingCollection = null;\n }\n\n // Header toolbar action methods\n shareCurrentCollection(): void {\n if (this.currentCollection) {\n this.shareCollection(this.currentCollection);\n }\n }\n\n editCurrentCollection(): void {\n if (this.currentCollection) {\n this.editCollection(this.currentCollection);\n }\n }\n\n deleteCurrentCollection(): void {\n if (this.currentCollection) {\n this.deleteCollection(this.currentCollection);\n }\n }\n\n /**\n * Get the icon for an artifact using the centralized icon service.\n * Fallback priority: Plugin icon > Metadata icon > Hardcoded mapping > Generic icon\n */\n public getArtifactIcon(artifact: MJArtifactEntity): string {\n return this.artifactIconService.getArtifactIcon(artifact);\n }\n\n // ==================== NEW MAC FINDER-STYLE METHODS ====================\n\n /**\n * Build unified list of folders and artifacts (Phase 1)\n */\n private buildUnifiedItemList(): void {\n const items: CollectionViewItem[] = [];\n\n // Add folders first (collections)\n for (const collection of this.filteredCollections) {\n items.push({\n type: 'folder',\n id: collection.ID,\n name: collection.Name,\n description: collection.Description || undefined,\n icon: 'fa-folder',\n itemCount: 0, // TODO: calculate actual count\n owner: collection.Owner || undefined,\n isShared: this.isShared(collection),\n selected: this.selectedItems.has(collection.ID),\n collection: collection\n });\n }\n\n // Then add artifacts\n for (const item of this.filteredArtifactVersions) {\n items.push({\n type: 'artifact',\n id: item.version.ID,\n name: item.artifact.Name,\n description: item.artifact.Description || undefined,\n icon: this.getArtifactIcon(item.artifact),\n versionNumber: item.version.VersionNumber,\n artifactType: item.artifact.Type,\n lastModified: item.version.__mj_UpdatedAt,\n selected: this.selectedItems.has(item.version.ID),\n artifact: item.artifact,\n version: item.version\n });\n }\n\n // Apply sorting\n this.unifiedItems = this.sortItems(items);\n this.cdr.detectChanges();\n }\n\n /**\n * Sort items by selected criteria (Phase 2)\n */\n private sortItems(items: CollectionViewItem[]): CollectionViewItem[] {\n return items.sort((a, b) => {\n let comparison = 0;\n\n // Always keep folders before artifacts\n if (a.type !== b.type) {\n return a.type === 'folder' ? -1 : 1;\n }\n\n // Then sort by selected criteria\n switch (this.sortBy) {\n case 'name':\n comparison = a.name.localeCompare(b.name);\n break;\n case 'date':\n const aDate = a.lastModified || new Date(0);\n const bDate = b.lastModified || new Date(0);\n comparison = aDate.getTime() - bDate.getTime();\n break;\n case 'type':\n comparison = (a.artifactType || '').localeCompare(b.artifactType || '');\n break;\n }\n\n return this.sortOrder === 'asc' ? comparison : -comparison;\n });\n }\n\n /**\n * Toggle between grid and list view\n */\n public toggleViewMode(): void {\n this.viewMode = this.viewMode === 'grid' ? 'list' : 'grid';\n // Save preference to localStorage\n localStorage.setItem('collections-view-mode', this.viewMode);\n }\n\n /**\n * Set view mode explicitly\n */\n public setViewMode(mode: CollectionViewMode): void {\n this.viewMode = mode;\n // Save preference to localStorage\n localStorage.setItem('collections-view-mode', mode);\n }\n\n /**\n * Toggle selection mode on/off\n * When entering select mode, clicks toggle selection instead of opening items\n * When exiting select mode, clears any selections\n */\n public toggleSelectMode(): void {\n this.isSelectMode = !this.isSelectMode;\n if (!this.isSelectMode) {\n // Clear selection when exiting select mode (clearSelection calls buildUnifiedItemList which calls cdr)\n this.clearSelection();\n } else {\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Exit selection mode (called when navigating to a new folder)\n */\n private exitSelectMode(): void {\n if (this.isSelectMode) {\n this.isSelectMode = false;\n this.clearSelection();\n }\n }\n\n /**\n * Set sort order - toggles asc/desc if clicking same column\n */\n public setSortBy(sortBy: CollectionSortBy): void {\n if (this.sortBy === sortBy) {\n // Toggle order if same sort\n this.sortOrder = this.sortOrder === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortBy = sortBy;\n this.sortOrder = 'asc';\n }\n\n // Save sort preferences to localStorage\n localStorage.setItem('collections-sort-by', this.sortBy);\n localStorage.setItem('collections-sort-order', this.sortOrder);\n\n // Close dropdown and rebuild list\n this.showSortDropdown = false;\n this.buildUnifiedItemList();\n }\n\n /**\n * Filter items by search query (Phase 2)\n */\n public onSearchChange(query?: string): void {\n // If query parameter provided, use it; otherwise use searchQuery property\n const searchText = query !== undefined ? query : this.searchQuery;\n\n if (!searchText.trim()) {\n // Reset to all items\n this.buildUnifiedItemList();\n return;\n }\n\n const lowerQuery = searchText.toLowerCase();\n this.unifiedItems = this.unifiedItems.filter(item =>\n item.name.toLowerCase().includes(lowerQuery) ||\n item.description?.toLowerCase().includes(lowerQuery)\n );\n }\n\n /**\n * Multi-select: Toggle item selection (Phase 3)\n */\n public toggleItemSelection(item: CollectionViewItem, event: MouseEvent): void {\n event.stopPropagation();\n\n if (event.metaKey || event.ctrlKey) {\n // Cmd/Ctrl+Click: Toggle individual selection\n if (this.selectedItems.has(item.id)) {\n this.selectedItems.delete(item.id);\n } else {\n this.selectedItems.add(item.id);\n }\n } else if (event.shiftKey) {\n // Shift+Click: Select range (TODO: implement range selection)\n this.selectedItems.add(item.id);\n } else {\n // Regular click: Select only this item\n this.selectedItems.clear();\n this.selectedItems.add(item.id);\n }\n\n this.buildUnifiedItemList(); // Refresh to update selected states\n }\n\n /**\n * Multi-select: Select all items (Phase 3)\n */\n public selectAll(): void {\n this.selectedItems.clear();\n for (const item of this.unifiedItems) {\n this.selectedItems.add(item.id);\n }\n this.buildUnifiedItemList();\n }\n\n /**\n * Multi-select: Clear selection (Phase 3)\n */\n public clearSelection(): void {\n this.selectedItems.clear();\n this.buildUnifiedItemList();\n }\n\n /**\n * Multi-select: Delete selected items\n */\n public async deleteSelected(): Promise<void> {\n if (this.selectedItems.size === 0) return;\n\n const confirmed = await this.dialogService.confirm({\n title: `Delete ${this.selectedItems.size} item(s)?`,\n message: 'This action cannot be undone.',\n dangerous: true\n });\n\n if (!confirmed) return;\n\n const selectedViewItems = this.unifiedItems.filter(item => this.selectedItems.has(item.id));\n const folderItems = selectedViewItems.filter(item => item.type === 'folder' && item.collection);\n const artifactItems = selectedViewItems.filter(item => item.type === 'artifact' && item.version);\n\n try {\n for (const item of folderItems) {\n await this.deleteCollectionRecursive(item.collection!.ID);\n }\n\n if (artifactItems.length > 0 && this.currentCollectionId) {\n const rv = new RunView();\n for (const item of artifactItems) {\n const result = await rv.RunView<MJCollectionArtifactEntity>({\n EntityName: 'MJ: Collection Artifacts',\n ExtraFilter: `CollectionID='${this.currentCollectionId}' AND ArtifactVersionID='${item.version!.ID}'`,\n ResultType: 'entity_object'\n }, this.currentUser);\n\n if (result.Success && result.Results) {\n for (const joinRecord of result.Results) {\n await joinRecord.Delete();\n }\n }\n }\n }\n\n this.clearSelection();\n await this.loadCollections();\n if (artifactItems.length > 0) {\n await this.loadArtifacts();\n }\n this.buildUnifiedItemList();\n } catch (error) {\n console.error('Error deleting selected items:', error);\n await this.dialogService.alert('Error', `An error occurred while deleting: ${error}`);\n }\n }\n\n /**\n * Get count of items in folder (Phase 1)\n */\n private async getCollectionItemCount(collectionId: string): Promise<number> {\n // TODO: Query for actual count\n return 0;\n }\n\n /**\n * Handle clicking on unified item\n * In select mode: toggles selection\n * In normal mode: opens item (folder or artifact)\n */\n public onItemClick(item: CollectionViewItem, event?: MouseEvent): void {\n // In select mode, single click toggles selection\n if (this.isSelectMode) {\n this.toggleItemSelectionSimple(item);\n return;\n }\n\n // Normal mode: open the item\n this.openItem(item);\n }\n\n /**\n * Handle double-clicking on unified item\n * Always opens the item, even in select mode\n */\n public onItemDoubleClick(item: CollectionViewItem, event?: MouseEvent): void {\n event?.preventDefault();\n this.openItem(item);\n }\n\n /**\n * Open an item (folder or artifact)\n */\n private openItem(item: CollectionViewItem): void {\n if (item.type === 'folder' && item.collection) {\n // Exit select mode when navigating to a new folder\n this.exitSelectMode();\n this.openCollection(item.collection);\n } else if (item.type === 'artifact') {\n if (!item.artifact || !item.version) {\n console.error('Artifact or version is missing for item:', item.id);\n return;\n }\n this.viewArtifact({ artifact: item.artifact, version: item.version });\n }\n }\n\n /**\n * Simple toggle for item selection (used in select mode)\n */\n private toggleItemSelectionSimple(item: CollectionViewItem): void {\n if (this.selectedItems.has(item.id)) {\n this.selectedItems.delete(item.id);\n } else {\n this.selectedItems.add(item.id);\n }\n this.buildUnifiedItemList();\n }\n\n /**\n * Get item count text for display\n */\n public getItemCountText(itemCount?: number): string {\n if (itemCount !== undefined) {\n if (itemCount === 0) return 'Empty';\n if (itemCount === 1) return '1 item';\n return `${itemCount} items`;\n }\n\n const folders = this.unifiedItems.filter(i => i.type === 'folder').length;\n const artifacts = this.unifiedItems.filter(i => i.type === 'artifact').length;\n const total = folders + artifacts;\n\n if (total === 0) return 'No items';\n if (total === 1) return '1 item';\n\n const parts: string[] = [];\n if (folders > 0) parts.push(`${folders} folder${folders > 1 ? 's' : ''}`);\n if (artifacts > 0) parts.push(`${artifacts} artifact${artifacts > 1 ? 's' : ''}`);\n\n return parts.join(', ');\n }\n\n /**\n * Handle keyboard shortcuts\n * - Cmd/Ctrl+A: Select all (enters select mode if not already)\n * - Escape: Exit select mode and clear selection\n * - Delete/Backspace: Delete selected items\n */\n public handleKeyboardShortcut(event: KeyboardEvent): void {\n // Cmd+A / Ctrl+A: Select all (enters select mode)\n if ((event.metaKey || event.ctrlKey) && event.key === 'a') {\n event.preventDefault();\n if (!this.isSelectMode) {\n this.isSelectMode = true;\n }\n this.selectAll();\n return;\n }\n\n // Escape: Exit select mode\n if (event.key === 'Escape' && this.isSelectMode) {\n event.preventDefault();\n this.exitSelectMode();\n return;\n }\n\n // Delete/Backspace: Delete selected items\n if ((event.key === 'Delete' || event.key === 'Backspace') && this.selectedItems.size > 0) {\n // Only if not focused on an input\n const target = event.target as HTMLElement;\n if (target.tagName !== 'INPUT' && target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n this.deleteSelected();\n }\n return;\n }\n }\n\n /**\n * Handle right-click context menu - shows custom context menu with permission-gated actions\n */\n public onItemContextMenu(item: CollectionViewItem, event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n // Close any open dropdowns\n this.showNewDropdown = false;\n this.showSortDropdown = false;\n\n this.contextMenuItem = item;\n this.contextMenuPosition = this.clampContextMenuPosition(event.clientX, event.clientY);\n this.showContextMenu = true;\n this.cdr.detectChanges();\n }\n\n /** Clamp menu position to keep it within the viewport */\n private clampContextMenuPosition(x: number, y: number): { x: number; y: number } {\n const menuWidth = 200;\n const menuHeight = 200;\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n return {\n x: Math.min(x, viewportWidth - menuWidth),\n y: Math.min(y, viewportHeight - menuHeight)\n };\n }\n\n public closeContextMenu(): void {\n this.showContextMenu = false;\n this.contextMenuItem = null;\n this.cdr.detectChanges();\n }\n\n /** Handle context menu action dispatch */\n public onContextMenuAction(action: string): void {\n const item = this.contextMenuItem;\n this.closeContextMenu();\n if (!item) return;\n\n switch (action) {\n case 'open':\n this.openItem(item);\n break;\n case 'view':\n this.openItem(item);\n break;\n case 'share':\n if (item.collection) {\n this.shareCollection(item.collection);\n }\n break;\n case 'edit':\n if (item.collection) {\n this.editCollection(item.collection);\n }\n break;\n case 'delete':\n if (item.collection) {\n this.deleteCollection(item.collection);\n }\n break;\n case 'remove':\n if (item.artifact && item.version) {\n this.removeArtifact({ artifact: item.artifact, version: item.version });\n }\n break;\n }\n }\n\n /** Close context menu on Escape key */\n @HostListener('document:keydown.escape')\n public onEscapeKey(): void {\n if (this.showContextMenu) {\n this.closeContextMenu();\n }\n }\n}\n"]}