@talrace/ngx-noder 0.0.4 → 0.0.6
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 +72 -64
- package/esm2022/lib/+shared/abstract/base-api.service.mjs +4 -4
- package/esm2022/lib/+shared/abstract/observer.component.mjs +4 -4
- package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +11 -7
- package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +12 -8
- package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/core/editor.mjs +7 -14
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +9 -8
- package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +7 -6
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +6 -4
- package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +9 -15
- package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +6 -5
- package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +8 -6
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +10 -8
- package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/editor.component.mjs +7 -14
- package/esm2022/lib/+shared/editor/editor.module.mjs +5 -8
- package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +1 -1
- package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +18 -8
- package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +4 -4
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +4 -4
- package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +83 -0
- package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +78 -92
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +15 -5
- package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +4 -4
- package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +194 -0
- package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +126 -0
- package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +4 -4
- package/esm2022/lib/+shared/helpers/scaling.helper.mjs +9 -0
- package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +4 -4
- package/esm2022/lib/+shared/services/commands.service.mjs +4 -4
- package/esm2022/lib/+shared/services/custom-icon.service.mjs +4 -4
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/talrace-ngx-noder.mjs +545 -488
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/+shared/add-link-dialog/add-link-dialog.component.d.ts +1 -0
- package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +1 -0
- package/lib/+shared/editor/core/editor.d.ts +3 -3
- package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +3 -3
- package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +3 -1
- package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +1 -1
- package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +2 -2
- package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +0 -2
- package/lib/+shared/editor/editor.component.d.ts +1 -5
- package/lib/+shared/editor/editor.module.d.ts +15 -16
- package/lib/+shared/editor/execution/models/general-properties.model.d.ts +1 -0
- package/lib/+shared/editor/execution/regulator.service.d.ts +2 -2
- package/lib/+shared/editor-title/editor-title.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +31 -30
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +19 -16
- package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +73 -0
- package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +49 -0
- package/lib/+shared/helpers/scaling.helper.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/src/_ngx-noder.theme.scss +10 -8
- package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +3 -3
- package/src/lib/+shared/confirm-dialog/_theme.scss +6 -6
- package/src/lib/+shared/editor/_editor.theme.scss +84 -15
- package/src/lib/+shared/editor/_theme.scss +0 -2
- package/src/lib/+shared/editor-title/_editor-title.theme.scss +28 -0
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +1 -24
- package/src/lib/+shared/editor-toolbar/_theme.scss +16 -2
- package/src/lib/+shared/editor-toolbar/font/_font.theme.scss +12 -0
- package/src/lib/+shared/editor-toolbar/font-size/_font-size.theme.scss +14 -0
- package/src/lib/+shared/editor-toolbar/font-style/_font-style.theme.scss +21 -0
- package/src/lib/+shared/editor-toolbar/format/_format.theme.scss +21 -0
- package/src/lib/+shared/editor-toolbar/menu-dropdowns/_menu-dropdowns.theme.scss +26 -0
- package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +52 -11
- package/src/lib/+shared/editor-toolbar/toolbar-actions/_toolbar-actions.theme.scss +21 -0
- package/src/lib/+shared/editor-toolbar/undo-redo/_undo-redo.theme.scss +16 -0
- package/src/lib/+shared/insert-table/_insert-table.theme.scss +9 -6
- package/src/scss/_mixins.scss +2 -37
- package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +0 -35
- package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +0 -314
- package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +0 -14
- package/lib/+shared/editor-header/editor-header.component.d.ts +0 -101
- package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +0 -10
- package/src/lib/+shared/editor-header/_editor-header.theme.scss +0 -106
|
@@ -13,28 +13,27 @@ import { OverlayConfig } from '@angular/cdk/overlay';
|
|
|
13
13
|
import * as i3 from '@angular/material/icon';
|
|
14
14
|
import { MatIconModule } from '@angular/material/icon';
|
|
15
15
|
import * as i5 from '@angular/cdk/clipboard';
|
|
16
|
-
import * as
|
|
16
|
+
import * as i6 from '@angular/material/sidenav';
|
|
17
17
|
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
18
18
|
import * as i2$1 from '@angular/material/button';
|
|
19
19
|
import { MatButtonModule } from '@angular/material/button';
|
|
20
|
-
import * as i4 from '@angular/material/tooltip';
|
|
21
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
22
20
|
import * as i1$4 from '@angular/material/dialog';
|
|
23
21
|
import { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
24
|
-
import * as
|
|
25
|
-
import {
|
|
22
|
+
import * as i4 from '@angular/material/tooltip';
|
|
23
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
24
|
+
import * as i2$2 from '@angular/forms';
|
|
25
|
+
import { ReactiveFormsModule, FormControl, FormsModule, Validators } from '@angular/forms';
|
|
26
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
27
|
+
import * as i6$1 from '@angular/material/input';
|
|
28
|
+
import { MatInputModule } from '@angular/material/input';
|
|
26
29
|
import * as i4$1 from '@angular/material/form-field';
|
|
27
30
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
28
|
-
import * as
|
|
29
|
-
import { MatInputModule } from '@angular/material/input';
|
|
31
|
+
import * as i2$3 from '@angular/platform-browser';
|
|
30
32
|
import * as i4$2 from '@angular/material/menu';
|
|
31
33
|
import { MatMenuModule } from '@angular/material/menu';
|
|
32
|
-
import * as i7$1 from '@angular/material/select';
|
|
33
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
34
|
-
import * as i2$2 from '@angular/platform-browser';
|
|
35
|
-
import * as i4$3 from '@angular/material/core';
|
|
36
34
|
import * as i3$1 from '@angular/material/autocomplete';
|
|
37
35
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
36
|
+
import * as i4$3 from '@angular/material/core';
|
|
38
37
|
import * as i1$3 from '@angular/material/button-toggle';
|
|
39
38
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
40
39
|
import * as i5$1 from 'ngx-colors';
|
|
@@ -328,10 +327,10 @@ class ObserverComponent {
|
|
|
328
327
|
}
|
|
329
328
|
}
|
|
330
329
|
}
|
|
331
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
332
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
330
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObserverComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
331
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ObserverComponent, ngImport: i0 }); }
|
|
333
332
|
}
|
|
334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObserverComponent, decorators: [{
|
|
335
334
|
type: Directive
|
|
336
335
|
}] });
|
|
337
336
|
|
|
@@ -367,10 +366,10 @@ class BaseNoderComponent extends ObserverComponent {
|
|
|
367
366
|
this._isFocused = false;
|
|
368
367
|
this.cdr.markForCheck();
|
|
369
368
|
}
|
|
370
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
371
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
369
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseNoderComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
370
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BaseNoderComponent, inputs: { content: "content", sessionId: "sessionId", contentWidth: "contentWidth", generalProperties: "generalProperties" }, host: { properties: { "class.focused": "this.focused", "attr.data-session-id": "this.sessionId", "attr.data-insert-index": "this.insertIndex" } }, usesInheritance: true, ngImport: i0 }); }
|
|
372
371
|
}
|
|
373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseNoderComponent, decorators: [{
|
|
374
373
|
type: Directive
|
|
375
374
|
}], propDecorators: { focused: [{
|
|
376
375
|
type: HostBinding,
|
|
@@ -387,6 +386,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
387
386
|
args: ['attr.data-insert-index']
|
|
388
387
|
}], contentWidth: [{
|
|
389
388
|
type: Input
|
|
389
|
+
}], generalProperties: [{
|
|
390
|
+
type: Input
|
|
390
391
|
}] } });
|
|
391
392
|
|
|
392
393
|
class OperationsHistoryInfoModel {
|
|
@@ -694,10 +695,10 @@ class EditorService {
|
|
|
694
695
|
removeSelected() {
|
|
695
696
|
this._removeSelected$.next();
|
|
696
697
|
}
|
|
697
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
698
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
699
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService }); }
|
|
699
700
|
}
|
|
700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService, decorators: [{
|
|
701
702
|
type: Injectable
|
|
702
703
|
}] });
|
|
703
704
|
|
|
@@ -738,10 +739,10 @@ class NoderExternalComponent extends BaseNoderComponent {
|
|
|
738
739
|
this.editorService.changeElementStyle(new ElementModel({ ...this.content, width }));
|
|
739
740
|
}
|
|
740
741
|
}
|
|
741
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
742
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
742
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderExternalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
743
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NoderExternalComponent, usesInheritance: true, ngImport: i0 }); }
|
|
743
744
|
}
|
|
744
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
745
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderExternalComponent, decorators: [{
|
|
745
746
|
type: Directive
|
|
746
747
|
}] });
|
|
747
748
|
|
|
@@ -836,10 +837,10 @@ class BaseApiService {
|
|
|
836
837
|
}
|
|
837
838
|
return ctor(val);
|
|
838
839
|
}
|
|
839
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
840
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
840
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseApiService, deps: [{ token: i1.HttpClient }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
841
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BaseApiService, ngImport: i0 }); }
|
|
841
842
|
}
|
|
842
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
843
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseApiService, decorators: [{
|
|
843
844
|
type: Directive
|
|
844
845
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
|
|
845
846
|
|
|
@@ -847,10 +848,10 @@ class ImageApiService extends BaseApiService {
|
|
|
847
848
|
getFile(source) {
|
|
848
849
|
return this.httpGetBlob(source);
|
|
849
850
|
}
|
|
850
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
851
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
851
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
852
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageApiService }); }
|
|
852
853
|
}
|
|
853
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
854
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageApiService, decorators: [{
|
|
854
855
|
type: Injectable
|
|
855
856
|
}] });
|
|
856
857
|
|
|
@@ -1403,7 +1404,7 @@ class InsertStyledTextModel {
|
|
|
1403
1404
|
}
|
|
1404
1405
|
}
|
|
1405
1406
|
|
|
1406
|
-
class
|
|
1407
|
+
class InsertTabModel {
|
|
1407
1408
|
constructor(fields) {
|
|
1408
1409
|
if (fields) {
|
|
1409
1410
|
Object.assign(this, fields);
|
|
@@ -1411,7 +1412,7 @@ class InsertTableColumnsModel {
|
|
|
1411
1412
|
}
|
|
1412
1413
|
}
|
|
1413
1414
|
|
|
1414
|
-
class
|
|
1415
|
+
class InsertTableColumnsModel {
|
|
1415
1416
|
constructor(fields) {
|
|
1416
1417
|
if (fields) {
|
|
1417
1418
|
Object.assign(this, fields);
|
|
@@ -1419,7 +1420,7 @@ class InsertTableModel {
|
|
|
1419
1420
|
}
|
|
1420
1421
|
}
|
|
1421
1422
|
|
|
1422
|
-
class
|
|
1423
|
+
class InsertTableModel {
|
|
1423
1424
|
constructor(fields) {
|
|
1424
1425
|
if (fields) {
|
|
1425
1426
|
Object.assign(this, fields);
|
|
@@ -1427,7 +1428,7 @@ class InsertTableRowsModel {
|
|
|
1427
1428
|
}
|
|
1428
1429
|
}
|
|
1429
1430
|
|
|
1430
|
-
class
|
|
1431
|
+
class InsertTableRowsModel {
|
|
1431
1432
|
constructor(fields) {
|
|
1432
1433
|
if (fields) {
|
|
1433
1434
|
Object.assign(this, fields);
|
|
@@ -1443,21 +1444,6 @@ class InsertTextModel {
|
|
|
1443
1444
|
}
|
|
1444
1445
|
}
|
|
1445
1446
|
|
|
1446
|
-
class MarginModel {
|
|
1447
|
-
constructor(fields) {
|
|
1448
|
-
this.left = DocumentInfo.paddingLeft;
|
|
1449
|
-
this.right = DocumentInfo.paddingRight;
|
|
1450
|
-
this.top = DocumentInfo.paddingTop;
|
|
1451
|
-
this.bottom = DocumentInfo.paddingBottom;
|
|
1452
|
-
this.header = DocumentInfo.paddingHeader;
|
|
1453
|
-
this.footer = DocumentInfo.paddingFooter;
|
|
1454
|
-
if (!fields) {
|
|
1455
|
-
return;
|
|
1456
|
-
}
|
|
1457
|
-
Object.assign(this, fields);
|
|
1458
|
-
}
|
|
1459
|
-
}
|
|
1460
|
-
|
|
1461
1447
|
var MouseButton;
|
|
1462
1448
|
(function (MouseButton) {
|
|
1463
1449
|
MouseButton[MouseButton["Left"] = 0] = "Left";
|
|
@@ -2189,12 +2175,21 @@ class FormatExtModel extends FormatModel {
|
|
|
2189
2175
|
}
|
|
2190
2176
|
}
|
|
2191
2177
|
|
|
2178
|
+
class ScalingHelper {
|
|
2179
|
+
static getRatio(current, original) {
|
|
2180
|
+
return parseFloat((current / original).toFixed(1));
|
|
2181
|
+
}
|
|
2182
|
+
static scale(initial, scale) {
|
|
2183
|
+
return Math.round(initial * scale);
|
|
2184
|
+
}
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2192
2187
|
class RenderingHelper {
|
|
2193
|
-
static createLineElement(lineInfo, numberingOffsetLeft) {
|
|
2188
|
+
static createLineElement(lineInfo, numberingOffsetLeft, scalingRatio) {
|
|
2194
2189
|
let lineEl = document.createElement('div');
|
|
2195
2190
|
lineEl.className = 'ace-line';
|
|
2196
2191
|
if (lineInfo) {
|
|
2197
|
-
const paddingLeft = lineInfo.paddingLeft - numberingOffsetLeft;
|
|
2192
|
+
const paddingLeft = ScalingHelper.scale(lineInfo.paddingLeft - numberingOffsetLeft, scalingRatio);
|
|
2198
2193
|
const marginLeft = paddingLeft < 0 ? paddingLeft : 0;
|
|
2199
2194
|
lineEl.setAttribute('style',
|
|
2200
2195
|
// eslint-disable-next-line prettier/prettier
|
|
@@ -2216,12 +2211,12 @@ class RenderingHelper {
|
|
|
2216
2211
|
}
|
|
2217
2212
|
domContent.parentNode.appendChild(valueFragment);
|
|
2218
2213
|
}
|
|
2219
|
-
static renderContentWrappedLine(domContent, splits, currentParagraph, formatsExt, distance, customContentService, customComponents, breaks = []) {
|
|
2214
|
+
static renderContentWrappedLine(domContent, splits, currentParagraph, formatsExt, distance, customContentService, customComponents, scalingRatio, breaks = []) {
|
|
2220
2215
|
let splitIndex = 0;
|
|
2221
2216
|
const numberingOffsetLeft = currentParagraph.numberingData.numberingId === null
|
|
2222
2217
|
? 0
|
|
2223
2218
|
: currentParagraph.numberingData.width + currentParagraph.numberingData.paddingLeft;
|
|
2224
|
-
let lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft);
|
|
2219
|
+
let lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft, scalingRatio);
|
|
2225
2220
|
domContent.parentNode.appendChild(lineEl);
|
|
2226
2221
|
const valueFragment = DomHelper.createFragment(domContent.currentElement);
|
|
2227
2222
|
let paragraphChars = 0;
|
|
@@ -2243,7 +2238,7 @@ class RenderingHelper {
|
|
|
2243
2238
|
while (paragraphChars === split && nextFragmentStartIndex !== distance.end) {
|
|
2244
2239
|
split = splits[++splitIndex];
|
|
2245
2240
|
const nextFragmentDocumentStartIndex = fragmentDocumentStartIndex + nextFragmentStartIndex - fragmentStartIndex;
|
|
2246
|
-
lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft);
|
|
2241
|
+
lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft, scalingRatio);
|
|
2247
2242
|
if (split > formatExt.endIndex) {
|
|
2248
2243
|
const nextFragmentEndIndex = formatExt.content.length - 1;
|
|
2249
2244
|
const nextFragmentDistance = new DistanceModel({ start: nextFragmentStartIndex, end: nextFragmentEndIndex });
|
|
@@ -2273,7 +2268,7 @@ class RenderingHelper {
|
|
|
2273
2268
|
}
|
|
2274
2269
|
}
|
|
2275
2270
|
}
|
|
2276
|
-
static renderNumberingMarker(paragraph, layerElement) {
|
|
2271
|
+
static renderNumberingMarker(paragraph, layerElement, scalingRatio) {
|
|
2277
2272
|
const markerHeight = paragraph.numberingData.height;
|
|
2278
2273
|
const markerLineInfo = {
|
|
2279
2274
|
paddingLeft: paragraph.numberingData.paddingLeft,
|
|
@@ -2284,7 +2279,7 @@ class RenderingHelper {
|
|
|
2284
2279
|
offsetAfter: 0,
|
|
2285
2280
|
screenLine: 0
|
|
2286
2281
|
};
|
|
2287
|
-
const numberingLineEl = this.createLineElement(markerLineInfo, 0);
|
|
2282
|
+
const numberingLineEl = this.createLineElement(markerLineInfo, 0, scalingRatio);
|
|
2288
2283
|
const markerFragment = DomHelper.createFragment(layerElement);
|
|
2289
2284
|
const marker = paragraph.numberingData.marker;
|
|
2290
2285
|
const markerExtModel = new FormatExtModel({
|
|
@@ -2922,7 +2917,7 @@ class TextLayer extends EventEmitting {
|
|
|
2922
2917
|
DomHelper.setStyle(paragraphCell.element.style, 'top', `${paragraphTop}px`);
|
|
2923
2918
|
const paragraph = paragraphs[row];
|
|
2924
2919
|
if (paragraph.numberingData.numberingId !== null) {
|
|
2925
|
-
const numberingElement = this.renderingHelper.renderNumberingMarker(paragraph, this.element);
|
|
2920
|
+
const numberingElement = this.renderingHelper.renderNumberingMarker(paragraph, this.element, this.session.properties.scalingRatio);
|
|
2926
2921
|
numberingElement.className = 'numberingMarker';
|
|
2927
2922
|
paragraphCell.element.appendChild(numberingElement);
|
|
2928
2923
|
}
|
|
@@ -2947,13 +2942,13 @@ class TextLayer extends EventEmitting {
|
|
|
2947
2942
|
}));
|
|
2948
2943
|
if (splits?.length) {
|
|
2949
2944
|
const distance = new DistanceModel({ start: startIndex, end: endIndex });
|
|
2950
|
-
this.renderingHelper.renderContentWrappedLine({ currentElement: this.element, parentNode: linesContainerElement }, splits, currentParagraph, formatsExt, distance, this.session.customContentService, this.session.customComponents, this.session.model.breaks);
|
|
2945
|
+
this.renderingHelper.renderContentWrappedLine({ currentElement: this.element, parentNode: linesContainerElement }, splits, currentParagraph, formatsExt, distance, this.session.customContentService, this.session.customComponents, this.session.properties.scalingRatio, this.session.model.breaks);
|
|
2951
2946
|
}
|
|
2952
2947
|
else {
|
|
2953
2948
|
const numberingOffsetLeft = currentParagraph.numberingData.numberingId === null
|
|
2954
2949
|
? 0
|
|
2955
2950
|
: currentParagraph.numberingData.width + currentParagraph.numberingData.paddingLeft;
|
|
2956
|
-
const lastLineEl = this.renderingHelper.createLineElement(currentParagraph.textLinesInfo[0], numberingOffsetLeft);
|
|
2951
|
+
const lastLineEl = this.renderingHelper.createLineElement(currentParagraph.textLinesInfo[0], numberingOffsetLeft, this.session.properties.scalingRatio);
|
|
2957
2952
|
linesContainerElement.appendChild(lastLineEl);
|
|
2958
2953
|
const rowDistance = new DistanceModel({ start: startIndex, end: endIndex });
|
|
2959
2954
|
this.renderingHelper.renderContentSimpleLine({ currentElement: this.element, parentNode: lastLineEl }, formatsExt, rowDistance, this.session.customContentService, this.session.customComponents, this.session.model.breaks);
|
|
@@ -4871,15 +4866,8 @@ class Editor extends EventEmitting {
|
|
|
4871
4866
|
initMainSession() {
|
|
4872
4867
|
const pageWidth = this.customPageWidth ?? this.model.pageWidth;
|
|
4873
4868
|
this.container.nativeElement.style.maxWidth = `${pageWidth}px`;
|
|
4874
|
-
const
|
|
4875
|
-
|
|
4876
|
-
right: this.model.marginRight,
|
|
4877
|
-
top: this.model.marginTop,
|
|
4878
|
-
bottom: this.model.marginBottom,
|
|
4879
|
-
header: this.model.marginHeader,
|
|
4880
|
-
footer: this.model.marginFooter
|
|
4881
|
-
});
|
|
4882
|
-
this.regulatorService.addMainSession(this.model, pageMargin, pageWidth, this.container);
|
|
4869
|
+
const scalingRatio = this.customPageWidth ? ScalingHelper.getRatio(this.customPageWidth, this.model.pageWidth) : 1;
|
|
4870
|
+
this.regulatorService.addMainSession(this.model, pageWidth, scalingRatio, this.container);
|
|
4883
4871
|
this.mainSession.addEventListener('changeScrollTop', this.onScrollTopChange);
|
|
4884
4872
|
this.session.addEventListener('setStyles', this.setStyles);
|
|
4885
4873
|
this.mainRenderer.scrollTo(0);
|
|
@@ -5367,10 +5355,10 @@ class ComponentService {
|
|
|
5367
5355
|
const inputElements = Array.from(clone.getElementsByTagName('input'));
|
|
5368
5356
|
inputElements.forEach(element => element.setAttribute('value', element.value));
|
|
5369
5357
|
}
|
|
5370
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
5371
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
5358
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentService, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5359
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentService }); }
|
|
5372
5360
|
}
|
|
5373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
5361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentService, decorators: [{
|
|
5374
5362
|
type: Injectable
|
|
5375
5363
|
}], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.Injector }] });
|
|
5376
5364
|
|
|
@@ -5846,10 +5834,10 @@ class ResizerComponent {
|
|
|
5846
5834
|
setPreviousCoordinate(event) {
|
|
5847
5835
|
this.prevCoordinate = { x: event.screenX, y: event.screenY };
|
|
5848
5836
|
}
|
|
5849
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
5850
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
5837
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ResizerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5838
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ResizerComponent, selector: "app-resizer", inputs: { isDisabled: "isDisabled", size: "size" }, outputs: { resizeEnd: "resizeEnd" }, host: { listeners: { "document:mousemove": "onMousemove($event)", "window:mouseup": "onMouseup()" }, properties: { "style.width.px": "this.width", "style.height.px": "this.height", "style.right.px": "this.right", "style.bottom.px": "this.bottom" } }, ngImport: i0, template: "<span\n class=\"point north-west\"\n (mousedown)=\"onStartResizing($event, Direction.NorthWest)\"></span>\n<span\n class=\"point north\"\n (mousedown)=\"onStartResizing($event, Direction.North)\"></span>\n<span\n class=\"point north-east\"\n (mousedown)=\"onStartResizing($event, Direction.NorthEast)\"></span>\n<span\n class=\"point east\"\n (mousedown)=\"onStartResizing($event, Direction.East)\"></span>\n<span\n class=\"point south-east\"\n (mousedown)=\"onStartResizing($event, Direction.SouthEast)\"></span>\n<span\n class=\"point south\"\n (mousedown)=\"onStartResizing($event, Direction.South)\"></span>\n<span\n class=\"point south-west\"\n (mousedown)=\"onStartResizing($event, Direction.SouthWest)\"></span>\n<span\n class=\"point west\"\n (mousedown)=\"onStartResizing($event, Direction.West)\"></span>\n", styles: [":host{display:block;border:1px solid #616161}.point{position:absolute;width:12px;height:12px;border:1px solid #616161;border-radius:50%;background-color:#fff}.point.north-west{top:-6px;left:-6px;cursor:nw-resize}.point.north{top:-6px;left:0;right:0;margin:auto;cursor:n-resize}.point.north-east{top:-6px;right:-6px;cursor:ne-resize}.point.east{top:0;bottom:0;right:-6px;margin:auto;cursor:e-resize}.point.south-east{bottom:-6px;right:-6px;cursor:se-resize}.point.south{bottom:-6px;left:0;right:0;margin:auto;cursor:s-resize}.point.south-west{bottom:-6px;left:-6px;cursor:sw-resize}.point.west{top:0;bottom:0;left:-6px;margin:auto;cursor:w-resize}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5851
5839
|
}
|
|
5852
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
5840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ResizerComponent, decorators: [{
|
|
5853
5841
|
type: Component,
|
|
5854
5842
|
args: [{ selector: 'app-resizer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"point north-west\"\n (mousedown)=\"onStartResizing($event, Direction.NorthWest)\"></span>\n<span\n class=\"point north\"\n (mousedown)=\"onStartResizing($event, Direction.North)\"></span>\n<span\n class=\"point north-east\"\n (mousedown)=\"onStartResizing($event, Direction.NorthEast)\"></span>\n<span\n class=\"point east\"\n (mousedown)=\"onStartResizing($event, Direction.East)\"></span>\n<span\n class=\"point south-east\"\n (mousedown)=\"onStartResizing($event, Direction.SouthEast)\"></span>\n<span\n class=\"point south\"\n (mousedown)=\"onStartResizing($event, Direction.South)\"></span>\n<span\n class=\"point south-west\"\n (mousedown)=\"onStartResizing($event, Direction.SouthWest)\"></span>\n<span\n class=\"point west\"\n (mousedown)=\"onStartResizing($event, Direction.West)\"></span>\n", styles: [":host{display:block;border:1px solid #616161}.point{position:absolute;width:12px;height:12px;border:1px solid #616161;border-radius:50%;background-color:#fff}.point.north-west{top:-6px;left:-6px;cursor:nw-resize}.point.north{top:-6px;left:0;right:0;margin:auto;cursor:n-resize}.point.north-east{top:-6px;right:-6px;cursor:ne-resize}.point.east{top:0;bottom:0;right:-6px;margin:auto;cursor:e-resize}.point.south-east{bottom:-6px;right:-6px;cursor:se-resize}.point.south{bottom:-6px;left:0;right:0;margin:auto;cursor:s-resize}.point.south-west{bottom:-6px;left:-6px;cursor:sw-resize}.point.west{top:0;bottom:0;left:-6px;margin:auto;cursor:w-resize}\n"] }]
|
|
5855
5843
|
}], propDecorators: { width: [{
|
|
@@ -5900,8 +5888,8 @@ class NoderImageComponent extends BaseNoderComponent {
|
|
|
5900
5888
|
}
|
|
5901
5889
|
initialize() {
|
|
5902
5890
|
const url = this.image.content?.replace('/api/', '') ?? '';
|
|
5903
|
-
this._height = this.image.height;
|
|
5904
|
-
this._width = this.image.width;
|
|
5891
|
+
this._height = ScalingHelper.scale(this.image.height, this.generalProperties.scalingRatio);
|
|
5892
|
+
this._width = ScalingHelper.scale(this.image.width, this.generalProperties.scalingRatio);
|
|
5905
5893
|
this.apiService.getFile(url).subscribe((res) => {
|
|
5906
5894
|
const fileSource = URL.createObjectURL(res);
|
|
5907
5895
|
const image = this.createImage(fileSource);
|
|
@@ -5949,10 +5937,10 @@ class NoderImageComponent extends BaseNoderComponent {
|
|
|
5949
5937
|
image.style.width = `${size.width}px`;
|
|
5950
5938
|
image.style.height = `${size.height}px`;
|
|
5951
5939
|
}
|
|
5952
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
5953
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
5940
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderImageComponent, deps: [{ token: i0.ElementRef }, { token: ImageApiService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5941
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderImageComponent, selector: "app-noder-image", usesInheritance: true, ngImport: i0, template: "<app-resizer\n *ngIf=\"isFocused\"\n class=\"resizer\"\n [isDisabled]=\"isViewOnly$ | async\"\n [size]=\"size\"\n (resizeEnd)=\"onResizeEnd($event)\"></app-resizer>\n", styles: [":host{position:relative;outline:none}.resizer{position:absolute;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ResizerComponent, selector: "app-resizer", inputs: ["isDisabled", "size"], outputs: ["resizeEnd"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5954
5942
|
}
|
|
5955
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
5943
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderImageComponent, decorators: [{
|
|
5956
5944
|
type: Component,
|
|
5957
5945
|
args: [{ selector: 'app-noder-image', changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-resizer\n *ngIf=\"isFocused\"\n class=\"resizer\"\n [isDisabled]=\"isViewOnly$ | async\"\n [size]=\"size\"\n (resizeEnd)=\"onResizeEnd($event)\"></app-resizer>\n", styles: [":host{position:relative;outline:none}.resizer{position:absolute;z-index:1}\n"] }]
|
|
5958
5946
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ImageApiService }, { type: EditorService }] });
|
|
@@ -5981,12 +5969,12 @@ class NoderTabComponent extends BaseNoderComponent {
|
|
|
5981
5969
|
}
|
|
5982
5970
|
calculateProperties() {
|
|
5983
5971
|
this._height = this.tab.fontSize;
|
|
5984
|
-
this._width = this.tab.width;
|
|
5972
|
+
this._width = ScalingHelper.scale(this.tab.width, this.generalProperties.scalingRatio);
|
|
5985
5973
|
}
|
|
5986
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
5987
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
5974
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5975
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderTabComponent, selector: "app-noder-tab", host: { properties: { "style.width.px": "this.width", "style.fontSize.pt": "this.height" } }, usesInheritance: true, ngImport: i0, template: " \n", styles: [":host{position:relative;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5988
5976
|
}
|
|
5989
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
5977
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTabComponent, decorators: [{
|
|
5990
5978
|
type: Component,
|
|
5991
5979
|
args: [{ selector: 'app-noder-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: " \n", styles: [":host{position:relative;outline:none}\n"] }]
|
|
5992
5980
|
}], propDecorators: { width: [{
|
|
@@ -6154,6 +6142,21 @@ class CellResizerParametersModel {
|
|
|
6154
6142
|
}
|
|
6155
6143
|
}
|
|
6156
6144
|
|
|
6145
|
+
class MarginModel {
|
|
6146
|
+
constructor(fields) {
|
|
6147
|
+
this.left = DocumentInfo.paddingLeft;
|
|
6148
|
+
this.right = DocumentInfo.paddingRight;
|
|
6149
|
+
this.top = DocumentInfo.paddingTop;
|
|
6150
|
+
this.bottom = DocumentInfo.paddingBottom;
|
|
6151
|
+
this.header = DocumentInfo.paddingHeader;
|
|
6152
|
+
this.footer = DocumentInfo.paddingFooter;
|
|
6153
|
+
if (!fields) {
|
|
6154
|
+
return;
|
|
6155
|
+
}
|
|
6156
|
+
Object.assign(this, fields);
|
|
6157
|
+
}
|
|
6158
|
+
}
|
|
6159
|
+
|
|
6157
6160
|
class NoderTableCellComponent {
|
|
6158
6161
|
get session() {
|
|
6159
6162
|
return this.cellSession.session;
|
|
@@ -6188,7 +6191,7 @@ class NoderTableCellComponent {
|
|
|
6188
6191
|
header: 0,
|
|
6189
6192
|
footer: 0
|
|
6190
6193
|
});
|
|
6191
|
-
this.cellSession = this.regulatorService.addCellSession(this.table, marginModel, this, this.
|
|
6194
|
+
this.cellSession = this.regulatorService.addCellSession(this.table, marginModel, this, this.generalProperties);
|
|
6192
6195
|
this.sessionId = this.cellSession.sessionId;
|
|
6193
6196
|
this.addEventListeners();
|
|
6194
6197
|
}
|
|
@@ -6206,12 +6209,12 @@ class NoderTableCellComponent {
|
|
|
6206
6209
|
addEventListeners() {
|
|
6207
6210
|
this.session.pagesWrap.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
|
|
6208
6211
|
}
|
|
6209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
6210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
6212
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableCellComponent, deps: [{ token: EditorService }, { token: RegulatorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderTableCellComponent, selector: "app-noder-table-cell", inputs: { table: "table", cell: "cell", rowIndex: "rowIndex", cellIndex: "cellIndex", columnIndex: "columnIndex", width: "width", parentSessionId: "parentSessionId", generalProperties: "generalProperties", heightChanged: "heightChanged", startResizing: "startResizing" }, host: { properties: { "class.highlighted": "this.isHighlighted", "attr.data-session-id": "this.sessionId" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"cellIndex === 0\"\n class=\"resizer left-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Left)\"></div>\n<div\n #container\n class=\"edit-container\"></div>\n<div class=\"highlight-container\"></div>\n<div\n class=\"resizer right-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Right)\"></div>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}:host::ng-deep .ace-editor{position:relative;line-height:1;font-size:12pt;font-family:Courier New,Courier,monospace;text-align:left;width:100%;height:100%}:host::ng-deep .ace-scroller{position:absolute;overflow:hidden;top:0;bottom:0;-webkit-user-select:none;user-select:none;cursor:text}:host::ng-deep .ace-scrollbar{overflow:hidden scroll;contain:strict;position:absolute;right:0;bottom:0;z-index:6;top:0}:host::ng-deep .ace-scrollbar-inner{position:absolute;cursor:text;left:0;top:0}:host::ng-deep .ace-text-input{position:absolute;z-index:0;width:.5em;height:1em;opacity:0;background:transparent;appearance:none;border:none;resize:none;overflow:hidden;font:inherit;padding:0 1px;margin:0 -1px;contain:strict;-webkit-user-select:text;user-select:text}:host::ng-deep .ace-layer{z-index:1;position:absolute;word-wrap:normal;white-space:pre;height:100%;width:100%;box-sizing:border-box;pointer-events:none}:host::ng-deep .ace-text-layer{font:inherit!important;position:absolute;contain:style size layout;pointer-events:auto}:host::ng-deep .ace-edges-layer{z-index:2}:host::ng-deep .ace-line{display:flex;align-items:baseline;line-height:normal}:host::ng-deep .ace-line .hyperlink-hover{cursor:pointer}:host::ng-deep .ace-line>*{display:inline-block;font-kerning:none}:host::ng-deep .ace-line>*.paragraph-symbol{align-self:flex-end}:host::ng-deep .ace-content{position:inherit;box-sizing:border-box;min-width:100%;contain:style size layout;inset:0}:host::ng-deep .ace-line-group{display:inline-flex}:host::ng-deep .ace-line-group .lines-container{width:100%}:host::ng-deep .ace-line-group .numberingMarker{display:inline-flex}:host::ng-deep .ace-line-group .numberingMarker span{align-self:end}:host::ng-deep .ace-text-layer>.ace-line,:host::ng-deep .ace-text-layer>.ace-line-group,:host::ng-deep .ace-edges-layer>.ace-line,:host::ng-deep .ace-edges-layer>.ace-line-group{contain:style size layout;position:absolute;top:0;left:0;right:0}:host::ng-deep .ace-text-layer>.ace-line-group:has(.focused){z-index:1}:host::ng-deep .ace-line-group:has(.lines-container>.ace-line:first-child>span:not(:empty)){align-items:baseline}:host::ng-deep .ace-cursor-layer{z-index:4}:host::ng-deep .ace-cursor-layer.selecting{display:none}:host::ng-deep .ace-cursor{z-index:4;position:absolute;box-sizing:border-box;border-left:2px solid;transform:translateZ(0)}:host::ng-deep .ace-hidden-cursors .ace-cursor{opacity:0}:host::ng-deep .ace-hidden-cursors{visibility:hidden}:host::ng-deep .ace-animate-blinking .ace-cursor{animation-duration:1s;animation-timing-function:step-end;animation-name:blink-ace-animate;animation-iteration-count:infinite}:host::ng-deep .ace-animate-blinking.ace-smooth-blinking .ace-cursor{animation-duration:1s;animation-timing-function:ease-in-out;animation-name:blink-ace-animate-smooth}@keyframes blink-ace-animate{0%,to{opacity:1}60%{opacity:0}}@keyframes blink-ace-animate-smooth{0%,to{opacity:1}45%{opacity:1}60%{opacity:0}85%{opacity:0}}:host::ng-deep .ace-selection-layer .ace-selection{position:absolute;z-index:5}:host::ng-deep .ace-selection-layer.text-selection .ace-selection{background-color:#5ea8f766}:host::ng-deep .ace-selection-layer.notes-highlight .ace-selection{background:#ff06}:host::ng-deep .ace-underline{text-decoration:underline}:host::ng-deep .ace-bold{font-weight:700}:host::ng-deep .ace-italic{font-style:italic}:host::ng-deep .page{width:100%;position:absolute}:host::ng-deep .page-label{position:absolute;top:40px;right:96px;font-family:Courier New,Courier,monospace;font-size:16px;line-height:1}:host::ng-deep .font-baseline{visibility:hidden;height:500px}:host::ng-deep .font-baseline span:after{content:\"\";height:100%;display:inline-block}:host::ng-deep .ruler-line{position:absolute;top:0;bottom:0;width:0;border-left:1px solid rgba(0,0,0,.4);opacity:.5;display:none;z-index:1}:host::ng-deep .ruler-line.visible{display:block}:host::ng-deep .drawer-container .mat-button-toggle-button{height:48px;border-radius:4px}:host::ng-deep .drawer-container .mat-button-toggle-checked button{height:48px;border-radius:4px}\n", ".highlight-container{visibility:hidden;position:absolute;width:100%;height:100%;background-color:#5ea8f766;pointer-events:none;overflow:hidden}:host{min-height:19px;height:100%;background:transparent}:host.highlighted .highlight-container{visibility:visible}.edit-container{min-height:1px;overflow:hidden}.left-border{left:-6px}.resizer{cursor:col-resize;width:11px;height:100%;position:absolute;z-index:1}.right-border{right:-6px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6211
6214
|
}
|
|
6212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
6215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableCellComponent, decorators: [{
|
|
6213
6216
|
type: Component,
|
|
6214
|
-
args: [{ selector: 'app-noder-table-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"cellIndex === 0\"\n class=\"resizer left-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Left)\"></div>\n<div\n #container\n class=\"edit-container\"></div>\n<div class=\"highlight-container\"></div>\n<div\n class=\"resizer right-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Right)\"></div>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}
|
|
6217
|
+
args: [{ selector: 'app-noder-table-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"cellIndex === 0\"\n class=\"resizer left-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Left)\"></div>\n<div\n #container\n class=\"edit-container\"></div>\n<div class=\"highlight-container\"></div>\n<div\n class=\"resizer right-border\"\n (mousedown)=\"onStartResizing($event, resizerBorder.Right)\"></div>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}:host::ng-deep .ace-editor{position:relative;line-height:1;font-size:12pt;font-family:Courier New,Courier,monospace;text-align:left;width:100%;height:100%}:host::ng-deep .ace-scroller{position:absolute;overflow:hidden;top:0;bottom:0;-webkit-user-select:none;user-select:none;cursor:text}:host::ng-deep .ace-scrollbar{overflow:hidden scroll;contain:strict;position:absolute;right:0;bottom:0;z-index:6;top:0}:host::ng-deep .ace-scrollbar-inner{position:absolute;cursor:text;left:0;top:0}:host::ng-deep .ace-text-input{position:absolute;z-index:0;width:.5em;height:1em;opacity:0;background:transparent;appearance:none;border:none;resize:none;overflow:hidden;font:inherit;padding:0 1px;margin:0 -1px;contain:strict;-webkit-user-select:text;user-select:text}:host::ng-deep .ace-layer{z-index:1;position:absolute;word-wrap:normal;white-space:pre;height:100%;width:100%;box-sizing:border-box;pointer-events:none}:host::ng-deep .ace-text-layer{font:inherit!important;position:absolute;contain:style size layout;pointer-events:auto}:host::ng-deep .ace-edges-layer{z-index:2}:host::ng-deep .ace-line{display:flex;align-items:baseline;line-height:normal}:host::ng-deep .ace-line .hyperlink-hover{cursor:pointer}:host::ng-deep .ace-line>*{display:inline-block;font-kerning:none}:host::ng-deep .ace-line>*.paragraph-symbol{align-self:flex-end}:host::ng-deep .ace-content{position:inherit;box-sizing:border-box;min-width:100%;contain:style size layout;inset:0}:host::ng-deep .ace-line-group{display:inline-flex}:host::ng-deep .ace-line-group .lines-container{width:100%}:host::ng-deep .ace-line-group .numberingMarker{display:inline-flex}:host::ng-deep .ace-line-group .numberingMarker span{align-self:end}:host::ng-deep .ace-text-layer>.ace-line,:host::ng-deep .ace-text-layer>.ace-line-group,:host::ng-deep .ace-edges-layer>.ace-line,:host::ng-deep .ace-edges-layer>.ace-line-group{contain:style size layout;position:absolute;top:0;left:0;right:0}:host::ng-deep .ace-text-layer>.ace-line-group:has(.focused){z-index:1}:host::ng-deep .ace-line-group:has(.lines-container>.ace-line:first-child>span:not(:empty)){align-items:baseline}:host::ng-deep .ace-cursor-layer{z-index:4}:host::ng-deep .ace-cursor-layer.selecting{display:none}:host::ng-deep .ace-cursor{z-index:4;position:absolute;box-sizing:border-box;border-left:2px solid;transform:translateZ(0)}:host::ng-deep .ace-hidden-cursors .ace-cursor{opacity:0}:host::ng-deep .ace-hidden-cursors{visibility:hidden}:host::ng-deep .ace-animate-blinking .ace-cursor{animation-duration:1s;animation-timing-function:step-end;animation-name:blink-ace-animate;animation-iteration-count:infinite}:host::ng-deep .ace-animate-blinking.ace-smooth-blinking .ace-cursor{animation-duration:1s;animation-timing-function:ease-in-out;animation-name:blink-ace-animate-smooth}@keyframes blink-ace-animate{0%,to{opacity:1}60%{opacity:0}}@keyframes blink-ace-animate-smooth{0%,to{opacity:1}45%{opacity:1}60%{opacity:0}85%{opacity:0}}:host::ng-deep .ace-selection-layer .ace-selection{position:absolute;z-index:5}:host::ng-deep .ace-selection-layer.text-selection .ace-selection{background-color:#5ea8f766}:host::ng-deep .ace-selection-layer.notes-highlight .ace-selection{background:#ff06}:host::ng-deep .ace-underline{text-decoration:underline}:host::ng-deep .ace-bold{font-weight:700}:host::ng-deep .ace-italic{font-style:italic}:host::ng-deep .page{width:100%;position:absolute}:host::ng-deep .page-label{position:absolute;top:40px;right:96px;font-family:Courier New,Courier,monospace;font-size:16px;line-height:1}:host::ng-deep .font-baseline{visibility:hidden;height:500px}:host::ng-deep .font-baseline span:after{content:\"\";height:100%;display:inline-block}:host::ng-deep .ruler-line{position:absolute;top:0;bottom:0;width:0;border-left:1px solid rgba(0,0,0,.4);opacity:.5;display:none;z-index:1}:host::ng-deep .ruler-line.visible{display:block}:host::ng-deep .drawer-container .mat-button-toggle-button{height:48px;border-radius:4px}:host::ng-deep .drawer-container .mat-button-toggle-checked button{height:48px;border-radius:4px}\n", ".highlight-container{visibility:hidden;position:absolute;width:100%;height:100%;background-color:#5ea8f766;pointer-events:none;overflow:hidden}:host{min-height:19px;height:100%;background:transparent}:host.highlighted .highlight-container{visibility:visible}.edit-container{min-height:1px;overflow:hidden}.left-border{left:-6px}.resizer{cursor:col-resize;width:11px;height:100%;position:absolute;z-index:1}.right-border{right:-6px}\n"] }]
|
|
6215
6218
|
}], ctorParameters: () => [{ type: EditorService }, { type: RegulatorService }], propDecorators: { table: [{
|
|
6216
6219
|
type: Input
|
|
6217
6220
|
}], cell: [{
|
|
@@ -6226,6 +6229,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
6226
6229
|
type: Input
|
|
6227
6230
|
}], parentSessionId: [{
|
|
6228
6231
|
type: Input
|
|
6232
|
+
}], generalProperties: [{
|
|
6233
|
+
type: Input
|
|
6229
6234
|
}], heightChanged: [{
|
|
6230
6235
|
type: Input
|
|
6231
6236
|
}], startResizing: [{
|
|
@@ -6298,10 +6303,10 @@ class OverlayService {
|
|
|
6298
6303
|
getOverlayPosition(xPosition, yPosition) {
|
|
6299
6304
|
return this.overlay.position().global().left(`${xPosition}px`).top(`${yPosition}px`);
|
|
6300
6305
|
}
|
|
6301
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
6302
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
6306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverlayService, deps: [{ token: i1$2.Overlay }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6307
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverlayService }); }
|
|
6303
6308
|
}
|
|
6304
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
6309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OverlayService, decorators: [{
|
|
6305
6310
|
type: Injectable
|
|
6306
6311
|
}], ctorParameters: () => [{ type: i1$2.Overlay }] });
|
|
6307
6312
|
|
|
@@ -6353,10 +6358,10 @@ class TableOverlayMenuComponent {
|
|
|
6353
6358
|
this.editorService.removeTableColumns(this.tableInsertIndex, this.selectionRange.cellIndexes.startIndex, this.selectionRange.cellIndexes.endIndex, this.sessionId);
|
|
6354
6359
|
this.overlayService.close();
|
|
6355
6360
|
}
|
|
6356
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
6357
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
6361
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableOverlayMenuComponent, deps: [{ token: EditorService }, { token: OverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6362
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableOverlayMenuComponent, selector: "app-table-overlay-menu", inputs: { selectionRange: "selectionRange", targets: "targets", canRemoveRows: "canRemoveRows", canRemoveColumns: "canRemoveColumns", tableInsertIndex: "tableInsertIndex", sessionId: "sessionId" }, ngImport: i0, template: "<div\n class=\"menu-item\"\n (click)=\"onInsertRowsAbove()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsAboveMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertRowsBelow()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsBelowMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsLeft()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsLeftMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsRight()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsRightMessage }}\n</div>\n<ng-container *ngIf=\"canRemoveRows || canRemoveColumns\">\n <div class=\"menu-separator\">\n <div class=\"menu-separator-top\"></div>\n <div class=\"menu-separator-bottom\"></div>\n </div>\n <div\n *ngIf=\"canRemoveRows\"\n class=\"menu-item\"\n (click)=\"onRemoveRows()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeRowsMessage }}\n </div>\n <div\n *ngIf=\"canRemoveColumns\"\n class=\"menu-item\"\n (click)=\"onRemoveColumns()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeColumnsMessage }}\n </div>\n</ng-container>\n", styles: [":host{position:absolute;border:1px solid transparent;border-radius:4px;box-shadow:0 2px 6px 2px #3c404326;overflow-y:auto;background:#fff;cursor:default;font-size:13px;margin:0;padding:6px 0}.menu-item{display:flex;flex-direction:row;align-items:center;cursor:pointer;min-height:20px;color:#202124;font-size:16px;letter-spacing:.2px;line-height:20px;padding:6px}.menu-item:hover{background-color:#0000001a}.mat-icon{margin-right:6px;width:20px;height:20px;font-size:20px}.menu-separator{-webkit-user-select:none;user-select:none}.menu-separator .menu-separator-top{padding:4px}.menu-separator .menu-separator-bottom{border-top:1px solid #dadce0;padding:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6358
6363
|
}
|
|
6359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
6364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableOverlayMenuComponent, decorators: [{
|
|
6360
6365
|
type: Component,
|
|
6361
6366
|
args: [{ selector: 'app-table-overlay-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"menu-item\"\n (click)=\"onInsertRowsAbove()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsAboveMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertRowsBelow()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsBelowMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsLeft()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsLeftMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsRight()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsRightMessage }}\n</div>\n<ng-container *ngIf=\"canRemoveRows || canRemoveColumns\">\n <div class=\"menu-separator\">\n <div class=\"menu-separator-top\"></div>\n <div class=\"menu-separator-bottom\"></div>\n </div>\n <div\n *ngIf=\"canRemoveRows\"\n class=\"menu-item\"\n (click)=\"onRemoveRows()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeRowsMessage }}\n </div>\n <div\n *ngIf=\"canRemoveColumns\"\n class=\"menu-item\"\n (click)=\"onRemoveColumns()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeColumnsMessage }}\n </div>\n</ng-container>\n", styles: [":host{position:absolute;border:1px solid transparent;border-radius:4px;box-shadow:0 2px 6px 2px #3c404326;overflow-y:auto;background:#fff;cursor:default;font-size:13px;margin:0;padding:6px 0}.menu-item{display:flex;flex-direction:row;align-items:center;cursor:pointer;min-height:20px;color:#202124;font-size:16px;letter-spacing:.2px;line-height:20px;padding:6px}.menu-item:hover{background-color:#0000001a}.mat-icon{margin-right:6px;width:20px;height:20px;font-size:20px}.menu-separator{-webkit-user-select:none;user-select:none}.menu-separator .menu-separator-top{padding:4px}.menu-separator .menu-separator-bottom{border-top:1px solid #dadce0;padding:4px}\n"] }]
|
|
6362
6367
|
}], ctorParameters: () => [{ type: EditorService }, { type: OverlayService }], propDecorators: { selectionRange: [{
|
|
@@ -6818,7 +6823,7 @@ class NoderTableComponent extends BaseNoderComponent {
|
|
|
6818
6823
|
tableRow.cells[cellIndex].widthType = 'dxa';
|
|
6819
6824
|
return (cellWidth * this._width) / 5000; // 5000 is equal to 100% in docx units of measurement
|
|
6820
6825
|
}
|
|
6821
|
-
return cellWidth;
|
|
6826
|
+
return ScalingHelper.scale(cellWidth, this.generalProperties.scalingRatio);
|
|
6822
6827
|
}
|
|
6823
6828
|
createResizer() {
|
|
6824
6829
|
this.resizerEl = document.createElement('div');
|
|
@@ -6892,9 +6897,9 @@ class NoderTableComponent extends BaseNoderComponent {
|
|
|
6892
6897
|
cellIndex: modelCellIndex,
|
|
6893
6898
|
columnIndex: currentTargetIndex,
|
|
6894
6899
|
width: this.getAdjustedWidth(this.table.rows[rowIndex], modelCellIndex, currentTargetIndex),
|
|
6900
|
+
generalProperties: this.generalProperties,
|
|
6895
6901
|
heightChanged: this.cellHeightChanged,
|
|
6896
|
-
startResizing: this.startResizing
|
|
6897
|
-
properties: this.properties
|
|
6902
|
+
startResizing: this.startResizing
|
|
6898
6903
|
});
|
|
6899
6904
|
const cellContentHeight = componentRef.instance.getCellContentHeight();
|
|
6900
6905
|
const cellData = new CellDataModel(cell, cellContentHeight, componentRef);
|
|
@@ -6925,7 +6930,8 @@ class NoderTableComponent extends BaseNoderComponent {
|
|
|
6925
6930
|
let i = 0;
|
|
6926
6931
|
while (i < this.table.columns.length) {
|
|
6927
6932
|
const col = document.createElement('col');
|
|
6928
|
-
|
|
6933
|
+
const scaledWidth = ScalingHelper.scale(this.table.columns[i].width, this.generalProperties.scalingRatio);
|
|
6934
|
+
col.style.width = `${scaledWidth}px`;
|
|
6929
6935
|
colgroup.appendChild(col);
|
|
6930
6936
|
i++;
|
|
6931
6937
|
}
|
|
@@ -7117,10 +7123,10 @@ class NoderTableComponent extends BaseNoderComponent {
|
|
|
7117
7123
|
}
|
|
7118
7124
|
return sum;
|
|
7119
7125
|
}
|
|
7120
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
7121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
7126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableComponent, deps: [{ token: ComponentService }, { token: EditorService }, { token: i0.ElementRef }, { token: OverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderTableComponent, selector: "app-noder-table", usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{position:relative}:host::ng-deep table{position:relative;border-collapse:collapse;background:transparent;empty-cells:show;border-spacing:0;overflow:visible;table-layout:fixed}:host::ng-deep td{position:relative;vertical-align:top;border:1px solid #000;margin:0;padding:0;height:inherit}:host::ng-deep .hidden-cell{display:none;cursor:not-allowed}:host::ng-deep .resizer-border{position:absolute;border:solid .5px blue;z-index:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7122
7128
|
}
|
|
7123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
7129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableComponent, decorators: [{
|
|
7124
7130
|
type: Component,
|
|
7125
7131
|
args: [{ selector: 'app-noder-table', template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{position:relative}:host::ng-deep table{position:relative;border-collapse:collapse;background:transparent;empty-cells:show;border-spacing:0;overflow:visible;table-layout:fixed}:host::ng-deep td{position:relative;vertical-align:top;border:1px solid #000;margin:0;padding:0;height:inherit}:host::ng-deep .hidden-cell{display:none;cursor:not-allowed}:host::ng-deep .resizer-border{position:absolute;border:solid .5px blue;z-index:1}\n"] }]
|
|
7126
7132
|
}], ctorParameters: () => [{ type: ComponentService }, { type: EditorService }, { type: i0.ElementRef }, { type: OverlayService }] });
|
|
@@ -10806,10 +10812,10 @@ class NoderEdgeComponent extends ObserverComponent {
|
|
|
10806
10812
|
const renderedEdgeHeight = this.height > this.properties.maxEdgeHeight ? this.properties.maxEdgeHeight : this.height;
|
|
10807
10813
|
DomHelper.setStyle(this.typeContainer.nativeElement.style, this.typeContainerPosition, `${renderedEdgeHeight}px`);
|
|
10808
10814
|
}
|
|
10809
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
10810
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
10815
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderEdgeComponent, deps: [{ token: RegulatorService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10816
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderEdgeComponent, selector: "app-noder-edge", inputs: { model: "model", properties: "properties", margins: "margins", width: "width", parentSessionId: "parentSessionId", type: "type" }, host: { properties: { "attr.data-session-id": "this.sessionId" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "typeContainer", first: true, predicate: ["locationType"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n #container\n class=\"edit-container\"></div>\n<div\n #locationType\n class=\"location-type\"></div>\n", styles: [":host{height:100%;width:100%;background:transparent;display:block}.location-type{position:absolute;height:auto;width:auto;font-size:9pt;background-color:#f2f2f2;border:1px solid #838282;border-radius:2px;padding:4px;margin-left:5px;z-index:2}.header-edit-mode{border-bottom:1px dashed #838282}.footer-edit-mode{border-top:1px dashed #838282}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10811
10817
|
}
|
|
10812
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
10818
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderEdgeComponent, decorators: [{
|
|
10813
10819
|
type: Component,
|
|
10814
10820
|
args: [{ selector: 'app-noder-edge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"edit-container\"></div>\n<div\n #locationType\n class=\"location-type\"></div>\n", styles: [":host{height:100%;width:100%;background:transparent;display:block}.location-type{position:absolute;height:auto;width:auto;font-size:9pt;background-color:#f2f2f2;border:1px solid #838282;border-radius:2px;padding:4px;margin-left:5px;z-index:2}.header-edit-mode{border-bottom:1px dashed #838282}.footer-edit-mode{border-top:1px dashed #838282}\n"] }]
|
|
10815
10821
|
}], ctorParameters: () => [{ type: RegulatorService }, { type: EditorService }], propDecorators: { model: [{
|
|
@@ -10940,26 +10946,21 @@ class CustomContentService {
|
|
|
10940
10946
|
this.injector = injector;
|
|
10941
10947
|
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
10942
10948
|
}
|
|
10943
|
-
generateComponents(model, sessionId,
|
|
10949
|
+
generateComponents(model, sessionId, generalProperties, document) {
|
|
10944
10950
|
const contentWidth = document.pageWidth - (document.pageMargin.left + document.pageMargin.right);
|
|
10945
10951
|
return {
|
|
10946
10952
|
images: this.componentService.generateComponents(NoderImageComponent, model?.images || [], x => {
|
|
10947
|
-
return { image: x, sessionId };
|
|
10953
|
+
return { image: x, sessionId, generalProperties };
|
|
10948
10954
|
}),
|
|
10949
10955
|
tables: this.componentService.generateComponents(NoderTableComponent, model?.tables || [], x => {
|
|
10950
|
-
return { table: x, sessionId,
|
|
10956
|
+
return { table: x, sessionId, generalProperties };
|
|
10951
10957
|
}),
|
|
10952
10958
|
tabs: this.componentService.generateComponents(NoderTabComponent, model?.tabs || [], x => {
|
|
10953
|
-
return { tab: x, sessionId };
|
|
10959
|
+
return { tab: x, sessionId, generalProperties };
|
|
10954
10960
|
}),
|
|
10955
10961
|
customElements: this.generateElementComponents(model?.elements || [], sessionId, contentWidth),
|
|
10956
10962
|
edges: model instanceof DocxModel
|
|
10957
|
-
? new Edges(this.componentService, model.headers, model.footers,
|
|
10958
|
-
left: model.marginLeft,
|
|
10959
|
-
right: model.marginRight,
|
|
10960
|
-
top: model.marginHeader,
|
|
10961
|
-
bottom: model.marginFooter
|
|
10962
|
-
}), document.pageWidth, sessionId, properties)
|
|
10963
|
+
? new Edges(this.componentService, model.headers, model.footers, document.pageMargin, document.pageWidth, sessionId, generalProperties)
|
|
10963
10964
|
: null
|
|
10964
10965
|
};
|
|
10965
10966
|
}
|
|
@@ -11035,10 +11036,10 @@ class CustomContentService {
|
|
|
11035
11036
|
findComponent(components, insertIndex) {
|
|
11036
11037
|
return components.find((x) => x.instance.insertIndex === insertIndex);
|
|
11037
11038
|
}
|
|
11038
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
11039
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
11039
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService, deps: [{ token: ComponentService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11040
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService }); }
|
|
11040
11041
|
}
|
|
11041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
11042
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService, decorators: [{
|
|
11042
11043
|
type: Injectable
|
|
11043
11044
|
}], ctorParameters: () => [{ type: ComponentService }, { type: i0.Injector }] });
|
|
11044
11045
|
|
|
@@ -11050,14 +11051,22 @@ class RegulatorService {
|
|
|
11050
11051
|
this.sessionIdIncrement = 0;
|
|
11051
11052
|
this.edgeEditingPage = null;
|
|
11052
11053
|
}
|
|
11053
|
-
addMainSession(model,
|
|
11054
|
+
addMainSession(model, pageWidth, scalingRatio, container) {
|
|
11054
11055
|
const currentSessionId = ++this.sessionIdIncrement;
|
|
11055
|
-
const document = new Document(model,
|
|
11056
|
+
const document = new Document(model, new MarginModel({
|
|
11057
|
+
left: ScalingHelper.scale(model.marginLeft, scalingRatio),
|
|
11058
|
+
right: ScalingHelper.scale(model.marginRight, scalingRatio),
|
|
11059
|
+
top: model.marginTop,
|
|
11060
|
+
bottom: model.marginBottom,
|
|
11061
|
+
header: model.marginHeader,
|
|
11062
|
+
footer: model.marginFooter
|
|
11063
|
+
}), DocumentInfo.pagesSpace, pageWidth, model.pageHeight);
|
|
11056
11064
|
const renderer = new VirtualRenderer(container.nativeElement, this.editorService);
|
|
11057
11065
|
const session = new EditSession(document, currentSessionId, this.customContentService, model, this.selection, new GeneralPropertiesModel({
|
|
11058
11066
|
numberings: model.numberings,
|
|
11059
|
-
defaultTabWidth: model.defaultTabWidth,
|
|
11060
|
-
maxEdgeHeight: model.pageHeight * DEFAULT_EDGE_MAX_HEIGHT_MULTIPLIER
|
|
11067
|
+
defaultTabWidth: ScalingHelper.scale(model.defaultTabWidth, scalingRatio),
|
|
11068
|
+
maxEdgeHeight: model.pageHeight * DEFAULT_EDGE_MAX_HEIGHT_MULTIPLIER,
|
|
11069
|
+
scalingRatio
|
|
11061
11070
|
}));
|
|
11062
11071
|
renderer.setSession(session);
|
|
11063
11072
|
renderer.scrollTo(session.scrollTop);
|
|
@@ -11212,10 +11221,10 @@ class RegulatorService {
|
|
|
11212
11221
|
const mainRenderer = this.mainSession.renderer;
|
|
11213
11222
|
mainRenderer.edgesLayer.update(mainRenderer.layerConfig);
|
|
11214
11223
|
}
|
|
11215
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
11216
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
11224
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService, deps: [{ token: CustomContentService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11225
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService }); }
|
|
11217
11226
|
}
|
|
11218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
11227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService, decorators: [{
|
|
11219
11228
|
type: Injectable
|
|
11220
11229
|
}], ctorParameters: () => [{ type: CustomContentService }, { type: EditorService }] });
|
|
11221
11230
|
|
|
@@ -11229,41 +11238,13 @@ class CommandsService {
|
|
|
11229
11238
|
get createCommand$() {
|
|
11230
11239
|
return this._createCommand$.asObservable();
|
|
11231
11240
|
}
|
|
11232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
11233
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
11241
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommandsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11242
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommandsService }); }
|
|
11234
11243
|
}
|
|
11235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
11244
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommandsService, decorators: [{
|
|
11236
11245
|
type: Injectable
|
|
11237
11246
|
}] });
|
|
11238
11247
|
|
|
11239
|
-
class ElementToolbarComponent {
|
|
11240
|
-
constructor() {
|
|
11241
|
-
this.isDisabled = false;
|
|
11242
|
-
this.createElement = new EventEmitter();
|
|
11243
|
-
this.isHide = false;
|
|
11244
|
-
}
|
|
11245
|
-
changeVisibility() {
|
|
11246
|
-
this.isHide = !this.isHide;
|
|
11247
|
-
}
|
|
11248
|
-
async create(model) {
|
|
11249
|
-
const data = await model.factoryMethod();
|
|
11250
|
-
const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
|
|
11251
|
-
this.createElement.emit(element);
|
|
11252
|
-
}
|
|
11253
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11254
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ElementToolbarComponent, selector: "app-element-toolbar", inputs: { isDisabled: "isDisabled", elements: "elements" }, outputs: { createElement: "createElement" }, ngImport: i0, template: "<button\n class=\"menu\"\n mat-raised-button\n (click)=\"changeVisibility()\">\n <div class=\"icon\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-menu-circle\"></mat-icon>\n </div>\n</button>\n<div\n class=\"menu-items\"\n *ngIf=\"!isHide\">\n <div class=\"empty-place\"></div>\n <button\n *ngFor=\"let element of elements\"\n mat-icon-button\n matTooltip=\"{{ element.name }}\"\n matTooltipPosition=\"left\"\n (click)=\"create(element)\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{position:absolute}.mat-mdc-button.mat-mdc-button-base,.mat-mdc-raised-button.mat-mdc-button-base,.mat-mdc-unelevated-button.mat-mdc-button-base,.mat-mdc-outlined-button.mat-mdc-button-base{padding-right:21px}.menu-items{z-index:1;top:24px;position:absolute;max-width:50px;display:flex;flex-direction:column;border-radius:0 0 20px 20px;box-shadow:1px 2px 5px #0000001a}.menu-items .empty-place{height:24px}.menu{border-radius:30px 0 0 30px;min-width:56px;width:56px;height:48px;z-index:2}.menu .icon mat-icon{height:22px;width:24px;font-size:24px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11255
|
-
}
|
|
11256
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementToolbarComponent, decorators: [{
|
|
11257
|
-
type: Component,
|
|
11258
|
-
args: [{ selector: 'app-element-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"menu\"\n mat-raised-button\n (click)=\"changeVisibility()\">\n <div class=\"icon\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-menu-circle\"></mat-icon>\n </div>\n</button>\n<div\n class=\"menu-items\"\n *ngIf=\"!isHide\">\n <div class=\"empty-place\"></div>\n <button\n *ngFor=\"let element of elements\"\n mat-icon-button\n matTooltip=\"{{ element.name }}\"\n matTooltipPosition=\"left\"\n (click)=\"create(element)\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{position:absolute}.mat-mdc-button.mat-mdc-button-base,.mat-mdc-raised-button.mat-mdc-button-base,.mat-mdc-unelevated-button.mat-mdc-button-base,.mat-mdc-outlined-button.mat-mdc-button-base{padding-right:21px}.menu-items{z-index:1;top:24px;position:absolute;max-width:50px;display:flex;flex-direction:column;border-radius:0 0 20px 20px;box-shadow:1px 2px 5px #0000001a}.menu-items .empty-place{height:24px}.menu{border-radius:30px 0 0 30px;min-width:56px;width:56px;height:48px;z-index:2}.menu .icon mat-icon{height:22px;width:24px;font-size:24px}\n"] }]
|
|
11259
|
-
}], propDecorators: { isDisabled: [{
|
|
11260
|
-
type: Input
|
|
11261
|
-
}], elements: [{
|
|
11262
|
-
type: Input
|
|
11263
|
-
}], createElement: [{
|
|
11264
|
-
type: Output
|
|
11265
|
-
}] } });
|
|
11266
|
-
|
|
11267
11248
|
class EditorComponent {
|
|
11268
11249
|
get isViewOnly$() {
|
|
11269
11250
|
return this.editorService.isViewOnly$;
|
|
@@ -11289,7 +11270,6 @@ class EditorComponent {
|
|
|
11289
11270
|
this.class = 'base-editor';
|
|
11290
11271
|
this.subscriptions = [];
|
|
11291
11272
|
this.sidenavComponentRef = null;
|
|
11292
|
-
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
11293
11273
|
this.sidenavProperties = this.injector.get(EXTERNAL_ELEMENT_SIDENAV);
|
|
11294
11274
|
FontMetrics.checkVersion(EDITOR_VERSION);
|
|
11295
11275
|
}
|
|
@@ -11304,10 +11284,6 @@ class EditorComponent {
|
|
|
11304
11284
|
this.editor = new Editor(content, this.container, this.editorService, this.regulatorService, this.commandsService, this.clipboard, this.customPageWidth);
|
|
11305
11285
|
this.subscriptions.push(this.toggleSidenavSubscription());
|
|
11306
11286
|
}
|
|
11307
|
-
createElement(model) {
|
|
11308
|
-
this.editor.createCustomElement(model);
|
|
11309
|
-
this.editor.focus();
|
|
11310
|
-
}
|
|
11311
11287
|
toggleSidenavSubscription() {
|
|
11312
11288
|
return this.editorService.toggleSidenav$.subscribe(data => {
|
|
11313
11289
|
if (this.sidenav.opened === data.open) {
|
|
@@ -11330,12 +11306,12 @@ class EditorComponent {
|
|
|
11330
11306
|
this.cdr.markForCheck();
|
|
11331
11307
|
});
|
|
11332
11308
|
}
|
|
11333
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
11334
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
11309
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: ComponentService }, { token: EditorService }, { token: i0.Injector }, { token: RegulatorService }, { token: CommandsService }, { token: i5.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11310
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorComponent, selector: "app-editor", inputs: { customPageWidth: "customPageWidth", content: "content" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "sidenavContainer", first: true, predicate: ["drawerContainer"], descendants: true, static: true }, { propertyName: "sidenav", first: true, predicate: ["drawer"], descendants: true, static: true }], ngImport: i0, template: "<mat-drawer-container\n class=\"sidenav-container\"\n [hasBackdrop]=\"sidenavProperties.hasBackdrop\">\n <mat-drawer-content>\n <div class=\"container\">\n <div\n #container\n class=\"edit-container\"></div>\n </div>\n </mat-drawer-content>\n <mat-drawer\n #drawer\n [autoFocus]=\"sidenavProperties.autoFocus\"\n [position]=\"sidenavProperties.position\"\n [mode]=\"sidenavProperties.mode\">\n <div\n #drawerContainer\n class=\"drawer-container\"></div>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}:host::ng-deep .ace-editor{position:relative;line-height:1;font-size:12pt;font-family:Courier New,Courier,monospace;text-align:left;width:100%;height:100%}:host::ng-deep .ace-scroller{position:absolute;overflow:hidden;top:0;bottom:0;-webkit-user-select:none;user-select:none;cursor:text}:host::ng-deep .ace-scrollbar{overflow:hidden scroll;contain:strict;position:absolute;right:0;bottom:0;z-index:6;top:0}:host::ng-deep .ace-scrollbar-inner{position:absolute;cursor:text;left:0;top:0}:host::ng-deep .ace-text-input{position:absolute;z-index:0;width:.5em;height:1em;opacity:0;background:transparent;appearance:none;border:none;resize:none;overflow:hidden;font:inherit;padding:0 1px;margin:0 -1px;contain:strict;-webkit-user-select:text;user-select:text}:host::ng-deep .ace-layer{z-index:1;position:absolute;word-wrap:normal;white-space:pre;height:100%;width:100%;box-sizing:border-box;pointer-events:none}:host::ng-deep .ace-text-layer{font:inherit!important;position:absolute;contain:style size layout;pointer-events:auto}:host::ng-deep .ace-edges-layer{z-index:2}:host::ng-deep .ace-line{display:flex;align-items:baseline;line-height:normal}:host::ng-deep .ace-line .hyperlink-hover{cursor:pointer}:host::ng-deep .ace-line>*{display:inline-block;font-kerning:none}:host::ng-deep .ace-line>*.paragraph-symbol{align-self:flex-end}:host::ng-deep .ace-content{position:inherit;box-sizing:border-box;min-width:100%;contain:style size layout;inset:0}:host::ng-deep .ace-line-group{display:inline-flex}:host::ng-deep .ace-line-group .lines-container{width:100%}:host::ng-deep .ace-line-group .numberingMarker{display:inline-flex}:host::ng-deep .ace-line-group .numberingMarker span{align-self:end}:host::ng-deep .ace-text-layer>.ace-line,:host::ng-deep .ace-text-layer>.ace-line-group,:host::ng-deep .ace-edges-layer>.ace-line,:host::ng-deep .ace-edges-layer>.ace-line-group{contain:style size layout;position:absolute;top:0;left:0;right:0}:host::ng-deep .ace-text-layer>.ace-line-group:has(.focused){z-index:1}:host::ng-deep .ace-line-group:has(.lines-container>.ace-line:first-child>span:not(:empty)){align-items:baseline}:host::ng-deep .ace-cursor-layer{z-index:4}:host::ng-deep .ace-cursor-layer.selecting{display:none}:host::ng-deep .ace-cursor{z-index:4;position:absolute;box-sizing:border-box;border-left:2px solid;transform:translateZ(0)}:host::ng-deep .ace-hidden-cursors .ace-cursor{opacity:0}:host::ng-deep .ace-hidden-cursors{visibility:hidden}:host::ng-deep .ace-animate-blinking .ace-cursor{animation-duration:1s;animation-timing-function:step-end;animation-name:blink-ace-animate;animation-iteration-count:infinite}:host::ng-deep .ace-animate-blinking.ace-smooth-blinking .ace-cursor{animation-duration:1s;animation-timing-function:ease-in-out;animation-name:blink-ace-animate-smooth}@keyframes blink-ace-animate{0%,to{opacity:1}60%{opacity:0}}@keyframes blink-ace-animate-smooth{0%,to{opacity:1}45%{opacity:1}60%{opacity:0}85%{opacity:0}}:host::ng-deep .ace-selection-layer .ace-selection{position:absolute;z-index:5}:host::ng-deep .ace-selection-layer.text-selection .ace-selection{background-color:#5ea8f766}:host::ng-deep .ace-selection-layer.notes-highlight .ace-selection{background:#ff06}:host::ng-deep .ace-underline{text-decoration:underline}:host::ng-deep .ace-bold{font-weight:700}:host::ng-deep .ace-italic{font-style:italic}:host::ng-deep .page{width:100%;position:absolute}:host::ng-deep .page-label{position:absolute;top:40px;right:96px;font-family:Courier New,Courier,monospace;font-size:16px;line-height:1}:host::ng-deep .font-baseline{visibility:hidden;height:500px}:host::ng-deep .font-baseline span:after{content:\"\";height:100%;display:inline-block}:host::ng-deep .ruler-line{position:absolute;top:0;bottom:0;width:0;border-left:1px solid rgba(0,0,0,.4);opacity:.5;display:none;z-index:1}:host::ng-deep .ruler-line.visible{display:block}:host::ng-deep .drawer-container .mat-button-toggle-button{height:48px;border-radius:4px}:host::ng-deep .drawer-container .mat-button-toggle-checked button{height:48px;border-radius:4px}\n"], dependencies: [{ kind: "component", type: i6.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i6.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i6.MatDrawerContent, selector: "mat-drawer-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11335
11311
|
}
|
|
11336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
11312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorComponent, decorators: [{
|
|
11337
11313
|
type: Component,
|
|
11338
|
-
args: [{ selector: 'app-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container\n class=\"sidenav-container\"\n [hasBackdrop]=\"sidenavProperties.hasBackdrop\">\n <mat-drawer-content>\n <div class=\"container\">\n <div\n #container\n class=\"edit-container\"></div>\n
|
|
11314
|
+
args: [{ selector: 'app-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container\n class=\"sidenav-container\"\n [hasBackdrop]=\"sidenavProperties.hasBackdrop\">\n <mat-drawer-content>\n <div class=\"container\">\n <div\n #container\n class=\"edit-container\"></div>\n </div>\n </mat-drawer-content>\n <mat-drawer\n #drawer\n [autoFocus]=\"sidenavProperties.autoFocus\"\n [position]=\"sidenavProperties.position\"\n [mode]=\"sidenavProperties.mode\">\n <div\n #drawerContainer\n class=\"drawer-container\"></div>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}:host::ng-deep .ace-editor{position:relative;line-height:1;font-size:12pt;font-family:Courier New,Courier,monospace;text-align:left;width:100%;height:100%}:host::ng-deep .ace-scroller{position:absolute;overflow:hidden;top:0;bottom:0;-webkit-user-select:none;user-select:none;cursor:text}:host::ng-deep .ace-scrollbar{overflow:hidden scroll;contain:strict;position:absolute;right:0;bottom:0;z-index:6;top:0}:host::ng-deep .ace-scrollbar-inner{position:absolute;cursor:text;left:0;top:0}:host::ng-deep .ace-text-input{position:absolute;z-index:0;width:.5em;height:1em;opacity:0;background:transparent;appearance:none;border:none;resize:none;overflow:hidden;font:inherit;padding:0 1px;margin:0 -1px;contain:strict;-webkit-user-select:text;user-select:text}:host::ng-deep .ace-layer{z-index:1;position:absolute;word-wrap:normal;white-space:pre;height:100%;width:100%;box-sizing:border-box;pointer-events:none}:host::ng-deep .ace-text-layer{font:inherit!important;position:absolute;contain:style size layout;pointer-events:auto}:host::ng-deep .ace-edges-layer{z-index:2}:host::ng-deep .ace-line{display:flex;align-items:baseline;line-height:normal}:host::ng-deep .ace-line .hyperlink-hover{cursor:pointer}:host::ng-deep .ace-line>*{display:inline-block;font-kerning:none}:host::ng-deep .ace-line>*.paragraph-symbol{align-self:flex-end}:host::ng-deep .ace-content{position:inherit;box-sizing:border-box;min-width:100%;contain:style size layout;inset:0}:host::ng-deep .ace-line-group{display:inline-flex}:host::ng-deep .ace-line-group .lines-container{width:100%}:host::ng-deep .ace-line-group .numberingMarker{display:inline-flex}:host::ng-deep .ace-line-group .numberingMarker span{align-self:end}:host::ng-deep .ace-text-layer>.ace-line,:host::ng-deep .ace-text-layer>.ace-line-group,:host::ng-deep .ace-edges-layer>.ace-line,:host::ng-deep .ace-edges-layer>.ace-line-group{contain:style size layout;position:absolute;top:0;left:0;right:0}:host::ng-deep .ace-text-layer>.ace-line-group:has(.focused){z-index:1}:host::ng-deep .ace-line-group:has(.lines-container>.ace-line:first-child>span:not(:empty)){align-items:baseline}:host::ng-deep .ace-cursor-layer{z-index:4}:host::ng-deep .ace-cursor-layer.selecting{display:none}:host::ng-deep .ace-cursor{z-index:4;position:absolute;box-sizing:border-box;border-left:2px solid;transform:translateZ(0)}:host::ng-deep .ace-hidden-cursors .ace-cursor{opacity:0}:host::ng-deep .ace-hidden-cursors{visibility:hidden}:host::ng-deep .ace-animate-blinking .ace-cursor{animation-duration:1s;animation-timing-function:step-end;animation-name:blink-ace-animate;animation-iteration-count:infinite}:host::ng-deep .ace-animate-blinking.ace-smooth-blinking .ace-cursor{animation-duration:1s;animation-timing-function:ease-in-out;animation-name:blink-ace-animate-smooth}@keyframes blink-ace-animate{0%,to{opacity:1}60%{opacity:0}}@keyframes blink-ace-animate-smooth{0%,to{opacity:1}45%{opacity:1}60%{opacity:0}85%{opacity:0}}:host::ng-deep .ace-selection-layer .ace-selection{position:absolute;z-index:5}:host::ng-deep .ace-selection-layer.text-selection .ace-selection{background-color:#5ea8f766}:host::ng-deep .ace-selection-layer.notes-highlight .ace-selection{background:#ff06}:host::ng-deep .ace-underline{text-decoration:underline}:host::ng-deep .ace-bold{font-weight:700}:host::ng-deep .ace-italic{font-style:italic}:host::ng-deep .page{width:100%;position:absolute}:host::ng-deep .page-label{position:absolute;top:40px;right:96px;font-family:Courier New,Courier,monospace;font-size:16px;line-height:1}:host::ng-deep .font-baseline{visibility:hidden;height:500px}:host::ng-deep .font-baseline span:after{content:\"\";height:100%;display:inline-block}:host::ng-deep .ruler-line{position:absolute;top:0;bottom:0;width:0;border-left:1px solid rgba(0,0,0,.4);opacity:.5;display:none;z-index:1}:host::ng-deep .ruler-line.visible{display:block}:host::ng-deep .drawer-container .mat-button-toggle-button{height:48px;border-radius:4px}:host::ng-deep .drawer-container .mat-button-toggle-checked button{height:48px;border-radius:4px}\n"] }]
|
|
11339
11315
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: ComponentService }, { type: EditorService }, { type: i0.Injector }, { type: RegulatorService }, { type: CommandsService }, { type: i5.Clipboard }], propDecorators: { customPageWidth: [{
|
|
11340
11316
|
type: Input
|
|
11341
11317
|
}], content: [{
|
|
@@ -11379,9 +11355,8 @@ class EditorModule {
|
|
|
11379
11355
|
]
|
|
11380
11356
|
};
|
|
11381
11357
|
}
|
|
11382
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
11383
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
11384
|
-
ElementToolbarComponent,
|
|
11358
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11359
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: EditorModule, declarations: [EditorComponent,
|
|
11385
11360
|
NoderEdgeComponent,
|
|
11386
11361
|
NoderImageComponent,
|
|
11387
11362
|
NoderTabComponent,
|
|
@@ -11389,7 +11364,7 @@ class EditorModule {
|
|
|
11389
11364
|
NoderTableComponent,
|
|
11390
11365
|
ResizerComponent,
|
|
11391
11366
|
TableOverlayMenuComponent], imports: [CommonModule, MatButtonModule, MatDialogModule, MatIconModule, MatSidenavModule, MatTooltipModule, ReactiveFormsModule], exports: [EditorComponent] }); }
|
|
11392
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
11367
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorModule, providers: [
|
|
11393
11368
|
ComponentService,
|
|
11394
11369
|
CustomContentService,
|
|
11395
11370
|
ImageApiService,
|
|
@@ -11399,12 +11374,11 @@ class EditorModule {
|
|
|
11399
11374
|
CommandsService
|
|
11400
11375
|
], imports: [CommonModule, MatButtonModule, MatDialogModule, MatIconModule, MatSidenavModule, MatTooltipModule, ReactiveFormsModule] }); }
|
|
11401
11376
|
}
|
|
11402
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
11377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorModule, decorators: [{
|
|
11403
11378
|
type: NgModule,
|
|
11404
11379
|
args: [{
|
|
11405
11380
|
declarations: [
|
|
11406
11381
|
EditorComponent,
|
|
11407
|
-
ElementToolbarComponent,
|
|
11408
11382
|
NoderEdgeComponent,
|
|
11409
11383
|
NoderImageComponent,
|
|
11410
11384
|
NoderTabComponent,
|
|
@@ -11427,70 +11401,152 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
11427
11401
|
}]
|
|
11428
11402
|
}] });
|
|
11429
11403
|
|
|
11430
|
-
var
|
|
11431
|
-
(function (
|
|
11432
|
-
|
|
11433
|
-
|
|
11434
|
-
|
|
11435
|
-
|
|
11436
|
-
})(Alignment || (Alignment = {}));
|
|
11404
|
+
var Mode;
|
|
11405
|
+
(function (Mode) {
|
|
11406
|
+
Mode[Mode["Edit"] = 0] = "Edit";
|
|
11407
|
+
Mode[Mode["Fill"] = 1] = "Fill";
|
|
11408
|
+
Mode[Mode["View"] = 2] = "View";
|
|
11409
|
+
})(Mode || (Mode = {}));
|
|
11437
11410
|
|
|
11438
|
-
class
|
|
11439
|
-
|
|
11440
|
-
this.
|
|
11441
|
-
this.maxRows = 20;
|
|
11442
|
-
this.minRows = 5;
|
|
11443
|
-
this.maxColumns = 20;
|
|
11444
|
-
this.minColumns = 10;
|
|
11445
|
-
this.rows = Array(this.minRows)
|
|
11446
|
-
.fill(undefined)
|
|
11447
|
-
.map((_, i) => i + 1);
|
|
11448
|
-
this.columns = Array(this.minColumns)
|
|
11449
|
-
.fill(undefined)
|
|
11450
|
-
.map((_, i) => i + 1);
|
|
11451
|
-
this.currentRow = 1;
|
|
11452
|
-
this.currentColumn = 1;
|
|
11411
|
+
class EditorTitleComponent {
|
|
11412
|
+
set rename$(value) {
|
|
11413
|
+
value?.subscribe(() => this.setTitleActive(this.titleSpan.nativeElement));
|
|
11453
11414
|
}
|
|
11454
|
-
|
|
11455
|
-
this.
|
|
11415
|
+
constructor(cdr) {
|
|
11416
|
+
this.cdr = cdr;
|
|
11417
|
+
this.changeMode = new EventEmitter();
|
|
11418
|
+
this.renameDocumentTitle = new EventEmitter();
|
|
11419
|
+
this.selectedMode = Mode.Edit;
|
|
11420
|
+
this.modeOptions = [
|
|
11421
|
+
{
|
|
11422
|
+
id: Mode.Edit,
|
|
11423
|
+
text: 'Edit document',
|
|
11424
|
+
icon: 'icon-edit-mode'
|
|
11425
|
+
},
|
|
11426
|
+
{
|
|
11427
|
+
id: Mode.Fill,
|
|
11428
|
+
text: 'Fill or print document',
|
|
11429
|
+
icon: 'icon-fill-done'
|
|
11430
|
+
},
|
|
11431
|
+
{
|
|
11432
|
+
id: Mode.View,
|
|
11433
|
+
text: 'Read or print document',
|
|
11434
|
+
icon: 'icon-view'
|
|
11435
|
+
}
|
|
11436
|
+
];
|
|
11456
11437
|
}
|
|
11457
|
-
|
|
11458
|
-
|
|
11459
|
-
this.
|
|
11460
|
-
|
|
11461
|
-
this.
|
|
11438
|
+
onRenameTitle(event) {
|
|
11439
|
+
event.target.contentEditable = 'false';
|
|
11440
|
+
this.title = event.target.textContent || DEFAULT_FILE_NAME;
|
|
11441
|
+
event.target.innerText = this.title;
|
|
11442
|
+
this.renameDocumentTitle.emit(this.title);
|
|
11443
|
+
this.cdr.detectChanges();
|
|
11462
11444
|
}
|
|
11463
|
-
|
|
11464
|
-
|
|
11465
|
-
|
|
11466
|
-
|
|
11467
|
-
|
|
11468
|
-
|
|
11469
|
-
}
|
|
11470
|
-
else if (currentValue < arrayValues.length && arrayValues.length > minValue) {
|
|
11471
|
-
const count = currentValue <= minValue ? minValue + 1 : arrayValues.length - (arrayValues.length - currentValue) + 1;
|
|
11472
|
-
return Array(count)
|
|
11473
|
-
.fill(undefined)
|
|
11474
|
-
.map((_, i) => i + 1);
|
|
11445
|
+
onFocus(event) {
|
|
11446
|
+
this.setTitleActive(event.target);
|
|
11447
|
+
}
|
|
11448
|
+
setTitleActive(element) {
|
|
11449
|
+
if (element.contentEditable === 'true') {
|
|
11450
|
+
return;
|
|
11475
11451
|
}
|
|
11476
|
-
|
|
11452
|
+
element.contentEditable = 'true';
|
|
11453
|
+
const range = document.createRange();
|
|
11454
|
+
const sel = window.getSelection();
|
|
11455
|
+
range.setStart(element.firstChild, element.textContent.length);
|
|
11456
|
+
range.collapse(true);
|
|
11457
|
+
sel.removeAllRanges();
|
|
11458
|
+
sel.addRange(range);
|
|
11459
|
+
element.focus();
|
|
11477
11460
|
}
|
|
11478
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
11479
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
11461
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorTitleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11462
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorTitleComponent, isStandalone: true, selector: "app-editor-title", inputs: { title: "title", rename$: "rename$" }, outputs: { changeMode: "changeMode", renameDocumentTitle: "renameDocumentTitle" }, providers: [ExternalElementService], viewQueries: [{ propertyName: "titleSpan", first: true, predicate: ["titleSpan"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"menu-header\">\n <div class=\"file-name\">\n <span\n #titleSpan\n class=\"title\"\n matTooltip=\"Double click to rename\"\n (blur)=\"onRenameTitle($event)\"\n (keydown.enter)=\"$event.target.blur()\"\n (dblclick)=\"onFocus($event)\">\n {{ title }}\n </span>\n </div>\n</div>\n<div class=\"editor-mode\">\n <button\n *ngFor=\"let mode of modeOptions\"\n mat-icon-button\n [class.selected-mode]=\"selectedMode === mode.id\"\n [matTooltip]=\"mode.text\"\n (click)=\"selectedMode = mode.id; changeMode.emit(mode.id)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ mode.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{display:flex;position:relative;align-items:center;width:100%}.menu-header{width:35%;line-height:0;z-index:1}.file-name{display:block;margin:0 8px;overflow:hidden}.title{font-size:18px;font-weight:400;line-height:normal;outline:none;display:inline-block;white-space:nowrap;min-width:1px;overflow:hidden;max-width:100%;-webkit-user-select:none;user-select:none}.title:not(:focus){text-overflow:ellipsis}.editor-mode{display:flex;position:absolute;justify-content:center;width:100%}.mdc-icon-button{min-width:40px;min-height:40px;width:40px;height:40px;padding:8px}.mdc-icon-button:not(:first-child){margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatSelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11480
11463
|
}
|
|
11481
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
11464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorTitleComponent, decorators: [{
|
|
11482
11465
|
type: Component,
|
|
11483
|
-
args: [{ standalone: true, imports: [CommonModule],
|
|
11484
|
-
}], propDecorators: {
|
|
11466
|
+
args: [{ standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, MatSelectModule], providers: [ExternalElementService], selector: 'app-editor-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"menu-header\">\n <div class=\"file-name\">\n <span\n #titleSpan\n class=\"title\"\n matTooltip=\"Double click to rename\"\n (blur)=\"onRenameTitle($event)\"\n (keydown.enter)=\"$event.target.blur()\"\n (dblclick)=\"onFocus($event)\">\n {{ title }}\n </span>\n </div>\n</div>\n<div class=\"editor-mode\">\n <button\n *ngFor=\"let mode of modeOptions\"\n mat-icon-button\n [class.selected-mode]=\"selectedMode === mode.id\"\n [matTooltip]=\"mode.text\"\n (click)=\"selectedMode = mode.id; changeMode.emit(mode.id)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ mode.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{display:flex;position:relative;align-items:center;width:100%}.menu-header{width:35%;line-height:0;z-index:1}.file-name{display:block;margin:0 8px;overflow:hidden}.title{font-size:18px;font-weight:400;line-height:normal;outline:none;display:inline-block;white-space:nowrap;min-width:1px;overflow:hidden;max-width:100%;-webkit-user-select:none;user-select:none}.title:not(:focus){text-overflow:ellipsis}.editor-mode{display:flex;position:absolute;justify-content:center;width:100%}.mdc-icon-button{min-width:40px;min-height:40px;width:40px;height:40px;padding:8px}.mdc-icon-button:not(:first-child){margin-left:10px}\n"] }]
|
|
11467
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { title: [{
|
|
11468
|
+
type: Input
|
|
11469
|
+
}], rename$: [{
|
|
11470
|
+
type: Input
|
|
11471
|
+
}], changeMode: [{
|
|
11485
11472
|
type: Output
|
|
11473
|
+
}], renameDocumentTitle: [{
|
|
11474
|
+
type: Output
|
|
11475
|
+
}], titleSpan: [{
|
|
11476
|
+
type: ViewChild,
|
|
11477
|
+
args: ['titleSpan', { static: true }]
|
|
11486
11478
|
}] } });
|
|
11487
11479
|
|
|
11488
|
-
|
|
11489
|
-
(
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
|
|
11493
|
-
|
|
11480
|
+
class EditorSearchDialogComponent extends ObserverComponent {
|
|
11481
|
+
constructor(editorService) {
|
|
11482
|
+
super();
|
|
11483
|
+
this.editorService = editorService;
|
|
11484
|
+
this.searchControl = new FormControl('');
|
|
11485
|
+
this.replaceControl = new FormControl('');
|
|
11486
|
+
this.isReplace = false;
|
|
11487
|
+
this.searchIteration$ = this.editorService.searchIteration$;
|
|
11488
|
+
}
|
|
11489
|
+
ngOnInit() {
|
|
11490
|
+
this.subscriptions.push(this.searchSubscription());
|
|
11491
|
+
}
|
|
11492
|
+
onClose() {
|
|
11493
|
+
this.editorService.openSearchDialog = false;
|
|
11494
|
+
}
|
|
11495
|
+
findNext() {
|
|
11496
|
+
this.editorService.searchOptions = {
|
|
11497
|
+
term: this.searchControl.value,
|
|
11498
|
+
skipCurrent: true,
|
|
11499
|
+
backwards: false
|
|
11500
|
+
};
|
|
11501
|
+
}
|
|
11502
|
+
findPrev() {
|
|
11503
|
+
this.editorService.searchOptions = {
|
|
11504
|
+
term: this.searchControl.value,
|
|
11505
|
+
skipCurrent: true,
|
|
11506
|
+
backwards: true
|
|
11507
|
+
};
|
|
11508
|
+
}
|
|
11509
|
+
setReplace() {
|
|
11510
|
+
this.isReplace = !this.isReplace;
|
|
11511
|
+
}
|
|
11512
|
+
replace() {
|
|
11513
|
+
this.editorService.replace = { replaceValue: this.replaceControl.value, searchValue: this.searchControl.value };
|
|
11514
|
+
}
|
|
11515
|
+
searchSubscription() {
|
|
11516
|
+
return this.searchControl.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe(() => {
|
|
11517
|
+
this.editorService.searchOptions = {
|
|
11518
|
+
term: this.searchControl.value,
|
|
11519
|
+
skipCurrent: false,
|
|
11520
|
+
backwards: false
|
|
11521
|
+
};
|
|
11522
|
+
});
|
|
11523
|
+
}
|
|
11524
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorSearchDialogComponent, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11525
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorSearchDialogComponent, isStandalone: true, selector: "app-editor-search-dialog", providers: [ExternalElementService], usesInheritance: true, ngImport: i0, template: "<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Search for</mat-label>\n <input\n matInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findPrev()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onleft\"></mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findNext()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onright\"></mat-icon>\n </button>\n</div>\n<ng-container *ngIf=\"{ searchIteration: searchIteration$ | async } as data\">\n <div\n class=\"replace-form\"\n *ngIf=\"isReplace\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Replace with</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-button\n (click)=\"replace()\">\n Replace\n </button>\n </div>\n <div class=\"search-options\">\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-up' : 'icon-arrow-down' }}\"></mat-icon>\n </button>\n <div class=\"counter\">\n <span>{{ data.searchIteration?.current ?? 0 }} of {{ data.searchIteration?.total ?? 0 }}</span>\n </div>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Close\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{min-height:56px;max-width:100%;display:block;font-size:10px;padding:3px}.close-icon{position:absolute;right:1px;top:1px}.search-form,.replace-form,.search-options{display:flex}mat-form-field{padding-left:10px}.mdc-button{font-size:12px;padding:0 8px;min-width:unset}.search-options{line-height:40px}.search-options .counter{text-align:center;flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.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"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11526
|
+
}
|
|
11527
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorSearchDialogComponent, decorators: [{
|
|
11528
|
+
type: Component,
|
|
11529
|
+
args: [{ standalone: true, imports: [CommonModule, FormsModule, MatButtonModule, MatIconModule, MatInputModule, MatTooltipModule, ReactiveFormsModule], providers: [ExternalElementService], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-editor-search-dialog', template: "<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Search for</mat-label>\n <input\n matInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findPrev()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onleft\"></mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findNext()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onright\"></mat-icon>\n </button>\n</div>\n<ng-container *ngIf=\"{ searchIteration: searchIteration$ | async } as data\">\n <div\n class=\"replace-form\"\n *ngIf=\"isReplace\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Replace with</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-button\n (click)=\"replace()\">\n Replace\n </button>\n </div>\n <div class=\"search-options\">\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-up' : 'icon-arrow-down' }}\"></mat-icon>\n </button>\n <div class=\"counter\">\n <span>{{ data.searchIteration?.current ?? 0 }} of {{ data.searchIteration?.total ?? 0 }}</span>\n </div>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Close\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{min-height:56px;max-width:100%;display:block;font-size:10px;padding:3px}.close-icon{position:absolute;right:1px;top:1px}.search-form,.replace-form,.search-options{display:flex}mat-form-field{padding-left:10px}.mdc-button{font-size:12px;padding:0 8px;min-width:unset}.search-options{line-height:40px}.search-options .counter{text-align:center;flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}\n"] }]
|
|
11530
|
+
}], ctorParameters: () => [{ type: EditorService }] });
|
|
11531
|
+
|
|
11532
|
+
var Alignment;
|
|
11533
|
+
(function (Alignment) {
|
|
11534
|
+
Alignment[Alignment["Left"] = 0] = "Left";
|
|
11535
|
+
Alignment[Alignment["Center"] = 1] = "Center";
|
|
11536
|
+
Alignment[Alignment["Right"] = 2] = "Right";
|
|
11537
|
+
Alignment[Alignment["Justify"] = 3] = "Justify";
|
|
11538
|
+
})(Alignment || (Alignment = {}));
|
|
11539
|
+
|
|
11540
|
+
class NumberingLevelModel {
|
|
11541
|
+
constructor(fields) {
|
|
11542
|
+
if (fields) {
|
|
11543
|
+
if (fields.markerStyle) {
|
|
11544
|
+
fields.markerStyle = new TextStyleModel(fields.markerStyle);
|
|
11545
|
+
}
|
|
11546
|
+
Object.assign(this, fields);
|
|
11547
|
+
}
|
|
11548
|
+
}
|
|
11549
|
+
}
|
|
11494
11550
|
|
|
11495
11551
|
var NumberingTemplateType;
|
|
11496
11552
|
(function (NumberingTemplateType) {
|
|
@@ -11508,17 +11564,6 @@ var NumberingTemplateType;
|
|
|
11508
11564
|
NumberingTemplateType[NumberingTemplateType["NumberList6"] = 11] = "NumberList6";
|
|
11509
11565
|
})(NumberingTemplateType || (NumberingTemplateType = {}));
|
|
11510
11566
|
|
|
11511
|
-
class NumberingLevelModel {
|
|
11512
|
-
constructor(fields) {
|
|
11513
|
-
if (fields) {
|
|
11514
|
-
if (fields.markerStyle) {
|
|
11515
|
-
fields.markerStyle = new TextStyleModel(fields.markerStyle);
|
|
11516
|
-
}
|
|
11517
|
-
Object.assign(this, fields);
|
|
11518
|
-
}
|
|
11519
|
-
}
|
|
11520
|
-
}
|
|
11521
|
-
|
|
11522
11567
|
const NumberingTemplates = [
|
|
11523
11568
|
{
|
|
11524
11569
|
templateType: NumberingTemplateType.NumberList1,
|
|
@@ -12896,23 +12941,72 @@ class CustomIconService {
|
|
|
12896
12941
|
this.matIconRegistry.addSvgIconLiteral('number-5', this.sanitizer.bypassSecurityTrustHtml(SVG_NUMBER_5));
|
|
12897
12942
|
this.matIconRegistry.addSvgIconLiteral('number-6', this.sanitizer.bypassSecurityTrustHtml(SVG_NUMBER_6));
|
|
12898
12943
|
}
|
|
12899
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
12900
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
12944
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomIconService, deps: [{ token: i3.MatIconRegistry }, { token: i2$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12945
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomIconService, providedIn: 'any' }); }
|
|
12901
12946
|
}
|
|
12902
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
12947
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomIconService, decorators: [{
|
|
12903
12948
|
type: Injectable,
|
|
12904
12949
|
args: [{
|
|
12905
12950
|
providedIn: 'any'
|
|
12906
12951
|
}]
|
|
12907
|
-
}], ctorParameters: () => [{ type: i3.MatIconRegistry }, { type: i2$
|
|
12952
|
+
}], ctorParameters: () => [{ type: i3.MatIconRegistry }, { type: i2$3.DomSanitizer }] });
|
|
12908
12953
|
|
|
12909
|
-
class
|
|
12954
|
+
class InsertTableComponent {
|
|
12955
|
+
constructor() {
|
|
12956
|
+
this.selectSizes = new EventEmitter();
|
|
12957
|
+
this.maxRows = 20;
|
|
12958
|
+
this.minRows = 5;
|
|
12959
|
+
this.maxColumns = 20;
|
|
12960
|
+
this.minColumns = 10;
|
|
12961
|
+
this.rows = Array(this.minRows)
|
|
12962
|
+
.fill(undefined)
|
|
12963
|
+
.map((_, i) => i + 1);
|
|
12964
|
+
this.columns = Array(this.minColumns)
|
|
12965
|
+
.fill(undefined)
|
|
12966
|
+
.map((_, i) => i + 1);
|
|
12967
|
+
this.currentRow = 1;
|
|
12968
|
+
this.currentColumn = 1;
|
|
12969
|
+
}
|
|
12970
|
+
onCreateTable(rows, columns) {
|
|
12971
|
+
this.selectSizes.emit({ rows, columns });
|
|
12972
|
+
}
|
|
12973
|
+
onCellHover(row, column) {
|
|
12974
|
+
this.currentRow = row;
|
|
12975
|
+
this.currentColumn = column;
|
|
12976
|
+
this.rows = this.calculateArray(row, this.rows, this.minRows, this.maxRows);
|
|
12977
|
+
this.columns = this.calculateArray(column, this.columns, this.minColumns, this.maxColumns);
|
|
12978
|
+
}
|
|
12979
|
+
calculateArray(currentValue, arrayValues, minValue, maxValue) {
|
|
12980
|
+
if (currentValue >= arrayValues.length && currentValue <= maxValue) {
|
|
12981
|
+
const count = currentValue >= maxValue ? maxValue : arrayValues.length + 1;
|
|
12982
|
+
return Array(count)
|
|
12983
|
+
.fill(undefined)
|
|
12984
|
+
.map((_, i) => i + 1);
|
|
12985
|
+
}
|
|
12986
|
+
else if (currentValue < arrayValues.length && arrayValues.length > minValue) {
|
|
12987
|
+
const count = currentValue <= minValue ? minValue + 1 : arrayValues.length - (arrayValues.length - currentValue) + 1;
|
|
12988
|
+
return Array(count)
|
|
12989
|
+
.fill(undefined)
|
|
12990
|
+
.map((_, i) => i + 1);
|
|
12991
|
+
}
|
|
12992
|
+
return arrayValues;
|
|
12993
|
+
}
|
|
12994
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InsertTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12995
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: InsertTableComponent, isStandalone: true, selector: "app-insert-table", outputs: { selectSizes: "selectSizes" }, ngImport: i0, template: "<div class=\"table-size-container\">\n <ng-container *ngFor=\"let row of rows\">\n <div class=\"row\">\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"cell-container\"\n (mouseenter)=\"onCellHover(row, column)\"\n (click)=\"onCreateTable(row, column)\">\n <div\n class=\"cell\"\n [class.highlighted]=\"row <= currentRow && column <= currentColumn\"></div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"table-size\">{{ currentColumn }} x {{ currentRow }}</div>\n</div>\n", styles: [":host{border-radius:4px}.table-size-container{padding:14px 10px 8px}.row{display:flex;flex-direction:row}.cell-container{padding:2px}.cell{height:16px;width:16px}.table-size{display:flex;justify-content:center;padding-top:14px;font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12996
|
+
}
|
|
12997
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InsertTableComponent, decorators: [{
|
|
12998
|
+
type: Component,
|
|
12999
|
+
args: [{ standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-insert-table', template: "<div class=\"table-size-container\">\n <ng-container *ngFor=\"let row of rows\">\n <div class=\"row\">\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"cell-container\"\n (mouseenter)=\"onCellHover(row, column)\"\n (click)=\"onCreateTable(row, column)\">\n <div\n class=\"cell\"\n [class.highlighted]=\"row <= currentRow && column <= currentColumn\"></div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"table-size\">{{ currentColumn }} x {{ currentRow }}</div>\n</div>\n", styles: [":host{border-radius:4px}.table-size-container{padding:14px 10px 8px}.row{display:flex;flex-direction:row}.cell-container{padding:2px}.cell{height:16px;width:16px}.table-size{display:flex;justify-content:center;padding-top:14px;font-size:14px}\n"] }]
|
|
13000
|
+
}], propDecorators: { selectSizes: [{
|
|
13001
|
+
type: Output
|
|
13002
|
+
}] } });
|
|
13003
|
+
|
|
13004
|
+
class MenuDropdownsComponent {
|
|
12910
13005
|
set historyInfo(value) {
|
|
12911
13006
|
this.canUndo = value.step !== -1;
|
|
12912
13007
|
this.canRedo = value.step < value.lastStep;
|
|
12913
13008
|
}
|
|
12914
13009
|
set styles(value) {
|
|
12915
|
-
this._styles = value;
|
|
12916
13010
|
this._styles = value;
|
|
12917
13011
|
this.numberingTemplateType = ToolbarStylesHelper.getNumberingTemplateType(value.numberingLevelsStyles);
|
|
12918
13012
|
}
|
|
@@ -12930,12 +13024,11 @@ class EditorHeaderComponent {
|
|
|
12930
13024
|
this.insertPageBreak = new EventEmitter();
|
|
12931
13025
|
this.createDocument = new EventEmitter();
|
|
12932
13026
|
this.insertImage = new EventEmitter();
|
|
12933
|
-
this.
|
|
12934
|
-
this.renameDocumentTitle = new EventEmitter();
|
|
13027
|
+
this.rename = new EventEmitter();
|
|
12935
13028
|
this.delete = new EventEmitter();
|
|
12936
13029
|
this.openEditMenu = new EventEmitter();
|
|
12937
|
-
this.undo = new EventEmitter();
|
|
12938
13030
|
this.redo = new EventEmitter();
|
|
13031
|
+
this.undo = new EventEmitter();
|
|
12939
13032
|
this.cutSelected = new EventEmitter();
|
|
12940
13033
|
this.copySelected = new EventEmitter();
|
|
12941
13034
|
this.pasteClipboardData = new EventEmitter();
|
|
@@ -12948,31 +13041,9 @@ class EditorHeaderComponent {
|
|
|
12948
13041
|
this.setNumberingTemplateType = new EventEmitter();
|
|
12949
13042
|
this.removeNumberings = new EventEmitter();
|
|
12950
13043
|
this.insertTable = new EventEmitter();
|
|
12951
|
-
this.mode = Mode;
|
|
12952
|
-
this.alignments = Alignment;
|
|
12953
|
-
this.selectedMode = Mode.Edit;
|
|
12954
13044
|
this.numberingTemplateTypes = NumberingTemplateType;
|
|
12955
|
-
this.modeOptions = [
|
|
12956
|
-
{
|
|
12957
|
-
id: Mode.Edit,
|
|
12958
|
-
name: 'Editing',
|
|
12959
|
-
text: 'Edit document',
|
|
12960
|
-
icon: 'icon-edit'
|
|
12961
|
-
},
|
|
12962
|
-
{
|
|
12963
|
-
id: Mode.Fill,
|
|
12964
|
-
name: 'Filling',
|
|
12965
|
-
text: 'Fill or print document',
|
|
12966
|
-
icon: 'icon-fill-done'
|
|
12967
|
-
},
|
|
12968
|
-
{
|
|
12969
|
-
id: Mode.View,
|
|
12970
|
-
name: 'Viewing',
|
|
12971
|
-
text: 'Read or print document',
|
|
12972
|
-
icon: 'icon-view'
|
|
12973
|
-
}
|
|
12974
|
-
];
|
|
12975
13045
|
this.showInsertTableMenu = false;
|
|
13046
|
+
this.alignments = Alignment;
|
|
12976
13047
|
this.customIconService.register();
|
|
12977
13048
|
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
12978
13049
|
}
|
|
@@ -12980,59 +13051,10 @@ class EditorHeaderComponent {
|
|
|
12980
13051
|
this.openFileFromDisk.emit(event);
|
|
12981
13052
|
event.target.value = null;
|
|
12982
13053
|
}
|
|
12983
|
-
onSaveAs() {
|
|
12984
|
-
this.saveAs.emit();
|
|
12985
|
-
}
|
|
12986
|
-
onPrint() {
|
|
12987
|
-
this.print.emit();
|
|
12988
|
-
}
|
|
12989
|
-
onDelete() {
|
|
12990
|
-
this.delete.emit();
|
|
12991
|
-
}
|
|
12992
13054
|
onInsertImage(event) {
|
|
12993
13055
|
this.insertImage.emit(event);
|
|
12994
13056
|
event.target.value = null;
|
|
12995
13057
|
}
|
|
12996
|
-
onInsertLink() {
|
|
12997
|
-
this.insertLink.emit();
|
|
12998
|
-
}
|
|
12999
|
-
onRenameTitle(event) {
|
|
13000
|
-
event.target.contentEditable = 'false';
|
|
13001
|
-
this.title = event.target.textContent || DEFAULT_FILE_NAME;
|
|
13002
|
-
event.target.innerText = this.title;
|
|
13003
|
-
this.renameDocumentTitle.emit(this.title);
|
|
13004
|
-
this.cdr.detectChanges();
|
|
13005
|
-
}
|
|
13006
|
-
onRename() {
|
|
13007
|
-
this.setTitleActive(this.titleSpan.nativeElement);
|
|
13008
|
-
}
|
|
13009
|
-
onFocus(event) {
|
|
13010
|
-
this.setTitleActive(event.target);
|
|
13011
|
-
}
|
|
13012
|
-
menuOpened() {
|
|
13013
|
-
this.openEditMenu.emit();
|
|
13014
|
-
}
|
|
13015
|
-
onUndo() {
|
|
13016
|
-
this.undo.emit();
|
|
13017
|
-
}
|
|
13018
|
-
onRedo() {
|
|
13019
|
-
this.redo.emit();
|
|
13020
|
-
}
|
|
13021
|
-
onCut() {
|
|
13022
|
-
this.cutSelected.emit();
|
|
13023
|
-
}
|
|
13024
|
-
onCopy() {
|
|
13025
|
-
this.copySelected.emit();
|
|
13026
|
-
}
|
|
13027
|
-
onPaste() {
|
|
13028
|
-
this.pasteClipboardData.emit();
|
|
13029
|
-
}
|
|
13030
|
-
onSelectAll() {
|
|
13031
|
-
this.selectAll.emit();
|
|
13032
|
-
}
|
|
13033
|
-
onRemoveSelected() {
|
|
13034
|
-
this.removeSelected.emit();
|
|
13035
|
-
}
|
|
13036
13058
|
onSelectFormat(alignment) {
|
|
13037
13059
|
this.changeParagraphStyle.emit(new ParagraphStyleModel({ alignment }));
|
|
13038
13060
|
}
|
|
@@ -13057,24 +13079,19 @@ class EditorHeaderComponent {
|
|
|
13057
13079
|
this.setNumberingTemplateType.emit(templateLevels);
|
|
13058
13080
|
}
|
|
13059
13081
|
}
|
|
13082
|
+
onTableInsertMenuClosed() {
|
|
13083
|
+
this.tableInsertMenu._animationDone
|
|
13084
|
+
.pipe(filter(e => e.toState === 'void'), take(1))
|
|
13085
|
+
.subscribe(() => {
|
|
13086
|
+
this.showInsertTableMenu = false;
|
|
13087
|
+
this.cdr.markForCheck();
|
|
13088
|
+
});
|
|
13089
|
+
}
|
|
13060
13090
|
async onCreate(model) {
|
|
13061
13091
|
const data = await model.factoryMethod();
|
|
13062
13092
|
const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
|
|
13063
13093
|
this.createElement.emit(element);
|
|
13064
13094
|
}
|
|
13065
|
-
setTitleActive(element) {
|
|
13066
|
-
if (element.contentEditable === 'true') {
|
|
13067
|
-
return;
|
|
13068
|
-
}
|
|
13069
|
-
element.contentEditable = 'true';
|
|
13070
|
-
const range = document.createRange();
|
|
13071
|
-
const sel = window.getSelection();
|
|
13072
|
-
range.setStart(element.firstChild, element.textContent.length);
|
|
13073
|
-
range.collapse(true);
|
|
13074
|
-
sel.removeAllRanges();
|
|
13075
|
-
sel.addRange(range);
|
|
13076
|
-
element.focus();
|
|
13077
|
-
}
|
|
13078
13095
|
checkFontLoadedAndApplyStyle(style) {
|
|
13079
13096
|
const newStyles = { ...this.styles, ...style };
|
|
13080
13097
|
const italic = newStyles.italic ? 'italic ' : '';
|
|
@@ -13091,41 +13108,22 @@ class EditorHeaderComponent {
|
|
|
13091
13108
|
// continue regardless of error
|
|
13092
13109
|
});
|
|
13093
13110
|
}
|
|
13094
|
-
|
|
13095
|
-
this.tableInsertMenu._animationDone
|
|
13096
|
-
.pipe(filter(e => e.toState === 'void'), take(1))
|
|
13097
|
-
.subscribe(() => {
|
|
13098
|
-
this.showInsertTableMenu = false;
|
|
13099
|
-
this.cdr.markForCheck();
|
|
13100
|
-
});
|
|
13101
|
-
}
|
|
13102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditorHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: CustomIconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13103
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: EditorHeaderComponent, isStandalone: true, selector: "app-editor-header", inputs: { isViewOnly: "isViewOnly", hasSelection: "hasSelection", clipboardData: "clipboardData", title: "title", historyInfo: "historyInfo", styles: "styles" }, outputs: { openFileFromDisk: "openFileFromDisk", addCustomElement: "addCustomElement", saveAs: "saveAs", print: "print", insertPageBreak: "insertPageBreak", createDocument: "createDocument", insertImage: "insertImage", changeMode: "changeMode", renameDocumentTitle: "renameDocumentTitle", delete: "delete", openEditMenu: "openEditMenu", undo: "undo", redo: "redo", cutSelected: "cutSelected", copySelected: "copySelected", pasteClipboardData: "pasteClipboardData", selectAll: "selectAll", removeSelected: "removeSelected", insertLink: "insertLink", createElement: "createElement", changeParagraphStyle: "changeParagraphStyle", changeTextStyle: "changeTextStyle", setNumberingTemplateType: "setNumberingTemplateType", removeNumberings: "removeNumberings", insertTable: "insertTable" }, providers: [ExternalElementService], viewQueries: [{ propertyName: "titleSpan", first: true, predicate: ["titleSpan"], descendants: true, static: true }, { propertyName: "tableInsertMenu", first: true, predicate: ["tableInsert"], descendants: true }], ngImport: i0, template: "<div class=\"menu-header\">\n <div class=\"file-name\">\n <span\n #titleSpan\n class=\"title\"\n matTooltip=\"Double click to rename\"\n (blur)=\"onRenameTitle($event)\"\n (keydown.enter)=\"$event.target.blur()\"\n (dblclick)=\"onFocus($event)\">\n {{ title }}\n </span>\n </div>\n <div class=\"menu-buttons\">\n <button\n id=\"editor-header-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n </button>\n <mat-menu #fileMenu=\"matMenu\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-save-as\"\n mat-menu-item\n (click)=\"onSaveAs()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-rename\"\n mat-menu-item\n (click)=\"onRename()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-print\"\n mat-menu-item\n (click)=\"onPrint()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-delete\"\n mat-menu-item\n (click)=\"onDelete()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"editor-header-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"menuOpened()\">\n Edit\n </button>\n <mat-menu #editMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"onUndo()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"onRedo()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"onCut()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"onCopy()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"onPaste()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-select-all\"\n mat-menu-item\n (click)=\"onSelectAll()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"onRemoveSelected()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n </mat-menu>\n <button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"editor-header-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n </button>\n <mat-menu #insertMenu=\"matMenu\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"editor-header-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <button\n id=\"editor-header-menu-item-link\"\n mat-menu-item\n (click)=\"onInsertLink()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"editor-header-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu #listHeadersFootersMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n </mat-menu>\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n </button>\n <mat-menu #layoutMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n </mat-menu>\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n </button>\n <mat-menu #formatMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu #listAlignMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu #listBulletsNumberingMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu #listTextMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n </mat-menu>\n <mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n </mat-menu>\n </div>\n</div>\n\n<div class=\"editor-mode\">\n <mat-form-field appearance=\"outline\">\n <mat-select\n [(value)]=\"selectedMode\"\n (selectionChange)=\"changeMode.emit($event)\">\n <mat-select-trigger>\n <div class=\"select-trigger\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ modeOptions[selectedMode].icon }}\"></mat-icon>\n <span class=\"item-title\">{{ modeOptions[selectedMode].name }}</span>\n <div class=\"separator\"></div>\n </div>\n </mat-select-trigger>\n <mat-option\n *ngFor=\"let mode of modeOptions\"\n class=\"editor-mode-option\"\n [value]=\"mode.id\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ mode.icon }}\"></mat-icon>\n <div class=\"item-content\">\n <span class=\"item-title\">{{ mode.name }}</span>\n <span class=\"item-text\">{{ mode.text }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", styles: [":host{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 24px}:host .mat-mdc-form-field{width:auto;height:24px;text-align:right}:host .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host .mat-mdc-form-field ::ng-deep .mat-mdc-text-field-wrapper{align-items:center}:host .mat-mdc-form-field ::ng-deep .mdc-notched-outline>*{border:unset}:host .mat-mdc-form-field ::ng-deep .mat-mdc-select-value{margin-right:4px}:host .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-infix{padding:0;width:auto}:host .mat-mdc-form-field ::ng-deep .mat-mdc-select-arrow svg{top:0}:host .mat-mdc-form-field .mat-mdc-select{font-size:14px;font-weight:700}.upload-input{display:none}mat-icon{width:24px;height:24px;font-size:24px}.editor-mode{display:flex;justify-content:flex-end;align-items:center;overflow:hidden;height:40px;border:1px solid;border-radius:20px}::ng-deep .cdk-overlay-pane{min-width:min-content}.separator{border-left:1px solid;opacity:.1;height:18px;margin:2px 8px}.select-trigger{display:inline-flex;text-align:left;margin-top:1px}.select-trigger .mat-icon{width:32px}.item-content{display:grid}.item-content .item-title{line-height:6px;padding-top:10px}.item-content .item-text{font-size:10px;font-weight:400;text-wrap:nowrap}.menu-buttons{display:flex;flex-wrap:wrap}.menu-buttons button{font-weight:500;height:24px;min-width:unset}.menu-header{display:flex;flex-direction:column;flex:1;overflow:hidden}.file-name{flex-basis:0;margin:0 8px 6px;display:block;min-height:32px;overflow:hidden}.file-name .title{font-size:18px;font-weight:500;line-height:normal;outline:none;display:inline-block;white-space:nowrap;min-width:1px;min-height:32px;overflow:hidden;max-width:100%;-webkit-user-select:none;user-select:none}.file-name .title:not(:focus){text-overflow:ellipsis}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}#editor-header-menu-item-print,#editor-header-menu-item-redo,#editor-header-menu-item-paste,#editor-header-menu-item-link,#editor-header-menu-item-image{border-bottom:1px solid}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-number .selected,.list-icon .selected:hover,.list-number .selected:hover{border:2px solid}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: InsertTableComponent, selector: "app-insert-table", outputs: ["selectSizes"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuDropdownsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: CustomIconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuDropdownsComponent, selector: "app-menu-dropdowns", inputs: { isViewOnly: "isViewOnly", hasSelection: "hasSelection", clipboardData: "clipboardData", historyInfo: "historyInfo", styles: "styles" }, outputs: { openFileFromDisk: "openFileFromDisk", addCustomElement: "addCustomElement", saveAs: "saveAs", print: "print", insertPageBreak: "insertPageBreak", createDocument: "createDocument", insertImage: "insertImage", rename: "rename", delete: "delete", openEditMenu: "openEditMenu", redo: "redo", undo: "undo", cutSelected: "cutSelected", copySelected: "copySelected", pasteClipboardData: "pasteClipboardData", selectAll: "selectAll", removeSelected: "removeSelected", insertLink: "insertLink", createElement: "createElement", changeParagraphStyle: "changeParagraphStyle", changeTextStyle: "changeTextStyle", setNumberingTemplateType: "setNumberingTemplateType", removeNumberings: "removeNumberings", insertTable: "insertTable" }, viewQueries: [{ propertyName: "tableInsertMenu", first: true, predicate: ["tableInsert"], descendants: true }], ngImport: i0, template: "<button\n id=\"menu-dropdowns-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n</button>\n<mat-menu\n #fileMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-save-as\"\n mat-menu-item\n (click)=\"saveAs.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-rename\"\n mat-menu-item\n (click)=\"rename.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-print\"\n mat-menu-item\n (click)=\"print.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete\"\n mat-menu-item\n (click)=\"delete.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n id=\"menu-dropdowns-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"openEditMenu.emit()\">\n Edit\n</button>\n<mat-menu\n #editMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"cutSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"copySelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"pasteClipboardData.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-select-all\"\n mat-menu-item\n (click)=\"selectAll.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"removeSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"menu-dropdowns-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n</button>\n<mat-menu\n #insertMenu=\"matMenu\"\n class=\"noder-modal\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"menu-dropdowns-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-link\"\n mat-menu-item\n (click)=\"insertLink.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu\n #listHeadersFootersMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n</button>\n<mat-menu\n #layoutMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n</button>\n<mat-menu\n #formatMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu\n #listAlignMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu\n #listBulletsNumberingMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu\n #listTextMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n</mat-menu>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;height:100%}.upload-input{display:none}.menu-buttons mat-icon{width:24px;height:24px;font-size:24px}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-icon .selected:hover,.list-number .selected,.list-number .selected:hover{border-width:2px;border-style:solid}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InsertTableComponent, selector: "app-insert-table", outputs: ["selectSizes"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13104
13113
|
}
|
|
13105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuDropdownsComponent, decorators: [{
|
|
13106
13115
|
type: Component,
|
|
13107
|
-
args: [{ standalone: true, imports: [
|
|
13108
|
-
CommonModule,
|
|
13109
|
-
FormsModule,
|
|
13110
|
-
InsertTableComponent,
|
|
13111
|
-
MatButtonModule,
|
|
13112
|
-
MatFormFieldModule,
|
|
13113
|
-
MatIconModule,
|
|
13114
|
-
MatInputModule,
|
|
13115
|
-
MatMenuModule,
|
|
13116
|
-
MatSelectModule,
|
|
13117
|
-
MatTooltipModule
|
|
13118
|
-
], providers: [ExternalElementService], selector: 'app-editor-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"menu-header\">\n <div class=\"file-name\">\n <span\n #titleSpan\n class=\"title\"\n matTooltip=\"Double click to rename\"\n (blur)=\"onRenameTitle($event)\"\n (keydown.enter)=\"$event.target.blur()\"\n (dblclick)=\"onFocus($event)\">\n {{ title }}\n </span>\n </div>\n <div class=\"menu-buttons\">\n <button\n id=\"editor-header-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n </button>\n <mat-menu #fileMenu=\"matMenu\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-save-as\"\n mat-menu-item\n (click)=\"onSaveAs()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-rename\"\n mat-menu-item\n (click)=\"onRename()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-print\"\n mat-menu-item\n (click)=\"onPrint()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-delete\"\n mat-menu-item\n (click)=\"onDelete()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"editor-header-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"menuOpened()\">\n Edit\n </button>\n <mat-menu #editMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"onUndo()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"onRedo()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"onCut()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"onCopy()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"onPaste()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-select-all\"\n mat-menu-item\n (click)=\"onSelectAll()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"onRemoveSelected()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n </mat-menu>\n <button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"editor-header-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n </button>\n <mat-menu #insertMenu=\"matMenu\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"editor-header-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <button\n id=\"editor-header-menu-item-link\"\n mat-menu-item\n (click)=\"onInsertLink()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"editor-header-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu #listHeadersFootersMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n </mat-menu>\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n </button>\n <mat-menu #layoutMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n </mat-menu>\n <button\n *ngIf=\"!isViewOnly\"\n id=\"editor-header-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n </button>\n <mat-menu #formatMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu #listAlignMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu #listBulletsNumberingMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu #listTextMenu=\"matMenu\">\n <button\n id=\"editor-header-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"editor-header-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"editor-header-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n </mat-menu>\n <mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n </mat-menu>\n </div>\n</div>\n\n<div class=\"editor-mode\">\n <mat-form-field appearance=\"outline\">\n <mat-select\n [(value)]=\"selectedMode\"\n (selectionChange)=\"changeMode.emit($event)\">\n <mat-select-trigger>\n <div class=\"select-trigger\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ modeOptions[selectedMode].icon }}\"></mat-icon>\n <span class=\"item-title\">{{ modeOptions[selectedMode].name }}</span>\n <div class=\"separator\"></div>\n </div>\n </mat-select-trigger>\n <mat-option\n *ngFor=\"let mode of modeOptions\"\n class=\"editor-mode-option\"\n [value]=\"mode.id\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ mode.icon }}\"></mat-icon>\n <div class=\"item-content\">\n <span class=\"item-title\">{{ mode.name }}</span>\n <span class=\"item-text\">{{ mode.text }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", styles: [":host{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 24px}:host .mat-mdc-form-field{width:auto;height:24px;text-align:right}:host .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host .mat-mdc-form-field ::ng-deep .mat-mdc-text-field-wrapper{align-items:center}:host .mat-mdc-form-field ::ng-deep .mdc-notched-outline>*{border:unset}:host .mat-mdc-form-field ::ng-deep .mat-mdc-select-value{margin-right:4px}:host .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-infix{padding:0;width:auto}:host .mat-mdc-form-field ::ng-deep .mat-mdc-select-arrow svg{top:0}:host .mat-mdc-form-field .mat-mdc-select{font-size:14px;font-weight:700}.upload-input{display:none}mat-icon{width:24px;height:24px;font-size:24px}.editor-mode{display:flex;justify-content:flex-end;align-items:center;overflow:hidden;height:40px;border:1px solid;border-radius:20px}::ng-deep .cdk-overlay-pane{min-width:min-content}.separator{border-left:1px solid;opacity:.1;height:18px;margin:2px 8px}.select-trigger{display:inline-flex;text-align:left;margin-top:1px}.select-trigger .mat-icon{width:32px}.item-content{display:grid}.item-content .item-title{line-height:6px;padding-top:10px}.item-content .item-text{font-size:10px;font-weight:400;text-wrap:nowrap}.menu-buttons{display:flex;flex-wrap:wrap}.menu-buttons button{font-weight:500;height:24px;min-width:unset}.menu-header{display:flex;flex-direction:column;flex:1;overflow:hidden}.file-name{flex-basis:0;margin:0 8px 6px;display:block;min-height:32px;overflow:hidden}.file-name .title{font-size:18px;font-weight:500;line-height:normal;outline:none;display:inline-block;white-space:nowrap;min-width:1px;min-height:32px;overflow:hidden;max-width:100%;-webkit-user-select:none;user-select:none}.file-name .title:not(:focus){text-overflow:ellipsis}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}#editor-header-menu-item-print,#editor-header-menu-item-redo,#editor-header-menu-item-paste,#editor-header-menu-item-link,#editor-header-menu-item-image{border-bottom:1px solid}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-number .selected,.list-icon .selected:hover,.list-number .selected:hover{border:2px solid}\n"] }]
|
|
13116
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-menu-dropdowns', template: "<button\n id=\"menu-dropdowns-menu-file\"\n mat-button\n [matMenuTriggerFor]=\"fileMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n File\n</button>\n<mat-menu\n #fileMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-new\"\n mat-menu-item\n (click)=\"createDocument.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add-new\"></mat-icon>\n <span class=\"menu-item-text\">New</span>\n </div>\n </button>\n <input\n #fileInput\n class=\"upload-input\"\n accept=\".docx\"\n type=\"file\"\n id=\"file-input\"\n (change)=\"onOpenFileFromDisk($event)\" />\n <button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-item-open-from\"\n mat-menu-item\n (click)=\"fileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-open-from\"></mat-icon>\n <span class=\"menu-item-text\">Open From</span>\n <span class=\"hot-keys\">Ctrl+O</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-save-as\"\n mat-menu-item\n (click)=\"saveAs.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-save\"></mat-icon>\n <span class=\"menu-item-text\">Save As</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-rename\"\n mat-menu-item\n (click)=\"rename.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-rename\"></mat-icon>\n <span class=\"menu-item-text\">Rename</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-print\"\n mat-menu-item\n (click)=\"print.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n <span class=\"menu-item-text\">Print</span>\n <span class=\"hot-keys\">Ctrl+P</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete\"\n mat-menu-item\n (click)=\"delete.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n id=\"menu-dropdowns-menu-edit\"\n mat-button\n [matMenuTriggerFor]=\"editMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n (menuOpened)=\"openEditMenu.emit()\">\n Edit\n</button>\n<mat-menu\n #editMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-undo\"\n mat-menu-item\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n <span class=\"menu-item-text\">Undo</span>\n <span class=\"hot-keys\">Ctrl+Z</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-redo\"\n mat-menu-item\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n <span class=\"menu-item-text\">Redo</span>\n <span class=\"hot-keys\">Ctrl+Y</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-cut\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"cutSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-cut\"></mat-icon>\n <span class=\"menu-item-text\">Cut</span>\n <span class=\"hot-keys\">Ctrl+X</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-copy\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"copySelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-file-copy\"></mat-icon>\n <span class=\"menu-item-text\">Copy</span>\n <span class=\"hot-keys\">Ctrl+C</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-paste\"\n mat-menu-item\n [disabled]=\"!clipboardData?.length\"\n (click)=\"pasteClipboardData.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-content-paste\"></mat-icon>\n <span class=\"menu-item-text\">Paste</span>\n <span class=\"hot-keys\">Ctrl+V</span>\n </div>\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-select-all\"\n mat-menu-item\n (click)=\"selectAll.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-select-all\"></mat-icon>\n <span class=\"menu-item-text\">Select All</span>\n <span class=\"hot-keys\">Ctrl+A</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-delete-text\"\n mat-menu-item\n [disabled]=\"!hasSelection\"\n (click)=\"removeSelected.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n <span class=\"menu-item-text\">Delete</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n #insertMenuTrigger=\"matMenuTrigger\"\n id=\"menu-dropdowns-menu-insert\"\n mat-button\n [matMenuTriggerFor]=\"insertMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Insert\n</button>\n<mat-menu\n #insertMenu=\"matMenu\"\n class=\"noder-modal\">\n <input\n #imageFileInput\n class=\"upload-input\"\n accept=\"image/gif, image/jpeg, image/png, image/bmp, image/webp\"\n type=\"file\"\n id=\"image-file-input\"\n (change)=\"onInsertImage($event)\" />\n <button\n id=\"menu-dropdowns-menu-item-image\"\n mat-menu-item\n (click)=\"imageFileInput.click()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-image\"></mat-icon>\n <span class=\"menu-item-text\">Image</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-table\"\n mat-menu-item\n [matMenuTriggerFor]=\"tableInsert\"\n (menuOpened)=\"showInsertTableMenu = true\"\n (menuClosed)=\"onTableInsertMenuClosed()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-table\"></mat-icon>\n Table\n </button>\n <hr class=\"noder-divider\" />\n <button\n id=\"menu-dropdowns-menu-item-link\"\n mat-menu-item\n (click)=\"insertLink.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-link-on\"></mat-icon>\n <span class=\"menu-item-text\">Link</span>\n <span class=\"hot-keys\">Ctrl+K</span>\n </div>\n </button>\n <button\n *ngFor=\"let element of elements\"\n id=\"menu-dropdowns-menu-item-{{ element.title }}\"\n mat-menu-item\n (click)=\"onCreate(element)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n <span class=\"menu-item-text\">{{ element.name }}</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-headers-footers\"\n mat-menu-item\n class=\"hidden\"\n [matMenuTriggerFor]=\"listHeadersFootersMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n <mat-menu\n #listHeadersFootersMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-header\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-header\"></mat-icon>\n <span class=\"menu-item-text\">Header</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-footer\"\n mat-menu-item>\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-bottom\"></mat-icon>\n <span class=\"menu-item-text\">Footer</span>\n </div>\n </button>\n </mat-menu>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-layout\"\n mat-button\n [matMenuTriggerFor]=\"layoutMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Layout\n</button>\n<mat-menu\n #layoutMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-page-break\"\n mat-menu-item\n (click)=\"insertPageBreak.emit()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-page-break\"></mat-icon>\n <span class=\"menu-item-text\">Page Break</span>\n <span class=\"hot-keys\">Ctrl+Enter</span>\n </div>\n </button>\n</mat-menu>\n<button\n *ngIf=\"!isViewOnly\"\n id=\"menu-dropdowns-menu-format\"\n mat-button\n [matMenuTriggerFor]=\"formatMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n Format\n</button>\n<mat-menu\n #formatMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align\"\n mat-menu-item\n [matMenuTriggerFor]=\"listAlignMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Align</span>\n </div>\n </button>\n <mat-menu\n #listAlignMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-align-left\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Left)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n <span class=\"menu-item-text\">Left</span>\n <span class=\"hot-keys\">Ctrl+L</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-center\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Center)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n <span class=\"menu-item-text\">Center</span>\n <span class=\"hot-keys\">Ctrl+E</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-align-right\"\n mat-menu-item\n (click)=\"onSelectFormat(alignments.Right)\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n <span class=\"menu-item-text\">Right</span>\n <span class=\"hot-keys\">Ctrl+R</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-bullets-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletsNumberingMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullets & Numbering</span>\n </div>\n </button>\n <mat-menu\n #listBulletsNumberingMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bullets\"\n mat-menu-item\n [matMenuTriggerFor]=\"listBulletedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n <span class=\"menu-item-text\">Bullet List Menu</span>\n </div>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.BulletList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.BulletList6)\"></mat-icon>\n </div>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-numbering\"\n mat-menu-item\n [matMenuTriggerFor]=\"listNumberedMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n <span class=\"menu-item-text\">Numbered List Menu</span>\n </div>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList1)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList2)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList3)\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList4)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList5)\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n [class.selected]=\"numberingTemplateType === numberingTemplateTypes.NumberList6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateTypes.NumberList6)\"></mat-icon>\n </div>\n </mat-menu>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-text\"\n mat-menu-item\n [matMenuTriggerFor]=\"listTextMenu\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Text</span>\n </div>\n </button>\n <mat-menu\n #listTextMenu=\"matMenu\"\n class=\"noder-modal\">\n <button\n id=\"menu-dropdowns-menu-item-bold\"\n mat-menu-item\n (click)=\"onApplyBold()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n <span class=\"menu-item-text\">Bold</span>\n <span class=\"hot-keys\">Ctrl+B</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-italic\"\n mat-menu-item\n (click)=\"onApplyItalic()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n <span class=\"menu-item-text\">Italic</span>\n <span class=\"hot-keys\">Ctrl+I</span>\n </div>\n </button>\n <button\n id=\"menu-dropdowns-menu-item-underlined\"\n mat-menu-item\n (click)=\"onApplyUnderline()\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n <span class=\"menu-item-text\">Underlined</span>\n <span class=\"hot-keys\">Ctrl+U</span>\n </div>\n </button>\n </mat-menu>\n <button\n id=\"menu-dropdowns-menu-item-header-footer\"\n mat-menu-item\n class=\"hidden\">\n <div class=\"heading-menu\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-headers-footers\"></mat-icon>\n <span class=\"menu-item-text\">Headers & Footers</span>\n </div>\n </button>\n</mat-menu>\n<mat-menu\n #tableInsert=\"matMenu\"\n class=\"insert-table noder-modal\">\n <app-insert-table\n *ngIf=\"showInsertTableMenu\"\n (selectSizes)=\"insertTable.emit($event)\" />\n</mat-menu>\n", styles: [":host{display:flex;align-items:center;height:100%}.upload-input{display:none}.menu-buttons mat-icon{width:24px;height:24px;font-size:24px}.heading-menu{display:inline-flex;width:210px}.hot-keys{text-align:end;width:auto}.menu-item-text{white-space:nowrap;width:64%}.mat-mdc-menu-item .mat-icon{margin-right:4px;width:28px}.hidden{display:none}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none}.list-icon .selected,.list-icon .selected:hover,.list-number .selected,.list-number .selected:hover{border-width:2px;border-style:solid}\n"] }]
|
|
13119
13117
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: CustomIconService }], propDecorators: { isViewOnly: [{
|
|
13120
13118
|
type: Input
|
|
13121
13119
|
}], hasSelection: [{
|
|
13122
13120
|
type: Input
|
|
13123
13121
|
}], clipboardData: [{
|
|
13124
13122
|
type: Input
|
|
13125
|
-
}], title: [{
|
|
13126
|
-
type: Input
|
|
13127
13123
|
}], historyInfo: [{
|
|
13128
13124
|
type: Input
|
|
13125
|
+
}], styles: [{
|
|
13126
|
+
type: Input
|
|
13129
13127
|
}], openFileFromDisk: [{
|
|
13130
13128
|
type: Output
|
|
13131
13129
|
}], addCustomElement: [{
|
|
@@ -13140,18 +13138,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13140
13138
|
type: Output
|
|
13141
13139
|
}], insertImage: [{
|
|
13142
13140
|
type: Output
|
|
13143
|
-
}],
|
|
13144
|
-
type: Output
|
|
13145
|
-
}], renameDocumentTitle: [{
|
|
13141
|
+
}], rename: [{
|
|
13146
13142
|
type: Output
|
|
13147
13143
|
}], delete: [{
|
|
13148
13144
|
type: Output
|
|
13149
13145
|
}], openEditMenu: [{
|
|
13150
13146
|
type: Output
|
|
13151
|
-
}], undo: [{
|
|
13152
|
-
type: Output
|
|
13153
13147
|
}], redo: [{
|
|
13154
13148
|
type: Output
|
|
13149
|
+
}], undo: [{
|
|
13150
|
+
type: Output
|
|
13155
13151
|
}], cutSelected: [{
|
|
13156
13152
|
type: Output
|
|
13157
13153
|
}], copySelected: [{
|
|
@@ -13174,11 +13170,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13174
13170
|
type: Output
|
|
13175
13171
|
}], removeNumberings: [{
|
|
13176
13172
|
type: Output
|
|
13177
|
-
}], titleSpan: [{
|
|
13178
|
-
type: ViewChild,
|
|
13179
|
-
args: ['titleSpan', { static: true }]
|
|
13180
|
-
}], styles: [{
|
|
13181
|
-
type: Input
|
|
13182
13173
|
}], insertTable: [{
|
|
13183
13174
|
type: Output
|
|
13184
13175
|
}], tableInsertMenu: [{
|
|
@@ -13186,58 +13177,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13186
13177
|
args: ['tableInsert']
|
|
13187
13178
|
}] } });
|
|
13188
13179
|
|
|
13189
|
-
class EditorSearchDialogComponent extends ObserverComponent {
|
|
13190
|
-
constructor(editorService) {
|
|
13191
|
-
super();
|
|
13192
|
-
this.editorService = editorService;
|
|
13193
|
-
this.searchControl = new FormControl('');
|
|
13194
|
-
this.replaceControl = new FormControl('');
|
|
13195
|
-
this.isReplace = false;
|
|
13196
|
-
this.searchIteration$ = this.editorService.searchIteration$;
|
|
13197
|
-
}
|
|
13198
|
-
ngOnInit() {
|
|
13199
|
-
this.subscriptions.push(this.searchSubscription());
|
|
13200
|
-
}
|
|
13201
|
-
onClose() {
|
|
13202
|
-
this.editorService.openSearchDialog = false;
|
|
13203
|
-
}
|
|
13204
|
-
findNext() {
|
|
13205
|
-
this.editorService.searchOptions = {
|
|
13206
|
-
term: this.searchControl.value,
|
|
13207
|
-
skipCurrent: true,
|
|
13208
|
-
backwards: false
|
|
13209
|
-
};
|
|
13210
|
-
}
|
|
13211
|
-
findPrev() {
|
|
13212
|
-
this.editorService.searchOptions = {
|
|
13213
|
-
term: this.searchControl.value,
|
|
13214
|
-
skipCurrent: true,
|
|
13215
|
-
backwards: true
|
|
13216
|
-
};
|
|
13217
|
-
}
|
|
13218
|
-
setReplace() {
|
|
13219
|
-
this.isReplace = !this.isReplace;
|
|
13220
|
-
}
|
|
13221
|
-
replace() {
|
|
13222
|
-
this.editorService.replace = { replaceValue: this.replaceControl.value, searchValue: this.searchControl.value };
|
|
13223
|
-
}
|
|
13224
|
-
searchSubscription() {
|
|
13225
|
-
return this.searchControl.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe(() => {
|
|
13226
|
-
this.editorService.searchOptions = {
|
|
13227
|
-
term: this.searchControl.value,
|
|
13228
|
-
skipCurrent: false,
|
|
13229
|
-
backwards: false
|
|
13230
|
-
};
|
|
13231
|
-
});
|
|
13232
|
-
}
|
|
13233
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditorSearchDialogComponent, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13234
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: EditorSearchDialogComponent, isStandalone: true, selector: "app-editor-search-dialog", providers: [ExternalElementService], usesInheritance: true, ngImport: i0, template: "<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Search for</mat-label>\n <input\n matInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findPrev()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onleft\"></mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findNext()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onright\"></mat-icon>\n </button>\n</div>\n<ng-container *ngIf=\"{ searchIteration: searchIteration$ | async } as data\">\n <div\n class=\"replace-form\"\n *ngIf=\"isReplace\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Replace with</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-button\n (click)=\"replace()\">\n Replace\n </button>\n </div>\n <div class=\"search-options\">\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-up' : 'icon-arrow-down' }}\"></mat-icon>\n </button>\n <div class=\"counter\">\n <span>{{ data.searchIteration?.current ?? 0 }} of {{ data.searchIteration?.total ?? 0 }}</span>\n </div>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Close\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{min-height:56px;max-width:100%;display:block;font-size:10px;padding:3px}.close-icon{position:absolute;right:1px;top:1px}.search-form,.replace-form,.search-options{display:flex}mat-form-field{padding-left:10px}.mdc-button{font-size:12px;padding:0 8px;min-width:unset}.search-options{line-height:40px}.search-options .counter{text-align:center;flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.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: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.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"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13235
|
-
}
|
|
13236
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditorSearchDialogComponent, decorators: [{
|
|
13237
|
-
type: Component,
|
|
13238
|
-
args: [{ standalone: true, imports: [CommonModule, FormsModule, MatButtonModule, MatIconModule, MatInputModule, MatTooltipModule, ReactiveFormsModule], providers: [ExternalElementService], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-editor-search-dialog', template: "<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Search for</mat-label>\n <input\n matInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findPrev()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onleft\"></mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"findNext()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-onright\"></mat-icon>\n </button>\n</div>\n<ng-container *ngIf=\"{ searchIteration: searchIteration$ | async } as data\">\n <div\n class=\"replace-form\"\n *ngIf=\"isReplace\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>Replace with</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n <button\n type=\"button\"\n mat-button\n (click)=\"replace()\">\n Replace\n </button>\n </div>\n <div class=\"search-options\">\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-up' : 'icon-arrow-down' }}\"></mat-icon>\n </button>\n <div class=\"counter\">\n <span>{{ data.searchIteration?.current ?? 0 }} of {{ data.searchIteration?.total ?? 0 }}</span>\n </div>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Close\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [":host{min-height:56px;max-width:100%;display:block;font-size:10px;padding:3px}.close-icon{position:absolute;right:1px;top:1px}.search-form,.replace-form,.search-options{display:flex}mat-form-field{padding-left:10px}.mdc-button{font-size:12px;padding:0 8px;min-width:unset}.search-options{line-height:40px}.search-options .counter{text-align:center;flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}\n"] }]
|
|
13239
|
-
}], ctorParameters: () => [{ type: EditorService }] });
|
|
13240
|
-
|
|
13241
13180
|
class FontComponent {
|
|
13242
13181
|
constructor() {
|
|
13243
13182
|
this.isDisabled = false;
|
|
@@ -13262,12 +13201,12 @@ class FontComponent {
|
|
|
13262
13201
|
onSelectFont(font) {
|
|
13263
13202
|
this.selectFont.emit(font);
|
|
13264
13203
|
}
|
|
13265
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13266
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FontComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FontComponent, selector: "app-font", inputs: { isDisabled: "isDisabled", styles: "styles" }, outputs: { selectFont: "selectFont" }, ngImport: i0, template: "<button\n mat-button\n [matMenuTriggerFor]=\"fontMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"font-menu\">\n <span>{{ font }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu\n #fontMenu=\"matMenu\"\n class=\"noder-modal\">\n <ng-container *ngFor=\"let font of fonts\">\n <button\n mat-menu-item\n [disabled]=\"isDisabled\"\n (click)=\"onSelectFont(font)\">\n {{ font }}\n </button>\n </ng-container>\n</mat-menu>\n", styles: [".font-menu{display:flex;justify-content:space-between;align-items:center;min-width:130px}span{padding-left:10%}button{height:28px;margin:0 4px}mat-icon{margin-right:5%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13267
13206
|
}
|
|
13268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FontComponent, decorators: [{
|
|
13269
13208
|
type: Component,
|
|
13270
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-font', template: "<button\n mat-button\n [matMenuTriggerFor]=\"fontMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"font-menu\">\n <span>{{ font }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu
|
|
13209
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-font', template: "<button\n mat-button\n [matMenuTriggerFor]=\"fontMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"font-menu\">\n <span>{{ font }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu\n #fontMenu=\"matMenu\"\n class=\"noder-modal\">\n <ng-container *ngFor=\"let font of fonts\">\n <button\n mat-menu-item\n [disabled]=\"isDisabled\"\n (click)=\"onSelectFont(font)\">\n {{ font }}\n </button>\n </ng-container>\n</mat-menu>\n", styles: [".font-menu{display:flex;justify-content:space-between;align-items:center;min-width:130px}span{padding-left:10%}button{height:28px;margin:0 4px}mat-icon{margin-right:5%}\n"] }]
|
|
13271
13210
|
}], propDecorators: { isDisabled: [{
|
|
13272
13211
|
type: Input
|
|
13273
13212
|
}], styles: [{
|
|
@@ -13334,12 +13273,12 @@ class FontSizeComponent {
|
|
|
13334
13273
|
this.autocomplete.options.find(x => x.value === this.fontSize)?.select();
|
|
13335
13274
|
}
|
|
13336
13275
|
}
|
|
13337
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13338
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FontSizeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FontSizeComponent, selector: "app-font-size", inputs: { isDisabled: "isDisabled", fontSize: "fontSize" }, outputs: { selectFontSize: "selectFontSize" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<button\n mat-button\n [disabled]=\"!fontSize || isDisabled\"\n (click)=\"onDecrementFontSize()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-remove\"></mat-icon>\n</button>\n<input\n type=\"text\"\n [formControl]=\"fontSizeControl\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"onSetFontSize()\"\n (blur)=\"resetFontSize()\" />\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n panelWidth=\"60\"\n disableRipple=\"false\"\n hideSingleSelectionIndicator=\"true\">\n <mat-option\n *ngFor=\"let fontSize of fontSizes\"\n [value]=\"fontSize\"\n (click)=\"onSelectFontSize(fontSize)\">\n {{ fontSize }}\n </mat-option>\n</mat-autocomplete>\n<button\n mat-button\n [disabled]=\"!fontSize || isDisabled\"\n (click)=\"onIncrementFontSize()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n</button>\n", styles: ["button{margin:4px}input{width:48px;height:32px;text-align:center;border-color:transparent;outline-color:#1b84e0}.mdc-button{min-width:32px;min-height:32px;width:32px;height:32px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0;font-size:24px;height:24px;width:24px}.mat-mdc-option{padding-left:6px;padding-right:6px;min-height:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13339
13278
|
}
|
|
13340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FontSizeComponent, decorators: [{
|
|
13341
13280
|
type: Component,
|
|
13342
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-font-size', template: "<button\n mat-button\n [disabled]=\"!fontSize || isDisabled\"\n (click)=\"onDecrementFontSize()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-remove\"></mat-icon>\n</button>\n<input\n type=\"text\"\n [formControl]=\"fontSizeControl\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"onSetFontSize()\"\n (blur)=\"resetFontSize()\" />\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n panelWidth=\"60\"\n disableRipple=\"false\"\n hideSingleSelectionIndicator=\"true\">\n <mat-option\n *ngFor=\"let fontSize of fontSizes\"\n [value]=\"fontSize\"\n (click)=\"onSelectFontSize(fontSize)\">\n {{ fontSize }}\n </mat-option>\n</mat-autocomplete>\n<button\n mat-button\n [disabled]=\"!fontSize || isDisabled\"\n (click)=\"onIncrementFontSize()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n</button>\n", styles: ["
|
|
13281
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-font-size', template: "<button\n mat-button\n [disabled]=\"!fontSize || isDisabled\"\n (click)=\"onDecrementFontSize()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-remove\"></mat-icon>\n</button>\n<input\n type=\"text\"\n [formControl]=\"fontSizeControl\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"onSetFontSize()\"\n (blur)=\"resetFontSize()\" />\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n panelWidth=\"60\"\n disableRipple=\"false\"\n hideSingleSelectionIndicator=\"true\">\n <mat-option\n *ngFor=\"let fontSize of fontSizes\"\n [value]=\"fontSize\"\n (click)=\"onSelectFontSize(fontSize)\">\n {{ fontSize }}\n </mat-option>\n</mat-autocomplete>\n<button\n mat-button\n [disabled]=\"!fontSize || isDisabled\"\n (click)=\"onIncrementFontSize()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n</button>\n", styles: ["button{margin:4px}input{width:48px;height:32px;text-align:center;border-color:transparent;outline-color:#1b84e0}.mdc-button{min-width:32px;min-height:32px;width:32px;height:32px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0;font-size:24px;height:24px;width:24px}.mat-mdc-option{padding-left:6px;padding-right:6px;min-height:30px}\n"] }]
|
|
13343
13282
|
}], propDecorators: { isDisabled: [{
|
|
13344
13283
|
type: Input
|
|
13345
13284
|
}], fontSize: [{
|
|
@@ -13358,12 +13297,12 @@ class ColorPickerComponent {
|
|
|
13358
13297
|
onChangeColor(color) {
|
|
13359
13298
|
this.colorChange.emit(color);
|
|
13360
13299
|
}
|
|
13361
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13362
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13300
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13301
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ColorPickerComponent, selector: "app-color-picker", inputs: { color: "color", icon: "icon", isDisabled: "isDisabled", palette: "palette" }, outputs: { colorChange: "colorChange" }, ngImport: i0, template: "<button\n mat-button\n ngx-colors-trigger\n overlayClassName=\"color-picker-overlay\"\n [disabled]=\"isDisabled\"\n [(ngModel)]=\"color\"\n [palette]=\"palette\"\n [hideTextInput]=\"true\"\n [attachTo]=\"icon\"\n (input)=\"onChangeColor(color)\">\n <div class=\"color-text\">\n <mat-icon\n fontSet=\"nc-icon\"\n [ngStyle]=\"{ color: color && color !== 'transparent' ? color : 'inherit' }\"\n [fontIcon]=\"icon\"></mat-icon>\n </div>\n</button>\n", styles: ["button{margin:0 3px}.color-text{display:inline-flex;height:22px}.mdc-button{min-width:32px;height:32px;width:32px;padding:0}.mdc-button mat-icon{height:24px;width:24px}.mdc-button::ng-deep .mdc-button__label{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$1.NgxColorsTriggerDirective, selector: "[ngx-colors-trigger]", inputs: ["colorsAnimation", "palette", "format", "formats", "position", "hideTextInput", "hideColorPicker", "attachTo", "overlayClassName", "colorPickerControls", "acceptLabel", "cancelLabel"], outputs: ["change", "input", "slider", "close", "open"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13363
13302
|
}
|
|
13364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13303
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColorPickerComponent, decorators: [{
|
|
13365
13304
|
type: Component,
|
|
13366
|
-
args: [{ selector: 'app-color-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n mat-button\n ngx-colors-trigger\n overlayClassName=\"color-picker-overlay\"\n [disabled]=\"isDisabled\"\n [(ngModel)]=\"color\"\n [palette]=\"palette\"\n [hideTextInput]=\"true\"\n [attachTo]=\"icon\"\n (input)=\"onChangeColor(color)\">\n <div
|
|
13305
|
+
args: [{ selector: 'app-color-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n mat-button\n ngx-colors-trigger\n overlayClassName=\"color-picker-overlay\"\n [disabled]=\"isDisabled\"\n [(ngModel)]=\"color\"\n [palette]=\"palette\"\n [hideTextInput]=\"true\"\n [attachTo]=\"icon\"\n (input)=\"onChangeColor(color)\">\n <div class=\"color-text\">\n <mat-icon\n fontSet=\"nc-icon\"\n [ngStyle]=\"{ color: color && color !== 'transparent' ? color : 'inherit' }\"\n [fontIcon]=\"icon\"></mat-icon>\n </div>\n</button>\n", styles: ["button{margin:0 3px}.color-text{display:inline-flex;height:22px}.mdc-button{min-width:32px;height:32px;width:32px;padding:0}.mdc-button mat-icon{height:24px;width:24px}.mdc-button::ng-deep .mdc-button__label{display:flex}\n"] }]
|
|
13367
13306
|
}], propDecorators: { color: [{
|
|
13368
13307
|
type: Input
|
|
13369
13308
|
}], icon: [{
|
|
@@ -13420,12 +13359,12 @@ class FontStyleComponent {
|
|
|
13420
13359
|
onSelectHighlightColor(color) {
|
|
13421
13360
|
this.selectHighlightColor.emit(color);
|
|
13422
13361
|
}
|
|
13423
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13424
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13362
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FontStyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13363
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FontStyleComponent, selector: "app-font-style", inputs: { isDisabled: "isDisabled", bold: "bold", italic: "italic", underline: "underline", fontColor: "fontColor", highlightColor: "highlightColor" }, outputs: { toggleBold: "toggleBold", toggleItalic: "toggleItalic", toggleUnderline: "toggleUnderline", selectFontColor: "selectFontColor", selectHighlightColor: "selectHighlightColor" }, ngImport: i0, template: "<mat-button-toggle-group\n multiple\n [hideMultipleSelectionIndicator]=\"true\"\n [hideSingleSelectionIndicator]=\"true\">\n <mat-button-toggle\n [disabled]=\"isDisabled\"\n [checked]=\"bold\"\n (click)=\"onToggleBold()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle\n [disabled]=\"isDisabled\"\n [checked]=\"italic\"\n (click)=\"onToggleItalic()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle\n [disabled]=\"isDisabled\"\n [checked]=\"underline\"\n (click)=\"onToggleUnderline()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n<app-color-picker\n id=\"icon-format-colortext\"\n class=\"text-color\"\n [color]=\"fontColor\"\n [isDisabled]=\"isDisabled\"\n icon=\"icon-format-colortext\"\n [palette]=\"textColorPalette\"\n (colorChange)=\"onSelectFontColor($event)\"></app-color-picker>\n<app-color-picker\n id=\"icon-link-highlighter\"\n class=\"highlight-color\"\n [color]=\"highlightColor\"\n [isDisabled]=\"isDisabled\"\n icon=\"icon-link-highlighter\"\n [palette]=\"highlightColorPalette\"\n (colorChange)=\"onSelectHighlightColor($event)\"></app-color-picker>\n", styles: ["mat-button-toggle,button{margin:0 4px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}:host{display:flex;align-items:center}:host ::ng-deep #format-color-highlight .circle.button:first-child,:host ::ng-deep #format-color-highlight .circle.wrapper.color:first-child{flex:100%;width:100%;background:no-repeat left/20px url(https://cdn3.iconfinder.com/data/icons/google-material-design-icons/48/ic_format_color_reset_48px-512.png);border-radius:unset}:host ::ng-deep #format-color-highlight .circle.button:first-child .circle.color.circle-border,:host ::ng-deep #format-color-highlight .circle.wrapper.color:first-child .circle.color.circle-border{width:100%;border:unset}:host ::ng-deep #format-color-highlight .circle.button:first-child .circle.color.circle-border .selected,:host ::ng-deep #format-color-highlight .circle.wrapper.color:first-child .circle.color.circle-border .selected{display:none}\n"], dependencies: [{ kind: "directive", type: i1$3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ColorPickerComponent, selector: "app-color-picker", inputs: ["color", "icon", "isDisabled", "palette"], outputs: ["colorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13425
13364
|
}
|
|
13426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13365
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FontStyleComponent, decorators: [{
|
|
13427
13366
|
type: Component,
|
|
13428
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-font-style', template: "<mat-button-toggle-group
|
|
13367
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-font-style', template: "<mat-button-toggle-group\n multiple\n [hideMultipleSelectionIndicator]=\"true\"\n [hideSingleSelectionIndicator]=\"true\">\n <mat-button-toggle\n [disabled]=\"isDisabled\"\n [checked]=\"bold\"\n (click)=\"onToggleBold()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bold\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle\n [disabled]=\"isDisabled\"\n [checked]=\"italic\"\n (click)=\"onToggleItalic()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-italic\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle\n [disabled]=\"isDisabled\"\n [checked]=\"underline\"\n (click)=\"onToggleUnderline()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-underlined\"></mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n<app-color-picker\n id=\"icon-format-colortext\"\n class=\"text-color\"\n [color]=\"fontColor\"\n [isDisabled]=\"isDisabled\"\n icon=\"icon-format-colortext\"\n [palette]=\"textColorPalette\"\n (colorChange)=\"onSelectFontColor($event)\"></app-color-picker>\n<app-color-picker\n id=\"icon-link-highlighter\"\n class=\"highlight-color\"\n [color]=\"highlightColor\"\n [isDisabled]=\"isDisabled\"\n icon=\"icon-link-highlighter\"\n [palette]=\"highlightColorPalette\"\n (colorChange)=\"onSelectHighlightColor($event)\"></app-color-picker>\n", styles: ["mat-button-toggle,button{margin:0 4px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}:host{display:flex;align-items:center}:host ::ng-deep #format-color-highlight .circle.button:first-child,:host ::ng-deep #format-color-highlight .circle.wrapper.color:first-child{flex:100%;width:100%;background:no-repeat left/20px url(https://cdn3.iconfinder.com/data/icons/google-material-design-icons/48/ic_format_color_reset_48px-512.png);border-radius:unset}:host ::ng-deep #format-color-highlight .circle.button:first-child .circle.color.circle-border,:host ::ng-deep #format-color-highlight .circle.wrapper.color:first-child .circle.color.circle-border{width:100%;border:unset}:host ::ng-deep #format-color-highlight .circle.button:first-child .circle.color.circle-border .selected,:host ::ng-deep #format-color-highlight .circle.wrapper.color:first-child .circle.color.circle-border .selected{display:none}\n"] }]
|
|
13429
13368
|
}], propDecorators: { isDisabled: [{
|
|
13430
13369
|
type: Input
|
|
13431
13370
|
}], bold: [{
|
|
@@ -13459,12 +13398,12 @@ class FormatComponent {
|
|
|
13459
13398
|
onSelectFormat(format) {
|
|
13460
13399
|
this.selectAlignment.emit(format);
|
|
13461
13400
|
}
|
|
13462
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13463
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13401
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13402
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormatComponent, selector: "app-format", inputs: { isDisabled: "isDisabled", alignment: "alignment" }, outputs: { selectAlignment: "selectAlignment" }, ngImport: i0, template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [hideMultipleSelectionIndicator]=\"true\"\n [hideSingleSelectionIndicator]=\"true\"\n [disabled]=\"isDisabled\"\n [value]=\"alignment\"\n (change)=\"onSelectFormat($event.value)\">\n <mat-button-toggle [value]=\"alignments.Left\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle [value]=\"alignments.Center\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle [value]=\"alignments.Right\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}\n"], dependencies: [{ kind: "directive", type: i1$3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13464
13403
|
}
|
|
13465
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13404
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatComponent, decorators: [{
|
|
13466
13405
|
type: Component,
|
|
13467
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-format', template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [disabled]=\"isDisabled\"\n [value]=\"alignment\"\n (change)=\"onSelectFormat($event.value)\">\n <mat-button-toggle [value]=\"alignments.Left\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle [value]=\"alignments.Center\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle [value]=\"alignments.Right\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}\n"] }]
|
|
13406
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-format', template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [hideMultipleSelectionIndicator]=\"true\"\n [hideSingleSelectionIndicator]=\"true\"\n [disabled]=\"isDisabled\"\n [value]=\"alignment\"\n (change)=\"onSelectFormat($event.value)\">\n <mat-button-toggle [value]=\"alignments.Left\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignleft\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle [value]=\"alignments.Center\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-aligncenter\"></mat-icon>\n </mat-button-toggle>\n <mat-button-toggle [value]=\"alignments.Right\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-alignright\"></mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}\n"] }]
|
|
13468
13407
|
}], propDecorators: { isDisabled: [{
|
|
13469
13408
|
type: Input
|
|
13470
13409
|
}], alignment: [{
|
|
@@ -13500,12 +13439,12 @@ class NumberingComponent {
|
|
|
13500
13439
|
onSelectNumberingTemplate(numberingTemplateType) {
|
|
13501
13440
|
this.selectNumberingTemplate.emit(numberingTemplateType);
|
|
13502
13441
|
}
|
|
13503
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13504
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13442
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13443
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NumberingComponent, selector: "app-numbering", inputs: { isDisabled: "isDisabled", selectedNumberingType: "selectedNumberingType", selectedNumberingTemplate: "selectedNumberingTemplate" }, outputs: { selectNumberingTemplate: "selectNumberingTemplate", removeNumberings: "removeNumberings" }, ngImport: i0, template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [hideMultipleSelectionIndicator]=\"true\"\n [hideSingleSelectionIndicator]=\"true\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:32px;min-height:32px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.mat-button-toggle-group{align-items:center}.mat-button-toggle-group .mdc-button{min-width:20px;height:32px;padding:0}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none!important}.list-icon .selected,.list-icon .selected:hover{border-width:2px;border-style:solid}\n"], dependencies: [{ kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13505
13444
|
}
|
|
13506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13445
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberingComponent, decorators: [{
|
|
13507
13446
|
type: Component,
|
|
13508
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-numbering', template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:
|
|
13447
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-numbering', template: "<mat-button-toggle-group\n name=\"format\"\n aria-label=\"format\"\n [hideMultipleSelectionIndicator]=\"true\"\n [hideSingleSelectionIndicator]=\"true\"\n [disabled]=\"isDisabled\">\n <mat-button-toggle\n (click)=\"onToggleBulletedNumbering()\"\n [value]=\"numberingType.Bullet\"\n [checked]=\"selectedNumberingType === numberingType.Bullet\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-bulleted\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listBulletedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listBulletedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList1\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList2\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-marker\">\n <mat-icon\n svgIcon=\"marker-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList4\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList5\"></mat-icon>\n <mat-icon\n svgIcon=\"marker-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.BulletList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.BulletList6\"></mat-icon>\n </div>\n </mat-menu>\n <mat-button-toggle\n (click)=\"onToggleNumberedNumbering()\"\n [value]=\"numberingType.Number\"\n [checked]=\"selectedNumberingType === numberingType.Number\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-format-numbered\"></mat-icon>\n </mat-button-toggle>\n <button\n mat-button\n [matMenuTriggerFor]=\"listNumberedMenu\"\n [matMenuTriggerRestoreFocus]=\"false\"\n [disabled]=\"isDisabled\"\n style=\"display: none\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </button>\n <mat-menu\n #listNumberedMenu=\"matMenu\"\n class=\"dropdown-numbering-overlay noder-modal\"\n yPosition=\"below\">\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-1\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList1)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList1\"></mat-icon>\n <mat-icon\n svgIcon=\"number-2\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList2)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList2\"></mat-icon>\n <mat-icon\n svgIcon=\"number-3\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList3)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList3\"></mat-icon>\n </div>\n <div class=\"list-icon list-number\">\n <mat-icon\n svgIcon=\"number-4\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList4)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList4\"></mat-icon>\n <mat-icon\n svgIcon=\"number-5\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList5)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList5\"></mat-icon>\n <mat-icon\n svgIcon=\"number-6\"\n (click)=\"onSelectNumberingTemplate(numberingTemplateType.NumberList6)\"\n [class.selected]=\"selectedNumberingTemplate === numberingTemplateType.NumberList6\"></mat-icon>\n </div>\n </mat-menu>\n</mat-button-toggle-group>\n", styles: [":host{display:flex;align-items:center}mat-button-toggle-group,button{margin:0 3px}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:0}.mdc-button{min-width:32px;min-height:32px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.mat-button-toggle-group{align-items:center}.mat-button-toggle-group .mdc-button{min-width:20px;height:32px;padding:0}.list-marker,.list-number{margin:0 5px}.list-marker mat-icon,.list-number mat-icon{width:70px;height:80px;margin:0 5px}.list-marker mat-icon:hover,.list-number mat-icon:hover{border:none!important}.list-icon .selected,.list-icon .selected:hover{border-width:2px;border-style:solid}\n"] }]
|
|
13509
13448
|
}], propDecorators: { isDisabled: [{
|
|
13510
13449
|
type: Input
|
|
13511
13450
|
}], selectedNumberingType: [{
|
|
@@ -13522,12 +13461,12 @@ class PrintComponent {
|
|
|
13522
13461
|
constructor() {
|
|
13523
13462
|
this.print = new EventEmitter();
|
|
13524
13463
|
}
|
|
13525
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13526
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13464
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PrintComponent, selector: "app-print", outputs: { print: "print" }, ngImport: i0, template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"], dependencies: [{ kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13527
13466
|
}
|
|
13528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrintComponent, decorators: [{
|
|
13529
13468
|
type: Component,
|
|
13530
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-print', template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{align-
|
|
13469
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-print', template: "<button\n mat-button\n (click)=\"print.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-print\"></mat-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"] }]
|
|
13531
13470
|
}], propDecorators: { print: [{
|
|
13532
13471
|
type: Output
|
|
13533
13472
|
}] } });
|
|
@@ -13539,12 +13478,12 @@ class UndoRedoComponent {
|
|
|
13539
13478
|
this.undo = new EventEmitter();
|
|
13540
13479
|
this.redo = new EventEmitter();
|
|
13541
13480
|
}
|
|
13542
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13543
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13481
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UndoRedoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13482
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: UndoRedoComponent, selector: "app-undo-redo", inputs: { canUndo: "canUndo", canRedo: "canRedo" }, outputs: { undo: "undo", redo: "redo" }, ngImport: i0, template: "<button\n mat-button\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n</button>\n<button\n mat-button\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"], dependencies: [{ kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13544
13483
|
}
|
|
13545
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UndoRedoComponent, decorators: [{
|
|
13546
13485
|
type: Component,
|
|
13547
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-undo-redo', template: "<button\n mat-button\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n</button>\n<button\n mat-button\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n</button>\n", styles: [":host{align-
|
|
13486
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-undo-redo', template: "<button\n mat-button\n [disabled]=\"!canUndo\"\n (click)=\"undo.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-undo\"></mat-icon>\n</button>\n<button\n mat-button\n [disabled]=\"!canRedo\"\n (click)=\"redo.emit()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-redo\"></mat-icon>\n</button>\n", styles: [":host{display:flex;align-items:center}.mdc-button{min-width:28px;min-height:28px;height:28px;padding:0;margin:0 4px}.mdc-button mat-icon{font-size:24px;height:24px;width:24px;margin:0}\n"] }]
|
|
13548
13487
|
}], propDecorators: { canUndo: [{
|
|
13549
13488
|
type: Input
|
|
13550
13489
|
}], canRedo: [{
|
|
@@ -13555,7 +13494,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13555
13494
|
type: Output
|
|
13556
13495
|
}] } });
|
|
13557
13496
|
|
|
13558
|
-
class
|
|
13497
|
+
class ToolbarActionsComponent {
|
|
13498
|
+
set historyInfo(value) {
|
|
13499
|
+
this.canUndo = value.step !== -1;
|
|
13500
|
+
this.canRedo = value.step < value.lastStep;
|
|
13501
|
+
}
|
|
13559
13502
|
set styles(value) {
|
|
13560
13503
|
this._styles = value;
|
|
13561
13504
|
this.numberingType = ToolbarStylesHelper.getNumberingType(value.isBulletMarker);
|
|
@@ -13564,19 +13507,18 @@ class EditorToolbarComponent {
|
|
|
13564
13507
|
get styles() {
|
|
13565
13508
|
return this._styles;
|
|
13566
13509
|
}
|
|
13567
|
-
|
|
13568
|
-
this.canUndo = value.step !== -1;
|
|
13569
|
-
this.canRedo = value.step < value.lastStep;
|
|
13570
|
-
}
|
|
13571
|
-
constructor(customIconService) {
|
|
13510
|
+
constructor(customIconService, injector) {
|
|
13572
13511
|
this.customIconService = customIconService;
|
|
13573
|
-
this.
|
|
13512
|
+
this.injector = injector;
|
|
13513
|
+
this.print = new EventEmitter();
|
|
13514
|
+
this.redo = new EventEmitter();
|
|
13515
|
+
this.undo = new EventEmitter();
|
|
13574
13516
|
this.changeParagraphStyle = new EventEmitter();
|
|
13517
|
+
this.changeTextStyle = new EventEmitter();
|
|
13575
13518
|
this.setNumberingTemplateType = new EventEmitter();
|
|
13576
13519
|
this.removeNumberings = new EventEmitter();
|
|
13577
|
-
this.
|
|
13578
|
-
this.
|
|
13579
|
-
this.print = new EventEmitter();
|
|
13520
|
+
this.createElement = new EventEmitter();
|
|
13521
|
+
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
13580
13522
|
this.customIconService.register();
|
|
13581
13523
|
}
|
|
13582
13524
|
onApplyFontFamily(font) {
|
|
@@ -13607,8 +13549,10 @@ class EditorToolbarComponent {
|
|
|
13607
13549
|
const templateLevels = NumberingTemplates.find(x => x.templateType === templateType).levels;
|
|
13608
13550
|
this.setNumberingTemplateType.emit(templateLevels);
|
|
13609
13551
|
}
|
|
13610
|
-
|
|
13611
|
-
|
|
13552
|
+
async onCreateElement(model) {
|
|
13553
|
+
const data = await model.factoryMethod();
|
|
13554
|
+
const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
|
|
13555
|
+
this.createElement.emit(element);
|
|
13612
13556
|
}
|
|
13613
13557
|
checkFontLoadedAndApplyStyle(style) {
|
|
13614
13558
|
const newStyles = { ...this.styles, ...style };
|
|
@@ -13626,31 +13570,129 @@ class EditorToolbarComponent {
|
|
|
13626
13570
|
// continue regardless of error
|
|
13627
13571
|
});
|
|
13628
13572
|
}
|
|
13629
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13630
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13573
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarActionsComponent, deps: [{ token: CustomIconService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13574
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarActionsComponent, selector: "app-toolbar-actions", inputs: { isViewOnly: "isViewOnly", historyInfo: "historyInfo", styles: "styles" }, outputs: { print: "print", redo: "redo", undo: "undo", changeParagraphStyle: "changeParagraphStyle", changeTextStyle: "changeTextStyle", setNumberingTemplateType: "setNumberingTemplateType", removeNumberings: "removeNumberings", createElement: "createElement" }, ngImport: i0, template: "<app-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n<app-print (print)=\"print.emit()\" />\n<div class=\"separator\"></div>\n<app-font\n [isDisabled]=\"isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n<div class=\"separator\"></div>\n<app-font-size\n [isDisabled]=\"isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n<div class=\"separator\"></div>\n<app-font-style\n [isDisabled]=\"isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n [fontColor]=\"styles.fontColor\"\n [highlightColor]=\"styles.highlightColor\"\n (selectFontColor)=\"onApplyFontColor($event)\"\n (toggleBold)=\"onApplyBold($event)\"\n (toggleItalic)=\"onApplyItalic($event)\"\n (toggleUnderline)=\"onApplyUnderline($event)\"\n (selectHighlightColor)=\"onApplyHighlightColor($event)\" />\n<div class=\"separator\"></div>\n<div\n *ngIf=\"elements.length\"\n class=\"custom-elements\">\n <button\n *ngFor=\"let element of elements\"\n mat-button\n [disabled]=\"isViewOnly\"\n (click)=\"onCreateElement(element)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n <div class=\"separator\"></div>\n</div>\n<app-format\n [isDisabled]=\"isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n<div class=\"separator\"></div>\n<app-numbering\n [isDisabled]=\"isViewOnly\"\n [selectedNumberingType]=\"numberingType\"\n [selectedNumberingTemplate]=\"numberingTemplateType\"\n (selectNumberingTemplate)=\"onSetNumberingTemplateType($event)\"\n (removeNumberings)=\"removeNumberings.emit()\" />\n", styles: [":host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.separator{border-left:1px solid;opacity:.1;height:100%;margin:0 8px}.mdc-button{width:28px;height:28px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.do-action{padding-right:1px;justify-content:center;display:flex}.custom-elements{display:flex;align-items:center;height:100%}.custom-elements .mdc-button{min-width:32px;min-height:32px;width:32px;height:32px;padding:0}.custom-elements .mdc-button>.mat-icon{margin-right:0;font-size:24px;height:24px;width:24px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FontComponent, selector: "app-font", inputs: ["isDisabled", "styles"], outputs: ["selectFont"] }, { kind: "component", type: FontSizeComponent, selector: "app-font-size", inputs: ["isDisabled", "fontSize"], outputs: ["selectFontSize"] }, { kind: "component", type: FontStyleComponent, selector: "app-font-style", inputs: ["isDisabled", "bold", "italic", "underline", "fontColor", "highlightColor"], outputs: ["toggleBold", "toggleItalic", "toggleUnderline", "selectFontColor", "selectHighlightColor"] }, { kind: "component", type: FormatComponent, selector: "app-format", inputs: ["isDisabled", "alignment"], outputs: ["selectAlignment"] }, { kind: "component", type: NumberingComponent, selector: "app-numbering", inputs: ["isDisabled", "selectedNumberingType", "selectedNumberingTemplate"], outputs: ["selectNumberingTemplate", "removeNumberings"] }, { kind: "component", type: PrintComponent, selector: "app-print", outputs: ["print"] }, { kind: "component", type: UndoRedoComponent, selector: "app-undo-redo", inputs: ["canUndo", "canRedo"], outputs: ["undo", "redo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13631
13575
|
}
|
|
13632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarActionsComponent, decorators: [{
|
|
13633
13577
|
type: Component,
|
|
13634
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-
|
|
13635
|
-
}], ctorParameters: () => [{ type: CustomIconService }], propDecorators: { isViewOnly: [{
|
|
13636
|
-
type: Input
|
|
13637
|
-
}], styles: [{
|
|
13578
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-toolbar-actions', template: "<app-undo-redo\n [canUndo]=\"canUndo\"\n [canRedo]=\"canRedo\"\n (undo)=\"undo.emit()\"\n (redo)=\"redo.emit()\" />\n<app-print (print)=\"print.emit()\" />\n<div class=\"separator\"></div>\n<app-font\n [isDisabled]=\"isViewOnly\"\n [styles]=\"styles\"\n (selectFont)=\"onApplyFontFamily($event)\" />\n<div class=\"separator\"></div>\n<app-font-size\n [isDisabled]=\"isViewOnly\"\n [fontSize]=\"styles.fontSize\"\n (selectFontSize)=\"onApplyFontSize($event)\" />\n<div class=\"separator\"></div>\n<app-font-style\n [isDisabled]=\"isViewOnly\"\n [bold]=\"styles.bold\"\n [italic]=\"styles.italic\"\n [underline]=\"styles.underline\"\n [fontColor]=\"styles.fontColor\"\n [highlightColor]=\"styles.highlightColor\"\n (selectFontColor)=\"onApplyFontColor($event)\"\n (toggleBold)=\"onApplyBold($event)\"\n (toggleItalic)=\"onApplyItalic($event)\"\n (toggleUnderline)=\"onApplyUnderline($event)\"\n (selectHighlightColor)=\"onApplyHighlightColor($event)\" />\n<div class=\"separator\"></div>\n<div\n *ngIf=\"elements.length\"\n class=\"custom-elements\">\n <button\n *ngFor=\"let element of elements\"\n mat-button\n [disabled]=\"isViewOnly\"\n (click)=\"onCreateElement(element)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n <div class=\"separator\"></div>\n</div>\n<app-format\n [isDisabled]=\"isViewOnly\"\n [alignment]=\"styles.alignment\"\n (selectAlignment)=\"onApplyAlignment($event)\" />\n<div class=\"separator\"></div>\n<app-numbering\n [isDisabled]=\"isViewOnly\"\n [selectedNumberingType]=\"numberingType\"\n [selectedNumberingTemplate]=\"numberingTemplateType\"\n (selectNumberingTemplate)=\"onSetNumberingTemplateType($event)\"\n (removeNumberings)=\"removeNumberings.emit()\" />\n", styles: [":host::ng-deep mat-button-toggle,:host::ng-deep .mat-button-toggle-button{height:32px;width:32px;border-radius:4px}:host::ng-deep mat-button-toggle mat-icon,:host::ng-deep .mat-button-toggle-button mat-icon{font-size:24px;height:24px;width:24px;border-radius:4px}:host::ng-deep mat-button-toggle .mat-button-toggle-label-content,:host::ng-deep .mat-button-toggle-button .mat-button-toggle-label-content{padding:0 2px}.separator{border-left:1px solid;opacity:.1;height:100%;margin:0 8px}.mdc-button{width:28px;height:28px;padding:0}.mat-mdc-button>.mat-icon{margin-right:0}.do-action{padding-right:1px;justify-content:center;display:flex}.custom-elements{display:flex;align-items:center;height:100%}.custom-elements .mdc-button{min-width:32px;min-height:32px;width:32px;height:32px;padding:0}.custom-elements .mdc-button>.mat-icon{margin-right:0;font-size:24px;height:24px;width:24px}\n"] }]
|
|
13579
|
+
}], ctorParameters: () => [{ type: CustomIconService }, { type: i0.Injector }], propDecorators: { isViewOnly: [{
|
|
13638
13580
|
type: Input
|
|
13639
13581
|
}], historyInfo: [{
|
|
13640
13582
|
type: Input
|
|
13641
|
-
}],
|
|
13583
|
+
}], styles: [{
|
|
13584
|
+
type: Input
|
|
13585
|
+
}], print: [{
|
|
13586
|
+
type: Output
|
|
13587
|
+
}], redo: [{
|
|
13588
|
+
type: Output
|
|
13589
|
+
}], undo: [{
|
|
13642
13590
|
type: Output
|
|
13643
13591
|
}], changeParagraphStyle: [{
|
|
13644
13592
|
type: Output
|
|
13593
|
+
}], changeTextStyle: [{
|
|
13594
|
+
type: Output
|
|
13645
13595
|
}], setNumberingTemplateType: [{
|
|
13646
13596
|
type: Output
|
|
13647
13597
|
}], removeNumberings: [{
|
|
13648
13598
|
type: Output
|
|
13599
|
+
}], createElement: [{
|
|
13600
|
+
type: Output
|
|
13601
|
+
}] } });
|
|
13602
|
+
|
|
13603
|
+
class EditorToolbarComponent {
|
|
13604
|
+
constructor() {
|
|
13605
|
+
this.showActions = true;
|
|
13606
|
+
this.openFileFromDisk = new EventEmitter();
|
|
13607
|
+
this.addCustomElement = new EventEmitter();
|
|
13608
|
+
this.saveAs = new EventEmitter();
|
|
13609
|
+
this.print = new EventEmitter();
|
|
13610
|
+
this.insertPageBreak = new EventEmitter();
|
|
13611
|
+
this.createDocument = new EventEmitter();
|
|
13612
|
+
this.insertImage = new EventEmitter();
|
|
13613
|
+
this.rename = new EventEmitter();
|
|
13614
|
+
this.delete = new EventEmitter();
|
|
13615
|
+
this.openEditMenu = new EventEmitter();
|
|
13616
|
+
this.redo = new EventEmitter();
|
|
13617
|
+
this.undo = new EventEmitter();
|
|
13618
|
+
this.cutSelected = new EventEmitter();
|
|
13619
|
+
this.copySelected = new EventEmitter();
|
|
13620
|
+
this.pasteClipboardData = new EventEmitter();
|
|
13621
|
+
this.selectAll = new EventEmitter();
|
|
13622
|
+
this.removeSelected = new EventEmitter();
|
|
13623
|
+
this.insertLink = new EventEmitter();
|
|
13624
|
+
this.createElement = new EventEmitter();
|
|
13625
|
+
this.changeParagraphStyle = new EventEmitter();
|
|
13626
|
+
this.changeTextStyle = new EventEmitter();
|
|
13627
|
+
this.setNumberingTemplateType = new EventEmitter();
|
|
13628
|
+
this.removeNumberings = new EventEmitter();
|
|
13629
|
+
this.insertTable = new EventEmitter();
|
|
13630
|
+
}
|
|
13631
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13632
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorToolbarComponent, selector: "app-editor-toolbar", inputs: { showActions: "showActions", isViewOnly: "isViewOnly", hasSelection: "hasSelection", clipboardData: "clipboardData", historyInfo: "historyInfo", styles: "styles" }, outputs: { openFileFromDisk: "openFileFromDisk", addCustomElement: "addCustomElement", saveAs: "saveAs", print: "print", insertPageBreak: "insertPageBreak", createDocument: "createDocument", insertImage: "insertImage", rename: "rename", delete: "delete", openEditMenu: "openEditMenu", redo: "redo", undo: "undo", cutSelected: "cutSelected", copySelected: "copySelected", pasteClipboardData: "pasteClipboardData", selectAll: "selectAll", removeSelected: "removeSelected", insertLink: "insertLink", createElement: "createElement", changeParagraphStyle: "changeParagraphStyle", changeTextStyle: "changeTextStyle", setNumberingTemplateType: "setNumberingTemplateType", removeNumberings: "removeNumberings", insertTable: "insertTable" }, ngImport: i0, template: "<app-menu-dropdowns\n [isViewOnly]=\"isViewOnly\"\n [hasSelection]=\"hasSelection\"\n [clipboardData]=\"clipboardData\"\n [historyInfo]=\"historyInfo\"\n [styles]=\"styles\"\n (openFileFromDisk)=\"openFileFromDisk.emit($event)\"\n (addCustomElement)=\"addCustomElement.emit($event)\"\n (saveAs)=\"saveAs.emit()\"\n (print)=\"print.emit()\"\n (insertPageBreak)=\"insertPageBreak.emit()\"\n (createDocument)=\"createDocument.emit()\"\n (insertImage)=\"insertImage.emit($event)\"\n (rename)=\"rename.emit()\"\n (delete)=\"delete.emit()\"\n (openEditMenu)=\"openEditMenu.emit()\"\n (redo)=\"redo.emit()\"\n (undo)=\"undo.emit()\"\n (cutSelected)=\"cutSelected.emit()\"\n (copySelected)=\"copySelected.emit()\"\n (pasteClipboardData)=\"pasteClipboardData.emit()\"\n (selectAll)=\"selectAll.emit()\"\n (removeSelected)=\"removeSelected.emit()\"\n (insertLink)=\"insertLink.emit()\"\n (createElement)=\"createElement.emit($event)\"\n (changeParagraphStyle)=\"changeParagraphStyle.emit($event)\"\n (changeTextStyle)=\"changeTextStyle.emit($event)\"\n (setNumberingTemplateType)=\"setNumberingTemplateType.emit($event)\"\n (removeNumberings)=\"removeNumberings.emit()\"\n (insertTable)=\"insertTable.emit($event)\" />\n<app-toolbar-actions\n *ngIf=\"styles && showActions\"\n [isViewOnly]=\"isViewOnly\"\n [historyInfo]=\"historyInfo\"\n [styles]=\"styles\"\n (print)=\"print.emit()\"\n (redo)=\"redo.emit()\"\n (undo)=\"undo.emit()\"\n (changeParagraphStyle)=\"changeParagraphStyle.emit($event)\"\n (changeTextStyle)=\"changeTextStyle.emit($event)\"\n (setNumberingTemplateType)=\"setNumberingTemplateType.emit($event)\"\n (removeNumberings)=\"removeNumberings.emit()\"\n (createElement)=\"createElement.emit($event)\" />\n", styles: [":host ::ng-deep{display:flex;position:relative;width:100%;height:32px}app-toolbar-actions{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MenuDropdownsComponent, selector: "app-menu-dropdowns", inputs: ["isViewOnly", "hasSelection", "clipboardData", "historyInfo", "styles"], outputs: ["openFileFromDisk", "addCustomElement", "saveAs", "print", "insertPageBreak", "createDocument", "insertImage", "rename", "delete", "openEditMenu", "redo", "undo", "cutSelected", "copySelected", "pasteClipboardData", "selectAll", "removeSelected", "insertLink", "createElement", "changeParagraphStyle", "changeTextStyle", "setNumberingTemplateType", "removeNumberings", "insertTable"] }, { kind: "component", type: ToolbarActionsComponent, selector: "app-toolbar-actions", inputs: ["isViewOnly", "historyInfo", "styles"], outputs: ["print", "redo", "undo", "changeParagraphStyle", "changeTextStyle", "setNumberingTemplateType", "removeNumberings", "createElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13633
|
+
}
|
|
13634
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorToolbarComponent, decorators: [{
|
|
13635
|
+
type: Component,
|
|
13636
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-editor-toolbar', template: "<app-menu-dropdowns\n [isViewOnly]=\"isViewOnly\"\n [hasSelection]=\"hasSelection\"\n [clipboardData]=\"clipboardData\"\n [historyInfo]=\"historyInfo\"\n [styles]=\"styles\"\n (openFileFromDisk)=\"openFileFromDisk.emit($event)\"\n (addCustomElement)=\"addCustomElement.emit($event)\"\n (saveAs)=\"saveAs.emit()\"\n (print)=\"print.emit()\"\n (insertPageBreak)=\"insertPageBreak.emit()\"\n (createDocument)=\"createDocument.emit()\"\n (insertImage)=\"insertImage.emit($event)\"\n (rename)=\"rename.emit()\"\n (delete)=\"delete.emit()\"\n (openEditMenu)=\"openEditMenu.emit()\"\n (redo)=\"redo.emit()\"\n (undo)=\"undo.emit()\"\n (cutSelected)=\"cutSelected.emit()\"\n (copySelected)=\"copySelected.emit()\"\n (pasteClipboardData)=\"pasteClipboardData.emit()\"\n (selectAll)=\"selectAll.emit()\"\n (removeSelected)=\"removeSelected.emit()\"\n (insertLink)=\"insertLink.emit()\"\n (createElement)=\"createElement.emit($event)\"\n (changeParagraphStyle)=\"changeParagraphStyle.emit($event)\"\n (changeTextStyle)=\"changeTextStyle.emit($event)\"\n (setNumberingTemplateType)=\"setNumberingTemplateType.emit($event)\"\n (removeNumberings)=\"removeNumberings.emit()\"\n (insertTable)=\"insertTable.emit($event)\" />\n<app-toolbar-actions\n *ngIf=\"styles && showActions\"\n [isViewOnly]=\"isViewOnly\"\n [historyInfo]=\"historyInfo\"\n [styles]=\"styles\"\n (print)=\"print.emit()\"\n (redo)=\"redo.emit()\"\n (undo)=\"undo.emit()\"\n (changeParagraphStyle)=\"changeParagraphStyle.emit($event)\"\n (changeTextStyle)=\"changeTextStyle.emit($event)\"\n (setNumberingTemplateType)=\"setNumberingTemplateType.emit($event)\"\n (removeNumberings)=\"removeNumberings.emit()\"\n (createElement)=\"createElement.emit($event)\" />\n", styles: [":host ::ng-deep{display:flex;position:relative;width:100%;height:32px}app-toolbar-actions{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
|
|
13637
|
+
}], propDecorators: { showActions: [{
|
|
13638
|
+
type: Input
|
|
13639
|
+
}], isViewOnly: [{
|
|
13640
|
+
type: Input
|
|
13641
|
+
}], hasSelection: [{
|
|
13642
|
+
type: Input
|
|
13643
|
+
}], clipboardData: [{
|
|
13644
|
+
type: Input
|
|
13645
|
+
}], historyInfo: [{
|
|
13646
|
+
type: Input
|
|
13647
|
+
}], styles: [{
|
|
13648
|
+
type: Input
|
|
13649
|
+
}], openFileFromDisk: [{
|
|
13650
|
+
type: Output
|
|
13651
|
+
}], addCustomElement: [{
|
|
13652
|
+
type: Output
|
|
13653
|
+
}], saveAs: [{
|
|
13654
|
+
type: Output
|
|
13655
|
+
}], print: [{
|
|
13656
|
+
type: Output
|
|
13657
|
+
}], insertPageBreak: [{
|
|
13658
|
+
type: Output
|
|
13659
|
+
}], createDocument: [{
|
|
13660
|
+
type: Output
|
|
13661
|
+
}], insertImage: [{
|
|
13662
|
+
type: Output
|
|
13663
|
+
}], rename: [{
|
|
13664
|
+
type: Output
|
|
13665
|
+
}], delete: [{
|
|
13666
|
+
type: Output
|
|
13667
|
+
}], openEditMenu: [{
|
|
13668
|
+
type: Output
|
|
13649
13669
|
}], redo: [{
|
|
13650
13670
|
type: Output
|
|
13651
13671
|
}], undo: [{
|
|
13652
13672
|
type: Output
|
|
13653
|
-
}],
|
|
13673
|
+
}], cutSelected: [{
|
|
13674
|
+
type: Output
|
|
13675
|
+
}], copySelected: [{
|
|
13676
|
+
type: Output
|
|
13677
|
+
}], pasteClipboardData: [{
|
|
13678
|
+
type: Output
|
|
13679
|
+
}], selectAll: [{
|
|
13680
|
+
type: Output
|
|
13681
|
+
}], removeSelected: [{
|
|
13682
|
+
type: Output
|
|
13683
|
+
}], insertLink: [{
|
|
13684
|
+
type: Output
|
|
13685
|
+
}], createElement: [{
|
|
13686
|
+
type: Output
|
|
13687
|
+
}], changeParagraphStyle: [{
|
|
13688
|
+
type: Output
|
|
13689
|
+
}], changeTextStyle: [{
|
|
13690
|
+
type: Output
|
|
13691
|
+
}], setNumberingTemplateType: [{
|
|
13692
|
+
type: Output
|
|
13693
|
+
}], removeNumberings: [{
|
|
13694
|
+
type: Output
|
|
13695
|
+
}], insertTable: [{
|
|
13654
13696
|
type: Output
|
|
13655
13697
|
}] } });
|
|
13656
13698
|
|
|
@@ -13663,10 +13705,10 @@ class HeadingComponent {
|
|
|
13663
13705
|
this.selectedHeading = heading;
|
|
13664
13706
|
console.log('select heading', heading);
|
|
13665
13707
|
}
|
|
13666
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13667
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13708
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13709
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HeadingComponent, selector: "app-heading", ngImport: i0, template: "<button\n mat-button\n [matMenuTriggerFor]=\"headingMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"heading-menu\">\n <span>{{ selectedHeading }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu #headingMenu=\"matMenu\">\n <ng-container *ngFor=\"let heading of headings\">\n <button\n mat-menu-item\n (click)=\"onSelectHeading(heading)\">\n {{ heading }}\n </button>\n </ng-container>\n</mat-menu>\n", styles: [":host{display:flex;align-items:center}.heading-menu{display:flex;justify-content:space-between;align-items:center;min-width:150px}span{padding-left:10%}mat-icon{margin-right:5%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13668
13710
|
}
|
|
13669
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeadingComponent, decorators: [{
|
|
13670
13712
|
type: Component,
|
|
13671
13713
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-heading', template: "<button\n mat-button\n [matMenuTriggerFor]=\"headingMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n <div class=\"heading-menu\">\n <span>{{ selectedHeading }}</span>\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n </div>\n</button>\n<mat-menu #headingMenu=\"matMenu\">\n <ng-container *ngFor=\"let heading of headings\">\n <button\n mat-menu-item\n (click)=\"onSelectHeading(heading)\">\n {{ heading }}\n </button>\n </ng-container>\n</mat-menu>\n", styles: [":host{display:flex;align-items:center}.heading-menu{display:flex;justify-content:space-between;align-items:center;min-width:150px}span{padding-left:10%}mat-icon{margin-right:5%}\n"] }]
|
|
13672
13714
|
}] });
|
|
@@ -13725,10 +13767,10 @@ class ZoomComponent {
|
|
|
13725
13767
|
event.stopPropagation();
|
|
13726
13768
|
trigger.panelOpen ? trigger.closePanel() : trigger.openPanel();
|
|
13727
13769
|
}
|
|
13728
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13729
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ZoomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13771
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ZoomComponent, selector: "app-zoom", viewQueries: [{ propertyName: "zoom", first: true, predicate: ["zoom"], descendants: true }], ngImport: i0, template: "<input\n [matAutocomplete]=\"auto\"\n [formControl]=\"myControl\"\n #trigger=\"matAutocompleteTrigger\"\n #zoom\n (focusout)=\"onSetPreviousValue()\"\n (keydown)=\"onKeyDown($event, trigger)\" />\n<button\n mat-button\n (click)=\"openPanel($event, trigger)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n</button>\n<mat-autocomplete\n class=\"zoom-autocomplite\"\n #auto=\"matAutocomplete\"\n [panelWidth]=\"80\">\n <mat-option\n *ngFor=\"let zoomPercentage of zoomPercentages\"\n (click)=\"onSelectZoom(zoomPercentage)\">\n {{ zoomPercentage }}%\n </mat-option>\n</mat-autocomplete>\n", styles: [":host{display:flex;align-items:center;width:90px}.zoom-menu{display:flex;justify-content:space-between;align-items:center;min-width:100px}span{padding-left:10%}.mdc-button{min-width:20px;height:25px;padding:0;margin-right:10px}mat-icon{width:20px;margin-right:5%}input{padding-left:10px;font-size:14px;width:60px;border-color:transparent;outline:none}::ng-deep .mdc-menu-surface.mat-mdc-autocomplete-panel{max-height:100%!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13730
13772
|
}
|
|
13731
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ZoomComponent, decorators: [{
|
|
13732
13774
|
type: Component,
|
|
13733
13775
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-zoom', template: "<input\n [matAutocomplete]=\"auto\"\n [formControl]=\"myControl\"\n #trigger=\"matAutocompleteTrigger\"\n #zoom\n (focusout)=\"onSetPreviousValue()\"\n (keydown)=\"onKeyDown($event, trigger)\" />\n<button\n mat-button\n (click)=\"openPanel($event, trigger)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-arrow-dropdown\"></mat-icon>\n</button>\n<mat-autocomplete\n class=\"zoom-autocomplite\"\n #auto=\"matAutocomplete\"\n [panelWidth]=\"80\">\n <mat-option\n *ngFor=\"let zoomPercentage of zoomPercentages\"\n (click)=\"onSelectZoom(zoomPercentage)\">\n {{ zoomPercentage }}%\n </mat-option>\n</mat-autocomplete>\n", styles: [":host{display:flex;align-items:center;width:90px}.zoom-menu{display:flex;justify-content:space-between;align-items:center;min-width:100px}span{padding-left:10%}.mdc-button{min-width:20px;height:25px;padding:0;margin-right:10px}mat-icon{width:20px;margin-right:5%}input{padding-left:10px;font-size:14px;width:60px;border-color:transparent;outline:none}::ng-deep .mdc-menu-surface.mat-mdc-autocomplete-panel{max-height:100%!important}\n"] }]
|
|
13734
13776
|
}], ctorParameters: () => [], propDecorators: { zoom: [{
|
|
@@ -13737,8 +13779,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13737
13779
|
}] } });
|
|
13738
13780
|
|
|
13739
13781
|
class EditorToolbarModule {
|
|
13740
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13741
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
13782
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13783
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: EditorToolbarModule, declarations: [ColorPickerComponent,
|
|
13742
13784
|
EditorToolbarComponent,
|
|
13743
13785
|
FontComponent,
|
|
13744
13786
|
FontComponent,
|
|
@@ -13750,11 +13792,14 @@ class EditorToolbarModule {
|
|
|
13750
13792
|
FormatComponent,
|
|
13751
13793
|
HeadingComponent,
|
|
13752
13794
|
HeadingComponent,
|
|
13795
|
+
MenuDropdownsComponent,
|
|
13753
13796
|
NumberingComponent,
|
|
13754
13797
|
PrintComponent,
|
|
13798
|
+
ToolbarActionsComponent,
|
|
13755
13799
|
UndoRedoComponent,
|
|
13756
13800
|
ZoomComponent], imports: [CommonModule,
|
|
13757
13801
|
FormsModule,
|
|
13802
|
+
InsertTableComponent,
|
|
13758
13803
|
MatAutocompleteModule,
|
|
13759
13804
|
MatButtonModule,
|
|
13760
13805
|
MatButtonToggleModule,
|
|
@@ -13765,8 +13810,9 @@ class EditorToolbarModule {
|
|
|
13765
13810
|
MatToolbarModule,
|
|
13766
13811
|
NgxColorsModule,
|
|
13767
13812
|
ReactiveFormsModule], exports: [EditorToolbarComponent] }); }
|
|
13768
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
13813
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorToolbarModule, providers: [CustomIconService], imports: [CommonModule,
|
|
13769
13814
|
FormsModule,
|
|
13815
|
+
InsertTableComponent,
|
|
13770
13816
|
MatAutocompleteModule,
|
|
13771
13817
|
MatButtonModule,
|
|
13772
13818
|
MatButtonToggleModule,
|
|
@@ -13778,7 +13824,7 @@ class EditorToolbarModule {
|
|
|
13778
13824
|
NgxColorsModule,
|
|
13779
13825
|
ReactiveFormsModule] }); }
|
|
13780
13826
|
}
|
|
13781
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13827
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorToolbarModule, decorators: [{
|
|
13782
13828
|
type: NgModule,
|
|
13783
13829
|
args: [{
|
|
13784
13830
|
declarations: [
|
|
@@ -13794,14 +13840,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13794
13840
|
FormatComponent,
|
|
13795
13841
|
HeadingComponent,
|
|
13796
13842
|
HeadingComponent,
|
|
13843
|
+
MenuDropdownsComponent,
|
|
13797
13844
|
NumberingComponent,
|
|
13798
13845
|
PrintComponent,
|
|
13846
|
+
ToolbarActionsComponent,
|
|
13799
13847
|
UndoRedoComponent,
|
|
13800
13848
|
ZoomComponent
|
|
13801
13849
|
],
|
|
13802
13850
|
imports: [
|
|
13803
13851
|
CommonModule,
|
|
13804
13852
|
FormsModule,
|
|
13853
|
+
InsertTableComponent,
|
|
13805
13854
|
MatAutocompleteModule,
|
|
13806
13855
|
MatButtonModule,
|
|
13807
13856
|
MatButtonToggleModule,
|
|
@@ -13904,20 +13953,24 @@ class ConfirmDialogComponent {
|
|
|
13904
13953
|
constructor(data, ref) {
|
|
13905
13954
|
this.data = data;
|
|
13906
13955
|
this.ref = ref;
|
|
13956
|
+
this.modal = true;
|
|
13907
13957
|
}
|
|
13908
13958
|
onClose(status) {
|
|
13909
13959
|
this.ref.close(status);
|
|
13910
13960
|
}
|
|
13911
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13912
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
13961
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$4.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13962
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", host: { properties: { "class.noder-modal": "this.modal" } }, ngImport: i0, template: "<p class=\"title\">{{ data.title ? data.title : 'Confirmation' }}</p>\n<div class=\"content\">\n <p>{{ data.message }}</p>\n</div>\n<div class=\"actions\">\n <button\n id=\"confirm-dialog-cancel-btn\"\n mat-button\n (click)=\"onClose(false)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n {{ data.cancel ? data.cancel : 'Cancel' }}\n </button>\n <button\n id=\"confirm-dialog-confirm-btn\"\n mat-raised-button\n class=\"delete-btn\"\n color=\"primary\"\n (click)=\"onClose(true)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-done-thin\"></mat-icon>\n {{ data.confirm ? data.confirm : 'Delete' }}\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-width:400px;max-width:440px;min-height:208px}.title{font-size:18px;font-weight:700;text-transform:capitalize;padding:24px 24px 12px;margin:0;border-bottom-width:1px;border-bottom-style:solid}.content{display:flex;flex:1;font-size:16px;line-height:20px;padding:20px 24px 16px}.content p{margin:0;overflow:hidden;text-overflow:ellipsis}.actions{display:flex;justify-content:center;margin-bottom:24px;gap:8px}.actions button{height:40px;width:120px;text-transform:uppercase}.actions button mat-icon{font-size:24px;height:24px;width:24px}.actions button .mat-button-toggle-label-content{padding:0 2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
13913
13963
|
}
|
|
13914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13964
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
|
|
13915
13965
|
type: Component,
|
|
13916
|
-
args: [{ standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule, MatIconModule], selector: 'app-confirm-dialog', template: "<p class=\"title\">{{ data.title ? data.title : 'Confirmation' }}</p>\n<div class=\"content\">\n <p>{{ data.message }}</p>\n</div>\n<div class=\"actions\">\n <button\n id=\"confirm-dialog-cancel-btn\"\n mat-button\n (click)=\"onClose(false)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n {{ data.cancel ? data.cancel : 'Cancel' }}\n </button>\n <button\n id=\"confirm-dialog-confirm-btn\"\n mat-raised-button\n class=\"delete-btn\"\n color=\"primary\"\n (click)=\"onClose(true)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-done-thin\"></mat-icon>\n {{ data.confirm ? data.confirm : 'Delete' }}\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-width:400px;max-width:440px;min-height:208px}.title{font-size:18px;font-weight:700;text-transform:capitalize;padding:24px 24px 12px;margin:0}.content{display:flex;flex:1;font-size:16px;line-height:20px;padding:20px 24px 16px}.content p{margin:0;overflow:hidden;text-overflow:ellipsis}.actions{display:flex;justify-content:center;margin-bottom:24px;gap:8px}.actions button{height:40px;width:120px}.actions button mat-icon{font-size:24px;height:24px;width:24px}.actions button .mat-button-toggle-label-content{padding:0 2px}\n"] }]
|
|
13966
|
+
args: [{ standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule, MatIconModule], selector: 'app-confirm-dialog', template: "<p class=\"title\">{{ data.title ? data.title : 'Confirmation' }}</p>\n<div class=\"content\">\n <p>{{ data.message }}</p>\n</div>\n<div class=\"actions\">\n <button\n id=\"confirm-dialog-cancel-btn\"\n mat-button\n (click)=\"onClose(false)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n {{ data.cancel ? data.cancel : 'Cancel' }}\n </button>\n <button\n id=\"confirm-dialog-confirm-btn\"\n mat-raised-button\n class=\"delete-btn\"\n color=\"primary\"\n (click)=\"onClose(true)\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-done-thin\"></mat-icon>\n {{ data.confirm ? data.confirm : 'Delete' }}\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-width:400px;max-width:440px;min-height:208px}.title{font-size:18px;font-weight:700;text-transform:capitalize;padding:24px 24px 12px;margin:0;border-bottom-width:1px;border-bottom-style:solid}.content{display:flex;flex:1;font-size:16px;line-height:20px;padding:20px 24px 16px}.content p{margin:0;overflow:hidden;text-overflow:ellipsis}.actions{display:flex;justify-content:center;margin-bottom:24px;gap:8px}.actions button{height:40px;width:120px;text-transform:uppercase}.actions button mat-icon{font-size:24px;height:24px;width:24px}.actions button .mat-button-toggle-label-content{padding:0 2px}\n"] }]
|
|
13917
13967
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
13918
13968
|
type: Inject,
|
|
13919
13969
|
args: [MAT_DIALOG_DATA]
|
|
13920
|
-
}] }, { type: i1$4.MatDialogRef }]
|
|
13970
|
+
}] }, { type: i1$4.MatDialogRef }], propDecorators: { modal: [{
|
|
13971
|
+
type: HostBinding,
|
|
13972
|
+
args: ['class.noder-modal']
|
|
13973
|
+
}] } });
|
|
13921
13974
|
|
|
13922
13975
|
const URL_PATTERN = /^(https?:\/\/)?(www\.)?[-a-zA-Z0-9áéíóúÁÉÍÓÚüÜñÑ@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9áéíóúÁÉÍÓÚüÜñÑ@:%_+.~#?&/=]*)$/;
|
|
13923
13976
|
class ValidationHelper {
|
|
@@ -13938,6 +13991,7 @@ class AddLinkDialogComponent {
|
|
|
13938
13991
|
this.dialogRef = dialogRef;
|
|
13939
13992
|
this.data = data;
|
|
13940
13993
|
this.fb = fb;
|
|
13994
|
+
this.modal = true;
|
|
13941
13995
|
dialogRef.disableClose = true;
|
|
13942
13996
|
this.form = this.fb.group({
|
|
13943
13997
|
text: [data.text, Validators.required],
|
|
@@ -13956,10 +14010,10 @@ class AddLinkDialogComponent {
|
|
|
13956
14010
|
}
|
|
13957
14011
|
this.onApply();
|
|
13958
14012
|
}
|
|
13959
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
13960
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
14013
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddLinkDialogComponent, deps: [{ token: i1$4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14014
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddLinkDialogComponent, isStandalone: true, selector: "app-add-link-dialog", host: { properties: { "class.noder-modal": "this.modal" } }, ngImport: i0, template: "<div mat-dialog-title>{{ data.title }}</div>\n<div\n mat-dialog-content\n [formGroup]=\"form\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ data.textPlaceholder }}</mat-label>\n <input\n matInput\n [formControl]=\"form.controls.text\"\n (keydown.enter)=\"onEnter()\"\n required />\n <mat-error>The {{ data.textPlaceholder }} is required.</mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ data.linkPlaceholder }}</mat-label>\n <input\n matInput\n [formControl]=\"form.controls.link\"\n (keydown.enter)=\"onEnter()\"\n required />\n <mat-error>The {{ data.linkPlaceholder }} is required.</mat-error>\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n Cancel\n </button>\n <button\n mat-raised-button\n color=\"primary\"\n class=\"apply-btn\"\n [disabled]=\"form.invalid\"\n (click)=\"onApply()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-done-thin\"></mat-icon>\n Apply\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:300px;width:430px;overflow:hidden}:host ::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: 12px;height:48px}:host ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:12px}.mat-mdc-dialog-title{font-weight:600;padding-top:5px}mat-form-field{width:100%}.mat-mdc-dialog-content{padding-top:10px;padding-bottom:0}.mat-mdc-dialog-actions{display:flex;justify-content:center;padding-top:5px;height:40px;margin-bottom:30px}.mat-mdc-dialog-actions button{width:30%;height:100%;letter-spacing:1px;border-radius:8px;text-transform:uppercase}.mat-mdc-dialog-actions button .apply-btn{font-weight:400}.mat-mdc-dialog-actions button .mat-icon{font-size:24px;height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.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"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13961
14015
|
}
|
|
13962
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
14016
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddLinkDialogComponent, decorators: [{
|
|
13963
14017
|
type: Component,
|
|
13964
14018
|
args: [{ standalone: true, imports: [
|
|
13965
14019
|
CommonModule,
|
|
@@ -13970,11 +14024,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
13970
14024
|
MatInputModule,
|
|
13971
14025
|
ReactiveFormsModule,
|
|
13972
14026
|
TranslateModule
|
|
13973
|
-
], selector: 'app-add-link-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div mat-dialog-title>{{ data.title }}</div>\n<div\n mat-dialog-content\n [formGroup]=\"form\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ data.textPlaceholder }}</mat-label>\n <input\n matInput\n [formControl]=\"form.controls.text\"\n (keydown.enter)=\"onEnter()\"\n required />\n <mat-error>The {{ data.textPlaceholder }} is required.</mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ data.linkPlaceholder }}</mat-label>\n <input\n matInput\n [formControl]=\"form.controls.link\"\n (keydown.enter)=\"onEnter()\"\n required />\n <mat-error>The {{ data.linkPlaceholder }} is required.</mat-error>\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n Cancel\n </button>\n <button\n mat-raised-button\n color=\"primary\"\n class=\"apply-btn\"\n [disabled]=\"form.invalid\"\n (click)=\"onApply()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-done-thin\"></mat-icon>\n Apply\n </button>\n</div>\n", styles: [":host{height:300px;width:430px;
|
|
14027
|
+
], selector: 'app-add-link-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div mat-dialog-title>{{ data.title }}</div>\n<div\n mat-dialog-content\n [formGroup]=\"form\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ data.textPlaceholder }}</mat-label>\n <input\n matInput\n [formControl]=\"form.controls.text\"\n (keydown.enter)=\"onEnter()\"\n required />\n <mat-error>The {{ data.textPlaceholder }} is required.</mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ data.linkPlaceholder }}</mat-label>\n <input\n matInput\n [formControl]=\"form.controls.link\"\n (keydown.enter)=\"onEnter()\"\n required />\n <mat-error>The {{ data.linkPlaceholder }} is required.</mat-error>\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n Cancel\n </button>\n <button\n mat-raised-button\n color=\"primary\"\n class=\"apply-btn\"\n [disabled]=\"form.invalid\"\n (click)=\"onApply()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-done-thin\"></mat-icon>\n Apply\n </button>\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:300px;width:430px;overflow:hidden}:host ::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: 12px;height:48px}:host ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:12px}.mat-mdc-dialog-title{font-weight:600;padding-top:5px}mat-form-field{width:100%}.mat-mdc-dialog-content{padding-top:10px;padding-bottom:0}.mat-mdc-dialog-actions{display:flex;justify-content:center;padding-top:5px;height:40px;margin-bottom:30px}.mat-mdc-dialog-actions button{width:30%;height:100%;letter-spacing:1px;border-radius:8px;text-transform:uppercase}.mat-mdc-dialog-actions button .apply-btn{font-weight:400}.mat-mdc-dialog-actions button .mat-icon{font-size:24px;height:24px}\n"] }]
|
|
13974
14028
|
}], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: AddLinkDialogOptions, decorators: [{
|
|
13975
14029
|
type: Inject,
|
|
13976
14030
|
args: [MAT_DIALOG_DATA]
|
|
13977
|
-
}] }, { type: i2$
|
|
14031
|
+
}] }, { type: i2$2.FormBuilder }], propDecorators: { modal: [{
|
|
14032
|
+
type: HostBinding,
|
|
14033
|
+
args: ['class.noder-modal']
|
|
14034
|
+
}] } });
|
|
13978
14035
|
|
|
13979
14036
|
class DocumentNameModel {
|
|
13980
14037
|
constructor(fields) {
|
|
@@ -14037,5 +14094,5 @@ class OperationModel {
|
|
|
14037
14094
|
* Generated bundle index. Do not edit.
|
|
14038
14095
|
*/
|
|
14039
14096
|
|
|
14040
|
-
export { AddLinkDialogComponent, AddLinkDialogOptions, Alignment, BaseNoderComponent, BreakTypes, CommandModel, CommandType, CommandsService, ConfirmDialogComponent, DEFAULT_BACKGROUND_COLOR, DEFAULT_EDGE_MAX_HEIGHT_MULTIPLIER, DEFAULT_FILE_NAME, DEFAULT_FONT_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_HEADINGS, DEFAULT_HEADING_STYLE_ID, DEFAULT_PARAGRAPH_STYLE, DEFAULT_TAB_WIDTH, DEFAULT_TEXT_STYLE, DefaultPageSize, DocumentInfo, DocumentModel, DocumentNameModel, DocxModel, DomHelper, EditorComponent,
|
|
14097
|
+
export { AddLinkDialogComponent, AddLinkDialogOptions, Alignment, BaseNoderComponent, BreakTypes, CommandModel, CommandType, CommandsService, ConfirmDialogComponent, DEFAULT_BACKGROUND_COLOR, DEFAULT_EDGE_MAX_HEIGHT_MULTIPLIER, DEFAULT_FILE_NAME, DEFAULT_FONT_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_HEADINGS, DEFAULT_HEADING_STYLE_ID, DEFAULT_PARAGRAPH_STYLE, DEFAULT_TAB_WIDTH, DEFAULT_TEXT_STYLE, DefaultPageSize, DocumentInfo, DocumentModel, DocumentNameModel, DocxModel, DomHelper, EditorComponent, EditorModule, EditorSearchDialogComponent, EditorService, EditorTitleComponent, EditorToolbarComponent, EditorToolbarModule, ElementDataModel, ElementModel, ExternalElementModel, ExternalElementService, FileSourceModel, FormatStyleHelper, HYPERLINK_FONT_COLOR, HYPERLINK_HEADING_STYLE_ID, ImageApiService, ImageDataModel, LastDocumentRevisionModel, Mode, NEW_LINE_MARKUP, NoderExternalComponent, NumberingLevelModel, OpenDocx, OperationModel, OperationsHistoryInfoModel, PageType, PaginatorSizes, ParagraphStyleModel, RevisionHelper, RevisionModel, SetDocx, TextStyleModel };
|
|
14041
14098
|
//# sourceMappingURL=talrace-ngx-noder.mjs.map
|