coer-elements 1.0.6 → 1.0.8
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/Tools/Breadcrumbs.class.ts +84 -0
- package/Tools/ControlValue.ts +63 -0
- package/Tools/Files.class.ts +1 -1
- package/Tools/Page.class.ts +187 -0
- package/Tools/Screen.class.ts +1 -1
- package/Tools/Source.class.ts +107 -0
- package/dist_browser/Tools/Files.class.js +1 -1
- package/dist_browser/Tools/Tools.js +227 -0
- package/dist_browser/index.js +4 -4
- package/dist_node/Tools/DateTime.class.js +28 -0
- package/dist_node/Tools/Files.class.js +102 -0
- package/dist_node/Tools/Screen.class.js +71 -0
- package/dist_node/Tools/Tools.js +230 -0
- package/dist_node/index.js +4 -4
- package/dist_node/interfaces/index.js +2 -0
- package/index.ts +5 -2
- package/interfaces/index.ts +19 -0
- package/package.json +6 -1
- package/tsconfig.json +7 -1
- /package/Tools/{index.ts → Tools.ts} +0 -0
@@ -0,0 +1,84 @@
|
|
1
|
+
import { IAppSource } from "../interfaces";
|
2
|
+
import { Tools } from './Tools';
|
3
|
+
|
4
|
+
export class Breadcrumbs {
|
5
|
+
|
6
|
+
private static readonly storage = 'COER-System';
|
7
|
+
|
8
|
+
/** */
|
9
|
+
public static Add(page: string, path: string): void {
|
10
|
+
const breadcrumbs = this.Get();
|
11
|
+
const paths = breadcrumbs.map(item => item.path);
|
12
|
+
|
13
|
+
if (!paths.includes(path)) {
|
14
|
+
breadcrumbs.push({ page, path });
|
15
|
+
this.Save(breadcrumbs);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
/** */
|
21
|
+
public static Get(): IAppSource[] {
|
22
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
23
|
+
|
24
|
+
if (storage) {
|
25
|
+
storage = JSON.parse(storage);
|
26
|
+
|
27
|
+
if (storage.hasOwnProperty('breadcrumbs')) {
|
28
|
+
return Tools.BreakReference(storage.breadcrumbs);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
return [];
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
/** Source */
|
37
|
+
public static GetFirst(): IAppSource | null {
|
38
|
+
const breadcrumbs = this.Get();
|
39
|
+
return (breadcrumbs.length > 0) ? breadcrumbs.shift()! : null;
|
40
|
+
}
|
41
|
+
|
42
|
+
|
43
|
+
/** */
|
44
|
+
public static Save(breadcrumbs: IAppSource[]): void {
|
45
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
46
|
+
if (storage) storage = JSON.parse(storage);
|
47
|
+
storage = Object.assign({}, storage, { breadcrumbs });
|
48
|
+
sessionStorage.setItem(this.storage, JSON.stringify(storage));
|
49
|
+
}
|
50
|
+
|
51
|
+
|
52
|
+
/** */
|
53
|
+
public static Remove(path: string): void {
|
54
|
+
let breadcrumbs = this.Get();
|
55
|
+
const index = breadcrumbs.findIndex(x => x.path.toLowerCase().trim() === path.toLowerCase().trim());
|
56
|
+
|
57
|
+
if (index >= 0) {
|
58
|
+
breadcrumbs = Tools.BreakReference(breadcrumbs).splice(0, index + 1);
|
59
|
+
this.Save(breadcrumbs);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
/** */
|
65
|
+
public static SetLast(page: string, path: string): void {
|
66
|
+
const breadcrumbs = this.Get();
|
67
|
+
|
68
|
+
if (breadcrumbs.length > 0) {
|
69
|
+
breadcrumbs[breadcrumbs.length - 1] = { page, path };
|
70
|
+
this.Save(breadcrumbs);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
/** */
|
76
|
+
public static RemoveLast(): void {
|
77
|
+
const breadcrumbs = this.Get();
|
78
|
+
|
79
|
+
if (breadcrumbs.length > 0) {
|
80
|
+
breadcrumbs.pop();
|
81
|
+
this.Save(breadcrumbs);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms";
|
2
|
+
import { forwardRef } from "@angular/core";
|
3
|
+
|
4
|
+
export const CONTROL_VALUE = <T>(component: T) => {
|
5
|
+
return {
|
6
|
+
provide: NG_VALUE_ACCESSOR,
|
7
|
+
useExisting: forwardRef(() => component),
|
8
|
+
multi: true
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
|
13
|
+
export class ControlValue implements ControlValueAccessor {
|
14
|
+
|
15
|
+
//Variables
|
16
|
+
protected _value: any;
|
17
|
+
private _isTouched: boolean = false;
|
18
|
+
protected _UpdateValue!: Function;
|
19
|
+
private _IsTouched!: Function;
|
20
|
+
|
21
|
+
|
22
|
+
public get isTouched() {
|
23
|
+
return this._isTouched;
|
24
|
+
}
|
25
|
+
|
26
|
+
|
27
|
+
/** */
|
28
|
+
protected SetValue(value: any): void {
|
29
|
+
if(typeof this._UpdateValue === 'function') {
|
30
|
+
this._UpdateValue(value);
|
31
|
+
}
|
32
|
+
|
33
|
+
this._value = value;
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
/** */
|
38
|
+
public SetTouched(isTouched: boolean): void {
|
39
|
+
if(typeof this._IsTouched === 'function') {
|
40
|
+
this._IsTouched(isTouched);
|
41
|
+
}
|
42
|
+
|
43
|
+
this._isTouched = isTouched;
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
/** */
|
48
|
+
public writeValue(value: any): void {
|
49
|
+
this._value = value;
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
/** */
|
54
|
+
public registerOnChange(callback: Function): void {
|
55
|
+
this._UpdateValue = callback;
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
/** */
|
60
|
+
public registerOnTouched(callback: Function): void {
|
61
|
+
this._IsTouched = callback;
|
62
|
+
}
|
63
|
+
}
|
package/Tools/Files.class.ts
CHANGED
@@ -0,0 +1,187 @@
|
|
1
|
+
import { AfterViewInit, Component, Inject, inject, OnDestroy } from '@angular/core';
|
2
|
+
import { Breadcrumbs } from "./Breadcrumbs.class";
|
3
|
+
import { Source } from './Source.class';
|
4
|
+
//import { CoerAlert } from 'src/app/shared/components/coer-alert/coer-alert.component';
|
5
|
+
import { IAppSource, IBreadcrumb, IGoBack } from '../interfaces';
|
6
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
7
|
+
import { Tools } from './Tools';
|
8
|
+
|
9
|
+
@Component({ template: '' })
|
10
|
+
export class Page implements AfterViewInit, OnDestroy {
|
11
|
+
|
12
|
+
//Injection
|
13
|
+
//protected readonly alert = inject(CoerAlert);
|
14
|
+
protected readonly router = inject(Router);
|
15
|
+
private readonly activatedRoute = inject(ActivatedRoute);
|
16
|
+
|
17
|
+
/** */
|
18
|
+
protected isUpdate: boolean = false;
|
19
|
+
|
20
|
+
/** */
|
21
|
+
protected isLoading: boolean = false;
|
22
|
+
|
23
|
+
/** */
|
24
|
+
protected isReady: boolean = false;
|
25
|
+
|
26
|
+
/** */
|
27
|
+
protected isReadyAnimations: boolean = false;
|
28
|
+
|
29
|
+
/** */
|
30
|
+
protected routeParams: any;
|
31
|
+
|
32
|
+
/** */
|
33
|
+
protected queryParams: any;
|
34
|
+
|
35
|
+
/** */
|
36
|
+
protected breadcrumbs: IBreadcrumb[] = [];
|
37
|
+
|
38
|
+
/** */
|
39
|
+
protected pageResponse: any = null;
|
40
|
+
|
41
|
+
/** */
|
42
|
+
protected goBack: IGoBack = { show: false };
|
43
|
+
|
44
|
+
//Private Variables
|
45
|
+
private _page: string = '';
|
46
|
+
private _source: IAppSource | null = null;
|
47
|
+
private _preventDestroy: boolean = false;
|
48
|
+
|
49
|
+
|
50
|
+
constructor(@Inject(String) page: string) {
|
51
|
+
this.SetPageName(page);
|
52
|
+
this.SetSource();
|
53
|
+
this.GetSource();
|
54
|
+
this.GetNavigation();
|
55
|
+
this.SetGoBack();
|
56
|
+
this.GetPageResponse();
|
57
|
+
}
|
58
|
+
|
59
|
+
ngAfterViewInit() {
|
60
|
+
this.routeParams = this.activatedRoute.snapshot.params;
|
61
|
+
this.queryParams = this.activatedRoute.snapshot.queryParams;
|
62
|
+
|
63
|
+
setTimeout(() => {
|
64
|
+
this.isReady = true;
|
65
|
+
this.RunPage();
|
66
|
+
setTimeout(() => { this.isReadyAnimations = true }, 1000);
|
67
|
+
});
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
ngOnDestroy() {
|
72
|
+
if (!this._preventDestroy) Source.ClearPageResponse();
|
73
|
+
}
|
74
|
+
|
75
|
+
/** Main method. Starts after ngAfterViewInit() */
|
76
|
+
protected RunPage(): void {};
|
77
|
+
|
78
|
+
|
79
|
+
/** Rename the last breadcrumb and update the url id */
|
80
|
+
protected SetPageName(name: string, id: string | number | null = null): void {
|
81
|
+
this._page = name;
|
82
|
+
|
83
|
+
let path = this.router.url;
|
84
|
+
if (path.includes('?')) path = path.split('?')[0];
|
85
|
+
|
86
|
+
if (id) {
|
87
|
+
const PATH_ARRAY = path.split('/');
|
88
|
+
const PATH_ID = Tools.BreakReference(PATH_ARRAY).pop();
|
89
|
+
if (PATH_ID) {
|
90
|
+
PATH_ARRAY[PATH_ARRAY.length - 1] = String(id);
|
91
|
+
path = PATH_ARRAY.join('/');
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
if (this.breadcrumbs.length > 0) {
|
96
|
+
this.breadcrumbs[this.breadcrumbs.length - 1].page = name;
|
97
|
+
this.breadcrumbs[this.breadcrumbs.length - 1].path = path;
|
98
|
+
Breadcrumbs.SetLast(name, path);
|
99
|
+
}
|
100
|
+
|
101
|
+
this.router.navigateByUrl(path)
|
102
|
+
}
|
103
|
+
|
104
|
+
|
105
|
+
/** */
|
106
|
+
private SetSource(): void {
|
107
|
+
Source.Set(this._page);
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
/** */
|
112
|
+
private GetSource(): void {
|
113
|
+
this._source = Source.Get();
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
/** */
|
118
|
+
protected GetPageResponse(): void {
|
119
|
+
this.pageResponse = Source.GetPageResponse();
|
120
|
+
}
|
121
|
+
|
122
|
+
|
123
|
+
/** */
|
124
|
+
private GetNavigation(): void {
|
125
|
+
if (this._source) {
|
126
|
+
this.breadcrumbs = Breadcrumbs.Get().map(item => Object.assign({
|
127
|
+
page: item.page,
|
128
|
+
path: item.path,
|
129
|
+
click: this.GoBack(item.path)
|
130
|
+
}));
|
131
|
+
}
|
132
|
+
|
133
|
+
else this.breadcrumbs = [{ page: this._page }];
|
134
|
+
}
|
135
|
+
|
136
|
+
|
137
|
+
/** */
|
138
|
+
private SetGoBack(): void {
|
139
|
+
if (this._source) {
|
140
|
+
this.goBack = {
|
141
|
+
show: true,
|
142
|
+
path: this._source.path,
|
143
|
+
click: this.GoBack()
|
144
|
+
};
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
|
149
|
+
/** */
|
150
|
+
private GoBack = (path?: string) => (() => {
|
151
|
+
if (path) Breadcrumbs.Remove(path);
|
152
|
+
else Breadcrumbs.RemoveLast();
|
153
|
+
});
|
154
|
+
|
155
|
+
|
156
|
+
/** Navigate to previous page */
|
157
|
+
protected GoToSource<T>(pageResponse: T | null = null): void {
|
158
|
+
if(this._source) {
|
159
|
+
Breadcrumbs.RemoveLast();
|
160
|
+
this.SetPageResponse(pageResponse);
|
161
|
+
Tools.Sleep().then(_ => this.router.navigateByUrl(this._source!.path));
|
162
|
+
}
|
163
|
+
};
|
164
|
+
|
165
|
+
|
166
|
+
/** */
|
167
|
+
protected SetPageResponse<T>(pageResponse: T | null = null): void {
|
168
|
+
if (Tools.IsNotNull(pageResponse)) {
|
169
|
+
this._preventDestroy = true;
|
170
|
+
Source.SetPageResponse(pageResponse);
|
171
|
+
}
|
172
|
+
};
|
173
|
+
|
174
|
+
|
175
|
+
/** */
|
176
|
+
protected ReloadPage(): void {
|
177
|
+
Breadcrumbs.RemoveLast();
|
178
|
+
Tools.Sleep().then(_ => window.location.reload());
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
/** */
|
183
|
+
protected Log(value: any, log: string | null = null): void {
|
184
|
+
if (Tools.IsNotNull(log)) console.log({ log, value });
|
185
|
+
else console.log(value);
|
186
|
+
}
|
187
|
+
}
|
package/Tools/Screen.class.ts
CHANGED
@@ -0,0 +1,107 @@
|
|
1
|
+
import { Breadcrumbs } from "./Breadcrumbs.class";
|
2
|
+
import { IAppSource } from '../interfaces';
|
3
|
+
import { Router } from '@angular/router';
|
4
|
+
import { inject } from "@angular/core";
|
5
|
+
import { Tools } from './Tools';
|
6
|
+
|
7
|
+
export class Source {
|
8
|
+
|
9
|
+
private static readonly storage = 'COER-System';
|
10
|
+
|
11
|
+
/** */
|
12
|
+
public static Set(page: string): void {
|
13
|
+
const ROUTER = inject(Router);
|
14
|
+
|
15
|
+
let path = ROUTER.url;
|
16
|
+
if (path.includes('?')) path = path.split('?')[0];
|
17
|
+
|
18
|
+
Breadcrumbs.Add(page, path);
|
19
|
+
|
20
|
+
const breadcrumbs = Breadcrumbs.Get();
|
21
|
+
|
22
|
+
if(breadcrumbs.length >= 2) {
|
23
|
+
breadcrumbs.pop();
|
24
|
+
const breadcrumb = breadcrumbs.pop()!;
|
25
|
+
this.Save({ page: breadcrumb.page, path: breadcrumb.path });
|
26
|
+
}
|
27
|
+
|
28
|
+
else this.Save(null);
|
29
|
+
}
|
30
|
+
|
31
|
+
|
32
|
+
/** */
|
33
|
+
private static Save(source: IAppSource | null): void {
|
34
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
35
|
+
if (storage) storage = JSON.parse(storage);
|
36
|
+
storage = Object.assign({}, storage, { source });
|
37
|
+
sessionStorage.setItem(this.storage, JSON.stringify(storage));
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
/** */
|
42
|
+
public static Get(): IAppSource | null {
|
43
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
44
|
+
|
45
|
+
if (storage) {
|
46
|
+
storage = JSON.parse(storage);
|
47
|
+
|
48
|
+
if (storage.hasOwnProperty('source')) {
|
49
|
+
return storage.source;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
return null;
|
54
|
+
}
|
55
|
+
|
56
|
+
|
57
|
+
/** */
|
58
|
+
public static GetRoot(): IAppSource | null {
|
59
|
+
const breadcrumbs = Breadcrumbs.Get();
|
60
|
+
return (breadcrumbs.length > 0) ? breadcrumbs.shift()! : null;
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
/** */
|
65
|
+
public static SetPageResponse<T>(pageResponse: T): void {
|
66
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
67
|
+
storage = JSON.parse(storage);
|
68
|
+
storage = Object.assign({}, storage, { pageResponse });
|
69
|
+
sessionStorage.setItem(this.storage, JSON.stringify(storage));
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
/** */
|
74
|
+
public static GetPageResponse<T>(): T | null {
|
75
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
76
|
+
|
77
|
+
if (storage) {
|
78
|
+
storage = JSON.parse(storage);
|
79
|
+
|
80
|
+
if (storage.hasOwnProperty('pageResponse')) {
|
81
|
+
return Tools.BreakReference(storage.pageResponse);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
return null;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
/** */
|
90
|
+
public static ClearPageResponse(): void {
|
91
|
+
let storage = sessionStorage.getItem(this.storage) as any;
|
92
|
+
storage = JSON.parse(storage);
|
93
|
+
|
94
|
+
if (storage.hasOwnProperty('pageResponse')) {
|
95
|
+
delete storage.pageResponse;
|
96
|
+
}
|
97
|
+
|
98
|
+
storage = Object.assign({}, storage);
|
99
|
+
sessionStorage.setItem(this.storage, JSON.stringify(storage));
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
/** Clear Source */
|
104
|
+
public static Reset(): void {
|
105
|
+
sessionStorage.removeItem(this.storage);
|
106
|
+
}
|
107
|
+
}
|
@@ -0,0 +1,227 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
14
|
+
if (ar || !(i in from)) {
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
16
|
+
ar[i] = from[i];
|
17
|
+
}
|
18
|
+
}
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
20
|
+
};
|
21
|
+
import { Guid } from "guid-typescript";
|
22
|
+
import { signal } from "@angular/core";
|
23
|
+
var reference_signal = signal({});
|
24
|
+
export var Tools = {
|
25
|
+
/** Generate a Guid */
|
26
|
+
GetGuid: function (seed) {
|
27
|
+
if (seed === void 0) { seed = 'coer-system'; }
|
28
|
+
return "".concat(seed, "-").concat(Guid.create().toString());
|
29
|
+
},
|
30
|
+
/** Returns true if the value is null or undefined, false otherwise */
|
31
|
+
IsNull: function (value) {
|
32
|
+
if (value === undefined)
|
33
|
+
return true;
|
34
|
+
if (value === null)
|
35
|
+
return true;
|
36
|
+
return false;
|
37
|
+
},
|
38
|
+
/** Returns true if the value is not null or undefined, false otherwise */
|
39
|
+
IsNotNull: function (value) {
|
40
|
+
if (value === undefined)
|
41
|
+
return false;
|
42
|
+
if (value === null)
|
43
|
+
return false;
|
44
|
+
return true;
|
45
|
+
},
|
46
|
+
/** Returns true if the value is null or undefined or contains only whitespace, false otherwise */
|
47
|
+
IsOnlyWhiteSpace: function (value) {
|
48
|
+
if (value === undefined)
|
49
|
+
return true;
|
50
|
+
if (value === null)
|
51
|
+
return true;
|
52
|
+
if (value.toString().trim() === '')
|
53
|
+
return true;
|
54
|
+
return false;
|
55
|
+
},
|
56
|
+
/** Break reference of a object or array */
|
57
|
+
BreakReference: function (object) {
|
58
|
+
if (object === undefined)
|
59
|
+
return undefined;
|
60
|
+
if (object === null)
|
61
|
+
return null;
|
62
|
+
var OBJECT = JSON.parse(JSON.stringify(object));
|
63
|
+
return (Array.isArray(OBJECT)) ? __spreadArray([], OBJECT, true) : __assign({}, OBJECT);
|
64
|
+
},
|
65
|
+
/** Clean extra whitespaces */
|
66
|
+
CleanUpBlanks: function (text) {
|
67
|
+
if (Tools.IsNull(text))
|
68
|
+
return '';
|
69
|
+
var worlds = String(text).split(' ');
|
70
|
+
worlds = worlds.filter(function (x) { return x.length > 0; });
|
71
|
+
return worlds.join(' ');
|
72
|
+
},
|
73
|
+
/** Get properties of an object */
|
74
|
+
GetObjectProperties: function (obj) {
|
75
|
+
var properties = [];
|
76
|
+
if (Tools.IsNull(obj))
|
77
|
+
return properties;
|
78
|
+
for (var property in obj)
|
79
|
+
properties.push(String(property));
|
80
|
+
return properties;
|
81
|
+
},
|
82
|
+
/**
|
83
|
+
* Set an index and merge more arrays of the same type
|
84
|
+
* @returns A new array
|
85
|
+
* */
|
86
|
+
SetIndex: function (array) {
|
87
|
+
var args = [];
|
88
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
89
|
+
args[_i - 1] = arguments[_i];
|
90
|
+
}
|
91
|
+
var index = 0;
|
92
|
+
for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
|
93
|
+
var arg = args_1[_a];
|
94
|
+
array = Tools.BreakReference(array).concat(Tools.BreakReference(arg));
|
95
|
+
}
|
96
|
+
return Tools.BreakReference(array).map(function (item) { return Object.assign({ index: index++ }, item); });
|
97
|
+
},
|
98
|
+
/** Set First Char To Lower */
|
99
|
+
FirstCharToLower: function (text) {
|
100
|
+
if (Tools.IsNull(text))
|
101
|
+
return '';
|
102
|
+
var textArray = [];
|
103
|
+
for (var i = 0; i < text.length; i++) {
|
104
|
+
if (i === 0)
|
105
|
+
textArray.push(text[i].toLowerCase());
|
106
|
+
else
|
107
|
+
textArray.push(text[i]);
|
108
|
+
}
|
109
|
+
return textArray.join('');
|
110
|
+
},
|
111
|
+
/** Set First Char To Upper */
|
112
|
+
FirstCharToUpper: function (text) {
|
113
|
+
if (Tools.IsNull(text))
|
114
|
+
return '';
|
115
|
+
var textArray = [];
|
116
|
+
for (var i = 0; i < text.length; i++) {
|
117
|
+
if (i === 0)
|
118
|
+
textArray.push(text[i].toUpperCase());
|
119
|
+
else
|
120
|
+
textArray.push(text[i]);
|
121
|
+
}
|
122
|
+
return textArray.join('');
|
123
|
+
},
|
124
|
+
/** Sort an array in ascending order by property */
|
125
|
+
SortBy: function (array, property, propertyType) {
|
126
|
+
if (propertyType === void 0) { propertyType = 'string'; }
|
127
|
+
switch (propertyType) {
|
128
|
+
case 'string': {
|
129
|
+
return array.sort(function (x, y) {
|
130
|
+
if (String(x[property]).toUpperCase().trim() < String(y[property]).toUpperCase().trim())
|
131
|
+
return -1;
|
132
|
+
else if (String(x[property]).toUpperCase().trim() > String(y[property]).toUpperCase().trim())
|
133
|
+
return 1;
|
134
|
+
else
|
135
|
+
return 0;
|
136
|
+
});
|
137
|
+
}
|
138
|
+
case 'number': {
|
139
|
+
return array.sort(function (x, y) { return Number(x[property] - Number(y[property])); });
|
140
|
+
}
|
141
|
+
}
|
142
|
+
},
|
143
|
+
/** Sort an array in descending order by property */
|
144
|
+
SortByDesc: function (array, property, propertyType) {
|
145
|
+
if (propertyType === void 0) { propertyType = 'string'; }
|
146
|
+
switch (propertyType) {
|
147
|
+
case 'string': {
|
148
|
+
return array.sort(function (x, y) {
|
149
|
+
if (String(x[property]).toUpperCase().trim() < String(y[property]).toUpperCase().trim())
|
150
|
+
return 1;
|
151
|
+
else if (String(x[property]).toUpperCase().trim() > String(y[property]).toUpperCase().trim())
|
152
|
+
return -1;
|
153
|
+
else
|
154
|
+
return 0;
|
155
|
+
});
|
156
|
+
}
|
157
|
+
case 'number': {
|
158
|
+
return array.sort(function (x, y) { return Number(Number(y[property])) - x[property]; });
|
159
|
+
}
|
160
|
+
}
|
161
|
+
},
|
162
|
+
/** Return a string with forman numeric */
|
163
|
+
GetNumericFormat: function (value, decimals) {
|
164
|
+
if (decimals === void 0) { decimals = 0; }
|
165
|
+
if (value == undefined
|
166
|
+
|| value == null
|
167
|
+
|| value.toString().trim() == ''
|
168
|
+
|| isNaN(Number(value))) {
|
169
|
+
return '0';
|
170
|
+
}
|
171
|
+
var valueInteger = '';
|
172
|
+
var valueDecimal = '';
|
173
|
+
value = value.toString().replaceAll(' ', '');
|
174
|
+
if (value.includes('.') || (decimals > 0)) {
|
175
|
+
valueInteger = value.includes('.') ? value.split('.')[0] : value;
|
176
|
+
if (decimals > 0) {
|
177
|
+
var PADDING = decimals - valueDecimal.length;
|
178
|
+
valueDecimal = value.includes('.') ? value.split('.')[1] : '';
|
179
|
+
for (var i = 0; i < PADDING; i++)
|
180
|
+
valueDecimal += '0';
|
181
|
+
valueDecimal = valueDecimal.substring(0, decimals);
|
182
|
+
valueDecimal = ".".concat(valueDecimal);
|
183
|
+
}
|
184
|
+
}
|
185
|
+
else {
|
186
|
+
valueInteger = value;
|
187
|
+
}
|
188
|
+
var counter = 0;
|
189
|
+
var VALUE_INTEGER_ARRAY = [];
|
190
|
+
for (var _i = 0, _a = valueInteger.split('').reverse(); _i < _a.length; _i++) {
|
191
|
+
var char = _a[_i];
|
192
|
+
if (counter == 3) {
|
193
|
+
VALUE_INTEGER_ARRAY.push(',');
|
194
|
+
counter = 0;
|
195
|
+
}
|
196
|
+
VALUE_INTEGER_ARRAY.push(char);
|
197
|
+
++counter;
|
198
|
+
}
|
199
|
+
valueInteger = VALUE_INTEGER_ARRAY.reverse().join('');
|
200
|
+
return "".concat(valueInteger).concat(valueDecimal);
|
201
|
+
},
|
202
|
+
/** Wait the time indicated */
|
203
|
+
Sleep: function (milliseconds, reference) {
|
204
|
+
if (milliseconds === void 0) { milliseconds = 0; }
|
205
|
+
if (reference === void 0) { reference = null; }
|
206
|
+
if (Tools.IsNull(reference)) {
|
207
|
+
return new Promise(function (Resolve) { return setTimeout(Resolve, milliseconds); });
|
208
|
+
}
|
209
|
+
else
|
210
|
+
return new Promise(function (Resolve) {
|
211
|
+
var _a;
|
212
|
+
reference = reference.replaceAll(' ', '_').toLowerCase();
|
213
|
+
if (reference_signal().hasOwnProperty(reference)) {
|
214
|
+
clearInterval(reference_signal()[reference]);
|
215
|
+
}
|
216
|
+
reference_signal.set(Object.assign(reference_signal(), (_a = {},
|
217
|
+
_a[reference] = setTimeout(function () {
|
218
|
+
Resolve();
|
219
|
+
clearInterval(reference_signal()[reference]);
|
220
|
+
var _reference = __assign({}, reference_signal());
|
221
|
+
delete _reference[reference];
|
222
|
+
reference_signal.set(__assign({}, _reference));
|
223
|
+
}, milliseconds),
|
224
|
+
_a)));
|
225
|
+
});
|
226
|
+
}
|
227
|
+
};
|
package/dist_browser/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export * from 'Tools';
|
2
|
-
export * from 'Tools/DateTime.class';
|
3
|
-
export * from 'Tools/Files.class';
|
4
|
-
export * from 'Tools/Screen.class';
|
1
|
+
export * from './Tools/Tools';
|
2
|
+
export * from './Tools/DateTime.class';
|
3
|
+
export * from './Tools/Files.class';
|
4
|
+
export * from './Tools/Screen.class';
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DateTime = void 0;
|
4
|
+
var moment_1 = require("moment");
|
5
|
+
var DateTime = /** @class */ (function () {
|
6
|
+
function DateTime() {
|
7
|
+
}
|
8
|
+
/** Get UTC Offset */
|
9
|
+
DateTime.GetUTCOffset = function () {
|
10
|
+
return (0, moment_1.default)().utcOffset();
|
11
|
+
};
|
12
|
+
/** Convert UTC Date to Local Zone */
|
13
|
+
DateTime.ToLocalZone = function (utcDate) {
|
14
|
+
return (0, moment_1.default)(utcDate).add(DateTime.GetUTCOffset(), 'minutes').format('YYYY-MM-DD HH:mm:ss');
|
15
|
+
};
|
16
|
+
/** Convert Local Zone Date to UTC */
|
17
|
+
DateTime.ToUTC = function (utcDate) {
|
18
|
+
return (0, moment_1.default)(utcDate).subtract(DateTime.GetUTCOffset(), 'minutes').format('YYYY-MM-DD HH:mm:ss');
|
19
|
+
};
|
20
|
+
/** DD MMM YYYY */
|
21
|
+
DateTime.GetDateFormat = function (date) {
|
22
|
+
if ((typeof date === 'string'))
|
23
|
+
date = date.replaceAll('/', '-');
|
24
|
+
return (0, moment_1.default)(date).parseZone().local(true).format('DD MMM YYYY');
|
25
|
+
};
|
26
|
+
return DateTime;
|
27
|
+
}());
|
28
|
+
exports.DateTime = DateTime;
|
@@ -0,0 +1,102 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Files = void 0;
|
4
|
+
var Tools_1 = require("./Tools");
|
5
|
+
var XLSX = require("xlsx");
|
6
|
+
var Files = /** @class */ (function () {
|
7
|
+
function Files() {
|
8
|
+
}
|
9
|
+
/** Get Extension File */
|
10
|
+
Files.GetExtension = function (file) {
|
11
|
+
var fileName = file.name;
|
12
|
+
if (fileName.includes('.')) {
|
13
|
+
var worlds = fileName.split('.');
|
14
|
+
if (worlds.length > 0) {
|
15
|
+
var extension = worlds.pop();
|
16
|
+
extension = extension.trim().toLowerCase();
|
17
|
+
if (extension.length > 0)
|
18
|
+
return extension;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
return null;
|
22
|
+
};
|
23
|
+
/** Is Excel File */
|
24
|
+
Files.IsExcel = function (file) {
|
25
|
+
var EXTENSION = Files.GetExtension(file);
|
26
|
+
return Tools_1.Tools.IsNotNull(EXTENSION)
|
27
|
+
? this.EXCEL_EXTENSIONS.includes(EXTENSION)
|
28
|
+
: false;
|
29
|
+
};
|
30
|
+
/** Read excel file */
|
31
|
+
Files.ReadExcel = function (file) {
|
32
|
+
return new Promise(function (Resolve) {
|
33
|
+
var columns = [];
|
34
|
+
var rows = [];
|
35
|
+
var reader = new FileReader();
|
36
|
+
reader.readAsArrayBuffer(file);
|
37
|
+
reader.onload = function () {
|
38
|
+
var dataBytes = new Uint8Array(reader.result);
|
39
|
+
if (dataBytes) {
|
40
|
+
var workbook = XLSX.read(dataBytes, {});
|
41
|
+
var sheet = workbook.Sheets[workbook.SheetNames[0]];
|
42
|
+
var dataSheet = XLSX.utils.sheet_to_json(sheet, {
|
43
|
+
header: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
|
44
|
+
});
|
45
|
+
//Get Headers
|
46
|
+
for (var column in dataSheet[0]) {
|
47
|
+
columns.push(Tools_1.Tools.FirstCharToLower(String(dataSheet[0][column]).replaceAll(' ', '')));
|
48
|
+
}
|
49
|
+
//Get Rows
|
50
|
+
rows = XLSX.utils.sheet_to_json(sheet, { header: columns });
|
51
|
+
rows.shift();
|
52
|
+
rows = rows.map(function (row) {
|
53
|
+
var item = Tools_1.Tools.BreakReference(row);
|
54
|
+
delete item['__rowNum__'];
|
55
|
+
return item;
|
56
|
+
});
|
57
|
+
}
|
58
|
+
Resolve({ columns: columns, rows: rows });
|
59
|
+
};
|
60
|
+
reader.onerror = function () { Resolve({ columns: columns, rows: rows }); };
|
61
|
+
});
|
62
|
+
};
|
63
|
+
/** Export to excel file */
|
64
|
+
Files.ExportExcel = function (data, fileName, sheetName) {
|
65
|
+
if (fileName === void 0) { fileName = 'coer_report'; }
|
66
|
+
if (sheetName === void 0) { sheetName = 'Sheet1'; }
|
67
|
+
sheetName = Tools_1.Tools.CleanUpBlanks(sheetName);
|
68
|
+
fileName = Tools_1.Tools.CleanUpBlanks(fileName);
|
69
|
+
if (fileName.endsWith('.xls') || fileName.endsWith('.xlsx') || fileName.endsWith('.csv')) {
|
70
|
+
if (fileName.includes('.xls')) {
|
71
|
+
fileName = fileName.replaceAll('.xls', '.xlsx');
|
72
|
+
}
|
73
|
+
if (fileName.includes('.csv')) {
|
74
|
+
fileName = fileName.replaceAll('.csv', '.xlsx');
|
75
|
+
}
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
fileName += '.xlsx';
|
79
|
+
}
|
80
|
+
var WORK_SHEET = XLSX.utils.json_to_sheet(data);
|
81
|
+
var WORK_BOOK = XLSX.utils.book_new();
|
82
|
+
XLSX.utils.book_append_sheet(WORK_BOOK, WORK_SHEET, 'Sheet1');
|
83
|
+
XLSX.writeFile(WORK_BOOK, fileName);
|
84
|
+
};
|
85
|
+
/** Convert file to string base64 */
|
86
|
+
Files.ConvertToBase64 = function (file) {
|
87
|
+
return new Promise(function (Resolve) {
|
88
|
+
var reader = new FileReader();
|
89
|
+
reader.readAsDataURL(file);
|
90
|
+
reader.onload = function () {
|
91
|
+
var _a;
|
92
|
+
Resolve(((_a = reader.result) === null || _a === void 0 ? void 0 : _a.toString()) || '');
|
93
|
+
};
|
94
|
+
reader.onerror = function () {
|
95
|
+
Resolve('');
|
96
|
+
};
|
97
|
+
});
|
98
|
+
};
|
99
|
+
Files.EXCEL_EXTENSIONS = ['xls', 'xlsx', 'csv'];
|
100
|
+
return Files;
|
101
|
+
}());
|
102
|
+
exports.Files = Files;
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Screen = void 0;
|
4
|
+
var rxjs_1 = require("rxjs");
|
5
|
+
var Screen = /** @class */ (function () {
|
6
|
+
function Screen() {
|
7
|
+
}
|
8
|
+
Object.defineProperty(Screen, "WINDOW_WIDTH", {
|
9
|
+
get: function () {
|
10
|
+
return window.innerWidth;
|
11
|
+
},
|
12
|
+
enumerable: false,
|
13
|
+
configurable: true
|
14
|
+
});
|
15
|
+
Object.defineProperty(Screen, "WINDOW_HEIGHT", {
|
16
|
+
get: function () {
|
17
|
+
return window.innerHeight;
|
18
|
+
},
|
19
|
+
enumerable: false,
|
20
|
+
configurable: true
|
21
|
+
});
|
22
|
+
Object.defineProperty(Screen, "DEVICE_WIDTH", {
|
23
|
+
get: function () {
|
24
|
+
return window.screen.width;
|
25
|
+
},
|
26
|
+
enumerable: false,
|
27
|
+
configurable: true
|
28
|
+
});
|
29
|
+
Object.defineProperty(Screen, "DEVICE_HEIGHT", {
|
30
|
+
get: function () {
|
31
|
+
return window.screen.height;
|
32
|
+
},
|
33
|
+
enumerable: false,
|
34
|
+
configurable: true
|
35
|
+
});
|
36
|
+
Object.defineProperty(Screen, "BREAKPOINT", {
|
37
|
+
get: function () {
|
38
|
+
if (window.innerWidth < 576)
|
39
|
+
return 'xs';
|
40
|
+
else if (window.innerWidth >= 576 && window.innerWidth < 768)
|
41
|
+
return 'sm';
|
42
|
+
else if (window.innerWidth >= 768 && window.innerWidth < 992)
|
43
|
+
return 'md';
|
44
|
+
else if (window.innerWidth >= 992 && window.innerWidth < 1200)
|
45
|
+
return 'lg';
|
46
|
+
else if (window.innerWidth >= 1200 && window.innerWidth < 1400)
|
47
|
+
return 'xl';
|
48
|
+
else
|
49
|
+
return 'xxl';
|
50
|
+
},
|
51
|
+
enumerable: false,
|
52
|
+
configurable: true
|
53
|
+
});
|
54
|
+
var _a;
|
55
|
+
_a = Screen;
|
56
|
+
/** */
|
57
|
+
Screen.Resize = new rxjs_1.Observable(function (subscriber) {
|
58
|
+
window.addEventListener("load", function () {
|
59
|
+
window.dispatchEvent(new Event('resize'));
|
60
|
+
});
|
61
|
+
window.onresize = function () {
|
62
|
+
subscriber.next({
|
63
|
+
width: window.innerWidth,
|
64
|
+
height: window.innerHeight,
|
65
|
+
breakpoin: _a.BREAKPOINT
|
66
|
+
});
|
67
|
+
};
|
68
|
+
});
|
69
|
+
return Screen;
|
70
|
+
}());
|
71
|
+
exports.Screen = Screen;
|
@@ -0,0 +1,230 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
15
|
+
if (ar || !(i in from)) {
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
17
|
+
ar[i] = from[i];
|
18
|
+
}
|
19
|
+
}
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
21
|
+
};
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
23
|
+
exports.Tools = void 0;
|
24
|
+
var guid_typescript_1 = require("guid-typescript");
|
25
|
+
var core_1 = require("@angular/core");
|
26
|
+
var reference_signal = (0, core_1.signal)({});
|
27
|
+
exports.Tools = {
|
28
|
+
/** Generate a Guid */
|
29
|
+
GetGuid: function (seed) {
|
30
|
+
if (seed === void 0) { seed = 'coer-system'; }
|
31
|
+
return "".concat(seed, "-").concat(guid_typescript_1.Guid.create().toString());
|
32
|
+
},
|
33
|
+
/** Returns true if the value is null or undefined, false otherwise */
|
34
|
+
IsNull: function (value) {
|
35
|
+
if (value === undefined)
|
36
|
+
return true;
|
37
|
+
if (value === null)
|
38
|
+
return true;
|
39
|
+
return false;
|
40
|
+
},
|
41
|
+
/** Returns true if the value is not null or undefined, false otherwise */
|
42
|
+
IsNotNull: function (value) {
|
43
|
+
if (value === undefined)
|
44
|
+
return false;
|
45
|
+
if (value === null)
|
46
|
+
return false;
|
47
|
+
return true;
|
48
|
+
},
|
49
|
+
/** Returns true if the value is null or undefined or contains only whitespace, false otherwise */
|
50
|
+
IsOnlyWhiteSpace: function (value) {
|
51
|
+
if (value === undefined)
|
52
|
+
return true;
|
53
|
+
if (value === null)
|
54
|
+
return true;
|
55
|
+
if (value.toString().trim() === '')
|
56
|
+
return true;
|
57
|
+
return false;
|
58
|
+
},
|
59
|
+
/** Break reference of a object or array */
|
60
|
+
BreakReference: function (object) {
|
61
|
+
if (object === undefined)
|
62
|
+
return undefined;
|
63
|
+
if (object === null)
|
64
|
+
return null;
|
65
|
+
var OBJECT = JSON.parse(JSON.stringify(object));
|
66
|
+
return (Array.isArray(OBJECT)) ? __spreadArray([], OBJECT, true) : __assign({}, OBJECT);
|
67
|
+
},
|
68
|
+
/** Clean extra whitespaces */
|
69
|
+
CleanUpBlanks: function (text) {
|
70
|
+
if (exports.Tools.IsNull(text))
|
71
|
+
return '';
|
72
|
+
var worlds = String(text).split(' ');
|
73
|
+
worlds = worlds.filter(function (x) { return x.length > 0; });
|
74
|
+
return worlds.join(' ');
|
75
|
+
},
|
76
|
+
/** Get properties of an object */
|
77
|
+
GetObjectProperties: function (obj) {
|
78
|
+
var properties = [];
|
79
|
+
if (exports.Tools.IsNull(obj))
|
80
|
+
return properties;
|
81
|
+
for (var property in obj)
|
82
|
+
properties.push(String(property));
|
83
|
+
return properties;
|
84
|
+
},
|
85
|
+
/**
|
86
|
+
* Set an index and merge more arrays of the same type
|
87
|
+
* @returns A new array
|
88
|
+
* */
|
89
|
+
SetIndex: function (array) {
|
90
|
+
var args = [];
|
91
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
92
|
+
args[_i - 1] = arguments[_i];
|
93
|
+
}
|
94
|
+
var index = 0;
|
95
|
+
for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
|
96
|
+
var arg = args_1[_a];
|
97
|
+
array = exports.Tools.BreakReference(array).concat(exports.Tools.BreakReference(arg));
|
98
|
+
}
|
99
|
+
return exports.Tools.BreakReference(array).map(function (item) { return Object.assign({ index: index++ }, item); });
|
100
|
+
},
|
101
|
+
/** Set First Char To Lower */
|
102
|
+
FirstCharToLower: function (text) {
|
103
|
+
if (exports.Tools.IsNull(text))
|
104
|
+
return '';
|
105
|
+
var textArray = [];
|
106
|
+
for (var i = 0; i < text.length; i++) {
|
107
|
+
if (i === 0)
|
108
|
+
textArray.push(text[i].toLowerCase());
|
109
|
+
else
|
110
|
+
textArray.push(text[i]);
|
111
|
+
}
|
112
|
+
return textArray.join('');
|
113
|
+
},
|
114
|
+
/** Set First Char To Upper */
|
115
|
+
FirstCharToUpper: function (text) {
|
116
|
+
if (exports.Tools.IsNull(text))
|
117
|
+
return '';
|
118
|
+
var textArray = [];
|
119
|
+
for (var i = 0; i < text.length; i++) {
|
120
|
+
if (i === 0)
|
121
|
+
textArray.push(text[i].toUpperCase());
|
122
|
+
else
|
123
|
+
textArray.push(text[i]);
|
124
|
+
}
|
125
|
+
return textArray.join('');
|
126
|
+
},
|
127
|
+
/** Sort an array in ascending order by property */
|
128
|
+
SortBy: function (array, property, propertyType) {
|
129
|
+
if (propertyType === void 0) { propertyType = 'string'; }
|
130
|
+
switch (propertyType) {
|
131
|
+
case 'string': {
|
132
|
+
return array.sort(function (x, y) {
|
133
|
+
if (String(x[property]).toUpperCase().trim() < String(y[property]).toUpperCase().trim())
|
134
|
+
return -1;
|
135
|
+
else if (String(x[property]).toUpperCase().trim() > String(y[property]).toUpperCase().trim())
|
136
|
+
return 1;
|
137
|
+
else
|
138
|
+
return 0;
|
139
|
+
});
|
140
|
+
}
|
141
|
+
case 'number': {
|
142
|
+
return array.sort(function (x, y) { return Number(x[property] - Number(y[property])); });
|
143
|
+
}
|
144
|
+
}
|
145
|
+
},
|
146
|
+
/** Sort an array in descending order by property */
|
147
|
+
SortByDesc: function (array, property, propertyType) {
|
148
|
+
if (propertyType === void 0) { propertyType = 'string'; }
|
149
|
+
switch (propertyType) {
|
150
|
+
case 'string': {
|
151
|
+
return array.sort(function (x, y) {
|
152
|
+
if (String(x[property]).toUpperCase().trim() < String(y[property]).toUpperCase().trim())
|
153
|
+
return 1;
|
154
|
+
else if (String(x[property]).toUpperCase().trim() > String(y[property]).toUpperCase().trim())
|
155
|
+
return -1;
|
156
|
+
else
|
157
|
+
return 0;
|
158
|
+
});
|
159
|
+
}
|
160
|
+
case 'number': {
|
161
|
+
return array.sort(function (x, y) { return Number(Number(y[property])) - x[property]; });
|
162
|
+
}
|
163
|
+
}
|
164
|
+
},
|
165
|
+
/** Return a string with forman numeric */
|
166
|
+
GetNumericFormat: function (value, decimals) {
|
167
|
+
if (decimals === void 0) { decimals = 0; }
|
168
|
+
if (value == undefined
|
169
|
+
|| value == null
|
170
|
+
|| value.toString().trim() == ''
|
171
|
+
|| isNaN(Number(value))) {
|
172
|
+
return '0';
|
173
|
+
}
|
174
|
+
var valueInteger = '';
|
175
|
+
var valueDecimal = '';
|
176
|
+
value = value.toString().replaceAll(' ', '');
|
177
|
+
if (value.includes('.') || (decimals > 0)) {
|
178
|
+
valueInteger = value.includes('.') ? value.split('.')[0] : value;
|
179
|
+
if (decimals > 0) {
|
180
|
+
var PADDING = decimals - valueDecimal.length;
|
181
|
+
valueDecimal = value.includes('.') ? value.split('.')[1] : '';
|
182
|
+
for (var i = 0; i < PADDING; i++)
|
183
|
+
valueDecimal += '0';
|
184
|
+
valueDecimal = valueDecimal.substring(0, decimals);
|
185
|
+
valueDecimal = ".".concat(valueDecimal);
|
186
|
+
}
|
187
|
+
}
|
188
|
+
else {
|
189
|
+
valueInteger = value;
|
190
|
+
}
|
191
|
+
var counter = 0;
|
192
|
+
var VALUE_INTEGER_ARRAY = [];
|
193
|
+
for (var _i = 0, _a = valueInteger.split('').reverse(); _i < _a.length; _i++) {
|
194
|
+
var char = _a[_i];
|
195
|
+
if (counter == 3) {
|
196
|
+
VALUE_INTEGER_ARRAY.push(',');
|
197
|
+
counter = 0;
|
198
|
+
}
|
199
|
+
VALUE_INTEGER_ARRAY.push(char);
|
200
|
+
++counter;
|
201
|
+
}
|
202
|
+
valueInteger = VALUE_INTEGER_ARRAY.reverse().join('');
|
203
|
+
return "".concat(valueInteger).concat(valueDecimal);
|
204
|
+
},
|
205
|
+
/** Wait the time indicated */
|
206
|
+
Sleep: function (milliseconds, reference) {
|
207
|
+
if (milliseconds === void 0) { milliseconds = 0; }
|
208
|
+
if (reference === void 0) { reference = null; }
|
209
|
+
if (exports.Tools.IsNull(reference)) {
|
210
|
+
return new Promise(function (Resolve) { return setTimeout(Resolve, milliseconds); });
|
211
|
+
}
|
212
|
+
else
|
213
|
+
return new Promise(function (Resolve) {
|
214
|
+
var _a;
|
215
|
+
reference = reference.replaceAll(' ', '_').toLowerCase();
|
216
|
+
if (reference_signal().hasOwnProperty(reference)) {
|
217
|
+
clearInterval(reference_signal()[reference]);
|
218
|
+
}
|
219
|
+
reference_signal.set(Object.assign(reference_signal(), (_a = {},
|
220
|
+
_a[reference] = setTimeout(function () {
|
221
|
+
Resolve();
|
222
|
+
clearInterval(reference_signal()[reference]);
|
223
|
+
var _reference = __assign({}, reference_signal());
|
224
|
+
delete _reference[reference];
|
225
|
+
reference_signal.set(__assign({}, _reference));
|
226
|
+
}, milliseconds),
|
227
|
+
_a)));
|
228
|
+
});
|
229
|
+
}
|
230
|
+
};
|
package/dist_node/index.js
CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
__exportStar(require("Tools"), exports);
|
18
|
-
__exportStar(require("Tools/DateTime.class"), exports);
|
19
|
-
__exportStar(require("Tools/Files.class"), exports);
|
20
|
-
__exportStar(require("Tools/Screen.class"), exports);
|
17
|
+
__exportStar(require("./Tools/Tools"), exports);
|
18
|
+
__exportStar(require("./Tools/DateTime.class"), exports);
|
19
|
+
__exportStar(require("./Tools/Files.class"), exports);
|
20
|
+
__exportStar(require("./Tools/Screen.class"), exports);
|
package/index.ts
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
export * from './Tools'
|
1
|
+
export * from './Tools/Breadcrumbs.class';
|
2
|
+
export * from './Tools/ControlValue';
|
2
3
|
export * from './Tools/DateTime.class';
|
3
4
|
export * from './Tools/Files.class';
|
4
|
-
export * from './Tools/Screen.class';
|
5
|
+
export * from './Tools/Screen.class';
|
6
|
+
export * from './Tools/Source.class';
|
7
|
+
export * from './Tools/Tools'
|
package/interfaces/index.ts
CHANGED
@@ -8,4 +8,23 @@ export interface IScreenSize {
|
|
8
8
|
width: number;
|
9
9
|
height: number;
|
10
10
|
breakpoin: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
11
|
+
}
|
12
|
+
|
13
|
+
export interface IAppSource {
|
14
|
+
page: string;
|
15
|
+
path: string;
|
16
|
+
}
|
17
|
+
|
18
|
+
export interface IBreadcrumb {
|
19
|
+
page: string;
|
20
|
+
path?: string | null;
|
21
|
+
queryParams?: any;
|
22
|
+
click?: (() => any);
|
23
|
+
}
|
24
|
+
|
25
|
+
export interface IGoBack {
|
26
|
+
show: boolean;
|
27
|
+
path?: string | null;
|
28
|
+
queryParams?: any;
|
29
|
+
click?: (() => any);
|
11
30
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "coer-elements",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.8",
|
4
4
|
"author": "Christian Omar Escamilla Rodríguez",
|
5
5
|
"keywords": [
|
6
6
|
"coer",
|
@@ -23,9 +23,14 @@
|
|
23
23
|
},
|
24
24
|
"dependencies": {
|
25
25
|
"@angular/core": "^17.3.0",
|
26
|
+
"@angular/forms": "^17.3.0",
|
27
|
+
"@angular/router": "^17.3.0",
|
26
28
|
"guid-typescript": "^1.0.9",
|
27
29
|
"moment": "^2.30.1",
|
28
30
|
"rxjs": "^7.8.1",
|
29
31
|
"xlsx": "^0.18.5"
|
32
|
+
},
|
33
|
+
"devDependencies": {
|
34
|
+
"typescript": "^5.5.4"
|
30
35
|
}
|
31
36
|
}
|
package/tsconfig.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
|
+
"compileOnSave": false,
|
2
3
|
"compilerOptions": {
|
3
|
-
/* Visit https://aka.ms/tsconfig to read more about this file */
|
4
4
|
"outDir": "./dist/out-tsc",
|
5
5
|
"strict": true,
|
6
6
|
"noImplicitOverride": true,
|
@@ -19,5 +19,11 @@
|
|
19
19
|
"useDefineForClassFields": false,
|
20
20
|
"lib": ["ES2022", "dom"],
|
21
21
|
"baseUrl": "./"
|
22
|
+
},
|
23
|
+
"angularCompilerOptions": {
|
24
|
+
"enableI18nLegacyMessageIdFormat": false,
|
25
|
+
"strictInjectionParameters": true,
|
26
|
+
"strictInputAccessModifiers": true,
|
27
|
+
"strictTemplates": true
|
22
28
|
}
|
23
29
|
}
|
File without changes
|