@sd-angular/core 19.0.0-beta.6 → 19.0.0-beta.61
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 +686 -33
- package/assets/scss/ckeditor5.scss +60 -2
- package/assets/scss/core/bootstrap.scss +17 -0
- package/assets/scss/core/form.scss +4 -1
- package/assets/scss/core/grid.scss +40 -0
- package/assets/scss/sd-core.scss +1 -0
- package/assets/scss/themes/material-theme.scss +61 -36
- package/components/avatar/index.d.ts +1 -0
- package/components/avatar/src/avatar.component.d.ts +19 -0
- package/components/badge/src/badge.component.d.ts +77 -19
- package/components/button/src/button.component.d.ts +30 -28
- package/components/code-editor/index.d.ts +1 -0
- package/components/code-editor/src/code-editor.component.d.ts +25 -0
- package/components/document-builder/index.d.ts +1 -0
- package/components/document-builder/src/document-builder.component.d.ts +12 -41
- package/components/document-builder/src/document-builder.model.d.ts +14 -11
- package/components/document-builder/src/plugins/block-space/block-space.plugin.d.ts +9 -0
- package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.d.ts +44 -0
- package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.model.d.ts +57 -0
- package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +1 -0
- package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +4 -0
- package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +31 -0
- package/components/document-builder/src/plugins/index.d.ts +7 -2
- package/components/document-builder/src/plugins/page-orientation/page-orientation.plugin.d.ts +2 -2
- package/components/document-builder/src/plugins/paste-handler/filters/bookmark.d.ts +14 -0
- package/components/document-builder/src/plugins/paste-handler/filters/br.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/image.d.ts +25 -0
- package/components/document-builder/src/plugins/paste-handler/filters/list.d.ts +29 -0
- package/components/document-builder/src/plugins/paste-handler/filters/parse.d.ts +35 -0
- package/components/document-builder/src/plugins/paste-handler/filters/removeboldwrapper.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/removegooglesheetstag.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/removeinvalidtablewidth.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/removemsattributes.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/removestyleblock.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/removexmlns.d.ts +15 -0
- package/components/document-builder/src/plugins/paste-handler/filters/replacemsfootnotes.d.ts +54 -0
- package/components/document-builder/src/plugins/paste-handler/filters/replacetabswithinprewithspaces.d.ts +24 -0
- package/components/document-builder/src/plugins/paste-handler/filters/space.d.ts +27 -0
- package/components/document-builder/src/plugins/paste-handler/filters/table.d.ts +16 -0
- package/components/document-builder/src/plugins/paste-handler/filters/utils.d.ts +25 -0
- package/components/document-builder/src/plugins/paste-handler/index.d.ts +35 -0
- package/components/document-builder/src/plugins/paste-handler/normalizers/googledocsnormalizer.d.ts +31 -0
- package/components/document-builder/src/plugins/paste-handler/normalizers/googlesheetsnormalizer.d.ts +31 -0
- package/components/document-builder/src/plugins/paste-handler/normalizers/mswordnormalizer.d.ts +29 -0
- package/components/document-builder/src/plugins/paste-handler/types.d.ts +30 -0
- package/components/document-builder/src/plugins/table-custom/index.d.ts +34 -0
- package/components/document-builder/src/plugins/variable/variable.plugin.d.ts +39 -0
- package/components/index.d.ts +4 -0
- package/components/mini-editor/index.d.ts +2 -0
- package/components/mini-editor/src/mini-editor.component.d.ts +90 -0
- package/components/mini-editor/src/mini-editor.model.d.ts +44 -0
- package/components/section/src/section.component.d.ts +10 -11
- package/components/side-drawer/src/side-drawer.component.d.ts +11 -24
- package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +4 -1
- package/components/tab-router/src/components/tab-router-outlet/tab-router-outlet.component.d.ts +3 -15
- package/components/table/src/components/column-filter/column-filter.component.d.ts +3 -3
- package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts +12 -2
- package/components/table/src/components/desktop-cell-view/desktop-cell-view.component.d.ts +12 -2
- package/components/table/src/components/external-filter/external-filter.component.d.ts +1 -1
- package/components/table/src/components/selector-action/action-filter.pipe.d.ts +11 -10
- package/components/table/src/components/selector-action/selector-action.component.d.ts +5 -3
- package/components/table/src/directives/index.d.ts +2 -0
- package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +9 -0
- package/components/table/src/directives/sticky-shadow.directive.d.ts +17 -0
- package/components/table/src/models/table-column.model.d.ts +34 -34
- package/components/table/src/models/table-command.model.d.ts +7 -3
- package/components/table/src/models/table-item.model.d.ts +5 -4
- package/components/table/src/models/table-option-config.model.d.ts +5 -0
- package/components/table/src/models/table-option-export.model.d.ts +3 -2
- package/components/table/src/models/table-option-selector.model.d.ts +11 -10
- package/components/table/src/models/table-option.model.d.ts +10 -9
- package/components/table/src/services/index.d.ts +3 -0
- package/components/table/src/services/table-export/table-export.service.d.ts +26 -0
- package/components/table/src/services/table-filter/table-filter.model.d.ts +5 -4
- package/components/table/src/services/table-format/table-format.service.d.ts +16 -0
- package/components/table/src/table.component.d.ts +39 -53
- package/components/upload-file/src/configurations/upload-file.configuration.d.ts +1 -1
- package/components/upload-file/src/services/upload-file.service.d.ts +0 -1
- package/components/upload-file/src/upload-file.component.d.ts +49 -54
- package/components/view/index.d.ts +1 -0
- package/components/view/src/view.component.d.ts +16 -0
- package/components/workflow/src/models/form-generic-component.model.d.ts +5 -4
- package/components/workflow/src/models/index.d.ts +1 -0
- package/directives/index.d.ts +1 -0
- package/directives/src/sd-href.directive.d.ts +9 -0
- package/fesm2022/sd-angular-core-components-avatar.mjs +103 -0
- package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-badge.mjs +101 -91
- package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-button.mjs +70 -96
- package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-code-editor.mjs +129 -0
- package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-document-builder.mjs +3994 -608
- package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-history.mjs +1 -1
- package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-import-excel.mjs +1 -1
- package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-mini-editor.mjs +326 -0
- package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-preview.mjs +1 -1
- package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-section.mjs +24 -42
- package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-side-drawer.mjs +78 -84
- package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-tab-router.mjs +152 -226
- package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-table.mjs +1129 -1131
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-upload-file.mjs +339 -444
- package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-view.mjs +45 -0
- package/fesm2022/sd-angular-core-components-view.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-workflow.mjs +47 -57
- package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components.mjs +4 -0
- package/fesm2022/sd-angular-core-components.mjs.map +1 -1
- package/fesm2022/sd-angular-core-directives.mjs +80 -27
- package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs +274 -364
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +5 -2
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip.mjs +5 -2
- package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date-range.mjs +160 -245
- package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date.mjs +153 -273
- package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-datetime.mjs +152 -288
- package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input-number.mjs +191 -338
- package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input.mjs +149 -287
- package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-radio.mjs +3 -2
- package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-select.mjs +375 -448
- package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-textarea.mjs +148 -227
- package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-keycloak.mjs +126 -0
- package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -0
- package/fesm2022/sd-angular-core-modules-layout.mjs +454 -453
- package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules.mjs +1 -1
- package/fesm2022/sd-angular-core-services-api.mjs +5 -10
- package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-confirm.mjs +5 -7
- package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-docx.mjs +173 -0
- package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -0
- package/fesm2022/sd-angular-core-services-notify.mjs +2 -2
- package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services.mjs +1 -0
- package/fesm2022/sd-angular-core-services.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-extensions.mjs +21 -45
- package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-models.mjs +15 -1
- package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
- package/forms/autocomplete/src/autocomplete.component.d.ts +50 -55
- package/forms/chip/src/chip.component.d.ts +3 -2
- package/forms/chip-calendar/src/chip-calendar.component.d.ts +3 -2
- package/forms/date/src/date.component.d.ts +43 -46
- package/forms/date-range/src/date-range.component.d.ts +30 -34
- package/forms/datetime/src/datetime.component.d.ts +43 -49
- package/forms/input/src/input.component.d.ts +48 -57
- package/forms/input-number/src/input-number.component.d.ts +48 -54
- package/forms/select/src/select.component.d.ts +62 -64
- package/forms/textarea/src/textarea.component.d.ts +35 -43
- package/modules/index.d.ts +1 -1
- package/modules/keycloak/index.d.ts +4 -0
- package/modules/keycloak/keycloak.configuration.d.ts +11 -0
- package/modules/keycloak/keycloak.interceptor.d.ts +2 -0
- package/modules/keycloak/keycloak.module.d.ts +18 -0
- package/modules/keycloak/keycloak.service.d.ts +14 -0
- package/modules/layout/components/layout-main/layout-main.component.d.ts +7 -12
- package/modules/layout/components/page/page.component.d.ts +5 -7
- package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +22 -29
- package/modules/layout/components/sidebar-v1/components/user/user.component.d.ts +11 -17
- package/modules/layout/components/sidebar-v1/main.component.d.ts +14 -14
- package/modules/layout/configurations/layout.configuration.d.ts +46 -3
- package/modules/layout/modules/forbidden/pages/root/root.component.d.ts +3 -8
- package/modules/layout/modules/home/components/home-page/home-page.component.d.ts +2 -5
- package/modules/layout/modules/not-found/pages/root/root.component.d.ts +3 -8
- package/modules/layout/pipes/high-light-search.pipe.d.ts +1 -1
- package/modules/layout/services/index.d.ts +1 -0
- package/modules/layout/services/layout.service.d.ts +10 -0
- package/modules/layout/services/menu/menu.model.d.ts +2 -0
- package/modules/layout/services/storage/storage.service.d.ts +0 -3
- package/package.json +80 -57
- package/sd-angular-core-19.0.0-beta.61.tgz +0 -0
- package/services/api/src/api.model.d.ts +6 -1
- package/services/confirm/src/lib/confirm.service.d.ts +1 -0
- package/services/docx/index.d.ts +1 -0
- package/services/docx/src/lib/docx.model.d.ts +9 -0
- package/services/docx/src/lib/docx.service.d.ts +13 -0
- package/services/docx/src/public-api.d.ts +2 -0
- package/services/index.d.ts +1 -0
- package/services/notify/index.d.ts +1 -0
- package/services/notify/src/notify.model.d.ts +1 -1
- package/services/notify/src/notify.service.d.ts +5 -5
- package/utilities/extensions/src/string.extension.d.ts +2 -0
- package/utilities/extensions/src/utility.extension.d.ts +1 -0
- package/utilities/models/index.d.ts +3 -0
- package/utilities/models/src/filter.model.d.ts +14 -2
- package/utilities/models/src/icon.model.d.ts +2 -0
- package/utilities/models/src/nested-key-of.model.d.ts +5 -0
- package/utilities/models/src/pattern.model.d.ts +1 -1
- package/utilities/models/src/unwrap-signal.model.d.ts +6 -0
- package/components/document-builder/src/plugins/comment/comment.plugin.d.ts +0 -4
- package/components/document-builder/src/plugins/table-fit/table-fit.plugin.d.ts +0 -4
- package/fesm2022/sd-angular-core-modules-oidc.mjs +0 -127
- package/fesm2022/sd-angular-core-modules-oidc.mjs.map +0 -1
- package/modules/oidc/dynamic-sts.loader.d.ts +0 -11
- package/modules/oidc/index.d.ts +0 -2
- package/modules/oidc/oidc.configuration.d.ts +0 -11
- package/modules/oidc/oidc.module.d.ts +0 -14
|
@@ -17,15 +17,73 @@
|
|
|
17
17
|
// Import the editor styles.
|
|
18
18
|
// @import '@ckeditor/ckeditor5-editor-classic/dist/index.css';
|
|
19
19
|
@import '@ckeditor/ckeditor5-essentials/dist/index.css';
|
|
20
|
+
@import '@ckeditor/ckeditor5-page-break/dist/index.css';
|
|
20
21
|
@import '@ckeditor/ckeditor5-autoformat/dist/index.css';
|
|
21
22
|
@import '@ckeditor/ckeditor5-basic-styles/dist/index.css';
|
|
22
23
|
// @import '@ckeditor/ckeditor5-block-quote/dist/index.css';
|
|
23
24
|
@import '@ckeditor/ckeditor5-heading/dist/index.css';
|
|
24
|
-
@import '@ckeditor/ckeditor5-image/dist/index.css';
|
|
25
|
+
// @import '@ckeditor/ckeditor5-image/dist/index.css';
|
|
26
|
+
@import '@ckeditor/ckeditor5-image/dist/index-editor.css';
|
|
25
27
|
@import '@ckeditor/ckeditor5-indent/dist/index.css';
|
|
26
28
|
@import '@ckeditor/ckeditor5-link/dist/index.css';
|
|
27
29
|
@import '@ckeditor/ckeditor5-list/dist/index.css';
|
|
28
30
|
// @import '@ckeditor/ckeditor5-media-embed/dist/index.css';
|
|
29
31
|
@import '@ckeditor/ckeditor5-paste-from-office/dist/index.css';
|
|
30
|
-
|
|
32
|
+
|
|
33
|
+
// hung.pham16: không sử dụng default styles của ckeditor vì server không hỗ trợ
|
|
34
|
+
// @import '@ckeditor/ckeditor5-table/dist/index.css';
|
|
35
|
+
@import '@ckeditor/ckeditor5-table/dist/index-editor.css';
|
|
36
|
+
|
|
31
37
|
// @import '@ckeditor/ckeditor5-mention/dist/index.css';
|
|
38
|
+
|
|
39
|
+
// Custom toolbar
|
|
40
|
+
.ck-editor {
|
|
41
|
+
/* --- 1. GIẢM KÍCH THƯỚC ICON VÀ CHỮ --- */
|
|
42
|
+
/* Giảm cỡ chữ trong dropdown (mặc định khoảng 13px) */
|
|
43
|
+
--ck-font-size-base: 11px !important;
|
|
44
|
+
|
|
45
|
+
/* Giảm kích thước Icon (mặc định 20px) */
|
|
46
|
+
--ck-icon-size: 16px !important;
|
|
47
|
+
|
|
48
|
+
/* --- 2. TỐI ƯU KHOẢNG CÁCH (Padding/Margin) --- */
|
|
49
|
+
|
|
50
|
+
/* Giảm khoảng cách giữa các nút */
|
|
51
|
+
--ck-spacing-small: 2px !important;
|
|
52
|
+
--ck-spacing-standard: 6px !important;
|
|
53
|
+
--ck-spacing-large: 8px !important;
|
|
54
|
+
|
|
55
|
+
/* */
|
|
56
|
+
--ck-color-table-focused-cell-background: transparent !important;
|
|
57
|
+
--ck-table-content-default-border-color: transparent !important;
|
|
58
|
+
|
|
59
|
+
//
|
|
60
|
+
--ck-insert-table-dropdown-padding: 10px;
|
|
61
|
+
--ck-insert-table-dropdown-box-height: 16px;
|
|
62
|
+
--ck-insert-table-dropdown-box-width: 16px;
|
|
63
|
+
--ck-insert-table-dropdown-box-margin: 1px;
|
|
64
|
+
|
|
65
|
+
--ck-focus-ring: 1px solid var(--ck-color-base-border);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Giảm độ cao của thanh toolbar (cho gọn) */
|
|
69
|
+
.ck-toolbar {
|
|
70
|
+
min-height: 32px !important; /* Mặc định thường là 40px */
|
|
71
|
+
padding: 2px !important;
|
|
72
|
+
|
|
73
|
+
/* Làm màu nền toolbar nhạt hơn cho hiện đại */
|
|
74
|
+
background: #f8f9fa !important;
|
|
75
|
+
border-bottom: 1px solid #e0e0e0 !important;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.ck-toolbar__items {
|
|
79
|
+
/* Chỉnh nút bấm trong toolbar nhỏ lại */
|
|
80
|
+
> .ck-button {
|
|
81
|
+
padding: 2px 4px !important; /* Giảm padding trái phải của nút */
|
|
82
|
+
min-height: 24px !important;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Chỉnh lại dropdown (Heading, Font Size) cho khớp */
|
|
86
|
+
> .ck-dropdown {
|
|
87
|
+
min-height: 24px !important;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -81,6 +81,23 @@
|
|
|
81
81
|
.fs-#{$i} {
|
|
82
82
|
font-size: #{$i}px !important;
|
|
83
83
|
}
|
|
84
|
+
|
|
85
|
+
// Gap
|
|
86
|
+
.gap-#{$i} {
|
|
87
|
+
gap: #{$i}px !important;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.gap-y-#{$i} {
|
|
91
|
+
row-gap: #{$i}px !important;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.gap-x-#{$i} {
|
|
95
|
+
column-gap: #{$i}px !important;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.flex-1 {
|
|
100
|
+
flex: 1;
|
|
84
101
|
}
|
|
85
102
|
|
|
86
103
|
.w-full {
|
|
@@ -89,8 +89,11 @@
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
// Size normal
|
|
92
|
+
// Size normal`
|
|
93
93
|
&.sd-md {
|
|
94
|
+
--mat-form-field-container-height: 40px;
|
|
95
|
+
--mat-form-field-container-vertical-padding: 3px;
|
|
96
|
+
|
|
94
97
|
&.mat-form-field-appearance-outline {
|
|
95
98
|
.mat-mdc-form-field-infix {
|
|
96
99
|
padding: 0 0 8px 0 !important;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
CSS GRID UTILITIES
|
|
3
|
+
========================================================================== */
|
|
4
|
+
|
|
5
|
+
/* 1. Kích hoạt Grid cơ bản */
|
|
6
|
+
.sd-grid-container {
|
|
7
|
+
display: grid;
|
|
8
|
+
column-gap: 8px;
|
|
9
|
+
row-gap: 0px;
|
|
10
|
+
|
|
11
|
+
/* 2. Định nghĩa tổng số cột của Grid Cha (từ 1 đến 12 cột) */
|
|
12
|
+
@for $i from 1 through 12 {
|
|
13
|
+
&.grid-cols-#{$i} {
|
|
14
|
+
/* Dùng minmax(0, 1fr) thay vì 1fr để chống vỡ layout khi nội dung text quá dài */
|
|
15
|
+
grid-template-columns: repeat($i, minmax(0, 1fr));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* 3. Tiện ích chiếm CỘT (Column Spanning) cho phần tử con */
|
|
20
|
+
@for $i from 1 through 12 {
|
|
21
|
+
.col-span-#{$i} {
|
|
22
|
+
grid-column: span #{$i} / span #{$i};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/* Chiếm toàn bộ số cột hiện có (Full width) */
|
|
26
|
+
.col-span-full {
|
|
27
|
+
grid-column: 1 / -1;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* 4. Tiện ích chiếm HÀNG (Row Spanning) cho phần tử con */
|
|
31
|
+
@for $i from 1 through 12 {
|
|
32
|
+
.row-span-#{$i} {
|
|
33
|
+
grid-row: span #{$i} / span #{$i};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/* Chiếm toàn bộ hàng (Full height) */
|
|
37
|
+
.row-span-full {
|
|
38
|
+
grid-row: 1 / -1;
|
|
39
|
+
}
|
|
40
|
+
}
|
package/assets/scss/sd-core.scss
CHANGED
|
@@ -2,19 +2,22 @@
|
|
|
2
2
|
@use './default.scss' as default;
|
|
3
3
|
@use 'sass:map';
|
|
4
4
|
|
|
5
|
-
//
|
|
5
|
+
// --------------------------------------------------
|
|
6
|
+
// Palette M2 — generated từ hex color
|
|
7
|
+
// --------------------------------------------------
|
|
6
8
|
$custom-primary-palette: mat.m2-define-palette((
|
|
7
|
-
50: #
|
|
8
|
-
100: #
|
|
9
|
-
200: #
|
|
10
|
-
300: #
|
|
11
|
-
400: #
|
|
12
|
-
500: #2A66F4,
|
|
13
|
-
600: #
|
|
14
|
-
700: #
|
|
15
|
-
800: #
|
|
16
|
-
900: #
|
|
9
|
+
50: #F0F1F5,
|
|
10
|
+
100: #D7DCEA,
|
|
11
|
+
200: #ABBCE3,
|
|
12
|
+
300: #6E90E3,
|
|
13
|
+
400: #346AEA,
|
|
14
|
+
500: #2A66F4,
|
|
15
|
+
600: #0645DB,
|
|
16
|
+
700: #0131A3,
|
|
17
|
+
800: #00216D,
|
|
18
|
+
900: #001546,
|
|
17
19
|
contrast: (
|
|
20
|
+
400: white,
|
|
18
21
|
500: white,
|
|
19
22
|
600: white,
|
|
20
23
|
700: white,
|
|
@@ -23,37 +26,59 @@ $custom-primary-palette: mat.m2-define-palette((
|
|
|
23
26
|
)
|
|
24
27
|
));
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
900: #b71c1c,
|
|
29
|
+
$custom-accent-palette: mat.m2-define-palette((
|
|
30
|
+
50: #F1F3F1,
|
|
31
|
+
100: #DCE5DD,
|
|
32
|
+
200: #BBD3BC,
|
|
33
|
+
300: #8FC291,
|
|
34
|
+
400: #67B76A,
|
|
35
|
+
500: #4CAF50,
|
|
36
|
+
600: #3A8C3D,
|
|
37
|
+
700: #29692C,
|
|
38
|
+
800: #1C471E,
|
|
39
|
+
900: #132F14,
|
|
38
40
|
contrast: (
|
|
39
|
-
500: white,
|
|
40
41
|
700: white,
|
|
42
|
+
800: white,
|
|
43
|
+
900: white,
|
|
41
44
|
)
|
|
42
45
|
));
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
$custom-warn-palette: mat.m2-define-palette((
|
|
48
|
+
50: #F5F0F0,
|
|
49
|
+
100: #EAD9D6,
|
|
50
|
+
200: #E4B0AA,
|
|
51
|
+
300: #E6786B,
|
|
52
|
+
400: #EE4430,
|
|
53
|
+
500: #F82C13,
|
|
54
|
+
600: #D11801,
|
|
55
|
+
700: #9A1100,
|
|
56
|
+
800: #680B00,
|
|
57
|
+
900: #440700,
|
|
58
|
+
contrast: (
|
|
59
|
+
600: white,
|
|
60
|
+
700: white,
|
|
61
|
+
800: white,
|
|
62
|
+
900: white,
|
|
54
63
|
)
|
|
55
|
-
);
|
|
64
|
+
));
|
|
56
65
|
|
|
66
|
+
// --------------------------------------------------
|
|
67
|
+
// Theme
|
|
68
|
+
// --------------------------------------------------
|
|
69
|
+
$custom-theme: mat.m2-define-light-theme((
|
|
70
|
+
color: (
|
|
71
|
+
primary: $custom-primary-palette,
|
|
72
|
+
accent: $custom-accent-palette,
|
|
73
|
+
warn: $custom-warn-palette,
|
|
74
|
+
),
|
|
75
|
+
typography: mat.m2-define-typography-config(
|
|
76
|
+
$font-family: 'Roboto',
|
|
77
|
+
),
|
|
78
|
+
density: -3,
|
|
79
|
+
));
|
|
57
80
|
|
|
58
|
-
// Apply theme
|
|
59
81
|
@include mat.all-component-themes($custom-theme);
|
|
82
|
+
|
|
83
|
+
// Fix paginator density riêng về 0 để không bị lệch
|
|
84
|
+
@include mat.paginator-density(0);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src/avatar.component';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SdAvatar {
|
|
3
|
+
#private;
|
|
4
|
+
/**
|
|
5
|
+
* The source string to be used for the avatar.
|
|
6
|
+
* - If it matches a URL pattern, an image is displayed.
|
|
7
|
+
* - If it is a string representing a name, initials and a colored background are generated.
|
|
8
|
+
* - If undefined, it falls back to a neutral ? initial.
|
|
9
|
+
*/
|
|
10
|
+
readonly src: import("@angular/core").InputSignal<string | null | undefined>;
|
|
11
|
+
readonly size: import("@angular/core").InputSignal<number>;
|
|
12
|
+
constructor();
|
|
13
|
+
readonly isUrl: import("@angular/core").Signal<boolean>;
|
|
14
|
+
readonly bgColor: import("@angular/core").Signal<string>;
|
|
15
|
+
readonly initials: import("@angular/core").Signal<string>;
|
|
16
|
+
handleError(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdAvatar, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdAvatar, "sd-avatar", never, { "src": { "alias": "src"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -1,27 +1,85 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { SdColor, SdSize } from '@sd-angular/core/utilities/models';
|
|
3
|
+
import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
export type SdBadgeType = 'tag' | 'round' | 'icon';
|
|
4
6
|
export declare class SdBadge {
|
|
5
7
|
defaultIcon: string;
|
|
6
|
-
type:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
icon: string | undefined | null;
|
|
22
|
-
size: SdSize;
|
|
23
|
-
sdClick: EventEmitter<any>;
|
|
8
|
+
type: import("@angular/core").InputSignalWithTransform<SdBadgeType, SdBadgeType | null | undefined>;
|
|
9
|
+
color: import("@angular/core").InputSignalWithTransform<SdColor, SdColor | null | undefined>;
|
|
10
|
+
primary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
11
|
+
secondary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
12
|
+
success: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
13
|
+
info: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
14
|
+
warning: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
15
|
+
error: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
16
|
+
fontSet: import("@angular/core").InputSignalWithTransform<MaterialIconFontSet, MaterialIconFontSet | null | undefined>;
|
|
17
|
+
title: import("@angular/core").InputSignal<string | number | null | undefined>;
|
|
18
|
+
description: import("@angular/core").InputSignal<string | null | undefined>;
|
|
19
|
+
tooltip: import("@angular/core").InputSignal<string | null | undefined>;
|
|
20
|
+
icon: import("@angular/core").InputSignal<string | null | undefined>;
|
|
21
|
+
size: import("@angular/core").InputSignalWithTransform<SdSize, SdSize | null | undefined>;
|
|
22
|
+
click: EventEmitter<Event>;
|
|
24
23
|
onClick: (event: Event) => void;
|
|
24
|
+
effectiveColor: import("@angular/core").Signal<SdColor>;
|
|
25
|
+
baseColorClasses: import("@angular/core").Signal<{
|
|
26
|
+
'c-primary': boolean;
|
|
27
|
+
'c-secondary': boolean;
|
|
28
|
+
'c-info': boolean;
|
|
29
|
+
'c-success': boolean;
|
|
30
|
+
'c-warning': boolean;
|
|
31
|
+
'c-error': boolean;
|
|
32
|
+
}>;
|
|
33
|
+
iconColorClasses: import("@angular/core").Signal<{
|
|
34
|
+
'c-primary': boolean;
|
|
35
|
+
'c-black400': boolean;
|
|
36
|
+
'c-info': boolean;
|
|
37
|
+
'c-success': boolean;
|
|
38
|
+
'c-warning': boolean;
|
|
39
|
+
'c-error': boolean;
|
|
40
|
+
}>;
|
|
41
|
+
iconSizeAndFontClasses: import("@angular/core").Signal<{
|
|
42
|
+
'c-xs': boolean;
|
|
43
|
+
'c-sm': boolean;
|
|
44
|
+
'c-md': boolean;
|
|
45
|
+
'c-lg': boolean;
|
|
46
|
+
'material-icons': boolean;
|
|
47
|
+
'material-icons-outlined': boolean;
|
|
48
|
+
'material-icons-round': boolean;
|
|
49
|
+
'material-icons-sharp': boolean;
|
|
50
|
+
}>;
|
|
51
|
+
tagIconCombinedClasses: import("@angular/core").Signal<{
|
|
52
|
+
'c-primary': boolean;
|
|
53
|
+
'c-secondary': boolean;
|
|
54
|
+
'c-info': boolean;
|
|
55
|
+
'c-success': boolean;
|
|
56
|
+
'c-warning': boolean;
|
|
57
|
+
'c-error': boolean;
|
|
58
|
+
'c-xs': boolean;
|
|
59
|
+
'c-sm': boolean;
|
|
60
|
+
'c-md': boolean;
|
|
61
|
+
'c-lg': boolean;
|
|
62
|
+
'material-icons': boolean;
|
|
63
|
+
'material-icons-outlined': boolean;
|
|
64
|
+
'material-icons-round': boolean;
|
|
65
|
+
'material-icons-sharp': boolean;
|
|
66
|
+
}>;
|
|
67
|
+
iconCombinedClasses: import("@angular/core").Signal<{
|
|
68
|
+
'c-primary': boolean;
|
|
69
|
+
'c-black400': boolean;
|
|
70
|
+
'c-info': boolean;
|
|
71
|
+
'c-success': boolean;
|
|
72
|
+
'c-warning': boolean;
|
|
73
|
+
'c-error': boolean;
|
|
74
|
+
'c-xs': boolean;
|
|
75
|
+
'c-sm': boolean;
|
|
76
|
+
'c-md': boolean;
|
|
77
|
+
'c-lg': boolean;
|
|
78
|
+
'material-icons': boolean;
|
|
79
|
+
'material-icons-outlined': boolean;
|
|
80
|
+
'material-icons-round': boolean;
|
|
81
|
+
'material-icons-sharp': boolean;
|
|
82
|
+
}>;
|
|
25
83
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdBadge, never>;
|
|
26
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdBadge, "sd-badge", never, { "
|
|
84
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdBadge, "sd-badge", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "primary": { "alias": "primary"; "required": false; "isSignal": true; }; "secondary": { "alias": "secondary"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "info": { "alias": "info"; "required": false; "isSignal": true; }; "warning": { "alias": "warning"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "fontSet": { "alias": "fontSet"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
|
|
27
85
|
}
|
|
@@ -1,39 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
|
|
3
|
-
import { SdColor } from '@sd-angular/core/utilities/models';
|
|
3
|
+
import { MaterialIconFontSet, SdColor } from '@sd-angular/core/utilities/models';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
export type SdButtonType = 'fill' | 'light' | 'outline' | 'link';
|
|
6
|
+
export type SdButtonSize = 'sm' | 'md' | 'lg';
|
|
7
|
+
export type SdButtonHtmlType = 'button' | 'submit' | 'reset';
|
|
5
8
|
export declare class SdButton extends SdBaseSecureComponent implements OnInit, OnDestroy {
|
|
6
9
|
#private;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
type:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
title: string |
|
|
14
|
-
width: string |
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
loading: boolean;
|
|
25
|
-
click: EventEmitter<Event>;
|
|
26
|
-
constructor();
|
|
27
|
-
ngOnInit(): void;
|
|
28
|
-
onInternalClick(event: Event): void;
|
|
29
|
-
ngOnDestroy(): void;
|
|
30
|
-
get buttonClasses(): {
|
|
10
|
+
private el;
|
|
11
|
+
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
12
|
+
type: import("@angular/core").InputSignalWithTransform<SdButtonType, SdButtonType | null | undefined>;
|
|
13
|
+
color: import("@angular/core").InputSignalWithTransform<SdColor, SdColor | null | undefined>;
|
|
14
|
+
size: import("@angular/core").InputSignalWithTransform<SdButtonSize, SdButtonSize | null | undefined>;
|
|
15
|
+
fontSet: import("@angular/core").InputSignalWithTransform<MaterialIconFontSet, MaterialIconFontSet | null | undefined>;
|
|
16
|
+
title: import("@angular/core").InputSignal<string | null | undefined>;
|
|
17
|
+
width: import("@angular/core").InputSignal<string | null | undefined>;
|
|
18
|
+
tooltip: import("@angular/core").InputSignal<string | null | undefined>;
|
|
19
|
+
prefixIcon: import("@angular/core").InputSignal<string | null | undefined>;
|
|
20
|
+
suffixIcon: import("@angular/core").InputSignal<string | null | undefined>;
|
|
21
|
+
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
22
|
+
loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
23
|
+
block: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
24
|
+
htmlType: import("@angular/core").InputSignalWithTransform<SdButtonHtmlType, SdButtonHtmlType | null | undefined>;
|
|
25
|
+
autoId: import("@angular/core").Signal<string | undefined>;
|
|
26
|
+
buttonClasses: import("@angular/core").Signal<{
|
|
31
27
|
'c-square': boolean | "" | null | undefined;
|
|
32
28
|
'c-sm': boolean;
|
|
33
29
|
'c-md': boolean;
|
|
34
30
|
'c-lg': boolean;
|
|
35
31
|
'c-disabled': boolean;
|
|
36
|
-
|
|
32
|
+
'c-block': boolean;
|
|
33
|
+
}>;
|
|
34
|
+
click: import("@angular/core").OutputEmitterRef<Event>;
|
|
35
|
+
constructor();
|
|
36
|
+
ngOnInit(): void;
|
|
37
|
+
onInternalClick(event: Event): void;
|
|
38
|
+
ngOnDestroy(): void;
|
|
37
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdButton, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdButton, "sd-button", never, { "
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdButton, "sd-button", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fontSet": { "alias": "fontSet"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "htmlType": { "alias": "htmlType"; "required": false; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
|
|
39
41
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src/code-editor.component';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SafeHtml } from '@angular/platform-browser';
|
|
2
|
+
import 'prismjs/components/prism-typescript';
|
|
3
|
+
import 'prismjs/components/prism-json';
|
|
4
|
+
import 'prismjs/components/prism-css';
|
|
5
|
+
import 'prismjs/components/prism-scss';
|
|
6
|
+
import 'prismjs/components/prism-markup';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export type CodeLanguage = 'html' | 'typescript' | 'json' | 'css' | 'scss';
|
|
9
|
+
export declare class SdCodeEditor {
|
|
10
|
+
#private;
|
|
11
|
+
valueModel: import("@angular/core").ModelSignal<any>;
|
|
12
|
+
language: import("@angular/core").InputSignal<CodeLanguage>;
|
|
13
|
+
maxHeight: import("@angular/core").InputSignal<string>;
|
|
14
|
+
viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
15
|
+
copied: import("@angular/core").WritableSignal<boolean>;
|
|
16
|
+
textValue: import("@angular/core").WritableSignal<string>;
|
|
17
|
+
prismLang: import("@angular/core").Signal<CodeLanguage | "markup">;
|
|
18
|
+
private _lastEmittedValue;
|
|
19
|
+
constructor();
|
|
20
|
+
highlightedCode: import("@angular/core").Signal<SafeHtml>;
|
|
21
|
+
onTextChange(newText: string): void;
|
|
22
|
+
copyToClipboard(): void;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdCodeEditor, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdCodeEditor, "sd-code-editor", never, { "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; }, never, never, true, never>;
|
|
25
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ClassicEditor, ModelRange } from 'ckeditor5';
|
|
3
|
-
import {
|
|
3
|
+
import { VariablePlugin, CkCommentPlugin } from './plugins';
|
|
4
|
+
import { SdDocumentBuilderHeading, SdDocumentBuilderOption, SdEditorConfig } from './document-builder.model';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class SdDocumentBuilder {
|
|
6
7
|
#private;
|
|
@@ -19,51 +20,19 @@ export declare class SdDocumentBuilder {
|
|
|
19
20
|
getOrientation: () => "PORTRAIT" | "LANDSCAPE";
|
|
20
21
|
scrollToTop(): void;
|
|
21
22
|
heading: {
|
|
22
|
-
all: () => SdDocumentBuilderHeading[];
|
|
23
|
-
scroll: (id: string) => void;
|
|
24
|
-
};
|
|
25
|
-
comment: {
|
|
26
|
-
/**
|
|
27
|
-
* Lấy tất cả comments trong document
|
|
28
|
-
* @returns Danh sách tất cả comments
|
|
29
|
-
*/
|
|
30
|
-
all: () => SdDocumentBuilderComment[];
|
|
31
|
-
/**
|
|
32
|
-
* Thêm comment vào vùng text đang được chọn
|
|
33
|
-
* @param comment - Dữ liệu comment
|
|
34
|
-
* @param data - Dữ liệu extra data
|
|
35
|
-
* @returns SdDocumentBuilderComment hoặc null nếu không có text được chọn
|
|
36
|
-
*/
|
|
37
|
-
add: <T = any>(range: ModelRange, comment: string, data?: T) => SdDocumentBuilderComment<T> | null;
|
|
38
23
|
/**
|
|
39
|
-
*
|
|
40
|
-
* @
|
|
41
|
-
* @param commentData - Dữ liệu mới
|
|
42
|
-
* @returns Comment đã cập nhật hoặc null
|
|
24
|
+
* Lấy tất cả headings trong document
|
|
25
|
+
* @returns Danh sách tất cả headings
|
|
43
26
|
*/
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Lấy chi tiết comment theo markerId
|
|
47
|
-
* @param markerId - ID của marker
|
|
48
|
-
* @returns Comment hoặc null
|
|
49
|
-
*/
|
|
50
|
-
detail: (markerId: string) => SdDocumentBuilderComment | null;
|
|
51
|
-
/**
|
|
52
|
-
* Xóa comment theo markerId
|
|
53
|
-
* @param markerId - ID của marker cần xóa
|
|
54
|
-
* @returns true nếu xóa thành công, false nếu không tìm thấy
|
|
55
|
-
*/
|
|
56
|
-
remove: (markerId: string) => boolean;
|
|
27
|
+
all: () => SdDocumentBuilderHeading[];
|
|
57
28
|
/**
|
|
58
|
-
* Scroll
|
|
59
|
-
* @param
|
|
29
|
+
* Scroll tới vị trí của heading
|
|
30
|
+
* @param id - ID của heading cần scroll tới
|
|
60
31
|
*/
|
|
61
|
-
scroll: (
|
|
62
|
-
};
|
|
63
|
-
variable: {
|
|
64
|
-
all: () => SdDocumentBuilderVariable[];
|
|
65
|
-
scroll: (uuid: string) => void;
|
|
32
|
+
scroll: (id: string) => void;
|
|
66
33
|
};
|
|
34
|
+
getCommentPluginAPI(): CkCommentPlugin | null;
|
|
35
|
+
getVariablePluginAPI(): VariablePlugin | null;
|
|
67
36
|
/**
|
|
68
37
|
* Xuất file Word có Header/Footer
|
|
69
38
|
* @param fileName Tên file
|
|
@@ -77,6 +46,8 @@ export declare class SdDocumentBuilder {
|
|
|
77
46
|
header?: string;
|
|
78
47
|
footer?: string;
|
|
79
48
|
}): void;
|
|
49
|
+
hightSelectRange: (range: ModelRange) => void;
|
|
50
|
+
removeHighlightSeclectRange: () => void;
|
|
80
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdDocumentBuilder, never>;
|
|
81
52
|
static ɵcmp: i0.ɵɵComponentDeclaration<SdDocumentBuilder, "sd-document-builder", never, { "option": { "alias": "option"; "required": true; }; "_disabled": { "alias": "disabled"; "required": false; }; }, { "contentChange": "contentChange"; }, never, never, true, never>;
|
|
82
53
|
}
|