{"__symbolic":"module","version":4,"metadata":{"IfRoleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[salaxyIfRole]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":21,"character":27},{"__symbolic":"reference","name":"SalaxyContext"}]}],"salaxyIfRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"checkViewContainer":[{"__symbolic":"method"}]}},"GroupByPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"groupBy"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"SafeHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":4,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":6,"character":35}]}],"transform":[{"__symbolic":"method"}]}},"SalaxyDatePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":8,"character":1},"arguments":[{"name":"salaxyDate"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"SalaxyPricePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":6,"character":1},"arguments":[{"name":"salaxyPrice"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"EmailValidator":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[sxyEmail]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":17,"character":19},"useExisting":{"__symbolic":"reference","name":"EmailValidator"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":21,"character":17},"arguments":["sxyEmail"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"IbanValidator":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[sxyIban]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":19,"character":19},"useExisting":{"__symbolic":"reference","name":"IbanValidator"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":23,"character":17},"arguments":["sxyIban"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"MobilePhoneValidator":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":15,"character":1},"arguments":[{"selector":"[sxyMobilePhone]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":18,"character":19},"useExisting":{"__symbolic":"reference","name":"MobilePhoneValidator"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":22,"character":17},"arguments":["sxyMobilePhone"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"PersonalIdFiValidator":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[sxyPersonalIdFi]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":17,"character":19},"useExisting":{"__symbolic":"reference","name":"PersonalIdFiValidator"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":21,"character":17},"arguments":["sxyPersonalIdFi"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"SmsVerificationCodeValidator":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":15,"character":1},"arguments":[{"selector":"[sxySmsVerificationCode]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":18,"character":19},"useExisting":{"__symbolic":"reference","name":"SmsVerificationCodeValidator"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":22,"character":17},"arguments":["sxySmsVerificationCode"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"ElementBase":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ValueAccessorBase"},"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"oneLineAttribute":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":5},"arguments":["one-line"]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":5}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":48,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgModel","line":48,"character":15}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ValidatorArray"},{"__symbolic":"reference","name":"AsyncValidatorArray"},{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":70,"character":29},{"__symbolic":"reference","name":"NgTranslations"}]}],"getInputStateClasses":[{"__symbolic":"method"}],"getIsDisabled":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"getMessages":[{"__symbolic":"method"}]}},"NgFormTextComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ElementBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"form-text","template":"\n    <div>\n        <label *ngIf=\"label\" [attr.for]=\"id + '_inner'\">{{label}}</label>\n        <input\n            type=\"text\"\n            [placeholder]=\"placeholderText\"\n            [(ngModel)]=\"value\"\n            [ngClass]=\"{invalid: (model.control.touched && invalid | async)}\"\n            [id]=\"id + '_inner'\"\n            (blur)=\"touch()\"\n        />\n        <validation\n            *ngIf=\"model.control.touched && invalid | async\"\n            [messages]=\"failures | async\">\n        </validation>\n    </div>\n    ","styles":[".invalid { border: 1px solid red; }"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":38,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":21},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":38,"character":28}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":39,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":21},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NG_ASYNC_VALIDATORS","line":39,"character":28}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":40,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":40,"character":21}}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":40,"character":39},{"__symbolic":"reference","name":"NgTranslations"}]}]}},"ValidationResult":{"__symbolic":"interface"},"AsyncValidatorArray":{"__symbolic":"interface"},"ValidatorArray":{"__symbolic":"interface"},"composeValidators":{"__symbolic":"error","message":"Lambda not supported","line":39,"character":4,"module":"./components/formControls/validate"},"validate":{"__symbolic":"error","message":"Lambda not supported","line":48,"character":4,"module":"./components/formControls/validate"},"message":{"__symbolic":"error","message":"Lambda not supported","line":72,"character":23,"module":"./components/formControls/validate"},"NgValidationMessages":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"validation","template":"\n      <div class=\"container\">\n        <ul>\n          <li *ngFor=\"let message of messages\">{{message}}</li>\n        </ul>\n      </div>\n    ","styles":[".validation { color: #999; margin: 12px; }"]}]}],"members":{"messages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5}}]}]}},"ValueAccessorBase":{"__symbolic":"class","arity":1,"members":{"touch":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}},"NgAvatarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"salaxy-avatar","template":"<span *ngIf=\"isImage\" class=\"salaxy-avatar\">\n    <img [src]=\"getModel().url\" />\n</span>\n<span *ngIf=\"!isImage\" class=\"salaxy-avatar\" [ngStyle]=\"{'background-color': color, 'color': 'white', 'border-radius': '4px' }\">\n    <strong>{{ initials }}</strong>\n</span>\n"}]}],"members":{"avatar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"getModel":[{"__symbolic":"method"}]}},"NgCalcChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"salaxy-calc-chart","template":"<div style=\"display: block\" *ngIf=\"chartType == 'bar'\" [ngClass]=\"'salaxy-component salaxy-calc-chart chart-container'\">\n    <canvas baseChart [ngClass]=\"'chart chart-bar'\" width=\"50\" height=\"50\" [datasets]=\"barChartData\" [labels]=\"chartLabelTable\" [options]=\"barChartOptions\" [colors]=\"chartColors\" [chartType]=\"'bar'\">\n    </canvas>\n</div>\n\n<div style=\"display: block\" *ngIf=\"chartType == 'pie'\" [ngClass]=\"'salaxy-component salaxy-calc-chart chart-container'\">\n    <canvas baseChart width=\"50\" height=\"50\" [ngClass]=\"'chart chart-pie'\" [data]=\"pieData\" [labels]=\"pieChartLabels\" [colors]=\"pieChartColors\" [options]=\"pieChartOptions\" [chartType]=\"'pie'\">\n    </canvas>\n</div>\n"}]}],"members":{"calc":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"scaleYAxis":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"chartType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"doChart":[{"__symbolic":"method"}],"checkColors":[{"__symbolic":"method"}],"setChartYAxisLimit":[{"__symbolic":"method"}],"calculateAllNumbers":[{"__symbolic":"method"}],"doChartEmployer":[{"__symbolic":"method"}],"doChartWorker":[{"__symbolic":"method"}]}},"NgCalcDetailComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"NgCalculatorComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"salaxy-calc-detail","template":"<div *ngIf=\"!model\">\n    <p>\n    Valitse laskelma tai luo uusi: <button md-raised-button (click)=\"createNew()\">Luo uusi</button>\n    </p>\n</div>\n<div *ngIf=\"model\">\n    <salaxy-calculator [model]=\"model\"></salaxy-calculator>\n    <p>\n    Valitse työntekijä:\n    <mat-select placeholder=\"List of workers\" [(ngModel)]=\"model.worker.accountId\" name=\"workerList\">\n        <mat-option *ngFor=\"let worker of workers\" [value]=\"worker.id\">\n            {{ worker.avatar.displayName }}\n        </mat-option>\n    </mat-select>\n    &nbsp;&nbsp;&nbsp;\n    <button (click)=\"save()\" name=\"save\" color=\"primary\" type=\"button\" md-raised-button>Tallenna</button>\n    <button (click)=\"delete()\" name=\"delete\" color=\"warn\" type=\"button\" md-raised-button>Poista</button>\n    </p>\n</div>\n"}]}],"members":{"recalculate":[{"__symbolic":"method"}],"createNew":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}]}},"NgCalcListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"salaxy-calc-list","template":"<mat-list>\n    <h3 md-subheader style=\"max-width: 350px\">\n        <button md-mini-fab style=\"float: right\" (click)=\"createNew()\"><mat-icon>add</mat-icon></button>\n        Palkkalaskelmat\n    </h3>\n    <mat-list-item *ngFor=\"let calc of list\" (click)=\"setCurrentId(calc.id)\" class=\"click\">\n        <salaxy-avatar [avatar]=\"getOtherParty(calc)\"\n                style=\"font-size: 48px;\" md-list-avatar></salaxy-avatar>\n            <h4 md-line>{{ calc.result.totals.totalGrossSalary | currency : 'EUR' : true }} at {{calc.paidAt | date}}</h4>\n            <p md-line>{{ getOtherParty(calc).displayName }}</p>\n            <p md-line>{{ calc.id }}</p>\n    </mat-list-item>\n</mat-list>\n"}]}],"members":{"groupBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":5}}]}],"limitTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"filterStatuses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"delete":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"createNew":[{"__symbolic":"method"}]}},"NgCalcListSimpleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"sxdemo-calc-list-simple","template":"<h1>Calculation list - simple</h1>\n<p>\nThis calculation list component fetches the data directly using the API methods.\nThe data is fetched every time the component loads: Obeserve \"Fetching calcs\" in the debug console.\n</p>\n<div class=\"salaxy-row\">\n    <div class=\"scol-4\">\n        <mat-list>\n            <h3 md-subheader>Salary calculations (click to show on the right)</h3>\n            <mat-list-item *ngFor=\"let calc of calculations\" (click)=\"setCurrentId(calc.id)\" class=\"click\">\n                <mat-icon md-list-avatar>euro_symbol</mat-icon>\n                <h4 md-line>{{calc.result.totals.totalGrossSalary | currency : 'EUR' : true }} at {{calc.paidAt | date}}</h4>\n                <p md-line>{{calc.employer.avatar.displayName || \"?\" }} => {{calc.worker.avatar.displayName || \"?\"}}</p>\n                <p md-line>{{calc.id}}</p>\n            </mat-list-item>\n        </mat-list>\n    </div>\n    <div class=\"scol-8\">\n        <pre>{{ current | json }}</pre>\n    </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}],null],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":44,"character":42},{"__symbolic":"reference","name":"Token"}]}],"ngOnInit":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}]}},"NgCalculationsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"sxdemo-calculations","template":"<h1>Calculation list - repository</h1>\n<p>\nThis implementation uses the repository pattern: The way you would typically implement calculation list.\nList of calculations as well as the current calculation is maintained by the CalculationRepository service.\nThe CalculationRepository service is accessed from SalaxyContext which makes is a singleton:\nAll the different components will access the same instances of list and current calculation.\n</p>\n<div class=\"salaxy-row\">\n    <div class=\"scol-4\">\n        <salaxy-calc-list></salaxy-calc-list>\n    </div>\n    <div class=\"scol-8\">\n        <salaxy-calc-detail></salaxy-calc-detail>\n    </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"setCurrentId":[{"__symbolic":"method"}],"createNew":[{"__symbolic":"method"}]}},"NgCalculatorComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"providers":[{"__symbolic":"reference","name":"ClientNg"}],"selector":"salaxy-calculator","template":"<div class=\"salaxy-component salaxy-calculator\">\n    <div *ngIf=\"model\">\n        <table cellspacing=50>\n            <tr>\n                <th width=\"45%\">Input</th>\n                <th></th>\n                <th width=\"45%\">Result</th>\n            </tr>\n            <tr>\n                <td>\n                    <table>\n                        <tr>\n                            <td>\n                                <mat-input-container><input mdInput placeholder=\"Amount in euro\" type=\"number\" [(ngModel)]=\"model.salary.price\" name=\"price\"></mat-input-container>\n                            </td>\n                        </tr>\n                        <tr>\n                            <td>\n                                <mat-input-container><input mdInput placeholder=\"Number of hours, months etc.\" type=\"number\" [(ngModel)]=\"model.salary.amount\" name=\"amount\"></mat-input-container>\n                            </td>\n                        </tr>\n                        <tr>\n                            <td>\n                                <mat-select placeholder=\"Salary type\" [(ngModel)]=\"model.salary.kind\" name=\"kind\" style=\"width:100%\">\n                                    <mat-option value=\"fixedSalary\">fixedSalary</mat-option>\n                                    <mat-option value=\"undefined\">undefined</mat-option>\n                                    <mat-option value=\"hourlySalary\">hourlySalary</mat-option>\n                                    <mat-option value=\"monthlySalary\">monthlySalary</mat-option>\n                                    <mat-option value=\"totalWorkerPayment\">totalWorkerPayment</mat-option>\n                                    <mat-option value=\"totalEmployerPayment\">totalEmployerPayment</mat-option>\n                                </mat-select>\n                            </td>\n                        </tr>\n                    </table>\n                </td>\n                <td>\n                    <button md-raised-button color=\"primary\" (click)=\"recalculate()\">Laske</button>\n                </td>\n                <td>\n                    <div *ngIf=\"!model.result\">\n                        <p>Click \"Calculate\" to see results here.</p>\n                    </div>\n                    <div *ngIf=\"model.result\">\n                        <table>\n                            <tr>\n                                <td>Total gross:</td>\n                                <td>{{ model.result.totals.totalGrossSalary | currency }}</td>\n                            </tr>\n                            <tr>\n                                <td>Total net salary:</td>\n                                <td>{{ model.result.workerCalc.salaryPayment | currency }}</td>\n                            </tr>\n                            <tr>\n                                <td>Total payment:</td>\n                                <td>{{ model.result.employerCalc.totalSalaryCost | currency }}</td>\n                            </tr>\n                        </table>\n                    </div>\n                </td>\n            </tr>\n        </table>\n    </div>\n</div>\n"}]}],"members":{"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":92,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","name":"SalaxyContext"},{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":92,"character":44}]}],"ngOnInit":[{"__symbolic":"method"}],"recalculate":[{"__symbolic":"method"}]}},"NgArticleListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"salaxy-demo-article-list","template":"<div class=\"salaxy-row\">\n    <div class=\"scol-4\">\n        <mat-list>\n            <h3 md-subheader>Articles (click to show on the right)</h3>\n            <mat-list-item *ngFor=\"let item of articles\" (click)=\"setCurrent(item.id)\" class=\"click\">\n                <mat-icon md-list-avatar>insert_drive_file</mat-icon>\n                <h4 md-line>{{item.title}}</h4>\n                <p md-line> {{item.date | date}} </p>\n                <p md-line><code>{{ item.id}}</code></p>\n            </mat-list-item>\n        </mat-list>\n    </div>\n    <div class=\"scol-8\">\n        <h1>{{ article.title }}</h1>\n        <p>{{ article.id }}</p>\n        <div [innerHTML]=\"article.html\"></div>\n    </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":42,"character":18},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":42,"character":51}]}],"ngOnInit":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}]}},"NgContractListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"salaxy-contract-list","template":"<mat-list>\n    <h3 md-subheader style=\"max-width: 350px\">\n        <button md-mini-fab style=\"float: right\" (click)=\"createNew()\"><mat-icon>add</mat-icon></button>\n        Työsopimukset\n    </h3>\n    <mat-list-item *ngFor=\"let contract of list\" (click)=\"setCurrentId(contract.id)\" class=\"click\">\n        <salaxy-avatar [avatar]=\"getOtherParty(contract)\" style=\"font-size: 48px;\" md-list-avatar></salaxy-avatar>\n        <h4 md-line>{{ getOtherParty(contract).displayName }}</h4>\n        <p md-line>{{ contract.id }}</p>\n    </mat-list-item>\n</mat-list>\n"}]}],"members":{"groupBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"limitTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"getOtherParty":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"createNew":[{"__symbolic":"method"}]}},"NgOnboardingBaseComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"salaxy-onboarding-base","template":"\n    <div>\n      <h1>NgOnboardingBaseComponent</h1>\n      <p>\n        This is a base component withouth user interface.\n        Though we may consider adding a simple basic user interface in the future.\n      </p>\n    </div>\n    "}]}],"members":{"done":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OnboardingService"}]}],"next":[{"__symbolic":"method"}]}},"NgLoginComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"salaxy-login","template":"<span class=\"salaxy-component salaxy-login\">\n    <button *ngIf=\"!isAuthenticated\" md-raised-button (click)=\"signIn()\">Kirjaudu sisään</button>\n    <button *ngIf=\"isAuthenticated\" md-raised-button (click)=\"signOut()\">Kirjaudu ulos</button>\n</span>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"signIn":[{"__symbolic":"method"}],"signOut":[{"__symbolic":"method"}]}},"NgTaxcardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"salaxy-current-tax-card","template":""}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"},{"__symbolic":"reference","module":"ionic-angular","name":"NavController","line":55,"character":27},{"__symbolic":"reference","module":"ionic-angular","name":"NavParams","line":56,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}],"addPreviouslyPaidSalaries":[{"__symbolic":"method"}],"updateTaxCardFieldVisibility":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"NgTaxcardListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"salaxy-tax-card-list","template":""}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"ngOnInit":[{"__symbolic":"method"}],"getTaxCardList":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}]}},"NgWorkerDetailEditComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"salaxy-worker-detail-edit","template":"<!-- TODO: Add back form validation -->\n\n<div *ngIf=\"!(model?.avatar)\">\n    <p>\n    Valitse työntekijä tai luo uusi: <button md-raised-button (click)=\"createNew()\">Luo uusi</button>\n    </p>\n</div>\n<div *ngIf=\"model?.avatar\">\n    <div *ngIf=\"!model.isReadOnly\">\n        <form name=\"workerForm\" class=\"form-horizontal\">\n            <div class=\"salaxy-row\">\n                <div class=\"scol-6\">\n                    <h3>Henkilötiedot</h3>\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Etunimi\" name=\"avatar.firstName\" required [(ngModel)]=\"model.avatar.firstName\">\n                    </mat-input-container>\n                    <mat-input-container md-block>\n                        <input mdInput placeholder=\"Sukunimi\" name=\"avatar.lastName\" required [(ngModel)]=\"model.avatar.lastName\">\n                    </mat-input-container><br />\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Henkilötunnus\" name=\"officialPersonId\" required [(ngModel)]=\"model.officialPersonId\">\n                    </mat-input-container><br />\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Sähköpostiosoite\" name=\"contact.email\" [(ngModel)]=\"model.contact.email\">\n                    </mat-input-container><br />\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Puhelinnumero\" name=\"contact.telephone\" [(ngModel)]=\"model.contact.telephone\">\n                    </mat-input-container><br />\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Katuosoite\" name=\"contact.street\" [(ngModel)]=\"model.contact.street\">\n                    </mat-input-container><br />\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Postinumero\" name=\"contact.postalCode\" [(ngModel)]=\"model.contact.postalCode\">\n                    </mat-input-container>\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Kaupunki\" name=\"contact.city\" [(ngModel)]=\"model.contact.city\">\n                    </mat-input-container>\n                </div>\n                <div class=\"scol-6\">\n                    <h3>Maksutiedot</h3>\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Tilinumero\" name=\"ibanNumber\" [(ngModel)]=\"model.ibanNumber\">\n                    </mat-input-container><br />\n                    <mat-select placeholder=\"Verokortin tyyppi\" [(ngModel)]=\"model.workerInfo.defaultTaxCard.type\" name=\"workerInfo.defaultTaxCard.type\">\n                        <mat-option value=\"example\">Esimerkkiverokortti (kysy tieto myöhemmin)</mat-option>\n                        <mat-option value=\"noTaxCard\">Ei verokorttia (60%)</mat-option>\n                        <mat-option value=\"sideIncome\">Sivutulon verokortti</mat-option>\n                        <mat-option value=\"taxCardA\">Verokortti A</mat-option>\n                        <mat-option value=\"taxCardB\">Verokortti B</mat-option>\n                        <mat-option value=\"freelancer\">Freelancer</mat-option>\n                        <mat-option value=\"others\">Muut tyypit</mat-option>\n                    </mat-select><br />\n                    <mat-input-container>\n                        <input mdInput placeholder=\"Veroprosentti\" [(ngModel)]=\"model.workerInfo.defaultTaxCard.taxPercent\" name=\"workerInfo.defaultTaxCard.taxPercent\">\n                    </mat-input-container><strong>%</strong>\n                    <h3>Työntekijän poistaminen</h3>\n                    <p>\n                    <button (click)=\"delete()\" name=\"delete\" color=\"warn\" type=\"button\" md-raised-button>Poista</button>\n                    </p>\n                </div>\n            </div>\n            <div class=\"salaxy-row\">\n                <button (click)=\"save()\" color=\"primary\" name=\"submit\" md-raised-button>Tallenna muutokset</button>\n            </div>\n        </form>\n    </div>\n    <div *ngIf=\"model.isReadOnly\">\n        <div class=\"salaxy-row\">\n            <div class=\"scol-6\">\n                <h3>Työntekijä on tunnistautunut pankkitunnuksin</h3>\n                <p>\n                Tämä työntekijä on kirjautunut Palkkaus.fi-palveluun ja hallinnoi itse omia henkilötietojaan. Myös verokorttia ja tilinumeroa.\n                </p>\n                <p>\n                Jos näet vääriä tietoja, ole yhteydessä työntekijään tai ota yhteyttä asiakaspalveluumme.\n                </p>\n                <table>\n                    <tr>\n                        <td>Sähköposti:</td>\n                        <td><a href=\"mailto:{{ model.contact.email }}\">{{ model.contact.email }}</a></td>\n                    </tr>\n                    <tr>\n                        <td>Puhelin:</td>\n                        <td>{{ model.contact.telephone }}</td>\n                    </tr>\n                    <tr>\n                        <td>Tilinumero:</td>\n                        <td>{{ model.ibanNumber }}</td>\n                    </tr>\n                    <tr>\n                        <td>Verokortin tyyppi:</td>\n                        <td [ngSwitch]=\"model.workerInfo?.defaultTaxCard.type\">\n                            <span *ngSwitchCase=\"'example'\">Esimerkkiverokortti (kysy tieto myöhemmin)</span>\n                            <span *ngSwitchCase=\"'noTaxCard'\">Ei verokorttia (60%)</span>\n                            <span *ngSwitchCase=\"'sideIncome'\">Sivutulon verokortti</span>\n                            <span *ngSwitchCase=\"'taxCardA'\">Verokortti A</span>\n                            <span *ngSwitchCase=\"'taxCardB'\">Verokortti B</span>\n                            <span *ngSwitchCase=\"'freelancer'\">Freelancer</span>\n                            <span *ngSwitchDefault>Muu verokortti / tuntematon</span>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>Veroprosentti:</td>\n                        <td>{{ model.workerInfo.defaultTaxCard.taxPercent || '-' }} %</td>\n                    </tr>\n                </table>\n            </div>\n        </div>\n    </div>\n\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"createNew":[{"__symbolic":"method"}]}},"NgWorkerListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"salaxy-worker-list","template":"<mat-list>\n    <h3 md-subheader>Työntekijät</h3>\n    <mat-list-item *ngFor=\"let worker of list\" (click)=\"setCurrentId(worker.id)\" class=\"click\">\n        <salaxy-avatar style=\"font-size: 48px;\" [avatar]=\"worker.avatar\" md-list-avatar>></salaxy-avatar>\n        <h4 md-line>{{ worker.avatar.displayName }}</h4>\n        <p md-line>{{ worker.id }}</p>\n    </mat-list-item>\n</mat-list>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"delete":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}]}},"NgWorkersComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"sxdemo-workers","template":"<div style=\"float: right\">\n    Selected:\n\n    <mat-select placeholder=\"List of workers\" [(ngModel)]=\"currentId\" name=\"workerList\">\n        <mat-option *ngFor=\"let worker of workers\" [value]=\"worker.id\">\n            {{ worker.avatar.displayName }}\n        </mat-option>\n    </mat-select>\n    &nbsp;\n    <button md-raised-button (click)=\"createNew()\">Add new</button>\n</div>\n<h1>Workers list</h1>\n<p>\nList of workers using the repository pattern\n</p>\n<div class=\"salaxy-row\">\n    <div class=\"scol-4\">\n        <salaxy-worker-list></salaxy-worker-list>\n    </div>\n    <div class=\"scol-8\">\n        <salaxy-worker-detail-edit></salaxy-worker-detail-edit>\n    </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SalaxyContext"}]}],"createNew":[{"__symbolic":"method"}]}},"ComponentDoneEvent":{"__symbolic":"interface"},"SalaxyNgComponentsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":91,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"NgArticleListComponent"},{"__symbolic":"reference","name":"NgAvatarComponent"},{"__symbolic":"reference","name":"NgCalcChartComponent"},{"__symbolic":"reference","name":"NgCalcDetailComponent"},{"__symbolic":"reference","name":"NgCalcListComponent"},{"__symbolic":"reference","name":"NgCalcListSimpleComponent"},{"__symbolic":"reference","name":"NgCalculationsComponent"},{"__symbolic":"reference","name":"NgCalculatorComponent"},{"__symbolic":"reference","name":"NgContractListComponent"},{"__symbolic":"reference","name":"NgOnboardingBaseComponent"},{"__symbolic":"reference","name":"NgLoginComponent"},{"__symbolic":"reference","name":"NgTaxcardComponent"},{"__symbolic":"reference","name":"NgTaxcardListComponent"},{"__symbolic":"reference","name":"NgWorkerDetailEditComponent"},{"__symbolic":"reference","name":"NgWorkerListComponent"},{"__symbolic":"reference","name":"NgWorkersComponent"},{"__symbolic":"reference","name":"NgValidationMessages"},{"__symbolic":"reference","name":"NgFormTextComponent"},{"__symbolic":"reference","name":"IfRoleDirective"},{"__symbolic":"reference","name":"GroupByPipe"},{"__symbolic":"reference","name":"SafeHtmlPipe"},{"__symbolic":"reference","name":"SalaxyDatePipe"},{"__symbolic":"reference","name":"SalaxyPricePipe"},{"__symbolic":"reference","name":"EmailValidator"},{"__symbolic":"reference","name":"IbanValidator"},{"__symbolic":"reference","name":"MobilePhoneValidator"},{"__symbolic":"reference","name":"PersonalIdFiValidator"},{"__symbolic":"reference","name":"SmsVerificationCodeValidator"}],"exports":[{"__symbolic":"reference","name":"NgArticleListComponent"},{"__symbolic":"reference","name":"NgAvatarComponent"},{"__symbolic":"reference","name":"NgCalcChartComponent"},{"__symbolic":"reference","name":"NgCalcDetailComponent"},{"__symbolic":"reference","name":"NgCalcListComponent"},{"__symbolic":"reference","name":"NgCalcListSimpleComponent"},{"__symbolic":"reference","name":"NgCalculationsComponent"},{"__symbolic":"reference","name":"NgCalculatorComponent"},{"__symbolic":"reference","name":"NgContractListComponent"},{"__symbolic":"reference","name":"NgOnboardingBaseComponent"},{"__symbolic":"reference","name":"NgLoginComponent"},{"__symbolic":"reference","name":"NgTaxcardComponent"},{"__symbolic":"reference","name":"NgTaxcardListComponent"},{"__symbolic":"reference","name":"NgWorkerDetailEditComponent"},{"__symbolic":"reference","name":"NgWorkerListComponent"},{"__symbolic":"reference","name":"NgWorkersComponent"},{"__symbolic":"reference","name":"NgValidationMessages"},{"__symbolic":"reference","name":"NgFormTextComponent"},{"__symbolic":"reference","name":"IfRoleDirective"},{"__symbolic":"reference","name":"GroupByPipe"},{"__symbolic":"reference","name":"SafeHtmlPipe"},{"__symbolic":"reference","name":"SalaxyDatePipe"},{"__symbolic":"reference","name":"SalaxyPricePipe"},{"__symbolic":"reference","name":"EmailValidator"},{"__symbolic":"reference","name":"IbanValidator"},{"__symbolic":"reference","name":"MobilePhoneValidator"},{"__symbolic":"reference","name":"PersonalIdFiValidator"},{"__symbolic":"reference","name":"SmsVerificationCodeValidator"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":98,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":99,"character":8},{"__symbolic":"reference","module":"@angular/http","name":"HttpModule","line":100,"character":8},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":101,"character":8},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"ng2-charts/ng2-charts","name":"ChartsModule","line":103,"character":8}]}]}],"members":{}},"SalaxyNgServicesModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"declarations":[],"exports":[],"imports":[],"providers":[{"__symbolic":"reference","name":"AjaxNg"},{"__symbolic":"reference","name":"ClientNg"},{"__symbolic":"reference","name":"Token"},{"__symbolic":"reference","name":"NgTranslations"},{"__symbolic":"reference","name":"CalculationRepository"},{"__symbolic":"reference","name":"MyProfileRepository"},{"__symbolic":"reference","name":"ProductRepository"},{"__symbolic":"reference","name":"SalaxyContext"},{"__symbolic":"reference","name":"TaxCardRepository"},{"__symbolic":"reference","name":"WorkerRepository"},{"__symbolic":"reference","name":"ContractRepository"},{"__symbolic":"reference","name":"OnboardingService"},{"__symbolic":"reference","name":"SalaxyErrorHandler"}]}]}],"members":{}},"Token":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{}},"AjaxNg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":28,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":9},"arguments":[{"__symbolic":"reference","name":"Token"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":9},"arguments":[{"__symbolic":"reference","name":"SalaxyErrorHandler"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":28,"character":36},{"__symbolic":"reference","name":"Token"},{"__symbolic":"reference","name":"SalaxyErrorHandler"}]}],"getApiAddress":[{"__symbolic":"method"}],"getServerAddress":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"getJSON":[{"__symbolic":"method"}],"getHTML":[{"__symbolic":"method"}],"postJSON":[{"__symbolic":"method"}],"postHTML":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"assureValueIsNumber":[{"__symbolic":"method"}],"getCurrentToken":[{"__symbolic":"method"}],"setCurrentToken":[{"__symbolic":"method"}]}},"ClientNg":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":6,"character":30},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":7,"character":18},"arguments":[{"__symbolic":"reference","name":"AjaxNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Ajax","line":7,"character":39}]}]}},"Settings":{"__symbolic":"interface"},"SalaxyErrorHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":5,"character":40},"members":{"__ctor__":[{"__symbolic":"constructor"}],"handleError":[{"__symbolic":"method"}]}},"NgTranslations":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":9},"arguments":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":18,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":18,"character":56}]}],"get":[{"__symbolic":"method"}],"addDictionaryToModule":[{"__symbolic":"method"}],"setLanguage":[{"__symbolic":"method"}]}},"CalculationRepository":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":24,"character":42}]}],"init":[{"__symbolic":"method"}],"reloadList":[{"__symbolic":"method"}],"getBlank":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"newCurrent":[{"__symbolic":"method"}],"saveCurrent":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"recalculateCurrent":[{"__symbolic":"method"}],"setUnionPayment":[{"__symbolic":"method"}],"onChange":[{"__symbolic":"method"}]}},"IRepository":{"__symbolic":"interface"},"MyProfileRepository":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":33,"character":42}]}],"init":[{"__symbolic":"method"}],"reloadMyProfile":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"getJobsForEdit":[{"__symbolic":"method"}],"getCitiesForEdit":[{"__symbolic":"method"}]}},"ProductRepository":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":54,"character":42}]}],"init":[{"__symbolic":"method"}],"getBlank":[{"__symbolic":"method"}],"getProductByType":[{"__symbolic":"method"}],"getProductById":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"newCurrent":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"saveCurrent":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"reloadList":[{"__symbolic":"method"}]}},"SalaxyContext":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}],null,null,null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":37,"character":34},{"__symbolic":"reference","name":"CalculationRepository"},{"__symbolic":"reference","name":"WorkerRepository"},{"__symbolic":"reference","name":"ContractRepository"},{"__symbolic":"reference","name":"TaxCardRepository"},{"__symbolic":"reference","name":"ProductRepository"},{"__symbolic":"reference","name":"MyProfileRepository"},{"__symbolic":"reference","name":"Token"}]}],"setToken":[{"__symbolic":"method"}]}},"TaxCardRepository":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":30,"character":42}]}],"init":[{"__symbolic":"method"}],"reloadList":[{"__symbolic":"method"}],"getActiveCardForCurrentUser":[{"__symbolic":"method"}],"getList":[{"__symbolic":"method"}],"getBlank":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"newCurrent":[{"__symbolic":"method"}],"saveCurrent":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getLatestTaxCard":[{"__symbolic":"method"}]}},"WorkerRepository":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":22,"character":42}]}],"init":[{"__symbolic":"method"}],"reloadList":[{"__symbolic":"method"}],"getBlank":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"newCurrent":[{"__symbolic":"method"}],"saveCurrent":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}]}},"ContractRepository":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":22,"character":42}]}],"init":[{"__symbolic":"method"}],"reloadList":[{"__symbolic":"method"}],"getBlank":[{"__symbolic":"method"}],"setCurrentId":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"newCurrent":[{"__symbolic":"method"}],"saveCurrent":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getPreview":[{"__symbolic":"method"}],"getPreviewUrl":[{"__symbolic":"method"}]}},"SessionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}],null],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":38,"character":42},{"__symbolic":"reference","name":"Token"}]}],"isInRole":[{"__symbolic":"method"}],"isInRoles":[{"__symbolic":"method"}],"getServerAddress":[{"__symbolic":"method"}],"checkSession":[{"__symbolic":"method"}],"signIn":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"signOut":[{"__symbolic":"method"}],"switchRole":[{"__symbolic":"method"}],"addCustomRole":[{"__symbolic":"method"}]}},"OnboardingService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":5},"arguments":[{"__symbolic":"reference","name":"ClientNg"}]}]],"parameters":[{"__symbolic":"reference","module":"@salaxy/core","name":"Client","line":13,"character":38}]}],"getBlank":[{"__symbolic":"method"}],"newCurrent":[{"__symbolic":"method"}],"saveCurrent":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"loadSingle":[{"__symbolic":"method"}],"sendSmsVerificationPin":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":87,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/material","name":"MatAutocompleteModule","line":46,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":47,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonToggleModule","line":48,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCardModule","line":49,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCheckboxModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatChipsModule","line":51,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCommonModule","line":52,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDatepickerModule","line":53,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":54,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDividerModule","line":55,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatExpansionModule","line":56,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatGridListModule","line":58,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatLineModule","line":61,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatListModule","line":62,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatMenuModule","line":63,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatNativeDateModule","line":64,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatOptionModule","line":65,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":66,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressBarModule","line":67,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":68,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPseudoCheckboxModule","line":69,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatRadioModule","line":70,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatRippleModule","line":71,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":72,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSidenavModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSliderModule","line":74,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSlideToggleModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBarModule","line":76,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSortModule","line":77,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatStepperModule","line":78,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":79,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":80,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatToolbarModule","line":81,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":82,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"NativeDateModule","line":83,"character":4}],"exports":[{"__symbolic":"reference","module":"@angular/material","name":"MatAutocompleteModule","line":46,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":47,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonToggleModule","line":48,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCardModule","line":49,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCheckboxModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatChipsModule","line":51,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCommonModule","line":52,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDatepickerModule","line":53,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":54,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDividerModule","line":55,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatExpansionModule","line":56,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatGridListModule","line":58,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatLineModule","line":61,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatListModule","line":62,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatMenuModule","line":63,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatNativeDateModule","line":64,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatOptionModule","line":65,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":66,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressBarModule","line":67,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":68,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPseudoCheckboxModule","line":69,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatRadioModule","line":70,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatRippleModule","line":71,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":72,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSidenavModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSliderModule","line":74,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSlideToggleModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBarModule","line":76,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSortModule","line":77,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatStepperModule","line":78,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":79,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":80,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatToolbarModule","line":81,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":82,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"NativeDateModule","line":83,"character":4}],"declarations":[]}]}],"members":{}}},"origins":{"IfRoleDirective":"./directives/salaxyIfRole","GroupByPipe":"./pipes/groupBy","SafeHtmlPipe":"./pipes/safeHtml","SalaxyDatePipe":"./pipes/date","SalaxyPricePipe":"./pipes/price","EmailValidator":"./validators/email.validator","IbanValidator":"./validators/iban.validator","MobilePhoneValidator":"./validators/mobile-phone.validator","PersonalIdFiValidator":"./validators/personal-id-fi.validator","SmsVerificationCodeValidator":"./validators/sms-verification-code.validator","ElementBase":"./components/formControls/ElementBase","NgFormTextComponent":"./components/formControls/form-text","ValidationResult":"./components/formControls/validate","AsyncValidatorArray":"./components/formControls/validate","ValidatorArray":"./components/formControls/validate","composeValidators":"./components/formControls/validate","validate":"./components/formControls/validate","message":"./components/formControls/validate","NgValidationMessages":"./components/formControls/validation.component","ValueAccessorBase":"./components/formControls/ValueAccessorBase","NgAvatarComponent":"./components/avatar/avatar","NgCalcChartComponent":"./components/calc/calc-chart/calc-chart","NgCalcDetailComponent":"./components/calc/calc-detail/calc-detail","NgCalcListComponent":"./components/calc/calc-list/calc-list","NgCalcListSimpleComponent":"./components/calc/calc-list-simple/calc-list-simple","NgCalculationsComponent":"./components/calc/calculations/calculations","NgCalculatorComponent":"./components/calc/calculator/calculator","NgArticleListComponent":"./components/cms/article-list","NgContractListComponent":"./components/contract/contract-list","NgOnboardingBaseComponent":"./components/onboarding/onboarding-base","NgLoginComponent":"./components/session/login","NgTaxcardComponent":"./components/taxcard/current-tax-card/taxcard","NgTaxcardListComponent":"./components/taxcard/tax-card-list/taxcardlist","NgWorkerDetailEditComponent":"./components/worker/worker-detail-edit/worker-detail-edit","NgWorkerListComponent":"./components/worker/worker-list/worker-list","NgWorkersComponent":"./components/worker/workers/workers","ComponentDoneEvent":"./components/ComponentDoneEvent","SalaxyNgComponentsModule":"./components/components.module","SalaxyNgServicesModule":"./services/services.module","Token":"./services/api/Token","AjaxNg":"./services/api/AjaxNg","ClientNg":"./services/api/ClientNg","Settings":"./services/api/Settings","SalaxyErrorHandler":"./services/errors/SalaxyErrorHandler","NgTranslations":"./services/infra/NgTranslations","CalculationRepository":"./services/repositories/CalculationRepository","IRepository":"./services/repositories/IRepository","MyProfileRepository":"./services/repositories/MyProfileRepository","ProductRepository":"./services/repositories/ProductRepository","SalaxyContext":"./services/repositories/SalaxyContext","TaxCardRepository":"./services/repositories/TaxCardRepository","WorkerRepository":"./services/repositories/WorkerRepository","ContractRepository":"./services/repositories/ContractRepository","SessionService":"./services/account/SessionService","OnboardingService":"./services/account/OnboardingService","ɵa":"./components/material/material.module"},"importAs":"@salaxy/ng"}