coer-elements 2.0.33 → 2.0.35

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,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { computed, effect, Component, viewChild, output, inject, signal, input, Input, NgModule } from '@angular/core';
2
+ import { computed, effect, Component, viewChild, output, inject, signal, input, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i1$1 from '@angular/forms';
5
5
  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, Menu, HTMLElements, User } from 'coer-elements/tools';
9
+ import { Page, Tools, CoerAlert, HTMLElements, User, 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';
@@ -143,6 +143,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
143
143
  }] });
144
144
 
145
145
  class COERSystem {
146
+ //Constructor
146
147
  constructor() {
147
148
  //Injection
148
149
  this._alert = inject(CoerAlert);
@@ -158,17 +159,23 @@ class COERSystem {
158
159
  this._inputPassword = viewChild.required('inputPassword');
159
160
  this._inputPasswordConfirm = viewChild.required('inputPasswordConfirm');
160
161
  this._resetButton = viewChild.required('resetButton');
162
+ //Generic Tools
163
+ this.IsNotNull = Tools.IsNotNull;
164
+ this.IsNotOnlyWhiteSpace = Tools.IsNotOnlyWhiteSpace;
161
165
  this._isLoading = isLoadingSIGNAL;
166
+ this._userRoles = signal([]);
167
+ this._user = signal(null);
168
+ this._userImageStatic = signal('');
162
169
  this._mainRole = null;
163
170
  this._nickname = '';
164
171
  this._password = '';
165
172
  this._passwordConfirm = '';
166
- this._userRoles = signal([]);
167
- this._user = signal(null);
168
- this._userImageStatic = '';
169
173
  //Inputs
170
174
  this.userImage = input(null);
171
175
  this.toolbarMenu = input([]);
176
+ this.navigation = input([]);
177
+ this.user = input(null);
178
+ this.userRoles = input([]);
172
179
  //Outputs
173
180
  this.onLogin = output();
174
181
  this.onClickMenuOption = output();
@@ -178,9 +185,12 @@ class COERSystem {
178
185
  this.onUploadUserImage = output();
179
186
  this.onDeleteUserImage = output();
180
187
  this.onUpdateJWT = output();
181
- //Generic Tools
182
- this.IsNotNull = Tools.IsNotNull;
183
- this.IsNotOnlyWhiteSpace = Tools.IsNotOnlyWhiteSpace;
188
+ //computed
189
+ this._userImage = computed(() => {
190
+ return this._staticLogin
191
+ ? this._userImageStatic()
192
+ : (this.IsNotOnlyWhiteSpace(this.userImage()) ? this.userImage() : '');
193
+ });
184
194
  //computed
185
195
  this._toolbarMenu = computed(() => {
186
196
  let toolbarMenu = this.toolbarMenu();
@@ -191,64 +201,59 @@ class COERSystem {
191
201
  }
192
202
  return toolbarMenu.concat([{ label: 'Log Out', icon: 'fa-solid fa-door-open' }]);
193
203
  });
194
- }
195
- set user(value) {
196
- if (Tools.IsNotNull(value)) {
197
- this._user.set(value);
198
- Tools.Sleep(1000, 'coerSystemGetUser').then(() => {
204
+ this._effectUser = effect(() => {
205
+ if (this.user()) {
206
+ this._user.set(this.user());
199
207
  if (Tools.IsNotOnlyWhiteSpace(this._user()?.nickname)) {
200
208
  this._nickname = this._user()?.nickname;
201
209
  }
202
- });
203
- }
204
- }
205
- set userRoles(value) {
206
- if (Tools.IsNotNull(value)) {
210
+ }
211
+ });
212
+ this._effectUserRoles = effect(() => {
207
213
  let id = 0;
208
- this._userRoles.set(value.map(item => Object.assign({ id: ++id, option: item })));
209
- Tools.Sleep(1000, 'coerSystemGetUserRoles').then(() => {
210
- this._mainRole = this._userRoles().find(x => x.option === this._user()?.role) || null;
211
- });
212
- }
214
+ this._userRoles.set(this.userRoles().map(item => ({ id: ++id, option: item })));
215
+ this._mainRole = this._userRoles().find(x => x.option === this._user()?.role) || null;
216
+ });
217
+ this._effectNavigation = effect(() => {
218
+ if (Tools.IsNotNull(this._user()) && this.navigation().length > 0) {
219
+ navigationSIGNAL.set(this.navigation());
220
+ this.SetActiveLink();
221
+ }
222
+ });
213
223
  }
214
- set navigation(value) {
215
- if (Tools.IsNotNull(value)) {
216
- navigationSIGNAL.set(value);
217
- Tools.Sleep(1000, 'coerSystemGetUserNavigation').then(() => {
218
- if (Tools.IsNotNull(this._user())) {
219
- this._sidenav().SetActiveLink(Menu.GetSelectedOption());
224
+ //AfterViewInit
225
+ ngAfterViewInit() {
226
+ Tools.Sleep().then(_ => {
227
+ colorsSIGNAL.update(colors => ({
228
+ fixedColors: { ...colors.fixedColors },
229
+ actionColors: {
230
+ primary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-primary')),
231
+ secondary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-secondary')),
232
+ success: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-success')),
233
+ warning: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-warning')),
234
+ danger: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-danger')),
235
+ navigation: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-navigation')),
236
+ information: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-information'))
237
+ },
238
+ appColors: {
239
+ breadcrumbs: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-breadcrumbs')),
240
+ background: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-background')),
241
+ containers: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-containers')),
242
+ sidenav: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav')),
243
+ sidenavText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-text')),
244
+ sidenavActive: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-active')),
245
+ toolbar: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar')),
246
+ toolbarText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar-text'))
220
247
  }
221
- });
222
- }
223
- }
224
- async ngAfterContentInit() {
225
- await Tools.Sleep();
226
- colorsSIGNAL.update(colors => ({
227
- fixedColors: { ...colors.fixedColors },
228
- actionColors: {
229
- primary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-primary')),
230
- secondary: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-secondary')),
231
- success: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-success')),
232
- warning: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-warning')),
233
- danger: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-danger')),
234
- navigation: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-navigation')),
235
- information: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-actionColors-information'))
236
- },
237
- appColors: {
238
- breadcrumbs: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-breadcrumbs')),
239
- background: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-background')),
240
- containers: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-containers')),
241
- sidenav: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav')),
242
- sidenavText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-text')),
243
- sidenavActive: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-sidenav-active')),
244
- toolbar: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar')),
245
- toolbarText: HTMLElements.GetElementColor(HTMLElements.GetElement('#coer-system-appColors-toolbar-text'))
246
- }
247
- }));
248
+ }));
249
+ });
248
250
  }
249
251
  ngOnDestroy() {
250
252
  clearInterval(this._watchJWT$);
251
253
  clearInterval(this._startJWT$);
254
+ this._effectNavigation?.destroy();
255
+ this._effectUser?.destroy();
256
+ this._effectUserRoles?.destroy();
252
257
  }
253
258
  //getter
254
259
  get _enableButtonLogin() {
@@ -266,12 +271,6 @@ class COERSystem {
266
271
  ? this._user()?.fullName
267
272
  : this._user()?.user;
268
273
  }
269
- //getter
270
- get _userImage() {
271
- return this._staticLogin
272
- ? this._userImageStatic
273
- : (this.IsNotOnlyWhiteSpace(this.userImage()) ? this.userImage() : '');
274
- }
275
274
  /** */
276
275
  async __SelectedOption(menu) {
277
276
  this.onClickMenuOption.emit(menu);
@@ -363,7 +362,7 @@ class COERSystem {
363
362
  if (images.length > 0) {
364
363
  const [image] = images;
365
364
  if (this._staticLogin) {
366
- this._userImageStatic = image.base64 || '';
365
+ this._userImageStatic.set(image.base64 || '');
367
366
  }
368
367
  else {
369
368
  this.onUploadUserImage.emit(image);
@@ -375,7 +374,7 @@ class COERSystem {
375
374
  this._alert.Confirm(`Remove <b>User Image</b> ?`, 'warning', 'fa-solid fa-trash-can').then(response => {
376
375
  if (response) {
377
376
  if (this._staticLogin) {
378
- this._userImageStatic = '';
377
+ this._userImageStatic.set('');
379
378
  }
380
379
  else {
381
380
  this.onDeleteUserImage.emit();
@@ -450,19 +449,17 @@ class COERSystem {
450
449
  });
451
450
  return User.Get();
452
451
  }
452
+ /** */
453
+ SetActiveLink() {
454
+ Tools.Sleep().then(_ => this._sidenav().SetActiveLink(Menu.GetSelectedOption()));
455
+ }
453
456
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: COERSystem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
454
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: COERSystem, isStandalone: false, selector: "coer-system", inputs: { userImage: { classPropertyName: "userImage", publicName: "userImage", isSignal: true, isRequired: false, transformFunction: null }, toolbarMenu: { classPropertyName: "toolbarMenu", publicName: "toolbarMenu", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: false, isRequired: false, transformFunction: null }, userRoles: { classPropertyName: "userRoles", publicName: "userRoles", isSignal: false, isRequired: false, transformFunction: null }, navigation: { classPropertyName: "navigation", publicName: "navigation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onLogin: "onLogin", onClickMenuOption: "onClickMenuOption", onResetPassword: "onResetPassword", onRecoveryPassword: "onRecoveryPassword", onUpdateProfile: "onUpdateProfile", onUploadUserImage: "onUploadUserImage", onDeleteUserImage: "onDeleteUserImage", onUpdateJWT: "onUpdateJWT" }, viewQueries: [{ propertyName: "_sidenav", first: true, predicate: ["sidenav"], descendants: true, isSignal: true }, { propertyName: "_loginPage", first: true, predicate: ["loginPage"], descendants: true, isSignal: true }, { propertyName: "_modalProfile", first: true, predicate: ["modalProfile"], descendants: true, isSignal: true }, { propertyName: "_modalPassword", first: true, predicate: ["modalPassword"], descendants: true, isSignal: true }, { propertyName: "_inputPassword", first: true, predicate: ["inputPassword"], descendants: true, isSignal: true }, { propertyName: "_inputPasswordConfirm", first: true, predicate: ["inputPasswordConfirm"], descendants: true, isSignal: true }, { propertyName: "_resetButton", first: true, predicate: ["resetButton"], descendants: true, isSignal: true }], ngImport: i0, template: "@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 <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 <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\r\n <section class=\"flex-wrap coer-system-profile max-width-550px\">\r\n <!-- User --> \r\n <div class=\"mv-flex-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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(IsNotOnlyWhiteSpace(_user()?.nickname)) { \r\n <div class=\"mv-flex-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\r\n <coer-selectbox\r\n label=\"Role\"\r\n [(ngModel)]=\"_mainRole\"\r\n propDisplay=\"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-item-grow-100 flex-item-grow-45\">\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>", styles: ["section.row.coer-system-profile{max-width:600px}span#coer-system-actionColors-primary{color:var(--primary-inner)}span#coer-system-actionColors-secondary{color:var(--secondary-inner)}span#coer-system-actionColors-success{color:var(--success-inner)}span#coer-system-actionColors-warning{color:var(--warning-inner)}span#coer-system-actionColors-danger{color:var(--danger-inner)}span#coer-system-actionColors-navigation{color:var(--navigation-inner)}span#coer-system-actionColors-information{color:var(--information-inner)}span#coer-system-appColors-breadcrumbs{color:var(--breadcrumbs-inner)}span#coer-system-appColors-background{color:var(--background-inner)}span#coer-system-appColors-containers{color:var(--containers-inner)}span#coer-system-appColors-sidenav{color:var(--sidenav-inner)}span#coer-system-appColors-sidenav-text{color:var(--sidenav-text-inner)}span#coer-system-appColors-sidenav-active{color:var(--sidenav-active-inner)}span#coer-system-appColors-toolbar{color:var(--toolbar-inner)}span#coer-system-appColors-toolbar-text{color:var(--toolbar-text-inner)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.CoerButton, selector: "coer-button", inputs: ["id", "color", "type", "icon", "iconPosition", "path", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "height", "minHeight", "marginTop", "marginRight", "marginBottom", "marginLeft", "tooltip", "tooltipPosition"], outputs: ["onClick"] }, { kind: "component", type: i2.CoerFilebox, selector: "coer-filebox", inputs: ["type", "image", "multiple", "isLoading", "isDisabled", "isReadonly", "isInvisible"], outputs: ["onSelected", "onDeleteImage"] }, { kind: "component", type: i2.CoerModal, selector: "coer-modal", inputs: ["id", "title", "icon", "showCloseButton", "width", "height", "maxHeight"], outputs: ["onOpen", "onClose"] }, { kind: "component", type: i2.CoerSecretBox, selector: "coer-secretbox", inputs: ["id", "value", "label", "placeholder", "textPosition", "minLength", "maxLength", "isInvalid", "isValid", "showSecret", "selectOnFocus", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft"], outputs: ["onKeyupEnter", "onInput", "onClickClear", "onClickExternalButton"] }, { kind: "component", type: i2.CoerSidenav, selector: "coer-sidenav", outputs: ["onMenuSelected"] }, { kind: "component", type: i2.CoerSelectbox, selector: "coer-selectbox", inputs: ["id", "value", "label", "placeholder", "isInvalid", "isValid", "dataSource", "displayProperty", "rowsByPage", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft"], outputs: ["onSelected", "onUnselect"] }, { kind: "component", type: i2.CoerTextBox, selector: "coer-textbox", inputs: ["id", "value", "label", "placeholder", "textPosition", "minLength", "maxLength", "isInvalid", "isValid", "externalButton", "selectOnFocus", "showClearIcon", "showSearchIcon", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft"], outputs: ["onKeyupEnter", "onInput", "onClickClear", "onClickSearch", "onClickExternalButton"] }, { kind: "component", type: i2.CoerToolbar, selector: "coer-toolbar", inputs: ["user", "image", "menu"], outputs: ["onClickMenu", "onClickOption"] }, { kind: "directive", type: i3.CoerRefDirective, selector: "[coerRef]", inputs: ["coerRef", "title", "icon", "isDisabled", "show", "tooltip"] }, { kind: "component", type: i4.CoerAlert, selector: "coer-alert" }, { kind: "component", type: LoginPage, selector: "login-page", outputs: ["onLogin", "onRecovery"] }] }); }
457
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: COERSystem, isStandalone: false, selector: "coer-system", inputs: { userImage: { classPropertyName: "userImage", publicName: "userImage", isSignal: true, isRequired: false, transformFunction: null }, toolbarMenu: { classPropertyName: "toolbarMenu", publicName: "toolbarMenu", isSignal: true, isRequired: false, transformFunction: null }, navigation: { classPropertyName: "navigation", publicName: "navigation", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, userRoles: { classPropertyName: "userRoles", publicName: "userRoles", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onLogin: "onLogin", onClickMenuOption: "onClickMenuOption", onResetPassword: "onResetPassword", onRecoveryPassword: "onRecoveryPassword", onUpdateProfile: "onUpdateProfile", onUploadUserImage: "onUploadUserImage", onDeleteUserImage: "onDeleteUserImage", onUpdateJWT: "onUpdateJWT" }, viewQueries: [{ propertyName: "_sidenav", first: true, predicate: ["sidenav"], descendants: true, isSignal: true }, { propertyName: "_loginPage", first: true, predicate: ["loginPage"], descendants: true, isSignal: true }, { propertyName: "_modalProfile", first: true, predicate: ["modalProfile"], descendants: true, isSignal: true }, { propertyName: "_modalPassword", first: true, predicate: ["modalPassword"], descendants: true, isSignal: true }, { propertyName: "_inputPassword", first: true, predicate: ["inputPassword"], descendants: true, isSignal: true }, { propertyName: "_inputPasswordConfirm", first: true, predicate: ["inputPasswordConfirm"], descendants: true, isSignal: true }, { propertyName: "_resetButton", first: true, predicate: ["resetButton"], descendants: true, isSignal: true }], ngImport: i0, template: "@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 <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 <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\r\n <section class=\"flex-wrap coer-system-profile max-width-550px\">\r\n <!-- User --> \r\n <div class=\"mv-flex-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\r\n <coer-selectbox\r\n label=\"Role\"\r\n [(ngModel)]=\"_mainRole\"\r\n propDisplay=\"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-item-grow-100 flex-item-grow-45\">\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>", styles: ["section.row.coer-system-profile{max-width:600px}span#coer-system-actionColors-primary{color:var(--primary-inner)}span#coer-system-actionColors-secondary{color:var(--secondary-inner)}span#coer-system-actionColors-success{color:var(--success-inner)}span#coer-system-actionColors-warning{color:var(--warning-inner)}span#coer-system-actionColors-danger{color:var(--danger-inner)}span#coer-system-actionColors-navigation{color:var(--navigation-inner)}span#coer-system-actionColors-information{color:var(--information-inner)}span#coer-system-appColors-breadcrumbs{color:var(--breadcrumbs-inner)}span#coer-system-appColors-background{color:var(--background-inner)}span#coer-system-appColors-containers{color:var(--containers-inner)}span#coer-system-appColors-sidenav{color:var(--sidenav-inner)}span#coer-system-appColors-sidenav-text{color:var(--sidenav-text-inner)}span#coer-system-appColors-sidenav-active{color:var(--sidenav-active-inner)}span#coer-system-appColors-toolbar{color:var(--toolbar-inner)}span#coer-system-appColors-toolbar-text{color:var(--toolbar-text-inner)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.CoerButton, selector: "coer-button", inputs: ["id", "color", "type", "icon", "iconPosition", "path", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "height", "minHeight", "marginTop", "marginRight", "marginBottom", "marginLeft", "tooltip", "tooltipPosition"], outputs: ["onClick"] }, { kind: "component", type: i2.CoerFilebox, selector: "coer-filebox", inputs: ["type", "image", "multiple", "isLoading", "isDisabled", "isReadonly", "isInvisible"], outputs: ["onSelected", "onDeleteImage"] }, { kind: "component", type: i2.CoerModal, selector: "coer-modal", inputs: ["id", "title", "icon", "showCloseButton", "width", "height", "maxHeight"], outputs: ["onOpen", "onClose"] }, { kind: "component", type: i2.CoerSecretBox, selector: "coer-secretbox", inputs: ["id", "value", "label", "placeholder", "textPosition", "minLength", "maxLength", "isInvalid", "isValid", "showSecret", "selectOnFocus", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft"], outputs: ["onKeyupEnter", "onInput", "onClickClear", "onClickExternalButton"] }, { kind: "component", type: i2.CoerSidenav, selector: "coer-sidenav", outputs: ["onMenuSelected"] }, { kind: "component", type: i2.CoerSelectbox, selector: "coer-selectbox", inputs: ["id", "value", "label", "placeholder", "isInvalid", "isValid", "dataSource", "displayProperty", "rowsByPage", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft"], outputs: ["onSelected", "onUnselect"] }, { kind: "component", type: i2.CoerTextBox, selector: "coer-textbox", inputs: ["id", "value", "label", "placeholder", "textPosition", "minLength", "maxLength", "isInvalid", "isValid", "externalButton", "selectOnFocus", "showClearIcon", "showSearchIcon", "isLoading", "isDisabled", "isReadonly", "isInvisible", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft"], outputs: ["onKeyupEnter", "onInput", "onClickClear", "onClickSearch", "onClickExternalButton"] }, { kind: "component", type: i2.CoerToolbar, selector: "coer-toolbar", inputs: ["user", "image", "menu"], outputs: ["onClickMenu", "onClickOption"] }, { kind: "directive", type: i3.CoerRefDirective, selector: "[coerRef]", inputs: ["coerRef", "title", "icon", "isDisabled", "show", "tooltip"] }, { kind: "component", type: i4.CoerAlert, selector: "coer-alert" }, { kind: "component", type: LoginPage, selector: "login-page", outputs: ["onLogin", "onRecovery"] }] }); }
455
458
  }
456
459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: COERSystem, decorators: [{
457
460
  type: Component,
458
- args: [{ selector: 'coer-system', standalone: false, template: "@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 <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 <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\r\n <section class=\"flex-wrap coer-system-profile max-width-550px\">\r\n <!-- User --> \r\n <div class=\"mv-flex-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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(IsNotOnlyWhiteSpace(_user()?.nickname)) { \r\n <div class=\"mv-flex-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\r\n <coer-selectbox\r\n label=\"Role\"\r\n [(ngModel)]=\"_mainRole\"\r\n propDisplay=\"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-item-grow-100 flex-item-grow-45\">\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>", styles: ["section.row.coer-system-profile{max-width:600px}span#coer-system-actionColors-primary{color:var(--primary-inner)}span#coer-system-actionColors-secondary{color:var(--secondary-inner)}span#coer-system-actionColors-success{color:var(--success-inner)}span#coer-system-actionColors-warning{color:var(--warning-inner)}span#coer-system-actionColors-danger{color:var(--danger-inner)}span#coer-system-actionColors-navigation{color:var(--navigation-inner)}span#coer-system-actionColors-information{color:var(--information-inner)}span#coer-system-appColors-breadcrumbs{color:var(--breadcrumbs-inner)}span#coer-system-appColors-background{color:var(--background-inner)}span#coer-system-appColors-containers{color:var(--containers-inner)}span#coer-system-appColors-sidenav{color:var(--sidenav-inner)}span#coer-system-appColors-sidenav-text{color:var(--sidenav-text-inner)}span#coer-system-appColors-sidenav-active{color:var(--sidenav-active-inner)}span#coer-system-appColors-toolbar{color:var(--toolbar-inner)}span#coer-system-appColors-toolbar-text{color:var(--toolbar-text-inner)}\n"] }]
459
- }], propDecorators: { user: [{
460
- type: Input
461
- }], userRoles: [{
462
- type: Input
463
- }], navigation: [{
464
- type: Input
465
- }] } });
461
+ args: [{ selector: 'coer-system', standalone: false, template: "@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 <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 <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\r\n <section class=\"flex-wrap coer-system-profile max-width-550px\">\r\n <!-- User --> \r\n <div class=\"mv-flex-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\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-item-grow-100 flex-item-grow-45\">\r\n <coer-selectbox\r\n label=\"Role\"\r\n [(ngModel)]=\"_mainRole\"\r\n propDisplay=\"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-item-grow-100 flex-item-grow-45\">\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>", styles: ["section.row.coer-system-profile{max-width:600px}span#coer-system-actionColors-primary{color:var(--primary-inner)}span#coer-system-actionColors-secondary{color:var(--secondary-inner)}span#coer-system-actionColors-success{color:var(--success-inner)}span#coer-system-actionColors-warning{color:var(--warning-inner)}span#coer-system-actionColors-danger{color:var(--danger-inner)}span#coer-system-actionColors-navigation{color:var(--navigation-inner)}span#coer-system-actionColors-information{color:var(--information-inner)}span#coer-system-appColors-breadcrumbs{color:var(--breadcrumbs-inner)}span#coer-system-appColors-background{color:var(--background-inner)}span#coer-system-appColors-containers{color:var(--containers-inner)}span#coer-system-appColors-sidenav{color:var(--sidenav-inner)}span#coer-system-appColors-sidenav-text{color:var(--sidenav-text-inner)}span#coer-system-appColors-sidenav-active{color:var(--sidenav-active-inner)}span#coer-system-appColors-toolbar{color:var(--toolbar-inner)}span#coer-system-appColors-toolbar-text{color:var(--toolbar-text-inner)}\n"] }]
462
+ }], ctorParameters: () => [] });
466
463
 
467
464
  const ROUTES = [
468
465
  { path: 'menu', component: CoerMenuPage, data: { Page: 'COER' } },