Add Form 1099-DIV.
[ustaxlib.git] / src / fed2019 / Form1099DIV.ts
1 import Form from '../Form';
2 import { InputLine } from '../Line';
3 import Person from '../Person';
4
5 export interface Form1099DIVInput {
6 payer: string;
7 payee: Person;
8 ordinaryDividends?: number; // Includes qualifiedDividends.
9 qualifiedDividends?: number;
10 totalCapitalGain?: number;
11 unrecaptured1250Gain?: number;
12 section1202Gain?: number;
13 collectiblesGain?: number;
14 nondividendDistributions?: number;
15 fedIncomeTax?: number;
16 section199ADividends?: number;
17 investmentExpenses?: number;
18 foreignTaxPaid?: number;
19 foreignCountryOrPosession?: string;
20 cashLiquidationDistributions?: number;
21 noncashLiquidationDistributions?: number;
22 exemptInterestDividends?: number;
23 privateActivityBondDividends?: number;
24 };
25
26 class Input<T extends keyof Form1099DIVInput> extends InputLine<Form1099DIVInput, T> {};
27
28 export default class Form1099DIV extends Form<Form1099DIV['_lines'], Form1099DIVInput> {
29 readonly name = '1099-DIV';
30
31 readonly supportsMultipleCopies = true;
32
33 protected readonly _lines = {
34 'payer': new Input('payer'),
35 'recipient': new Input('payee'),
36 '1a': new Input('ordinaryDividends'),
37 '1b': new Input('qualifiedDividends'),
38 '2a': new Input('totalCapitalGain'),
39 '2b': new Input('unrecaptured1250Gain'),
40 '2c': new Input('section1202Gain'),
41 '2d': new Input('collectiblesGain'),
42 '3': new Input('nondividendDistributions'),
43 '4': new Input('fedIncomeTax'),
44 '5': new Input('section199ADividends'),
45 '6': new Input('investmentExpenses'),
46 '7': new Input('foreignTaxPaid'),
47 '8': new Input('foreignCountryOrPosession'),
48 '9': new Input('cashLiquidationDistributions'),
49 '10': new Input('noncashLiquidationDistributions'),
50 '11': new Input('exemptInterestDividends'),
51 '12': new Input('privateActivityBondDividends'),
52 };
53 }