ngx-sfc-common 0.0.1
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 +460 -0
- package/esm2020/lib/components/button/button-type.enum.mjs +9 -0
- package/esm2020/lib/components/button/button.component.mjs +38 -0
- package/esm2020/lib/components/checkmark/checkmark.component.mjs +27 -0
- package/esm2020/lib/components/delimeter/delimeter.component.mjs +11 -0
- package/esm2020/lib/components/dots/dots.component.mjs +30 -0
- package/esm2020/lib/components/hamburger/hamburger.component.mjs +24 -0
- package/esm2020/lib/components/index.mjs +20 -0
- package/esm2020/lib/components/loader/bounce/bounce-loader.component.mjs +13 -0
- package/esm2020/lib/components/loader/circle/circle-loader-type.enum.mjs +6 -0
- package/esm2020/lib/components/loader/circle/circle-loader.component.mjs +20 -0
- package/esm2020/lib/components/loader/loader-base.component.mjs +51 -0
- package/esm2020/lib/components/loader/loader.constants.mjs +6 -0
- package/esm2020/lib/components/loader/loader.event.mjs +2 -0
- package/esm2020/lib/components/loader/service/loader.service.mjs +76 -0
- package/esm2020/lib/components/modal/directive/modal-open-on-click.directive.mjs +50 -0
- package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +48 -0
- package/esm2020/lib/components/modal/footer/default/default-modal-footer.model.mjs +2 -0
- package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +31 -0
- package/esm2020/lib/components/modal/header/default/default-modal-header.model.mjs +2 -0
- package/esm2020/lib/components/modal/modal-template.enum.mjs +7 -0
- package/esm2020/lib/components/modal/modal.component.mjs +107 -0
- package/esm2020/lib/components/modal/service/modal.service.mjs +26 -0
- package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +31 -0
- package/esm2020/lib/components/toggle-switcher/toggle-switcher.model.mjs +2 -0
- package/esm2020/lib/components/tooltip/tooltip-type.enum.mjs +6 -0
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +69 -0
- package/esm2020/lib/constants/common.constants.mjs +6 -0
- package/esm2020/lib/constants/date-time.constants.mjs +8 -0
- package/esm2020/lib/constants/index.mjs +4 -0
- package/esm2020/lib/constants/ui.constants.mjs +16 -0
- package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +65 -0
- package/esm2020/lib/directives/click-outside/click-outside.event.mjs +2 -0
- package/esm2020/lib/directives/component-size/component-size.directive.mjs +46 -0
- package/esm2020/lib/directives/index.mjs +7 -0
- package/esm2020/lib/directives/mouse-down/mouse-down.directive.mjs +37 -0
- package/esm2020/lib/directives/show-hide-element/show-hide-element.directive.mjs +42 -0
- package/esm2020/lib/directives/template-reference/template-reference.directive.mjs +21 -0
- package/esm2020/lib/directives/throw-element-on-hover/throw-element-on-hover.directive.mjs +38 -0
- package/esm2020/lib/enums/common.enums.mjs +69 -0
- package/esm2020/lib/enums/index.mjs +2 -0
- package/esm2020/lib/ngx-sfc-common.module.mjs +135 -0
- package/esm2020/lib/services/document-ref.service.mjs +70 -0
- package/esm2020/lib/services/index.mjs +4 -0
- package/esm2020/lib/services/resize.service.mjs +42 -0
- package/esm2020/lib/services/window-ref.service.mjs +70 -0
- package/esm2020/lib/utils/collections.utils.mjs +244 -0
- package/esm2020/lib/utils/common.utils.mjs +86 -0
- package/esm2020/lib/utils/date-time.utils.mjs +208 -0
- package/esm2020/lib/utils/file.utils.mjs +52 -0
- package/esm2020/lib/utils/index.mjs +7 -0
- package/esm2020/lib/utils/string.utils.mjs +31 -0
- package/esm2020/lib/utils/ui.utils.mjs +39 -0
- package/esm2020/ngx-sfc-common.mjs +5 -0
- package/esm2020/public-api.mjs +11 -0
- package/fesm2015/ngx-sfc-common.mjs +1908 -0
- package/fesm2015/ngx-sfc-common.mjs.map +1 -0
- package/fesm2020/ngx-sfc-common.mjs +1900 -0
- package/fesm2020/ngx-sfc-common.mjs.map +1 -0
- package/lib/components/button/button-type.enum.d.ts +7 -0
- package/lib/components/button/button.component.d.ts +13 -0
- package/lib/components/checkmark/checkmark.component.d.ts +8 -0
- package/lib/components/delimeter/delimeter.component.d.ts +5 -0
- package/lib/components/dots/dots.component.d.ts +9 -0
- package/lib/components/hamburger/hamburger.component.d.ts +7 -0
- package/lib/components/index.d.ts +21 -0
- package/lib/components/loader/bounce/bounce-loader.component.d.ts +6 -0
- package/lib/components/loader/circle/circle-loader-type.enum.d.ts +4 -0
- package/lib/components/loader/circle/circle-loader.component.d.ts +8 -0
- package/lib/components/loader/loader-base.component.d.ts +27 -0
- package/lib/components/loader/loader.constants.d.ts +5 -0
- package/lib/components/loader/loader.event.d.ts +4 -0
- package/lib/components/loader/service/loader.service.d.ts +33 -0
- package/lib/components/modal/directive/modal-open-on-click.directive.d.ts +17 -0
- package/lib/components/modal/footer/default/default-modal-footer.component.d.ts +19 -0
- package/lib/components/modal/footer/default/default-modal-footer.model.d.ts +6 -0
- package/lib/components/modal/header/default/default-modal-header.component.d.ts +14 -0
- package/lib/components/modal/header/default/default-modal-header.model.d.ts +5 -0
- package/lib/components/modal/modal-template.enum.d.ts +5 -0
- package/lib/components/modal/modal.component.d.ts +25 -0
- package/lib/components/modal/service/modal.service.d.ts +12 -0
- package/lib/components/toggle-switcher/toggle-switcher.component.d.ts +11 -0
- package/lib/components/toggle-switcher/toggle-switcher.model.d.ts +4 -0
- package/lib/components/tooltip/tooltip-type.enum.d.ts +4 -0
- package/lib/components/tooltip/tooltip.component.d.ts +22 -0
- package/lib/constants/common.constants.d.ts +5 -0
- package/lib/constants/date-time.constants.d.ts +7 -0
- package/lib/constants/index.d.ts +3 -0
- package/lib/constants/ui.constants.d.ts +15 -0
- package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
- package/lib/directives/click-outside/click-outside.event.d.ts +4 -0
- package/lib/directives/component-size/component-size.directive.d.ts +13 -0
- package/lib/directives/index.d.ts +7 -0
- package/lib/directives/mouse-down/mouse-down.directive.d.ts +12 -0
- package/lib/directives/show-hide-element/show-hide-element.directive.d.ts +13 -0
- package/lib/directives/template-reference/template-reference.directive.d.ts +9 -0
- package/lib/directives/throw-element-on-hover/throw-element-on-hover.directive.d.ts +13 -0
- package/lib/enums/common.enums.d.ts +61 -0
- package/lib/enums/index.d.ts +1 -0
- package/lib/ngx-sfc-common.module.d.ts +27 -0
- package/lib/services/document-ref.service.d.ts +43 -0
- package/lib/services/index.d.ts +3 -0
- package/lib/services/resize.service.d.ts +32 -0
- package/lib/services/window-ref.service.d.ts +43 -0
- package/lib/utils/collections.utils.d.ts +135 -0
- package/lib/utils/common.utils.d.ts +50 -0
- package/lib/utils/date-time.utils.d.ts +131 -0
- package/lib/utils/file.utils.d.ts +25 -0
- package/lib/utils/index.d.ts +6 -0
- package/lib/utils/string.utils.d.ts +19 -0
- package/lib/utils/ui.utils.d.ts +24 -0
- package/ngx-sfc-common.d.ts +5 -0
- package/package.json +53 -0
- package/public-api.d.ts +7 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* Return true if value defined
|
|
4
|
+
* @param value Value to check
|
|
5
|
+
* @returns True if value is not null and defined
|
|
6
|
+
*/
|
|
7
|
+
export function isDefined(value) {
|
|
8
|
+
return value !== undefined && value !== null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Return true if value is object
|
|
12
|
+
* @param value Value to check
|
|
13
|
+
* @returns True if value is object
|
|
14
|
+
*/
|
|
15
|
+
export function isObject(value) {
|
|
16
|
+
return (isDefined(value) && typeof value === 'object' && !Array.isArray(value));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Return true if data is observable
|
|
20
|
+
* @param data Object to check
|
|
21
|
+
* @returns True if data is observable
|
|
22
|
+
*/
|
|
23
|
+
export function isAsyncData(data) {
|
|
24
|
+
return data instanceof Observable;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Return extended object with new property
|
|
28
|
+
* @param obj Object to extend by property
|
|
29
|
+
* @param property New property name
|
|
30
|
+
* @param value Value for new property
|
|
31
|
+
* @returns Extended object with new property
|
|
32
|
+
*/
|
|
33
|
+
export function addPropertyToObject(obj, property, value = null) {
|
|
34
|
+
if (!isDefined(property) && !obj.hasOwnProperty(property)) {
|
|
35
|
+
let newObj = {};
|
|
36
|
+
newObj[property] = value;
|
|
37
|
+
obj = { ...obj, ...newObj };
|
|
38
|
+
}
|
|
39
|
+
return obj;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Remove property from object
|
|
43
|
+
* @param obj Object for removing property
|
|
44
|
+
* @param property Property name to remove
|
|
45
|
+
*/
|
|
46
|
+
export function removePropertyFromObject(obj, property) {
|
|
47
|
+
if (obj.hasOwnProperty(property)) {
|
|
48
|
+
delete obj[property];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Deep merge object with others
|
|
53
|
+
* @param target Object to merge
|
|
54
|
+
* @param sources
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
* Deep merge object with others
|
|
58
|
+
* @param target Object to merge
|
|
59
|
+
* @param sources Objects to be merged with target
|
|
60
|
+
* @returns Merged object
|
|
61
|
+
*/
|
|
62
|
+
export function mergeDeep(target, ...sources) {
|
|
63
|
+
if (!isDefined(sources))
|
|
64
|
+
return target;
|
|
65
|
+
const source = sources.shift();
|
|
66
|
+
if (isObject(target) && isObject(source)) {
|
|
67
|
+
for (const key in source) {
|
|
68
|
+
if (isObject(source[key])) {
|
|
69
|
+
if (!target[key])
|
|
70
|
+
Object.assign(target, { [key]: {} });
|
|
71
|
+
mergeDeep(target[key], source[key]);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
Object.assign(target, { [key]: source[key] });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return mergeDeep(target, ...sources);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get type's property name safety
|
|
82
|
+
* @param name KeyOf property
|
|
83
|
+
* @returns Type's property name
|
|
84
|
+
*/
|
|
85
|
+
export const nameof = (name) => name;
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUNwRCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNqQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDN0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDdkQsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekIsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztLQUMvQjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsR0FBUSxFQUFFLFFBQWdCO0lBQy9ELElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUM5QixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN4QjtBQUNMLENBQUM7QUFFRDs7OztJQUlJO0FBRUo7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQVcsRUFBRSxHQUFHLE9BQWM7SUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7SUFFbEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRS9CLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN0QyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7b0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDakQ7U0FDSjtLQUNKO0lBRUQsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBSSxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBkZWZpbmVkXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG5vdCBudWxsIGFuZCBkZWZpbmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEZWZpbmVkPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIDxUPnZhbHVlICE9PSB1bmRlZmluZWQgJiYgPFQ+dmFsdWUgIT09IG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBpcyBvYmplY3RcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdmFsdWUgaXMgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChpc0RlZmluZWQodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGRhdGEgaXMgb2JzZXJ2YWJsZVxyXG4gKiBAcGFyYW0gZGF0YSBPYmplY3QgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0FzeW5jRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgT2JzZXJ2YWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBleHRlbmRlZCBvYmplY3Qgd2l0aCBuZXcgcHJvcGVydHlcclxuICogQHBhcmFtIG9iaiBPYmplY3QgdG8gZXh0ZW5kIGJ5IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBwcm9wZXJ0eSBOZXcgcHJvcGVydHkgbmFtZSBcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIGZvciBuZXcgcHJvcGVydHlcclxuICogQHJldHVybnMgRXh0ZW5kZWQgb2JqZWN0IHdpdGggbmV3IHByb3BlcnR5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkUHJvcGVydHlUb09iamVjdChvYmo6IGFueSwgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IGFueSA9IG51bGwpOiBhbnkge1xyXG4gICAgaWYgKCFpc0RlZmluZWQocHJvcGVydHkpICYmICFvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgbGV0IG5ld09iajogYW55ID0ge307XHJcbiAgICAgICAgbmV3T2JqW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG4gICAgICAgIG9iaiA9IHsgLi4ub2JqLCAuLi5uZXdPYmogfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHByb3BlcnR5IGZyb20gb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IGZvciByZW1vdmluZyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZSB0byByZW1vdmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcm9wZXJ0eUZyb21PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgZGVsZXRlIG9ialtwcm9wZXJ0eV07XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gICogRGVlcCBtZXJnZSBvYmplY3Qgd2l0aCBvdGhlcnNcclxuICAqIEBwYXJhbSB0YXJnZXQgT2JqZWN0IHRvIG1lcmdlXHJcbiAgKiBAcGFyYW0gc291cmNlcyBcclxuICAqL1xyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgICBpZiAoIWlzRGVmaW5lZChzb3VyY2VzKSlcclxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xyXG5cclxuICAgIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXMuc2hpZnQoKTtcclxuXHJcbiAgICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiBpc09iamVjdChzb3VyY2UpKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XHJcbiAgICAgICAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0W2tleV0pIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiB7fSB9KTtcclxuICAgICAgICAgICAgICAgIG1lcmdlRGVlcCh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXJnZURlZXAodGFyZ2V0LCAuLi5zb3VyY2VzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0eXBlJ3MgcHJvcGVydHkgbmFtZSBzYWZldHlcclxuICogQHBhcmFtIG5hbWUgS2V5T2YgcHJvcGVydHlcclxuICogQHJldHVybnMgVHlwZSdzIHByb3BlcnR5IG5hbWVcclxuICovXHJcbmV4cG9ydCBjb25zdCBuYW1lb2YgPSA8VD4obmFtZToga2V5b2YgVCkgPT4gbmFtZTsiXX0=
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { DateTimeConstants } from "../constants";
|
|
2
|
+
import { isDefined } from "./common.utils";
|
|
3
|
+
/**
|
|
4
|
+
* Set minutes for date
|
|
5
|
+
* @param date Date value
|
|
6
|
+
* @param minute Minute value
|
|
7
|
+
* @returns Date with minute value
|
|
8
|
+
*/
|
|
9
|
+
export function setMinutes(date, minute) {
|
|
10
|
+
date.setMinutes(minute);
|
|
11
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes());
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Set hours for date
|
|
15
|
+
* @param date Date value
|
|
16
|
+
* @param hour Hour value
|
|
17
|
+
* @returns Date with hour value
|
|
18
|
+
*/
|
|
19
|
+
export function setHours(date, hour) {
|
|
20
|
+
date.setHours(hour);
|
|
21
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes());
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Set day for date value
|
|
25
|
+
* @param date Date value
|
|
26
|
+
* @param dayNumber Day number
|
|
27
|
+
* @returns Date with day number
|
|
28
|
+
*/
|
|
29
|
+
export function setDay(date, dayNumber) {
|
|
30
|
+
const nextDate = new Date(date);
|
|
31
|
+
nextDate.setDate(dayNumber);
|
|
32
|
+
return nextDate;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Set year for date
|
|
36
|
+
* @param date Date value
|
|
37
|
+
* @param year Year value
|
|
38
|
+
* @returns Date with year value
|
|
39
|
+
*/
|
|
40
|
+
export function setYear(date, year) {
|
|
41
|
+
date.setFullYear(year);
|
|
42
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get next month as date
|
|
46
|
+
* @param date Date value
|
|
47
|
+
* @returns Next month as date
|
|
48
|
+
*/
|
|
49
|
+
export function getNextMonth(date) {
|
|
50
|
+
const nextMonth = new Date(date);
|
|
51
|
+
nextMonth.setMonth(date.getMonth() + 1);
|
|
52
|
+
return nextMonth;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get previous month as date
|
|
56
|
+
* @param date Date value
|
|
57
|
+
* @returns Previous month as date
|
|
58
|
+
*/
|
|
59
|
+
export function getPreviousMonth(date) {
|
|
60
|
+
const prevMonth = new Date(date);
|
|
61
|
+
prevMonth.setMonth(date.getMonth() - 1);
|
|
62
|
+
return prevMonth;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get next year as date
|
|
66
|
+
* @param date Date value
|
|
67
|
+
* @returns Next year as date
|
|
68
|
+
*/
|
|
69
|
+
export function getNextYear(date) {
|
|
70
|
+
const nextYear = new Date(date);
|
|
71
|
+
nextYear.setFullYear(date.getFullYear() + 1);
|
|
72
|
+
return nextYear;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get previous year as date
|
|
76
|
+
* @param date Date value
|
|
77
|
+
* @returns Previous year as date
|
|
78
|
+
*/
|
|
79
|
+
export function getPreviousYear(date) {
|
|
80
|
+
const prevYear = new Date(date);
|
|
81
|
+
prevYear.setFullYear(date.getFullYear() - 1);
|
|
82
|
+
return prevYear;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Return first day of month as date from date value
|
|
86
|
+
* @param date Date value
|
|
87
|
+
* @returns First day of month as date
|
|
88
|
+
*/
|
|
89
|
+
export function getFirstDayOfMonth(date) {
|
|
90
|
+
if (isDefined(date) && date instanceof Date) {
|
|
91
|
+
const year = date.getFullYear(), month = date.getMonth();
|
|
92
|
+
return new Date(year, month, 1);
|
|
93
|
+
}
|
|
94
|
+
return date;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Return last day of month as date from date value
|
|
98
|
+
* @param date Date value
|
|
99
|
+
* @returns Last day of month as date
|
|
100
|
+
*/
|
|
101
|
+
export function getLastDayOfMonth(date) {
|
|
102
|
+
if (isDefined(date) && date instanceof Date) {
|
|
103
|
+
const year = date.getFullYear(), month = date.getMonth();
|
|
104
|
+
return new Date(year, month + 1, 0);
|
|
105
|
+
}
|
|
106
|
+
return date;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Return first day of year as date from date value
|
|
110
|
+
* @param date Date value
|
|
111
|
+
* @returns First day of year as date
|
|
112
|
+
*/
|
|
113
|
+
export function getFirstDayOfYear(date) {
|
|
114
|
+
if (isDefined(date) && date instanceof Date) {
|
|
115
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
116
|
+
}
|
|
117
|
+
return date;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Return last day of year as date from date value
|
|
121
|
+
* @param date Date value
|
|
122
|
+
* @returns Last day of year as date
|
|
123
|
+
*/
|
|
124
|
+
export function getLastDayOfYear(date) {
|
|
125
|
+
if (isDefined(date) && date instanceof Date) {
|
|
126
|
+
return new Date(date.getFullYear(), 12, 0);
|
|
127
|
+
}
|
|
128
|
+
return date;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Return first day of month as date
|
|
132
|
+
* @param year Year value
|
|
133
|
+
* @param month Month value
|
|
134
|
+
* @returns First day of month
|
|
135
|
+
*/
|
|
136
|
+
export function getFirstDayOfMonthByYearAndMonth(year, month) {
|
|
137
|
+
return new Date(year, month, 1);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Return last day of month as date
|
|
141
|
+
* @param year Year value
|
|
142
|
+
* @param month Month value
|
|
143
|
+
* @returns Last day of month
|
|
144
|
+
*/
|
|
145
|
+
export function getLastDayOfMonthByYearAndMonth(year, month) {
|
|
146
|
+
return new Date(year, month + 1, 0);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Return week number in month from date value
|
|
150
|
+
* @param date Date value
|
|
151
|
+
* @returns Week number
|
|
152
|
+
*/
|
|
153
|
+
export function getWeeksNumberInMonth(date) {
|
|
154
|
+
const firstOfMonth = getFirstDayOfMonth(date), lastOfMonth = getLastDayOfMonth(date), used = firstOfMonth.getDay() + lastOfMonth.getDate();
|
|
155
|
+
return Math.ceil(used / DateTimeConstants.DAYS_IN_WEEK);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Return true if first and second date are equal
|
|
159
|
+
* @param date1 First date value
|
|
160
|
+
* @param date2 Second date value
|
|
161
|
+
* @returns True if first and second date are equal
|
|
162
|
+
*/
|
|
163
|
+
export function isEqualDates(date1, date2) {
|
|
164
|
+
date1.setHours(0, 0, 0, 0);
|
|
165
|
+
date2.setHours(0, 0, 0, 0);
|
|
166
|
+
return date1.getTime() === date2.getTime();
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Return true if first date greater than second date
|
|
170
|
+
* @param date1 First date value
|
|
171
|
+
* @param date2 Second date value
|
|
172
|
+
* @returns True if first date greater than second date
|
|
173
|
+
*/
|
|
174
|
+
export function isDateGreat(date1, date2) {
|
|
175
|
+
return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate())
|
|
176
|
+
> new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Return true if first date greater or equal to second date
|
|
180
|
+
* @param date1 First date value
|
|
181
|
+
* @param date2 Second date value
|
|
182
|
+
* @returns True if first date greater or equal to second date
|
|
183
|
+
*/
|
|
184
|
+
export function isDateGreatOrEqual(date1, date2) {
|
|
185
|
+
return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate())
|
|
186
|
+
>= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Return true if first date time greater than second date time
|
|
190
|
+
* @param date1 First date time value
|
|
191
|
+
* @param date2 Second date time value
|
|
192
|
+
* @returns True if first date time greater than second date time
|
|
193
|
+
*/
|
|
194
|
+
export function isDateTimeGreat(date1, date2) {
|
|
195
|
+
return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(), date1.getHours(), date1.getMinutes())
|
|
196
|
+
> new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(), date2.getHours(), date2.getMinutes());
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Return true if first date time greater or equal to second date time
|
|
200
|
+
* @param date1 First date time value
|
|
201
|
+
* @param date2 Second date time value
|
|
202
|
+
* @returns True if first date time greater or equal to second date time
|
|
203
|
+
*/
|
|
204
|
+
export function isDateTimeGreatOrEqual(date1, date2) {
|
|
205
|
+
return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(), date1.getHours(), date1.getMinutes())
|
|
206
|
+
>= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(), date2.getHours(), date2.getMinutes());
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9kYXRlLXRpbWUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQzs7Ozs7R0FLRztBQUNGLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVSxFQUFFLE1BQWM7SUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixPQUFPLElBQUksSUFBSSxDQUNYLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDbEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUNwQixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBWTtJQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sSUFBSSxJQUFJLENBQ1gsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQ3BCLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLElBQVUsRUFBRSxTQUFpQjtJQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMs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USxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1VBQ25DLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUM3RCxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQVcsRUFBRSxLQUFXO0lBQzNELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQ2xFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7V0FDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQzlELEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVRpbWVDb25zdGFudHMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gXCIuL2NvbW1vbi51dGlsc1wiO1xyXG5cclxuLyoqXHJcbiAqIFNldCBtaW51dGVzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIG1pbnV0ZSBNaW51dGUgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIG1pbnV0ZSB2YWx1ZVxyXG4gKi9cclxuIGV4cG9ydCBmdW5jdGlvbiBzZXRNaW51dGVzKGRhdGU6IERhdGUsIG1pbnV0ZTogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBkYXRlLnNldE1pbnV0ZXMobWludXRlKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIGRhdGUuZ2V0SG91cnMoKSxcclxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKVxyXG4gICAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBob3VycyBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBob3VyIEhvdXIgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIGhvdXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRIb3VycyhkYXRlOiBEYXRlLCBob3VyOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGRhdGUuc2V0SG91cnMoaG91cik7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNaW51dGVzKClcclxuICAgICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgZGF5IGZvciBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIGRheU51bWJlciBEYXkgbnVtYmVyIFxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggZGF5IG51bWJlclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldERheShkYXRlOiBEYXRlLCBkYXlOdW1iZXI6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIG5leHREYXRlLnNldERhdGUoZGF5TnVtYmVyKTtcclxuICAgIHJldHVybiBuZXh0RGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCB5ZWFyIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIHllYXIgWWVhciB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggeWVhciB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFllYXIoZGF0ZTogRGF0ZSwgeWVhcjogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpXHJcbiAgICApO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IG5leHQgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIE5leHQgbW9udGggYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBuZXh0TW9udGggPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIG5leHRNb250aC5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyAxKVxyXG4gICAgcmV0dXJuIG5leHRNb250aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBwcmV2aW91cyBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgUHJldmlvdXMgbW9udGggYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFByZXZpb3VzTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgcHJldk1vbnRoID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBwcmV2TW9udGguc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpIC0gMSk7XHJcbiAgICByZXR1cm4gcHJldk1vbnRoO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IG5leHQgeWVhciBhcyBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTmV4dCB5ZWFyIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0WWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBuZXh0WWVhciA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV4dFllYXIuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpICsgMSk7XHJcbiAgICByZXR1cm4gbmV4dFllYXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgcHJldmlvdXMgeWVhciBhcyBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgUHJldmlvdXMgeWVhciBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldmlvdXNZZWFyKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IHByZXZZZWFyID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBwcmV2WWVhci5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgLSAxKTtcclxuICAgIHJldHVybiBwcmV2WWVhcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBmaXJzdCBkYXkgb2YgbW9udGggYXMgZGF0ZSBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBGaXJzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RGF5T2ZNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGRhdGUpICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICAgICAgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGRheSBvZiBtb250aCBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIExhc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXN0RGF5T2ZNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGRhdGUpICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICAgICAgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZmlyc3QgZGF5IG9mIHllYXIgYXMgZGF0ZSBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBGaXJzdCBkYXkgb2YgeWVhciBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REYXlPZlllYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGxhc3QgZGF5IG9mIHllYXIgYXMgZGF0ZSBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBMYXN0IGRheSBvZiB5ZWFyIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXN0RGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAxMiwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZmlyc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGVcclxuICogQHBhcmFtIHllYXIgWWVhciB2YWx1ZVxyXG4gKiBAcGFyYW0gbW9udGggTW9udGggdmFsdWVcclxuICogQHJldHVybnMgRmlyc3QgZGF5IG9mIG1vbnRoXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGxhc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGVcclxuICogQHBhcmFtIHllYXIgWWVhciB2YWx1ZVxyXG4gKiBAcGFyYW0gbW9udGggTW9udGggdmFsdWVcclxuICogQHJldHVybnMgTGFzdCBkYXkgb2YgbW9udGhcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXN0RGF5T2ZNb250aEJ5WWVhckFuZE1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gd2VlayBudW1iZXIgaW4gbW9udGggZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgV2VlayBudW1iZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrc051bWJlckluTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBmaXJzdE9mTW9udGggPSBnZXRGaXJzdERheU9mTW9udGgoZGF0ZSksXHJcbiAgICAgICAgbGFzdE9mTW9udGggPSBnZXRMYXN0RGF5T2ZNb250aChkYXRlKSxcclxuICAgICAgICB1c2VkID0gZmlyc3RPZk1vbnRoLmdldERheSgpICsgbGFzdE9mTW9udGguZ2V0RGF0ZSgpO1xyXG4gICAgcmV0dXJuIE1hdGguY2VpbCh1c2VkIC8gRGF0ZVRpbWVDb25zdGFudHMuREFZU19JTl9XRUVLKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGFuZCBzZWNvbmQgZGF0ZSBhcmUgZXF1YWxcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgYW5kIHNlY29uZCBkYXRlIGFyZSBlcXVhbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWxEYXRlcyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIGRhdGUxLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgZGF0ZTIuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGUxLmdldFRpbWUoKSA9PT0gZGF0ZTIuZ2V0VGltZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVHcmVhdChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpXHJcbiAgICAgICAgPiBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIG9yIGVxdWFsIHRvIHNlY29uZCBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGRhdGUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpXHJcbiAgICAgICAgPj0gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSwgZGF0ZTIuZ2V0RGF0ZSgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGRhdGUgdGltZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGUgdGltZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSB0aW1lIGdyZWF0ZXIgdGhhbiBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUdyZWF0KGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSxcclxuICAgICAgICBkYXRlMS5nZXRIb3VycygpLCBkYXRlMS5nZXRNaW51dGVzKCkpXHJcbiAgICAgICAgPiBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCksXHJcbiAgICAgICAgICAgIGRhdGUyLmdldEhvdXJzKCksIGRhdGUyLmdldE1pbnV0ZXMoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCksXHJcbiAgICAgICAgZGF0ZTEuZ2V0SG91cnMoKSwgZGF0ZTEuZ2V0TWludXRlcygpKVxyXG4gICAgICAgID49IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSxcclxuICAgICAgICAgICAgZGF0ZTIuZ2V0SG91cnMoKSwgZGF0ZTIuZ2V0TWludXRlcygpKTtcclxufSJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CommonConstants } from "../constants";
|
|
2
|
+
import { isDefined } from "./common.utils";
|
|
3
|
+
/**
|
|
4
|
+
* Return parsed file size as string
|
|
5
|
+
* @param bytes Bytes count
|
|
6
|
+
* @param decimals Value after dot
|
|
7
|
+
* @returns Parsed file size
|
|
8
|
+
*/
|
|
9
|
+
export function parseFileSize(bytes, decimals = 2) {
|
|
10
|
+
if (bytes === 0)
|
|
11
|
+
return '0';
|
|
12
|
+
const k = 1024;
|
|
13
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
14
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
15
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
16
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Return file extension
|
|
20
|
+
* @param file File value
|
|
21
|
+
* @returns File extension
|
|
22
|
+
*/
|
|
23
|
+
export function getFileExtension(file) {
|
|
24
|
+
if (!isDefined(file))
|
|
25
|
+
return CommonConstants.EMPTY_STRING;
|
|
26
|
+
if (file.name.indexOf('.') === CommonConstants.NOT_FOUND_INDEX) {
|
|
27
|
+
return CommonConstants.EMPTY_STRING;
|
|
28
|
+
}
|
|
29
|
+
return file.name.split('.').pop();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Read file as data URL
|
|
33
|
+
* @param file File value
|
|
34
|
+
* @param onLoad On load action
|
|
35
|
+
*/
|
|
36
|
+
export function readAsDataURL(file, onLoad) {
|
|
37
|
+
if (isDefined(file)) {
|
|
38
|
+
const reader = new FileReader();
|
|
39
|
+
reader.onload = () => onLoad(reader.result);
|
|
40
|
+
reader.readAsDataURL(file);
|
|
41
|
+
}
|
|
42
|
+
throw new Error('File utils | Read as data URL function --> File is empty.');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Return true if file is image
|
|
46
|
+
* @param file File value
|
|
47
|
+
* @returns True if file is image
|
|
48
|
+
*/
|
|
49
|
+
export function isImage(file) {
|
|
50
|
+
return (/\.(gif|jpe?g|jpg|tiff|png|webp|bmp)$/i).test(file.name);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvdXRpbHMvZmlsZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxDQUFDO0lBQ3JELElBQUksS0FBSyxLQUFLLENBQUM7UUFDWCxPQUFPLEdBQUcsQ0FBQztJQUVmLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNmLE1BQU0sRUFBRSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBELE9BQU8sVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2hCLE9BQU8sZUFBZSxDQUFDLFlBQVksQ0FBQztJQUV4QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxlQUFlLEVBQUU7UUFDNUQsT0FBTyxlQUFlLENBQUMsWUFBWSxDQUFDO0tBQ3ZDO0lBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQVksQ0FBQztBQUNoRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBVSxFQUFFLE1BQXFEO0lBQzNGLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLElBQVU7SUFDOUIsT0FBTyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiLi9jb21tb24udXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gcGFyc2VkIGZpbGUgc2l6ZSBhcyBzdHJpbmdcclxuICogQHBhcmFtIGJ5dGVzIEJ5dGVzIGNvdW50XHJcbiAqIEBwYXJhbSBkZWNpbWFscyBWYWx1ZSBhZnRlciBkb3RcclxuICogQHJldHVybnMgUGFyc2VkIGZpbGUgc2l6ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRmlsZVNpemUoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHMgPSAyKTogc3RyaW5nIHtcclxuICAgIGlmIChieXRlcyA9PT0gMClcclxuICAgICAgICByZXR1cm4gJzAnO1xyXG5cclxuICAgIGNvbnN0IGsgPSAxMDI0O1xyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8IDAgPyAwIDogZGVjaW1hbHM7XHJcbiAgICBjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcclxuXHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpICsgJyAnICsgc2l6ZXNbaV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZmlsZSBleHRlbnNpb25cclxuICogQHBhcmFtIGZpbGUgRmlsZSB2YWx1ZSBcclxuICogQHJldHVybnMgRmlsZSBleHRlbnNpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFpc0RlZmluZWQoZmlsZSkpXHJcbiAgICAgICAgcmV0dXJuIENvbW1vbkNvbnN0YW50cy5FTVBUWV9TVFJJTkc7XHJcblxyXG4gICAgaWYgKGZpbGUubmFtZS5pbmRleE9mKCcuJykgPT09IENvbW1vbkNvbnN0YW50cy5OT1RfRk9VTkRfSU5ERVgpIHtcclxuICAgICAgICByZXR1cm4gQ29tbW9uQ29uc3RhbnRzLkVNUFRZX1NUUklORztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgYXMgc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogUmVhZCBmaWxlIGFzIGRhdGEgVVJMXHJcbiAqIEBwYXJhbSBmaWxlIEZpbGUgdmFsdWVcclxuICogQHBhcmFtIG9uTG9hZCBPbiBsb2FkIGFjdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRBc0RhdGFVUkwoZmlsZTogRmlsZSwgb25Mb2FkOiAocmVzdWx0OiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGlmIChpc0RlZmluZWQoZmlsZSkpIHtcclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiBvbkxvYWQocmVhZGVyLnJlc3VsdCk7XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlIHV0aWxzIHwgUmVhZCBhcyBkYXRhIFVSTCBmdW5jdGlvbiAtLT4gRmlsZSBpcyBlbXB0eS4nKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpbGUgaXMgaW1hZ2VcclxuICogQHBhcmFtIGZpbGUgRmlsZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpbGUgaXMgaW1hZ2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoL1xcLihnaWZ8anBlP2d8anBnfHRpZmZ8cG5nfHdlYnB8Ym1wKSQvaSkudGVzdChmaWxlLm5hbWUpO1xyXG59Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof } from './common.utils';
|
|
2
|
+
export { isNullOrEmptyString, contains, trim } from './string.utils';
|
|
3
|
+
export { setMinutes, setHours, setDay, setYear, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual } from './date-time.utils';
|
|
4
|
+
export { parseFileSize, getFileExtension, readAsDataURL, isImage } from './file.utils';
|
|
5
|
+
export { getCssLikeValue, getValueFromCssLikeValue, addClasses, removeClasses } from './ui.utils';
|
|
6
|
+
export { any, hasItem, hasItemBy, hasObjectItem, firstOrDefault, firstItem, lastItem, all, where, skip, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, updateItem, getCollectionOrEmpty } from './collections.utils';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLEVBQ1AsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHNCQUFzQixFQUN6QixNQUFNLG1CQUFtQixDQUFBO0FBRTFCLE9BQU8sRUFDSCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixPQUFPLEVBQ1YsTUFBTSxjQUFjLENBQUE7QUFFckIsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLGFBQWEsRUFDaEIsTUFBTSxZQUFZLENBQUE7QUFFbkIsT0FBTyxFQUNILEdBQUcsRUFDSCxPQUFPLEVBQ1AsU0FBUyxFQUNULGFBQWEsRUFDYixjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixHQUFHLEVBQ0gsS0FBSyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBQ0gsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFVBQVUsRUFDVixvQkFBb0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBpc0RlZmluZWQsXHJcbiAgICBpc09iamVjdCxcclxuICAgIGlzQXN5bmNEYXRhLFxyXG4gICAgYWRkUHJvcGVydHlUb09iamVjdCxcclxuICAgIHJlbW92ZVByb3BlcnR5RnJvbU9iamVjdCxcclxuICAgIG1lcmdlRGVlcCxcclxuICAgIG5hbWVvZlxyXG59IGZyb20gJy4vY29tbW9uLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGlzTnVsbE9yRW1wdHlTdHJpbmcsXHJcbiAgICBjb250YWlucyxcclxuICAgIHRyaW1cclxufSBmcm9tICcuL3N0cmluZy51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBzZXRNaW51dGVzLFxyXG4gICAgc2V0SG91cnMsXHJcbiAgICBzZXREYXksXHJcbiAgICBzZXRZZWFyLFxyXG4gICAgZ2V0TmV4dE1vbnRoLFxyXG4gICAgZ2V0UHJldmlvdXNNb250aCxcclxuICAgIGdldE5leHRZZWFyLFxyXG4gICAgZ2V0UHJldmlvdXNZZWFyLFxyXG4gICAgZ2V0Rmlyc3REYXlPZk1vbnRoLFxyXG4gICAgZ2V0TGFzdERheU9mTW9udGgsXHJcbiAgICBnZXRGaXJzdERheU9mWWVhcixcclxuICAgIGdldExhc3REYXlPZlllYXIsXHJcbiAgICBnZXRGaXJzdERheU9mTW9udGhCeVllYXJBbmRNb250aCxcclxuICAgIGdldExhc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgsXHJcbiAgICBnZXRXZWVrc051bWJlckluTW9udGgsXHJcbiAgICBpc0VxdWFsRGF0ZXMsXHJcbiAgICBpc0RhdGVHcmVhdCxcclxuICAgIGlzRGF0ZUdyZWF0T3JFcXVhbCxcclxuICAgIGlzRGF0ZVRpbWVHcmVhdCxcclxuICAgIGlzRGF0ZVRpbWVHcmVhdE9yRXF1YWxcclxufSBmcm9tICcuL2RhdGUtdGltZS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBwYXJzZUZpbGVTaXplLFxyXG4gICAgZ2V0RmlsZUV4dGVuc2lvbixcclxuICAgIHJlYWRBc0RhdGFVUkwsXHJcbiAgICBpc0ltYWdlXHJcbn0gZnJvbSAnLi9maWxlLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGdldENzc0xpa2VWYWx1ZSxcclxuICAgIGdldFZhbHVlRnJvbUNzc0xpa2VWYWx1ZSxcclxuICAgIGFkZENsYXNzZXMsXHJcbiAgICByZW1vdmVDbGFzc2VzXHJcbn0gZnJvbSAnLi91aS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBhbnksXHJcbiAgICBoYXNJdGVtLFxyXG4gICAgaGFzSXRlbUJ5LFxyXG4gICAgaGFzT2JqZWN0SXRlbSxcclxuICAgIGZpcnN0T3JEZWZhdWx0LFxyXG4gICAgZmlyc3RJdGVtLFxyXG4gICAgbGFzdEl0ZW0sXHJcbiAgICBhbGwsXHJcbiAgICB3aGVyZSxcclxuICAgIHNraXAsXHJcbiAgICBzb3J0QnksXHJcbiAgICBzb3J0QnlQYXRoLFxyXG4gICAgZGlzdGluY3QsXHJcbiAgICBzdW0sXHJcbiAgICBtYXgsXHJcbiAgICByZW1vdmUsXHJcbiAgICBhZGRJdGVtLFxyXG4gICAgcmVtb3ZlSXRlbSxcclxuICAgIHVwZGF0ZUl0ZW0sXHJcbiAgICBnZXRDb2xsZWN0aW9uT3JFbXB0eVxyXG59IGZyb20gJy4vY29sbGVjdGlvbnMudXRpbHMnIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CommonConstants } from "../constants";
|
|
2
|
+
import { isDefined } from "./common.utils";
|
|
3
|
+
/**
|
|
4
|
+
* Return true if string has value(not empty string)
|
|
5
|
+
* @param value String value to check
|
|
6
|
+
* @returns True if string is not null and defined(not empty string)
|
|
7
|
+
*/
|
|
8
|
+
export function isNullOrEmptyString(value) {
|
|
9
|
+
return isDefined(value) || value === CommonConstants.EMPTY_STRING;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Return true if value contains includeValue
|
|
13
|
+
* @param value String value to check
|
|
14
|
+
* @param includeValue Value to check if it include
|
|
15
|
+
* @returns True if value contains includeValue
|
|
16
|
+
*/
|
|
17
|
+
export function contains(value, includeValue) {
|
|
18
|
+
return !isNullOrEmptyString(value) && !isNullOrEmptyString(includeValue)
|
|
19
|
+
? value.toLowerCase()
|
|
20
|
+
.includes(includeValue.toLowerCase())
|
|
21
|
+
: false;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Return trimed value
|
|
25
|
+
* @param value Value for trim modification
|
|
26
|
+
* @returns Trimed value
|
|
27
|
+
*/
|
|
28
|
+
export function trim(value) {
|
|
29
|
+
return isNullOrEmptyString(value) ? value : value.replace(/\s/g, '');
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9zdHJpbmcudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFnQztJQUNoRSxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssZUFBZSxDQUFDLFlBQVksQ0FBQztBQUN0RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWdDLEVBQUUsWUFBb0I7SUFDM0UsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDO1FBQ3BFLENBQUMsQ0FBRSxLQUFnQixDQUFDLFdBQVcsRUFBRTthQUM1QixRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQWE7SUFDOUIsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiLi9jb21tb24udXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBzdHJpbmcgaGFzIHZhbHVlKG5vdCBlbXB0eSBzdHJpbmcpXHJcbiAqIEBwYXJhbSB2YWx1ZSBTdHJpbmcgdmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdHJpbmcgaXMgbm90IG51bGwgYW5kIGRlZmluZWQobm90IGVtcHR5IHN0cmluZylcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc051bGxPckVtcHR5U3RyaW5nKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICByZXR1cm4gaXNEZWZpbmVkKHZhbHVlKSB8fCB2YWx1ZSA9PT0gQ29tbW9uQ29uc3RhbnRzLkVNUFRZX1NUUklORztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGNvbnRhaW5zIGluY2x1ZGVWYWx1ZVxyXG4gKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHZhbHVlIHRvIGNoZWNrXHJcbiAqIEBwYXJhbSBpbmNsdWRlVmFsdWUgVmFsdWUgdG8gY2hlY2sgaWYgaXQgaW5jbHVkZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGNvbnRhaW5zIGluY2x1ZGVWYWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLCBpbmNsdWRlVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICFpc051bGxPckVtcHR5U3RyaW5nKHZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eVN0cmluZyhpbmNsdWRlVmFsdWUpXHJcbiAgICAgICAgPyAodmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyhpbmNsdWRlVmFsdWUudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICA6IGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRyaW1lZCB2YWx1ZVxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgZm9yIHRyaW0gbW9kaWZpY2F0aW9uXHJcbiAqIEByZXR1cm5zIFRyaW1lZCB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRyaW0odmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGlzTnVsbE9yRW1wdHlTdHJpbmcodmFsdWUpID8gdmFsdWUgOiB2YWx1ZS5yZXBsYWNlKC9cXHMvZywgJycpXHJcbn0iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CommonConstants, UIConstants } from "../constants";
|
|
2
|
+
import { isDefined } from "./common.utils";
|
|
3
|
+
/**
|
|
4
|
+
* Return CSS like value
|
|
5
|
+
* @param value Value as number
|
|
6
|
+
* @returns Value as '1px'
|
|
7
|
+
*/
|
|
8
|
+
export function getCssLikeValue(value, type = UIConstants.CSS_PIXELS) {
|
|
9
|
+
return value + type;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parse CSS like value to number
|
|
13
|
+
* @param value CSS like value
|
|
14
|
+
* @returns Number value
|
|
15
|
+
*/
|
|
16
|
+
export function getValueFromCssLikeValue(value, type = UIConstants.CSS_PIXELS) {
|
|
17
|
+
return +value.replace(type, CommonConstants.EMPTY_STRING);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Add classes to HTML element
|
|
21
|
+
* @param element HTML element
|
|
22
|
+
* @param classNames Array of CSS classes
|
|
23
|
+
*/
|
|
24
|
+
export function addClasses(element, ...classNames) {
|
|
25
|
+
if (isDefined(element)) {
|
|
26
|
+
classNames.forEach((className) => element.classList.add(className));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Remove classes to HTML element
|
|
31
|
+
* @param element HTML element
|
|
32
|
+
* @param classNames Array of CSS classes
|
|
33
|
+
*/
|
|
34
|
+
export function removeClasses(element, ...classNames) {
|
|
35
|
+
if (isDefined(element)) {
|
|
36
|
+
classNames.forEach((className) => element.classList.remove(className));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL3VpLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhLEVBQ3pDLE9BQWUsV0FBVyxDQUFDLFVBQVU7SUFDckMsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWEsRUFDbEQsT0FBZSxXQUFXLENBQUMsVUFBVTtJQUNyQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUFvQixFQUFFLEdBQUcsVUFBeUI7SUFDekUsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDcEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN2RTtBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFvQixFQUFFLEdBQUcsVUFBeUI7SUFDNUUsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDcEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUMxRTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Db25zdGFudHMsIFVJQ29uc3RhbnRzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiLi9jb21tb24udXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gQ1NTIGxpa2UgdmFsdWVcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIGFzIG51bWJlclxyXG4gKiBAcmV0dXJucyBWYWx1ZSBhcyAnMXB4J1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENzc0xpa2VWYWx1ZSh2YWx1ZTogbnVtYmVyLFxyXG4gICAgdHlwZTogc3RyaW5nID0gVUlDb25zdGFudHMuQ1NTX1BJWEVMUyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUgKyB0eXBlO1xyXG59XHJcblxyXG4vKipcclxuICogUGFyc2UgQ1NTIGxpa2UgdmFsdWUgdG8gbnVtYmVyXHJcbiAqIEBwYXJhbSB2YWx1ZSBDU1MgbGlrZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBOdW1iZXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZUZyb21Dc3NMaWtlVmFsdWUodmFsdWU6IHN0cmluZyxcclxuICAgIHR5cGU6IHN0cmluZyA9IFVJQ29uc3RhbnRzLkNTU19QSVhFTFMpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICt2YWx1ZS5yZXBsYWNlKHR5cGUsIENvbW1vbkNvbnN0YW50cy5FTVBUWV9TVFJJTkcpO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIGNsYXNzZXMgdG8gSFRNTCBlbGVtZW50XHJcbiAqIEBwYXJhbSBlbGVtZW50IEhUTUwgZWxlbWVudFxyXG4gKiBAcGFyYW0gY2xhc3NOYW1lcyBBcnJheSBvZiBDU1MgY2xhc3Nlc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZENsYXNzZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIC4uLmNsYXNzTmFtZXM6IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcclxuICAgIGlmIChpc0RlZmluZWQoZWxlbWVudCkpIHtcclxuICAgICAgICBjbGFzc05hbWVzLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSkpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGNsYXNzZXMgdG8gSFRNTCBlbGVtZW50XHJcbiAqIEBwYXJhbSBlbGVtZW50IEhUTUwgZWxlbWVudFxyXG4gKiBAcGFyYW0gY2xhc3NOYW1lcyBBcnJheSBvZiBDU1MgY2xhc3Nlc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUNsYXNzZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIC4uLmNsYXNzTmFtZXM6IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcclxuICAgIGlmIChpc0RlZmluZWQoZWxlbWVudCkpIHtcclxuICAgICAgICBjbGFzc05hbWVzLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSkpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNmYy1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbmd4LXNmYy1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-sfc-common
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/ngx-sfc-common.module';
|
|
5
|
+
export * from './lib/constants';
|
|
6
|
+
export * from './lib/enums';
|
|
7
|
+
export * from './lib/utils';
|
|
8
|
+
export * from './lib/services';
|
|
9
|
+
export * from './lib/directives';
|
|
10
|
+
export * from './lib/components';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1zZmMtY29tbW9uXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXNmYy1jb21tb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xyXG4iXX0=
|