@mj-biz-apps/contracts-ng 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/lib/form-panels/contract-form.panels.d.ts +111 -0
  2. package/dist/lib/form-panels/contract-form.panels.d.ts.map +1 -0
  3. package/dist/lib/form-panels/contract-form.panels.js +1002 -0
  4. package/dist/lib/form-panels/contract-form.panels.js.map +1 -0
  5. package/dist/lib/form-panels/contract-form.policy.d.ts +5 -0
  6. package/dist/lib/form-panels/contract-form.policy.d.ts.map +1 -0
  7. package/dist/lib/form-panels/contract-form.policy.js +33 -0
  8. package/dist/lib/form-panels/contract-form.policy.js.map +1 -0
  9. package/dist/lib/form-panels/contract.panels.d.ts +55 -3
  10. package/dist/lib/form-panels/contract.panels.d.ts.map +1 -1
  11. package/dist/lib/form-panels/contract.panels.js +619 -362
  12. package/dist/lib/form-panels/contract.panels.js.map +1 -1
  13. package/dist/lib/form-panels/organization.panels.d.ts +4 -13
  14. package/dist/lib/form-panels/organization.panels.d.ts.map +1 -1
  15. package/dist/lib/form-panels/organization.panels.js +54 -62
  16. package/dist/lib/form-panels/organization.panels.js.map +1 -1
  17. package/dist/lib/form-panels/person.panels.d.ts +14 -0
  18. package/dist/lib/form-panels/person.panels.d.ts.map +1 -0
  19. package/dist/lib/form-panels/person.panels.js +108 -0
  20. package/dist/lib/form-panels/person.panels.js.map +1 -0
  21. package/dist/lib/form-panels/supersede.panel.d.ts +29 -3
  22. package/dist/lib/form-panels/supersede.panel.d.ts.map +1 -1
  23. package/dist/lib/form-panels/supersede.panel.js +81 -23
  24. package/dist/lib/form-panels/supersede.panel.js.map +1 -1
  25. package/dist/lib/pages/contracts-dashboard.page.d.ts +37 -17
  26. package/dist/lib/pages/contracts-dashboard.page.d.ts.map +1 -1
  27. package/dist/lib/pages/contracts-dashboard.page.js +365 -63
  28. package/dist/lib/pages/contracts-dashboard.page.js.map +1 -1
  29. package/dist/lib/sections/section-shell.component.js +2 -2
  30. package/dist/public-api.d.ts +3 -1
  31. package/dist/public-api.d.ts.map +1 -1
  32. package/dist/public-api.js +15 -4
  33. package/dist/public-api.js.map +1 -1
  34. package/package.json +2 -3
  35. package/dist/lib/form-panels/record-files.panel.d.ts +0 -151
  36. package/dist/lib/form-panels/record-files.panel.d.ts.map +0 -1
  37. package/dist/lib/form-panels/record-files.panel.js +0 -1046
  38. package/dist/lib/form-panels/record-files.panel.js.map +0 -1
@@ -32,6 +32,7 @@ import { FormsModule } from '@angular/forms';
32
32
  import { RegisterClassEx } from '@memberjunction/global';
33
33
  import { BaseFormPanel, BaseFormsModule } from '@memberjunction/ng-base-forms';
34
34
  import { MJComboboxComponent, MJButtonDirective, MJAlertComponent } from '@memberjunction/ng-ui-components';
35
+ import { ContractOptionLabel, SameCustomerClause } from '@mj-biz-apps/contracts-entities';
35
36
  import { MJC_ENTITIES } from '../data/entity-names';
36
37
  import * as i0 from "@angular/core";
37
38
  import * as i1 from "@angular/forms";
@@ -65,7 +66,7 @@ function MJCContractSupersedePanel_Conditional_5_Template(rf, ctx) { if (rf & 1)
65
66
  i0.ɵɵadvance();
66
67
  i0.ɵɵconditional(ctx_r3.Supersedes.length ? 1 : 2);
67
68
  i0.ɵɵadvance(3);
68
- i0.ɵɵtextInterpolate1(" ", (ctx_r3.Record == null ? null : ctx_r3.Record.IsSaved) ? "finish editing to change this" : "save this contract first", " ");
69
+ i0.ɵɵtextInterpolate1(" ", (ctx_r3.Record == null ? null : ctx_r3.Record.IsSaved) ? "Finish editing to change" : "Save this contract first", " ");
69
70
  } }
70
71
  function MJCContractSupersedePanel_Conditional_6_For_4_Template(rf, ctx) { if (rf & 1) {
71
72
  const _r6 = i0.ɵɵgetCurrentView();
@@ -107,7 +108,7 @@ function MJCContractSupersedePanel_Conditional_6_Conditional_10_Template(rf, ctx
107
108
  function MJCContractSupersedePanel_Conditional_6_Template(rf, ctx) { if (rf & 1) {
108
109
  const _r5 = i0.ɵɵgetCurrentView();
109
110
  i0.ɵɵelementStart(0, "mj-combobox", 6);
110
- i0.ɵɵtwoWayListener("ngModelChange", function MJCContractSupersedePanel_Conditional_6_Template_mj_combobox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r3.PickedPredecessorID, $event) || (ctx_r3.PickedPredecessorID = $event); return i0.ɵɵresetView($event); });
111
+ i0.ɵɵlistener("ngModelChange", function MJCContractSupersedePanel_Conditional_6_Template_mj_combobox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.PickPredecessor($event)); });
111
112
  i0.ɵɵelementEnd();
112
113
  i0.ɵɵelementStart(1, "button", 7);
113
114
  i0.ɵɵlistener("click", function MJCContractSupersedePanel_Conditional_6_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.LinkSupersedes()); });
@@ -123,8 +124,7 @@ function MJCContractSupersedePanel_Conditional_6_Template(rf, ctx) { if (rf & 1)
123
124
  i0.ɵɵconditionalCreate(10, MJCContractSupersedePanel_Conditional_6_Conditional_10_Template, 2, 0, "div", 9);
124
125
  } if (rf & 2) {
125
126
  const ctx_r3 = i0.ɵɵnextContext();
126
- i0.ɵɵproperty("Data", ctx_r3.Candidates)("ValuePrimitive", true)("Filterable", true)("Disabled", ctx_r3.Busy);
127
- i0.ɵɵtwoWayProperty("ngModel", ctx_r3.PickedPredecessorID);
127
+ i0.ɵɵproperty("Data", ctx_r3.Candidates)("ValuePrimitive", true)("Filterable", true)("Disabled", ctx_r3.Busy)("ngModel", ctx_r3.PickedPredecessorID);
128
128
  i0.ɵɵadvance();
129
129
  i0.ɵɵproperty("disabled", ctx_r3.Busy || !ctx_r3.PickedPredecessorID);
130
130
  i0.ɵɵadvance();
@@ -154,15 +154,37 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
154
154
  LoadError = '';
155
155
  Supersedes = [];
156
156
  _candidates = [];
157
- loaded = false;
157
+ /**
158
+ * WHICH contract the candidate list was loaded for, not merely whether it was (issue #28 item 23).
159
+ *
160
+ * A boolean belongs to the panel, and the panel outlives the record: the form reuses the same
161
+ * component instance when it navigates to another contract, so the flag stayed true and the picker
162
+ * went on offering the PREVIOUS contract's candidates — filtered to the previous customer and the
163
+ * previous level, which is a WRONG list rather than a stale one.
164
+ */
165
+ loadedFor = null;
158
166
  /** Eligible predecessors. Loaded on first read; no EditMode gate, because the panel is always shown. */
159
167
  get Candidates() {
160
- if (!this.loaded && this.Record?.ID) {
161
- this.loaded = true;
168
+ const id = this.Record?.ID;
169
+ if (id && this.loadedFor !== id) {
170
+ this.loadedFor = id;
162
171
  void this.load();
163
172
  }
164
173
  return this._candidates;
165
174
  }
175
+ /**
176
+ * Take a new selection, and drop the outcome of the last one (issue #28 item 23).
177
+ *
178
+ * A `[(ngModel)]` two-way binding was enough to hold the value and is not enough here: the success
179
+ * and error banners sat until the next click, so "Linked — that contract is now superseded by this
180
+ * agreement." stayed on screen while the user picked a DIFFERENT contract, appearing to describe
181
+ * the new selection. A stale success is worse than no message; it reports an action nobody took.
182
+ */
183
+ PickPredecessor(id) {
184
+ this.PickedPredecessorID = id ?? '';
185
+ this.LinkOk = '';
186
+ this.LinkError = '';
187
+ }
166
188
  /**
167
189
  * Re-paper: ask the SERVER to point this agreement at the contract it replaces.
168
190
  *
@@ -181,13 +203,24 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
181
203
  * longer maintains its own cached idea of what the contract supersedes.
182
204
  */
183
205
  async LinkSupersedes() {
184
- await this.invoke(this.PickedPredecessorID || null, 'Linked — that contract is now superseded by this agreement.');
206
+ if (!this.PickedPredecessorID)
207
+ return;
208
+ await this.invoke({ PredecessorID: this.PickedPredecessorID }, 'Linked — that contract is now superseded by this agreement.');
185
209
  }
186
- /** Release one predecessor. `null` predecessor = release everything. */
187
- async UnlinkSupersedes(_predecessorID) {
188
- await this.invoke(null, 'Unlinked — that agreement is no longer superseded by this one.');
210
+ /**
211
+ * Release exactly the contract whose button was clicked.
212
+ *
213
+ * THE ARGUMENT USED TO BE DISCARDED. The template has always passed `p.ID`; this method took it as
214
+ * `_predecessorID` and called the operation with `null`, which meant "release EVERY predecessor".
215
+ * On a contract superseding one agreement that looks correct, which is why it survived — on a
216
+ * consolidation, clicking "Unlink CTR-0001" also unlinked CTR-0002 (contracts#28 item 9).
217
+ */
218
+ async UnlinkSupersedes(predecessorID) {
219
+ if (!predecessorID)
220
+ return;
221
+ await this.invoke({ ReleasePredecessorID: predecessorID }, 'Unlinked — that agreement is no longer superseded by this one.');
189
222
  }
190
- async invoke(predecessorID, okMessage) {
223
+ async invoke(what, okMessage) {
191
224
  if (!this.Record?.ID)
192
225
  return;
193
226
  this.Busy = true;
@@ -201,7 +234,7 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
201
234
  if (typeof provider?.RouteOperation !== 'function') {
202
235
  throw new Error('This provider cannot route remote operations, so re-papering is unavailable here.');
203
236
  }
204
- const result = await provider.RouteOperation(SUPERSEDE_OP, { SuccessorID: this.Record.ID, PredecessorID: predecessorID });
237
+ const result = await provider.RouteOperation(SUPERSEDE_OP, { SuccessorID: this.Record.ID, ...what });
205
238
  if (!result?.Success) {
206
239
  throw new Error(result?.ErrorMessage || 'The server did not complete the request.');
207
240
  }
@@ -212,7 +245,9 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
212
245
  this.LinkError = out.Refused;
213
246
  }
214
247
  else {
215
- this.LinkOk = okMessage + (out?.Released?.length ? ` Released ${out.Released.join(', ')}.` : '');
248
+ // No "Released ..." suffix (item 10). Linking no longer releases anything, so the only
249
+ // call that fills `Released` is an unlink — where the message already names what went.
250
+ this.LinkOk = okMessage;
216
251
  this.PickedPredecessorID = '';
217
252
  }
218
253
  await this.loadCandidates();
@@ -268,17 +303,37 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
268
303
  try {
269
304
  const parentID = this.Record?.ParentContractID ?? null;
270
305
  const sameLevel = parentID === null ? 'ParentContractID IS NULL' : `ParentContractID = '${parentID}'`;
306
+ /**
307
+ * SAME CUSTOMER, and this is the rule the picker was missing (#28 item 4).
308
+ *
309
+ * Re-papering replaces one customer's agreement with another agreement for THAT customer.
310
+ * Offering another customer's contract is not merely untidy: linking it would point one
311
+ * organisation's lineage at another's, and the successor's terms would read as governing a
312
+ * party that never signed them.
313
+ *
314
+ * `CustomerOrganizationID` is NOT NULL on this table, so there is no "customer unknown" case
315
+ * to widen for — an absent value here means the record could not be read, and offering the
316
+ * whole book because of that is exactly the failure this rule exists to stop. So a missing
317
+ * value yields NO candidates rather than all of them.
318
+ */
319
+ const sameCustomer = SameCustomerClause(this.Record?.CustomerOrganizationID);
271
320
  const r = await rv.RunView({
272
321
  EntityName: MJC_ENTITIES.Contract,
273
- Fields: ['ID', 'ContractNumber', 'ContractType'],
274
- ExtraFilter: `${sameLevel} AND SupersededByContractID IS NULL AND ID <> '${me}'`,
322
+ Fields: ['ID', 'ContractNumber', 'ContractType', 'Description'],
323
+ ExtraFilter: `${sameCustomer} AND ${sameLevel} ` +
324
+ `AND SupersededByContractID IS NULL AND ID <> '${me}'`,
275
325
  OrderBy: 'ContractNumber ASC',
276
326
  ResultType: 'simple',
277
327
  });
278
328
  this._candidates = (r?.Success ? r.Results : []).map((c) => ({
279
329
  ...c,
280
- Label: `${c.ContractNumber} — ${c.ContractType ?? 'Contract'}`,
330
+ Label: ContractOptionLabel(c),
281
331
  }));
332
+ // A LATER SUCCESS CLEARS AN EARLIER FAILURE (#28 item 23). Without this the warning from a
333
+ // read that failed stayed on screen over a list that had since loaded, so the panel showed
334
+ // candidates and told the reader it could not read any. Cleared HERE rather than at the top
335
+ // of the try, so a reload does not blank the explanation while it is in flight.
336
+ this.LoadError = '';
282
337
  }
283
338
  catch (e) {
284
339
  // Do NOT swallow this. An empty list and a failed read look identical in the UI, and the
@@ -286,7 +341,7 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
286
341
  // simply sat greyed out with nothing to explain it.
287
342
  this._candidates = [];
288
343
  this.LoadError = `Could not read eligible contracts: ${e instanceof Error ? e.message : String(e)}`;
289
- this.loaded = false; // let the next read retry
344
+ this.loadedFor = null; // let the next read retry
290
345
  }
291
346
  finally {
292
347
  this.CandidatesLoading = false;
@@ -294,7 +349,7 @@ let MJCContractSupersedePanel = class MJCContractSupersedePanel extends BaseForm
294
349
  }
295
350
  }
296
351
  static ɵfac = /*@__PURE__*/ (() => { let ɵMJCContractSupersedePanel_BaseFactory; return function MJCContractSupersedePanel_Factory(__ngFactoryType__) { return (ɵMJCContractSupersedePanel_BaseFactory || (ɵMJCContractSupersedePanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJCContractSupersedePanel)))(__ngFactoryType__ || MJCContractSupersedePanel); }; })();
297
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJCContractSupersedePanel, selectors: [["mjc-contract-supersede-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 3, consts: [["SectionKey", "contractSupersede", "SectionName", "Re-papering", "Icon", "fa-solid fa-arrow-right-arrow-left", 3, "Form", "FormContext"], [1, "mj-forms-field"], [1, "mj-forms-field-label"], [1, "mj-forms-field-control"], [1, "mj-forms-field-value"], [1, "mjc-chip", "mjc-chip--muted"], ["TextField", "Label", "ValueField", "ID", "Placeholder", "Search contracts at this level\u2026", 3, "ngModelChange", "Data", "ValuePrimitive", "Filterable", "Disabled", "ngModel"], ["mjButton", "", "variant", "primary", "size", "sm", "type", "button", 3, "click", "disabled"], ["mjButton", "", "variant", "flat", "size", "sm", "type", "button", 3, "disabled"], [1, "mjc-hint"], ["Variant", "warning", "Size", "sm", 3, "Message"], ["Variant", "error", "Size", "sm", 3, "Message"], ["Variant", "success", "Size", "sm", 3, "Message"], ["mjButton", "", "variant", "flat", "size", "sm", "type", "button", 3, "click", "disabled"]], template: function MJCContractSupersedePanel_Template(rf, ctx) { if (rf & 1) {
352
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJCContractSupersedePanel, selectors: [["mjc-contract-supersede-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 3, consts: [["SectionKey", "supersede", "SectionName", "Re-papering", "Icon", "fa-solid fa-arrow-right-arrow-left", 3, "Form", "FormContext"], [1, "mj-forms-field"], [1, "mj-forms-field-label"], [1, "mj-forms-field-control"], [1, "mj-forms-field-value"], [1, "mjc-chip", "mjc-chip--muted"], ["TextField", "Label", "ValueField", "ID", "Placeholder", "Search contracts at this level\u2026", 3, "ngModelChange", "Data", "ValuePrimitive", "Filterable", "Disabled", "ngModel"], ["mjButton", "", "variant", "primary", "size", "sm", "type", "button", 3, "click", "disabled"], ["mjButton", "", "variant", "flat", "size", "sm", "type", "button", 3, "disabled"], [1, "mjc-hint"], ["Variant", "warning", "Size", "sm", 3, "Message"], ["Variant", "error", "Size", "sm", 3, "Message"], ["Variant", "success", "Size", "sm", 3, "Message"], ["mjButton", "", "variant", "flat", "size", "sm", "type", "button", 3, "click", "disabled"]], template: function MJCContractSupersedePanel_Template(rf, ctx) { if (rf & 1) {
298
353
  i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "div", 1)(2, "label", 2);
299
354
  i0.ɵɵtext(3, "Supersedes");
300
355
  i0.ɵɵelementEnd();
@@ -319,6 +374,8 @@ MJCContractSupersedePanel = __decorate([
319
374
  slot: 'after-fields',
320
375
  sortKey: 40,
321
376
  contributionKey: 'supersede',
377
+ relatedEntity: MJC_ENTITIES.Contract,
378
+ relatedJoinField: 'SupersededByContractID',
322
379
  },
323
380
  })
324
381
  ], MJCContractSupersedePanel);
@@ -332,7 +389,7 @@ export { MJCContractSupersedePanel };
332
389
  imports: [CommonModule, FormsModule, BaseFormsModule, MJComboboxComponent, MJButtonDirective, MJAlertComponent],
333
390
  template: `
334
391
  <mj-collapsible-panel
335
- SectionKey="contractSupersede"
392
+ SectionKey="supersede"
336
393
  SectionName="Re-papering"
337
394
  Icon="fa-solid fa-arrow-right-arrow-left"
338
395
  [Form]="FormComponent"
@@ -362,7 +419,7 @@ export { MJCContractSupersedePanel };
362
419
  —
363
420
  }
364
421
  <span class="mjc-chip mjc-chip--muted">
365
- {{ Record?.IsSaved ? 'finish editing to change this' : 'save this contract first' }}
422
+ {{ Record?.IsSaved ? 'Finish editing to change' : 'Save this contract first' }}
366
423
  </span>
367
424
  </span>
368
425
  } @else {
@@ -374,7 +431,8 @@ export { MJCContractSupersedePanel };
374
431
  [Filterable]="true"
375
432
  [Disabled]="Busy"
376
433
  Placeholder="Search contracts at this level…"
377
- [(ngModel)]="PickedPredecessorID" />
434
+ [ngModel]="PickedPredecessorID"
435
+ (ngModelChange)="PickPredecessor($event)" />
378
436
 
379
437
  <button mjButton variant="primary" size="sm" type="button"
380
438
  [disabled]="Busy || !PickedPredecessorID"
@@ -411,5 +469,5 @@ export { MJCContractSupersedePanel };
411
469
  `,
412
470
  }]
413
471
  }], null, null); })();
414
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJCContractSupersedePanel, { className: "MJCContractSupersedePanel", filePath: "lib/form-panels/supersede.panel.ts", lineNumber: 136 }); })();
472
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJCContractSupersedePanel, { className: "MJCContractSupersedePanel", filePath: "lib/form-panels/supersede.panel.ts", lineNumber: 147 }); })();
415
473
  //# sourceMappingURL=supersede.panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supersede.panel.js","sourceRoot":"","sources":["../../../src/lib/form-panels/supersede.panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supersede.panel.js","sourceRoot":"","sources":["../../../src/lib/form-panels/supersede.panel.ts"],"names":[],"mappings":"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"}
@@ -1,54 +1,74 @@
1
1
  /**
2
- * @fileoverview The Contracts dashboard — "what needs attention", not "how are we doing".
2
+ * @fileoverview The Contracts dashboard — obligation command center.
3
3
  *
4
- * DELIBERATELY NOT A CHART. This app tracks obligations; the useful question on opening it is which
5
- * agreements need a person this quarter, and the honest answer is four numbers and the lists behind
6
- * them. A revenue chart would be a chart about orders' data drawn on contracts' screen, and it would
7
- * invite reading it as authoritative about money — which contracts explicitly is not (plan §1).
4
+ * NOT A REVENUE CHART. Plan §1: contracts is not money. Every number here is a COUNT or a date.
5
+ * Tiles are counted from the layered view's DERIVED columns (`IsAwaitingDocument`,
6
+ * `RenewalNoticeDeadline`, `DaysToEnd`, `HasModifications`, `State`) with `TotalRowCount`, so they
7
+ * cannot disagree with the worklists. Charts read the same columns off a roster; they do not
8
+ * re-derive "expiring soon".
8
9
  *
9
- * Every number is a count over the layered base view's DERIVED columns, so the dashboard cannot
10
- * disagree with the worklists: both read `IsAwaitingDocument`, `RenewalNoticeDeadline` and `State`
11
- * from the same view. A dashboard computing its own version of "expiring soon" is how a summary and a
12
- * worklist end up giving different answers to the same question.
10
+ * A hot-list row is `NavigationService.OpenEntityRecord`. A tile click still jumps to the matching
11
+ * rail worklist.
13
12
  *
14
13
  * @module @mj-biz-apps/contracts-ng
15
14
  */
16
15
  import { EventEmitter, OnInit } from '@angular/core';
16
+ import { type EntityInfo } from '@memberjunction/core';
17
+ import { type RecordOpenedEvent } from '@memberjunction/ng-entity-viewer';
18
+ import type { MJUserViewEntityExtended } from '@memberjunction/core-entities';
17
19
  import * as i0 from "@angular/core";
18
20
  /** One headline number, and where clicking it goes. */
19
21
  interface AttentionTile {
20
22
  Id: string;
21
23
  Label: string;
22
- /** What the number means, in a sentence — shown as the tile's title. */
23
24
  Hint: string;
24
25
  Filter: string;
25
- /** Rail page id to open. Null means the tile is informational only. */
26
26
  GoTo: string | null;
27
27
  Count: number | null;
28
28
  }
29
+ interface StateBar {
30
+ State: string;
31
+ Count: number;
32
+ }
33
+ interface HorizonBucket {
34
+ Label: string;
35
+ Count: number;
36
+ }
29
37
  export declare class MJCContractsDashboardPageComponent implements OnInit {
30
38
  private readonly cdr;
39
+ private readonly navigation;
31
40
  /** Asks the host section to switch rail pages. The dashboard does not route itself. */
32
41
  NavigateToPage: EventEmitter<string>;
33
42
  LoadError: string | null;
43
+ StateBars: StateBar[];
44
+ Horizon: HorizonBucket[];
45
+ ContractEntityInfo: EntityInfo | null;
46
+ HotView: MJUserViewEntityExtended | null;
34
47
  /**
35
- * The four questions worth answering on open, in priority order.
48
+ * The questions worth answering on open, in priority order.
36
49
  *
37
50
  * "In force without paper" leads because it is the only one that is both an obligation we are
38
51
  * already performing and a document we cannot produce — the combination that hurts in a dispute.
39
52
  */
40
53
  Tiles: AttentionTile[];
54
+ /** The four actionable tiles, in funnel order. Signed-not-started is informational, not a queue. */
55
+ get ChartTiles(): AttentionTile[];
41
56
  ngOnInit(): void;
42
57
  Open(tile: AttentionTile): void;
58
+ OpenRecord(id: string): void;
59
+ OnRecordOpened(event: RecordOpenedEvent): void;
60
+ BarPct(count: number): string;
61
+ FunnelHeight(count: number | null): string;
62
+ ShortLabel(id: string): string;
43
63
  /**
44
- * Count every tile concurrently.
64
+ * Count every tile concurrently, then load the roster used for mix / horizon / hot list.
45
65
  *
46
- * `MaxRows: 1` and read `TotalRowCount` — the count comes back without transferring rows. A tile
47
- * whose query fails shows an em dash rather than a zero: "we do not know" and "there are none" are
48
- * different answers, and showing 0 for the first is the kind of quiet lie a dashboard should never
49
- * tell. One shared error line explains it once rather than five times.
66
+ * `MaxRows: 1` and read `TotalRowCount` for tiles — the count comes back without transferring
67
+ * rows. A tile whose query fails shows an em dash rather than a zero.
50
68
  */
51
69
  private refresh;
70
+ private mixStates;
71
+ private horizon;
52
72
  static ɵfac: i0.ɵɵFactoryDeclaration<MJCContractsDashboardPageComponent, never>;
53
73
  static ɵcmp: i0.ɵɵComponentDeclaration<MJCContractsDashboardPageComponent, "mjc-contracts-dashboard-page", never, {}, { "NavigateToPage": "NavigateToPage"; }, never, never, true, never>;
54
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contracts-dashboard.page.d.ts","sourceRoot":"","sources":["../../../src/lib/pages/contracts-dashboard.page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAgC,YAAY,EAAE,MAAM,EAAqC,MAAM,eAAe,CAAC;;AAKtH,uDAAuD;AACvD,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,qBA2Ca,kCAAmC,YAAW,MAAM;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAEjD,uFAAuF;IAC7E,cAAc,uBAA8B;IAE/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEvC;;;;;OAKG;IACI,KAAK,EAAE,aAAa,EAAE,CA4C3B;IAEK,QAAQ,IAAI,IAAI;IAIhB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAItC;;;;;;;OAOG;YACW,OAAO;yCA5EZ,kCAAkC;2CAAlC,kCAAkC;CAmG9C"}
1
+ {"version":3,"file":"contracts-dashboard.page.d.ts","sourceRoot":"","sources":["../../../src/lib/pages/contracts-dashboard.page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAgC,YAAY,EAAE,MAAM,EAAqC,MAAM,eAAe,CAAC;AAEtH,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAK9E,uDAAuD;AACvD,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,UAAU,QAAQ;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAeD,qBA0Ga,kCAAmC,YAAW,MAAM;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAExD,uFAAuF;IAC7E,cAAc,uBAA8B;IAE/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,kBAAkB,EAAE,UAAU,GAAG,IAAI,CAAQ;IAC7C,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAEvD;;;;;OAKG;IACI,KAAK,EAAE,aAAa,EAAE,CA4C3B;IAEF,oGAAoG;IACpG,IAAW,UAAU,IAAI,aAAa,EAAE,CAEvC;IAEM,QAAQ,IAAI,IAAI;IAIhB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAI/B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAK9C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK7B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAO1C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAerC;;;;;OAKG;YACW,OAAO;IA4DrB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,OAAO;yCAhMN,kCAAkC;2CAAlC,kCAAkC;CAkN9C"}