@mj-biz-apps/contracts-ng 0.4.0 → 0.4.1
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/data/entity-names.d.ts +4 -0
- package/dist/lib/data/entity-names.d.ts.map +1 -1
- package/dist/lib/data/entity-names.js +4 -0
- package/dist/lib/data/entity-names.js.map +1 -1
- package/dist/lib/form-panels/executed-agreement.panel.d.ts +85 -0
- package/dist/lib/form-panels/executed-agreement.panel.d.ts.map +1 -0
- package/dist/lib/form-panels/executed-agreement.panel.js +581 -0
- package/dist/lib/form-panels/executed-agreement.panel.js.map +1 -0
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +2 -2
|
@@ -25,5 +25,9 @@ export declare const MJC_FOREIGN_ENTITIES: {
|
|
|
25
25
|
readonly Person: "MJ_BizApps_Common: People";
|
|
26
26
|
/** MJ CORE's Company, not accounting's — verified against __mj.EntityRelationship. */
|
|
27
27
|
readonly Company: "MJ: Companies";
|
|
28
|
+
/** MJ CORE's file storage: a file row, its category, and the polymorphic record↔file link (golive #213). */
|
|
29
|
+
readonly File: "MJ: Files";
|
|
30
|
+
readonly FileCategory: "MJ: File Categories";
|
|
31
|
+
readonly FileEntityRecordLink: "MJ: File Entity Record Links";
|
|
28
32
|
};
|
|
29
33
|
//# sourceMappingURL=entity-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-names.d.ts","sourceRoot":"","sources":["../../../src/lib/data/entity-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kCAAkC;AAClC,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC;AAEX,iGAAiG;AACjG,eAAO,MAAM,oBAAoB;;;IAG7B,sFAAsF;;
|
|
1
|
+
{"version":3,"file":"entity-names.d.ts","sourceRoot":"","sources":["../../../src/lib/data/entity-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kCAAkC;AAClC,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC;AAEX,iGAAiG;AACjG,eAAO,MAAM,oBAAoB;;;IAG7B,sFAAsF;;IAEtF,4GAA4G;;;;CAItG,CAAC"}
|
|
@@ -25,5 +25,9 @@ export const MJC_FOREIGN_ENTITIES = {
|
|
|
25
25
|
Person: 'MJ_BizApps_Common: People',
|
|
26
26
|
/** MJ CORE's Company, not accounting's — verified against __mj.EntityRelationship. */
|
|
27
27
|
Company: 'MJ: Companies',
|
|
28
|
+
/** MJ CORE's file storage: a file row, its category, and the polymorphic record↔file link (golive #213). */
|
|
29
|
+
File: 'MJ: Files',
|
|
30
|
+
FileCategory: 'MJ: File Categories',
|
|
31
|
+
FileEntityRecordLink: 'MJ: File Entity Record Links',
|
|
28
32
|
};
|
|
29
33
|
//# sourceMappingURL=entity-names.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-names.js","sourceRoot":"","sources":["../../../src/lib/data/entity-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kCAAkC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,QAAQ,EAAE,iCAAiC;IAC3C,YAAY,EAAE,sCAAsC;IACpD,gBAAgB,EAAE,0CAA0C;IAC5D,oBAAoB,EAAE,+CAA+C;IACrE,yBAAyB,EAAE,oDAAoD;IAC/E,4BAA4B,EAAE,uDAAuD;CAC/E,CAAC;AAEX,iGAAiG;AACjG,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,YAAY,EAAE,kCAAkC;IAChD,MAAM,EAAE,2BAA2B;IACnC,sFAAsF;IACtF,OAAO,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"entity-names.js","sourceRoot":"","sources":["../../../src/lib/data/entity-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kCAAkC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,QAAQ,EAAE,iCAAiC;IAC3C,YAAY,EAAE,sCAAsC;IACpD,gBAAgB,EAAE,0CAA0C;IAC5D,oBAAoB,EAAE,+CAA+C;IACrE,yBAAyB,EAAE,oDAAoD;IAC/E,4BAA4B,EAAE,uDAAuD;CAC/E,CAAC;AAEX,iGAAiG;AACjG,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,YAAY,EAAE,kCAAkC;IAChD,MAAM,EAAE,2BAA2B;IACnC,sFAAsF;IACtF,OAAO,EAAE,eAAe;IACxB,4GAA4G;IAC5G,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,qBAAqB;IACnC,oBAAoB,EAAE,8BAA8B;CAC9C,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { MJFileEntity } from '@memberjunction/core-entities';
|
|
2
|
+
import { BaseFormPanel } from '@memberjunction/ng-base-forms';
|
|
3
|
+
import { ContractEntity } from '@mj-biz-apps/contracts-entities';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/** One file linked to this contract, with the loaded entity so Mark/Unmark save exactly the row that was read. */
|
|
6
|
+
interface LinkedFile {
|
|
7
|
+
FileID: string;
|
|
8
|
+
Name: string;
|
|
9
|
+
CategoryName: string | null;
|
|
10
|
+
Entity: MJFileEntity;
|
|
11
|
+
}
|
|
12
|
+
export declare class MJCContractExecutedAgreementPanel extends BaseFormPanel<ContractEntity> {
|
|
13
|
+
private readonly cdr;
|
|
14
|
+
/** The category's display name, for copy. */
|
|
15
|
+
readonly CategoryName = "Executed Agreement";
|
|
16
|
+
/** The `MJ: File Categories` row named {@link EXECUTED_AGREEMENT_FILE_CATEGORY}, resolved per load; null when absent. */
|
|
17
|
+
CategoryID: string | null;
|
|
18
|
+
/** True after a successful load that found no category row — a database the migration has not reached. */
|
|
19
|
+
CategoryMissing: boolean;
|
|
20
|
+
Loading: boolean;
|
|
21
|
+
/** True while a Mark/Unmark is in flight, so a button cannot be double-fired. */
|
|
22
|
+
Busy: boolean;
|
|
23
|
+
/** Why the list is empty, when the reason is a failed read rather than genuinely nothing. */
|
|
24
|
+
LoadError: string;
|
|
25
|
+
ActionError: string;
|
|
26
|
+
/** Confirmation, so a working mark is never indistinguishable from a silent no-op. */
|
|
27
|
+
ActionOk: string;
|
|
28
|
+
/** Links whose file row did not come back — most likely no read permission on MJ: Files. */
|
|
29
|
+
Unreadable: number;
|
|
30
|
+
private _files;
|
|
31
|
+
/**
|
|
32
|
+
* WHICH contract the list was loaded for, not merely whether it was (the #28 item 23 lesson): the
|
|
33
|
+
* form reuses this instance when it navigates to another contract, and a boolean would keep the
|
|
34
|
+
* previous contract's files on screen.
|
|
35
|
+
*/
|
|
36
|
+
private loadedFor;
|
|
37
|
+
/** The linked files. Loaded on first read; no EditMode gate, because the panel is always shown. */
|
|
38
|
+
get Files(): LinkedFile[];
|
|
39
|
+
/** Read-only while the form is editing or the contract has never been saved — the Re-papering rule. */
|
|
40
|
+
get ReadOnly(): boolean;
|
|
41
|
+
/** Whether the buttons render at all: writable, permitted, and a category row to point at. */
|
|
42
|
+
get CanMark(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Whether this user may change a file's category — the `MJ: Files` entity's update permission, which
|
|
45
|
+
* is the platform's own allow/deny aggregation across the user's roles. FALSE on any doubt: a hidden
|
|
46
|
+
* button and a sentence saying why beat a button that fails.
|
|
47
|
+
*/
|
|
48
|
+
get CanUpdateFiles(): boolean;
|
|
49
|
+
IsExecutedAgreement(file: LinkedFile): boolean;
|
|
50
|
+
/** The form's toolbar Refresh, or a refresh this panel triggered after a write: re-read the list. */
|
|
51
|
+
OnRecordRefreshed(): void;
|
|
52
|
+
/** The panel's own refresh button — the list only, since attaching a file does not change the record. */
|
|
53
|
+
Refresh(): Promise<void>;
|
|
54
|
+
Mark(file: LinkedFile): Promise<void>;
|
|
55
|
+
Unmark(file: LinkedFile): Promise<void>;
|
|
56
|
+
/** The host form's provider, so this panel reads and writes wherever the record it is showing came from. */
|
|
57
|
+
private get provider();
|
|
58
|
+
/**
|
|
59
|
+
* Write the category on the FILE, then re-read the RECORD. `Save()` does not throw; it returns false
|
|
60
|
+
* and leaves the reason on `LatestResult`. On failure the in-memory entity is reverted so the row
|
|
61
|
+
* does not claim a category the database refused.
|
|
62
|
+
*/
|
|
63
|
+
private setCategory;
|
|
64
|
+
/**
|
|
65
|
+
* The header chip and the Overview read `IsAwaitingDocument` off the PERSISTED view column, so the
|
|
66
|
+
* record has to come back from the database. `RefreshRecord()` also notifies every panel through
|
|
67
|
+
* `OnRecordRefreshed`, which is how this list reloads; when it declines (editing, unsaved, or no
|
|
68
|
+
* form host) the list is reloaded directly so the row at least shows what was written.
|
|
69
|
+
*/
|
|
70
|
+
private reReadRecord;
|
|
71
|
+
/** Category row, then links, then the files they name — three reads, the last two skipped when nothing is linked. */
|
|
72
|
+
private load;
|
|
73
|
+
/** The category the view resolves on, looked up the way the view does it: by Name. */
|
|
74
|
+
private resolveCategory;
|
|
75
|
+
/**
|
|
76
|
+
* The links for THIS record, then the files they name — through MJ's polymorphic
|
|
77
|
+
* `MJ: File Entity Record Links` (EntityID + RecordID), which is where the view looks too.
|
|
78
|
+
* `entity_object` on the files is load-bearing: Mark/Unmark save the very entity that was read.
|
|
79
|
+
*/
|
|
80
|
+
private loadLinkedFiles;
|
|
81
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MJCContractExecutedAgreementPanel, never>;
|
|
82
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MJCContractExecutedAgreementPanel, "mjc-contract-executed-agreement-panel", never, {}, {}, never, never, true, never>;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=executed-agreement.panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executed-agreement.panel.d.ts","sourceRoot":"","sources":["../../../src/lib/form-panels/executed-agreement.panel.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAmB,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAoC,MAAM,iCAAiC,CAAC;;AAInG,kHAAkH;AAClH,UAAU,UAAU;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;CACxB;AAOD,qBA0Ia,iCAAkC,SAAQ,aAAa,CAAC,cAAc,CAAC;IAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAEjD,6CAA6C;IAC7C,SAAgB,YAAY,wBAAoC;IAChE,yHAAyH;IAClH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACxC,0GAA0G;IACnG,eAAe,UAAS;IACxB,OAAO,UAAS;IACvB,iFAAiF;IAC1E,IAAI,UAAS;IACpB,6FAA6F;IACtF,SAAS,SAAM;IACf,WAAW,SAAM;IACxB,sFAAsF;IAC/E,QAAQ,SAAM;IACrB,4FAA4F;IACrF,UAAU,SAAK;IAEtB,OAAO,CAAC,MAAM,CAAoB;IAClC;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAuB;IAExC,mGAAmG;IACnG,IAAW,KAAK,IAAI,UAAU,EAAE,CAO/B;IAED,uGAAuG;IACvG,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,8FAA8F;IAC9F,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;;;OAIG;IACH,IAAW,cAAc,IAAI,OAAO,CAMnC;IAEM,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIrD,qGAAqG;IACrF,iBAAiB,IAAI,IAAI;IAIzC,yGAAyG;IAC5F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,4GAA4G;IAC5G,OAAO,KAAK,QAAQ,GAEnB;IAED;;;;OAIG;YACW,WAAW;IAoBzB;;;;;OAKG;YACW,YAAY;IAK1B,qHAAqH;YACvG,IAAI;IAsBlB,sFAAsF;YACxE,eAAe;IAY7B;;;;OAIG;YACW,eAAe;yCAxKpB,iCAAiC;2CAAjC,iCAAiC;CA+L7C"}
|
|
@@ -0,0 +1,581 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Executed agreement — mark WHICH linked file is the signed contract (golive #213).
|
|
9
|
+
*
|
|
10
|
+
* WHY THIS PANEL EXISTS. Since contracts #36 (golive #203 item 16) `vwContracts.IsAwaitingDocument`
|
|
11
|
+
* clears only when a file linked to the contract carries MJ's file category named
|
|
12
|
+
* 'Executed Agreement'. Files themselves attach through MJ's stock Attachments panel on the form
|
|
13
|
+
* toolbar — but at 6.1.0-edge.4 that panel cannot set a file's category: its upload has no dialog to
|
|
14
|
+
* put a checkbox in, its Edit Details writes only name and description, and the form container
|
|
15
|
+
* passes it no default category. So the gate the migration introduced could never be satisfied from
|
|
16
|
+
* the UI, and a contract whose type requires an executed document read "Awaiting document" whatever
|
|
17
|
+
* was attached. This panel closes exactly that gap and nothing else: attach, remove and open stay
|
|
18
|
+
* with the stock panel.
|
|
19
|
+
*
|
|
20
|
+
* THE RE-PAPERING RULE, adopted deliberately (supersede.panel.ts): ALWAYS VISIBLE, not gated on
|
|
21
|
+
* EditMode. Marking writes the FILE, not this record, in its own save — it is not one of the form's
|
|
22
|
+
* fields, so it is available in read mode and shown read-only while the form is editing or the
|
|
23
|
+
* contract is unsaved. A contract with no primary key yet has nothing linked to mark.
|
|
24
|
+
*
|
|
25
|
+
* BY NAME, never by id, for the same reason the view and the migration do it that way: the category
|
|
26
|
+
* row is seeded per database, so a hardcoded UUID stops matching the first time an environment is
|
|
27
|
+
* rebuilt from zero. The one spelling lives in `@mj-biz-apps/contracts-entities` and a test pins it
|
|
28
|
+
* to the migration seed.
|
|
29
|
+
*
|
|
30
|
+
* WHAT "MARKED" MEANS HERE is what the VIEW means: the linked file's category NAME is
|
|
31
|
+
* 'Executed Agreement'. Mark sets `File.CategoryID` to that category's row; Unmark clears it to null
|
|
32
|
+
* (a previous category, if any, is not restored — the stock panel shows and never sets one, so there
|
|
33
|
+
* is nothing to restore in practice). After either write the form re-reads the record, because the
|
|
34
|
+
* header chip and the Overview health line read the PERSISTED view column rather than re-deriving it.
|
|
35
|
+
*
|
|
36
|
+
* @module @mj-biz-apps/contracts-ng
|
|
37
|
+
*/
|
|
38
|
+
import { ChangeDetectorRef, Component, ViewEncapsulation, inject } from '@angular/core';
|
|
39
|
+
import { CommonModule } from '@angular/common';
|
|
40
|
+
import { EscapeSQLString, RegisterClassEx } from '@memberjunction/global';
|
|
41
|
+
import { Metadata } from '@memberjunction/core';
|
|
42
|
+
import { BaseFormPanel, BaseFormsModule } from '@memberjunction/ng-base-forms';
|
|
43
|
+
import { MJAlertComponent, MJButtonDirective, MJRefreshButtonComponent } from '@memberjunction/ng-ui-components';
|
|
44
|
+
import { EXECUTED_AGREEMENT_FILE_CATEGORY } from '@mj-biz-apps/contracts-entities';
|
|
45
|
+
import { MJC_ENTITIES, MJC_FOREIGN_ENTITIES } from '../data/entity-names';
|
|
46
|
+
import { ScopedRunView } from '../data/provider';
|
|
47
|
+
import * as i0 from "@angular/core";
|
|
48
|
+
import * as i1 from "@memberjunction/ng-base-forms";
|
|
49
|
+
const _forTrack0 = ($index, $item) => $item.FileID;
|
|
50
|
+
function MJCContractExecutedAgreementPanel_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
52
|
+
i0.ɵɵelementStart(0, "mj-refresh-button", 10);
|
|
53
|
+
i0.ɵɵlistener("Clicked", function MJCContractExecutedAgreementPanel_Conditional_5_Template_mj_refresh_button_Clicked_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Refresh()); });
|
|
54
|
+
i0.ɵɵelementEnd();
|
|
55
|
+
} if (rf & 2) {
|
|
56
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
57
|
+
i0.ɵɵproperty("ShowLabel", false)("Loading", ctx_r1.Loading)("Disabled", ctx_r1.Busy);
|
|
58
|
+
} }
|
|
59
|
+
function MJCContractExecutedAgreementPanel_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
61
|
+
i0.ɵɵtext(1, "Loading linked files\u2026");
|
|
62
|
+
i0.ɵɵelementEnd();
|
|
63
|
+
} }
|
|
64
|
+
function MJCContractExecutedAgreementPanel_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
i0.ɵɵelement(0, "mj-alert", 7);
|
|
66
|
+
} if (rf & 2) {
|
|
67
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
68
|
+
i0.ɵɵproperty("Message", ctx_r1.LoadError);
|
|
69
|
+
} }
|
|
70
|
+
function MJCContractExecutedAgreementPanel_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
72
|
+
i0.ɵɵtext(1, " No files are linked to this contract. Attach the signed PDF with the Attachments button on the toolbar, then mark it here. ");
|
|
73
|
+
i0.ɵɵelementEnd();
|
|
74
|
+
} }
|
|
75
|
+
function MJCContractExecutedAgreementPanel_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
77
|
+
i0.ɵɵtext(1, "\u2014");
|
|
78
|
+
i0.ɵɵelementEnd();
|
|
79
|
+
i0.ɵɵconditionalCreate(2, MJCContractExecutedAgreementPanel_Conditional_10_Conditional_2_Template, 2, 0, "div", 6);
|
|
80
|
+
} if (rf & 2) {
|
|
81
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
82
|
+
i0.ɵɵadvance(2);
|
|
83
|
+
i0.ɵɵconditional(ctx_r1.Record.IsSaved ? 2 : -1);
|
|
84
|
+
} }
|
|
85
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "span", 12);
|
|
87
|
+
i0.ɵɵelement(1, "i", 14);
|
|
88
|
+
i0.ɵɵtext(2, " Executed agreement ");
|
|
89
|
+
i0.ɵɵelementEnd();
|
|
90
|
+
} }
|
|
91
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
+
i0.ɵɵelementStart(0, "span", 9);
|
|
93
|
+
i0.ɵɵtext(1);
|
|
94
|
+
i0.ɵɵelementEnd();
|
|
95
|
+
} if (rf & 2) {
|
|
96
|
+
const f_r3 = i0.ɵɵnextContext().$implicit;
|
|
97
|
+
i0.ɵɵadvance();
|
|
98
|
+
i0.ɵɵtextInterpolate(f_r3.CategoryName);
|
|
99
|
+
} }
|
|
100
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
i0.ɵɵelementStart(0, "span", 13);
|
|
102
|
+
i0.ɵɵtext(1, "\u2014");
|
|
103
|
+
i0.ɵɵelementEnd();
|
|
104
|
+
} }
|
|
105
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
107
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
108
|
+
i0.ɵɵlistener("click", function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const f_r3 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Unmark(f_r3)); });
|
|
109
|
+
i0.ɵɵtext(1, " Unmark ");
|
|
110
|
+
i0.ɵɵelementEnd();
|
|
111
|
+
} if (rf & 2) {
|
|
112
|
+
const f_r3 = i0.ɵɵnextContext(2).$implicit;
|
|
113
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
114
|
+
i0.ɵɵproperty("disabled", ctx_r1.Busy);
|
|
115
|
+
i0.ɵɵattribute("aria-label", "Unmark " + f_r3.Name + " as the executed agreement");
|
|
116
|
+
} }
|
|
117
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
119
|
+
i0.ɵɵelementStart(0, "button", 18);
|
|
120
|
+
i0.ɵɵlistener("click", function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const f_r3 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Mark(f_r3)); });
|
|
121
|
+
i0.ɵɵtext(1, " Mark as executed agreement ");
|
|
122
|
+
i0.ɵɵelementEnd();
|
|
123
|
+
} if (rf & 2) {
|
|
124
|
+
const f_r3 = i0.ɵɵnextContext(2).$implicit;
|
|
125
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
126
|
+
i0.ɵɵproperty("disabled", ctx_r1.Busy || !ctx_r1.CategoryID);
|
|
127
|
+
i0.ɵɵattribute("aria-label", "Mark " + f_r3.Name + " as the executed agreement");
|
|
128
|
+
} }
|
|
129
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
130
|
+
i0.ɵɵconditionalCreate(0, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Conditional_0_Template, 2, 2, "button", 15)(1, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Conditional_1_Template, 2, 2, "button", 16);
|
|
131
|
+
} if (rf & 2) {
|
|
132
|
+
const f_r3 = i0.ɵɵnextContext().$implicit;
|
|
133
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
134
|
+
i0.ɵɵconditional(ctx_r1.IsExecutedAgreement(f_r3) ? 0 : 1);
|
|
135
|
+
} }
|
|
136
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
+
i0.ɵɵelementStart(0, "tr")(1, "td");
|
|
138
|
+
i0.ɵɵtext(2);
|
|
139
|
+
i0.ɵɵelementEnd();
|
|
140
|
+
i0.ɵɵelementStart(3, "td");
|
|
141
|
+
i0.ɵɵconditionalCreate(4, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_4_Template, 3, 0, "span", 12)(5, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_5_Template, 2, 1, "span", 9)(6, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_6_Template, 2, 0, "span", 13);
|
|
142
|
+
i0.ɵɵelementEnd();
|
|
143
|
+
i0.ɵɵelementStart(7, "td");
|
|
144
|
+
i0.ɵɵconditionalCreate(8, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Conditional_8_Template, 2, 1);
|
|
145
|
+
i0.ɵɵelementEnd()();
|
|
146
|
+
} if (rf & 2) {
|
|
147
|
+
const f_r3 = ctx.$implicit;
|
|
148
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
149
|
+
i0.ɵɵadvance(2);
|
|
150
|
+
i0.ɵɵtextInterpolate(f_r3.Name);
|
|
151
|
+
i0.ɵɵadvance(2);
|
|
152
|
+
i0.ɵɵconditional(ctx_r1.IsExecutedAgreement(f_r3) ? 4 : f_r3.CategoryName ? 5 : 6);
|
|
153
|
+
i0.ɵɵadvance(4);
|
|
154
|
+
i0.ɵɵconditional(ctx_r1.CanMark ? 8 : -1);
|
|
155
|
+
} }
|
|
156
|
+
function MJCContractExecutedAgreementPanel_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
157
|
+
i0.ɵɵelementStart(0, "table", 8)(1, "thead")(2, "tr")(3, "th");
|
|
158
|
+
i0.ɵɵtext(4, "File");
|
|
159
|
+
i0.ɵɵelementEnd();
|
|
160
|
+
i0.ɵɵelementStart(5, "th");
|
|
161
|
+
i0.ɵɵtext(6, "Category");
|
|
162
|
+
i0.ɵɵelementEnd();
|
|
163
|
+
i0.ɵɵelement(7, "th");
|
|
164
|
+
i0.ɵɵelementEnd()();
|
|
165
|
+
i0.ɵɵelementStart(8, "tbody");
|
|
166
|
+
i0.ɵɵrepeaterCreate(9, MJCContractExecutedAgreementPanel_Conditional_11_For_10_Template, 9, 3, "tr", null, _forTrack0);
|
|
167
|
+
i0.ɵɵelementEnd()();
|
|
168
|
+
} if (rf & 2) {
|
|
169
|
+
i0.ɵɵnextContext();
|
|
170
|
+
const files_r6 = i0.ɵɵreadContextLet(7);
|
|
171
|
+
i0.ɵɵadvance(9);
|
|
172
|
+
i0.ɵɵrepeater(files_r6);
|
|
173
|
+
} }
|
|
174
|
+
function MJCContractExecutedAgreementPanel_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
175
|
+
i0.ɵɵelementStart(0, "span", 9);
|
|
176
|
+
i0.ɵɵtext(1);
|
|
177
|
+
i0.ɵɵelementEnd();
|
|
178
|
+
} if (rf & 2) {
|
|
179
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
180
|
+
i0.ɵɵadvance();
|
|
181
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.Record.IsSaved ? "Finish editing to change" : "Save this contract first", " ");
|
|
182
|
+
} }
|
|
183
|
+
function MJCContractExecutedAgreementPanel_Conditional_13_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
184
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
185
|
+
i0.ɵɵtext(1, " Marking a file changes its category on MJ: Files, which your roles cannot update. Ask an administrator to grant update permission on MJ: Files. ");
|
|
186
|
+
i0.ɵɵelementEnd();
|
|
187
|
+
} }
|
|
188
|
+
function MJCContractExecutedAgreementPanel_Conditional_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
189
|
+
i0.ɵɵelement(0, "mj-alert", 7);
|
|
190
|
+
} if (rf & 2) {
|
|
191
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
192
|
+
i0.ɵɵproperty("Message", "The file category named " + ctx_r1.CategoryName + " does not exist on this database, so nothing can be marked. The contracts migration V202609010100 seeds it.");
|
|
193
|
+
} }
|
|
194
|
+
function MJCContractExecutedAgreementPanel_Conditional_13_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
195
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
196
|
+
i0.ɵɵtext(1);
|
|
197
|
+
i0.ɵɵelementEnd();
|
|
198
|
+
} if (rf & 2) {
|
|
199
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
200
|
+
i0.ɵɵadvance();
|
|
201
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.Unreadable, " linked file(s) could not be read and are not listed \u2014 reading MJ: Files needs read permission on that entity. ");
|
|
202
|
+
} }
|
|
203
|
+
function MJCContractExecutedAgreementPanel_Conditional_13_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
204
|
+
i0.ɵɵelement(0, "mj-alert", 19);
|
|
205
|
+
} if (rf & 2) {
|
|
206
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
207
|
+
i0.ɵɵproperty("Message", ctx_r1.ActionError);
|
|
208
|
+
} }
|
|
209
|
+
function MJCContractExecutedAgreementPanel_Conditional_13_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
210
|
+
i0.ɵɵelement(0, "mj-alert", 20);
|
|
211
|
+
} if (rf & 2) {
|
|
212
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
213
|
+
i0.ɵɵproperty("Message", ctx_r1.ActionOk);
|
|
214
|
+
} }
|
|
215
|
+
function MJCContractExecutedAgreementPanel_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
216
|
+
i0.ɵɵconditionalCreate(0, MJCContractExecutedAgreementPanel_Conditional_13_Conditional_0_Template, 2, 0, "div", 6)(1, MJCContractExecutedAgreementPanel_Conditional_13_Conditional_1_Template, 1, 1, "mj-alert", 7);
|
|
217
|
+
i0.ɵɵconditionalCreate(2, MJCContractExecutedAgreementPanel_Conditional_13_Conditional_2_Template, 2, 1, "div", 6);
|
|
218
|
+
i0.ɵɵconditionalCreate(3, MJCContractExecutedAgreementPanel_Conditional_13_Conditional_3_Template, 1, 1, "mj-alert", 19);
|
|
219
|
+
i0.ɵɵconditionalCreate(4, MJCContractExecutedAgreementPanel_Conditional_13_Conditional_4_Template, 1, 1, "mj-alert", 20);
|
|
220
|
+
} if (rf & 2) {
|
|
221
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
222
|
+
i0.ɵɵconditional(!ctx_r1.CanUpdateFiles ? 0 : ctx_r1.CategoryMissing ? 1 : -1);
|
|
223
|
+
i0.ɵɵadvance(2);
|
|
224
|
+
i0.ɵɵconditional(ctx_r1.Unreadable ? 2 : -1);
|
|
225
|
+
i0.ɵɵadvance();
|
|
226
|
+
i0.ɵɵconditional(ctx_r1.ActionError ? 3 : -1);
|
|
227
|
+
i0.ɵɵadvance();
|
|
228
|
+
i0.ɵɵconditional(ctx_r1.ActionOk ? 4 : -1);
|
|
229
|
+
} }
|
|
230
|
+
/** The view's predicate, in TypeScript: `fc.Name = 'Executed Agreement'` under a case-insensitive collation. */
|
|
231
|
+
function isExecutedAgreementCategory(categoryName) {
|
|
232
|
+
return (categoryName ?? '').trim().toLowerCase() === EXECUTED_AGREEMENT_FILE_CATEGORY.toLowerCase();
|
|
233
|
+
}
|
|
234
|
+
let MJCContractExecutedAgreementPanel = class MJCContractExecutedAgreementPanel extends BaseFormPanel {
|
|
235
|
+
cdr = inject(ChangeDetectorRef);
|
|
236
|
+
/** The category's display name, for copy. */
|
|
237
|
+
CategoryName = EXECUTED_AGREEMENT_FILE_CATEGORY;
|
|
238
|
+
/** The `MJ: File Categories` row named {@link EXECUTED_AGREEMENT_FILE_CATEGORY}, resolved per load; null when absent. */
|
|
239
|
+
CategoryID = null;
|
|
240
|
+
/** True after a successful load that found no category row — a database the migration has not reached. */
|
|
241
|
+
CategoryMissing = false;
|
|
242
|
+
Loading = false;
|
|
243
|
+
/** True while a Mark/Unmark is in flight, so a button cannot be double-fired. */
|
|
244
|
+
Busy = false;
|
|
245
|
+
/** Why the list is empty, when the reason is a failed read rather than genuinely nothing. */
|
|
246
|
+
LoadError = '';
|
|
247
|
+
ActionError = '';
|
|
248
|
+
/** Confirmation, so a working mark is never indistinguishable from a silent no-op. */
|
|
249
|
+
ActionOk = '';
|
|
250
|
+
/** Links whose file row did not come back — most likely no read permission on MJ: Files. */
|
|
251
|
+
Unreadable = 0;
|
|
252
|
+
_files = [];
|
|
253
|
+
/**
|
|
254
|
+
* WHICH contract the list was loaded for, not merely whether it was (the #28 item 23 lesson): the
|
|
255
|
+
* form reuses this instance when it navigates to another contract, and a boolean would keep the
|
|
256
|
+
* previous contract's files on screen.
|
|
257
|
+
*/
|
|
258
|
+
loadedFor = null;
|
|
259
|
+
/** The linked files. Loaded on first read; no EditMode gate, because the panel is always shown. */
|
|
260
|
+
get Files() {
|
|
261
|
+
const id = this.Record?.ID;
|
|
262
|
+
if (id && this.loadedFor !== id) {
|
|
263
|
+
this.loadedFor = id;
|
|
264
|
+
void this.load();
|
|
265
|
+
}
|
|
266
|
+
return this._files;
|
|
267
|
+
}
|
|
268
|
+
/** Read-only while the form is editing or the contract has never been saved — the Re-papering rule. */
|
|
269
|
+
get ReadOnly() {
|
|
270
|
+
return this.EditMode || !this.Record?.IsSaved;
|
|
271
|
+
}
|
|
272
|
+
/** Whether the buttons render at all: writable, permitted, and a category row to point at. */
|
|
273
|
+
get CanMark() {
|
|
274
|
+
return !this.ReadOnly && this.CanUpdateFiles && !this.LoadError;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Whether this user may change a file's category — the `MJ: Files` entity's update permission, which
|
|
278
|
+
* is the platform's own allow/deny aggregation across the user's roles. FALSE on any doubt: a hidden
|
|
279
|
+
* button and a sentence saying why beat a button that fails.
|
|
280
|
+
*/
|
|
281
|
+
get CanUpdateFiles() {
|
|
282
|
+
const provider = this.provider;
|
|
283
|
+
const user = provider.CurrentUser;
|
|
284
|
+
if (!user)
|
|
285
|
+
return false;
|
|
286
|
+
const files = provider.EntityByName(MJC_FOREIGN_ENTITIES.File);
|
|
287
|
+
return files?.GetUserPermisions(user).CanUpdate === true;
|
|
288
|
+
}
|
|
289
|
+
IsExecutedAgreement(file) {
|
|
290
|
+
return isExecutedAgreementCategory(file.CategoryName);
|
|
291
|
+
}
|
|
292
|
+
/** The form's toolbar Refresh, or a refresh this panel triggered after a write: re-read the list. */
|
|
293
|
+
OnRecordRefreshed() {
|
|
294
|
+
void this.load();
|
|
295
|
+
}
|
|
296
|
+
/** The panel's own refresh button — the list only, since attaching a file does not change the record. */
|
|
297
|
+
async Refresh() {
|
|
298
|
+
this.ActionOk = '';
|
|
299
|
+
this.ActionError = '';
|
|
300
|
+
await this.load();
|
|
301
|
+
}
|
|
302
|
+
async Mark(file) {
|
|
303
|
+
if (!this.CategoryID)
|
|
304
|
+
return;
|
|
305
|
+
await this.setCategory(file, this.CategoryID, `Marked — ${file.Name} is the executed agreement.`);
|
|
306
|
+
}
|
|
307
|
+
async Unmark(file) {
|
|
308
|
+
await this.setCategory(file, null, `Unmarked — ${file.Name} is no longer the executed agreement.`);
|
|
309
|
+
}
|
|
310
|
+
/** The host form's provider, so this panel reads and writes wherever the record it is showing came from. */
|
|
311
|
+
get provider() {
|
|
312
|
+
return this.FormComponent?.ProviderToUse ?? Metadata.Provider;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Write the category on the FILE, then re-read the RECORD. `Save()` does not throw; it returns false
|
|
316
|
+
* and leaves the reason on `LatestResult`. On failure the in-memory entity is reverted so the row
|
|
317
|
+
* does not claim a category the database refused.
|
|
318
|
+
*/
|
|
319
|
+
async setCategory(file, categoryID, okMessage) {
|
|
320
|
+
this.Busy = true;
|
|
321
|
+
this.ActionError = '';
|
|
322
|
+
this.ActionOk = '';
|
|
323
|
+
try {
|
|
324
|
+
file.Entity.CategoryID = categoryID;
|
|
325
|
+
if (!(await file.Entity.Save())) {
|
|
326
|
+
file.Entity.Revert();
|
|
327
|
+
throw new Error(file.Entity.LatestResult?.CompleteMessage || 'The file could not be saved.');
|
|
328
|
+
}
|
|
329
|
+
this.ActionOk = okMessage;
|
|
330
|
+
await this.reReadRecord();
|
|
331
|
+
}
|
|
332
|
+
catch (e) {
|
|
333
|
+
this.ActionError = e instanceof Error ? e.message : String(e);
|
|
334
|
+
}
|
|
335
|
+
finally {
|
|
336
|
+
this.Busy = false;
|
|
337
|
+
this.cdr.detectChanges();
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* The header chip and the Overview read `IsAwaitingDocument` off the PERSISTED view column, so the
|
|
342
|
+
* record has to come back from the database. `RefreshRecord()` also notifies every panel through
|
|
343
|
+
* `OnRecordRefreshed`, which is how this list reloads; when it declines (editing, unsaved, or no
|
|
344
|
+
* form host) the list is reloaded directly so the row at least shows what was written.
|
|
345
|
+
*/
|
|
346
|
+
async reReadRecord() {
|
|
347
|
+
const refreshed = this.FormComponent ? await this.FormComponent.RefreshRecord() : false;
|
|
348
|
+
if (!refreshed)
|
|
349
|
+
await this.load();
|
|
350
|
+
}
|
|
351
|
+
/** Category row, then links, then the files they name — three reads, the last two skipped when nothing is linked. */
|
|
352
|
+
async load() {
|
|
353
|
+
if (!this.Record?.IsSaved)
|
|
354
|
+
return;
|
|
355
|
+
this.Loading = true;
|
|
356
|
+
try {
|
|
357
|
+
const rv = ScopedRunView(this.FormComponent?.ProviderToUse);
|
|
358
|
+
await this.resolveCategory(rv);
|
|
359
|
+
this._files = await this.loadLinkedFiles(rv);
|
|
360
|
+
// A later success clears an earlier failure, and clears it HERE rather than at the top of the
|
|
361
|
+
// try, so a reload does not blank the explanation while it is in flight.
|
|
362
|
+
this.LoadError = '';
|
|
363
|
+
}
|
|
364
|
+
catch (e) {
|
|
365
|
+
// Do NOT swallow this: an empty list and a failed read look identical on screen, and the
|
|
366
|
+
// difference is the whole diagnosis.
|
|
367
|
+
this._files = [];
|
|
368
|
+
this.LoadError = `Could not read the files linked to this contract: ${e instanceof Error ? e.message : String(e)}`;
|
|
369
|
+
this.loadedFor = null; // let the next read retry
|
|
370
|
+
}
|
|
371
|
+
finally {
|
|
372
|
+
this.Loading = false;
|
|
373
|
+
this.cdr.detectChanges();
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/** The category the view resolves on, looked up the way the view does it: by Name. */
|
|
377
|
+
async resolveCategory(rv) {
|
|
378
|
+
const r = await rv.RunView({
|
|
379
|
+
EntityName: MJC_FOREIGN_ENTITIES.FileCategory,
|
|
380
|
+
Fields: ['ID', 'Name'],
|
|
381
|
+
ExtraFilter: `Name = '${EscapeSQLString(EXECUTED_AGREEMENT_FILE_CATEGORY)}'`,
|
|
382
|
+
ResultType: 'simple',
|
|
383
|
+
});
|
|
384
|
+
if (!r?.Success)
|
|
385
|
+
throw new Error(r?.ErrorMessage || 'file categories could not be read');
|
|
386
|
+
this.CategoryID = r.Results[0]?.ID ?? null;
|
|
387
|
+
this.CategoryMissing = !this.CategoryID;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* The links for THIS record, then the files they name — through MJ's polymorphic
|
|
391
|
+
* `MJ: File Entity Record Links` (EntityID + RecordID), which is where the view looks too.
|
|
392
|
+
* `entity_object` on the files is load-bearing: Mark/Unmark save the very entity that was read.
|
|
393
|
+
*/
|
|
394
|
+
async loadLinkedFiles(rv) {
|
|
395
|
+
const entityID = this.Record.EntityInfo.ID;
|
|
396
|
+
const links = await rv.RunView({
|
|
397
|
+
EntityName: MJC_FOREIGN_ENTITIES.FileEntityRecordLink,
|
|
398
|
+
Fields: ['ID', 'FileID'],
|
|
399
|
+
ExtraFilter: `EntityID = '${EscapeSQLString(entityID)}' AND RecordID = '${EscapeSQLString(this.Record.ID)}'`,
|
|
400
|
+
ResultType: 'simple',
|
|
401
|
+
});
|
|
402
|
+
if (!links?.Success)
|
|
403
|
+
throw new Error(links?.ErrorMessage || 'file links could not be read');
|
|
404
|
+
this.Unreadable = 0;
|
|
405
|
+
if (!links.Results.length)
|
|
406
|
+
return [];
|
|
407
|
+
const ids = links.Results.map((l) => `'${EscapeSQLString(l.FileID)}'`).join(',');
|
|
408
|
+
const files = await rv.RunView({
|
|
409
|
+
EntityName: MJC_FOREIGN_ENTITIES.File,
|
|
410
|
+
ExtraFilter: `ID IN (${ids})`,
|
|
411
|
+
OrderBy: 'Name ASC',
|
|
412
|
+
ResultType: 'entity_object',
|
|
413
|
+
});
|
|
414
|
+
if (!files?.Success)
|
|
415
|
+
throw new Error(files?.ErrorMessage || 'file details could not be read');
|
|
416
|
+
this.Unreadable = Math.max(0, links.Results.length - files.Results.length);
|
|
417
|
+
return files.Results.map((f) => ({ FileID: f.ID, Name: f.Name, CategoryName: f.Category, Entity: f }));
|
|
418
|
+
}
|
|
419
|
+
static ɵfac = /*@__PURE__*/ (() => { let ɵMJCContractExecutedAgreementPanel_BaseFactory; return function MJCContractExecutedAgreementPanel_Factory(__ngFactoryType__) { return (ɵMJCContractExecutedAgreementPanel_BaseFactory || (ɵMJCContractExecutedAgreementPanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJCContractExecutedAgreementPanel)))(__ngFactoryType__ || MJCContractExecutedAgreementPanel); }; })();
|
|
420
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJCContractExecutedAgreementPanel, selectors: [["mjc-contract-executed-agreement-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 16, vars: 6, consts: [["SectionKey", "executedAgreement", "SectionName", "Executed agreement", "Icon", "fa-solid fa-file-circle-check", 3, "Form", "FormContext"], [1, "mj-forms-field"], [1, "mjc-exec-head"], [1, "mj-forms-field-label"], ["Variant", "flat", "Size", "sm", "Title", "Reload the linked files", 3, "ShowLabel", "Loading", "Disabled"], [1, "mj-forms-field-control"], [1, "mjc-hint"], ["Variant", "warning", "Size", "sm", 3, "Message"], [1, "mjc-grid"], [1, "mjc-chip", "mjc-chip--muted"], ["Variant", "flat", "Size", "sm", "Title", "Reload the linked files", 3, "Clicked", "ShowLabel", "Loading", "Disabled"], [1, "mj-forms-field-value"], [1, "mjc-chip", "mjc-chip--ok"], [1, "mjc-muted"], ["aria-hidden", "true", 1, "fa-solid", "fa-file-circle-check"], ["mjButton", "", "variant", "flat", "size", "sm", "type", "button", 3, "disabled"], ["mjButton", "", "variant", "primary", "size", "sm", "type", "button", 3, "disabled"], ["mjButton", "", "variant", "flat", "size", "sm", "type", "button", 3, "click", "disabled"], ["mjButton", "", "variant", "primary", "size", "sm", "type", "button", 3, "click", "disabled"], ["Variant", "error", "Size", "sm", 3, "Message"], ["Variant", "success", "Size", "sm", 3, "Message"]], template: function MJCContractExecutedAgreementPanel_Template(rf, ctx) { if (rf & 1) {
|
|
421
|
+
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "div", 1)(2, "div", 2)(3, "label", 3);
|
|
422
|
+
i0.ɵɵtext(4, "Executed agreement");
|
|
423
|
+
i0.ɵɵelementEnd();
|
|
424
|
+
i0.ɵɵconditionalCreate(5, MJCContractExecutedAgreementPanel_Conditional_5_Template, 1, 3, "mj-refresh-button", 4);
|
|
425
|
+
i0.ɵɵelementEnd();
|
|
426
|
+
i0.ɵɵelementStart(6, "div", 5);
|
|
427
|
+
i0.ɵɵdeclareLet(7);
|
|
428
|
+
i0.ɵɵconditionalCreate(8, MJCContractExecutedAgreementPanel_Conditional_8_Template, 2, 0, "div", 6)(9, MJCContractExecutedAgreementPanel_Conditional_9_Template, 1, 1, "mj-alert", 7)(10, MJCContractExecutedAgreementPanel_Conditional_10_Template, 3, 1)(11, MJCContractExecutedAgreementPanel_Conditional_11_Template, 11, 0, "table", 8);
|
|
429
|
+
i0.ɵɵconditionalCreate(12, MJCContractExecutedAgreementPanel_Conditional_12_Template, 2, 1, "span", 9)(13, MJCContractExecutedAgreementPanel_Conditional_13_Template, 5, 4);
|
|
430
|
+
i0.ɵɵelementStart(14, "div", 6);
|
|
431
|
+
i0.ɵɵtext(15, " \u201CAwaiting document\u201D clears when a linked file is marked as the executed agreement. Attaching, removing and opening files stays with the Attachments button on the toolbar. ");
|
|
432
|
+
i0.ɵɵelementEnd()()()();
|
|
433
|
+
} if (rf & 2) {
|
|
434
|
+
i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext);
|
|
435
|
+
i0.ɵɵadvance(5);
|
|
436
|
+
i0.ɵɵconditional(ctx.Record.IsSaved ? 5 : -1);
|
|
437
|
+
i0.ɵɵadvance(2);
|
|
438
|
+
const files_r7 = i0.ɵɵstoreLet(ctx.Files);
|
|
439
|
+
i0.ɵɵadvance();
|
|
440
|
+
i0.ɵɵconditional(ctx.Loading ? 8 : ctx.LoadError ? 9 : !files_r7.length ? 10 : 11);
|
|
441
|
+
i0.ɵɵadvance(4);
|
|
442
|
+
i0.ɵɵconditional(ctx.ReadOnly ? 12 : 13);
|
|
443
|
+
} }, dependencies: [CommonModule, BaseFormsModule, i1.MjCollapsiblePanelComponent, MJButtonDirective, MJAlertComponent, MJRefreshButtonComponent], styles: ["\n .mjc-exec-head { display: flex; align-items: center; justify-content: space-between; gap: var(--mj-space-2); }\n "], encapsulation: 2 });
|
|
444
|
+
};
|
|
445
|
+
MJCContractExecutedAgreementPanel = __decorate([
|
|
446
|
+
RegisterClassEx(BaseFormPanel, {
|
|
447
|
+
key: 'contracts:executed-agreement',
|
|
448
|
+
skipNullKeyWarning: true,
|
|
449
|
+
metadata: {
|
|
450
|
+
entity: MJC_ENTITIES.Contract,
|
|
451
|
+
// `after-fields` puts this in the FIELD-panel band, which the left-nav chrome collapses into the
|
|
452
|
+
// single "Details" rail item, next to Re-papering (sortKey 40; higher sorts earlier).
|
|
453
|
+
slot: 'after-fields',
|
|
454
|
+
sortKey: 45,
|
|
455
|
+
// MUST equal the panel's SectionKey — the container resolves chrome by this and builds rail
|
|
456
|
+
// groups from that (see metadata/entities/.entities.json).
|
|
457
|
+
contributionKey: 'executedAgreement',
|
|
458
|
+
},
|
|
459
|
+
})
|
|
460
|
+
], MJCContractExecutedAgreementPanel);
|
|
461
|
+
export { MJCContractExecutedAgreementPanel };
|
|
462
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJCContractExecutedAgreementPanel, [{
|
|
463
|
+
type: Component,
|
|
464
|
+
args: [{ selector: 'mjc-contract-executed-agreement-panel', standalone: true, encapsulation: ViewEncapsulation.None, imports: [CommonModule, BaseFormsModule, MJButtonDirective, MJAlertComponent, MJRefreshButtonComponent], template: `
|
|
465
|
+
<mj-collapsible-panel
|
|
466
|
+
SectionKey="executedAgreement"
|
|
467
|
+
SectionName="Executed agreement"
|
|
468
|
+
Icon="fa-solid fa-file-circle-check"
|
|
469
|
+
[Form]="FormComponent"
|
|
470
|
+
[FormContext]="FormContext">
|
|
471
|
+
|
|
472
|
+
<!-- Mirrors mj-form-field's markup so this reads as an ordinary form line. It cannot BE an
|
|
473
|
+
mj-form-field: the value it edits lives on MJ: Files, not on this record. -->
|
|
474
|
+
<div class="mj-forms-field">
|
|
475
|
+
<div class="mjc-exec-head">
|
|
476
|
+
<label class="mj-forms-field-label">Executed agreement</label>
|
|
477
|
+
<!-- Files attach through the toolbar's Attachments panel, which tells this panel nothing:
|
|
478
|
+
closing it refreshes only the toolbar count. Without this, a file attached a moment
|
|
479
|
+
ago is not listed until the record is reloaded. -->
|
|
480
|
+
@if (Record.IsSaved) {
|
|
481
|
+
<mj-refresh-button Variant="flat" Size="sm" [ShowLabel]="false"
|
|
482
|
+
Title="Reload the linked files"
|
|
483
|
+
[Loading]="Loading" [Disabled]="Busy"
|
|
484
|
+
(Clicked)="Refresh()" />
|
|
485
|
+
}
|
|
486
|
+
</div>
|
|
487
|
+
<div class="mj-forms-field-control">
|
|
488
|
+
@let files = Files;
|
|
489
|
+
|
|
490
|
+
@if (Loading) {
|
|
491
|
+
<div class="mjc-hint">Loading linked files…</div>
|
|
492
|
+
} @else if (LoadError) {
|
|
493
|
+
<mj-alert Variant="warning" Size="sm" [Message]="LoadError" />
|
|
494
|
+
} @else if (!files.length) {
|
|
495
|
+
<span class="mj-forms-field-value">—</span>
|
|
496
|
+
@if (Record.IsSaved) {
|
|
497
|
+
<div class="mjc-hint">
|
|
498
|
+
No files are linked to this contract. Attach the signed PDF with the Attachments
|
|
499
|
+
button on the toolbar, then mark it here.
|
|
500
|
+
</div>
|
|
501
|
+
}
|
|
502
|
+
} @else {
|
|
503
|
+
<table class="mjc-grid">
|
|
504
|
+
<thead>
|
|
505
|
+
<tr><th>File</th><th>Category</th><th></th></tr>
|
|
506
|
+
</thead>
|
|
507
|
+
<tbody>
|
|
508
|
+
@for (f of files; track f.FileID) {
|
|
509
|
+
<tr>
|
|
510
|
+
<td>{{ f.Name }}</td>
|
|
511
|
+
<td>
|
|
512
|
+
@if (IsExecutedAgreement(f)) {
|
|
513
|
+
<span class="mjc-chip mjc-chip--ok">
|
|
514
|
+
<i class="fa-solid fa-file-circle-check" aria-hidden="true"></i> Executed agreement
|
|
515
|
+
</span>
|
|
516
|
+
} @else if (f.CategoryName) {
|
|
517
|
+
<span class="mjc-chip mjc-chip--muted">{{ f.CategoryName }}</span>
|
|
518
|
+
} @else {
|
|
519
|
+
<span class="mjc-muted">—</span>
|
|
520
|
+
}
|
|
521
|
+
</td>
|
|
522
|
+
<td>
|
|
523
|
+
@if (CanMark) {
|
|
524
|
+
@if (IsExecutedAgreement(f)) {
|
|
525
|
+
<button mjButton variant="flat" size="sm" type="button" [disabled]="Busy"
|
|
526
|
+
(click)="Unmark(f)"
|
|
527
|
+
[attr.aria-label]="'Unmark ' + f.Name + ' as the executed agreement'">
|
|
528
|
+
Unmark
|
|
529
|
+
</button>
|
|
530
|
+
} @else {
|
|
531
|
+
<button mjButton variant="primary" size="sm" type="button"
|
|
532
|
+
[disabled]="Busy || !CategoryID"
|
|
533
|
+
(click)="Mark(f)"
|
|
534
|
+
[attr.aria-label]="'Mark ' + f.Name + ' as the executed agreement'">
|
|
535
|
+
Mark as executed agreement
|
|
536
|
+
</button>
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
</td>
|
|
540
|
+
</tr>
|
|
541
|
+
}
|
|
542
|
+
</tbody>
|
|
543
|
+
</table>
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
<!-- The Re-papering rule: read-only while editing or unsaved, with the same two chips. -->
|
|
547
|
+
@if (ReadOnly) {
|
|
548
|
+
<span class="mjc-chip mjc-chip--muted">
|
|
549
|
+
{{ Record.IsSaved ? 'Finish editing to change' : 'Save this contract first' }}
|
|
550
|
+
</span>
|
|
551
|
+
} @else {
|
|
552
|
+
@if (!CanUpdateFiles) {
|
|
553
|
+
<div class="mjc-hint">
|
|
554
|
+
Marking a file changes its category on MJ: Files, which your roles cannot update.
|
|
555
|
+
Ask an administrator to grant update permission on MJ: Files.
|
|
556
|
+
</div>
|
|
557
|
+
} @else if (CategoryMissing) {
|
|
558
|
+
<mj-alert Variant="warning" Size="sm"
|
|
559
|
+
[Message]="'The file category named ' + CategoryName + ' does not exist on this database, so nothing can be marked. The contracts migration V202609010100 seeds it.'" />
|
|
560
|
+
}
|
|
561
|
+
@if (Unreadable) {
|
|
562
|
+
<div class="mjc-hint">
|
|
563
|
+
{{ Unreadable }} linked file(s) could not be read and are not listed — reading MJ: Files needs
|
|
564
|
+
read permission on that entity.
|
|
565
|
+
</div>
|
|
566
|
+
}
|
|
567
|
+
@if (ActionError) { <mj-alert Variant="error" Size="sm" [Message]="ActionError" /> }
|
|
568
|
+
@if (ActionOk) { <mj-alert Variant="success" Size="sm" [Message]="ActionOk" /> }
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
<div class="mjc-hint">
|
|
572
|
+
“Awaiting document” clears when a linked file is marked as the executed agreement. Attaching,
|
|
573
|
+
removing and opening files stays with the Attachments button on the toolbar.
|
|
574
|
+
</div>
|
|
575
|
+
</div>
|
|
576
|
+
</div>
|
|
577
|
+
</mj-collapsible-panel>
|
|
578
|
+
`, styles: ["\n .mjc-exec-head { display: flex; align-items: center; justify-content: space-between; gap: var(--mj-space-2); }\n "] }]
|
|
579
|
+
}], null, null); })();
|
|
580
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJCContractExecutedAgreementPanel, { className: "MJCContractExecutedAgreementPanel", filePath: "lib/form-panels/executed-agreement.panel.ts", lineNumber: 194 }); })();
|
|
581
|
+
//# sourceMappingURL=executed-agreement.panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executed-agreement.panel.js","sourceRoot":"","sources":["../../../src/lib/form-panels/executed-agreement.panel.ts"],"names":[],"mappings":"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"}
|
package/dist/public-api.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export * from './lib/sections/section-nav.model';
|
|
|
33
33
|
export * from './lib/data/entity-names';
|
|
34
34
|
export { MJCContractHeroPanel, MJCContractDatesPanel, MJCContractRenewalPanel, MJCContractLineagePanel, } from './lib/form-panels/contract.panels';
|
|
35
35
|
export { MJCContractSupersedePanel } from './lib/form-panels/supersede.panel';
|
|
36
|
+
export { MJCContractExecutedAgreementPanel } from './lib/form-panels/executed-agreement.panel';
|
|
36
37
|
export { ContractFormPolicy } from './lib/form-panels/contract-form.policy';
|
|
37
38
|
export { MJCContractOverviewPanel, MJCContractAgreementPanel, MJCContractPartiesPanel, MJCContractNotesPanel, MJCContractProvenanceFieldsPanel, MJCContractLifecyclePanel, MJCContractModificationsPanel, } from './lib/form-panels/contract-form.panels';
|
|
38
39
|
export { MJCOrganizationAgreementsPanel } from './lib/form-panels/organization.panels';
|
package/dist/public-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,iCAAiC,CAAC;AACzC,OAAO,wCAAwC,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,+FAA+F,CAAC;AACxJ,OAAO,EAAE,+CAA+C,EAAE,MAAM,+GAA+G,CAAC;AAChL,OAAO,EAAE,2DAA2D,EAAE,MAAM,uIAAuI,CAAC;AACpN,OAAO,EAAE,wDAAwD,EAAE,MAAM,iIAAiI,CAAC;AAC3M,OAAO,EAAE,mDAAmD,EAAE,MAAM,uHAAuH,CAAC;AAC5L,OAAO,EAAE,2CAA2C,EAAE,MAAM,uGAAuG,CAAC;AAapK,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,GACxC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,iCAAiC,CAAC;AACzC,OAAO,wCAAwC,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,+FAA+F,CAAC;AACxJ,OAAO,EAAE,+CAA+C,EAAE,MAAM,+GAA+G,CAAC;AAChL,OAAO,EAAE,2DAA2D,EAAE,MAAM,uIAAuI,CAAC;AACpN,OAAO,EAAE,wDAAwD,EAAE,MAAM,iIAAiI,CAAC;AAC3M,OAAO,EAAE,mDAAmD,EAAE,MAAM,uHAAuH,CAAC;AAC5L,OAAO,EAAE,2CAA2C,EAAE,MAAM,uGAAuG,CAAC;AAapK,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,GACxC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AA4BxC,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,gCAAgC,EAChC,yBAAyB,EACzB,6BAA6B,GAChC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAuB3E,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,iCAAiC,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC9G,OAAO,EACH,6BAA6B,EAC7B,6BAA6B,GAChC,MAAM,gCAAgC,CAAC;AAExC,wBAAgB,4BAA4B,IAAI,IAAI,CA6BnD"}
|
package/dist/public-api.js
CHANGED
|
@@ -51,12 +51,14 @@ export * from './lib/data/entity-names';
|
|
|
51
51
|
* ========================================================================== */
|
|
52
52
|
import { MJCContractDatesPanel, MJCContractHeroPanel, MJCContractLineagePanel, MJCContractRenewalPanel, } from './lib/form-panels/contract.panels';
|
|
53
53
|
import { MJCContractSupersedePanel } from './lib/form-panels/supersede.panel';
|
|
54
|
+
import { MJCContractExecutedAgreementPanel } from './lib/form-panels/executed-agreement.panel';
|
|
54
55
|
import { ContractFormPolicy } from './lib/form-panels/contract-form.policy';
|
|
55
56
|
import { MJCContractAgreementPanel, MJCContractLifecyclePanel, MJCContractModificationsPanel, MJCContractNotesPanel, MJCContractOverviewPanel, MJCContractPartiesPanel, MJCContractProvenanceFieldsPanel, } from './lib/form-panels/contract-form.panels';
|
|
56
57
|
import { MJCOrganizationAgreementsPanel } from './lib/form-panels/organization.panels';
|
|
57
58
|
import { MJCPersonAgreementsPanel } from './lib/form-panels/person.panels';
|
|
58
59
|
export { MJCContractHeroPanel, MJCContractDatesPanel, MJCContractRenewalPanel, MJCContractLineagePanel, } from './lib/form-panels/contract.panels';
|
|
59
60
|
export { MJCContractSupersedePanel } from './lib/form-panels/supersede.panel';
|
|
61
|
+
export { MJCContractExecutedAgreementPanel } from './lib/form-panels/executed-agreement.panel';
|
|
60
62
|
export { ContractFormPolicy } from './lib/form-panels/contract-form.policy';
|
|
61
63
|
export { MJCContractOverviewPanel, MJCContractAgreementPanel, MJCContractPartiesPanel, MJCContractNotesPanel, MJCContractProvenanceFieldsPanel, MJCContractLifecyclePanel, MJCContractModificationsPanel, } from './lib/form-panels/contract-form.panels';
|
|
62
64
|
export { MJCOrganizationAgreementsPanel } from './lib/form-panels/organization.panels';
|
|
@@ -110,6 +112,7 @@ export function LoadMjBizappsContractsClient() {
|
|
|
110
112
|
void MJCContractRenewalPanel;
|
|
111
113
|
void MJCContractLineagePanel;
|
|
112
114
|
void MJCContractSupersedePanel;
|
|
115
|
+
void MJCContractExecutedAgreementPanel;
|
|
113
116
|
void MJCOrganizationAgreementsPanel;
|
|
114
117
|
void MJCPersonAgreementsPanel;
|
|
115
118
|
}
|
package/dist/public-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mjdevManaged": "MJDEV-MANAGED: mjdev owns parts of this file — the \"packages/dev-apps/*\" workspaces glob, any dev-linked open-app dependencies (e.g. \"@mj-biz-apps/*\"), and the Angular \"overrides\" pin set. Do not hand-edit those; the tool wires and reverts them. They are left visible in git status, but the git-tree guard blocks committing them. See .mjdev-docs/MANAGED-FILES.md; revert with `mjdev git:stage-clean <slug> package.json`.",
|
|
3
3
|
"name": "@mj-biz-apps/contracts-ng",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Client bootstrap package - Angular components loaded by MJExplorer via the generated open-app bootstrap import. TODO(template): rename.",
|
|
7
7
|
"main": "dist/public-api.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "BUSL-1.1",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@mj-biz-apps/contracts-entities": "^0.4.
|
|
15
|
+
"@mj-biz-apps/contracts-entities": "^0.4.1"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"@angular/common": ">=21.0.0 <22.0.0",
|