adb-shared 6.0.6 → 6.0.8

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.
@@ -53,6 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
53
53
  TranslateModule,
54
54
  AdbDirectivesModule,
55
55
  AdbDropdownModule,
56
- AdbPagersModule], providers: [provideHttpClient(withInterceptorsFromDi())] }]
56
+ AdbPagersModule],
57
+ providers: [provideHttpClient(withInterceptorsFromDi())] }]
57
58
  }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWFydHBvcnRhbGVuLW5hdi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLWFydHBvcnRhbGVuLW5hdi9hZGItYXJ0cG9ydGFsZW4tbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBZWhGLE1BQU0sT0FBTyxvQkFBb0I7SUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFnQjtRQUNwQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUU7Z0JBQ1Qsa0JBQWtCO2dCQUNsQjtvQkFDRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGtDQUFrQztvQkFDbEQsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztpSUFaVSxvQkFBb0I7a0lBQXBCLG9CQUFvQixpQkFaekIsdUJBQXVCO1lBQ3ZCLDBCQUEwQixhQUtqQixZQUFZO1lBQ3JCLFlBQVk7WUFDWixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixlQUFlLGFBUGYsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtrSUFPckIsb0JBQW9CLGFBREksQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsWUFMakUsWUFBWTtZQUNyQixZQUFZO1lBQ1osZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZUFBZTs7MkZBQ1Ysb0JBQW9CO2tCQWJoQyxRQUFRO21CQUFDLEVBQUUsWUFBWSxFQUFFO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3FCQUM3QixFQUFFLE9BQU8sRUFBRSxDQUFDLFlBQVk7d0JBQ3JCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZUFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgcHJvdmlkZUh0dHBDbGllbnQsIHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4vZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFkYkRpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcclxuaW1wb3J0IHsgQXJ0cG9ydGFsZW5OYXZDb21wb25lbnQgfSBmcm9tICcuL2FkYi1hcnRwb3J0YWxlbi1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICcuLi9hZGItZHJvcGRvd24vYWRiLWRyb3Bkb3duLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFkYlBhZ2Vyc01vZHVsZSB9IGZyb20gJy4uL3BhZ2Vycy9wYWdlcnMubW9kdWxlJztcclxuaW1wb3J0IHsgQXJ0cG9ydGFsZW5Gb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2FkYi1hcnRwb3J0YWxlbi1mb290ZXIuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7IGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEFydHBvcnRhbGVuTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIEFydHBvcnRhbGVuRm9vdGVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEFydHBvcnRhbGVuTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIEFydHBvcnRhbGVuRm9vdGVyQ29tcG9uZW50XHJcbiAgICBdLCBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJvdXRlck1vZHVsZSxcclxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICAgICAgQWRiRGlyZWN0aXZlc01vZHVsZSxcclxuICAgICAgICBBZGJEcm9wZG93bk1vZHVsZSxcclxuICAgICAgICBBZGJQYWdlcnNNb2R1bGVdLCBwcm92aWRlcnM6IFtwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpXSB9KVxyXG5leHBvcnQgY2xhc3MgQXJ0cG9ydGFsZW5OYXZNb2R1bGUge1xyXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogYW55KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBcnRwb3J0YWxlbk5hdk1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFydHBvcnRhbGVuTmF2TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ2VudicsIC8vIHlvdSBjYW4gYWxzbyB1c2UgSW5qZWN0aW9uVG9rZW5cclxuICAgICAgICAgIHVzZVZhbHVlOiBlbnZpcm9ubWVudFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWFydHBvcnRhbGVuLW5hdi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLWFydHBvcnRhbGVuLW5hdi9hZGItYXJ0cG9ydGFsZW4tbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBZ0I7UUFDcEMsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNULGtCQUFrQjtnQkFDbEI7b0JBQ0UsT0FBTyxFQUFFLEtBQUssRUFBRSxrQ0FBa0M7b0JBQ2xELFFBQVEsRUFBRSxXQUFXO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBWlUsb0JBQW9CO2tJQUFwQixvQkFBb0IsaUJBYnpCLHVCQUF1QjtZQUN2QiwwQkFBMEIsYUFLakIsWUFBWTtZQUNyQixZQUFZO1lBQ1osZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZUFBZSxhQVBmLHVCQUF1QjtZQUN2QiwwQkFBMEI7a0lBUXJCLG9CQUFvQixhQURkLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLFlBTi9DLFlBQVk7WUFDckIsWUFBWTtZQUNaLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGVBQWU7OzJGQUVWLG9CQUFvQjtrQkFkaEMsUUFBUTttQkFBQyxFQUFFLFlBQVksRUFBRTt3QkFDbEIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7cUJBQzdCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx1QkFBdUI7d0JBQ3ZCLDBCQUEwQjtxQkFDN0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZO3dCQUNyQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGVBQWUsQ0FBQztvQkFDaEIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgcHJvdmlkZUh0dHBDbGllbnQsIHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4vZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFkYkRpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcclxuaW1wb3J0IHsgQXJ0cG9ydGFsZW5OYXZDb21wb25lbnQgfSBmcm9tICcuL2FkYi1hcnRwb3J0YWxlbi1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICcuLi9hZGItZHJvcGRvd24vYWRiLWRyb3Bkb3duLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFkYlBhZ2Vyc01vZHVsZSB9IGZyb20gJy4uL3BhZ2Vycy9wYWdlcnMubW9kdWxlJztcclxuaW1wb3J0IHsgQXJ0cG9ydGFsZW5Gb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2FkYi1hcnRwb3J0YWxlbi1mb290ZXIuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7IGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEFydHBvcnRhbGVuTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIEFydHBvcnRhbGVuRm9vdGVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEFydHBvcnRhbGVuTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIEFydHBvcnRhbGVuRm9vdGVyQ29tcG9uZW50XHJcbiAgICBdLCBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJvdXRlck1vZHVsZSxcclxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICAgICAgQWRiRGlyZWN0aXZlc01vZHVsZSxcclxuICAgICAgICBBZGJEcm9wZG93bk1vZHVsZSxcclxuICAgICAgICBBZGJQYWdlcnNNb2R1bGVdLCBcclxuICAgICAgICBwcm92aWRlcnM6IFtwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpXSB9KVxyXG5leHBvcnQgY2xhc3MgQXJ0cG9ydGFsZW5OYXZNb2R1bGUge1xyXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogYW55KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBcnRwb3J0YWxlbk5hdk1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFydHBvcnRhbGVuTmF2TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ2VudicsIC8vIHlvdSBjYW4gYWxzbyB1c2UgSW5qZWN0aW9uVG9rZW5cclxuICAgICAgICAgIHVzZVZhbHVlOiBlbnZpcm9ubWVudFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -22,25 +22,25 @@ export class AdbRichEditorComponent {
22
22
  textarea.setSelectionRange(selectionStart, selectionEnd);
23
23
  }
24
24
  onItalicClick() {
25
- const textarea = this.el.nativeElement.querySelector('textarea');
26
- if (textarea) {
27
- const selectionStart = textarea.selectionStart;
28
- const selectionEnd = textarea.selectionEnd;
29
- let currentValue = textarea.value;
30
- let modifiedText = `${currentValue.substring(0, selectionStart)}_${currentValue.substring(selectionStart, selectionEnd)}_${currentValue.substring(selectionEnd)}`;
31
- this.text = modifiedText;
32
- this.onChange(this.text);
33
- }
25
+ this.applyFormatting('_');
34
26
  }
35
27
  onBoldClick() {
28
+ this.applyFormatting('__');
29
+ }
30
+ applyFormatting(marker) {
36
31
  const textarea = this.el.nativeElement.querySelector('textarea');
37
32
  if (textarea) {
38
33
  const selectionStart = textarea.selectionStart;
39
34
  const selectionEnd = textarea.selectionEnd;
40
35
  let currentValue = textarea.value;
41
- let modifiedText = `${currentValue.substring(0, selectionStart)}__${currentValue.substring(selectionStart, selectionEnd)}__${currentValue.substring(selectionEnd)}`;
36
+ let modifiedText = selectionStart !== selectionEnd
37
+ ? `${currentValue.substring(0, selectionStart)}${marker}${currentValue.substring(selectionStart, selectionEnd)}${marker}${currentValue.substring(selectionEnd)}`
38
+ : `${currentValue.substring(0, selectionStart)}${marker}${marker}${currentValue.substring(selectionStart)}`;
42
39
  this.text = modifiedText;
40
+ textarea.value = modifiedText;
41
+ textarea.setSelectionRange(selectionStart !== selectionEnd ? selectionEnd + marker.length * 2 : selectionStart + marker.length, selectionStart !== selectionEnd ? selectionEnd + marker.length * 2 : selectionStart + marker.length);
43
42
  this.onChange(this.text);
43
+ textarea.focus();
44
44
  }
45
45
  }
46
46
  onTaxonClick() {
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
106
106
  }], hasReference: [{
107
107
  type: Input
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVV6RSxNQUFNLE9BQU8sc0JBQXNCO0lBTS9CLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBSnpCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFnRjlCLHNCQUFzQjtRQUN0QixhQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUEvRVcsQ0FBQztJQUd2QyxhQUFhO1FBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDL0MsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN6QyxPQUFPLFlBQVksR0FBRyxjQUFjLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUss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QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7SUFFckMsQ0FBQztJQUVELFdBQVc7SUFDWCxDQUFDO2lJQXhHUSxzQkFBc0I7cUhBQXRCLHNCQUFzQiwwR0FMcEIsQ0FBQztnQkFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQztnQkFDakYsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDLDBCQ1ROLDA5QkFTQTs7MkZERWEsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNJLGlCQUFpQixhQUVoQixDQUFDOzRCQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBQzs0QkFDakYsS0FBSyxFQUFFLElBQUk7eUJBQ2QsQ0FBQzsrRUFJTyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FkYi1yaWNoLWVkaXRvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWRiUmljaEVkaXRvckNvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGJSaWNoRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBoYXNUYXhvbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgaGFzUmVmZXJlbmNlID0gZmFsc2U7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuXHJcbiAgICBvbkRvdWJsZUNsaWNrKCkge1xyXG4gICAgICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICBsZXQgc2VsZWN0aW9uRW5kID0gdGV4dGFyZWEuc2VsZWN0aW9uRW5kO1xyXG4gICAgICAgIHdoaWxlIChzZWxlY3Rpb25FbmQgPiBzZWxlY3Rpb25TdGFydCAmJiB0ZXh0YXJlYS52YWx1ZVtzZWxlY3Rpb25FbmQgLSAxXSA9PT0gJyAnKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbkVuZC0tO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkl0YWxpY0NsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XHJcbiAgICAgICAgaWYgKHRleHRhcmVhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkVuZCA9IHRleHRhcmVhLnNlbGVjdGlvbkVuZDtcclxuICAgICAgICAgICAgbGV0IGN1cnJlbnRWYWx1ZSA9IHRleHRhcmVhLnZhbHVlO1xyXG4gICAgICAgICAgICBsZXQgbW9kaWZpZWRUZXh0ID0gYCR7Y3VycmVudFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCl9XyR7Y3VycmVudFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKX1fJHtjdXJyZW50VmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvbkVuZCl9YDtcclxuICAgICAgICAgICAgdGhpcy50ZXh0ID0gbW9kaWZpZWRUZXh0O1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQm9sZENsaWNrKCk6dm9pZHtcclxuICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xyXG4gICAgICAgIGlmICh0ZXh0YXJlYSkge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25FbmQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25FbmQ7XHJcbiAgICAgICAgICAgIGxldCBjdXJyZW50VmFsdWUgPSB0ZXh0YXJlYS52YWx1ZTtcclxuICAgICAgICAgICAgbGV0IG1vZGlmaWVkVGV4dCA9IGAke2N1cnJlbnRWYWx1ZS5zdWJzdHJpbmcoMCwgc2VsZWN0aW9uU3RhcnQpfV9fJHtjdXJyZW50VmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpfV9fJHtjdXJyZW50VmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvbkVuZCl9YDtcclxuICAgICAgICAgICAgdGhpcy50ZXh0ID0gbW9kaWZpZWRUZXh0O1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVGF4b25DbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlcGxhY2VNYXJrZWQoJ1tOYW1lXSh0YXhvbjowKScpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVmZXJlbmNlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlTWFya2VkKCdbTmFtZV0ocmVmZXJlbmNlOjApJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXBsYWNlTWFya2VkKHJlcGxhY2VUYWc6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XHJcbiAgICAgICAgaWYgKHRleHRhcmVhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRleHRhcmVhLnNlbGVjdGlvbkVuZDtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dGFyZWEudmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoYXJCZWZvcmUgPSBzdGFydCA+IDAgPyBvcmlnaW5hbFRleHRbc3RhcnQgLSAxXSA6ICcnO1xyXG4gICAgICAgICAgICBjb25zdCBjaGFyQWZ0ZXIgPSBlbmQgPCBvcmlnaW5hbFRleHQubGVuZ3RoID8gb3JpZ2luYWxUZXh0W2VuZF0gOiAnJztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNwYWNlQmVmb3JlID0gY2hhckJlZm9yZSAmJiAhL1xccy8udGVzdChjaGFyQmVmb3JlKSA/ICcgJyA6ICcnO1xyXG4gICAgICAgICAgICBjb25zdCBzcGFjZUFmdGVyID0gY2hhckFmdGVyICYmICEvXFxzLy50ZXN0KGNoYXJBZnRlcikgPyAnICcgOiAnJztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1RleHQgPSBvcmlnaW5hbFRleHQuc2xpY2UoMCwgc3RhcnQpICsgc3BhY2VCZWZvcmUgKyByZXBsYWNlVGFnICsgc3BhY2VBZnRlciArIG9yaWdpbmFsVGV4dC5zbGljZShlbmQpO1xyXG4gICAgICAgICAgICB0aGlzLnRleHQgPSBuZXdUZXh0O1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hbWVTdGFydCA9IG5ld1RleHQuaW5kZXhPZignTmFtZScsIHN0YXJ0KTsgLy8gRmluZCAnTmFtZScgc3RhcnRpbmcgZnJvbSB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIHN0YXJ0XHJcbiAgICAgICAgICAgIGlmIChuYW1lU3RhcnQgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lRW5kID0gbmFtZVN0YXJ0ICsgJ05hbWUnLmxlbmd0aDtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gVXNlIHNldFRpbWVvdXQgdG8gbWFrZSBzdXJlIHRoZSB0ZXh0YXJlYSBpcyB1cGRhdGVkIGJlZm9yZSBzZWxlY3RpbmdcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UobmFtZVN0YXJ0LCBuYW1lRW5kKTsgLy8gU2VsZWN0IHRoZSAnTmFtZScgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblRleHRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRleHQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIH1cclxufSIsIjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgZ2FwLTMgbWItMVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJvbkl0YWxpY0NsaWNrKClcIiB0aXRsZT1cIkl0YWxpY1wiIGFyaWEtbGFiZWw9XCJJdGFsaWNcIiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4gY2xhc3M9XCJmYXMgZmEtaXRhbGljXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJvbkJvbGRDbGljaygpXCIgdGl0bGU9XCJJdGFsaWNcIiBhcmlhLWxhYmVsPVwic3Ryb25nXCIgdHlwZT1cImJ1dHRvblwiPjxzcGFuIGNsYXNzPVwiZmFzIGZhLWJvbGRcIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImhhc1RheG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJvblRheG9uQ2xpY2soKVwiIHRpdGxlPVwiVGF4b25cIiBhcmlhLWxhYmVsPVwiVGF4b25cIiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4gY2xhc3M9XCJmYXMgZmEtYnVnXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJoYXNSZWZlcmVuY2VcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm9uUmVmZXJlbmNlQ2xpY2soKVwiIHRpdGxlPVwiUmVmZXJlbmNlXCIgYXJpYS1sYWJlbD1cIlJlZmVyZW5jZVwiIHR5cGU9XCJidXR0b25cIj48c3BhbiBjbGFzcz1cImZhcyBmYS1hc3Rlcmlza1wiPjwvc3Bhbj48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ0ZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIiAoZGJsY2xpY2spPVwib25Eb3VibGVDbGljaygpXCI+PC90ZXh0YXJlYT5cclxuPC9kaXY+XHJcbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVV6RSxNQUFNLE9BQU8sc0JBQXNCO0lBTS9CLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBSnpCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUF1RjlCLHNCQUFzQjtRQUN0QixhQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUF0RlcsQ0FBQztJQUd2QyxhQUFhO1FBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDL0MsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN6QyxPQUFPLFlBQVksR0FBRyxjQUFjLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUss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QUM7SUFNRCxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7SUFFckMsQ0FBQztJQUVELFdBQVc7SUFDWCxDQUFDO2lJQS9HUSxzQkFBc0I7cUhBQXRCLHNCQUFzQiwwR0FMcEIsQ0FBQztnQkFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQztnQkFDakYsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDLDBCQ1ROLDA5QkFTQTs7MkZERWEsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNJLGlCQUFpQixhQUVoQixDQUFDOzRCQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBQzs0QkFDakYsS0FBSyxFQUFFLElBQUk7eUJBQ2QsQ0FBQzsrRUFJTyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FkYi1yaWNoLWVkaXRvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWRiUmljaEVkaXRvckNvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGJSaWNoRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBoYXNUYXhvbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgaGFzUmVmZXJlbmNlID0gZmFsc2U7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuXHJcbiAgICBvbkRvdWJsZUNsaWNrKCkge1xyXG4gICAgICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICBsZXQgc2VsZWN0aW9uRW5kID0gdGV4dGFyZWEuc2VsZWN0aW9uRW5kO1xyXG4gICAgICAgIHdoaWxlIChzZWxlY3Rpb25FbmQgPiBzZWxlY3Rpb25TdGFydCAmJiB0ZXh0YXJlYS52YWx1ZVtzZWxlY3Rpb25FbmQgLSAxXSA9PT0gJyAnKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbkVuZC0tO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkl0YWxpY0NsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBwbHlGb3JtYXR0aW5nKCdfJyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIG9uQm9sZENsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBwbHlGb3JtYXR0aW5nKCdfXycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXBwbHlGb3JtYXR0aW5nKG1hcmtlcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndGV4dGFyZWEnKTtcclxuICAgICAgICBpZiAodGV4dGFyZWEpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uRW5kID0gdGV4dGFyZWEuc2VsZWN0aW9uRW5kO1xyXG4gICAgICAgICAgICBsZXQgY3VycmVudFZhbHVlID0gdGV4dGFyZWEudmFsdWU7XHJcbiAgICBcclxuICAgICAgICAgICAgbGV0IG1vZGlmaWVkVGV4dCA9IHNlbGVjdGlvblN0YXJ0ICE9PSBzZWxlY3Rpb25FbmRcclxuICAgICAgICAgICAgICAgID8gYCR7Y3VycmVudFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCl9JHttYXJrZXJ9JHtjdXJyZW50VmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpfSR7bWFya2VyfSR7Y3VycmVudFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25FbmQpfWBcclxuICAgICAgICAgICAgICAgIDogYCR7Y3VycmVudFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCl9JHttYXJrZXJ9JHttYXJrZXJ9JHtjdXJyZW50VmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0KX1gO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHRoaXMudGV4dCA9IG1vZGlmaWVkVGV4dDtcclxuICAgICAgICAgICAgdGV4dGFyZWEudmFsdWUgPSBtb2RpZmllZFRleHQ7XHJcbiAgICAgICAgICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgIT09IHNlbGVjdGlvbkVuZCA/IHNlbGVjdGlvbkVuZCArIG1hcmtlci5sZW5ndGggKiAyIDogc2VsZWN0aW9uU3RhcnQgKyBtYXJrZXIubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgIT09IHNlbGVjdGlvbkVuZCA/IHNlbGVjdGlvbkVuZCArIG1hcmtlci5sZW5ndGggKiAyIDogc2VsZWN0aW9uU3RhcnQgKyBtYXJrZXIubGVuZ3RoXHJcbiAgICAgICAgICAgICk7XHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnRleHQpO1xyXG4gICAgICAgICAgICB0ZXh0YXJlYS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblRheG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlTWFya2VkKCdbTmFtZV0odGF4b246MCknKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlZmVyZW5jZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVwbGFjZU1hcmtlZCgnW05hbWVdKHJlZmVyZW5jZTowKScpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVwbGFjZU1hcmtlZChyZXBsYWNlVGFnOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xyXG4gICAgICAgIGlmICh0ZXh0YXJlYSkge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICAgICAgICBjb25zdCBlbmQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25FbmQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVGV4dCA9IHRleHRhcmVhLnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBjaGFyQmVmb3JlID0gc3RhcnQgPiAwID8gb3JpZ2luYWxUZXh0W3N0YXJ0IC0gMV0gOiAnJztcclxuICAgICAgICAgICAgY29uc3QgY2hhckFmdGVyID0gZW5kIDwgb3JpZ2luYWxUZXh0Lmxlbmd0aCA/IG9yaWdpbmFsVGV4dFtlbmRdIDogJyc7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzcGFjZUJlZm9yZSA9IGNoYXJCZWZvcmUgJiYgIS9cXHMvLnRlc3QoY2hhckJlZm9yZSkgPyAnICcgOiAnJztcclxuICAgICAgICAgICAgY29uc3Qgc3BhY2VBZnRlciA9IGNoYXJBZnRlciAmJiAhL1xccy8udGVzdChjaGFyQWZ0ZXIpID8gJyAnIDogJyc7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBuZXdUZXh0ID0gb3JpZ2luYWxUZXh0LnNsaWNlKDAsIHN0YXJ0KSArIHNwYWNlQmVmb3JlICsgcmVwbGFjZVRhZyArIHNwYWNlQWZ0ZXIgKyBvcmlnaW5hbFRleHQuc2xpY2UoZW5kKTtcclxuICAgICAgICAgICAgdGhpcy50ZXh0ID0gbmV3VGV4dDtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lU3RhcnQgPSBuZXdUZXh0LmluZGV4T2YoJ05hbWUnLCBzdGFydCk7IC8vIEZpbmQgJ05hbWUnIHN0YXJ0aW5nIGZyb20gdGhlIHByZXZpb3VzIHNlbGVjdGlvbiBzdGFydFxyXG4gICAgICAgICAgICBpZiAobmFtZVN0YXJ0ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZUVuZCA9IG5hbWVTdGFydCArICdOYW1lJy5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gVXNlIHNldFRpbWVvdXQgdG8gbWFrZSBzdXJlIHRoZSB0ZXh0YXJlYSBpcyB1cGRhdGVkIGJlZm9yZSBzZWxlY3RpbmdcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UobmFtZVN0YXJ0LCBuYW1lRW5kKTsgLy8gU2VsZWN0IHRoZSAnTmFtZScgc3RyaW5nXHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblRleHRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRleHQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIH1cclxufSIsIjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgZ2FwLTMgbWItMVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJvbkl0YWxpY0NsaWNrKClcIiB0aXRsZT1cIkl0YWxpY1wiIGFyaWEtbGFiZWw9XCJJdGFsaWNcIiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4gY2xhc3M9XCJmYXMgZmEtaXRhbGljXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJvbkJvbGRDbGljaygpXCIgdGl0bGU9XCJJdGFsaWNcIiBhcmlhLWxhYmVsPVwic3Ryb25nXCIgdHlwZT1cImJ1dHRvblwiPjxzcGFuIGNsYXNzPVwiZmFzIGZhLWJvbGRcIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImhhc1RheG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJvblRheG9uQ2xpY2soKVwiIHRpdGxlPVwiVGF4b25cIiBhcmlhLWxhYmVsPVwiVGF4b25cIiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4gY2xhc3M9XCJmYXMgZmEtYnVnXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJoYXNSZWZlcmVuY2VcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm9uUmVmZXJlbmNlQ2xpY2soKVwiIHRpdGxlPVwiUmVmZXJlbmNlXCIgYXJpYS1sYWJlbD1cIlJlZmVyZW5jZVwiIHR5cGU9XCJidXR0b25cIj48c3BhbiBjbGFzcz1cImZhcyBmYS1hc3Rlcmlza1wiPjwvc3Bhbj48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ0ZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIiAoZGJsY2xpY2spPVwib25Eb3VibGVDbGljaygpXCI+PC90ZXh0YXJlYT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,10 +1,19 @@
1
- import { CommonModule } from "@angular/common";
2
- import { NgModule } from "@angular/core";
3
- import { AdbRichEditorComponent } from "./adb-rich-editor.component";
4
- import { FormsModule } from "@angular/forms";
5
- import { RichTextComponent } from "./adb-rich-text";
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { AdbRichEditorComponent } from './adb-rich-editor.component';
5
+ import { RichTextComponent } from './adb-rich-text';
6
+ import { RICH_MODULE_CONFIG } from './rich-module-config';
6
7
  import * as i0 from "@angular/core";
7
8
  export class AdbRichEditorModule {
9
+ static forRoot(config) {
10
+ return {
11
+ ngModule: AdbRichEditorModule,
12
+ providers: [
13
+ { provide: RICH_MODULE_CONFIG, useValue: config }
14
+ ]
15
+ };
16
+ }
8
17
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbRichEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
18
  /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: AdbRichEditorModule, declarations: [AdbRichEditorComponent, RichTextComponent], imports: [CommonModule, FormsModule], exports: [AdbRichEditorComponent, RichTextComponent] }); }
10
19
  /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbRichEditorModule, imports: [CommonModule, FormsModule] }); }
@@ -17,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
17
26
  exports: [AdbRichEditorComponent, RichTextComponent]
18
27
  }]
19
28
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXJpY2gtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBT3BELE1BQU0sT0FBTyxtQkFBbUI7aUlBQW5CLG1CQUFtQjtrSUFBbkIsbUJBQW1CLGlCQUhiLHNCQUFzQixFQUFFLGlCQUFpQixhQUQ5QyxZQUFZLEVBQUUsV0FBVyxhQUV6QixzQkFBc0IsRUFBRSxpQkFBaUI7a0lBRTFDLG1CQUFtQixZQUpsQixZQUFZLEVBQUUsV0FBVzs7MkZBSTFCLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDekQsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsaUJBQWlCLENBQUM7aUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFkYlJpY2hFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9hZGItcmljaC1lZGl0b3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFJpY2hUZXh0Q29tcG9uZW50IH0gZnJvbSBcIi4vYWRiLXJpY2gtdGV4dFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0FkYlJpY2hFZGl0b3JDb21wb25lbnQsIFJpY2hUZXh0Q29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtBZGJSaWNoRWRpdG9yQ29tcG9uZW50LCBSaWNoVGV4dENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkYlJpY2hFZGl0b3JNb2R1bGUgeyB9Il19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXJpY2gtZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7QUFPNUUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXdCO1FBQ3JDLE9BQU87WUFDTCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2FBQ2xEO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBUlUsbUJBQW1CO2tJQUFuQixtQkFBbUIsaUJBSGYsc0JBQXNCLEVBQUUsaUJBQWlCLGFBRDlDLFlBQVksRUFBRSxXQUFXLGFBRXpCLHNCQUFzQixFQUFFLGlCQUFpQjtrSUFFeEMsbUJBQW1CLFlBSnBCLFlBQVksRUFBRSxXQUFXOzsyRkFJeEIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixDQUFDO29CQUN6RCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxpQkFBaUIsQ0FBQztpQkFDckQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWRiUmljaEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vYWRiLXJpY2gtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJpY2hUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9hZGItcmljaC10ZXh0JztcclxuaW1wb3J0IHsgUklDSF9NT0RVTEVfQ09ORklHLCBSaWNoTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9yaWNoLW1vZHVsZS1jb25maWcnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbQWRiUmljaEVkaXRvckNvbXBvbmVudCwgUmljaFRleHRDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtBZGJSaWNoRWRpdG9yQ29tcG9uZW50LCBSaWNoVGV4dENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkYlJpY2hFZGl0b3JNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogUmljaE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWRiUmljaEVkaXRvck1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFkYlJpY2hFZGl0b3JNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogUklDSF9NT0RVTEVfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,11 +1,13 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Inject, Input } from '@angular/core';
2
+ import { RICH_MODULE_CONFIG } from './rich-module-config';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
4
5
  export class RichTextComponent {
5
- constructor() {
6
+ constructor(config) {
7
+ this.config = config;
6
8
  this.text = '';
7
- this.baseUrl = '';
8
9
  this.parts = [];
10
+ this.taxonUrl = config.taxonUrl;
9
11
  }
10
12
  ngOnChanges() {
11
13
  if (this.text) {
@@ -48,15 +50,16 @@ export class RichTextComponent {
48
50
  }
49
51
  return parts;
50
52
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RichTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RichTextComponent, selector: "adb-rich-text", inputs: { text: "text", baseUrl: "baseUrl" }, usesOnChanges: true, ngImport: i0, template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"baseUrl + '/taxa/' + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n ", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
53
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RichTextComponent, deps: [{ token: RICH_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
54
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RichTextComponent, selector: "adb-rich-text", inputs: { text: "text" }, usesOnChanges: true, ngImport: i0, template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"taxonUrl + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n ", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
53
55
  }
54
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RichTextComponent, decorators: [{
55
57
  type: Component,
56
- args: [{ selector: 'adb-rich-text', template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"baseUrl + '/taxa/' + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n " }]
57
- }], propDecorators: { text: [{
58
- type: Input
59
- }], baseUrl: [{
58
+ args: [{ selector: 'adb-rich-text', template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"taxonUrl + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n " }]
59
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
60
+ type: Inject,
61
+ args: [RICH_MODULE_CONFIG]
62
+ }] }], propDecorators: { text: [{
60
63
  type: Input
61
64
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXJpY2gtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtdGV4dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtdGV4dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFXakQsTUFBTSxPQUFPLGlCQUFpQjtJQUo5QjtRQUtXLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUV2QixVQUFLLEdBQW1CLEVBQUUsQ0FBQztLQWdEbkM7SUE5Q0MsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBYTtRQUN2QyxNQUFNLEtBQUssR0FBbUIsRUFBRSxDQUFDO1FBRWpDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDakMsTUFBTSxVQUFVLEdBQUcsZ0NBQWdDLENBQUM7UUFDcEQsTUFBTSxTQUFTLEdBQUcsK0JBQStCLENBQUM7UUFDbEQsTUFBTSxjQUFjLEdBQUcsb0NBQW9DLENBQUM7UUFFNUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVySixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxLQUFLLENBQUM7UUFFVixPQUFPLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxFQUFFLENBQUM7Z0JBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkUsQ0FBQztZQUVELFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO2lJQWxEWSxpQkFBaUI7cUhBQWpCLGlCQUFpQix3SENYOUIsb2xCQVVFOzsyRkRDVyxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0UsZUFBZTs4QkFJaEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dFBhcnQge1xyXG4gIHR5cGU6ICd0ZXh0JyB8ICdpdGFsaWMnIHwgJ2JvbGQnIHwgJ3RheG9uJyB8ICd0ZXJtJyB8ICdyZWZlcmVuY2UnO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBpZD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhZGItcmljaC10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRiLXJpY2gtdGV4dC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJpY2hUZXh0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBiYXNlVXJsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIHBhcnRzOiBSaWNoVGV4dFBhcnRbXSA9IFtdO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnRleHQpIHtcclxuICAgICAgdGhpcy5wYXJ0cyA9IHRoaXMucGFyc2VDdXN0b21NYXJrZG93bih0aGlzLnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUN1c3RvbU1hcmtkb3duKGlucHV0OiBzdHJpbmcpOiBSaWNoVGV4dFBhcnRbXSB7XHJcbiAgICBjb25zdCBwYXJ0czogUmljaFRleHRQYXJ0W10gPSBbXTtcclxuXHJcbiAgICBjb25zdCBpdGFsaWNSZWdleCA9IC9fKFteX10rKV8vZztcclxuICAgIGNvbnN0IGJvbGRSZWdleCA9IC9fXyhbXl9dKylfXy9nO1xyXG4gICAgY29uc3QgdGF4b25SZWdleCA9IC9cXFsoW15cXF1dKylcXF1cXCh0YXhvbjooW14pXSspXFwpL2c7XHJcbiAgICBjb25zdCB0ZXJtUmVnZXggPSAvXFxbKFteXFxdXSspXFxdXFwodGVybTooW14pXSspXFwpL2c7XHJcbiAgICBjb25zdCByZWZlcmVuY2VSZWdleCA9IC9cXFsoW15cXF1dKylcXF1cXChyZWZlcmVuY2U6KFteKV0rKVxcKS9nO1xyXG5cclxuICAgIGNvbnN0IGNvbWJpbmVkUmVnZXggPSBuZXcgUmVnRXhwKGAke2l0YWxpY1JlZ2V4LnNvdXJjZX18JHtib2xkUmVnZXguc291cmNlfXwke3RheG9uUmVnZXguc291cmNlfXwke3Rlcm1SZWdleC5zb3VyY2V9fCR7cmVmZXJlbmNlUmVnZXguc291cmNlfWAsICdnJyk7XHJcblxyXG4gICAgbGV0IGxhc3RJbmRleCA9IDA7XHJcbiAgICBsZXQgbWF0Y2g7XHJcblxyXG4gICAgd2hpbGUgKChtYXRjaCA9IGNvbWJpbmVkUmVnZXguZXhlYyhpbnB1dCkpICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XHJcbiAgICAgICAgICAgIHBhcnRzLnB1c2goeyB0eXBlOiAndGV4dCcsIGNvbnRlbnQ6IGlucHV0LnNsaWNlKGxhc3RJbmRleCwgbWF0Y2guaW5kZXgpIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWF0Y2hbMV0pIHtcclxuICAgICAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICdpdGFsaWMnLCBjb250ZW50OiBtYXRjaFsxXSB9KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoWzJdKSB7XHJcbiAgICAgICAgICAgIHBhcnRzLnB1c2goeyB0eXBlOiAnYm9sZCcsIGNvbnRlbnQ6IG1hdGNoWzJdIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hbM10pIHtcclxuICAgICAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICd0YXhvbicsIGNvbnRlbnQ6IG1hdGNoWzNdLCBpZDogbWF0Y2hbNF0gfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaFs1XSkge1xyXG4gICAgICAgICAgICBwYXJ0cy5wdXNoKHsgdHlwZTogJ3Rlcm0nLCBjb250ZW50OiBtYXRjaFs1XSwgaWQ6IG1hdGNoWzZdIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hbN10pIHtcclxuICAgICAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICdyZWZlcmVuY2UnLCBjb250ZW50OiBtYXRjaFs3XSwgaWQ6IG1hdGNoWzhdIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGFzdEluZGV4ID0gY29tYmluZWRSZWdleC5sYXN0SW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxhc3RJbmRleCA8IGlucHV0Lmxlbmd0aCkge1xyXG4gICAgICAgIHBhcnRzLnB1c2goeyB0eXBlOiAndGV4dCcsIGNvbnRlbnQ6IGlucHV0LnNsaWNlKGxhc3RJbmRleCkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhcnRzO1xyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYXJ0IG9mIHBhcnRzXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwicGFydC50eXBlID09PSAndGV4dCdcIj57eyBwYXJ0LmNvbnRlbnQgfX08L3NwYW4+XHJcbiAgICAgIDxlbSAqbmdJZj1cInBhcnQudHlwZSA9PT0gJ2l0YWxpYydcIj57eyBwYXJ0LmNvbnRlbnQgfX08L2VtPlxyXG4gICAgICA8YiAqbmdJZj1cInBhcnQudHlwZSA9PT0gJ2JvbGQnXCI+e3sgcGFydC5jb250ZW50IH19PC9iPlxyXG4gICAgICA8YSAqbmdJZj1cInBhcnQudHlwZSA9PT0gJ3RheG9uJ1wiIFtocmVmXT1cImJhc2VVcmwgKyAnL3RheGEvJyArIHBhcnQuaWRcIj57eyBwYXJ0LmNvbnRlbnQgfX08L2E+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwicGFydC50eXBlID09PSAndGVybSdcIj57eyBwYXJ0LmNvbnRlbnQgfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwicGFydC50eXBlID09PSAncmVmZXJlbmNlJ1wiPnt7IHBhcnQuY29udGVudCB9fTwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gICJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXJpY2gtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtdGV4dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItcmljaC1lZGl0b3IvYWRiLXJpY2gtdGV4dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sc0JBQXNCLENBQUM7OztBQVc1RSxNQUFNLE9BQU8saUJBQWlCO0lBTTVCLFlBQWdELE1BQXdCO1FBQXhCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBTC9ELFNBQUksR0FBVyxFQUFFLENBQUM7UUFFcEIsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFJaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFhO1FBQ3ZDLE1BQU0sS0FBSyxHQUFtQixFQUFFLENBQUM7UUFFakMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxNQUFNLFVBQVUsR0FBRyxnQ0FBZ0MsQ0FBQztRQUNwRCxNQUFNLFNBQVMsR0FBRywrQkFBK0IsQ0FBQztRQUNsRCxNQUFNLGNBQWMsR0FBRyxvQ0FBb0MsQ0FBQztRQUU1RCxNQUFNLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXJKLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLEtBQUssQ0FBQztRQUVWLE9BQU8sQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BELElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBRUQsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztpSUF0RFUsaUJBQWlCLGtCQU1SLGtCQUFrQjtxSEFOM0IsaUJBQWlCLG9HQ1o5Qiwwa0JBVUU7OzJGREVXLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxlQUFlOzswQkFTWixNQUFNOzJCQUFDLGtCQUFrQjt5Q0FMN0IsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJJQ0hfTU9EVUxFX0NPTkZJRywgUmljaE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vcmljaC1tb2R1bGUtY29uZmlnJztcclxuZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dFBhcnQge1xyXG4gIHR5cGU6ICd0ZXh0JyB8ICdpdGFsaWMnIHwgJ2JvbGQnIHwgJ3RheG9uJyB8ICd0ZXJtJyB8ICdyZWZlcmVuY2UnO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBpZD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhZGItcmljaC10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRiLXJpY2gtdGV4dC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJpY2hUZXh0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIHBhcnRzOiBSaWNoVGV4dFBhcnRbXSA9IFtdO1xyXG4gIHRheG9uVXJsOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUklDSF9NT0RVTEVfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogUmljaE1vZHVsZUNvbmZpZykge1xyXG4gICAgdGhpcy50YXhvblVybCA9IGNvbmZpZy50YXhvblVybDtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMudGV4dCkge1xyXG4gICAgICB0aGlzLnBhcnRzID0gdGhpcy5wYXJzZUN1c3RvbU1hcmtkb3duKHRoaXMudGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlQ3VzdG9tTWFya2Rvd24oaW5wdXQ6IHN0cmluZyk6IFJpY2hUZXh0UGFydFtdIHtcclxuICAgIGNvbnN0IHBhcnRzOiBSaWNoVGV4dFBhcnRbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGl0YWxpY1JlZ2V4ID0gL18oW15fXSspXy9nO1xyXG4gICAgY29uc3QgYm9sZFJlZ2V4ID0gL19fKFteX10rKV9fL2c7XHJcbiAgICBjb25zdCB0YXhvblJlZ2V4ID0gL1xcWyhbXlxcXV0rKVxcXVxcKHRheG9uOihbXildKylcXCkvZztcclxuICAgIGNvbnN0IHRlcm1SZWdleCA9IC9cXFsoW15cXF1dKylcXF1cXCh0ZXJtOihbXildKylcXCkvZztcclxuICAgIGNvbnN0IHJlZmVyZW5jZVJlZ2V4ID0gL1xcWyhbXlxcXV0rKVxcXVxcKHJlZmVyZW5jZTooW14pXSspXFwpL2c7XHJcblxyXG4gICAgY29uc3QgY29tYmluZWRSZWdleCA9IG5ldyBSZWdFeHAoYCR7aXRhbGljUmVnZXguc291cmNlfXwke2JvbGRSZWdleC5zb3VyY2V9fCR7dGF4b25SZWdleC5zb3VyY2V9fCR7dGVybVJlZ2V4LnNvdXJjZX18JHtyZWZlcmVuY2VSZWdleC5zb3VyY2V9YCwgJ2cnKTtcclxuXHJcbiAgICBsZXQgbGFzdEluZGV4ID0gMDtcclxuICAgIGxldCBtYXRjaDtcclxuXHJcbiAgICB3aGlsZSAoKG1hdGNoID0gY29tYmluZWRSZWdleC5leGVjKGlucHV0KSkgIT09IG51bGwpIHtcclxuICAgICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XHJcbiAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICd0ZXh0JywgY29udGVudDogaW5wdXQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCkgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1hdGNoWzFdKSB7XHJcbiAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICdpdGFsaWMnLCBjb250ZW50OiBtYXRjaFsxXSB9KTtcclxuICAgICAgfSBlbHNlIGlmIChtYXRjaFsyXSkge1xyXG4gICAgICAgIHBhcnRzLnB1c2goeyB0eXBlOiAnYm9sZCcsIGNvbnRlbnQ6IG1hdGNoWzJdIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKG1hdGNoWzNdKSB7XHJcbiAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICd0YXhvbicsIGNvbnRlbnQ6IG1hdGNoWzNdLCBpZDogbWF0Y2hbNF0gfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAobWF0Y2hbNV0pIHtcclxuICAgICAgICBwYXJ0cy5wdXNoKHsgdHlwZTogJ3Rlcm0nLCBjb250ZW50OiBtYXRjaFs1XSwgaWQ6IG1hdGNoWzZdIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKG1hdGNoWzddKSB7XHJcbiAgICAgICAgcGFydHMucHVzaCh7IHR5cGU6ICdyZWZlcmVuY2UnLCBjb250ZW50OiBtYXRjaFs3XSwgaWQ6IG1hdGNoWzhdIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsYXN0SW5kZXggPSBjb21iaW5lZFJlZ2V4Lmxhc3RJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobGFzdEluZGV4IDwgaW5wdXQubGVuZ3RoKSB7XHJcbiAgICAgIHBhcnRzLnB1c2goeyB0eXBlOiAndGV4dCcsIGNvbnRlbnQ6IGlucHV0LnNsaWNlKGxhc3RJbmRleCkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhcnRzO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmUtd3JhcDtcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhcnQgb2YgcGFydHNcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJwYXJ0LnR5cGUgPT09ICd0ZXh0J1wiPnt7IHBhcnQuY29udGVudCB9fTwvc3Bhbj5cclxuICAgICAgPGVtICpuZ0lmPVwicGFydC50eXBlID09PSAnaXRhbGljJ1wiPnt7IHBhcnQuY29udGVudCB9fTwvZW0+XHJcbiAgICAgIDxiICpuZ0lmPVwicGFydC50eXBlID09PSAnYm9sZCdcIj57eyBwYXJ0LmNvbnRlbnQgfX08L2I+XHJcbiAgICAgIDxhICpuZ0lmPVwicGFydC50eXBlID09PSAndGF4b24nXCIgW2hyZWZdPVwidGF4b25VcmwgKyBwYXJ0LmlkXCI+e3sgcGFydC5jb250ZW50IH19PC9hPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cInBhcnQudHlwZSA9PT0gJ3Rlcm0nXCI+e3sgcGFydC5jb250ZW50IH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cInBhcnQudHlwZSA9PT0gJ3JlZmVyZW5jZSdcIj57eyBwYXJ0LmNvbnRlbnQgfX08L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICAiXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const RICH_MODULE_CONFIG = new InjectionToken('richModule.config');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1tb2R1bGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2FkYi1yaWNoLWVkaXRvci9yaWNoLW1vZHVsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJpY2hNb2R1bGVDb25maWcge1xyXG4gIHRheG9uVXJsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBSSUNIX01PRFVMRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmljaE1vZHVsZUNvbmZpZz4oJ3JpY2hNb2R1bGUuY29uZmlnJyk7XHJcbiJdfQ==
@@ -5,7 +5,7 @@ export class EmptyValuePipe {
5
5
  if (!value) {
6
6
  return '-';
7
7
  }
8
- if (value.trim() === '') {
8
+ if (String(value).trim() === '') {
9
9
  return '-';
10
10
  }
11
11
  return value;
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
19
19
  name: 'adbEmptyValue'
20
20
  }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHlWYWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9waXBlcy9lbXB0eVZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBSXBELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7aUlBVFEsY0FBYzsrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUgxQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxlQUFlO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2FkYkVtcHR5VmFsdWUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbXB0eVZhbHVlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnLSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnLSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHlWYWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9waXBlcy9lbXB0eVZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBSXBELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7aUlBVFEsY0FBYzsrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUgxQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxlQUFlO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2FkYkVtcHR5VmFsdWUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbXB0eVZhbHVlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnLSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChTdHJpbmcodmFsdWUpLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuICctJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i2$1 from '@angular/common';
2
2
  import { CommonModule, DatePipe, formatDate } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, Inject, EventEmitter, Directive, Output, HostListener, Input, HostBinding, NgModule, Component, Pipe, forwardRef } from '@angular/core';
4
+ import { Injectable, Inject, EventEmitter, Directive, Output, HostListener, Input, HostBinding, NgModule, Component, Pipe, forwardRef, InjectionToken } from '@angular/core';
5
5
  import * as i1$1 from '@ngx-translate/core';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import * as i1 from '@angular/common/http';
@@ -1000,7 +1000,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
1000
1000
  TranslateModule,
1001
1001
  AdbDirectivesModule,
1002
1002
  AdbDropdownModule,
1003
- AdbPagersModule], providers: [provideHttpClient(withInterceptorsFromDi())] }]
1003
+ AdbPagersModule],
1004
+ providers: [provideHttpClient(withInterceptorsFromDi())] }]
1004
1005
  }] });
1005
1006
 
1006
1007
  class LocaleDatePipe {
@@ -1026,7 +1027,7 @@ class EmptyValuePipe {
1026
1027
  if (!value) {
1027
1028
  return '-';
1028
1029
  }
1029
- if (value.trim() === '') {
1030
+ if (String(value).trim() === '') {
1030
1031
  return '-';
1031
1032
  }
1032
1033
  return value;
@@ -1795,25 +1796,25 @@ class AdbRichEditorComponent {
1795
1796
  textarea.setSelectionRange(selectionStart, selectionEnd);
1796
1797
  }
1797
1798
  onItalicClick() {
1798
- const textarea = this.el.nativeElement.querySelector('textarea');
1799
- if (textarea) {
1800
- const selectionStart = textarea.selectionStart;
1801
- const selectionEnd = textarea.selectionEnd;
1802
- let currentValue = textarea.value;
1803
- let modifiedText = `${currentValue.substring(0, selectionStart)}_${currentValue.substring(selectionStart, selectionEnd)}_${currentValue.substring(selectionEnd)}`;
1804
- this.text = modifiedText;
1805
- this.onChange(this.text);
1806
- }
1799
+ this.applyFormatting('_');
1807
1800
  }
1808
1801
  onBoldClick() {
1802
+ this.applyFormatting('__');
1803
+ }
1804
+ applyFormatting(marker) {
1809
1805
  const textarea = this.el.nativeElement.querySelector('textarea');
1810
1806
  if (textarea) {
1811
1807
  const selectionStart = textarea.selectionStart;
1812
1808
  const selectionEnd = textarea.selectionEnd;
1813
1809
  let currentValue = textarea.value;
1814
- let modifiedText = `${currentValue.substring(0, selectionStart)}__${currentValue.substring(selectionStart, selectionEnd)}__${currentValue.substring(selectionEnd)}`;
1810
+ let modifiedText = selectionStart !== selectionEnd
1811
+ ? `${currentValue.substring(0, selectionStart)}${marker}${currentValue.substring(selectionStart, selectionEnd)}${marker}${currentValue.substring(selectionEnd)}`
1812
+ : `${currentValue.substring(0, selectionStart)}${marker}${marker}${currentValue.substring(selectionStart)}`;
1815
1813
  this.text = modifiedText;
1814
+ textarea.value = modifiedText;
1815
+ textarea.setSelectionRange(selectionStart !== selectionEnd ? selectionEnd + marker.length * 2 : selectionStart + marker.length, selectionStart !== selectionEnd ? selectionEnd + marker.length * 2 : selectionStart + marker.length);
1816
1816
  this.onChange(this.text);
1817
+ textarea.focus();
1817
1818
  }
1818
1819
  }
1819
1820
  onTaxonClick() {
@@ -1880,11 +1881,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
1880
1881
  type: Input
1881
1882
  }] } });
1882
1883
 
1884
+ const RICH_MODULE_CONFIG = new InjectionToken('richModule.config');
1885
+
1883
1886
  class RichTextComponent {
1884
- constructor() {
1887
+ constructor(config) {
1888
+ this.config = config;
1885
1889
  this.text = '';
1886
- this.baseUrl = '';
1887
1890
  this.parts = [];
1891
+ this.taxonUrl = config.taxonUrl;
1888
1892
  }
1889
1893
  ngOnChanges() {
1890
1894
  if (this.text) {
@@ -1927,19 +1931,28 @@ class RichTextComponent {
1927
1931
  }
1928
1932
  return parts;
1929
1933
  }
1930
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RichTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1931
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RichTextComponent, selector: "adb-rich-text", inputs: { text: "text", baseUrl: "baseUrl" }, usesOnChanges: true, ngImport: i0, template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"baseUrl + '/taxa/' + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n ", dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1934
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RichTextComponent, deps: [{ token: RICH_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
1935
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RichTextComponent, selector: "adb-rich-text", inputs: { text: "text" }, usesOnChanges: true, ngImport: i0, template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"taxonUrl + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n ", dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1932
1936
  }
1933
1937
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RichTextComponent, decorators: [{
1934
1938
  type: Component,
1935
- args: [{ selector: 'adb-rich-text', template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"baseUrl + '/taxa/' + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n " }]
1936
- }], propDecorators: { text: [{
1937
- type: Input
1938
- }], baseUrl: [{
1939
+ args: [{ selector: 'adb-rich-text', template: "<div style=\"white-space: pre-wrap;\">\r\n <ng-container *ngFor=\"let part of parts\">\r\n <span *ngIf=\"part.type === 'text'\">{{ part.content }}</span>\r\n <em *ngIf=\"part.type === 'italic'\">{{ part.content }}</em>\r\n <b *ngIf=\"part.type === 'bold'\">{{ part.content }}</b>\r\n <a *ngIf=\"part.type === 'taxon'\" [href]=\"taxonUrl + part.id\">{{ part.content }}</a>\r\n <span *ngIf=\"part.type === 'term'\">{{ part.content }}</span>\r\n <span *ngIf=\"part.type === 'reference'\">{{ part.content }}</span>\r\n </ng-container>\r\n </div>\r\n " }]
1940
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1941
+ type: Inject,
1942
+ args: [RICH_MODULE_CONFIG]
1943
+ }] }], propDecorators: { text: [{
1939
1944
  type: Input
1940
1945
  }] } });
1941
1946
 
1942
1947
  class AdbRichEditorModule {
1948
+ static forRoot(config) {
1949
+ return {
1950
+ ngModule: AdbRichEditorModule,
1951
+ providers: [
1952
+ { provide: RICH_MODULE_CONFIG, useValue: config }
1953
+ ]
1954
+ };
1955
+ }
1943
1956
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbRichEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1944
1957
  /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: AdbRichEditorModule, declarations: [AdbRichEditorComponent, RichTextComponent], imports: [CommonModule, FormsModule], exports: [AdbRichEditorComponent, RichTextComponent] }); }
1945
1958
  /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbRichEditorModule, imports: [CommonModule, FormsModule] }); }