UNPKG

ice-utilities

Version:

Utilities for manage arrays, breadcrumb, dom elements, dates, injectors, local storage, login, objects, router animations, router, session storage, strings and translate utilities, encryption, for angular 6+ with ECMAScript 6 - ECMAScript 2015

158 lines 16.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { animate, state, style, transition, trigger } from '@angular/animations'; /** * @return {?} */ export function routerTransition() { return slideToLeft(); // slideToTop } /** * @return {?} */ export function LoginRouterTransition() { return slideToTop(); // slideToTop } /** * @param {?} name * @return {?} */ export function sidebarAnim(name) { trigger('slideInOut', [ state('in', style({ transform: 'translate3d(20%, 0, 0)' })), state('out', style({ transform: 'translate3d(100%, 0, 0)' })), transition('in => out', animate('400ms ease-in-out')), transition('out => in', animate('400ms ease-in-out')) ]); } /** * @return {?} */ export function slideToRight() { return trigger('routerTransition', [ state('void', style({})), state('*', style({})), transition(':enter', [ style({ transform: 'translateX(-100%)' }), animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' })) ]), transition(':leave', [ style({ transform: 'translateX(0%)' }), animate('0.5s ease-in-out', style({ transform: 'translateX(100%)' })) ]) ]); } /** * @return {?} */ export function slideToLeft() { return trigger('routerTransition', [ state('void', style({})), state('*', style({})), transition(':enter', [ style({ transform: 'translateX(100%)' }), animate('0.5s ease-in-out', style({ transform: 'translateX(0%)' })) ]), transition(':leave', [ style({ transform: 'translateX(0%)' }), animate('0.5s ease-in-out', style({ transform: 'translateX(-100%)' })) ]) ]); } /** * @return {?} */ export function slideToBottom() { return trigger('routerTransition', [ state('void', style({})), state('*', style({})), transition(':enter', [ style({ transform: 'translateY(-100%)' }), animate('0.5s ease-in-out', style({ transform: 'translateY(0%)' })) ]), transition(':leave', [ style({ transform: 'translateY(0%)' }), animate('0.5s ease-in-out', style({ transform: 'translateY(100%)' })) ]) ]); } /** * @return {?} */ export function slideToTop() { return trigger('routerTransition', [ state('void', style({})), state('*', style({})), transition(':enter', [ style({ transform: 'translateY(100%)' }), animate('0.5s ease-in-out', style({ transform: 'translateY(0%)' })) ]), transition(':leave', [ style({ transform: 'translateY(0%)' }), animate('0.5s ease-in-out', style({ transform: 'translateY(-100%)' })) ]) ]); } /** * @return {?} */ export function slideInOutAnimationSideBar() { return trigger('slideInOutAnimationSideBar', [ // end state styles for route container (host) state('in', style({ // the view covers the whole screen with a semi tranparent background left: 60, width: 60, marginLeft: -60, })), state('out', style({ // the view covers the whole screen with a semi tranparent background left: 235, width: 235, marginLeft: -235, })), transition('in => out', animate('400ms ease-in-out')), transition('out => in', animate('400ms ease-in-out')) ]); } /** @type {?} */ export const slideInOutAnimationContent = trigger('slideInOutAnimationContent', [ // end state styles for route container (host) state('in', style({ // the view covers the whole screen with a semi tranparent background left: 60, width: 60, marginLeft: -60, })), state('out', style({ // the view covers the whole screen with a semi tranparent background left: 235, width: 235, marginLeft: -235, })), transition('in => out', animate('400ms ease-in-out')), transition('out => in', animate('400ms ease-in-out')) ]); /** * @return {?} */ export function fideInFadeOut() { return trigger('simpleFadeAnimation', [ // the "in" style determines the "resting" state of the element when it is visible. state('in', style({ opacity: 1 })), // fade in when created. this could also be written as transition('void => *') transition(':enter', [ style({ opacity: 0 }), animate(600) ]), // fade out when destroyed. this could also be written as transition('void => *') transition(':leave', animate(600, style({ opacity: 0 }))) ]); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmFuaW1hdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pY2UtdXRpbGl0aWVzLyIsInNvdXJjZXMiOlsibGliL3V0aWxpdGllcy9yb3V0ZXIuYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQXNELE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFcEksTUFBTSxVQUFVLGdCQUFnQjtJQUM1QixPQUFPLFdBQVcsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUN2QyxDQUFDOzs7O0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxPQUFPLFVBQVUsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUN0QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBSTtJQUM1QixPQUFPLENBQUMsWUFBWSxFQUFFO1FBQ3RCLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQ2hCLFNBQVMsRUFBRSx3QkFBd0I7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDakIsU0FBUyxFQUFFLHlCQUF5QjtTQUNyQyxDQUFDLENBQUM7UUFDSCxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JELFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQzs7OztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQ3hCLE9BQU8sT0FBTyxDQUFDLGtCQUFrQixFQUFFO1FBQy9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDdEUsQ0FBQztRQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7U0FDeEUsQ0FBQztLQUNMLENBQUMsQ0FBQztBQUNQLENBQUM7Ozs7QUFFRCxNQUFNLFVBQVUsV0FBVztJQUN2QixPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtRQUMvQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFLENBQUM7UUFDRixVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFLENBQUM7S0FDTCxDQUFDLENBQUM7QUFDUCxDQUFDOzs7O0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDekIsT0FBTyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7UUFDL0IsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUN0RSxDQUFDO1FBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUN4RSxDQUFDO0tBQ0wsQ0FBQyxDQUFDO0FBQ1AsQ0FBQzs7OztBQUVELE1BQU0sVUFBVSxVQUFVO0lBQ3RCLE9BQU8sT0FBTyxDQUFDLGtCQUFrQixFQUFFO1FBQy9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDdEUsQ0FBQztRQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7U0FDekUsQ0FBQztLQUNMLENBQUMsQ0FBQztBQUNQLENBQUM7Ozs7QUFFRCxNQUFNLFVBQVcsMEJBQTBCO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLDRCQUE0QixFQUFFO1FBRTNDLDhDQUE4QztRQUM5QyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQzs7WUFFaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULFVBQVUsRUFBRSxDQUFDLEVBQUU7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7O1lBRWpCLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLEdBQUc7WUFDVixVQUFVLEVBQUUsQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztRQUNILFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckQsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN0RCxDQUFDLENBQUM7QUFDTCxDQUFDOztBQUVELE1BQU0sT0FBTywwQkFBMEIsR0FDckMsT0FBTyxDQUFDLDRCQUE0QixFQUFFO0lBRXBDLDhDQUE4QztJQUM5QyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQzs7UUFFaEIsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsRUFBRTtRQUNULFVBQVUsRUFBRSxDQUFDLEVBQUU7S0FDaEIsQ0FBQyxDQUFDO0lBQ0gsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7O1FBRWpCLElBQUksRUFBRSxHQUFHO1FBQ1QsS0FBSyxFQUFFLEdBQUc7UUFDVixVQUFVLEVBQUUsQ0FBQyxHQUFHO0tBQ2pCLENBQUMsQ0FBQztJQUNILFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDckQsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztDQUN0RCxDQUFDOzs7O0FBRUosTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxPQUFPLENBQUMscUJBQXFCLEVBQUU7UUFFcEMsbUZBQW1GO1FBQ25GLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFFaEMsOEVBQThFO1FBQzlFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDbkIsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUU7U0FDZCxDQUFDO1FBRUYsaUZBQWlGO1FBQ2pGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztLQUNyQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIGtleWZyYW1lcywgcXVlcnksIHN0YWdnZXIsIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YX0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByb3V0ZXJUcmFuc2l0aW9uKCk6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHNsaWRlVG9MZWZ0KCk7IC8vIHNsaWRlVG9Ub3Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExvZ2luUm91dGVyVHJhbnNpdGlvbigpOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEge1xuICAgIHJldHVybiBzbGlkZVRvVG9wKCk7IC8vIHNsaWRlVG9Ub3Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpZGViYXJBbmltKG5hbWUpOiB2b2lkIHtcbiAgICB0cmlnZ2VyKCdzbGlkZUluT3V0JywgW1xuICAgIHN0YXRlKCdpbicsIHN0eWxlKHtcbiAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDIwJSwgMCwgMCknXG4gICAgfSkpLFxuICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7XG4gICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSdcbiAgICB9KSksXG4gICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgYW5pbWF0ZSgnNDAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgdHJhbnNpdGlvbignb3V0ID0+IGluJywgYW5pbWF0ZSgnNDAwbXMgZWFzZS1pbi1vdXQnKSlcbiAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGlkZVRvUmlnaHQoKTogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhIHtcbiAgICByZXR1cm4gdHJpZ2dlcigncm91dGVyVHJhbnNpdGlvbicsIFtcbiAgICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7fSkpLFxuICAgICAgICBzdGF0ZSgnKicsIHN0eWxlKHt9KSksXG4gICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMC41cyBlYXNlLWluLW91dCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwJSknIH0pKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSksXG4gICAgICAgICAgICBhbmltYXRlKCcwLjVzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSlcbiAgICAgICAgXSlcbiAgICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNsaWRlVG9MZWZ0KCk6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHRyaWdnZXIoJ3JvdXRlclRyYW5zaXRpb24nLCBbXG4gICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe30pKSxcbiAgICAgICAgc3RhdGUoJyonLCBzdHlsZSh7fSkpLFxuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMC41cyBlYXNlLWluLW91dCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwJSknIH0pKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSksXG4gICAgICAgICAgICBhbmltYXRlKCcwLjVzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0xMDAlKScgfSkpXG4gICAgICAgIF0pXG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGlkZVRvQm90dG9tKCk6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHRyaWdnZXIoJ3JvdXRlclRyYW5zaXRpb24nLCBbXG4gICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe30pKSxcbiAgICAgICAgc3RhdGUoJyonLCBzdHlsZSh7fSkpLFxuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJyB9KSxcbiAgICAgICAgICAgIGFuaW1hdGUoJzAuNXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCUpJyB9KSlcbiAgICAgICAgXSksXG4gICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwJSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMC41cyBlYXNlLWluLW91dCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMDAlKScgfSkpXG4gICAgICAgIF0pXG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGlkZVRvVG9wKCk6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHRyaWdnZXIoJ3JvdXRlclRyYW5zaXRpb24nLCBbXG4gICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe30pKSxcbiAgICAgICAgc3RhdGUoJyonLCBzdHlsZSh7fSkpLFxuICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMC41cyBlYXNlLWluLW91dCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwJSknIH0pKVxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDAlKScgfSksXG4gICAgICAgICAgICBhbmltYXRlKCcwLjVzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMDAlKScgfSkpXG4gICAgICAgIF0pXG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAgc2xpZGVJbk91dEFuaW1hdGlvblNpZGVCYXIgKCk6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XG4gIHJldHVybiB0cmlnZ2VyKCdzbGlkZUluT3V0QW5pbWF0aW9uU2lkZUJhcicsIFtcblxuICAgIC8vIGVuZCBzdGF0ZSBzdHlsZXMgZm9yIHJvdXRlIGNvbnRhaW5lciAoaG9zdClcbiAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7XG4gICAgICAvLyB0aGUgdmlldyBjb3ZlcnMgdGhlIHdob2xlIHNjcmVlbiB3aXRoIGEgc2VtaSB0cmFucGFyZW50IGJhY2tncm91bmRcbiAgICAgIGxlZnQ6IDYwLFxuICAgICAgd2lkdGg6IDYwLFxuICAgICAgbWFyZ2luTGVmdDogLTYwLFxuICAgIH0pKSxcbiAgICBzdGF0ZSgnb3V0Jywgc3R5bGUoe1xuICAgICAgLy8gdGhlIHZpZXcgY292ZXJzIHRoZSB3aG9sZSBzY3JlZW4gd2l0aCBhIHNlbWkgdHJhbnBhcmVudCBiYWNrZ3JvdW5kXG4gICAgICBsZWZ0OiAyMzUsXG4gICAgICB3aWR0aDogMjM1LFxuICAgICAgbWFyZ2luTGVmdDogLTIzNSxcbiAgICB9KSksXG4gICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgYW5pbWF0ZSgnNDAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgdHJhbnNpdGlvbignb3V0ID0+IGluJywgYW5pbWF0ZSgnNDAwbXMgZWFzZS1pbi1vdXQnKSlcbiAgXSk7XG59XG5cbmV4cG9ydCBjb25zdCBzbGlkZUluT3V0QW5pbWF0aW9uQ29udGVudCA9XG4gIHRyaWdnZXIoJ3NsaWRlSW5PdXRBbmltYXRpb25Db250ZW50JywgW1xuXG4gICAgLy8gZW5kIHN0YXRlIHN0eWxlcyBmb3Igcm91dGUgY29udGFpbmVyIChob3N0KVxuICAgIHN0YXRlKCdpbicsIHN0eWxlKHtcbiAgICAgIC8vIHRoZSB2aWV3IGNvdmVycyB0aGUgd2hvbGUgc2NyZWVuIHdpdGggYSBzZW1pIHRyYW5wYXJlbnQgYmFja2dyb3VuZFxuICAgICAgbGVmdDogNjAsXG4gICAgICB3aWR0aDogNjAsXG4gICAgICBtYXJnaW5MZWZ0OiAtNjAsXG4gICAgfSkpLFxuICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7XG4gICAgICAvLyB0aGUgdmlldyBjb3ZlcnMgdGhlIHdob2xlIHNjcmVlbiB3aXRoIGEgc2VtaSB0cmFucGFyZW50IGJhY2tncm91bmRcbiAgICAgIGxlZnQ6IDIzNSxcbiAgICAgIHdpZHRoOiAyMzUsXG4gICAgICBtYXJnaW5MZWZ0OiAtMjM1LFxuICAgIH0pKSxcbiAgICB0cmFuc2l0aW9uKCdpbiA9PiBvdXQnLCBhbmltYXRlKCc0MDBtcyBlYXNlLWluLW91dCcpKSxcbiAgICB0cmFuc2l0aW9uKCdvdXQgPT4gaW4nLCBhbmltYXRlKCc0MDBtcyBlYXNlLWluLW91dCcpKVxuICBdKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpZGVJbkZhZGVPdXQoKTogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhIHtcbiAgcmV0dXJuIHRyaWdnZXIoJ3NpbXBsZUZhZGVBbmltYXRpb24nLCBbXG5cbiAgICAvLyB0aGUgXCJpblwiIHN0eWxlIGRldGVybWluZXMgdGhlIFwicmVzdGluZ1wiIHN0YXRlIG9mIHRoZSBlbGVtZW50IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7b3BhY2l0eTogMX0pKSxcblxuICAgIC8vIGZhZGUgaW4gd2hlbiBjcmVhdGVkLiB0aGlzIGNvdWxkIGFsc28gYmUgd3JpdHRlbiBhcyB0cmFuc2l0aW9uKCd2b2lkID0+IConKVxuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHtvcGFjaXR5OiAwfSksXG4gICAgICBhbmltYXRlKDYwMCApXG4gICAgXSksXG5cbiAgICAvLyBmYWRlIG91dCB3aGVuIGRlc3Ryb3llZC4gdGhpcyBjb3VsZCBhbHNvIGJlIHdyaXR0ZW4gYXMgdHJhbnNpdGlvbigndm9pZCA9PiAqJylcbiAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLFxuICAgICAgYW5pbWF0ZSg2MDAsIHN0eWxlKHtvcGFjaXR5OiAwfSkpKVxuICBdKTtcbn1cblxuXG4iXX0=