@memberjunction/ng-link-directives 5.30.1 → 5.32.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.
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ElementRef, Renderer2 } from '@angular/core';
|
|
2
2
|
import { EntityField } from '@memberjunction/core';
|
|
3
|
-
|
|
3
|
+
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare abstract class BaseLink extends BaseAngularComponent {
|
|
4
6
|
protected CreateLink(el: ElementRef, field: EntityField, renderer: Renderer2, href: string, newTab?: boolean): void;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseLink, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseLink, never, never, {}, {}, never, never, true, never>;
|
|
5
9
|
}
|
|
6
10
|
//# sourceMappingURL=ng-base-link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-base-link.d.ts","sourceRoot":"","sources":["../../src/lib/ng-base-link.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ng-base-link.d.ts","sourceRoot":"","sources":["../../src/lib/ng-base-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAErE,8BACsB,QAAS,SAAQ,oBAAoB;IACvD,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe;yCADjG,QAAQ;2CAAR,QAAQ;CAa7B"}
|
package/dist/lib/ng-base-link.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class BaseLink extends BaseAngularComponent {
|
|
2
5
|
CreateLink(el, field, renderer, href, newTab = false) {
|
|
3
6
|
const parent = el.nativeElement.parentNode;
|
|
4
7
|
const a = renderer.createElement('a');
|
|
@@ -11,5 +14,10 @@ export class BaseLink {
|
|
|
11
14
|
renderer.setStyle(a, 'font-size', '16px');
|
|
12
15
|
renderer.appendChild(a, el.nativeElement);
|
|
13
16
|
}
|
|
17
|
+
static ɵfac = /*@__PURE__*/ (() => { let ɵBaseLink_BaseFactory; return function BaseLink_Factory(__ngFactoryType__) { return (ɵBaseLink_BaseFactory || (ɵBaseLink_BaseFactory = i0.ɵɵgetInheritedFactory(BaseLink)))(__ngFactoryType__ || BaseLink); }; })();
|
|
18
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseLink, features: [i0.ɵɵInheritDefinitionFeature] });
|
|
14
19
|
}
|
|
20
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseLink, [{
|
|
21
|
+
type: Directive
|
|
22
|
+
}], null, null); })();
|
|
15
23
|
//# sourceMappingURL=ng-base-link.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-base-link.js","sourceRoot":"","sources":["../../src/lib/ng-base-link.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ng-base-link.js","sourceRoot":"","sources":["../../src/lib/ng-base-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAGrE,MAAM,OAAgB,QAAS,SAAQ,oBAAoB;IAC7C,UAAU,CAAC,EAAc,EAAE,KAAkB,EAAE,QAAmB,EAAE,IAAY,EAAE,SAAkB,KAAK;QAC/G,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;QAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YACtD,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAG,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM;YACN,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1C,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;6MAZiB,QAAQ,yBAAR,QAAQ;6DAAR,QAAQ;;iFAAR,QAAQ;cAD7B,SAAS","sourcesContent":["import { Directive, ElementRef, Renderer2 } from '@angular/core';\nimport { EntityField } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\n\n@Directive()\nexport abstract class BaseLink extends BaseAngularComponent {\n protected CreateLink(el: ElementRef, field: EntityField, renderer: Renderer2, href: string, newTab: boolean = false) {\n const parent = el.nativeElement.parentNode;\n const a = renderer.createElement('a');\n if (href !== null && href !== undefined && href.length > 0) \n renderer.setAttribute(a, 'href', href);\n if (newTab)\n renderer.setAttribute(a, 'target', '_blank');\n renderer.insertBefore(parent, a, el.nativeElement);\n renderer.addClass(a, 'link-text');\n renderer.setStyle(a, 'font-size', '16px');\n renderer.appendChild(a, el.nativeElement);\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
|
-
import { CompositeKey, LogStatus
|
|
2
|
+
import { CompositeKey, LogStatus } from '@memberjunction/core';
|
|
3
3
|
import { BaseLink } from './ng-base-link';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@memberjunction/ng-shared";
|
|
@@ -34,7 +34,7 @@ export class FieldLink extends BaseLink {
|
|
|
34
34
|
if (relatedEntity && relatedEntity.length > 0) {
|
|
35
35
|
this._targetEntity = relatedEntity;
|
|
36
36
|
this._targetRecordID = this.field.Value;
|
|
37
|
-
const md =
|
|
37
|
+
const md = this.ProviderToUse;
|
|
38
38
|
this._targetEntityInfo = md.Entities.find(e => e.Name === relatedEntity);
|
|
39
39
|
if (!this._targetEntityInfo)
|
|
40
40
|
throw new Error('Related entity not found in metadata: ' + relatedEntity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-field-link.js","sourceRoot":"","sources":["../../src/lib/ng-field-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,KAAK,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAc,YAAY,EAA2B,SAAS,
|
|
1
|
+
{"version":3,"file":"ng-field-link.js","sourceRoot":"","sources":["../../src/lib/ng-field-link.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, ElementRef, Renderer2, Input, OnInit, HostListener } from '@angular/core';\nimport { BaseEntity, CompositeKey, EntityField, EntityInfo, LogStatus, Metadata } from '@memberjunction/core';\nimport { NavigationService } from '@memberjunction/ng-shared';\nimport { BaseLink } from './ng-base-link';\n\n@Directive({\n standalone: false,\n selector: '[mjFieldLink]'\n})\nexport class FieldLink extends BaseLink implements OnInit {\n\n @Input('record') record!: BaseEntity; // Input variable to get the entity record\n @Input('fieldName') fieldName!: string; // Input variable to get the fieldInfo\n @Input('replaceText') replaceText: boolean = true ; // \n\n private _targetEntity: string = '';\n private _targetEntityInfo: EntityInfo | undefined;\n private _targetRecordID: number = 0;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private navigationService: NavigationService\n ) {\n super();\n }\n\n public get field(): EntityField {\n if (!this.record) throw new Error('entity not set');\n if (!this.fieldName) throw new Error('fieldName not set');\n const field = this.record.Fields.find(f => f.Name === this.fieldName);\n if (!field) throw new Error(`Unable to find field ${this.fieldName} in entity ${this.record.EntityInfo.Name}`);\n return field;\n }\n\n ngOnInit() {\n const relatedEntity = this.field.EntityFieldInfo.RelatedEntity;\n if (relatedEntity && relatedEntity.length > 0) {\n this._targetEntity = relatedEntity;\n this._targetRecordID = this.field.Value;\n const md = this.ProviderToUse;\n this._targetEntityInfo = md.Entities.find(e => e.Name === relatedEntity);\n if (!this._targetEntityInfo)\n throw new Error('Related entity not found in metadata: ' + relatedEntity);\n\n this.CreateLink(this.el, this.field, this.renderer, '', false);\n \n if (this.replaceText) { \n // replace the value of the field with the record name\n // first see if we already have the value locally using metadata for RelatedEntityNameFieldMap\n if (this.field.EntityFieldInfo.RelatedEntityNameFieldMap && \n this.field.EntityFieldInfo.RelatedEntityNameFieldMap.length > 0) {\n const nameField = this.field.EntityFieldInfo.RelatedEntityNameFieldMap;\n const nameFieldValue = this.record.Get(nameField)\n if (nameFieldValue && nameFieldValue.length > 0)\n this.renderer.setProperty(this.el.nativeElement, 'textContent', nameFieldValue);\n }\n else if (this.field.Value) {\n // make sure that this.field.Value is not null or undefined\n\n // we didn't have the related field mapping info (above), no related entity name field map provided in the entity field metadata, so do a lookup\n // requires a server round trip and hitting the DB, so we try to avoid this\n\n let compositeKey: CompositeKey = new CompositeKey([{\n FieldName: this._targetEntityInfo.FirstPrimaryKey.Name, // AT THE MOMENT - we only support foreign keys with a single value\n Value: this.field.Value\n }]);\n md.GetEntityRecordName(relatedEntity, compositeKey).then(recordName => {\n if (recordName && recordName.length > 0)\n this.renderer.setProperty(this.el.nativeElement, 'textContent', recordName);\n });\n }\n }\n }\n else {\n LogStatus('no linked entity found for field: ' + this.field.Name);\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n event.preventDefault();\n if (!this._targetEntityInfo)\n throw new Error('targetEntityInfo not set');\n\n // Create CompositeKey for navigation - we only support foreign keys with a single value at present\n const compositeKey = new CompositeKey([{\n FieldName: this._targetEntityInfo.FirstPrimaryKey.Name,\n Value: this._targetRecordID\n }]);\n\n // Use NavigationService for consistent navigation behavior\n this.navigationService.OpenEntityRecord(this._targetEntity, compositeKey);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-link-directives",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.32.0",
|
|
4
4
|
"description": "MemberJunction: Angular Link Directives for turning an element in an angular app into an email, web, or record link",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -30,8 +30,9 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"tslib": "^2.8.1",
|
|
33
|
-
"@memberjunction/core": "5.
|
|
34
|
-
"@memberjunction/ng-
|
|
33
|
+
"@memberjunction/core": "5.32.0",
|
|
34
|
+
"@memberjunction/ng-base-types": "5.32.0",
|
|
35
|
+
"@memberjunction/ng-shared": "5.32.0"
|
|
35
36
|
},
|
|
36
37
|
"sideEffects": false,
|
|
37
38
|
"repository": {
|