@memberjunction/ng-dashboards 5.39.0 → 5.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +128 -4
  2. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  3. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +548 -145
  4. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  5. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
  6. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
  7. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
  8. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
  9. package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
  10. package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
  11. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
  12. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
  13. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
  14. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
  15. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
  16. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
  17. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
  18. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
  19. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
  20. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
  21. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
  22. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
  23. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
  24. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
  25. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
  26. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
  27. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
  28. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
  29. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +100 -2
  30. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  31. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +603 -213
  32. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  33. package/dist/AI/components/autotagging/shared/classify.format.d.ts +15 -0
  34. package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -1
  35. package/dist/AI/components/autotagging/shared/classify.format.js +51 -0
  36. package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -1
  37. package/dist/AI/components/autotagging/shared/classify.types.d.ts +43 -0
  38. package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -1
  39. package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -1
  40. package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +38 -1
  41. package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -1
  42. package/dist/AI/components/autotagging/tabs/history-tab.component.js +185 -68
  43. package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -1
  44. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +10 -1
  45. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -1
  46. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +249 -188
  47. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -1
  48. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +12 -1
  49. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  50. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +377 -296
  51. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  52. package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +8 -0
  53. package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -1
  54. package/dist/AI/components/autotagging/tabs/tags-tab.component.js +112 -68
  55. package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -1
  56. package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +9 -0
  57. package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -1
  58. package/dist/AI/components/autotagging/tabs/types-tab.component.js +87 -36
  59. package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -1
  60. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
  61. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  62. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +15 -3
  63. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  64. package/dist/AI/components/execution-monitoring.component.js +1 -1
  65. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  66. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
  67. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  68. package/dist/AI/components/tags/tags-resource.component.js +28 -6
  69. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  70. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
  71. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  72. package/dist/AI/components/vectors/vector-management-resource.component.js +330 -302
  73. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  74. package/dist/APIKeys/api-applications-panel.component.js +2 -2
  75. package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
  76. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
  77. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  78. package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
  79. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  80. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  81. package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
  82. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  83. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
  84. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +12 -9
  85. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  86. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
  87. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  88. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -120
  89. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  90. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
  91. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
  92. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
  93. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
  94. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
  95. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
  96. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
  97. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
  98. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
  99. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
  100. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
  101. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
  102. package/dist/KnowledgeHub/index.d.ts +3 -0
  103. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  104. package/dist/KnowledgeHub/index.js +3 -0
  105. package/dist/KnowledgeHub/index.js.map +1 -1
  106. package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
  107. package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
  108. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  109. package/dist/ai-dashboards.module.d.ts +48 -38
  110. package/dist/ai-dashboards.module.d.ts.map +1 -1
  111. package/dist/ai-dashboards.module.js +41 -1
  112. package/dist/ai-dashboards.module.js.map +1 -1
  113. package/dist/data-explorer-dashboards.module.d.ts +12 -14
  114. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  115. package/dist/data-explorer-dashboards.module.js +5 -14
  116. package/dist/data-explorer-dashboards.module.js.map +1 -1
  117. package/dist/public-api.d.ts +3 -0
  118. package/dist/public-api.d.ts.map +1 -1
  119. package/dist/public-api.js +3 -0
  120. package/dist/public-api.js.map +1 -1
  121. package/package.json +57 -55
  122. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
  123. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
  124. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
  125. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
  126. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
  127. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
  128. package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
  129. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
@@ -7,55 +7,74 @@
7
7
  * count). The slide-in CRUD form stays in the host — this tab emits
8
8
  * Add/Edit intents up via @Output and the host opens its existing form.
9
9
  */
10
- import { Component, EventEmitter, Input, Output } from '@angular/core';
10
+ import { Component, ChangeDetectorRef, EventEmitter, Input, Output, inject } from '@angular/core';
11
11
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
12
12
  import { formatNumber } from '../shared/classify.format';
13
13
  import * as i0 from "@angular/core";
14
- import * as i1 from "@memberjunction/ng-ui-components";
14
+ import * as i1 from "@memberjunction/ng-shared-generic";
15
+ import * as i2 from "@memberjunction/ng-ui-components";
16
+ import * as i3 from "../components/classify-org-context-editor.component";
15
17
  const _forTrack0 = ($index, $item) => $item.ID;
16
- function ClassifyTypesTabComponent_For_11_Template(rf, ctx) { if (rf & 1) {
18
+ function ClassifyTypesTabComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelement(0, "i", 18);
20
+ i0.ɵɵelementStart(1, "span", 5);
21
+ i0.ɵɵtext(2, "Refreshing\u2026");
22
+ i0.ɵɵelementEnd();
23
+ } }
24
+ function ClassifyTypesTabComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
25
+ i0.ɵɵelement(0, "i", 19);
26
+ i0.ɵɵelementStart(1, "span", 5);
27
+ i0.ɵɵtext(2, "Refresh");
28
+ i0.ɵɵelementEnd();
29
+ } }
30
+ function ClassifyTypesTabComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelementStart(0, "div", 8);
32
+ i0.ɵɵelement(1, "mj-loading", 20);
33
+ i0.ɵɵelementEnd();
34
+ } }
35
+ function ClassifyTypesTabComponent_For_17_Template(rf, ctx) { if (rf & 1) {
17
36
  const _r1 = i0.ɵɵgetCurrentView();
18
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 14)(2, "span", 15);
37
+ i0.ɵɵelementStart(0, "div", 13)(1, "div", 21)(2, "span", 22);
19
38
  i0.ɵɵtext(3);
20
39
  i0.ɵɵelementEnd();
21
- i0.ɵɵelementStart(4, "span", 16);
40
+ i0.ɵɵelementStart(4, "span", 23);
22
41
  i0.ɵɵtext(5);
23
42
  i0.ɵɵelementEnd()();
24
- i0.ɵɵelementStart(6, "div", 17)(7, "span", 18);
43
+ i0.ɵɵelementStart(6, "div", 24)(7, "span", 25);
25
44
  i0.ɵɵtext(8, "Description");
26
45
  i0.ɵɵelementEnd();
27
- i0.ɵɵelementStart(9, "span", 19);
46
+ i0.ɵɵelementStart(9, "span", 26);
28
47
  i0.ɵɵtext(10);
29
48
  i0.ɵɵelementEnd()();
30
- i0.ɵɵelementStart(11, "div", 17)(12, "span", 18);
49
+ i0.ɵɵelementStart(11, "div", 24)(12, "span", 25);
31
50
  i0.ɵɵtext(13, "Sources Using");
32
51
  i0.ɵɵelementEnd();
33
- i0.ɵɵelementStart(14, "span", 19);
52
+ i0.ɵɵelementStart(14, "span", 26);
34
53
  i0.ɵɵtext(15);
35
54
  i0.ɵɵelementEnd()();
36
- i0.ɵɵelementStart(16, "div", 17)(17, "span", 18);
55
+ i0.ɵɵelementStart(16, "div", 24)(17, "span", 25);
37
56
  i0.ɵɵtext(18, "Items Tagged");
38
57
  i0.ɵɵelementEnd();
39
- i0.ɵɵelementStart(19, "span", 19);
58
+ i0.ɵɵelementStart(19, "span", 26);
40
59
  i0.ɵɵtext(20);
41
60
  i0.ɵɵelementEnd()();
42
- i0.ɵɵelementStart(21, "div", 20);
43
- i0.ɵɵelement(22, "i", 21);
61
+ i0.ɵɵelementStart(21, "div", 27);
62
+ i0.ɵɵelement(22, "i", 28);
44
63
  i0.ɵɵelementStart(23, "span");
45
64
  i0.ɵɵtext(24);
46
65
  i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(25, "div", 22);
48
- i0.ɵɵelement(26, "div", 23);
66
+ i0.ɵɵelementStart(25, "div", 29);
67
+ i0.ɵɵelement(26, "div", 30);
49
68
  i0.ɵɵelementEnd();
50
69
  i0.ɵɵelementStart(27, "span");
51
70
  i0.ɵɵtext(28);
52
71
  i0.ɵɵelementEnd();
53
- i0.ɵɵelementStart(29, "span", 24);
72
+ i0.ɵɵelementStart(29, "span", 31);
54
73
  i0.ɵɵtext(30, "tags/item");
55
74
  i0.ɵɵelementEnd()();
56
- i0.ɵɵelementStart(31, "div", 25)(32, "button", 26);
57
- i0.ɵɵlistener("click", function ClassifyTypesTabComponent_For_11_Template_button_click_32_listener() { const card_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onEditType(card_r2)); });
58
- i0.ɵɵelement(33, "i", 27);
75
+ i0.ɵɵelementStart(31, "div", 32)(32, "button", 33);
76
+ i0.ɵɵlistener("click", function ClassifyTypesTabComponent_For_17_Template_button_click_32_listener() { const card_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onEditType(card_r2)); });
77
+ i0.ɵɵelement(33, "i", 34);
59
78
  i0.ɵɵtext(34, " Edit");
60
79
  i0.ɵɵelementEnd()()();
61
80
  } if (rf & 2) {
@@ -79,6 +98,9 @@ function ClassifyTypesTabComponent_For_11_Template(rf, ctx) { if (rf & 1) {
79
98
  i0.ɵɵtextInterpolate(card_r2.MaxTags);
80
99
  } }
81
100
  export class ClassifyTypesTabComponent extends BaseAngularComponent {
101
+ cdr = inject(ChangeDetectorRef);
102
+ /** Shown while a manual Refresh() recomputes the content-type cards. */
103
+ IsLoading = false;
82
104
  /** Raw `MJ: Content Types` rows — the primary source for the cards. */
83
105
  _contentTypes = [];
84
106
  set ContentTypes(value) {
@@ -121,6 +143,18 @@ export class ClassifyTypesTabComponent extends BaseAngularComponent {
121
143
  /** Bubble Add/Edit intents to the host, which owns the slide-in CRUD form. */
122
144
  AddTypeRequested = new EventEmitter();
123
145
  EditTypeRequested = new EventEmitter();
146
+ /**
147
+ * Recompute the content-type cards from the current host-supplied inputs. The
148
+ * data is host-owned (flows in via @Input); Refresh rebuilds the view models
149
+ * and surfaces a brief loading state for user feedback.
150
+ */
151
+ async Refresh() {
152
+ this.IsLoading = true;
153
+ this.cdr.detectChanges();
154
+ this.rebuild();
155
+ this.IsLoading = false;
156
+ this.cdr.detectChanges();
157
+ }
124
158
  onAddType() {
125
159
  this.AddTypeRequested.emit();
126
160
  }
@@ -175,34 +209,51 @@ export class ClassifyTypesTabComponent extends BaseAngularComponent {
175
209
  return counts;
176
210
  }
177
211
  static ɵfac = /*@__PURE__*/ (() => { let ɵClassifyTypesTabComponent_BaseFactory; return function ClassifyTypesTabComponent_Factory(__ngFactoryType__) { return (ɵClassifyTypesTabComponent_BaseFactory || (ɵClassifyTypesTabComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ClassifyTypesTabComponent)))(__ngFactoryType__ || ClassifyTypesTabComponent); }; })();
178
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ClassifyTypesTabComponent, selectors: [["classify-types-tab"]], inputs: { ContentTypes: "ContentTypes", Sources: "Sources", Items: "Items", TotalItemCount: "TotalItemCount" }, outputs: { AddTypeRequested: "AddTypeRequested", EditTypeRequested: "EditTypeRequested" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 2, consts: [["Title", "Content Types", "Subtitle", "Configure AI tagging rules per content category"], ["actions", ""], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "mj-action-label"], [3, "Padding", "Flex"], [1, "at-main-area"], [1, "at-page-body"], [1, "at-ct-grid"], [1, "at-ct-card"], [1, "at-add-type-card", 3, "click"], [1, "fa-solid", "fa-plus-circle"], [2, "font-size", "0.85rem", "font-weight", "600"], [2, "font-size", "0.72rem"], [1, "at-ct-card-header"], [1, "at-ct-card-name"], [1, "at-ct-card-model"], [1, "at-ct-field"], [1, "at-ct-field-label"], [1, "at-ct-field-value"], [1, "at-ct-tag-range"], [1, "fa-solid", "fa-tags"], [1, "at-ct-tag-range-bar"], [1, "at-ct-tag-range-fill"], [1, "at-ct-range-suffix"], [1, "at-source-card-actions", 2, "margin-top", "10px"], [1, "at-source-action-btn", 3, "click"], [1, "fa-solid", "fa-pen"]], template: function ClassifyTypesTabComponent_Template(rf, ctx) { if (rf & 1) {
212
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ClassifyTypesTabComponent, selectors: [["classify-types-tab"]], inputs: { ContentTypes: "ContentTypes", Sources: "Sources", Items: "Items", TotalItemCount: "TotalItemCount" }, outputs: { AddTypeRequested: "AddTypeRequested", EditTypeRequested: "EditTypeRequested" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 24, vars: 6, consts: [["Title", "Content Types", "Subtitle", "Configure AI tagging rules per content category"], ["actions", ""], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click", "disabled"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "mj-action-label"], [3, "Padding", "Flex"], [1, "at-main-area"], [1, "at-loading-overlay"], [1, "at-page-body"], [1, "at-org-ctx-wrap"], [3, "Provider"], [1, "at-ct-grid"], [1, "at-ct-card"], [1, "at-add-type-card", 3, "click"], [1, "fa-solid", "fa-plus-circle"], [2, "font-size", "0.85rem", "font-weight", "600"], [2, "font-size", "0.72rem"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-arrows-rotate"], ["text", "Refreshing content types\u2026"], [1, "at-ct-card-header"], [1, "at-ct-card-name"], [1, "at-ct-card-model"], [1, "at-ct-field"], [1, "at-ct-field-label"], [1, "at-ct-field-value"], [1, "at-ct-tag-range"], [1, "fa-solid", "fa-tags"], [1, "at-ct-tag-range-bar"], [1, "at-ct-tag-range-fill"], [1, "at-ct-range-suffix"], [1, "at-source-card-actions", 2, "margin-top", "10px"], [1, "at-source-action-btn", 3, "click"], [1, "fa-solid", "fa-pen"]], template: function ClassifyTypesTabComponent_Template(rf, ctx) { if (rf & 1) {
179
213
  i0.ɵɵelementStart(0, "mj-page-header-interior", 0)(1, "div", 1)(2, "button", 2);
180
- i0.ɵɵlistener("click", function ClassifyTypesTabComponent_Template_button_click_2_listener() { return ctx.onAddType(); });
181
- i0.ɵɵelement(3, "i", 3);
182
- i0.ɵɵelementStart(4, "span", 4);
183
- i0.ɵɵtext(5, "Add Type");
214
+ i0.ɵɵlistener("click", function ClassifyTypesTabComponent_Template_button_click_2_listener() { return ctx.Refresh(); });
215
+ i0.ɵɵconditionalCreate(3, ClassifyTypesTabComponent_Conditional_3_Template, 3, 0)(4, ClassifyTypesTabComponent_Conditional_4_Template, 3, 0);
216
+ i0.ɵɵelementEnd();
217
+ i0.ɵɵelementStart(5, "button", 3);
218
+ i0.ɵɵlistener("click", function ClassifyTypesTabComponent_Template_button_click_5_listener() { return ctx.onAddType(); });
219
+ i0.ɵɵelement(6, "i", 4);
220
+ i0.ɵɵelementStart(7, "span", 5);
221
+ i0.ɵɵtext(8, "Add Type");
184
222
  i0.ɵɵelementEnd()()()();
185
- i0.ɵɵelementStart(6, "mj-page-body-interior", 5)(7, "div", 6)(8, "div", 7)(9, "div", 8);
186
- i0.ɵɵrepeaterCreate(10, ClassifyTypesTabComponent_For_11_Template, 35, 11, "div", 9, _forTrack0);
187
- i0.ɵɵelementStart(12, "div", 10);
188
- i0.ɵɵlistener("click", function ClassifyTypesTabComponent_Template_div_click_12_listener() { return ctx.onAddType(); });
189
- i0.ɵɵelement(13, "i", 11);
190
- i0.ɵɵelementStart(14, "span", 12);
191
- i0.ɵɵtext(15, "Add Content Type");
223
+ i0.ɵɵelementStart(9, "mj-page-body-interior", 6)(10, "div", 7);
224
+ i0.ɵɵconditionalCreate(11, ClassifyTypesTabComponent_Conditional_11_Template, 2, 0, "div", 8);
225
+ i0.ɵɵelementStart(12, "div", 9)(13, "div", 10);
226
+ i0.ɵɵelement(14, "classify-org-context-editor", 11);
227
+ i0.ɵɵelementEnd();
228
+ i0.ɵɵelementStart(15, "div", 12);
229
+ i0.ɵɵrepeaterCreate(16, ClassifyTypesTabComponent_For_17_Template, 35, 11, "div", 13, _forTrack0);
230
+ i0.ɵɵelementStart(18, "div", 14);
231
+ i0.ɵɵlistener("click", function ClassifyTypesTabComponent_Template_div_click_18_listener() { return ctx.onAddType(); });
232
+ i0.ɵɵelement(19, "i", 15);
233
+ i0.ɵɵelementStart(20, "span", 16);
234
+ i0.ɵɵtext(21, "Add Content Type");
192
235
  i0.ɵɵelementEnd();
193
- i0.ɵɵelementStart(16, "span", 13);
194
- i0.ɵɵtext(17, "Configure tagging rules");
236
+ i0.ɵɵelementStart(22, "span", 17);
237
+ i0.ɵɵtext(23, "Configure tagging rules");
195
238
  i0.ɵɵelementEnd()()()()()();
196
239
  } if (rf & 2) {
240
+ i0.ɵɵadvance(2);
241
+ i0.ɵɵproperty("disabled", ctx.IsLoading);
242
+ i0.ɵɵadvance();
243
+ i0.ɵɵconditional(ctx.IsLoading ? 3 : 4);
197
244
  i0.ɵɵadvance(6);
198
245
  i0.ɵɵproperty("Padding", false)("Flex", true);
199
- i0.ɵɵadvance(4);
246
+ i0.ɵɵadvance(2);
247
+ i0.ɵɵconditional(ctx.IsLoading ? 11 : -1);
248
+ i0.ɵɵadvance(3);
249
+ i0.ɵɵproperty("Provider", ctx.Provider);
250
+ i0.ɵɵadvance(2);
200
251
  i0.ɵɵrepeater(ctx.ContentTypeCards);
201
- } }, dependencies: [i1.MJButtonDirective, i1.MJPageHeaderInteriorComponent, i1.MJPageBodyInteriorComponent], encapsulation: 2 });
252
+ } }, dependencies: [i1.LoadingComponent, i2.MJButtonDirective, i2.MJPageHeaderInteriorComponent, i2.MJPageBodyInteriorComponent, i3.ClassifyOrgContextEditorComponent], styles: ["\n\n\n\n\n\n\n\n\n\n.at-org-ctx-wrap[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}"] });
202
253
  }
203
254
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ClassifyTypesTabComponent, [{
204
255
  type: Component,
205
- args: [{ standalone: false, selector: 'classify-types-tab', template: "<mj-page-header-interior\n Title=\"Content Types\"\n Subtitle=\"Configure AI tagging rules per content category\">\n <div actions>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"mj-action-label\">Add Type</span>\n </button>\n </div>\n</mj-page-header-interior>\n\n<mj-page-body-interior [Padding]=\"false\" [Flex]=\"true\">\n <div class=\"at-main-area\">\n <div class=\"at-page-body\">\n <div class=\"at-ct-grid\">\n @for (card of ContentTypeCards; track card.ID) {\n <div class=\"at-ct-card\">\n <div class=\"at-ct-card-header\">\n <span class=\"at-ct-card-name\">{{ card.Name }}</span>\n <span class=\"at-ct-card-model\">{{ card.AIModelName }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Description</span>\n <span class=\"at-ct-field-value\">{{ card.Description || '\u2014' }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Sources Using</span>\n <span class=\"at-ct-field-value\">{{ card.SourcesUsing }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Items Tagged</span>\n <span class=\"at-ct-field-value\">{{ formatNumber(card.ItemsTagged) }}</span>\n </div>\n <div class=\"at-ct-tag-range\">\n <i class=\"fa-solid fa-tags\"></i>\n <span>{{ card.MinTags }}</span>\n <div class=\"at-ct-tag-range-bar\">\n <div class=\"at-ct-tag-range-fill\" [style.left.%]=\"card.RangeLeftPct\" [style.right.%]=\"card.RangeRightPct\"></div>\n </div>\n <span>{{ card.MaxTags }}</span>\n <span class=\"at-ct-range-suffix\">tags/item</span>\n </div>\n <div class=\"at-source-card-actions\" style=\"margin-top: 10px;\">\n <button class=\"at-source-action-btn\" (click)=\"onEditType(card)\"><i class=\"fa-solid fa-pen\"></i> Edit</button>\n </div>\n </div>\n }\n <!-- Add Content Type Card -->\n <div class=\"at-add-type-card\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span style=\"font-size: 0.85rem; font-weight: 600;\">Add Content Type</span>\n <span style=\"font-size: 0.72rem;\">Configure tagging rules</span>\n </div>\n </div>\n </div>\n </div>\n</mj-page-body-interior>\n", styles: ["/*\n * Content Types tab styles.\n *\n * The host (AutotaggingPipelineResourceComponent) uses ViewEncapsulation.None,\n * so its `.at-*` rules are global and already style this tab's markup while it\n * renders inside the host shell. Tab-specific rules live here as the shared CSS\n * is partitioned during the host-slim step.\n */\n"] }]
256
+ args: [{ standalone: false, selector: 'classify-types-tab', template: "<mj-page-header-interior\n Title=\"Content Types\"\n Subtitle=\"Configure AI tagging rules per content category\">\n <div actions>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"Refresh()\" [disabled]=\"IsLoading\">\n @if (IsLoading) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> <span class=\"mj-action-label\">Refreshing\u2026</span>\n } @else {\n <i class=\"fa-solid fa-arrows-rotate\"></i> <span class=\"mj-action-label\">Refresh</span>\n }\n </button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"mj-action-label\">Add Type</span>\n </button>\n </div>\n</mj-page-header-interior>\n\n<mj-page-body-interior [Padding]=\"false\" [Flex]=\"true\">\n <div class=\"at-main-area\">\n @if (IsLoading) {\n <div class=\"at-loading-overlay\">\n <mj-loading text=\"Refreshing content types\u2026\"></mj-loading>\n </div>\n }\n <div class=\"at-page-body\">\n <!-- Org-level domain context (broadest classification-context scope) -->\n <div class=\"at-org-ctx-wrap\">\n <classify-org-context-editor [Provider]=\"Provider\"></classify-org-context-editor>\n </div>\n\n <div class=\"at-ct-grid\">\n @for (card of ContentTypeCards; track card.ID) {\n <div class=\"at-ct-card\">\n <div class=\"at-ct-card-header\">\n <span class=\"at-ct-card-name\">{{ card.Name }}</span>\n <span class=\"at-ct-card-model\">{{ card.AIModelName }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Description</span>\n <span class=\"at-ct-field-value\">{{ card.Description || '\u2014' }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Sources Using</span>\n <span class=\"at-ct-field-value\">{{ card.SourcesUsing }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Items Tagged</span>\n <span class=\"at-ct-field-value\">{{ formatNumber(card.ItemsTagged) }}</span>\n </div>\n <div class=\"at-ct-tag-range\">\n <i class=\"fa-solid fa-tags\"></i>\n <span>{{ card.MinTags }}</span>\n <div class=\"at-ct-tag-range-bar\">\n <div class=\"at-ct-tag-range-fill\" [style.left.%]=\"card.RangeLeftPct\" [style.right.%]=\"card.RangeRightPct\"></div>\n </div>\n <span>{{ card.MaxTags }}</span>\n <span class=\"at-ct-range-suffix\">tags/item</span>\n </div>\n <div class=\"at-source-card-actions\" style=\"margin-top: 10px;\">\n <button class=\"at-source-action-btn\" (click)=\"onEditType(card)\"><i class=\"fa-solid fa-pen\"></i> Edit</button>\n </div>\n </div>\n }\n <!-- Add Content Type Card -->\n <div class=\"at-add-type-card\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span style=\"font-size: 0.85rem; font-weight: 600;\">Add Content Type</span>\n <span style=\"font-size: 0.72rem;\">Configure tagging rules</span>\n </div>\n </div>\n </div>\n </div>\n</mj-page-body-interior>\n", styles: ["/*\n * Content Types tab styles.\n *\n * The host (AutotaggingPipelineResourceComponent) uses ViewEncapsulation.None,\n * so its `.at-*` rules are global and already style this tab's markup while it\n * renders inside the host shell. Tab-specific rules live here as the shared CSS\n * is partitioned during the host-slim step.\n */\n\n.at-org-ctx-wrap {\n margin-bottom: 16px;\n}\n"] }]
206
257
  }], null, { ContentTypes: [{
207
258
  type: Input
208
259
  }], Sources: [{
@@ -1 +1 @@
1
- {"version":3,"file":"types-tab.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/tabs/types-tab.component.ts","../../../../../src/AI/components/autotagging/tabs/types-tab.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Classify · Content Types tab.\n *\n * Self-contained sub-page: owns its header-interior and the content-type cards\n * grid. Receives the shared raw data needed to build the cards from the host\n * orchestrator (content types, sources, items, and the accurate total item\n * count). The slide-in CRUD form stays in the host — this tab emits\n * Add/Edit intents up via @Output and the host opens its existing form.\n */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { ContentTypeCard } from '../shared/classify.types';\nimport { formatNumber } from '../shared/classify.format';\n\n@Component({\n standalone: false,\n selector: 'classify-types-tab',\n templateUrl: './types-tab.component.html',\n styleUrls: ['./types-tab.component.css']\n})\nexport class ClassifyTypesTabComponent extends BaseAngularComponent {\n /** Raw `MJ: Content Types` rows — the primary source for the cards. */\n private _contentTypes: Record<string, unknown>[] = [];\n @Input()\n set ContentTypes(value: Record<string, unknown>[]) {\n this._contentTypes = value ?? [];\n this.rebuild();\n }\n get ContentTypes(): Record<string, unknown>[] {\n return this._contentTypes;\n }\n\n /** Raw `MJ: Content Sources` rows — used to count sources per content type. */\n private _sources: Record<string, unknown>[] = [];\n @Input()\n set Sources(value: Record<string, unknown>[]) {\n this._sources = value ?? [];\n this.rebuild();\n }\n get Sources(): Record<string, unknown>[] {\n return this._sources;\n }\n\n /** Raw `MJ: Content Items` rows — used to count items per content type. */\n private _items: Record<string, unknown>[] = [];\n @Input()\n set Items(value: Record<string, unknown>[]) {\n this._items = value ?? [];\n this.rebuild();\n }\n get Items(): Record<string, unknown>[] {\n return this._items;\n }\n\n /** Accurate total item count from TotalRowCount (used when a single content type exists). */\n private _totalItemCount = 0;\n @Input()\n set TotalItemCount(value: number) {\n this._totalItemCount = value ?? 0;\n this.rebuild();\n }\n get TotalItemCount(): number {\n return this._totalItemCount;\n }\n\n public ContentTypeCards: ContentTypeCard[] = [];\n\n /** Template-facing formatter (exposed so `formatNumber(...)` resolves in the view). */\n public readonly formatNumber = formatNumber;\n\n /** Bubble Add/Edit intents to the host, which owns the slide-in CRUD form. */\n @Output() AddTypeRequested = new EventEmitter<void>();\n @Output() EditTypeRequested = new EventEmitter<ContentTypeCard>();\n\n public onAddType(): void {\n this.AddTypeRequested.emit();\n }\n\n public onEditType(card: ContentTypeCard): void {\n this.EditTypeRequested.emit(card);\n }\n\n /** Rebuild the card view models from the current inputs. */\n private rebuild(): void {\n const sourcesUsingByType = this.countSourcesByContentType();\n // When items are capped by MaxRows, countItemsByContentType undercounts.\n // For a single content type, use the accurate TotalItemCount.\n const singleType = this._contentTypes.length === 1;\n const itemsByType = singleType ? null : this.countItemsByContentType();\n\n this.ContentTypeCards = this._contentTypes.map(ct => {\n const id = ct['ID'] as string;\n const minTags = (ct['MinTags'] as number) ?? 1;\n const maxTags = (ct['MaxTags'] as number) ?? 10;\n const range = 15; // max possible\n return {\n ID: id,\n Name: (ct['Name'] as string) ?? 'Unnamed',\n Description: (ct['Description'] as string) ?? '',\n AIModelName: (ct['AIModel'] as string) ?? 'Default Model',\n AIModelID: (ct['AIModelID'] as string) ?? '',\n MinTags: minTags,\n MaxTags: maxTags,\n SourcesUsing: sourcesUsingByType.get(id) ?? 0,\n ItemsTagged: singleType ? this._totalItemCount : (itemsByType!.get(id) ?? 0),\n RangeLeftPct: Math.round((minTags / range) * 100),\n RangeRightPct: Math.round(100 - (maxTags / range) * 100),\n EmbeddingModelID: (ct['EmbeddingModelID'] as string) ?? '',\n VectorIndexID: (ct['VectorIndexID'] as string) ?? ''\n };\n });\n }\n\n private countSourcesByContentType(): Map<string, number> {\n const counts = new Map<string, number>();\n for (const source of this._sources) {\n const typeId = source['ContentTypeID'] as string;\n if (typeId) counts.set(typeId, (counts.get(typeId) ?? 0) + 1);\n }\n return counts;\n }\n\n private countItemsByContentType(): Map<string, number> {\n const counts = new Map<string, number>();\n for (const item of this._items) {\n const typeId = item['ContentTypeID'] as string;\n if (typeId) counts.set(typeId, (counts.get(typeId) ?? 0) + 1);\n }\n return counts;\n }\n}\n","<mj-page-header-interior\n Title=\"Content Types\"\n Subtitle=\"Configure AI tagging rules per content category\">\n <div actions>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"mj-action-label\">Add Type</span>\n </button>\n </div>\n</mj-page-header-interior>\n\n<mj-page-body-interior [Padding]=\"false\" [Flex]=\"true\">\n <div class=\"at-main-area\">\n <div class=\"at-page-body\">\n <div class=\"at-ct-grid\">\n @for (card of ContentTypeCards; track card.ID) {\n <div class=\"at-ct-card\">\n <div class=\"at-ct-card-header\">\n <span class=\"at-ct-card-name\">{{ card.Name }}</span>\n <span class=\"at-ct-card-model\">{{ card.AIModelName }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Description</span>\n <span class=\"at-ct-field-value\">{{ card.Description || '—' }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Sources Using</span>\n <span class=\"at-ct-field-value\">{{ card.SourcesUsing }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Items Tagged</span>\n <span class=\"at-ct-field-value\">{{ formatNumber(card.ItemsTagged) }}</span>\n </div>\n <div class=\"at-ct-tag-range\">\n <i class=\"fa-solid fa-tags\"></i>\n <span>{{ card.MinTags }}</span>\n <div class=\"at-ct-tag-range-bar\">\n <div class=\"at-ct-tag-range-fill\" [style.left.%]=\"card.RangeLeftPct\" [style.right.%]=\"card.RangeRightPct\"></div>\n </div>\n <span>{{ card.MaxTags }}</span>\n <span class=\"at-ct-range-suffix\">tags/item</span>\n </div>\n <div class=\"at-source-card-actions\" style=\"margin-top: 10px;\">\n <button class=\"at-source-action-btn\" (click)=\"onEditType(card)\"><i class=\"fa-solid fa-pen\"></i> Edit</button>\n </div>\n </div>\n }\n <!-- Add Content Type Card -->\n <div class=\"at-add-type-card\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span style=\"font-size: 0.85rem; font-weight: 600;\">Add Content Type</span>\n <span style=\"font-size: 0.72rem;\">Configure tagging rules</span>\n </div>\n </div>\n </div>\n </div>\n</mj-page-body-interior>\n"]}
1
+ {"version":3,"file":"types-tab.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/tabs/types-tab.component.ts","../../../../../src/AI/components/autotagging/tabs/types-tab.component.html"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;;;;;;;ICNjD,wBAA2C;IAAC,+BAA8B;IAAA,gCAAW;IAAA,iBAAO;;;IAE5F,wBAAyC;IAAC,+BAA8B;IAAA,uBAAO;IAAA,iBAAO;;;IAYxF,8BAAgC;IAC9B,iCAA0D;IAC5D,iBAAM;;;;IAYE,AADF,AADF,+BAAwB,cACS,eACC;IAAA,YAAe;IAAA,iBAAO;IACpD,gCAA+B;IAAA,YAAsB;IACvD,AADuD,iBAAO,EACxD;IAEJ,AADF,+BAAyB,eACS;IAAA,2BAAW;IAAA,iBAAO;IAClD,gCAAgC;IAAA,aAA6B;IAC/D,AAD+D,iBAAO,EAChE;IAEJ,AADF,gCAAyB,gBACS;IAAA,8BAAa;IAAA,iBAAO;IACpD,iCAAgC;IAAA,aAAuB;IACzD,AADyD,iBAAO,EAC1D;IAEJ,AADF,gCAAyB,gBACS;IAAA,6BAAY;IAAA,iBAAO;IACnD,iCAAgC;IAAA,aAAoC;IACtE,AADsE,iBAAO,EACvE;IACN,gCAA6B;IAC3B,yBAAgC;IAChC,6BAAM;IAAA,aAAkB;IAAA,iBAAO;IAC/B,gCAAiC;IAC/B,2BAAgH;IAClH,iBAAM;IACN,6BAAM;IAAA,aAAkB;IAAA,iBAAO;IAC/B,iCAAiC;IAAA,0BAAS;IAC5C,AAD4C,iBAAO,EAC7C;IAEJ,AADF,gCAA8D,kBACI;IAA3B,iNAAS,0BAAgB,KAAC;IAAC,yBAA+B;IAAC,sBAAI;IAExG,AADE,AADsG,iBAAS,EACzG,EACF;;;;IA3B4B,eAAe;IAAf,kCAAe;IACd,eAAsB;IAAtB,yCAAsB;IAIrB,eAA6B;IAA7B,qDAA6B;IAI7B,eAAuB;IAAvB,0CAAuB;IAIvB,eAAoC;IAApC,8DAAoC;IAI9D,eAAkB;IAAlB,qCAAkB;IAEY,eAAkC;IAAC,AAAnC,iDAAkC,qCAAqC;IAErG,eAAkB;IAAlB,qCAAkB;;ADnCtC,MAAM,OAAO,yBAA0B,SAAQ,oBAAoB;IACvD,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAExC,wEAAwE;IACjE,SAAS,GAAG,KAAK,CAAC;IAEzB,uEAAuE;IAC/D,aAAa,GAA8B,EAAE,CAAC;IACtD,IACI,YAAY,CAAC,KAAgC;QAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,+EAA+E;IACvE,QAAQ,GAA8B,EAAE,CAAC;IACjD,IACI,OAAO,CAAC,KAAgC;QACxC,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,2EAA2E;IACnE,MAAM,GAA8B,EAAE,CAAC;IAC/C,IACI,KAAK,CAAC,KAAgC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,6FAA6F;IACrF,eAAe,GAAG,CAAC,CAAC;IAC5B,IACI,cAAc,CAAC,KAAa;QAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,gBAAgB,GAAsB,EAAE,CAAC;IAEhD,uFAAuF;IACvE,YAAY,GAAG,YAAY,CAAC;IAE5C,8EAA8E;IACpE,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,iBAAiB,GAAG,IAAI,YAAY,EAAmB,CAAC;IAElE;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAEM,SAAS;QACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,IAAqB;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,4DAA4D;IACpD,OAAO;QACX,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC5D,yEAAyE;QACzE,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEvE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAChD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAW,CAAC;YAC9B,MAAM,OAAO,GAAI,EAAE,CAAC,SAAS,CAAY,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAI,EAAE,CAAC,SAAS,CAAY,IAAI,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,eAAe;YACjC,OAAO;gBACH,EAAE,EAAE,EAAE;gBACN,IAAI,EAAG,EAAE,CAAC,MAAM,CAAY,IAAI,SAAS;gBACzC,WAAW,EAAG,EAAE,CAAC,aAAa,CAAY,IAAI,EAAE;gBAChD,WAAW,EAAG,EAAE,CAAC,SAAS,CAAY,IAAI,eAAe;gBACzD,SAAS,EAAG,EAAE,CAAC,WAAW,CAAY,IAAI,EAAE;gBAC5C,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC7C,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5E,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;gBACjD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;gBACxD,gBAAgB,EAAG,EAAE,CAAC,kBAAkB,CAAY,IAAI,EAAE;gBAC1D,aAAa,EAAG,EAAE,CAAC,eAAe,CAAY,IAAI,EAAE;aACvD,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,yBAAyB;QAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAW,CAAC;YACjD,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,uBAAuB;QAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAW,CAAC;YAC/C,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;iRA/HQ,yBAAyB,yBAAzB,yBAAyB;6DAAzB,yBAAyB;YChBlC,AADF,AAHF,kDAE+D,aAChD,gBAC+E;YAA3C,sGAAS,aAAS,IAAC;YAG9D,AAFF,iFAAiB,2DAER;YAGX,iBAAS;YACT,iCAAmE;YAAtB,sGAAS,eAAW,IAAC;YAChE,uBAAgC;YAAC,+BAA8B;YAAA,wBAAQ;YAG7E,AADE,AADE,AADyE,iBAAO,EACvE,EACL,EACkB;YAGxB,AADF,gDAAuD,cAC3B;YACxB,6FAAiB;YAOf,AAFF,+BAA0B,eAEK;YAC3B,mDAAiF;YACnF,iBAAM;YAEN,gCAAwB;YACtB,iGA+BC;YAED,gCAAoD;YAAtB,oGAAS,eAAW,IAAC;YACjD,yBAAuC;YACvC,iCAAoD;YAAA,iCAAgB;YAAA,iBAAO;YAC3E,iCAAkC;YAAA,wCAAuB;YAKnE,AADE,AADE,AADE,AADE,AAD2D,iBAAO,EAC5D,EACF,EACF,EACF,EACgB;;YApE+C,eAAsB;YAAtB,wCAAsB;YACvF,cAIC;YAJD,uCAIC;YAQgB,eAAiB;YAAC,AAAlB,+BAAiB,cAAc;YAElD,eAIC;YAJD,yCAIC;YAIgC,eAAqB;YAArB,uCAAqB;YAIlD,eA+BC;YA/BD,mCA+BC;;;iFD1CI,yBAAyB;cANrC,SAAS;6BACM,KAAK,YACP,oBAAoB;;kBAY7B,KAAK;;kBAWL,KAAK;;kBAWL,KAAK;;kBAWL,KAAK;;kBAeL,MAAM;;kBACN,MAAM;;kFAzDE,yBAAyB","sourcesContent":["/**\n * @fileoverview Classify · Content Types tab.\n *\n * Self-contained sub-page: owns its header-interior and the content-type cards\n * grid. Receives the shared raw data needed to build the cards from the host\n * orchestrator (content types, sources, items, and the accurate total item\n * count). The slide-in CRUD form stays in the host — this tab emits\n * Add/Edit intents up via @Output and the host opens its existing form.\n */\nimport { Component, ChangeDetectorRef, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { ContentTypeCard } from '../shared/classify.types';\nimport { formatNumber } from '../shared/classify.format';\n\n@Component({\n standalone: false,\n selector: 'classify-types-tab',\n templateUrl: './types-tab.component.html',\n styleUrls: ['./types-tab.component.css']\n})\nexport class ClassifyTypesTabComponent extends BaseAngularComponent {\n private cdr = inject(ChangeDetectorRef);\n\n /** Shown while a manual Refresh() recomputes the content-type cards. */\n public IsLoading = false;\n\n /** Raw `MJ: Content Types` rows — the primary source for the cards. */\n private _contentTypes: Record<string, unknown>[] = [];\n @Input()\n set ContentTypes(value: Record<string, unknown>[]) {\n this._contentTypes = value ?? [];\n this.rebuild();\n }\n get ContentTypes(): Record<string, unknown>[] {\n return this._contentTypes;\n }\n\n /** Raw `MJ: Content Sources` rows — used to count sources per content type. */\n private _sources: Record<string, unknown>[] = [];\n @Input()\n set Sources(value: Record<string, unknown>[]) {\n this._sources = value ?? [];\n this.rebuild();\n }\n get Sources(): Record<string, unknown>[] {\n return this._sources;\n }\n\n /** Raw `MJ: Content Items` rows — used to count items per content type. */\n private _items: Record<string, unknown>[] = [];\n @Input()\n set Items(value: Record<string, unknown>[]) {\n this._items = value ?? [];\n this.rebuild();\n }\n get Items(): Record<string, unknown>[] {\n return this._items;\n }\n\n /** Accurate total item count from TotalRowCount (used when a single content type exists). */\n private _totalItemCount = 0;\n @Input()\n set TotalItemCount(value: number) {\n this._totalItemCount = value ?? 0;\n this.rebuild();\n }\n get TotalItemCount(): number {\n return this._totalItemCount;\n }\n\n public ContentTypeCards: ContentTypeCard[] = [];\n\n /** Template-facing formatter (exposed so `formatNumber(...)` resolves in the view). */\n public readonly formatNumber = formatNumber;\n\n /** Bubble Add/Edit intents to the host, which owns the slide-in CRUD form. */\n @Output() AddTypeRequested = new EventEmitter<void>();\n @Output() EditTypeRequested = new EventEmitter<ContentTypeCard>();\n\n /**\n * Recompute the content-type cards from the current host-supplied inputs. The\n * data is host-owned (flows in via @Input); Refresh rebuilds the view models\n * and surfaces a brief loading state for user feedback.\n */\n public async Refresh(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n this.rebuild();\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n\n public onAddType(): void {\n this.AddTypeRequested.emit();\n }\n\n public onEditType(card: ContentTypeCard): void {\n this.EditTypeRequested.emit(card);\n }\n\n /** Rebuild the card view models from the current inputs. */\n private rebuild(): void {\n const sourcesUsingByType = this.countSourcesByContentType();\n // When items are capped by MaxRows, countItemsByContentType undercounts.\n // For a single content type, use the accurate TotalItemCount.\n const singleType = this._contentTypes.length === 1;\n const itemsByType = singleType ? null : this.countItemsByContentType();\n\n this.ContentTypeCards = this._contentTypes.map(ct => {\n const id = ct['ID'] as string;\n const minTags = (ct['MinTags'] as number) ?? 1;\n const maxTags = (ct['MaxTags'] as number) ?? 10;\n const range = 15; // max possible\n return {\n ID: id,\n Name: (ct['Name'] as string) ?? 'Unnamed',\n Description: (ct['Description'] as string) ?? '',\n AIModelName: (ct['AIModel'] as string) ?? 'Default Model',\n AIModelID: (ct['AIModelID'] as string) ?? '',\n MinTags: minTags,\n MaxTags: maxTags,\n SourcesUsing: sourcesUsingByType.get(id) ?? 0,\n ItemsTagged: singleType ? this._totalItemCount : (itemsByType!.get(id) ?? 0),\n RangeLeftPct: Math.round((minTags / range) * 100),\n RangeRightPct: Math.round(100 - (maxTags / range) * 100),\n EmbeddingModelID: (ct['EmbeddingModelID'] as string) ?? '',\n VectorIndexID: (ct['VectorIndexID'] as string) ?? ''\n };\n });\n }\n\n private countSourcesByContentType(): Map<string, number> {\n const counts = new Map<string, number>();\n for (const source of this._sources) {\n const typeId = source['ContentTypeID'] as string;\n if (typeId) counts.set(typeId, (counts.get(typeId) ?? 0) + 1);\n }\n return counts;\n }\n\n private countItemsByContentType(): Map<string, number> {\n const counts = new Map<string, number>();\n for (const item of this._items) {\n const typeId = item['ContentTypeID'] as string;\n if (typeId) counts.set(typeId, (counts.get(typeId) ?? 0) + 1);\n }\n return counts;\n }\n}\n","<mj-page-header-interior\n Title=\"Content Types\"\n Subtitle=\"Configure AI tagging rules per content category\">\n <div actions>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"Refresh()\" [disabled]=\"IsLoading\">\n @if (IsLoading) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> <span class=\"mj-action-label\">Refreshing…</span>\n } @else {\n <i class=\"fa-solid fa-arrows-rotate\"></i> <span class=\"mj-action-label\">Refresh</span>\n }\n </button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"mj-action-label\">Add Type</span>\n </button>\n </div>\n</mj-page-header-interior>\n\n<mj-page-body-interior [Padding]=\"false\" [Flex]=\"true\">\n <div class=\"at-main-area\">\n @if (IsLoading) {\n <div class=\"at-loading-overlay\">\n <mj-loading text=\"Refreshing content types…\"></mj-loading>\n </div>\n }\n <div class=\"at-page-body\">\n <!-- Org-level domain context (broadest classification-context scope) -->\n <div class=\"at-org-ctx-wrap\">\n <classify-org-context-editor [Provider]=\"Provider\"></classify-org-context-editor>\n </div>\n\n <div class=\"at-ct-grid\">\n @for (card of ContentTypeCards; track card.ID) {\n <div class=\"at-ct-card\">\n <div class=\"at-ct-card-header\">\n <span class=\"at-ct-card-name\">{{ card.Name }}</span>\n <span class=\"at-ct-card-model\">{{ card.AIModelName }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Description</span>\n <span class=\"at-ct-field-value\">{{ card.Description || '—' }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Sources Using</span>\n <span class=\"at-ct-field-value\">{{ card.SourcesUsing }}</span>\n </div>\n <div class=\"at-ct-field\">\n <span class=\"at-ct-field-label\">Items Tagged</span>\n <span class=\"at-ct-field-value\">{{ formatNumber(card.ItemsTagged) }}</span>\n </div>\n <div class=\"at-ct-tag-range\">\n <i class=\"fa-solid fa-tags\"></i>\n <span>{{ card.MinTags }}</span>\n <div class=\"at-ct-tag-range-bar\">\n <div class=\"at-ct-tag-range-fill\" [style.left.%]=\"card.RangeLeftPct\" [style.right.%]=\"card.RangeRightPct\"></div>\n </div>\n <span>{{ card.MaxTags }}</span>\n <span class=\"at-ct-range-suffix\">tags/item</span>\n </div>\n <div class=\"at-source-card-actions\" style=\"margin-top: 10px;\">\n <button class=\"at-source-action-btn\" (click)=\"onEditType(card)\"><i class=\"fa-solid fa-pen\"></i> Edit</button>\n </div>\n </div>\n }\n <!-- Add Content Type Card -->\n <div class=\"at-add-type-card\" (click)=\"onAddType()\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span style=\"font-size: 0.85rem; font-weight: 600;\">Add Content Type</span>\n <span style=\"font-size: 0.72rem;\">Configure tagging rules</span>\n </div>\n </div>\n </div>\n </div>\n</mj-page-body-interior>\n"]}
@@ -83,6 +83,9 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
83
83
  /** Close comparison panel on Escape key */
84
84
  OnEscapeKey(): void;
85
85
  private cdr;
86
+ private activityService;
87
+ /** Activity-tracker id for the currently running detection (P3). */
88
+ private detectionActivityID;
86
89
  protected navigationService: NavigationService;
87
90
  protected destroy$: Subject<void>;
88
91
  private filterSubject;
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-detection-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/duplicates/duplicate-detection-resource.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duplicate-detection-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/duplicates/duplicate-detection-resource.component.ts"],"names":[],"mappings":"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"}