@sd-angular/core 19.0.0-beta.95 → 19.0.0-beta.97
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 +8 -9
- package/components/badge/src/badge.component.d.ts +3 -4
- package/components/button/src/button.component.d.ts +2 -2
- package/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +2 -2
- package/components/document-builder/src/document-builder.model.d.ts +6 -2
- package/components/editor/src/editor.component.d.ts +8 -0
- package/components/editor/src/models/image-upload.plugin.model.d.ts +33 -0
- package/components/editor/src/plugins/image-upload/utils/style.utils.d.ts +1 -0
- package/components/index.d.ts +0 -2
- package/components/modal/src/modal.component.d.ts +1 -2
- package/components/section/src/section.component.d.ts +1 -2
- package/components/table/index.d.ts +1 -0
- package/components/table/src/components/column-filter/column-filter.component.d.ts +3 -3
- package/components/table/src/models/index.d.ts +1 -0
- package/components/table/src/models/table-item.model.d.ts +10 -0
- package/components/table/src/models/table-option-style.model.d.ts +6 -1
- package/components/table/src/models/table-option-tree.model.d.ts +12 -0
- package/components/table/src/models/table-option.model.d.ts +6 -0
- package/components/table/src/pipes/index.d.ts +1 -0
- package/components/table/src/pipes/sd-tree.pipe.d.ts +9 -0
- package/components/table/src/services/tree/tree.util.d.ts +14 -0
- package/components/table/src/table.component.d.ts +3 -0
- package/fesm2022/sd-angular-core-components-document-builder.mjs +9 -4
- package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-editor.mjs +222 -97
- package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-form-generic.mjs +4 -4
- package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-tab-router.mjs +80 -33
- package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-table.mjs +325 -41
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components.mjs +0 -2
- package/fesm2022/sd-angular-core-components.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input.mjs +20 -5
- package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
- package/fesm2022/sd-angular-core-i18n.mjs +35 -0
- package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
- package/fesm2022/sd-angular-core-models.mjs +1 -4
- package/fesm2022/sd-angular-core-models.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-layout.mjs +172 -37
- package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-notify.mjs +21 -21
- package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-extensions.mjs +29 -819
- package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-models.mjs +36 -136
- package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
- package/forms/autocomplete/src/autocomplete.component.d.ts +1 -2
- package/forms/chip/src/chip.component.d.ts +1 -2
- package/forms/chip-calendar/src/chip-calendar.component.d.ts +1 -2
- package/forms/date/src/date.component.d.ts +1 -2
- package/forms/date-range/src/date-range.component.d.ts +1 -2
- package/forms/datetime/src/datetime.component.d.ts +1 -2
- package/forms/input/src/input.component.d.ts +1 -2
- package/forms/input-number/src/input-number.component.d.ts +1 -2
- package/forms/select/src/select.component.d.ts +5 -5
- package/forms/textarea/src/textarea.component.d.ts +1 -2
- package/i18n/src/en.d.ts +6 -0
- package/models/src/language.model.d.ts +2 -4
- package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +8 -1
- package/modules/layout/configurations/layout.configuration.d.ts +8 -0
- package/modules/layout/services/storage/storage.service.d.ts +2 -0
- package/package.json +68 -79
- package/sd-angular-core-19.0.0-beta.97.tgz +0 -0
- package/services/notify/index.d.ts +1 -1
- package/services/notify/src/components/toast/toast.component.d.ts +3 -3
- package/services/notify/src/components/toast-container.component.d.ts +3 -4
- package/services/notify/src/notify.model.d.ts +1 -1
- package/services/notify/src/notify.service.d.ts +5 -5
- package/utilities/extensions/src/array.extension.d.ts +1 -7
- package/utilities/extensions/src/color.extension.d.ts +5 -20
- package/utilities/extensions/src/date.extension.d.ts +1 -18
- package/utilities/extensions/src/number.extension.d.ts +1 -10
- package/utilities/extensions/src/string.extension.d.ts +30 -4
- package/utilities/extensions/src/utility.extension.d.ts +6 -0
- package/utilities/models/src/color.model.d.ts +4 -1
- package/utilities/models/src/empty.model.d.ts +3 -0
- package/utilities/models/src/filter.model.d.ts +12 -24
- package/utilities/models/src/maybe-async.model.d.ts +10 -4
- package/utilities/models/src/nested-key-of.model.d.ts +4 -5
- package/utilities/models/src/operator.model.d.ts +9 -4
- package/utilities/models/src/order.model.d.ts +4 -5
- package/utilities/models/src/paging.model.d.ts +8 -16
- package/utilities/models/src/pattern.model.d.ts +13 -0
- package/utilities/models/src/size.model.d.ts +4 -1
- package/components/anchor-v2/index.d.ts +0 -1
- package/components/anchor-v2/src/components/anchor-item-v2/anchor-item-v2.component.d.ts +0 -12
- package/components/anchor-v2/src/components/anchor-v2/anchor-v2.component.d.ts +0 -19
- package/components/anchor-v2/src/components/anchor-vertical-v2/anchor-vertical-list-v2.component.d.ts +0 -16
- package/components/anchor-v2/src/components/index.d.ts +0 -2
- package/components/anchor-v2/src/index.d.ts +0 -2
- package/components/anchor-v2/src/models/index.d.ts +0 -1
- package/components/anchor-v2/src/models/sd-anchor-v2.model.d.ts +0 -7
- package/components/workflow/index.d.ts +0 -2
- package/components/workflow/src/configurations/index.d.ts +0 -1
- package/components/workflow/src/configurations/workflow.configuration.d.ts +0 -10
- package/fesm2022/sd-angular-core-components-anchor-v2.mjs +0 -151
- package/fesm2022/sd-angular-core-components-anchor-v2.mjs.map +0 -1
- package/fesm2022/sd-angular-core-components-workflow.mjs +0 -17
- package/fesm2022/sd-angular-core-components-workflow.mjs.map +0 -1
- package/fesm2022/sd-angular-core-services-firebase.mjs +0 -38
- package/fesm2022/sd-angular-core-services-firebase.mjs.map +0 -1
- package/sd-angular-core-19.0.0-beta.95.tgz +0 -0
- package/services/firebase/index.d.ts +0 -2
- package/services/firebase/src/firebase.model.d.ts +0 -8
- package/services/firebase/src/firebase.service.d.ts +0 -14
|
@@ -3,7 +3,6 @@ import { FormGroup, ValidatorFn } from '@angular/forms';
|
|
|
3
3
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
4
4
|
import { SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
5
5
|
import { SdFormControl } from '@sd-angular/core/forms/models';
|
|
6
|
-
import { SdSize } from '@sd-angular/core/utilities';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class SdDatetime implements OnDestroy, OnInit {
|
|
9
8
|
#private;
|
|
@@ -20,7 +19,7 @@ export declare class SdDatetime implements OnDestroy, OnInit {
|
|
|
20
19
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
21
20
|
autoId: import("@angular/core").Signal<string | undefined>;
|
|
22
21
|
name: import("@angular/core").InputSignal<string>;
|
|
23
|
-
size: import("@angular/core").InputSignal<
|
|
22
|
+
size: import("@angular/core").InputSignal<import("@sdcorejs/utils/models").Size>;
|
|
24
23
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
25
24
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
26
25
|
helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -3,7 +3,6 @@ import { FormGroup, ValidatorFn } from '@angular/forms';
|
|
|
3
3
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
4
4
|
import { SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
5
5
|
import { SdCustomValidator, SdFormControl } from '@sd-angular/core/forms/models';
|
|
6
|
-
import { SdSize } from '@sd-angular/core/utilities/models';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
|
|
9
8
|
#private;
|
|
@@ -19,7 +18,7 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
|
|
|
19
18
|
appearanceInput: import("@angular/core").InputSignal<MatFormFieldAppearance | undefined>;
|
|
20
19
|
appearance: import("@angular/core").Signal<MatFormFieldAppearance>;
|
|
21
20
|
floatLabel: import("@angular/core").InputSignal<FloatLabelType>;
|
|
22
|
-
size: import("@angular/core").InputSignal<
|
|
21
|
+
size: import("@angular/core").InputSignal<import("@sdcorejs/utils/models").Size>;
|
|
23
22
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
24
23
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
25
24
|
helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -4,7 +4,6 @@ import { ErrorStateMatcher } from '@angular/material/core';
|
|
|
4
4
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
5
5
|
import { SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
6
6
|
import { SdCustomValidator, SdFormControl } from '@sd-angular/core/forms/models';
|
|
7
|
-
import { SdSize } from '@sd-angular/core/utilities/models';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
declare class SdInputNumberErrotStateMatcher implements ErrorStateMatcher {
|
|
10
9
|
private formControl;
|
|
@@ -26,7 +25,7 @@ export declare class SdInputNumber implements OnDestroy, OnInit, AfterViewInit {
|
|
|
26
25
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
27
26
|
autoId: import("@angular/core").Signal<string | undefined>;
|
|
28
27
|
name: import("@angular/core").InputSignal<string>;
|
|
29
|
-
size: import("@angular/core").InputSignal<
|
|
28
|
+
size: import("@angular/core").InputSignal<import("@sdcorejs/utils/models").Size>;
|
|
30
29
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
31
30
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
32
31
|
helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -6,7 +6,7 @@ import { MatInput } from '@angular/material/input';
|
|
|
6
6
|
import { MatSelect, MatSelectChange } from '@angular/material/select';
|
|
7
7
|
import { SdItemDefDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
8
8
|
import { SdCustomValidator, SdFormControl, SdSearch, SdSelectionData } from '@sd-angular/core/forms/models';
|
|
9
|
-
import {
|
|
9
|
+
import { SdNestedKeyOf } from '@sd-angular/core/utilities/models';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export declare class SdSelect<T extends object | string | number = Record<string, unknown>> implements OnInit {
|
|
12
12
|
#private;
|
|
@@ -20,14 +20,14 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
20
20
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
21
21
|
autoId: Signal<string | undefined>;
|
|
22
22
|
name: import("@angular/core").InputSignal<string>;
|
|
23
|
-
size: import("@angular/core").InputSignal<
|
|
23
|
+
size: import("@angular/core").InputSignal<import("@sdcorejs/utils/models").Size>;
|
|
24
24
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
25
25
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
26
26
|
helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
27
27
|
placeholder: import("@angular/core").InputSignal<string | undefined>;
|
|
28
|
-
valueField: import("@angular/core").InputSignal<T
|
|
29
|
-
displayField: import("@angular/core").InputSignal<T
|
|
30
|
-
disabledField: import("@angular/core").InputSignal<"" |
|
|
28
|
+
valueField: import("@angular/core").InputSignal<SdNestedKeyOf<T>>;
|
|
29
|
+
displayField: import("@angular/core").InputSignal<SdNestedKeyOf<T>>;
|
|
30
|
+
disabledField: import("@angular/core").InputSignal<"" | SdNestedKeyOf<T>>;
|
|
31
31
|
cacheChecksum: import("@angular/core").InputSignal<any>;
|
|
32
32
|
limit: import("@angular/core").InputSignal<number>;
|
|
33
33
|
hyperlink: import("@angular/core").InputSignal<string | null | undefined>;
|
|
@@ -3,7 +3,6 @@ import { FormGroup, ValidatorFn } from '@angular/forms';
|
|
|
3
3
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
4
4
|
import { SdLabelDefDirective, SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
5
5
|
import { SdCustomValidator, SdFormControl } from '@sd-angular/core/forms/models';
|
|
6
|
-
import { SdSize } from '@sd-angular/core/utilities';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
9
8
|
#private;
|
|
@@ -15,7 +14,7 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
|
15
14
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
16
15
|
autoId: import("@angular/core").Signal<string | undefined>;
|
|
17
16
|
name: import("@angular/core").InputSignal<string>;
|
|
18
|
-
size: import("@angular/core").InputSignal<
|
|
17
|
+
size: import("@angular/core").InputSignal<import("@sdcorejs/utils/models").Size>;
|
|
19
18
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
20
19
|
label: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
21
20
|
helperText: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
package/i18n/src/en.d.ts
CHANGED
|
@@ -42,6 +42,12 @@ export declare const EN_MESSAGES: {
|
|
|
42
42
|
readonly 'core.docx.invalid-format': "Invalid format. Please select a template in DOC or DOCX format";
|
|
43
43
|
readonly 'core.docx.size-exceeded': "Template file size exceeds the supported limit. Please try again";
|
|
44
44
|
readonly 'core.docx.convert-error': "An error occurred while converting the DOCX file";
|
|
45
|
+
readonly 'core.notify.type.success': "Success";
|
|
46
|
+
readonly 'core.notify.type.info': "Information";
|
|
47
|
+
readonly 'core.notify.type.warning': "Warning";
|
|
48
|
+
readonly 'core.notify.type.error': "Error";
|
|
49
|
+
readonly 'core.notify.show-more': "Show more ({count})";
|
|
50
|
+
readonly 'core.notify.show-less': "Show less";
|
|
45
51
|
readonly 'core.confirm.title': "Confirm";
|
|
46
52
|
readonly 'core.confirm.yes': "OK";
|
|
47
53
|
readonly 'core.confirm.no': "Cancel";
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
/** Ordered list of built-in languages. */
|
|
4
|
-
export declare const SUPPORTED_LANGUAGES: readonly Language[];
|
|
1
|
+
export type { Language } from '@sdcorejs/utils/models';
|
|
2
|
+
export { SUPPORTED_LANGUAGES } from '@sdcorejs/utils/constants';
|
|
@@ -2,7 +2,7 @@ import { NestedTreeControl } from '@angular/cdk/tree';
|
|
|
2
2
|
import { MatTreeNestedDataSource } from '@angular/material/tree';
|
|
3
3
|
import { Params } from '@angular/router';
|
|
4
4
|
import { SdLayoutUserInfo, SidebarConfigurationV1 } from '../../../../configurations';
|
|
5
|
-
import { SdLayoutMenu } from '../../../../services';
|
|
5
|
+
import { SdLayoutChildrenMenu, SdLayoutMenu } from '../../../../services';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class SidebarComponent {
|
|
8
8
|
#private;
|
|
@@ -22,12 +22,19 @@ export declare class SidebarComponent {
|
|
|
22
22
|
titleMenuGroup: import("@angular/core").WritableSignal<string | undefined>;
|
|
23
23
|
idMenuGroupActive: import("@angular/core").WritableSignal<string | undefined>;
|
|
24
24
|
menusByGroup: import("@angular/core").WritableSignal<SdLayoutMenu[]>;
|
|
25
|
+
pinnedMenuGroup: import("@angular/core").WritableSignal<SdLayoutChildrenMenu>;
|
|
25
26
|
totalMenuInMenusByGroup: import("@angular/core").Signal<number>;
|
|
27
|
+
pinnedNodeKeys: import("@angular/core").Signal<Set<string>>;
|
|
28
|
+
isPinnedMenuGroupActive: import("@angular/core").Signal<boolean>;
|
|
26
29
|
dataSource: MatTreeNestedDataSource<SdLayoutMenu>;
|
|
27
30
|
treeControl: NestedTreeControl<SdLayoutMenu, SdLayoutMenu>;
|
|
28
31
|
constructor();
|
|
29
32
|
hasChild: (_: number, node: SdLayoutMenu) => boolean;
|
|
30
33
|
onToggleMenuNode: (menu: SdLayoutMenu) => void;
|
|
34
|
+
isPinnedNode: (node: SdLayoutMenu) => boolean;
|
|
35
|
+
isHoveredNode: (node: SdLayoutMenu) => boolean;
|
|
36
|
+
expandPinnedGroup: () => void;
|
|
37
|
+
onTogglePin: (event: MouseEvent, node: SdLayoutMenu) => void;
|
|
31
38
|
toggleMenuLock(event: Event): void;
|
|
32
39
|
openHomePage: () => void;
|
|
33
40
|
onUserMenuClosed: () => void;
|
|
@@ -55,5 +55,13 @@ export interface SidebarConfigurationV1 {
|
|
|
55
55
|
* @default "Back Office"
|
|
56
56
|
*/
|
|
57
57
|
defaultTitle?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Cấu hình tính năng ghim menu.
|
|
60
|
+
* - `enabled`: bật/tắt tính năng ghim.
|
|
61
|
+
* Hệ thống mặc định là false
|
|
62
|
+
*/
|
|
63
|
+
pin?: {
|
|
64
|
+
enabled?: boolean;
|
|
65
|
+
};
|
|
58
66
|
}
|
|
59
67
|
export declare const SD_LAYOUT_CONFIGURATION: InjectionToken<ISdLayoutConfiguration>;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { SdStorage, SdStorageService } from '@sd-angular/core/services';
|
|
2
|
+
import { SdLayoutChildrenMenu } from '../menu/menu.model';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class SdLayoutStorageService {
|
|
4
5
|
private sdStorageService;
|
|
5
6
|
isShowSidebar: SdStorage<boolean>;
|
|
6
7
|
menuLockStatus: SdStorage<boolean>;
|
|
7
8
|
lastActiveMenuGroupId: SdStorage<string>;
|
|
9
|
+
pinnedMenuGroup: SdStorage<SdLayoutChildrenMenu>;
|
|
8
10
|
constructor(sdStorageService: SdStorageService);
|
|
9
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdLayoutStorageService, never>;
|
|
10
12
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdLayoutStorageService>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-angular/core",
|
|
3
|
-
"version": "19.0.0-beta.
|
|
3
|
+
"version": "19.0.0-beta.97",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
6
6
|
"@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"@angular/material-date-fns-adapter": "^19.0.0 || ^20.0.0 || ^21.0.0"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
+
"@sdcorejs/utils": "^1.0.3",
|
|
11
12
|
"@ckeditor/ckeditor5-angular": "11.1.2",
|
|
12
13
|
"@omer-go/docx-parser-converter-ts": "^1.0.0",
|
|
13
14
|
"@bjorn3/browser_wasi_shim": "^0.4.2",
|
|
@@ -83,14 +84,6 @@
|
|
|
83
84
|
"types": "./components/anchor/index.d.ts",
|
|
84
85
|
"default": "./fesm2022/sd-angular-core-components-anchor.mjs"
|
|
85
86
|
},
|
|
86
|
-
"./components/anchor-v2": {
|
|
87
|
-
"types": "./components/anchor-v2/index.d.ts",
|
|
88
|
-
"default": "./fesm2022/sd-angular-core-components-anchor-v2.mjs"
|
|
89
|
-
},
|
|
90
|
-
"./components/badge": {
|
|
91
|
-
"types": "./components/badge/index.d.ts",
|
|
92
|
-
"default": "./fesm2022/sd-angular-core-components-badge.mjs"
|
|
93
|
-
},
|
|
94
87
|
"./components/avatar": {
|
|
95
88
|
"types": "./components/avatar/index.d.ts",
|
|
96
89
|
"default": "./fesm2022/sd-angular-core-components-avatar.mjs"
|
|
@@ -103,38 +96,38 @@
|
|
|
103
96
|
"types": "./components/button/index.d.ts",
|
|
104
97
|
"default": "./fesm2022/sd-angular-core-components-button.mjs"
|
|
105
98
|
},
|
|
99
|
+
"./components/badge": {
|
|
100
|
+
"types": "./components/badge/index.d.ts",
|
|
101
|
+
"default": "./fesm2022/sd-angular-core-components-badge.mjs"
|
|
102
|
+
},
|
|
106
103
|
"./components/chart": {
|
|
107
104
|
"types": "./components/chart/index.d.ts",
|
|
108
105
|
"default": "./fesm2022/sd-angular-core-components-chart.mjs"
|
|
109
106
|
},
|
|
110
|
-
"./components/document-builder": {
|
|
111
|
-
"types": "./components/document-builder/index.d.ts",
|
|
112
|
-
"default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
|
|
113
|
-
},
|
|
114
107
|
"./components/code-editor": {
|
|
115
108
|
"types": "./components/code-editor/index.d.ts",
|
|
116
109
|
"default": "./fesm2022/sd-angular-core-components-code-editor.mjs"
|
|
117
110
|
},
|
|
111
|
+
"./components/document-builder": {
|
|
112
|
+
"types": "./components/document-builder/index.d.ts",
|
|
113
|
+
"default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
|
|
114
|
+
},
|
|
118
115
|
"./components/editor": {
|
|
119
116
|
"types": "./components/editor/index.d.ts",
|
|
120
117
|
"default": "./fesm2022/sd-angular-core-components-editor.mjs"
|
|
121
118
|
},
|
|
122
|
-
"./components/history": {
|
|
123
|
-
"types": "./components/history/index.d.ts",
|
|
124
|
-
"default": "./fesm2022/sd-angular-core-components-history.mjs"
|
|
125
|
-
},
|
|
126
119
|
"./components/form-generic": {
|
|
127
120
|
"types": "./components/form-generic/index.d.ts",
|
|
128
121
|
"default": "./fesm2022/sd-angular-core-components-form-generic.mjs"
|
|
129
122
|
},
|
|
123
|
+
"./components/history": {
|
|
124
|
+
"types": "./components/history/index.d.ts",
|
|
125
|
+
"default": "./fesm2022/sd-angular-core-components-history.mjs"
|
|
126
|
+
},
|
|
130
127
|
"./components/import-excel": {
|
|
131
128
|
"types": "./components/import-excel/index.d.ts",
|
|
132
129
|
"default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
|
|
133
130
|
},
|
|
134
|
-
"./components/modal": {
|
|
135
|
-
"types": "./components/modal/index.d.ts",
|
|
136
|
-
"default": "./fesm2022/sd-angular-core-components-modal.mjs"
|
|
137
|
-
},
|
|
138
131
|
"./components/mini-editor": {
|
|
139
132
|
"types": "./components/mini-editor/index.d.ts",
|
|
140
133
|
"default": "./fesm2022/sd-angular-core-components-mini-editor.mjs"
|
|
@@ -143,6 +136,14 @@
|
|
|
143
136
|
"types": "./components/preview/index.d.ts",
|
|
144
137
|
"default": "./fesm2022/sd-angular-core-components-preview.mjs"
|
|
145
138
|
},
|
|
139
|
+
"./components/modal": {
|
|
140
|
+
"types": "./components/modal/index.d.ts",
|
|
141
|
+
"default": "./fesm2022/sd-angular-core-components-modal.mjs"
|
|
142
|
+
},
|
|
143
|
+
"./components/query-builder": {
|
|
144
|
+
"types": "./components/query-builder/index.d.ts",
|
|
145
|
+
"default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
|
|
146
|
+
},
|
|
146
147
|
"./components/quick-action": {
|
|
147
148
|
"types": "./components/quick-action/index.d.ts",
|
|
148
149
|
"default": "./fesm2022/sd-angular-core-components-quick-action.mjs"
|
|
@@ -151,42 +152,30 @@
|
|
|
151
152
|
"types": "./components/section/index.d.ts",
|
|
152
153
|
"default": "./fesm2022/sd-angular-core-components-section.mjs"
|
|
153
154
|
},
|
|
154
|
-
"./components/
|
|
155
|
-
"types": "./components/
|
|
156
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
157
|
-
},
|
|
158
|
-
"./components/splitter": {
|
|
159
|
-
"types": "./components/splitter/index.d.ts",
|
|
160
|
-
"default": "./fesm2022/sd-angular-core-components-splitter.mjs"
|
|
155
|
+
"./components/side-drawer": {
|
|
156
|
+
"types": "./components/side-drawer/index.d.ts",
|
|
157
|
+
"default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
|
|
161
158
|
},
|
|
162
|
-
"./components/
|
|
163
|
-
"types": "./components/
|
|
164
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
159
|
+
"./components/tab-router": {
|
|
160
|
+
"types": "./components/tab-router/index.d.ts",
|
|
161
|
+
"default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
|
|
165
162
|
},
|
|
166
163
|
"./components/upload-file": {
|
|
167
164
|
"types": "./components/upload-file/index.d.ts",
|
|
168
165
|
"default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
|
|
169
166
|
},
|
|
170
|
-
"./components/tab-router": {
|
|
171
|
-
"types": "./components/tab-router/index.d.ts",
|
|
172
|
-
"default": "./fesm2022/sd-angular-core-components-tab-router.mjs"
|
|
173
|
-
},
|
|
174
167
|
"./components/view": {
|
|
175
168
|
"types": "./components/view/index.d.ts",
|
|
176
169
|
"default": "./fesm2022/sd-angular-core-components-view.mjs"
|
|
177
170
|
},
|
|
178
|
-
"./components/
|
|
179
|
-
"types": "./components/
|
|
180
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
171
|
+
"./components/table": {
|
|
172
|
+
"types": "./components/table/index.d.ts",
|
|
173
|
+
"default": "./fesm2022/sd-angular-core-components-table.mjs"
|
|
181
174
|
},
|
|
182
175
|
"./forms/autocomplete": {
|
|
183
176
|
"types": "./forms/autocomplete/index.d.ts",
|
|
184
177
|
"default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
|
|
185
178
|
},
|
|
186
|
-
"./forms/checkbox": {
|
|
187
|
-
"types": "./forms/checkbox/index.d.ts",
|
|
188
|
-
"default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
|
|
189
|
-
},
|
|
190
179
|
"./forms/chip": {
|
|
191
180
|
"types": "./forms/chip/index.d.ts",
|
|
192
181
|
"default": "./fesm2022/sd-angular-core-forms-chip.mjs"
|
|
@@ -195,14 +184,18 @@
|
|
|
195
184
|
"types": "./forms/chip-calendar/index.d.ts",
|
|
196
185
|
"default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
|
|
197
186
|
},
|
|
198
|
-
"./forms/
|
|
199
|
-
"types": "./forms/
|
|
200
|
-
"default": "./fesm2022/sd-angular-core-forms-
|
|
187
|
+
"./forms/checkbox": {
|
|
188
|
+
"types": "./forms/checkbox/index.d.ts",
|
|
189
|
+
"default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
|
|
201
190
|
},
|
|
202
191
|
"./forms/date": {
|
|
203
192
|
"types": "./forms/date/index.d.ts",
|
|
204
193
|
"default": "./fesm2022/sd-angular-core-forms-date.mjs"
|
|
205
194
|
},
|
|
195
|
+
"./forms/date-range": {
|
|
196
|
+
"types": "./forms/date-range/index.d.ts",
|
|
197
|
+
"default": "./fesm2022/sd-angular-core-forms-date-range.mjs"
|
|
198
|
+
},
|
|
206
199
|
"./forms/datetime": {
|
|
207
200
|
"types": "./forms/datetime/index.d.ts",
|
|
208
201
|
"default": "./fesm2022/sd-angular-core-forms-datetime.mjs"
|
|
@@ -219,14 +212,14 @@
|
|
|
219
212
|
"types": "./forms/input-number/index.d.ts",
|
|
220
213
|
"default": "./fesm2022/sd-angular-core-forms-input-number.mjs"
|
|
221
214
|
},
|
|
222
|
-
"./forms/label": {
|
|
223
|
-
"types": "./forms/label/index.d.ts",
|
|
224
|
-
"default": "./fesm2022/sd-angular-core-forms-label.mjs"
|
|
225
|
-
},
|
|
226
215
|
"./forms/models": {
|
|
227
216
|
"types": "./forms/models/index.d.ts",
|
|
228
217
|
"default": "./fesm2022/sd-angular-core-forms-models.mjs"
|
|
229
218
|
},
|
|
219
|
+
"./forms/label": {
|
|
220
|
+
"types": "./forms/label/index.d.ts",
|
|
221
|
+
"default": "./fesm2022/sd-angular-core-forms-label.mjs"
|
|
222
|
+
},
|
|
230
223
|
"./forms/radio": {
|
|
231
224
|
"types": "./forms/radio/index.d.ts",
|
|
232
225
|
"default": "./fesm2022/sd-angular-core-forms-radio.mjs"
|
|
@@ -235,14 +228,14 @@
|
|
|
235
228
|
"types": "./forms/select/index.d.ts",
|
|
236
229
|
"default": "./fesm2022/sd-angular-core-forms-select.mjs"
|
|
237
230
|
},
|
|
238
|
-
"./forms/textarea": {
|
|
239
|
-
"types": "./forms/textarea/index.d.ts",
|
|
240
|
-
"default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
|
|
241
|
-
},
|
|
242
231
|
"./forms/switch": {
|
|
243
232
|
"types": "./forms/switch/index.d.ts",
|
|
244
233
|
"default": "./fesm2022/sd-angular-core-forms-switch.mjs"
|
|
245
234
|
},
|
|
235
|
+
"./forms/textarea": {
|
|
236
|
+
"types": "./forms/textarea/index.d.ts",
|
|
237
|
+
"default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
|
|
238
|
+
},
|
|
246
239
|
"./modules/auth": {
|
|
247
240
|
"types": "./modules/auth/index.d.ts",
|
|
248
241
|
"default": "./fesm2022/sd-angular-core-modules-auth.mjs"
|
|
@@ -251,17 +244,21 @@
|
|
|
251
244
|
"types": "./modules/authom/index.d.ts",
|
|
252
245
|
"default": "./fesm2022/sd-angular-core-modules-authom.mjs"
|
|
253
246
|
},
|
|
254
|
-
"./modules/
|
|
255
|
-
"types": "./modules/
|
|
256
|
-
"default": "./fesm2022/sd-angular-core-modules-
|
|
247
|
+
"./modules/keycloak": {
|
|
248
|
+
"types": "./modules/keycloak/index.d.ts",
|
|
249
|
+
"default": "./fesm2022/sd-angular-core-modules-keycloak.mjs"
|
|
257
250
|
},
|
|
258
251
|
"./modules/layout": {
|
|
259
252
|
"types": "./modules/layout/index.d.ts",
|
|
260
253
|
"default": "./fesm2022/sd-angular-core-modules-layout.mjs"
|
|
261
254
|
},
|
|
262
|
-
"./modules/
|
|
263
|
-
"types": "./modules/
|
|
264
|
-
"default": "./fesm2022/sd-angular-core-modules-
|
|
255
|
+
"./modules/permission": {
|
|
256
|
+
"types": "./modules/permission/index.d.ts",
|
|
257
|
+
"default": "./fesm2022/sd-angular-core-modules-permission.mjs"
|
|
258
|
+
},
|
|
259
|
+
"./services/api": {
|
|
260
|
+
"types": "./services/api/index.d.ts",
|
|
261
|
+
"default": "./fesm2022/sd-angular-core-services-api.mjs"
|
|
265
262
|
},
|
|
266
263
|
"./services/cache": {
|
|
267
264
|
"types": "./services/cache/index.d.ts",
|
|
@@ -271,49 +268,41 @@
|
|
|
271
268
|
"types": "./services/confirm/index.d.ts",
|
|
272
269
|
"default": "./fesm2022/sd-angular-core-services-confirm.mjs"
|
|
273
270
|
},
|
|
274
|
-
"./services/api": {
|
|
275
|
-
"types": "./services/api/index.d.ts",
|
|
276
|
-
"default": "./fesm2022/sd-angular-core-services-api.mjs"
|
|
277
|
-
},
|
|
278
271
|
"./services/docx": {
|
|
279
272
|
"types": "./services/docx/index.d.ts",
|
|
280
273
|
"default": "./fesm2022/sd-angular-core-services-docx.mjs"
|
|
281
274
|
},
|
|
282
|
-
"./services/excel": {
|
|
283
|
-
"types": "./services/excel/index.d.ts",
|
|
284
|
-
"default": "./fesm2022/sd-angular-core-services-excel.mjs"
|
|
285
|
-
},
|
|
286
|
-
"./services/firebase": {
|
|
287
|
-
"types": "./services/firebase/index.d.ts",
|
|
288
|
-
"default": "./fesm2022/sd-angular-core-services-firebase.mjs"
|
|
289
|
-
},
|
|
290
275
|
"./services/license": {
|
|
291
276
|
"types": "./services/license/index.d.ts",
|
|
292
277
|
"default": "./fesm2022/sd-angular-core-services-license.mjs"
|
|
293
278
|
},
|
|
279
|
+
"./services/excel": {
|
|
280
|
+
"types": "./services/excel/index.d.ts",
|
|
281
|
+
"default": "./fesm2022/sd-angular-core-services-excel.mjs"
|
|
282
|
+
},
|
|
294
283
|
"./services/loading": {
|
|
295
284
|
"types": "./services/loading/index.d.ts",
|
|
296
285
|
"default": "./fesm2022/sd-angular-core-services-loading.mjs"
|
|
297
286
|
},
|
|
287
|
+
"./components/splitter": {
|
|
288
|
+
"types": "./components/splitter/index.d.ts",
|
|
289
|
+
"default": "./fesm2022/sd-angular-core-components-splitter.mjs"
|
|
290
|
+
},
|
|
298
291
|
"./services/notify": {
|
|
299
292
|
"types": "./services/notify/index.d.ts",
|
|
300
293
|
"default": "./fesm2022/sd-angular-core-services-notify.mjs"
|
|
301
294
|
},
|
|
302
|
-
"./utilities/extensions": {
|
|
303
|
-
"types": "./utilities/extensions/index.d.ts",
|
|
304
|
-
"default": "./fesm2022/sd-angular-core-utilities-extensions.mjs"
|
|
305
|
-
},
|
|
306
295
|
"./services/storage": {
|
|
307
296
|
"types": "./services/storage/index.d.ts",
|
|
308
297
|
"default": "./fesm2022/sd-angular-core-services-storage.mjs"
|
|
309
298
|
},
|
|
299
|
+
"./utilities/extensions": {
|
|
300
|
+
"types": "./utilities/extensions/index.d.ts",
|
|
301
|
+
"default": "./fesm2022/sd-angular-core-utilities-extensions.mjs"
|
|
302
|
+
},
|
|
310
303
|
"./utilities/models": {
|
|
311
304
|
"types": "./utilities/models/index.d.ts",
|
|
312
305
|
"default": "./fesm2022/sd-angular-core-utilities-models.mjs"
|
|
313
|
-
},
|
|
314
|
-
"./components/side-drawer": {
|
|
315
|
-
"types": "./components/side-drawer/index.d.ts",
|
|
316
|
-
"default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
|
|
317
306
|
}
|
|
318
307
|
}
|
|
319
308
|
}
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { type SdNotifyOption } from './src/notify.model';
|
|
1
|
+
export { type NotifyOption as SdNotifyOption } from './src/notify.model';
|
|
2
2
|
export * from './src/notify.service';
|
|
@@ -2,7 +2,7 @@ import { OnInit, OnDestroy } from '@angular/core';
|
|
|
2
2
|
import { ToastData } from '../../notify.model';
|
|
3
3
|
import { SdNotifyService } from '../../notify.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class ToastComponent implements OnInit, OnDestroy {
|
|
6
6
|
private notifyService;
|
|
7
7
|
data: ToastData;
|
|
8
8
|
isExpanded: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -23,6 +23,6 @@ export declare class SdToastComponent implements OnInit, OnDestroy {
|
|
|
23
23
|
get displayMessages(): string[];
|
|
24
24
|
get restCount(): number;
|
|
25
25
|
get hasMore(): boolean;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "toast", never, { "data": { "alias": "data"; "required": true; }; }, {}, never, never, true, never>;
|
|
28
28
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { WritableSignal } from '@angular/core';
|
|
2
2
|
import { ToastData } from '../notify.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ToastContainerComponent {
|
|
5
5
|
toasts: WritableSignal<ToastData[]>;
|
|
6
|
-
|
|
7
|
-
static
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdToastContainerComponent, "sd-toast-container", never, {}, {}, never, never, true, never>;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastContainerComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToastContainerComponent, "toast-container", never, {}, {}, never, never, true, never>;
|
|
9
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApplicationRef, EnvironmentInjector } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { NotifyOption, ToastData, ToastType } from './notify.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class SdNotifyService {
|
|
5
5
|
#private;
|
|
@@ -8,10 +8,10 @@ export declare class SdNotifyService {
|
|
|
8
8
|
private document;
|
|
9
9
|
readonly toasts: import("@angular/core").WritableSignal<ToastData[]>;
|
|
10
10
|
constructor(appRef: ApplicationRef, injector: EnvironmentInjector, document: Document);
|
|
11
|
-
success(message: string, option?:
|
|
12
|
-
info(message: string, option?:
|
|
13
|
-
warning(message: string | string[], option?:
|
|
14
|
-
error(message: string | string[], option?:
|
|
11
|
+
success(message: string, option?: NotifyOption): void;
|
|
12
|
+
info(message: string, option?: NotifyOption): void;
|
|
13
|
+
warning(message: string | string[], option?: NotifyOption): void;
|
|
14
|
+
error(message: string | string[], option?: NotifyOption): void;
|
|
15
15
|
remove(id: string): void;
|
|
16
16
|
clearAll(): void;
|
|
17
17
|
clearByType(type: ToastType): void;
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
search: <T = any>(items: T[], searchText: any, fields?: (string | undefined) | (string | undefined)[], children?: string) => T[];
|
|
3
|
-
union: <T = unknown>(key: string, ...args: (T[] | undefined | null)[]) => T[];
|
|
4
|
-
toObject: <T>(key: string, items: T[] | undefined | null) => Record<string, T>;
|
|
5
|
-
distinct: <T = any>(items: T[] | undefined | null) => T[];
|
|
6
|
-
paging: <T = any>(items: T[] | undefined | null, pageSize: number, page?: number) => T[];
|
|
7
|
-
};
|
|
1
|
+
export { ArrayUtilities } from '@sdcorejs/utils/fns';
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
* Chuyển đổi màu HSL sang định dạng hex
|
|
7
|
-
* @param h - Hue (0-360)
|
|
8
|
-
* @param s - Saturation (0-100)
|
|
9
|
-
* @param l - Lightness (0-100)
|
|
10
|
-
* @returns Mã màu hex
|
|
11
|
-
*/
|
|
12
|
-
export declare function hslToHex(h: number, s: number, l: number): string;
|
|
13
|
-
/**
|
|
14
|
-
* Chuyển đổi màu RGB sang hex
|
|
15
|
-
* @param r - Red (0-255)
|
|
16
|
-
* @param g - Green (0-255)
|
|
17
|
-
* @param b - Blue (0-255)
|
|
18
|
-
* @returns Mã màu hex
|
|
19
|
-
*/
|
|
20
|
-
export declare function rgbToHex(r: number, g: number, b: number): string;
|
|
1
|
+
export { ColorUtilities } from '@sdcorejs/utils/fns';
|
|
2
|
+
/** @deprecated Use {@link ColorUtilities.hslToHex} from `@sdcorejs/utils/fns` instead */
|
|
3
|
+
export declare const hslToHex: (h: number, s: number, l: number) => string;
|
|
4
|
+
/** @deprecated Use {@link ColorUtilities.rgbToHex} from `@sdcorejs/utils/fns` instead */
|
|
5
|
+
export declare const rgbToHex: (r: number, g: number, b: number) => string;
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
equal: (date1: any, date2: any) => boolean;
|
|
3
|
-
dayDiff: (date1: any, date2: any) => number | null;
|
|
4
|
-
monthDiff: (date1: any, date2: any) => number | null;
|
|
5
|
-
yearDiff: (date1: any, date2: any) => number | null;
|
|
6
|
-
age: (date1: any, date2: any) => number | null;
|
|
7
|
-
parseFrom: (value: any, format: string) => Date | null;
|
|
8
|
-
isDate: (value: any) => boolean;
|
|
9
|
-
toFormat: (value: any, format: string) => string;
|
|
10
|
-
addMiliseconds: (value: any, miliseconds: number) => Date | null;
|
|
11
|
-
addHours: (value: any, hours: number) => Date | null;
|
|
12
|
-
addDays: (value: any, days: number) => Date | null;
|
|
13
|
-
addMonths: (value: any, months: number) => Date | null;
|
|
14
|
-
begin: (value: any) => Date | null;
|
|
15
|
-
end: (value: any) => Date | null;
|
|
16
|
-
timeDifference: (previous: any, current?: any) => string;
|
|
17
|
-
};
|
|
18
|
-
export { DateUtilities };
|
|
1
|
+
export { DateUtilities } from '@sdcorejs/utils/fns';
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
|
|
2
|
-
toVNCurrency: (value: any) => string | null;
|
|
3
|
-
toVN: (value: any) => string | null;
|
|
4
|
-
toISO: (value: any) => string | null;
|
|
5
|
-
isPositiveInteger: (value: any) => boolean;
|
|
6
|
-
isPositiveNumber: (value: any) => boolean;
|
|
7
|
-
isNumber: (value: any) => boolean;
|
|
8
|
-
round: (value: any, digits?: number) => number | null;
|
|
9
|
-
};
|
|
10
|
-
export { NumberUtilities };
|
|
1
|
+
export { NumberUtilities } from '@sdcorejs/utils/fns';
|