@mj-biz-apps/common-ng 5.64.0 → 5.66.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/lib/components/__tests__/uuid-casing.test.d.ts +7 -0
- package/dist/lib/components/__tests__/uuid-casing.test.d.ts.map +1 -0
- package/dist/lib/components/__tests__/uuid-casing.test.js +78 -0
- package/dist/lib/components/__tests__/uuid-casing.test.js.map +1 -0
- package/dist/lib/components/address-editor/address-editor.component.d.ts.map +1 -1
- package/dist/lib/components/address-editor/address-editor.component.js +9 -7
- package/dist/lib/components/address-editor/address-editor.component.js.map +1 -1
- package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts +9 -2
- package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts.map +1 -1
- package/dist/lib/components/contact-method-list/contact-method-list.component.js +35 -22
- package/dist/lib/components/contact-method-list/contact-method-list.component.js.map +1 -1
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts +8 -0
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts.map +1 -0
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js +75 -0
- package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js.map +1 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts +12 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts.map +1 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js +94 -0
- package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js.map +1 -0
- package/dist/lib/components/identity-header/activity-identity.component.d.ts +9 -0
- package/dist/lib/components/identity-header/activity-identity.component.d.ts.map +1 -1
- package/dist/lib/components/identity-header/activity-identity.component.js +115 -73
- package/dist/lib/components/identity-header/activity-identity.component.js.map +1 -1
- package/dist/lib/components/identity-header/organization-identity.component.js +51 -20
- package/dist/lib/components/identity-header/organization-identity.component.js.map +1 -1
- package/dist/lib/components/identity-header/person-identity.component.js +41 -30
- package/dist/lib/components/identity-header/person-identity.component.js.map +1 -1
- package/dist/lib/components/org-hierarchy-tree/org-hierarchy-tree.component.d.ts.map +1 -1
- package/dist/lib/components/org-hierarchy-tree/org-hierarchy-tree.component.js +11 -7
- package/dist/lib/components/org-hierarchy-tree/org-hierarchy-tree.component.js.map +1 -1
- package/dist/lib/components/party-field/party-field.component.js +5 -5
- package/dist/lib/components/party-field/party-field.component.js.map +1 -1
- package/dist/lib/components/related-chips/related-chips.component.d.ts +1 -1
- package/dist/lib/components/related-chips/related-chips.component.d.ts.map +1 -1
- package/dist/lib/components/related-chips/related-chips.component.js +34 -23
- package/dist/lib/components/related-chips/related-chips.component.js.map +1 -1
- package/dist/lib/components/relationship-graph/common-relationship-graph.component.d.ts.map +1 -1
- package/dist/lib/components/relationship-graph/common-relationship-graph.component.js +29 -20
- package/dist/lib/components/relationship-graph/common-relationship-graph.component.js.map +1 -1
- package/dist/lib/components/relationship-list/relationship-list.component.js +13 -11
- package/dist/lib/components/relationship-list/relationship-list.component.js.map +1 -1
- package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js +110 -4
- package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js.map +1 -1
- package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts +34 -3
- package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts.map +1 -1
- package/dist/lib/components/selling-company-field/selling-company-field.component.js +153 -6
- package/dist/lib/components/selling-company-field/selling-company-field.component.js.map +1 -1
- package/dist/lib/custom/panels/activity-content.panel.js +2 -2
- package/dist/lib/custom/panels/activity-hierarchy.panel.js +2 -2
- package/dist/lib/custom/panels/activity-hierarchy.panel.js.map +1 -1
- package/dist/lib/custom/panels/activity-links.panel.d.ts.map +1 -1
- package/dist/lib/custom/panels/activity-links.panel.js +12 -5
- package/dist/lib/custom/panels/activity-links.panel.js.map +1 -1
- package/dist/lib/custom/panels/activity-type-hierarchy.panel.js +2 -2
- package/dist/lib/custom/panels/activity-type-hierarchy.panel.js.map +1 -1
- package/dist/lib/custom/panels/organization-staff.panel.d.ts.map +1 -1
- package/dist/lib/custom/panels/organization-staff.panel.js +15 -7
- package/dist/lib/custom/panels/organization-staff.panel.js.map +1 -1
- package/dist/lib/pages/activities-dashboard.page.d.ts +2 -0
- package/dist/lib/pages/activities-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/activities-dashboard.page.js +10 -5
- package/dist/lib/pages/activities-dashboard.page.js.map +1 -1
- package/dist/lib/pages/common-dashboard.page.js +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #343 — the Organization and Person heroes claim the generated identity sections
|
|
3
|
+
* (`replacesSectionKey`), and a claim hides the generated section outright: rail item and Manage
|
|
4
|
+
* Sections entry included. So the hero is the only place those fields can be edited. The heroes
|
|
5
|
+
* rendered a subset of them (Organizations lost Type, Description, Founded date, Tax ID and Status;
|
|
6
|
+
* People lost Middle name and Display name), and put even that subset behind the collapse toggle.
|
|
7
|
+
*
|
|
8
|
+
* Both are structural, so these tests read the structures: the registration's claim, the generated
|
|
9
|
+
* section's field list, and the hero template.
|
|
10
|
+
*/
|
|
11
|
+
import '@angular/compiler';
|
|
12
|
+
import { readFileSync } from 'node:fs';
|
|
13
|
+
import { fileURLToPath } from 'node:url';
|
|
14
|
+
import { describe, expect, it } from 'vitest';
|
|
15
|
+
import { MJGlobal } from '@memberjunction/global';
|
|
16
|
+
import { BaseFormPanel } from '@memberjunction/ng-base-forms';
|
|
17
|
+
import { OrganizationHeaderPanel } from '../../../custom/panels/organization-header.panel';
|
|
18
|
+
import { PersonHeaderPanel } from '../../../custom/panels/person-header.panel';
|
|
19
|
+
function ReadRepoFile(relativeToThisFile) {
|
|
20
|
+
return readFileSync(fileURLToPath(new URL(relativeToThisFile, import.meta.url)), 'utf8');
|
|
21
|
+
}
|
|
22
|
+
function FieldNames(markup) {
|
|
23
|
+
return [...markup.matchAll(/FieldName="([^"]+)"/g)].map((m) => m[1]);
|
|
24
|
+
}
|
|
25
|
+
/** Field names declared inside one generated `<mj-collapsible-panel SectionKey="...">` block. */
|
|
26
|
+
function GeneratedSectionFields(generatedHtml, sectionKey) {
|
|
27
|
+
const start = generatedHtml.indexOf(`SectionKey="${sectionKey}"`);
|
|
28
|
+
expect(start, `generated section ${sectionKey} not found`).toBeGreaterThan(-1);
|
|
29
|
+
const end = generatedHtml.indexOf('</mj-collapsible-panel>', start);
|
|
30
|
+
expect(end, `generated section ${sectionKey} is unterminated`).toBeGreaterThan(start);
|
|
31
|
+
return FieldNames(generatedHtml.slice(start, end));
|
|
32
|
+
}
|
|
33
|
+
/** The hero's edit block: from its `@if (EditMode)` to the end of the template. */
|
|
34
|
+
function EditBlock(heroHtml) {
|
|
35
|
+
const start = heroHtml.indexOf('<div class="biz-hero__edit">');
|
|
36
|
+
expect(start, 'hero has no edit block').toBeGreaterThan(-1);
|
|
37
|
+
return heroHtml.slice(start);
|
|
38
|
+
}
|
|
39
|
+
/** True when `index` sits inside the `@if (!Collapsed) { ... }` block. Braces in a template balance. */
|
|
40
|
+
function InsideCollapsedBlock(heroHtml, index) {
|
|
41
|
+
const open = heroHtml.indexOf('@if (!Collapsed) {');
|
|
42
|
+
if (open === -1 || open > index) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
let depth = 0;
|
|
46
|
+
for (let i = open; i < index; i++) {
|
|
47
|
+
if (heroHtml[i] === '{') {
|
|
48
|
+
depth++;
|
|
49
|
+
}
|
|
50
|
+
else if (heroHtml[i] === '}' && --depth === 0) {
|
|
51
|
+
return false; // the collapsed block closed before `index`
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
function ClaimedSectionKey(panel) {
|
|
57
|
+
const registration = MJGlobal.Instance.ClassFactory.GetAllRegistrations(BaseFormPanel).find((r) => r.SubClass === panel);
|
|
58
|
+
return registration?.Metadata?.['replacesSectionKey'];
|
|
59
|
+
}
|
|
60
|
+
const HEROES = [
|
|
61
|
+
{
|
|
62
|
+
name: 'Organization',
|
|
63
|
+
panel: OrganizationHeaderPanel,
|
|
64
|
+
sectionKey: 'organizationIdentity',
|
|
65
|
+
hero: '../organization-identity.component.html',
|
|
66
|
+
generated: '../../../generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.html',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Person',
|
|
70
|
+
panel: PersonHeaderPanel,
|
|
71
|
+
sectionKey: 'personalIdentity',
|
|
72
|
+
hero: '../person-identity.component.html',
|
|
73
|
+
generated: '../../../generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.html',
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
describe.each(HEROES)('the $name hero owns the fields of the section it claims', ({ panel, sectionKey, hero, generated }) => {
|
|
77
|
+
const heroHtml = ReadRepoFile(hero);
|
|
78
|
+
it(`claims the generated ${sectionKey} section`, () => {
|
|
79
|
+
expect(ClaimedSectionKey(panel)).toBe(sectionKey);
|
|
80
|
+
});
|
|
81
|
+
it('renders every field of that section as an input in edit mode', () => {
|
|
82
|
+
const claimed = GeneratedSectionFields(ReadRepoFile(generated), sectionKey);
|
|
83
|
+
expect(claimed.length).toBeGreaterThan(0);
|
|
84
|
+
const rendered = FieldNames(EditBlock(heroHtml));
|
|
85
|
+
const lost = claimed.filter((field) => !rendered.includes(field));
|
|
86
|
+
expect(lost, 'claiming a generated section must not drop its fields').toEqual([]);
|
|
87
|
+
expect(EditBlock(heroHtml)).toContain('[EditMode]="EditMode"');
|
|
88
|
+
});
|
|
89
|
+
it('keeps the inputs when the header is collapsed', () => {
|
|
90
|
+
const editIndex = heroHtml.indexOf('<div class="biz-hero__edit">');
|
|
91
|
+
expect(InsideCollapsedBlock(heroHtml, editIndex)).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=identity-hero-claims.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-hero-claims.test.js","sourceRoot":"","sources":["../../../../../src/lib/components/identity-header/__tests__/identity-hero-claims.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAE/E,SAAS,YAAY,CAAC,kBAA0B;IAC5C,OAAO,YAAY,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAC9B,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,iGAAiG;AACjG,SAAS,sBAAsB,CAAC,aAAqB,EAAE,UAAkB;IACrE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,eAAe,UAAU,GAAG,CAAC,CAAC;IAClE,MAAM,CAAC,KAAK,EAAE,qBAAqB,UAAU,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,EAAE,qBAAqB,UAAU,kBAAkB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,mFAAmF;AACnF,SAAS,SAAS,CAAC,QAAgB;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,wGAAwG;AACxG,SAAS,oBAAoB,CAAC,QAAgB,EAAE,KAAa;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC,CAAC,4CAA4C;QAC9D,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;IACzH,OAAQ,YAAY,EAAE,QAAgD,EAAE,CAAC,oBAAoB,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,MAAM,GAAG;IACX;QACI,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,sBAAsB;QAClC,IAAI,EAAE,yCAAyC;QAC/C,SAAS,EAAE,yGAAyG;KACvH;IACD;QACI,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,kBAAkB;QAC9B,IAAI,EAAE,mCAAmC;QACzC,SAAS,EAAE,6FAA6F;KAC3G;CACJ,CAAC;AAEF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,yDAAyD,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;IACxH,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEpC,EAAE,CAAC,wBAAwB,UAAU,UAAU,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACpE,MAAM,OAAO,GAAG,sBAAsB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,EAAE,uDAAuD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -18,6 +18,8 @@ export declare class ActivityIdentityComponent implements OnInit {
|
|
|
18
18
|
FormContext?: FormContext;
|
|
19
19
|
Navigate: EventEmitter<FormNavigationEvent>;
|
|
20
20
|
Collapsed: boolean;
|
|
21
|
+
private parentTitle;
|
|
22
|
+
private parentTitleFor;
|
|
21
23
|
ngOnInit(): void;
|
|
22
24
|
ToggleCollapsed(): void;
|
|
23
25
|
get TypeStyle(): ActivityTypeStyle;
|
|
@@ -32,6 +34,13 @@ export declare class ActivityIdentityComponent implements OnInit {
|
|
|
32
34
|
get MeetingURL(): string | null;
|
|
33
35
|
get LocationDisplay(): string | null;
|
|
34
36
|
get SourceDisplay(): string;
|
|
37
|
+
/**
|
|
38
|
+
* The "Thread / Parent" label. Reads `ParentActivityID` and the parent's own Title, never the
|
|
39
|
+
* virtual `ParentActivity` name field: V202609112330 removes that field on hosts whose
|
|
40
|
+
* `vwActivities` lacks the column, where it always reads null and hid the link (#311).
|
|
41
|
+
*/
|
|
42
|
+
get ParentActivityLabel(): string;
|
|
43
|
+
private loadParentTitle;
|
|
35
44
|
OnParentActivityClick(event: MouseEvent): void;
|
|
36
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<ActivityIdentityComponent, never>;
|
|
37
46
|
static ɵcmp: i0.ɵɵComponentDeclaration<ActivityIdentityComponent, "bizapps-activity-identity", never, { "Record": { "alias": "Record"; "required": true; }; "EditMode": { "alias": "EditMode"; "required": false; }; "FormContext": { "alias": "FormContext"; "required": false; }; }, { "Navigate": "Navigate"; }, never, never, true, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-identity.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/identity-header/activity-identity.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,MAAM,EAAU,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-identity.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/identity-header/activity-identity.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,MAAM,EAAU,MAAM,eAAe,CAAC;AAK/E,OAAO,EAAmB,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAElG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;;AAKlF,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AA8CD;;;;GAIG;AACH,qBAOa,yBAA0B,YAAW,MAAM;IACzB,MAAM,EAAG,6BAA6B,CAAC;IACzD,QAAQ,UAAS;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,oCAA2C;IAEtD,SAAS,UAAS;IAEzB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAuB;IAEtC,QAAQ,IAAI,IAAI;IAYhB,eAAe,IAAI,IAAI;IAQ9B,IAAW,SAAS,IAAI,iBAAiB,CAGxC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,aAAa,IAAI,MAAM,CAUjC;IAED,IAAW,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAc3E;IAED,IAAW,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM3C;IAED,IAAW,aAAa,IAAI,SAAS,GAAG,QAAQ,GAAG,MAAM,CAKxD;IAED,IAAW,aAAa,IAAI,MAAM,CAKjC;IAED,IAAW,YAAY,IAAI,MAAM,GAAG,IAAI,CAYvC;IAED,IAAW,UAAU,IAAI,MAAM,GAAG,IAAI,CAQrC;IAED,IAAW,eAAe,IAAI,MAAM,GAAG,IAAI,CAE1C;IAED,IAAW,aAAa,IAAI,MAAM,CAQjC;IAED;;;;OAIG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAGvC;YAEa,eAAe;IA0BtB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;yCAxK5C,yBAAyB;2CAAzB,yBAAyB;CAoLrC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { CompositeKey } from '@memberjunction/core';
|
|
3
|
+
import { CompositeKey, LogError, RunView } from '@memberjunction/core';
|
|
4
|
+
import { IsValidUUID, UUIDsEqual } from '@memberjunction/global';
|
|
4
5
|
import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
5
6
|
import { BaseFormsModule } from '@memberjunction/ng-base-forms';
|
|
6
7
|
import { LinkDirectivesModule } from '@memberjunction/ng-link-directives';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@
|
|
9
|
+
import * as i1 from "@memberjunction/ng-base-forms";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
9
11
|
function ActivityIdentityComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
-
i0.ɵɵ
|
|
11
|
-
i0.ɵɵ
|
|
12
|
+
i0.ɵɵelementStart(0, "span", 9);
|
|
13
|
+
i0.ɵɵelement(1, "i");
|
|
12
14
|
i0.ɵɵtext(2);
|
|
13
|
-
i0.ɵɵ
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
14
16
|
} if (rf & 2) {
|
|
15
17
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
16
18
|
i0.ɵɵadvance();
|
|
@@ -19,9 +21,9 @@ function ActivityIdentityComponent_Conditional_12_Template(rf, ctx) { if (rf & 1
|
|
|
19
21
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.Record.Direction, " ");
|
|
20
22
|
} }
|
|
21
23
|
function ActivityIdentityComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
-
i0.ɵɵ
|
|
24
|
+
i0.ɵɵelementStart(0, "span", 10);
|
|
23
25
|
i0.ɵɵtext(1);
|
|
24
|
-
i0.ɵɵ
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
25
27
|
} if (rf & 2) {
|
|
26
28
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
27
29
|
i0.ɵɵattribute("data-tone", ctx_r0.StatusTone);
|
|
@@ -29,20 +31,20 @@ function ActivityIdentityComponent_Conditional_13_Template(rf, ctx) { if (rf & 1
|
|
|
29
31
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.Record.Status, " ");
|
|
30
32
|
} }
|
|
31
33
|
function ActivityIdentityComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
-
i0.ɵɵ
|
|
33
|
-
i0.ɵɵ
|
|
34
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
35
|
+
i0.ɵɵelement(1, "i", 14);
|
|
34
36
|
i0.ɵɵtext(2);
|
|
35
|
-
i0.ɵɵ
|
|
37
|
+
i0.ɵɵelementEnd();
|
|
36
38
|
} if (rf & 2) {
|
|
37
39
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
38
40
|
i0.ɵɵadvance(2);
|
|
39
41
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.Record.Outcome, " ");
|
|
40
42
|
} }
|
|
41
43
|
function ActivityIdentityComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
-
i0.ɵɵ
|
|
43
|
-
i0.ɵɵ
|
|
44
|
+
i0.ɵɵelementStart(0, "span", 12);
|
|
45
|
+
i0.ɵɵelement(1, "i");
|
|
44
46
|
i0.ɵɵtext(2);
|
|
45
|
-
i0.ɵɵ
|
|
47
|
+
i0.ɵɵelementEnd();
|
|
46
48
|
} if (rf & 2) {
|
|
47
49
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
48
50
|
i0.ɵɵattribute("data-tone", ctx_r0.SentimentTone);
|
|
@@ -52,23 +54,23 @@ function ActivityIdentityComponent_Conditional_15_Template(rf, ctx) { if (rf & 1
|
|
|
52
54
|
i0.ɵɵtextInterpolate1(" Sentiment ", ctx_r0.SentimentDisplay, " ");
|
|
53
55
|
} }
|
|
54
56
|
function ActivityIdentityComponent_Conditional_18_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
-
i0.ɵɵ
|
|
57
|
+
i0.ɵɵelementStart(0, "span", 20);
|
|
56
58
|
i0.ɵɵtext(1);
|
|
57
|
-
i0.ɵɵ
|
|
59
|
+
i0.ɵɵelementEnd();
|
|
58
60
|
} if (rf & 2) {
|
|
59
61
|
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
60
62
|
i0.ɵɵadvance();
|
|
61
63
|
i0.ɵɵtextInterpolate1("(", ctx_r0.DurationText, ")");
|
|
62
64
|
} }
|
|
63
65
|
function ActivityIdentityComponent_Conditional_18_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
-
i0.ɵɵ
|
|
66
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
|
|
65
67
|
i0.ɵɵtext(2, "When");
|
|
66
|
-
i0.ɵɵ
|
|
67
|
-
i0.ɵɵ
|
|
68
|
+
i0.ɵɵelementEnd();
|
|
69
|
+
i0.ɵɵelementStart(3, "span", 19);
|
|
68
70
|
i0.ɵɵtext(4);
|
|
69
71
|
i0.ɵɵpipe(5, "date");
|
|
70
72
|
i0.ɵɵconditionalCreate(6, ActivityIdentityComponent_Conditional_18_Conditional_1_Conditional_6_Template, 2, 1, "span", 20);
|
|
71
|
-
i0.ɵɵ
|
|
73
|
+
i0.ɵɵelementEnd()();
|
|
72
74
|
} if (rf & 2) {
|
|
73
75
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
74
76
|
i0.ɵɵadvance(4);
|
|
@@ -77,51 +79,51 @@ function ActivityIdentityComponent_Conditional_18_Conditional_1_Template(rf, ctx
|
|
|
77
79
|
i0.ɵɵconditional(ctx_r0.DurationText ? 6 : -1);
|
|
78
80
|
} }
|
|
79
81
|
function ActivityIdentityComponent_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
-
i0.ɵɵ
|
|
82
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
|
|
81
83
|
i0.ɵɵtext(2, "Logged By");
|
|
82
|
-
i0.ɵɵ
|
|
83
|
-
i0.ɵɵ
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
i0.ɵɵelementStart(3, "span", 19);
|
|
84
86
|
i0.ɵɵtext(4);
|
|
85
|
-
i0.ɵɵ
|
|
87
|
+
i0.ɵɵelementEnd()();
|
|
86
88
|
} if (rf & 2) {
|
|
87
89
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
88
90
|
i0.ɵɵadvance(4);
|
|
89
91
|
i0.ɵɵtextInterpolate(ctx_r0.Record.LoggedByUser);
|
|
90
92
|
} }
|
|
91
93
|
function ActivityIdentityComponent_Conditional_18_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
-
i0.ɵɵ
|
|
94
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
|
|
93
95
|
i0.ɵɵtext(2, "Location");
|
|
94
|
-
i0.ɵɵ
|
|
95
|
-
i0.ɵɵ
|
|
96
|
-
i0.ɵɵ
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵelementStart(3, "span", 19);
|
|
98
|
+
i0.ɵɵelement(4, "i", 21);
|
|
97
99
|
i0.ɵɵtext(5);
|
|
98
|
-
i0.ɵɵ
|
|
100
|
+
i0.ɵɵelementEnd()();
|
|
99
101
|
} if (rf & 2) {
|
|
100
102
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
101
103
|
i0.ɵɵadvance(5);
|
|
102
104
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.LocationDisplay, " ");
|
|
103
105
|
} }
|
|
104
106
|
function ActivityIdentityComponent_Conditional_18_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
-
i0.ɵɵ
|
|
107
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
|
|
106
108
|
i0.ɵɵtext(2, "Video Meeting");
|
|
107
|
-
i0.ɵɵ
|
|
108
|
-
i0.ɵɵ
|
|
109
|
-
i0.ɵɵ
|
|
109
|
+
i0.ɵɵelementEnd();
|
|
110
|
+
i0.ɵɵelementStart(3, "a", 22);
|
|
111
|
+
i0.ɵɵelement(4, "i", 23);
|
|
110
112
|
i0.ɵɵtext(5, " Join Meeting ");
|
|
111
|
-
i0.ɵɵ
|
|
113
|
+
i0.ɵɵelementEnd()();
|
|
112
114
|
} if (rf & 2) {
|
|
113
115
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
114
116
|
i0.ɵɵadvance(3);
|
|
115
|
-
i0.ɵɵ
|
|
117
|
+
i0.ɵɵproperty("href", ctx_r0.MeetingURL, i0.ɵɵsanitizeUrl);
|
|
116
118
|
} }
|
|
117
119
|
function ActivityIdentityComponent_Conditional_18_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
-
i0.ɵɵ
|
|
120
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
|
|
119
121
|
i0.ɵɵtext(2, "Source");
|
|
120
|
-
i0.ɵɵ
|
|
121
|
-
i0.ɵɵ
|
|
122
|
-
i0.ɵɵ
|
|
122
|
+
i0.ɵɵelementEnd();
|
|
123
|
+
i0.ɵɵelementStart(3, "span", 19);
|
|
124
|
+
i0.ɵɵelement(4, "i", 24);
|
|
123
125
|
i0.ɵɵtext(5);
|
|
124
|
-
i0.ɵɵ
|
|
126
|
+
i0.ɵɵelementEnd()();
|
|
125
127
|
} if (rf & 2) {
|
|
126
128
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
127
129
|
i0.ɵɵadvance(5);
|
|
@@ -129,37 +131,39 @@ function ActivityIdentityComponent_Conditional_18_Conditional_5_Template(rf, ctx
|
|
|
129
131
|
} }
|
|
130
132
|
function ActivityIdentityComponent_Conditional_18_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
131
133
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
132
|
-
i0.ɵɵ
|
|
134
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "span", 18);
|
|
133
135
|
i0.ɵɵtext(2, "Thread / Parent");
|
|
134
|
-
i0.ɵɵ
|
|
135
|
-
i0.ɵɵ
|
|
136
|
-
i0.ɵɵ
|
|
137
|
-
i0.ɵɵ
|
|
136
|
+
i0.ɵɵelementEnd();
|
|
137
|
+
i0.ɵɵelementStart(3, "button", 25);
|
|
138
|
+
i0.ɵɵlistener("Navigate", function ActivityIdentityComponent_Conditional_18_Conditional_6_Template_button_Navigate_3_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.Navigate.emit($event)); })("click", function ActivityIdentityComponent_Conditional_18_Conditional_6_Template_button_click_3_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.OnParentActivityClick($event)); });
|
|
139
|
+
i0.ɵɵelement(4, "i", 26);
|
|
138
140
|
i0.ɵɵtext(5);
|
|
139
|
-
i0.ɵɵ
|
|
141
|
+
i0.ɵɵelementEnd()();
|
|
140
142
|
} if (rf & 2) {
|
|
141
143
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
142
|
-
i0.ɵɵadvance(
|
|
143
|
-
i0.ɵɵ
|
|
144
|
+
i0.ɵɵadvance(3);
|
|
145
|
+
i0.ɵɵproperty("mjRecordLink", ctx_r0.Record)("HandleClick", false);
|
|
146
|
+
i0.ɵɵadvance(2);
|
|
147
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.ParentActivityLabel, " ");
|
|
144
148
|
} }
|
|
145
149
|
function ActivityIdentityComponent_Conditional_18_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
-
i0.ɵɵ
|
|
150
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
147
151
|
i0.ɵɵtext(1);
|
|
148
|
-
i0.ɵɵ
|
|
152
|
+
i0.ɵɵelementEnd();
|
|
149
153
|
} if (rf & 2) {
|
|
150
154
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
151
155
|
i0.ɵɵadvance();
|
|
152
156
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.Record.Description, " ");
|
|
153
157
|
} }
|
|
154
158
|
function ActivityIdentityComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
155
|
-
i0.ɵɵ
|
|
159
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
156
160
|
i0.ɵɵconditionalCreate(1, ActivityIdentityComponent_Conditional_18_Conditional_1_Template, 7, 5, "div", 16);
|
|
157
161
|
i0.ɵɵconditionalCreate(2, ActivityIdentityComponent_Conditional_18_Conditional_2_Template, 5, 1, "div", 16);
|
|
158
162
|
i0.ɵɵconditionalCreate(3, ActivityIdentityComponent_Conditional_18_Conditional_3_Template, 6, 1, "div", 16);
|
|
159
163
|
i0.ɵɵconditionalCreate(4, ActivityIdentityComponent_Conditional_18_Conditional_4_Template, 6, 1, "div", 16);
|
|
160
164
|
i0.ɵɵconditionalCreate(5, ActivityIdentityComponent_Conditional_18_Conditional_5_Template, 6, 1, "div", 16);
|
|
161
|
-
i0.ɵɵconditionalCreate(6, ActivityIdentityComponent_Conditional_18_Conditional_6_Template, 6,
|
|
162
|
-
i0.ɵɵ
|
|
165
|
+
i0.ɵɵconditionalCreate(6, ActivityIdentityComponent_Conditional_18_Conditional_6_Template, 6, 3, "div", 16);
|
|
166
|
+
i0.ɵɵelementEnd();
|
|
163
167
|
i0.ɵɵconditionalCreate(7, ActivityIdentityComponent_Conditional_18_Conditional_7_Template, 2, 1, "div", 17);
|
|
164
168
|
} if (rf & 2) {
|
|
165
169
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -174,10 +178,11 @@ function ActivityIdentityComponent_Conditional_18_Template(rf, ctx) { if (rf & 1
|
|
|
174
178
|
i0.ɵɵadvance();
|
|
175
179
|
i0.ɵɵconditional(ctx_r0.Record.Source ? 5 : -1);
|
|
176
180
|
i0.ɵɵadvance();
|
|
177
|
-
i0.ɵɵconditional(ctx_r0.Record.
|
|
181
|
+
i0.ɵɵconditional(ctx_r0.Record.ParentActivityID ? 6 : -1);
|
|
178
182
|
i0.ɵɵadvance();
|
|
179
183
|
i0.ɵɵconditional(ctx_r0.Record.Description ? 7 : -1);
|
|
180
184
|
} }
|
|
185
|
+
const ACTIVITIES_ENTITY = 'MJ_BizApps_Common: Activities';
|
|
181
186
|
const ACTIVITY_TYPE_STYLES = {
|
|
182
187
|
email: {
|
|
183
188
|
icon: 'fa-solid fa-envelope',
|
|
@@ -231,7 +236,10 @@ export class ActivityIdentityComponent {
|
|
|
231
236
|
FormContext;
|
|
232
237
|
Navigate = new EventEmitter();
|
|
233
238
|
Collapsed = false;
|
|
239
|
+
parentTitle = null;
|
|
240
|
+
parentTitleFor = null;
|
|
234
241
|
ngOnInit() {
|
|
242
|
+
void this.loadParentTitle();
|
|
235
243
|
const raw = UserInfoEngine.Instance.GetSetting('mj.identityHeader.collapsed.activity');
|
|
236
244
|
if (raw) {
|
|
237
245
|
try {
|
|
@@ -346,6 +354,40 @@ export class ActivityIdentityComponent {
|
|
|
346
354
|
}
|
|
347
355
|
return 'Manual';
|
|
348
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* The "Thread / Parent" label. Reads `ParentActivityID` and the parent's own Title, never the
|
|
359
|
+
* virtual `ParentActivity` name field: V202609112330 removes that field on hosts whose
|
|
360
|
+
* `vwActivities` lacks the column, where it always reads null and hid the link (#311).
|
|
361
|
+
*/
|
|
362
|
+
get ParentActivityLabel() {
|
|
363
|
+
const loaded = this.parentTitle && UUIDsEqual(this.parentTitleFor, this.Record.ParentActivityID);
|
|
364
|
+
return loaded ? this.parentTitle : 'Parent activity';
|
|
365
|
+
}
|
|
366
|
+
async loadParentTitle() {
|
|
367
|
+
const parentID = this.Record.ParentActivityID;
|
|
368
|
+
if (!parentID) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
if (!IsValidUUID(parentID)) {
|
|
372
|
+
// Checked before it goes into the filter; the link still renders with a generic label.
|
|
373
|
+
LogError(`ActivityIdentity: ParentActivityID '${parentID}' is not a UUID; not loading its title`);
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
const result = await new RunView(this.Record.RunViewProviderToUse).RunView({
|
|
377
|
+
EntityName: ACTIVITIES_ENTITY,
|
|
378
|
+
Fields: ['Title'],
|
|
379
|
+
ExtraFilter: `ID = '${parentID.trim()}'`,
|
|
380
|
+
ResultType: 'simple',
|
|
381
|
+
MaxRows: 1,
|
|
382
|
+
});
|
|
383
|
+
if (!result.Success) {
|
|
384
|
+
// The link still renders, with a generic label; only the parent's name is missing.
|
|
385
|
+
LogError(`ActivityIdentity: failed to load parent activity '${parentID}': ${result.ErrorMessage ?? 'unknown error'}`);
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
this.parentTitle = result.Results[0]?.Title || null;
|
|
389
|
+
this.parentTitleFor = parentID;
|
|
390
|
+
}
|
|
349
391
|
OnParentActivityClick(event) {
|
|
350
392
|
const id = this.Record.ParentActivityID;
|
|
351
393
|
if (!id)
|
|
@@ -354,34 +396,34 @@ export class ActivityIdentityComponent {
|
|
|
354
396
|
event.stopPropagation();
|
|
355
397
|
this.Navigate.emit({
|
|
356
398
|
Kind: 'record',
|
|
357
|
-
EntityName:
|
|
399
|
+
EntityName: ACTIVITIES_ENTITY,
|
|
358
400
|
PrimaryKey: CompositeKey.FromKeyValuePair('ID', id),
|
|
359
401
|
OpenInNewTab: event.ctrlKey || event.metaKey,
|
|
360
402
|
});
|
|
361
403
|
}
|
|
362
404
|
static ɵfac = function ActivityIdentityComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActivityIdentityComponent)(); };
|
|
363
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIdentityComponent, selectors: [["bizapps-activity-identity"]], inputs: { Record: "Record", EditMode: "EditMode", FormContext: "FormContext" }, outputs: { Navigate: "Navigate" }, decls: 19, vars: 19, consts: [[1, "biz-hero"], [1, "biz-hero__identity"], ["aria-hidden", "true", 1, "biz-hero__avatar"], [2, "font-size", "1.5rem", "color", "#ffffff"], [1, "biz-hero__copy"], [1, "biz-hero__title-row"], [1, "biz-hero__name"], [1, "biz-hero__badges"], [1, "biz-hero__entity-chip"], ["data-tone", "info", 1, "biz-hero__chip"], [1, "biz-hero__chip"], ["data-tone", "purple", 1, "biz-hero__chip"], ["title", "Derived Sentiment Score", 1, "biz-hero__chip"], ["type", "button", 1, "biz-hero__toggle", 3, "click", "title"], [1, "fa-solid", "fa-flag"], [1, "biz-hero__summary"], [1, "biz-hero__stat"], [2, "padding-top", "var(--mj-space-2, 8px)", "border-top", "1px solid var(--mj-border-subtle, #f1f5f9)", "font-size", "var(--mj-text-sm, 13px)", "line-height", "1.5", "color", "var(--mj-text-secondary, #334155)", "white-space", "pre-wrap"], [1, "biz-hero__stat-label"], [1, "biz-hero__stat-val"], [2, "opacity", "0.75", "font-size", "0.88em", "font-weight", "500"], [1, "fa-solid", "fa-location-dot", 2, "font-size", "0.85em", "opacity", "0.7", "margin-right", "4px"], ["target", "_blank", "rel", "noopener noreferrer", 1, "biz-hero__stat-val", 2, "color", "var(--mj-brand-primary)", "text-decoration", "underline", "display", "inline-flex", "align-items", "center", "gap", "4px", 3, "href"], [1, "fa-solid", "fa-video"], [1, "fa-solid", "fa-cloud", 2, "font-size", "0.85em", "opacity", "0.7", "margin-right", "4px"], ["type", "button", 1, "biz-hero__stat-val", 3, "click"], [1, "fa-solid", "fa-reply", 2, "font-size", "0.85em", "opacity", "0.7", "margin-right", "4px"]], template: function ActivityIdentityComponent_Template(rf, ctx) { if (rf & 1) {
|
|
364
|
-
i0.ɵɵ
|
|
365
|
-
i0.ɵɵ
|
|
366
|
-
i0.ɵɵ
|
|
367
|
-
i0.ɵɵ
|
|
405
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIdentityComponent, selectors: [["bizapps-activity-identity"]], inputs: { Record: "Record", EditMode: "EditMode", FormContext: "FormContext" }, outputs: { Navigate: "Navigate" }, decls: 19, vars: 19, consts: [[1, "biz-hero"], [1, "biz-hero__identity"], ["aria-hidden", "true", 1, "biz-hero__avatar"], [2, "font-size", "1.5rem", "color", "#ffffff"], [1, "biz-hero__copy"], [1, "biz-hero__title-row"], [1, "biz-hero__name"], [1, "biz-hero__badges"], [1, "biz-hero__entity-chip"], ["data-tone", "info", 1, "biz-hero__chip"], [1, "biz-hero__chip"], ["data-tone", "purple", 1, "biz-hero__chip"], ["title", "Derived Sentiment Score", 1, "biz-hero__chip"], ["type", "button", 1, "biz-hero__toggle", 3, "click", "title"], [1, "fa-solid", "fa-flag"], [1, "biz-hero__summary"], [1, "biz-hero__stat"], [2, "padding-top", "var(--mj-space-2, 8px)", "border-top", "1px solid var(--mj-border-subtle, #f1f5f9)", "font-size", "var(--mj-text-sm, 13px)", "line-height", "1.5", "color", "var(--mj-text-secondary, #334155)", "white-space", "pre-wrap"], [1, "biz-hero__stat-label"], [1, "biz-hero__stat-val"], [2, "opacity", "0.75", "font-size", "0.88em", "font-weight", "500"], [1, "fa-solid", "fa-location-dot", 2, "font-size", "0.85em", "opacity", "0.7", "margin-right", "4px"], ["target", "_blank", "rel", "noopener noreferrer", 1, "biz-hero__stat-val", 2, "color", "var(--mj-brand-primary)", "text-decoration", "underline", "display", "inline-flex", "align-items", "center", "gap", "4px", 3, "href"], [1, "fa-solid", "fa-video"], [1, "fa-solid", "fa-cloud", 2, "font-size", "0.85em", "opacity", "0.7", "margin-right", "4px"], ["type", "button", "FieldName", "ParentActivityID", "EntityName", "MJ_BizApps_Common: Activities", 1, "biz-hero__stat-val", 3, "Navigate", "click", "mjRecordLink", "HandleClick"], [1, "fa-solid", "fa-reply", 2, "font-size", "0.85em", "opacity", "0.7", "margin-right", "4px"]], template: function ActivityIdentityComponent_Template(rf, ctx) { if (rf & 1) {
|
|
406
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
|
|
407
|
+
i0.ɵɵelement(3, "i", 3);
|
|
408
|
+
i0.ɵɵelementEnd();
|
|
409
|
+
i0.ɵɵelementStart(4, "div", 4)(5, "div", 5)(6, "h1", 6);
|
|
368
410
|
i0.ɵɵtext(7);
|
|
369
|
-
i0.ɵɵ
|
|
370
|
-
i0.ɵɵ
|
|
371
|
-
i0.ɵɵ
|
|
411
|
+
i0.ɵɵelementEnd()();
|
|
412
|
+
i0.ɵɵelementStart(8, "div", 7)(9, "span", 8);
|
|
413
|
+
i0.ɵɵelement(10, "i");
|
|
372
414
|
i0.ɵɵtext(11);
|
|
373
|
-
i0.ɵɵ
|
|
415
|
+
i0.ɵɵelementEnd();
|
|
374
416
|
i0.ɵɵconditionalCreate(12, ActivityIdentityComponent_Conditional_12_Template, 3, 3, "span", 9);
|
|
375
417
|
i0.ɵɵconditionalCreate(13, ActivityIdentityComponent_Conditional_13_Template, 2, 2, "span", 10);
|
|
376
418
|
i0.ɵɵconditionalCreate(14, ActivityIdentityComponent_Conditional_14_Template, 3, 1, "span", 11);
|
|
377
419
|
i0.ɵɵconditionalCreate(15, ActivityIdentityComponent_Conditional_15_Template, 3, 4, "span", 12);
|
|
378
|
-
i0.ɵɵ
|
|
379
|
-
i0.ɵɵ
|
|
380
|
-
i0.ɵɵ
|
|
381
|
-
i0.ɵɵ
|
|
382
|
-
i0.ɵɵ
|
|
420
|
+
i0.ɵɵelementEnd()();
|
|
421
|
+
i0.ɵɵelementStart(16, "button", 13);
|
|
422
|
+
i0.ɵɵlistener("click", function ActivityIdentityComponent_Template_button_click_16_listener() { return ctx.ToggleCollapsed(); });
|
|
423
|
+
i0.ɵɵelement(17, "i");
|
|
424
|
+
i0.ɵɵelementEnd()();
|
|
383
425
|
i0.ɵɵconditionalCreate(18, ActivityIdentityComponent_Conditional_18_Template, 8, 7);
|
|
384
|
-
i0.ɵɵ
|
|
426
|
+
i0.ɵɵelementEnd();
|
|
385
427
|
} if (rf & 2) {
|
|
386
428
|
i0.ɵɵclassProp("biz-hero--collapsed", ctx.Collapsed);
|
|
387
429
|
i0.ɵɵadvance(2);
|
|
@@ -403,17 +445,17 @@ export class ActivityIdentityComponent {
|
|
|
403
445
|
i0.ɵɵadvance();
|
|
404
446
|
i0.ɵɵconditional(ctx.SentimentDisplay ? 15 : -1);
|
|
405
447
|
i0.ɵɵadvance();
|
|
406
|
-
i0.ɵɵ
|
|
448
|
+
i0.ɵɵproperty("title", ctx.Collapsed ? "Expand header" : "Collapse header");
|
|
407
449
|
i0.ɵɵattribute("aria-label", ctx.Collapsed ? "Expand header" : "Collapse header");
|
|
408
450
|
i0.ɵɵadvance();
|
|
409
451
|
i0.ɵɵclassMap(ctx.Collapsed ? "fa-solid fa-chevron-down" : "fa-solid fa-chevron-up");
|
|
410
452
|
i0.ɵɵadvance();
|
|
411
453
|
i0.ɵɵconditional(!ctx.Collapsed ? 18 : -1);
|
|
412
|
-
} }, dependencies: [CommonModule, BaseFormsModule, LinkDirectivesModule,
|
|
454
|
+
} }, dependencies: [CommonModule, BaseFormsModule, i1.MjRecordLinkDirective, LinkDirectivesModule, i2.DatePipe], styles: [".biz-hero[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4);\n padding: 20px 24px;\n margin-bottom: var(--mj-space-4);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-xl, 16px);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.08));\n position: relative;\n overflow: hidden;\n container-type: inline-size;\n container-name: biz-hero;\n}\n\n.biz-hero[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 3.5px;\n background: linear-gradient(90deg, #38bdf8 0%, #6366f1 50%, #10b981 100%);\n}\n\n.biz-hero__identity[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4);\n min-width: 0;\n}\n\n.biz-hero__avatar[_ngcontent-%COMP%] {\n flex: none;\n width: 60px;\n height: 60px;\n border-radius: var(--mj-radius-lg, 14px);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface)) 0%, color-mix(in srgb, var(--mj-brand-accent, #6366f1) 25%, var(--mj-bg-surface)) 100%);\n color: var(--mj-text-inverse, #ffffff);\n box-shadow: 0 4px 14px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.biz-hero__avatar[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n\n.biz-hero__presence[_ngcontent-%COMP%] {\n position: absolute;\n bottom: -2px;\n right: -2px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: var(--mj-status-success, #10b981);\n border: 2.5px solid var(--mj-bg-surface-card);\n}\n\n.biz-hero__initials[_ngcontent-%COMP%] {\n font-size: 1.15rem;\n font-weight: 800;\n letter-spacing: 0.02em;\n color: var(--mj-brand-primary);\n}\n\n.biz-hero__copy[_ngcontent-%COMP%] {\n min-width: 0;\n flex: 1;\n}\n\n.biz-hero__title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n}\n\n.biz-hero__name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n line-height: 1.25;\n letter-spacing: -0.01em;\n color: var(--mj-text-primary);\n}\n\n.biz-hero__badges[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n margin-top: var(--mj-space-2);\n}\n\n.biz-hero__entity-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-sm);\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.biz-hero__chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.02em;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.biz-hero__chip--interactive[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.biz-hero__chip--interactive[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-primary);\n}\n\n.biz-hero__chip-count[_ngcontent-%COMP%] {\n font-size: 10px;\n padding: 0 4px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n.biz-hero__secondary-chips[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n margin-top: var(--mj-space-1);\n font-size: var(--mj-text-xs);\n}\n\n.biz-hero__secondary-label[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 11px;\n font-weight: var(--mj-font-medium);\n}\n\n.biz-hero__sub-chip[_ngcontent-%COMP%] {\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n color: var(--mj-text-secondary);\n font-size: 11px;\n}\n\n.biz-hero__chip[data-tone='success'][_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border-color: var(--mj-status-success-border);\n}\n\n.biz-hero__chip[data-tone='success'][_ngcontent-%COMP%]::before {\n content: '';\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--mj-status-success);\n}\n\n.biz-hero__chip[data-tone='warning'][_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border-color: var(--mj-status-warning-border);\n}\n\n.biz-hero__aka[_ngcontent-%COMP%] {\n margin-top: 2px;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.biz-hero__summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: var(--mj-space-3);\n margin-top: var(--mj-space-4);\n padding-top: var(--mj-space-4);\n border-top: 1px solid var(--mj-border-default);\n}\n\n.biz-hero__stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n\n.biz-hero__stat-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.biz-hero__stat-val[_ngcontent-%COMP%] {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 15px;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.biz-hero__stat-val.is-link[_ngcontent-%COMP%], \nbutton.biz-hero__stat-val[_ngcontent-%COMP%] {\n border: 0;\n padding: 0;\n background: transparent;\n color: var(--mj-text-link);\n cursor: pointer;\n font: inherit;\n font-weight: var(--mj-font-semibold);\n text-align: left;\n}\n\n.biz-hero__stat-val.is-link[_ngcontent-%COMP%]:hover, \nbutton.biz-hero__stat-val[_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n}\n\n\n\n\n.biz-hero__edit[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n padding-top: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.biz-hero__field[_ngcontent-%COMP%] {\n min-width: 0;\n}\n\n\n\n\n.biz-hero__field[_ngcontent-%COMP%] .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.biz-hero__field[_ngcontent-%COMP%] .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.biz-hero__field[_ngcontent-%COMP%] .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.biz-hero__field[_ngcontent-%COMP%] .mj-forms-field-control {\n width: 100%;\n}\n\n@container biz-hero (min-width: 52rem) {\n .biz-hero__edit[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n gap: var(--mj-space-3) var(--mj-space-4);\n }\n\n .biz-hero__field--span[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n }\n}\n\n@media (max-width: 720px) {\n .biz-hero__identity[_ngcontent-%COMP%] {\n align-items: flex-start;\n }\n\n .biz-hero__summary[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n\n\n.biz-hero__toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, rgba(255, 255, 255, 0.04));\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 0;\n font-size: 12px;\n transition: all 0.15s ease;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.biz-hero__toggle[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n\n.biz-hero--collapsed[_ngcontent-%COMP%] {\n padding: 12px 20px;\n gap: 0;\n margin-bottom: var(--mj-space-3);\n}\n\n.biz-hero--collapsed[_ngcontent-%COMP%] .biz-hero__avatar[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n border-radius: var(--mj-radius-md, 10px);\n}\n\n.biz-hero--collapsed[_ngcontent-%COMP%] .biz-hero__initials[_ngcontent-%COMP%] {\n font-size: 0.95rem;\n}\n\n.biz-hero--collapsed[_ngcontent-%COMP%] .biz-hero__name[_ngcontent-%COMP%] {\n font-size: 1.15rem;\n}\n\n.biz-hero--collapsed[_ngcontent-%COMP%] .biz-hero__edit[_ngcontent-%COMP%] {\n margin-top: var(--mj-space-3);\n}"] });
|
|
413
455
|
}
|
|
414
456
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActivityIdentityComponent, [{
|
|
415
457
|
type: Component,
|
|
416
|
-
args: [{ standalone: true, selector: 'bizapps-activity-identity', imports: [CommonModule, BaseFormsModule, LinkDirectivesModule], template: "<div class=\"biz-hero\" [class.biz-hero--collapsed]=\"Collapsed\">\n <div class=\"biz-hero__identity\">\n <div class=\"biz-hero__avatar\" [style.background]=\"TypeBackground\" aria-hidden=\"true\">\n <i [class]=\"TypeIcon\" style=\"font-size: 1.5rem; color: #ffffff;\"></i>\n </div>\n\n <div class=\"biz-hero__copy\">\n <div class=\"biz-hero__title-row\">\n <h1 class=\"biz-hero__name\">{{ Record.Title || 'New Activity' }}</h1>\n </div>\n <div class=\"biz-hero__badges\">\n <span class=\"biz-hero__entity-chip\">\n <i [class]=\"TypeIcon\"></i>\n {{ Record.ActivityType || 'Activity' }}\n </span>\n @if (Record.Direction) {\n <span class=\"biz-hero__chip\" data-tone=\"info\">\n <i [class]=\"DirectionIcon\"></i>\n {{ Record.Direction }}\n </span>\n }\n @if (Record.Status) {\n <span class=\"biz-hero__chip\" [attr.data-tone]=\"StatusTone\">\n {{ Record.Status }}\n </span>\n }\n @if (Record.Outcome) {\n <span class=\"biz-hero__chip\" data-tone=\"purple\">\n <i class=\"fa-solid fa-flag\"></i>\n {{ Record.Outcome }}\n </span>\n }\n @if (SentimentDisplay) {\n <span class=\"biz-hero__chip\" [attr.data-tone]=\"SentimentTone\" title=\"Derived Sentiment Score\">\n <i [class]=\"SentimentIcon\"></i>\n Sentiment {{ SentimentDisplay }}\n </span>\n }\n </div>\n </div>\n\n <button type=\"button\"\n class=\"biz-hero__toggle\"\n [title]=\"Collapsed ? 'Expand header' : 'Collapse header'\"\n [attr.aria-label]=\"Collapsed ? 'Expand header' : 'Collapse header'\"\n (click)=\"ToggleCollapsed()\">\n <i [class]=\"Collapsed ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-up'\"></i>\n </button>\n </div>\n\n @if (!Collapsed) {\n <div class=\"biz-hero__summary\">\n @if (Record.StartedAt) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">When</span>\n <span class=\"biz-hero__stat-val\">\n {{ Record.StartedAt | date:'MMM d, y, h:mm a' }}\n @if (DurationText) {\n <span style=\"opacity: 0.75; font-size: 0.88em; font-weight: 500;\">({{ DurationText }})</span>\n }\n </span>\n </div>\n }\n @if (Record.LoggedByUser) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Logged By</span>\n <span class=\"biz-hero__stat-val\">{{ Record.LoggedByUser }}</span>\n </div>\n }\n @if (LocationDisplay) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Location</span>\n <span class=\"biz-hero__stat-val\">\n <i class=\"fa-solid fa-location-dot\" style=\"font-size: 0.85em; opacity: 0.7; margin-right: 4px;\"></i>\n {{ LocationDisplay }}\n </span>\n </div>\n }\n @if (MeetingURL) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Video Meeting</span>\n <a [href]=\"MeetingURL\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"biz-hero__stat-val\" style=\"color: var(--mj-brand-primary); text-decoration: underline; display: inline-flex; align-items: center; gap: 4px;\">\n <i class=\"fa-solid fa-video\"></i>\n Join Meeting\n </a>\n </div>\n }\n @if (Record.Source) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Source</span>\n <span class=\"biz-hero__stat-val\">\n <i class=\"fa-solid fa-cloud\" style=\"font-size: 0.85em; opacity: 0.7; margin-right: 4px;\"></i>\n {{ SourceDisplay }}\n </span>\n </div>\n }\n @if (Record.ParentActivity) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Thread / Parent</span>\n <button type=\"button\" class=\"biz-hero__stat-val\" (click)=\"OnParentActivityClick($event)\">\n <i class=\"fa-solid fa-reply\" style=\"font-size: 0.85em; opacity: 0.7; margin-right: 4px;\"></i>\n {{ Record.ParentActivity }}\n </button>\n </div>\n }\n </div>\n\n @if (Record.Description) {\n <div style=\"padding-top: var(--mj-space-2, 8px); border-top: 1px solid var(--mj-border-subtle, #f1f5f9); font-size: var(--mj-text-sm, 13px); line-height: 1.5; color: var(--mj-text-secondary, #334155); white-space: pre-wrap;\">\n {{ Record.Description }}\n </div>\n }\n }\n</div>\n", styles: [".biz-hero {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4);\n padding: 20px 24px;\n margin-bottom: var(--mj-space-4);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-xl, 16px);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.08));\n position: relative;\n overflow: hidden;\n container-type: inline-size;\n container-name: biz-hero;\n}\n\n.biz-hero::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 3.5px;\n background: linear-gradient(90deg, #38bdf8 0%, #6366f1 50%, #10b981 100%);\n}\n\n.biz-hero__identity {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4);\n min-width: 0;\n}\n\n.biz-hero__avatar {\n flex: none;\n width: 60px;\n height: 60px;\n border-radius: var(--mj-radius-lg, 14px);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface)) 0%, color-mix(in srgb, var(--mj-brand-accent, #6366f1) 25%, var(--mj-bg-surface)) 100%);\n color: var(--mj-text-inverse, #ffffff);\n box-shadow: 0 4px 14px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.biz-hero__avatar img {\n width: 100%;\n height: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n\n.biz-hero__presence {\n position: absolute;\n bottom: -2px;\n right: -2px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: var(--mj-status-success, #10b981);\n border: 2.5px solid var(--mj-bg-surface-card);\n}\n\n.biz-hero__initials {\n font-size: 1.15rem;\n font-weight: 800;\n letter-spacing: 0.02em;\n color: var(--mj-brand-primary);\n}\n\n.biz-hero__copy {\n min-width: 0;\n flex: 1;\n}\n\n.biz-hero__title-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n}\n\n.biz-hero__name {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n line-height: 1.25;\n letter-spacing: -0.01em;\n color: var(--mj-text-primary);\n}\n\n.biz-hero__badges {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n margin-top: var(--mj-space-2);\n}\n\n.biz-hero__entity-chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-sm);\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.biz-hero__chip {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.02em;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.biz-hero__chip--interactive {\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.biz-hero__chip--interactive:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-primary);\n}\n\n.biz-hero__chip-count {\n font-size: 10px;\n padding: 0 4px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n.biz-hero__secondary-chips {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n margin-top: var(--mj-space-1);\n font-size: var(--mj-text-xs);\n}\n\n.biz-hero__secondary-label {\n color: var(--mj-text-muted);\n font-size: 11px;\n font-weight: var(--mj-font-medium);\n}\n\n.biz-hero__sub-chip {\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n color: var(--mj-text-secondary);\n font-size: 11px;\n}\n\n.biz-hero__chip[data-tone='success'] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border-color: var(--mj-status-success-border);\n}\n\n.biz-hero__chip[data-tone='success']::before {\n content: '';\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--mj-status-success);\n}\n\n.biz-hero__chip[data-tone='warning'] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border-color: var(--mj-status-warning-border);\n}\n\n.biz-hero__aka {\n margin-top: 2px;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.biz-hero__summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: var(--mj-space-3);\n margin-top: var(--mj-space-4);\n padding-top: var(--mj-space-4);\n border-top: 1px solid var(--mj-border-default);\n}\n\n.biz-hero__stat {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n\n.biz-hero__stat-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.biz-hero__stat-val {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 15px;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.biz-hero__stat-val.is-link,\nbutton.biz-hero__stat-val {\n border: 0;\n padding: 0;\n background: transparent;\n color: var(--mj-text-link);\n cursor: pointer;\n font: inherit;\n font-weight: var(--mj-font-semibold);\n text-align: left;\n}\n\n.biz-hero__stat-val.is-link:hover,\nbutton.biz-hero__stat-val:hover {\n text-decoration: underline;\n}\n\n/* mj-form-field is display:contents \u2014 never let its label/control become\n siblings of a parent grid. Each field sits in a wrapping cell. */\n.biz-hero__edit {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n padding-top: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.biz-hero__field {\n min-width: 0;\n}\n\n/* Label above the control. The shared field is a 200px|1fr row \u2014 that\n needs ~28rem per field and is why this card looked broken. */\n.biz-hero__field ::ng-deep .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.biz-hero__field ::ng-deep .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.biz-hero__field ::ng-deep .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.biz-hero__field ::ng-deep .mj-forms-field-control {\n width: 100%;\n}\n\n@container biz-hero (min-width: 52rem) {\n .biz-hero__edit {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n gap: var(--mj-space-3) var(--mj-space-4);\n }\n\n .biz-hero__field--span {\n grid-column: 1 / -1;\n }\n}\n\n@media (max-width: 720px) {\n .biz-hero__identity {\n align-items: flex-start;\n }\n\n .biz-hero__summary {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n/* \u2500\u2500 Collapsed State & Toggle Button \u2500\u2500 */\n.biz-hero__toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, rgba(255, 255, 255, 0.04));\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 0;\n font-size: 12px;\n transition: all 0.15s ease;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.biz-hero__toggle:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-hover, rgba(255, 255, 255, 0.08));\n border-color: var(--mj-brand-primary);\n}\n\n.biz-hero--collapsed {\n padding: 12px 20px;\n gap: 0;\n margin-bottom: var(--mj-space-3);\n}\n\n.biz-hero--collapsed .biz-hero__avatar {\n width: 42px;\n height: 42px;\n border-radius: var(--mj-radius-md, 10px);\n}\n\n.biz-hero--collapsed .biz-hero__initials {\n font-size: 0.95rem;\n}\n\n.biz-hero--collapsed .biz-hero__name {\n font-size: 1.15rem;\n}\n"] }]
|
|
458
|
+
args: [{ standalone: true, selector: 'bizapps-activity-identity', imports: [CommonModule, BaseFormsModule, LinkDirectivesModule], template: "<div class=\"biz-hero\" [class.biz-hero--collapsed]=\"Collapsed\">\n <div class=\"biz-hero__identity\">\n <div class=\"biz-hero__avatar\" [style.background]=\"TypeBackground\" aria-hidden=\"true\">\n <i [class]=\"TypeIcon\" style=\"font-size: 1.5rem; color: #ffffff;\"></i>\n </div>\n\n <div class=\"biz-hero__copy\">\n <div class=\"biz-hero__title-row\">\n <h1 class=\"biz-hero__name\">{{ Record.Title || 'New Activity' }}</h1>\n </div>\n <div class=\"biz-hero__badges\">\n <span class=\"biz-hero__entity-chip\">\n <i [class]=\"TypeIcon\"></i>\n {{ Record.ActivityType || 'Activity' }}\n </span>\n @if (Record.Direction) {\n <span class=\"biz-hero__chip\" data-tone=\"info\">\n <i [class]=\"DirectionIcon\"></i>\n {{ Record.Direction }}\n </span>\n }\n @if (Record.Status) {\n <span class=\"biz-hero__chip\" [attr.data-tone]=\"StatusTone\">\n {{ Record.Status }}\n </span>\n }\n @if (Record.Outcome) {\n <span class=\"biz-hero__chip\" data-tone=\"purple\">\n <i class=\"fa-solid fa-flag\"></i>\n {{ Record.Outcome }}\n </span>\n }\n @if (SentimentDisplay) {\n <span class=\"biz-hero__chip\" [attr.data-tone]=\"SentimentTone\" title=\"Derived Sentiment Score\">\n <i [class]=\"SentimentIcon\"></i>\n Sentiment {{ SentimentDisplay }}\n </span>\n }\n </div>\n </div>\n\n <button type=\"button\"\n class=\"biz-hero__toggle\"\n [title]=\"Collapsed ? 'Expand header' : 'Collapse header'\"\n [attr.aria-label]=\"Collapsed ? 'Expand header' : 'Collapse header'\"\n (click)=\"ToggleCollapsed()\">\n <i [class]=\"Collapsed ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-up'\"></i>\n </button>\n </div>\n\n @if (!Collapsed) {\n <div class=\"biz-hero__summary\">\n @if (Record.StartedAt) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">When</span>\n <span class=\"biz-hero__stat-val\">\n {{ Record.StartedAt | date:'MMM d, y, h:mm a' }}\n @if (DurationText) {\n <span style=\"opacity: 0.75; font-size: 0.88em; font-weight: 500;\">({{ DurationText }})</span>\n }\n </span>\n </div>\n }\n @if (Record.LoggedByUser) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Logged By</span>\n <span class=\"biz-hero__stat-val\">{{ Record.LoggedByUser }}</span>\n </div>\n }\n @if (LocationDisplay) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Location</span>\n <span class=\"biz-hero__stat-val\">\n <i class=\"fa-solid fa-location-dot\" style=\"font-size: 0.85em; opacity: 0.7; margin-right: 4px;\"></i>\n {{ LocationDisplay }}\n </span>\n </div>\n }\n @if (MeetingURL) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Video Meeting</span>\n <a [href]=\"MeetingURL\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"biz-hero__stat-val\" style=\"color: var(--mj-brand-primary); text-decoration: underline; display: inline-flex; align-items: center; gap: 4px;\">\n <i class=\"fa-solid fa-video\"></i>\n Join Meeting\n </a>\n </div>\n }\n @if (Record.Source) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Source</span>\n <span class=\"biz-hero__stat-val\">\n <i class=\"fa-solid fa-cloud\" style=\"font-size: 0.85em; opacity: 0.7; margin-right: 4px;\"></i>\n {{ SourceDisplay }}\n </span>\n </div>\n }\n @if (Record.ParentActivityID) {\n <div class=\"biz-hero__stat\">\n <span class=\"biz-hero__stat-label\">Thread / Parent</span>\n <button type=\"button\" class=\"biz-hero__stat-val\"\n [mjRecordLink]=\"Record\"\n FieldName=\"ParentActivityID\"\n EntityName=\"MJ_BizApps_Common: Activities\"\n [HandleClick]=\"false\"\n (Navigate)=\"Navigate.emit($event)\"\n (click)=\"OnParentActivityClick($event)\">\n <i class=\"fa-solid fa-reply\" style=\"font-size: 0.85em; opacity: 0.7; margin-right: 4px;\"></i>\n {{ ParentActivityLabel }}\n </button>\n </div>\n }\n </div>\n\n @if (Record.Description) {\n <div style=\"padding-top: var(--mj-space-2, 8px); border-top: 1px solid var(--mj-border-subtle, #f1f5f9); font-size: var(--mj-text-sm, 13px); line-height: 1.5; color: var(--mj-text-secondary, #334155); white-space: pre-wrap;\">\n {{ Record.Description }}\n </div>\n }\n }\n</div>\n", styles: [".biz-hero {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-4);\n padding: 20px 24px;\n margin-bottom: var(--mj-space-4);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-xl, 16px);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.08));\n position: relative;\n overflow: hidden;\n container-type: inline-size;\n container-name: biz-hero;\n}\n\n.biz-hero::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 3.5px;\n background: linear-gradient(90deg, #38bdf8 0%, #6366f1 50%, #10b981 100%);\n}\n\n.biz-hero__identity {\n display: flex;\n align-items: center;\n gap: var(--mj-space-4);\n min-width: 0;\n}\n\n.biz-hero__avatar {\n flex: none;\n width: 60px;\n height: 60px;\n border-radius: var(--mj-radius-lg, 14px);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface)) 0%, color-mix(in srgb, var(--mj-brand-accent, #6366f1) 25%, var(--mj-bg-surface)) 100%);\n color: var(--mj-text-inverse, #ffffff);\n box-shadow: 0 4px 14px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.biz-hero__avatar img {\n width: 100%;\n height: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n\n.biz-hero__presence {\n position: absolute;\n bottom: -2px;\n right: -2px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: var(--mj-status-success, #10b981);\n border: 2.5px solid var(--mj-bg-surface-card);\n}\n\n.biz-hero__initials {\n font-size: 1.15rem;\n font-weight: 800;\n letter-spacing: 0.02em;\n color: var(--mj-brand-primary);\n}\n\n.biz-hero__copy {\n min-width: 0;\n flex: 1;\n}\n\n.biz-hero__title-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2) var(--mj-space-3);\n}\n\n.biz-hero__name {\n margin: 0;\n font-size: var(--mj-text-lg, 18px);\n font-weight: var(--mj-font-bold, 700);\n line-height: 1.25;\n letter-spacing: -0.01em;\n color: var(--mj-text-primary);\n}\n\n.biz-hero__badges {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n margin-top: var(--mj-space-2);\n}\n\n.biz-hero__entity-chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-sm);\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n}\n\n.biz-hero__chip {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.02em;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.biz-hero__chip--interactive {\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.biz-hero__chip--interactive:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-primary);\n}\n\n.biz-hero__chip-count {\n font-size: 10px;\n padding: 0 4px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n.biz-hero__secondary-chips {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n margin-top: var(--mj-space-1);\n font-size: var(--mj-text-xs);\n}\n\n.biz-hero__secondary-label {\n color: var(--mj-text-muted);\n font-size: 11px;\n font-weight: var(--mj-font-medium);\n}\n\n.biz-hero__sub-chip {\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n color: var(--mj-text-secondary);\n font-size: 11px;\n}\n\n.biz-hero__chip[data-tone='success'] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border-color: var(--mj-status-success-border);\n}\n\n.biz-hero__chip[data-tone='success']::before {\n content: '';\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--mj-status-success);\n}\n\n.biz-hero__chip[data-tone='warning'] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border-color: var(--mj-status-warning-border);\n}\n\n.biz-hero__aka {\n margin-top: 2px;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n.biz-hero__summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: var(--mj-space-3);\n margin-top: var(--mj-space-4);\n padding-top: var(--mj-space-4);\n border-top: 1px solid var(--mj-border-default);\n}\n\n.biz-hero__stat {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n\n.biz-hero__stat-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.biz-hero__stat-val {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 15px;\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.biz-hero__stat-val.is-link,\nbutton.biz-hero__stat-val {\n border: 0;\n padding: 0;\n background: transparent;\n color: var(--mj-text-link);\n cursor: pointer;\n font: inherit;\n font-weight: var(--mj-font-semibold);\n text-align: left;\n}\n\n.biz-hero__stat-val.is-link:hover,\nbutton.biz-hero__stat-val:hover {\n text-decoration: underline;\n}\n\n/* mj-form-field is display:contents \u2014 never let its label/control become\n siblings of a parent grid. Each field sits in a wrapping cell. */\n.biz-hero__edit {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n padding-top: var(--mj-space-3);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.biz-hero__field {\n min-width: 0;\n}\n\n/* Label above the control. The shared field is a 200px|1fr row \u2014 that\n needs ~28rem per field and is why this card looked broken. */\n.biz-hero__field ::ng-deep .mj-forms-field {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 4px;\n padding: 0;\n}\n\n.biz-hero__field ::ng-deep .mj-forms-field-label {\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-bold);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n}\n\n.biz-hero__field ::ng-deep .mj-forms-field--editing:hover {\n margin: 0;\n padding: 0;\n}\n\n.biz-hero__field ::ng-deep .mj-forms-field-control {\n width: 100%;\n}\n\n@container biz-hero (min-width: 52rem) {\n .biz-hero__edit {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n gap: var(--mj-space-3) var(--mj-space-4);\n }\n\n .biz-hero__field--span {\n grid-column: 1 / -1;\n }\n}\n\n@media (max-width: 720px) {\n .biz-hero__identity {\n align-items: flex-start;\n }\n\n .biz-hero__summary {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n/* \u2500\u2500 Collapsed State & Toggle Button \u2500\u2500 */\n.biz-hero__toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, rgba(255, 255, 255, 0.04));\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 0;\n font-size: 12px;\n transition: all 0.15s ease;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.biz-hero__toggle:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n\n.biz-hero--collapsed {\n padding: 12px 20px;\n gap: 0;\n margin-bottom: var(--mj-space-3);\n}\n\n.biz-hero--collapsed .biz-hero__avatar {\n width: 42px;\n height: 42px;\n border-radius: var(--mj-radius-md, 10px);\n}\n\n.biz-hero--collapsed .biz-hero__initials {\n font-size: 0.95rem;\n}\n\n.biz-hero--collapsed .biz-hero__name {\n font-size: 1.15rem;\n}\n\n.biz-hero--collapsed .biz-hero__edit {\n margin-top: var(--mj-space-3);\n}\n"] }]
|
|
417
459
|
}], null, { Record: [{
|
|
418
460
|
type: Input,
|
|
419
461
|
args: [{ required: true }]
|
|
@@ -424,5 +466,5 @@ export class ActivityIdentityComponent {
|
|
|
424
466
|
}], Navigate: [{
|
|
425
467
|
type: Output
|
|
426
468
|
}] }); })();
|
|
427
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIdentityComponent, { className: "ActivityIdentityComponent", filePath: "lib/components/identity-header/activity-identity.component.ts", lineNumber:
|
|
469
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIdentityComponent, { className: "ActivityIdentityComponent", filePath: "lib/components/identity-header/activity-identity.component.ts", lineNumber: 75 }); })();
|
|
428
470
|
//# sourceMappingURL=activity-identity.component.js.map
|