@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.
Files changed (60) hide show
  1. package/dist/lib/components/__tests__/uuid-casing.test.d.ts +7 -0
  2. package/dist/lib/components/__tests__/uuid-casing.test.d.ts.map +1 -0
  3. package/dist/lib/components/__tests__/uuid-casing.test.js +78 -0
  4. package/dist/lib/components/__tests__/uuid-casing.test.js.map +1 -0
  5. package/dist/lib/components/address-editor/address-editor.component.d.ts.map +1 -1
  6. package/dist/lib/components/address-editor/address-editor.component.js +9 -7
  7. package/dist/lib/components/address-editor/address-editor.component.js.map +1 -1
  8. package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts +9 -2
  9. package/dist/lib/components/contact-method-list/contact-method-list.component.d.ts.map +1 -1
  10. package/dist/lib/components/contact-method-list/contact-method-list.component.js +35 -22
  11. package/dist/lib/components/contact-method-list/contact-method-list.component.js.map +1 -1
  12. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts +8 -0
  13. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.d.ts.map +1 -0
  14. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js +75 -0
  15. package/dist/lib/components/identity-header/__tests__/activity-identity-parent.test.js.map +1 -0
  16. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts +12 -0
  17. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.d.ts.map +1 -0
  18. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js +94 -0
  19. package/dist/lib/components/identity-header/__tests__/identity-hero-claims.test.js.map +1 -0
  20. package/dist/lib/components/identity-header/activity-identity.component.d.ts +9 -0
  21. package/dist/lib/components/identity-header/activity-identity.component.d.ts.map +1 -1
  22. package/dist/lib/components/identity-header/activity-identity.component.js +46 -7
  23. package/dist/lib/components/identity-header/activity-identity.component.js.map +1 -1
  24. package/dist/lib/components/identity-header/organization-identity.component.js +48 -18
  25. package/dist/lib/components/identity-header/organization-identity.component.js.map +1 -1
  26. package/dist/lib/components/identity-header/person-identity.component.js +38 -28
  27. package/dist/lib/components/identity-header/person-identity.component.js.map +1 -1
  28. package/dist/lib/components/party-field/party-field.component.js +5 -5
  29. package/dist/lib/components/party-field/party-field.component.js.map +1 -1
  30. package/dist/lib/components/relationship-graph/common-relationship-graph.component.d.ts.map +1 -1
  31. package/dist/lib/components/relationship-graph/common-relationship-graph.component.js +29 -20
  32. package/dist/lib/components/relationship-graph/common-relationship-graph.component.js.map +1 -1
  33. package/dist/lib/components/relationship-list/relationship-list.component.js +6 -6
  34. package/dist/lib/components/relationship-list/relationship-list.component.js.map +1 -1
  35. package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js +110 -4
  36. package/dist/lib/components/selling-company-field/__tests__/selling-company-field.component.test.js.map +1 -1
  37. package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts +34 -3
  38. package/dist/lib/components/selling-company-field/selling-company-field.component.d.ts.map +1 -1
  39. package/dist/lib/components/selling-company-field/selling-company-field.component.js +153 -6
  40. package/dist/lib/components/selling-company-field/selling-company-field.component.js.map +1 -1
  41. package/dist/lib/custom/panels/activity-content.panel.js +2 -2
  42. package/dist/lib/custom/panels/activity-hierarchy.panel.js +2 -2
  43. package/dist/lib/custom/panels/activity-hierarchy.panel.js.map +1 -1
  44. package/dist/lib/custom/panels/activity-type-hierarchy.panel.js +2 -2
  45. package/dist/lib/custom/panels/activity-type-hierarchy.panel.js.map +1 -1
  46. package/dist/lib/data/__tests__/directory-dashboard-days.test.js +61 -9
  47. package/dist/lib/data/__tests__/directory-dashboard-days.test.js.map +1 -1
  48. package/dist/lib/data/directory-queries.d.ts +4 -0
  49. package/dist/lib/data/directory-queries.d.ts.map +1 -1
  50. package/dist/lib/data/directory-queries.js +41 -13
  51. package/dist/lib/data/directory-queries.js.map +1 -1
  52. package/dist/lib/pages/activities-dashboard.page.d.ts +2 -0
  53. package/dist/lib/pages/activities-dashboard.page.d.ts.map +1 -1
  54. package/dist/lib/pages/activities-dashboard.page.js +10 -5
  55. package/dist/lib/pages/activities-dashboard.page.js.map +1 -1
  56. package/dist/lib/pages/common-dashboard.page.d.ts +15 -3
  57. package/dist/lib/pages/common-dashboard.page.d.ts.map +1 -1
  58. package/dist/lib/pages/common-dashboard.page.js +380 -315
  59. package/dist/lib/pages/common-dashboard.page.js.map +1 -1
  60. package/package.json +2 -2
@@ -1,5 +1,6 @@
1
1
  import '@angular/compiler';
2
- import { ChangeDetectorRef, Injector, runInInjectionContext } from '@angular/core';
2
+ import { ChangeDetectorRef, ElementRef, Injector, SimpleChange, runInInjectionContext } from '@angular/core';
3
+ import { MJEventType, MJGlobal } from '@memberjunction/global';
3
4
  import { beforeEach, describe, expect, it, vi } from 'vitest';
4
5
  const H = vi.hoisted(() => ({
5
6
  settingValue: 'default-co',
@@ -43,6 +44,7 @@ vi.mock('@memberjunction/ng-base-forms', () => ({ BaseFormsModule: class {
43
44
  import { SellingCompanyFieldComponent } from '../selling-company-field.component';
44
45
  function record(isSaved, companyID = null) {
45
46
  const values = { CompanyID: companyID };
47
+ const handlers = [];
46
48
  return {
47
49
  IsSaved: isSaved,
48
50
  values,
@@ -50,16 +52,26 @@ function record(isSaved, companyID = null) {
50
52
  Set: (field, value) => {
51
53
  values[field] = value;
52
54
  },
55
+ RegisterEventHandler: (callback) => {
56
+ handlers.push(callback);
57
+ return { unsubscribe: () => handlers.splice(handlers.indexOf(callback), 1) };
58
+ },
59
+ raise: (type) => handlers.forEach((h) => h({ type })),
53
60
  };
54
61
  }
62
+ /** Stands in for the field's host element; a fake form element "contains" it. */
63
+ const FIELD_HOST = { tag: 'bizapps-selling-company-field' };
55
64
  /**
56
- * The component resolves ChangeDetectorRef with `inject()`, which needs an injection context.
57
- * A one-provider injector gives it one without standing up TestBed — these are unit tests of the
65
+ * The component resolves ChangeDetectorRef and ElementRef with `inject()`, which needs an injection
66
+ * context. A small injector gives it one without standing up TestBed — these are unit tests of the
58
67
  * default-and-confirm behaviour, not of rendering.
59
68
  */
60
69
  async function build(rec) {
61
70
  const injector = Injector.create({
62
- providers: [{ provide: ChangeDetectorRef, useValue: { markForCheck: () => undefined } }],
71
+ providers: [
72
+ { provide: ChangeDetectorRef, useValue: { markForCheck: () => undefined } },
73
+ { provide: ElementRef, useValue: new ElementRef(FIELD_HOST) },
74
+ ],
63
75
  });
64
76
  const component = runInInjectionContext(injector, () => new SellingCompanyFieldComponent());
65
77
  component.Record = rec;
@@ -162,5 +174,99 @@ describe('SellingCompanyFieldComponent', () => {
162
174
  component.OnValueChange('other-co');
163
175
  expect(component.AskName).toBe('other-co');
164
176
  });
177
+ describe('a save or leaving edit mode with the question open (#344)', () => {
178
+ async function pending() {
179
+ const rec = record(false);
180
+ const component = await build(rec);
181
+ component.EditMode = true;
182
+ rec.Set('CompanyID', 'other-co');
183
+ component.OnValueChange('other-co');
184
+ return { rec, component };
185
+ }
186
+ it('closes the question on save and says the pick was not applied', async () => {
187
+ const { rec, component } = await pending();
188
+ rec.raise('save_started');
189
+ expect(rec.values['CompanyID']).toBe('default-co');
190
+ expect(component.AskName).toBeNull();
191
+ expect(component.NotAppliedName).toBe('Other Co');
192
+ expect(component.KeptName).toBe('Default Selling Co');
193
+ });
194
+ it('a confirm after the save does not book the dropped pick', async () => {
195
+ const { rec, component } = await pending();
196
+ rec.raise('save_started');
197
+ component.OnConfirm();
198
+ expect(rec.values['CompanyID']).toBe('default-co');
199
+ });
200
+ it('closes the question when the form leaves edit mode', async () => {
201
+ const { rec, component } = await pending();
202
+ component.EditMode = false;
203
+ expect(rec.values['CompanyID']).toBe('default-co');
204
+ expect(component.AskName).toBeNull();
205
+ expect(component.NotAppliedName).toBe('Other Co');
206
+ });
207
+ /** What BaseFormComponent.SaveRecord() raises before it saves, dirty record or not. */
208
+ function formSaving(containsField) {
209
+ MJGlobal.Instance.RaiseEvent({
210
+ event: MJEventType.ComponentEvent,
211
+ component: {},
212
+ eventCode: 'BaseFormComponent_Event',
213
+ args: {
214
+ subEventCode: 'EDITING_COMPLETE',
215
+ elementRef: { nativeElement: { contains: (el) => containsField && el === FIELD_HOST } },
216
+ },
217
+ });
218
+ }
219
+ it('closes the question when the form saves a record left clean by the held pick', async () => {
220
+ // The pick was put back, so the record is clean and BaseEntity.Save() raises no save_started.
221
+ const { rec, component } = await pending();
222
+ formSaving(true);
223
+ expect(rec.values['CompanyID']).toBe('default-co');
224
+ expect(component.AskName).toBeNull();
225
+ expect(component.NotAppliedName).toBe('Other Co');
226
+ component.ngOnDestroy();
227
+ });
228
+ it('ignores a save on another form', async () => {
229
+ const { component } = await pending();
230
+ formSaving(false);
231
+ expect(component.AskName).toBe('Other Co');
232
+ component.ngOnDestroy();
233
+ });
234
+ it('moves its save handler to a rebound record and drops the old question', async () => {
235
+ const { rec, component } = await pending();
236
+ const next = record(true, 'employee-co');
237
+ component.Record = next;
238
+ component.ngOnChanges({ Record: new SimpleChange(rec, next, false) });
239
+ expect(component.AskName).toBeNull();
240
+ next.Set('CompanyID', 'other-co');
241
+ component.OnValueChange('other-co');
242
+ expect(next.values['CompanyID']).toBe('employee-co');
243
+ rec.raise('save_started');
244
+ expect(component.AskName).toBe('Other Co');
245
+ next.raise('save_started');
246
+ expect(component.AskName).toBeNull();
247
+ expect(component.KeptName).toBe('Employee Co');
248
+ component.ngOnDestroy();
249
+ });
250
+ it('says nothing when no question was open', async () => {
251
+ const rec = record(false);
252
+ const component = await build(rec);
253
+ component.EditMode = true;
254
+ rec.raise('save_started');
255
+ component.EditMode = false;
256
+ expect(component.NotAppliedName).toBeNull();
257
+ });
258
+ it('clears the notice on the next pick, and stops listening once destroyed', async () => {
259
+ const { rec, component } = await pending();
260
+ rec.raise('save_started');
261
+ rec.Set('CompanyID', 'default-co');
262
+ component.OnValueChange('default-co');
263
+ expect(component.NotAppliedName).toBeNull();
264
+ rec.Set('CompanyID', 'other-co');
265
+ component.OnValueChange('other-co');
266
+ component.ngOnDestroy();
267
+ rec.raise('save_started');
268
+ expect(component.AskName).toBe('Other Co');
269
+ });
270
+ });
165
271
  });
166
272
  //# sourceMappingURL=selling-company-field.component.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selling-company-field.component.test.js","sourceRoot":"","sources":["../../../../../src/lib/components/selling-company-field/__tests__/selling-company-field.component.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selling-company-field.component.test.js","sourceRoot":"","sources":["../../../../../src/lib/components/selling-company-field/__tests__/selling-company-field.component.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { BaseEntity } from '@memberjunction/core';
3
3
  import { type FormContext, type FormNavigationEvent } from '@memberjunction/ng-base-forms';
4
4
  import * as i0 from "@angular/core";
@@ -23,15 +23,24 @@ import * as i0 from "@angular/core";
23
23
  * default, and written only when they confirm. The value is restored if they move on without
24
24
  * answering: an unanswered question must not decide where revenue lands.
25
25
  *
26
+ * A save, or leaving edit mode, while the question is open closes it unanswered (#344). The record
27
+ * already holds the previous company, so that is what is saved; the question is replaced by a notice
28
+ * naming the company that was not applied, so the user is not left believing their pick was booked.
29
+ * A save is seen two ways: the record's `save_started` event, which BaseEntity raises only for a dirty
30
+ * record, and the enclosing form's EDITING_COMPLETE event, which covers Save on a form whose only
31
+ * edit was the held pick (the record is clean again by then, because the pick was put back).
32
+ *
26
33
  * It wraps `mj-form-field` rather than replacing it, so the dropdown, keyboard behaviour and
27
34
  * link rendering stay the platform's. It owns only the default and the confirmation, which is why
28
35
  * it does not wait on the platform lookup-strategy seam.
29
36
  */
30
- export declare class SellingCompanyFieldComponent implements OnInit {
37
+ export declare class SellingCompanyFieldComponent implements OnInit, OnChanges, OnDestroy {
31
38
  private readonly cdr;
39
+ private readonly host;
32
40
  Record: BaseEntity;
33
41
  FieldName: string;
34
- EditMode: boolean;
42
+ set EditMode(value: boolean);
43
+ get EditMode(): boolean;
35
44
  ShowLabel: boolean;
36
45
  FormContext?: FormContext;
37
46
  Navigate: EventEmitter<FormNavigationEvent>;
@@ -39,13 +48,35 @@ export declare class SellingCompanyFieldComponent implements OnInit {
39
48
  AskName: string | null;
40
49
  /** The resolved default's name, for the question. Empty when the instance configured none. */
41
50
  DefaultName: string;
51
+ /** A company the user picked but never confirmed before a save or leaving edit mode, by name. */
52
+ NotAppliedName: string | null;
53
+ /** The company the record kept when {@link NotAppliedName} was dropped. Empty for none. */
54
+ KeptName: string;
42
55
  private confirm;
43
56
  private previous;
44
57
  private readonly names;
58
+ private editMode;
59
+ private recordEvents;
60
+ private formEvents;
45
61
  ngOnInit(): Promise<void>;
62
+ /**
63
+ * A host that rebinds `[Record]` on the same instance gets the handler moved to the new record,
64
+ * and any question about the old one dropped: it was about a record no longer shown.
65
+ */
66
+ ngOnChanges(changes: SimpleChanges): void;
67
+ ngOnDestroy(): void;
46
68
  OnValueChange(newValue: unknown): void;
47
69
  OnConfirm(): void;
48
70
  OnRevert(): void;
71
+ OnDismissNotice(): void;
72
+ /**
73
+ * Ends an open question without the user's answer. The record already holds the previous
74
+ * company (OnValueChange put it back), so nothing is written; the user is told what was dropped.
75
+ */
76
+ private closeUnanswered;
77
+ private listenToRecord;
78
+ /** EDITING_COMPLETE from the form this field sits in; other forms on the page are ignored. */
79
+ private isOwnFormSaving;
49
80
  /** Only on a new record with the field still empty; never overwrite what is already booked. */
50
81
  private applyDefault;
51
82
  private current;
@@ -1 +1 @@
1
- {"version":3,"file":"selling-company-field.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/selling-company-field/selling-company-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,YAAY,EAAS,MAAM,EAAqC,MAAM,eAAe,CAAC;AACtJ,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;;AAS5G;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAiDa,4BAA6B,YAAW,MAAM;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAEtB,MAAM,EAAG,UAAU,CAAC;IACtC,SAAS,SAAe;IACxB,QAAQ,UAAS;IACjB,SAAS,UAAQ;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,oCAA2C;IAE7D,+EAA+E;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,8FAA8F;IACvF,WAAW,SAAM;IAExB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAetC,SAAS,IAAI,IAAI;IAQjB,QAAQ,IAAI,IAAI;IAMvB,+FAA+F;IAC/F,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,MAAM;YAIA,gBAAgB;IAe9B;;;;OAIG;YACW,iBAAiB;yCAjGtB,4BAA4B;2CAA5B,4BAA4B;CAgHxC"}
1
+ {"version":3,"file":"selling-company-field.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/selling-company-field/selling-company-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,YAAY,EAEZ,SAAS,EACT,SAAS,EACT,MAAM,EAEN,aAAa,EAGhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAsC,MAAM,sBAAsB,CAAC;AAGtF,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;;AAiB5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBA8Da,4BAA6B,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAC7E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAEhB,MAAM,EAAG,UAAU,CAAC;IACtC,SAAS,SAAe;IACjC,IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAM1B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACQ,SAAS,UAAQ;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,oCAA2C;IAE7D,+EAA+E;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,8FAA8F;IACvF,WAAW,SAAM;IACxB,iGAAiG;IAC1F,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,2FAA2F;IACpF,QAAQ,SAAM;IAErB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAA+D;IACnF,OAAO,CAAC,UAAU,CAA6B;IAElC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtC;;;OAGG;IACI,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAYzC,WAAW,IAAI,IAAI;IAOnB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAgBtC,SAAS,IAAI,IAAI;IAWjB,QAAQ,IAAI,IAAI;IAMhB,eAAe,IAAI,IAAI;IAK9B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAStB,8FAA8F;IAC9F,OAAO,CAAC,eAAe;IAavB,+FAA+F;IAC/F,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,MAAM;YAIA,gBAAgB;IAe9B;;;;OAIG;YACW,iBAAiB;yCAhMtB,4BAA4B;2CAA5B,4BAA4B;CA+MxC"}
@@ -1,5 +1,6 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation, inject } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
2
2
  import { Metadata, RunView } from '@memberjunction/core';
3
+ import { MJEventType, MJGlobal } from '@memberjunction/global';
3
4
  import { BaseFormsModule } from '@memberjunction/ng-base-forms';
4
5
  import { CommonSettings } from '../../data/common-settings';
5
6
  import { EscapeFilterValue } from '../../data/directory-stats';
@@ -22,11 +23,11 @@ function SellingCompanyFieldComponent_Conditional_1_Template(rf, ctx) { if (rf &
22
23
  i0.ɵɵconditionalCreate(5, SellingCompanyFieldComponent_Conditional_1_Conditional_5_Template, 1, 1);
23
24
  i0.ɵɵtext(6, " ? ");
24
25
  i0.ɵɵelementEnd();
25
- i0.ɵɵelementStart(7, "button", 2);
26
+ i0.ɵɵelementStart(7, "button", 3);
26
27
  i0.ɵɵlistener("click", function SellingCompanyFieldComponent_Conditional_1_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnConfirm()); });
27
28
  i0.ɵɵtext(8, "Confirm");
28
29
  i0.ɵɵelementEnd();
29
- i0.ɵɵelementStart(9, "button", 3);
30
+ i0.ɵɵelementStart(9, "button", 4);
30
31
  i0.ɵɵlistener("click", function SellingCompanyFieldComponent_Conditional_1_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRevert()); });
31
32
  i0.ɵɵtext(10, "Revert");
32
33
  i0.ɵɵelementEnd()();
@@ -37,8 +38,43 @@ function SellingCompanyFieldComponent_Conditional_1_Template(rf, ctx) { if (rf &
37
38
  i0.ɵɵadvance();
38
39
  i0.ɵɵconditional(ctx_r1.DefaultName ? 5 : -1);
39
40
  } }
41
+ function SellingCompanyFieldComponent_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵtext(0);
43
+ } if (rf & 2) {
44
+ const ctx_r1 = i0.ɵɵnextContext(2);
45
+ i0.ɵɵtextInterpolate1(" keeps ", ctx_r1.KeptName, ". ");
46
+ } }
47
+ function SellingCompanyFieldComponent_Conditional_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
48
+ i0.ɵɵtext(0, " has no selling company. ");
49
+ } }
50
+ function SellingCompanyFieldComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
51
+ const _r3 = i0.ɵɵgetCurrentView();
52
+ i0.ɵɵelementStart(0, "div", 2)(1, "span")(2, "strong");
53
+ i0.ɵɵtext(3);
54
+ i0.ɵɵelementEnd();
55
+ i0.ɵɵtext(4, " was not confirmed, so it was not applied. This record ");
56
+ i0.ɵɵconditionalCreate(5, SellingCompanyFieldComponent_Conditional_2_Conditional_5_Template, 1, 1)(6, SellingCompanyFieldComponent_Conditional_2_Conditional_6_Template, 1, 0);
57
+ i0.ɵɵelementEnd();
58
+ i0.ɵɵelementStart(7, "button", 5);
59
+ i0.ɵɵlistener("click", function SellingCompanyFieldComponent_Conditional_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDismissNotice()); });
60
+ i0.ɵɵtext(8, "Dismiss");
61
+ i0.ɵɵelementEnd()();
62
+ } if (rf & 2) {
63
+ const ctx_r1 = i0.ɵɵnextContext();
64
+ i0.ɵɵadvance(3);
65
+ i0.ɵɵtextInterpolate(ctx_r1.NotAppliedName);
66
+ i0.ɵɵadvance(2);
67
+ i0.ɵɵconditional(ctx_r1.KeptName ? 5 : 6);
68
+ } }
40
69
  const COMPANIES_ENTITY = 'MJ: Companies';
41
70
  const EMPLOYEES_ENTITY = 'MJ: Employees';
71
+ /**
72
+ * `BaseFormComponentEventCodes.BASE_CODE` and `.EDITING_COMPLETE` from `@memberjunction/ng-base-types`,
73
+ * which this package does not depend on. `BaseFormComponent.SaveRecord()` raises EDITING_COMPLETE
74
+ * before every save, including one that finds the record clean and never reaches `save_started`.
75
+ */
76
+ const FORM_EVENT_CODE = 'BaseFormComponent_Event';
77
+ const FORM_EDITING_COMPLETE = 'EDITING_COMPLETE';
42
78
  /**
43
79
  * `bizapps-selling-company-field` — the company foreign key on an order or a contract, with a
44
80
  * default and a confirmation.
@@ -60,15 +96,32 @@ const EMPLOYEES_ENTITY = 'MJ: Employees';
60
96
  * default, and written only when they confirm. The value is restored if they move on without
61
97
  * answering: an unanswered question must not decide where revenue lands.
62
98
  *
99
+ * A save, or leaving edit mode, while the question is open closes it unanswered (#344). The record
100
+ * already holds the previous company, so that is what is saved; the question is replaced by a notice
101
+ * naming the company that was not applied, so the user is not left believing their pick was booked.
102
+ * A save is seen two ways: the record's `save_started` event, which BaseEntity raises only for a dirty
103
+ * record, and the enclosing form's EDITING_COMPLETE event, which covers Save on a form whose only
104
+ * edit was the held pick (the record is clean again by then, because the pick was put back).
105
+ *
63
106
  * It wraps `mj-form-field` rather than replacing it, so the dropdown, keyboard behaviour and
64
107
  * link rendering stay the platform's. It owns only the default and the confirmation, which is why
65
108
  * it does not wait on the platform lookup-strategy seam.
66
109
  */
67
110
  export class SellingCompanyFieldComponent {
68
111
  cdr = inject(ChangeDetectorRef);
112
+ host = inject(ElementRef);
69
113
  Record;
70
114
  FieldName = 'CompanyID';
71
- EditMode = false;
115
+ set EditMode(value) {
116
+ const leaving = this.editMode && !value;
117
+ this.editMode = value;
118
+ if (leaving) {
119
+ this.closeUnanswered();
120
+ }
121
+ }
122
+ get EditMode() {
123
+ return this.editMode;
124
+ }
72
125
  ShowLabel = true;
73
126
  FormContext;
74
127
  Navigate = new EventEmitter();
@@ -76,10 +129,24 @@ export class SellingCompanyFieldComponent {
76
129
  AskName = null;
77
130
  /** The resolved default's name, for the question. Empty when the instance configured none. */
78
131
  DefaultName = '';
132
+ /** A company the user picked but never confirmed before a save or leaving edit mode, by name. */
133
+ NotAppliedName = null;
134
+ /** The company the record kept when {@link NotAppliedName} was dropped. Empty for none. */
135
+ KeptName = '';
79
136
  confirm = new SellingCompanyConfirm(null);
80
137
  previous = null;
81
138
  names = new Map();
139
+ editMode = false;
140
+ recordEvents = null;
141
+ formEvents = null;
82
142
  async ngOnInit() {
143
+ // Subscribed before the first await so a save that starts while settings load is still seen.
144
+ this.listenToRecord();
145
+ this.formEvents = MJGlobal.Instance.GetEventListener(false).subscribe((event) => {
146
+ if (this.isOwnFormSaving(event)) {
147
+ this.closeUnanswered();
148
+ }
149
+ });
83
150
  const metadata = new Metadata();
84
151
  await CommonSettings.Load(Metadata.Provider, metadata.CurrentUser);
85
152
  await this.loadCompanyNames();
@@ -90,7 +157,29 @@ export class SellingCompanyFieldComponent {
90
157
  this.previous = this.current();
91
158
  this.cdr.markForCheck();
92
159
  }
160
+ /**
161
+ * A host that rebinds `[Record]` on the same instance gets the handler moved to the new record,
162
+ * and any question about the old one dropped: it was about a record no longer shown.
163
+ */
164
+ ngOnChanges(changes) {
165
+ const change = changes['Record'];
166
+ if (!change || change.firstChange || change.previousValue === change.currentValue) {
167
+ return;
168
+ }
169
+ this.listenToRecord();
170
+ this.AskName = null;
171
+ this.NotAppliedName = null;
172
+ this.previous = this.current();
173
+ this.cdr.markForCheck();
174
+ }
175
+ ngOnDestroy() {
176
+ this.recordEvents?.unsubscribe();
177
+ this.recordEvents = null;
178
+ this.formEvents?.unsubscribe();
179
+ this.formEvents = null;
180
+ }
93
181
  OnValueChange(newValue) {
182
+ this.NotAppliedName = null;
94
183
  const proposed = newValue ? String(newValue) : null;
95
184
  const outcome = this.confirm.Propose(proposed);
96
185
  if (outcome.Ask) {
@@ -106,6 +195,9 @@ export class SellingCompanyFieldComponent {
106
195
  this.cdr.markForCheck();
107
196
  }
108
197
  OnConfirm() {
198
+ if (!this.AskName) {
199
+ return; // The question was closed unanswered; a late click must not write anything.
200
+ }
109
201
  const confirmed = this.confirm.Confirm();
110
202
  this.Record.Set(this.FieldName, confirmed);
111
203
  this.previous = confirmed;
@@ -117,6 +209,45 @@ export class SellingCompanyFieldComponent {
117
209
  this.AskName = null;
118
210
  this.cdr.markForCheck();
119
211
  }
212
+ OnDismissNotice() {
213
+ this.NotAppliedName = null;
214
+ this.cdr.markForCheck();
215
+ }
216
+ /**
217
+ * Ends an open question without the user's answer. The record already holds the previous
218
+ * company (OnValueChange put it back), so nothing is written; the user is told what was dropped.
219
+ */
220
+ closeUnanswered() {
221
+ if (!this.AskName) {
222
+ return;
223
+ }
224
+ this.confirm.Revert(this.previous);
225
+ this.NotAppliedName = this.AskName;
226
+ this.KeptName = this.previous ? this.nameOf(this.previous) : '';
227
+ this.AskName = null;
228
+ this.cdr.markForCheck();
229
+ }
230
+ listenToRecord() {
231
+ this.recordEvents?.unsubscribe();
232
+ this.recordEvents = this.Record.RegisterEventHandler((event) => {
233
+ if (event.type === 'save_started') {
234
+ this.closeUnanswered();
235
+ }
236
+ });
237
+ }
238
+ /** EDITING_COMPLETE from the form this field sits in; other forms on the page are ignored. */
239
+ isOwnFormSaving(event) {
240
+ if (event.event !== MJEventType.ComponentEvent || event.eventCode !== FORM_EVENT_CODE) {
241
+ return false;
242
+ }
243
+ const args = event.args;
244
+ if (args?.subEventCode !== FORM_EDITING_COMPLETE) {
245
+ return false;
246
+ }
247
+ const formElement = args.elementRef?.nativeElement;
248
+ const ownElement = this.host.nativeElement;
249
+ return !!formElement && !!ownElement && typeof formElement.contains === 'function' && formElement.contains(ownElement);
250
+ }
120
251
  /** Only on a new record with the field still empty; never overwrite what is already booked. */
121
252
  applyDefault(defaultID) {
122
253
  if (defaultID && !this.Record.IsSaved && !this.Record.Get(this.FieldName)) {
@@ -165,15 +296,18 @@ export class SellingCompanyFieldComponent {
165
296
  return companyID && this.names.has(companyID.trim().toLowerCase()) ? companyID : null;
166
297
  }
167
298
  static ɵfac = function SellingCompanyFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SellingCompanyFieldComponent)(); };
168
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SellingCompanyFieldComponent, selectors: [["bizapps-selling-company-field"]], inputs: { Record: "Record", FieldName: "FieldName", EditMode: "EditMode", ShowLabel: "ShowLabel", FormContext: "FormContext" }, outputs: { Navigate: "Navigate" }, decls: 2, vars: 6, consts: [["Type", "textbox", "LinkType", "Record", 3, "ValueChange", "Navigate", "Record", "ShowLabel", "FieldName", "EditMode", "FormContext"], ["role", "alertdialog", "aria-live", "polite", 1, "bizapps-selling-confirm"], ["type", "button", 1, "bizapps-selling-confirm-yes", 3, "click"], ["type", "button", 1, "bizapps-selling-confirm-no", 3, "click"]], template: function SellingCompanyFieldComponent_Template(rf, ctx) { if (rf & 1) {
299
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SellingCompanyFieldComponent, selectors: [["bizapps-selling-company-field"]], inputs: { Record: "Record", FieldName: "FieldName", EditMode: "EditMode", ShowLabel: "ShowLabel", FormContext: "FormContext" }, outputs: { Navigate: "Navigate" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 7, consts: [["Type", "textbox", "LinkType", "Record", 3, "ValueChange", "Navigate", "Record", "ShowLabel", "FieldName", "EditMode", "FormContext"], ["role", "alertdialog", "aria-live", "polite", 1, "bizapps-selling-confirm"], ["role", "status", "aria-live", "polite", 1, "bizapps-selling-confirm"], ["type", "button", 1, "bizapps-selling-confirm-yes", 3, "click"], ["type", "button", 1, "bizapps-selling-confirm-no", 3, "click"], ["type", "button", 1, "bizapps-selling-confirm-dismiss", 3, "click"]], template: function SellingCompanyFieldComponent_Template(rf, ctx) { if (rf & 1) {
169
300
  i0.ɵɵelementStart(0, "mj-form-field", 0);
170
301
  i0.ɵɵlistener("ValueChange", function SellingCompanyFieldComponent_Template_mj_form_field_ValueChange_0_listener($event) { return ctx.OnValueChange($event.NewValue); })("Navigate", function SellingCompanyFieldComponent_Template_mj_form_field_Navigate_0_listener($event) { return ctx.Navigate.emit($event); });
171
302
  i0.ɵɵelementEnd();
172
303
  i0.ɵɵconditionalCreate(1, SellingCompanyFieldComponent_Conditional_1_Template, 11, 2, "div", 1);
304
+ i0.ɵɵconditionalCreate(2, SellingCompanyFieldComponent_Conditional_2_Template, 9, 2, "div", 2);
173
305
  } if (rf & 2) {
174
306
  i0.ɵɵproperty("Record", ctx.Record)("ShowLabel", ctx.ShowLabel)("FieldName", ctx.FieldName)("EditMode", ctx.EditMode)("FormContext", ctx.FormContext);
175
307
  i0.ɵɵadvance();
176
308
  i0.ɵɵconditional(ctx.AskName ? 1 : -1);
309
+ i0.ɵɵadvance();
310
+ i0.ɵɵconditional(ctx.NotAppliedName ? 2 : -1);
177
311
  } }, dependencies: [BaseFormsModule, i1.MjFormFieldComponent], styles: ["\n .bizapps-selling-confirm {\n display: flex;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n align-items: center;\n margin-top: var(--mj-space-1);\n padding: var(--mj-space-2) var(--mj-space-3);\n border: 1px solid var(--mj-status-warning);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n font-size: var(--mj-text-sm);\n }\n "], encapsulation: 2, changeDetection: 0 });
178
312
  }
179
313
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SellingCompanyFieldComponent, [{
@@ -203,6 +337,19 @@ export class SellingCompanyFieldComponent {
203
337
  <button type="button" class="bizapps-selling-confirm-no" (click)="OnRevert()">Revert</button>
204
338
  </div>
205
339
  }
340
+ @if (NotAppliedName) {
341
+ <div class="bizapps-selling-confirm" role="status" aria-live="polite">
342
+ <span>
343
+ <strong>{{ NotAppliedName }}</strong> was not confirmed, so it was not applied. This record
344
+ @if (KeptName) {
345
+ keeps {{ KeptName }}.
346
+ } @else {
347
+ has no selling company.
348
+ }
349
+ </span>
350
+ <button type="button" class="bizapps-selling-confirm-dismiss" (click)="OnDismissNotice()">Dismiss</button>
351
+ </div>
352
+ }
206
353
  `, styles: ["\n .bizapps-selling-confirm {\n display: flex;\n flex-wrap: wrap;\n gap: var(--mj-space-2);\n align-items: center;\n margin-top: var(--mj-space-1);\n padding: var(--mj-space-2) var(--mj-space-3);\n border: 1px solid var(--mj-status-warning);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface-sunken);\n font-size: var(--mj-text-sm);\n }\n "] }]
207
354
  }], null, { Record: [{
208
355
  type: Input,
@@ -218,5 +365,5 @@ export class SellingCompanyFieldComponent {
218
365
  }], Navigate: [{
219
366
  type: Output
220
367
  }] }); })();
221
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SellingCompanyFieldComponent, { className: "SellingCompanyFieldComponent", filePath: "lib/components/selling-company-field/selling-company-field.component.ts", lineNumber: 86 }); })();
368
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SellingCompanyFieldComponent, { className: "SellingCompanyFieldComponent", filePath: "lib/components/selling-company-field/selling-company-field.component.ts", lineNumber: 130 }); })();
222
369
  //# sourceMappingURL=selling-company-field.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selling-company-field.component.js","sourceRoot":"","sources":["../../../../src/lib/components/selling-company-field/selling-company-field.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selling-company-field.component.js","sourceRoot":"","sources":["../../../../src/lib/components/selling-company-field/selling-company-field.component.ts"],"names":[],"mappings":"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"}