@mj-biz-apps/common-ng 5.38.0 → 5.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/lib/data/__tests__/directory-stats.test.js +9 -2
  2. package/dist/lib/data/__tests__/directory-stats.test.js.map +1 -1
  3. package/dist/lib/data/__tests__/directory-views.test.d.ts +2 -0
  4. package/dist/lib/data/__tests__/directory-views.test.d.ts.map +1 -0
  5. package/dist/lib/data/__tests__/directory-views.test.js +26 -0
  6. package/dist/lib/data/__tests__/directory-views.test.js.map +1 -0
  7. package/dist/lib/data/directory-queries.d.ts +17 -1
  8. package/dist/lib/data/directory-queries.d.ts.map +1 -1
  9. package/dist/lib/data/directory-queries.js +124 -1
  10. package/dist/lib/data/directory-queries.js.map +1 -1
  11. package/dist/lib/data/directory-stats.d.ts +7 -0
  12. package/dist/lib/data/directory-stats.d.ts.map +1 -1
  13. package/dist/lib/data/directory-stats.js +13 -1
  14. package/dist/lib/data/directory-stats.js.map +1 -1
  15. package/dist/lib/data/directory-views.d.ts +75 -0
  16. package/dist/lib/data/directory-views.d.ts.map +1 -0
  17. package/dist/lib/data/directory-views.js +111 -0
  18. package/dist/lib/data/directory-views.js.map +1 -0
  19. package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.js +34 -30
  20. package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.js.map +1 -1
  21. package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.js +2 -2
  22. package/dist/lib/pages/common-dashboard.page.d.ts +14 -7
  23. package/dist/lib/pages/common-dashboard.page.d.ts.map +1 -1
  24. package/dist/lib/pages/common-dashboard.page.js +150 -203
  25. package/dist/lib/pages/common-dashboard.page.js.map +1 -1
  26. package/dist/lib/pages/organizations-list.page.d.ts +6 -7
  27. package/dist/lib/pages/organizations-list.page.d.ts.map +1 -1
  28. package/dist/lib/pages/organizations-list.page.js +47 -135
  29. package/dist/lib/pages/organizations-list.page.js.map +1 -1
  30. package/dist/lib/pages/people-list.page.d.ts +6 -9
  31. package/dist/lib/pages/people-list.page.d.ts.map +1 -1
  32. package/dist/lib/pages/people-list.page.js +47 -142
  33. package/dist/lib/pages/people-list.page.js.map +1 -1
  34. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { BuildDirectoryQueues, CountByDay, CountByLabel, EscapeFilterValue, PeopleMissingEmail, PersonEmail, } from '../directory-stats';
2
+ import { BuildDirectoryQueues, CountByDay, CountByLabel, EscapeFilterValue, EscapeLikeValue, PeopleMissingEmail, PersonEmail, } from '../directory-stats';
3
3
  import { COMMON_ENTITIES } from '../entity-names';
4
4
  function person(partial) {
5
5
  return {
@@ -72,8 +72,15 @@ describe('directory-stats', () => {
72
72
  expect(rows[0]).toEqual({ Label: 'Company', Value: 2 });
73
73
  expect(rows[1]).toEqual({ Label: 'Chapter', Value: 1 });
74
74
  });
75
- it('escapes quotes for ExtraFilter', () => {
75
+ it('escapes quotes and drops NULs for ExtraFilter', () => {
76
76
  expect(EscapeFilterValue("O'Brien")).toBe("O''Brien");
77
+ expect(EscapeFilterValue('a\0b')).toBe('ab');
78
+ });
79
+ it('bracket-escapes LIKE wildcards in EscapeLikeValue', () => {
80
+ expect(EscapeLikeValue('100%')).toBe('100[%]');
81
+ expect(EscapeLikeValue('a_b')).toBe('a[_]b');
82
+ expect(EscapeLikeValue('[x]')).toBe('[[]x]');
83
+ expect(EscapeLikeValue("O'Brien\0")).toBe("O''Brien");
77
84
  });
78
85
  });
79
86
  //# sourceMappingURL=directory-stats.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-stats.test.js","sourceRoot":"","sources":["../../../../src/lib/data/__tests__/directory-stats.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-stats.test.js","sourceRoot":"","sources":["../../../../src/lib/data/__tests__/directory-stats.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=directory-views.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-views.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/data/__tests__/directory-views.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { DIRECTORY_VIEW_NAMES, LatestPeopleGridState, OrganizationsDirectoryGridState, PeopleDirectoryGridState, RelationshipsGridState, } from '../directory-views';
3
+ describe('directory views', () => {
4
+ it('puts PhotoURL first on people grids so the viewer can render a thumbnail', () => {
5
+ expect(PeopleDirectoryGridState().columnSettings[0].Name).toBe('PhotoURL');
6
+ expect(LatestPeopleGridState().columnSettings[0].Name).toBe('PhotoURL');
7
+ expect(PeopleDirectoryGridState().columnSettings[0].format).toEqual({ type: 'image' });
8
+ });
9
+ it('puts LogoURL first on the organizations grid', () => {
10
+ expect(OrganizationsDirectoryGridState().columnSettings[0].Name).toBe('LogoURL');
11
+ expect(OrganizationsDirectoryGridState().columnSettings[0].format).toEqual({ type: 'image' });
12
+ });
13
+ it('keeps relationship columns as names, not photos', () => {
14
+ const names = RelationshipsGridState().columnSettings.map((c) => c.Name);
15
+ expect(names).toContain('FromPerson');
16
+ expect(names).toContain('ToOrganization');
17
+ expect(names.some((n) => /photo|logo/i.test(n))).toBe(false);
18
+ });
19
+ it('uses stable view names for metadata lookup', () => {
20
+ expect(DIRECTORY_VIEW_NAMES.People).toBe('Common: People directory');
21
+ expect(DIRECTORY_VIEW_NAMES.LatestPeople).toBe('Common: Latest people');
22
+ expect(DIRECTORY_VIEW_NAMES.Organizations).toBe('Common: Organizations directory');
23
+ expect(DIRECTORY_VIEW_NAMES.LatestRelationships).toBe('Common: Latest relationships');
24
+ });
25
+ });
26
+ //# sourceMappingURL=directory-views.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-views.test.js","sourceRoot":"","sources":["../../../../src/lib/data/__tests__/directory-views.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,wBAAwB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,CAAC,qBAAqB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,CAAC,wBAAwB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,+BAA+B,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,CAAC,+BAA+B,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACrE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACxE,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACnF,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,4 +1,20 @@
1
- import type { DirectoryOrganizationRow, DirectoryPersonRow, DirectoryRelationshipRow } from './directory-types';
1
+ import type { DirectoryAttentionItem, DirectoryBarRow, DirectoryDayBar, DirectoryOrganizationRow, DirectoryPersonRow, DirectoryQueue, DirectoryRelationshipRow } from './directory-types';
2
+ export interface DirectoryDashboardSummary {
3
+ ActivePeopleCount: number;
4
+ TotalPeopleCount: number;
5
+ ActiveOrganizationCount: number;
6
+ TotalOrganizationCount: number;
7
+ RelationshipCount: number;
8
+ PeopleMissingEmail: number;
9
+ PeopleMissingOrganization: number;
10
+ OrganizationsMissingType: number;
11
+ OrganizationsMissingWebsite: number;
12
+ PeoplePerDay: DirectoryDayBar[];
13
+ OrganizationTypeMix: DirectoryBarRow[];
14
+ WorthALook: DirectoryAttentionItem[];
15
+ Queues: DirectoryQueue[];
16
+ }
17
+ export declare function LoadDirectoryDashboardSummary(): Promise<DirectoryDashboardSummary | null>;
2
18
  /** Cheap directory load — one round trip, no aggregates. */
3
19
  export declare function LoadDirectorySnapshot(): Promise<{
4
20
  People: DirectoryPersonRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"directory-queries.d.ts","sourceRoot":"","sources":["../../../src/lib/data/directory-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAkDhH,4DAA4D;AAC5D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACnD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,aAAa,EAAE,wBAAwB,EAAE,CAAC;IAC1C,aAAa,EAAE,wBAAwB,EAAE,CAAC;CAC7C,CAAC,CA+BD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAW5F;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAWzG"}
1
+ {"version":3,"file":"directory-queries.d.ts","sourceRoot":"","sources":["../../../src/lib/data/directory-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EAC3B,MAAM,mBAAmB,CAAC;AAK3B,MAAM,WAAW,yBAAyB;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACvC,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,MAAM,EAAE,cAAc,EAAE,CAAC;CAC5B;AAkBD,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CA6G/F;AAkDD,4DAA4D;AAC5D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACnD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,aAAa,EAAE,wBAAwB,EAAE,CAAC;IAC1C,aAAa,EAAE,wBAAwB,EAAE,CAAC;CAC7C,CAAC,CA+BD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAW5F;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAWzG"}
@@ -1,5 +1,128 @@
1
- import { RunView } from '@memberjunction/core';
1
+ import { LogError, RunQuery, RunView } from '@memberjunction/core';
2
2
  import { COMMON_ENTITIES } from './entity-names';
3
+ const DIRECTORY_SUMMARY_QUERY = 'Common: Directory Dashboard Summary';
4
+ const DIRECTORY_SUMMARY_CATEGORY = 'Common';
5
+ function num(v) {
6
+ return v === null || v === undefined || v === '' ? 0 : Number(v);
7
+ }
8
+ function str(v) {
9
+ if (v === null || v === undefined)
10
+ return null;
11
+ const s = String(v).trim();
12
+ return s.length ? s : null;
13
+ }
14
+ function weekdayUtc(daysAgo) {
15
+ const d = new Date();
16
+ d.setUTCDate(d.getUTCDate() - daysAgo);
17
+ return d.toLocaleDateString('en-US', { weekday: 'short', timeZone: 'UTC' });
18
+ }
19
+ export async function LoadDirectoryDashboardSummary() {
20
+ const result = await new RunQuery().RunQuery({
21
+ QueryName: DIRECTORY_SUMMARY_QUERY,
22
+ CategoryPath: DIRECTORY_SUMMARY_CATEGORY,
23
+ });
24
+ if (!result?.Success) {
25
+ LogError(`Common: Directory Dashboard Summary failed — ${result?.ErrorMessage ?? 'unknown error'}`);
26
+ return null;
27
+ }
28
+ const row = (result.Results ?? [])[0];
29
+ if (!row) {
30
+ return null;
31
+ }
32
+ const queues = [
33
+ {
34
+ Label: 'People without email',
35
+ Note: 'Hard to reach, and every other app asks for it',
36
+ Count: num(row['PeopleMissingEmail']),
37
+ Icon: 'fa-solid fa-envelope',
38
+ Tone: 'warning',
39
+ PageId: 'people',
40
+ },
41
+ {
42
+ Label: 'People without an organization',
43
+ Note: 'Not linked to a current employer or member org',
44
+ Count: num(row['PeopleMissingOrganization']),
45
+ Icon: 'fa-solid fa-building-user',
46
+ Tone: 'info',
47
+ PageId: 'people',
48
+ },
49
+ {
50
+ Label: 'Organizations without a type',
51
+ Note: 'Company, chapter, vendor — the directory cannot sort them',
52
+ Count: num(row['OrganizationsMissingType']),
53
+ Icon: 'fa-solid fa-tags',
54
+ Tone: 'warning',
55
+ PageId: 'organizations',
56
+ },
57
+ {
58
+ Label: 'Organizations without a website',
59
+ Note: 'The first thing a person looks up',
60
+ Count: num(row['OrganizationsMissingWebsite']),
61
+ Icon: 'fa-solid fa-globe',
62
+ Tone: 'neutral',
63
+ PageId: 'organizations',
64
+ },
65
+ ];
66
+ const mixRaw = str(row['OrgTypeMixJson']);
67
+ let mix = [];
68
+ if (mixRaw) {
69
+ try {
70
+ const parsed = JSON.parse(mixRaw);
71
+ mix = parsed
72
+ .map((item) => ({ Label: item.Label || 'Unspecified', Value: num(item.Value) }))
73
+ .sort((a, b) => b.Value - a.Value);
74
+ }
75
+ catch (e) {
76
+ LogError(`Common: Directory Dashboard Summary OrgTypeMixJson parse failed — ${e}`);
77
+ }
78
+ }
79
+ const worth = [];
80
+ const emailId = str(row['AttentionEmailPersonID']);
81
+ if (emailId && num(row['PeopleMissingEmail']) > 0) {
82
+ const name = str(row['AttentionEmailName']) || 'Someone';
83
+ const org = str(row['AttentionEmailOrg']);
84
+ worth.push({
85
+ Kind: 'person',
86
+ RecordID: emailId,
87
+ Tone: 'warning',
88
+ Icon: 'fa-solid fa-envelope',
89
+ Headline: `${name} has no email.`,
90
+ Detail: org ? `Active at ${org}.` : 'No organization on file either.',
91
+ });
92
+ }
93
+ const typeId = str(row['AttentionTypeOrgID']);
94
+ if (typeId && num(row['OrganizationsMissingType']) > 0) {
95
+ const name = str(row['AttentionTypeOrgName']) || 'An organization';
96
+ const site = str(row['AttentionTypeWebsite']);
97
+ worth.push({
98
+ Kind: 'organization',
99
+ RecordID: typeId,
100
+ Tone: 'warning',
101
+ Icon: 'fa-solid fa-tags',
102
+ Headline: `${name} has no organization type.`,
103
+ Detail: site ? site : 'No website on file either.',
104
+ });
105
+ }
106
+ return {
107
+ ActivePeopleCount: num(row['ActivePeople']),
108
+ TotalPeopleCount: num(row['TotalPeople']),
109
+ ActiveOrganizationCount: num(row['ActiveOrganizations']),
110
+ TotalOrganizationCount: num(row['TotalOrganizations']),
111
+ RelationshipCount: num(row['RelationshipCount']),
112
+ PeopleMissingEmail: num(row['PeopleMissingEmail']),
113
+ PeopleMissingOrganization: num(row['PeopleMissingOrganization']),
114
+ OrganizationsMissingType: num(row['OrganizationsMissingType']),
115
+ OrganizationsMissingWebsite: num(row['OrganizationsMissingWebsite']),
116
+ PeoplePerDay: [6, 5, 4, 3, 2, 1, 0].map((ago) => ({
117
+ Label: weekdayUtc(ago),
118
+ Value: num(row[`PeopleAddedD${ago}`]),
119
+ Current: ago === 0,
120
+ })),
121
+ OrganizationTypeMix: mix,
122
+ WorthALook: worth,
123
+ Queues: queues.filter((q) => q.Count > 0),
124
+ };
125
+ }
3
126
  const PERSON_FIELDS = [
4
127
  'ID',
5
128
  'DisplayName',
@@ -1 +1 @@
1
- {"version":3,"file":"directory-queries.js","sourceRoot":"","sources":["../../../src/lib/data/directory-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-queries.js","sourceRoot":"","sources":["../../../src/lib/data/directory-queries.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,12 @@ export declare function LatestByCreated<T extends {
20
20
  export declare function BuildDirectoryQueues(people: readonly DirectoryPersonRow[], orgs: readonly DirectoryOrganizationRow[]): DirectoryQueue[];
21
21
  export declare function BuildAttentionItems(people: readonly DirectoryPersonRow[], orgs: readonly DirectoryOrganizationRow[]): DirectoryAttentionItem[];
22
22
  export declare function RelationshipParty(row: DirectoryRelationshipRow): string;
23
+ /** Escape free text for use inside a SQL string literal: drop NULs, double single quotes. */
23
24
  export declare function EscapeFilterValue(value: string): string;
25
+ /**
26
+ * Escape free text for use inside a SQL Server LIKE pattern: everything EscapeFilterValue does,
27
+ * plus bracket-escaping the LIKE wildcards so a user typing `%`, `_` or `[` searches for the
28
+ * literal character instead of widening the match.
29
+ */
30
+ export declare function EscapeLikeValue(value: string): string;
24
31
  //# sourceMappingURL=directory-stats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-stats.d.ts","sourceRoot":"","sources":["../../../src/lib/data/directory-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAOxD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAExF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAEzG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAE9F;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAErG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAE9G;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAEjH;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS;IAAE,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,SAAI,GAAG,eAAe,EAAE,CAc1G;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,eAAe,EAAE,CASlF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,SAAI,GAAG,CAAC,EAAE,CAI9G;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAC1C,cAAc,EAAE,CAoClB;AAED,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAC1C,sBAAsB,EAAE,CA6B1B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAIvE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD"}
1
+ {"version":3,"file":"directory-stats.d.ts","sourceRoot":"","sources":["../../../src/lib/data/directory-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAOxD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAExF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAEzG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAE9F;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAErG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAE9G;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAEjH;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS;IAAE,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,EAAE,EAAE,IAAI,SAAI,GAAG,eAAe,EAAE,CAc1G;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,eAAe,EAAE,CASlF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,SAAI,GAAG,CAAC,EAAE,CAI9G;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAC1C,cAAc,EAAE,CAoClB;AAED,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,IAAI,EAAE,SAAS,wBAAwB,EAAE,GAC1C,sBAAsB,EAAE,CA6B1B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAIvE;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD"}
@@ -131,7 +131,19 @@ export function RelationshipParty(row) {
131
131
  const to = row.ToPerson || row.ToOrganization || '—';
132
132
  return `${from} → ${to}`;
133
133
  }
134
+ /** Escape free text for use inside a SQL string literal: drop NULs, double single quotes. */
134
135
  export function EscapeFilterValue(value) {
135
- return value.replace(/'/g, "''");
136
+ return value.replace(/\0/g, '').replace(/'/g, "''");
137
+ }
138
+ /**
139
+ * Escape free text for use inside a SQL Server LIKE pattern: everything EscapeFilterValue does,
140
+ * plus bracket-escaping the LIKE wildcards so a user typing `%`, `_` or `[` searches for the
141
+ * literal character instead of widening the match.
142
+ */
143
+ export function EscapeLikeValue(value) {
144
+ return EscapeFilterValue(value)
145
+ .replace(/\[/g, '[[]')
146
+ .replace(/%/g, '[%]')
147
+ .replace(/_/g, '[_]');
136
148
  }
137
149
  //# sourceMappingURL=directory-stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-stats.js","sourceRoot":"","sources":["../../../src/lib/data/directory-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-stats.js","sourceRoot":"","sources":["../../../src/lib/data/directory-stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { EntityInfo } from '@memberjunction/core';
2
+ import type { MJUserViewEntityExtended } from '@memberjunction/core-entities';
3
+ import { COMMON_ENTITIES } from './entity-names';
4
+ export declare const DIRECTORY_VIEW_NAMES: {
5
+ readonly People: "Common: People directory";
6
+ readonly LatestPeople: "Common: Latest people";
7
+ readonly Organizations: "Common: Organizations directory";
8
+ readonly Relationships: "Common: Relationships";
9
+ readonly LatestRelationships: "Common: Latest relationships";
10
+ };
11
+ type GridCol = {
12
+ Name: string;
13
+ DisplayName: string;
14
+ orderIndex: number;
15
+ width: number;
16
+ pinned?: 'left' | 'right' | null;
17
+ format?: Record<string, unknown>;
18
+ };
19
+ declare function grid(sortField: string, dir: 'asc' | 'desc', columns: GridCol[]): {
20
+ sortSettings: {
21
+ field: string;
22
+ dir: "asc" | "desc";
23
+ }[];
24
+ columnSettings: GridCol[];
25
+ };
26
+ export declare function PeopleDirectoryGridState(): {
27
+ sortSettings: {
28
+ field: string;
29
+ dir: "asc" | "desc";
30
+ }[];
31
+ columnSettings: GridCol[];
32
+ };
33
+ export declare function LatestPeopleGridState(): {
34
+ sortSettings: {
35
+ field: string;
36
+ dir: "asc" | "desc";
37
+ }[];
38
+ columnSettings: GridCol[];
39
+ };
40
+ export declare function OrganizationsDirectoryGridState(): {
41
+ sortSettings: {
42
+ field: string;
43
+ dir: "asc" | "desc";
44
+ }[];
45
+ columnSettings: GridCol[];
46
+ };
47
+ export declare function RelationshipsGridState(): {
48
+ sortSettings: {
49
+ field: string;
50
+ dir: "asc" | "desc";
51
+ }[];
52
+ columnSettings: GridCol[];
53
+ };
54
+ export declare function LoadDirectoryView(entityName: string, viewName: string, gridState: ReturnType<typeof grid>, orderBy: string): Promise<{
55
+ entity: EntityInfo | null;
56
+ view: MJUserViewEntityExtended | null;
57
+ }>;
58
+ export declare function LoadPeopleDirectoryView(): Promise<{
59
+ entity: EntityInfo | null;
60
+ view: MJUserViewEntityExtended | null;
61
+ }>;
62
+ export declare function LoadLatestPeopleView(): Promise<{
63
+ entity: EntityInfo | null;
64
+ view: MJUserViewEntityExtended | null;
65
+ }>;
66
+ export declare function LoadOrganizationsDirectoryView(): Promise<{
67
+ entity: EntityInfo | null;
68
+ view: MJUserViewEntityExtended | null;
69
+ }>;
70
+ export declare function LoadLatestRelationshipsView(): Promise<{
71
+ entity: EntityInfo | null;
72
+ view: MJUserViewEntityExtended | null;
73
+ }>;
74
+ export { COMMON_ENTITIES };
75
+ //# sourceMappingURL=directory-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-views.d.ts","sourceRoot":"","sources":["../../../src/lib/data/directory-views.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC;AAEX,KAAK,OAAO,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,iBAAS,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;;;;;;EAEvE;AAED,wBAAgB,wBAAwB;;;;;;EAUvC;AAED,wBAAgB,qBAAqB;;;;;;EAQpC;AAED,wBAAgB,+BAA+B;;;;;;EAS9C;AAED,wBAAgB,sBAAsB;;;;;;EAUrC;AAoCD,wBAAsB,iBAAiB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,EAClC,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAAE,CAAC,CAO/E;AAED,wBAAsB,uBAAuB;YATxB,UAAU,GAAG,IAAI;UAAQ,wBAAwB,GAAG,IAAI;GAW5E;AAED,wBAAsB,oBAAoB;YAbrB,UAAU,GAAG,IAAI;UAAQ,wBAAwB,GAAG,IAAI;GAe5E;AAED,wBAAsB,8BAA8B;YAjB/B,UAAU,GAAG,IAAI;UAAQ,wBAAwB,GAAG,IAAI;GAmB5E;AAED,wBAAsB,2BAA2B;YArB5B,UAAU,GAAG,IAAI;UAAQ,wBAAwB,GAAG,IAAI;GAuB5E;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Named User Views for Directory grids. `mj-entity-viewer` reads columns from
3
+ * `UserView.GridState`. PhotoURL / LogoURL are first so the viewer can render
4
+ * thumbnails (entity-viewer image cells). Until metadata is pushed, we fall
5
+ * back to an in-memory view with the same GridState.
6
+ */
7
+ import { Metadata, RunView } from '@memberjunction/core';
8
+ import { COMMON_ENTITIES } from './entity-names';
9
+ export const DIRECTORY_VIEW_NAMES = {
10
+ People: 'Common: People directory',
11
+ LatestPeople: 'Common: Latest people',
12
+ Organizations: 'Common: Organizations directory',
13
+ Relationships: 'Common: Relationships',
14
+ LatestRelationships: 'Common: Latest relationships',
15
+ };
16
+ function grid(sortField, dir, columns) {
17
+ return { sortSettings: [{ field: sortField, dir }], columnSettings: columns };
18
+ }
19
+ export function PeopleDirectoryGridState() {
20
+ return grid('DisplayName', 'asc', [
21
+ { Name: 'PhotoURL', DisplayName: 'Photo', orderIndex: 0, width: 72, format: { type: 'image' } },
22
+ { Name: 'DisplayName', DisplayName: 'Name', orderIndex: 1, width: 220, pinned: 'left' },
23
+ { Name: 'Title', DisplayName: 'Title', orderIndex: 2, width: 160 },
24
+ { Name: 'CurrentOrganizationName', DisplayName: 'Organization', orderIndex: 3, width: 200 },
25
+ { Name: 'PrimaryEmail', DisplayName: 'Email', orderIndex: 4, width: 200 },
26
+ { Name: 'PrimaryPhone', DisplayName: 'Phone', orderIndex: 5, width: 140 },
27
+ { Name: 'Status', DisplayName: 'Status', orderIndex: 6, width: 110 },
28
+ ]);
29
+ }
30
+ export function LatestPeopleGridState() {
31
+ return grid('__mj_CreatedAt', 'desc', [
32
+ { Name: 'PhotoURL', DisplayName: 'Photo', orderIndex: 0, width: 72, format: { type: 'image' } },
33
+ { Name: 'DisplayName', DisplayName: 'Name', orderIndex: 1, width: 220, pinned: 'left' },
34
+ { Name: 'CurrentOrganizationName', DisplayName: 'Organization', orderIndex: 2, width: 200 },
35
+ { Name: 'PrimaryEmail', DisplayName: 'Email', orderIndex: 3, width: 200 },
36
+ { Name: '__mj_CreatedAt', DisplayName: 'Added', orderIndex: 4, width: 140, format: { type: 'date', dateFormat: 'medium' } },
37
+ ]);
38
+ }
39
+ export function OrganizationsDirectoryGridState() {
40
+ return grid('Name', 'asc', [
41
+ { Name: 'LogoURL', DisplayName: 'Logo', orderIndex: 0, width: 72, format: { type: 'image' } },
42
+ { Name: 'Name', DisplayName: 'Organization', orderIndex: 1, width: 240, pinned: 'left' },
43
+ { Name: 'OrganizationType', DisplayName: 'Type', orderIndex: 2, width: 140 },
44
+ { Name: 'Website', DisplayName: 'Website', orderIndex: 3, width: 200 },
45
+ { Name: 'PrimaryAddressCity', DisplayName: 'City', orderIndex: 4, width: 140 },
46
+ { Name: 'Status', DisplayName: 'Status', orderIndex: 5, width: 110 },
47
+ ]);
48
+ }
49
+ export function RelationshipsGridState() {
50
+ return grid('__mj_CreatedAt', 'desc', [
51
+ { Name: 'RelationshipType', DisplayName: 'Type', orderIndex: 0, width: 140 },
52
+ { Name: 'Title', DisplayName: 'Title', orderIndex: 1, width: 200 },
53
+ { Name: 'FromPerson', DisplayName: 'From person', orderIndex: 2, width: 180 },
54
+ { Name: 'FromOrganization', DisplayName: 'From org', orderIndex: 3, width: 180 },
55
+ { Name: 'ToPerson', DisplayName: 'To person', orderIndex: 4, width: 180 },
56
+ { Name: 'ToOrganization', DisplayName: 'To org', orderIndex: 5, width: 180 },
57
+ { Name: 'Status', DisplayName: 'Status', orderIndex: 6, width: 110 },
58
+ ]);
59
+ }
60
+ async function loadViewByName(name) {
61
+ const rv = new RunView();
62
+ const found = await rv.RunView({
63
+ EntityName: 'MJ: User Views',
64
+ ExtraFilter: `Name = '${name.replace(/'/g, "''")}'`,
65
+ Fields: ['ID'],
66
+ MaxRows: 1,
67
+ ResultType: 'simple',
68
+ });
69
+ const id = found.Success ? found.Results?.[0]?.ID : undefined;
70
+ if (!id)
71
+ return null;
72
+ const md = new Metadata();
73
+ const view = await md.GetEntityObject('MJ: User Views');
74
+ const ok = await view.Load(id);
75
+ return ok ? view : null;
76
+ }
77
+ function synthetic(entity, name, gridState, orderBy) {
78
+ return {
79
+ EntityID: entity.ID,
80
+ Entity: entity.Name,
81
+ Name: name,
82
+ WhereClause: '',
83
+ GridState: JSON.stringify(gridState),
84
+ GridStateObject: gridState,
85
+ OrderByClause: orderBy,
86
+ };
87
+ }
88
+ export async function LoadDirectoryView(entityName, viewName, gridState, orderBy) {
89
+ const md = new Metadata();
90
+ const entity = md.EntityByName(entityName) ?? null;
91
+ if (!entity)
92
+ return { entity: null, view: null };
93
+ const named = await loadViewByName(viewName);
94
+ if (named)
95
+ return { entity, view: named };
96
+ return { entity, view: synthetic(entity, viewName, gridState, orderBy) };
97
+ }
98
+ export async function LoadPeopleDirectoryView() {
99
+ return LoadDirectoryView(COMMON_ENTITIES.Person, DIRECTORY_VIEW_NAMES.People, PeopleDirectoryGridState(), 'DisplayName ASC');
100
+ }
101
+ export async function LoadLatestPeopleView() {
102
+ return LoadDirectoryView(COMMON_ENTITIES.Person, DIRECTORY_VIEW_NAMES.LatestPeople, LatestPeopleGridState(), '__mj_CreatedAt DESC');
103
+ }
104
+ export async function LoadOrganizationsDirectoryView() {
105
+ return LoadDirectoryView(COMMON_ENTITIES.Organization, DIRECTORY_VIEW_NAMES.Organizations, OrganizationsDirectoryGridState(), 'Name ASC');
106
+ }
107
+ export async function LoadLatestRelationshipsView() {
108
+ return LoadDirectoryView(COMMON_ENTITIES.Relationship, DIRECTORY_VIEW_NAMES.LatestRelationships, RelationshipsGridState(), '__mj_CreatedAt DESC');
109
+ }
110
+ export { COMMON_ENTITIES };
111
+ //# sourceMappingURL=directory-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-views.js","sourceRoot":"","sources":["../../../src/lib/data/directory-views.ts"],"names":[],"mappings":"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"}