@sd-angular/core 19.0.0-beta.1 → 19.0.0-beta.3
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/assets/scss/core/bootstrap.scss +25 -0
- package/assets/scss/core/form.scss +4 -10
- package/fesm2022/sd-angular-core-components-document-builder.mjs +92 -32
- package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-table.mjs +1 -1
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-textarea.mjs +2 -2
- package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-auth.mjs +137 -0
- package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -0
- package/fesm2022/sd-angular-core-modules.mjs +1 -0
- package/fesm2022/sd-angular-core-modules.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-confirm.mjs +59 -24
- package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-models.mjs +11 -2
- package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
- package/modules/auth/configurations/auth.configuration.d.ts +19 -0
- package/modules/auth/configurations/index.d.ts +1 -0
- package/modules/auth/guards/auth.guard.d.ts +11 -0
- package/modules/auth/guards/index.d.ts +2 -0
- package/modules/auth/guards/portal.guard.d.ts +11 -0
- package/modules/auth/index.d.ts +3 -0
- package/modules/auth/services/auth.model.d.ts +8 -0
- package/modules/auth/services/auth.service.d.ts +17 -0
- package/modules/auth/services/index.d.ts +2 -0
- package/modules/index.d.ts +1 -0
- package/package.json +60 -56
- package/services/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +8 -0
- package/services/confirm/src/lib/confirm.service.d.ts +13 -0
- package/utilities/models/src/maybe-async.model.d.ts +1 -0
|
@@ -94,3 +94,28 @@
|
|
|
94
94
|
.font-weight-medium {
|
|
95
95
|
font-weight: 500 !important;
|
|
96
96
|
}
|
|
97
|
+
|
|
98
|
+
// Custom grid
|
|
99
|
+
.row-md {
|
|
100
|
+
@include make-row(16px);
|
|
101
|
+
|
|
102
|
+
> * {
|
|
103
|
+
@include make-col-ready(16px);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.row-sm {
|
|
108
|
+
@include make-row(8px);
|
|
109
|
+
|
|
110
|
+
> * {
|
|
111
|
+
@include make-col-ready(8px);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.row-xs {
|
|
116
|
+
@include make-row(4px);
|
|
117
|
+
|
|
118
|
+
> * {
|
|
119
|
+
@include make-col-ready(4px);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -62,13 +62,11 @@
|
|
|
62
62
|
.mat-mdc-form-field-infix {
|
|
63
63
|
mat-select.mat-mdc-select,
|
|
64
64
|
mat-date-range-input.mat-mdc-date-range-input,
|
|
65
|
-
input.mat-mdc-input-element
|
|
65
|
+
input.mat-mdc-input-element,
|
|
66
|
+
textarea.mat-mdc-input-element {
|
|
66
67
|
font-size: 14px;
|
|
67
68
|
margin-top: 10px; // Text hiển thị trong auto complete
|
|
68
69
|
}
|
|
69
|
-
textarea.mat-mdc-input-element {
|
|
70
|
-
font-size: 14px; // Font-size hiển thị trong text-area outline
|
|
71
|
-
}
|
|
72
70
|
}
|
|
73
71
|
|
|
74
72
|
.mat-mdc-form-field-suffix {
|
|
@@ -158,14 +156,10 @@
|
|
|
158
156
|
|
|
159
157
|
mat-select.mat-mdc-select,
|
|
160
158
|
mat-date-range-input.mat-mdc-date-range-input,
|
|
161
|
-
input.mat-mdc-input-element
|
|
162
|
-
margin-top: 2px; // Text hiển thị trong auto complete
|
|
163
|
-
font-size: 14px;
|
|
164
|
-
}
|
|
165
|
-
|
|
159
|
+
input.mat-mdc-input-element,
|
|
166
160
|
textarea.mat-mdc-input-element {
|
|
161
|
+
margin-top: 2px; // Text hiển thị trong auto complete
|
|
167
162
|
font-size: 14px;
|
|
168
|
-
margin-top: 2px;
|
|
169
163
|
}
|
|
170
164
|
}
|
|
171
165
|
|
|
@@ -279,6 +279,9 @@ class VariablePlugin extends Plugin {
|
|
|
279
279
|
// 1. Định nghĩa Schema (Model)
|
|
280
280
|
schema.register('variable', {
|
|
281
281
|
inheritAllFrom: '$inlineObject',
|
|
282
|
+
allowWhere: '$text',
|
|
283
|
+
isInline: true,
|
|
284
|
+
isObject: true,
|
|
282
285
|
allowAttributes: ['id', 'value', 'display', 'data'],
|
|
283
286
|
});
|
|
284
287
|
// 2. Conversion: Model -> View (Hiển thị ra HTML)
|
|
@@ -310,12 +313,6 @@ class VariablePlugin extends Plugin {
|
|
|
310
313
|
classes: 'variable-widget',
|
|
311
314
|
},
|
|
312
315
|
model: (viewElement, { writer: modelWriter }) => {
|
|
313
|
-
// Lấy text bên trong làm label, bỏ dấu {{ }}
|
|
314
|
-
// const textNode = viewElement.getChild(0);
|
|
315
|
-
// let label = '';
|
|
316
|
-
// if (textNode && textNode.is('$text')) {
|
|
317
|
-
// label = textNode.data.replace(/{{|}}/g, '');
|
|
318
|
-
// }
|
|
319
316
|
const dataJson = viewElement.getAttribute('data-json');
|
|
320
317
|
let parsedData = null;
|
|
321
318
|
try {
|
|
@@ -399,30 +396,93 @@ class VariablePlugin extends Plugin {
|
|
|
399
396
|
});
|
|
400
397
|
}
|
|
401
398
|
});
|
|
402
|
-
//
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
//
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
399
|
+
// 5. Lắng nghe sự kiện bàn phím
|
|
400
|
+
let isNavigating = false;
|
|
401
|
+
this.editor.editing.view.document.on('keydown', (evt, data) => {
|
|
402
|
+
// Mã phím mũi tên: 37 (Left), 38 (Up), 39 (Right), 40 (Down)
|
|
403
|
+
const isArrowKey = data.keyCode >= 37 && data.keyCode <= 40;
|
|
404
|
+
if (isArrowKey) {
|
|
405
|
+
isNavigating = true;
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
isNavigating = false;
|
|
409
|
+
}
|
|
410
|
+
}, { priority: 'high' });
|
|
411
|
+
// 6. Lắng nghe sự kiện Click chuột
|
|
412
|
+
this.editor.editing.view.document.on('mousedown', () => {
|
|
413
|
+
isNavigating = true;
|
|
414
|
+
});
|
|
415
|
+
this.listenTo(editor.model.document.selection, 'change:range', () => {
|
|
416
|
+
// Nếu không phải là hành động click hoặc mũi tên thì thoát hàm.
|
|
417
|
+
if (!isNavigating) {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
const model = editor.model;
|
|
421
|
+
const selection = model.document.selection;
|
|
422
|
+
if (!selection.isCollapsed)
|
|
423
|
+
return;
|
|
424
|
+
const position = selection.getFirstPosition();
|
|
425
|
+
const nodeBefore = position?.nodeBefore;
|
|
426
|
+
if (!position)
|
|
427
|
+
return;
|
|
428
|
+
// Kiểm tra: Node đứng trước con trỏ là variable
|
|
429
|
+
if (nodeBefore && nodeBefore.is('element', 'variable')) {
|
|
430
|
+
// Lấy node ngay sau variable để kiểm tra
|
|
431
|
+
const nextNode = nodeBefore.nextSibling;
|
|
432
|
+
// Logic: Nếu phía sau KHÔNG CÓ GÌ hoặc KHÔNG PHẢI LÀ TEXT
|
|
433
|
+
if (!nextNode || !nextNode.is('$text')) {
|
|
434
|
+
model.change(writer => {
|
|
435
|
+
// Chèn thêm con trỏ variable
|
|
436
|
+
writer.insertText('\u00A0', nodeBefore, 'after');
|
|
437
|
+
// Lấy vị trí ngay sau variable (lúc này đang là đầu của text node mới)
|
|
438
|
+
const posAfterVariable = writer.createPositionAfter(nodeBefore);
|
|
439
|
+
// Dịch chuyển vị trí đó sang phải 1 đơn vị (bỏ qua ký tự vừa thêm)
|
|
440
|
+
const targetPos = posAfterVariable.getShiftedBy(1);
|
|
441
|
+
// 3. Đặt con trỏ vào vị trí đã tính toán
|
|
442
|
+
writer.setSelection(targetPos);
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
// 7. Handle xóa variable
|
|
448
|
+
this.editor.editing.view.document.on('keydown', (evt, data) => {
|
|
449
|
+
// Mã phím 8 là Backspace, 46 là Delete
|
|
450
|
+
const btnBackspace = data.keyCode === 8;
|
|
451
|
+
const btnDelete = data.keyCode === 46;
|
|
452
|
+
if (btnBackspace || btnDelete) {
|
|
453
|
+
const selection = editor.model.document.selection;
|
|
454
|
+
const model = editor.model;
|
|
455
|
+
// CASE 1: Nếu con trỏ đang nhấp nháy (Collapsed)
|
|
456
|
+
if (selection.isCollapsed) {
|
|
457
|
+
const position = selection.getFirstPosition();
|
|
458
|
+
// Với Backspace ta kiểm tra nodeBefore, với Delete ta kiểm tra nodeAfter
|
|
459
|
+
const targetNode = data.keyCode === 8 ? position?.nodeBefore : position?.nodeAfter;
|
|
460
|
+
if (targetNode && targetNode.is('element', 'variable')) {
|
|
461
|
+
data.preventDefault();
|
|
462
|
+
evt.stop();
|
|
463
|
+
model.change(writer => {
|
|
464
|
+
// Chọn bao quanh Variable đó
|
|
465
|
+
writer.setSelection(targetNode, 'on');
|
|
466
|
+
});
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
// CASE 2: Nếu đang có một vùng chọn (đã được highlight từ lần bấm trước)
|
|
471
|
+
else {
|
|
472
|
+
const selectedElement = selection.getSelectedElement();
|
|
473
|
+
// Nếu phần tử đang được chọn chính là variable
|
|
474
|
+
if (selectedElement && selectedElement.is('element', 'variable')) {
|
|
475
|
+
// Cho phép hành động mặc định diễn ra (CKEditor sẽ tự xóa phần tử đang được chọn)
|
|
476
|
+
// Hoặc chủ động xóa để chắc chắn:
|
|
477
|
+
data.preventDefault();
|
|
478
|
+
evt.stop();
|
|
479
|
+
model.change(writer => {
|
|
480
|
+
writer.remove(selectedElement);
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
}, { priority: 'highest' });
|
|
426
486
|
}
|
|
427
487
|
#isSdDocumentBuilderVariableResult = (obj) => {
|
|
428
488
|
return (obj !== null &&
|
|
@@ -1363,11 +1423,11 @@ class SdDocumentBuilder {
|
|
|
1363
1423
|
// });
|
|
1364
1424
|
}
|
|
1365
1425
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdDocumentBuilder, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1366
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: SdDocumentBuilder, isStandalone: true, selector: "sd-document-builder", inputs: { option: "option", _disabled: ["disabled", "_disabled"] }, outputs: { contentChange: "contentChange" }, ngImport: i0, template: "<div class=\"builder-container\">\n <ckeditor\n style=\"width: 100%\"\n [editor]=\"Editor\" \n [config]=\"config\" \n (ready)=\"onReady($event)\"\n [disabled]=\"disabled\">\n </ckeditor>\n</div>", styles: ["@charset \"UTF-8\";.builder-container{background-color:#f3f4f6;height:100%;overflow-y:auto;width:100%;display:flex;flex-direction:column;align-items:center;padding-bottom:20px}:host{display:inline-block}:host ::ng-deep .ck-editor{display:flex;flex-direction:column;align-items:center;width:100%}:host ::ng-deep .ck-editor .ck-editor__top,:host ::ng-deep .ck-editor .ck-editor__main{border:none!important;box-shadow:none!important}:host ::ng-deep .ck-content{background-color:#fff;width:210mm;min-height:1123px;padding:20mm!important;box-sizing:border-box!important;box-shadow:0 10px 15px -3px #0000001a}:host ::ng-deep .ck-content h1,:host ::ng-deep .ck-content h2,:host ::ng-deep .ck-content h3,:host ::ng-deep .ck-content h4,:host ::ng-deep .ck-content h5,:host ::ng-deep .ck-content h6{font-weight:400}:host ::ng-deep .ck-content.ck-focused{outline:none!important;border-color:#d1d5db!important}:host ::ng-deep .ck-content.landscape{width:297mm}:host ::ng-deep .ck-content>*{max-width:100%!important;box-sizing:border-box!important}:host ::ng-deep .ck-content img{max-width:100%!important;height:auto!important;object-fit:contain}:host ::ng-deep .ck-content p{margin-left:0!important;margin-right:0!important;margin-bottom:var(--ck-spacing-large);text-indent:0}:host ::ng-deep .ck-content ul,:host ::ng-deep .ck-content ol{padding-left:20px!important;margin-left:0!important}\n", "@charset \"UTF-8\";:host ::ng-deep .ck-comment-marker{background-color:#ffeb3b80;border-bottom:2px solid #fbc02d;cursor:pointer;transition:background-color .2s}:host ::ng-deep .ck-comment-marker:hover{background-color:#ffeb3bcc}:host ::ng-deep .ck-comment-marker.active-highlight{background-color:#ffeb3b;outline:2px dashed #f57f17}\n", "@charset \"UTF-8\";:host ::ng-deep .variable-widget{background-color:#e3f2fd;color:#1976d2;border:1px solid #90caf9;border-radius:4px;padding:2px 6px;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:10px;cursor:default;-webkit-user-select:none;user-select:none;display:inline-block;margin:0
|
|
1426
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: SdDocumentBuilder, isStandalone: true, selector: "sd-document-builder", inputs: { option: "option", _disabled: ["disabled", "_disabled"] }, outputs: { contentChange: "contentChange" }, ngImport: i0, template: "<div class=\"builder-container\">\n <ckeditor\n style=\"width: 100%\"\n [editor]=\"Editor\" \n [config]=\"config\" \n (ready)=\"onReady($event)\"\n [disabled]=\"disabled\">\n </ckeditor>\n</div>", styles: ["@charset \"UTF-8\";.builder-container{background-color:#f3f4f6;height:100%;overflow-y:auto;width:100%;display:flex;flex-direction:column;align-items:center;padding-bottom:20px}:host{display:inline-block}:host ::ng-deep .ck-editor{display:flex;flex-direction:column;align-items:center;width:100%}:host ::ng-deep .ck-editor .ck-editor__top,:host ::ng-deep .ck-editor .ck-editor__main{border:none!important;box-shadow:none!important}:host ::ng-deep .ck-content{background-color:#fff;width:210mm;min-height:1123px;padding:20mm!important;box-sizing:border-box!important;box-shadow:0 10px 15px -3px #0000001a}:host ::ng-deep .ck-content h1,:host ::ng-deep .ck-content h2,:host ::ng-deep .ck-content h3,:host ::ng-deep .ck-content h4,:host ::ng-deep .ck-content h5,:host ::ng-deep .ck-content h6{font-weight:400}:host ::ng-deep .ck-content.ck-focused{outline:none!important;border-color:#d1d5db!important}:host ::ng-deep .ck-content.landscape{width:297mm}:host ::ng-deep .ck-content>*{max-width:100%!important;box-sizing:border-box!important}:host ::ng-deep .ck-content img{max-width:100%!important;height:auto!important;object-fit:contain}:host ::ng-deep .ck-content p{margin-left:0!important;margin-right:0!important;margin-bottom:var(--ck-spacing-large);text-indent:0}:host ::ng-deep .ck-content ul,:host ::ng-deep .ck-content ol{padding-left:20px!important;margin-left:0!important}\n", "@charset \"UTF-8\";:host ::ng-deep .ck-comment-marker{background-color:#ffeb3b80;border-bottom:2px solid #fbc02d;cursor:pointer;transition:background-color .2s}:host ::ng-deep .ck-comment-marker:hover{background-color:#ffeb3bcc}:host ::ng-deep .ck-comment-marker.active-highlight{background-color:#ffeb3b;outline:2px dashed #f57f17}\n", "@charset \"UTF-8\";:host ::ng-deep .variable-widget{background-color:#e3f2fd;color:#1976d2;border:1px solid #90caf9!important;border-radius:4px;padding:2px 6px;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:10px;cursor:default;-webkit-user-select:none;user-select:none;display:inline-block;margin:0 4px;vertical-align:middle;font-size:0}:host ::ng-deep .variable-widget:before{content:attr(data-display);font-size:10px}:host ::ng-deep .variable-widget:hover{background-color:#bbdefb;box-shadow:0 1px 2px #0000001a}:host ::ng-deep .variable-widget.ck-widget_selected{outline:2px solid #2196f3;background-color:#bbdefb}:host ::ng-deep .ck.ck-clipboard-drop-target-line{display:none!important}:host ::ng-deep .ck.ck-content .ck-widget,:host ::ng-deep .ck.ck-content .ck-widget:hover,:host ::ng-deep .ck.ck-content .ck-widget:focus,:host ::ng-deep .ck.ck-content .ck-widget.ck-widget_selected,:host ::ng-deep .ck.ck-content .ck-widget.ck-widget_selected:hover{outline:none!important;box-shadow:none!important}\n", "@charset \"UTF-8\";:host ::ng-deep .ck-editor__editable .ck-widget.table{float:none!important;display:block!important;max-width:100%!important;width:100%!important;margin:0!important;clear:both}:host ::ng-deep .ck-editor__editable table{table-layout:auto!important;width:100%!important;border-collapse:collapse;margin:0!important}:host ::ng-deep .ck-editor__editable table td,:host ::ng-deep .ck-editor__editable table th{word-wrap:break-word;white-space:normal!important;padding:.4em!important}:host ::ng-deep .ck-editor__editable table td img,:host ::ng-deep .ck-editor__editable table th img{max-width:100%;height:auto}\n", "@charset \"UTF-8\";::ng-deep .ck-editor{--ck-font-size-base: 11px !important;--ck-icon-size: 16px !important;--ck-content-font-family: \"Times New Roman\", serif !important;--ck-content-font-size: 13pt;--ck-content-line-height: 1.5;--ck-spacing-small: 2px !important;--ck-spacing-standard: 4px !important;--ck-spacing-large: 8px !important}::ng-deep .ck-editor .ck-editor__top{position:sticky;top:0;z-index:100;width:100%;min-width:600px;margin-bottom:10px}::ng-deep .ck-editor .ck-editor__top .ck-sticky-panel__content{border:none!important}::ng-deep .ck-editor .ck-editor__top .ck-toolbar{background:#fff!important;box-shadow:0 4px 6px -1px #0000001a!important;padding:8px!important}::ng-deep .ck-editor .ck-editor__top .ck-toolbar .ck-toolbar__items{display:flex;justify-content:center;flex-wrap:wrap;align-items:center}::ng-deep .ck-editor .ck-toolbar{min-height:32px!important;padding:2px!important}::ng-deep .ck-editor .ck-button{padding:2px 4px!important;min-height:24px!important}::ng-deep .ck-editor .ck-dropdown__button{min-height:24px!important}::ng-deep .ck.ck-toolbar{background:#f8f9fa!important;border-bottom:1px solid #e0e0e0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CKEditorModule }, { kind: "component", type: i1.CKEditorComponent, selector: "ckeditor", inputs: ["editor", "config", "data", "tagName", "watchdog", "editorWatchdogConfig", "disableWatchdog", "disableTwoWayDataBinding", "disabled"], outputs: ["ready", "change", "blur", "focus", "error"] }] });
|
|
1367
1427
|
}
|
|
1368
1428
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdDocumentBuilder, decorators: [{
|
|
1369
1429
|
type: Component,
|
|
1370
|
-
args: [{ selector: 'sd-document-builder', standalone: true, imports: [CommonModule, CKEditorModule], template: "<div class=\"builder-container\">\n <ckeditor\n style=\"width: 100%\"\n [editor]=\"Editor\" \n [config]=\"config\" \n (ready)=\"onReady($event)\"\n [disabled]=\"disabled\">\n </ckeditor>\n</div>", styles: ["@charset \"UTF-8\";.builder-container{background-color:#f3f4f6;height:100%;overflow-y:auto;width:100%;display:flex;flex-direction:column;align-items:center;padding-bottom:20px}:host{display:inline-block}:host ::ng-deep .ck-editor{display:flex;flex-direction:column;align-items:center;width:100%}:host ::ng-deep .ck-editor .ck-editor__top,:host ::ng-deep .ck-editor .ck-editor__main{border:none!important;box-shadow:none!important}:host ::ng-deep .ck-content{background-color:#fff;width:210mm;min-height:1123px;padding:20mm!important;box-sizing:border-box!important;box-shadow:0 10px 15px -3px #0000001a}:host ::ng-deep .ck-content h1,:host ::ng-deep .ck-content h2,:host ::ng-deep .ck-content h3,:host ::ng-deep .ck-content h4,:host ::ng-deep .ck-content h5,:host ::ng-deep .ck-content h6{font-weight:400}:host ::ng-deep .ck-content.ck-focused{outline:none!important;border-color:#d1d5db!important}:host ::ng-deep .ck-content.landscape{width:297mm}:host ::ng-deep .ck-content>*{max-width:100%!important;box-sizing:border-box!important}:host ::ng-deep .ck-content img{max-width:100%!important;height:auto!important;object-fit:contain}:host ::ng-deep .ck-content p{margin-left:0!important;margin-right:0!important;margin-bottom:var(--ck-spacing-large);text-indent:0}:host ::ng-deep .ck-content ul,:host ::ng-deep .ck-content ol{padding-left:20px!important;margin-left:0!important}\n", "@charset \"UTF-8\";:host ::ng-deep .ck-comment-marker{background-color:#ffeb3b80;border-bottom:2px solid #fbc02d;cursor:pointer;transition:background-color .2s}:host ::ng-deep .ck-comment-marker:hover{background-color:#ffeb3bcc}:host ::ng-deep .ck-comment-marker.active-highlight{background-color:#ffeb3b;outline:2px dashed #f57f17}\n", "@charset \"UTF-8\";:host ::ng-deep .variable-widget{background-color:#e3f2fd;color:#1976d2;border:1px solid #90caf9;border-radius:4px;padding:2px 6px;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:10px;cursor:default;-webkit-user-select:none;user-select:none;display:inline-block;margin:0
|
|
1430
|
+
args: [{ selector: 'sd-document-builder', standalone: true, imports: [CommonModule, CKEditorModule], template: "<div class=\"builder-container\">\n <ckeditor\n style=\"width: 100%\"\n [editor]=\"Editor\" \n [config]=\"config\" \n (ready)=\"onReady($event)\"\n [disabled]=\"disabled\">\n </ckeditor>\n</div>", styles: ["@charset \"UTF-8\";.builder-container{background-color:#f3f4f6;height:100%;overflow-y:auto;width:100%;display:flex;flex-direction:column;align-items:center;padding-bottom:20px}:host{display:inline-block}:host ::ng-deep .ck-editor{display:flex;flex-direction:column;align-items:center;width:100%}:host ::ng-deep .ck-editor .ck-editor__top,:host ::ng-deep .ck-editor .ck-editor__main{border:none!important;box-shadow:none!important}:host ::ng-deep .ck-content{background-color:#fff;width:210mm;min-height:1123px;padding:20mm!important;box-sizing:border-box!important;box-shadow:0 10px 15px -3px #0000001a}:host ::ng-deep .ck-content h1,:host ::ng-deep .ck-content h2,:host ::ng-deep .ck-content h3,:host ::ng-deep .ck-content h4,:host ::ng-deep .ck-content h5,:host ::ng-deep .ck-content h6{font-weight:400}:host ::ng-deep .ck-content.ck-focused{outline:none!important;border-color:#d1d5db!important}:host ::ng-deep .ck-content.landscape{width:297mm}:host ::ng-deep .ck-content>*{max-width:100%!important;box-sizing:border-box!important}:host ::ng-deep .ck-content img{max-width:100%!important;height:auto!important;object-fit:contain}:host ::ng-deep .ck-content p{margin-left:0!important;margin-right:0!important;margin-bottom:var(--ck-spacing-large);text-indent:0}:host ::ng-deep .ck-content ul,:host ::ng-deep .ck-content ol{padding-left:20px!important;margin-left:0!important}\n", "@charset \"UTF-8\";:host ::ng-deep .ck-comment-marker{background-color:#ffeb3b80;border-bottom:2px solid #fbc02d;cursor:pointer;transition:background-color .2s}:host ::ng-deep .ck-comment-marker:hover{background-color:#ffeb3bcc}:host ::ng-deep .ck-comment-marker.active-highlight{background-color:#ffeb3b;outline:2px dashed #f57f17}\n", "@charset \"UTF-8\";:host ::ng-deep .variable-widget{background-color:#e3f2fd;color:#1976d2;border:1px solid #90caf9!important;border-radius:4px;padding:2px 6px;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:10px;cursor:default;-webkit-user-select:none;user-select:none;display:inline-block;margin:0 4px;vertical-align:middle;font-size:0}:host ::ng-deep .variable-widget:before{content:attr(data-display);font-size:10px}:host ::ng-deep .variable-widget:hover{background-color:#bbdefb;box-shadow:0 1px 2px #0000001a}:host ::ng-deep .variable-widget.ck-widget_selected{outline:2px solid #2196f3;background-color:#bbdefb}:host ::ng-deep .ck.ck-clipboard-drop-target-line{display:none!important}:host ::ng-deep .ck.ck-content .ck-widget,:host ::ng-deep .ck.ck-content .ck-widget:hover,:host ::ng-deep .ck.ck-content .ck-widget:focus,:host ::ng-deep .ck.ck-content .ck-widget.ck-widget_selected,:host ::ng-deep .ck.ck-content .ck-widget.ck-widget_selected:hover{outline:none!important;box-shadow:none!important}\n", "@charset \"UTF-8\";:host ::ng-deep .ck-editor__editable .ck-widget.table{float:none!important;display:block!important;max-width:100%!important;width:100%!important;margin:0!important;clear:both}:host ::ng-deep .ck-editor__editable table{table-layout:auto!important;width:100%!important;border-collapse:collapse;margin:0!important}:host ::ng-deep .ck-editor__editable table td,:host ::ng-deep .ck-editor__editable table th{word-wrap:break-word;white-space:normal!important;padding:.4em!important}:host ::ng-deep .ck-editor__editable table td img,:host ::ng-deep .ck-editor__editable table th img{max-width:100%;height:auto}\n", "@charset \"UTF-8\";::ng-deep .ck-editor{--ck-font-size-base: 11px !important;--ck-icon-size: 16px !important;--ck-content-font-family: \"Times New Roman\", serif !important;--ck-content-font-size: 13pt;--ck-content-line-height: 1.5;--ck-spacing-small: 2px !important;--ck-spacing-standard: 4px !important;--ck-spacing-large: 8px !important}::ng-deep .ck-editor .ck-editor__top{position:sticky;top:0;z-index:100;width:100%;min-width:600px;margin-bottom:10px}::ng-deep .ck-editor .ck-editor__top .ck-sticky-panel__content{border:none!important}::ng-deep .ck-editor .ck-editor__top .ck-toolbar{background:#fff!important;box-shadow:0 4px 6px -1px #0000001a!important;padding:8px!important}::ng-deep .ck-editor .ck-editor__top .ck-toolbar .ck-toolbar__items{display:flex;justify-content:center;flex-wrap:wrap;align-items:center}::ng-deep .ck-editor .ck-toolbar{min-height:32px!important;padding:2px!important}::ng-deep .ck-editor .ck-button{padding:2px 4px!important;min-height:24px!important}::ng-deep .ck-editor .ck-dropdown__button{min-height:24px!important}::ng-deep .ck.ck-toolbar{background:#f8f9fa!important;border-bottom:1px solid #e0e0e0!important}\n"] }]
|
|
1371
1431
|
}], propDecorators: { option: [{
|
|
1372
1432
|
type: Input,
|
|
1373
1433
|
args: [{ required: true }]
|