# arena-plugin-compensation

## Installation

```
npm i arena-plugin-compensation
```

## Example

```jsx
import Compensation from 'arena-plugin-compensation'
import {Form, Submit} from 'arena-components'
import {getResources, getSections} from './selectors'

return (
  <div>
    <Form name="MY_FORM">
      <Compensation
      change={change} // dispatch
        resources={resources}
        sections={sections}
        showResourcesByDefault={false}
      />
    </Form>
    <Submit name="MY_FORM">Submit</Submit>
  </div>
)
```

## Components

`arena-plugin-compensation` consists of one component.

### &lt;Compensation /&gt;

#### formName: `string`

> required

#### change: `function`

> required

Provide the `redux-form` action creator `change` used by the bulk edit to update multiple resource fields at once.

#### delimiter: `string`

> default: `_`

The string to be used as a delimiter for the field name. The options are either `.` to take advantage of the dot notation or something else such as `_`.

#### duration: `number`

> default: `1`

#### inlineResources: `boolean`

> default: `true`

#### resources: `object`

> default: `{}`

Example:

```json
{
  "GrossNetIndicator": {
    "name": "Gross/net",
    "options": [
      {
        "label": "Gross",
        "value": "Gross"
      },
      {
        "label": "Net",
        "value": "Net"
      }
    ]
  },
  "SubjectToHypo": {
    "name": "Subject to hypo",
    "options": [
      {
        "label": "Hypo",
        "value": "Hypo"
      },
      {
        "label": "Non hypo",
        "value": "Non hypo"
      }
    ]
  }
}
```

#### sections: `array`

> default: `true`

Example:

```json
[
  {
    "code": "salaryComponents",
    "label": "Salary Components",
    "rows": [
      {
        "code": "Compensation_BaseSalary",
        "label": "Base Salary"
      },
      {
        "code": "Compensation_OtherSalary",
        "label": "Other salary"
      },
      {
        "code": "Compensation_EERetirement",
        "label": "Employee retirement contribution"
      },
      {
        "code": "Compensation_IncentiveAward",
        "label": "Incentive Award"
      }
    ]
  },
  {
    "code": "assignment",
    "label": "Assignment Allowances & Expenses",
    "rows": [
      {
        "code": "Compensation_ISP",
        "label": "International service premium"
      },
      {
        "code": "Compensation_Hardship",
        "label": "Hardship allowance"
      }
    ]
  }
]
```

#### showResourcesByDefault: `boolean`

> default: `false`

#### showTitle: `boolean`

> default: `false`

#### startYear: `number|string`

> default: `2017`

#### useAmountLabel: `boolean`

> default: `false`

This sets duration to `1` and changed the label of the field amount to `Amount`.
