@senior-gestao-pessoas/payroll-core 8.5.4 → 8.6.1-ab5b70ca-0100-4d72-a714-b27af24c7a35

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/bundles/senior-gestao-pessoas-payroll-core.umd.js +350 -2
  2. package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
  3. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
  4. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/data-list-rest/data-list-rest.component.js +10 -2
  6. package/esm2015/lib/components/from-to/from-to.component.js +25 -0
  7. package/esm2015/lib/components/from-to/from-to.module.js +22 -0
  8. package/esm2015/lib/components/from-to/index.js +8 -0
  9. package/esm2015/lib/components/utils/validations.js +11 -1
  10. package/esm2015/lib/services/form-comparator.service.js +208 -0
  11. package/esm2015/lib/services/services.module.js +4 -2
  12. package/esm2015/public_api.js +4 -2
  13. package/esm2015/senior-gestao-pessoas-payroll-core.js +2 -2
  14. package/esm5/lib/components/data-list-rest/data-list-rest.component.js +10 -2
  15. package/esm5/lib/components/from-to/from-to.component.js +28 -0
  16. package/esm5/lib/components/from-to/from-to.module.js +26 -0
  17. package/esm5/lib/components/from-to/index.js +8 -0
  18. package/esm5/lib/components/utils/validations.js +11 -1
  19. package/esm5/lib/services/form-comparator.service.js +278 -0
  20. package/esm5/lib/services/services.module.js +4 -2
  21. package/esm5/public_api.js +4 -2
  22. package/esm5/senior-gestao-pessoas-payroll-core.js +2 -2
  23. package/fesm2015/senior-gestao-pessoas-payroll-core.js +274 -3
  24. package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
  25. package/fesm5/senior-gestao-pessoas-payroll-core.js +347 -3
  26. package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
  27. package/lib/components/data-list-rest/data-list-rest.component.d.ts +2 -0
  28. package/lib/components/from-to/from-to.component.d.ts +5 -0
  29. package/lib/components/from-to/from-to.module.d.ts +2 -0
  30. package/lib/components/from-to/index.d.ts +2 -0
  31. package/lib/components/utils/validations.d.ts +1 -0
  32. package/lib/services/form-comparator.service.d.ts +36 -0
  33. package/locale/en-US.json +4 -1
  34. package/locale/es-ES.json +4 -1
  35. package/locale/pt-BR.json +4 -1
  36. package/package.json +1 -1
  37. package/public_api.d.ts +2 -0
  38. package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
@@ -18,6 +18,8 @@ var DataListRestComponent = /** @class */ (function () {
18
18
  this.first = 1;
19
19
  this.alwaysShowPaginator = true;
20
20
  this.sortMode = 'multiple';
21
+ this.responsive = true;
22
+ this.scrollable = false;
21
23
  this.lazyLoad = new EventEmitter();
22
24
  this.loadingChange = new EventEmitter();
23
25
  this.listDataChange = new EventEmitter();
@@ -265,7 +267,7 @@ var DataListRestComponent = /** @class */ (function () {
265
267
  DataListRestComponent.decorators = [
266
268
  { type: Component, args: [{
267
269
  selector: 'c-data-list-rest',
268
- template: "<div *sLoadingState=\"loading\">\n <p-table #dataListTable [id]=\"id\" class=\"sds-list\" [value]=\"listData\" [columns]=\"columns\" [paginator]=\"paginator\" [rows]=\"rows\" [first]=\"first\"\n (onLazyLoad)=\"onLazyLoad($event)\" [lazy]=\"lazy\" [alwaysShowPaginator]=\"alwaysShowPaginator\" (onPage)=\"pagination($event)\"\n [totalRecords]=\"totalRecords\" [(selection)]=\"selectedData\" [dataKey]=\"dataKey\" [sortMode]=\"sortMode\" [responsive]=\"true\"\n pageLinks=\"3\" (onHeaderCheckboxToggle)=\"onHeaderCheckboxToggle($event)\" [selectionMode]=\"selectionMode\">\n <!-- Header -->\n <ng-template pTemplate=\"header\">\n <!-- Cabe\u00E7alhos quando da table \u00E9 permitido ordenar as colunas -->\n <tr>\n <!-- Checkbox quando h\u00E1 sele\u00E7\u00E3o de linhas -->\n <th id=\"{{id}}-checkbox-header\" *ngIf=\"isMultipleSelection\" style=\"width: 2.25em\">\n <p-tableHeaderCheckbox *ngIf=\"showHeaderCheckBox\"></p-tableHeaderCheckbox>\n </th>\n <!-- Cabe\u00E7alhos das colunas da tabela -->\n <th id=\"{{id}}-col-header-{{i}}\" *ngFor=\"let col of columns; let i = index\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"!isSortable || !!col.icon\"\n [style.width]=\"col.width\" [pTooltip]=\"col.tooltip || col.label\" tooltipPosition=\"top\" showDelay=\"500\">\n {{col['label']}}\n <!-- Quando a coluna \u00E9 um \u00EDcone n\u00E3o exibe o \u00EDcone de ordena\u00E7\u00E3o da mesma -->\n <p-sortIcon *ngIf=\"isSortable && !col.icon\" [field]=\"col.field\"></p-sortIcon>\n </th>\n <!-- Cabe\u00E7alho da coluna de a\u00E7\u00F5es -->\n <th id=\"col-actions\" *ngIf=\"actions && actions()?.length\" [ngClass]=\"{ actionsSize: actions().length > 1, actionSize: actions().length === 1 }\"></th>\n </tr>\n </ng-template>\n <!-- Body -->\n <ng-template pTemplate=\"body\" let-rowData let-key=\"rowIndex\">\n <tr [pSelectableRow]=\"rowData\">\n <td id=\"{{id}}-checkbox-body-{{key}}\" *ngIf=\"isMultipleSelection\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td id=\"{{id}}-col-body-{{i}}-{{key}}\" *ngFor=\"let col of columns;let i = index\" [pTooltip]=\"col.icon ? '' : getFieldValue(rowData, col)\"\n tooltipPosition=\"top\" showDelay=\"500\">\n <!-- Exibe o \u00EDcone caso exista. Para isso o valor da coluna deve ser { value: string, style: object } -->\n <i *ngIf=\"col.icon\" class=\"{{rowData[col['field']]?.value}}\" [ngStyle]=\"rowData[col['field']]?.style\" aria-hidden=\"true\"></i>\n <!-- Quando n\u00E3o h\u00E1 \u00EDcone exibe o valor normal da coluna -->\n <span>{{getFieldValue(rowData, col)}}</span>\n </td>\n\n <!-- Coluna das a\u00E7\u00F5es -->\n <td id=\"col-actions-{{key}}\" class=\"col-actions\" *ngIf=\"actions && actions(rowData)?.length\">\n <s-button id=\"{{id}}-btn-actions-{{key}}\" *ngIf=\"actions(rowData).length > 1\" [label]=\"actionLabel\" priority=\"default\" [model]=\"getActions(rowData, key)\"\n [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n\n <s-button id=\"{{id}}-btn-action-{{key}}\" *ngIf=\"actions(rowData).length <= 1\" [label]=\"actions(rowData, key)[0].label\" priority=\"default\"\n (click)=\"actions(rowData, key)[0].command()\" [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>{{recordsMessage}}</span>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td id=\"{{id}}-empty-message\" [attr.colspan]=\"columns?.length + (isMultipleSelection ? 2 : 1)\">{{emptyMessage}}</td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n",
270
+ template: "<div *sLoadingState=\"loading\">\n <p-table #dataListTable [id]=\"id\" class=\"sds-list\" [value]=\"listData\" [columns]=\"columns\" [paginator]=\"paginator\" [rows]=\"rows\" [first]=\"first\"\n (onLazyLoad)=\"onLazyLoad($event)\" [lazy]=\"lazy\" [alwaysShowPaginator]=\"alwaysShowPaginator\" (onPage)=\"pagination($event)\"\n [totalRecords]=\"totalRecords\" [(selection)]=\"selectedData\" [dataKey]=\"dataKey\" [sortMode]=\"sortMode\" [responsive]=\"responsive\" [scrollable]=\"scrollable\"\n pageLinks=\"3\" (onHeaderCheckboxToggle)=\"onHeaderCheckboxToggle($event)\" [selectionMode]=\"selectionMode\">\n <!-- Colgroup -->\n <ng-template pTemplate=\"colgroup\" let-coumns>\n <colgroup>\n <col *ngFor=\"let col of columns; let i = index\"\n [ngClass]=\"'col-'+i+' col-scroll-resize'\"/>\n <col [ngClass]=\"'col-'+ (columns?.length || 0) +' col-scroll-resize'\"/>\n </colgroup>\n </ng-template>\n <!-- Header -->\n <ng-template pTemplate=\"header\">\n <!-- Cabe\u00E7alhos quando da table \u00E9 permitido ordenar as colunas -->\n <tr>\n <!-- Checkbox quando h\u00E1 sele\u00E7\u00E3o de linhas -->\n <th id=\"{{id}}-checkbox-header\" *ngIf=\"isMultipleSelection\" style=\"width: 2.25em\">\n <p-tableHeaderCheckbox *ngIf=\"showHeaderCheckBox\"></p-tableHeaderCheckbox>\n </th>\n <!-- Cabe\u00E7alhos das colunas da tabela -->\n <th id=\"{{id}}-col-header-{{i}}\" *ngFor=\"let col of columns; let i = index\" [pSortableColumn]=\"col.field\" [pSortableColumnDisabled]=\"!isSortable || !!col.icon\"\n [style.width]=\"col.width\" [pTooltip]=\"col.tooltip || col.label\" tooltipPosition=\"top\" showDelay=\"500\">\n {{col['label']}}\n <!-- Quando a coluna \u00E9 um \u00EDcone n\u00E3o exibe o \u00EDcone de ordena\u00E7\u00E3o da mesma -->\n <p-sortIcon *ngIf=\"isSortable && !col.icon\" [field]=\"col.field\"></p-sortIcon>\n </th>\n <!-- Cabe\u00E7alho da coluna de a\u00E7\u00F5es -->\n <th id=\"col-actions\" *ngIf=\"actions && actions()?.length\" [ngClass]=\"{ actionsSize: actions().length > 1, actionSize: actions().length === 1 }\"></th>\n </tr>\n </ng-template>\n <!-- Body -->\n <ng-template pTemplate=\"body\" let-rowData let-key=\"rowIndex\">\n <tr [pSelectableRow]=\"rowData\">\n <td id=\"{{id}}-checkbox-body-{{key}}\" *ngIf=\"isMultipleSelection\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td id=\"{{id}}-col-body-{{i}}-{{key}}\" *ngFor=\"let col of columns;let i = index\" [pTooltip]=\"col.icon ? '' : getFieldValue(rowData, col)\"\n tooltipPosition=\"top\" showDelay=\"500\">\n <!-- Exibe o \u00EDcone caso exista. Para isso o valor da coluna deve ser { value: string, style: object } -->\n <i *ngIf=\"col.icon\" class=\"{{rowData[col['field']]?.value}}\" [ngStyle]=\"rowData[col['field']]?.style\" aria-hidden=\"true\"></i>\n <!-- Quando n\u00E3o h\u00E1 \u00EDcone exibe o valor normal da coluna -->\n <span>{{getFieldValue(rowData, col)}}</span>\n </td>\n\n <!-- Coluna das a\u00E7\u00F5es -->\n <td id=\"col-actions-{{key}}\" class=\"col-actions\" *ngIf=\"actions && actions(rowData)?.length\">\n <s-button id=\"{{id}}-btn-actions-{{key}}\" *ngIf=\"actions(rowData).length > 1\" [label]=\"actionLabel\" priority=\"default\" [model]=\"getActions(rowData, key)\"\n [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n\n <s-button id=\"{{id}}-btn-action-{{key}}\" *ngIf=\"actions(rowData).length <= 1\" [label]=\"actions(rowData, key)[0].label\" priority=\"default\"\n (click)=\"actions(rowData, key)[0].command()\" [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>{{recordsMessage}}</span>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td id=\"{{id}}-empty-message\" [attr.colspan]=\"columns?.length + (isMultipleSelection ? 2 : 1)\">{{emptyMessage}}</td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n",
269
271
  encapsulation: ViewEncapsulation.None,
270
272
  providers: [DataListRestService],
271
273
  styles: ["app-data-list p-table .ui-table .ui-table-tbody>tr>td,app-data-list p-table .ui-table .ui-table-thead>tr>th{text-overflow:ellipsis;white-space:nowrap!important}app-data-list p-table .ui-paginator .ui-paginator-right-content{margin-left:auto}.actionsSize{width:11rem}.actionSize{width:18rem}body .ui-tooltip{max-width:22.3em!important}@media screen and (max-width:478px){.ui-paginator-right-content{display:none}}"]
@@ -300,6 +302,8 @@ var DataListRestComponent = /** @class */ (function () {
300
302
  pluralMessageRecords: [{ type: Input }],
301
303
  keyPayload: [{ type: Input }],
302
304
  initParameters: [{ type: Input }],
305
+ responsive: [{ type: Input }],
306
+ scrollable: [{ type: Input }],
303
307
  lazyLoad: [{ type: Output }],
304
308
  loadingChange: [{ type: Output }],
305
309
  listDataChange: [{ type: Output }],
@@ -363,6 +367,10 @@ if (false) {
363
367
  /** @type {?} */
364
368
  DataListRestComponent.prototype.initParameters;
365
369
  /** @type {?} */
370
+ DataListRestComponent.prototype.responsive;
371
+ /** @type {?} */
372
+ DataListRestComponent.prototype.scrollable;
373
+ /** @type {?} */
366
374
  DataListRestComponent.prototype.lazyLoad;
367
375
  /** @type {?} */
368
376
  DataListRestComponent.prototype.loadingChange;
@@ -403,4 +411,4 @@ if (false) {
403
411
  */
404
412
  DataListRestComponent.prototype.dataListService;
405
413
  }
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LXJlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9wYXlyb2xsLWNvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9kYXRhLWxpc3QtcmVzdC9kYXRhLWxpc3QtcmVzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9EO0lBMkVFLCtCQUFvQixlQUFvQztRQUFwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUEzRHhELFNBQUksR0FBRyxFQUFFLENBQUM7UUFNVixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFFVix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFnQjNCLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFpQnRCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkQsdUJBQWtCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0QseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENB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QUM3QiwyQ0FDb0I7O0lBQ3BCLG1EQUM0Qjs7SUFDNUIseUNBQ3NCOztJQUN0Qix5Q0FDaUI7O0lBQ2pCLDZDQUNxQjs7SUFDckIsd0NBQzhEOztJQUM5RCx1REFDK0I7O0lBQy9CLHFEQUM2Qjs7SUFDN0IsMkNBQ21COztJQUNuQiwrQ0FDb0I7O0lBRXBCLHlDQUNpRDs7SUFDakQsOENBQ3NEOztJQUN0RCwrQ0FDdUQ7O0lBQ3ZELG1EQUMyRDs7SUFDM0QscURBQzZEOzs7OztJQUU3RCx5Q0FBMEI7Ozs7O0lBQzFCLDBDQUF5Qjs7Ozs7SUFDekIsOENBQTZCOzs7OztJQUM3QixrREFBK0I7Ozs7O0lBQy9CLDhDQUFzQzs7Ozs7SUFFMUIsZ0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpcmVjdGlvbkVudW1lcmF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcyc7XG5pbXBvcnQgeyBEYXRhTGlzdFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLWxpc3QtcmVzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kYXRhLWxpc3QtcmVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWxpc3QtcmVzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtbGlzdC1yZXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW0RhdGFMaXN0UmVzdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhTGlzdFJlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2RhdGFMaXN0VGFibGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZGF0YUxpc3RUYWJsZTogVGFibGU7XG5cbiAgQElucHV0KClcbiAgaWQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgZGF0YUtleTogc3RyaW5nO1xuICBASW5wdXQoKVxuICByb3dzID0gMTA7XG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBjb2x1bW5zOiBhbnlbXTtcbiAgQElucHV0KClcbiAgcGFnaW5hdG9yID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgZmlyc3QgPSAxO1xuICBASW5wdXQoKVxuICBhbHdheXNTaG93UGFnaW5hdG9yID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgYWN0aW9ucz86IEZ1bmN0aW9uO1xuICBASW5wdXQoKVxuICBhY3Rpb25MYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzZWxlY3Rpb25Nb2RlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGxhenk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGlzTXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGlzU29ydGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNob3dIZWFkZXJDaGVja0JveDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgc29ydE1vZGUgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKVxuICBlbmRwb2ludDogc3RyaW5nO1xuICBASW5wdXQoKVxuICB0b3RhbFJlY29yZHM6IG51bWJlcjtcbiAgQElucHV0KClcbiAgb3JkZXJCeTogeyBmaWVsZDogc3RyaW5nOyBkaXJlY3Rpb246IERpcmVjdGlvbkVudW1lcmF0aW9uIH1bXTtcbiAgQElucHV0KClcbiAgc2luZ3VsYXJNZXNzYWdlUmVjb3Jkczogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwbHVyYWxNZXNzYWdlUmVjb3Jkczogc3RyaW5nO1xuICBASW5wdXQoKVxuICBrZXlQYXlsb2FkOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGluaXRQYXJhbWV0ZXJzOiBhbnk7XG5cbiAgQE91dHB1dCgpXG4gIGxhenlMb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgbGlzdERhdGFDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgc2VsZWN0ZWREYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIGhlYWRlckNoZWNrYm94VG9nZ2xlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuO1xuICBwcml2YXRlIF9saXN0RGF0YTogYW55W107XG4gIHByaXZhdGUgX3NlbGVjdGVkRGF0YTogYW55W107XG4gIHByaXZhdGUgX3NlYXJjaFBhcmFtZXRlcnM6IGFueTtcbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFMaXN0U2VydmljZTogRGF0YUxpc3RSZXN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubGF6eSkge1xuICAgICAgdGhpcy5nZXRsaXN0RGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXRBY3Rpb25zKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoZGF0YSwgaW5kZXgpO1xuICB9XG5cbiAgcGFnaW5hdGlvbihldmVudCkge1xuICAgIGlmICghdGhpcy5sYXp5KSB7XG4gICAgICB0aGlzLmdldGxpc3REYXRhKGV2ZW50LnJvd3MsIE1hdGguZmxvb3IoZXZlbnQuZmlyc3QgLyBldmVudC5yb3dzKSk7XG4gICAgfVxuICB9XG5cbiAgb25MYXp5TG9hZChldmVudCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBpZiAoZXZlbnQubXVsdGlTb3J0TWV0YSAmJiBldmVudC5tdWx0aVNvcnRNZXRhLmxlbmd0aCkge1xuICAgICAgdGhpcy5vcmRlckJ5ID0gPHsgZmllbGQ6IHN0cmluZzsgZGlyZWN0aW9uOiBEaXJlY3Rpb25FbnVtZXJhdGlvbiB9W10+W107XG4gICAgICBldmVudC5tdWx0aVNvcnRNZXRhLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMub3JkZXJCeS5wdXNoKHsgZmllbGQ6IHZhbHVlLmZpZWxkLCBkaXJlY3Rpb246IHZhbHVlLm9yZGVyID09PSAxID8gRGlyZWN0aW9uRW51bWVyYXRpb24uQVNDIDogRGlyZWN0aW9uRW51bWVyYXRpb24uREVTQyB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0bGlzdERhdGEoZXZlbnQucm93cywgTWF0aC5mbG9vcihldmVudC5maXJzdCAvIGV2ZW50LnJvd3MpICsgMSk7XG4gIH1cblxuICBvbkZpbHRlcigpIHtcbiAgICBpZiAodGhpcy5sYXp5KSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0bGlzdERhdGEoKTtcbiAgfVxuXG4gIGdldCByZWNvcmRzTWVzc2FnZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy50b3RhbFJlY29yZHMgfHwgMH0gJHt0aGlzLnRvdGFsUmVjb3JkcyA9PT0gMSA/IHRoaXMuc2luZ3VsYXJNZXNzYWdlUmVjb3JkcyA6IHRoaXMucGx1cmFsTWVzc2FnZVJlY29yZHN9YDtcbiAgfVxuXG4gIGdldGxpc3REYXRhKHNpemUgPSB0aGlzLnJvd3MsIG9mZnNldCA9IHRoaXMuZmlyc3QpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmRwb2ludCkge1xuICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2VcbiAgICAgICAgLmdldExpc3QodGhpcy5lbmRwb2ludCwge1xuICAgICAgICAgIHBhZ2U6IHsgY3VycmVudDogb2Zmc2V0LCBzaXplOiBzaXplLCBvcmRlckJ5OiB0aGlzLm9yZGVyQnkgfSxcbiAgICAgICAgICAuLi50aGlzLmluaXRQYXJhbWV0ZXJzLFxuICAgICAgICAgIC4uLnRoaXMuX3NlYXJjaFBhcmFtZXRlcnMsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiBkYXRhICYmIGRhdGEucmVzdWx0KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubGlzdERhdGEgPSBkYXRhW3RoaXMua2V5UGF5bG9hZF07XG4gICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSBkYXRhLmNvdW50UmVzdWx0O1xuICAgICAgICAgIGlmICh0aGlzLmxhenkpIHtcbiAgICAgICAgICAgIHRoaXMubGF6eUxvYWQuZW1pdCh0aGlzLmxpc3REYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5sYXp5KSB7XG4gICAgICAgIHRoaXMubGF6eUxvYWQuZW1pdCh0aGlzLmxpc3REYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkhlYWRlckNoZWNrYm94VG9nZ2xlKGV2ZW50KSB7XG4gICAgdGhpcy5oZWFkZXJDaGVja2JveFRvZ2dsZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGdldEZpZWxkVmFsdWUocm93RGF0YSwgY29sKSB7XG4gICAgaWYgKGNvbFsnZmllbGQnXSAmJiBjb2xbJ2ZpZWxkJ10uaW5jbHVkZXMoJy4nKSkge1xuICAgICAgY29uc3Qgb2JqZWN0UGF0aCA9IGNvbFsnZmllbGQnXS5zcGxpdCgnLicpO1xuICAgICAgb2JqZWN0UGF0aC5tYXAodmFsdWUgPT4gKHJvd0RhdGEgPSByb3dEYXRhICYmIHJvd0RhdGFbdmFsdWVdKSk7XG4gICAgICByZXR1cm4gcm93RGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd0RhdGFbY29sWydmaWVsZCddXTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwYXJhbWV0ZXJzKHNlYXJjaFBhcmFtZXRlcnM6IGFueSkge1xuICAgIGlmIChzZWFyY2hQYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLl9zZWFyY2hQYXJhbWV0ZXJzID0geyAuLi5zZWFyY2hQYXJhbWV0ZXJzIH07XG5cbiAgICAgIGlmICh0aGlzLmRhdGFMaXN0VGFibGUpIHtcbiAgICAgICAgdGhpcy5kYXRhTGlzdFRhYmxlLmZpcnN0ID0gMDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vbkZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRoaXMuX2xvYWRpbmcpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICBzZXQgbGlzdERhdGEodmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fbGlzdERhdGEgPSB2YWx1ZTtcbiAgICB0aGlzLmxpc3REYXRhQ2hhbmdlLmVtaXQodGhpcy5fbGlzdERhdGEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxpc3REYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0RGF0YTtcbiAgfVxuXG4gIHNldCBzZWxlY3RlZERhdGEodmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWREYXRhID0gdmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZERhdGEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRhO1xuICB9XG59XG4iXX0=
414
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LXJlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9wYXlyb2xsLWNvcmUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9kYXRhLWxpc3QtcmVzdC9kYXRhLWxpc3QtcmVzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9EO0lBK0VFLCtCQUFvQixlQUFvQztRQUFwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUEvRHhELFNBQUksR0FBRyxFQUFFLENBQUM7UUFNVixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFFVix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFnQjNCLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFnQnRCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakQsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RCxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELHVCQUFrQixHQUFzQixJQUFJ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QzJCOztJQUMzQix3Q0FDbUI7O0lBQ25CLDRDQUNvQjs7SUFDcEIsOENBQ3NCOztJQUN0QixxQ0FDYzs7SUFDZCxvREFDNkI7O0lBQzdCLDJDQUNvQjs7SUFDcEIsbURBQzRCOztJQUM1Qix5Q0FDc0I7O0lBQ3RCLHlDQUNpQjs7SUFDakIsNkNBQ3FCOztJQUNyQix3Q0FDOEQ7O0lBQzlELHVEQUMrQjs7SUFDL0IscURBQzZCOztJQUM3QiwyQ0FDbUI7O0lBQ25CLCtDQUNvQjs7SUFDcEIsMkNBQ2tCOztJQUNsQiwyQ0FDbUI7O0lBRW5CLHlDQUNpRDs7SUFDakQsOENBQ3NEOztJQUN0RCwrQ0FDdUQ7O0lBQ3ZELG1EQUMyRDs7SUFDM0QscURBQzZEOzs7OztJQUU3RCx5Q0FBMEI7Ozs7O0lBQzFCLDBDQUF5Qjs7Ozs7SUFDekIsOENBQTZCOzs7OztJQUM3QixrREFBK0I7Ozs7O0lBQy9CLDhDQUFzQzs7Ozs7SUFFMUIsZ0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpcmVjdGlvbkVudW1lcmF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcyc7XG5pbXBvcnQgeyBEYXRhTGlzdFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLWxpc3QtcmVzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kYXRhLWxpc3QtcmVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWxpc3QtcmVzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtbGlzdC1yZXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW0RhdGFMaXN0UmVzdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhTGlzdFJlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2RhdGFMaXN0VGFibGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZGF0YUxpc3RUYWJsZTogVGFibGU7XG5cbiAgQElucHV0KClcbiAgaWQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgZGF0YUtleTogc3RyaW5nO1xuICBASW5wdXQoKVxuICByb3dzID0gMTA7XG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBjb2x1bW5zOiBhbnlbXTtcbiAgQElucHV0KClcbiAgcGFnaW5hdG9yID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgZmlyc3QgPSAxO1xuICBASW5wdXQoKVxuICBhbHdheXNTaG93UGFnaW5hdG9yID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgYWN0aW9ucz86IEZ1bmN0aW9uO1xuICBASW5wdXQoKVxuICBhY3Rpb25MYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzZWxlY3Rpb25Nb2RlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGxhenk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGlzTXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGlzU29ydGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNob3dIZWFkZXJDaGVja0JveDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgc29ydE1vZGUgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKVxuICBlbmRwb2ludDogc3RyaW5nO1xuICBASW5wdXQoKVxuICB0b3RhbFJlY29yZHM6IG51bWJlcjtcbiAgQElucHV0KClcbiAgb3JkZXJCeTogeyBmaWVsZDogc3RyaW5nOyBkaXJlY3Rpb246IERpcmVjdGlvbkVudW1lcmF0aW9uIH1bXTtcbiAgQElucHV0KClcbiAgc2luZ3VsYXJNZXNzYWdlUmVjb3Jkczogc3RyaW5nO1xuICBASW5wdXQoKVxuICBwbHVyYWxNZXNzYWdlUmVjb3Jkczogc3RyaW5nO1xuICBASW5wdXQoKVxuICBrZXlQYXlsb2FkOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGluaXRQYXJhbWV0ZXJzOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHJlc3BvbnNpdmUgPSB0cnVlO1xuICBASW5wdXQoKVxuICBzY3JvbGxhYmxlID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIGxhenlMb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgbGlzdERhdGFDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgc2VsZWN0ZWREYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIGhlYWRlckNoZWNrYm94VG9nZ2xlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuO1xuICBwcml2YXRlIF9saXN0RGF0YTogYW55W107XG4gIHByaXZhdGUgX3NlbGVjdGVkRGF0YTogYW55W107XG4gIHByaXZhdGUgX3NlYXJjaFBhcmFtZXRlcnM6IGFueTtcbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFMaXN0U2VydmljZTogRGF0YUxpc3RSZXN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubGF6eSkge1xuICAgICAgdGhpcy5nZXRsaXN0RGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXRBY3Rpb25zKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoZGF0YSwgaW5kZXgpO1xuICB9XG5cbiAgcGFnaW5hdGlvbihldmVudCkge1xuICAgIGlmICghdGhpcy5sYXp5KSB7XG4gICAgICB0aGlzLmdldGxpc3REYXRhKGV2ZW50LnJvd3MsIE1hdGguZmxvb3IoZXZlbnQuZmlyc3QgLyBldmVudC5yb3dzKSk7XG4gICAgfVxuICB9XG5cbiAgb25MYXp5TG9hZChldmVudCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBpZiAoZXZlbnQubXVsdGlTb3J0TWV0YSAmJiBldmVudC5tdWx0aVNvcnRNZXRhLmxlbmd0aCkge1xuICAgICAgdGhpcy5vcmRlckJ5ID0gPHsgZmllbGQ6IHN0cmluZzsgZGlyZWN0aW9uOiBEaXJlY3Rpb25FbnVtZXJhdGlvbiB9W10+W107XG4gICAgICBldmVudC5tdWx0aVNvcnRNZXRhLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMub3JkZXJCeS5wdXNoKHsgZmllbGQ6IHZhbHVlLmZpZWxkLCBkaXJlY3Rpb246IHZhbHVlLm9yZGVyID09PSAxID8gRGlyZWN0aW9uRW51bWVyYXRpb24uQVNDIDogRGlyZWN0aW9uRW51bWVyYXRpb24uREVTQyB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0bGlzdERhdGEoZXZlbnQucm93cywgTWF0aC5mbG9vcihldmVudC5maXJzdCAvIGV2ZW50LnJvd3MpICsgMSk7XG4gIH1cblxuICBvbkZpbHRlcigpIHtcbiAgICBpZiAodGhpcy5sYXp5KSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0bGlzdERhdGEoKTtcbiAgfVxuXG4gIGdldCByZWNvcmRzTWVzc2FnZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy50b3RhbFJlY29yZHMgfHwgMH0gJHt0aGlzLnRvdGFsUmVjb3JkcyA9PT0gMSA/IHRoaXMuc2luZ3VsYXJNZXNzYWdlUmVjb3JkcyA6IHRoaXMucGx1cmFsTWVzc2FnZVJlY29yZHN9YDtcbiAgfVxuXG4gIGdldGxpc3REYXRhKHNpemUgPSB0aGlzLnJvd3MsIG9mZnNldCA9IHRoaXMuZmlyc3QpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmRwb2ludCkge1xuICAgICAgdGhpcy5kYXRhTGlzdFNlcnZpY2VcbiAgICAgICAgLmdldExpc3QodGhpcy5lbmRwb2ludCwge1xuICAgICAgICAgIHBhZ2U6IHsgY3VycmVudDogb2Zmc2V0LCBzaXplOiBzaXplLCBvcmRlckJ5OiB0aGlzLm9yZGVyQnkgfSxcbiAgICAgICAgICAuLi50aGlzLmluaXRQYXJhbWV0ZXJzLFxuICAgICAgICAgIC4uLnRoaXMuX3NlYXJjaFBhcmFtZXRlcnMsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiBkYXRhICYmIGRhdGEucmVzdWx0KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubGlzdERhdGEgPSBkYXRhW3RoaXMua2V5UGF5bG9hZF07XG4gICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSBkYXRhLmNvdW50UmVzdWx0O1xuICAgICAgICAgIGlmICh0aGlzLmxhenkpIHtcbiAgICAgICAgICAgIHRoaXMubGF6eUxvYWQuZW1pdCh0aGlzLmxpc3REYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5sYXp5KSB7XG4gICAgICAgIHRoaXMubGF6eUxvYWQuZW1pdCh0aGlzLmxpc3REYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkhlYWRlckNoZWNrYm94VG9nZ2xlKGV2ZW50KSB7XG4gICAgdGhpcy5oZWFkZXJDaGVja2JveFRvZ2dsZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGdldEZpZWxkVmFsdWUocm93RGF0YSwgY29sKSB7XG4gICAgaWYgKGNvbFsnZmllbGQnXSAmJiBjb2xbJ2ZpZWxkJ10uaW5jbHVkZXMoJy4nKSkge1xuICAgICAgY29uc3Qgb2JqZWN0UGF0aCA9IGNvbFsnZmllbGQnXS5zcGxpdCgnLicpO1xuICAgICAgb2JqZWN0UGF0aC5tYXAodmFsdWUgPT4gKHJvd0RhdGEgPSByb3dEYXRhICYmIHJvd0RhdGFbdmFsdWVdKSk7XG4gICAgICByZXR1cm4gcm93RGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd0RhdGFbY29sWydmaWVsZCddXTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwYXJhbWV0ZXJzKHNlYXJjaFBhcmFtZXRlcnM6IGFueSkge1xuICAgIGlmIChzZWFyY2hQYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLl9zZWFyY2hQYXJhbWV0ZXJzID0geyAuLi5zZWFyY2hQYXJhbWV0ZXJzIH07XG5cbiAgICAgIGlmICh0aGlzLmRhdGFMaXN0VGFibGUpIHtcbiAgICAgICAgdGhpcy5kYXRhTGlzdFRhYmxlLmZpcnN0ID0gMDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vbkZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRoaXMuX2xvYWRpbmcpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICBzZXQgbGlzdERhdGEodmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fbGlzdERhdGEgPSB2YWx1ZTtcbiAgICB0aGlzLmxpc3REYXRhQ2hhbmdlLmVtaXQodGhpcy5fbGlzdERhdGEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxpc3REYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0RGF0YTtcbiAgfVxuXG4gIHNldCBzZWxlY3RlZERhdGEodmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWREYXRhID0gdmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZERhdGEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRhO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/from-to/from-to.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Component, Input } from "@angular/core";
7
+ var FromToComponent = /** @class */ (function () {
8
+ function FromToComponent() {
9
+ }
10
+ FromToComponent.decorators = [
11
+ { type: Component, args: [{
12
+ selector: "from-to",
13
+ template: "<div id=\"from-to\" class=\"ui-g ui-fluid\" *ngIf=\"divergentFormData\">\n <div class=\"ui-g-12\">\n <!-- Painel Collapsable -->\n <p-panel\n class=\"ui-g-12 ui-fluid form-group\"\n header=\"{{ 'hcm.payroll.disagreements' | translate }}\"\n [toggleable]=\"true\"\n [collapsed]=\"false\"\n >\n <section id=\"from-to-content\" class=\"ui-g ui-fluid form-group\">\n <!-- INICIO DE SE\u00C7\u00C3O: DE (ANTES): -->\n <p-panel class=\"ui-g-6 ui-fluid form-group\" header=\"{{ 'hcm.payroll.from' | translate }}\">\n <section id=\"from-content\" class=\"ui-g ui-fluid\">\n <ng-container *ngFor=\"let divergence of divergentFormData\">\n <div class=\"ui-g-6\">\n <label for=\"{{divergence.key}}-from\">{{ divergence.key }}</label>\n <input\n pInputText\n type=\"text\"\n name=\"{{divergence.key}}-from\"\n id=\"{{divergence.key}}-from\"\n value=\"{{ divergence.oldValue }}\"\n />\n\n </div>\n </ng-container>\n </section>\n </p-panel>\n <!-- FINAL DE SE\u00C7\u00C3O: DE (ANTES): -->\n\n <!-- INICIO DE SE\u00C7\u00C3O: PARA (DEPOIS): -->\n <p-panel class=\"ui-g-6 ui-fluid form-group\" header=\"{{ 'hcm.payroll.to' | translate }}\">\n <section id=\"to-content\" class=\"ui-g ui-fluid\">\n <ng-container *ngFor=\"let divergence of divergentFormData\">\n <div class=\"ui-g-6\">\n <label for=\"{{divergence.key}}-to\">{{ divergence.key }}</label>\n <input\n pInputText\n type=\"text\"\n name=\"{{divergence.key}}-to\"\n id=\"{{divergence.key}}-to\"\n value=\"{{ divergence.newValue }}\"\n />\n </div>\n </ng-container>\n </section>\n </p-panel>\n <!-- FINAL DE SE\u00C7\u00C3O: PARA (DEPOIS): -->\n </section>\n </p-panel>\n </div>\n</div>\n"
14
+ }] }
15
+ ];
16
+ /** @nocollapse */
17
+ FromToComponent.ctorParameters = function () { return []; };
18
+ FromToComponent.propDecorators = {
19
+ divergentFormData: [{ type: Input }]
20
+ };
21
+ return FromToComponent;
22
+ }());
23
+ export { FromToComponent };
24
+ if (false) {
25
+ /** @type {?} */
26
+ FromToComponent.prototype.divergentFormData;
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS10by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zyb20tdG8vZnJvbS10by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRDtJQVFJO0lBQWUsQ0FBQzs7Z0JBUm5CLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsbW5GQUF1QztpQkFDMUM7Ozs7O29DQUVJLEtBQUs7O0lBSVYsc0JBQUM7Q0FBQSxBQVRELElBU0M7U0FMWSxlQUFlOzs7SUFDeEIsNENBQ3FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEaXZlcmdlbmNlQXJyYXkgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZm9ybS1jb21wYXJhdG9yLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiZnJvbS10b1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZnJvbS10by5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBGcm9tVG9Db21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgZGl2ZXJnZW50Rm9ybURhdGE6IERpdmVyZ2VuY2VBcnJheVtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/from-to/from-to.module.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { NgModule } from "@angular/core";
7
+ import { CommonModule } from "@angular/common";
8
+ import { FromToComponent } from "./from-to.component";
9
+ import { PanelModule } from "primeng/panel";
10
+ import { TranslateModule } from "@ngx-translate/core";
11
+ import { ReactiveFormsModule } from "@angular/forms";
12
+ import { InputTextModule } from "primeng/inputtext";
13
+ var FromToModule = /** @class */ (function () {
14
+ function FromToModule() {
15
+ }
16
+ FromToModule.decorators = [
17
+ { type: NgModule, args: [{
18
+ imports: [CommonModule, PanelModule, TranslateModule, ReactiveFormsModule, InputTextModule],
19
+ declarations: [FromToComponent],
20
+ exports: [FromToComponent],
21
+ },] }
22
+ ];
23
+ return FromToModule;
24
+ }());
25
+ export { FromToModule };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS10by5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zyb20tdG8vZnJvbS10by5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBEO0lBQUE7SUFLMkIsQ0FBQzs7Z0JBTDNCLFFBQVEsU0FBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUM7b0JBQzNGLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3Qjs7SUFDMEIsbUJBQUM7Q0FBQSxBQUw1QixJQUs0QjtTQUFmLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGcm9tVG9Db21wb25lbnQgfSBmcm9tIFwiLi9mcm9tLXRvLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGFuZWxNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9wYW5lbFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2lucHV0dGV4dFwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBhbmVsTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIElucHV0VGV4dE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbRnJvbVRvQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbRnJvbVRvQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRnJvbVRvTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/from-to/index.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ export { FromToComponent } from './from-to.component';
7
+ export { FromToModule } from './from-to.module';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zyb20tdG8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnQ0FBYyxxQkFBcUIsQ0FBQztBQUNwQyw2QkFBYyxrQkFBa0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZnJvbS10by5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mcm9tLXRvLm1vZHVsZSdcbiJdfQ==
@@ -122,6 +122,16 @@ export function containsSpecialCharacters(fullName) {
122
122
  var regex = /[[\]!@#$%&*_+=`´{}^~<>.,:;?|()\/\\-]/;
123
123
  return !regex.test(fullName);
124
124
  }
125
+ /**
126
+ * @param {?} msg
127
+ * @return {?}
128
+ */
129
+ export function removeWhiteSpaces(msg) {
130
+ if (msg && String(msg)) {
131
+ return String(msg).replace(/\s/g, "");
132
+ }
133
+ return String(msg);
134
+ }
125
135
  /**
126
136
  * @param {?} pis
127
137
  * @return {?}
@@ -228,4 +238,4 @@ export function isDateCompare(momentDate, momentDateCompare, compare) {
228
238
  }
229
239
  return true;
230
240
  }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3V0aWxzL3ZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7O0lBRTVCLE1BQU0sR0FBRyxPQUFPOzs7OztBQUV0QixNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQUs7SUFDOUIsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDbkUsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRztJQUM5QixPQUFPLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0FBQzdCLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLOztRQUN0QixLQUFLLEdBQUcsT0FBTztJQUNyQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0IsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQUs7SUFDNUIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQy9CLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFLO0lBQ2hDLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsR0FBRztJQUFDLGFBQU07U0FBTixVQUFNLEVBQU4scUJBQU0sRUFBTixJQUFNO1FB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QWUsQ0FBQyxlQUFlLEVBQUUsV0FBVztJQUMxRCxJQUFJLGVBQWUsSUFBSSxXQUFXLEVBQUU7UUFDbEMsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLG9DQUFvQyxDQUFDLHFCQUFxQixFQUFFLFdBQVc7SUFDckYsSUFBSSxxQkFBcUIsSUFBSSxXQUFXLEVBQUU7UUFDeEMsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDekQ7QUFDSCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxpQkFBaUI7SUFDNUQsSUFBSSxpQkFBaUIsRUFBRTs7WUFDZixrQkFBa0IsR0FBRyxNQUFNLEVBQUU7UUFDbkMsT0FBTyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUM1RDtBQUNILENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPO0lBQ2xFLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsSUFBSSxPQUFPLEVBQUU7UUFDdEUsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUMvQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF9tb21lbnQgZnJvbSAnbW9tZW50JztcblxuY29uc3QgbW9tZW50ID0gX21vbWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVxdWlyZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWF4KHZhbHVlLCBtYXgpIHtcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8PSBtYXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICBjb25zdCByZWdleCA9IC9eXFxkKiQvO1xuICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3RFbXB0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPyB2YWx1ZSA6IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyT3JaZXJvKHZhbHVlKSB7XG4gIHJldHVybiBpc051bWJlcihub3RFbXB0eSh2YWx1ZSkpID8gTnVtYmVyLnBhcnNlSW50KHZhbHVlKSA6IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdW4oLi4udmFsKSB7XG4gIHJldHVybiB2YWwucmVkdWNlKChwdiwgY3YpID0+IG51bWJlck9yWmVybyhjdikgKyBwdiwgMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdE5hbWVMZW5ndGhJc1ZhbGlkKG5hbWUpIHtcbiAgY29uc3QgZmlyc3ROYW1lID0gbmFtZS5zcGxpdCgnICcpO1xuICByZXR1cm4gZmlyc3ROYW1lWzBdLnRyaW0oKS5sZW5ndGggPiAwID8gZmlyc3ROYW1lWzBdLnRyaW0oKS5sZW5ndGggPj0gMiA6IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdE5hbWVJc1ZhbGlkKG5hbWUpIHtcbiAgY29uc3QgZmlyc3ROYW1lID0gbmFtZS5zcGxpdCgnICcpO1xuICByZXR1cm4gZmlyc3ROYW1lLmxlbmd0aCA+PSAyICYmIGZpcnN0TmFtZVsxXS5sZW5ndGggPj0gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZ1bGxOYW1lTGVuZ3RoSXNWYWxpZChmdWxsTmFtZSkge1xuICByZXR1cm4gZnVsbE5hbWUubGVuZ3RoIDw9IDcwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNNb3JlVGhhblR3b1JlcGVhdGVkQ2hhcmFjdGVycyhmdWxsTmFtZSkge1xuICBjb25zdCByZWdleCA9IC8oW2EtekEtWl0pXFwxezJ9L2c7XG4gIHJldHVybiAhcmVnZXgudGVzdChmdWxsTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250YWluc01vcmVUaGFuT25lQ29uc2VjdXRpdmVBYmJyZXZpYXRpb24oZnVsbE5hbWUpIHtcbiAgY29uc3QgcmVnZXggPSAvKFxcYi5cXHMpKC5cXHMpKC5cXGIpXFwxPy9nO1xuICByZXR1cm4gIXJlZ2V4LnRlc3QoZnVsbE5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNNb3JlVGhhbk9uZUNvbnNlY3V0aXZlQmxhbmtTcGFjZShmdWxsTmFtZSkge1xuICBjb25zdCByZWdleCA9IC8oXFx3WyBdezIsfVxcdykvO1xuICByZXR1cm4gIXJlZ2V4LnRlc3QoZnVsbE5hbWUpO1xufVxuXG4vKipcbiogVmFsaWRhZGEgc2Ugbm9tZSBuw6NvIGNvbnTDqW0gY2FyYWN0ZXJlcyBlc3BlY2lhaXMuXG4qIEBwYXJhbSBmdWxsTmFtZSBOb21lIGNvbXBsZXRvLlxuKiBAcmV0dXJucyBib29sZWFuIGRlIGFjb3JkbyBjb20gYSB2YWxpZGHDp8Ojby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zU3BlY2lhbENoYXJhY3RlcnMoZnVsbE5hbWUpIHtcbiAgICBjb25zdCByZWdleCA9IC9bW1xcXSFAIyQlJipfKz1gwrR7fV5+PD4uLDo7P3woKVxcL1xcXFwtXS87XG4gICAgcmV0dXJuICFyZWdleC50ZXN0KGZ1bGxOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQSVMocGlzKSB7XG4gIGNvbnN0IG11bHRpcGxpY2Fkb3JCYXNlID0gJzMyOTg3NjU0MzInO1xuICBsZXQgdG90YWwgPSAwO1xuICBsZXQgcmVzdG8gPSAwO1xuICBsZXQgbXVsdGlwbGljYW5kbyA9IDA7XG4gIGxldCBtdWx0aXBsaWNhZG9yID0gMDtcbiAgbGV0IGRpZ2l0byA9IDk5O1xuXG4gIC8vIFJldGlyYSBhIG1hc2NhcmFcbiAgY29uc3QgbnVtZXJvUElTID0gcGlzLnJlcGxhY2UoL1teXFxkXSsvZywgJycpO1xuXG4gIGlmIChcbiAgICBudW1lcm9QSVMubGVuZ3RoICE9PSAxMSB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzAwMDAwMDAwMDAwJyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzExMTExMTExMTExJyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzIyMjIyMjIyMjIyJyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzMzMzMzMzMzMzMzJyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzQ0NDQ0NDQ0NDQ0JyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzU1NTU1NTU1NTU1JyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzY2NjY2NjY2NjY2JyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzc3Nzc3Nzc3Nzc3JyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzg4ODg4ODg4ODg4JyB8fFxuICAgIG51bWVyb1BJUyA9PT0gJzk5OTk5OTk5OTk5J1xuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICBtdWx0aXBsaWNhbmRvID0gcGFyc2VJbnQobnVtZXJvUElTLnN1YnN0cmluZyhpLCBpICsgMSkpO1xuICAgICAgbXVsdGlwbGljYWRvciA9IHBhcnNlSW50KG11bHRpcGxpY2Fkb3JCYXNlLnN1YnN0cmluZyhpLCBpICsgMSkpO1xuICAgICAgdG90YWwgKz0gbXVsdGlwbGljYW5kbyAqIG11bHRpcGxpY2Fkb3I7XG4gICAgfVxuXG4gICAgcmVzdG8gPSAxMSAtICh0b3RhbCAlIDExKTtcbiAgICByZXN0byA9IHJlc3RvID09PSAxMCB8fCByZXN0byA9PT0gMTEgPyAwIDogcmVzdG87XG5cbiAgICBkaWdpdG8gPSBwYXJzZUludCgnJyArIG51bWVyb1BJUy5jaGFyQXQoMTApKTtcbiAgICByZXR1cm4gcmVzdG8gPT09IGRpZ2l0bztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCaXJ0aERhdGUoYmlydGhkYXksIGRhdGUpIHtcbiAgaWYgKGJpcnRoZGF5ICYmIGRhdGUpIHtcbiAgICBjb25zdCBiaXJ0aGRheUNvbXBhcmUgPSBtb21lbnQodHlwZW9mIGJpcnRoZGF5ID09PSAnc3RyaW5nJyA/IGJpcnRoZGF5LnJlcGxhY2UoL1teXFxkXSsvZywgJycpIDogYmlydGhkYXksICdERE1NWVlZWScpXG4gICAgICAuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgIC50b1N0cmluZygpO1xuICAgIGNvbnN0IGRhdGVDb21wYXJlID0gbW9tZW50KGRhdGUucmVwbGFjZSgvW15cXGRdKy9nLCAnJyksICdERE1NWVlZWScpXG4gICAgICAuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgIC50b1N0cmluZygpO1xuICAgIHJldHVybiBtb21lbnQoZGF0ZUNvbXBhcmUpLmlzU2FtZU9yQWZ0ZXIoYmlydGhkYXlDb21wYXJlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCaXJ0aERheVZhbGlkKGJpcnRoZGF5Q29tcGFyZSwgZGF0ZUNvbXBhcmUpIHtcbiAgaWYgKGJpcnRoZGF5Q29tcGFyZSAmJiBkYXRlQ29tcGFyZSkge1xuICAgIHJldHVybiBkYXRlQ29tcGFyZS5pc1NhbWVPckFmdGVyKGJpcnRoZGF5Q29tcGFyZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUV4cGlyYXRpb25CZWZvcmVFeHBlZGl0aW9uRGF0ZShleHBlZGl0aW9uRGF0ZUNvbXBhcmUsIGRhdGVDb21wYXJlKSB7XG4gIGlmIChleHBlZGl0aW9uRGF0ZUNvbXBhcmUgJiYgZGF0ZUNvbXBhcmUpIHtcbiAgICByZXR1cm4gZGF0ZUNvbXBhcmUuaXNTYW1lT3JBZnRlcihleHBlZGl0aW9uRGF0ZUNvbXBhcmUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVTYW1lT3JBZnRlckN1cnJlbnREYXRlKGRhdGVDb21wYXJlTW9tZW50KSB7XG4gIGlmIChkYXRlQ29tcGFyZU1vbWVudCkge1xuICAgIGNvbnN0IGN1cnJlbnREYXRlQ29tcGFyZSA9IG1vbWVudCgpO1xuICAgIHJldHVybiBkYXRlQ29tcGFyZU1vbWVudC5pc1NhbWVPckFmdGVyKGN1cnJlbnREYXRlQ29tcGFyZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUNvbXBhcmUobW9tZW50RGF0ZSwgbW9tZW50RGF0ZUNvbXBhcmUsIGNvbXBhcmUpIHtcbiAgaWYgKG1vbWVudERhdGUgJiYgbW9tZW50RGF0ZS5pc1ZhbGlkKCkgJiYgbW9tZW50RGF0ZUNvbXBhcmUgJiYgY29tcGFyZSkge1xuICAgIHJldHVybiBtb21lbnREYXRlW2NvbXBhcmVdKG1vbWVudERhdGVDb21wYXJlKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3V0aWxzL3ZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7O0lBRTVCLE1BQU0sR0FBRyxPQUFPOzs7OztBQUV0QixNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQUs7SUFDOUIsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDbkUsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRztJQUM5QixPQUFPLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0FBQzdCLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLOztRQUN0QixLQUFLLEdBQUcsT0FBTztJQUNyQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0IsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQUs7SUFDNUIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQy9CLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFLO0lBQ2hDLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsR0FBRztJQUFDLGFBQU07U0FBTixVQUFNLEVBQU4scUJBQU0sRUFBTixJQUFNO1FB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IG1vbWVudCA9IF9tb21lbnQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVpcmVkKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01heCh2YWx1ZSwgbWF4KSB7XG4gIHJldHVybiB2YWx1ZS5sZW5ndGggPD0gbWF4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgY29uc3QgcmVnZXggPSAvXlxcZCokLztcbiAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90RW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID8gdmFsdWUgOiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlck9yWmVybyh2YWx1ZSkge1xuICByZXR1cm4gaXNOdW1iZXIobm90RW1wdHkodmFsdWUpKSA/IE51bWJlci5wYXJzZUludCh2YWx1ZSkgOiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VuKC4uLnZhbCkge1xuICByZXR1cm4gdmFsLnJlZHVjZSgocHYsIGN2KSA9PiBudW1iZXJPclplcm8oY3YpICsgcHYsIDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROYW1lTGVuZ3RoSXNWYWxpZChuYW1lKSB7XG4gIGNvbnN0IGZpcnN0TmFtZSA9IG5hbWUuc3BsaXQoJyAnKTtcbiAgcmV0dXJuIGZpcnN0TmFtZVswXS50cmltKCkubGVuZ3RoID4gMCA/IGZpcnN0TmFtZVswXS50cmltKCkubGVuZ3RoID49IDIgOiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROYW1lSXNWYWxpZChuYW1lKSB7XG4gIGNvbnN0IGZpcnN0TmFtZSA9IG5hbWUuc3BsaXQoJyAnKTtcbiAgcmV0dXJuIGZpcnN0TmFtZS5sZW5ndGggPj0gMiAmJiBmaXJzdE5hbWVbMV0ubGVuZ3RoID49IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdWxsTmFtZUxlbmd0aElzVmFsaWQoZnVsbE5hbWUpIHtcbiAgcmV0dXJuIGZ1bGxOYW1lLmxlbmd0aCA8PSA3MDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zTW9yZVRoYW5Ud29SZXBlYXRlZENoYXJhY3RlcnMoZnVsbE5hbWUpIHtcbiAgY29uc3QgcmVnZXggPSAvKFthLXpBLVpdKVxcMXsyfS9nO1xuICByZXR1cm4gIXJlZ2V4LnRlc3QoZnVsbE5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNNb3JlVGhhbk9uZUNvbnNlY3V0aXZlQWJicmV2aWF0aW9uKGZ1bGxOYW1lKSB7XG4gIGNvbnN0IHJlZ2V4ID0gLyhcXGIuXFxzKSguXFxzKSguXFxiKVxcMT8vZztcbiAgcmV0dXJuICFyZWdleC50ZXN0KGZ1bGxOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zTW9yZVRoYW5PbmVDb25zZWN1dGl2ZUJsYW5rU3BhY2UoZnVsbE5hbWUpIHtcbiAgY29uc3QgcmVnZXggPSAvKFxcd1sgXXsyLH1cXHcpLztcbiAgcmV0dXJuICFyZWdleC50ZXN0KGZ1bGxOYW1lKTtcbn1cblxuLyoqXG4qIFZhbGlkYWRhIHNlIG5vbWUgbsOjbyBjb250w6ltIGNhcmFjdGVyZXMgZXNwZWNpYWlzLlxuKiBAcGFyYW0gZnVsbE5hbWUgTm9tZSBjb21wbGV0by5cbiogQHJldHVybnMgYm9vbGVhbiBkZSBhY29yZG8gY29tIGEgdmFsaWRhw6fDo28uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250YWluc1NwZWNpYWxDaGFyYWN0ZXJzKGZ1bGxOYW1lKSB7XG4gICAgY29uc3QgcmVnZXggPSAvW1tcXF0hQCMkJSYqXys9YMK0e31efjw+Liw6Oz98KClcXC9cXFxcLV0vO1xuICAgIHJldHVybiAhcmVnZXgudGVzdChmdWxsTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVXaGl0ZVNwYWNlcyhtc2c6IHN0cmluZykge1xuICAgIGlmIChtc2cgJiYgU3RyaW5nKG1zZykpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhtc2cpLnJlcGxhY2UoL1xccy9nLFwiXCIpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKG1zZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUElTKHBpcykge1xuICBjb25zdCBtdWx0aXBsaWNhZG9yQmFzZSA9ICczMjk4NzY1NDMyJztcbiAgbGV0IHRvdGFsID0gMDtcbiAgbGV0IHJlc3RvID0gMDtcbiAgbGV0IG11bHRpcGxpY2FuZG8gPSAwO1xuICBsZXQgbXVsdGlwbGljYWRvciA9IDA7XG4gIGxldCBkaWdpdG8gPSA5OTtcblxuICAvLyBSZXRpcmEgYSBtYXNjYXJhXG4gIGNvbnN0IG51bWVyb1BJUyA9IHBpcy5yZXBsYWNlKC9bXlxcZF0rL2csICcnKTtcblxuICBpZiAoXG4gICAgbnVtZXJvUElTLmxlbmd0aCAhPT0gMTEgfHxcbiAgICBudW1lcm9QSVMgPT09ICcwMDAwMDAwMDAwMCcgfHxcbiAgICBudW1lcm9QSVMgPT09ICcxMTExMTExMTExMScgfHxcbiAgICBudW1lcm9QSVMgPT09ICcyMjIyMjIyMjIyMicgfHxcbiAgICBudW1lcm9QSVMgPT09ICczMzMzMzMzMzMzMycgfHxcbiAgICBudW1lcm9QSVMgPT09ICc0NDQ0NDQ0NDQ0NCcgfHxcbiAgICBudW1lcm9QSVMgPT09ICc1NTU1NTU1NTU1NScgfHxcbiAgICBudW1lcm9QSVMgPT09ICc2NjY2NjY2NjY2NicgfHxcbiAgICBudW1lcm9QSVMgPT09ICc3Nzc3Nzc3Nzc3NycgfHxcbiAgICBudW1lcm9QSVMgPT09ICc4ODg4ODg4ODg4OCcgfHxcbiAgICBudW1lcm9QSVMgPT09ICc5OTk5OTk5OTk5OSdcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICAgICAgbXVsdGlwbGljYW5kbyA9IHBhcnNlSW50KG51bWVyb1BJUy5zdWJzdHJpbmcoaSwgaSArIDEpKTtcbiAgICAgIG11bHRpcGxpY2Fkb3IgPSBwYXJzZUludChtdWx0aXBsaWNhZG9yQmFzZS5zdWJzdHJpbmcoaSwgaSArIDEpKTtcbiAgICAgIHRvdGFsICs9IG11bHRpcGxpY2FuZG8gKiBtdWx0aXBsaWNhZG9yO1xuICAgIH1cblxuICAgIHJlc3RvID0gMTEgLSAodG90YWwgJSAxMSk7XG4gICAgcmVzdG8gPSByZXN0byA9PT0gMTAgfHwgcmVzdG8gPT09IDExID8gMCA6IHJlc3RvO1xuXG4gICAgZGlnaXRvID0gcGFyc2VJbnQoJycgKyBudW1lcm9QSVMuY2hhckF0KDEwKSk7XG4gICAgcmV0dXJuIHJlc3RvID09PSBkaWdpdG87XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQmlydGhEYXRlKGJpcnRoZGF5LCBkYXRlKSB7XG4gIGlmIChiaXJ0aGRheSAmJiBkYXRlKSB7XG4gICAgY29uc3QgYmlydGhkYXlDb21wYXJlID0gbW9tZW50KHR5cGVvZiBiaXJ0aGRheSA9PT0gJ3N0cmluZycgPyBiaXJ0aGRheS5yZXBsYWNlKC9bXlxcZF0rL2csICcnKSA6IGJpcnRoZGF5LCAnRERNTVlZWVknKVxuICAgICAgLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAudG9TdHJpbmcoKTtcbiAgICBjb25zdCBkYXRlQ29tcGFyZSA9IG1vbWVudChkYXRlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpLCAnRERNTVlZWVknKVxuICAgICAgLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gbW9tZW50KGRhdGVDb21wYXJlKS5pc1NhbWVPckFmdGVyKGJpcnRoZGF5Q29tcGFyZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQmlydGhEYXlWYWxpZChiaXJ0aGRheUNvbXBhcmUsIGRhdGVDb21wYXJlKSB7XG4gIGlmIChiaXJ0aGRheUNvbXBhcmUgJiYgZGF0ZUNvbXBhcmUpIHtcbiAgICByZXR1cm4gZGF0ZUNvbXBhcmUuaXNTYW1lT3JBZnRlcihiaXJ0aGRheUNvbXBhcmUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVFeHBpcmF0aW9uQmVmb3JlRXhwZWRpdGlvbkRhdGUoZXhwZWRpdGlvbkRhdGVDb21wYXJlLCBkYXRlQ29tcGFyZSkge1xuICBpZiAoZXhwZWRpdGlvbkRhdGVDb21wYXJlICYmIGRhdGVDb21wYXJlKSB7XG4gICAgcmV0dXJuIGRhdGVDb21wYXJlLmlzU2FtZU9yQWZ0ZXIoZXhwZWRpdGlvbkRhdGVDb21wYXJlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlU2FtZU9yQWZ0ZXJDdXJyZW50RGF0ZShkYXRlQ29tcGFyZU1vbWVudCkge1xuICBpZiAoZGF0ZUNvbXBhcmVNb21lbnQpIHtcbiAgICBjb25zdCBjdXJyZW50RGF0ZUNvbXBhcmUgPSBtb21lbnQoKTtcbiAgICByZXR1cm4gZGF0ZUNvbXBhcmVNb21lbnQuaXNTYW1lT3JBZnRlcihjdXJyZW50RGF0ZUNvbXBhcmUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVDb21wYXJlKG1vbWVudERhdGUsIG1vbWVudERhdGVDb21wYXJlLCBjb21wYXJlKSB7XG4gIGlmIChtb21lbnREYXRlICYmIG1vbWVudERhdGUuaXNWYWxpZCgpICYmIG1vbWVudERhdGVDb21wYXJlICYmIGNvbXBhcmUpIHtcbiAgICByZXR1cm4gbW9tZW50RGF0ZVtjb21wYXJlXShtb21lbnREYXRlQ29tcGFyZSk7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
@@ -0,0 +1,278 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/services/form-comparator.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import * as tslib_1 from "tslib";
7
+ import { Injectable } from "@angular/core";
8
+ /**
9
+ * @record
10
+ */
11
+ export function Divergence() { }
12
+ if (false) {
13
+ /** @type {?} */
14
+ Divergence.prototype.oldValue;
15
+ /** @type {?} */
16
+ Divergence.prototype.newValue;
17
+ }
18
+ /**
19
+ * @record
20
+ */
21
+ export function DivergenceArray() { }
22
+ if (false) {
23
+ /** @type {?} */
24
+ DivergenceArray.prototype.key;
25
+ }
26
+ var FormComparatorService = /** @class */ (function () {
27
+ function FormComparatorService() {
28
+ this.resetDivergentFormData();
29
+ }
30
+ /**
31
+ * @return {?}
32
+ */
33
+ FormComparatorService.prototype.resetDivergentFormData = /**
34
+ * @return {?}
35
+ */
36
+ function () {
37
+ this._divergentFormData = {};
38
+ };
39
+ /**
40
+ * checkFormDisagreements
41
+ *
42
+ * @description
43
+ * Checa se existem divergẽncias entre os objetos armazenados nas
44
+ * propriedades *oldFormData* e *newFormData*.
45
+ *
46
+ * `Se forem idênticos:`
47
+ * levanta uma exceção.
48
+ *
49
+ * `Se houverem divergências:`
50
+ * as armazena na propriedade divergentFormData.
51
+ */
52
+ /**
53
+ * checkFormDisagreements
54
+ *
55
+ * \@description
56
+ * Checa se existem divergẽncias entre os objetos armazenados nas
57
+ * propriedades *oldFormData* e *newFormData*.
58
+ *
59
+ * `Se forem idênticos:`
60
+ * levanta uma exceção.
61
+ *
62
+ * `Se houverem divergências:`
63
+ * as armazena na propriedade divergentFormData.
64
+ * @param {?=} ignoreId
65
+ * @return {?}
66
+ */
67
+ FormComparatorService.prototype.checkFormDisagreements = /**
68
+ * checkFormDisagreements
69
+ *
70
+ * \@description
71
+ * Checa se existem divergẽncias entre os objetos armazenados nas
72
+ * propriedades *oldFormData* e *newFormData*.
73
+ *
74
+ * `Se forem idênticos:`
75
+ * levanta uma exceção.
76
+ *
77
+ * `Se houverem divergências:`
78
+ * as armazena na propriedade divergentFormData.
79
+ * @param {?=} ignoreId
80
+ * @return {?}
81
+ */
82
+ function (ignoreId) {
83
+ var _this = this;
84
+ if (ignoreId === void 0) { ignoreId = false; }
85
+ this.resetDivergentFormData();
86
+ this._sanitizeEmptyStrings();
87
+ if (ignoreId)
88
+ this._removeIdsFromFormDatas();
89
+ if (this._oldFormData === this._newFormData) {
90
+ this._throwIdenticalMessage();
91
+ }
92
+ else {
93
+ Object.keys(this._oldFormData).forEach((/**
94
+ * @param {?} key
95
+ * @return {?}
96
+ */
97
+ function (key) {
98
+ if (_this._oldFormData[key] !== _this._newFormData[key]) {
99
+ _this._divergentFormData[key] = _this._createDivergencePair(key);
100
+ }
101
+ }));
102
+ Object.keys(this._newFormData).forEach((/**
103
+ * @param {?} key
104
+ * @return {?}
105
+ */
106
+ function (key) {
107
+ if (_this._newFormData[key] !== _this._oldFormData[key]) {
108
+ _this._divergentFormData[key] = _this._createDivergencePair(key);
109
+ }
110
+ }));
111
+ if (this._isDivergentFormDataEmpty)
112
+ this._throwIdenticalMessage();
113
+ }
114
+ };
115
+ /**
116
+ * @private
117
+ * @return {?}
118
+ */
119
+ FormComparatorService.prototype._removeIdsFromFormDatas = /**
120
+ * @private
121
+ * @return {?}
122
+ */
123
+ function () {
124
+ [this._oldFormData, this._newFormData].forEach((/**
125
+ * @param {?} formData
126
+ * @return {?}
127
+ */
128
+ function (formData) {
129
+ delete formData["id"];
130
+ }));
131
+ };
132
+ /**
133
+ * @private
134
+ * @return {?}
135
+ */
136
+ FormComparatorService.prototype._sanitizeEmptyStrings = /**
137
+ * @private
138
+ * @return {?}
139
+ */
140
+ function () {
141
+ [this._oldFormData, this._newFormData].forEach((/**
142
+ * @param {?} formData
143
+ * @return {?}
144
+ */
145
+ function (formData) {
146
+ Object.keys(formData).map((/**
147
+ * @param {?} key
148
+ * @return {?}
149
+ */
150
+ function (key) {
151
+ if (formData[key] === "")
152
+ formData[key] = null;
153
+ }));
154
+ }));
155
+ };
156
+ /**
157
+ * @private
158
+ * @param {?} key
159
+ * @return {?}
160
+ */
161
+ FormComparatorService.prototype._createDivergencePair = /**
162
+ * @private
163
+ * @param {?} key
164
+ * @return {?}
165
+ */
166
+ function (key) {
167
+ /** @type {?} */
168
+ var divergence = { oldValue: null, newValue: null };
169
+ divergence.oldValue = this._oldFormData[key];
170
+ divergence.newValue = this._newFormData[key];
171
+ return divergence;
172
+ };
173
+ /**
174
+ * @private
175
+ * @return {?}
176
+ */
177
+ FormComparatorService.prototype._throwIdenticalMessage = /**
178
+ * @private
179
+ * @return {?}
180
+ */
181
+ function () {
182
+ throw new Error("The objects oldFormData and newFormData are identical");
183
+ };
184
+ Object.defineProperty(FormComparatorService.prototype, "oldFormData", {
185
+ get: /**
186
+ * @return {?}
187
+ */
188
+ function () {
189
+ return this._oldFormData;
190
+ },
191
+ set: /**
192
+ * @param {?} v
193
+ * @return {?}
194
+ */
195
+ function (v) {
196
+ this._oldFormData = v;
197
+ },
198
+ enumerable: true,
199
+ configurable: true
200
+ });
201
+ Object.defineProperty(FormComparatorService.prototype, "newFormData", {
202
+ get: /**
203
+ * @return {?}
204
+ */
205
+ function () {
206
+ return this._newFormData;
207
+ },
208
+ set: /**
209
+ * @param {?} v
210
+ * @return {?}
211
+ */
212
+ function (v) {
213
+ this._newFormData = v;
214
+ },
215
+ enumerable: true,
216
+ configurable: true
217
+ });
218
+ Object.defineProperty(FormComparatorService.prototype, "divergentFormArray", {
219
+ get: /**
220
+ * @return {?}
221
+ */
222
+ function () {
223
+ /** @type {?} */
224
+ var divergentFormArray = [];
225
+ Object.entries(this._divergentFormData).map((/**
226
+ * @param {?} __0
227
+ * @return {?}
228
+ */
229
+ function (_a) {
230
+ var _b = tslib_1.__read(_a, 2), key = _b[0], divergence = _b[1];
231
+ /** @type {?} */
232
+ var object = { key: null, oldValue: null, newValue: null };
233
+ object.key = key;
234
+ object.oldValue = divergence.oldValue;
235
+ object.newValue = divergence.newValue;
236
+ divergentFormArray.push(object);
237
+ }));
238
+ return divergentFormArray;
239
+ },
240
+ enumerable: true,
241
+ configurable: true
242
+ });
243
+ Object.defineProperty(FormComparatorService.prototype, "_isDivergentFormDataEmpty", {
244
+ get: /**
245
+ * @return {?}
246
+ */
247
+ function () {
248
+ return Object.entries(this._divergentFormData).length === 0;
249
+ },
250
+ enumerable: true,
251
+ configurable: true
252
+ });
253
+ FormComparatorService.decorators = [
254
+ { type: Injectable }
255
+ ];
256
+ /** @nocollapse */
257
+ FormComparatorService.ctorParameters = function () { return []; };
258
+ return FormComparatorService;
259
+ }());
260
+ export { FormComparatorService };
261
+ if (false) {
262
+ /**
263
+ * @type {?}
264
+ * @private
265
+ */
266
+ FormComparatorService.prototype._oldFormData;
267
+ /**
268
+ * @type {?}
269
+ * @private
270
+ */
271
+ FormComparatorService.prototype._newFormData;
272
+ /**
273
+ * @type {?}
274
+ * @private
275
+ */
276
+ FormComparatorService.prototype._divergentFormData;
277
+ }
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb21wYXJhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9mb3JtLWNvbXBhcmF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRTNDLGdDQUdDOzs7SUFGRyw4QkFBYzs7SUFDZCw4QkFBYzs7Ozs7QUFHbEIscUNBRUM7OztJQURHLDhCQUFZOztBQUdoQjtJQU1JO1FBQ0ksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQzs7OztJQUVNLHNEQUFzQjs7O0lBQTdCO1FBQ0ksSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHOzs7Ozs7Ozs7Ozs7Ozs7O0lBQ0ksc0RBQXNCOzs7Ozs7Ozs7Ozs7Ozs7SUFBN0IsVUFBOEIsUUFBeUI7UUFBdkQsaUJBc0JDO1FBdEI2Qix5QkFBQSxFQUFBLGdCQUF5QjtRQUNuRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUNqQzthQUFNO1lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTzs7OztZQUFDLFVBQUMsR0FBRztnQkFDdkMsSUFBSSxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFD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QUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFDakIsTUFBTSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUN0QyxNQUFNLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBRXRDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQUMsQ0FBQztZQUVILE9BQU8sa0JBQWtCLENBQUM7UUFDOUIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyw0REFBeUI7Ozs7UUFBcEM7WUFDSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUNoRSxDQUFDOzs7T0FBQTs7Z0JBaEhKLFVBQVU7Ozs7SUFpSFgsNEJBQUM7Q0FBQSxBQWpIRCxJQWlIQztTQWhIWSxxQkFBcUI7Ozs7OztJQUM5Qiw2Q0FBNkI7Ozs7O0lBQzdCLDZDQUE2Qjs7Ozs7SUFDN0IsbURBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGl2ZXJnZW5jZSB7XG4gICAgb2xkVmFsdWU6IGFueTtcbiAgICBuZXdWYWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpdmVyZ2VuY2VBcnJheSBleHRlbmRzIERpdmVyZ2VuY2Uge1xuICAgIGtleTogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBhcmF0b3JTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vbGRGb3JtRGF0YTogb2JqZWN0O1xuICAgIHByaXZhdGUgX25ld0Zvcm1EYXRhOiBvYmplY3Q7XG4gICAgcHJpdmF0ZSBfZGl2ZXJnZW50Rm9ybURhdGE6IHsgZGl2ZXJnZW50S2V5PzogRGl2ZXJnZW5jZSB9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVzZXREaXZlcmdlbnRGb3JtRGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldERpdmVyZ2VudEZvcm1EYXRhKCkge1xuICAgICAgICB0aGlzLl9kaXZlcmdlbnRGb3JtRGF0YSA9IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoZWNrRm9ybURpc2FncmVlbWVudHNcbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIENoZWNhIHNlIGV4aXN0ZW0gZGl2ZXJn4bq9bmNpYXMgZW50cmUgb3Mgb2JqZXRvcyBhcm1hemVuYWRvcyBuYXNcbiAgICAgKiBwcm9wcmllZGFkZXMgKm9sZEZvcm1EYXRhKiBlICpuZXdGb3JtRGF0YSouXG4gICAgICpcbiAgICAgKiBgU2UgZm9yZW0gaWTDqm50aWNvczpgXG4gICAgICogICBsZXZhbnRhIHVtYSBleGNlw6fDo28uXG4gICAgICpcbiAgICAgKiBgU2UgaG91dmVyZW0gZGl2ZXJnw6puY2lhczpgXG4gICAgICogICBhcyBhcm1hemVuYSBuYSBwcm9wcmllZGFkZSBkaXZlcmdlbnRGb3JtRGF0YS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tGb3JtRGlzYWdyZWVtZW50cyhpZ25vcmVJZDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXREaXZlcmdlbnRGb3JtRGF0YSgpO1xuICAgICAgICB0aGlzLl9zYW5pdGl6ZUVtcHR5U3RyaW5ncygpO1xuICAgICAgICBpZiAoaWdub3JlSWQpIHRoaXMuX3JlbW92ZUlkc0Zyb21Gb3JtRGF0YXMoKTtcblxuICAgICAgICBpZiAodGhpcy5fb2xkRm9ybURhdGEgPT09IHRoaXMuX25ld0Zvcm1EYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl90aHJvd0lkZW50aWNhbE1lc3NhZ2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuX29sZEZvcm1EYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb2xkRm9ybURhdGFba2V5XSAhPT0gdGhpcy5fbmV3Rm9ybURhdGFba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaXZlcmdlbnRGb3JtRGF0YVtrZXldID0gdGhpcy5fY3JlYXRlRGl2ZXJnZW5jZVBhaXIoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5fbmV3Rm9ybURhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9uZXdGb3JtRGF0YVtrZXldICE9PSB0aGlzLl9vbGRGb3JtRGF0YVtrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpdmVyZ2VudEZvcm1EYXRhW2tleV0gPSB0aGlzLl9jcmVhdGVEaXZlcmdlbmNlUGFpcihrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faXNEaXZlcmdlbnRGb3JtRGF0YUVtcHR5KSB0aGlzLl90aHJvd0lkZW50aWNhbE1lc3NhZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZUlkc0Zyb21Gb3JtRGF0YXMoKSB7XG4gICAgICAgIFt0aGlzLl9vbGRGb3JtRGF0YSwgdGhpcy5fbmV3Rm9ybURhdGFdLmZvckVhY2goKGZvcm1EYXRhKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgZm9ybURhdGFbXCJpZFwiXTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVFbXB0eVN0cmluZ3MoKTogdm9pZCB7XG4gICAgICAgIFt0aGlzLl9vbGRGb3JtRGF0YSwgdGhpcy5fbmV3Rm9ybURhdGFdLmZvckVhY2goKGZvcm1EYXRhKSA9PiB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtRGF0YSkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybURhdGFba2V5XSA9PT0gXCJcIikgZm9ybURhdGFba2V5XSA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlRGl2ZXJnZW5jZVBhaXIoa2V5OiBzdHJpbmcpOiBEaXZlcmdlbmNlIHtcbiAgICAgICAgY29uc3QgZGl2ZXJnZW5jZTogRGl2ZXJnZW5jZSA9IHsgb2xkVmFsdWU6IG51bGwsIG5ld1ZhbHVlOiBudWxsIH07XG5cbiAgICAgICAgZGl2ZXJnZW5jZS5vbGRWYWx1ZSA9IHRoaXMuX29sZEZvcm1EYXRhW2tleV07XG4gICAgICAgIGRpdmVyZ2VuY2UubmV3VmFsdWUgPSB0aGlzLl9uZXdGb3JtRGF0YVtrZXldO1xuXG4gICAgICAgIHJldHVybiBkaXZlcmdlbmNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Rocm93SWRlbnRpY2FsTWVzc2FnZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIG9iamVjdHMgb2xkRm9ybURhdGEgYW5kIG5ld0Zvcm1EYXRhIGFyZSBpZGVudGljYWxcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBvbGRGb3JtRGF0YSh2OiBvYmplY3QpIHtcbiAgICAgICAgdGhpcy5fb2xkRm9ybURhdGEgPSB2O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb2xkRm9ybURhdGEoKTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29sZEZvcm1EYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbmV3Rm9ybURhdGEodjogb2JqZWN0KSB7XG4gICAgICAgIHRoaXMuX25ld0Zvcm1EYXRhID0gdjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5ld0Zvcm1EYXRhKCk6IG9iamVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uZXdGb3JtRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpdmVyZ2VudEZvcm1BcnJheSgpOiBBcnJheTxEaXZlcmdlbmNlQXJyYXk+IHtcbiAgICAgICAgY29uc3QgZGl2ZXJnZW50Rm9ybUFycmF5OiBBcnJheTxEaXZlcmdlbmNlQXJyYXk+ID0gW107XG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5fZGl2ZXJnZW50Rm9ybURhdGEpLm1hcCgoW2tleSwgZGl2ZXJnZW5jZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHsga2V5OiBudWxsLCBvbGRWYWx1ZTogbnVsbCwgbmV3VmFsdWU6IG51bGwgfTtcblxuICAgICAgICAgICAgb2JqZWN0LmtleSA9IGtleTtcbiAgICAgICAgICAgIG9iamVjdC5vbGRWYWx1ZSA9IGRpdmVyZ2VuY2Uub2xkVmFsdWU7XG4gICAgICAgICAgICBvYmplY3QubmV3VmFsdWUgPSBkaXZlcmdlbmNlLm5ld1ZhbHVlO1xuXG4gICAgICAgICAgICBkaXZlcmdlbnRGb3JtQXJyYXkucHVzaChvYmplY3QpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZGl2ZXJnZW50Rm9ybUFycmF5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgX2lzRGl2ZXJnZW50Rm9ybURhdGFFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuX2RpdmVyZ2VudEZvcm1EYXRhKS5sZW5ndGggPT09IDA7XG4gICAgfVxufVxuIl19
@@ -11,6 +11,7 @@ import { LookupParametersService } from "./lookup-parameters.service";
11
11
  import { AutocompleteParametersService } from "./autocomplete-parameters.service";
12
12
  import { ReportService } from "./report.service";
13
13
  import { WorkflowDataService } from './workflow-data.service';
14
+ import { FormComparatorService } from "./form-comparator.service";
14
15
  export { WorkflowDataService } from './workflow-data.service';
15
16
  var ServicesModule = /** @class */ (function () {
16
17
  function ServicesModule() {
@@ -24,11 +25,12 @@ var ServicesModule = /** @class */ (function () {
24
25
  LookupParametersService,
25
26
  AutocompleteParametersService,
26
27
  ReportService,
27
- WorkflowDataService
28
+ WorkflowDataService,
29
+ FormComparatorService
28
30
  ]
29
31
  },] }
30
32
  ];
31
33
  return ServicesModule;
32
34
  }());
33
35
  export { ServicesModule };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9wYXlyb2xsLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2VydmljZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlEO0lBQUE7SUFXNkIsQ0FBQzs7Z0JBWDdCLFFBQVEsU0FBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLGFBQWE7d0JBQ2IsbUJBQW1CO3FCQUN0QjtpQkFDSjs7SUFDNEIscUJBQUM7Q0FBQSxBQVg5QixJQVc4QjtTQUFqQixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBDb21wYW55SW5kaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIi4vY29tcGFueS1pbmRpY2F0aW9ucy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9pbnRlZ3JhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb29rdXBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gXCIuL2xvb2t1cC1wYXJhbWV0ZXJzLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSBcIi4vYXV0b2NvbXBsZXRlLXBhcmFtZXRlcnMuc2VydmljZVwiO1xuaW1wb3J0IHsgUmVwb3J0U2VydmljZSB9IGZyb20gXCIuL3JlcG9ydC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBDb21wYW55SW5kaWNhdGlvbnNTZXJ2aWNlLFxuICAgICAgICBJbnRlZ3JhdGlvblNlcnZpY2UsXG4gICAgICAgIExvb2t1cFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICBBdXRvY29tcGxldGVQYXJhbWV0ZXJzU2VydmljZSxcbiAgICAgICAgUmVwb3J0U2VydmljZSxcbiAgICAgICAgV29ya2Zsb3dEYXRhU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZXNNb2R1bGUge31cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9wYXlyb2xsLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2VydmljZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlEO0lBQUE7SUFZNkIsQ0FBQzs7Z0JBWjdCLFFBQVEsU0FBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRTt3QkFDUCx5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixxQkFBcUI7cUJBQ3hCO2lCQUNKOztJQUM0QixxQkFBQztDQUFBLEFBWjlCLElBWThCO1NBQWpCLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IENvbXBhbnlJbmRpY2F0aW9uc1NlcnZpY2UgfSBmcm9tIFwiLi9jb21wYW55LWluZGljYXRpb25zLnNlcnZpY2VcIjtcbmltcG9ydCB7IEludGVncmF0aW9uU2VydmljZSB9IGZyb20gXCIuL2ludGVncmF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IExvb2t1cFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSBcIi4vbG9va3VwLXBhcmFtZXRlcnMuc2VydmljZVwiO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tIFwiLi9hdXRvY29tcGxldGUtcGFyYW1ldGVycy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSBcIi4vcmVwb3J0LnNlcnZpY2VcIjtcbmltcG9ydCB7IFdvcmtmbG93RGF0YVNlcnZpY2UgfSBmcm9tICcuL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQ29tcGFyYXRvclNlcnZpY2UgfSBmcm9tIFwiLi9mb3JtLWNvbXBhcmF0b3Iuc2VydmljZVwiO1xuXG5leHBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBDb21wYW55SW5kaWNhdGlvbnNTZXJ2aWNlLFxuICAgICAgICBJbnRlZ3JhdGlvblNlcnZpY2UsXG4gICAgICAgIExvb2t1cFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICBBdXRvY29tcGxldGVQYXJhbWV0ZXJzU2VydmljZSxcbiAgICAgICAgUmVwb3J0U2VydmljZSxcbiAgICAgICAgV29ya2Zsb3dEYXRhU2VydmljZSxcbiAgICAgICAgRm9ybUNvbXBhcmF0b3JTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlc01vZHVsZSB7fVxuIl19