@cleavelandprice/ngx-lib 4.4.0 → 4.4.2
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.
- package/README.md +5 -5
- package/active-directory/material/components/user-chooser/user-chooser.component.d.ts +18 -18
- package/authentication/model/abstract-authentication-service.d.ts +4 -4
- package/authentication/object/services/authentication-object.service.d.ts +4 -3
- package/authentication/token/services/authentication-token.service.d.ts +4 -3
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs +13 -13
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs +17 -17
- package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +22 -12
- package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +22 -12
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +25 -25
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
- package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +10 -10
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +15 -15
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +14 -14
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-table.mjs +14 -14
- package/fesm2022/cleavelandprice-ngx-lib-table.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +15 -16
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib.mjs +7 -7
- package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/package.json +3 -33
- package/esm2022/active-directory/active-directory.api.mjs +0 -11
- package/esm2022/active-directory/active-directory.module.mjs +0 -40
- package/esm2022/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +0 -5
- package/esm2022/active-directory/material/cleavelandprice-ngx-lib-active-directory-material.mjs +0 -5
- package/esm2022/active-directory/material/components/user-chooser/user-chooser.component.mjs +0 -437
- package/esm2022/active-directory/material/components/user-form-field/user-form-field.component.mjs +0 -159
- package/esm2022/active-directory/material/mat-active-directory.api.mjs +0 -11
- package/esm2022/active-directory/material/mat-active-directory.module.mjs +0 -100
- package/esm2022/active-directory/material/model/default-user-chooser-data.mjs +0 -15
- package/esm2022/active-directory/material/model/default-user-chooser-filter-options.mjs +0 -8
- package/esm2022/active-directory/material/model/selectable-group.mjs +0 -2
- package/esm2022/active-directory/material/model/selectable-user.mjs +0 -2
- package/esm2022/active-directory/material/model/user-chooser-data.mjs +0 -2
- package/esm2022/active-directory/material/model/user-chooser-filter-options.mjs +0 -3
- package/esm2022/active-directory/material/model/user-chooser-mode.mjs +0 -6
- package/esm2022/active-directory/material/model/user-chooser-pre-processing-group.mjs +0 -3
- package/esm2022/active-directory/model/active-directory-service-options-token.mjs +0 -3
- package/esm2022/active-directory/model/active-directory-service-options.mjs +0 -2
- package/esm2022/active-directory/model/ad-object-with-children.mjs +0 -2
- package/esm2022/active-directory/model/ad-object.mjs +0 -2
- package/esm2022/active-directory/model/cache-object.mjs +0 -3
- package/esm2022/active-directory/model/cleaveland-price-user.mjs +0 -2
- package/esm2022/active-directory/model/group.mjs +0 -2
- package/esm2022/active-directory/model/user-or-group.mjs +0 -2
- package/esm2022/active-directory/model/user.mjs +0 -2
- package/esm2022/active-directory/services/active-directory.service.mjs +0 -125
- package/esm2022/authentication/authentication.api.mjs +0 -7
- package/esm2022/authentication/authentication.base.module.mjs +0 -40
- package/esm2022/authentication/cleavelandprice-ngx-lib-authentication.mjs +0 -5
- package/esm2022/authentication/material/cleavelandprice-ngx-lib-authentication-material.mjs +0 -5
- package/esm2022/authentication/material/components/login/login.component.mjs +0 -49
- package/esm2022/authentication/material/components/login-form/login-form.component.mjs +0 -82
- package/esm2022/authentication/material/mat-authentication.api.mjs +0 -8
- package/esm2022/authentication/material/mat-authentication.module.mjs +0 -84
- package/esm2022/authentication/material/model/login-form-data.mjs +0 -2
- package/esm2022/authentication/material/model/mat-authentication-service-options-token.mjs +0 -3
- package/esm2022/authentication/material/model/mat-authentication-service-options.mjs +0 -2
- package/esm2022/authentication/material/services/mat-authentication.service.mjs +0 -67
- package/esm2022/authentication/model/abstract-authentication-service.mjs +0 -2
- package/esm2022/authentication/model/authenticated-user.mjs +0 -2
- package/esm2022/authentication/model/authentication-request.mjs +0 -2
- package/esm2022/authentication/model/authentication-service-options-token.mjs +0 -3
- package/esm2022/authentication/model/authentication-service-options.mjs +0 -2
- package/esm2022/authentication/object/authentication-object.api.mjs +0 -6
- package/esm2022/authentication/object/authentication-object.module.mjs +0 -40
- package/esm2022/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +0 -5
- package/esm2022/authentication/object/services/authentication-object.service.mjs +0 -119
- package/esm2022/authentication/token/authentication-token.api.mjs +0 -6
- package/esm2022/authentication/token/authetiction-token.module.mjs +0 -40
- package/esm2022/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +0 -5
- package/esm2022/authentication/token/model/authentication-token-service-options-token.mjs +0 -3
- package/esm2022/authentication/token/model/authentication-token-service-options.mjs +0 -2
- package/esm2022/authentication/token/model/authentication-token.mjs +0 -2
- package/esm2022/authentication/token/services/authentication-token.service.mjs +0 -128
- package/esm2022/cleavelandprice-ngx-lib.mjs +0 -5
- package/esm2022/dialog/cleavelandprice-ngx-lib-dialog.mjs +0 -5
- package/esm2022/dialog/components/base/base.component.mjs +0 -102
- package/esm2022/dialog/components/choice/choice.component.mjs +0 -21
- package/esm2022/dialog/components/confirmation/confirmation.component.mjs +0 -21
- package/esm2022/dialog/components/input/input.component.mjs +0 -21
- package/esm2022/dialog/components/message/message.component.mjs +0 -21
- package/esm2022/dialog/dialog.api.mjs +0 -20
- package/esm2022/dialog/dialog.module.mjs +0 -73
- package/esm2022/dialog/model/confirmation-dialog-mode.mjs +0 -8
- package/esm2022/dialog/model/dialog-base-data.mjs +0 -2
- package/esm2022/dialog/model/dialog-choice-data.mjs +0 -2
- package/esm2022/dialog/model/dialog-type.mjs +0 -8
- package/esm2022/lib/model/app-path-config.mjs +0 -2
- package/esm2022/lib/model/app-type.mjs +0 -2
- package/esm2022/lib/model/app.mjs +0 -2
- package/esm2022/lib/model/caching-config.mjs +0 -2
- package/esm2022/lib/model/credentials.mjs +0 -2
- package/esm2022/lib/model/logging-config.mjs +0 -2
- package/esm2022/lib/model/service-options-token.mjs +0 -3
- package/esm2022/lib/model/service-options.mjs +0 -2
- package/esm2022/lib/ngx-lib.module.mjs +0 -37
- package/esm2022/lib/services/app-path-config.service.mjs +0 -50
- package/esm2022/lib/services/service-base.mjs +0 -26
- package/esm2022/msgraph/cleavelandprice-ngx-lib-msgraph.mjs +0 -5
- package/esm2022/msgraph/model/address.mjs +0 -2
- package/esm2022/msgraph/model/attendee.mjs +0 -2
- package/esm2022/msgraph/model/bulk-calendar-events.mjs +0 -2
- package/esm2022/msgraph/model/bulk-calendar-request.mjs +0 -2
- package/esm2022/msgraph/model/calendar-event.mjs +0 -2
- package/esm2022/msgraph/model/coordinates.mjs +0 -2
- package/esm2022/msgraph/model/email-address.mjs +0 -2
- package/esm2022/msgraph/model/location.mjs +0 -2
- package/esm2022/msgraph/model/online-meeting-info.mjs +0 -2
- package/esm2022/msgraph/model/patterned-recurrence.mjs +0 -2
- package/esm2022/msgraph/model/phone.mjs +0 -2
- package/esm2022/msgraph/model/recipient.mjs +0 -2
- package/esm2022/msgraph/model/recurrence-pattern.mjs +0 -2
- package/esm2022/msgraph/model/recurrence-range.mjs +0 -2
- package/esm2022/msgraph/model/response-status.mjs +0 -2
- package/esm2022/msgraph/model/room.mjs +0 -6
- package/esm2022/msgraph/model/user.mjs +0 -132
- package/esm2022/msgraph/msgraph.api.mjs +0 -19
- package/esm2022/msgraph/msgraph.module.mjs +0 -27
- package/esm2022/public_api.mjs +0 -15
- package/esm2022/quill/cleavelandprice-ngx-lib-quill.mjs +0 -5
- package/esm2022/quill/components/editor/editor.component.mjs +0 -282
- package/esm2022/quill/components/raw/raw.component.mjs +0 -30
- package/esm2022/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +0 -5
- package/esm2022/quill/mention/components/editor/editor.component.mjs +0 -151
- package/esm2022/quill/mention/model/dialog-data.mjs +0 -2
- package/esm2022/quill/mention/quill-mention.api.mjs +0 -9
- package/esm2022/quill/mention/quill-mention.module.mjs +0 -65
- package/esm2022/quill/model/buttons.mjs +0 -3
- package/esm2022/quill/model/config.mjs +0 -3
- package/esm2022/quill/model/default-buttons.mjs +0 -50
- package/esm2022/quill/model/default-config.mjs +0 -28
- package/esm2022/quill/model/default-icons.mjs +0 -7
- package/esm2022/quill/model/default-tooltips.mjs +0 -53
- package/esm2022/quill/model/dialog-data.mjs +0 -2
- package/esm2022/quill/model/icons.mjs +0 -3
- package/esm2022/quill/model/tooltips.mjs +0 -3
- package/esm2022/quill/quill.api.mjs +0 -13
- package/esm2022/quill/quill.module.mjs +0 -75
- package/esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +0 -5
- package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +0 -40
- package/esm2022/sharepoint/default-credentials.mjs +0 -6
- package/esm2022/sharepoint/model/base-item.mjs +0 -2
- package/esm2022/sharepoint/model/base-request-credential.mjs +0 -2
- package/esm2022/sharepoint/model/base-request.mjs +0 -2
- package/esm2022/sharepoint/model/cache-object.mjs +0 -3
- package/esm2022/sharepoint/model/file-request.mjs +0 -2
- package/esm2022/sharepoint/model/folder-request.mjs +0 -2
- package/esm2022/sharepoint/model/list-item.mjs +0 -2
- package/esm2022/sharepoint/model/list-items-request.mjs +0 -2
- package/esm2022/sharepoint/model/photo-item.mjs +0 -2
- package/esm2022/sharepoint/model/sharepoint-service-options.mjs +0 -3
- package/esm2022/sharepoint/model/uri-request.mjs +0 -2
- package/esm2022/sharepoint/model/user-request.mjs +0 -2
- package/esm2022/sharepoint/model/user.mjs +0 -2
- package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +0 -37
- package/esm2022/sharepoint/services/sharepoint.service.mjs +0 -155
- package/esm2022/sharepoint/sharepoint.api.mjs +0 -17
- package/esm2022/sharepoint/sharepoint.module.mjs +0 -50
- package/esm2022/table/cleavelandprice-ngx-lib-table.mjs +0 -5
- package/esm2022/table/components/table/table.component.mjs +0 -120
- package/esm2022/table/model/table-column.mjs +0 -2
- package/esm2022/table/pipes/decimalPoints.mjs +0 -14
- package/esm2022/table/pipes/roundNumber.mjs +0 -14
- package/esm2022/table/table.api.mjs +0 -6
- package/esm2022/table/table.module.mjs +0 -78
- package/esm2022/upload/cleavelandprice-ngx-lib-upload.mjs +0 -5
- package/esm2022/upload/components/upload/upload.component.mjs +0 -32
- package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +0 -98
- package/esm2022/upload/model/database-file-info.mjs +0 -2
- package/esm2022/upload/model/file-upload-request.mjs +0 -2
- package/esm2022/upload/model/filesystem-file-info.mjs +0 -2
- package/esm2022/upload/model/msg-file-content.mjs +0 -5
- package/esm2022/upload/model/upload-service-options-token.mjs +0 -3
- package/esm2022/upload/model/upload-service-options.mjs +0 -3
- package/esm2022/upload/model/upload-status.mjs +0 -2
- package/esm2022/upload/services/upload.service.mjs +0 -106
- package/esm2022/upload/upload.api.mjs +0 -11
- package/esm2022/upload/upload.module.mjs +0 -68
- package/esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +0 -5
- package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +0 -19
- package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +0 -19
- package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +0 -106
- package/esm2022/url-utilities/url-utilities.api.mjs +0 -13
- package/esm2022/url-utilities/url-utilities.module.mjs +0 -34
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export * from './model/address';
|
|
2
|
-
export * from './model/attendee';
|
|
3
|
-
export * from './model/bulk-calendar-events';
|
|
4
|
-
export * from './model/bulk-calendar-request';
|
|
5
|
-
export * from './model/calendar-event';
|
|
6
|
-
export * from './model/coordinates';
|
|
7
|
-
export * from './model/email-address';
|
|
8
|
-
export * from './model/location';
|
|
9
|
-
export * from './model/online-meeting-info';
|
|
10
|
-
export * from './model/patterned-recurrence';
|
|
11
|
-
export * from './model/phone';
|
|
12
|
-
export * from './model/recipient';
|
|
13
|
-
export * from './model/recurrence-pattern';
|
|
14
|
-
export * from './model/recurrence-range';
|
|
15
|
-
export * from './model/response-status';
|
|
16
|
-
export * from './model/room';
|
|
17
|
-
export * from './model/user';
|
|
18
|
-
export * from './msgraph.module';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNncmFwaC5hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9tc2dyYXBoL3NyYy9tc2dyYXBoLmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWwvYWRkcmVzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvYXR0ZW5kZWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2J1bGstY2FsZW5kYXItZXZlbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9idWxrLWNhbGVuZGFyLXJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2NhbGVuZGFyLWV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9jb29yZGluYXRlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZW1haWwtYWRkcmVzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvbG9jYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL29ubGluZS1tZWV0aW5nLWluZm8nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3BhdHRlcm5lZC1yZWN1cnJlbmNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9waG9uZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvcmVjaXBpZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9yZWN1cnJlbmNlLXBhdHRlcm4nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3JlY3VycmVuY2UtcmFuZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3Jlc3BvbnNlLXN0YXR1cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvcm9vbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvdXNlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21zZ3JhcGgubW9kdWxlJzsiXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule, Optional, SkipSelf } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class MSGraphModule {
|
|
5
|
-
constructor(parentModule) {
|
|
6
|
-
if (parentModule) {
|
|
7
|
-
throw new Error('MSGraphModule is already loaded. Import it in the AppModule only');
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, deps: [{ token: MSGraphModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, imports: [CommonModule] }); }
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, imports: [CommonModule] }); }
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, decorators: [{
|
|
15
|
-
type: NgModule,
|
|
16
|
-
args: [{
|
|
17
|
-
declarations: [],
|
|
18
|
-
imports: [
|
|
19
|
-
CommonModule
|
|
20
|
-
]
|
|
21
|
-
}]
|
|
22
|
-
}], ctorParameters: () => [{ type: MSGraphModule, decorators: [{
|
|
23
|
-
type: Optional
|
|
24
|
-
}, {
|
|
25
|
-
type: SkipSelf
|
|
26
|
-
}] }] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNncmFwaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9tc2dyYXBoL3NyYy9tc2dyYXBoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVE3RCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQyxZQUEyQjtRQUM3RCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQzs4R0FOVSxhQUFhOytHQUFiLGFBQWEsWUFIdEIsWUFBWTsrR0FHSCxhQUFhLFlBSHRCLFlBQVk7OzJGQUdILGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGOzswQkFFYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1TR3JhcGhNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudE1vZHVsZTogTVNHcmFwaE1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ01TR3JhcGhNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
|
package/esm2022/public_api.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ngx-lib
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/model/app';
|
|
5
|
-
export * from './lib/model/app-path-config';
|
|
6
|
-
export * from './lib/model/app-type';
|
|
7
|
-
export * from './lib/model/caching-config';
|
|
8
|
-
export * from './lib/model/credentials';
|
|
9
|
-
export * from './lib/model/logging-config';
|
|
10
|
-
export * from './lib/model/service-options';
|
|
11
|
-
export * from './lib/model/service-options-token';
|
|
12
|
-
export * from './lib/services/app-path-config.service';
|
|
13
|
-
export * from './lib/services/service-base';
|
|
14
|
-
export * from './lib/ngx-lib.module';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWJcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hcHAnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hcHAtcGF0aC1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hcHAtdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2NhY2hpbmctY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvY3JlZGVudGlhbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9sb2dnaW5nLWNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3NlcnZpY2Utb3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3NlcnZpY2Utb3B0aW9ucy10b2tlbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHAtcGF0aC1jb25maWcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3NlcnZpY2UtYmFzZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtbGliLm1vZHVsZSc7XHJcblxyXG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './quill.api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC9zcmMvY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9xdWlsbC5hcGknO1xuIl19
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component, forwardRef, inject, model, output, viewChild } from '@angular/core';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
-
import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
5
|
-
import { MatIcon } from '@angular/material/icon';
|
|
6
|
-
import { MatTooltip } from '@angular/material/tooltip';
|
|
7
|
-
import { QuillEditorComponent } from 'ngx-quill';
|
|
8
|
-
import { DefaultButtons } from '../../model/default-buttons';
|
|
9
|
-
import { DefaultConfig } from '../../model/default-config';
|
|
10
|
-
import { DefaultIcons } from '../../model/default-icons';
|
|
11
|
-
import { DefaultTooltips } from '../../model/default-tooltips';
|
|
12
|
-
import { RawComponent } from '../raw/raw.component';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/forms";
|
|
15
|
-
export class EditorComponent {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.#data = inject(MAT_DIALOG_DATA, { optional: true });
|
|
18
|
-
this.#dialogRef = inject((MatDialogRef), { optional: true });
|
|
19
|
-
this.#dialog = inject(MatDialog);
|
|
20
|
-
this.editor = viewChild(QuillEditorComponent);
|
|
21
|
-
this.onChange = (_) => { }; // Invoked when the model has been changed
|
|
22
|
-
this.onTouched = () => { }; // Invoked when the model has been touched
|
|
23
|
-
//#endregion
|
|
24
|
-
this.config = model(DefaultConfig);
|
|
25
|
-
this.placeholder = model();
|
|
26
|
-
//#region These can be passed in as @Input(), or use values from config
|
|
27
|
-
this.format = model();
|
|
28
|
-
this.height = model();
|
|
29
|
-
this.width = model();
|
|
30
|
-
this.fullscreenHeight = model();
|
|
31
|
-
this.fullscreenWidth = model();
|
|
32
|
-
this.fullscreenMode = model();
|
|
33
|
-
this.enableTooltips = model();
|
|
34
|
-
this.fullscreen = model();
|
|
35
|
-
this.readonly = model();
|
|
36
|
-
this.applyReadonlyStyle = model();
|
|
37
|
-
this.showToolbar = model();
|
|
38
|
-
this.showBorder = model();
|
|
39
|
-
//#region Optional Quill modules
|
|
40
|
-
this.imageResizeModule = model();
|
|
41
|
-
this.imageDropModule = model();
|
|
42
|
-
this.syntaxModule = model();
|
|
43
|
-
//#endregion
|
|
44
|
-
//#endregion
|
|
45
|
-
this.fullscreenChanged = output();
|
|
46
|
-
//#region Passthrough events
|
|
47
|
-
this.onBlur = output();
|
|
48
|
-
this.onContentChanged = output();
|
|
49
|
-
this.onEditorChanged = output();
|
|
50
|
-
this.onEditorCreated = output();
|
|
51
|
-
this.onFocus = output();
|
|
52
|
-
this.onSelectionChanged = output();
|
|
53
|
-
}
|
|
54
|
-
get showBlockStyle() { return (this.config()?.buttons?.blockquote || this.config()?.buttons?.codeblock) ?? false; }
|
|
55
|
-
;
|
|
56
|
-
get showFontStyle() { return (this.config()?.buttons?.bold || this.config()?.buttons?.italic || this.config()?.buttons?.strike || this.config()?.buttons?.underline) ?? false; }
|
|
57
|
-
;
|
|
58
|
-
get showQuickHeadingStyle() { return (this.config()?.buttons?.h1 || this.config()?.buttons?.h2) ?? false; }
|
|
59
|
-
;
|
|
60
|
-
get showIndentStyle() { return (this.config()?.buttons?.decreaseIndent || this.config()?.buttons?.increaseIndent) ?? false; }
|
|
61
|
-
;
|
|
62
|
-
get showListStyle() { return (this.config()?.buttons?.bulleted || this.config()?.buttons?.ordered) ?? false; }
|
|
63
|
-
;
|
|
64
|
-
get showMedia() { return (this.config()?.buttons?.link || this.config()?.buttons?.image || this.config()?.buttons?.video) ?? false; }
|
|
65
|
-
;
|
|
66
|
-
get showScriptStyle() { return (this.config()?.buttons?.subScript || this.config()?.buttons?.superScript) ?? false; }
|
|
67
|
-
;
|
|
68
|
-
#data;
|
|
69
|
-
#dialogRef;
|
|
70
|
-
#dialog;
|
|
71
|
-
//#endregion
|
|
72
|
-
ngOnInit() {
|
|
73
|
-
this.initialize();
|
|
74
|
-
/*if (!this.users) {
|
|
75
|
-
this.activeDirectoryService.getUsers().subscribe(users =>
|
|
76
|
-
this.users = users
|
|
77
|
-
);
|
|
78
|
-
}*/
|
|
79
|
-
}
|
|
80
|
-
initialize() {
|
|
81
|
-
this.config.set({
|
|
82
|
-
...DefaultConfig,
|
|
83
|
-
...this.config(),
|
|
84
|
-
...this.#data?.config,
|
|
85
|
-
buttons: this.config()?.buttons ?? DefaultButtons,
|
|
86
|
-
icons: {
|
|
87
|
-
...DefaultIcons,
|
|
88
|
-
...this.config()?.icons
|
|
89
|
-
},
|
|
90
|
-
tooltips: {
|
|
91
|
-
...DefaultTooltips,
|
|
92
|
-
...this.config()?.tooltips
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
this.value = this.value ?? this.#data?.value;
|
|
96
|
-
// Moved to client responsibility
|
|
97
|
-
/*if (this.imageDropModule) {
|
|
98
|
-
Quill.register('modules/imageDrop', ImageDrop);
|
|
99
|
-
}*/
|
|
100
|
-
this.placeholder.set(this.placeholder() ?? this.#data?.placeholder);
|
|
101
|
-
this.imageDropModule.set(this.imageDropModule() ?? this.#data?.imageDropModule ?? this.config().imageDropModule);
|
|
102
|
-
this.imageResizeModule.set(this.imageResizeModule() ?? this.#data?.imageResizeModule ?? this.config().imageResizeModule);
|
|
103
|
-
this.syntaxModule.set(this.syntaxModule() ?? this.#data?.syntaxModule ?? this.config().syntaxModule);
|
|
104
|
-
this.format.set(this.format() ?? this.#data?.format ?? this.config().format);
|
|
105
|
-
this.height.set(this.height() ?? this.#data?.height ?? this.config().height);
|
|
106
|
-
this.width.set(this.width() ?? this.#data?.width ?? this.config().width);
|
|
107
|
-
this.fullscreenHeight.set(this.fullscreenHeight() ?? this.#data?.maxHeight ?? this.config().fullscreenHeight);
|
|
108
|
-
this.fullscreenWidth.set(this.fullscreenWidth() ?? this.#data?.maxWidth ?? this.config().fullscreenWidth);
|
|
109
|
-
this.fullscreenMode.set(this.fullscreenMode() ?? this.#data?.fullscreenMode ?? this.config().fullscreenMode);
|
|
110
|
-
this.enableTooltips.set(this.enableTooltips() !== undefined ?
|
|
111
|
-
this.enableTooltips() :
|
|
112
|
-
this.#data?.enableTooltips ?? this.config().enableTooltips);
|
|
113
|
-
this.fullscreen.set(this.fullscreen() !== undefined ?
|
|
114
|
-
this.fullscreen() :
|
|
115
|
-
this.#data?.fullscreen ?? this.config().fullscreen);
|
|
116
|
-
this.readonly.set(this.readonly() !== undefined ?
|
|
117
|
-
this.readonly() :
|
|
118
|
-
this.#data?.readonly ?? this.config().readonly);
|
|
119
|
-
this.applyReadonlyStyle.set(this.applyReadonlyStyle() !== undefined ?
|
|
120
|
-
this.applyReadonlyStyle() :
|
|
121
|
-
this.#data?.applyReadonlyStyle ?? this.config().applyReadonlyStyle);
|
|
122
|
-
this.showToolbar.set(this.showToolbar() !== undefined ?
|
|
123
|
-
this.showToolbar() :
|
|
124
|
-
this.#data?.showToolbar ?? this.config().showToolbar);
|
|
125
|
-
this.showBorder.set(this.showBorder() !== undefined ?
|
|
126
|
-
this.showBorder() :
|
|
127
|
-
this.#data?.showBorder ?? this.config().showBorder);
|
|
128
|
-
}
|
|
129
|
-
toggleFullscreen() {
|
|
130
|
-
if (this.fullscreenMode() === 'expand') {
|
|
131
|
-
this.fullscreen.set(!this.fullscreen());
|
|
132
|
-
this.fullscreenChanged.emit(this.fullscreen());
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
if (this.fullscreen()) {
|
|
136
|
-
this.#dialogRef?.close(this.value);
|
|
137
|
-
this.fullscreenChanged.emit(false);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
const data = {
|
|
141
|
-
value: this.value,
|
|
142
|
-
config: this.config(),
|
|
143
|
-
placeholder: this.placeholder(),
|
|
144
|
-
format: this.format(),
|
|
145
|
-
height: this.fullscreenHeight(),
|
|
146
|
-
width: '100%',
|
|
147
|
-
maxHeight: this.fullscreenHeight(),
|
|
148
|
-
maxWidth: '100%',
|
|
149
|
-
enableTooltips: this.enableTooltips(),
|
|
150
|
-
fullscreen: true,
|
|
151
|
-
fullscreenMode: this.fullscreenMode(),
|
|
152
|
-
readonly: this.readonly(),
|
|
153
|
-
applyReadonlyStyle: this.applyReadonlyStyle(),
|
|
154
|
-
showToolbar: this.showToolbar(),
|
|
155
|
-
showBorder: this.showBorder(),
|
|
156
|
-
imageResizeModule: this.imageResizeModule(),
|
|
157
|
-
imageDropModule: this.imageDropModule(),
|
|
158
|
-
syntaxModule: this.syntaxModule()
|
|
159
|
-
//users: this.users
|
|
160
|
-
};
|
|
161
|
-
this.#dialog.open(EditorComponent, {
|
|
162
|
-
disableClose: true,
|
|
163
|
-
width: this.fullscreenWidth(),
|
|
164
|
-
height: this.fullscreenHeight(),
|
|
165
|
-
data
|
|
166
|
-
})
|
|
167
|
-
.afterClosed()
|
|
168
|
-
.subscribe(value => {
|
|
169
|
-
this.value = value;
|
|
170
|
-
this.updateChanges();
|
|
171
|
-
});
|
|
172
|
-
this.fullscreenChanged.emit(true);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
rawEdit() {
|
|
177
|
-
this.#dialog.open(RawComponent, {
|
|
178
|
-
data: this.value,
|
|
179
|
-
disableClose: true,
|
|
180
|
-
height: '90%',
|
|
181
|
-
width: '100%'
|
|
182
|
-
})
|
|
183
|
-
.afterClosed()
|
|
184
|
-
.subscribe(value => {
|
|
185
|
-
if (value === '__DO!!NOT!!UPDATE__') {
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
this.value = value;
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
tooltip(val) {
|
|
192
|
-
return this.enableTooltips() ? val : '';
|
|
193
|
-
}
|
|
194
|
-
get modules() {
|
|
195
|
-
//if (!this.users) { return undefined; }
|
|
196
|
-
const modules = {};
|
|
197
|
-
if (!this.showToolbar()) {
|
|
198
|
-
modules['toolbar'] = [];
|
|
199
|
-
}
|
|
200
|
-
if (this.imageResizeModule()) {
|
|
201
|
-
modules['imageResize'] = {};
|
|
202
|
-
}
|
|
203
|
-
if (this.imageDropModule()) {
|
|
204
|
-
modules['imageDrop'] = true;
|
|
205
|
-
}
|
|
206
|
-
if (this.syntaxModule()) {
|
|
207
|
-
modules['syntax'] = true;
|
|
208
|
-
}
|
|
209
|
-
/*if (this.mentionModule) {
|
|
210
|
-
modules['mention'] = {
|
|
211
|
-
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
212
|
-
|
|
213
|
-
onSelect: (item: DOMStringMap, insertItem: any) => {
|
|
214
|
-
const editor = this.editor!.quillEditor
|
|
215
|
-
insertItem(item)
|
|
216
|
-
// necessary because quill-mention triggers changes as 'api' instead of 'user'
|
|
217
|
-
editor.insertText(editor.getLength() - 1, '', 'user')
|
|
218
|
-
},
|
|
219
|
-
|
|
220
|
-
source: (searchTerm: string, renderList: any) => {
|
|
221
|
-
if (searchTerm.length === 0) {
|
|
222
|
-
renderList(this.users?.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm)
|
|
223
|
-
} else {
|
|
224
|
-
const matches: any[] = []
|
|
225
|
-
|
|
226
|
-
this.users!.forEach((entry) => {
|
|
227
|
-
if (
|
|
228
|
-
entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
|
|
229
|
-
entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1
|
|
230
|
-
) {
|
|
231
|
-
matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` })
|
|
232
|
-
}
|
|
233
|
-
})
|
|
234
|
-
|
|
235
|
-
renderList(matches, searchTerm)
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
}*/
|
|
240
|
-
return modules;
|
|
241
|
-
}
|
|
242
|
-
//#region ControlValueAccessor methods
|
|
243
|
-
// Method that is invoked on an update of a model.
|
|
244
|
-
updateChanges() {
|
|
245
|
-
this.onChange(this.value);
|
|
246
|
-
}
|
|
247
|
-
//#region ControlValueAccessor Overrides
|
|
248
|
-
// Writes a new item to the element.
|
|
249
|
-
writeValue(value) {
|
|
250
|
-
this.value = value;
|
|
251
|
-
this.updateChanges();
|
|
252
|
-
}
|
|
253
|
-
// Registers a callback function that should be called when the control's value changes in the UI.
|
|
254
|
-
registerOnChange(fn) {
|
|
255
|
-
this.onChange = fn;
|
|
256
|
-
}
|
|
257
|
-
// Registers a callback function that should be called when the control receives a blur event.
|
|
258
|
-
registerOnTouched(fn) {
|
|
259
|
-
this.onTouched = fn;
|
|
260
|
-
}
|
|
261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: EditorComponent, isStandalone: true, selector: "cpquill-editor", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, fullscreenHeight: { classPropertyName: "fullscreenHeight", publicName: "fullscreenHeight", isSignal: true, isRequired: false, transformFunction: null }, fullscreenWidth: { classPropertyName: "fullscreenWidth", publicName: "fullscreenWidth", isSignal: true, isRequired: false, transformFunction: null }, fullscreenMode: { classPropertyName: "fullscreenMode", publicName: "fullscreenMode", isSignal: true, isRequired: false, transformFunction: null }, enableTooltips: { classPropertyName: "enableTooltips", publicName: "enableTooltips", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, applyReadonlyStyle: { classPropertyName: "applyReadonlyStyle", publicName: "applyReadonlyStyle", isSignal: true, isRequired: false, transformFunction: null }, showToolbar: { classPropertyName: "showToolbar", publicName: "showToolbar", isSignal: true, isRequired: false, transformFunction: null }, showBorder: { classPropertyName: "showBorder", publicName: "showBorder", isSignal: true, isRequired: false, transformFunction: null }, imageResizeModule: { classPropertyName: "imageResizeModule", publicName: "imageResizeModule", isSignal: true, isRequired: false, transformFunction: null }, imageDropModule: { classPropertyName: "imageDropModule", publicName: "imageDropModule", isSignal: true, isRequired: false, transformFunction: null }, syntaxModule: { classPropertyName: "syntaxModule", publicName: "syntaxModule", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange", placeholder: "placeholderChange", format: "formatChange", height: "heightChange", width: "widthChange", fullscreenHeight: "fullscreenHeightChange", fullscreenWidth: "fullscreenWidthChange", fullscreenMode: "fullscreenModeChange", enableTooltips: "enableTooltipsChange", fullscreen: "fullscreenChange", readonly: "readonlyChange", applyReadonlyStyle: "applyReadonlyStyleChange", showToolbar: "showToolbarChange", showBorder: "showBorderChange", imageResizeModule: "imageResizeModuleChange", imageDropModule: "imageDropModuleChange", syntaxModule: "syntaxModuleChange", fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, providers: [{
|
|
263
|
-
provide: NG_VALUE_ACCESSOR,
|
|
264
|
-
useExisting: forwardRef(() => EditorComponent),
|
|
265
|
-
multi: true
|
|
266
|
-
}], viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container>\r\n <form>\r\n <quill-editor name=\"editor\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n [placeholder]=\"placeholder() ?? ''\"\r\n [format]=\"format()\"\r\n [style.height]=\"fullscreen() ? fullscreenHeight() : height()\"\r\n [style.width]=\"fullscreen() ? fullscreenWidth() : width()\"\r\n [readOnly]=\"readonly() ?? false\"\r\n [class.readonly]=\"readonly() && applyReadonlyStyle()\"\r\n [class.no-toolbar]=\"!showToolbar()\"\r\n [class.no-border]=\"!showBorder()\"\r\n [modules]=\"modules\"\r\n\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onContentChanged)=\"onContentChanged.emit($event)\"\r\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\r\n (onEditorCreated)=\"onEditorCreated.emit()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n\r\n @if (showToolbar()) {\r\n <div quill-editor-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"toolbar\"/>\r\n <ng-container [ngTemplateOutlet]=\"editorSize\"/>\r\n </div>\r\n }\r\n </quill-editor>\r\n </form>\r\n</ng-container>\r\n\r\n<ng-template #toolbar>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"fontStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"blockStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"headingStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"listStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"indentStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"rtl\"/>\r\n <ng-container [ngTemplateOutlet]=\"fontSize\"/>\r\n <ng-container [ngTemplateOutlet]=\"heading\"/>\r\n <ng-container [ngTemplateOutlet]=\"color\"/>\r\n <ng-container [ngTemplateOutlet]=\"font\"/>\r\n <ng-container [ngTemplateOutlet]=\"align\"/>\r\n <ng-container [ngTemplateOutlet]=\"clean\"/>\r\n <ng-container [ngTemplateOutlet]=\"formula\"/>\r\n <ng-container [ngTemplateOutlet]=\"media\"/>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fontStyle>\r\n @if (showFontStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.bold) {\r\n <button class=\"ql-bold\" [matTooltip]=\"tooltip(config()!.tooltips!.bold!)\"></button>\r\n }\r\n @if (config()!.buttons!.italic) {\r\n <button class=\"ql-italic\" [matTooltip]=\"tooltip(config()!.tooltips!.italic!)\"></button>\r\n }\r\n @if (config()!.buttons!.underline) {\r\n <button class=\"ql-underline\" [matTooltip]=\"tooltip(config()!.tooltips!.underline!)\"></button>\r\n }\r\n @if (config()!.buttons!.strike) {\r\n <button class=\"ql-strike\" [matTooltip]=\"tooltip(config()!.tooltips!.strike!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #blockStyle>\r\n @if (showBlockStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.blockquote) {\r\n <button class=\"ql-blockquote\" [matTooltip]=\"tooltip(config()!.tooltips!.blockquote!)\"></button>\r\n }\r\n @if (config()!.buttons!.codeblock) {\r\n <button class=\"ql-code-block\" [matTooltip]=\"tooltip(config()!.tooltips!.codeblock!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #headingStyle>\r\n @if (showQuickHeadingStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.h1) {\r\n <button class=\"ql-header\" value=\"1\" [matTooltip]=\"tooltip(config()!.tooltips!.h1!)\"></button>\r\n }\r\n @if (config()!.buttons!.h2) {\r\n <button class=\"ql-header\" value=\"2\" [matTooltip]=\"tooltip(config()!.tooltips!.h2!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #listStyle>\r\n @if (showListStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.ordered) {\r\n <button class=\"ql-list\" value=\"ordered\" [matTooltip]=\"tooltip(config()!.tooltips!.ordered!)\"></button>\r\n }\r\n @if (config()!.buttons!.bulleted) {\r\n <button class=\"ql-list\" value=\"bullet\" [matTooltip]=\"tooltip(config()!.tooltips!.bulleted!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #scriptStyle>\r\n @if (showScriptStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.subScript) {\r\n <button class=\"ql-script\" value=\"sub\" [matTooltip]=\"tooltip(config()!.tooltips!.subScript!)\"></button>\r\n }\r\n @if (config()!.buttons!.superScript) {\r\n <button class=\"ql-script\" value=\"super\" [matTooltip]=\"tooltip(config()!.tooltips!.superScript!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #indentStyle>\r\n @if (showIndentStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.decreaseIndent) {\r\n <button class=\"ql-indent\" value=\"-1\" [matTooltip]=\"tooltip(config()!.tooltips!.decreaseIndent!)\"></button>\r\n }\r\n @if (config()!.buttons!.increaseIndent) {\r\n <button class=\"ql-indent\" value=\"+1\" [matTooltip]=\"tooltip(config()!.tooltips!.increaseIndent!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rtl>\r\n @if (config()!.buttons!.rtl) {\r\n <span class=\"ql-formats\">\r\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config()!.tooltips!.rtl!)\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #fontSize>\r\n @if (config()!.buttons!.fontSize) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.fontSize!)\">\r\n <select class=\"ql-size\">\r\n <option value=\"small\"></option>\r\n <option selected></option>\r\n <option value=\"large\"></option>\r\n <option value=\"huge\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #heading>\r\n @if (config()!.buttons!.headingStyle) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.headingStyle!)\">\r\n <select class=\"ql-header\">\r\n <option value=\"1\"></option>\r\n <option value=\"2\"></option>\r\n <option value=\"3\"></option>\r\n <option value=\"4\"></option>\r\n <option value=\"5\"></option>\r\n <option value=\"6\"></option>\r\n <option selected=\"selected\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #color>\r\n @if (config()!.buttons!.color) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.color!)\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #font>\r\n @if (config()!.buttons!.font) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.font!)\">\r\n <select class=\"ql-font\">\r\n <option selected></option>\r\n <option value=\"serif\"></option>\r\n <option value=\"monospace\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #align>\r\n @if (config()!.buttons!.align) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.align!)\">\r\n <select class=\"ql-align\">\r\n <option selected></option>\r\n <option value=\"center\"></option>\r\n <option value=\"right\"></option>\r\n <option value=\"justify\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #clean>\r\n @if (config()!.buttons!.clean) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.clean!)\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #media>\r\n @if (showMedia) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.link) {\r\n <button class=\"ql-link\" [matTooltip]=\"tooltip(config()!.tooltips!.link!)\"></button>\r\n }\r\n @if (config()!.buttons!.image) {\r\n <button class=\"ql-image\" [matTooltip]=\"tooltip(config()!.tooltips!.image!)\"></button>\r\n }\r\n @if (config()!.buttons!.video) {\r\n <button class=\"ql-video\" [matTooltip]=\"tooltip(config()!.tooltips!.video!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #editorSize>\r\n <div>\r\n @if (config()!.buttons!.rawEditor) {\r\n <span class=\"ql-formats\">\r\n <button id=\"rawdog\"\r\n [matTooltip]=\"tooltip(config()!.tooltips!.rawEditor!)\">\r\n <mat-icon (click)=\"rawEdit()\">\r\n code\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n\r\n @if (config()!.buttons!.editorSize) {\r\n <span class=\"ql-formats\">\r\n <button id=\"fullscreen\"\r\n [matTooltip]=\"tooltip(fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.minimize! : config()!.tooltips!.popin!) :\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.maximize! : config()!.tooltips!.popout!))\">\r\n <mat-icon (click)=\"toggleFullscreen()\">\r\n {{ fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.icons!.minimize : config()!.icons!.popin) :\r\n (fullscreenMode() === 'expand' ? config()!.icons!.maximize : config()!.icons!.popout)\r\n }}\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #formula>\r\n @if (config()!.buttons!.formula) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.formula!)\">\r\n <button class=\"ql-formula\"></button>\r\n </span>\r\n }\r\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: QuillEditorComponent, selector: "quill-editor" }] }); }
|
|
267
|
-
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: EditorComponent, decorators: [{
|
|
269
|
-
type: Component,
|
|
270
|
-
args: [{ selector: 'cpquill-editor', standalone: true, imports: [
|
|
271
|
-
FormsModule,
|
|
272
|
-
MatIcon,
|
|
273
|
-
MatTooltip,
|
|
274
|
-
NgTemplateOutlet,
|
|
275
|
-
QuillEditorComponent,
|
|
276
|
-
], providers: [{
|
|
277
|
-
provide: NG_VALUE_ACCESSOR,
|
|
278
|
-
useExisting: forwardRef(() => EditorComponent),
|
|
279
|
-
multi: true
|
|
280
|
-
}], template: "<ng-container>\r\n <form>\r\n <quill-editor name=\"editor\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n [placeholder]=\"placeholder() ?? ''\"\r\n [format]=\"format()\"\r\n [style.height]=\"fullscreen() ? fullscreenHeight() : height()\"\r\n [style.width]=\"fullscreen() ? fullscreenWidth() : width()\"\r\n [readOnly]=\"readonly() ?? false\"\r\n [class.readonly]=\"readonly() && applyReadonlyStyle()\"\r\n [class.no-toolbar]=\"!showToolbar()\"\r\n [class.no-border]=\"!showBorder()\"\r\n [modules]=\"modules\"\r\n\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onContentChanged)=\"onContentChanged.emit($event)\"\r\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\r\n (onEditorCreated)=\"onEditorCreated.emit()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n\r\n @if (showToolbar()) {\r\n <div quill-editor-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"toolbar\"/>\r\n <ng-container [ngTemplateOutlet]=\"editorSize\"/>\r\n </div>\r\n }\r\n </quill-editor>\r\n </form>\r\n</ng-container>\r\n\r\n<ng-template #toolbar>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"fontStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"blockStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"headingStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"listStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"indentStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"rtl\"/>\r\n <ng-container [ngTemplateOutlet]=\"fontSize\"/>\r\n <ng-container [ngTemplateOutlet]=\"heading\"/>\r\n <ng-container [ngTemplateOutlet]=\"color\"/>\r\n <ng-container [ngTemplateOutlet]=\"font\"/>\r\n <ng-container [ngTemplateOutlet]=\"align\"/>\r\n <ng-container [ngTemplateOutlet]=\"clean\"/>\r\n <ng-container [ngTemplateOutlet]=\"formula\"/>\r\n <ng-container [ngTemplateOutlet]=\"media\"/>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fontStyle>\r\n @if (showFontStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.bold) {\r\n <button class=\"ql-bold\" [matTooltip]=\"tooltip(config()!.tooltips!.bold!)\"></button>\r\n }\r\n @if (config()!.buttons!.italic) {\r\n <button class=\"ql-italic\" [matTooltip]=\"tooltip(config()!.tooltips!.italic!)\"></button>\r\n }\r\n @if (config()!.buttons!.underline) {\r\n <button class=\"ql-underline\" [matTooltip]=\"tooltip(config()!.tooltips!.underline!)\"></button>\r\n }\r\n @if (config()!.buttons!.strike) {\r\n <button class=\"ql-strike\" [matTooltip]=\"tooltip(config()!.tooltips!.strike!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #blockStyle>\r\n @if (showBlockStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.blockquote) {\r\n <button class=\"ql-blockquote\" [matTooltip]=\"tooltip(config()!.tooltips!.blockquote!)\"></button>\r\n }\r\n @if (config()!.buttons!.codeblock) {\r\n <button class=\"ql-code-block\" [matTooltip]=\"tooltip(config()!.tooltips!.codeblock!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #headingStyle>\r\n @if (showQuickHeadingStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.h1) {\r\n <button class=\"ql-header\" value=\"1\" [matTooltip]=\"tooltip(config()!.tooltips!.h1!)\"></button>\r\n }\r\n @if (config()!.buttons!.h2) {\r\n <button class=\"ql-header\" value=\"2\" [matTooltip]=\"tooltip(config()!.tooltips!.h2!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #listStyle>\r\n @if (showListStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.ordered) {\r\n <button class=\"ql-list\" value=\"ordered\" [matTooltip]=\"tooltip(config()!.tooltips!.ordered!)\"></button>\r\n }\r\n @if (config()!.buttons!.bulleted) {\r\n <button class=\"ql-list\" value=\"bullet\" [matTooltip]=\"tooltip(config()!.tooltips!.bulleted!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #scriptStyle>\r\n @if (showScriptStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.subScript) {\r\n <button class=\"ql-script\" value=\"sub\" [matTooltip]=\"tooltip(config()!.tooltips!.subScript!)\"></button>\r\n }\r\n @if (config()!.buttons!.superScript) {\r\n <button class=\"ql-script\" value=\"super\" [matTooltip]=\"tooltip(config()!.tooltips!.superScript!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #indentStyle>\r\n @if (showIndentStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.decreaseIndent) {\r\n <button class=\"ql-indent\" value=\"-1\" [matTooltip]=\"tooltip(config()!.tooltips!.decreaseIndent!)\"></button>\r\n }\r\n @if (config()!.buttons!.increaseIndent) {\r\n <button class=\"ql-indent\" value=\"+1\" [matTooltip]=\"tooltip(config()!.tooltips!.increaseIndent!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rtl>\r\n @if (config()!.buttons!.rtl) {\r\n <span class=\"ql-formats\">\r\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config()!.tooltips!.rtl!)\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #fontSize>\r\n @if (config()!.buttons!.fontSize) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.fontSize!)\">\r\n <select class=\"ql-size\">\r\n <option value=\"small\"></option>\r\n <option selected></option>\r\n <option value=\"large\"></option>\r\n <option value=\"huge\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #heading>\r\n @if (config()!.buttons!.headingStyle) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.headingStyle!)\">\r\n <select class=\"ql-header\">\r\n <option value=\"1\"></option>\r\n <option value=\"2\"></option>\r\n <option value=\"3\"></option>\r\n <option value=\"4\"></option>\r\n <option value=\"5\"></option>\r\n <option value=\"6\"></option>\r\n <option selected=\"selected\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #color>\r\n @if (config()!.buttons!.color) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.color!)\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #font>\r\n @if (config()!.buttons!.font) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.font!)\">\r\n <select class=\"ql-font\">\r\n <option selected></option>\r\n <option value=\"serif\"></option>\r\n <option value=\"monospace\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #align>\r\n @if (config()!.buttons!.align) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.align!)\">\r\n <select class=\"ql-align\">\r\n <option selected></option>\r\n <option value=\"center\"></option>\r\n <option value=\"right\"></option>\r\n <option value=\"justify\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #clean>\r\n @if (config()!.buttons!.clean) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.clean!)\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #media>\r\n @if (showMedia) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.link) {\r\n <button class=\"ql-link\" [matTooltip]=\"tooltip(config()!.tooltips!.link!)\"></button>\r\n }\r\n @if (config()!.buttons!.image) {\r\n <button class=\"ql-image\" [matTooltip]=\"tooltip(config()!.tooltips!.image!)\"></button>\r\n }\r\n @if (config()!.buttons!.video) {\r\n <button class=\"ql-video\" [matTooltip]=\"tooltip(config()!.tooltips!.video!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #editorSize>\r\n <div>\r\n @if (config()!.buttons!.rawEditor) {\r\n <span class=\"ql-formats\">\r\n <button id=\"rawdog\"\r\n [matTooltip]=\"tooltip(config()!.tooltips!.rawEditor!)\">\r\n <mat-icon (click)=\"rawEdit()\">\r\n code\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n\r\n @if (config()!.buttons!.editorSize) {\r\n <span class=\"ql-formats\">\r\n <button id=\"fullscreen\"\r\n [matTooltip]=\"tooltip(fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.minimize! : config()!.tooltips!.popin!) :\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.maximize! : config()!.tooltips!.popout!))\">\r\n <mat-icon (click)=\"toggleFullscreen()\">\r\n {{ fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.icons!.minimize : config()!.icons!.popin) :\r\n (fullscreenMode() === 'expand' ? config()!.icons!.maximize : config()!.icons!.popout)\r\n }}\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #formula>\r\n @if (config()!.buttons!.formula) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.formula!)\">\r\n <button class=\"ql-formula\"></button>\r\n </span>\r\n }\r\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
|
|
281
|
-
}] });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBMEUsb0JBQW9CLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBRTFJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENB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QU0sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FB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RSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrR0FBa0c7SUFDbEcsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsOEZBQThGO0lBQzlGLGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0F0UlUsZUFBZTtrR0FBZixlQUFlLDJzR0FOZixDQUFDO2dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsa0VBZW1CLG9CQUFvQixnRUM5QzNDLDBzVEE0UWMsc1pEdlBWLFdBQVcscStCQUNYLE9BQU8sMklBQ1AsVUFBVSxpUkFDVixnQkFBZ0Isb0pBQ2hCLG9CQUFvQjs7MkZBUVgsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBR2QsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3FCQUNyQixhQUNVLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBCbHVyLCBDb250ZW50Q2hhbmdlLCBFZGl0b3JDaGFuZ2VDb250ZW50LCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBRdWlsbEVkaXRvckNvbXBvbmVudCwgU2VsZWN0aW9uQ2hhbmdlIH0gZnJvbSAnbmd4LXF1aWxsJztcclxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlnJztcclxuaW1wb3J0IHsgRGVmYXVsdEJ1dHRvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9kZWZhdWx0LWJ1dHRvbnMnO1xyXG5pbXBvcnQgeyBEZWZhdWx0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGVmYXVsdC1jb25maWcnO1xyXG5pbXBvcnQgeyBEZWZhdWx0SWNvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9kZWZhdWx0LWljb25zJztcclxuaW1wb3J0IHsgRGVmYXVsdFRvb2x0aXBzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGVmYXVsdC10b29sdGlwcyc7XHJcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XHJcbmltcG9ydCB7IFJhd0NvbXBvbmVudCB9IGZyb20gJy4uL3Jhdy9yYXcuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBRdWlsbEVkaXRvckNvbXBvbmVudCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWRpdG9yQ29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIGdldCBzaG93QmxvY2tTdHlsZSgpOiBib29sZWFuIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5ibG9ja3F1b3RlIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LmNvZGVibG9jaykgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dGb250U3R5bGUoKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5jb25maWcoKT8uYnV0dG9ucz8uYm9sZCB8fCB0aGlzLmNvbmZpZygpPy5idXR0b25zPy5pdGFsaWMgfHwgdGhpcy5jb25maWcoKT8uYnV0dG9ucz8uc3RyaWtlIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LnVuZGVybGluZSkgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dRdWlja0hlYWRpbmdTdHlsZSgpOiBib29sZWFuIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5oMSB8fCB0aGlzLmNvbmZpZygpPy5idXR0b25zPy5oMikgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dJbmRlbnRTdHlsZSgpOiBib29sZWFuIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5kZWNyZWFzZUluZGVudCB8fCB0aGlzLmNvbmZpZygpPy5idXR0b25zPy5pbmNyZWFzZUluZGVudCkgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dMaXN0U3R5bGUoKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5jb25maWcoKT8uYnV0dG9ucz8uYnVsbGV0ZWQgfHwgdGhpcy5jb25maWcoKT8uYnV0dG9ucz8ub3JkZXJlZCkgPz8gZmFsc2UgfTtcclxuICBnZXQgc2hvd01lZGlhKCk6IGJvb2xlYW4gIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5saW5rIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LmltYWdlIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LnZpZGVvKSA/PyBmYWxzZSB9O1xyXG4gIGdldCBzaG93U2NyaXB0U3R5bGUoKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5jb25maWcoKT8uYnV0dG9ucz8uc3ViU2NyaXB0IHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LnN1cGVyU2NyaXB0KSA/PyBmYWxzZSB9O1xyXG5cclxuICAjZGF0YSA9IGluamVjdDxEaWFsb2dEYXRhPihNQVRfRElBTE9HX0RBVEEsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgI2RpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICAjZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcbiAgXHJcbiAgICBlZGl0b3IgPSB2aWV3Q2hpbGQoUXVpbGxFZGl0b3JDb21wb25lbnQpO1xyXG5cclxuICAvLyNyZWdpb24gQ29udHJvbFZhbHVlQWNjZXNzb3Igc3R1ZmZcclxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MDYxODA1MC9ob3ctdG8tY3JlYXRlLWN1c3RvbS1pbnB1dC1jb21wb25lbnQtd2l0aC1uZ21vZGVsLXdvcmtpbmctaW4tYW5ndWxhci02XHJcbiAgdmFsdWU6IGFueTsgLy8gc3RyaW5nXHJcbiAgb25DaGFuZ2U6IChfOiBhbnkpID0+IHZvaWQgPSAoXzogYW55KSA9PiB7fTsgLy8gSW52b2tlZCB3aGVuIHRoZSBtb2RlbCBoYXMgYmVlbiBjaGFuZ2VkXHJcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307IC8vIEludm9rZWQgd2hlbiB0aGUgbW9kZWwgaGFzIGJlZW4gdG91Y2hlZFxyXG4gIC8vI2VuZHJlZ2lvblxyXG4gIFxyXG4gIGNvbmZpZyA9IG1vZGVsPENvbmZpZz4oRGVmYXVsdENvbmZpZyk7XHJcbiAgcGxhY2Vob2xkZXIgPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgXHJcbiAgLy8jcmVnaW9uIFRoZXNlIGNhbiBiZSBwYXNzZWQgaW4gYXMgQElucHV0KCksIG9yIHVzZSB2YWx1ZXMgZnJvbSBjb25maWdcclxuICBmb3JtYXQgPSBtb2RlbDwnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJz4oKTtcclxuICBoZWlnaHQgPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgd2lkdGggPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgZnVsbHNjcmVlbkhlaWdodCA9IG1vZGVsPHN0cmluZz4oKTtcclxuICBmdWxsc2NyZWVuV2lkdGggPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgZnVsbHNjcmVlbk1vZGUgPSBtb2RlbDwnZXhwYW5kJyB8ICdwb3BvdXQnPigpO1xyXG5cclxuICBlbmFibGVUb29sdGlwcyA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgZnVsbHNjcmVlbiA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgcmVhZG9ubHkgPSBtb2RlbDxib29sZWFuPigpO1xyXG4gIGFwcGx5UmVhZG9ubHlTdHlsZSA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgc2hvd1Rvb2xiYXIgPSBtb2RlbDxib29sZWFuPigpO1xyXG4gIHNob3dCb3JkZXIgPSBtb2RlbDxib29sZWFuPigpO1xyXG5cclxuICAvLyNyZWdpb24gT3B0aW9uYWwgUXVpbGwgbW9kdWxlc1xyXG4gIGltYWdlUmVzaXplTW9kdWxlID0gbW9kZWw8Ym9vbGVhbj4oKTtcclxuICBpbWFnZURyb3BNb2R1bGUgPSBtb2RlbDxib29sZWFuPigpO1xyXG4gIHN5bnRheE1vZHVsZSA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGZ1bGxzY3JlZW5DaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gIC8vI3JlZ2lvbiBQYXNzdGhyb3VnaCBldmVudHNcclxuICBvbkJsdXIgPSBvdXRwdXQ8Qmx1cj4oKTtcclxuICBvbkNvbnRlbnRDaGFuZ2VkID0gb3V0cHV0PENvbnRlbnRDaGFuZ2U+KCk7XHJcbiAgb25FZGl0b3JDaGFuZ2VkID0gb3V0cHV0PEVkaXRvckNoYW5nZUNvbnRlbnQgfCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24+KCk7XHJcbiAgb25FZGl0b3JDcmVhdGVkID0gb3V0cHV0KCk7XHJcbiAgb25Gb2N1cyA9IG91dHB1dDxGb2N1cz4oKTtcclxuICBvblNlbGVjdGlvbkNoYW5nZWQgPSBvdXRwdXQ8U2VsZWN0aW9uQ2hhbmdlPigpO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgXHJcbiAgICAvKmlmICghdGhpcy51c2Vycykge1xyXG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoKS5zdWJzY3JpYmUodXNlcnMgPT5cclxuICAgICAgICB0aGlzLnVzZXJzID0gdXNlcnNcclxuICAgICAgKTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnLnNldCh7XHJcbiAgICAgIC4uLkRlZmF1bHRDb25maWcsXHJcbiAgICAgIC4uLnRoaXMuY29uZmlnKCksXHJcbiAgICAgIC4uLnRoaXMuI2RhdGE/LmNvbmZpZyxcclxuICAgICAgYnV0dG9uczogdGhpcy5jb25maWcoKT8uYnV0dG9ucyA/PyBEZWZhdWx0QnV0dG9ucyxcclxuICAgICAgaWNvbnM6IHtcclxuICAgICAgICAuLi5EZWZhdWx0SWNvbnMsXHJcbiAgICAgICAgLi4udGhpcy5jb25maWcoKT8uaWNvbnNcclxuICAgICAgfSxcclxuICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAuLi5EZWZhdWx0VG9vbHRpcHMsXHJcbiAgICAgICAgLi4udGhpcy5jb25maWcoKT8udG9vbHRpcHNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgPz8gdGhpcy4jZGF0YT8udmFsdWU7XHJcblxyXG4gICAgLy8gTW92ZWQgdG8gY2xpZW50IHJlc3BvbnNpYmlsaXR5XHJcbiAgICAvKmlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSkge1xyXG4gICAgICBRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZURyb3AnLCBJbWFnZURyb3ApO1xyXG4gICAgfSovXHJcblxyXG4gICAgdGhpcy5wbGFjZWhvbGRlci5zZXQodGhpcy5wbGFjZWhvbGRlcigpID8/IHRoaXMuI2RhdGE/LnBsYWNlaG9sZGVyKTtcclxuXHJcbiAgICB0aGlzLmltYWdlRHJvcE1vZHVsZS5zZXQodGhpcy5pbWFnZURyb3BNb2R1bGUoKSA/PyB0aGlzLiNkYXRhPy5pbWFnZURyb3BNb2R1bGUgPz8gdGhpcy5jb25maWcoKSEuaW1hZ2VEcm9wTW9kdWxlKTtcclxuICAgIHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUuc2V0KHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUoKSA/PyB0aGlzLiNkYXRhPy5pbWFnZVJlc2l6ZU1vZHVsZSA/PyB0aGlzLmNvbmZpZygpIS5pbWFnZVJlc2l6ZU1vZHVsZSk7XHJcbiAgICB0aGlzLnN5bnRheE1vZHVsZS5zZXQodGhpcy5zeW50YXhNb2R1bGUoKSA/PyB0aGlzLiNkYXRhPy5zeW50YXhNb2R1bGUgPz8gdGhpcy5jb25maWcoKSEuc3ludGF4TW9kdWxlKTtcclxuXHJcbiAgICB0aGlzLmZvcm1hdC5zZXQodGhpcy5mb3JtYXQoKSA/PyB0aGlzLiNkYXRhPy5mb3JtYXQgPz8gdGhpcy5jb25maWcoKSEuZm9ybWF0KTtcclxuICAgIHRoaXMuaGVpZ2h0LnNldCh0aGlzLmhlaWdodCgpID8/IHRoaXMuI2RhdGE/LmhlaWdodCA/PyB0aGlzLmNvbmZpZygpIS5oZWlnaHQpO1xyXG4gICAgdGhpcy53aWR0aC5zZXQodGhpcy53aWR0aCgpID8/IHRoaXMuI2RhdGE/LndpZHRoID8/IHRoaXMuY29uZmlnKCkhLndpZHRoKTtcclxuICAgIHRoaXMuZnVsbHNjcmVlbkhlaWdodC5zZXQodGhpcy5mdWxsc2NyZWVuSGVpZ2h0KCkgPz8gdGhpcy4jZGF0YT8ubWF4SGVpZ2h0ID8/IHRoaXMuY29uZmlnKCkhLmZ1bGxzY3JlZW5IZWlnaHQpO1xyXG4gICAgdGhpcy5mdWxsc2NyZWVuV2lkdGguc2V0KHRoaXMuZnVsbHNjcmVlbldpZHRoKCkgPz8gdGhpcy4jZGF0YT8ubWF4V2lkdGggPz8gdGhpcy5jb25maWcoKSEuZnVsbHNjcmVlbldpZHRoKTtcclxuICAgIHRoaXMuZnVsbHNjcmVlbk1vZGUuc2V0KHRoaXMuZnVsbHNjcmVlbk1vZGUoKSA/PyB0aGlzLiNkYXRhPy5mdWxsc2NyZWVuTW9kZSA/PyB0aGlzLmNvbmZpZygpIS5mdWxsc2NyZWVuTW9kZSk7XHJcblxyXG4gICAgdGhpcy5lbmFibGVUb29sdGlwcy5zZXQodGhpcy5lbmFibGVUb29sdGlwcygpICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLmVuYWJsZVRvb2x0aXBzKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5lbmFibGVUb29sdGlwcyA/PyB0aGlzLmNvbmZpZygpIS5lbmFibGVUb29sdGlwcyk7XHJcblxyXG4gICAgdGhpcy5mdWxsc2NyZWVuLnNldCh0aGlzLmZ1bGxzY3JlZW4oKSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5mdWxsc2NyZWVuKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5mdWxsc2NyZWVuID8/IHRoaXMuY29uZmlnKCkhLmZ1bGxzY3JlZW4pO1xyXG5cclxuICAgIHRoaXMucmVhZG9ubHkuc2V0KHRoaXMucmVhZG9ubHkoKSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5yZWFkb25seSgpIDpcclxuICAgICAgdGhpcy4jZGF0YT8ucmVhZG9ubHkgPz8gdGhpcy5jb25maWcoKSEucmVhZG9ubHkpO1xyXG5cclxuICAgIHRoaXMuYXBwbHlSZWFkb25seVN0eWxlLnNldCh0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSgpICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSgpIDpcclxuICAgICAgdGhpcy4jZGF0YT8uYXBwbHlSZWFkb25seVN0eWxlID8/IHRoaXMuY29uZmlnKCkhLmFwcGx5UmVhZG9ubHlTdHlsZSk7XHJcblxyXG4gICAgdGhpcy5zaG93VG9vbGJhci5zZXQodGhpcy5zaG93VG9vbGJhcigpICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLnNob3dUb29sYmFyKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5zaG93VG9vbGJhciA/PyB0aGlzLmNvbmZpZygpIS5zaG93VG9vbGJhcik7XHJcblxyXG4gICAgdGhpcy5zaG93Qm9yZGVyLnNldCh0aGlzLnNob3dCb3JkZXIoKSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5zaG93Qm9yZGVyKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5zaG93Qm9yZGVyID8/IHRoaXMuY29uZmlnKCkhLnNob3dCb3JkZXIpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnKSB7XHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuLnNldCghdGhpcy5mdWxsc2NyZWVuKCkpO1xyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdCh0aGlzLmZ1bGxzY3JlZW4oKSEpO1xyXG4gICAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZnVsbHNjcmVlbigpKSB7XHJcbiAgICAgICAgdGhpcy4jZGlhbG9nUmVmPy5jbG9zZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcclxuXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcoKSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyKCksXHJcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuZm9ybWF0KCkhLFxyXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSEsXHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSEsXHJcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgZW5hYmxlVG9vbHRpcHM6IHRoaXMuZW5hYmxlVG9vbHRpcHMoKSEsXHJcbiAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLFxyXG4gICAgICAgICAgZnVsbHNjcmVlbk1vZGU6IHRoaXMuZnVsbHNjcmVlbk1vZGUoKSEsXHJcbiAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSgpISxcclxuICAgICAgICAgIGFwcGx5UmVhZG9ubHlTdHlsZTogdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUoKSEsXHJcbiAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5zaG93VG9vbGJhcigpISxcclxuICAgICAgICAgIHNob3dCb3JkZXI6IHRoaXMuc2hvd0JvcmRlcigpISxcclxuICAgICAgICAgIGltYWdlUmVzaXplTW9kdWxlOiB0aGlzLmltYWdlUmVzaXplTW9kdWxlKCkhLFxyXG4gICAgICAgICAgaW1hZ2VEcm9wTW9kdWxlOiB0aGlzLmltYWdlRHJvcE1vZHVsZSgpISxcclxuICAgICAgICAgIHN5bnRheE1vZHVsZTogdGhpcy5zeW50YXhNb2R1bGUoKSFcclxuICAgICAgICAgIC8vdXNlcnM6IHRoaXMudXNlcnNcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLiNkaWFsb2cub3BlbihFZGl0b3JDb21wb25lbnQsIHtcclxuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiB0aGlzLmZ1bGxzY3JlZW5XaWR0aCgpLFxyXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSxcclxuICAgICAgICAgIGRhdGFcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYXdFZGl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jZGlhbG9nLm9wZW4oUmF3Q29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHRoaXMudmFsdWUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgaGVpZ2h0OiAnOTAlJyxcclxuICAgICAgd2lkdGg6ICcxMDAlJ1xyXG4gICAgfSlcclxuICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSAnX19ETyEhTk9UISFVUERBVEVfXycpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9vbHRpcCh2YWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmFibGVUb29sdGlwcygpID8gdmFsIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9kdWxlcygpIHtcclxuICAgIC8vaWYgKCF0aGlzLnVzZXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cclxuXHJcbiAgICBjb25zdCBtb2R1bGVzID0geyB9O1xyXG5cclxuICAgIGlmICghdGhpcy5zaG93VG9vbGJhcigpKSB7XHJcbiAgICAgIG1vZHVsZXNbJ3Rvb2xiYXInXSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmltYWdlUmVzaXplTW9kdWxlKCkpIHtcclxuICAgICAgbW9kdWxlc1snaW1hZ2VSZXNpemUnXSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSgpKSB7XHJcbiAgICAgIG1vZHVsZXNbJ2ltYWdlRHJvcCddID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zeW50YXhNb2R1bGUoKSkge1xyXG4gICAgICBtb2R1bGVzWydzeW50YXgnXSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyppZiAodGhpcy5tZW50aW9uTW9kdWxlKSB7XHJcbiAgICAgIG1vZHVsZXNbJ21lbnRpb24nXSA9IHtcclxuICAgICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXHJcblxyXG4gICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yIS5xdWlsbEVkaXRvclxyXG4gICAgICAgICAgaW5zZXJ0SXRlbShpdGVtKVxyXG4gICAgICAgICAgLy8gbmVjZXNzYXJ5IGJlY2F1c2UgcXVpbGwtbWVudGlvbiB0cmlnZ2VycyBjaGFuZ2VzIGFzICdhcGknIGluc3RlYWQgb2YgJ3VzZXInXHJcbiAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmVuZGVyTGlzdCh0aGlzLnVzZXJzPy5tYXAodSA9PiAoeyB2YWx1ZTogYCR7dS5kaXNwbGF5TmFtZX0gKCR7dS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pKSwgc2VhcmNoVGVybSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXM6IGFueVtdID0gW11cclxuXHJcbiAgICAgICAgICAgIHRoaXMudXNlcnMhLmZvckVhY2goKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgZW50cnkuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XHJcbiAgICAgICAgICAgICAgICBlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTFcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHsgdmFsdWU6IGAke2VudHJ5LmRpc3BsYXlOYW1lfSAoJHtlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0qL1xyXG5cclxuICAgIHJldHVybiBtb2R1bGVzO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcclxuICAvLyBNZXRob2QgdGhhdCBpcyBpbnZva2VkIG9uIGFuIHVwZGF0ZSBvZiBhIG1vZGVsLlxyXG4gIHVwZGF0ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIE92ZXJyaWRlc1xyXG5cclxuICAvLyBXcml0ZXMgYSBuZXcgaXRlbSB0byB0aGUgZWxlbWVudC5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcyBpbiB0aGUgVUkuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgYmx1ciBldmVudC5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcbn0iLCI8bmctY29udGFpbmVyPlxyXG4gIDxmb3JtPlxyXG4gICAgPHF1aWxsLWVkaXRvciBuYW1lPVwiZWRpdG9yXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUNoYW5nZXMoKVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpID8/ICcnXCJcclxuICAgICAgW2Zvcm1hdF09XCJmb3JtYXQoKVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZnVsbHNjcmVlbigpID8gZnVsbHNjcmVlbkhlaWdodCgpIDogaGVpZ2h0KClcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwiZnVsbHNjcmVlbigpID8gZnVsbHNjcmVlbldpZHRoKCkgOiB3aWR0aCgpXCJcclxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5KCkgPz8gZmFsc2VcIlxyXG4gICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkoKSAmJiBhcHBseVJlYWRvbmx5U3R5bGUoKVwiXHJcbiAgICAgIFtjbGFzcy5uby10b29sYmFyXT1cIiFzaG93VG9vbGJhcigpXCJcclxuICAgICAgW2NsYXNzLm5vLWJvcmRlcl09XCIhc2hvd0JvcmRlcigpXCJcclxuICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXHJcblxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkNvbnRlbnRDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXHJcbiAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XHJcblxyXG4gICAgICBAaWYgKHNob3dUb29sYmFyKCkpIHtcclxuICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sYmFyXCIvPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlZGl0b3JTaXplXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L3F1aWxsLWVkaXRvcj5cclxuICA8L2Zvcm0+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0b29sYmFyPlxyXG4gIDxkaXY+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTdHlsZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmxvY2tTdHlsZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1N0eWxlXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3R5bGVcIi8+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNjcmlwdFN0eWxlXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmRlbnRTdHlsZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicnRsXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U2l6ZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JcIi8+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRcIi8+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsaWduXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbGVhblwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9ybXVsYVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVkaWFcIi8+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2ZvbnRTdHlsZT5cclxuICBAaWYgKHNob3dGb250U3R5bGUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ib2xkKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJvbGRcIiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmJvbGQhKVwiPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLml0YWxpYykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pdGFsaWNcIiAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaXRhbGljISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS51bmRlcmxpbmUpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdW5kZXJsaW5lXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnVuZGVybGluZSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3RyaWtlKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXN0cmlrZVwiICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5zdHJpa2UhKVwiPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNibG9ja1N0eWxlPlxyXG4gIEBpZiAoc2hvd0Jsb2NrU3R5bGUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ibG9ja3F1b3RlKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuYmxvY2txdW90ZSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuY29kZWJsb2NrKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmNvZGVibG9jayEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRpbmdTdHlsZT5cclxuICBAaWYgKHNob3dRdWlja0hlYWRpbmdTdHlsZSkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmgxKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWhlYWRlclwiIHZhbHVlPVwiMVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5oMSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaDIpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmgyISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbGlzdFN0eWxlPlxyXG4gIEBpZiAoc2hvd0xpc3RTdHlsZSkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLm9yZGVyZWQpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEub3JkZXJlZCEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuYnVsbGV0ZWQpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5idWxsZXRlZCEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NjcmlwdFN0eWxlPlxyXG4gIEBpZiAoc2hvd1NjcmlwdFN0eWxlKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3ViU2NyaXB0KSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3ViXCIgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuc3ViU2NyaXB0ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5zdXBlclNjcmlwdCkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnN1cGVyU2NyaXB0ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW5kZW50U3R5bGU+XHJcbiAgQGlmIChzaG93SW5kZW50U3R5bGUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5kZWNyZWFzZUluZGVudCkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIi0xXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmRlY3JlYXNlSW5kZW50ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pbmNyZWFzZUluZGVudCkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmluY3JlYXNlSW5kZW50ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcnRsPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnJ0bCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5ydGwhKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9udFNpemU+XHJcbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9udFNpemUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb250U2l6ZSEpXCI+XHJcbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1zaXplXCI+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVnZVwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRpbmc+XHJcbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaGVhZGluZ1N0eWxlKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaGVhZGluZ1N0eWxlISlcIj5cclxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWhlYWRlclwiPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbG9yPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmNvbG9yKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuY29sb3IhKVwiPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIj48L3NlbGVjdD5cclxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2ZvbnQ+XHJcbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9udCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmZvbnQhKVwiPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxyXG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2FsaWduPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmFsaWduKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuYWxpZ24hKVwiPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj5cclxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NsZWFuPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmNsZWFuKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuY2xlYW4hKVwiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI21lZGlhPlxyXG4gIEBpZiAoc2hvd01lZGlhKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEubGluaykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saW5rXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5saW5rISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pbWFnZSkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5pbWFnZSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEudmlkZW8pIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdmlkZW9cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEudmlkZW8hKVwiPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxyXG4gIDxkaXY+XHJcbiAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5yYXdFZGl0b3IpIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInJhd2RvZ1wiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEucmF3RWRpdG9yISlcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicmF3RWRpdCgpXCI+XHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5lZGl0b3JTaXplKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoZnVsbHNjcmVlbigpID9cclxuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcgPyBjb25maWcoKSEudG9vbHRpcHMhLm1pbmltaXplISA6IGNvbmZpZygpIS50b29sdGlwcyEucG9waW4hKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLnRvb2x0aXBzIS5tYXhpbWl6ZSEgOiBjb25maWcoKSEudG9vbHRpcHMhLnBvcG91dCEpKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj5cclxuICAgICAgICAgICAge3sgZnVsbHNjcmVlbigpID9cclxuICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLmljb25zIS5taW5pbWl6ZSA6IGNvbmZpZygpIS5pY29ucyEucG9waW4pIDpcclxuICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLmljb25zIS5tYXhpbWl6ZSA6IGNvbmZpZygpIS5pY29ucyEucG9wb3V0KVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmb3JtdWxhPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmZvcm11bGEpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb3JtdWxhISlcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWZvcm11bGFcIj48L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { FormsModule } from '@angular/forms';
|
|
3
|
-
import { MatButton } from '@angular/material/button';
|
|
4
|
-
import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent } from '@angular/material/dialog';
|
|
5
|
-
import { MatFormField } from '@angular/material/form-field';
|
|
6
|
-
import { MatIcon } from '@angular/material/icon';
|
|
7
|
-
import { MatInput } from '@angular/material/input';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
export class RawComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.data = inject(MAT_DIALOG_DATA);
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: RawComponent, isStandalone: true, selector: "cpquill-raw", ngImport: i0, template: "<mat-dialog-content>\r\n <form>\r\n <mat-form-field appearance=\"outline\">\r\n <textarea matInput [(ngModel)]=\"data\" name=\"data\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-raised-button color=\"warn\" mat-dialog-close=\"__DO!!NOT!!UPDATE__\">\r\n <mat-icon>cancel</mat-icon>\r\n <span>Cancel</span>\r\n </button>\r\n\r\n <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"data\">\r\n <mat-icon>done</mat-icon>\r\n <span>Accept</span>\r\n </button>\r\n</mat-dialog-actions>", styles: ["mat-dialog-content{height:95%;max-height:initial!important}form{width:100%}mat-form-field{width:100%}textarea{height:70vh}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RawComponent, decorators: [{
|
|
18
|
-
type: Component,
|
|
19
|
-
args: [{ selector: 'cpquill-raw', standalone: true, imports: [
|
|
20
|
-
FormsModule,
|
|
21
|
-
MatButton,
|
|
22
|
-
MatDialogActions,
|
|
23
|
-
MatDialogClose,
|
|
24
|
-
MatDialogContent,
|
|
25
|
-
MatFormField,
|
|
26
|
-
MatIcon,
|
|
27
|
-
MatInput
|
|
28
|
-
], template: "<mat-dialog-content>\r\n <form>\r\n <mat-form-field appearance=\"outline\">\r\n <textarea matInput [(ngModel)]=\"data\" name=\"data\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-raised-button color=\"warn\" mat-dialog-close=\"__DO!!NOT!!UPDATE__\">\r\n <mat-icon>cancel</mat-icon>\r\n <span>Cancel</span>\r\n </button>\r\n\r\n <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"data\">\r\n <mat-icon>done</mat-icon>\r\n <span>Accept</span>\r\n </button>\r\n</mat-dialog-actions>", styles: ["mat-dialog-content{height:95%;max-height:initial!important}form{width:100%}mat-form-field{width:100%}textarea{height:70vh}\n"] }]
|
|
29
|
-
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL3Jhdy9yYXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvcmF3L3Jhdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQWtCbkQsTUFBTSxPQUFPLFlBQVk7SUFoQnpCO1FBaUJFLFNBQUksR0FBRyxNQUFNLENBQVMsZUFBZSxDQUFDLENBQUM7S0FDeEM7OEdBRlksWUFBWTtrR0FBWixZQUFZLHVFQ3hCekIsNG5CQWtCcUIscUxETmpCLFdBQVcsd2lDQUNYLFNBQVMsaUxBQ1QsZ0JBQWdCLDRIQUNoQixjQUFjLHFMQUNkLGdCQUFnQix5R0FDaEIsWUFBWSw0TEFDWixPQUFPLDJJQUNQLFFBQVE7OzJGQUtDLFlBQVk7a0JBaEJ4QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxRQUFRO3FCQUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1yYXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTWF0RGlhbG9nQ2xvc2UsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdElucHV0XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmF3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmF3LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmF3Q29tcG9uZW50IHtcclxuICBkYXRhID0gaW5qZWN0PHN0cmluZz4oTUFUX0RJQUxPR19EQVRBKTtcclxufSIsIjxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8Zm9ybT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IFsobmdNb2RlbCldPVwiZGF0YVwiIG5hbWU9XCJkYXRhXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbjxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIG1hdC1kaWFsb2ctY2xvc2U9XCJfX0RPISFOT1QhIVVQREFURV9fXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgPHNwYW4+Q2FuY2VsPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJkYXRhXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuPkFjY2VwdDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG48L21hdC1kaWFsb2ctYWN0aW9ucz4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './quill-mention.api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwtbWVudGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL21lbnRpb24vc3JjL2NsZWF2ZWxhbmRwcmljZS1uZ3gtbGliLXF1aWxsLW1lbnRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3F1aWxsLW1lbnRpb24uYXBpJztcbiJdfQ==
|