@mindbill/angular 0.6.1 → 0.8.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindbill/angular",
3
- "version": "0.6.1",
3
+ "version": "0.8.0",
4
4
  "description": "Native Angular components for bill submission, lifecycle, dashboards, aging, lists, and reporting",
5
5
  "type": "module",
6
6
  "peerDependencies": {
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { OnChanges, OnDestroy, EventEmitter, SimpleChanges } from '@angular/core';
3
3
  import { BillLifecycleClientOptions, BillLifecycleData, CloseBillInput, PostBillPaymentInput, SubmitSecondReviewInput, BillLifecycleSessionProvider, BrowserBillCreateInput, BrowserBillSubmissionDocument, BrowserBillSubmissionInput, BrowserBillSubmissionResult, BillReviewPayer, BillDiagnosisCode } from '@mindbill/browser';
4
4
  export { BillLifecycleAction, BillLifecycleActionId, BillLifecycleClient, BillLifecycleClientOptions, BillLifecycleData, BillLifecycleSession, BillLifecycleSessionProvider, BillReviewData, BillSubmissionRoute, BrowserBillCreateInput, BrowserBillSubmissionInput, BrowserBillSubmissionResult, CloseBillInput, PostBillPaymentInput, SubmitSecondReviewInput } from '@mindbill/browser';
5
+ import * as _mindbill_angular from '@mindbill/angular';
5
6
 
6
7
  declare class MindBillLifecycleStore {
7
8
  readonly billId: i0.WritableSignal<string>;
@@ -198,6 +199,117 @@ declare class MindBillBillingReportComponent extends DashboardBase {
198
199
  static ɵcmp: i0.ɵɵComponentDeclaration<MindBillBillingReportComponent, "mindbill-billing-report", never, { "bills": { "alias": "bills"; "required": false; }; "heading": { "alias": "heading"; "required": false; }; }, {}, never, never, true, never>;
199
200
  }
200
201
 
202
+ type MindBillStatusAgingCell = {
203
+ state: string;
204
+ bucket: MindBillAgingBucketId | "total";
205
+ count: number;
206
+ balance: number;
207
+ bills: MindBillDashboardBill[];
208
+ };
209
+ type MindBillStatusAgingRow = {
210
+ state: string;
211
+ label: string;
212
+ cells: MindBillStatusAgingCell[];
213
+ total: MindBillStatusAgingCell;
214
+ };
215
+ type MindBillStatusAgingMatrix = {
216
+ rows: MindBillStatusAgingRow[];
217
+ columnTotals: MindBillStatusAgingCell[];
218
+ grandTotal: MindBillStatusAgingCell;
219
+ };
220
+ declare const MINDBILL_STATUS_AGING_BUCKETS: {
221
+ id: MindBillAgingBucketId;
222
+ label: string;
223
+ }[];
224
+ declare function buildMindBillStatusAgingMatrix(bills: MindBillDashboardBill[], stateOrder?: string[], now?: Date): MindBillStatusAgingMatrix;
225
+ declare function buildMindBillStatusAgingCsv(bills: MindBillDashboardBill[], stateOrder?: string[]): string;
226
+
227
+ declare class MindBillStatusAgingMatrixComponent {
228
+ bills: MindBillDashboardBill[];
229
+ heading: string;
230
+ description: string;
231
+ stateOrder?: string[];
232
+ showBalances: boolean;
233
+ appearance: MindBillAngularAppearance;
234
+ cellSelected: EventEmitter<MindBillStatusAgingCell>;
235
+ readonly buckets: {
236
+ id: _mindbill_angular.MindBillAgingBucketId;
237
+ label: string;
238
+ }[];
239
+ get matrix(): MindBillStatusAgingMatrix;
240
+ get themeStyle(): Record<string, string>;
241
+ static ɵfac: i0.ɵɵFactoryDeclaration<MindBillStatusAgingMatrixComponent, never>;
242
+ static ɵcmp: i0.ɵɵComponentDeclaration<MindBillStatusAgingMatrixComponent, "mindbill-status-aging-matrix", never, { "bills": { "alias": "bills"; "required": false; }; "heading": { "alias": "heading"; "required": false; }; "description": { "alias": "description"; "required": false; }; "stateOrder": { "alias": "stateOrder"; "required": false; }; "showBalances": { "alias": "showBalances"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, { "cellSelected": "cellSelected"; }, never, never, true, never>;
243
+ }
244
+
245
+ type MindBillComboOption = {
246
+ id: string;
247
+ label: string;
248
+ detail?: string;
249
+ };
250
+ /** Styled searchable dropdown shared by the submission form's procedure,
251
+ * modifier, taxonomy, payer, and diagnosis pickers. Mirrors the React
252
+ * package's ComboBox: query filtering, optional custom-code creation,
253
+ * loading states, and infinite scroll via (endReached). */
254
+ declare class MindBillComboBoxComponent {
255
+ value: string;
256
+ placeholder: string;
257
+ options: MindBillComboOption[];
258
+ disabled: boolean;
259
+ loading: boolean;
260
+ loadingMore: boolean;
261
+ invalid: boolean;
262
+ preserveValueOnOpen: boolean;
263
+ ariaLabel: string;
264
+ createOption?: (query: string) => MindBillComboOption | null;
265
+ opened: EventEmitter<void>;
266
+ queryChange: EventEmitter<string>;
267
+ endReached: EventEmitter<void>;
268
+ selected: EventEmitter<MindBillComboOption>;
269
+ open: boolean;
270
+ query: string;
271
+ private closeTimer?;
272
+ get visible(): MindBillComboOption[];
273
+ get showMenu(): boolean;
274
+ onFocus(): void;
275
+ onInput(event: Event): void;
276
+ onBlur(): void;
277
+ onScroll(event: Event): void;
278
+ choose(option: MindBillComboOption): void;
279
+ static ɵfac: i0.ɵɵFactoryDeclaration<MindBillComboBoxComponent, never>;
280
+ static ɵcmp: i0.ɵɵComponentDeclaration<MindBillComboBoxComponent, "mindbill-combo-box", never, { "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "preserveValueOnOpen": { "alias": "preserveValueOnOpen"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "createOption": { "alias": "createOption"; "required": false; }; }, { "opened": "opened"; "queryChange": "queryChange"; "endReached": "endReached"; "selected": "selected"; }, never, never, true, never>;
281
+ }
282
+ /** MM/DD/YYYY masked date input. Emits only parseable ISO dates (or "" when
283
+ * cleared) and reformats the display once a complete date round-trips, exactly
284
+ * like the React package's TextDateInput. */
285
+ declare class MindBillDateInputComponent implements OnChanges {
286
+ value: string | null | undefined;
287
+ disabled: boolean;
288
+ ariaLabel: string;
289
+ valueChange: EventEmitter<string>;
290
+ display: string;
291
+ invalid: boolean;
292
+ ngOnChanges(changes: SimpleChanges): void;
293
+ onInput(event: Event): void;
294
+ onBlur(): void;
295
+ static ɵfac: i0.ɵɵFactoryDeclaration<MindBillDateInputComponent, never>;
296
+ static ɵcmp: i0.ɵɵComponentDeclaration<MindBillDateInputComponent, "mindbill-date-input", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
297
+ }
298
+
299
+ /** Date helpers shared by the Angular submission surfaces. Mirrors the React
300
+ * package's parseBillSubmissionDate/formatBillSubmissionDate exactly so both
301
+ * frameworks accept and render the same values. */
302
+ declare function parseMindBillSubmissionDate(value: string): string | undefined;
303
+ declare function formatMindBillSubmissionDate(value: string | null | undefined): string;
304
+ type MindBillProcedureComboOption = {
305
+ id: string;
306
+ label: string;
307
+ detail?: string;
308
+ };
309
+ /** Accepts complete CPT (5 digits), HCPCS (letter + 4 digits), or California
310
+ * medical-legal codes typed directly into the procedure picker. */
311
+ declare function mindBillCustomProcedureOption(query: string): MindBillProcedureComboOption | null;
312
+
201
313
  type MindBillSubmissionAttachment = Omit<BrowserBillSubmissionDocument, "contentBase64"> & {
202
314
  contentBase64?: string;
203
315
  contentUrl?: string;
@@ -245,13 +357,22 @@ declare class MindBillBillSubmissionComponent implements OnChanges {
245
357
  diagnosisBusy: boolean;
246
358
  submitting: boolean;
247
359
  errorMessage: string;
360
+ postalStatus: string;
361
+ dragActive: boolean;
248
362
  invalidFields: Set<string>;
249
363
  readonly quickDiagnoses: any[];
364
+ private readonly changeDetector;
365
+ readonly customProcedureOption: typeof mindBillCustomProcedureOption;
366
+ readonly customTaxonomyOption: (query: string) => MindBillComboOption | null;
250
367
  private searchTimer?;
251
368
  private postalTimer?;
252
369
  ngOnChanges(changes: SimpleChanges): void;
253
370
  get themeStyle(): Record<string, string>;
371
+ get procedureComboOptions(): MindBillComboOption[];
372
+ get taxonomyComboOptions(): MindBillComboOption[];
373
+ modifierComboOptions(line: BrowserBillCreateInput["serviceLines"][number]): MindBillComboOption[];
254
374
  private referenceClient;
375
+ setDate(path: "patient.dateOfBirth" | "service.date" | "claim.dateOfInjury", value: string): void;
255
376
  postalChanged(value: string): void;
256
377
  searchPayers(): void;
257
378
  selectPayer(payer: BillReviewPayer): void;
@@ -263,10 +384,21 @@ declare class MindBillBillSubmissionComponent implements OnChanges {
263
384
  removeDiagnosis(code: string): void;
264
385
  ensureTrailingLine(): void;
265
386
  removeLine(index: number): void;
266
- setModifier(index: number, value: string): void;
387
+ selectProcedure(index: number, option: MindBillComboOption): void;
388
+ addModifier(index: number, option: MindBillComboOption): void;
389
+ removeModifier(index: number, modifier: string): void;
390
+ dxLetter(pointer: number): string;
391
+ hasDiagnosisPointer(line: BrowserBillCreateInput["serviceLines"][number], pointer: number): boolean;
392
+ toggleDiagnosisPointer(index: number, pointer: number): void;
393
+ setAuthorizationNumber(value: string): void;
394
+ selectTaxonomy(option: MindBillComboOption): void;
267
395
  procedureDescription(code: string): string;
268
396
  allowed(line: BrowserBillCreateInput["serviceLines"][number]): number | null;
269
397
  get totalAllowed(): number;
398
+ onWindowDragOver(event: DragEvent): void;
399
+ onWindowDragLeave(event: DragEvent): void;
400
+ onWindowDrop(event: DragEvent): void;
401
+ private addFiles;
270
402
  filesSelected(event: Event): Promise<void>;
271
403
  removeAttachment(index: number): void;
272
404
  previewAttachment(attachment: MindBillSubmissionAttachment): void;
@@ -292,6 +424,7 @@ declare class MindBillBillingManagementButtonComponent {
292
424
  failed: EventEmitter<unknown>;
293
425
  loading: boolean;
294
426
  errorMessage: string;
427
+ private readonly changeDetector;
295
428
  get themeStyle(): Record<string, string>;
296
429
  openBillingManagement(): Promise<void>;
297
430
  private fetchSession;
@@ -299,5 +432,5 @@ declare class MindBillBillingManagementButtonComponent {
299
432
  static ɵcmp: i0.ɵɵComponentDeclaration<MindBillBillingManagementButtonComponent, "mindbill-billing-management-button", never, { "sessionEndpoint": { "alias": "sessionEndpoint"; "required": false; }; "sessionProvider": { "alias": "sessionProvider"; "required": false; }; "label": { "alias": "label"; "required": false; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, { "opened": "opened"; "failed": "failed"; }, never, never, true, never>;
300
433
  }
301
434
 
302
- export { MindBillBillAgingSummaryComponent, MindBillBillLifecycleComponent, MindBillBillListComponent, MindBillBillSubmissionComponent, MindBillBillingDashboardComponent, MindBillBillingManagementButtonComponent, MindBillBillingReportComponent, MindBillLifecycleStore, buildMindBillReportCsv, buildMindBillReportRows, ensureTrailingProcedureLine, isEmptyProcedureLine, mindBillAgingBucket, mindBillAgingDays, summarizeMindBillDashboard };
303
- export type { MindBillAgingBucket, MindBillAgingBucketId, MindBillAngularAppearance, MindBillAngularThemePreset, MindBillDashboardBill, MindBillDashboardSummary, MindBillManagementSession, MindBillManagementSessionProvider, MindBillReportDimension, MindBillReportRow, MindBillSubmissionAttachment, MindBillSubmissionModifierOption, MindBillSubmissionProcedureOption, MindBillSubmissionTaxonomyOption, ProcedureLine };
435
+ export { MINDBILL_STATUS_AGING_BUCKETS, MindBillBillAgingSummaryComponent, MindBillBillLifecycleComponent, MindBillBillListComponent, MindBillBillSubmissionComponent, MindBillBillingDashboardComponent, MindBillBillingManagementButtonComponent, MindBillBillingReportComponent, MindBillComboBoxComponent, MindBillDateInputComponent, MindBillLifecycleStore, MindBillStatusAgingMatrixComponent, buildMindBillReportCsv, buildMindBillReportRows, buildMindBillStatusAgingCsv, buildMindBillStatusAgingMatrix, ensureTrailingProcedureLine, formatMindBillSubmissionDate, isEmptyProcedureLine, mindBillAgingBucket, mindBillAgingDays, mindBillCustomProcedureOption, parseMindBillSubmissionDate, summarizeMindBillDashboard };
436
+ export type { MindBillAgingBucket, MindBillAgingBucketId, MindBillAngularAppearance, MindBillAngularThemePreset, MindBillComboOption, MindBillDashboardBill, MindBillDashboardSummary, MindBillManagementSession, MindBillManagementSessionProvider, MindBillProcedureComboOption, MindBillReportDimension, MindBillReportRow, MindBillStatusAgingCell, MindBillStatusAgingMatrix, MindBillStatusAgingRow, MindBillSubmissionAttachment, MindBillSubmissionModifierOption, MindBillSubmissionProcedureOption, MindBillSubmissionTaxonomyOption, ProcedureLine };