@memberjunction/ng-explorer-core 5.34.1 → 5.36.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.
- package/dist/generated/lazy-feature-config.d.ts +1 -1
- package/dist/generated/lazy-feature-config.d.ts.map +1 -1
- package/dist/generated/lazy-feature-config.js +5 -3
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js +9 -2
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +25 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +23 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +6 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +21 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +12 -0
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +107 -15
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +11 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.js +26 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts +26 -0
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.js +75 -3
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +42 -7
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts +153 -3
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +1479 -271
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/module.d.ts +4 -3
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +4 -0
- package/dist/module.js.map +1 -1
- package/package.json +44 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-container.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/tabs/tab-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,SAAS,EACT,aAAa,EAEb,UAAU,EACV,cAAc,EACd,mBAAmB,EAKnB,iBAAiB,EAGjB,YAAY,EAEb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAKnB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"tab-container.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/tabs/tab-container.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -308,6 +308,64 @@ export class TabContainerComponent extends BaseAngularComponent {
|
|
|
308
308
|
}
|
|
309
309
|
}, 50);
|
|
310
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* Clear cached components matching a predicate. Components that match are
|
|
313
|
+
* destroyed; others are kept. Use for tenant switching — clear org-scoped
|
|
314
|
+
* components while keeping system/global components alive.
|
|
315
|
+
*
|
|
316
|
+
* @param predicate Return true for components that should be destroyed.
|
|
317
|
+
* If omitted, clears ALL cached components.
|
|
318
|
+
* @returns Number of components destroyed.
|
|
319
|
+
*/
|
|
320
|
+
ClearComponentCache(predicate) {
|
|
321
|
+
if (predicate) {
|
|
322
|
+
return this.cacheManager.ClearCacheByPredicate(predicate);
|
|
323
|
+
}
|
|
324
|
+
const stats = this.cacheManager.getCacheStats();
|
|
325
|
+
this.cacheManager.clearCache();
|
|
326
|
+
return stats.total;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Destroy all cached components and reload open tabs.
|
|
330
|
+
*
|
|
331
|
+
* In single-resource mode: clears the signature to force a reload, then
|
|
332
|
+
* re-invokes loadSingleResourceContent().
|
|
333
|
+
*
|
|
334
|
+
* In multi-tab mode: destroys all cached components, marks all tabs as
|
|
335
|
+
* not-loaded, then reloads the currently active tab immediately. Other
|
|
336
|
+
* tabs reload lazily when the user switches to them (onTabShown fires
|
|
337
|
+
* with isFirstShow=true after MarkTabNotLoaded).
|
|
338
|
+
*
|
|
339
|
+
* Use this for tenant switching — tabs stay open but their components
|
|
340
|
+
* are recreated fresh with the new org context.
|
|
341
|
+
*/
|
|
342
|
+
async ReloadAllTabs() {
|
|
343
|
+
// Destroy all cached component instances
|
|
344
|
+
this.cacheManager.clearCache();
|
|
345
|
+
if (this.useSingleResourceMode) {
|
|
346
|
+
// Force reload by clearing the signature check
|
|
347
|
+
this.currentSingleResourceSignature = null;
|
|
348
|
+
this.singleResourceComponentRef = null;
|
|
349
|
+
this.singleResourceCacheIdentity = null;
|
|
350
|
+
await this.loadSingleResourceContent();
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
// Mark all tabs as not-loaded so onTabShown will trigger loadTabContent
|
|
354
|
+
const tabIds = this.layoutManager.GetAllTabIds();
|
|
355
|
+
for (const tabId of tabIds) {
|
|
356
|
+
this.layoutManager.MarkTabNotLoaded(tabId);
|
|
357
|
+
}
|
|
358
|
+
// Reload the currently active tab immediately
|
|
359
|
+
const activeTabId = this.workspaceManager.GetActiveTabId();
|
|
360
|
+
if (activeTabId && this.layoutManager.IsInitialized) {
|
|
361
|
+
const container = this.layoutManager.GetContainer(activeTabId);
|
|
362
|
+
if (container) {
|
|
363
|
+
await this.loadTabContent(activeTabId, container);
|
|
364
|
+
this.layoutManager.MarkTabLoaded(activeTabId);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
311
369
|
ngOnDestroy() {
|
|
312
370
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
313
371
|
// Cleanup single-resource mode component if exists
|
|
@@ -461,9 +519,23 @@ export class TabContainerComponent extends BaseAngularComponent {
|
|
|
461
519
|
// Store reference and identity for cleanup/detachment
|
|
462
520
|
this.singleResourceComponentRef = cached.componentRef;
|
|
463
521
|
this.singleResourceCacheIdentity = { driverClass, recordId: resourceData.ResourceRecordID || '', appId: activeTab.applicationId, tabId: activeTab.id };
|
|
464
|
-
//
|
|
465
|
-
// the
|
|
466
|
-
|
|
522
|
+
// Reconcile the cached component's preserved queryParams with any INCOMING navigation
|
|
523
|
+
// intent already on the tab config (e.g. a Home pin / deep link that targeted a specific
|
|
524
|
+
// conversation via SwitchToApp before we got here).
|
|
525
|
+
//
|
|
526
|
+
// - If the tab has incoming queryParams, those are the source of truth: keep them and
|
|
527
|
+
// sync the cache's snapshot to match. The component's reactive query-param subscription
|
|
528
|
+
// (alive while detached) delivers them, so it switches to the requested state. Restoring
|
|
529
|
+
// savedQueryParams here instead would clobber the navigation intent — the bug where two
|
|
530
|
+
// conversation pins both reopened whatever chat was already cached.
|
|
531
|
+
// - Only when there's NO incoming intent (a plain tab re-focus) do we restore the
|
|
532
|
+
// component's own preserved params so the URL reflects its retained state.
|
|
533
|
+
const incomingQP = activeTab.configuration?.['queryParams'];
|
|
534
|
+
const hasIncomingQP = incomingQP != null && Object.keys(incomingQP).length > 0;
|
|
535
|
+
if (hasIncomingQP) {
|
|
536
|
+
cached.savedQueryParams = { ...incomingQP };
|
|
537
|
+
}
|
|
538
|
+
else if (cached.savedQueryParams) {
|
|
467
539
|
this.workspaceManager.UpdateTabConfiguration(activeTab.id, {
|
|
468
540
|
queryParams: cached.savedQueryParams
|
|
469
541
|
});
|