UNPKG

@pepperi/lib

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1.

1,055 lines (1,038 loc) 168 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/common/http'), require('@angular/platform-browser'), require('@angular/platform-browser/animations'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core')) : typeof define === 'function' && define.amd ? define('@pepperi/lib', ['exports', '@angular/core', '@angular/common', '@angular/common/http', '@angular/platform-browser', '@angular/platform-browser/animations', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core'], factory) : (global = global || self, factory((global.pepperi = global.pepperi || {}, global.pepperi.lib = {}), global.ng.core, global.ng.common, global.ng.common.http, global.ng.platformBrowser, global.ng.platformBrowser.animations, global.ng.forms, global.rxjs, global.rxjs.operators, global.translate)); }(this, (function (exports, i0, common, i2, i1, animations, i2$1, rxjs, operators, i1$1) { 'use strict'; var JwtHelperService = /** @class */ (function () { function JwtHelperService() { } JwtHelperService.prototype.urlBase64Decode = function (str) { var output = str.replace(/-/g, '+').replace(/_/g, '/'); switch (output.length % 4) { case 0: { break; } case 2: { output += '=='; break; } case 3: { output += '='; break; } default: { throw new Error('Illegal base64url string!'); } } return this.b64DecodeUnicode(output); }; // credits for decoder goes to https://github.com/atk JwtHelperService.prototype.b64decode = function (str) { var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var output = ''; str = String(str).replace(/=+$/, ''); if (str.length % 4 === 1) { throw new Error('\'atob\' failed: The string to be decoded is not correctly encoded.'); } for ( // initialize result and counters var bc = 0, bs = void 0, buffer = void 0, idx = 0; // get next character (buffer = str.charAt(idx++)); // character found in table? initialize bit storage and add its ascii value; ~buffer && ((bs = bc % 4 ? bs * 64 + buffer : buffer), // and if not first of each 4 characters, // convert the first 8 bits to one ascii character bc++ % 4) ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) : 0) { // try to find character in table (0-63, not found => -1) buffer = chars.indexOf(buffer); } return output; }; JwtHelperService.prototype.b64DecodeUnicode = function (str) { return decodeURIComponent(Array.prototype.map .call(this.b64decode(str), function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }) .join('')); }; JwtHelperService.prototype.decodeToken = function (token) { if (!token || token === '') { return null; } var parts = token.split('.'); if (parts.length !== 3) { throw new Error('The inspected token doesn\'t appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.'); } var decoded = this.urlBase64Decode(parts[1]); if (!decoded) { throw new Error('Cannot decode the token.'); } return JSON.parse(decoded); }; JwtHelperService.prototype.getTokenExpirationDate = function (token) { var decoded; decoded = this.decodeToken(token); if (!decoded || !decoded.hasOwnProperty('exp')) { return null; } var date = new Date(0); date.setUTCSeconds(decoded.exp); return date; }; JwtHelperService.prototype.isTokenExpired = function (token, offsetSeconds) { if (!token || token === '') { return true; } var date = this.getTokenExpirationDate(token); offsetSeconds = offsetSeconds || 0; if (date === null) { return false; } return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000); }; JwtHelperService.prototype.getAuthScheme = function (authScheme, request) { if (typeof authScheme === 'function') { return authScheme(request); } return authScheme; }; return JwtHelperService; }()); JwtHelperService.ɵfac = function JwtHelperService_Factory(t) { return new (t || JwtHelperService)(); }; JwtHelperService.ɵprov = i0.ɵɵdefineInjectable({ token: JwtHelperService, factory: JwtHelperService.ɵfac, providedIn: 'root' }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(JwtHelperService, [{ type: i0.Injectable, args: [{ providedIn: 'root', }] }], function () { return []; }, null); })(); var SessionService = /** @class */ (function () { function SessionService(jwtHelper) { this.jwtHelper = jwtHelper; this.IDP_TOKEN_KEY = 'idp_token'; this.PAPI_BASE_URL_KEY = 'pepperi.baseurl'; this.WAPI_TOKEN_KEY = 'auth_token'; this.WAPI_BASE_URL_KEY = 'serverHostURL'; } // TODO: Maybe need to move this parse into the c'tor. SessionService.prototype.getParseToken = function () { var tokenTest = "eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiYTFjNzJmMTI3NThjYzEzMzg3ZWQ3YTBiZjNlODg3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTY3MjU5NjksImV4cCI6MTU5NjcyNjI2OSwiaXNzIjoiaHR0cHM6Ly9pZHAuc2FuZGJveC5wZXBwZXJpLmNvbSIsImF1ZCI6InBlcHBlcmkud2ViYXBwLmFwcC5zYW5kYm94LnBlcHBlcmkuY29tIiwiaWF0IjoxNTk2NzI1OTY5LCJhdF9oYXNoIjoiSGtmRXJ0Q2JzQ3NzOTVKUm05VmJTdyIsInNpZCI6IjJkNzFiM2JiNWUyNjRiNDk2Y2JmZDkzNmYyNTNhNWIzIiwic3ViIjoiZTJkZmQ0MDYtZDM4Yy00ZmYwLThhZGItMWRlMjI3ODIzYWEyIiwiYXV0aF90aW1lIjoxNTk2NzE4ODA5LCJpZHAiOiJsb2NhbCIsIm5hbWUiOiJkYW5pZWwgZGF2aWRvZmYiLCJlbWFpbCI6ImRhbmllbC5kQHBlcHBlcml0ZXN0LmNvbSIsInBlcHBlcmkuaWQiOjg2OTAzMDQsInBlcHBlcmkudXNlcnV1aWQiOiJlMmRmZDQwNi1kMzhjLTRmZjAtOGFkYi0xZGUyMjc4MjNhYTIiLCJwZXBwZXJpLmRpc3RyaWJ1dG9yaWQiOjMwMDEyMzUxLCJwZXBwZXJpLmRpc3RyaWJ1dG9ydXVpZCI6IjBiZDBlZDc5LThlOWUtNDRmYi05NmY0LThlNTNlZDljZTgyYiIsInBlcHBlcmkuZGF0YWNlbnRlciI6InNhbmRib3giLCJwZXBwZXJpLmtlZXBsb2dpbiI6ZmFsc2UsInBlcHBlcmkuaWRsZXRpbWV3ZWIiOjEyMCwidXBkYXRlZF9hdCI6MTU5NjcwMjgwMCwiZ2l2ZW5fbmFtZSI6ImRhbmllbCIsImZhbWlseV9uYW1lIjoiZGF2aWRvZmYiLCJwZXBwZXJpLmFwaW50YmFzZXVybCI6Imh0dHBzOi8vcmVzdGFwaS5zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS53ZWJhcGliYXNldXJsIjoiaHR0cHM6Ly93ZWJhcGkuc2FuZGJveC5wZXBwZXJpLmNvbS9WMTZfNTAvV2ViQXBwXzYiLCJwZXBwZXJpLnB1YmxpY2FwaWJhc2V1cmwiOiJodHRwczovL2FwaS1zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS5iYXNldXJsIjoiaHR0cHM6Ly9wYXBpLnNhbmRib3gucGVwcGVyaS5jb20vVjEuMCIsInBlcHBlcmkuZW1wbG95ZWV0eXBlIjoxLCJhbXIiOlsicHdkIl19.tNtZT3Cl4dMmTQftoaO2KP5BvHOlWGIP-5GpHrAhZoymBkxBSxpKprQGqr0ATtQlNHjX3gDV1W6k_avaSkyJgDiB2hcwr1tNRilasNuMzNV93gxLC9Oh_HdkIN4cZ0hahIcJvf_17PHpS8zD_MRwvGG_i45wRYJAtiGXChxCMzooethRsLOq5TEwuNbE3MxdjZOpImGYyytmsfdsdJRWQn1LQwQBt95ssuypcUzBsVB34P5XuFttjAe9dhTwHIfgsPG-VdfAWH_r-hVe834wKpKrplSWlC_MucgS0X4XP_tN4CtLnHO2wXKPsojqSTH2NQycfqh6YvT6rzRDBEdQIQ"; var token = this.getIdpToken(); // token = token || tokenTest; var decodedToken = this.jwtHelper.decodeToken(token); // const expirationDate = this.jwtHelper.getTokenExpirationDate(token); // const isExpired = this.jwtHelper.isTokenExpired(token); return decodedToken; }; SessionService.prototype.setObject = function (key, object) { var stringifiedObject = (typeof object === 'string' || object instanceof String) ? object : JSON.stringify(object); sessionStorage.setItem(key, stringifiedObject.toString()); }; SessionService.prototype.getObject = function (key) { var result = null; var item = sessionStorage.getItem(key); try { result = item ? JSON.parse(item) : item; } catch (_a) { result = item; } return result; }; SessionService.prototype.getPepperiConsumerToken = function () { return this.PEPPERI_CONSUMER_TOKEN; }; SessionService.prototype.gettWapiToken = function () { return this.getObject(this.WAPI_TOKEN_KEY); }; SessionService.prototype.getWapiBaseUrl = function () { return this.getObject(this.WAPI_BASE_URL_KEY); }; SessionService.prototype.getIdpToken = function () { return this.getObject(this.IDP_TOKEN_KEY); }; SessionService.prototype.getPapiBaseUrl = function () { var tokenObj = this.getParseToken(); return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null; }; return SessionService; }()); SessionService.ɵfac = function SessionService_Factory(t) { return new (t || SessionService)(i0.ɵɵinject(JwtHelperService)); }; SessionService.ɵprov = i0.ɵɵdefineInjectable({ token: SessionService, factory: SessionService.ɵfac, providedIn: 'root' }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SessionService, [{ type: i0.Injectable, args: [{ providedIn: 'root', }] }], function () { return [{ type: JwtHelperService }]; }, null); })(); var AuthInterceptor = /** @class */ (function () { // private SESSION_TOKEN_KEY = 'auth_token'; // private token = 'secrettoken'; // private refreshTokenInProgress = false; // private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(null); function AuthInterceptor(sessionService) { this.sessionService = sessionService; this.AUTH_HEADER = 'Authorization'; this.PEPPERI_TOKEN_HEADER = 'PepperiSessionToken'; this.PEPPERI_CONSUMER_KEY_HEADER = 'X-Pepperi-ConsumerKey'; } // Add authorization token if the token exist. AuthInterceptor.prototype.addAuthorizationToken = function (request) { if (!request.headers.has(this.AUTH_HEADER)) { var idpToken = this.sessionService.getIdpToken(); if (idpToken) { request = request.clone({ headers: request.headers.set(this.AUTH_HEADER, "Bearer " + idpToken) }); } } return request; }; // Add pepperi consumer token if calling to papi domain. AuthInterceptor.prototype.addPepperiConsumerToken = function (request) { if (!request.headers.has(this.PEPPERI_CONSUMER_KEY_HEADER)) { var papiBaseUrl = this.sessionService.getPapiBaseUrl(); if (papiBaseUrl && request.url.match(new RegExp(papiBaseUrl, 'g'))) { var pepperiConsumerToken = this.sessionService.getPepperiConsumerToken(); if (pepperiConsumerToken) { request = request.clone({ headers: request.headers.set(this.PEPPERI_CONSUMER_KEY_HEADER, pepperiConsumerToken) }); } } } return request; }; // Add web api token if calling to wapi domain. AuthInterceptor.prototype.addWebApiToken = function (request) { if (!request.headers.has(this.PEPPERI_TOKEN_HEADER)) { var wapiBaseUrl = this.sessionService.getWapiBaseUrl(); if (wapiBaseUrl && request.url.match(new RegExp(wapiBaseUrl, 'g'))) { var webApiToken = this.sessionService.gettWapiToken(); if (webApiToken) { request = request.clone({ headers: request.headers.set(this.PEPPERI_TOKEN_HEADER, webApiToken) }); } } } return request; }; AuthInterceptor.prototype.intercept = function (req, next) { console.warn('AuthInterceptor'); // Add content type if (!req.headers.has('Content-Type')) { req = req.clone({ headers: req.headers.set('Content-Type', 'application/json') }); } req = this.addAuthorizationToken(req); req = this.addPepperiConsumerToken(req); req = this.addWebApiToken(req); return next.handle(req); // TODO: Check if we need this - this is an advance code that try to refresh the token in case of expired. // return next.handle(req).pipe( // catchError((error: HttpErrorResponse) => { // if (error && error.status === 401) { // // 401 errors are most likely going to be because we have an expired token that we need to refresh. // if (this.refreshTokenInProgress) { // // If refreshTokenInProgress is true, we will wait until refreshTokenSubject has a non-null value // // which means the new token is ready and we can retry the request again // return this.refreshTokenSubject.pipe( // filter(result => result !== null), // take(1), // switchMap(() => next.handle(this.addAuthenticationToken(req))) // ); // } else { // this.refreshTokenInProgress = true; // // Set the refreshTokenSubject to null so that subsequent API calls will // // wait until the new token has been retrieved // this.refreshTokenSubject.next(null); // return this.refreshAccessToken().pipe( // switchMap((success: boolean) => { // this.refreshTokenSubject.next(success); // return next.handle(this.addAuthenticationToken(req)); // }), // // When the call to refreshToken completes we reset the refreshTokenInProgress to false // // for the next time the token needs to be refreshed // finalize(() => (this.refreshTokenInProgress = false)) // ); // } // } else { // return throwError(error); // } // }) // ); }; return AuthInterceptor; }()); AuthInterceptor.ɵfac = function AuthInterceptor_Factory(t) { return new (t || AuthInterceptor)(i0.ɵɵinject(SessionService)); }; AuthInterceptor.ɵprov = i0.ɵɵdefineInjectable({ token: AuthInterceptor, factory: AuthInterceptor.ɵfac }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(AuthInterceptor, [{ type: i0.Injectable }], function () { return [{ type: SessionService }]; }, null); })(); // import { ToastrService } from 'ngx-toastr'; var ErrorInterceptor = /** @class */ (function () { function ErrorInterceptor() { } ErrorInterceptor.prototype.intercept = function (req, next) { console.warn('ErrorInterceptor'); return next.handle(req) .pipe( // retry(2), TODO: Check if we want to retry operators.catchError(function (error) { // 401 handled in auth.interceptor if (error.status !== 401) { // TODO: Show error in dialog. // this.toastr.error(error.message); } return rxjs.throwError(error); })); }; return ErrorInterceptor; }()); ErrorInterceptor.ɵfac = function ErrorInterceptor_Factory(t) { return new (t || ErrorInterceptor)(); }; ErrorInterceptor.ɵprov = i0.ɵɵdefineInjectable({ token: ErrorInterceptor, factory: ErrorInterceptor.ɵfac }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ErrorInterceptor, [{ type: i0.Injectable }], function () { return []; }, null); })(); var LoaderService = /** @class */ (function () { function LoaderService() { this.counter = 0; this.showLoaderSubject = new rxjs.BehaviorSubject(false); } Object.defineProperty(LoaderService.prototype, "onChanged$", { get: function () { return this.showLoaderSubject.asObservable().pipe(operators.distinctUntilChanged()); }, enumerable: false, configurable: true }); LoaderService.prototype.show = function () { this.counter++; this.showLoaderSubject.next(true); }; LoaderService.prototype.hide = function () { this.counter--; if (this.counter === 0) { this.showLoaderSubject.next(false); } }; return LoaderService; }()); LoaderService.ɵfac = function LoaderService_Factory(t) { return new (t || LoaderService)(); }; LoaderService.ɵprov = i0.ɵɵdefineInjectable({ token: LoaderService, factory: LoaderService.ɵfac, providedIn: 'root' }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LoaderService, [{ type: i0.Injectable, args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); var LoaderInterceptor = /** @class */ (function () { function LoaderInterceptor(injector) { this.injector = injector; } LoaderInterceptor.prototype.intercept = function (req, next) { console.warn('LoaderInterceptor'); var loaderService = this.injector.get(LoaderService); loaderService.show(); // TODO: Remove the delay. return next.handle(req).pipe(operators.delay(3000), operators.finalize(function () { return loaderService.hide(); })); }; return LoaderInterceptor; }()); LoaderInterceptor.ɵfac = function LoaderInterceptor_Factory(t) { return new (t || LoaderInterceptor)(i0.ɵɵinject(i0.Injector)); }; LoaderInterceptor.ɵprov = i0.ɵɵdefineInjectable({ token: LoaderInterceptor, factory: LoaderInterceptor.ɵfac }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LoaderInterceptor, [{ type: i0.Injectable }], function () { return [{ type: i0.Injector }]; }, null); })(); var ProfilerInterceptor = /** @class */ (function () { function ProfilerInterceptor() { } ProfilerInterceptor.prototype.intercept = function (req, next) { console.warn('ProfilerInterceptor'); var started = Date.now(); var ok; return next.handle(req).pipe(operators.tap( // Succeeds when there is a response; ignore other events function (event) { if (event instanceof i2.HttpResponse) { ok = 'succeeded'; } }, // Operation failed; error is an HttpErrorResponse function (error) { return (ok = 'failed'); }), // Log when response observable either completes or errors operators.finalize(function () { var elapsed = Date.now() - started; var msg = req.method + " \"" + req.urlWithParams + "\" " + ok + " in " + elapsed + " ms."; console.log(msg); })); }; return ProfilerInterceptor; }()); ProfilerInterceptor.ɵfac = function ProfilerInterceptor_Factory(t) { return new (t || ProfilerInterceptor)(); }; ProfilerInterceptor.ɵprov = i0.ɵɵdefineInjectable({ token: ProfilerInterceptor, factory: ProfilerInterceptor.ɵfac }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ProfilerInterceptor, [{ type: i0.Injectable }], null, null); })(); var httpInterceptorProviders = [ { provide: i2.HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, // { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true }, // { provide: HTTP_INTERCEPTORS, useClass: ConvertInterceptor, multi: true }, { provide: i2.HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }, // { provide: HTTP_INTERCEPTORS, useClass: FakeInterceptor, multi: true }, // { provide: HTTP_INTERCEPTORS, useClass: HeaderInterceptor, multi: true }, { provide: i2.HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }, { provide: i2.HTTP_INTERCEPTORS, useClass: ProfilerInterceptor, multi: true }, ]; // Const BIDI_RTL_LANGS Array // BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left // Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode) var _BIDI_RTL_LANGS = [ 'ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi' /* 'ייִדיש', Yiddish */ ]; (function (ORIENTATION) { ORIENTATION[ORIENTATION["Landscape"] = 0] = "Landscape"; ORIENTATION[ORIENTATION["Portrait"] = 1] = "Portrait"; })(exports.ORIENTATION || (exports.ORIENTATION = {})); (function (SCREEN_SIZE) { SCREEN_SIZE[SCREEN_SIZE["XL"] = 0] = "XL"; SCREEN_SIZE[SCREEN_SIZE["LG"] = 1] = "LG"; SCREEN_SIZE[SCREEN_SIZE["MD"] = 2] = "MD"; SCREEN_SIZE[SCREEN_SIZE["SM"] = 3] = "SM"; SCREEN_SIZE[SCREEN_SIZE["XS"] = 4] = "XS"; })(exports.SCREEN_SIZE || (exports.SCREEN_SIZE = {})); var LayoutService = /** @class */ (function () { function LayoutService(translate) { this.translate = translate; this.resizeSubject = new rxjs.BehaviorSubject(exports.SCREEN_SIZE.LG); } Object.defineProperty(LayoutService.prototype, "onResize$", { get: function () { return this.resizeSubject.asObservable().pipe(operators.distinctUntilChanged()); }, enumerable: false, configurable: true }); /** * Set the current screen size. * @param size The size to change to. */ LayoutService.prototype.onResize = function (size) { this.resizeSubject.next(size); }; LayoutService.prototype.getOrintation = function () { if (window.innerHeight > window.innerWidth) { return exports.ORIENTATION.Portrait; } else { return exports.ORIENTATION.Landscape; } }; LayoutService.prototype.getScreenWidth = function () { var retVal = 250.0; switch (this.resizeSubject.getValue()) { case exports.SCREEN_SIZE.XS: { retVal = this.getOrintation() === exports.ORIENTATION.Landscape ? 130.0 : 65.0; break; } case exports.SCREEN_SIZE.SM: case exports.SCREEN_SIZE.MD: { retVal = this.getOrintation() === exports.ORIENTATION.Landscape ? 220.0 : 140.0; break; } case exports.SCREEN_SIZE.LG: { retVal = this.getOrintation() === exports.ORIENTATION.Landscape ? 400.0 : 250.0; break; } } return retVal; }; LayoutService.prototype.getScreenHeight = function () { var retVal = 250.0; switch (this.resizeSubject.getValue()) { case exports.SCREEN_SIZE.XS: { retVal = this.getOrintation() === exports.ORIENTATION.Landscape ? 65.0 : 130.0; break; } case exports.SCREEN_SIZE.SM: case exports.SCREEN_SIZE.MD: { retVal = this.getOrintation() === exports.ORIENTATION.Landscape ? 140.0 : 220.0; break; } case exports.SCREEN_SIZE.LG: { retVal = this.getOrintation() === exports.ORIENTATION.Landscape ? 250.0 : 400.0; break; } } return retVal; }; LayoutService.prototype.getScreenHeightPx = function () { return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; }; LayoutService.prototype.getScreenWidthPx = function () { return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; }; LayoutService.prototype.getCurrentLanguage = function () { return this.translate && this.translate.currentLang || navigator.language; }; LayoutService.prototype.isRtl = function () { var userLang = this.getCurrentLanguage(); var isRtl = _BIDI_RTL_LANGS.indexOf(userLang) >= 0; return isRtl; }; return LayoutService; }()); LayoutService.ɵfac = function LayoutService_Factory(t) { return new (t || LayoutService)(i0.ɵɵinject(i1$1.TranslateService)); }; LayoutService.ɵprov = i0.ɵɵdefineInjectable({ token: LayoutService, factory: LayoutService.ɵfac, providedIn: 'root' }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LayoutService, [{ type: i0.Injectable, args: [{ providedIn: 'root', }] }], function () { return [{ type: i1$1.TranslateService }]; }, null); })(); var RtlClassDirective = /** @class */ (function () { function RtlClassDirective(layoutService, renderer, element) { this.layoutService = layoutService; this.renderer = renderer; this.element = element; } RtlClassDirective.prototype.ngOnInit = function () { var isRtl = this.layoutService.isRtl(); if (isRtl) { this.renderer.addClass(this.element.nativeElement, 'rtl'); } }; return RtlClassDirective; }()); RtlClassDirective.ɵfac = function RtlClassDirective_Factory(t) { return new (t || RtlClassDirective)(i0.ɵɵdirectiveInject(LayoutService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); }; RtlClassDirective.ɵdir = i0.ɵɵdefineDirective({ type: RtlClassDirective, selectors: [["", "pepRtlClass", ""]] }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RtlClassDirective, [{ type: i0.Directive, args: [{ selector: '[pepRtlClass]', }] }], function () { return [{ type: LayoutService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, null); })(); var RtlDirectionDirective = /** @class */ (function () { function RtlDirectionDirective(layoutService, renderer, element) { this.layoutService = layoutService; this.renderer = renderer; this.element = element; } RtlDirectionDirective.prototype.ngOnInit = function () { var isRtl = this.layoutService.isRtl(); this.renderer.setAttribute(this.element.nativeElement, 'dir', isRtl ? 'rtl' : 'ltr'); }; return RtlDirectionDirective; }()); RtlDirectionDirective.ɵfac = function RtlDirectionDirective_Factory(t) { return new (t || RtlDirectionDirective)(i0.ɵɵdirectiveInject(LayoutService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); }; RtlDirectionDirective.ɵdir = i0.ɵɵdefineDirective({ type: RtlDirectionDirective, selectors: [["", "pepRtlDirection", ""]] }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RtlDirectionDirective, [{ type: i0.Directive, args: [{ selector: '[pepRtlDirection]', }] }], function () { return [{ type: LayoutService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, null); })(); var CapitalizePipe = /** @class */ (function () { function CapitalizePipe() { } CapitalizePipe.prototype.transform = function (value) { if (value) { return value.charAt(0).toUpperCase() + value.slice(1); } return value; }; return CapitalizePipe; }()); CapitalizePipe.ɵfac = function CapitalizePipe_Factory(t) { return new (t || CapitalizePipe)(); }; CapitalizePipe.ɵpipe = i0.ɵɵdefinePipe({ name: "capitalize", type: CapitalizePipe, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(CapitalizePipe, [{ type: i0.Pipe, args: [{ name: 'capitalize' }] }], null, null); })(); var EncodePipe = /** @class */ (function () { function EncodePipe() { } EncodePipe.prototype.transform = function (value) { if (value) { var v = btoa(value); return v; } return value; }; return EncodePipe; }()); EncodePipe.ɵfac = function EncodePipe_Factory(t) { return new (t || EncodePipe)(); }; EncodePipe.ɵpipe = i0.ɵɵdefinePipe({ name: "encodePipe", type: EncodePipe, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(EncodePipe, [{ type: i0.Pipe, args: [{ name: 'encodePipe' }] }], null, null); })(); var EscapePipe = /** @class */ (function () { function EscapePipe() { } EscapePipe.prototype.transform = function (value) { if (value) { var v = escape(value); return v; } return value; }; return EscapePipe; }()); EscapePipe.ɵfac = function EscapePipe_Factory(t) { return new (t || EscapePipe)(); }; EscapePipe.ɵpipe = i0.ɵɵdefinePipe({ name: "escapePipe", type: EscapePipe, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(EscapePipe, [{ type: i0.Pipe, args: [{ name: 'escapePipe' }] }], null, null); })(); var ReplaceLineBreaks = /** @class */ (function () { function ReplaceLineBreaks() { } ReplaceLineBreaks.prototype.transform = function (value) { var newValue = value.replace(/(<br\ ?\/?>)/g, ' '); return newValue; }; return ReplaceLineBreaks; }()); ReplaceLineBreaks.ɵfac = function ReplaceLineBreaks_Factory(t) { return new (t || ReplaceLineBreaks)(); }; ReplaceLineBreaks.ɵpipe = i0.ɵɵdefinePipe({ name: "replaceLineBreaks", type: ReplaceLineBreaks, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ReplaceLineBreaks, [{ type: i0.Pipe, args: [{ name: 'replaceLineBreaks' }] }], null, null); })(); var DateFormatter = /** @class */ (function () { function DateFormatter() { } DateFormatter.prototype.transform = function (value, culture, showTime) { if (showTime === void 0) { showTime = false; } var res = ''; value = new Date(value); if (value) { res = value.toLocaleDateString(culture || 'en-US'); if (showTime) { res += ' ' + value.toLocaleTimeString((culture || 'en-US'), { hour: '2-digit', minute: '2-digit' }); } } return res; }; return DateFormatter; }()); DateFormatter.ɵfac = function DateFormatter_Factory(t) { return new (t || DateFormatter)(); }; DateFormatter.ɵpipe = i0.ɵɵdefinePipe({ name: "dateFormatter", type: DateFormatter, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(DateFormatter, [{ type: i0.Pipe, args: [{ name: 'dateFormatter' }] }], null, null); })(); var DateStringFormatter = /** @class */ (function () { function DateStringFormatter() { } DateStringFormatter.prototype.transform = function (value, culture, showTime) { if (showTime === void 0) { showTime = false; } var res = ''; var tmpDate = new Date(value); if (value) { res = tmpDate.toLocaleDateString(culture || 'en-US'); if (showTime) { res += ' ' + tmpDate.toLocaleTimeString(culture || 'en-US'); } } return res; }; return DateStringFormatter; }()); DateStringFormatter.ɵfac = function DateStringFormatter_Factory(t) { return new (t || DateStringFormatter)(); }; DateStringFormatter.ɵpipe = i0.ɵɵdefinePipe({ name: "dateStringFormatter", type: DateStringFormatter, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(DateStringFormatter, [{ type: i0.Pipe, args: [{ name: 'dateStringFormatter' }] }], null, null); })(); var SafeHtmlPipe = /** @class */ (function () { function SafeHtmlPipe(sanitizer) { this.sanitizer = sanitizer; } SafeHtmlPipe.prototype.transform = function (html) { return this.sanitizer.bypassSecurityTrustHtml(html); }; return SafeHtmlPipe; }()); SafeHtmlPipe.ɵfac = function SafeHtmlPipe_Factory(t) { return new (t || SafeHtmlPipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer)); }; SafeHtmlPipe.ɵpipe = i0.ɵɵdefinePipe({ name: "safeHtml", type: SafeHtmlPipe, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SafeHtmlPipe, [{ type: i0.Pipe, args: [{ name: 'safeHtml' }] }], function () { return [{ type: i1.DomSanitizer }]; }, null); })(); var SafePipe = /** @class */ (function () { function SafePipe(sanitizer) { this.sanitizer = sanitizer; } SafePipe.prototype.transform = function (value, type) { switch (type) { case 'html': return this.sanitizer.bypassSecurityTrustHtml(value); case 'style': return this.sanitizer.bypassSecurityTrustStyle(value); case 'script': return this.sanitizer.bypassSecurityTrustScript(value); case 'url': return this.sanitizer.bypassSecurityTrustUrl(value); case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value); default: throw new Error("Invalid safe type specified: " + type); } }; return SafePipe; }()); SafePipe.ɵfac = function SafePipe_Factory(t) { return new (t || SafePipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer)); }; SafePipe.ɵpipe = i0.ɵɵdefinePipe({ name: "safe", type: SafePipe, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SafePipe, [{ type: i0.Pipe, args: [{ name: 'safe' }] }], function () { return [{ type: i1.DomSanitizer }]; }, null); })(); var SplitUppercase = /** @class */ (function () { function SplitUppercase() { } SplitUppercase.prototype.transform = function (value) { var newValue = value.replace(/([a-z])([A-Z])/g, '$1 $2'); return newValue; }; return SplitUppercase; }()); SplitUppercase.ɵfac = function SplitUppercase_Factory(t) { return new (t || SplitUppercase)(); }; SplitUppercase.ɵpipe = i0.ɵɵdefinePipe({ name: "splitUppercase", type: SplitUppercase, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(SplitUppercase, [{ type: i0.Pipe, args: [{ name: 'splitUppercase' }] }], null, null); })(); var ToNumber = /** @class */ (function () { function ToNumber() { } ToNumber.prototype.transform = function (value) { return parseInt(value); }; return ToNumber; }()); ToNumber.ɵfac = function ToNumber_Factory(t) { return new (t || ToNumber)(); }; ToNumber.ɵpipe = i0.ɵɵdefinePipe({ name: "toNumber", type: ToNumber, pure: true }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ToNumber, [{ type: i0.Pipe, args: [{ name: 'toNumber' }] }], null, null); })(); var ButtonBlurDirective = /** @class */ (function () { function ButtonBlurDirective(element) { this.element = element; } ButtonBlurDirective.prototype.onClick = function () { var _this = this; setTimeout(function () { _this.element.nativeElement.blur(); }, 0); }; return ButtonBlurDirective; }()); ButtonBlurDirective.ɵfac = function ButtonBlurDirective_Factory(t) { return new (t || ButtonBlurDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; ButtonBlurDirective.ɵdir = i0.ɵɵdefineDirective({ type: ButtonBlurDirective, selectors: [["", "pepButtonBlur", ""]], hostBindings: function ButtonBlurDirective_HostBindings(rf, ctx) { if (rf & 1) { i0.ɵɵlistener("click", function ButtonBlurDirective_click_HostBindingHandler() { return ctx.onClick(); }); } } }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ButtonBlurDirective, [{ type: i0.Directive, args: [{ selector: '[pepButtonBlur]' }] }], function () { return [{ type: i0.ElementRef }]; }, { onClick: [{ type: i0.HostListener, args: ['click'] }] }); })(); var MenuBlurDirective = /** @class */ (function () { function MenuBlurDirective(element) { this.element = element; } MenuBlurDirective.prototype.menuClosedEvent = function () { var _this = this; setTimeout(function () { _this.element.nativeElement.blur(); }, 0); }; MenuBlurDirective.prototype.menuOpenedEvent = function () { var _this = this; setTimeout(function () { _this.element.nativeElement.blur(); }, 0); }; return MenuBlurDirective; }()); MenuBlurDirective.ɵfac = function MenuBlurDirective_Factory(t) { return new (t || MenuBlurDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; MenuBlurDirective.ɵdir = i0.ɵɵdefineDirective({ type: MenuBlurDirective, selectors: [["", "pepMenuBlur", ""]], hostBindings: function MenuBlurDirective_HostBindings(rf, ctx) { if (rf & 1) { i0.ɵɵlistener("menuClosed", function MenuBlurDirective_menuClosed_HostBindingHandler() { return ctx.menuClosedEvent(); })("menuOpened", function MenuBlurDirective_menuOpened_HostBindingHandler() { return ctx.menuOpenedEvent(); }); } } }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MenuBlurDirective, [{ type: i0.Directive, args: [{ selector: '[pepMenuBlur]' }] }], function () { return [{ type: i0.ElementRef }]; }, { menuClosedEvent: [{ type: i0.HostListener, args: ['menuClosed'] }], menuOpenedEvent: [{ type: i0.HostListener, args: ['menuOpened'] }] }); })(); var PortalService = /** @class */ (function () { function PortalService() { this.targets = new Map(); } PortalService.prototype.addTarget = function (targetName, viewContainer) { this.targets.set(targetName, viewContainer); }; PortalService.prototype.attach = function (targetName, template) { var target = this.getTarget(targetName); if (target) { target.createEmbeddedView(template); } }; PortalService.prototype.clear = function (targetName) { var target = this.getTarget(targetName); if (target) { target.clear(); } }; PortalService.prototype.getTarget = function (targetName) { return this.targets.has(targetName) ? this.targets.get(targetName) : null; }; return PortalService; }()); PortalService.ɵfac = function PortalService_Factory(t) { return new (t || PortalService)(); }; PortalService.ɵprov = i0.ɵɵdefineInjectable({ token: PortalService, factory: PortalService.ɵfac, providedIn: 'root' }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(PortalService, [{ type: i0.Injectable, args: [{ providedIn: 'root', }] }], function () { return []; }, null); })(); var AttachDirective = /** @class */ (function () { function AttachDirective(portalService, templateRef) { this.portalService = portalService; this.templateRef = templateRef; } AttachDirective.prototype.ngOnInit = function () { this.portalService.attach(this.targetName, this.templateRef); }; AttachDirective.prototype.ngOnDestroy = function () { this.portalService.clear(this.targetName); }; return AttachDirective; }()); AttachDirective.ɵfac = function AttachDirective_Factory(t) { return new (t || AttachDirective)(i0.ɵɵdirectiveInject(PortalService), i0.ɵɵdirectiveInject(i0.TemplateRef)); }; AttachDirective.ɵdir = i0.ɵɵdefineDirective({ type: AttachDirective, selectors: [["", "pepAttach", ""]], inputs: { targetName: ["pepAttach", "targetName"] } }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(AttachDirective, [{ type: i0.Directive, args: [{ selector: '[pepAttach]', }] }], function () { return [{ type: PortalService }, { type: i0.TemplateRef }]; }, { targetName: [{ type: i0.Input, args: ['pepAttach'] }] }); })(); var TargetDirective = /** @class */ (function () { function TargetDirective(portalService, viewContainer) { this.portalService = portalService; this.viewContainer = viewContainer; } TargetDirective.prototype.ngOnInit = function () { this.portalService.addTarget(this.targetName, this.viewContainer); }; return TargetDirective; }()); TargetDirective.ɵfac = function TargetDirective_Factory(t) { return new (t || TargetDirective)(i0.ɵɵdirectiveInject(PortalService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; TargetDirective.ɵdir = i0.ɵɵdefineDirective({ type: TargetDirective, selectors: [["", "pepTarget", ""]], inputs: { targetName: ["pepTarget", "targetName"] } }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(TargetDirective, [{ type: i0.Directive, args: [{ selector: '[pepTarget]', }] }], function () { return [{ type: PortalService }, { type: i0.ViewContainerRef }]; }, { targetName: [{ type: i0.Input, args: ['pepTarget'] }] }); })(); var layoutList = [ RtlClassDirective, RtlDirectionDirective, ]; var pipeList = [ CapitalizePipe, EncodePipe, EscapePipe, ReplaceLineBreaks, DateFormatter, DateStringFormatter, SafeHtmlPipe, SafePipe, SplitUppercase, ToNumber ]; var utilitiesList = [ ButtonBlurDirective, MenuBlurDirective ]; var portalList = [ AttachDirective, TargetDirective ]; // export class Loader implements TranslateLoader { // private translations = new Subject(); // $translations = this.translations.asObservable(); // getTranslation(lang: string) { // console.log(`called with ${lang}`); // return this.$translations; // } // } // export class Missing implements MissingTranslationHandler { // handle(params: MissingTranslationHandlerParams) { // return '... missing translation'; // } // } // export function LoaderFactory() { // ; // return new Loader(); // } // export function LoaderFactoryHttp(http: HttpClient) { // return new TranslateHttpLoader(http, './assets/pepperi-lib/i18n/', '.json'); // } var PepperiModule = /** @class */ (function () { function PepperiModule() { } return PepperiModule; }()); PepperiModule.ɵmod = i0.ɵɵdefineNgModule({ type: PepperiModule }); PepperiModule.ɵinj = i0.ɵɵdefineInjector({ factory: function PepperiModule_Factory(t) { return new (t || PepperiModule)(); }, providers: [ httpInterceptorProviders, ], imports: [[ common.CommonModule, i2.HttpClientModule, i1.BrowserModule, animations.BrowserAnimationsModule, i2$1.ReactiveFormsModule, i2$1.FormsModule, ], i1$1.TranslateModule] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PepperiModule, { declarations: [CapitalizePipe, EncodePipe, EscapePipe, ReplaceLineBreaks, DateFormatter, DateStringFormatter, SafeHtmlPipe, SafePipe, SplitUppercase, ToNumber, ButtonBlurDirective, MenuBlurDirective, RtlClassDirective, RtlDirectionDirective, AttachDirective, TargetDirective], imports: [common.CommonModule, i2.HttpClientModule, i1.BrowserModule, animations.BrowserAnimationsModule, i2$1.ReactiveFormsModule, i2$1.FormsModule], exports: [CapitalizePipe, EncodePipe, EscapePipe, ReplaceLineBreaks, DateFormatter, DateStringFormatter, SafeHtmlPipe, SafePipe, SplitUppercase, ToNumber, ButtonBlurDirective, MenuBlurDirective, RtlClassDirective, RtlDirectionDirective, AttachDirective, TargetDirective, i1$1.TranslateModule] }); })(); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(PepperiModule, [{ type: i0.NgModule, args: [{ declarations: [ pipeList, utilitiesList, layoutList, portalList ], providers: [ httpInterceptorProviders, ], imports: [ common.CommonModule, i2.HttpClientModul