@mj-biz-apps/common-ng 5.63.0 → 5.65.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 +46 -7
- package/dist/lib/components/identity-header/activity-identity.component.js.map +1 -1
- package/dist/lib/components/identity-header/organization-identity.component.js +48 -18
- package/dist/lib/components/identity-header/organization-identity.component.js.map +1 -1
- package/dist/lib/components/identity-header/person-identity.component.js +38 -28
- package/dist/lib/components/identity-header/person-identity.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/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 +6 -6
- 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-type-hierarchy.panel.js +2 -2
- package/dist/lib/custom/panels/activity-type-hierarchy.panel.js.map +1 -1
- package/dist/lib/data/__tests__/directory-dashboard-days.test.js +61 -9
- package/dist/lib/data/__tests__/directory-dashboard-days.test.js.map +1 -1
- package/dist/lib/data/directory-queries.d.ts +4 -0
- package/dist/lib/data/directory-queries.d.ts.map +1 -1
- package/dist/lib/data/directory-queries.js +41 -13
- package/dist/lib/data/directory-queries.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.d.ts +15 -3
- package/dist/lib/pages/common-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/common-dashboard.page.js +380 -315
- package/dist/lib/pages/common-dashboard.page.js.map +1 -1
- 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":"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"}
|
|
@@ -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,6 +1,7 @@
|
|
|
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';
|
|
@@ -140,7 +141,7 @@ function ActivityIdentityComponent_Conditional_18_Conditional_6_Template(rf, ctx
|
|
|
140
141
|
} if (rf & 2) {
|
|
141
142
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
142
143
|
i0.ɵɵadvance(5);
|
|
143
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r0.
|
|
144
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.ParentActivityLabel, " ");
|
|
144
145
|
} }
|
|
145
146
|
function ActivityIdentityComponent_Conditional_18_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
146
147
|
i0.ɵɵdomElementStart(0, "div", 17);
|
|
@@ -174,10 +175,11 @@ function ActivityIdentityComponent_Conditional_18_Template(rf, ctx) { if (rf & 1
|
|
|
174
175
|
i0.ɵɵadvance();
|
|
175
176
|
i0.ɵɵconditional(ctx_r0.Record.Source ? 5 : -1);
|
|
176
177
|
i0.ɵɵadvance();
|
|
177
|
-
i0.ɵɵconditional(ctx_r0.Record.
|
|
178
|
+
i0.ɵɵconditional(ctx_r0.Record.ParentActivityID ? 6 : -1);
|
|
178
179
|
i0.ɵɵadvance();
|
|
179
180
|
i0.ɵɵconditional(ctx_r0.Record.Description ? 7 : -1);
|
|
180
181
|
} }
|
|
182
|
+
const ACTIVITIES_ENTITY = 'MJ_BizApps_Common: Activities';
|
|
181
183
|
const ACTIVITY_TYPE_STYLES = {
|
|
182
184
|
email: {
|
|
183
185
|
icon: 'fa-solid fa-envelope',
|
|
@@ -231,7 +233,10 @@ export class ActivityIdentityComponent {
|
|
|
231
233
|
FormContext;
|
|
232
234
|
Navigate = new EventEmitter();
|
|
233
235
|
Collapsed = false;
|
|
236
|
+
parentTitle = null;
|
|
237
|
+
parentTitleFor = null;
|
|
234
238
|
ngOnInit() {
|
|
239
|
+
void this.loadParentTitle();
|
|
235
240
|
const raw = UserInfoEngine.Instance.GetSetting('mj.identityHeader.collapsed.activity');
|
|
236
241
|
if (raw) {
|
|
237
242
|
try {
|
|
@@ -346,6 +351,40 @@ export class ActivityIdentityComponent {
|
|
|
346
351
|
}
|
|
347
352
|
return 'Manual';
|
|
348
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* The "Thread / Parent" label. Reads `ParentActivityID` and the parent's own Title, never the
|
|
356
|
+
* virtual `ParentActivity` name field: V202609112330 removes that field on hosts whose
|
|
357
|
+
* `vwActivities` lacks the column, where it always reads null and hid the link (#311).
|
|
358
|
+
*/
|
|
359
|
+
get ParentActivityLabel() {
|
|
360
|
+
const loaded = this.parentTitle && UUIDsEqual(this.parentTitleFor, this.Record.ParentActivityID);
|
|
361
|
+
return loaded ? this.parentTitle : 'Parent activity';
|
|
362
|
+
}
|
|
363
|
+
async loadParentTitle() {
|
|
364
|
+
const parentID = this.Record.ParentActivityID;
|
|
365
|
+
if (!parentID) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
if (!IsValidUUID(parentID)) {
|
|
369
|
+
// Checked before it goes into the filter; the link still renders with a generic label.
|
|
370
|
+
LogError(`ActivityIdentity: ParentActivityID '${parentID}' is not a UUID; not loading its title`);
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
const result = await new RunView(this.Record.RunViewProviderToUse).RunView({
|
|
374
|
+
EntityName: ACTIVITIES_ENTITY,
|
|
375
|
+
Fields: ['Title'],
|
|
376
|
+
ExtraFilter: `ID = '${parentID.trim()}'`,
|
|
377
|
+
ResultType: 'simple',
|
|
378
|
+
MaxRows: 1,
|
|
379
|
+
});
|
|
380
|
+
if (!result.Success) {
|
|
381
|
+
// The link still renders, with a generic label; only the parent's name is missing.
|
|
382
|
+
LogError(`ActivityIdentity: failed to load parent activity '${parentID}': ${result.ErrorMessage ?? 'unknown error'}`);
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
this.parentTitle = result.Results[0]?.Title || null;
|
|
386
|
+
this.parentTitleFor = parentID;
|
|
387
|
+
}
|
|
349
388
|
OnParentActivityClick(event) {
|
|
350
389
|
const id = this.Record.ParentActivityID;
|
|
351
390
|
if (!id)
|
|
@@ -354,7 +393,7 @@ export class ActivityIdentityComponent {
|
|
|
354
393
|
event.stopPropagation();
|
|
355
394
|
this.Navigate.emit({
|
|
356
395
|
Kind: 'record',
|
|
357
|
-
EntityName:
|
|
396
|
+
EntityName: ACTIVITIES_ENTITY,
|
|
358
397
|
PrimaryKey: CompositeKey.FromKeyValuePair('ID', id),
|
|
359
398
|
OpenInNewTab: event.ctrlKey || event.metaKey,
|
|
360
399
|
});
|
|
@@ -409,11 +448,11 @@ export class ActivityIdentityComponent {
|
|
|
409
448
|
i0.ɵɵclassMap(ctx.Collapsed ? "fa-solid fa-chevron-down" : "fa-solid fa-chevron-up");
|
|
410
449
|
i0.ɵɵadvance();
|
|
411
450
|
i0.ɵɵconditional(!ctx.Collapsed ? 18 : -1);
|
|
412
|
-
} }, dependencies: [CommonModule, BaseFormsModule, LinkDirectivesModule, i1.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-hover
|
|
451
|
+
} }, dependencies: [CommonModule, BaseFormsModule, LinkDirectivesModule, i1.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
452
|
}
|
|
414
453
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActivityIdentityComponent, [{
|
|
415
454
|
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"] }]
|
|
455
|
+
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\" (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
456
|
}], null, { Record: [{
|
|
418
457
|
type: Input,
|
|
419
458
|
args: [{ required: true }]
|
|
@@ -424,5 +463,5 @@ export class ActivityIdentityComponent {
|
|
|
424
463
|
}], Navigate: [{
|
|
425
464
|
type: Output
|
|
426
465
|
}] }); })();
|
|
427
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIdentityComponent, { className: "ActivityIdentityComponent", filePath: "lib/components/identity-header/activity-identity.component.ts", lineNumber:
|
|
466
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIdentityComponent, { className: "ActivityIdentityComponent", filePath: "lib/components/identity-header/activity-identity.component.ts", lineNumber: 75 }); })();
|
|
428
467
|
//# sourceMappingURL=activity-identity.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-identity.component.js","sourceRoot":"","sources":["../../../../src/lib/components/identity-header/activity-identity.component.ts","../../../../src/lib/components/identity-header/activity-identity.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-identity.component.js","sourceRoot":"","sources":["../../../../src/lib/components/identity-header/activity-identity.component.ts","../../../../src/lib/components/identity-header/activity-identity.component.html"],"names":[],"mappings":"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"}
|