@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.
Files changed (42) hide show
  1. package/dist/generated/lazy-feature-config.d.ts +1 -1
  2. package/dist/generated/lazy-feature-config.d.ts.map +1 -1
  3. package/dist/generated/lazy-feature-config.js +5 -3
  4. package/dist/generated/lazy-feature-config.js.map +1 -1
  5. package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
  6. package/dist/lib/resource-wrappers/chat-collections-resource.component.js +9 -2
  7. package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
  8. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +8 -0
  9. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
  10. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +25 -0
  11. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
  12. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
  13. package/dist/lib/resource-wrappers/dashboard-resource.component.js +23 -1
  14. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  15. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +6 -0
  16. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
  17. package/dist/lib/resource-wrappers/search-results-resource.component.js +21 -0
  18. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
  19. package/dist/lib/resource-wrappers/view-resource.component.d.ts +12 -0
  20. package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
  21. package/dist/lib/resource-wrappers/view-resource.component.js +107 -15
  22. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
  23. package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +11 -0
  24. package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -1
  25. package/dist/lib/shell/components/tabs/component-cache-manager.js +26 -0
  26. package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -1
  27. package/dist/lib/shell/components/tabs/tab-container.component.d.ts +26 -0
  28. package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
  29. package/dist/lib/shell/components/tabs/tab-container.component.js +75 -3
  30. package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
  31. package/dist/lib/shell/shell.component.d.ts.map +1 -1
  32. package/dist/lib/shell/shell.component.js +42 -7
  33. package/dist/lib/shell/shell.component.js.map +1 -1
  34. package/dist/lib/single-list-detail/single-list-detail.component.d.ts +153 -3
  35. package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
  36. package/dist/lib/single-list-detail/single-list-detail.component.js +1479 -271
  37. package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
  38. package/dist/module.d.ts +4 -3
  39. package/dist/module.d.ts.map +1 -1
  40. package/dist/module.js +4 -0
  41. package/dist/module.js.map +1 -1
  42. 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":"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"}
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;AAM7C,OAAO,EAAyB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AACrE;;;;;;;;;GASG;AACH,qBAOa,qBAAsB,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IAoDvG,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,GAAG;IAxDgC,WAAW,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC9B,sBAAsB,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAE5G;;;;OAIG;IACO,yBAAyB,qBAA4B;IAE/D;;;OAGG;IACO,eAAe,qBAA4B;IAErD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IAC7C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,yBAAyB,CAAS;IAG1C,OAAO,CAAC,aAAa,CAA0D;IAK/E,OAAO,CAAC,oBAAoB,CAAqB;IAGjD,OAAO,CAAC,YAAY,CAAwB;IAI5C,qBAAqB,UAAS;IAC9B,OAAO,CAAC,0BAA0B,CAAoD;IACtF,6EAA6E;IAC7E,OAAO,CAAC,2BAA2B,CAAwF;IAC3H,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,8BAA8B,CAAuB;IAC7D,OAAO,CAAC,qBAAqB,CAAS;IAGtC,kBAAkB,UAAS;IAC3B,YAAY,SAAK;IACjB,YAAY,SAAK;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAG7B,aAAa,EAAE,mBAAmB,EAClC,gBAAgB,EAAE,qBAAqB,EACvC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,cAAc,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,GAAG,EAAE,iBAAiB;IAOhC,QAAQ,IAAI,IAAI;IAmEhB,eAAe,IAAI,IAAI;IAUvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmH9B;;;;;;;;OAQG;IACI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,GAAG,MAAM;IAStF;;;;;;;;;;;;;OAaG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3C,WAAW,IAAI,IAAI;IAiBnB;;;;OAIG;IAEH,cAAc,IAAI,IAAI;IAMtB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAkFpC;;OAEG;YACW,yBAAyB;IAmLvC;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,8BAA8B;IAsBtC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;OAEG;IACH,OAAO,CAAC,SAAS;IAoBjB;;OAEG;YACW,UAAU;IAQxB;;;OAGG;YACW,cAAc;IAuJ5B;;;OAGG;YACW,oBAAoB;IA8ClC;;OAEG;YACW,0BAA0B;IAwBxC;;OAEG;YACW,sBAAsB;IA4DpC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAkC;IAEtE;;OAEG;YACW,qBAAqB;YA8BrB,iBAAiB;IAQ/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgChC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAuFjC;;OAEG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA8B1D;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;OAEG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAIhC;IAED;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,cAAc,IAAI,IAAI;IAOtB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAO5B;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAO7B;;OAEG;IACH,IAAI,wBAAwB,IAAI,OAAO,CAMtC;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDzC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;YACW,0BAA0B;IA2BxC;;;OAGG;IACU,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAiBlE;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAIjC;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;yCA/8CvB,qBAAqB;2CAArB,qBAAqB;CAsgDjC"}
@@ -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
- // Restore saved queryParams to the tab config so the URL reflects
465
- // the component's preserved state (e.g., selected conversation, collection drill-down).
466
- if (cached.savedQueryParams) {
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
  });