barsa-novin-ray-core 2.0.125 → 2.0.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +8 -1
- package/esm2022/lib/barsa-novin-ray-core.module.mjs +35 -12
- package/esm2022/lib/button-loading/button-loading.component.mjs +18 -0
- package/esm2022/lib/constants.mjs +9 -1
- package/esm2022/lib/controllers/base-controller.mjs +30 -0
- package/esm2022/lib/controllers/index.mjs +5 -0
- package/esm2022/lib/controllers/login-controller.mjs +54 -0
- package/esm2022/lib/controllers/login-verification-controller.mjs +54 -0
- package/esm2022/lib/controllers/models.mjs +2 -0
- package/esm2022/lib/login-enter-mobile/login-enter-mobile.component.mjs +64 -0
- package/esm2022/lib/login-verification/login-verification.component.mjs +79 -0
- package/esm2022/lib/login2/login2.component.mjs +60 -0
- package/esm2022/lib/services/form-panel.service.mjs +2 -2
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/barsa-novin-ray-core.mjs +364 -11
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/barsa-novin-ray-core.module.d.ts +92 -83
- package/lib/button-loading/button-loading.component.d.ts +8 -0
- package/lib/constants.d.ts +4 -0
- package/lib/controllers/base-controller.d.ts +29 -0
- package/lib/controllers/index.d.ts +4 -0
- package/lib/controllers/login-controller.d.ts +22 -0
- package/lib/controllers/login-verification-controller.d.ts +19 -0
- package/lib/controllers/models.d.ts +6 -0
- package/lib/login-enter-mobile/login-enter-mobile.component.d.ts +24 -0
- package/lib/login-verification/login-verification.component.d.ts +31 -0
- package/lib/login2/login2.component.d.ts +34 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ChangeDetectionStrategy, Input, InjectionToken, Injectable, Optional, inject, ElementRef, SkipSelf, NgModuleFactory, Inject, Pipe, EventEmitter, Self, Output, HostBinding, ChangeDetectorRef, HostListener, ViewContainerRef, ViewChild, Directive, Renderer2, NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA, APP_INITIALIZER, ErrorHandler } from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Input, InjectionToken, Injectable, Optional, inject, ElementRef, SkipSelf, NgModuleFactory, Inject, Pipe, EventEmitter, Self, Output, HostBinding, ChangeDetectorRef, HostListener, ViewContainerRef, ViewChild, Directive, Renderer2, NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA, signal, NgZone, ViewChildren, APP_INITIALIZER, ErrorHandler } from '@angular/core';
|
|
3
3
|
import { Subject, from, BehaviorSubject, of, combineLatest, fromEvent, forkJoin, throwError, merge, interval, filter as filter$1, tap as tap$1, concatMap as concatMap$1, catchError as catchError$1, finalize as finalize$1, Observable, takeUntil as takeUntil$1, debounceTime as debounceTime$1, switchMap as switchMap$1, timer, mergeWith } from 'rxjs';
|
|
4
4
|
import * as i1 from '@angular/router';
|
|
5
5
|
import { NavigationEnd, ActivatedRoute, Router, NavigationStart, RouterEvent, RouterModule } from '@angular/router';
|
|
@@ -11,14 +11,16 @@ import 'moment/locale/ar-SA';
|
|
|
11
11
|
import moment$2 from 'moment-jalaali';
|
|
12
12
|
import 'moment/locale/fa';
|
|
13
13
|
import * as i1$1 from '@angular/common/http';
|
|
14
|
-
import { HttpEventType, HttpErrorResponse, HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
14
|
+
import { HttpEventType, HttpErrorResponse, HttpHeaders, HttpClient, HttpClientModule } from '@angular/common/http';
|
|
15
15
|
import * as i2 from '@angular/common';
|
|
16
16
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
17
17
|
import * as i4 from '@angular/platform-browser';
|
|
18
18
|
import { Title } from '@angular/platform-browser';
|
|
19
19
|
import RecordRTC from 'recordrtc';
|
|
20
20
|
import * as i2$1 from '@angular/service-worker';
|
|
21
|
-
import
|
|
21
|
+
import * as i1$2 from '@angular/forms';
|
|
22
|
+
import { FormsModule, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
23
|
+
import { MessageToastService, ToastBottomCenterPosition } from '@fundamental-ngx/core';
|
|
22
24
|
|
|
23
25
|
class BarsaApi {
|
|
24
26
|
static { this.idGenerator = -10000; }
|
|
@@ -2278,6 +2280,14 @@ const AudioMimeType = 'audio/*';
|
|
|
2278
2280
|
function ChangeLayoutInfoCustomUi(layoutInfo, componentUi) {
|
|
2279
2281
|
layoutInfo.FieldUi.Setting.CustomUi = componentUi;
|
|
2280
2282
|
}
|
|
2283
|
+
const mobile_regex = new RegExp('^(\\+98|0)?9\\d{9}$');
|
|
2284
|
+
const number_only = new RegExp('^[0-9]+$');
|
|
2285
|
+
function forbiddenValidator(nameRe) {
|
|
2286
|
+
return (control) => {
|
|
2287
|
+
const forbidden = nameRe.test(control.value);
|
|
2288
|
+
return !forbidden ? { forbiddenName: { value: control.value } } : null;
|
|
2289
|
+
};
|
|
2290
|
+
}
|
|
2281
2291
|
|
|
2282
2292
|
class ApiService {
|
|
2283
2293
|
constructor(httpClient) {
|
|
@@ -2687,7 +2697,7 @@ class FormPanelService extends BaseComponent {
|
|
|
2687
2697
|
btn.handler(btn, this._context);
|
|
2688
2698
|
}
|
|
2689
2699
|
wfChoice(btn) {
|
|
2690
|
-
this._context.
|
|
2700
|
+
this._context.fireEvent('TransitionSelect', this._context, btn);
|
|
2691
2701
|
}
|
|
2692
2702
|
changeSidebarState(state) {
|
|
2693
2703
|
this._sidebarState$.next(state);
|
|
@@ -13621,6 +13631,325 @@ var barsaSapUiFormPage_module = /*#__PURE__*/Object.freeze({
|
|
|
13621
13631
|
BarsaSapUiFormPageModule: BarsaSapUiFormPageModule
|
|
13622
13632
|
});
|
|
13623
13633
|
|
|
13634
|
+
class BaseController {
|
|
13635
|
+
/**
|
|
13636
|
+
*
|
|
13637
|
+
*/
|
|
13638
|
+
constructor(view) {
|
|
13639
|
+
this.view = view;
|
|
13640
|
+
}
|
|
13641
|
+
}
|
|
13642
|
+
class ViewBase {
|
|
13643
|
+
constructor() {
|
|
13644
|
+
this.errorMessage = signal('');
|
|
13645
|
+
this.errorCode = signal(-1);
|
|
13646
|
+
}
|
|
13647
|
+
ngOnInit() {
|
|
13648
|
+
this.controller.init();
|
|
13649
|
+
}
|
|
13650
|
+
showError(message, code) {
|
|
13651
|
+
this.errorMessage.set(message);
|
|
13652
|
+
this.errorCode.set(code);
|
|
13653
|
+
}
|
|
13654
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ViewBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13655
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: ViewBase, ngImport: i0 }); }
|
|
13656
|
+
}
|
|
13657
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ViewBase, decorators: [{
|
|
13658
|
+
type: Directive,
|
|
13659
|
+
args: [{}]
|
|
13660
|
+
}] });
|
|
13661
|
+
|
|
13662
|
+
class LoginController extends BaseController {
|
|
13663
|
+
constructor(view) {
|
|
13664
|
+
super(view);
|
|
13665
|
+
this.loading = signal(false);
|
|
13666
|
+
this.canSend = signal(false);
|
|
13667
|
+
this._portalService = inject(PortalService);
|
|
13668
|
+
this._httpClient = inject(HttpClient);
|
|
13669
|
+
}
|
|
13670
|
+
get form() {
|
|
13671
|
+
return this.view.form;
|
|
13672
|
+
}
|
|
13673
|
+
sendCode(e) {
|
|
13674
|
+
const { mobile, cap, capId } = e;
|
|
13675
|
+
this.form.valid && this.loading.set(true);
|
|
13676
|
+
// const x = (): void => {
|
|
13677
|
+
// this.loading.set(false);
|
|
13678
|
+
// };
|
|
13679
|
+
this._httpClient
|
|
13680
|
+
.get(`/api/openid/signin?provider=BarsaOtpLogin&mobile=${mobile}&capId=${capId}&captchaCode=${cap}`)
|
|
13681
|
+
.pipe(finalize$1(() => {
|
|
13682
|
+
this.loading.set(false);
|
|
13683
|
+
}), catchError$1((err) => {
|
|
13684
|
+
if (typeof err === 'object' && err.status === 403) {
|
|
13685
|
+
this.view.showError(err.error.Message, err.error.Code);
|
|
13686
|
+
}
|
|
13687
|
+
return throwError(() => new Error(err));
|
|
13688
|
+
}))
|
|
13689
|
+
.subscribe((c) => {
|
|
13690
|
+
if (c?.otpId) {
|
|
13691
|
+
localStorage.setItem('otpId', c.otpId);
|
|
13692
|
+
this.view.codeSent();
|
|
13693
|
+
}
|
|
13694
|
+
else if (!e.succeed) {
|
|
13695
|
+
// debugger;
|
|
13696
|
+
}
|
|
13697
|
+
});
|
|
13698
|
+
}
|
|
13699
|
+
init() {
|
|
13700
|
+
this.form.valueChanges.subscribe((c) => (this.form.valid ? this.canSend.set(true) : this.canSend.set(false)));
|
|
13701
|
+
}
|
|
13702
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginController, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13703
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: LoginController, usesInheritance: true, ngImport: i0 }); }
|
|
13704
|
+
}
|
|
13705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginController, decorators: [{
|
|
13706
|
+
type: Directive,
|
|
13707
|
+
args: [{}]
|
|
13708
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
13709
|
+
|
|
13710
|
+
class LoginVerificationController extends BaseController {
|
|
13711
|
+
constructor(view) {
|
|
13712
|
+
super(view);
|
|
13713
|
+
this.loading = signal(false);
|
|
13714
|
+
this.canVerify = signal(false);
|
|
13715
|
+
this._httpClient = inject(HttpClient);
|
|
13716
|
+
}
|
|
13717
|
+
get form() {
|
|
13718
|
+
return this.view.form;
|
|
13719
|
+
}
|
|
13720
|
+
verifyCode(e) {
|
|
13721
|
+
this.form.valid && this.loading.set(true);
|
|
13722
|
+
const { code, cap, capId } = e;
|
|
13723
|
+
this.form.valid && this.loading.set(true);
|
|
13724
|
+
this._httpClient
|
|
13725
|
+
.post(`/api/openid/callback?provider=BarsaOtpLogin`, {
|
|
13726
|
+
otpId: localStorage.getItem('otpId'),
|
|
13727
|
+
otpCode: code,
|
|
13728
|
+
captchaCode: cap,
|
|
13729
|
+
capId
|
|
13730
|
+
})
|
|
13731
|
+
.pipe(finalize$1(() => {
|
|
13732
|
+
this.loading.set(false);
|
|
13733
|
+
}), catchError$1((err) => {
|
|
13734
|
+
if (typeof err === 'object' && err.status === 403) {
|
|
13735
|
+
this.view.showError(err.error.Message, err.error.Code);
|
|
13736
|
+
}
|
|
13737
|
+
return throwError(() => new Error(err));
|
|
13738
|
+
}))
|
|
13739
|
+
.subscribe((c) => {
|
|
13740
|
+
if (c?.Sth) {
|
|
13741
|
+
localStorage.removeItem('otpId');
|
|
13742
|
+
window.localStorage.setItem(BarsaApi.LoginAction.token2StorageKey, c.Sth);
|
|
13743
|
+
this.view.codeVerified();
|
|
13744
|
+
}
|
|
13745
|
+
});
|
|
13746
|
+
}
|
|
13747
|
+
init() {
|
|
13748
|
+
this.form.valueChanges.subscribe((c) => this.form.valid ? this.canVerify.set(true) : this.canVerify.set(false));
|
|
13749
|
+
}
|
|
13750
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationController, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13751
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: LoginVerificationController, usesInheritance: true, ngImport: i0 }); }
|
|
13752
|
+
}
|
|
13753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationController, decorators: [{
|
|
13754
|
+
type: Directive,
|
|
13755
|
+
args: [{}]
|
|
13756
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
13757
|
+
|
|
13758
|
+
class ButtonLoadingComponent {
|
|
13759
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ButtonLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13760
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: ButtonLoadingComponent, selector: "bnrc-button-loading", inputs: { valid: "valid", loading: "loading", text: "text" }, ngImport: i0, template: "<!-- <button class=\"button\" [disabled]=\"loading\">\n <i [class.!tw-hidden]=\"!loading\" class=\"fa fa-circle-o-notch fa-spin\"></i\n >{{ (loading ? 'Wait' : text) | bbbTranslate }}\n</button> -->\n<button type=\"button\" class=\"button\" [class.button--loading]=\"loading\" [disabled]=\"loading\">\n <span class=\"button__text\">{{ text | bbbTranslate }}</span>\n</button>\n", styles: [":host{display:block;width:100%}.button{width:100%;position:relative;padding:8px 16px;background:#009579;border:none;outline:none;border-radius:2px;cursor:pointer}.button:active{background:#007a63}.button__text{font:700 1rem IranYekanDigits,BarsaFont;color:#fff;transition:all .2s}.button--loading .button__text{visibility:hidden;opacity:0}.button--loading:after{content:\"\";position:absolute;width:16px;height:16px;inset:0;margin:auto;border:4px solid transparent;border-top-color:#fff;border-radius:50%;animation:button-loading-spinner 1s ease infinite}@keyframes button-loading-spinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}\n"], dependencies: [{ kind: "pipe", type: BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13761
|
+
}
|
|
13762
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ButtonLoadingComponent, decorators: [{
|
|
13763
|
+
type: Component,
|
|
13764
|
+
args: [{ selector: 'bnrc-button-loading', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <button class=\"button\" [disabled]=\"loading\">\n <i [class.!tw-hidden]=\"!loading\" class=\"fa fa-circle-o-notch fa-spin\"></i\n >{{ (loading ? 'Wait' : text) | bbbTranslate }}\n</button> -->\n<button type=\"button\" class=\"button\" [class.button--loading]=\"loading\" [disabled]=\"loading\">\n <span class=\"button__text\">{{ text | bbbTranslate }}</span>\n</button>\n", styles: [":host{display:block;width:100%}.button{width:100%;position:relative;padding:8px 16px;background:#009579;border:none;outline:none;border-radius:2px;cursor:pointer}.button:active{background:#007a63}.button__text{font:700 1rem IranYekanDigits,BarsaFont;color:#fff;transition:all .2s}.button--loading .button__text{visibility:hidden;opacity:0}.button--loading:after{content:\"\";position:absolute;width:16px;height:16px;inset:0;margin:auto;border:4px solid transparent;border-top-color:#fff;border-radius:50%;animation:button-loading-spinner 1s ease infinite}@keyframes button-loading-spinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}\n"] }]
|
|
13765
|
+
}], propDecorators: { valid: [{
|
|
13766
|
+
type: Input
|
|
13767
|
+
}], loading: [{
|
|
13768
|
+
type: Input
|
|
13769
|
+
}], text: [{
|
|
13770
|
+
type: Input
|
|
13771
|
+
}] } });
|
|
13772
|
+
|
|
13773
|
+
class LoginEnterMobileComponent extends ViewBase {
|
|
13774
|
+
constructor(fb) {
|
|
13775
|
+
super();
|
|
13776
|
+
this.fb = fb;
|
|
13777
|
+
this.otpSent = new EventEmitter();
|
|
13778
|
+
this.capId = signal('-');
|
|
13779
|
+
this.showCaptcha = signal(false);
|
|
13780
|
+
this.messageToastService = inject(MessageToastService);
|
|
13781
|
+
this.showCaptcha.set(false);
|
|
13782
|
+
this.form = this.fb.group({
|
|
13783
|
+
mobile: [
|
|
13784
|
+
'',
|
|
13785
|
+
Validators.compose([Validators.required, Validators.maxLength(11), forbiddenValidator(mobile_regex)])
|
|
13786
|
+
],
|
|
13787
|
+
cap: [''],
|
|
13788
|
+
capId: [this.capId(), Validators.required]
|
|
13789
|
+
});
|
|
13790
|
+
this.controller = new LoginController(this);
|
|
13791
|
+
}
|
|
13792
|
+
showError(message, code) {
|
|
13793
|
+
super.showError(message, code);
|
|
13794
|
+
this.messageToastService.open(this.errorTemplate, {
|
|
13795
|
+
duration: 5000,
|
|
13796
|
+
positionStrategy: ToastBottomCenterPosition,
|
|
13797
|
+
data: {
|
|
13798
|
+
message
|
|
13799
|
+
}
|
|
13800
|
+
});
|
|
13801
|
+
}
|
|
13802
|
+
codeSent() {
|
|
13803
|
+
this.otpSent.emit(this.form.value.mobile);
|
|
13804
|
+
}
|
|
13805
|
+
ngOnInit() {
|
|
13806
|
+
super.ngOnInit();
|
|
13807
|
+
}
|
|
13808
|
+
get loading() {
|
|
13809
|
+
return this.controller.loading();
|
|
13810
|
+
}
|
|
13811
|
+
get canSend() {
|
|
13812
|
+
return this.controller.canSend();
|
|
13813
|
+
}
|
|
13814
|
+
onSendCode() {
|
|
13815
|
+
this.controller.sendCode(this.form.value);
|
|
13816
|
+
}
|
|
13817
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginEnterMobileComponent, deps: [{ token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13818
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: LoginEnterMobileComponent, selector: "bnrc-login-enter-mobile", inputs: { errorTemplate: "errorTemplate" }, outputs: { otpSent: "otpSent" }, usesInheritance: true, ngImport: i0, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <div class=\"tw-mb-4\">\n <label class=\"tw-block tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4\" for=\"username\"> \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647 </label>\n <input\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n name=\"mobile\"\n formControlName=\"mobile\"\n placeholder=\"09121234567\"\n maxlength=\"11\"\n type=\"tel\"\n [disabled]=\"loading\"\n />\n </div>\n <!-- <app-form-captcha [capId]=\"capId()\" [showCaptcha]=\"showCaptcha()\" formControlName=\"cap\"></app-form-captcha> -->\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n [text]=\"'\u0627\u0631\u0633\u0627\u0644 \u06A9\u062F \u062A\u0627\u06CC\u06CC\u062F'\"\n [valid]=\"canSend\"\n [loading]=\"loading\"\n (click)=\"onSendCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ButtonLoadingComponent, selector: "bnrc-button-loading", inputs: ["valid", "loading", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13819
|
+
}
|
|
13820
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginEnterMobileComponent, decorators: [{
|
|
13821
|
+
type: Component,
|
|
13822
|
+
args: [{ selector: 'bnrc-login-enter-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <div class=\"tw-mb-4\">\n <label class=\"tw-block tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4\" for=\"username\"> \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647 </label>\n <input\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n name=\"mobile\"\n formControlName=\"mobile\"\n placeholder=\"09121234567\"\n maxlength=\"11\"\n type=\"tel\"\n [disabled]=\"loading\"\n />\n </div>\n <!-- <app-form-captcha [capId]=\"capId()\" [showCaptcha]=\"showCaptcha()\" formControlName=\"cap\"></app-form-captcha> -->\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n [text]=\"'\u0627\u0631\u0633\u0627\u0644 \u06A9\u062F \u062A\u0627\u06CC\u06CC\u062F'\"\n [valid]=\"canSend\"\n [loading]=\"loading\"\n (click)=\"onSendCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n" }]
|
|
13823
|
+
}], ctorParameters: () => [{ type: i1$2.FormBuilder }], propDecorators: { otpSent: [{
|
|
13824
|
+
type: Output
|
|
13825
|
+
}], errorTemplate: [{
|
|
13826
|
+
type: Input
|
|
13827
|
+
}] } });
|
|
13828
|
+
|
|
13829
|
+
class LoginVerificationComponent extends ViewBase {
|
|
13830
|
+
constructor(fb) {
|
|
13831
|
+
super();
|
|
13832
|
+
this.fb = fb;
|
|
13833
|
+
this.otpVerified = new EventEmitter();
|
|
13834
|
+
this.changeMobile = new EventEmitter();
|
|
13835
|
+
this.capId = signal('-');
|
|
13836
|
+
this.showCaptcha = signal(false);
|
|
13837
|
+
this._ngZone = inject(NgZone);
|
|
13838
|
+
this.messageToastService = inject(MessageToastService);
|
|
13839
|
+
this.showCaptcha.set(false);
|
|
13840
|
+
this.form = this.fb.group({
|
|
13841
|
+
in1: ['', Validators.compose([Validators.required, Validators.maxLength(6)])],
|
|
13842
|
+
cap: [''],
|
|
13843
|
+
capId: [this.capId(), Validators.required]
|
|
13844
|
+
});
|
|
13845
|
+
this.controller = new LoginVerificationController(this);
|
|
13846
|
+
}
|
|
13847
|
+
ngOnInit() {
|
|
13848
|
+
super.ngOnInit();
|
|
13849
|
+
}
|
|
13850
|
+
codeVerified() {
|
|
13851
|
+
this.otpVerified.emit();
|
|
13852
|
+
}
|
|
13853
|
+
showError(message, code) {
|
|
13854
|
+
super.showError(message, code);
|
|
13855
|
+
this.messageToastService.open(this.errorTemplate, {
|
|
13856
|
+
duration: 5000,
|
|
13857
|
+
positionStrategy: ToastBottomCenterPosition,
|
|
13858
|
+
data: {
|
|
13859
|
+
message
|
|
13860
|
+
}
|
|
13861
|
+
});
|
|
13862
|
+
}
|
|
13863
|
+
onVerifyCode() {
|
|
13864
|
+
this._verifyCode();
|
|
13865
|
+
}
|
|
13866
|
+
_verifyCode() {
|
|
13867
|
+
const { in1, capId, cap } = this.form.value;
|
|
13868
|
+
this.controller.verifyCode({ code: `${in1}`, capId, cap });
|
|
13869
|
+
}
|
|
13870
|
+
get invArr() {
|
|
13871
|
+
return this._inputsEl.toArray();
|
|
13872
|
+
}
|
|
13873
|
+
get loading() {
|
|
13874
|
+
return this.controller.loading();
|
|
13875
|
+
}
|
|
13876
|
+
get canVerify() {
|
|
13877
|
+
return this.controller.canVerify();
|
|
13878
|
+
}
|
|
13879
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationComponent, deps: [{ token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13880
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: LoginVerificationComponent, selector: "bnrc-login-verification", inputs: { mobile: "mobile", errorTemplate: "errorTemplate" }, outputs: { otpVerified: "otpVerified", changeMobile: "changeMobile" }, viewQueries: [{ propertyName: "_loadingBtn", first: true, predicate: ["loadingBtn"], descendants: true }, { propertyName: "_inputsEl", predicate: ["inputv"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <label class=\"tw-block tw-w-full tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4 tw-text-sm\">\n \u06A9\u062F \u0627\u0631\u0633\u0627\u0644 \u0634\u062F\u0647 \u0628\u0647 \u0634\u0645\u0627\u0631\u0647 <strong>{{ mobile }}</strong> \u0631\u0627 \u0648\u0627\u0631\u062F \u0646\u0645\u0627\u06CC\u06CC\u062F.\n </label>\n <a\n class=\"tw-inline-flex tw-flex tw-gap-3 tw-items-center tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm tw-font-extrabold tw-mb-4\"\n (click)=\"changeMobile.emit()\"\n >\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tw-w-6\">\n <path\n d=\"M5,18H9.24a1,1,0,0,0,.71-.29l6.92-6.93h0L19.71,8a1,1,0,0,0,0-1.42L15.47,2.29a1,1,0,0,0-1.42,0L11.23,5.12h0L4.29,12.05a1,1,0,0,0-.29.71V17A1,1,0,0,0,5,18ZM14.76,4.41l2.83,2.83L16.17,8.66,13.34,5.83ZM6,13.17l5.93-5.93,2.83,2.83L8.83,16H6ZM21,20H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z\"\n fill=\"#316bec\"\n />\n </svg>\n </a>\n <div class=\"tw-flex tw-items-center tw-justify-center tw-gap-3 tw-mb-4 tw-flex-row-reverse\">\n <input\n #inputv\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n maxlength=\"6\"\n tabindex=\"0\"\n name=\"in1\"\n formControlName=\"in1\"\n />\n </div>\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n #loadingBtn\n [text]=\"'\u062A\u0627\u06CC\u06CC\u062F \u06A9\u062F'\"\n [valid]=\"canVerify\"\n [loading]=\"loading\"\n (click)=\"onVerifyCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ButtonLoadingComponent, selector: "bnrc-button-loading", inputs: ["valid", "loading", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13881
|
+
}
|
|
13882
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationComponent, decorators: [{
|
|
13883
|
+
type: Component,
|
|
13884
|
+
args: [{ selector: 'bnrc-login-verification', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <label class=\"tw-block tw-w-full tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4 tw-text-sm\">\n \u06A9\u062F \u0627\u0631\u0633\u0627\u0644 \u0634\u062F\u0647 \u0628\u0647 \u0634\u0645\u0627\u0631\u0647 <strong>{{ mobile }}</strong> \u0631\u0627 \u0648\u0627\u0631\u062F \u0646\u0645\u0627\u06CC\u06CC\u062F.\n </label>\n <a\n class=\"tw-inline-flex tw-flex tw-gap-3 tw-items-center tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm tw-font-extrabold tw-mb-4\"\n (click)=\"changeMobile.emit()\"\n >\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tw-w-6\">\n <path\n d=\"M5,18H9.24a1,1,0,0,0,.71-.29l6.92-6.93h0L19.71,8a1,1,0,0,0,0-1.42L15.47,2.29a1,1,0,0,0-1.42,0L11.23,5.12h0L4.29,12.05a1,1,0,0,0-.29.71V17A1,1,0,0,0,5,18ZM14.76,4.41l2.83,2.83L16.17,8.66,13.34,5.83ZM6,13.17l5.93-5.93,2.83,2.83L8.83,16H6ZM21,20H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z\"\n fill=\"#316bec\"\n />\n </svg>\n </a>\n <div class=\"tw-flex tw-items-center tw-justify-center tw-gap-3 tw-mb-4 tw-flex-row-reverse\">\n <input\n #inputv\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n maxlength=\"6\"\n tabindex=\"0\"\n name=\"in1\"\n formControlName=\"in1\"\n />\n </div>\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n #loadingBtn\n [text]=\"'\u062A\u0627\u06CC\u06CC\u062F \u06A9\u062F'\"\n [valid]=\"canVerify\"\n [loading]=\"loading\"\n (click)=\"onVerifyCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n" }]
|
|
13885
|
+
}], ctorParameters: () => [{ type: i1$2.FormBuilder }], propDecorators: { _inputsEl: [{
|
|
13886
|
+
type: ViewChildren,
|
|
13887
|
+
args: ['inputv']
|
|
13888
|
+
}], _loadingBtn: [{
|
|
13889
|
+
type: ViewChild,
|
|
13890
|
+
args: ['loadingBtn']
|
|
13891
|
+
}], otpVerified: [{
|
|
13892
|
+
type: Output
|
|
13893
|
+
}], changeMobile: [{
|
|
13894
|
+
type: Output
|
|
13895
|
+
}], mobile: [{
|
|
13896
|
+
type: Input
|
|
13897
|
+
}], errorTemplate: [{
|
|
13898
|
+
type: Input
|
|
13899
|
+
}] } });
|
|
13900
|
+
|
|
13901
|
+
class Login2Component {
|
|
13902
|
+
constructor() {
|
|
13903
|
+
this.mobile = signal('');
|
|
13904
|
+
this.loading = signal(false);
|
|
13905
|
+
this._router = inject(Router);
|
|
13906
|
+
this._portalService = inject(PortalService);
|
|
13907
|
+
this.state = signal('enter-mobile');
|
|
13908
|
+
this.appSettings = signal({
|
|
13909
|
+
BackgroundUrl: '',
|
|
13910
|
+
LogoUrl: '',
|
|
13911
|
+
HideGovSso: true,
|
|
13912
|
+
Section1Title: 'برسانوینرای',
|
|
13913
|
+
Section1Description: 'سیستم ساز',
|
|
13914
|
+
Subtitle: 'ورود به سامانه',
|
|
13915
|
+
Title: 'برسانوینرای'
|
|
13916
|
+
});
|
|
13917
|
+
this.logoUrl = '';
|
|
13918
|
+
this.backgroundUrl = '';
|
|
13919
|
+
this.title = '';
|
|
13920
|
+
this.hideGovSso = false;
|
|
13921
|
+
}
|
|
13922
|
+
ngOnInit() {
|
|
13923
|
+
fetch(`/assets/login2.json?x=${BarsaApi.LoginFormData.ChangeKeyVersion}`)
|
|
13924
|
+
.then((res) => res.json())
|
|
13925
|
+
.then((res) => this.appSettings.set(res));
|
|
13926
|
+
}
|
|
13927
|
+
onOtpSent(mobile) {
|
|
13928
|
+
this.mobile.set(mobile);
|
|
13929
|
+
this.state.set('verification');
|
|
13930
|
+
}
|
|
13931
|
+
onChangeMobile() {
|
|
13932
|
+
this.state.set('enter-mobile');
|
|
13933
|
+
}
|
|
13934
|
+
onOtpVerfied() {
|
|
13935
|
+
this.loading.set(true);
|
|
13936
|
+
this._portalService
|
|
13937
|
+
.loadServerStartupData()
|
|
13938
|
+
.then(() => this._portalService.loadSystem())
|
|
13939
|
+
.then(() => this._portalService.loadUserPortalSetting())
|
|
13940
|
+
.then(() => {
|
|
13941
|
+
this._router.navigate([this._portalService.DefaultPage?.Route || '/']);
|
|
13942
|
+
})
|
|
13943
|
+
.catch(() => this.loading.set(false));
|
|
13944
|
+
}
|
|
13945
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: Login2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13946
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: Login2Component, selector: "bnrc-login2", ngImport: i0, template: "<div class=\"tw-bg-white dark:tw-bg-gray-900 tw-w-full tw-h-full\">\n <div class=\"tw-flex tw-justify-center tw-h-screen\">\n <div\n class=\"tw-hidden tw-bg-cover lg:tw-block lg:tw-w-2/3\"\n [style.background-image]=\"'url(' + appSettings().BackgroundUrl + ')'\"\n >\n <div class=\"tw-flex tw-items-center tw-h-full tw-px-20 tw-bg-gray-900 tw-bg-opacity-40\">\n <div>\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-white\">{{ appSettings().Section1Title }}</h2>\n\n <p class=\"tw-max-w-xl tw-mt-3 tw-text-gray-300\">{{ appSettings().Section1Description }}</p>\n </div>\n </div>\n </div>\n\n <div class=\"tw-flex tw-items-center tw-w-full tw-max-w-md tw-px-6 tw-mx-auto lg:tw-w-2/6\">\n <div class=\"tw-flex-1\">\n <div class=\"tw-text-center tw-flex tw-flex-col tw-items-center\">\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" />\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-center tw-text-gray-700 dark:tw-text-white\">\n {{ appSettings().Title }}\n </h2>\n </div>\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" class=\"tw-invisible\" />\n <p class=\"tw-mt-3 tw-text-gray-500 dark:tw-text-gray-300\">{{ appSettings().Subtitle }}</p>\n </div>\n </div>\n <div>\n @if(state()==='enter-mobile'){\n <bnrc-login-enter-mobile\n (otpSent)=\"onOtpSent($event)\"\n [errorTemplate]=\"template\"\n ></bnrc-login-enter-mobile>\n }@else{\n <bnrc-login-verification\n [mobile]=\"mobile()\"\n (changeMobile)=\"onChangeMobile()\"\n (otpVerified)=\"onOtpVerfied()\"\n [errorTemplate]=\"template\"\n ></bnrc-login-verification>\n }\n </div>\n @if(state()==='enter-mobile' && !appSettings().HideGovSso){\n <div class=\"tw-relative tw-flex tw-py-5 tw-items-center tw-px-2\">\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n <span class=\"tw-font-[IRANYekan] tw-flex-shrink tw-mx-4 tw-text-gray-400\">\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647</span>\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n </div>\n <div class=\"tw-rounded-lg back-box-color tw-w-full tw-py-3\">\n <div class=\"tw-flex tw-items-center tw-text-center\">\n <a class=\"tw-w-full tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm\" href=\"\"\n >\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647 \u062F\u0648\u0644\u062A \u0645\u0646\n </a>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n<ng-template let-messageToast #template>\n <p class=\"error\" [dismissible]=\"true\">{{ messageToast.data.message }}</p>\n</ng-template>\n", styles: [":host{font-family:IRANYekanDigits}\n"], dependencies: [{ kind: "component", type: LoginEnterMobileComponent, selector: "bnrc-login-enter-mobile", inputs: ["errorTemplate"], outputs: ["otpSent"] }, { kind: "component", type: LoginVerificationComponent, selector: "bnrc-login-verification", inputs: ["mobile", "errorTemplate"], outputs: ["otpVerified", "changeMobile"] }, { kind: "directive", type: MobileDirective, selector: "[mobile]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13947
|
+
}
|
|
13948
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: Login2Component, decorators: [{
|
|
13949
|
+
type: Component,
|
|
13950
|
+
args: [{ selector: 'bnrc-login2', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tw-bg-white dark:tw-bg-gray-900 tw-w-full tw-h-full\">\n <div class=\"tw-flex tw-justify-center tw-h-screen\">\n <div\n class=\"tw-hidden tw-bg-cover lg:tw-block lg:tw-w-2/3\"\n [style.background-image]=\"'url(' + appSettings().BackgroundUrl + ')'\"\n >\n <div class=\"tw-flex tw-items-center tw-h-full tw-px-20 tw-bg-gray-900 tw-bg-opacity-40\">\n <div>\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-white\">{{ appSettings().Section1Title }}</h2>\n\n <p class=\"tw-max-w-xl tw-mt-3 tw-text-gray-300\">{{ appSettings().Section1Description }}</p>\n </div>\n </div>\n </div>\n\n <div class=\"tw-flex tw-items-center tw-w-full tw-max-w-md tw-px-6 tw-mx-auto lg:tw-w-2/6\">\n <div class=\"tw-flex-1\">\n <div class=\"tw-text-center tw-flex tw-flex-col tw-items-center\">\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" />\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-center tw-text-gray-700 dark:tw-text-white\">\n {{ appSettings().Title }}\n </h2>\n </div>\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" class=\"tw-invisible\" />\n <p class=\"tw-mt-3 tw-text-gray-500 dark:tw-text-gray-300\">{{ appSettings().Subtitle }}</p>\n </div>\n </div>\n <div>\n @if(state()==='enter-mobile'){\n <bnrc-login-enter-mobile\n (otpSent)=\"onOtpSent($event)\"\n [errorTemplate]=\"template\"\n ></bnrc-login-enter-mobile>\n }@else{\n <bnrc-login-verification\n [mobile]=\"mobile()\"\n (changeMobile)=\"onChangeMobile()\"\n (otpVerified)=\"onOtpVerfied()\"\n [errorTemplate]=\"template\"\n ></bnrc-login-verification>\n }\n </div>\n @if(state()==='enter-mobile' && !appSettings().HideGovSso){\n <div class=\"tw-relative tw-flex tw-py-5 tw-items-center tw-px-2\">\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n <span class=\"tw-font-[IRANYekan] tw-flex-shrink tw-mx-4 tw-text-gray-400\">\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647</span>\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n </div>\n <div class=\"tw-rounded-lg back-box-color tw-w-full tw-py-3\">\n <div class=\"tw-flex tw-items-center tw-text-center\">\n <a class=\"tw-w-full tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm\" href=\"\"\n >\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647 \u062F\u0648\u0644\u062A \u0645\u0646\n </a>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n<ng-template let-messageToast #template>\n <p class=\"error\" [dismissible]=\"true\">{{ messageToast.data.message }}</p>\n</ng-template>\n", styles: [":host{font-family:IRANYekanDigits}\n"] }]
|
|
13951
|
+
}], ctorParameters: () => [] });
|
|
13952
|
+
|
|
13624
13953
|
class BaseUlvSettingComponent extends BaseComponent {
|
|
13625
13954
|
constructor() {
|
|
13626
13955
|
super(...arguments);
|
|
@@ -13871,6 +14200,12 @@ const routesDefault = [
|
|
|
13871
14200
|
canActivate: [RedirectHomeGuard],
|
|
13872
14201
|
children: [formRoutes(true)]
|
|
13873
14202
|
},
|
|
14203
|
+
{
|
|
14204
|
+
path: 'login2',
|
|
14205
|
+
component: Login2Component,
|
|
14206
|
+
data: { pageData: { Route: '/login2', Module: 'BarsaLoginPage' } },
|
|
14207
|
+
canActivate: [RedirectHomeGuard]
|
|
14208
|
+
},
|
|
13874
14209
|
{
|
|
13875
14210
|
path: 'resetpassword',
|
|
13876
14211
|
component: EmptyPageComponent,
|
|
@@ -14176,7 +14511,11 @@ const components = [
|
|
|
14176
14511
|
DynamicLayoutComponent,
|
|
14177
14512
|
EmptyPageComponent,
|
|
14178
14513
|
FormPageComponent,
|
|
14179
|
-
FormFieldReportPageComponent
|
|
14514
|
+
FormFieldReportPageComponent,
|
|
14515
|
+
Login2Component,
|
|
14516
|
+
LoginEnterMobileComponent,
|
|
14517
|
+
LoginVerificationComponent,
|
|
14518
|
+
ButtonLoadingComponent
|
|
14180
14519
|
];
|
|
14181
14520
|
const directives = [
|
|
14182
14521
|
PlaceHolderDirective,
|
|
@@ -14392,7 +14731,11 @@ class BarsaNovinRayCoreModule extends BaseModule {
|
|
|
14392
14731
|
DynamicLayoutComponent,
|
|
14393
14732
|
EmptyPageComponent,
|
|
14394
14733
|
FormPageComponent,
|
|
14395
|
-
FormFieldReportPageComponent,
|
|
14734
|
+
FormFieldReportPageComponent,
|
|
14735
|
+
Login2Component,
|
|
14736
|
+
LoginEnterMobileComponent,
|
|
14737
|
+
LoginVerificationComponent,
|
|
14738
|
+
ButtonLoadingComponent, NumeralPipe,
|
|
14396
14739
|
CanUploadFilePipe,
|
|
14397
14740
|
RemoveNewlinePipe,
|
|
14398
14741
|
ConvertToStylePipe,
|
|
@@ -14470,7 +14813,9 @@ class BarsaNovinRayCoreModule extends BaseModule {
|
|
|
14470
14813
|
HttpClientModule,
|
|
14471
14814
|
BarsaNovinRayCoreRoutingModule,
|
|
14472
14815
|
BarsaSapUiFormPageModule,
|
|
14473
|
-
ResizableModule
|
|
14816
|
+
ResizableModule,
|
|
14817
|
+
FormsModule,
|
|
14818
|
+
ReactiveFormsModule], exports: [FormComponent,
|
|
14474
14819
|
FieldUiComponent,
|
|
14475
14820
|
NotFoundComponent,
|
|
14476
14821
|
RootPageComponent,
|
|
@@ -14489,7 +14834,11 @@ class BarsaNovinRayCoreModule extends BaseModule {
|
|
|
14489
14834
|
DynamicLayoutComponent,
|
|
14490
14835
|
EmptyPageComponent,
|
|
14491
14836
|
FormPageComponent,
|
|
14492
|
-
FormFieldReportPageComponent,
|
|
14837
|
+
FormFieldReportPageComponent,
|
|
14838
|
+
Login2Component,
|
|
14839
|
+
LoginEnterMobileComponent,
|
|
14840
|
+
LoginVerificationComponent,
|
|
14841
|
+
ButtonLoadingComponent, NumeralPipe,
|
|
14493
14842
|
CanUploadFilePipe,
|
|
14494
14843
|
RemoveNewlinePipe,
|
|
14495
14844
|
ConvertToStylePipe,
|
|
@@ -14568,7 +14917,9 @@ class BarsaNovinRayCoreModule extends BaseModule {
|
|
|
14568
14917
|
HttpClientModule,
|
|
14569
14918
|
BarsaNovinRayCoreRoutingModule,
|
|
14570
14919
|
BarsaSapUiFormPageModule,
|
|
14571
|
-
ResizableModule
|
|
14920
|
+
ResizableModule,
|
|
14921
|
+
FormsModule,
|
|
14922
|
+
ReactiveFormsModule] }); }
|
|
14572
14923
|
}
|
|
14573
14924
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaNovinRayCoreModule, decorators: [{
|
|
14574
14925
|
type: NgModule,
|
|
@@ -14579,7 +14930,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
14579
14930
|
HttpClientModule,
|
|
14580
14931
|
BarsaNovinRayCoreRoutingModule,
|
|
14581
14932
|
BarsaSapUiFormPageModule,
|
|
14582
|
-
ResizableModule
|
|
14933
|
+
ResizableModule,
|
|
14934
|
+
FormsModule,
|
|
14935
|
+
ReactiveFormsModule
|
|
14583
14936
|
],
|
|
14584
14937
|
exports: [...components, ...pipes, ...directives],
|
|
14585
14938
|
schemas: [NO_ERRORS_SCHEMA]
|
|
@@ -14590,5 +14943,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
14590
14943
|
* Generated bundle index. Do not edit.
|
|
14591
14944
|
*/
|
|
14592
14945
|
|
|
14593
|
-
export { APP_VERSION, AbsoluteDivBodyDirective, AffixRespondEvents, AllFilesMimeType, AnchorScrollDirective, ApiService, ApplicationBaseComponent, AttrRtlDirective, AudioMimeType, AudioRecordingService, AuthGuard, BarsaApi, BarsaDialogService, BarsaIconDictPipe, BarsaNovinRayCoreModule, BarsaSapUiFormPageModule, BarsaStorageService, BaseColumnPropsComponent, BaseComponent, BaseDirective, BaseDynamicComponent, BaseFormToolbaritemPropsComponent, BaseItemContentPropsComponent, BaseModule, BaseReportModel, BaseUlvSettingComponent, BaseViewContentPropsComponent, BaseViewItemPropsComponent, BaseViewPropsComponent, BbbTranslatePipe, BodyClickDirective, BoolControlInfoModel, BreadcrumbService, CalculateControlInfoModel, CanUploadFilePipe, ChangeLayoutInfoCustomUi, CodeEditorControlInfoModel, ColSetting, ColumnCustomComponentPipe, ColumnCustomUiPipe, ColumnIconPipe, ColumnResizerDirective, ColumnService, ColumnValuePipe, ComboRowImagePipe, CommandControlInfoModel, ContainerComponent, ContainerService, ContextMenuPipe, ControlUiPipe, ConvertToStylePipe, CopyDirective, CountDownDirective, CustomCommand, CustomInjector, CustomRouteReuseStategy, DIALOG_SERVICE, DateHijriService, DateMiladiService, DateRanges, DateService, DateShamsiService, DateTimeControlInfoModel, DateTimeToCaptionPipe, DeviceWidth, DialogParams, DynamicCommandDirective, DynamicComponentService, DynamicFormComponent, DynamicFormToolbaritemComponent, DynamicItemComponent, DynamicLayoutComponent, DynamicStyleDirective, EllapsisTextDirective, EllipsifyDirective, EmptyPageComponent, EmptyPageWithRouterAndRouterOutletComponent, EnumControlInfoModel, ExecuteDynamicCommand, ExecuteWorkflowChoiceDef, FORM_DIALOG_COMPONENT, FieldBaseComponent, FieldDirective, FieldInfoTypeEnum, FieldUiComponent, FileControlInfoModel, FileInfoCountPipe, FilePictureInfoModel, FilesValidationHelper, FillAllLayoutControls, FillEmptySpaceDirective, FilterColumnsByDetailsPipe, FilterPipe, FilterStringPipe, FilterTabPipe, FilterToolbarControlPipe, FilterWorkflowInMobilePipe, FindColumnByDbNamePipe, FindGroup, FindLayoutSettingFromLayout94, FindPreviewColumnPipe, FindToolbarItem, FioriIconPipe, FormBaseComponent, FormCloseDirective, FormComponent, FormFieldReportPageComponent, FormNewComponent, FormPageBaseComponent, FormPageComponent, FormPanelService, FormPropsBaseComponent, FormService, FormToolbarBaseComponent, GaugeControlInfoModel, GeneralControlInfoModel, GetAllColumnsSorted, GetDefaultMoObjectInfo, GetVisibleValue, GridSetting, GroupBy, GroupByPipe, HeaderFacetValuePipe, HideColumnsInmobilePipe, HistoryControlInfoModel, HorizontalLayoutService, IconControlInfoModel, ImageLazyDirective, ImageMimeType, IndexedDbService, InputNumber, IntersectionObserverDirective, IntersectionStatus, IsExpandedNodePipe, ItemsRendererDirective, LabelmandatoryDirective, LayoutItemBaseComponent, LayoutPanelBaseComponent, LayoutService, LinearListControlInfoModel, LinearListHelper, ListCountPipe, ListRelationModel, LoadExternalFilesDirective, LocalStorageService, LogService, MergeFieldsToColumnsPipe, MetaobjectDataModel, MetaobjectRelationModel, MoForReportModel, MoInfoUlvMoListPipe, MoInfoUlvPagingPipe, MoReportValueConcatPipe, MoReportValuePipe, MoValuePipe, MobileDirective, ModalRootComponent, MultipleGroupByPipe, NOTIFICATAION_POPUP_SERVER, NOTIFICATION_WEBWORKER_FACTORY, NetworkStatusService, NotFoundComponent, NotificationService, NowraptextDirective, NumberBaseComponent, NumberControlInfoModel, NumbersOnlyInputDirective, NumeralPipe, PageBaseComponent, PageWithFormHandlerBaseComponent, PdfMimeType, PictureFieldSourcePipe, PictureFileControlInfoModel, PlaceHolderDirective, PortalDynamicPageResolver, PortalFormPageResolver, PortalPageComponent, PortalPageResolver, PortalPageSidebarComponent, PortalReportPageResolver, PortalService, PreventDefaulEvent, PreventDefaultDirective, PromptUpdateService, RabetehAkseTakiListiControlInfoModel, RedirectHomeGuard, RedirectReportNavigatorCommandComponent, RelatedReportControlInfoModel, RelationListControlInfoModel, RemoveNewlinePipe, RenderUlvPaginDirective, RenderUlvViewerDirective, ReplacePipe, ReportBaseComponent, ReportBaseInfo, ReportCalendarModel, ReportContainerComponent, ReportExtraInfo, ReportField, ReportFormModel, ReportItemBaseComponent, ReportListModel, ReportModel, ReportTreeModel, ReportViewBaseComponent, ReportViewColumn, ResizableComponent, ResizableDirective, ResizableModule, ReversePipe, RichStringControlInfoModel, RootPageComponent, RootPortalComponent, RouteFormChangeDirective, RoutingService, RowDataOption, RowNumberPipe, SanitizeTextPipe, SaveScrollPositionService, SelectionMode, SeperatorFixPipe, ServiceWorkerCommuncationService, ServiceWorkerNotificationService, SingleRelationControlInfoModel, SortDirection, SortPipe, SortSetting, StopPropagationDirective, StringControlInfoModel, SubformControlInfoModel, SystemBaseComponent, TOAST_SERVICE, TableHeaderWidthMode, TableResizerDirective, ThImageOrIconePipe, TileGroupBreadcrumResolver, TilePropsComponent, TlbButtonsPipe, TotalSummaryPipe, UiService, UlvCommandDirective, UlvMainService, UntilInViewDirective, UploadService, VideoMimeType, VideoRecordingService, VisibleValuePipe, WordMimeType, WorfkflowwChoiceCommandDirective, availablePrefixes, calcContextMenuWidth, calculateColumnContent, calculateColumnWidth, calculateColumnWidthFitToContainer, calculateFreeColumnSize, calculateMoDataListContentWidthByColumnName, cancelRequestAnimationFrame, createFormPanelMetaConditions, createGridEditorFormPanel, easeInOutCubic, elementInViewport2, enumValueToStringSize, executeUlvCommandHandler, formRoutes, formatBytes, fromIntersectionObserver, genrateInlineMoId, getAllItemsPerChildren, getColumnValueOfMoDataList, getComponentDefined, getControlList, getControlSizeMode, getDateService, getDeviceIsDesktop, getDeviceIsMobile, getDeviceIsPhone, getDeviceIsTablet, getFieldValue, getFormSettings, getGridSettings, getHeaderValue, getIcon, getImagePath, getLabelWidth, getLayout94ObjectInfo, getLayoutControl, getNewMoGridEditor, getParentHeight, getRequestAnimationFrame, getResetGridSettings, getTargetRect, getUniqueId, getValidExtension, isFF, isFirefox, isFunction, isImage, isInLocalMode, isSafari, isTargetWindow, measureText, requestAnimationFramePolyfill, setColumnWidthByMaxMoContentWidth, setOneDepthLevel, setTableThWidth, shallowEqual, stopPropagation, throwIfAlreadyLoaded, toNumber };
|
|
14946
|
+
export { APP_VERSION, AbsoluteDivBodyDirective, AffixRespondEvents, AllFilesMimeType, AnchorScrollDirective, ApiService, ApplicationBaseComponent, AttrRtlDirective, AudioMimeType, AudioRecordingService, AuthGuard, BarsaApi, BarsaDialogService, BarsaIconDictPipe, BarsaNovinRayCoreModule, BarsaSapUiFormPageModule, BarsaStorageService, BaseColumnPropsComponent, BaseComponent, BaseController, BaseDirective, BaseDynamicComponent, BaseFormToolbaritemPropsComponent, BaseItemContentPropsComponent, BaseModule, BaseReportModel, BaseUlvSettingComponent, BaseViewContentPropsComponent, BaseViewItemPropsComponent, BaseViewPropsComponent, BbbTranslatePipe, BodyClickDirective, BoolControlInfoModel, BreadcrumbService, ButtonLoadingComponent, CalculateControlInfoModel, CanUploadFilePipe, ChangeLayoutInfoCustomUi, CodeEditorControlInfoModel, ColSetting, ColumnCustomComponentPipe, ColumnCustomUiPipe, ColumnIconPipe, ColumnResizerDirective, ColumnService, ColumnValuePipe, ComboRowImagePipe, CommandControlInfoModel, ContainerComponent, ContainerService, ContextMenuPipe, ControlUiPipe, ConvertToStylePipe, CopyDirective, CountDownDirective, CustomCommand, CustomInjector, CustomRouteReuseStategy, DIALOG_SERVICE, DateHijriService, DateMiladiService, DateRanges, DateService, DateShamsiService, DateTimeControlInfoModel, DateTimeToCaptionPipe, DeviceWidth, DialogParams, DynamicCommandDirective, DynamicComponentService, DynamicFormComponent, DynamicFormToolbaritemComponent, DynamicItemComponent, DynamicLayoutComponent, DynamicStyleDirective, EllapsisTextDirective, EllipsifyDirective, EmptyPageComponent, EmptyPageWithRouterAndRouterOutletComponent, EnumControlInfoModel, ExecuteDynamicCommand, ExecuteWorkflowChoiceDef, FORM_DIALOG_COMPONENT, FieldBaseComponent, FieldDirective, FieldInfoTypeEnum, FieldUiComponent, FileControlInfoModel, FileInfoCountPipe, FilePictureInfoModel, FilesValidationHelper, FillAllLayoutControls, FillEmptySpaceDirective, FilterColumnsByDetailsPipe, FilterPipe, FilterStringPipe, FilterTabPipe, FilterToolbarControlPipe, FilterWorkflowInMobilePipe, FindColumnByDbNamePipe, FindGroup, FindLayoutSettingFromLayout94, FindPreviewColumnPipe, FindToolbarItem, FioriIconPipe, FormBaseComponent, FormCloseDirective, FormComponent, FormFieldReportPageComponent, FormNewComponent, FormPageBaseComponent, FormPageComponent, FormPanelService, FormPropsBaseComponent, FormService, FormToolbarBaseComponent, GaugeControlInfoModel, GeneralControlInfoModel, GetAllColumnsSorted, GetDefaultMoObjectInfo, GetVisibleValue, GridSetting, GroupBy, GroupByPipe, HeaderFacetValuePipe, HideColumnsInmobilePipe, HistoryControlInfoModel, HorizontalLayoutService, IconControlInfoModel, ImageLazyDirective, ImageMimeType, IndexedDbService, InputNumber, IntersectionObserverDirective, IntersectionStatus, IsExpandedNodePipe, ItemsRendererDirective, LabelmandatoryDirective, LayoutItemBaseComponent, LayoutPanelBaseComponent, LayoutService, LinearListControlInfoModel, LinearListHelper, ListCountPipe, ListRelationModel, LoadExternalFilesDirective, LocalStorageService, LogService, Login2Component, LoginController, LoginEnterMobileComponent, LoginVerificationComponent, LoginVerificationController, MergeFieldsToColumnsPipe, MetaobjectDataModel, MetaobjectRelationModel, MoForReportModel, MoInfoUlvMoListPipe, MoInfoUlvPagingPipe, MoReportValueConcatPipe, MoReportValuePipe, MoValuePipe, MobileDirective, ModalRootComponent, MultipleGroupByPipe, NOTIFICATAION_POPUP_SERVER, NOTIFICATION_WEBWORKER_FACTORY, NetworkStatusService, NotFoundComponent, NotificationService, NowraptextDirective, NumberBaseComponent, NumberControlInfoModel, NumbersOnlyInputDirective, NumeralPipe, PageBaseComponent, PageWithFormHandlerBaseComponent, PdfMimeType, PictureFieldSourcePipe, PictureFileControlInfoModel, PlaceHolderDirective, PortalDynamicPageResolver, PortalFormPageResolver, PortalPageComponent, PortalPageResolver, PortalPageSidebarComponent, PortalReportPageResolver, PortalService, PreventDefaulEvent, PreventDefaultDirective, PromptUpdateService, RabetehAkseTakiListiControlInfoModel, RedirectHomeGuard, RedirectReportNavigatorCommandComponent, RelatedReportControlInfoModel, RelationListControlInfoModel, RemoveNewlinePipe, RenderUlvPaginDirective, RenderUlvViewerDirective, ReplacePipe, ReportBaseComponent, ReportBaseInfo, ReportCalendarModel, ReportContainerComponent, ReportExtraInfo, ReportField, ReportFormModel, ReportItemBaseComponent, ReportListModel, ReportModel, ReportTreeModel, ReportViewBaseComponent, ReportViewColumn, ResizableComponent, ResizableDirective, ResizableModule, ReversePipe, RichStringControlInfoModel, RootPageComponent, RootPortalComponent, RouteFormChangeDirective, RoutingService, RowDataOption, RowNumberPipe, SanitizeTextPipe, SaveScrollPositionService, SelectionMode, SeperatorFixPipe, ServiceWorkerCommuncationService, ServiceWorkerNotificationService, SingleRelationControlInfoModel, SortDirection, SortPipe, SortSetting, StopPropagationDirective, StringControlInfoModel, SubformControlInfoModel, SystemBaseComponent, TOAST_SERVICE, TableHeaderWidthMode, TableResizerDirective, ThImageOrIconePipe, TileGroupBreadcrumResolver, TilePropsComponent, TlbButtonsPipe, TotalSummaryPipe, UiService, UlvCommandDirective, UlvMainService, UntilInViewDirective, UploadService, VideoMimeType, VideoRecordingService, ViewBase, VisibleValuePipe, WordMimeType, WorfkflowwChoiceCommandDirective, availablePrefixes, calcContextMenuWidth, calculateColumnContent, calculateColumnWidth, calculateColumnWidthFitToContainer, calculateFreeColumnSize, calculateMoDataListContentWidthByColumnName, cancelRequestAnimationFrame, createFormPanelMetaConditions, createGridEditorFormPanel, easeInOutCubic, elementInViewport2, enumValueToStringSize, executeUlvCommandHandler, forbiddenValidator, formRoutes, formatBytes, fromIntersectionObserver, genrateInlineMoId, getAllItemsPerChildren, getColumnValueOfMoDataList, getComponentDefined, getControlList, getControlSizeMode, getDateService, getDeviceIsDesktop, getDeviceIsMobile, getDeviceIsPhone, getDeviceIsTablet, getFieldValue, getFormSettings, getGridSettings, getHeaderValue, getIcon, getImagePath, getLabelWidth, getLayout94ObjectInfo, getLayoutControl, getNewMoGridEditor, getParentHeight, getRequestAnimationFrame, getResetGridSettings, getTargetRect, getUniqueId, getValidExtension, isFF, isFirefox, isFunction, isImage, isInLocalMode, isSafari, isTargetWindow, measureText, mobile_regex, number_only, requestAnimationFramePolyfill, setColumnWidthByMaxMoContentWidth, setOneDepthLevel, setTableThWidth, shallowEqual, stopPropagation, throwIfAlreadyLoaded, toNumber };
|
|
14594
14947
|
//# sourceMappingURL=barsa-novin-ray-core.mjs.map
|