coer-elements 2.0.81 → 2.0.83

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.
@@ -1,12 +1,97 @@
1
- import { Collections, Strings, Tools } from 'coer-elements/tools';
1
+ import { Collections, Dates, Strings, Tools } from 'coer-elements/tools';
2
2
 
3
- Array.prototype.Distinct = function () {
3
+ Array.prototype.distinct = function () {
4
4
  return Collections.Distinct(this);
5
5
  };
6
- Array.prototype.Except = function (exceptions) {
6
+ Array.prototype.except = function (exceptions) {
7
7
  return Collections.Except(this, exceptions);
8
8
  };
9
9
 
10
+ Date.prototype.getOffset = function () {
11
+ return Dates.GetOffset();
12
+ };
13
+ Date.prototype.getLastDay = function () {
14
+ return Dates.GetLastDay(this);
15
+ };
16
+ Date.prototype.isValidDate = function () {
17
+ return Dates.IsValidDate(this);
18
+ };
19
+ Date.prototype.getCurrentDate = function () {
20
+ return Dates.GetCurrentDate();
21
+ };
22
+ Date.prototype.toLocalZone = function () {
23
+ return Dates.ToLocalZone(this);
24
+ };
25
+ Date.prototype.toUTC = function () {
26
+ return Dates.ToUTC(this);
27
+ };
28
+ Date.prototype.toFormatDB = function () {
29
+ return Dates.ToFormatDB(this);
30
+ };
31
+ Date.prototype.toFormatDate = function (format) {
32
+ return Dates.ToFormatDate(this, format);
33
+ };
34
+ Date.prototype.toFormatDateTime = function (ampm = true, format) {
35
+ return Dates.ToFormatDateTime(this, ampm, format);
36
+ };
37
+ Date.prototype.addMilliseconds = function (milliseconds = 1) {
38
+ return Dates.AddMilliseconds(this, milliseconds);
39
+ };
40
+ Date.prototype.addSeconds = function (seconds = 1) {
41
+ return Dates.AddSeconds(this, seconds);
42
+ };
43
+ Date.prototype.addMinutes = function (minutes = 1) {
44
+ return Dates.AddMinutes(this, minutes);
45
+ };
46
+ Date.prototype.addHours = function (hours = 1) {
47
+ return Dates.AddHours(this, hours);
48
+ };
49
+ Date.prototype.addDays = function (days = 1) {
50
+ return Dates.AddDays(this, days);
51
+ };
52
+ Date.prototype.addWeeks = function (weeks = 1) {
53
+ return Dates.AddWeeks(this, weeks);
54
+ };
55
+ Date.prototype.addMonths = function (months = 1) {
56
+ return Dates.AddMonths(this, months);
57
+ };
58
+ Date.prototype.addYears = function (years = 1) {
59
+ return Dates.AddYears(this, years);
60
+ };
61
+ Date.prototype.setMillisecond = function (millisecond = 0) {
62
+ return Dates.SetMillisecond(this, millisecond);
63
+ };
64
+ Date.prototype.setSecond = function (second = 0) {
65
+ return Dates.SetSecond(this, second);
66
+ };
67
+ Date.prototype.setMinute = function (minute = 0) {
68
+ return Dates.SetMinute(this, minute);
69
+ };
70
+ Date.prototype.setHour = function (hour = 0) {
71
+ return Dates.SetHour(this, hour);
72
+ };
73
+ Date.prototype.setFirstHour = function () {
74
+ return Dates.SetFirstHour(this);
75
+ };
76
+ Date.prototype.setLastHour = function () {
77
+ return Dates.SetLastHour(this);
78
+ };
79
+ Date.prototype.setDay = function (day = 1) {
80
+ return Dates.SetDay(this, day);
81
+ };
82
+ Date.prototype.setFirstDay = function () {
83
+ return Dates.SetFirstDay(this);
84
+ };
85
+ Date.prototype.setLastDay = function () {
86
+ return Dates.SetLastDay(this);
87
+ };
88
+ Date.prototype.getDiffNow = function (unit = 'minutes') {
89
+ return Dates.GetDiffNow(this, unit);
90
+ };
91
+ Date.prototype.getDiff = function (date, unit = 'minutes') {
92
+ return Dates.GetDiff(this, date, unit);
93
+ };
94
+
10
95
  //import { Tools } from "coer-elements/tools";
11
96
  //
12
97
  //declare global {
@@ -47,6 +132,9 @@ String.prototype.cleanUpBlanks = function () {
47
132
  String.prototype.toTitle = function () {
48
133
  return Strings.ToTitle(this.toString());
49
134
  };
135
+ String.prototype.removeWhiteSpaces = function () {
136
+ return Strings.RemoveWhiteSpaces(this.toString());
137
+ };
50
138
  String.prototype.removeLastChar = function () {
51
139
  return Strings.RemoveLastChar(this.toString());
52
140
  };
@@ -1 +1 @@
1
- {"version":3,"file":"coer-elements-extensions.mjs","sources":["../../../projects/coer-elements/extensions/lib/array.extension.ts","../../../projects/coer-elements/extensions/lib/object.extension.ts","../../../projects/coer-elements/extensions/lib/string.extension.ts","../../../projects/coer-elements/extensions/coer-elements-extensions.ts"],"sourcesContent":["import { Collections } from \"coer-elements/tools\";\r\n\r\ndeclare global {\r\n interface Array<T> { \r\n\r\n /** */\r\n Distinct(): T[];\r\n\r\n /** */\r\n Except(exceptions: T[]): T[];\r\n }\r\n} \r\n\r\n\r\nArray.prototype.Distinct = function<T>(): T[] {\r\n return Collections.Distinct(this); \r\n}\r\n\r\n\r\nArray.prototype.Except = function<T>(exceptions: T[]): T[] {\r\n return Collections.Except(this, exceptions); \r\n}\r\n\r\n\r\nexport {};","//import { Tools } from \"coer-elements/tools\";\r\n//\r\n//declare global {\r\n// interface Object {\r\n// \r\n// /** Avoid Null value */\r\n// AvoidNull<T>(type: 'string' | 'number' | 'boolean' | null): T; \r\n//\r\n// /** Get properties of an object */\r\n// GetPropertyList(): string[];\r\n//\r\n// /** Break reference of a object or array */\r\n// BreakReference<T>(object: T): T;\r\n// }\r\n//}\r\n//\r\n//Object.prototype.AvoidNull = function<T>(type: 'string' | 'number' | 'boolean' | null = null): T {\r\n// return Tools.AvoidNull<T>(this as T, type);\r\n//}\r\n//\r\n//Object.prototype.GetPropertyList = function(): string[] {\r\n// return Tools.GetPropertyList(this);\r\n//}\r\n//\r\n//Object.prototype.BreakReference = function<T>(): T {\r\n// return Tools.BreakReference<T>(this as T);\r\n//}\r\n\r\nexport {};","import { Strings, Tools } from \"coer-elements/tools\";\r\n\r\ndeclare global {\r\n interface String {\r\n\r\n /** Sets the first character to lowercase */\r\n firstCharToLower(): string;\r\n\r\n /** Sets the first character to uppercase */\r\n firstCharToUpper(): string;\r\n\r\n /** Clean extra whitespaces */\r\n cleanUpBlanks(): string;\r\n\r\n /** Apply title formatting */\r\n toTitle(): string;\r\n\r\n /** Removes the last character */\r\n removeLastChar(): string;\r\n\r\n /** Removes accents */\r\n removeAccents(except?: string[]): string; \r\n \r\n /** Removes special characters */\r\n removeSpecialCharacters(): string; \r\n \r\n /** Only alphaNumeric */\r\n onlyAlphanumeric(): string; \r\n\r\n /** Only Numbers */\r\n onlyNumbers(): string;\r\n\r\n /** Validates if both strings are equal */\r\n equals(value: string | number | null | undefined, sensitive?: boolean): boolean;\r\n\r\n /** Returns true if the value is null or undefined or contains only whitespace, false otherwise */\r\n isOnlyWhiteSpace(): boolean;\r\n\r\n /** Returns true if has string value and is not only whitespace, false otherwise */\r\n isNotOnlyWhiteSpace(): boolean; \r\n }\r\n}\r\n\r\n\r\nString.prototype.firstCharToLower = function(): string {\r\n return Strings.FirstCharToLower(this.toString());\r\n}; \r\n\r\n\r\nString.prototype.firstCharToUpper = function(): string {\r\n return Strings.FirstCharToUpper(this.toString());\r\n};\r\n\r\n\r\nString.prototype.cleanUpBlanks = function(): string {\r\n return Strings.CleanUpBlanks(this.toString());\r\n}; \r\n\r\n\r\nString.prototype.toTitle = function(): string {\r\n return Strings.ToTitle(this.toString());\r\n};\r\n\r\n\r\nString.prototype.removeLastChar = function(): string {\r\n return Strings.RemoveLastChar(this.toString());\r\n} \r\n\r\n\r\nString.prototype.removeAccents = function(except: string[] = []): string { \r\n return Strings.RemoveAccents(this.toString(), except);\r\n};\r\n\r\n\r\nString.prototype.removeSpecialCharacters = function(): string { \r\n return Strings.RemoveSpecialCharacters(this.toString());\r\n};\r\n\r\n\r\nString.prototype.onlyAlphanumeric = function(): string { \r\n return Strings.OnlyAlphanumeric(this.toString());\r\n};\r\n\r\n\r\nString.prototype.onlyNumbers = function(): string { \r\n return Strings.OnlyNumbers(this.toString());\r\n};\r\n\r\n\r\nString.prototype.equals = function(value: string | number | null | undefined, sensitive: boolean = false): boolean { \r\n return Strings.Equals(this.toString(), value, sensitive);\r\n} \r\n\r\n\r\nString.prototype.isOnlyWhiteSpace = function(): boolean {\r\n return Tools.IsOnlyWhiteSpace(this);\r\n}\r\n\r\n\r\nString.prototype.isNotOnlyWhiteSpace = function(): boolean {\r\n return Tools.IsNotOnlyWhiteSpace(this);\r\n}\r\n\r\nexport {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAcA,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAA;AACvB,IAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrC,CAAC;AAGD,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,UAAY,UAAe,EAAA;IAChD,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;AAC/C,CAAC;;ACrBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACkBA,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAA;IAChC,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAA;IAChC,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,YAAA;IAC7B,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,YAAA;IACvB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,YAAA;IAC9B,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClD,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,SAAmB,EAAE,EAAA;IAC3D,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC;AACzD,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,uBAAuB,GAAG,YAAA;IACvC,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAA;IAChC,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,YAAA;IAC3B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,KAAyC,EAAE,SAAA,GAAqB,KAAK,EAAA;AACpG,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;AAC5D,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAA;AAChC,IAAA,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACvC,CAAC;AAGD,MAAM,CAAC,SAAS,CAAC,mBAAmB,GAAG,YAAA;AACnC,IAAA,OAAO,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC1C,CAAC;;ACrGD;;AAEG"}
1
+ {"version":3,"file":"coer-elements-extensions.mjs","sources":["../../../projects/coer-elements/extensions/lib/array.extension.ts","../../../projects/coer-elements/extensions/lib/date.extension.ts","../../../projects/coer-elements/extensions/lib/object.extension.ts","../../../projects/coer-elements/extensions/lib/string.extension.ts","../../../projects/coer-elements/extensions/coer-elements-extensions.ts"],"sourcesContent":["import { Collections } from \"coer-elements/tools\";\r\n\r\ndeclare global {\r\n interface Array<T> { \r\n\r\n /** */\r\n distinct(): T[];\r\n\r\n /** */\r\n except(exceptions: T[]): T[];\r\n }\r\n} \r\n\r\n\r\nArray.prototype.distinct = function<T>(): T[] {\r\n return Collections.Distinct(this); \r\n}\r\n\r\n\r\nArray.prototype.except = function<T>(exceptions: T[]): T[] {\r\n return Collections.Except(this, exceptions); \r\n}\r\n\r\n\r\nexport {};","import { Dates } from \"coer-elements/tools\";\r\n\r\ndeclare global {\r\n interface Date { \r\n\r\n /** */\r\n getOffset(): number;\r\n\r\n /** */\r\n getLastDay(): number;\r\n\r\n /** */\r\n isValidDate(): boolean;\r\n\r\n /** */\r\n getCurrentDate(): Date;\r\n\r\n /** Convert UTC Date to Local Zone */\r\n toLocalZone(): Date;\r\n\r\n /** Convert Local Zone Date to UTC */\r\n toUTC(): Date;\r\n\r\n /** YYYY-MM-DD HH:mm:ss */\r\n toFormatDB(): string;\r\n\r\n /** */\r\n toFormatDate(format?: 'MDY' | 'DMY' | 'YMD'): string;\r\n\r\n /** */\r\n toFormatDateTime(ampm?: boolean, format?: 'MDY' | 'DMY' | 'YMD'): string;\r\n\r\n /** */\r\n addMilliseconds(milliseconds: number): Date;\r\n\r\n /** */\r\n addSeconds(seconds: number): Date;\r\n\r\n /** */\r\n addMinutes(minutes: number): Date;\r\n\r\n /** */\r\n addHours(hours: number): Date;\r\n\r\n /** */\r\n addDays(days: number): Date;\r\n\r\n /** */\r\n addWeeks(weeks: number): Date;\r\n\r\n /** */\r\n addMonths(months: number): Date;\r\n\r\n /** */\r\n addYears(years: number): Date;\r\n\r\n /** */\r\n setMillisecond(millisecond?: number): Date;\r\n\r\n /** */\r\n setSecond(second?: number): Date;\r\n\r\n /** */\r\n setMinute(minute?: number): Date;\r\n\r\n /** */\r\n setHour(hour?: number): Date;\r\n\r\n /** */\r\n setFirstHour(): Date;\r\n\r\n /** */\r\n setLastHour(): Date;\r\n\r\n /** */\r\n setDay(day?: number): Date;\r\n\r\n /** */\r\n setFirstDay(): Date;\r\n\r\n /** */\r\n setLastDay(): Date;\r\n\r\n /** */\r\n getDiffNow(unit?: 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days'): number;\r\n\r\n /** */\r\n getDiff(date: string | Date, unit?: 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days'): number;\r\n }\r\n} \r\n\r\n\r\nDate.prototype.getOffset = function(): number {\r\n return Dates.GetOffset(); \r\n}\r\n\r\nDate.prototype.getLastDay = function(): number {\r\n return Dates.GetLastDay(this); \r\n}\r\n\r\nDate.prototype.isValidDate = function(): boolean {\r\n return Dates.IsValidDate(this); \r\n}\r\n\r\nDate.prototype.getCurrentDate = function(): Date {\r\n return Dates.GetCurrentDate(); \r\n}\r\n\r\nDate.prototype.toLocalZone = function(): Date {\r\n return Dates.ToLocalZone(this); \r\n}\r\n\r\nDate.prototype.toUTC = function(): Date {\r\n return Dates.ToUTC(this); \r\n}\r\n\r\nDate.prototype.toFormatDB = function(): string {\r\n return Dates.ToFormatDB(this); \r\n}\r\n\r\nDate.prototype.toFormatDate = function(format?: 'MDY' | 'DMY' | 'YMD'): string {\r\n return Dates.ToFormatDate(this, format); \r\n}\r\n\r\nDate.prototype.toFormatDateTime = function(ampm: boolean = true, format?: 'MDY' | 'DMY' | 'YMD'): string {\r\n return Dates.ToFormatDateTime(this, ampm, format); \r\n}\r\n\r\nDate.prototype.addMilliseconds = function(milliseconds: number = 1): Date {\r\n return Dates.AddMilliseconds(this, milliseconds); \r\n}\r\n\r\nDate.prototype.addSeconds = function(seconds: number = 1): Date {\r\n return Dates.AddSeconds(this, seconds); \r\n}\r\n\r\nDate.prototype.addMinutes = function(minutes: number = 1): Date {\r\n return Dates.AddMinutes(this, minutes); \r\n}\r\n\r\nDate.prototype.addHours = function(hours: number = 1): Date {\r\n return Dates.AddHours(this, hours); \r\n}\r\n\r\nDate.prototype.addDays = function(days: number = 1): Date {\r\n return Dates.AddDays(this, days); \r\n}\r\n\r\nDate.prototype.addWeeks = function(weeks: number = 1): Date {\r\n return Dates.AddWeeks(this, weeks); \r\n} \r\n\r\nDate.prototype.addMonths = function(months: number = 1): Date {\r\n return Dates.AddMonths(this, months); \r\n}\r\n\r\nDate.prototype.addYears = function(years: number = 1): Date {\r\n return Dates.AddYears(this, years); \r\n}\r\n\r\nDate.prototype.setMillisecond = function(millisecond: number = 0): Date {\r\n return Dates.SetMillisecond(this, millisecond); \r\n}\r\n\r\nDate.prototype.setSecond = function(second: number = 0): Date {\r\n return Dates.SetSecond(this, second);\r\n}\r\n\r\nDate.prototype.setMinute = function(minute: number = 0): Date {\r\n return Dates.SetMinute(this, minute);\r\n}\r\n \r\nDate.prototype.setHour = function(hour: number = 0): Date {\r\n return Dates.SetHour(this, hour);\r\n}\r\n \r\nDate.prototype.setFirstHour = function(): Date {\r\n return Dates.SetFirstHour(this);\r\n}\r\n \r\nDate.prototype.setLastHour = function(): Date {\r\n return Dates.SetLastHour(this);\r\n}\r\n\r\nDate.prototype.setDay = function(day: number = 1): Date {\r\n return Dates.SetDay(this, day);\r\n}\r\n\r\nDate.prototype.setFirstDay = function(): Date {\r\n return Dates.SetFirstDay(this);\r\n}\r\n\r\nDate.prototype.setLastDay = function(): Date {\r\n return Dates.SetLastDay(this);\r\n}\r\n\r\nDate.prototype.getDiffNow = function(unit: 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' = 'minutes'): number {\r\n return Dates.GetDiffNow(this, unit);\r\n}\r\n\r\nDate.prototype.getDiff = function(date: string | Date, unit: 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' = 'minutes'): number {\r\n return Dates.GetDiff(this, date, unit);\r\n}\r\n\r\nexport {}; ","//import { Tools } from \"coer-elements/tools\";\r\n//\r\n//declare global {\r\n// interface Object {\r\n// \r\n// /** Avoid Null value */\r\n// AvoidNull<T>(type: 'string' | 'number' | 'boolean' | null): T; \r\n//\r\n// /** Get properties of an object */\r\n// GetPropertyList(): string[];\r\n//\r\n// /** Break reference of a object or array */\r\n// BreakReference<T>(object: T): T;\r\n// }\r\n//}\r\n//\r\n//Object.prototype.AvoidNull = function<T>(type: 'string' | 'number' | 'boolean' | null = null): T {\r\n// return Tools.AvoidNull<T>(this as T, type);\r\n//}\r\n//\r\n//Object.prototype.GetPropertyList = function(): string[] {\r\n// return Tools.GetPropertyList(this);\r\n//}\r\n//\r\n//Object.prototype.BreakReference = function<T>(): T {\r\n// return Tools.BreakReference<T>(this as T);\r\n//}\r\n\r\nexport {};","import { Strings, Tools } from \"coer-elements/tools\";\r\n\r\ndeclare global {\r\n interface String {\r\n\r\n /** Sets the first character to lowercase */\r\n firstCharToLower(): string;\r\n\r\n /** Sets the first character to uppercase */\r\n firstCharToUpper(): string;\r\n\r\n /** Clean extra whitespaces */\r\n cleanUpBlanks(): string;\r\n\r\n /** Apply title formatting */\r\n toTitle(): string;\r\n\r\n /** Remove whitespaces */\r\n removeWhiteSpaces(): string;\r\n\r\n /** Removes the last character */\r\n removeLastChar(): string; \r\n\r\n /** Removes accents */\r\n removeAccents(except?: string[]): string; \r\n \r\n /** Removes special characters */\r\n removeSpecialCharacters(): string; \r\n \r\n /** Only alphaNumeric */\r\n onlyAlphanumeric(): string; \r\n\r\n /** Only Numbers */\r\n onlyNumbers(): string;\r\n\r\n /** Validates if both strings are equal */\r\n equals(value: string | number | null | undefined, sensitive?: boolean): boolean;\r\n\r\n /** Returns true if the value is null or undefined or contains only whitespace, false otherwise */\r\n isOnlyWhiteSpace(): boolean;\r\n\r\n /** Returns true if has string value and is not only whitespace, false otherwise */\r\n isNotOnlyWhiteSpace(): boolean; \r\n }\r\n}\r\n\r\n\r\nString.prototype.firstCharToLower = function(): string {\r\n return Strings.FirstCharToLower(this.toString());\r\n}; \r\n\r\nString.prototype.firstCharToUpper = function(): string {\r\n return Strings.FirstCharToUpper(this.toString());\r\n};\r\n\r\nString.prototype.cleanUpBlanks = function(): string {\r\n return Strings.CleanUpBlanks(this.toString());\r\n}; \r\n\r\nString.prototype.toTitle = function(): string {\r\n return Strings.ToTitle(this.toString());\r\n};\r\n\r\nString.prototype.removeWhiteSpaces = function(): string {\r\n return Strings.RemoveWhiteSpaces(this.toString());\r\n} \r\n\r\nString.prototype.removeLastChar = function(): string {\r\n return Strings.RemoveLastChar(this.toString());\r\n} \r\n\r\nString.prototype.removeAccents = function(except: string[] = []): string { \r\n return Strings.RemoveAccents(this.toString(), except);\r\n};\r\n\r\nString.prototype.removeSpecialCharacters = function(): string { \r\n return Strings.RemoveSpecialCharacters(this.toString());\r\n};\r\n\r\nString.prototype.onlyAlphanumeric = function(): string { \r\n return Strings.OnlyAlphanumeric(this.toString());\r\n};\r\n\r\nString.prototype.onlyNumbers = function(): string { \r\n return Strings.OnlyNumbers(this.toString());\r\n};\r\n\r\nString.prototype.equals = function(value: string | number | null | undefined, sensitive: boolean = false): boolean { \r\n return Strings.Equals(this.toString(), value, sensitive);\r\n} \r\n\r\nString.prototype.isOnlyWhiteSpace = function(): boolean {\r\n return Tools.IsOnlyWhiteSpace(this);\r\n}\r\n\r\nString.prototype.isNotOnlyWhiteSpace = function(): boolean {\r\n return Tools.IsNotOnlyWhiteSpace(this);\r\n}\r\n\r\nexport {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,14 +6,13 @@ import { FormsModule } from '@angular/forms';
6
6
  import * as i1 from '@angular/router';
7
7
  import { RouterModule } from '@angular/router';
8
8
  import * as i4 from 'coer-elements/tools';
9
- import { Page, Tools, CoerAlert, HTMLElements, User, Menu } from 'coer-elements/tools';
9
+ import { Page, Tools, CoerAlert, HTMLElements, User, Dates, Menu } from 'coer-elements/tools';
10
10
  import { menuSelectedSIGNAL, isLoadingSIGNAL, navigationSIGNAL, colorsSIGNAL, isMenuOpenSIGNAL } from 'coer-elements/signals';
11
11
  import * as i2 from 'coer-elements/components';
12
12
  import { ComponentsModule } from 'coer-elements/components';
13
13
  import * as i3 from 'coer-elements/directives';
14
14
  import { DirectivesModule } from 'coer-elements/directives';
15
15
  import { JWTService } from 'coer-elements/services';
16
- import moment from 'moment';
17
16
 
18
17
  class CoerMenuPage extends Page {
19
18
  constructor() {
@@ -405,12 +404,14 @@ class COERSystem {
405
404
  this._WatchJWT();
406
405
  this.onUpdateJWT.emit();
407
406
  clearInterval(this._startJWT$);
408
- this._startJWT$ = setInterval(() => {
409
- const DIFERENCE = Math.abs(moment().diff(this._jwtService.expirationDate, 'minute'));
410
- if (DIFERENCE <= diferenceToUpdate) {
411
- this.onUpdateJWT.emit();
412
- }
413
- }, validateEvery);
407
+ if (Tools.IsNotOnlyWhiteSpace(this._jwtService?.expirationDate)) {
408
+ this._startJWT$ = setInterval(() => {
409
+ const DIFERENCE = Math.abs(Dates.GetDiffNow(this._jwtService.expirationDate, 'minutes'));
410
+ if (DIFERENCE <= diferenceToUpdate) {
411
+ this.onUpdateJWT.emit();
412
+ }
413
+ }, validateEvery);
414
+ }
414
415
  }
415
416
  }
416
417
  /** */
@@ -1 +1 @@
1
- {"version":3,"file":"coer-elements-pages.mjs","sources":["../../../projects/coer-elements/pages/lib/coer-menu/coer-menu.component.ts","../../../projects/coer-elements/pages/lib/coer-menu/coer-menu.component.html","../../../projects/coer-elements/pages/lib/home/home.component.ts","../../../projects/coer-elements/pages/lib/home/home.component.html","../../../projects/coer-elements/pages/lib/coer-system/login/login.component.ts","../../../projects/coer-elements/pages/lib/coer-system/login/login.component.html","../../../projects/coer-elements/pages/lib/coer-system/coer-system.component.ts","../../../projects/coer-elements/pages/lib/coer-system/coer-system.component.html","../../../projects/coer-elements/pages/lib/pages.module.ts","../../../projects/coer-elements/pages/coer-elements-pages.ts"],"sourcesContent":["import { Component, computed, effect, WritableSignal } from '@angular/core'; \r\nimport { Page, Tools } from 'coer-elements/tools'; \r\nimport { menuSelectedSIGNAL } from 'coer-elements/signals';\r\nimport { IMenu, IMenuSelected } from 'coer-elements/interfaces';\r\n\r\n\r\n@Component({\r\n selector: 'coer-menu-page',\r\n templateUrl: './coer-menu.component.html', \r\n styleUrl: './coer-menu.component.scss',\r\n standalone: false\r\n})\r\nexport class CoerMenuPage extends Page { \r\n \r\n //signals\r\n protected menu: WritableSignal<IMenuSelected | null> = menuSelectedSIGNAL;\r\n\r\n constructor() { \r\n super('coer-menu'); \r\n \r\n effect(() => {\r\n const menu = menuSelectedSIGNAL();\r\n if(Tools.IsNotNull(menu)) this.SetPageFilters({ menu }); \r\n });\r\n } \r\n\r\n\r\n //computed\r\n protected _gridMenu = computed<IMenu[]>(() => { \r\n let id: number = 0;\r\n return this.menu()?.items?.map(item => Object.assign(item, { id: ++id })) || [];\r\n });\r\n\r\n\r\n /** */\r\n protected override RunPage() {\r\n if (Tools.IsNotNull(this.pageFilters) && Tools.IsNotNull(this.pageFilters.menu)) { \r\n menuSelectedSIGNAL.set(this.pageFilters.menu); \r\n this.SetPageName(this.pageFilters.menu.label);\r\n } \r\n } \r\n\r\n\r\n /** */\r\n protected _isPage = (item: IMenu): boolean => Tools.IsNotOnlyWhiteSpace(item?.path) && Tools.IsNull(item?.items);\r\n\r\n\r\n /** */\r\n protected _getPath = (item: IMenu): string | null => (this._isPage(item) && item.path!.length > 0) ? item.path! : null; \r\n}","<!-- Title -->\r\n<coer-page-title\r\n title=\"Menu\"\r\n [breadcrumbs]=\"breadcrumbs\"\r\n [goBack]=\"goBack\"\r\n></coer-page-title>\r\n\r\n<div class=\"coer-menu flex-wrap mv-margin-ltr-15px margin-ltr-30px mv-gap-15px xs-gap-30px mv-padding-bottom-15px xs-padding-bottom-30px fade-in\">\r\n @for(item of _gridMenu(); track item.id) { \r\n @if(_isPage(item)) {\r\n <a [routerLink]=\"_getPath(item)\" class=\"mv-flex-basis-150px xs-flex-basis-200px flex-grow-1\">\r\n @if(IsNotOnlyWhiteSpace(item?.icon)) {\r\n <i [class]=\"item!.icon\"></i>\r\n }\r\n <span> {{ item.label }} </span>\r\n </a> \r\n }\r\n\r\n @else {\r\n <a [routerLink]=\"null\" class=\"mv-flex-basis-150px flex-basis-200px flex-grow-1 menu\">\r\n @if(IsNotOnlyWhiteSpace(item?.icon)) {\r\n <i [class]=\"item!.icon\"></i>\r\n }\r\n <span> {{ item.label }} </span>\r\n </a> \r\n }\r\n }\r\n</div>","import { Component, viewChild } from '@angular/core'; \r\nimport { CoerModal } from 'coer-elements/components';\r\nimport { Page } from 'coer-elements/tools'; \r\n\r\n\r\n@Component({\r\n selector: 'home-page',\r\n templateUrl: './home.component.html', \r\n styleUrl: './home.component.scss',\r\n standalone: false\r\n})\r\nexport class HomePage extends Page { \r\n \r\n protected modal = viewChild.required<CoerModal>('modal');\r\n \r\n constructor() { \r\n super('home'); \r\n }\r\n}\r\n","<!-- Title -->\r\n<coer-page-title\r\n title=\"Home\"\r\n [breadcrumbs]=\"breadcrumbs\"\r\n [goBack]=\"goBack\"\r\n></coer-page-title>\r\n\r\n<div class=\"coer-container\"> \r\n</div> \r\n\r\n<div class=\"position-absolute left-negative-0px mv-bottom-15px bottom-30px\">\r\n <coer-card\r\n name=\"Christian Omar Escamilla Rodriguez\"\r\n icon=\"icon-developer\"\r\n title=\"Ing. Desarrollador Software\"\r\n phone=\"8124216386\"\r\n email=\"coer0408@gmail.com\"\r\n ></coer-card> \r\n</div> ","import { Component, output, viewChild, WritableSignal } from '@angular/core'; \r\nimport { CoerTextBox } from 'coer-elements/components';\r\nimport { ILogIn } from 'coer-elements/interfaces';\r\nimport { isLoadingSIGNAL } from 'coer-elements/signals';\r\nimport { Tools } from 'coer-elements/tools';\r\ndeclare const appSettings: any;\r\n\r\n@Component({\r\n selector: 'login-page',\r\n templateUrl: './login.component.html', \r\n styleUrl: './login.component.scss',\r\n standalone: false\r\n})\r\nexport class LoginPage { \r\n\r\n //Elements\r\n protected readonly _inputUser = viewChild.required<CoerTextBox>('inputUser');\r\n protected readonly _inputPassword = viewChild.required<CoerTextBox>('inputPassword');\r\n protected readonly _inputRecovery = viewChild.required<CoerTextBox>('inputRecovery');\r\n\r\n //appSettings \r\n protected readonly _appName = Tools.AvoidNull<string>(appSettings?.appInfo?.name, 'string');\r\n\r\n //Signals\r\n protected _isLoading: WritableSignal<boolean> = isLoadingSIGNAL; \r\n\r\n //Variables\r\n protected _user: string = '';\r\n protected _password: string = ''; \r\n protected _remember: boolean = false;\r\n protected _show: 'LOGIN' | 'RECOVERY' = 'LOGIN';\r\n\r\n //Outputs \r\n public onLogin = output<ILogIn>();\r\n public onRecovery = output<string>();\r\n\r\n //Generic Tools\r\n protected IsNotOnlyWhiteSpace = Tools.IsNotOnlyWhiteSpace; \r\n\r\n //getter\r\n protected get _enableButton() {\r\n return Tools.IsNotOnlyWhiteSpace(this._user)\r\n && Tools.IsNotOnlyWhiteSpace(this._password)\r\n && this._password.length >= 6\r\n }\r\n\r\n //getter\r\n protected get _enableRecoveryButton() {\r\n return Tools.IsNotOnlyWhiteSpace(this._user) \r\n && this._user.length >= 6\r\n }\r\n\r\n \r\n /** */\r\n protected __Login() {\r\n this.onLogin.emit({ \r\n user: this._user, \r\n password: this._password \r\n }); \r\n }\r\n \r\n\r\n /** */\r\n public Show(view: 'LOGIN' | 'RECOVERY') {\r\n const user = this._user;\r\n const password = this._password;\r\n this._show = view; \r\n \r\n Tools.Sleep(150).then(_ => {\r\n this._user = user;\r\n this._password = password;\r\n \r\n if(view === 'RECOVERY') { \r\n this._inputRecovery().Focus();\r\n }\r\n \r\n else if (view === 'LOGIN') {\r\n if(this._user.length <= 0) {\r\n this.FocusUser(); \r\n }\r\n \r\n else {\r\n this.FocusPassword();\r\n }\r\n } \r\n });\r\n }\r\n\r\n\r\n /** */\r\n public FocusUser() {\r\n this._inputUser().Focus();\r\n }\r\n\r\n\r\n /** */\r\n public FocusPassword() { \r\n this._inputPassword().Focus(true);\r\n }\r\n\r\n\r\n /** */\r\n public SetUser(user: string): void {\r\n this._user = user; \r\n } \r\n}","<div class=\"width-100vw height-100vh flex-top-center\">\r\n <div class=\"login-container mv-padding-20px mv-margin-20px\">\r\n <!-- Title -->\r\n <div class=\"title\">\r\n {{ _appName }}\r\n </div>\r\n \r\n @if(_show === 'LOGIN') {\r\n <section>\r\n <!-- User -->\r\n <coer-textbox\r\n #inputUser\r\n label=\"User\"\r\n [(ngModel)]=\"_user\"\r\n [isLoading]=\"_isLoading()\" \r\n marginTop=\"35px\"\r\n marginBottom=\"35px\"\r\n [maxLength]=\"15\" \r\n (onKeyupEnter)=\"inputPassword.Focus(true)\"\r\n ></coer-textbox>\r\n \r\n <!-- Password -->\r\n <coer-secretbox\r\n #inputPassword\r\n label=\"Password\"\r\n [(ngModel)]=\"_password\"\r\n [isLoading]=\"_isLoading()\"\r\n marginBottom=\"35px\"\r\n [maxLength]=\"20\"\r\n (onKeyupEnter)=\"_enableButton ? loginButton.Click() : FocusPassword()\" \r\n ></coer-secretbox> \r\n \r\n <!-- Login -->\r\n <div class=\"text-center\">\r\n <coer-button\r\n #loginButton\r\n color=\"dark\" \r\n [isDisabled]=\"!_enableButton\"\r\n [isLoading]=\"_isLoading()\"\r\n (onClick)=\"__Login()\"\r\n > Login </coer-button>\r\n </div>\r\n </section>\r\n \r\n \r\n <!-- Recover password -->\r\n <div class=\"recover\" (click)=\"Show('RECOVERY')\">\r\n Recover password\r\n </div> \r\n } \r\n \r\n \r\n @if(_show === 'RECOVERY') {\r\n <section>\r\n <!-- Recovery -->\r\n <coer-textbox\r\n #inputRecovery\r\n label=\"User / Email\"\r\n [(ngModel)]=\"_user\"\r\n [isLoading]=\"_isLoading()\" \r\n marginTop=\"35px\"\r\n marginBottom=\"35px\"\r\n [maxLength]=\"50\"\r\n (onKeyupEnter)=\"recoveryPassword.Click()\"\r\n ></coer-textbox> \r\n \r\n \r\n <!-- -->\r\n <coer-textbox [isInvisible]=\"true\"></coer-textbox> \r\n \r\n \r\n <!-- Login -->\r\n <div class=\"text-center\">\r\n <coer-button \r\n #recoveryPassword\r\n color=\"dark\" \r\n [isDisabled]=\"!_enableRecoveryButton\"\r\n [isLoading]=\"_isLoading()\"\r\n marginTop=\"35px\"\r\n (onClick)=\"onRecovery.emit(_user)\"\r\n > Recovery </coer-button>\r\n </div>\r\n </section>\r\n \r\n <!-- Recover password -->\r\n <div class=\"back\" (click)=\"Show('LOGIN')\">\r\n Back\r\n </div>\r\n } \r\n </div>\r\n</div>","import { isLoadingSIGNAL, navigationSIGNAL, isMenuOpenSIGNAL, colorsSIGNAL } from 'coer-elements/signals';\r\nimport { AfterViewInit, Component, computed, effect, EffectRef, inject, input, OnDestroy, output, signal, viewChild, WritableSignal } from '@angular/core'; \r\nimport { IFile, ILogIn, IMenu, IOption, IMenuToolbar, IUserLogin } from 'coer-elements/interfaces';\r\nimport { CoerButton, CoerModal, CoerSidenav, CoerTextBox } from 'coer-elements/components';\r\nimport { CoerAlert, HTMLElements, Menu, Tools, User } from 'coer-elements/tools';\r\nimport { LoginPage } from './login/login.component';\r\nimport { JWTService } from 'coer-elements/services';\r\nimport moment from 'moment'; \r\ndeclare const appSettings: any;\r\n\r\n@Component({\r\n selector: 'coer-system',\r\n templateUrl: './coer-system.component.html', \r\n styleUrl: './coer-system.component.scss', \r\n standalone: false\r\n})\r\nexport class COERSystem implements AfterViewInit, OnDestroy { \r\n\r\n //Injection\r\n protected readonly _alert = inject(CoerAlert);\r\n protected readonly _jwtService = inject(JWTService); \r\n\r\n //appSettings \r\n protected readonly _appName = Tools.AvoidNull<string>(appSettings?.appInfo?.name, 'string');\r\n protected readonly _staticLogin = Tools.AvoidNull<boolean>(appSettings?.login?.static, 'boolean');\r\n\r\n //Elements\r\n protected readonly _sidenav = viewChild.required<CoerSidenav>('sidenav');\r\n protected readonly _loginPage = viewChild.required<LoginPage>('loginPage'); \r\n protected readonly _modalProfile = viewChild.required<CoerModal>('modalProfile');\r\n protected readonly _modalPassword = viewChild.required<CoerModal>('modalPassword');\r\n protected readonly _inputPassword = viewChild.required<CoerTextBox>('inputPassword');\r\n protected readonly _inputPasswordConfirm = viewChild.required<CoerTextBox>('inputPasswordConfirm');\r\n protected readonly _resetButton = viewChild.required<CoerButton>('resetButton');\r\n\r\n //Generic Tools\r\n protected IsNotNull = Tools.IsNotNull; \r\n protected IsNotOnlyWhiteSpace = Tools.IsNotOnlyWhiteSpace;\r\n\r\n //Variables \r\n protected readonly _effectNavigation!: EffectRef;\r\n protected readonly _effectUser!: EffectRef;\r\n protected readonly _effectUserRoles!: EffectRef;\r\n protected readonly _isLoading: WritableSignal<boolean> = isLoadingSIGNAL; \r\n protected readonly _userRoles = signal<IOption[]>([]); \r\n protected readonly _user = signal<IUserLogin | null>(null); \r\n protected readonly _userImageStatic = signal<string>(''); \r\n protected _startJWT$!: any; \r\n protected _watchJWT$!: any; \r\n protected _mainRole: IOption | null = null\r\n protected _nickname: string = '';\r\n protected _password: string = '';\r\n protected _passwordConfirm: string = '';\r\n \r\n //Inputs\r\n public userImage = input<string | null>(null); \r\n public toolbarMenu = input<IMenuToolbar[]>([]); \r\n public navigation = input<IMenu[]>([]);\r\n public user = input<IUserLogin | null>(null);\r\n public userRoles = input<string[]>([]); \r\n\r\n //Outputs \r\n public onLogin = output<ILogIn>();\r\n public onClickMenuOption = output<IMenuToolbar>();\r\n public onResetPassword = output<string>();\r\n public onRecoveryPassword = output<string>(); \r\n public onUpdateProfile = output<IUserLogin>();\r\n public onUploadUserImage = output<IFile>();\r\n public onDeleteUserImage = output<void>();\r\n public onUpdateJWT = output<void>();\r\n\r\n\r\n //Constructor\r\n constructor() { \r\n this._effectUser = effect(() => {\r\n if(this.user()) {\r\n this._user.set(this.user()); \r\n \r\n if (Tools.IsNotOnlyWhiteSpace(this._user()?.nickname)) {\r\n this._nickname = this._user()?.nickname!;\r\n } \r\n } \r\n });\r\n\r\n this._effectUserRoles = effect(() => {\r\n let id = 0; \r\n this._userRoles.set(this.userRoles().map(item => ({ id: ++id, option: item }))); \r\n this._mainRole = this._userRoles().find(x => x.option === this._user()?.role) || null; \r\n });\r\n\r\n this._effectNavigation = effect(() => {\r\n if(Tools.IsNotNull(this._user()) && this.navigation().length > 0) {\r\n navigationSIGNAL.set(this.navigation()); \r\n this.SetActiveLink();\r\n }\r\n });\r\n }\r\n\r\n\r\n //AfterViewInit\r\n ngAfterViewInit() {\r\n Tools.Sleep(10000).then(_ => { \r\n colorsSIGNAL.update(colors => ({\r\n fixedColors: { ...colors.fixedColors },\r\n actionColors: {\r\n primary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-primary' )),\r\n secondary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-secondary' )),\r\n success: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-success' )),\r\n warning: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-warning' )),\r\n danger: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-danger' )),\r\n navigation: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-navigation' )),\r\n information: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-information'))\r\n },\r\n appColors: {\r\n breadcrumbs: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-breadcrumbs' )),\r\n background: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-background' )),\r\n containers: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-containers' )),\r\n sidenav: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav' )),\r\n sidenavText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-text' )),\r\n sidenavActive: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-active')),\r\n toolbar: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar' )),\r\n toolbarText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar-text' ))\r\n }\r\n })); \r\n });\r\n\r\n }\r\n \r\n \r\n ngOnDestroy() {\r\n clearInterval(this._watchJWT$);\r\n clearInterval(this._startJWT$); \r\n this._effectNavigation?.destroy();\r\n this._effectUser?.destroy();\r\n this._effectUserRoles?.destroy(); \r\n }\r\n\r\n\r\n //getter\r\n protected get _enableButtonLogin() {\r\n return Tools.IsNotOnlyWhiteSpace(this._user())\r\n && Tools.IsNotOnlyWhiteSpace(this._password)\r\n && Tools.IsNotOnlyWhiteSpace(this._passwordConfirm)\r\n && this._password.length >= 5\r\n && this._passwordConfirm.length >= 5\r\n && !this._isLoading()\r\n && this._password === this._passwordConfirm\r\n }\r\n\r\n\r\n //getter\r\n protected get _profileTitle(): string {\r\n return Tools.IsNotOnlyWhiteSpace(this._user()?.fullName) \r\n ? this._user()?.fullName!\r\n : this._user()?.user!\r\n }\r\n\r\n\r\n //computed\r\n protected _userImage = computed<string>(() => { \r\n return this._staticLogin\r\n ? this._userImageStatic()\r\n : (this.IsNotOnlyWhiteSpace(this.userImage()) ? this.userImage()! : '') \r\n });\r\n\r\n\r\n //computed\r\n protected _toolbarMenu = computed<IMenuToolbar[]>(() => { \r\n let toolbarMenu = this.toolbarMenu();\r\n\r\n if(this._staticLogin) {\r\n const index = toolbarMenu.findIndex(x => x.label.toUpperCase() == 'RESET PASSWORD');\r\n if(index > -1) toolbarMenu.splice(index, 1);\r\n }\r\n\r\n return toolbarMenu.concat([{ label: 'Log Out', icon: 'fa-solid fa-door-open' }]);\r\n }); \r\n\r\n\r\n /** */\r\n protected async __SelectedOption(menu: IMenuToolbar) {\r\n this.onClickMenuOption.emit(menu);\r\n if (Tools.AvoidNull<boolean>(menu?.preventDefault, 'boolean')) return;\r\n const hasPath = Tools.IsNotOnlyWhiteSpace(menu?.path); \r\n\r\n switch(menu.label) {\r\n case 'Profile': {\r\n if(!hasPath) this._modalProfile().Open(); \r\n break;\r\n }\r\n\r\n case 'Reset Password': {\r\n if(!hasPath && !this._staticLogin) {\r\n this._modalPassword().Open();\r\n await Tools.Sleep(750);\r\n this.__Focus();\r\n }\r\n \r\n break;\r\n }\r\n\r\n case 'Log Out': {\r\n if(!hasPath) User.LogOut();\r\n break;\r\n } \r\n } \r\n } \r\n\r\n\r\n /** */\r\n public SetUser(user: string) {\r\n this._loginPage().SetUser(user);\r\n }\r\n\r\n\r\n /** */\r\n public FocusUser() {\r\n this._loginPage().FocusUser();\r\n }\r\n\r\n\r\n /** */\r\n public FocusPassword() {\r\n this._loginPage().FocusPassword();\r\n }\r\n\r\n\r\n /** */\r\n protected __Focus() { \r\n if(Tools.IsOnlyWhiteSpace(this._password)) {\r\n this._inputPassword().Focus();\r\n return;\r\n }\r\n\r\n if(Tools.IsOnlyWhiteSpace(this._passwordConfirm)) { \r\n this._inputPasswordConfirm().Focus();\r\n return;\r\n } \r\n \r\n if(this._enableButtonLogin) {\r\n this._resetButton().Focus();\r\n } \r\n }\r\n\r\n\r\n /** */\r\n protected __ResetPassword() { \r\n if(this._enableButtonLogin && !this._staticLogin) { \r\n this.onResetPassword.emit(this._password);\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public CloseModal() {\r\n this._modalPassword().Close(); \r\n this._modalProfile().Close();\r\n }\r\n\r\n\r\n /** */\r\n public Show(view: 'LOGIN' | 'RECOVERY') {\r\n this._loginPage().Show(view);\r\n }\r\n\r\n\r\n /** */\r\n public UpdateProfile() { \r\n if(!this._staticLogin) {\r\n \r\n const role = this._userRoles().length > 1 \r\n ? Tools.AvoidNull(this._mainRole?.option, 'string') \r\n : this._user()?.role;\r\n\r\n this.onUpdateProfile.emit({ \r\n userId: Tools.AvoidNull(this._user()?.userId, 'number'),\r\n user: Tools.AvoidNull(this._user()?.user, 'string'), \r\n userNumber: Tools.AvoidNull(this._user()?.userNumber, 'string'), \r\n role: role,\r\n fullName: Tools.AvoidNull(this._user()?.fullName, 'string'), \r\n nickname: Tools.AvoidNull(this._nickname, 'string'), \r\n email: Tools.AvoidNull(this._user()?.email, 'string'), \r\n roles: this._userRoles().map(item => item.option) \r\n });\r\n }\r\n }\r\n\r\n\r\n /** */\r\n protected __UploadImage(images: IFile[]) { \r\n if(images.length > 0) {\r\n const [image] = images; \r\n \r\n if(this._staticLogin) {\r\n this._userImageStatic.set(image.base64 || '');\r\n }\r\n\r\n else {\r\n this.onUploadUserImage.emit(image); \r\n }\r\n }\r\n }\r\n\r\n\r\n /** */\r\n protected __DeleteUserImage(): void { \r\n this._alert.Confirm(`Remove <b>User Image</b> ?`, 'warning', 'fa-solid fa-trash-can').then(response => {\r\n if(response) {\r\n if(this._staticLogin) {\r\n this._userImageStatic.set('');\r\n }\r\n\r\n else {\r\n this.onDeleteUserImage.emit();\r\n }\r\n }\r\n }); \r\n }\r\n\r\n\r\n /** */\r\n public OpenSideNav(): void { \r\n if(!isMenuOpenSIGNAL()) {\r\n this._sidenav().Toggle(); \r\n }\r\n }\r\n\r\n\r\n /** */\r\n public CloseSideNav(): void { \r\n if(isMenuOpenSIGNAL()) {\r\n this._sidenav().Toggle(); \r\n }\r\n }\r\n\r\n\r\n /** */ \r\n public StartJWT(validateEvery: number = 1000, diferenceToUpdate: number = 30): void { \r\n if(!this._staticLogin) {\r\n if(Tools.IsOnlyWhiteSpace(this._jwtService.jwt)) {\r\n this._alert.Warning('The JWT has not been provided');\r\n return;\r\n }\r\n\r\n this._WatchJWT();\r\n this.onUpdateJWT.emit();\r\n \r\n clearInterval(this._startJWT$);\r\n this._startJWT$ = setInterval(() => { \r\n const DIFERENCE = Math.abs(moment().diff(this._jwtService.expirationDate, 'minute')); \r\n \r\n if (DIFERENCE <= diferenceToUpdate) {\r\n this.onUpdateJWT.emit();\r\n }\r\n }, validateEvery); \r\n } \r\n }\r\n\r\n\r\n /** */ \r\n protected _WatchJWT(): void { \r\n if (this._jwtService.isExpired) {\r\n User.LogOut();\r\n return;\r\n }\r\n\r\n clearInterval(this._watchJWT$);\r\n this._watchJWT$ = setInterval(() => { \r\n if (this._jwtService.isExpired) {\r\n clearInterval(this._watchJWT$);\r\n User.LogOut();\r\n } \r\n }, 1000); \r\n }\r\n\r\n\r\n /** */\r\n public UpdateJWT(jwt: string): void { \r\n if(this._staticLogin) return;\r\n this._jwtService.UpdateJWT(jwt);\r\n } \r\n\r\n\r\n /** */\r\n public StopJWT(): void {\r\n if(this._staticLogin) return;\r\n clearInterval(this._startJWT$); \r\n } \r\n\r\n\r\n /** */ \r\n public UseStaticLogin(): IUserLogin { \r\n User.Set({\r\n user: 'COERSystem', \r\n role: 'Development', \r\n fullName: 'COER System',\r\n email: 'coer.system@gmail.com',\r\n jwt: 'static'\r\n }); \r\n\r\n return User.Get() as IUserLogin;\r\n }\r\n\r\n\r\n /** */ \r\n public SetActiveLink(): void { \r\n Tools.Sleep().then(_ => { \r\n this._sidenav().SetActiveLink(Menu.GetSelectedOption() || {\r\n level: 1,\r\n label: \"Home\",\r\n path: \"/home\",\r\n icon: \"icon-house icon-fill\",\r\n queryParams: '',\r\n tree: [{ label: \"Home\", icon: \"icon-house icon-fill\", path: \"/home\" }]\r\n });\r\n });\r\n }\r\n}","@if(IsNotNull(_user())) {\r\n <coer-toolbar \r\n [user]=\"_user()\" \r\n [image]=\"userImage()\" \r\n [menu]=\"_toolbarMenu()\" \r\n (onClickMenu)=\"sidenav.Toggle()\" \r\n (onClickOption)=\"__SelectedOption($event)\"\r\n ></coer-toolbar>\r\n \r\n <coer-sidenav #sidenav> \r\n <div class=\"toolbar-shadow\"></div>\r\n \r\n <section> \r\n <ng-content></ng-content>\r\n </section> \r\n </coer-sidenav>\r\n\r\n <!-- Modal Profile --> \r\n <coer-modal #modalProfile [title]=\"_profileTitle\" icon=\"icon-user icon-fill\" width=\"auto\"> \r\n <section class=\"text-align-center\">\r\n <coer-filebox\r\n type=\"image\"\r\n [image]=\"{ \r\n value: _userImage(), \r\n name: _profileTitle,\r\n maxWidth: '150px', \r\n maxHeight: '150px', \r\n marginBottom: '15px',\r\n allowExpand: false \r\n }\"\r\n [isLoading]=\"_isLoading()\"\r\n (onSelected)=\"__UploadImage($event)\"\r\n (onDeleteImage)=\"__DeleteUserImage()\"\r\n ></coer-filebox>\r\n </section>\r\n\r\n <section class=\"flex-wrap coer-system-profile max-width-550px\">\r\n <!-- User --> \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"User\"\r\n [value]=\"_user()?.user\"\r\n [isReadonly]=\"true\" \r\n ></coer-textbox>\r\n </div>\r\n\r\n <!-- User Number -->\r\n @if(IsNotOnlyWhiteSpace(_user()?.userNumber)) { \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Number\"\r\n [value]=\"_user()?.userNumber\"\r\n [isReadonly]=\"true\" \r\n ></coer-textbox>\r\n </div>\r\n }\r\n\r\n <!-- Email -->\r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Email\"\r\n [value]=\"_user()?.email\"\r\n [isReadonly]=\"true\" \r\n ></coer-textbox> \r\n </div>\r\n\r\n <!-- Nickame --> \r\n @if(IsNotNull(_user()?.nickname)) { \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Nickame\"\r\n [(ngModel)]=\"_nickname\" \r\n [isLoading]=\"_isLoading()\" \r\n ></coer-textbox> \r\n </div>\r\n } \r\n\r\n @if(IsNotNull(_user()?.roles) && (_user()?.roles!.length > 1)) {\r\n <!-- Role --> \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-selectbox\r\n label=\"Role\"\r\n [(ngModel)]=\"_mainRole\"\r\n displayProperty=\"option\"\r\n [dataSource]=\"_userRoles()\"\r\n [isLoading]=\"_isLoading()\" \r\n ></coer-selectbox>\r\n </div>\r\n }\r\n\r\n @else {\r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Role\"\r\n [value]=\"_user()?.role!\" \r\n [isReadonly]=\"true\" \r\n ></coer-textbox> \r\n </div>\r\n }\r\n </section> \r\n \r\n @if(!_staticLogin) {\r\n <ng-template coerRef=\"footer\">\r\n <coer-button\r\n #buttonSave\r\n color=\"dark\"\r\n icon=\"save\"\r\n [isLoading]=\"_isLoading()\"\r\n (onClick)=\"UpdateProfile()\"\r\n > Update </coer-button>\r\n </ng-template>\r\n } \r\n </coer-modal> \r\n\r\n <!-- Modal Password -->\r\n <coer-modal #modalPassword title=\"Reset Password\" icon=\"fa-solid fa-lock\" (onClose)=\"_password = ''; _passwordConfirm = '';\">\r\n <coer-secretbox\r\n #inputPassword\r\n label=\"New Password\"\r\n [(ngModel)]=\"_password\"\r\n [isLoading]=\"_isLoading()\" \r\n [maxLength]=\"20\"\r\n marginBottom=\"15px\"\r\n (onKeyupEnter)=\"__Focus()\"\r\n ></coer-secretbox>\r\n\r\n <coer-secretbox\r\n #inputPasswordConfirm\r\n label=\"Confirm Password\"\r\n [(ngModel)]=\"_passwordConfirm\"\r\n [isLoading]=\"_isLoading()\" \r\n [maxLength]=\"20\"\r\n (onKeyupEnter)=\"__Focus()\"\r\n ></coer-secretbox>\r\n\r\n <ng-template coerRef=\"footer\">\r\n <!-- Reset Button -->\r\n <coer-button\r\n #resetButton\r\n color=\"dark\" \r\n [isDisabled]=\"!_enableButtonLogin\"\r\n [isLoading]=\"_isLoading()\" \r\n (onClick)=\"__ResetPassword()\"\r\n > Reset </coer-button>\r\n </ng-template>\r\n </coer-modal>\r\n}\r\n\r\n@else {\r\n <login-page \r\n #loginPage \r\n (onLogin)=\"onLogin.emit($event)\"\r\n (onRecovery)=\"onRecoveryPassword.emit($event)\"\r\n ></login-page>\r\n} \r\n\r\n<coer-alert></coer-alert> \r\n\r\n<div class=\"d-none\">\r\n <span id=\"coer-system-actionColors-primary\"></span>\r\n <span id=\"coer-system-actionColors-secondary\"></span>\r\n <span id=\"coer-system-actionColors-success\"></span>\r\n <span id=\"coer-system-actionColors-warning\"></span>\r\n <span id=\"coer-system-actionColors-danger\"></span>\r\n <span id=\"coer-system-actionColors-navigation\"></span>\r\n <span id=\"coer-system-actionColors-information\"></span>\r\n <span id=\"coer-system-appColors-breadcrumbs\"></span>\r\n <span id=\"coer-system-appColors-background\"></span> \r\n <span id=\"coer-system-appColors-containers\"></span>\r\n <span id=\"coer-system-appColors-sidenav\"></span> \r\n <span id=\"coer-system-appColors-sidenav-text\"></span>\r\n <span id=\"coer-system-appColors-sidenav-active\"></span>\r\n <span id=\"coer-system-appColors-toolbar\"></span> \r\n <span id=\"coer-system-appColors-toolbar-text\"></span> \r\n</div>","import { NgModule } from '@angular/core'; \r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n//Pages \r\nimport { CoerMenuPage } from './coer-menu/coer-menu.component';\r\nimport { ComponentsModule } from 'coer-elements/components';\r\nimport { DirectivesModule } from 'coer-elements/directives';\r\nimport { HomePage } from './home/home.component';\r\nimport { COERSystem } from './coer-system/coer-system.component';\r\nimport { LoginPage } from './coer-system/login/login.component';\r\nimport { CoerAlert } from 'coer-elements/tools';\r\n\r\nexport const ROUTES: any = [ \r\n { path: 'menu', component: CoerMenuPage, data: { Page: 'COER' }},\r\n { path: 'home', component: HomePage, data: { Page: 'COER' }},\r\n { path: '**', redirectTo: '/home' } \r\n];\r\n\r\n@NgModule({ \r\n imports: [\r\n CommonModule, \r\n RouterModule, \r\n FormsModule, \r\n ComponentsModule, \r\n DirectivesModule,\r\n CoerAlert\r\n ],\r\n declarations: [\r\n COERSystem,\r\n LoginPage,\r\n CoerMenuPage,\r\n HomePage,\r\n ],\r\n exports: [ \r\n COERSystem, \r\n CoerMenuPage,\r\n HomePage,\r\n ]\r\n})\r\nexport class PagesModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5.LoginPage"],"mappings":"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"}
1
+ {"version":3,"file":"coer-elements-pages.mjs","sources":["../../../projects/coer-elements/pages/lib/coer-menu/coer-menu.component.ts","../../../projects/coer-elements/pages/lib/coer-menu/coer-menu.component.html","../../../projects/coer-elements/pages/lib/home/home.component.ts","../../../projects/coer-elements/pages/lib/home/home.component.html","../../../projects/coer-elements/pages/lib/coer-system/login/login.component.ts","../../../projects/coer-elements/pages/lib/coer-system/login/login.component.html","../../../projects/coer-elements/pages/lib/coer-system/coer-system.component.ts","../../../projects/coer-elements/pages/lib/coer-system/coer-system.component.html","../../../projects/coer-elements/pages/lib/pages.module.ts","../../../projects/coer-elements/pages/coer-elements-pages.ts"],"sourcesContent":["import { Component, computed, effect, WritableSignal } from '@angular/core'; \r\nimport { Page, Tools } from 'coer-elements/tools'; \r\nimport { menuSelectedSIGNAL } from 'coer-elements/signals';\r\nimport { IMenu, IMenuSelected } from 'coer-elements/interfaces';\r\n\r\n\r\n@Component({\r\n selector: 'coer-menu-page',\r\n templateUrl: './coer-menu.component.html', \r\n styleUrl: './coer-menu.component.scss',\r\n standalone: false\r\n})\r\nexport class CoerMenuPage extends Page { \r\n \r\n //signals\r\n protected menu: WritableSignal<IMenuSelected | null> = menuSelectedSIGNAL;\r\n\r\n constructor() { \r\n super('coer-menu'); \r\n \r\n effect(() => {\r\n const menu = menuSelectedSIGNAL();\r\n if(Tools.IsNotNull(menu)) this.SetPageFilters({ menu }); \r\n });\r\n } \r\n\r\n\r\n //computed\r\n protected _gridMenu = computed<IMenu[]>(() => { \r\n let id: number = 0;\r\n return this.menu()?.items?.map(item => Object.assign(item, { id: ++id })) || [];\r\n });\r\n\r\n\r\n /** */\r\n protected override RunPage() {\r\n if (Tools.IsNotNull(this.pageFilters) && Tools.IsNotNull(this.pageFilters.menu)) { \r\n menuSelectedSIGNAL.set(this.pageFilters.menu); \r\n this.SetPageName(this.pageFilters.menu.label);\r\n } \r\n } \r\n\r\n\r\n /** */\r\n protected _isPage = (item: IMenu): boolean => Tools.IsNotOnlyWhiteSpace(item?.path) && Tools.IsNull(item?.items);\r\n\r\n\r\n /** */\r\n protected _getPath = (item: IMenu): string | null => (this._isPage(item) && item.path!.length > 0) ? item.path! : null; \r\n}","<!-- Title -->\r\n<coer-page-title\r\n title=\"Menu\"\r\n [breadcrumbs]=\"breadcrumbs\"\r\n [goBack]=\"goBack\"\r\n></coer-page-title>\r\n\r\n<div class=\"coer-menu flex-wrap mv-margin-ltr-15px margin-ltr-30px mv-gap-15px xs-gap-30px mv-padding-bottom-15px xs-padding-bottom-30px fade-in\">\r\n @for(item of _gridMenu(); track item.id) { \r\n @if(_isPage(item)) {\r\n <a [routerLink]=\"_getPath(item)\" class=\"mv-flex-basis-150px xs-flex-basis-200px flex-grow-1\">\r\n @if(IsNotOnlyWhiteSpace(item?.icon)) {\r\n <i [class]=\"item!.icon\"></i>\r\n }\r\n <span> {{ item.label }} </span>\r\n </a> \r\n }\r\n\r\n @else {\r\n <a [routerLink]=\"null\" class=\"mv-flex-basis-150px flex-basis-200px flex-grow-1 menu\">\r\n @if(IsNotOnlyWhiteSpace(item?.icon)) {\r\n <i [class]=\"item!.icon\"></i>\r\n }\r\n <span> {{ item.label }} </span>\r\n </a> \r\n }\r\n }\r\n</div>","import { Component, viewChild } from '@angular/core'; \r\nimport { CoerModal } from 'coer-elements/components';\r\nimport { Page } from 'coer-elements/tools'; \r\n\r\n\r\n@Component({\r\n selector: 'home-page',\r\n templateUrl: './home.component.html', \r\n styleUrl: './home.component.scss',\r\n standalone: false\r\n})\r\nexport class HomePage extends Page { \r\n \r\n protected modal = viewChild.required<CoerModal>('modal');\r\n \r\n constructor() { \r\n super('home'); \r\n }\r\n}\r\n","<!-- Title -->\r\n<coer-page-title\r\n title=\"Home\"\r\n [breadcrumbs]=\"breadcrumbs\"\r\n [goBack]=\"goBack\"\r\n></coer-page-title>\r\n\r\n<div class=\"coer-container\"> \r\n</div> \r\n\r\n<div class=\"position-absolute left-negative-0px mv-bottom-15px bottom-30px\">\r\n <coer-card\r\n name=\"Christian Omar Escamilla Rodriguez\"\r\n icon=\"icon-developer\"\r\n title=\"Ing. Desarrollador Software\"\r\n phone=\"8124216386\"\r\n email=\"coer0408@gmail.com\"\r\n ></coer-card> \r\n</div> ","import { Component, output, viewChild, WritableSignal } from '@angular/core'; \r\nimport { CoerTextBox } from 'coer-elements/components';\r\nimport { ILogIn } from 'coer-elements/interfaces';\r\nimport { isLoadingSIGNAL } from 'coer-elements/signals';\r\nimport { Tools } from 'coer-elements/tools';\r\ndeclare const appSettings: any;\r\n\r\n@Component({\r\n selector: 'login-page',\r\n templateUrl: './login.component.html', \r\n styleUrl: './login.component.scss',\r\n standalone: false\r\n})\r\nexport class LoginPage { \r\n\r\n //Elements\r\n protected readonly _inputUser = viewChild.required<CoerTextBox>('inputUser');\r\n protected readonly _inputPassword = viewChild.required<CoerTextBox>('inputPassword');\r\n protected readonly _inputRecovery = viewChild.required<CoerTextBox>('inputRecovery');\r\n\r\n //appSettings \r\n protected readonly _appName = Tools.AvoidNull<string>(appSettings?.appInfo?.name, 'string');\r\n\r\n //Signals\r\n protected _isLoading: WritableSignal<boolean> = isLoadingSIGNAL; \r\n\r\n //Variables\r\n protected _user: string = '';\r\n protected _password: string = ''; \r\n protected _remember: boolean = false;\r\n protected _show: 'LOGIN' | 'RECOVERY' = 'LOGIN';\r\n\r\n //Outputs \r\n public onLogin = output<ILogIn>();\r\n public onRecovery = output<string>();\r\n\r\n //Generic Tools\r\n protected IsNotOnlyWhiteSpace = Tools.IsNotOnlyWhiteSpace; \r\n\r\n //getter\r\n protected get _enableButton() {\r\n return Tools.IsNotOnlyWhiteSpace(this._user)\r\n && Tools.IsNotOnlyWhiteSpace(this._password)\r\n && this._password.length >= 6\r\n }\r\n\r\n //getter\r\n protected get _enableRecoveryButton() {\r\n return Tools.IsNotOnlyWhiteSpace(this._user) \r\n && this._user.length >= 6\r\n }\r\n\r\n \r\n /** */\r\n protected __Login() {\r\n this.onLogin.emit({ \r\n user: this._user, \r\n password: this._password \r\n }); \r\n }\r\n \r\n\r\n /** */\r\n public Show(view: 'LOGIN' | 'RECOVERY') {\r\n const user = this._user;\r\n const password = this._password;\r\n this._show = view; \r\n \r\n Tools.Sleep(150).then(_ => {\r\n this._user = user;\r\n this._password = password;\r\n \r\n if(view === 'RECOVERY') { \r\n this._inputRecovery().Focus();\r\n }\r\n \r\n else if (view === 'LOGIN') {\r\n if(this._user.length <= 0) {\r\n this.FocusUser(); \r\n }\r\n \r\n else {\r\n this.FocusPassword();\r\n }\r\n } \r\n });\r\n }\r\n\r\n\r\n /** */\r\n public FocusUser() {\r\n this._inputUser().Focus();\r\n }\r\n\r\n\r\n /** */\r\n public FocusPassword() { \r\n this._inputPassword().Focus(true);\r\n }\r\n\r\n\r\n /** */\r\n public SetUser(user: string): void {\r\n this._user = user; \r\n } \r\n}","<div class=\"width-100vw height-100vh flex-top-center\">\r\n <div class=\"login-container mv-padding-20px mv-margin-20px\">\r\n <!-- Title -->\r\n <div class=\"title\">\r\n {{ _appName }}\r\n </div>\r\n \r\n @if(_show === 'LOGIN') {\r\n <section>\r\n <!-- User -->\r\n <coer-textbox\r\n #inputUser\r\n label=\"User\"\r\n [(ngModel)]=\"_user\"\r\n [isLoading]=\"_isLoading()\" \r\n marginTop=\"35px\"\r\n marginBottom=\"35px\"\r\n [maxLength]=\"15\" \r\n (onKeyupEnter)=\"inputPassword.Focus(true)\"\r\n ></coer-textbox>\r\n \r\n <!-- Password -->\r\n <coer-secretbox\r\n #inputPassword\r\n label=\"Password\"\r\n [(ngModel)]=\"_password\"\r\n [isLoading]=\"_isLoading()\"\r\n marginBottom=\"35px\"\r\n [maxLength]=\"20\"\r\n (onKeyupEnter)=\"_enableButton ? loginButton.Click() : FocusPassword()\" \r\n ></coer-secretbox> \r\n \r\n <!-- Login -->\r\n <div class=\"text-center\">\r\n <coer-button\r\n #loginButton\r\n color=\"dark\" \r\n [isDisabled]=\"!_enableButton\"\r\n [isLoading]=\"_isLoading()\"\r\n (onClick)=\"__Login()\"\r\n > Login </coer-button>\r\n </div>\r\n </section>\r\n \r\n \r\n <!-- Recover password -->\r\n <div class=\"recover\" (click)=\"Show('RECOVERY')\">\r\n Recover password\r\n </div> \r\n } \r\n \r\n \r\n @if(_show === 'RECOVERY') {\r\n <section>\r\n <!-- Recovery -->\r\n <coer-textbox\r\n #inputRecovery\r\n label=\"User / Email\"\r\n [(ngModel)]=\"_user\"\r\n [isLoading]=\"_isLoading()\" \r\n marginTop=\"35px\"\r\n marginBottom=\"35px\"\r\n [maxLength]=\"50\"\r\n (onKeyupEnter)=\"recoveryPassword.Click()\"\r\n ></coer-textbox> \r\n \r\n \r\n <!-- -->\r\n <coer-textbox [isInvisible]=\"true\"></coer-textbox> \r\n \r\n \r\n <!-- Login -->\r\n <div class=\"text-center\">\r\n <coer-button \r\n #recoveryPassword\r\n color=\"dark\" \r\n [isDisabled]=\"!_enableRecoveryButton\"\r\n [isLoading]=\"_isLoading()\"\r\n marginTop=\"35px\"\r\n (onClick)=\"onRecovery.emit(_user)\"\r\n > Recovery </coer-button>\r\n </div>\r\n </section>\r\n \r\n <!-- Recover password -->\r\n <div class=\"back\" (click)=\"Show('LOGIN')\">\r\n Back\r\n </div>\r\n } \r\n </div>\r\n</div>","import { isLoadingSIGNAL, navigationSIGNAL, isMenuOpenSIGNAL, colorsSIGNAL } from 'coer-elements/signals';\r\nimport { AfterViewInit, Component, computed, effect, EffectRef, inject, input, OnDestroy, output, signal, viewChild, WritableSignal } from '@angular/core'; \r\nimport { IFile, ILogIn, IMenu, IOption, IMenuToolbar, IUserLogin } from 'coer-elements/interfaces';\r\nimport { CoerButton, CoerModal, CoerSidenav, CoerTextBox } from 'coer-elements/components';\r\nimport { CoerAlert, Dates, HTMLElements, Menu, Tools, User } from 'coer-elements/tools';\r\nimport { LoginPage } from './login/login.component';\r\nimport { JWTService } from 'coer-elements/services';\r\nimport moment from 'moment'; \r\ndeclare const appSettings: any;\r\n\r\n@Component({\r\n selector: 'coer-system',\r\n templateUrl: './coer-system.component.html', \r\n styleUrl: './coer-system.component.scss', \r\n standalone: false\r\n})\r\nexport class COERSystem implements AfterViewInit, OnDestroy { \r\n\r\n //Injection\r\n protected readonly _alert = inject(CoerAlert);\r\n protected readonly _jwtService = inject(JWTService); \r\n\r\n //appSettings \r\n protected readonly _appName = Tools.AvoidNull<string>(appSettings?.appInfo?.name, 'string');\r\n protected readonly _staticLogin = Tools.AvoidNull<boolean>(appSettings?.login?.static, 'boolean');\r\n\r\n //Elements\r\n protected readonly _sidenav = viewChild.required<CoerSidenav>('sidenav');\r\n protected readonly _loginPage = viewChild.required<LoginPage>('loginPage'); \r\n protected readonly _modalProfile = viewChild.required<CoerModal>('modalProfile');\r\n protected readonly _modalPassword = viewChild.required<CoerModal>('modalPassword');\r\n protected readonly _inputPassword = viewChild.required<CoerTextBox>('inputPassword');\r\n protected readonly _inputPasswordConfirm = viewChild.required<CoerTextBox>('inputPasswordConfirm');\r\n protected readonly _resetButton = viewChild.required<CoerButton>('resetButton');\r\n\r\n //Generic Tools\r\n protected IsNotNull = Tools.IsNotNull; \r\n protected IsNotOnlyWhiteSpace = Tools.IsNotOnlyWhiteSpace;\r\n\r\n //Variables \r\n protected readonly _effectNavigation!: EffectRef;\r\n protected readonly _effectUser!: EffectRef;\r\n protected readonly _effectUserRoles!: EffectRef;\r\n protected readonly _isLoading: WritableSignal<boolean> = isLoadingSIGNAL; \r\n protected readonly _userRoles = signal<IOption[]>([]); \r\n protected readonly _user = signal<IUserLogin | null>(null); \r\n protected readonly _userImageStatic = signal<string>(''); \r\n protected _startJWT$!: any; \r\n protected _watchJWT$!: any; \r\n protected _mainRole: IOption | null = null\r\n protected _nickname: string = '';\r\n protected _password: string = '';\r\n protected _passwordConfirm: string = '';\r\n \r\n //Inputs\r\n public userImage = input<string | null>(null); \r\n public toolbarMenu = input<IMenuToolbar[]>([]); \r\n public navigation = input<IMenu[]>([]);\r\n public user = input<IUserLogin | null>(null);\r\n public userRoles = input<string[]>([]); \r\n\r\n //Outputs \r\n public onLogin = output<ILogIn>();\r\n public onClickMenuOption = output<IMenuToolbar>();\r\n public onResetPassword = output<string>();\r\n public onRecoveryPassword = output<string>(); \r\n public onUpdateProfile = output<IUserLogin>();\r\n public onUploadUserImage = output<IFile>();\r\n public onDeleteUserImage = output<void>();\r\n public onUpdateJWT = output<void>();\r\n\r\n\r\n //Constructor\r\n constructor() { \r\n this._effectUser = effect(() => {\r\n if(this.user()) {\r\n this._user.set(this.user()); \r\n \r\n if (Tools.IsNotOnlyWhiteSpace(this._user()?.nickname)) {\r\n this._nickname = this._user()?.nickname!;\r\n } \r\n } \r\n });\r\n\r\n this._effectUserRoles = effect(() => {\r\n let id = 0; \r\n this._userRoles.set(this.userRoles().map(item => ({ id: ++id, option: item }))); \r\n this._mainRole = this._userRoles().find(x => x.option === this._user()?.role) || null; \r\n });\r\n\r\n this._effectNavigation = effect(() => {\r\n if(Tools.IsNotNull(this._user()) && this.navigation().length > 0) {\r\n navigationSIGNAL.set(this.navigation()); \r\n this.SetActiveLink();\r\n }\r\n });\r\n }\r\n\r\n\r\n //AfterViewInit\r\n ngAfterViewInit() {\r\n Tools.Sleep(10000).then(_ => { \r\n colorsSIGNAL.update(colors => ({\r\n fixedColors: { ...colors.fixedColors },\r\n actionColors: {\r\n primary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-primary' )),\r\n secondary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-secondary' )),\r\n success: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-success' )),\r\n warning: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-warning' )),\r\n danger: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-danger' )),\r\n navigation: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-navigation' )),\r\n information: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-information'))\r\n },\r\n appColors: {\r\n breadcrumbs: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-breadcrumbs' )),\r\n background: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-background' )),\r\n containers: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-containers' )),\r\n sidenav: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav' )),\r\n sidenavText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-text' )),\r\n sidenavActive: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-active')),\r\n toolbar: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar' )),\r\n toolbarText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar-text' ))\r\n }\r\n })); \r\n });\r\n\r\n }\r\n \r\n \r\n ngOnDestroy() {\r\n clearInterval(this._watchJWT$);\r\n clearInterval(this._startJWT$); \r\n this._effectNavigation?.destroy();\r\n this._effectUser?.destroy();\r\n this._effectUserRoles?.destroy(); \r\n }\r\n\r\n\r\n //getter\r\n protected get _enableButtonLogin() {\r\n return Tools.IsNotOnlyWhiteSpace(this._user())\r\n && Tools.IsNotOnlyWhiteSpace(this._password)\r\n && Tools.IsNotOnlyWhiteSpace(this._passwordConfirm)\r\n && this._password.length >= 5\r\n && this._passwordConfirm.length >= 5\r\n && !this._isLoading()\r\n && this._password === this._passwordConfirm\r\n }\r\n\r\n\r\n //getter\r\n protected get _profileTitle(): string {\r\n return Tools.IsNotOnlyWhiteSpace(this._user()?.fullName) \r\n ? this._user()?.fullName!\r\n : this._user()?.user!\r\n }\r\n\r\n\r\n //computed\r\n protected _userImage = computed<string>(() => { \r\n return this._staticLogin\r\n ? this._userImageStatic()\r\n : (this.IsNotOnlyWhiteSpace(this.userImage()) ? this.userImage()! : '') \r\n });\r\n\r\n\r\n //computed\r\n protected _toolbarMenu = computed<IMenuToolbar[]>(() => { \r\n let toolbarMenu = this.toolbarMenu();\r\n\r\n if(this._staticLogin) {\r\n const index = toolbarMenu.findIndex(x => x.label.toUpperCase() == 'RESET PASSWORD');\r\n if(index > -1) toolbarMenu.splice(index, 1);\r\n }\r\n\r\n return toolbarMenu.concat([{ label: 'Log Out', icon: 'fa-solid fa-door-open' }]);\r\n }); \r\n\r\n\r\n /** */\r\n protected async __SelectedOption(menu: IMenuToolbar) {\r\n this.onClickMenuOption.emit(menu);\r\n if (Tools.AvoidNull<boolean>(menu?.preventDefault, 'boolean')) return;\r\n const hasPath = Tools.IsNotOnlyWhiteSpace(menu?.path); \r\n\r\n switch(menu.label) {\r\n case 'Profile': {\r\n if(!hasPath) this._modalProfile().Open(); \r\n break;\r\n }\r\n\r\n case 'Reset Password': {\r\n if(!hasPath && !this._staticLogin) {\r\n this._modalPassword().Open();\r\n await Tools.Sleep(750);\r\n this.__Focus();\r\n }\r\n \r\n break;\r\n }\r\n\r\n case 'Log Out': {\r\n if(!hasPath) User.LogOut();\r\n break;\r\n } \r\n } \r\n } \r\n\r\n\r\n /** */\r\n public SetUser(user: string) {\r\n this._loginPage().SetUser(user);\r\n }\r\n\r\n\r\n /** */\r\n public FocusUser() {\r\n this._loginPage().FocusUser();\r\n }\r\n\r\n\r\n /** */\r\n public FocusPassword() {\r\n this._loginPage().FocusPassword();\r\n }\r\n\r\n\r\n /** */\r\n protected __Focus() { \r\n if(Tools.IsOnlyWhiteSpace(this._password)) {\r\n this._inputPassword().Focus();\r\n return;\r\n }\r\n\r\n if(Tools.IsOnlyWhiteSpace(this._passwordConfirm)) { \r\n this._inputPasswordConfirm().Focus();\r\n return;\r\n } \r\n \r\n if(this._enableButtonLogin) {\r\n this._resetButton().Focus();\r\n } \r\n }\r\n\r\n\r\n /** */\r\n protected __ResetPassword() { \r\n if(this._enableButtonLogin && !this._staticLogin) { \r\n this.onResetPassword.emit(this._password);\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public CloseModal() {\r\n this._modalPassword().Close(); \r\n this._modalProfile().Close();\r\n }\r\n\r\n\r\n /** */\r\n public Show(view: 'LOGIN' | 'RECOVERY') {\r\n this._loginPage().Show(view);\r\n }\r\n\r\n\r\n /** */\r\n public UpdateProfile() { \r\n if(!this._staticLogin) {\r\n \r\n const role = this._userRoles().length > 1 \r\n ? Tools.AvoidNull(this._mainRole?.option, 'string') \r\n : this._user()?.role;\r\n\r\n this.onUpdateProfile.emit({ \r\n userId: Tools.AvoidNull(this._user()?.userId, 'number'),\r\n user: Tools.AvoidNull(this._user()?.user, 'string'), \r\n userNumber: Tools.AvoidNull(this._user()?.userNumber, 'string'), \r\n role: role,\r\n fullName: Tools.AvoidNull(this._user()?.fullName, 'string'), \r\n nickname: Tools.AvoidNull(this._nickname, 'string'), \r\n email: Tools.AvoidNull(this._user()?.email, 'string'), \r\n roles: this._userRoles().map(item => item.option) \r\n });\r\n }\r\n }\r\n\r\n\r\n /** */\r\n protected __UploadImage(images: IFile[]) { \r\n if(images.length > 0) {\r\n const [image] = images; \r\n \r\n if(this._staticLogin) {\r\n this._userImageStatic.set(image.base64 || '');\r\n }\r\n\r\n else {\r\n this.onUploadUserImage.emit(image); \r\n }\r\n }\r\n }\r\n\r\n\r\n /** */\r\n protected __DeleteUserImage(): void { \r\n this._alert.Confirm(`Remove <b>User Image</b> ?`, 'warning', 'fa-solid fa-trash-can').then(response => {\r\n if(response) {\r\n if(this._staticLogin) {\r\n this._userImageStatic.set('');\r\n }\r\n\r\n else {\r\n this.onDeleteUserImage.emit();\r\n }\r\n }\r\n }); \r\n }\r\n\r\n\r\n /** */\r\n public OpenSideNav(): void { \r\n if(!isMenuOpenSIGNAL()) {\r\n this._sidenav().Toggle(); \r\n }\r\n }\r\n\r\n\r\n /** */\r\n public CloseSideNav(): void { \r\n if(isMenuOpenSIGNAL()) {\r\n this._sidenav().Toggle(); \r\n }\r\n }\r\n\r\n\r\n /** */ \r\n public StartJWT(validateEvery: number = 1000, diferenceToUpdate: number = 30): void { \r\n if(!this._staticLogin) {\r\n if(Tools.IsOnlyWhiteSpace(this._jwtService.jwt)) {\r\n this._alert.Warning('The JWT has not been provided');\r\n return;\r\n }\r\n\r\n this._WatchJWT();\r\n this.onUpdateJWT.emit();\r\n \r\n clearInterval(this._startJWT$);\r\n if(Tools.IsNotOnlyWhiteSpace(this._jwtService?.expirationDate)) {\r\n this._startJWT$ = setInterval(() => { \r\n const DIFERENCE = Math.abs(Dates.GetDiffNow(this._jwtService.expirationDate!, 'minutes')); \r\n \r\n if (DIFERENCE <= diferenceToUpdate) {\r\n this.onUpdateJWT.emit();\r\n }\r\n }, validateEvery); \r\n }\r\n } \r\n }\r\n\r\n\r\n /** */ \r\n protected _WatchJWT(): void { \r\n if (this._jwtService.isExpired) {\r\n User.LogOut();\r\n return;\r\n }\r\n\r\n clearInterval(this._watchJWT$);\r\n this._watchJWT$ = setInterval(() => { \r\n if (this._jwtService.isExpired) {\r\n clearInterval(this._watchJWT$);\r\n User.LogOut();\r\n } \r\n }, 1000); \r\n }\r\n\r\n\r\n /** */\r\n public UpdateJWT(jwt: string): void { \r\n if(this._staticLogin) return;\r\n this._jwtService.UpdateJWT(jwt);\r\n } \r\n\r\n\r\n /** */\r\n public StopJWT(): void {\r\n if(this._staticLogin) return;\r\n clearInterval(this._startJWT$); \r\n } \r\n\r\n\r\n /** */ \r\n public UseStaticLogin(): IUserLogin { \r\n User.Set({\r\n user: 'COERSystem', \r\n role: 'Development', \r\n fullName: 'COER System',\r\n email: 'coer.system@gmail.com',\r\n jwt: 'static'\r\n }); \r\n\r\n return User.Get() as IUserLogin;\r\n }\r\n\r\n\r\n /** */ \r\n public SetActiveLink(): void { \r\n Tools.Sleep().then(_ => { \r\n this._sidenav().SetActiveLink(Menu.GetSelectedOption() || {\r\n level: 1,\r\n label: \"Home\",\r\n path: \"/home\",\r\n icon: \"icon-house icon-fill\",\r\n queryParams: '',\r\n tree: [{ label: \"Home\", icon: \"icon-house icon-fill\", path: \"/home\" }]\r\n });\r\n });\r\n }\r\n}","@if(IsNotNull(_user())) {\r\n <coer-toolbar \r\n [user]=\"_user()\" \r\n [image]=\"userImage()\" \r\n [menu]=\"_toolbarMenu()\" \r\n (onClickMenu)=\"sidenav.Toggle()\" \r\n (onClickOption)=\"__SelectedOption($event)\"\r\n ></coer-toolbar>\r\n \r\n <coer-sidenav #sidenav> \r\n <div class=\"toolbar-shadow\"></div>\r\n \r\n <section> \r\n <ng-content></ng-content>\r\n </section> \r\n </coer-sidenav>\r\n\r\n <!-- Modal Profile --> \r\n <coer-modal #modalProfile [title]=\"_profileTitle\" icon=\"icon-user icon-fill\" width=\"auto\"> \r\n <section class=\"text-align-center\">\r\n <coer-filebox\r\n type=\"image\"\r\n [image]=\"{ \r\n value: _userImage(), \r\n name: _profileTitle,\r\n maxWidth: '150px', \r\n maxHeight: '150px', \r\n marginBottom: '15px',\r\n allowExpand: false \r\n }\"\r\n [isLoading]=\"_isLoading()\"\r\n (onSelected)=\"__UploadImage($event)\"\r\n (onDeleteImage)=\"__DeleteUserImage()\"\r\n ></coer-filebox>\r\n </section>\r\n\r\n <section class=\"flex-wrap coer-system-profile max-width-550px\">\r\n <!-- User --> \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"User\"\r\n [value]=\"_user()?.user\"\r\n [isReadonly]=\"true\" \r\n ></coer-textbox>\r\n </div>\r\n\r\n <!-- User Number -->\r\n @if(IsNotOnlyWhiteSpace(_user()?.userNumber)) { \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Number\"\r\n [value]=\"_user()?.userNumber\"\r\n [isReadonly]=\"true\" \r\n ></coer-textbox>\r\n </div>\r\n }\r\n\r\n <!-- Email -->\r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Email\"\r\n [value]=\"_user()?.email\"\r\n [isReadonly]=\"true\" \r\n ></coer-textbox> \r\n </div>\r\n\r\n <!-- Nickame --> \r\n @if(IsNotNull(_user()?.nickname)) { \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Nickame\"\r\n [(ngModel)]=\"_nickname\" \r\n [isLoading]=\"_isLoading()\" \r\n ></coer-textbox> \r\n </div>\r\n } \r\n\r\n @if(IsNotNull(_user()?.roles) && (_user()?.roles!.length > 1)) {\r\n <!-- Role --> \r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-selectbox\r\n label=\"Role\"\r\n [(ngModel)]=\"_mainRole\"\r\n displayProperty=\"option\"\r\n [dataSource]=\"_userRoles()\"\r\n [isLoading]=\"_isLoading()\" \r\n ></coer-selectbox>\r\n </div>\r\n }\r\n\r\n @else {\r\n <div class=\"mv-flex-basis-100 xs-flex-basis-45 flex-grow-1\">\r\n <coer-textbox\r\n label=\"Role\"\r\n [value]=\"_user()?.role!\" \r\n [isReadonly]=\"true\" \r\n ></coer-textbox> \r\n </div>\r\n }\r\n </section> \r\n \r\n @if(!_staticLogin) {\r\n <ng-template coerRef=\"footer\">\r\n <coer-button\r\n #buttonSave\r\n color=\"dark\"\r\n icon=\"save\"\r\n [isLoading]=\"_isLoading()\"\r\n (onClick)=\"UpdateProfile()\"\r\n > Update </coer-button>\r\n </ng-template>\r\n } \r\n </coer-modal> \r\n\r\n <!-- Modal Password -->\r\n <coer-modal #modalPassword title=\"Reset Password\" icon=\"fa-solid fa-lock\" (onClose)=\"_password = ''; _passwordConfirm = '';\">\r\n <coer-secretbox\r\n #inputPassword\r\n label=\"New Password\"\r\n [(ngModel)]=\"_password\"\r\n [isLoading]=\"_isLoading()\" \r\n [maxLength]=\"20\"\r\n marginBottom=\"15px\"\r\n (onKeyupEnter)=\"__Focus()\"\r\n ></coer-secretbox>\r\n\r\n <coer-secretbox\r\n #inputPasswordConfirm\r\n label=\"Confirm Password\"\r\n [(ngModel)]=\"_passwordConfirm\"\r\n [isLoading]=\"_isLoading()\" \r\n [maxLength]=\"20\"\r\n (onKeyupEnter)=\"__Focus()\"\r\n ></coer-secretbox>\r\n\r\n <ng-template coerRef=\"footer\">\r\n <!-- Reset Button -->\r\n <coer-button\r\n #resetButton\r\n color=\"dark\" \r\n [isDisabled]=\"!_enableButtonLogin\"\r\n [isLoading]=\"_isLoading()\" \r\n (onClick)=\"__ResetPassword()\"\r\n > Reset </coer-button>\r\n </ng-template>\r\n </coer-modal>\r\n}\r\n\r\n@else {\r\n <login-page \r\n #loginPage \r\n (onLogin)=\"onLogin.emit($event)\"\r\n (onRecovery)=\"onRecoveryPassword.emit($event)\"\r\n ></login-page>\r\n} \r\n\r\n<coer-alert></coer-alert> \r\n\r\n<div class=\"d-none\">\r\n <span id=\"coer-system-actionColors-primary\"></span>\r\n <span id=\"coer-system-actionColors-secondary\"></span>\r\n <span id=\"coer-system-actionColors-success\"></span>\r\n <span id=\"coer-system-actionColors-warning\"></span>\r\n <span id=\"coer-system-actionColors-danger\"></span>\r\n <span id=\"coer-system-actionColors-navigation\"></span>\r\n <span id=\"coer-system-actionColors-information\"></span>\r\n <span id=\"coer-system-appColors-breadcrumbs\"></span>\r\n <span id=\"coer-system-appColors-background\"></span> \r\n <span id=\"coer-system-appColors-containers\"></span>\r\n <span id=\"coer-system-appColors-sidenav\"></span> \r\n <span id=\"coer-system-appColors-sidenav-text\"></span>\r\n <span id=\"coer-system-appColors-sidenav-active\"></span>\r\n <span id=\"coer-system-appColors-toolbar\"></span> \r\n <span id=\"coer-system-appColors-toolbar-text\"></span> \r\n</div>","import { NgModule } from '@angular/core'; \r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n//Pages \r\nimport { CoerMenuPage } from './coer-menu/coer-menu.component';\r\nimport { ComponentsModule } from 'coer-elements/components';\r\nimport { DirectivesModule } from 'coer-elements/directives';\r\nimport { HomePage } from './home/home.component';\r\nimport { COERSystem } from './coer-system/coer-system.component';\r\nimport { LoginPage } from './coer-system/login/login.component';\r\nimport { CoerAlert } from 'coer-elements/tools';\r\n\r\nexport const ROUTES: any = [ \r\n { path: 'menu', component: CoerMenuPage, data: { Page: 'COER' }},\r\n { path: 'home', component: HomePage, data: { Page: 'COER' }},\r\n { path: '**', redirectTo: '/home' } \r\n];\r\n\r\n@NgModule({ \r\n imports: [\r\n CommonModule, \r\n RouterModule, \r\n FormsModule, \r\n ComponentsModule, \r\n DirectivesModule,\r\n CoerAlert\r\n ],\r\n declarations: [\r\n COERSystem,\r\n LoginPage,\r\n CoerMenuPage,\r\n HomePage,\r\n ],\r\n exports: [ \r\n COERSystem, \r\n CoerMenuPage,\r\n HomePage,\r\n ]\r\n})\r\nexport class PagesModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5.LoginPage"],"mappings":"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"}
@@ -27,7 +27,7 @@ class JWTService {
27
27
  get expirationDate() {
28
28
  try {
29
29
  return Tools.IsNotOnlyWhiteSpace(this.jwt) && Tools.IsNotNull(this.jwtService.getTokenExpirationDate(this.jwt))
30
- ? Dates.GetFormatDB(this.jwtService.getTokenExpirationDate(this.jwt))
30
+ ? Dates.ToFormatDB(this.jwtService.getTokenExpirationDate(this.jwt))
31
31
  : null;
32
32
  }
33
33
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"coer-elements-services.mjs","sources":["../../../projects/coer-elements/services/lib/jwt.service.ts","../../../projects/coer-elements/services/lib/services.module.ts","../../../projects/coer-elements/services/coer-elements-services.ts"],"sourcesContent":["import { inject, Injectable, ModuleWithProviders } from '@angular/core';\r\nimport { JwtHelperService, JwtModule } from '@auth0/angular-jwt';\r\nimport { Dates, Tools, User } from 'coer-elements/tools'; \r\n\r\nfunction TOKEN(): string { \r\n return User.Get()?.jwt || '';\r\n}\r\n\r\nexport function JWTModule(allowedDomains?: (string | RegExp)[] | undefined, disallowedRoutes?: (string | RegExp)[] | undefined): ModuleWithProviders<JwtModule> { \r\n return JwtModule.forRoot({\r\n config: { \r\n tokenGetter: TOKEN,\r\n allowedDomains,\r\n disallowedRoutes\r\n }\r\n });\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JWTService {\r\n\r\n private readonly jwtService = inject(JwtHelperService); \r\n\r\n \r\n /** */\r\n public get jwt(): string { \r\n return User.Get()?.jwt || '';\r\n }\r\n\r\n \r\n /** */\r\n public get expirationDate(): string | null { \r\n try {\r\n return Tools.IsNotOnlyWhiteSpace(this.jwt) && Tools.IsNotNull(this.jwtService.getTokenExpirationDate(this.jwt))\r\n ? Dates.GetFormatDB(this.jwtService.getTokenExpirationDate(this.jwt)!)\r\n : null\r\n } \r\n\r\n catch { \r\n return null;\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public get isExpired(): boolean { \r\n try { \r\n return Tools.IsNotOnlyWhiteSpace(this.jwt)\r\n ? this.jwtService.isTokenExpired(this.jwt)\r\n : true;\r\n }\r\n\r\n catch (message) {\r\n console.error(message);\r\n return true;\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public get claims(): any { \r\n try { \r\n return this.jwtService.decodeToken();\r\n }\r\n\r\n catch { \r\n return {};\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public get isValid(): boolean{ \r\n try { \r\n return !this.isExpired && Tools.GetPropertyList(this.claims).map(item => item.toLowerCase()).includes('user');\r\n }\r\n\r\n catch { \r\n return false;\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public UpdateJWT(jwt: string): void { \r\n let user = User.Get();\r\n\r\n if (user) {\r\n user = Object.assign(user, { jwt });\r\n User.Set(user);\r\n } \r\n } \r\n} ","import { NgModule } from '@angular/core'; \r\n\r\n//Services\r\nimport { JWTService } from './jwt.service';\r\n\r\n@NgModule({ \r\n providers: [ \r\n JWTService \r\n ]\r\n})\r\nexport class ServicesModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coer-elements-services.mjs","sources":["../../../projects/coer-elements/services/lib/jwt.service.ts","../../../projects/coer-elements/services/lib/services.module.ts","../../../projects/coer-elements/services/coer-elements-services.ts"],"sourcesContent":["import { inject, Injectable, ModuleWithProviders } from '@angular/core';\r\nimport { JwtHelperService, JwtModule } from '@auth0/angular-jwt';\r\nimport { Dates, Tools, User } from 'coer-elements/tools'; \r\n\r\nfunction TOKEN(): string { \r\n return User.Get()?.jwt || '';\r\n}\r\n\r\nexport function JWTModule(allowedDomains?: (string | RegExp)[] | undefined, disallowedRoutes?: (string | RegExp)[] | undefined): ModuleWithProviders<JwtModule> { \r\n return JwtModule.forRoot({\r\n config: { \r\n tokenGetter: TOKEN,\r\n allowedDomains,\r\n disallowedRoutes\r\n }\r\n });\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JWTService {\r\n\r\n private readonly jwtService = inject(JwtHelperService); \r\n\r\n \r\n /** */\r\n public get jwt(): string { \r\n return User.Get()?.jwt || '';\r\n }\r\n\r\n \r\n /** */\r\n public get expirationDate(): string | null { \r\n try {\r\n return Tools.IsNotOnlyWhiteSpace(this.jwt) && Tools.IsNotNull(this.jwtService.getTokenExpirationDate(this.jwt))\r\n ? Dates.ToFormatDB(this.jwtService.getTokenExpirationDate(this.jwt)!)\r\n : null\r\n } \r\n\r\n catch { \r\n return null;\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public get isExpired(): boolean { \r\n try { \r\n return Tools.IsNotOnlyWhiteSpace(this.jwt)\r\n ? this.jwtService.isTokenExpired(this.jwt)\r\n : true;\r\n }\r\n\r\n catch (message) {\r\n console.error(message);\r\n return true;\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public get claims(): any { \r\n try { \r\n return this.jwtService.decodeToken();\r\n }\r\n\r\n catch { \r\n return {};\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public get isValid(): boolean{ \r\n try { \r\n return !this.isExpired && Tools.GetPropertyList(this.claims).map(item => item.toLowerCase()).includes('user');\r\n }\r\n\r\n catch { \r\n return false;\r\n } \r\n }\r\n\r\n\r\n /** */\r\n public UpdateJWT(jwt: string): void { \r\n let user = User.Get();\r\n\r\n if (user) {\r\n user = Object.assign(user, { jwt });\r\n User.Set(user);\r\n } \r\n } \r\n} ","import { NgModule } from '@angular/core'; \r\n\r\n//Services\r\nimport { JWTService } from './jwt.service';\r\n\r\n@NgModule({ \r\n providers: [ \r\n JWTService \r\n ]\r\n})\r\nexport class ServicesModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}