@mj-biz-apps/common-ng 5.46.1 → 5.46.3

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.
@@ -0,0 +1,2 @@
1
+ import '@angular/compiler';
2
+ //# sourceMappingURL=address-format.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-format.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/address-editor/__tests__/address-format.test.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import '@angular/compiler';
2
+ import { describe, expect, it } from 'vitest';
3
+ import { AddressEditorComponent } from '../address-editor.component';
4
+ const format1 = (a) => AddressEditorComponent.prototype.formatAddressLine1.call(null, a);
5
+ const format2 = (a) => AddressEditorComponent.prototype.formatAddressLine2.call(null, a);
6
+ describe('AddressEditorComponent.formatAddressLine1', () => {
7
+ it('joins Line1 and Line2', () => {
8
+ expect(format1({ Line1: '123 Main St', Line2: 'Suite 200' })).toBe('123 Main St, Suite 200');
9
+ });
10
+ it('returns Line1 alone when Line2 is empty', () => {
11
+ expect(format1({ Line1: '123 Main St', Line2: null })).toBe('123 Main St');
12
+ });
13
+ it('returns Line2 without a leading separator when Line1 is empty', () => {
14
+ expect(format1({ Line2: 'Suite 200' })).toBe('Suite 200');
15
+ });
16
+ it('returns an empty string for a location-only address', () => {
17
+ expect(format1({ Line1: '', Line2: null })).toBe('');
18
+ });
19
+ });
20
+ describe('AddressEditorComponent.formatAddressLine2', () => {
21
+ it('joins city, region, postal code and country', () => {
22
+ expect(format2({ City: 'Austin', StateProvince: 'TX', PostalCode: '78701', Country: 'US' })).toBe('Austin, TX, 78701, US');
23
+ });
24
+ it('returns country without a leading separator when it is the only part', () => {
25
+ expect(format2({ Country: 'US' })).toBe('US');
26
+ });
27
+ it('skips missing parts', () => {
28
+ expect(format2({ PostalCode: '78701', Country: 'US' })).toBe('78701, US');
29
+ });
30
+ it('returns an empty string when no location parts are set', () => {
31
+ expect(format2({})).toBe('');
32
+ });
33
+ });
34
+ //# sourceMappingURL=address-format.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-format.test.js","sourceRoot":"","sources":["../../../../../src/lib/components/address-editor/__tests__/address-format.test.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,OAAO,GAAG,CAAC,CAAwC,EAAE,EAAE,CACzD,sBAAsB,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAiC,CAAC,CAAC;AACtG,MAAM,OAAO,GAAG,CAAC,CAAwC,EAAE,EAAE,CACzD,sBAAsB,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAiC,CAAC,CAAC;AAEtG,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC/H,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=address-references.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-references.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/address-editor/__tests__/address-references.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { CompositeKey } from '@memberjunction/core';
3
+ import { otherAddressReferences } from '../address-references';
4
+ const LINK_ID = '7F3A2C1E-0000-4000-8000-000000000001';
5
+ const OTHER_LINK_ID = '7F3A2C1E-0000-4000-8000-000000000002';
6
+ /** Server-provider shape: the dependent record's key is a CompositeKey in `PrimaryKey`. */
7
+ const serverRef = (entity, field, id) => ({
8
+ RelatedEntityName: entity,
9
+ FieldName: field,
10
+ PrimaryKey: new CompositeKey([{ FieldName: 'ID', Value: id }]),
11
+ });
12
+ /** GraphQL-client shape: the same key arrives as a plain object under `CompositeKey`. */
13
+ const clientRef = (entity, field, id) => ({
14
+ RelatedEntityName: entity,
15
+ FieldName: field,
16
+ CompositeKey: { KeyValuePairs: [{ FieldName: 'ID', Value: id }] },
17
+ });
18
+ describe('otherAddressReferences', () => {
19
+ it('is empty when the only reference is the link being removed', () => {
20
+ expect(otherAddressReferences([serverRef('MJ_BizApps_Common: Address Links', 'AddressID', LINK_ID)], LINK_ID)).toEqual([]);
21
+ });
22
+ it('recognises the removed link in the GraphQL client shape', () => {
23
+ expect(otherAddressReferences([clientRef('MJ_BizApps_Common: Address Links', 'AddressID', LINK_ID)], LINK_ID)).toEqual([]);
24
+ });
25
+ it('matches the link ID regardless of GUID casing', () => {
26
+ expect(otherAddressReferences([clientRef('MJ_BizApps_Common: Address Links', 'AddressID', LINK_ID.toLowerCase())], LINK_ID)).toEqual([]);
27
+ });
28
+ it('keeps another party\'s link to the same address', () => {
29
+ const other = clientRef('MJ_BizApps_Common: Address Links', 'AddressID', OTHER_LINK_ID);
30
+ const refs = [clientRef('MJ_BizApps_Common: Address Links', 'AddressID', LINK_ID), other];
31
+ expect(otherAddressReferences(refs, LINK_ID)).toEqual([other]);
32
+ });
33
+ it('keeps a direct reference from another entity, even when its ID equals the link ID', () => {
34
+ const order = clientRef('MJ_BizApps_Orders: Order Headers', 'ShipToAddressID', LINK_ID);
35
+ expect(otherAddressReferences([order], LINK_ID)).toEqual([order]);
36
+ });
37
+ it('is empty when there are no references', () => {
38
+ expect(otherAddressReferences([], LINK_ID)).toEqual([]);
39
+ });
40
+ });
41
+ //# sourceMappingURL=address-references.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-references.test.js","sourceRoot":"","sources":["../../../../../src/lib/components/address-editor/__tests__/address-references.test.ts"],"names":[],"mappings":"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"}
@@ -142,6 +142,11 @@ export declare class AddressEditorComponent {
142
142
  * so a misconfiguration surfaces as a visible message instead of a failed INSERT.
143
143
  */
144
144
  LoadError: string | null;
145
+ /**
146
+ * Set when a delete is refused or fails. Rendered above the list, which stays visible,
147
+ * and cleared by the next delete attempt.
148
+ */
149
+ ActionError: string | null;
145
150
  /** Cached action ID for the Postal Code Lookup action. */
146
151
  private postalCodeLookupActionID;
147
152
  /** Whether a postal code lookup is currently in progress. */
@@ -198,10 +203,11 @@ export declare class AddressEditorComponent {
198
203
  /**
199
204
  * Formats the first line of an address display string.
200
205
  *
201
- * Combines Line1 and Line2 (if present) with a comma separator.
206
+ * Combines whichever of Line1 and Line2 are present with a comma separator.
202
207
  *
203
208
  * @param address - The Address entity to format
204
- * @returns A formatted string such as `'123 Main St, Suite 200'`
209
+ * @returns A formatted string such as `'123 Main St, Suite 200'`, or `''` for a
210
+ * location-only address with no street lines
205
211
  */
206
212
  formatAddressLine1(address: mjBizAppsCommonAddressEntity): string;
207
213
  /**
@@ -257,14 +263,33 @@ export declare class AddressEditorComponent {
257
263
  */
258
264
  onSetPrimary(index: number): Promise<void>;
259
265
  /**
260
- * Deletes the address at the given index, removing both the AddressLink
261
- * and the orphaned Address record.
266
+ * Removes the address at the given index from this record.
262
267
  *
263
- * After deletion, the address list is reloaded.
268
+ * The AddressLink is always deleted. The Address row is deleted with it only when
269
+ * nothing else references it — another party's link, or a direct reference from
270
+ * another entity — and then both deletes run in one transaction so neither is left
271
+ * behind alone. If the references cannot be checked, only the link is deleted.
272
+ * A refused or failed delete is shown in {@link ActionError}.
264
273
  *
265
274
  * @param index - The zero-based index of the address item in {@link AddressItems}
266
275
  */
267
276
  onDelete(index: number): Promise<void>;
277
+ /**
278
+ * Deletes the link, and the Address too when nothing else references it.
279
+ * @returns `null` on success, otherwise the reason the delete was refused
280
+ */
281
+ private deleteItem;
282
+ /**
283
+ * Whether nothing but this item's link references its Address.
284
+ *
285
+ * Returns `false` when the check itself fails, so the caller keeps the Address row: an
286
+ * unused row left behind is harmless, a deleted row something still points at is not.
287
+ * The check fails on any host without a read-only database connection, because MJ's
288
+ * GetRecordDependencies resolver uses only that connection.
289
+ */
290
+ private isAddressUnreferenced;
291
+ /** Builds the user-facing reason for a refused delete from the entity's latest result. */
292
+ private deleteFailure;
268
293
  static ɵfac: i0.ɵɵFactoryDeclaration<AddressEditorComponent, never>;
269
294
  static ɵcmp: i0.ɵɵComponentDeclaration<AddressEditorComponent, "bizapps-address-editor", never, { "EditMode": { "alias": "EditMode"; "required": false; }; "EntityName": { "alias": "EntityName"; "required": false; }; "RecordID": { "alias": "RecordID"; "required": false; }; }, { "DataChanged": "DataChanged"; }, never, never, true, never>;
270
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"address-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/address-editor/address-editor.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/address-editor/address-editor.component.ts"],"names":[],"mappings":"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"}