@mj-biz-apps/contracts-ng 0.4.0 → 0.4.2
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 +17 -0
- package/dist/lib/data/entity-names.d.ts.map +1 -1
- package/dist/lib/data/entity-names.js +17 -0
- package/dist/lib/data/entity-names.js.map +1 -1
- package/dist/lib/form-panels/contract-form.panels.d.ts +140 -22
- package/dist/lib/form-panels/contract-form.panels.d.ts.map +1 -1
- package/dist/lib/form-panels/contract-form.panels.js +391 -36
- package/dist/lib/form-panels/contract-form.panels.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,22 @@ 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";
|
|
32
|
+
/**
|
|
33
|
+
* bizapps-SALES, and read SOFTLY — no manifest dependency, deliberately (golive #219).
|
|
34
|
+
*
|
|
35
|
+
* Sales depends on THIS app: its Close-Won seam is what creates contracts. That is precisely why
|
|
36
|
+
* a contract's provenance is the polymorphic `CreatingEntityID` / `CreatingRecordID` pair rather
|
|
37
|
+
* than a `DealID` column — a hard reference upward would invert the dependency graph, and the
|
|
38
|
+
* Contract entity's own description says so in as many words.
|
|
39
|
+
*
|
|
40
|
+
* So this is a NAME resolved from provider metadata at runtime and nothing more. No import, no
|
|
41
|
+
* entry in `mj-app.json`. An installation without sales finds no such entity, and the Source-record
|
|
42
|
+
* picker does not render — a supported state, not a failure.
|
|
43
|
+
*/
|
|
44
|
+
readonly Deal: "MJ_BizApps_Sales: Deals";
|
|
28
45
|
};
|
|
29
46
|
//# 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;;;;IAI5G;;;;;;;;;;;OAWG;;CAEG,CAAC"}
|
|
@@ -25,5 +25,22 @@ 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',
|
|
32
|
+
/**
|
|
33
|
+
* bizapps-SALES, and read SOFTLY — no manifest dependency, deliberately (golive #219).
|
|
34
|
+
*
|
|
35
|
+
* Sales depends on THIS app: its Close-Won seam is what creates contracts. That is precisely why
|
|
36
|
+
* a contract's provenance is the polymorphic `CreatingEntityID` / `CreatingRecordID` pair rather
|
|
37
|
+
* than a `DealID` column — a hard reference upward would invert the dependency graph, and the
|
|
38
|
+
* Contract entity's own description says so in as many words.
|
|
39
|
+
*
|
|
40
|
+
* So this is a NAME resolved from provider metadata at runtime and nothing more. No import, no
|
|
41
|
+
* entry in `mj-app.json`. An installation without sales finds no such entity, and the Source-record
|
|
42
|
+
* picker does not render — a supported state, not a failure.
|
|
43
|
+
*/
|
|
44
|
+
Deal: 'MJ_BizApps_Sales: Deals',
|
|
28
45
|
};
|
|
29
46
|
//# 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;IACpD;;;;;;;;;;;OAWG;IACH,IAAI,EAAE,yBAAyB;CACzB,CAAC"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { BaseFormPanel } from '@memberjunction/ng-base-forms';
|
|
2
2
|
import type { AfterDataLoadEventArgs } from '@memberjunction/ng-entity-viewer';
|
|
3
|
-
import { ContractEntity, type ContractState } from '@mj-biz-apps/contracts-entities';
|
|
3
|
+
import { ContractEntity, type ContractState, type DealOption } from '@mj-biz-apps/contracts-entities';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* A deal option with its rendered label attached (golive #219).
|
|
7
|
+
*
|
|
8
|
+
* The label is computed ONCE per row, on load, rather than from a template call: `mj-combobox` reads
|
|
9
|
+
* `TextField` on every change-detection pass and for every option, so a function there re-renders the
|
|
10
|
+
* whole list on each keystroke.
|
|
11
|
+
*/
|
|
12
|
+
interface DealChoice extends DealOption {
|
|
13
|
+
Label: string;
|
|
14
|
+
}
|
|
5
15
|
type ContractFieldType = 'textbox' | 'textarea' | 'number' | 'datepicker' | 'checkbox' | 'select' | 'autocomplete' | 'code' | 'dropdownlist' | 'numerictextbox';
|
|
6
16
|
interface ContractFieldSpec {
|
|
7
17
|
name: string;
|
|
@@ -69,30 +79,138 @@ export declare class MJCContractNotesPanel extends BaseFormPanel<ContractEntity>
|
|
|
69
79
|
static ɵcmp: i0.ɵɵComponentDeclaration<MJCContractNotesPanel, "mjc-contract-notes-panel", never, {}, {}, never, never, true, never>;
|
|
70
80
|
}
|
|
71
81
|
export declare class MJCContractProvenanceFieldsPanel extends BaseFormPanel<ContractEntity> {
|
|
82
|
+
private readonly cdr;
|
|
72
83
|
/**
|
|
73
|
-
* READ-ONLY
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* `CreatingEntityID`
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
84
|
+
* THE RAW IDS STAY, AND STAY READ-ONLY. The lookup above is what WRITES them (golive #219).
|
|
85
|
+
*
|
|
86
|
+
* ── WHY THEY WERE READ-ONLY, WHICH HAS NOT CHANGED ────────────────────────────────────────
|
|
87
|
+
*
|
|
88
|
+
* `CreatingEntityID` is a real FK to `__mj.Entity` and `CreatingRecordID` is the row it names, under
|
|
89
|
+
* `CK_Contract_CreatingPairBothOrNeither` — both or neither. Rendered as two ordinary inputs
|
|
90
|
+
* (contracts#28 item 18) they produced exactly the two failures the shape invites: editing one
|
|
91
|
+
* alone is a save the constraint refuses, and editing both silently re-points a contract's
|
|
92
|
+
* provenance at an unrelated record. `CTR-000026` still carries the evidence — a hand-typed pair
|
|
93
|
+
* naming `MJ: Explorer Navigation Items` with a record id that is not a UUID.
|
|
94
|
+
*
|
|
95
|
+
* ── WHAT #219 ADDS, AND WHY IT IS NOT A REVERSAL ──────────────────────────────────────────
|
|
96
|
+
*
|
|
97
|
+
* Story C-US1 says finance may attach a MANUALLY created contract to an existing deal. Item 18's
|
|
98
|
+
* read-only made that impossible: the Close Won seam became not just the preferred writer but the
|
|
99
|
+
* only one, and a contract typed in by hand could never show its deal. The answer is not to reopen
|
|
100
|
+
* the fields — it is to write them through a control that cannot produce a half pair. The lookup
|
|
101
|
+
* sets both halves from one chosen deal and clears both together; these two remain what they became
|
|
102
|
+
* in item 18, a read-only audit of what the pair actually holds, sitting under a human-readable name.
|
|
103
|
+
*
|
|
104
|
+
* The SECTION is likewise kept rather than hidden (item 18 asked for it gone, on the premise that
|
|
105
|
+
* the hero's Source Deal stat replaces it). With #219 that premise becomes true for deals — but the
|
|
106
|
+
* pair is polymorphic and the stat renders only what it can resolve, so the ids stay as the one
|
|
107
|
+
* place a reader can see the provenance verbatim, which is item 3 of #219.
|
|
94
108
|
*/
|
|
95
109
|
readonly Fields: ContractFieldSpec[];
|
|
110
|
+
/** Options for the picker. Never read directly — go through the `Deals` getter, which loads. */
|
|
111
|
+
private _deals;
|
|
112
|
+
/** Bound to the combobox. Mirrors `CreatingRecordID`, and is '' whenever the source is not a deal. */
|
|
113
|
+
PickedDealID: string;
|
|
114
|
+
Loading: boolean;
|
|
115
|
+
/** Why the list is empty, when the reason is a failure rather than genuinely nothing. */
|
|
116
|
+
LoadError: string;
|
|
117
|
+
/** The pair names a record of some OTHER entity — surfaced rather than silently shown as blank. */
|
|
118
|
+
ForeignSource: boolean;
|
|
119
|
+
/** This contract arrived with provenance already recorded, so re-pointing takes a second click. */
|
|
120
|
+
Locked: boolean;
|
|
121
|
+
/** Label of the deal currently linked, for the locked line. */
|
|
122
|
+
SelectedLabel: string;
|
|
123
|
+
/**
|
|
124
|
+
* Which contract the picker was loaded for — not merely whether it was.
|
|
125
|
+
*
|
|
126
|
+
* The form reuses one component instance as it navigates, so a boolean leaves the PREVIOUS
|
|
127
|
+
* contract's candidates in the dropdown: a list scoped to the previous customer, which is a wrong
|
|
128
|
+
* list rather than a stale one. Same defect, same fix, as the Supersedes picker (contracts#28
|
|
129
|
+
* item 23).
|
|
130
|
+
*/
|
|
131
|
+
private loadedFor;
|
|
132
|
+
private searchTimer;
|
|
133
|
+
/**
|
|
134
|
+
* Is there a Deals entity this user can see?
|
|
135
|
+
*
|
|
136
|
+
* Resolved from METADATA BY NAME, never imported: sales depends on contracts, so this app may not
|
|
137
|
+
* depend on sales (see `MJC_FOREIGN_ENTITIES.Deal`). A host without sales installed, or a user
|
|
138
|
+
* without read permission, simply gets no picker — the read-only ids and the hint below say so
|
|
139
|
+
* rather than rendering a control that can find nothing.
|
|
140
|
+
*/
|
|
141
|
+
get DealLookupAvailable(): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Whether to render the lookup — AND the panel's single load trigger.
|
|
144
|
+
*
|
|
145
|
+
* `BaseFormPanel` has no lifecycle hook and the slot host sets `Record` before view init, so the
|
|
146
|
+
* first template read is the earliest reliable moment to do per-record work. This is the FIRST
|
|
147
|
+
* thing the template reads, which is the whole reason the trigger lives here rather than on
|
|
148
|
+
* `Deals`: the options are read inside the unlocked branch only, so a contract that arrives with
|
|
149
|
+
* provenance would never read them, `syncFromRecord()` would never run, and `Locked` would never
|
|
150
|
+
* become true — the guard silently absent on exactly the records it exists to protect.
|
|
151
|
+
*
|
|
152
|
+
* Keyed on the record so navigating the form to another contract re-syncs and reloads.
|
|
153
|
+
*/
|
|
154
|
+
get ShowLookup(): boolean;
|
|
155
|
+
/** The candidate deals. Loaded by {@link ShowLookup}; this is a plain read. */
|
|
156
|
+
get Deals(): DealChoice[];
|
|
157
|
+
/**
|
|
158
|
+
* What the locked line says about the existing link.
|
|
159
|
+
*
|
|
160
|
+
* Deliberately does NOT claim the Close Won automation set it: nothing on the row records who
|
|
161
|
+
* did, and a contract linked by hand, saved and reopened arrives locked the same way. The panel
|
|
162
|
+
* says what it can actually see — the deal's name when the list has it, that the source is not a
|
|
163
|
+
* deal when the entity half says so, and otherwise nothing more than that something is linked.
|
|
164
|
+
* The raw ids sit directly below either way.
|
|
165
|
+
*/
|
|
166
|
+
get LockedSummary(): string;
|
|
167
|
+
/** Release the re-point guard. Deliberate, and only ever by a click. */
|
|
168
|
+
Unlock(): void;
|
|
169
|
+
/**
|
|
170
|
+
* Take a chosen deal — and write BOTH halves of the pair, always.
|
|
171
|
+
*
|
|
172
|
+
* This is the whole reason the control exists. There is no path here that sets one column: a
|
|
173
|
+
* chosen deal writes the Deals entity id together with the deal's own id, and an empty selection
|
|
174
|
+
* goes through {@link ClearSource}, which empties both. The database's both-or-neither constraint
|
|
175
|
+
* (and the validator CodeGen derives from it) can therefore never be the thing that reports a
|
|
176
|
+
* mistake this form allowed a person to make.
|
|
177
|
+
*/
|
|
178
|
+
PickDeal(dealID: string | null | undefined): void;
|
|
179
|
+
/** Empty BOTH halves. The constraint's other legal state, and #219's third acceptance criterion. */
|
|
180
|
+
ClearSource(): void;
|
|
181
|
+
/**
|
|
182
|
+
* Re-query as the user types, debounced.
|
|
183
|
+
*
|
|
184
|
+
* SERVER-SIDE, with the combobox's own `Filterable` off. Client filtering would need every deal in
|
|
185
|
+
* the database loaded to be correct, and it filters on the option LABEL — so a search that matched
|
|
186
|
+
* a customer whose name the label abbreviates would hide rows the server just returned. One
|
|
187
|
+
* authority for what matches, and it is the query.
|
|
188
|
+
*/
|
|
189
|
+
Search(text: string): void;
|
|
190
|
+
/** The Deals entity's id, or null when this installation has no such entity. */
|
|
191
|
+
private dealEntityID;
|
|
192
|
+
/**
|
|
193
|
+
* Read the record's pair into the control's own state.
|
|
194
|
+
*
|
|
195
|
+
* The pair is POLYMORPHIC, so "there is a `CreatingRecordID`" does not mean "a deal is selected".
|
|
196
|
+
* Pre-selecting on the record id alone would show an unrelated record's id as the chosen deal; the
|
|
197
|
+
* entity half has to agree first, and when it does not, `ForeignSource` says so out loud.
|
|
198
|
+
*
|
|
199
|
+
* `Locked` is captured HERE — from what the record ARRIVED with — and never recomputed live. A
|
|
200
|
+
* live "already set, so lock it" would re-lock the instant a user picked a deal, which is the
|
|
201
|
+
* guard eating the very edit it was there to confirm.
|
|
202
|
+
*/
|
|
203
|
+
private syncFromRecord;
|
|
204
|
+
/**
|
|
205
|
+
* Load the options.
|
|
206
|
+
*
|
|
207
|
+
* With nothing typed this is the contract's customer's deals — #219 item 2's "prefer deals for the
|
|
208
|
+
* contract's customer organization" — ORed with the deal already linked, so a contract pointed at
|
|
209
|
+
* a deal outside its customer still shows what it is pointed AT rather than a blank box. Typing
|
|
210
|
+
* widens the search to every deal by name, number or customer. The clauses themselves live in
|
|
211
|
+
* `@mj-biz-apps/contracts-entities`, where they can be unit-tested without Angular.
|
|
212
|
+
*/
|
|
213
|
+
private load;
|
|
96
214
|
static ɵfac: i0.ɵɵFactoryDeclaration<MJCContractProvenanceFieldsPanel, never>;
|
|
97
215
|
static ɵcmp: i0.ɵɵComponentDeclaration<MJCContractProvenanceFieldsPanel, "mjc-contract-provenance-panel", never, {}, {}, never, never, true, never>;
|
|
98
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-form.panels.d.ts","sourceRoot":"","sources":["../../../src/lib/form-panels/contract-form.panels.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract-form.panels.d.ts","sourceRoot":"","sources":["../../../src/lib/form-panels/contract-form.panels.ts"],"names":[],"mappings":"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"}
|