@sd-angular/core 19.0.0-beta.2 → 19.0.0-beta.21

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.
Files changed (117) hide show
  1. package/assets/scss/ckeditor5.scss +59 -2
  2. package/components/avatar/index.d.ts +1 -0
  3. package/components/avatar/src/avatar.component.d.ts +14 -0
  4. package/components/document-builder/src/document-builder.component.d.ts +29 -7
  5. package/components/document-builder/src/document-builder.config.d.ts +21 -0
  6. package/components/document-builder/src/document-builder.model.d.ts +6 -1
  7. package/components/document-builder/src/document-builder.utils.d.ts +10 -0
  8. package/components/document-builder/src/plugins/{table-fit.plugin.d.ts → heading/heading.plugin.d.ts} +1 -1
  9. package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +4 -0
  10. package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +31 -0
  11. package/components/document-builder/src/plugins/{image-upload.plugin.d.ts → image-upload/image-upload.plugin.d.ts} +0 -4
  12. package/components/document-builder/src/plugins/index.d.ts +7 -5
  13. package/components/document-builder/src/plugins/table-fit/table-fit.plugin.d.ts +29 -0
  14. package/components/index.d.ts +2 -0
  15. package/components/mini-editor/index.d.ts +2 -0
  16. package/components/mini-editor/src/mini-editor.component.d.ts +90 -0
  17. package/components/mini-editor/src/mini-editor.model.d.ts +42 -0
  18. package/components/table/src/directives/index.d.ts +2 -0
  19. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +9 -0
  20. package/components/table/src/directives/sticky-shadow.directive.d.ts +17 -0
  21. package/components/table/src/models/table-column.model.d.ts +7 -7
  22. package/components/table/src/models/table-command.model.d.ts +4 -0
  23. package/components/table/src/models/table-item.model.d.ts +2 -1
  24. package/components/table/src/models/table-option-export.model.d.ts +3 -2
  25. package/components/table/src/models/table-option.model.d.ts +10 -8
  26. package/components/table/src/services/table-filter/table-filter.model.d.ts +2 -2
  27. package/components/view/index.d.ts +1 -0
  28. package/components/view/src/view.component.d.ts +14 -0
  29. package/components/workflow/src/models/index.d.ts +1 -0
  30. package/directives/index.d.ts +1 -0
  31. package/directives/src/sd-href.directive.d.ts +9 -0
  32. package/fesm2022/sd-angular-core-components-avatar.mjs +88 -0
  33. package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -0
  34. package/fesm2022/sd-angular-core-components-badge.mjs +2 -2
  35. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  36. package/fesm2022/sd-angular-core-components-document-builder.mjs +1329 -557
  37. package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
  38. package/fesm2022/sd-angular-core-components-mini-editor.mjs +326 -0
  39. package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -0
  40. package/fesm2022/sd-angular-core-components-table.mjs +510 -84
  41. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  42. package/fesm2022/sd-angular-core-components-view.mjs +88 -0
  43. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -0
  44. package/fesm2022/sd-angular-core-components-workflow.mjs +33 -43
  45. package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
  46. package/fesm2022/sd-angular-core-components.mjs +2 -0
  47. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  48. package/fesm2022/sd-angular-core-directives.mjs +51 -2
  49. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  50. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +24 -2
  51. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  52. package/fesm2022/sd-angular-core-forms-date.mjs +15 -3
  53. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  54. package/fesm2022/sd-angular-core-forms-datetime.mjs +17 -3
  55. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  56. package/fesm2022/sd-angular-core-forms-input-number.mjs +25 -3
  57. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  58. package/fesm2022/sd-angular-core-forms-input.mjs +20 -6
  59. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  60. package/fesm2022/sd-angular-core-forms-radio.mjs +18 -2
  61. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  62. package/fesm2022/sd-angular-core-forms-select.mjs +19 -3
  63. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  64. package/fesm2022/sd-angular-core-forms-textarea.mjs +21 -2
  65. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  66. package/fesm2022/sd-angular-core-modules-auth.mjs +137 -0
  67. package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -0
  68. package/fesm2022/sd-angular-core-modules-layout.mjs +52 -17
  69. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  70. package/fesm2022/sd-angular-core-modules-oidc.mjs +0 -2
  71. package/fesm2022/sd-angular-core-modules-oidc.mjs.map +1 -1
  72. package/fesm2022/sd-angular-core-modules.mjs +1 -0
  73. package/fesm2022/sd-angular-core-modules.mjs.map +1 -1
  74. package/fesm2022/sd-angular-core-pipes.mjs +21 -1
  75. package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
  76. package/fesm2022/sd-angular-core-services-confirm.mjs +6 -9
  77. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  78. package/fesm2022/sd-angular-core-utilities-extensions.mjs +66 -1
  79. package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
  80. package/fesm2022/sd-angular-core-utilities-models.mjs +12 -3
  81. package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
  82. package/forms/autocomplete/src/autocomplete.component.d.ts +5 -1
  83. package/forms/date/src/date.component.d.ts +4 -1
  84. package/forms/datetime/src/datetime.component.d.ts +4 -1
  85. package/forms/input/src/input.component.d.ts +6 -4
  86. package/forms/input-number/src/input-number.component.d.ts +4 -1
  87. package/forms/radio/src/radio.component.d.ts +5 -1
  88. package/forms/select/src/select.component.d.ts +5 -1
  89. package/forms/textarea/src/textarea.component.d.ts +3 -1
  90. package/modules/auth/configurations/auth.configuration.d.ts +19 -0
  91. package/modules/auth/configurations/index.d.ts +1 -0
  92. package/modules/auth/guards/auth.guard.d.ts +11 -0
  93. package/modules/auth/guards/index.d.ts +2 -0
  94. package/modules/auth/guards/portal.guard.d.ts +11 -0
  95. package/modules/auth/index.d.ts +3 -0
  96. package/modules/auth/services/auth.model.d.ts +8 -0
  97. package/modules/auth/services/auth.service.d.ts +17 -0
  98. package/modules/auth/services/index.d.ts +2 -0
  99. package/modules/index.d.ts +1 -0
  100. package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +1 -0
  101. package/modules/layout/components/sidebar-v1/components/user/user.component.d.ts +5 -2
  102. package/modules/layout/configurations/layout.configuration.d.ts +3 -0
  103. package/modules/layout/services/storage/storage.service.d.ts +1 -0
  104. package/package.json +80 -64
  105. package/pipes/index.d.ts +1 -0
  106. package/pipes/src/empty.pipe.d.ts +7 -0
  107. package/sd-angular-core-19.0.0-beta.21.tgz +0 -0
  108. package/services/confirm/src/lib/confirm.service.d.ts +1 -0
  109. package/utilities/extensions/index.d.ts +1 -0
  110. package/utilities/extensions/src/color.extension.d.ts +20 -0
  111. package/utilities/models/index.d.ts +1 -0
  112. package/utilities/models/src/maybe-async.model.d.ts +1 -0
  113. package/utilities/models/src/nested-key-of.model.d.ts +5 -0
  114. package/utilities/models/src/pattern.model.d.ts +2 -2
  115. /package/components/document-builder/src/plugins/{comment.plugin.d.ts → comment/comment.plugin.d.ts} +0 -0
  116. /package/components/document-builder/src/plugins/{page-orientation.plugin.d.ts → page-orientation/page-orientation.plugin.d.ts} +0 -0
  117. /package/components/document-builder/src/plugins/{variable.plugin.d.ts → variable/variable.plugin.d.ts} +0 -0
@@ -0,0 +1,88 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
4
+
5
+ class SdAvatar {
6
+ src;
7
+ size = 32;
8
+ isUrl = false;
9
+ initials = '';
10
+ bgColor = '#ccc';
11
+ ngOnInit() {
12
+ this.#init();
13
+ }
14
+ #init = () => {
15
+ if (!this.src) {
16
+ this.isUrl = false;
17
+ this.initials = '?';
18
+ this.bgColor = '#bdc3c7';
19
+ return;
20
+ }
21
+ // Kiểm tra xem src có phải là URL (http, https, data:image, hoặc path /)
22
+ const urlPattern = /^(http|https|data:image|\/)/;
23
+ this.isUrl = urlPattern.test(this.src);
24
+ if (!this.isUrl) {
25
+ this.initials = this.#getInitials(this.src);
26
+ this.bgColor = this.#generateColor(this.src);
27
+ }
28
+ };
29
+ handleError() {
30
+ this.src = undefined; // Nếu ảnh lỗi, chuyển sang hiển thị initials
31
+ this.#init();
32
+ }
33
+ #getInitials = (name) => {
34
+ return name
35
+ .trim()
36
+ .split(' ')
37
+ .map(n => n[0])
38
+ .join('')
39
+ .toUpperCase()
40
+ .substring(0, 2);
41
+ };
42
+ #generateColor = (name) => {
43
+ const colors = [
44
+ '#1abc9c',
45
+ '#2ecc71',
46
+ '#3498db',
47
+ '#9b59b6',
48
+ '#34495e',
49
+ '#16a085',
50
+ '#27ae60',
51
+ '#2980b9',
52
+ '#8e44ad',
53
+ '#2c3e50',
54
+ '#f1c40f',
55
+ '#e67e22',
56
+ '#e74c3c',
57
+ '#95a5a6',
58
+ '#f39c12',
59
+ '#d35400',
60
+ '#c0392b',
61
+ '#bdc3c7',
62
+ '#7f8c8d',
63
+ ];
64
+ let hash = 0;
65
+ for (let i = 0; i < name.length; i++) {
66
+ hash = name.charCodeAt(i) + ((hash << 5) - hash);
67
+ }
68
+ return colors[Math.abs(hash) % colors.length];
69
+ };
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdAvatar, isStandalone: true, selector: "sd-view", inputs: { src: "src", size: "size" }, ngImport: i0, template: "<div class=\"sd-avatar\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.line-height.px]=\"size\" [style.backgroundColor]=\"bgColor\">\r\n @if (isUrl) {\r\n <img [src]=\"src\" (error)=\"handleError()\" alt=\"avatar\" />\r\n } @else {\r\n <span class=\"sd-avatar-text\" [style.fontSize.px]=\"size / 2.5\">\r\n {{ initials }}\r\n </span>\r\n }\r\n</div>\r\n", styles: [".sd-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;color:#fff;font-weight:500;-webkit-user-select:none;user-select:none;background-size:cover}.sd-avatar img{width:100%;height:100%;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdAvatar, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'sd-view', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sd-avatar\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.line-height.px]=\"size\" [style.backgroundColor]=\"bgColor\">\r\n @if (isUrl) {\r\n <img [src]=\"src\" (error)=\"handleError()\" alt=\"avatar\" />\r\n } @else {\r\n <span class=\"sd-avatar-text\" [style.fontSize.px]=\"size / 2.5\">\r\n {{ initials }}\r\n </span>\r\n }\r\n</div>\r\n", styles: [".sd-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;color:#fff;font-weight:500;-webkit-user-select:none;user-select:none;background-size:cover}.sd-avatar img{width:100%;height:100%;object-fit:cover}\n"] }]
76
+ }], propDecorators: { src: [{
77
+ type: Input,
78
+ args: [{ required: true }]
79
+ }], size: [{
80
+ type: Input
81
+ }] } });
82
+
83
+ /**
84
+ * Generated bundle index. Do not edit.
85
+ */
86
+
87
+ export { SdAvatar };
88
+ //# sourceMappingURL=sd-angular-core-components-view.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd-angular-core-components-view.mjs","sources":["../../../projects/sd-angular/components/view/src/view.component.ts","../../../projects/sd-angular/components/view/src/view.component.html","../../../projects/sd-angular/components/view/sd-angular-core-components-view.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sd-view',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './view.component.html',\r\n styleUrls: ['./view.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdAvatar implements OnInit {\r\n @Input({ required: true }) src: string | undefined | null;\r\n @Input() size: number = 32;\r\n\r\n isUrl: boolean = false;\r\n initials: string = '';\r\n bgColor: string = '#ccc';\r\n\r\n ngOnInit(): void {\r\n this.#init();\r\n }\r\n\r\n #init = () => {\r\n if (!this.src) {\r\n this.isUrl = false;\r\n this.initials = '?';\r\n this.bgColor = '#bdc3c7';\r\n return;\r\n }\r\n // Kiểm tra xem src có phải là URL (http, https, data:image, hoặc path /)\r\n const urlPattern = /^(http|https|data:image|\\/)/;\r\n this.isUrl = urlPattern.test(this.src);\r\n if (!this.isUrl) {\r\n this.initials = this.#getInitials(this.src);\r\n this.bgColor = this.#generateColor(this.src);\r\n }\r\n };\r\n\r\n handleError() {\r\n this.src = undefined; // Nếu ảnh lỗi, chuyển sang hiển thị initials\r\n this.#init();\r\n }\r\n\r\n #getInitials = (name: string): string => {\r\n return name\r\n .trim()\r\n .split(' ')\r\n .map(n => n[0])\r\n .join('')\r\n .toUpperCase()\r\n .substring(0, 2);\r\n };\r\n\r\n #generateColor = (name: string): string => {\r\n const colors = [\r\n '#1abc9c',\r\n '#2ecc71',\r\n '#3498db',\r\n '#9b59b6',\r\n '#34495e',\r\n '#16a085',\r\n '#27ae60',\r\n '#2980b9',\r\n '#8e44ad',\r\n '#2c3e50',\r\n '#f1c40f',\r\n '#e67e22',\r\n '#e74c3c',\r\n '#95a5a6',\r\n '#f39c12',\r\n '#d35400',\r\n '#c0392b',\r\n '#bdc3c7',\r\n '#7f8c8d',\r\n ];\r\n let hash = 0;\r\n for (let i = 0; i < name.length; i++) {\r\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\r\n }\r\n return colors[Math.abs(hash) % colors.length];\r\n };\r\n}\r\n","<div class=\"sd-avatar\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.line-height.px]=\"size\" [style.backgroundColor]=\"bgColor\">\r\n @if (isUrl) {\r\n <img [src]=\"src\" (error)=\"handleError()\" alt=\"avatar\" />\r\n } @else {\r\n <span class=\"sd-avatar-text\" [style.fontSize.px]=\"size / 2.5\">\r\n {{ initials }}\r\n </span>\r\n }\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}