import {
ConfigState,
ChangePassword,
StartLoader,
StopLoader,
GetProfile,
UpdateProfile,
ProfileState,
RestOccurError,
LazyLoadService,
CoreModule,
} from '@abp/ng.core';
import {
Component,
EventEmitter,
Renderer2,
Input,
Output,
ViewChild,
Injectable,
ɵɵdefineInjectable,
ɵɵinject,
ElementRef,
ChangeDetectorRef,
ContentChild,
ViewChildren,
NgZone,
ApplicationRef,
ComponentFactoryResolver,
RendererFactory2,
Injector,
INJECTOR,
APP_INITIALIZER,
NgModule,
} from '@angular/core';
import { MessageService } from 'primeng/components/common/messageservice';
import { ToastModule } from 'primeng/toast';
import { Subject, ReplaySubject, BehaviorSubject, fromEvent, interval, timer, Observable, forkJoin } from 'rxjs';
import { Router, NavigationStart, NavigationEnd, NavigationError } from '@angular/router';
import { Store, ofActionSuccessful, Actions, Select } from '@ngxs/store';
import { Validators, FormBuilder } from '@angular/forms';
import { comparePasswords, takeUntilDestroy, NgxValidateCoreModule } from '@ngx-validate/core';
import snq from 'snq';
import { finalize, takeUntil, debounceTime, filter, withLatestFrom, take } from 'rxjs/operators';
import { animation, style, animate, trigger, transition, useAnimation, keyframes, state } from '@angular/animations';
import { __decorate, __metadata } from 'tslib';
import { HttpErrorResponse } from '@angular/common/http';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class BreadcrumbComponent {
/**
* @param {?} router
* @param {?} store
*/
constructor(router, store) {
this.router = router;
this.store = store;
this.segments = [];
this.show = !!this.store.selectSnapshot(
/**
* @param {?} state
* @return {?}
*/
state => state.LeptonLayoutState,
);
}
/**
* @return {?}
*/
ngOnInit() {
/** @type {?} */
const splittedUrl = this.router.url.split('/').filter(
/**
* @param {?} chunk
* @return {?}
*/
(chunk => chunk),
);
/** @type {?} */
const currentUrl = this.store.selectSnapshot(ConfigState.getRoute(splittedUrl[0]));
this.segments.push(currentUrl.name);
if (splittedUrl.length > 1) {
const [, ...arr] = splittedUrl;
/** @type {?} */
let childRoute = currentUrl;
for (let i = 0; i < arr.length; i++) {
/** @type {?} */
const element = arr[i];
childRoute = childRoute.children.find(
/**
* @param {?} child
* @return {?}
*/
child => child.path === element,
);
this.segments.push(childRoute.name);
}
}
}
}
BreadcrumbComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-breadcrumb',
template:
'
\n - \n \n
\n - \n {{ segment | abpLocalization }}\n
\n
\n',
},
],
},
];
/** @nocollapse */
BreadcrumbComponent.ctorParameters = () => [{ type: Router }, { type: Store }];
if (false) {
/** @type {?} */
BreadcrumbComponent.prototype.show;
/** @type {?} */
BreadcrumbComponent.prototype.segments;
/**
* @type {?}
* @private
*/
BreadcrumbComponent.prototype.router;
/**
* @type {?}
* @private
*/
BreadcrumbComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ButtonComponent {
/**
* @param {?} renderer
*/
constructor(renderer) {
this.renderer = renderer;
this.buttonClass = 'btn btn-primary';
this.loading = false;
this.disabled = false;
// tslint:disable-next-line: no-output-native
this.click = new EventEmitter();
// tslint:disable-next-line: no-output-native
this.focus = new EventEmitter();
// tslint:disable-next-line: no-output-native
this.blur = new EventEmitter();
/**
* @deprecated Use buttonType instead. To be deleted in v1
*/
this.type = 'button';
}
/**
* @return {?}
*/
get icon() {
return `${this.loading ? 'fa fa-spinner fa-spin' : this.iconClass || 'd-none'}`;
}
/**
* @return {?}
*/
ngOnInit() {
if (this.attributes) {
Object.keys(this.attributes).forEach(
/**
* @param {?} key
* @return {?}
*/
key => {
this.renderer.setAttribute(this.buttonRef.nativeElement, key, this.attributes[key]);
},
);
}
}
}
ButtonComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-button',
// tslint:disable-next-line: component-max-inline-declarations
template: `
`,
},
],
},
];
/** @nocollapse */
ButtonComponent.ctorParameters = () => [{ type: Renderer2 }];
ButtonComponent.propDecorators = {
buttonClass: [{ type: Input }],
buttonType: [{ type: Input }],
iconClass: [{ type: Input }],
loading: [{ type: Input }],
disabled: [{ type: Input }],
attributes: [{ type: Input }],
click: [{ type: Output }],
focus: [{ type: Output }],
blur: [{ type: Output }],
buttonRef: [{ type: ViewChild, args: ['button', { static: true }] }],
type: [{ type: Input }],
};
if (false) {
/** @type {?} */
ButtonComponent.prototype.buttonClass;
/** @type {?} */
ButtonComponent.prototype.buttonType;
/** @type {?} */
ButtonComponent.prototype.iconClass;
/** @type {?} */
ButtonComponent.prototype.loading;
/** @type {?} */
ButtonComponent.prototype.disabled;
/** @type {?} */
ButtonComponent.prototype.attributes;
/** @type {?} */
ButtonComponent.prototype.click;
/** @type {?} */
ButtonComponent.prototype.focus;
/** @type {?} */
ButtonComponent.prototype.blur;
/** @type {?} */
ButtonComponent.prototype.buttonRef;
/**
* @deprecated Use buttonType instead. To be deleted in v1
* @type {?}
*/
ButtonComponent.prototype.type;
/**
* @type {?}
* @private
*/
ButtonComponent.prototype.renderer;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
* @template T
*/
class AbstractToaster {
/**
* @param {?} messageService
*/
constructor(messageService) {
this.messageService = messageService;
this.key = 'abpToast';
this.sticky = false;
}
/**
* @param {?} message
* @param {?} title
* @param {?=} options
* @return {?}
*/
info(message, title, options) {
return this.show(message, title, 'info', options);
}
/**
* @param {?} message
* @param {?} title
* @param {?=} options
* @return {?}
*/
success(message, title, options) {
return this.show(message, title, 'success', options);
}
/**
* @param {?} message
* @param {?} title
* @param {?=} options
* @return {?}
*/
warn(message, title, options) {
return this.show(message, title, 'warn', options);
}
/**
* @param {?} message
* @param {?} title
* @param {?=} options
* @return {?}
*/
error(message, title, options) {
return this.show(message, title, 'error', options);
}
/**
* @protected
* @param {?} message
* @param {?} title
* @param {?} severity
* @param {?=} options
* @return {?}
*/
show(message, title, severity, options) {
this.messageService.clear(this.key);
this.messageService.add(
Object.assign(
{ severity, detail: message || '', summary: title || '' },
options,
{ key: this.key },
typeof (options || /** @type {?} */ ({})).sticky === 'undefined' && { sticky: this.sticky },
),
);
this.status$ = new Subject();
return this.status$;
}
/**
* @param {?=} status
* @return {?}
*/
clear(status) {
this.messageService.clear(this.key);
this.status$.next(status || 'dismiss' /* dismiss */);
this.status$.complete();
}
}
if (false) {
/** @type {?} */
AbstractToaster.prototype.status$;
/** @type {?} */
AbstractToaster.prototype.key;
/** @type {?} */
AbstractToaster.prototype.sticky;
/**
* @type {?}
* @protected
*/
AbstractToaster.prototype.messageService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ToasterService extends AbstractToaster {
/**
* @param {?} messages
* @return {?}
*/
addAll(messages) {
this.messageService.addAll(
messages.map(
/**
* @param {?} message
* @return {?}
*/
message => Object.assign({ key: this.key }, message),
),
);
}
}
ToasterService.decorators = [{ type: Injectable, args: [{ providedIn: 'root' }] }];
/** @nocollapse */ ToasterService.ngInjectableDef = ɵɵdefineInjectable({
factory: function ToasterService_Factory() {
return new ToasterService(ɵɵinject(MessageService));
},
token: ToasterService,
providedIn: 'root',
});
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
const { minLength, required } = Validators;
/** @type {?} */
const PASSWORD_FIELDS = ['newPassword', 'repeatNewPassword'];
class ChangePasswordComponent {
/**
* @param {?} fb
* @param {?} store
* @param {?} toasterService
*/
constructor(fb, store, toasterService) {
this.fb = fb;
this.store = store;
this.toasterService = toasterService;
this.visibleChange = new EventEmitter();
this.modalBusy = false;
this.mapErrorsFn
/**
* @param {?} errors
* @param {?} groupErrors
* @param {?} control
* @return {?}
*/ = (errors, groupErrors, control) => {
if (PASSWORD_FIELDS.indexOf(control.name) < 0) return errors;
return errors.concat(
groupErrors.filter(
/**
* @param {?} __0
* @return {?}
*/
({ key }) => key === 'passwordMismatch',
),
);
};
}
/**
* @return {?}
*/
get visible() {
return this._visible;
}
/**
* @param {?} value
* @return {?}
*/
set visible(value) {
this._visible = value;
this.visibleChange.emit(value);
}
/**
* @return {?}
*/
ngOnInit() {
this.form = this.fb.group(
{
password: ['', required],
newPassword: ['', required],
repeatNewPassword: ['', required],
},
{
validators: [comparePasswords(PASSWORD_FIELDS)],
},
);
}
/**
* @return {?}
*/
onSubmit() {
if (this.form.invalid) return;
this.modalBusy = true;
this.store
.dispatch(
new ChangePassword({
currentPassword: this.form.get('password').value,
newPassword: this.form.get('newPassword').value,
}),
)
.pipe(
finalize(
/**
* @return {?}
*/
() => {
this.modalBusy = false;
},
),
)
.subscribe({
/**
* @return {?}
*/
next: () => {
this.visible = false;
this.form.reset();
},
/**
* @param {?} err
* @return {?}
*/
error: err => {
this.toasterService.error(
snq(
/**
* @return {?}
*/
() => err.error.error.message,
'AbpAccount::DefaultErrorMessage',
),
'Error',
{
life: 7000,
},
);
},
});
}
/**
* @return {?}
*/
openModal() {
this.visible = true;
}
/**
* @param {?} __0
* @return {?}
*/
ngOnChanges({ visible }) {
if (!visible) return;
if (visible.currentValue) {
this.openModal();
} else if (visible.currentValue === false && this.visible) {
this.visible = false;
}
}
}
ChangePasswordComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-change-password',
template:
'\n \n {{ \'AbpIdentity::ChangePassword\' | abpLocalization }}
\n \n \n \n \n \n \n {{\n \'AbpIdentity::Save\' | abpLocalization\n }}\n \n\n',
},
],
},
];
/** @nocollapse */
ChangePasswordComponent.ctorParameters = () => [{ type: FormBuilder }, { type: Store }, { type: ToasterService }];
ChangePasswordComponent.propDecorators = {
visible: [{ type: Input }],
visibleChange: [{ type: Output }],
modalContent: [{ type: ViewChild, args: ['modalContent', { static: false }] }],
};
if (false) {
/**
* @type {?}
* @protected
*/
ChangePasswordComponent.prototype._visible;
/** @type {?} */
ChangePasswordComponent.prototype.visibleChange;
/** @type {?} */
ChangePasswordComponent.prototype.modalContent;
/** @type {?} */
ChangePasswordComponent.prototype.form;
/** @type {?} */
ChangePasswordComponent.prototype.modalBusy;
/** @type {?} */
ChangePasswordComponent.prototype.mapErrorsFn;
/**
* @type {?}
* @private
*/
ChangePasswordComponent.prototype.fb;
/**
* @type {?}
* @private
*/
ChangePasswordComponent.prototype.store;
/**
* @type {?}
* @private
*/
ChangePasswordComponent.prototype.toasterService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} count
* @return {?}
*/
function getRandomBackgroundColor(count) {
/** @type {?} */
const colors = [];
for (let i = 0; i < count; i++) {
/** @type {?} */
const r = ((i + 5) * (i + 5) * 474) % 255;
/** @type {?} */
const g = ((i + 5) * (i + 5) * 1600) % 255;
/** @type {?} */
const b = ((i + 5) * (i + 5) * 84065) % 255;
colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');
}
return colors;
}
/** @type {?} */
const chartJsLoaded$ = new ReplaySubject(1);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ChartComponent {
/**
* @param {?} el
* @param {?} cdRef
*/
constructor(el, cdRef) {
this.el = el;
this.cdRef = cdRef;
this.options = {};
this.plugins = [];
this.responsive = true;
// tslint:disable-next-line: no-output-on-prefix
this.onDataSelect = new EventEmitter();
this.initialized = new BehaviorSubject(this);
this.onCanvasClick
/**
* @param {?} event
* @return {?}
*/ = event => {
if (this.chart) {
/** @type {?} */
const element = this.chart.getElementAtEvent(event);
/** @type {?} */
const dataset = this.chart.getDatasetAtEvent(event);
if (element && element[0] && dataset) {
this.onDataSelect.emit({
originalEvent: event,
element: element[0],
dataset,
});
}
}
};
this.initChart
/**
* @return {?}
*/ = () => {
/** @type {?} */
const opts = this.options || {};
opts.responsive = this.responsive;
// allows chart to resize in responsive mode
if (opts.responsive && (this.height || this.width)) {
opts.maintainAspectRatio = false;
}
this.chart = new Chart(this.el.nativeElement.children[0].children[0], {
type: this.type,
data: this.data,
options: this.options,
plugins: this.plugins,
});
this.cdRef.detectChanges();
};
this.generateLegend
/**
* @return {?}
*/ = () => {
if (this.chart) {
return this.chart.generateLegend();
}
};
this.refresh
/**
* @return {?}
*/ = () => {
if (this.chart) {
this.chart.update();
this.cdRef.detectChanges();
}
};
this.reinit
/**
* @return {?}
*/ = () => {
if (this.chart) {
this.chart.destroy();
this.initChart();
}
};
}
/**
* @return {?}
*/
get data() {
return this._data;
}
/**
* @param {?} val
* @return {?}
*/
set data(val) {
this._data = val;
this.reinit();
}
/**
* @return {?}
*/
get canvas() {
return this.el.nativeElement.children[0].children[0];
}
/**
* @return {?}
*/
get base64Image() {
return this.chart.toBase64Image();
}
/**
* @return {?}
*/
ngAfterViewInit() {
chartJsLoaded$.subscribe(
/**
* @return {?}
*/
() => {
try {
// tslint:disable-next-line: no-unused-expression
Chart;
} catch (error) {
console.error(`Chart is not found. Import the Chart from app.module like shown below:
import('chart.js');
`);
return;
}
this.initChart();
this._initialized = true;
},
);
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this.chart) {
this.chart.destroy();
this._initialized = false;
this.chart = null;
}
}
}
ChartComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-chart',
template:
'\n \n
\n',
},
],
},
];
/** @nocollapse */
ChartComponent.ctorParameters = () => [{ type: ElementRef }, { type: ChangeDetectorRef }];
ChartComponent.propDecorators = {
type: [{ type: Input }],
options: [{ type: Input }],
plugins: [{ type: Input }],
width: [{ type: Input }],
height: [{ type: Input }],
responsive: [{ type: Input }],
onDataSelect: [{ type: Output }],
initialized: [{ type: Output }],
data: [{ type: Input }],
};
if (false) {
/** @type {?} */
ChartComponent.prototype.type;
/** @type {?} */
ChartComponent.prototype.options;
/** @type {?} */
ChartComponent.prototype.plugins;
/** @type {?} */
ChartComponent.prototype.width;
/** @type {?} */
ChartComponent.prototype.height;
/** @type {?} */
ChartComponent.prototype.responsive;
/** @type {?} */
ChartComponent.prototype.onDataSelect;
/** @type {?} */
ChartComponent.prototype.initialized;
/**
* @type {?}
* @private
*/
ChartComponent.prototype._initialized;
/** @type {?} */
ChartComponent.prototype._data;
/** @type {?} */
ChartComponent.prototype.chart;
/** @type {?} */
ChartComponent.prototype.onCanvasClick;
/** @type {?} */
ChartComponent.prototype.initChart;
/** @type {?} */
ChartComponent.prototype.generateLegend;
/** @type {?} */
ChartComponent.prototype.refresh;
/** @type {?} */
ChartComponent.prototype.reinit;
/** @type {?} */
ChartComponent.prototype.el;
/**
* @type {?}
* @private
*/
ChartComponent.prototype.cdRef;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ConfirmationService extends AbstractToaster {
/**
* @param {?} messageService
*/
constructor(messageService) {
super(messageService);
this.messageService = messageService;
this.key = 'abpConfirmation';
this.sticky = true;
this.destroy$ = new Subject();
}
/**
* @param {?} message
* @param {?} title
* @param {?} severity
* @param {?=} options
* @return {?}
*/
show(message, title, severity, options) {
this.listenToEscape();
return super.show(message, title, severity, options);
}
/**
* @param {?=} status
* @return {?}
*/
clear(status) {
super.clear(status);
this.destroy$.next();
}
/**
* @return {?}
*/
listenToEscape() {
fromEvent(document, 'keyup')
.pipe(
takeUntil(this.destroy$),
debounceTime(150),
filter(
/**
* @param {?} key
* @return {?}
*/
key => key && key.code === 'Escape',
),
)
.subscribe(
/**
* @param {?} _
* @return {?}
*/
_ => {
this.clear();
},
);
}
}
ConfirmationService.decorators = [{ type: Injectable, args: [{ providedIn: 'root' }] }];
/** @nocollapse */
ConfirmationService.ctorParameters = () => [{ type: MessageService }];
/** @nocollapse */ ConfirmationService.ngInjectableDef = ɵɵdefineInjectable({
factory: function ConfirmationService_Factory() {
return new ConfirmationService(ɵɵinject(MessageService));
},
token: ConfirmationService,
providedIn: 'root',
});
if (false) {
/** @type {?} */
ConfirmationService.prototype.key;
/** @type {?} */
ConfirmationService.prototype.sticky;
/** @type {?} */
ConfirmationService.prototype.destroy$;
/**
* @type {?}
* @protected
*/
ConfirmationService.prototype.messageService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ConfirmationComponent {
/**
* @param {?} confirmationService
*/
constructor(confirmationService) {
this.confirmationService = confirmationService;
this.confirm = 'confirm' /* confirm */;
this.reject = 'reject' /* reject */;
this.dismiss = 'dismiss' /* dismiss */;
}
/**
* @param {?} status
* @return {?}
*/
close(status) {
this.confirmationService.clear(status);
}
}
ConfirmationComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-confirmation',
// tslint:disable-next-line: component-max-inline-declarations
template: `
{{ message.summary | abpLocalization: message.titleLocalizationParams }}
{{ message.detail | abpLocalization: message.messageLocalizationParams }}
`,
},
],
},
];
/** @nocollapse */
ConfirmationComponent.ctorParameters = () => [{ type: ConfirmationService }];
if (false) {
/** @type {?} */
ConfirmationComponent.prototype.confirm;
/** @type {?} */
ConfirmationComponent.prototype.reject;
/** @type {?} */
ConfirmationComponent.prototype.dismiss;
/**
* @type {?}
* @private
*/
ConfirmationComponent.prototype.confirmationService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ErrorComponent {
constructor() {
this.title = 'Oops!';
this.details = 'Sorry, an error has occured.';
}
/**
* @return {?}
*/
destroy() {
this.renderer.removeChild(this.host, this.elementRef.nativeElement);
}
}
ErrorComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-error',
template:
'\n
\n
\n
\n
\n
\n {{ title | abpLocalization }}\n
\n
\n {{ details | abpLocalization }}\n
\n
\n
\n
\n
\n
\n',
styles: [
'.error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}',
],
},
],
},
];
if (false) {
/** @type {?} */
ErrorComponent.prototype.title;
/** @type {?} */
ErrorComponent.prototype.details;
/** @type {?} */
ErrorComponent.prototype.renderer;
/** @type {?} */
ErrorComponent.prototype.elementRef;
/** @type {?} */
ErrorComponent.prototype.host;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class LoaderBarComponent {
/**
* @param {?} actions
* @param {?} router
* @param {?} cdRef
*/
constructor(actions, router, cdRef) {
this.actions = actions;
this.router = router;
this.cdRef = cdRef;
this.containerClass = 'abp-loader-bar';
this.color = '#77b6ff';
this.isLoading = false;
this.progressLevel = 0;
this.filter
/**
* @param {?} action
* @return {?}
*/ = action => action.payload.url.indexOf('openid-configuration') < 0;
actions
.pipe(
ofActionSuccessful(StartLoader, StopLoader),
filter(this.filter),
takeUntilDestroy(this),
)
.subscribe(
/**
* @param {?} action
* @return {?}
*/
action => {
if (action instanceof StartLoader) this.startLoading();
else this.stopLoading();
},
);
router.events
.pipe(
filter(
/**
* @param {?} event
* @return {?}
*/
event =>
event instanceof NavigationStart || event instanceof NavigationEnd || event instanceof NavigationError,
),
takeUntilDestroy(this),
)
.subscribe(
/**
* @param {?} event
* @return {?}
*/
event => {
if (event instanceof NavigationStart) this.startLoading();
else this.stopLoading();
},
);
}
/**
* @return {?}
*/
get boxShadow() {
return `0 0 10px rgba(${this.color}, 0.5)`;
}
/**
* @return {?}
*/
ngOnDestroy() {
this.interval.unsubscribe();
}
/**
* @return {?}
*/
startLoading() {
if (this.isLoading || this.progressLevel !== 0) return;
this.isLoading = true;
this.interval = interval(350).subscribe(
/**
* @return {?}
*/
() => {
if (this.progressLevel < 75) {
this.progressLevel += Math.random() * 10;
} else if (this.progressLevel < 90) {
this.progressLevel += 0.4;
} else if (this.progressLevel < 100) {
this.progressLevel += 0.1;
} else {
this.interval.unsubscribe();
}
this.cdRef.detectChanges();
},
);
}
/**
* @return {?}
*/
stopLoading() {
this.interval.unsubscribe();
this.progressLevel = 100;
this.isLoading = false;
if (this.timer && !this.timer.closed) return;
this.timer = timer(820).subscribe(
/**
* @return {?}
*/
() => {
this.progressLevel = 0;
this.cdRef.detectChanges();
},
);
}
}
LoaderBarComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-loader-bar',
template: `
`,
styles: [
'.abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0;transition:width .4s}',
],
},
],
},
];
/** @nocollapse */
LoaderBarComponent.ctorParameters = () => [{ type: Actions }, { type: Router }, { type: ChangeDetectorRef }];
LoaderBarComponent.propDecorators = {
containerClass: [{ type: Input }],
color: [{ type: Input }],
isLoading: [{ type: Input }],
filter: [{ type: Input }],
};
if (false) {
/** @type {?} */
LoaderBarComponent.prototype.containerClass;
/** @type {?} */
LoaderBarComponent.prototype.color;
/** @type {?} */
LoaderBarComponent.prototype.isLoading;
/** @type {?} */
LoaderBarComponent.prototype.progressLevel;
/** @type {?} */
LoaderBarComponent.prototype.interval;
/** @type {?} */
LoaderBarComponent.prototype.timer;
/** @type {?} */
LoaderBarComponent.prototype.filter;
/**
* @type {?}
* @private
*/
LoaderBarComponent.prototype.actions;
/**
* @type {?}
* @private
*/
LoaderBarComponent.prototype.router;
/**
* @type {?}
* @private
*/
LoaderBarComponent.prototype.cdRef;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const fadeIn = animation([style({ opacity: '0' }), animate('{{ time}} {{ easing }}', style({ opacity: '1' }))], {
params: { time: '350ms', easing: 'ease' },
});
/** @type {?} */
const fadeOut = animation([style({ opacity: '1' }), animate('{{ time}} {{ easing }}', style({ opacity: '0' }))], {
params: { time: '350ms', easing: 'ease' },
});
/** @type {?} */
const fadeInDown = animation(
[
style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateY(0)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeInUp = animation(
[
style({ opacity: '0', transform: '{{ transform }} translateY(20px)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateY(0)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeInLeft = animation(
[
style({ opacity: '0', transform: '{{ transform }} translateX(20px)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateX(0)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeInRight = animation(
[
style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateX(0)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeOutDown = animation(
[
style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateY(20px)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeOutUp = animation(
[
style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeOutLeft = animation(
[
style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateX(20px)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/** @type {?} */
const fadeOutRight = animation(
[
style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),
animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' })),
],
{ params: { time: '350ms', easing: 'ease', transform: '' } },
);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const fadeAnimation = trigger('fade', [
transition(':enter', useAnimation(fadeIn)),
transition(':leave', useAnimation(fadeOut)),
]);
/** @type {?} */
const dialogAnimation = trigger('dialog', [
transition(':enter', useAnimation(fadeInDown)),
transition(':leave', useAnimation(fadeOut)),
]);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ModalComponent {
/**
* @param {?} renderer
* @param {?} confirmationService
*/
constructor(renderer, confirmationService) {
this.renderer = renderer;
this.confirmationService = confirmationService;
this.centered = false;
this.modalClass = '';
this.size = 'lg';
this.visibleChange = new EventEmitter();
this.init = new EventEmitter();
this.appear = new EventEmitter();
this.disappear = new EventEmitter();
this._visible = false;
this._busy = false;
this.isModalOpen = false;
this.isConfirmationOpen = false;
this.destroy$ = new Subject();
}
/**
* @return {?}
*/
get visible() {
return this._visible;
}
/**
* @param {?} value
* @return {?}
*/
set visible(value) {
if (typeof value !== 'boolean') return;
this.isModalOpen = value;
this._visible = value;
this.visibleChange.emit(value);
if (value) {
setTimeout(
/**
* @return {?}
*/
() => this.listen(),
0,
);
this.renderer.addClass(document.body, 'modal-open');
this.appear.emit();
} else {
this.renderer.removeClass(document.body, 'modal-open');
this.disappear.emit();
}
}
/**
* @return {?}
*/
get busy() {
return this._busy;
}
/**
* @param {?} value
* @return {?}
*/
set busy(value) {
if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {
this.abpSubmit.loading = value;
}
this._busy = value;
}
/**
* @return {?}
*/
ngOnDestroy() {
this.destroy$.next();
}
/**
* @return {?}
*/
close() {
if (this.busy) return;
/** @type {?} */
const nodes = getFlatNodes(
/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')).childNodes,
);
if (hasNgDirty(nodes)) {
if (this.isConfirmationOpen) return;
this.isConfirmationOpen = true;
this.confirmationService
.warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')
.subscribe(
/**
* @param {?} status
* @return {?}
*/
status => {
this.isConfirmationOpen = false;
if (status === 'confirm' /* confirm */) {
this.visible = false;
}
},
);
} else {
this.visible = false;
}
}
/**
* @return {?}
*/
listen() {
fromEvent(document, 'keyup')
.pipe(
takeUntil(this.destroy$),
debounceTime(150),
filter(
/**
* @param {?} key
* @return {?}
*/
key => key && key.code === 'Escape',
),
)
.subscribe(
/**
* @param {?} _
* @return {?}
*/
_ => {
this.close();
},
);
setTimeout(
/**
* @return {?}
*/
() => {
if (!this.abpClose) return;
fromEvent(this.abpClose.nativeElement, 'click')
.pipe(
takeUntil(this.destroy$),
filter(
/**
* @return {?}
*/
() => !!this.modalContent,
),
)
.subscribe(
/**
* @return {?}
*/
() => this.close(),
);
},
0,
);
this.init.emit();
}
}
ModalComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-modal',
template:
'\n \n\n',
animations: [fadeAnimation, dialogAnimation],
},
],
},
];
/** @nocollapse */
ModalComponent.ctorParameters = () => [{ type: Renderer2 }, { type: ConfirmationService }];
ModalComponent.propDecorators = {
visible: [{ type: Input }],
busy: [{ type: Input }],
centered: [{ type: Input }],
modalClass: [{ type: Input }],
size: [{ type: Input }],
abpSubmit: [{ type: ContentChild, args: [ButtonComponent, { static: false, read: ButtonComponent }] }],
abpHeader: [{ type: ContentChild, args: ['abpHeader', { static: false }] }],
abpBody: [{ type: ContentChild, args: ['abpBody', { static: false }] }],
abpFooter: [{ type: ContentChild, args: ['abpFooter', { static: false }] }],
abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef }] }],
modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false }] }],
abpButtons: [{ type: ViewChildren, args: ['abp-button'] }],
visibleChange: [{ type: Output }],
init: [{ type: Output }],
appear: [{ type: Output }],
disappear: [{ type: Output }],
};
if (false) {
/** @type {?} */
ModalComponent.prototype.centered;
/** @type {?} */
ModalComponent.prototype.modalClass;
/** @type {?} */
ModalComponent.prototype.size;
/** @type {?} */
ModalComponent.prototype.abpSubmit;
/** @type {?} */
ModalComponent.prototype.abpHeader;
/** @type {?} */
ModalComponent.prototype.abpBody;
/** @type {?} */
ModalComponent.prototype.abpFooter;
/** @type {?} */
ModalComponent.prototype.abpClose;
/** @type {?} */
ModalComponent.prototype.modalContent;
/** @type {?} */
ModalComponent.prototype.abpButtons;
/** @type {?} */
ModalComponent.prototype.visibleChange;
/** @type {?} */
ModalComponent.prototype.init;
/** @type {?} */
ModalComponent.prototype.appear;
/** @type {?} */
ModalComponent.prototype.disappear;
/** @type {?} */
ModalComponent.prototype._visible;
/** @type {?} */
ModalComponent.prototype._busy;
/** @type {?} */
ModalComponent.prototype.isModalOpen;
/** @type {?} */
ModalComponent.prototype.isConfirmationOpen;
/** @type {?} */
ModalComponent.prototype.destroy$;
/**
* @type {?}
* @private
*/
ModalComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
ModalComponent.prototype.confirmationService;
}
/**
* @param {?} nodes
* @return {?}
*/
function getFlatNodes(nodes) {
return Array.from(nodes).reduce(
/**
* @param {?} acc
* @param {?} val
* @return {?}
*/
(acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])],
[],
);
}
/**
* @param {?} nodes
* @return {?}
*/
function hasNgDirty(nodes) {
return (
nodes.findIndex(
/**
* @param {?} node
* @return {?}
*/
node => (node.className || '').indexOf('ng-dirty') > -1,
) > -1
);
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
const { maxLength, required: required$1, email } = Validators;
class ProfileComponent {
/**
* @param {?} fb
* @param {?} store
*/
constructor(fb, store) {
this.fb = fb;
this.store = store;
this.visibleChange = new EventEmitter();
this.modalBusy = false;
}
/**
* @return {?}
*/
get visible() {
return this._visible;
}
/**
* @param {?} value
* @return {?}
*/
set visible(value) {
this._visible = value;
this.visibleChange.emit(value);
}
/**
* @return {?}
*/
buildForm() {
this.store
.dispatch(new GetProfile())
.pipe(
withLatestFrom(this.profile$),
take(1),
)
.subscribe(
/**
* @param {?} __0
* @return {?}
*/
([, profile]) => {
this.form = this.fb.group({
userName: [profile.userName, [required$1, maxLength(256)]],
email: [profile.email, [required$1, email, maxLength(256)]],
name: [profile.name || '', [maxLength(64)]],
surname: [profile.surname || '', [maxLength(64)]],
phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],
});
},
);
}
/**
* @return {?}
*/
submit() {
if (this.form.invalid) return;
this.modalBusy = true;
this.store.dispatch(new UpdateProfile(this.form.value)).subscribe(
/**
* @return {?}
*/
() => {
this.modalBusy = false;
this.visible = false;
this.form.reset();
},
);
}
/**
* @return {?}
*/
openModal() {
this.buildForm();
this.visible = true;
}
/**
* @param {?} __0
* @return {?}
*/
ngOnChanges({ visible }) {
if (!visible) return;
if (visible.currentValue) {
this.openModal();
} else if (visible.currentValue === false && this.visible) {
this.visible = false;
}
}
}
ProfileComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-profile',
template:
'\n \n {{ \'AbpIdentity::PersonalInfo\' | abpLocalization }}
\n \n \n \n \n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n\n',
},
],
},
];
/** @nocollapse */
ProfileComponent.ctorParameters = () => [{ type: FormBuilder }, { type: Store }];
ProfileComponent.propDecorators = {
visible: [{ type: Input }],
visibleChange: [{ type: Output }],
};
__decorate(
[Select(ProfileState.getProfile), __metadata('design:type', Observable)],
ProfileComponent.prototype,
'profile$',
void 0,
);
if (false) {
/**
* @type {?}
* @protected
*/
ProfileComponent.prototype._visible;
/** @type {?} */
ProfileComponent.prototype.visibleChange;
/** @type {?} */
ProfileComponent.prototype.profile$;
/** @type {?} */
ProfileComponent.prototype.form;
/** @type {?} */
ProfileComponent.prototype.modalBusy;
/**
* @type {?}
* @private
*/
ProfileComponent.prototype.fb;
/**
* @type {?}
* @private
*/
ProfileComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class ToastComponent {}
ToastComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-toast',
// tslint:disable-next-line: component-max-inline-declarations
template: `
{{ message.summary | abpLocalization: message.titleLocalizationParams }}
{{ message.detail | abpLocalization: message.messageLocalizationParams }}
`,
},
],
},
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class SortOrderIconComponent {
constructor() {
this.selectedKeyChange = new EventEmitter();
this.orderChange = new EventEmitter();
}
/**
* @param {?} value
* @return {?}
*/
set selectedKey(value) {
this._selectedKey = value;
this.selectedKeyChange.emit(value);
}
/**
* @return {?}
*/
get selectedKey() {
return this._selectedKey;
}
/**
* @param {?} value
* @return {?}
*/
set order(value) {
this._order = value;
this.orderChange.emit(value);
}
/**
* @return {?}
*/
get order() {
return this._order;
}
/**
* @return {?}
*/
get icon() {
if (!this.selectedKey) return 'fa-sort';
if (this.selectedKey === this.key) return `fa-sort-${this.order}`;
else return '';
}
/**
* @param {?} key
* @return {?}
*/
sort(key) {
this.selectedKey = key;
switch (this.order) {
case '':
this.order = 'asc';
break;
case 'asc':
this.order = 'desc';
this.orderChange.emit('desc');
break;
case 'desc':
this.order = '';
this.selectedKey = '';
break;
}
}
}
SortOrderIconComponent.decorators = [
{
type: Component,
args: [
{
selector: 'abp-sort-order-icon',
template: '\n \n\n',
},
],
},
];
SortOrderIconComponent.propDecorators = {
selectedKey: [{ type: Input }],
selectedKeyChange: [{ type: Output }],
key: [{ type: Input }],
order: [{ type: Input }],
orderChange: [{ type: Output }],
iconClass: [{ type: Input }],
};
if (false) {
/**
* @type {?}
* @private
*/
SortOrderIconComponent.prototype._order;
/**
* @type {?}
* @private
*/
SortOrderIconComponent.prototype._selectedKey;
/** @type {?} */
SortOrderIconComponent.prototype.selectedKeyChange;
/** @type {?} */
SortOrderIconComponent.prototype.key;
/** @type {?} */
SortOrderIconComponent.prototype.orderChange;
/** @type {?} */
SortOrderIconComponent.prototype.iconClass;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var styles = `
.is-invalid .form-control {
border-color: #dc3545;
border-style: solid !important;
}
.is-invalid .invalid-feedback,
.is-invalid + * .invalid-feedback {
display: block;
}
.data-tables-filter {
text-align: right;
}
.pointer {
cursor: pointer;
}
.navbar .dropdown-submenu a::after {
transform: rotate(-90deg);
position: absolute;
right: 16px;
top: 18px;
}
.navbar .dropdown-menu {
min-width: 215px;
}
.ui-table-scrollable-body::-webkit-scrollbar {
height: 5px !important;
}
.ui-table-scrollable-body::-webkit-scrollbar-track {
background: #ddd;
}
.ui-table-scrollable-body::-webkit-scrollbar-thumb {
background: #8a8686;
}
.modal.show {
display: block !important;
}
.modal-backdrop {
position: absolute !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
background-color: rgba(0, 0, 0, 0.6) !important;
z-index: 1040 !important;
}
.modal-dialog {
z-index: 1050 !important;
}
.abp-ellipsis-inline {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.abp-ellipsis {
overflow: hidden !important;
text-overflow: ellipsis;
white-space: nowrap;
}
.abp-toast .ui-toast-message {
box-sizing: border-box !important;
border: 2px solid transparent !important;
border-radius: 4px !important;
background-color: #f4f4f7 !important;
color: #1b1d29 !important;
}
.abp-toast .ui-toast-message-content {
padding: 10px !important;
}
.abp-toast .ui-toast-message-content .ui-toast-icon {
top: 0 !important;
left: 0 !important;
padding: 10px !important;
}
.abp-toast .ui-toast-summary {
margin: 0 !important;
font-weight: 700 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-error {
border-color: #ba1659 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-error .ui-toast-message-content .ui-toast-icon {
color: #ba1659 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-warning {
border-color: #ed5d98 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-warning .ui-toast-message-content .ui-toast-icon {
color: #ed5d98 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-success {
border-color: #1c9174 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-success .ui-toast-message-content .ui-toast-icon {
color: #1c9174 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-info {
border-color: #fccb31 !important;
}
.abp-toast .ui-toast-message.ui-toast-message-info .ui-toast-message-content .ui-toast-icon {
color: #fccb31 !important;
}
.abp-confirm .ui-toast-message {
box-sizing: border-box !important;
padding: 0px !important;
border:0 none !important;
border-radius: 4px !important;
background-color: #fff !important;
color: rgba(0, 0, 0, .65) !important;
font-family: "Poppins", sans-serif;
text-align: center !important;
}
.abp-confirm .ui-toast-message-content {
padding: 0px !important;
}
.abp-confirm .abp-confirm-icon {
margin: 32px 50px 5px !important;
color: #f8bb86 !important;
font-size: 52px !important;
}
.abp-confirm .ui-toast-close-icon {
display: none !important;
}
.abp-confirm .abp-confirm-summary {
display: block !important;
margin-bottom: 13px !important;
padding: 13px 16px 0px !important;
font-weight: 600 !important;
font-size: 18px !important;
}
.abp-confirm .abp-confirm-body {
display: inline-block !important;
padding: 0px 10px !important;
}
.abp-confirm .abp-confirm-footer {
display: block !important;
margin-top: 30px !important;
padding: 16px !important;
background-color: #f4f4f7 !important;
text-align: right !important;
}
.abp-confirm .abp-confirm-footer .btn {
margin-left: 10px !important;
}
.ui-widget-overlay {
z-index: 1000;
}
.color-white {
color: #FFF !important;
}
/* {
const { payload: err = /** @type {?} */ ({}) } = res;
/** @type {?} */
const body = snq(
/**
* @return {?}
*/
(() => /** @type {?} */ (err).error.error),
DEFAULT_ERROR_MESSAGES.defaultError.title,
);
if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {
/** @type {?} */
const confirmation$ = this.showError(null, null, body);
if (err.status === 401) {
confirmation$.subscribe(
/**
* @return {?}
*/
() => {
this.navigateToLogin();
},
);
}
} else {
switch (/** @type {?} */ (err).status) {
case 401:
this.showError(
DEFAULT_ERROR_MESSAGES.defaultError401.details,
DEFAULT_ERROR_MESSAGES.defaultError401.title,
).subscribe(
/**
* @return {?}
*/
() => this.navigateToLogin(),
);
break;
case 403:
this.createErrorComponent({
title: DEFAULT_ERROR_MESSAGES.defaultError403.title,
details: DEFAULT_ERROR_MESSAGES.defaultError403.details,
});
break;
case 404:
this.showError(
DEFAULT_ERROR_MESSAGES.defaultError404.details,
DEFAULT_ERROR_MESSAGES.defaultError404.title,
);
break;
case 500:
this.createErrorComponent({
title: DEFAULT_ERROR_MESSAGES.defaultError500.title,
details: DEFAULT_ERROR_MESSAGES.defaultError500.details,
});
break;
case 0:
if (/** @type {?} */ (err).statusText === 'Unknown Error') {
this.createErrorComponent({
title: DEFAULT_ERROR_MESSAGES.defaultErrorUnknown.title,
details: DEFAULT_ERROR_MESSAGES.defaultErrorUnknown.details,
});
}
break;
default:
this.showError(DEFAULT_ERROR_MESSAGES.defaultError.details, DEFAULT_ERROR_MESSAGES.defaultError.title);
break;
}
}
},
);
}
/**
* @private
* @param {?=} message
* @param {?=} title
* @param {?=} body
* @return {?}
*/
showError(message, title, body) {
if (body) {
if (body.details) {
message = body.details;
title = body.message;
} else {
message = body.message || DEFAULT_ERROR_MESSAGES.defaultError.title;
}
}
return this.confirmationService.error(message, title, {
hideCancelBtn: true,
yesCopy: 'OK',
});
}
/**
* @private
* @return {?}
*/
navigateToLogin() {
this.ngZone.run(
/**
* @return {?}
*/
() => {
this.router.navigate(['/account/login'], {
state: { redirectUrl: this.router.url },
});
},
);
}
/**
* @param {?} instance
* @return {?}
*/
createErrorComponent(instance) {
/** @type {?} */
const renderer = this.rendererFactory.createRenderer(null, null);
/** @type {?} */
const host = renderer.selectRootElement(document.body, true);
/** @type {?} */
const componentRef = this.cfRes.resolveComponentFactory(ErrorComponent).create(this.injector);
for (const key in componentRef.instance) {
if (componentRef.instance.hasOwnProperty(key)) {
componentRef.instance[key] = instance[key];
}
}
this.appRef.attachView(componentRef.hostView);
renderer.appendChild(host, /** @type {?} */ (componentRef.hostView).rootNodes[0]);
componentRef.instance.renderer = renderer;
componentRef.instance.elementRef = componentRef.location;
componentRef.instance.host = host;
}
}
ErrorHandler.decorators = [{ type: Injectable, args: [{ providedIn: 'root' }] }];
/** @nocollapse */
ErrorHandler.ctorParameters = () => [
{ type: Actions },
{ type: Router },
{ type: NgZone },
{ type: Store },
{ type: ConfirmationService },
{ type: ApplicationRef },
{ type: ComponentFactoryResolver },
{ type: RendererFactory2 },
{ type: Injector },
];
/** @nocollapse */ ErrorHandler.ngInjectableDef = ɵɵdefineInjectable({
factory: function ErrorHandler_Factory() {
return new ErrorHandler(
ɵɵinject(Actions),
ɵɵinject(Router),
ɵɵinject(NgZone),
ɵɵinject(Store),
ɵɵinject(ConfirmationService),
ɵɵinject(ApplicationRef),
ɵɵinject(ComponentFactoryResolver),
ɵɵinject(RendererFactory2),
ɵɵinject(INJECTOR),
);
},
token: ErrorHandler,
providedIn: 'root',
});
if (false) {
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.actions;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.router;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.ngZone;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.store;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.confirmationService;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.appRef;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.cfRes;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.rendererFactory;
/**
* @type {?}
* @private
*/
ErrorHandler.prototype.injector;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class TableEmptyMessageComponent {
constructor() {
this.colspan = 2;
this.localizationResource = 'AbpAccount';
this.localizationProp = 'NoDataAvailableInDatatable';
}
/**
* @return {?}
*/
get emptyMessage() {
return this.message || `${this.localizationResource}::${this.localizationProp}`;
}
}
TableEmptyMessageComponent.decorators = [
{
type: Component,
args: [
{
// tslint:disable-next-line: component-selector
selector: '[abp-table-empty-message]',
template: `
{{ emptyMessage | abpLocalization }}
|
`,
},
],
},
];
TableEmptyMessageComponent.propDecorators = {
colspan: [{ type: Input }],
message: [{ type: Input }],
localizationResource: [{ type: Input }],
localizationProp: [{ type: Input }],
};
if (false) {
/** @type {?} */
TableEmptyMessageComponent.prototype.colspan;
/** @type {?} */
TableEmptyMessageComponent.prototype.message;
/** @type {?} */
TableEmptyMessageComponent.prototype.localizationResource;
/** @type {?} */
TableEmptyMessageComponent.prototype.localizationProp;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} injector
* @return {?}
*/
function appendScript(injector) {
/** @type {?} */
const fn
/**
* @return {?}
*/ = (() => {
import('chart.js').then(
/**
* @return {?}
*/
() => chartJsLoaded$.next(true),
);
/** @type {?} */
const lazyLoadService = injector.get(LazyLoadService);
return forkJoin(
lazyLoadService.load(
null,
'style',
styles,
'head',
'afterbegin',
) /* lazyLoadService.load(null, 'script', scripts) */,
).toPromise();
});
return fn;
}
class ThemeSharedModule {
/**
* @return {?}
*/
static forRoot() {
return {
ngModule: ThemeSharedModule,
providers: [
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector, ErrorHandler],
useFactory: appendScript,
},
{ provide: MessageService, useClass: MessageService },
],
};
}
}
ThemeSharedModule.decorators = [
{
type: NgModule,
args: [
{
imports: [CoreModule, ToastModule, NgxValidateCoreModule],
declarations: [
BreadcrumbComponent,
ButtonComponent,
ChangePasswordComponent,
ChartComponent,
ConfirmationComponent,
ErrorComponent,
LoaderBarComponent,
ModalComponent,
ProfileComponent,
TableEmptyMessageComponent,
ToastComponent,
SortOrderIconComponent,
],
exports: [
BreadcrumbComponent,
ButtonComponent,
ChangePasswordComponent,
ChartComponent,
ConfirmationComponent,
LoaderBarComponent,
ModalComponent,
ProfileComponent,
TableEmptyMessageComponent,
ToastComponent,
SortOrderIconComponent,
],
entryComponents: [ErrorComponent],
},
],
},
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const bounceIn = animation(
[
style({ opacity: '0', display: '{{ display }}' }),
animate(
'{{ time}} {{ easing }}',
keyframes([
style({ opacity: '0', transform: '{{ transform }} scale(0.0)', offset: 0 }),
style({ opacity: '0', transform: '{{ transform }} scale(0.8)', offset: 0.5 }),
style({ opacity: '1', transform: '{{ transform }} scale(1.0)', offset: 1 }),
]),
),
],
{
params: {
time: '350ms',
easing: 'cubic-bezier(.7,.31,.72,1.47)',
display: 'block',
transform: 'translate(-50%, -50%)',
},
},
);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const collapseY = animation(
[
style({ height: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),
animate('{{ time }} {{ easing }}', style({ height: '0', padding: '0px' })),
],
{ params: { time: '350ms', easing: 'ease' } },
);
/** @type {?} */
const collapseYWithMargin = animation(
[style({ 'margin-top': '0' }), animate('{{ time }} {{ easing }}', style({ 'margin-top': '-100%' }))],
{
params: { time: '500ms', easing: 'ease' },
},
);
/** @type {?} */
const collapseX = animation(
[
style({ width: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),
animate('{{ time }} {{ easing }}', style({ width: '0', padding: '0px' })),
],
{ params: { time: '350ms', easing: 'ease' } },
);
/** @type {?} */
const expandY = animation(
[
style({ height: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),
animate('{{ time }} {{ easing }}', style({ height: '*', padding: '*' })),
],
{ params: { time: '350ms', easing: 'ease' } },
);
/** @type {?} */
const expandYWithMargin = animation(
[style({ 'margin-top': '-100%' }), animate('{{ time }} {{ easing }}', style({ 'margin-top': '0' }))],
{
params: { time: '500ms', easing: 'ease' },
},
);
/** @type {?} */
const expandX = animation(
[
style({ width: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),
animate('{{ time }} {{ easing }}', style({ width: '*', padding: '*' })),
],
{ params: { time: '350ms', easing: 'ease' } },
);
/** @type {?} */
const collapse = trigger('collapse', [
state('collapsed', style({ height: '0', overflow: 'hidden' })),
state('expanded', style({ height: '*', overflow: 'hidden' })),
transition('expanded => collapsed', useAnimation(collapseY)),
transition('collapsed => expanded', useAnimation(expandY)),
]);
/** @type {?} */
const collapseWithMargin = trigger('collapseWithMargin', [
state('collapsed', style({ 'margin-top': '-100%' })),
state('expanded', style({ 'margin-top': '0' })),
transition('expanded => collapsed', useAnimation(collapseYWithMargin), {
params: { time: '400ms', easing: 'linear' },
}),
transition('collapsed => expanded', useAnimation(expandYWithMargin)),
]);
/** @type {?} */
const collapseLinearWithMargin = trigger('collapseLinearWithMargin', [
state('collapsed', style({ 'margin-top': '-100%' })),
state('expanded', style({ 'margin-top': '0' })),
transition(
'expanded => collapsed',
useAnimation(collapseYWithMargin, { params: { time: '200ms', easing: 'linear' } }),
),
transition('collapsed => expanded', useAnimation(expandYWithMargin, { params: { time: '250ms', easing: 'linear' } })),
]);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const slideFromBottom = trigger('slideFromBottom', [
transition('* <=> *', [
style({ 'margin-top': '20px', opacity: '0' }),
animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' })),
]),
]);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var Confirmation;
(function(Confirmation) {
/**
* @record
*/
function Options() {}
Confirmation.Options = Options;
if (false) {
/** @type {?|undefined} */
Options.prototype.hideCancelBtn;
/** @type {?|undefined} */
Options.prototype.hideYesBtn;
/** @type {?|undefined} */
Options.prototype.cancelCopy;
/** @type {?|undefined} */
Options.prototype.yesCopy;
}
})(Confirmation || (Confirmation = {}));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
function SettingTab() {}
if (false) {
/** @type {?} */
SettingTab.prototype.component;
/** @type {?} */
SettingTab.prototype.name;
/** @type {?} */
SettingTab.prototype.order;
/** @type {?|undefined} */
SettingTab.prototype.requiredPolicy;
}
/** @type {?} */
const SETTING_TABS = /** @type {?} */ ([]);
/**
* @param {?} tab
* @return {?}
*/
function addSettingTab(tab) {
if (!Array.isArray(tab)) {
tab = [tab];
}
SETTING_TABS.push(...tab);
}
/**
* @return {?}
*/
function getSettingTabs() {
return SETTING_TABS;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var Statistics;
(function(Statistics) {
/**
* @record
*/
function Response() {}
Statistics.Response = Response;
if (false) {
/** @type {?} */
Response.prototype.data;
}
/**
* @record
*/
function Data() {}
Statistics.Data = Data;
/**
* @record
*/
function Filter() {}
Statistics.Filter = Filter;
if (false) {
/** @type {?} */
Filter.prototype.startDate;
/** @type {?} */
Filter.prototype.endDate;
}
})(Statistics || (Statistics = {}));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var Toaster;
(function(Toaster) {
/**
* @record
*/
function Options() {}
Toaster.Options = Options;
if (false) {
/** @type {?|undefined} */
Options.prototype.id;
/** @type {?|undefined} */
Options.prototype.closable;
/** @type {?|undefined} */
Options.prototype.life;
/** @type {?|undefined} */
Options.prototype.sticky;
/** @type {?|undefined} */
Options.prototype.data;
/** @type {?|undefined} */
Options.prototype.messageLocalizationParams;
/** @type {?|undefined} */
Options.prototype.titleLocalizationParams;
}
})(Toaster || (Toaster = {}));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export {
BreadcrumbComponent,
ButtonComponent,
ChangePasswordComponent,
ChartComponent,
ConfirmationComponent,
ConfirmationService,
LoaderBarComponent,
ModalComponent,
ProfileComponent,
SortOrderIconComponent,
TableEmptyMessageComponent,
ThemeSharedModule,
ToastComponent,
Toaster,
ToasterService,
addSettingTab,
appendScript,
bounceIn,
chartJsLoaded$,
collapse,
collapseLinearWithMargin,
collapseWithMargin,
collapseX,
collapseY,
collapseYWithMargin,
dialogAnimation,
expandX,
expandY,
expandYWithMargin,
fadeAnimation,
fadeIn,
fadeInDown,
fadeInLeft,
fadeInRight,
fadeInUp,
fadeOut,
fadeOutDown,
fadeOutLeft,
fadeOutRight,
fadeOutUp,
getRandomBackgroundColor,
getSettingTabs,
slideFromBottom,
BreadcrumbComponent as ɵa,
ButtonComponent as ɵb,
ChangePasswordComponent as ɵc,
ToasterService as ɵd,
AbstractToaster as ɵe,
ChartComponent as ɵf,
ConfirmationComponent as ɵg,
ConfirmationService as ɵh,
ErrorComponent as ɵi,
LoaderBarComponent as ɵj,
ModalComponent as ɵk,
fadeAnimation as ɵl,
dialogAnimation as ɵm,
fadeIn as ɵn,
fadeOut as ɵo,
fadeInDown as ɵp,
ProfileComponent as ɵq,
TableEmptyMessageComponent as ɵr,
ToastComponent as ɵs,
SortOrderIconComponent as ɵt,
ErrorHandler as ɵu,
};
//# sourceMappingURL=abp-ng.theme.shared.js.map