ngx-cdk-responsive
Advanced tools
Comparing version 0.0.1 to 0.1.0
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/layout'), require('@angular/core')) : | ||
typeof define === 'function' && define.amd ? define('ngx-cdk-responsive', ['exports', '@angular/cdk/layout', '@angular/core'], factory) : | ||
(factory((global['ngx-cdk-responsive'] = {}),global.ng.cdk.layout,global.ng.core)); | ||
}(this, (function (exports,layout,core) { 'use strict'; | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/cdk/layout')) : | ||
typeof define === 'function' && define.amd ? define('ngx-cdk-responsive', ['exports', '@angular/core', '@angular/cdk/layout'], factory) : | ||
(factory((global['ngx-cdk-responsive'] = {}),global.ng.core,global.ng.cdk.layout)); | ||
}(this, (function (exports,core,layout) { 'use strict'; | ||
/*! ***************************************************************************** | ||
Copyright (c) Microsoft Corporation. All rights reserved. | ||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use | ||
this file except in compliance with the License. You may obtain a copy of the | ||
License at http://www.apache.org/licenses/LICENSE-2.0 | ||
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED | ||
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, | ||
MERCHANTABLITY OR NON-INFRINGEMENT. | ||
See the Apache Version 2.0 License for specific language governing permissions | ||
and limitations under the License. | ||
***************************************************************************** */ | ||
function __read(o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) | ||
return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) | ||
ar.push(r.value); | ||
} | ||
catch (error) { | ||
e = { error: error }; | ||
} | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) | ||
m.call(i); | ||
} | ||
finally { | ||
if (e) | ||
throw e.error; | ||
} | ||
} | ||
return ar; | ||
} | ||
/** | ||
@@ -50,22 +11,48 @@ * @fileoverview added by tsickle | ||
*/ | ||
// tslint:disable:max-line-length | ||
/** @type {?} */ | ||
var regexMinWidth = /\(min-width: \d+?px\)/g; | ||
/** @type {?} */ | ||
var regexMaxWidth = /\(max-width: (\d|\.)+?px\)/g; | ||
/** @type {?} */ | ||
var AllBreakpoints = Object.entries(layout.Breakpoints).reduce(function (acc, _a) { | ||
var _b = __read(_a, 2), key = _b[0], value = _b[1]; | ||
/** @type {?} */ | ||
var keyAndSmaller = key + ' and smaller'; | ||
/** @type {?} */ | ||
var keyAndLarger = key + ' and larger'; | ||
/** @type {?} */ | ||
var valueAndSmaller = value.replace(regexMinWidth, '(min-width: 0px)'); | ||
/** @type {?} */ | ||
var valueAndLarger = value.replace(regexMaxWidth, '(max-width: 1000000px)'); | ||
acc[key] = value; | ||
acc[keyAndSmaller] = valueAndSmaller; | ||
acc[keyAndLarger] = valueAndLarger; | ||
return acc; | ||
}, {}); | ||
var AllBreakpoints = { | ||
'XSmall': '(max-width: 599.99px)', | ||
'XSmall and smaller': '(max-width: 599.99px)', | ||
'XSmall and larger': '(max-width: 1000000px)', | ||
'Small': '(min-width: 600px) and (max-width: 959.99px)', | ||
'Small and smaller': '(min-width: 0px) and (max-width: 959.99px)', | ||
'Small and larger': '(min-width: 600px) and (max-width: 1000000px)', | ||
'Medium': '(min-width: 960px) and (max-width: 1279.99px)', | ||
'Medium and smaller': '(min-width: 0px) and (max-width: 1279.99px)', | ||
'Medium and larger': '(min-width: 960px) and (max-width: 1000000px)', | ||
'Large': '(min-width: 1280px) and (max-width: 1919.99px)', | ||
'Large and smaller': '(min-width: 0px) and (max-width: 1919.99px)', | ||
'Large and larger': '(min-width: 1280px) and (max-width: 1000000px)', | ||
'XLarge': '(min-width: 1920px)', | ||
'XLarge and smaller': '(min-width: 0px)', | ||
'XLarge and larger': '(min-width: 1920px)', | ||
'Handset': '(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)', | ||
'Handset and smaller': '(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)', | ||
'Handset and larger': '(max-width: 1000000px) and (orientation: portrait), (max-width: 1000000px) and (orientation: landscape)', | ||
'Tablet': '(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'Tablet and smaller': '(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'Tablet and larger': '(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait), (min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)', | ||
'Web': '(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)', | ||
'Web and smaller': '(min-width: 0px) and (orientation: portrait), (min-width: 0px) and (orientation: landscape)', | ||
'Web and larger': '(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)', | ||
'HandsetPortrait': '(max-width: 599.99px) and (orientation: portrait)', | ||
'HandsetPortrait and smaller': '(max-width: 599.99px) and (orientation: portrait)', | ||
'HandsetPortrait and larger': '(max-width: 1000000px) and (orientation: portrait)', | ||
'TabletPortrait': '(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait)', | ||
'TabletPortrait and smaller': '(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait)', | ||
'TabletPortrait and larger': '(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait)', | ||
'WebPortrait': '(min-width: 840px) and (orientation: portrait)', | ||
'WebPortrait and smaller': '(min-width: 0px) and (orientation: portrait)', | ||
'WebPortrait and larger': '(min-width: 840px) and (orientation: portrait)', | ||
'HandsetLandscape': '(max-width: 959.99px) and (orientation: landscape)', | ||
'HandsetLandscape and smaller': '(max-width: 959.99px) and (orientation: landscape)', | ||
'HandsetLandscape and larger': '(max-width: 1000000px) and (orientation: landscape)', | ||
'TabletLandscape': '(min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'TabletLandscape and smaller': '(min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'TabletLandscape and larger': '(min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)', | ||
'WebLandscape': '(min-width: 1280px) and (orientation: landscape)', | ||
'WebLandscape and smaller': '(min-width: 0px) and (orientation: landscape)', | ||
'WebLandscape and larger': '(min-width: 1280px) and (orientation: landscape)' | ||
}; | ||
@@ -76,8 +63,8 @@ /** | ||
*/ | ||
var ResponsiveDirective = /** @class */ (function () { | ||
function ResponsiveDirective(vcr, breakpoints) { | ||
var ResponsiveSwitchDirective = /** @class */ (function () { | ||
function ResponsiveSwitchDirective(vcr, breakpoints) { | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
this.updated = new core.EventEmitter(); | ||
this.registeredTemplates = new Map(); | ||
this.update = new core.EventEmitter(); | ||
this.registeredTemplates = {}; | ||
} | ||
@@ -87,3 +74,3 @@ /** | ||
*/ | ||
ResponsiveDirective.prototype.ngOnInit = /** | ||
ResponsiveSwitchDirective.prototype.ngOnInit = /** | ||
* @return {?} | ||
@@ -102,3 +89,3 @@ */ | ||
*/ | ||
ResponsiveDirective.prototype.register = /** | ||
ResponsiveSwitchDirective.prototype.register = /** | ||
* @param {?} size | ||
@@ -109,3 +96,3 @@ * @param {?} template | ||
function (size, template) { | ||
this.registeredTemplates.set(size.trim(), template); | ||
this.registeredTemplates[size.trim()] = template; | ||
this.render(); | ||
@@ -117,3 +104,3 @@ }; | ||
*/ | ||
ResponsiveDirective.prototype.registerDefault = /** | ||
ResponsiveSwitchDirective.prototype.registerDefault = /** | ||
* @param {?} template | ||
@@ -129,3 +116,3 @@ * @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.render = /** | ||
ResponsiveSwitchDirective.prototype.render = /** | ||
* @return {?} | ||
@@ -136,9 +123,9 @@ */ | ||
/** @type {?} */ | ||
var usedSize = Array.from(this.registeredTemplates.keys()).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
var usedSize = Object.keys(this.registeredTemplates).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
/** @type {?} */ | ||
var usedTemplate = this.registeredTemplates.get(usedSize) || this.defaultTemplate; | ||
var usedTemplate = this.registeredTemplates[usedSize] || this.defaultTemplate; | ||
if (usedTemplate !== undefined) { | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
this.updated.emit(usedSize || 'Default'); | ||
this.update.emit(usedSize || 'Default'); | ||
} | ||
@@ -149,3 +136,3 @@ }; | ||
*/ | ||
ResponsiveDirective.prototype.ngOnDestroy = /** | ||
ResponsiveSwitchDirective.prototype.ngOnDestroy = /** | ||
* @return {?} | ||
@@ -157,10 +144,11 @@ */ | ||
} | ||
this.vcr.clear(); | ||
}; | ||
ResponsiveDirective.decorators = [ | ||
ResponsiveSwitchDirective.decorators = [ | ||
{ type: core.Directive, args: [{ | ||
selector: '[responsive]' // tslint:disable-line | ||
selector: '[responsiveSwitch]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveDirective.ctorParameters = function () { | ||
ResponsiveSwitchDirective.ctorParameters = function () { | ||
return [ | ||
@@ -171,7 +159,7 @@ { type: core.ViewContainerRef }, | ||
}; | ||
ResponsiveDirective.propDecorators = { | ||
ResponsiveSwitchDirective.propDecorators = { | ||
observe: [{ type: core.Input }], | ||
updated: [{ type: core.Output }] | ||
update: [{ type: core.Output }] | ||
}; | ||
return ResponsiveDirective; | ||
return ResponsiveSwitchDirective; | ||
}()); | ||
@@ -240,3 +228,3 @@ var ResponsiveCaseDirective = /** @class */ (function () { | ||
{ type: core.TemplateRef }, | ||
{ type: ResponsiveDirective, decorators: [{ type: core.Host }] } | ||
{ type: ResponsiveSwitchDirective, decorators: [{ type: core.Host }] } | ||
]; | ||
@@ -255,2 +243,76 @@ }; | ||
*/ | ||
var ResponsiveDirective = /** @class */ (function () { | ||
function ResponsiveDirective(tmpl, vcr, breakpoints) { | ||
this.tmpl = tmpl; | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.ngOnInit = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
if (this.observe !== undefined && this.observe.length > 0) { | ||
this.sub = this.breakpoints.observe(this.observe).subscribe(function () { return _this.render(); }); | ||
} | ||
this.render(); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.render = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
/** @type {?} */ | ||
var usedSize = Object.keys(this.alternativeElements).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
/** @type {?} */ | ||
var usedTemplate = this.alternativeElements[usedSize] || this.tmpl; | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
if (this.update !== undefined) { | ||
this.update.next(usedSize || 'Default'); | ||
} | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.ngOnDestroy = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
if (this.sub !== undefined) { | ||
this.sub.unsubscribe(); | ||
} | ||
this.vcr.clear(); | ||
}; | ||
ResponsiveDirective.decorators = [ | ||
{ type: core.Directive, args: [{ | ||
selector: '[responsive]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveDirective.ctorParameters = function () { | ||
return [ | ||
{ type: core.TemplateRef }, | ||
{ type: core.ViewContainerRef }, | ||
{ type: layout.BreakpointObserver } | ||
]; | ||
}; | ||
ResponsiveDirective.propDecorators = { | ||
alternativeElements: [{ type: core.Input, args: ['responsive',] }], | ||
observe: [{ type: core.Input, args: ['responsiveObserve',] }], | ||
update: [{ type: core.Input, args: ['responsiveUpdate',] }] | ||
}; | ||
return ResponsiveDirective; | ||
}()); | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
var NgxCdkResponsiveModule = /** @class */ (function () { | ||
@@ -261,5 +323,5 @@ function NgxCdkResponsiveModule() { | ||
{ type: core.NgModule, args: [{ | ||
declarations: [ResponsiveCaseDirective, ResponsiveDirective], | ||
declarations: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective], | ||
imports: [], | ||
exports: [ResponsiveCaseDirective, ResponsiveDirective] | ||
exports: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective] | ||
},] } | ||
@@ -301,5 +363,7 @@ ]; | ||
exports.ResponsiveSwitchDirective = ResponsiveSwitchDirective; | ||
exports.ResponsiveCaseDirective = ResponsiveCaseDirective; | ||
exports.ResponsiveDirective = ResponsiveDirective; | ||
exports.ResponsiveCaseDirective = ResponsiveCaseDirective; | ||
exports.NgxCdkResponsiveModule = NgxCdkResponsiveModule; | ||
exports.AllBreakpoints = AllBreakpoints; | ||
@@ -310,2 +374,2 @@ Object.defineProperty(exports, '__esModule', { value: true }); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYuanMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvaW50ZXJuYWwudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvbmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS50cyIsIm5nOi8vbmd4LWNkay1yZXNwb25zaXZlL2xpYi9vYnNlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XHJcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdDtcclxuICAgIH1cclxuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcclxuICAgIHZhciB0ID0ge307XHJcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcclxuICAgICAgICB0W3BdID0gc1twXTtcclxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcclxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMClcclxuICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZShyZXN1bHQudmFsdWUpOyB9KS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBleHBvcnRzKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmICghZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShwKSkgZXhwb3J0c1twXSA9IG1bcF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl0sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogbiA9PT0gXCJyZXR1cm5cIiB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XHJcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIHJlc3VsdFtrXSA9IG1vZFtrXTtcclxuICAgIHJlc3VsdC5kZWZhdWx0ID0gbW9kO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuIiwiaW1wb3J0IHtCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcblxyXG5jb25zdCByZWdleE1pbldpZHRoID0gL1xcKG1pbi13aWR0aDogXFxkKz9weFxcKS9nO1xyXG5jb25zdCByZWdleE1heFdpZHRoID0gL1xcKG1heC13aWR0aDogKFxcZHxcXC4pKz9weFxcKS9nO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFsbEJyZWFrcG9pbnRzID0gT2JqZWN0LmVudHJpZXMoQnJlYWtwb2ludHMpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuICBjb25zdCBrZXlBbmRTbWFsbGVyID0ga2V5ICsgJyBhbmQgc21hbGxlcic7XHJcbiAgY29uc3Qga2V5QW5kTGFyZ2VyID0ga2V5ICsgJyBhbmQgbGFyZ2VyJztcclxuXHJcbiAgY29uc3QgdmFsdWVBbmRTbWFsbGVyID0gdmFsdWUucmVwbGFjZShyZWdleE1pbldpZHRoLCAnKG1pbi13aWR0aDogMHB4KScpO1xyXG4gIGNvbnN0IHZhbHVlQW5kTGFyZ2VyID0gdmFsdWUucmVwbGFjZShyZWdleE1heFdpZHRoLCAnKG1heC13aWR0aDogMTAwMDAwMHB4KScpO1xyXG5cclxuICBhY2Nba2V5XSA9IHZhbHVlO1xyXG4gIGFjY1trZXlBbmRTbWFsbGVyXSA9IHZhbHVlQW5kU21hbGxlcjtcclxuICBhY2Nba2V5QW5kTGFyZ2VyXSA9IHZhbHVlQW5kTGFyZ2VyO1xyXG4gIHJldHVybiBhY2M7XHJcbn0sIHt9KTtcclxuIiwiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FsbEJyZWFrcG9pbnRzfSBmcm9tICcuL2ludGVybmFsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgb2JzZXJ2ZTogc3RyaW5nW107XG4gIEBPdXRwdXQoKSB1cGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSByZWdpc3RlcmVkVGVtcGxhdGVzID0gbmV3IE1hcDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIHByaXZhdGUgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGJyZWFrcG9pbnRzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm9ic2VydmUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm9ic2VydmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdWIgPSB0aGlzLmJyZWFrcG9pbnRzLm9ic2VydmUodGhpcy5vYnNlcnZlKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW5kZXIoKSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXIoc2l6ZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5zZXQoc2l6ZS50cmltKCksIHRlbXBsYXRlKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcmVnaXN0ZXJEZWZhdWx0KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5kZWZhdWx0VGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHVzZWRTaXplID0gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXMua2V5cygpKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcbiAgICBjb25zdCB1c2VkVGVtcGxhdGUgPSB0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXMuZ2V0KHVzZWRTaXplKSB8fCB0aGlzLmRlZmF1bHRUZW1wbGF0ZTtcblxuICAgIGlmICh1c2VkVGVtcGxhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xuICAgICAgdGhpcy51cGRhdGVkLmVtaXQodXNlZFNpemUgfHwgJ0RlZmF1bHQnKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdWIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxufVxuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlQ2FzZV0sIFtyZXNwb25zaXZlRGVmYXVsdF0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUge1xuXG4gIEBJbnB1dCgncmVzcG9uc2l2ZUNhc2UnKSBzZXQgcmVzcG9uc2l2ZUNhc2Uoc2l6ZTogc3RyaW5nKSB7XG4gICAgaWYgKHNpemUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gXFwnc2l6ZVxcJyBwYXNzZWQuIFVzZSBcXCdyZXNwb25zaXZlLmRlZmF1bHRcXCcgZm9yIGRlZmF1bHQgY2FzZS4nKTtcbiAgICB9XG5cbiAgICBzaXplID0gc2l6ZS5zdGFydHNXaXRoKCc8PScpID8gc2l6ZS5zdWJzdHJpbmcoMikudHJpbSgpICsgJyBhbmQgc21hbGxlcicgOiBzaXplO1xuICAgIHNpemUgPSBzaXplLnN0YXJ0c1dpdGgoJz49JykgPyBzaXplLnN1YnN0cmluZygyKS50cmltKCkgKyAnIGFuZCBsYXJnZXInIDogc2l6ZTtcblxuICAgIGlmICghKHNpemUgaW4gQWxsQnJlYWtwb2ludHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggc2l6ZSAnJHtzaXplfScuIENob29zZSBlaXRoZXIgcHJlZml4LCBzdWZmaXgsIG9yIG5vbmUuXG5BdmFpbGFibGUgYmFzZSBicmVha3BvaW50czogJyR7T2JqZWN0LmtleXMoQnJlYWtwb2ludHMpLmpvaW4oJ1xcJywgXFwnJyl9Jy5cbkF2YWlsYWJsZSBwcmVmaXhlczogJzw9ICcsICc+PSAnLlxuQXZhaWxhYmxlIHN1ZmZpeGVzOiAnIGFuZCBzbWFsbGVyJywgJyBhbmQgbGFyZ2VyJy5gKTtcbiAgICB9XG4gICAgdGhpcy5yZWdpc3RlclRlbXBsYXRlKHNpemUpO1xuICB9XG5cbiAgQElucHV0KCdyZXNwb25zaXZlRGVmYXVsdCcpIHNldCByZXNwb25zaXZlRGVmYXVsdChfKSB7XG4gICAgdGhpcy5yZWdpc3RlckRlZmF1bHQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgIEBIb3N0KCkgcHJpdmF0ZSBob3N0OiBSZXNwb25zaXZlRGlyZWN0aXZlKSB7XG4gIH1cblxuICByZWdpc3RlclRlbXBsYXRlKGJyZWFrcG9pbnQ6IHN0cmluZykge1xuICAgIHRoaXMuaG9zdC5yZWdpc3RlcihicmVha3BvaW50LCB0aGlzLnRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHJlZ2lzdGVyRGVmYXVsdCgpIHtcbiAgICB0aGlzLmhvc3QucmVnaXN0ZXJEZWZhdWx0KHRoaXMudGVtcGxhdGVSZWYpO1xuICB9XG5cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlfSBmcm9tICcuL3Jlc3BvbnNpdmUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hDZGtSZXNwb25zaXZlTW9kdWxlIHsgfVxuIiwiZXhwb3J0IG5hbWVzcGFjZSBPYnNlcnZlIHtcclxuICBleHBvcnQgY29uc3QgT1JJRU5UQVRJT04gPSAnKG9yaWVudGF0aW9uOmxhbmRzY2FwZSknO1xyXG4gIGV4cG9ydCBjb25zdCBNQVhfV0lEVEggPSAodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nID0gJ3B4JykgPT4gYChtYXgtd2lkdGg6ICR7dmFsdWV9JHt1bml0fSlgO1xyXG4gIGV4cG9ydCBjb25zdCBNSU5fV0lEVEggPSAodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nID0gJ3B4JykgPT4gYChtaW4td2lkdGg6ICR7dmFsdWV9JHt1bml0fSlgO1xyXG4gIGV4cG9ydCBjb25zdCBBTllfV0lORE9XX0NIQU5HRSA9IFsnKG1heC13aWR0aDogNTk5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDk1OS45OXB4KScsICcobWF4LXdpZHRoOiAxMjc5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDE5MTkuOTlweCknXTtcclxufVxyXG4iXSwibmFtZXMiOlsiQnJlYWtwb2ludHMiLCJFdmVudEVtaXR0ZXIiLCJEaXJlY3RpdmUiLCJWaWV3Q29udGFpbmVyUmVmIiwiQnJlYWtwb2ludE9ic2VydmVyIiwiSW5wdXQiLCJPdXRwdXQiLCJUZW1wbGF0ZVJlZiIsIkhvc3QiLCJOZ01vZHVsZSIsIk9ic2VydmUiXSwibWFwcGluZ3MiOiI7Ozs7OztJQUFBOzs7Ozs7Ozs7Ozs7OztB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LWNkay1yZXNwb25zaXZlL2xpYi9tb2RlbHMudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvcmVzcG9uc2l2ZS1zd2l0Y2guZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL3Jlc3BvbnNpdmUuZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL25neC1jZGstcmVzcG9uc2l2ZS5tb2R1bGUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvb2JzZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGhcclxuXHJcbmV4cG9ydCBjb25zdCBBbGxCcmVha3BvaW50czogQXZhaWxhYmxlQnJlYWtwb2ludHM8c3RyaW5nPiA9IHtcclxuICAnWFNtYWxsJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KScsXHJcbiAgJ1hTbWFsbCBhbmQgc21hbGxlcic6ICcobWF4LXdpZHRoOiA1OTkuOTlweCknLFxyXG4gICdYU21hbGwgYW5kIGxhcmdlcic6ICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyxcclxuICAnU21hbGwnOiAnKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5NTkuOTlweCknLFxyXG4gICdTbWFsbCBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiA5NTkuOTlweCknLFxyXG4gICdTbWFsbCBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogMTAwMDAwMHB4KScsXHJcbiAgJ01lZGl1bSc6ICcobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEyNzkuOTlweCknLFxyXG4gICdNZWRpdW0gYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KScsXHJcbiAgJ01lZGl1bSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTAwMDAwMHB4KScsXHJcbiAgJ0xhcmdlJzogJyhtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTkuOTlweCknLFxyXG4gICdMYXJnZSBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5Ljk5cHgpJyxcclxuICAnTGFyZ2UgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyxcclxuICAnWExhcmdlJzogJyhtaW4td2lkdGg6IDE5MjBweCknLFxyXG4gICdYTGFyZ2UgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KScsXHJcbiAgJ1hMYXJnZSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDE5MjBweCknLFxyXG4gICdIYW5kc2V0JzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtYXgtd2lkdGg6IDk1OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnSGFuZHNldCBhbmQgc21hbGxlcic6ICcobWF4LXdpZHRoOiA1OTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWF4LXdpZHRoOiA5NTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ0hhbmRzZXQgYW5kIGxhcmdlcic6ICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1heC13aWR0aDogMTAwMDAwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnVGFibGV0JzogJyhtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODM5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXQgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogODM5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnVGFibGV0IGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWInOiAnKG1pbi13aWR0aDogODQwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnV2ViIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWIgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiA4NDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdIYW5kc2V0UG9ydHJhaXQnOiAnKG1heC13aWR0aDogNTk5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ0hhbmRzZXRQb3J0cmFpdCBhbmQgc21hbGxlcic6ICcobWF4LXdpZHRoOiA1OTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBsYXJnZXInOiAnKG1heC13aWR0aDogMTAwMDAwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdUYWJsZXRQb3J0cmFpdCc6ICcobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDgzOS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdUYWJsZXRQb3J0cmFpdCBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnVGFibGV0UG9ydHJhaXQgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnV2ViUG9ydHJhaXQnOiAnKG1pbi13aWR0aDogODQwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ1dlYlBvcnRyYWl0IGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnV2ViUG9ydHJhaXQgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiA4NDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnSGFuZHNldExhbmRzY2FwZSc6ICcobWF4LXdpZHRoOiA5NTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ0hhbmRzZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiAnKG1heC13aWR0aDogOTU5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdIYW5kc2V0TGFuZHNjYXBlIGFuZCBsYXJnZXInOiAnKG1heC13aWR0aDogMTAwMDAwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnVGFibGV0TGFuZHNjYXBlJzogJyhtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnVGFibGV0TGFuZHNjYXBlIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDEyNzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1RhYmxldExhbmRzY2FwZSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTAwMDAwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnV2ViTGFuZHNjYXBlJzogJyhtaW4td2lkdGg6IDEyODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWJMYW5kc2NhcGUgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJsZUJyZWFrcG9pbnRzPFQ+IHtcclxuICAnWFNtYWxsJzogVDtcclxuICAnWFNtYWxsIGFuZCBzbWFsbGVyJzogVDtcclxuICAnWFNtYWxsIGFuZCBsYXJnZXInOiBUO1xyXG4gICdTbWFsbCc6IFQ7XHJcbiAgJ1NtYWxsIGFuZCBzbWFsbGVyJzogVDtcclxuICAnU21hbGwgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ01lZGl1bSc6IFQ7XHJcbiAgJ01lZGl1bSBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ01lZGl1bSBhbmQgbGFyZ2VyJzogVDtcclxuICAnTGFyZ2UnOiBUO1xyXG4gICdMYXJnZSBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ0xhcmdlIGFuZCBsYXJnZXInOiBUO1xyXG4gICdYTGFyZ2UnOiBUO1xyXG4gICdYTGFyZ2UgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdYTGFyZ2UgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ0hhbmRzZXQnOiBUO1xyXG4gICdIYW5kc2V0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnSGFuZHNldCBhbmQgbGFyZ2VyJzogVDtcclxuICAnVGFibGV0JzogVDtcclxuICAnVGFibGV0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnVGFibGV0IGFuZCBsYXJnZXInOiBUO1xyXG4gICdXZWInOiBUO1xyXG4gICdXZWIgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdXZWIgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ0hhbmRzZXRQb3J0cmFpdCc6IFQ7XHJcbiAgJ0hhbmRzZXRQb3J0cmFpdCBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ0hhbmRzZXRQb3J0cmFpdCBhbmQgbGFyZ2VyJzogVDtcclxuICAnVGFibGV0UG9ydHJhaXQnOiBUO1xyXG4gICdUYWJsZXRQb3J0cmFpdCBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1RhYmxldFBvcnRyYWl0IGFuZCBsYXJnZXInOiBUO1xyXG4gICdXZWJQb3J0cmFpdCc6IFQ7XHJcbiAgJ1dlYlBvcnRyYWl0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnV2ViUG9ydHJhaXQgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ0hhbmRzZXRMYW5kc2NhcGUnOiBUO1xyXG4gICdIYW5kc2V0TGFuZHNjYXBlIGFuZCBzbWFsbGVyJzogVDtcclxuICAnSGFuZHNldExhbmRzY2FwZSBhbmQgbGFyZ2VyJzogVDtcclxuICAnVGFibGV0TGFuZHNjYXBlJzogVDtcclxuICAnVGFibGV0TGFuZHNjYXBlIGFuZCBzbWFsbGVyJzogVDtcclxuICAnVGFibGV0TGFuZHNjYXBlIGFuZCBsYXJnZXInOiBUO1xyXG4gICdXZWJMYW5kc2NhcGUnOiBUO1xyXG4gICdXZWJMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdXZWJMYW5kc2NhcGUgYW5kIGxhcmdlcic6IFQ7XHJcbn1cclxuIiwiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FsbEJyZWFrcG9pbnRzfSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlU3dpdGNoXScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgb2JzZXJ2ZTogc3RyaW5nW107XHJcbiAgQE91dHB1dCgpIHVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIHJlZ2lzdGVyZWRUZW1wbGF0ZXM6IHtbc2l6ZTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55Pn0gPSB7fTtcclxuICBwcml2YXRlIGRlZmF1bHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGJyZWFrcG9pbnRzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc3ViID0gdGhpcy5icmVha3BvaW50cy5vYnNlcnZlKHRoaXMub2JzZXJ2ZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVuZGVyKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXIoc2l6ZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVzW3NpemUudHJpbSgpXSA9IHRlbXBsYXRlO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyRGVmYXVsdCh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy5kZWZhdWx0VGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB1c2VkU2l6ZSA9IE9iamVjdC5rZXlzKHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcykuZmluZChzaXplID0+IHRoaXMuYnJlYWtwb2ludHMuaXNNYXRjaGVkKEFsbEJyZWFrcG9pbnRzW3NpemVdKSk7XHJcbiAgICBjb25zdCB1c2VkVGVtcGxhdGUgPSB0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXNbdXNlZFNpemVdIHx8IHRoaXMuZGVmYXVsdFRlbXBsYXRlO1xyXG5cclxuICAgIGlmICh1c2VkVGVtcGxhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnZjci5jbGVhcigpO1xyXG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodXNlZFRlbXBsYXRlKTtcclxuICAgICAgdGhpcy51cGRhdGUuZW1pdCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcmVzcG9uc2l2ZUNhc2VdLCBbcmVzcG9uc2l2ZURlZmF1bHRdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZUNhc2UnKSBzZXQgcmVzcG9uc2l2ZUNhc2Uoc2l6ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoc2l6ZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIFxcJ3NpemVcXCcgcGFzc2VkLiBVc2UgXFwncmVzcG9uc2l2ZS5kZWZhdWx0XFwnIGZvciBkZWZhdWx0IGNhc2UuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2l6ZSA9IHNpemUuc3RhcnRzV2l0aCgnPD0nKSA/IHNpemUuc3Vic3RyaW5nKDIpLnRyaW0oKSArICcgYW5kIHNtYWxsZXInIDogc2l6ZTtcclxuICAgIHNpemUgPSBzaXplLnN0YXJ0c1dpdGgoJz49JykgPyBzaXplLnN1YnN0cmluZygyKS50cmltKCkgKyAnIGFuZCBsYXJnZXInIDogc2l6ZTtcclxuXHJcbiAgICBpZiAoIShzaXplIGluIEFsbEJyZWFrcG9pbnRzKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggc2l6ZSAnJHtzaXplfScuIENob29zZSBlaXRoZXIgcHJlZml4LCBzdWZmaXgsIG9yIG5vbmUuXHJcbkF2YWlsYWJsZSBiYXNlIGJyZWFrcG9pbnRzOiAnJHtPYmplY3Qua2V5cyhCcmVha3BvaW50cykuam9pbignXFwnLCBcXCcnKX0nLlxyXG5BdmFpbGFibGUgcHJlZml4ZXM6ICc8PSAnLCAnPj0gJy5cclxuQXZhaWxhYmxlIHN1ZmZpeGVzOiAnIGFuZCBzbWFsbGVyJywgJyBhbmQgbGFyZ2VyJy5gKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVnaXN0ZXJUZW1wbGF0ZShzaXplKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZURlZmF1bHQnKSBzZXQgcmVzcG9uc2l2ZURlZmF1bHQoXykge1xyXG4gICAgdGhpcy5yZWdpc3RlckRlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICAgICAgICAgICAgQEhvc3QoKSBwcml2YXRlIGhvc3Q6IFJlc3BvbnNpdmVTd2l0Y2hEaXJlY3RpdmUpIHtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyVGVtcGxhdGUoYnJlYWtwb2ludDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmhvc3QucmVnaXN0ZXIoYnJlYWtwb2ludCwgdGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlckRlZmF1bHQoKSB7XHJcbiAgICB0aGlzLmhvc3QucmVnaXN0ZXJEZWZhdWx0KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtBbGxCcmVha3BvaW50c30gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQge0F2YWlsYWJsZUJyZWFrcG9pbnRzfSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlXScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUgKi9cclxuICBASW5wdXQoJ3Jlc3BvbnNpdmUnKSBhbHRlcm5hdGl2ZUVsZW1lbnRzOiBQYXJ0aWFsPEF2YWlsYWJsZUJyZWFrcG9pbnRzPFRlbXBsYXRlUmVmPGFueT4+PjtcclxuICBASW5wdXQoJ3Jlc3BvbnNpdmVPYnNlcnZlJykgb2JzZXJ2ZTogc3RyaW5nW107XHJcbiAgQElucHV0KCdyZXNwb25zaXZlVXBkYXRlJykgdXBkYXRlOiBTdWJqZWN0PHN0cmluZz4gfCB1bmRlZmluZWQ7XHJcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xyXG5cclxuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRtcGw6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBicmVha3BvaW50czogQnJlYWtwb2ludE9ic2VydmVyKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9ic2VydmUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm9ic2VydmUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnN1YiA9IHRoaXMuYnJlYWtwb2ludHMub2JzZXJ2ZSh0aGlzLm9ic2VydmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcigpKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB1c2VkU2l6ZSA9IE9iamVjdC5rZXlzKHRoaXMuYWx0ZXJuYXRpdmVFbGVtZW50cykuZmluZChzaXplID0+IHRoaXMuYnJlYWtwb2ludHMuaXNNYXRjaGVkKEFsbEJyZWFrcG9pbnRzW3NpemVdKSk7XHJcbiAgICBjb25zdCB1c2VkVGVtcGxhdGUgPSB0aGlzLmFsdGVybmF0aXZlRWxlbWVudHNbdXNlZFNpemVdIHx8IHRoaXMudG1wbDtcclxuICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodXNlZFRlbXBsYXRlKTtcclxuICAgIGlmICh0aGlzLnVwZGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlLm5leHQodXNlZFNpemUgfHwgJ0RlZmF1bHQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc3ViICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlfSBmcm9tICcuL3Jlc3BvbnNpdmUtc3dpdGNoLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNpdmVEaXJlY3RpdmUgfSBmcm9tICcuL3Jlc3BvbnNpdmUuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVTd2l0Y2hEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdLFxyXG4gIGltcG9ydHM6IFtdLFxyXG4gIGV4cG9ydHM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neENka1Jlc3BvbnNpdmVNb2R1bGUgeyB9XHJcbiIsImV4cG9ydCBuYW1lc3BhY2UgT2JzZXJ2ZSB7XHJcbiAgZXhwb3J0IGNvbnN0IE9SSUVOVEFUSU9OID0gJyhvcmllbnRhdGlvbjpsYW5kc2NhcGUpJztcclxuICBleHBvcnQgY29uc3QgTUFYX1dJRFRIID0gKHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyA9ICdweCcpID0+IGAobWF4LXdpZHRoOiAke3ZhbHVlfSR7dW5pdH0pYDtcclxuICBleHBvcnQgY29uc3QgTUlOX1dJRFRIID0gKHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyA9ICdweCcpID0+IGAobWluLXdpZHRoOiAke3ZhbHVlfSR7dW5pdH0pYDtcclxuICBleHBvcnQgY29uc3QgQU5ZX1dJTkRPV19DSEFOR0UgPSBbJyhtYXgtd2lkdGg6IDU5OS45OXB4KScsICcobWF4LXdpZHRoOiA5NTkuOTlweCknLCAnKG1heC13aWR0aDogMTI3OS45OXB4KScsICcobWF4LXdpZHRoOiAxOTE5Ljk5cHgpJ107XHJcbn1cclxuIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsIkRpcmVjdGl2ZSIsIlZpZXdDb250YWluZXJSZWYiLCJCcmVha3BvaW50T2JzZXJ2ZXIiLCJJbnB1dCIsIk91dHB1dCIsIkJyZWFrcG9pbnRzIiwiVGVtcGxhdGVSZWYiLCJIb3N0IiwiTmdNb2R1bGUiLCJPYnNlcnZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFQSxRQUFhLGNBQWMsR0FBaUM7UUFDMUQsUUFBUSxFQUFFLHVCQUF1QjtRQUNqQyxvQkFBb0IsRUFBRSx1QkFBdUI7UUFDN0MsbUJBQW1CLEVBQUUsd0JBQXdCO1FBQzdDLE9BQU8sRUFBRSw4Q0FBOEM7UUFDdkQsbUJBQW1CLEVBQUUsNENBQTRDO1FBQ2pFLGtCQUFrQixFQUFFLCtDQUErQztRQUNuRSxRQUFRLEVBQUUsK0NBQStDO1FBQ3pELG9CQUFv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 |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/cdk/layout"),require("@angular/core")):"function"==typeof define&&define.amd?define("ngx-cdk-responsive",["exports","@angular/cdk/layout","@angular/core"],t):t(e["ngx-cdk-responsive"]={},e.ng.cdk.layout,e.ng.core)}(this,function(e,t,r){"use strict";var i,d=/\(min-width: \d+?px\)/g,c=/\(max-width: (\d|\.)+?px\)/g,n=Object.entries(t.Breakpoints).reduce(function(e,t){var r=function u(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var i,n,s=r.call(e),o=[];try{for(;(void 0===t||0<t--)&&!(i=s.next()).done;)o.push(i.value)}catch(a){n={error:a}}finally{try{i&&!i.done&&(r=s["return"])&&r.call(s)}finally{if(n)throw n.error}}return o}(t,2),i=r[0],n=r[1],s=i+" and smaller",o=i+" and larger",a=n.replace(d,"(min-width: 0px)"),p=n.replace(c,"(max-width: 1000000px)");return e[i]=n,e[s]=a,e[o]=p,e},{}),s=function(){function e(e,t){this.vcr=e,this.breakpoints=t,this.updated=new r.EventEmitter,this.registeredTemplates=new Map}return e.prototype.ngOnInit=function(){var e=this;this.observe!==undefined&&0<this.observe.length&&(this.sub=this.breakpoints.observe(this.observe).subscribe(function(){return e.render()}))},e.prototype.register=function(e,t){this.registeredTemplates.set(e.trim(),t),this.render()},e.prototype.registerDefault=function(e){this.defaultTemplate=e,this.render()},e.prototype.render=function(){var t=this,e=Array.from(this.registeredTemplates.keys()).find(function(e){return t.breakpoints.isMatched(n[e])}),r=this.registeredTemplates.get(e)||this.defaultTemplate;r!==undefined&&(this.vcr.clear(),this.vcr.createEmbeddedView(r),this.updated.emit(e||"Default"))},e.prototype.ngOnDestroy=function(){this.sub!==undefined&&this.sub.unsubscribe()},e.decorators=[{type:r.Directive,args:[{selector:"[responsive]"}]}],e.ctorParameters=function(){return[{type:r.ViewContainerRef},{type:t.BreakpointObserver}]},e.propDecorators={observe:[{type:r.Input}],updated:[{type:r.Output}]},e}(),o=function(){function e(e,t){this.templateRef=e,this.host=t}return Object.defineProperty(e.prototype,"responsiveCase",{set:function(e){if(null===e)throw new Error("No 'size' passed. Use 'responsive.default' for default case.");if(!((e=(e=e.startsWith("<=")?e.substring(2).trim()+" and smaller":e).startsWith(">=")?e.substring(2).trim()+" and larger":e)in n))throw new Error("No such size '"+e+"'. Choose either prefix, suffix, or none.\nAvailable base breakpoints: '"+Object.keys(t.Breakpoints).join("', '")+"'.\nAvailable prefixes: '<= ', '>= '.\nAvailable suffixes: ' and smaller', ' and larger'.");this.registerTemplate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"responsiveDefault",{set:function(e){this.registerDefault()},enumerable:!0,configurable:!0}),e.prototype.registerTemplate=function(e){this.host.register(e,this.templateRef)},e.prototype.registerDefault=function(){this.host.registerDefault(this.templateRef)},e.decorators=[{type:r.Directive,args:[{selector:"[responsiveCase], [responsiveDefault]"}]}],e.ctorParameters=function(){return[{type:r.TemplateRef},{type:s,decorators:[{type:r.Host}]}]},e.propDecorators={responsiveCase:[{type:r.Input,args:["responsiveCase"]}],responsiveDefault:[{type:r.Input,args:["responsiveDefault"]}]},e}(),a=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{declarations:[o,s],imports:[],exports:[o,s]}]}],e}();(i=e.Observe||(e.Observe={})).ORIENTATION="(orientation:landscape)",i.MAX_WIDTH=function(e,t){return void 0===t&&(t="px"),"(max-width: "+e+t+")"},i.MIN_WIDTH=function(e,t){return void 0===t&&(t="px"),"(min-width: "+e+t+")"},i.ANY_WINDOW_CHANGE=["(max-width: 599.99px)","(max-width: 959.99px)","(max-width: 1279.99px)","(max-width: 1919.99px)"],e.ResponsiveDirective=s,e.ResponsiveCaseDirective=o,e.NgxCdkResponsiveModule=a,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/cdk/layout")):"function"==typeof define&&define.amd?define("ngx-cdk-responsive",["exports","@angular/core","@angular/cdk/layout"],e):e(t["ngx-cdk-responsive"]={},t.ng.core,t.ng.cdk.layout)}(this,function(t,a,e){"use strict";var n,i={XSmall:"(max-width: 599.99px)","XSmall and smaller":"(max-width: 599.99px)","XSmall and larger":"(max-width: 1000000px)",Small:"(min-width: 600px) and (max-width: 959.99px)","Small and smaller":"(min-width: 0px) and (max-width: 959.99px)","Small and larger":"(min-width: 600px) and (max-width: 1000000px)",Medium:"(min-width: 960px) and (max-width: 1279.99px)","Medium and smaller":"(min-width: 0px) and (max-width: 1279.99px)","Medium and larger":"(min-width: 960px) and (max-width: 1000000px)",Large:"(min-width: 1280px) and (max-width: 1919.99px)","Large and smaller":"(min-width: 0px) and (max-width: 1919.99px)","Large and larger":"(min-width: 1280px) and (max-width: 1000000px)",XLarge:"(min-width: 1920px)","XLarge and smaller":"(min-width: 0px)","XLarge and larger":"(min-width: 1920px)",Handset:"(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)","Handset and smaller":"(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)","Handset and larger":"(max-width: 1000000px) and (orientation: portrait), (max-width: 1000000px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)","Tablet and smaller":"(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)","Tablet and larger":"(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait), (min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)","Web and smaller":"(min-width: 0px) and (orientation: portrait), (min-width: 0px) and (orientation: landscape)","Web and larger":"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.99px) and (orientation: portrait)","HandsetPortrait and smaller":"(max-width: 599.99px) and (orientation: portrait)","HandsetPortrait and larger":"(max-width: 1000000px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait)","TabletPortrait and smaller":"(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait)","TabletPortrait and larger":"(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)","WebPortrait and smaller":"(min-width: 0px) and (orientation: portrait)","WebPortrait and larger":"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.99px) and (orientation: landscape)","HandsetLandscape and smaller":"(max-width: 959.99px) and (orientation: landscape)","HandsetLandscape and larger":"(max-width: 1000000px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)","TabletLandscape and smaller":"(min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)","TabletLandscape and larger":"(min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)","WebLandscape and smaller":"(min-width: 0px) and (orientation: landscape)","WebLandscape and larger":"(min-width: 1280px) and (orientation: landscape)"},r=function(){function t(t,e){this.vcr=t,this.breakpoints=e,this.update=new a.EventEmitter,this.registeredTemplates={}}return t.prototype.ngOnInit=function(){var t=this;this.observe!==undefined&&0<this.observe.length&&(this.sub=this.breakpoints.observe(this.observe).subscribe(function(){return t.render()}))},t.prototype.register=function(t,e){this.registeredTemplates[t.trim()]=e,this.render()},t.prototype.registerDefault=function(t){this.defaultTemplate=t,this.render()},t.prototype.render=function(){var e=this,t=Object.keys(this.registeredTemplates).find(function(t){return e.breakpoints.isMatched(i[t])}),a=this.registeredTemplates[t]||this.defaultTemplate;a!==undefined&&(this.vcr.clear(),this.vcr.createEmbeddedView(a),this.update.emit(t||"Default"))},t.prototype.ngOnDestroy=function(){this.sub!==undefined&&this.sub.unsubscribe(),this.vcr.clear()},t.decorators=[{type:a.Directive,args:[{selector:"[responsiveSwitch]"}]}],t.ctorParameters=function(){return[{type:a.ViewContainerRef},{type:e.BreakpointObserver}]},t.propDecorators={observe:[{type:a.Input}],update:[{type:a.Output}]},t}(),d=function(){function t(t,e){this.templateRef=t,this.host=e}return Object.defineProperty(t.prototype,"responsiveCase",{set:function(t){if(null===t)throw new Error("No 'size' passed. Use 'responsive.default' for default case.");if(!((t=(t=t.startsWith("<=")?t.substring(2).trim()+" and smaller":t).startsWith(">=")?t.substring(2).trim()+" and larger":t)in i))throw new Error("No such size '"+t+"'. Choose either prefix, suffix, or none.\nAvailable base breakpoints: '"+Object.keys(e.Breakpoints).join("', '")+"'.\nAvailable prefixes: '<= ', '>= '.\nAvailable suffixes: ' and smaller', ' and larger'.");this.registerTemplate(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"responsiveDefault",{set:function(t){this.registerDefault()},enumerable:!0,configurable:!0}),t.prototype.registerTemplate=function(t){this.host.register(t,this.templateRef)},t.prototype.registerDefault=function(){this.host.registerDefault(this.templateRef)},t.decorators=[{type:a.Directive,args:[{selector:"[responsiveCase], [responsiveDefault]"}]}],t.ctorParameters=function(){return[{type:a.TemplateRef},{type:r,decorators:[{type:a.Host}]}]},t.propDecorators={responsiveCase:[{type:a.Input,args:["responsiveCase"]}],responsiveDefault:[{type:a.Input,args:["responsiveDefault"]}]},t}(),s=function(){function t(t,e,a){this.tmpl=t,this.vcr=e,this.breakpoints=a}return t.prototype.ngOnInit=function(){var t=this;this.observe!==undefined&&0<this.observe.length&&(this.sub=this.breakpoints.observe(this.observe).subscribe(function(){return t.render()})),this.render()},t.prototype.render=function(){var e=this,t=Object.keys(this.alternativeElements).find(function(t){return e.breakpoints.isMatched(i[t])}),a=this.alternativeElements[t]||this.tmpl;this.vcr.clear(),this.vcr.createEmbeddedView(a),this.update!==undefined&&this.update.next(t||"Default")},t.prototype.ngOnDestroy=function(){this.sub!==undefined&&this.sub.unsubscribe(),this.vcr.clear()},t.decorators=[{type:a.Directive,args:[{selector:"[responsive]"}]}],t.ctorParameters=function(){return[{type:a.TemplateRef},{type:a.ViewContainerRef},{type:e.BreakpointObserver}]},t.propDecorators={alternativeElements:[{type:a.Input,args:["responsive"]}],observe:[{type:a.Input,args:["responsiveObserve"]}],update:[{type:a.Input,args:["responsiveUpdate"]}]},t}(),o=function(){function t(){}return t.decorators=[{type:a.NgModule,args:[{declarations:[d,r,s],imports:[],exports:[d,r,s]}]}],t}();(n=t.Observe||(t.Observe={})).ORIENTATION="(orientation:landscape)",n.MAX_WIDTH=function(t,e){return void 0===e&&(e="px"),"(max-width: "+t+e+")"},n.MIN_WIDTH=function(t,e){return void 0===e&&(e="px"),"(min-width: "+t+e+")"},n.ANY_WINDOW_CHANGE=["(max-width: 599.99px)","(max-width: 959.99px)","(max-width: 1279.99px)","(max-width: 1919.99px)"],t.ResponsiveSwitchDirective=r,t.ResponsiveCaseDirective=d,t.ResponsiveDirective=s,t.NgxCdkResponsiveModule=o,t.AllBreakpoints=i,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=ngx-cdk-responsive.umd.min.js.map |
@@ -6,3 +6,4 @@ /** | ||
import { NgModule } from '@angular/core'; | ||
import { ResponsiveCaseDirective, ResponsiveDirective } from './responsive.directive'; | ||
import { ResponsiveCaseDirective, ResponsiveSwitchDirective } from './responsive-switch.directive'; | ||
import { ResponsiveDirective } from './responsive.directive'; | ||
export class NgxCdkResponsiveModule { | ||
@@ -12,7 +13,7 @@ } | ||
{ type: NgModule, args: [{ | ||
declarations: [ResponsiveCaseDirective, ResponsiveDirective], | ||
declarations: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective], | ||
imports: [], | ||
exports: [ResponsiveCaseDirective, ResponsiveDirective] | ||
exports: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective] | ||
},] } | ||
]; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtY2RrLXJlc3BvbnNpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBT3BGLE1BQU0sT0FBTyxzQkFBc0I7OztZQUxsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxFQUFFO2dCQUNYLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLG1CQUFtQixDQUFDO2FBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmV9IGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5neENka1Jlc3BvbnNpdmVNb2R1bGUgeyB9XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtY2RrLXJlc3BvbnNpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTzdELE1BQU0sT0FBTyxzQkFBc0I7OztZQUxsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLENBQUM7Z0JBQ3ZGLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixDQUFDO2FBQ25GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZX0gZnJvbSAnLi9yZXNwb25zaXZlLXN3aXRjaC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZXNwb25zaXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNwb25zaXZlLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbXSxcclxuICBleHBvcnRzOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVTd2l0Y2hEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hDZGtSZXNwb25zaXZlTW9kdWxlIHsgfVxyXG4iXX0= |
@@ -5,15 +5,16 @@ /** | ||
*/ | ||
import { Directive, EventEmitter, Host, Input, Output, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; | ||
import { AllBreakpoints } from './internal'; | ||
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { BreakpointObserver } from '@angular/cdk/layout'; | ||
import { Subject } from 'rxjs'; | ||
import { AllBreakpoints } from './models'; | ||
export class ResponsiveDirective { | ||
/** | ||
* @param {?} tmpl | ||
* @param {?} vcr | ||
* @param {?} breakpoints | ||
*/ | ||
constructor(vcr, breakpoints) { | ||
constructor(tmpl, vcr, breakpoints) { | ||
this.tmpl = tmpl; | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
this.updated = new EventEmitter(); | ||
this.registeredTemplates = new Map(); | ||
} | ||
@@ -27,32 +28,16 @@ /** | ||
} | ||
} | ||
/** | ||
* @param {?} size | ||
* @param {?} template | ||
* @return {?} | ||
*/ | ||
register(size, template) { | ||
this.registeredTemplates.set(size.trim(), template); | ||
this.render(); | ||
} | ||
/** | ||
* @param {?} template | ||
* @return {?} | ||
*/ | ||
registerDefault(template) { | ||
this.defaultTemplate = template; | ||
this.render(); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
render() { | ||
/** @type {?} */ | ||
const usedSize = Array.from(this.registeredTemplates.keys()).find(size => this.breakpoints.isMatched(AllBreakpoints[size])); | ||
const usedSize = Object.keys(this.alternativeElements).find(size => this.breakpoints.isMatched(AllBreakpoints[size])); | ||
/** @type {?} */ | ||
const usedTemplate = this.registeredTemplates.get(usedSize) || this.defaultTemplate; | ||
if (usedTemplate !== undefined) { | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
this.updated.emit(usedSize || 'Default'); | ||
const usedTemplate = this.alternativeElements[usedSize] || this.tmpl; | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
if (this.update !== undefined) { | ||
this.update.next(usedSize || 'Default'); | ||
} | ||
@@ -67,2 +52,3 @@ } | ||
} | ||
this.vcr.clear(); | ||
} | ||
@@ -77,2 +63,3 @@ } | ||
ResponsiveDirective.ctorParameters = () => [ | ||
{ type: TemplateRef }, | ||
{ type: ViewContainerRef }, | ||
@@ -82,10 +69,13 @@ { type: BreakpointObserver } | ||
ResponsiveDirective.propDecorators = { | ||
observe: [{ type: Input }], | ||
updated: [{ type: Output }] | ||
alternativeElements: [{ type: Input, args: ['responsive',] }], | ||
observe: [{ type: Input, args: ['responsiveObserve',] }], | ||
update: [{ type: Input, args: ['responsiveUpdate',] }] | ||
}; | ||
if (false) { | ||
/** @type {?} */ | ||
ResponsiveDirective.prototype.alternativeElements; | ||
/** @type {?} */ | ||
ResponsiveDirective.prototype.observe; | ||
/** @type {?} */ | ||
ResponsiveDirective.prototype.updated; | ||
ResponsiveDirective.prototype.update; | ||
/** | ||
@@ -95,3 +85,3 @@ * @type {?} | ||
*/ | ||
ResponsiveDirective.prototype.registeredTemplates; | ||
ResponsiveDirective.prototype.sub; | ||
/** | ||
@@ -101,3 +91,3 @@ * @type {?} | ||
*/ | ||
ResponsiveDirective.prototype.defaultTemplate; | ||
ResponsiveDirective.prototype.tmpl; | ||
/** | ||
@@ -107,7 +97,2 @@ * @type {?} | ||
*/ | ||
ResponsiveDirective.prototype.sub; | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
ResponsiveDirective.prototype.vcr; | ||
@@ -120,76 +105,2 @@ /** | ||
} | ||
export class ResponsiveCaseDirective { | ||
/** | ||
* @param {?} templateRef | ||
* @param {?} host | ||
*/ | ||
constructor(templateRef, host) { | ||
this.templateRef = templateRef; | ||
this.host = host; | ||
} | ||
/** | ||
* @param {?} size | ||
* @return {?} | ||
*/ | ||
set responsiveCase(size) { | ||
if (size === null) { | ||
throw new Error('No \'size\' passed. Use \'responsive.default\' for default case.'); | ||
} | ||
size = size.startsWith('<=') ? size.substring(2).trim() + ' and smaller' : size; | ||
size = size.startsWith('>=') ? size.substring(2).trim() + ' and larger' : size; | ||
if (!(size in AllBreakpoints)) { | ||
throw new Error(`No such size '${size}'. Choose either prefix, suffix, or none. | ||
Available base breakpoints: '${Object.keys(Breakpoints).join('\', \'')}'. | ||
Available prefixes: '<= ', '>= '. | ||
Available suffixes: ' and smaller', ' and larger'.`); | ||
} | ||
this.registerTemplate(size); | ||
} | ||
/** | ||
* @param {?} _ | ||
* @return {?} | ||
*/ | ||
set responsiveDefault(_) { | ||
this.registerDefault(); | ||
} | ||
/** | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
registerTemplate(breakpoint) { | ||
this.host.register(breakpoint, this.templateRef); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
registerDefault() { | ||
this.host.registerDefault(this.templateRef); | ||
} | ||
} | ||
ResponsiveCaseDirective.decorators = [ | ||
{ type: Directive, args: [{ | ||
selector: '[responsiveCase], [responsiveDefault]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveCaseDirective.ctorParameters = () => [ | ||
{ type: TemplateRef }, | ||
{ type: ResponsiveDirective, decorators: [{ type: Host }] } | ||
]; | ||
ResponsiveCaseDirective.propDecorators = { | ||
responsiveCase: [{ type: Input, args: ['responsiveCase',] }], | ||
responsiveDefault: [{ type: Input, args: ['responsiveDefault',] }] | ||
}; | ||
if (false) { | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
ResponsiveCaseDirective.prototype.templateRef; | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
ResponsiveCaseDirective.prototype.host; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvIiwic291cmNlcyI6WyJsaWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFLMUMsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7SUFTOUIsWUFBb0IsR0FBcUIsRUFDckIsV0FBK0I7UUFEL0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUHpDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZDLHdCQUFtQixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0lBTWxFLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQzs7Ozs7O0lBRUQsUUFBUSxDQUFDLElBQVksRUFBRSxRQUEwQjtRQUMvQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFR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QUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Ozs7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OztZQXBDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVDQUF1QyxDQUFDLHNCQUFzQjthQUN6RTs7OztZQTNEd0UsV0FBVztZQW9GaEQsbUJBQW1CLHVCQUF4QyxJQUFJOzs7NkJBdEJoQixLQUFLLFNBQUMsZ0JBQWdCO2dDQWlCdEIsS0FBSyxTQUFDLG1CQUFtQjs7Ozs7OztJQUlkLDhDQUFxQzs7Ozs7SUFDckMsdUNBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FsbEJyZWFrcG9pbnRzfSBmcm9tICcuL2ludGVybmFsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgb2JzZXJ2ZTogc3RyaW5nW107XG4gIEBPdXRwdXQoKSB1cGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSByZWdpc3RlcmVkVGVtcGxhdGVzID0gbmV3IE1hcDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIHByaXZhdGUgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGJyZWFrcG9pbnRzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm9ic2VydmUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm9ic2VydmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdWIgPSB0aGlzLmJyZWFrcG9pbnRzLm9ic2VydmUodGhpcy5vYnNlcnZlKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW5kZXIoKSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXIoc2l6ZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5zZXQoc2l6ZS50cmltKCksIHRlbXBsYXRlKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcmVnaXN0ZXJEZWZhdWx0KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5kZWZhdWx0VGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHVzZWRTaXplID0gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXMua2V5cygpKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcbiAgICBjb25zdCB1c2VkVGVtcGxhdGUgPSB0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXMuZ2V0KHVzZWRTaXplKSB8fCB0aGlzLmRlZmF1bHRUZW1wbGF0ZTtcblxuICAgIGlmICh1c2VkVGVtcGxhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xuICAgICAgdGhpcy51cGRhdGVkLmVtaXQodXNlZFNpemUgfHwgJ0RlZmF1bHQnKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdWIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxufVxuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlQ2FzZV0sIFtyZXNwb25zaXZlRGVmYXVsdF0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUge1xuXG4gIEBJbnB1dCgncmVzcG9uc2l2ZUNhc2UnKSBzZXQgcmVzcG9uc2l2ZUNhc2Uoc2l6ZTogc3RyaW5nKSB7XG4gICAgaWYgKHNpemUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gXFwnc2l6ZVxcJyBwYXNzZWQuIFVzZSBcXCdyZXNwb25zaXZlLmRlZmF1bHRcXCcgZm9yIGRlZmF1bHQgY2FzZS4nKTtcbiAgICB9XG5cbiAgICBzaXplID0gc2l6ZS5zdGFydHNXaXRoKCc8PScpID8gc2l6ZS5zdWJzdHJpbmcoMikudHJpbSgpICsgJyBhbmQgc21hbGxlcicgOiBzaXplO1xuICAgIHNpemUgPSBzaXplLnN0YXJ0c1dpdGgoJz49JykgPyBzaXplLnN1YnN0cmluZygyKS50cmltKCkgKyAnIGFuZCBsYXJnZXInIDogc2l6ZTtcblxuICAgIGlmICghKHNpemUgaW4gQWxsQnJlYWtwb2ludHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggc2l6ZSAnJHtzaXplfScuIENob29zZSBlaXRoZXIgcHJlZml4LCBzdWZmaXgsIG9yIG5vbmUuXG5BdmFpbGFibGUgYmFzZSBicmVha3BvaW50czogJyR7T2JqZWN0LmtleXMoQnJlYWtwb2ludHMpLmpvaW4oJ1xcJywgXFwnJyl9Jy5cbkF2YWlsYWJsZSBwcmVmaXhlczogJzw9ICcsICc+PSAnLlxuQXZhaWxhYmxlIHN1ZmZpeGVzOiAnIGFuZCBzbWFsbGVyJywgJyBhbmQgbGFyZ2VyJy5gKTtcbiAgICB9XG4gICAgdGhpcy5yZWdpc3RlclRlbXBsYXRlKHNpemUpO1xuICB9XG5cbiAgQElucHV0KCdyZXNwb25zaXZlRGVmYXVsdCcpIHNldCByZXNwb25zaXZlRGVmYXVsdChfKSB7XG4gICAgdGhpcy5yZWdpc3RlckRlZmF1bHQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgIEBIb3N0KCkgcHJpdmF0ZSBob3N0OiBSZXNwb25zaXZlRGlyZWN0aXZlKSB7XG4gIH1cblxuICByZWdpc3RlclRlbXBsYXRlKGJyZWFrcG9pbnQ6IHN0cmluZykge1xuICAgIHRoaXMuaG9zdC5yZWdpc3RlcihicmVha3BvaW50LCB0aGlzLnRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHJlZ2lzdGVyRGVmYXVsdCgpIHtcbiAgICB0aGlzLmhvc3QucmVnaXN0ZXJEZWZhdWx0KHRoaXMudGVtcGxhdGVSZWYpO1xuICB9XG5cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvIiwic291cmNlcyI6WyJsaWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBTXhDLE1BQU0sT0FBTyxtQkFBbUI7Ozs7OztJQVU5QixZQUFvQixJQUFzQixFQUN0QixHQUFxQixFQUNyQixXQUErQjtRQUYvQixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7SUFDbkQsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDbEY7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVELE1BQU07O2NBQ0UsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7O2NBQy9HLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUk7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUM7OztZQXhDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWMsQ0FBQyxzQkFBc0I7YUFDaEQ7Ozs7WUFSNEMsV0FBVztZQUFFLGdCQUFnQjtZQUNsRSxrQkFBa0I7OztrQ0FXdkIsS0FBSyxTQUFDLFlBQVk7c0JBQ2xCLEtBQUssU0FBQyxtQkFBbUI7cUJBQ3pCLEtBQUssU0FBQyxrQkFBa0I7Ozs7SUFGekIsa0RBQTBGOztJQUMxRixzQ0FBOEM7O0lBQzlDLHFDQUErRDs7Ozs7SUFHL0Qsa0NBQTBCOzs7OztJQUVkLG1DQUE4Qjs7Ozs7SUFDOUIsa0NBQTZCOzs7OztJQUM3QiwwQ0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FsbEJyZWFrcG9pbnRzfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7QXZhaWxhYmxlQnJlYWtwb2ludHN9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZScpIGFsdGVybmF0aXZlRWxlbWVudHM6IFBhcnRpYWw8QXZhaWxhYmxlQnJlYWtwb2ludHM8VGVtcGxhdGVSZWY8YW55Pj4+O1xyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZU9ic2VydmUnKSBvYnNlcnZlOiBzdHJpbmdbXTtcclxuICBASW5wdXQoJ3Jlc3BvbnNpdmVVcGRhdGUnKSB1cGRhdGU6IFN1YmplY3Q8c3RyaW5nPiB8IHVuZGVmaW5lZDtcclxuICAvKiB0c2xpbnQ6ZW5hYmxlICovXHJcblxyXG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG1wbDogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICAgICAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGJyZWFrcG9pbnRzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc3ViID0gdGhpcy5icmVha3BvaW50cy5vYnNlcnZlKHRoaXMub2JzZXJ2ZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVuZGVyKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHVzZWRTaXplID0gT2JqZWN0LmtleXModGhpcy5hbHRlcm5hdGl2ZUVsZW1lbnRzKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcclxuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMuYWx0ZXJuYXRpdmVFbGVtZW50c1t1c2VkU2l6ZV0gfHwgdGhpcy50bXBsO1xyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xyXG4gICAgaWYgKHRoaXMudXBkYXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ== |
@@ -8,3 +8,3 @@ /** | ||
*/ | ||
export { ResponsiveDirective, ResponsiveCaseDirective, NgxCdkResponsiveModule, Observe } from './public_api'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNkay1yZXNwb25zaXZlLyIsInNvdXJjZXMiOlsibmd4LWNkay1yZXNwb25zaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSw4RkFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0= | ||
export { ResponsiveSwitchDirective, ResponsiveCaseDirective, ResponsiveDirective, NgxCdkResponsiveModule, Observe, AllBreakpoints } from './public_api'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNkay1yZXNwb25zaXZlLyIsInNvdXJjZXMiOlsibmd4LWNkay1yZXNwb25zaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSx5SUFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0= |
@@ -8,5 +8,7 @@ /** | ||
*/ | ||
export { ResponsiveDirective, ResponsiveCaseDirective } from './lib/responsive.directive'; | ||
export { ResponsiveSwitchDirective, ResponsiveCaseDirective } from './lib/responsive-switch.directive'; | ||
export { ResponsiveDirective } from './lib/responsive.directive'; | ||
export { NgxCdkResponsiveModule } from './lib/ngx-cdk-responsive.module'; | ||
export { Observe } from './lib/observe'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDZEQUFjLDRCQUE0QixDQUFDO0FBQzNDLHVDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELHdCQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNkay1yZXNwb25zaXZlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYnNlcnZlJztcbiJdfQ== | ||
export { AllBreakpoints } from './lib/models'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLG1FQUFjLG1DQUFtQyxDQUFDO0FBQ2xELG9DQUFjLDRCQUE0QixDQUFDO0FBQzNDLHVDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELHdCQUFjLGVBQWUsQ0FBQztBQUM5QiwrQkFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNkay1yZXNwb25zaXZlXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzcG9uc2l2ZS1zd2l0Y2guZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtY2RrLXJlc3BvbnNpdmUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JzZXJ2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XHJcbiJdfQ== |
@@ -6,3 +6,4 @@ /** | ||
import { NgModule } from '@angular/core'; | ||
import { ResponsiveCaseDirective, ResponsiveDirective } from './responsive.directive'; | ||
import { ResponsiveCaseDirective, ResponsiveSwitchDirective } from './responsive-switch.directive'; | ||
import { ResponsiveDirective } from './responsive.directive'; | ||
var NgxCdkResponsiveModule = /** @class */ (function () { | ||
@@ -13,5 +14,5 @@ function NgxCdkResponsiveModule() { | ||
{ type: NgModule, args: [{ | ||
declarations: [ResponsiveCaseDirective, ResponsiveDirective], | ||
declarations: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective], | ||
imports: [], | ||
exports: [ResponsiveCaseDirective, ResponsiveDirective] | ||
exports: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective] | ||
},] } | ||
@@ -22,2 +23,2 @@ ]; | ||
export { NgxCdkResponsiveModule }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtY2RrLXJlc3BvbnNpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRXBGO0lBQUE7SUFLc0MsQ0FBQzs7Z0JBTHRDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDNUQsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3hEOztJQUNxQyw2QkFBQztDQUFBLEFBTHZDLElBS3VDO1NBQTFCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlfSBmcm9tICcuL3Jlc3BvbnNpdmUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hDZGtSZXNwb25zaXZlTW9kdWxlIHsgfVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtY2RrLXJlc3BvbnNpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdEO0lBQUE7SUFLc0MsQ0FBQzs7Z0JBTHRDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkYsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ25GOztJQUNxQyw2QkFBQztDQUFBLEFBTHZDLElBS3VDO1NBQTFCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVTd2l0Y2hEaXJlY3RpdmV9IGZyb20gJy4vcmVzcG9uc2l2ZS1zd2l0Y2guZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVzcG9uc2l2ZURpcmVjdGl2ZSB9IGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW10sXHJcbiAgZXhwb3J0czogW1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4Q2RrUmVzcG9uc2l2ZU1vZHVsZSB7IH1cclxuIl19 |
@@ -5,11 +5,11 @@ /** | ||
*/ | ||
import { Directive, EventEmitter, Host, Input, Output, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; | ||
import { AllBreakpoints } from './internal'; | ||
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { BreakpointObserver } from '@angular/cdk/layout'; | ||
import { Subject } from 'rxjs'; | ||
import { AllBreakpoints } from './models'; | ||
var ResponsiveDirective = /** @class */ (function () { | ||
function ResponsiveDirective(vcr, breakpoints) { | ||
function ResponsiveDirective(tmpl, vcr, breakpoints) { | ||
this.tmpl = tmpl; | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
this.updated = new EventEmitter(); | ||
this.registeredTemplates = new Map(); | ||
} | ||
@@ -27,32 +27,7 @@ /** | ||
} | ||
}; | ||
/** | ||
* @param {?} size | ||
* @param {?} template | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.register = /** | ||
* @param {?} size | ||
* @param {?} template | ||
* @return {?} | ||
*/ | ||
function (size, template) { | ||
this.registeredTemplates.set(size.trim(), template); | ||
this.render(); | ||
}; | ||
/** | ||
* @param {?} template | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.registerDefault = /** | ||
* @param {?} template | ||
* @return {?} | ||
*/ | ||
function (template) { | ||
this.defaultTemplate = template; | ||
this.render(); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.render = /** | ||
@@ -64,9 +39,9 @@ * @return {?} | ||
/** @type {?} */ | ||
var usedSize = Array.from(this.registeredTemplates.keys()).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
var usedSize = Object.keys(this.alternativeElements).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
/** @type {?} */ | ||
var usedTemplate = this.registeredTemplates.get(usedSize) || this.defaultTemplate; | ||
if (usedTemplate !== undefined) { | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
this.updated.emit(usedSize || 'Default'); | ||
var usedTemplate = this.alternativeElements[usedSize] || this.tmpl; | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
if (this.update !== undefined) { | ||
this.update.next(usedSize || 'Default'); | ||
} | ||
@@ -84,2 +59,3 @@ }; | ||
} | ||
this.vcr.clear(); | ||
}; | ||
@@ -93,2 +69,3 @@ ResponsiveDirective.decorators = [ | ||
ResponsiveDirective.ctorParameters = function () { return [ | ||
{ type: TemplateRef }, | ||
{ type: ViewContainerRef }, | ||
@@ -98,4 +75,5 @@ { type: BreakpointObserver } | ||
ResponsiveDirective.propDecorators = { | ||
observe: [{ type: Input }], | ||
updated: [{ type: Output }] | ||
alternativeElements: [{ type: Input, args: ['responsive',] }], | ||
observe: [{ type: Input, args: ['responsiveObserve',] }], | ||
update: [{ type: Input, args: ['responsiveUpdate',] }] | ||
}; | ||
@@ -107,5 +85,7 @@ return ResponsiveDirective; | ||
/** @type {?} */ | ||
ResponsiveDirective.prototype.alternativeElements; | ||
/** @type {?} */ | ||
ResponsiveDirective.prototype.observe; | ||
/** @type {?} */ | ||
ResponsiveDirective.prototype.updated; | ||
ResponsiveDirective.prototype.update; | ||
/** | ||
@@ -115,3 +95,3 @@ * @type {?} | ||
*/ | ||
ResponsiveDirective.prototype.registeredTemplates; | ||
ResponsiveDirective.prototype.sub; | ||
/** | ||
@@ -121,3 +101,3 @@ * @type {?} | ||
*/ | ||
ResponsiveDirective.prototype.defaultTemplate; | ||
ResponsiveDirective.prototype.tmpl; | ||
/** | ||
@@ -127,7 +107,2 @@ * @type {?} | ||
*/ | ||
ResponsiveDirective.prototype.sub; | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
ResponsiveDirective.prototype.vcr; | ||
@@ -140,86 +115,2 @@ /** | ||
} | ||
var ResponsiveCaseDirective = /** @class */ (function () { | ||
function ResponsiveCaseDirective(templateRef, host) { | ||
this.templateRef = templateRef; | ||
this.host = host; | ||
} | ||
Object.defineProperty(ResponsiveCaseDirective.prototype, "responsiveCase", { | ||
set: /** | ||
* @param {?} size | ||
* @return {?} | ||
*/ | ||
function (size) { | ||
if (size === null) { | ||
throw new Error('No \'size\' passed. Use \'responsive.default\' for default case.'); | ||
} | ||
size = size.startsWith('<=') ? size.substring(2).trim() + ' and smaller' : size; | ||
size = size.startsWith('>=') ? size.substring(2).trim() + ' and larger' : size; | ||
if (!(size in AllBreakpoints)) { | ||
throw new Error("No such size '" + size + "'. Choose either prefix, suffix, or none.\nAvailable base breakpoints: '" + Object.keys(Breakpoints).join('\', \'') + "'.\nAvailable prefixes: '<= ', '>= '.\nAvailable suffixes: ' and smaller', ' and larger'."); | ||
} | ||
this.registerTemplate(size); | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
Object.defineProperty(ResponsiveCaseDirective.prototype, "responsiveDefault", { | ||
set: /** | ||
* @param {?} _ | ||
* @return {?} | ||
*/ | ||
function (_) { | ||
this.registerDefault(); | ||
}, | ||
enumerable: true, | ||
configurable: true | ||
}); | ||
/** | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
ResponsiveCaseDirective.prototype.registerTemplate = /** | ||
* @param {?} breakpoint | ||
* @return {?} | ||
*/ | ||
function (breakpoint) { | ||
this.host.register(breakpoint, this.templateRef); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveCaseDirective.prototype.registerDefault = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
this.host.registerDefault(this.templateRef); | ||
}; | ||
ResponsiveCaseDirective.decorators = [ | ||
{ type: Directive, args: [{ | ||
selector: '[responsiveCase], [responsiveDefault]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveCaseDirective.ctorParameters = function () { return [ | ||
{ type: TemplateRef }, | ||
{ type: ResponsiveDirective, decorators: [{ type: Host }] } | ||
]; }; | ||
ResponsiveCaseDirective.propDecorators = { | ||
responsiveCase: [{ type: Input, args: ['responsiveCase',] }], | ||
responsiveDefault: [{ type: Input, args: ['responsiveDefault',] }] | ||
}; | ||
return ResponsiveCaseDirective; | ||
}()); | ||
export { ResponsiveCaseDirective }; | ||
if (false) { | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
ResponsiveCaseDirective.prototype.templateRef; | ||
/** | ||
* @type {?} | ||
* @private | ||
*/ | ||
ResponsiveCaseDirective.prototype.host; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvIiwic291cmNlcyI6WyJsaWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFMUM7SUFZRSw2QkFBb0IsR0FBcUIsRUFDckIsV0FBK0I7UUFEL0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUHpDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZDLHdCQUFtQixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0lBTWxFLENBQUM7Ozs7SUFFRCxzQ0FBUTs7O0lBQVI7UUFBQSxpQkFJQztRQUhDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLE1BQU0sRUFBRSxFQUFiLENBQWEsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQzs7Ozs7O0lBRUQsc0NBQVE7Ozs7O0lBQVIsVUFBUyxJQUFZLEVBQUUsUUFBMEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxF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LHNCQUFnQyxzREFBaUI7Ozs7O1FBQWpELFVBQWtELENBQUM7WUFDakQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7OztPQUFBOzs7OztJQU1ELGtEQUFnQjs7OztJQUFoQixVQUFpQixVQUFrQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Ozs7SUFFRCxpREFBZTs7O0lBQWY7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7Z0JBcENGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsdUNBQXVDLENBQUMsc0JBQXNCO2lCQUN6RTs7OztnQkEzRHdFLFdBQVc7Z0JBb0ZoRCxtQkFBbUIsdUJBQXhDLElBQUk7OztpQ0F0QmhCLEtBQUssU0FBQyxnQkFBZ0I7b0NBaUJ0QixLQUFLLFNBQUMsbUJBQW1COztJQWdCNUIsOEJBQUM7Q0FBQSxBQXRDRCxJQXNDQztTQW5DWSx1QkFBdUI7Ozs7OztJQXVCdEIsOENBQXFDOzs7OztJQUNyQyx1Q0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWxsQnJlYWtwb2ludHN9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVzcG9uc2l2ZV0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBvYnNlcnZlOiBzdHJpbmdbXTtcbiAgQE91dHB1dCgpIHVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIHJlZ2lzdGVyZWRUZW1wbGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBkZWZhdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnJlYWtwb2ludHM6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YiA9IHRoaXMuYnJlYWtwb2ludHMub2JzZXJ2ZSh0aGlzLm9ic2VydmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcigpKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcihzaXplOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVzLnNldChzaXplLnRyaW0oKSwgdGVtcGxhdGUpO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZWdpc3RlckRlZmF1bHQodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgdXNlZFNpemUgPSBBcnJheS5mcm9tKHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5rZXlzKCkpLmZpbmQoc2l6ZSA9PiB0aGlzLmJyZWFrcG9pbnRzLmlzTWF0Y2hlZChBbGxCcmVha3BvaW50c1tzaXplXSkpO1xuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5nZXQodXNlZFNpemUpIHx8IHRoaXMuZGVmYXVsdFRlbXBsYXRlO1xuXG4gICAgaWYgKHVzZWRUZW1wbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHVzZWRUZW1wbGF0ZSk7XG4gICAgICB0aGlzLnVwZGF0ZWQuZW1pdCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG59XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVDYXNlXSwgW3Jlc3BvbnNpdmVEZWZhdWx0XScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxufSlcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSB7XG5cbiAgQElucHV0KCdyZXNwb25zaXZlQ2FzZScpIHNldCByZXNwb25zaXZlQ2FzZShzaXplOiBzdHJpbmcpIHtcbiAgICBpZiAoc2l6ZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBcXCdzaXplXFwnIHBhc3NlZC4gVXNlIFxcJ3Jlc3BvbnNpdmUuZGVmYXVsdFxcJyBmb3IgZGVmYXVsdCBjYXNlLicpO1xuICAgIH1cblxuICAgIHNpemUgPSBzaXplLnN0YXJ0c1dpdGgoJzw9JykgPyBzaXplLnN1YnN0cmluZygyKS50cmltKCkgKyAnIGFuZCBzbWFsbGVyJyA6IHNpemU7XG4gICAgc2l6ZSA9IHNpemUuc3RhcnRzV2l0aCgnPj0nKSA/IHNpemUuc3Vic3RyaW5nKDIpLnRyaW0oKSArICcgYW5kIGxhcmdlcicgOiBzaXplO1xuXG4gICAgaWYgKCEoc2l6ZSBpbiBBbGxCcmVha3BvaW50cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzaXplICcke3NpemV9Jy4gQ2hvb3NlIGVpdGhlciBwcmVmaXgsIHN1ZmZpeCwgb3Igbm9uZS5cbkF2YWlsYWJsZSBiYXNlIGJyZWFrcG9pbnRzOiAnJHtPYmplY3Qua2V5cyhCcmVha3BvaW50cykuam9pbignXFwnLCBcXCcnKX0nLlxuQXZhaWxhYmxlIHByZWZpeGVzOiAnPD0gJywgJz49ICcuXG5BdmFpbGFibGUgc3VmZml4ZXM6ICcgYW5kIHNtYWxsZXInLCAnIGFuZCBsYXJnZXInLmApO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyVGVtcGxhdGUoc2l6ZSk7XG4gIH1cblxuICBASW5wdXQoJ3Jlc3BvbnNpdmVEZWZhdWx0Jykgc2V0IHJlc3BvbnNpdmVEZWZhdWx0KF8pIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgQEhvc3QoKSBwcml2YXRlIGhvc3Q6IFJlc3BvbnNpdmVEaXJlY3RpdmUpIHtcbiAgfVxuXG4gIHJlZ2lzdGVyVGVtcGxhdGUoYnJlYWtwb2ludDogc3RyaW5nKSB7XG4gICAgdGhpcy5ob3N0LnJlZ2lzdGVyKGJyZWFrcG9pbnQsIHRoaXMudGVtcGxhdGVSZWYpO1xuICB9XG5cbiAgcmVnaXN0ZXJEZWZhdWx0KCkge1xuICAgIHRoaXMuaG9zdC5yZWdpc3RlckRlZmF1bHQodGhpcy50ZW1wbGF0ZVJlZik7XG4gIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvIiwic291cmNlcyI6WyJsaWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBR3hDO0lBYUUsNkJBQW9CLElBQXNCLEVBQ3RCLEdBQXFCLEVBQ3JCLFdBQStCO1FBRi9CLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUNuRCxDQUFDOzs7O0lBRUQsc0NBQVE7OztJQUFSO1FBQUEsaUJBS0M7UUFKQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxNQUFNLEVBQUUsRUFBYixDQUFhLENBQUMsQ0FBQztTQUNsRjtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQsb0NBQU07OztJQUFOO1FBQUEsaUJBUUM7O1lBUE8sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsS0FBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQWhELENBQWdELENBQUM7O1lBQy9HLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUk7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNFLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Z0JBeENGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsY0FBYyxDQUFDLHNCQUFzQjtpQkFDaEQ7Ozs7Z0JBUjRDLFdBQVc7Z0JBQUUsZ0JBQWdCO2dCQUNsRSxrQkFBa0I7OztzQ0FXdkIsS0FBSyxTQUFDLFlBQVk7MEJBQ2xCLEtBQUssU0FBQyxtQkFBbUI7eUJBQ3pCLEtBQUssU0FBQyxrQkFBa0I7O0lBa0MzQiwwQkFBQztDQUFBLEFBMUNELElBMENDO1NBdkNZLG1CQUFtQjs7O0lBRzlCLGtEQUEwRjs7SUFDMUYsc0NBQThDOztJQUM5QyxxQ0FBK0Q7Ozs7O0lBRy9ELGtDQUEwQjs7Ozs7SUFFZCxtQ0FBOEI7Ozs7O0lBQzlCLGtDQUE2Qjs7Ozs7SUFDN0IsMENBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtBbGxCcmVha3BvaW50c30gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQge0F2YWlsYWJsZUJyZWFrcG9pbnRzfSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlXScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUgKi9cclxuICBASW5wdXQoJ3Jlc3BvbnNpdmUnKSBhbHRlcm5hdGl2ZUVsZW1lbnRzOiBQYXJ0aWFsPEF2YWlsYWJsZUJyZWFrcG9pbnRzPFRlbXBsYXRlUmVmPGFueT4+PjtcclxuICBASW5wdXQoJ3Jlc3BvbnNpdmVPYnNlcnZlJykgb2JzZXJ2ZTogc3RyaW5nW107XHJcbiAgQElucHV0KCdyZXNwb25zaXZlVXBkYXRlJykgdXBkYXRlOiBTdWJqZWN0PHN0cmluZz4gfCB1bmRlZmluZWQ7XHJcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xyXG5cclxuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRtcGw6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBicmVha3BvaW50czogQnJlYWtwb2ludE9ic2VydmVyKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9ic2VydmUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm9ic2VydmUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnN1YiA9IHRoaXMuYnJlYWtwb2ludHMub2JzZXJ2ZSh0aGlzLm9ic2VydmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcigpKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB1c2VkU2l6ZSA9IE9iamVjdC5rZXlzKHRoaXMuYWx0ZXJuYXRpdmVFbGVtZW50cykuZmluZChzaXplID0+IHRoaXMuYnJlYWtwb2ludHMuaXNNYXRjaGVkKEFsbEJyZWFrcG9pbnRzW3NpemVdKSk7XHJcbiAgICBjb25zdCB1c2VkVGVtcGxhdGUgPSB0aGlzLmFsdGVybmF0aXZlRWxlbWVudHNbdXNlZFNpemVdIHx8IHRoaXMudG1wbDtcclxuICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodXNlZFRlbXBsYXRlKTtcclxuICAgIGlmICh0aGlzLnVwZGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlLm5leHQodXNlZFNpemUgfHwgJ0RlZmF1bHQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuc3ViICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= |
@@ -8,3 +8,3 @@ /** | ||
*/ | ||
export { ResponsiveDirective, ResponsiveCaseDirective, NgxCdkResponsiveModule, Observe } from './public_api'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNkay1yZXNwb25zaXZlLyIsInNvdXJjZXMiOlsibmd4LWNkay1yZXNwb25zaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSw4RkFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0= | ||
export { ResponsiveSwitchDirective, ResponsiveCaseDirective, ResponsiveDirective, NgxCdkResponsiveModule, Observe, AllBreakpoints } from './public_api'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNkay1yZXNwb25zaXZlLyIsInNvdXJjZXMiOlsibmd4LWNkay1yZXNwb25zaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSx5SUFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0= |
@@ -8,5 +8,7 @@ /** | ||
*/ | ||
export { ResponsiveDirective, ResponsiveCaseDirective } from './lib/responsive.directive'; | ||
export { ResponsiveSwitchDirective, ResponsiveCaseDirective } from './lib/responsive-switch.directive'; | ||
export { ResponsiveDirective } from './lib/responsive.directive'; | ||
export { NgxCdkResponsiveModule } from './lib/ngx-cdk-responsive.module'; | ||
export { Observe } from './lib/observe'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDZEQUFjLDRCQUE0QixDQUFDO0FBQzNDLHVDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELHdCQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNkay1yZXNwb25zaXZlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYnNlcnZlJztcbiJdfQ== | ||
export { AllBreakpoints } from './lib/models'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1jZGstcmVzcG9uc2l2ZS8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLG1FQUFjLG1DQUFtQyxDQUFDO0FBQ2xELG9DQUFjLDRCQUE0QixDQUFDO0FBQzNDLHVDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELHdCQUFjLGVBQWUsQ0FBQztBQUM5QiwrQkFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNkay1yZXNwb25zaXZlXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzcG9uc2l2ZS1zd2l0Y2guZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtY2RrLXJlc3BvbnNpdmUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JzZXJ2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XHJcbiJdfQ== |
@@ -1,3 +0,4 @@ | ||
import { Breakpoints, BreakpointObserver } from '@angular/cdk/layout'; | ||
import { Directive, EventEmitter, Host, Input, Output, TemplateRef, ViewContainerRef, NgModule } from '@angular/core'; | ||
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; | ||
import 'rxjs'; | ||
@@ -8,21 +9,48 @@ /** | ||
*/ | ||
// tslint:disable:max-line-length | ||
/** @type {?} */ | ||
const regexMinWidth = /\(min-width: \d+?px\)/g; | ||
/** @type {?} */ | ||
const regexMaxWidth = /\(max-width: (\d|\.)+?px\)/g; | ||
/** @type {?} */ | ||
const AllBreakpoints = Object.entries(Breakpoints).reduce((acc, [key, value]) => { | ||
/** @type {?} */ | ||
const keyAndSmaller = key + ' and smaller'; | ||
/** @type {?} */ | ||
const keyAndLarger = key + ' and larger'; | ||
/** @type {?} */ | ||
const valueAndSmaller = value.replace(regexMinWidth, '(min-width: 0px)'); | ||
/** @type {?} */ | ||
const valueAndLarger = value.replace(regexMaxWidth, '(max-width: 1000000px)'); | ||
acc[key] = value; | ||
acc[keyAndSmaller] = valueAndSmaller; | ||
acc[keyAndLarger] = valueAndLarger; | ||
return acc; | ||
}, {}); | ||
const AllBreakpoints = { | ||
'XSmall': '(max-width: 599.99px)', | ||
'XSmall and smaller': '(max-width: 599.99px)', | ||
'XSmall and larger': '(max-width: 1000000px)', | ||
'Small': '(min-width: 600px) and (max-width: 959.99px)', | ||
'Small and smaller': '(min-width: 0px) and (max-width: 959.99px)', | ||
'Small and larger': '(min-width: 600px) and (max-width: 1000000px)', | ||
'Medium': '(min-width: 960px) and (max-width: 1279.99px)', | ||
'Medium and smaller': '(min-width: 0px) and (max-width: 1279.99px)', | ||
'Medium and larger': '(min-width: 960px) and (max-width: 1000000px)', | ||
'Large': '(min-width: 1280px) and (max-width: 1919.99px)', | ||
'Large and smaller': '(min-width: 0px) and (max-width: 1919.99px)', | ||
'Large and larger': '(min-width: 1280px) and (max-width: 1000000px)', | ||
'XLarge': '(min-width: 1920px)', | ||
'XLarge and smaller': '(min-width: 0px)', | ||
'XLarge and larger': '(min-width: 1920px)', | ||
'Handset': '(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)', | ||
'Handset and smaller': '(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)', | ||
'Handset and larger': '(max-width: 1000000px) and (orientation: portrait), (max-width: 1000000px) and (orientation: landscape)', | ||
'Tablet': '(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'Tablet and smaller': '(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'Tablet and larger': '(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait), (min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)', | ||
'Web': '(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)', | ||
'Web and smaller': '(min-width: 0px) and (orientation: portrait), (min-width: 0px) and (orientation: landscape)', | ||
'Web and larger': '(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)', | ||
'HandsetPortrait': '(max-width: 599.99px) and (orientation: portrait)', | ||
'HandsetPortrait and smaller': '(max-width: 599.99px) and (orientation: portrait)', | ||
'HandsetPortrait and larger': '(max-width: 1000000px) and (orientation: portrait)', | ||
'TabletPortrait': '(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait)', | ||
'TabletPortrait and smaller': '(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait)', | ||
'TabletPortrait and larger': '(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait)', | ||
'WebPortrait': '(min-width: 840px) and (orientation: portrait)', | ||
'WebPortrait and smaller': '(min-width: 0px) and (orientation: portrait)', | ||
'WebPortrait and larger': '(min-width: 840px) and (orientation: portrait)', | ||
'HandsetLandscape': '(max-width: 959.99px) and (orientation: landscape)', | ||
'HandsetLandscape and smaller': '(max-width: 959.99px) and (orientation: landscape)', | ||
'HandsetLandscape and larger': '(max-width: 1000000px) and (orientation: landscape)', | ||
'TabletLandscape': '(min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'TabletLandscape and smaller': '(min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'TabletLandscape and larger': '(min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)', | ||
'WebLandscape': '(min-width: 1280px) and (orientation: landscape)', | ||
'WebLandscape and smaller': '(min-width: 0px) and (orientation: landscape)', | ||
'WebLandscape and larger': '(min-width: 1280px) and (orientation: landscape)' | ||
}; | ||
@@ -33,3 +61,3 @@ /** | ||
*/ | ||
class ResponsiveDirective { | ||
class ResponsiveSwitchDirective { | ||
/** | ||
@@ -42,4 +70,4 @@ * @param {?} vcr | ||
this.breakpoints = breakpoints; | ||
this.updated = new EventEmitter(); | ||
this.registeredTemplates = new Map(); | ||
this.update = new EventEmitter(); | ||
this.registeredTemplates = {}; | ||
} | ||
@@ -60,3 +88,3 @@ /** | ||
register(size, template) { | ||
this.registeredTemplates.set(size.trim(), template); | ||
this.registeredTemplates[size.trim()] = template; | ||
this.render(); | ||
@@ -77,9 +105,9 @@ } | ||
/** @type {?} */ | ||
const usedSize = Array.from(this.registeredTemplates.keys()).find(size => this.breakpoints.isMatched(AllBreakpoints[size])); | ||
const usedSize = Object.keys(this.registeredTemplates).find(size => this.breakpoints.isMatched(AllBreakpoints[size])); | ||
/** @type {?} */ | ||
const usedTemplate = this.registeredTemplates.get(usedSize) || this.defaultTemplate; | ||
const usedTemplate = this.registeredTemplates[usedSize] || this.defaultTemplate; | ||
if (usedTemplate !== undefined) { | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
this.updated.emit(usedSize || 'Default'); | ||
this.update.emit(usedSize || 'Default'); | ||
} | ||
@@ -94,17 +122,18 @@ } | ||
} | ||
this.vcr.clear(); | ||
} | ||
} | ||
ResponsiveDirective.decorators = [ | ||
ResponsiveSwitchDirective.decorators = [ | ||
{ type: Directive, args: [{ | ||
selector: '[responsive]' // tslint:disable-line | ||
selector: '[responsiveSwitch]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveDirective.ctorParameters = () => [ | ||
ResponsiveSwitchDirective.ctorParameters = () => [ | ||
{ type: ViewContainerRef }, | ||
{ type: BreakpointObserver } | ||
]; | ||
ResponsiveDirective.propDecorators = { | ||
ResponsiveSwitchDirective.propDecorators = { | ||
observe: [{ type: Input }], | ||
updated: [{ type: Output }] | ||
update: [{ type: Output }] | ||
}; | ||
@@ -167,3 +196,3 @@ class ResponsiveCaseDirective { | ||
{ type: TemplateRef }, | ||
{ type: ResponsiveDirective, decorators: [{ type: Host }] } | ||
{ type: ResponsiveSwitchDirective, decorators: [{ type: Host }] } | ||
]; | ||
@@ -179,2 +208,67 @@ ResponsiveCaseDirective.propDecorators = { | ||
*/ | ||
class ResponsiveDirective { | ||
/** | ||
* @param {?} tmpl | ||
* @param {?} vcr | ||
* @param {?} breakpoints | ||
*/ | ||
constructor(tmpl, vcr, breakpoints) { | ||
this.tmpl = tmpl; | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ngOnInit() { | ||
if (this.observe !== undefined && this.observe.length > 0) { | ||
this.sub = this.breakpoints.observe(this.observe).subscribe(() => this.render()); | ||
} | ||
this.render(); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
render() { | ||
/** @type {?} */ | ||
const usedSize = Object.keys(this.alternativeElements).find(size => this.breakpoints.isMatched(AllBreakpoints[size])); | ||
/** @type {?} */ | ||
const usedTemplate = this.alternativeElements[usedSize] || this.tmpl; | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
if (this.update !== undefined) { | ||
this.update.next(usedSize || 'Default'); | ||
} | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ngOnDestroy() { | ||
if (this.sub !== undefined) { | ||
this.sub.unsubscribe(); | ||
} | ||
this.vcr.clear(); | ||
} | ||
} | ||
ResponsiveDirective.decorators = [ | ||
{ type: Directive, args: [{ | ||
selector: '[responsive]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveDirective.ctorParameters = () => [ | ||
{ type: TemplateRef }, | ||
{ type: ViewContainerRef }, | ||
{ type: BreakpointObserver } | ||
]; | ||
ResponsiveDirective.propDecorators = { | ||
alternativeElements: [{ type: Input, args: ['responsive',] }], | ||
observe: [{ type: Input, args: ['responsiveObserve',] }], | ||
update: [{ type: Input, args: ['responsiveUpdate',] }] | ||
}; | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
class NgxCdkResponsiveModule { | ||
@@ -184,5 +278,5 @@ } | ||
{ type: NgModule, args: [{ | ||
declarations: [ResponsiveCaseDirective, ResponsiveDirective], | ||
declarations: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective], | ||
imports: [], | ||
exports: [ResponsiveCaseDirective, ResponsiveDirective] | ||
exports: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective] | ||
},] } | ||
@@ -213,4 +307,4 @@ ]; | ||
export { ResponsiveDirective, ResponsiveCaseDirective, NgxCdkResponsiveModule, Observe }; | ||
export { ResponsiveSwitchDirective, ResponsiveCaseDirective, ResponsiveDirective, NgxCdkResponsiveModule, Observe, AllBreakpoints }; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL2ludGVybmFsLnRzIiwibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL3Jlc3BvbnNpdmUuZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL25neC1jZGstcmVzcG9uc2l2ZS5tb2R1bGUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvb2JzZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuXHJcbmNvbnN0IHJlZ2V4TWluV2lkdGggPSAvXFwobWluLXdpZHRoOiBcXGQrP3B4XFwpL2c7XHJcbmNvbnN0IHJlZ2V4TWF4V2lkdGggPSAvXFwobWF4LXdpZHRoOiAoXFxkfFxcLikrP3B4XFwpL2c7XHJcblxyXG5leHBvcnQgY29uc3QgQWxsQnJlYWtwb2ludHMgPSBPYmplY3QuZW50cmllcyhCcmVha3BvaW50cykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gIGNvbnN0IGtleUFuZFNtYWxsZXIgPSBrZXkgKyAnIGFuZCBzbWFsbGVyJztcclxuICBjb25zdCBrZXlBbmRMYXJnZXIgPSBrZXkgKyAnIGFuZCBsYXJnZXInO1xyXG5cclxuICBjb25zdCB2YWx1ZUFuZFNtYWxsZXIgPSB2YWx1ZS5yZXBsYWNlKHJlZ2V4TWluV2lkdGgsICcobWluLXdpZHRoOiAwcHgpJyk7XHJcbiAgY29uc3QgdmFsdWVBbmRMYXJnZXIgPSB2YWx1ZS5yZXBsYWNlKHJlZ2V4TWF4V2lkdGgsICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyk7XHJcblxyXG4gIGFjY1trZXldID0gdmFsdWU7XHJcbiAgYWNjW2tleUFuZFNtYWxsZXJdID0gdmFsdWVBbmRTbWFsbGVyO1xyXG4gIGFjY1trZXlBbmRMYXJnZXJdID0gdmFsdWVBbmRMYXJnZXI7XHJcbiAgcmV0dXJuIGFjYztcclxufSwge30pO1xyXG4iLCJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWxsQnJlYWtwb2ludHN9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVzcG9uc2l2ZV0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBvYnNlcnZlOiBzdHJpbmdbXTtcbiAgQE91dHB1dCgpIHVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIHJlZ2lzdGVyZWRUZW1wbGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBkZWZhdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnJlYWtwb2ludHM6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YiA9IHRoaXMuYnJlYWtwb2ludHMub2JzZXJ2ZSh0aGlzLm9ic2VydmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcigpKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcihzaXplOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVzLnNldChzaXplLnRyaW0oKSwgdGVtcGxhdGUpO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZWdpc3RlckRlZmF1bHQodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgdXNlZFNpemUgPSBBcnJheS5mcm9tKHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5rZXlzKCkpLmZpbmQoc2l6ZSA9PiB0aGlzLmJyZWFrcG9pbnRzLmlzTWF0Y2hlZChBbGxCcmVha3BvaW50c1tzaXplXSkpO1xuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5nZXQodXNlZFNpemUpIHx8IHRoaXMuZGVmYXVsdFRlbXBsYXRlO1xuXG4gICAgaWYgKHVzZWRUZW1wbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHVzZWRUZW1wbGF0ZSk7XG4gICAgICB0aGlzLnVwZGF0ZWQuZW1pdCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG59XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVDYXNlXSwgW3Jlc3BvbnNpdmVEZWZhdWx0XScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxufSlcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSB7XG5cbiAgQElucHV0KCdyZXNwb25zaXZlQ2FzZScpIHNldCByZXNwb25zaXZlQ2FzZShzaXplOiBzdHJpbmcpIHtcbiAgICBpZiAoc2l6ZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBcXCdzaXplXFwnIHBhc3NlZC4gVXNlIFxcJ3Jlc3BvbnNpdmUuZGVmYXVsdFxcJyBmb3IgZGVmYXVsdCBjYXNlLicpO1xuICAgIH1cblxuICAgIHNpemUgPSBzaXplLnN0YXJ0c1dpdGgoJzw9JykgPyBzaXplLnN1YnN0cmluZygyKS50cmltKCkgKyAnIGFuZCBzbWFsbGVyJyA6IHNpemU7XG4gICAgc2l6ZSA9IHNpemUuc3RhcnRzV2l0aCgnPj0nKSA/IHNpemUuc3Vic3RyaW5nKDIpLnRyaW0oKSArICcgYW5kIGxhcmdlcicgOiBzaXplO1xuXG4gICAgaWYgKCEoc2l6ZSBpbiBBbGxCcmVha3BvaW50cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzaXplICcke3NpemV9Jy4gQ2hvb3NlIGVpdGhlciBwcmVmaXgsIHN1ZmZpeCwgb3Igbm9uZS5cbkF2YWlsYWJsZSBiYXNlIGJyZWFrcG9pbnRzOiAnJHtPYmplY3Qua2V5cyhCcmVha3BvaW50cykuam9pbignXFwnLCBcXCcnKX0nLlxuQXZhaWxhYmxlIHByZWZpeGVzOiAnPD0gJywgJz49ICcuXG5BdmFpbGFibGUgc3VmZml4ZXM6ICcgYW5kIHNtYWxsZXInLCAnIGFuZCBsYXJnZXInLmApO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyVGVtcGxhdGUoc2l6ZSk7XG4gIH1cblxuICBASW5wdXQoJ3Jlc3BvbnNpdmVEZWZhdWx0Jykgc2V0IHJlc3BvbnNpdmVEZWZhdWx0KF8pIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgQEhvc3QoKSBwcml2YXRlIGhvc3Q6IFJlc3BvbnNpdmVEaXJlY3RpdmUpIHtcbiAgfVxuXG4gIHJlZ2lzdGVyVGVtcGxhdGUoYnJlYWtwb2ludDogc3RyaW5nKSB7XG4gICAgdGhpcy5ob3N0LnJlZ2lzdGVyKGJyZWFrcG9pbnQsIHRoaXMudGVtcGxhdGVSZWYpO1xuICB9XG5cbiAgcmVnaXN0ZXJEZWZhdWx0KCkge1xuICAgIHRoaXMuaG9zdC5yZWdpc3RlckRlZmF1bHQodGhpcy50ZW1wbGF0ZVJlZik7XG4gIH1cblxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmV9IGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5neENka1Jlc3BvbnNpdmVNb2R1bGUgeyB9XG4iLCJleHBvcnQgbmFtZXNwYWNlIE9ic2VydmUge1xyXG4gIGV4cG9ydCBjb25zdCBPUklFTlRBVElPTiA9ICcob3JpZW50YXRpb246bGFuZHNjYXBlKSc7XHJcbiAgZXhwb3J0IGNvbnN0IE1BWF9XSURUSCA9ICh2YWx1ZTogbnVtYmVyLCB1bml0OiBzdHJpbmcgPSAncHgnKSA9PiBgKG1heC13aWR0aDogJHt2YWx1ZX0ke3VuaXR9KWA7XHJcbiAgZXhwb3J0IGNvbnN0IE1JTl9XSURUSCA9ICh2YWx1ZTogbnVtYmVyLCB1bml0OiBzdHJpbmcgPSAncHgnKSA9PiBgKG1pbi13aWR0aDogJHt2YWx1ZX0ke3VuaXR9KWA7XHJcbiAgZXhwb3J0IGNvbnN0IEFOWV9XSU5ET1dfQ0hBTkdFID0gWycobWF4LXdpZHRoOiA1OTkuOTlweCknLCAnKG1heC13aWR0aDogOTU5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDEyNzkuOTlweCknLCAnKG1heC13aWR0aDogMTkxOS45OXB4KSddO1xyXG59XHJcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7TUFFTSxhQUFhLEdBQUcsd0JBQXdCOztNQUN4QyxhQUFhLEdBQUcsNkJBQTZCOztBQUVuRCxNQUFhLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7O1VBQzNFLGFBQWEsR0FBRyxHQUFHLEdBQUcsY0FBYzs7VUFDcEMsWUFBWSxHQUFHLEdBQUcsR0FBRyxhQUFhOztVQUVsQyxlQUFlLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUM7O1VBQ2xFLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQztJQUU3RSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxlQUFlLENBQUM7SUFDckMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLGNBQWMsQ0FBQztJQUNuQyxPQUFPLEdBQUcsQ0FBQztDQUNaLEVBQUUsRUFBRSxDQUFDOzs7Ozs7QUNoQk4sTUFRYSxtQkFBbUI7Ozs7O0lBUzlCLFlBQW9CLEdBQXFCLEVBQ3JCLFdBQStCO1FBRC9CLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQVB6QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2Qyx3QkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL21vZGVscy50cyIsIm5nOi8vbmd4LWNkay1yZXNwb25zaXZlL2xpYi9yZXNwb25zaXZlLXN3aXRjaC5kaXJlY3RpdmUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvbmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS50cyIsIm5nOi8vbmd4LWNkay1yZXNwb25zaXZlL2xpYi9vYnNlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aFxyXG5cclxuZXhwb3J0IGNvbnN0IEFsbEJyZWFrcG9pbnRzOiBBdmFpbGFibGVCcmVha3BvaW50czxzdHJpbmc+ID0ge1xyXG4gICdYU21hbGwnOiAnKG1heC13aWR0aDogNTk5Ljk5cHgpJyxcclxuICAnWFNtYWxsIGFuZCBzbWFsbGVyJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KScsXHJcbiAgJ1hTbWFsbCBhbmQgbGFyZ2VyJzogJyhtYXgtd2lkdGg6IDEwMDAwMDBweCknLFxyXG4gICdTbWFsbCc6ICcobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDk1OS45OXB4KScsXHJcbiAgJ1NtYWxsIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDk1OS45OXB4KScsXHJcbiAgJ1NtYWxsIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyxcclxuICAnTWVkaXVtJzogJyhtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KScsXHJcbiAgJ01lZGl1bSBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpJyxcclxuICAnTWVkaXVtIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyxcclxuICAnTGFyZ2UnOiAnKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG1heC13aWR0aDogMTkxOS45OXB4KScsXHJcbiAgJ0xhcmdlIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTkuOTlweCknLFxyXG4gICdMYXJnZSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCknLFxyXG4gICdYTGFyZ2UnOiAnKG1pbi13aWR0aDogMTkyMHB4KScsXHJcbiAgJ1hMYXJnZSBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpJyxcclxuICAnWExhcmdlIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogMTkyMHB4KScsXHJcbiAgJ0hhbmRzZXQnOiAnKG1heC13aWR0aDogNTk5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1heC13aWR0aDogOTU5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdIYW5kc2V0IGFuZCBzbWFsbGVyJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtYXgtd2lkdGg6IDk1OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnSGFuZHNldCBhbmQgbGFyZ2VyJzogJyhtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXQnOiAnKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEyNzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1RhYmxldCBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXQgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYic6ICcobWluLXdpZHRoOiA4NDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWIgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtaW4td2lkdGg6IDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYiBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDg0MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtaW4td2lkdGg6IDEyODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ0hhbmRzZXRQb3J0cmFpdCc6ICcobWF4LXdpZHRoOiA1OTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdIYW5kc2V0UG9ydHJhaXQgYW5kIGxhcmdlcic6ICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ1RhYmxldFBvcnRyYWl0JzogJyhtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODM5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ1RhYmxldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDgzOS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdUYWJsZXRQb3J0cmFpdCBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogMTAwMDAwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdXZWJQb3J0cmFpdCc6ICcobWluLXdpZHRoOiA4NDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnV2ViUG9ydHJhaXQgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdXZWJQb3J0cmFpdCBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDg0MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdIYW5kc2V0TGFuZHNjYXBlJzogJyhtYXgtd2lkdGg6IDk1OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnSGFuZHNldExhbmRzY2FwZSBhbmQgc21hbGxlcic6ICcobWF4LXdpZHRoOiA5NTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ0hhbmRzZXRMYW5kc2NhcGUgYW5kIGxhcmdlcic6ICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXRMYW5kc2NhcGUnOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnVGFibGV0TGFuZHNjYXBlIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWJMYW5kc2NhcGUnOiAnKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnV2ViTGFuZHNjYXBlIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDEyODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSdcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXZhaWxhYmxlQnJlYWtwb2ludHM8VD4ge1xyXG4gICdYU21hbGwnOiBUO1xyXG4gICdYU21hbGwgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdYU21hbGwgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1NtYWxsJzogVDtcclxuICAnU21hbGwgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdTbWFsbCBhbmQgbGFyZ2VyJzogVDtcclxuICAnTWVkaXVtJzogVDtcclxuICAnTWVkaXVtIGFuZCBzbWFsbGVyJzogVDtcclxuICAnTWVkaXVtIGFuZCBsYXJnZXInOiBUO1xyXG4gICdMYXJnZSc6IFQ7XHJcbiAgJ0xhcmdlIGFuZCBzbWFsbGVyJzogVDtcclxuICAnTGFyZ2UgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1hMYXJnZSc6IFQ7XHJcbiAgJ1hMYXJnZSBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1hMYXJnZSBhbmQgbGFyZ2VyJzogVDtcclxuICAnSGFuZHNldCc6IFQ7XHJcbiAgJ0hhbmRzZXQgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdIYW5kc2V0IGFuZCBsYXJnZXInOiBUO1xyXG4gICdUYWJsZXQnOiBUO1xyXG4gICdUYWJsZXQgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdUYWJsZXQgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1dlYic6IFQ7XHJcbiAgJ1dlYiBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1dlYiBhbmQgbGFyZ2VyJzogVDtcclxuICAnSGFuZHNldFBvcnRyYWl0JzogVDtcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBsYXJnZXInOiBUO1xyXG4gICdUYWJsZXRQb3J0cmFpdCc6IFQ7XHJcbiAgJ1RhYmxldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnVGFibGV0UG9ydHJhaXQgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1dlYlBvcnRyYWl0JzogVDtcclxuICAnV2ViUG9ydHJhaXQgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdXZWJQb3J0cmFpdCBhbmQgbGFyZ2VyJzogVDtcclxuICAnSGFuZHNldExhbmRzY2FwZSc6IFQ7XHJcbiAgJ0hhbmRzZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdIYW5kc2V0TGFuZHNjYXBlIGFuZCBsYXJnZXInOiBUO1xyXG4gICdUYWJsZXRMYW5kc2NhcGUnOiBUO1xyXG4gICdUYWJsZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdUYWJsZXRMYW5kc2NhcGUgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1dlYkxhbmRzY2FwZSc6IFQ7XHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgbGFyZ2VyJzogVDtcclxufVxyXG4iLCJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHN9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QWxsQnJlYWtwb2ludHN9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVTd2l0Y2hdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBvYnNlcnZlOiBzdHJpbmdbXTtcclxuICBAT3V0cHV0KCkgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJlZFRlbXBsYXRlczoge1tzaXplOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+fSA9IHt9O1xyXG4gIHByaXZhdGUgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYnJlYWtwb2ludHM6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5vYnNlcnZlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5vYnNlcnZlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zdWIgPSB0aGlzLmJyZWFrcG9pbnRzLm9ic2VydmUodGhpcy5vYnNlcnZlKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW5kZXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3RlcihzaXplOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXNbc2l6ZS50cmltKCldID0gdGVtcGxhdGU7XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJEZWZhdWx0KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHVzZWRTaXplID0gT2JqZWN0LmtleXModGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVzKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcclxuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlc1t1c2VkU2l6ZV0gfHwgdGhpcy5kZWZhdWx0VGVtcGxhdGU7XHJcblxyXG4gICAgaWYgKHVzZWRUZW1wbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xyXG4gICAgICB0aGlzLnVwZGF0ZS5lbWl0KHVzZWRTaXplIHx8ICdEZWZhdWx0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnN1YiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZjci5jbGVhcigpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlQ2FzZV0sIFtyZXNwb25zaXZlRGVmYXVsdF0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVDYXNlRGlyZWN0aXZlIHtcclxuXHJcbiAgQElucHV0KCdyZXNwb25zaXZlQ2FzZScpIHNldCByZXNwb25zaXZlQ2FzZShzaXplOiBzdHJpbmcpIHtcclxuICAgIGlmIChzaXplID09PSBudWxsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gXFwnc2l6ZVxcJyBwYXNzZWQuIFVzZSBcXCdyZXNwb25zaXZlLmRlZmF1bHRcXCcgZm9yIGRlZmF1bHQgY2FzZS4nKTtcclxuICAgIH1cclxuXHJcbiAgICBzaXplID0gc2l6ZS5zdGFydHNXaXRoKCc8PScpID8gc2l6ZS5zdWJzdHJpbmcoMikudHJpbSgpICsgJyBhbmQgc21hbGxlcicgOiBzaXplO1xyXG4gICAgc2l6ZSA9IHNpemUuc3RhcnRzV2l0aCgnPj0nKSA/IHNpemUuc3Vic3RyaW5nKDIpLnRyaW0oKSArICcgYW5kIGxhcmdlcicgOiBzaXplO1xyXG5cclxuICAgIGlmICghKHNpemUgaW4gQWxsQnJlYWtwb2ludHMpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzaXplICcke3NpemV9Jy4gQ2hvb3NlIGVpdGhlciBwcmVmaXgsIHN1ZmZpeCwgb3Igbm9uZS5cclxuQXZhaWxhYmxlIGJhc2UgYnJlYWtwb2ludHM6ICcke09iamVjdC5rZXlzKEJyZWFrcG9pbnRzKS5qb2luKCdcXCcsIFxcJycpfScuXHJcbkF2YWlsYWJsZSBwcmVmaXhlczogJzw9ICcsICc+PSAnLlxyXG5BdmFpbGFibGUgc3VmZml4ZXM6ICcgYW5kIHNtYWxsZXInLCAnIGFuZCBsYXJnZXInLmApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWdpc3RlclRlbXBsYXRlKHNpemUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCdyZXNwb25zaXZlRGVmYXVsdCcpIHNldCByZXNwb25zaXZlRGVmYXVsdChfKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICAgICAgICBASG9zdCgpIHByaXZhdGUgaG9zdDogUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSkge1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJUZW1wbGF0ZShicmVha3BvaW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaG9zdC5yZWdpc3RlcihicmVha3BvaW50LCB0aGlzLnRlbXBsYXRlUmVmKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyRGVmYXVsdCgpIHtcclxuICAgIHRoaXMuaG9zdC5yZWdpc3RlckRlZmF1bHQodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FsbEJyZWFrcG9pbnRzfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7QXZhaWxhYmxlQnJlYWtwb2ludHN9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZScpIGFsdGVybmF0aXZlRWxlbWVudHM6IFBhcnRpYWw8QXZhaWxhYmxlQnJlYWtwb2ludHM8VGVtcGxhdGVSZWY8YW55Pj4+O1xyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZU9ic2VydmUnKSBvYnNlcnZlOiBzdHJpbmdbXTtcclxuICBASW5wdXQoJ3Jlc3BvbnNpdmVVcGRhdGUnKSB1cGRhdGU6IFN1YmplY3Q8c3RyaW5nPiB8IHVuZGVmaW5lZDtcclxuICAvKiB0c2xpbnQ6ZW5hYmxlICovXHJcblxyXG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG1wbDogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICAgICAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGJyZWFrcG9pbnRzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc3ViID0gdGhpcy5icmVha3BvaW50cy5vYnNlcnZlKHRoaXMub2JzZXJ2ZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVuZGVyKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHVzZWRTaXplID0gT2JqZWN0LmtleXModGhpcy5hbHRlcm5hdGl2ZUVsZW1lbnRzKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcclxuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMuYWx0ZXJuYXRpdmVFbGVtZW50c1t1c2VkU2l6ZV0gfHwgdGhpcy50bXBsO1xyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xyXG4gICAgaWYgKHRoaXMudXBkYXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVTd2l0Y2hEaXJlY3RpdmV9IGZyb20gJy4vcmVzcG9uc2l2ZS1zd2l0Y2guZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVzcG9uc2l2ZURpcmVjdGl2ZSB9IGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW10sXHJcbiAgZXhwb3J0czogW1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4Q2RrUmVzcG9uc2l2ZU1vZHVsZSB7IH1cclxuIiwiZXhwb3J0IG5hbWVzcGFjZSBPYnNlcnZlIHtcclxuICBleHBvcnQgY29uc3QgT1JJRU5UQVRJT04gPSAnKG9yaWVudGF0aW9uOmxhbmRzY2FwZSknO1xyXG4gIGV4cG9ydCBjb25zdCBNQVhfV0lEVEggPSAodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nID0gJ3B4JykgPT4gYChtYXgtd2lkdGg6ICR7dmFsdWV9JHt1bml0fSlgO1xyXG4gIGV4cG9ydCBjb25zdCBNSU5fV0lEVEggPSAodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nID0gJ3B4JykgPT4gYChtaW4td2lkdGg6ICR7dmFsdWV9JHt1bml0fSlgO1xyXG4gIGV4cG9ydCBjb25zdCBBTllfV0lORE9XX0NIQU5HRSA9IFsnKG1heC13aWR0aDogNTk5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDk1OS45OXB4KScsICcobWF4LXdpZHRoOiAxMjc5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDE5MTkuOTlweCknXTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBLE1BQWEsY0FBYyxHQUFpQztJQUMxRCxRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLG9CQUFvQixFQUFFLHVCQUF1QjtJQUM3QyxtQkFBbUIsRUFBRSx3QkFBd0I7SUFDN0MsT0FBTyxFQUFFLDhDQUE4QztJQUN2RCxtQkFBbUIsRUFBRSw0Q0FBNEM7SUFDakUsa0JBQWtCLEVBQUUsK0NBQStDO0lBQ25FLFFBQVEsRUFBRSwrQ0FBK0M7SUFDekQsb0JBQW9CLEVBQUUsNkNBQTZDO0lBQ25FLG1CQUFtQixFQUFFLCtDQUErQztJQUNwRSxPQUFPLEVBQUUsZ0RBQWdEO0lBQ3pELG1CQUFtQixFQUFFLDZDQUE2QztJQUNsRSxrQkFBa0IsRUFBRSxnREFBZ0Q7SUFDcEUsUUFBUSxFQUFFLHFCQUFxQjtJQUMvQixvQkFB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 |
@@ -1,4 +0,4 @@ | ||
import { __read } from 'tslib'; | ||
import { Breakpoints, BreakpointObserver } from '@angular/cdk/layout'; | ||
import { Directive, EventEmitter, Host, Input, Output, TemplateRef, ViewContainerRef, NgModule } from '@angular/core'; | ||
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; | ||
import 'rxjs'; | ||
@@ -9,22 +9,48 @@ /** | ||
*/ | ||
// tslint:disable:max-line-length | ||
/** @type {?} */ | ||
var regexMinWidth = /\(min-width: \d+?px\)/g; | ||
/** @type {?} */ | ||
var regexMaxWidth = /\(max-width: (\d|\.)+?px\)/g; | ||
/** @type {?} */ | ||
var AllBreakpoints = Object.entries(Breakpoints).reduce(function (acc, _a) { | ||
var _b = __read(_a, 2), key = _b[0], value = _b[1]; | ||
/** @type {?} */ | ||
var keyAndSmaller = key + ' and smaller'; | ||
/** @type {?} */ | ||
var keyAndLarger = key + ' and larger'; | ||
/** @type {?} */ | ||
var valueAndSmaller = value.replace(regexMinWidth, '(min-width: 0px)'); | ||
/** @type {?} */ | ||
var valueAndLarger = value.replace(regexMaxWidth, '(max-width: 1000000px)'); | ||
acc[key] = value; | ||
acc[keyAndSmaller] = valueAndSmaller; | ||
acc[keyAndLarger] = valueAndLarger; | ||
return acc; | ||
}, {}); | ||
var AllBreakpoints = { | ||
'XSmall': '(max-width: 599.99px)', | ||
'XSmall and smaller': '(max-width: 599.99px)', | ||
'XSmall and larger': '(max-width: 1000000px)', | ||
'Small': '(min-width: 600px) and (max-width: 959.99px)', | ||
'Small and smaller': '(min-width: 0px) and (max-width: 959.99px)', | ||
'Small and larger': '(min-width: 600px) and (max-width: 1000000px)', | ||
'Medium': '(min-width: 960px) and (max-width: 1279.99px)', | ||
'Medium and smaller': '(min-width: 0px) and (max-width: 1279.99px)', | ||
'Medium and larger': '(min-width: 960px) and (max-width: 1000000px)', | ||
'Large': '(min-width: 1280px) and (max-width: 1919.99px)', | ||
'Large and smaller': '(min-width: 0px) and (max-width: 1919.99px)', | ||
'Large and larger': '(min-width: 1280px) and (max-width: 1000000px)', | ||
'XLarge': '(min-width: 1920px)', | ||
'XLarge and smaller': '(min-width: 0px)', | ||
'XLarge and larger': '(min-width: 1920px)', | ||
'Handset': '(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)', | ||
'Handset and smaller': '(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)', | ||
'Handset and larger': '(max-width: 1000000px) and (orientation: portrait), (max-width: 1000000px) and (orientation: landscape)', | ||
'Tablet': '(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'Tablet and smaller': '(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'Tablet and larger': '(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait), (min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)', | ||
'Web': '(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)', | ||
'Web and smaller': '(min-width: 0px) and (orientation: portrait), (min-width: 0px) and (orientation: landscape)', | ||
'Web and larger': '(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)', | ||
'HandsetPortrait': '(max-width: 599.99px) and (orientation: portrait)', | ||
'HandsetPortrait and smaller': '(max-width: 599.99px) and (orientation: portrait)', | ||
'HandsetPortrait and larger': '(max-width: 1000000px) and (orientation: portrait)', | ||
'TabletPortrait': '(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait)', | ||
'TabletPortrait and smaller': '(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait)', | ||
'TabletPortrait and larger': '(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait)', | ||
'WebPortrait': '(min-width: 840px) and (orientation: portrait)', | ||
'WebPortrait and smaller': '(min-width: 0px) and (orientation: portrait)', | ||
'WebPortrait and larger': '(min-width: 840px) and (orientation: portrait)', | ||
'HandsetLandscape': '(max-width: 959.99px) and (orientation: landscape)', | ||
'HandsetLandscape and smaller': '(max-width: 959.99px) and (orientation: landscape)', | ||
'HandsetLandscape and larger': '(max-width: 1000000px) and (orientation: landscape)', | ||
'TabletLandscape': '(min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'TabletLandscape and smaller': '(min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)', | ||
'TabletLandscape and larger': '(min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)', | ||
'WebLandscape': '(min-width: 1280px) and (orientation: landscape)', | ||
'WebLandscape and smaller': '(min-width: 0px) and (orientation: landscape)', | ||
'WebLandscape and larger': '(min-width: 1280px) and (orientation: landscape)' | ||
}; | ||
@@ -35,8 +61,8 @@ /** | ||
*/ | ||
var ResponsiveDirective = /** @class */ (function () { | ||
function ResponsiveDirective(vcr, breakpoints) { | ||
var ResponsiveSwitchDirective = /** @class */ (function () { | ||
function ResponsiveSwitchDirective(vcr, breakpoints) { | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
this.updated = new EventEmitter(); | ||
this.registeredTemplates = new Map(); | ||
this.update = new EventEmitter(); | ||
this.registeredTemplates = {}; | ||
} | ||
@@ -46,3 +72,3 @@ /** | ||
*/ | ||
ResponsiveDirective.prototype.ngOnInit = /** | ||
ResponsiveSwitchDirective.prototype.ngOnInit = /** | ||
* @return {?} | ||
@@ -61,3 +87,3 @@ */ | ||
*/ | ||
ResponsiveDirective.prototype.register = /** | ||
ResponsiveSwitchDirective.prototype.register = /** | ||
* @param {?} size | ||
@@ -68,3 +94,3 @@ * @param {?} template | ||
function (size, template) { | ||
this.registeredTemplates.set(size.trim(), template); | ||
this.registeredTemplates[size.trim()] = template; | ||
this.render(); | ||
@@ -76,3 +102,3 @@ }; | ||
*/ | ||
ResponsiveDirective.prototype.registerDefault = /** | ||
ResponsiveSwitchDirective.prototype.registerDefault = /** | ||
* @param {?} template | ||
@@ -88,3 +114,3 @@ * @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.render = /** | ||
ResponsiveSwitchDirective.prototype.render = /** | ||
* @return {?} | ||
@@ -95,9 +121,9 @@ */ | ||
/** @type {?} */ | ||
var usedSize = Array.from(this.registeredTemplates.keys()).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
var usedSize = Object.keys(this.registeredTemplates).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
/** @type {?} */ | ||
var usedTemplate = this.registeredTemplates.get(usedSize) || this.defaultTemplate; | ||
var usedTemplate = this.registeredTemplates[usedSize] || this.defaultTemplate; | ||
if (usedTemplate !== undefined) { | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
this.updated.emit(usedSize || 'Default'); | ||
this.update.emit(usedSize || 'Default'); | ||
} | ||
@@ -108,3 +134,3 @@ }; | ||
*/ | ||
ResponsiveDirective.prototype.ngOnDestroy = /** | ||
ResponsiveSwitchDirective.prototype.ngOnDestroy = /** | ||
* @return {?} | ||
@@ -116,18 +142,19 @@ */ | ||
} | ||
this.vcr.clear(); | ||
}; | ||
ResponsiveDirective.decorators = [ | ||
ResponsiveSwitchDirective.decorators = [ | ||
{ type: Directive, args: [{ | ||
selector: '[responsive]' // tslint:disable-line | ||
selector: '[responsiveSwitch]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveDirective.ctorParameters = function () { return [ | ||
ResponsiveSwitchDirective.ctorParameters = function () { return [ | ||
{ type: ViewContainerRef }, | ||
{ type: BreakpointObserver } | ||
]; }; | ||
ResponsiveDirective.propDecorators = { | ||
ResponsiveSwitchDirective.propDecorators = { | ||
observe: [{ type: Input }], | ||
updated: [{ type: Output }] | ||
update: [{ type: Output }] | ||
}; | ||
return ResponsiveDirective; | ||
return ResponsiveSwitchDirective; | ||
}()); | ||
@@ -197,3 +224,3 @@ var ResponsiveCaseDirective = /** @class */ (function () { | ||
{ type: TemplateRef }, | ||
{ type: ResponsiveDirective, decorators: [{ type: Host }] } | ||
{ type: ResponsiveSwitchDirective, decorators: [{ type: Host }] } | ||
]; }; | ||
@@ -211,2 +238,74 @@ ResponsiveCaseDirective.propDecorators = { | ||
*/ | ||
var ResponsiveDirective = /** @class */ (function () { | ||
function ResponsiveDirective(tmpl, vcr, breakpoints) { | ||
this.tmpl = tmpl; | ||
this.vcr = vcr; | ||
this.breakpoints = breakpoints; | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.ngOnInit = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
if (this.observe !== undefined && this.observe.length > 0) { | ||
this.sub = this.breakpoints.observe(this.observe).subscribe(function () { return _this.render(); }); | ||
} | ||
this.render(); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.render = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
/** @type {?} */ | ||
var usedSize = Object.keys(this.alternativeElements).find(function (size) { return _this.breakpoints.isMatched(AllBreakpoints[size]); }); | ||
/** @type {?} */ | ||
var usedTemplate = this.alternativeElements[usedSize] || this.tmpl; | ||
this.vcr.clear(); | ||
this.vcr.createEmbeddedView(usedTemplate); | ||
if (this.update !== undefined) { | ||
this.update.next(usedSize || 'Default'); | ||
} | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
ResponsiveDirective.prototype.ngOnDestroy = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
if (this.sub !== undefined) { | ||
this.sub.unsubscribe(); | ||
} | ||
this.vcr.clear(); | ||
}; | ||
ResponsiveDirective.decorators = [ | ||
{ type: Directive, args: [{ | ||
selector: '[responsive]' // tslint:disable-line | ||
},] } | ||
]; | ||
/** @nocollapse */ | ||
ResponsiveDirective.ctorParameters = function () { return [ | ||
{ type: TemplateRef }, | ||
{ type: ViewContainerRef }, | ||
{ type: BreakpointObserver } | ||
]; }; | ||
ResponsiveDirective.propDecorators = { | ||
alternativeElements: [{ type: Input, args: ['responsive',] }], | ||
observe: [{ type: Input, args: ['responsiveObserve',] }], | ||
update: [{ type: Input, args: ['responsiveUpdate',] }] | ||
}; | ||
return ResponsiveDirective; | ||
}()); | ||
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
var NgxCdkResponsiveModule = /** @class */ (function () { | ||
@@ -217,5 +316,5 @@ function NgxCdkResponsiveModule() { | ||
{ type: NgModule, args: [{ | ||
declarations: [ResponsiveCaseDirective, ResponsiveDirective], | ||
declarations: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective], | ||
imports: [], | ||
exports: [ResponsiveCaseDirective, ResponsiveDirective] | ||
exports: [ResponsiveCaseDirective, ResponsiveSwitchDirective, ResponsiveDirective] | ||
},] } | ||
@@ -254,4 +353,4 @@ ]; | ||
export { ResponsiveDirective, ResponsiveCaseDirective, NgxCdkResponsiveModule, Observe }; | ||
export { ResponsiveSwitchDirective, ResponsiveCaseDirective, ResponsiveDirective, NgxCdkResponsiveModule, Observe, AllBreakpoints }; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL2ludGVybmFsLnRzIiwibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL3Jlc3BvbnNpdmUuZGlyZWN0aXZlLnRzIiwibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL25neC1jZGstcmVzcG9uc2l2ZS5tb2R1bGUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvb2JzZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuXHJcbmNvbnN0IHJlZ2V4TWluV2lkdGggPSAvXFwobWluLXdpZHRoOiBcXGQrP3B4XFwpL2c7XHJcbmNvbnN0IHJlZ2V4TWF4V2lkdGggPSAvXFwobWF4LXdpZHRoOiAoXFxkfFxcLikrP3B4XFwpL2c7XHJcblxyXG5leHBvcnQgY29uc3QgQWxsQnJlYWtwb2ludHMgPSBPYmplY3QuZW50cmllcyhCcmVha3BvaW50cykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gIGNvbnN0IGtleUFuZFNtYWxsZXIgPSBrZXkgKyAnIGFuZCBzbWFsbGVyJztcclxuICBjb25zdCBrZXlBbmRMYXJnZXIgPSBrZXkgKyAnIGFuZCBsYXJnZXInO1xyXG5cclxuICBjb25zdCB2YWx1ZUFuZFNtYWxsZXIgPSB2YWx1ZS5yZXBsYWNlKHJlZ2V4TWluV2lkdGgsICcobWluLXdpZHRoOiAwcHgpJyk7XHJcbiAgY29uc3QgdmFsdWVBbmRMYXJnZXIgPSB2YWx1ZS5yZXBsYWNlKHJlZ2V4TWF4V2lkdGgsICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyk7XHJcblxyXG4gIGFjY1trZXldID0gdmFsdWU7XHJcbiAgYWNjW2tleUFuZFNtYWxsZXJdID0gdmFsdWVBbmRTbWFsbGVyO1xyXG4gIGFjY1trZXlBbmRMYXJnZXJdID0gdmFsdWVBbmRMYXJnZXI7XHJcbiAgcmV0dXJuIGFjYztcclxufSwge30pO1xyXG4iLCJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWxsQnJlYWtwb2ludHN9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVzcG9uc2l2ZV0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVzcG9uc2l2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBvYnNlcnZlOiBzdHJpbmdbXTtcbiAgQE91dHB1dCgpIHVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIHJlZ2lzdGVyZWRUZW1wbGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBkZWZhdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnJlYWtwb2ludHM6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YiA9IHRoaXMuYnJlYWtwb2ludHMub2JzZXJ2ZSh0aGlzLm9ic2VydmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcigpKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcihzaXplOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVzLnNldChzaXplLnRyaW0oKSwgdGVtcGxhdGUpO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZWdpc3RlckRlZmF1bHQodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgdXNlZFNpemUgPSBBcnJheS5mcm9tKHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5rZXlzKCkpLmZpbmQoc2l6ZSA9PiB0aGlzLmJyZWFrcG9pbnRzLmlzTWF0Y2hlZChBbGxCcmVha3BvaW50c1tzaXplXSkpO1xuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlcy5nZXQodXNlZFNpemUpIHx8IHRoaXMuZGVmYXVsdFRlbXBsYXRlO1xuXG4gICAgaWYgKHVzZWRUZW1wbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHVzZWRUZW1wbGF0ZSk7XG4gICAgICB0aGlzLnVwZGF0ZWQuZW1pdCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG59XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVDYXNlXSwgW3Jlc3BvbnNpdmVEZWZhdWx0XScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxufSlcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSB7XG5cbiAgQElucHV0KCdyZXNwb25zaXZlQ2FzZScpIHNldCByZXNwb25zaXZlQ2FzZShzaXplOiBzdHJpbmcpIHtcbiAgICBpZiAoc2l6ZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBcXCdzaXplXFwnIHBhc3NlZC4gVXNlIFxcJ3Jlc3BvbnNpdmUuZGVmYXVsdFxcJyBmb3IgZGVmYXVsdCBjYXNlLicpO1xuICAgIH1cblxuICAgIHNpemUgPSBzaXplLnN0YXJ0c1dpdGgoJzw9JykgPyBzaXplLnN1YnN0cmluZygyKS50cmltKCkgKyAnIGFuZCBzbWFsbGVyJyA6IHNpemU7XG4gICAgc2l6ZSA9IHNpemUuc3RhcnRzV2l0aCgnPj0nKSA/IHNpemUuc3Vic3RyaW5nKDIpLnRyaW0oKSArICcgYW5kIGxhcmdlcicgOiBzaXplO1xuXG4gICAgaWYgKCEoc2l6ZSBpbiBBbGxCcmVha3BvaW50cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzaXplICcke3NpemV9Jy4gQ2hvb3NlIGVpdGhlciBwcmVmaXgsIHN1ZmZpeCwgb3Igbm9uZS5cbkF2YWlsYWJsZSBiYXNlIGJyZWFrcG9pbnRzOiAnJHtPYmplY3Qua2V5cyhCcmVha3BvaW50cykuam9pbignXFwnLCBcXCcnKX0nLlxuQXZhaWxhYmxlIHByZWZpeGVzOiAnPD0gJywgJz49ICcuXG5BdmFpbGFibGUgc3VmZml4ZXM6ICcgYW5kIHNtYWxsZXInLCAnIGFuZCBsYXJnZXInLmApO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyVGVtcGxhdGUoc2l6ZSk7XG4gIH1cblxuICBASW5wdXQoJ3Jlc3BvbnNpdmVEZWZhdWx0Jykgc2V0IHJlc3BvbnNpdmVEZWZhdWx0KF8pIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgQEhvc3QoKSBwcml2YXRlIGhvc3Q6IFJlc3BvbnNpdmVEaXJlY3RpdmUpIHtcbiAgfVxuXG4gIHJlZ2lzdGVyVGVtcGxhdGUoYnJlYWtwb2ludDogc3RyaW5nKSB7XG4gICAgdGhpcy5ob3N0LnJlZ2lzdGVyKGJyZWFrcG9pbnQsIHRoaXMudGVtcGxhdGVSZWYpO1xuICB9XG5cbiAgcmVnaXN0ZXJEZWZhdWx0KCkge1xuICAgIHRoaXMuaG9zdC5yZWdpc3RlckRlZmF1bHQodGhpcy50ZW1wbGF0ZVJlZik7XG4gIH1cblxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmV9IGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbUmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5neENka1Jlc3BvbnNpdmVNb2R1bGUgeyB9XG4iLCJleHBvcnQgbmFtZXNwYWNlIE9ic2VydmUge1xyXG4gIGV4cG9ydCBjb25zdCBPUklFTlRBVElPTiA9ICcob3JpZW50YXRpb246bGFuZHNjYXBlKSc7XHJcbiAgZXhwb3J0IGNvbnN0IE1BWF9XSURUSCA9ICh2YWx1ZTogbnVtYmVyLCB1bml0OiBzdHJpbmcgPSAncHgnKSA9PiBgKG1heC13aWR0aDogJHt2YWx1ZX0ke3VuaXR9KWA7XHJcbiAgZXhwb3J0IGNvbnN0IE1JTl9XSURUSCA9ICh2YWx1ZTogbnVtYmVyLCB1bml0OiBzdHJpbmcgPSAncHgnKSA9PiBgKG1pbi13aWR0aDogJHt2YWx1ZX0ke3VuaXR9KWA7XHJcbiAgZXhwb3J0IGNvbnN0IEFOWV9XSU5ET1dfQ0hBTkdFID0gWycobWF4LXdpZHRoOiA1OTkuOTlweCknLCAnKG1heC13aWR0aDogOTU5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDEyNzkuOTlweCknLCAnKG1heC13aWR0aDogMTkxOS45OXB4KSddO1xyXG59XHJcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFFTSxhQUFhLEdBQUcsd0JBQXdCOztJQUN4QyxhQUFhLEdBQUcsNkJBQTZCOztBQUVuRCxJQUFhLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLEdBQUcsRUFBRSxFQUFZO1FBQVosa0JBQVksRUFBWCxXQUFHLEVBQUUsYUFBSzs7UUFDMUUsYUFBYSxHQUFHLEdBQUcsR0FBRyxjQUFjOztRQUNwQyxZQUFZLEdBQUcsR0FBRyxHQUFHLGFBQWE7O1FBRWxDLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQzs7UUFDbEUsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLHdCQUF3QixDQUFDO0lBRTdFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDakIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLGVBQWUsQ0FBQztJQUNyQyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO0lBQ25DLE9BQU8sR0FBRyxDQUFDO0NBQ1osRUFBRSxFQUFFLENBQUM7Ozs7OztBQ2hCTjtJQWlCRSw2QkFBb0IsR0FBcUIsRUFDckIsV0FBK0I7UUFEL0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUHpDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZDLHdCQUFtQixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFD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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNkay1yZXNwb25zaXZlLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZ3gtY2RrLXJlc3BvbnNpdmUvbGliL21vZGVscy50cyIsIm5nOi8vbmd4LWNkay1yZXNwb25zaXZlL2xpYi9yZXNwb25zaXZlLXN3aXRjaC5kaXJlY3RpdmUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvcmVzcG9uc2l2ZS5kaXJlY3RpdmUudHMiLCJuZzovL25neC1jZGstcmVzcG9uc2l2ZS9saWIvbmd4LWNkay1yZXNwb25zaXZlLm1vZHVsZS50cyIsIm5nOi8vbmd4LWNkay1yZXNwb25zaXZlL2xpYi9vYnNlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aFxyXG5cclxuZXhwb3J0IGNvbnN0IEFsbEJyZWFrcG9pbnRzOiBBdmFpbGFibGVCcmVha3BvaW50czxzdHJpbmc+ID0ge1xyXG4gICdYU21hbGwnOiAnKG1heC13aWR0aDogNTk5Ljk5cHgpJyxcclxuICAnWFNtYWxsIGFuZCBzbWFsbGVyJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KScsXHJcbiAgJ1hTbWFsbCBhbmQgbGFyZ2VyJzogJyhtYXgtd2lkdGg6IDEwMDAwMDBweCknLFxyXG4gICdTbWFsbCc6ICcobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDk1OS45OXB4KScsXHJcbiAgJ1NtYWxsIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDk1OS45OXB4KScsXHJcbiAgJ1NtYWxsIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyxcclxuICAnTWVkaXVtJzogJyhtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KScsXHJcbiAgJ01lZGl1bSBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpJyxcclxuICAnTWVkaXVtIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpJyxcclxuICAnTGFyZ2UnOiAnKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG1heC13aWR0aDogMTkxOS45OXB4KScsXHJcbiAgJ0xhcmdlIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTkuOTlweCknLFxyXG4gICdMYXJnZSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCknLFxyXG4gICdYTGFyZ2UnOiAnKG1pbi13aWR0aDogMTkyMHB4KScsXHJcbiAgJ1hMYXJnZSBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpJyxcclxuICAnWExhcmdlIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogMTkyMHB4KScsXHJcbiAgJ0hhbmRzZXQnOiAnKG1heC13aWR0aDogNTk5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSwgKG1heC13aWR0aDogOTU5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdIYW5kc2V0IGFuZCBzbWFsbGVyJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtYXgtd2lkdGg6IDk1OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnSGFuZHNldCBhbmQgbGFyZ2VyJzogJyhtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXQnOiAnKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEyNzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1RhYmxldCBhbmQgc21hbGxlcic6ICcobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXQgYW5kIGxhcmdlcic6ICcobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEwMDAwMDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYic6ICcobWluLXdpZHRoOiA4NDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWIgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtaW4td2lkdGg6IDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYiBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDg0MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCksIChtaW4td2lkdGg6IDEyODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ0hhbmRzZXRQb3J0cmFpdCc6ICcobWF4LXdpZHRoOiA1OTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogJyhtYXgtd2lkdGg6IDU5OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdIYW5kc2V0UG9ydHJhaXQgYW5kIGxhcmdlcic6ICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ1RhYmxldFBvcnRyYWl0JzogJyhtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogODM5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ1RhYmxldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDgzOS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdUYWJsZXRQb3J0cmFpdCBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogMTAwMDAwMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdXZWJQb3J0cmFpdCc6ICcobWluLXdpZHRoOiA4NDBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuICAnV2ViUG9ydHJhaXQgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdXZWJQb3J0cmFpdCBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDg0MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICdIYW5kc2V0TGFuZHNjYXBlJzogJyhtYXgtd2lkdGg6IDk1OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnSGFuZHNldExhbmRzY2FwZSBhbmQgc21hbGxlcic6ICcobWF4LXdpZHRoOiA5NTkuOTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ0hhbmRzZXRMYW5kc2NhcGUgYW5kIGxhcmdlcic6ICcobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXRMYW5kc2NhcGUnOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5Ljk5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdUYWJsZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiAnKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTI3OS45OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnVGFibGV0TGFuZHNjYXBlIGFuZCBsYXJnZXInOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwMDAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdXZWJMYW5kc2NhcGUnOiAnKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAnV2ViTGFuZHNjYXBlIGFuZCBzbWFsbGVyJzogJyhtaW4td2lkdGg6IDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgbGFyZ2VyJzogJyhtaW4td2lkdGg6IDEyODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSdcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXZhaWxhYmxlQnJlYWtwb2ludHM8VD4ge1xyXG4gICdYU21hbGwnOiBUO1xyXG4gICdYU21hbGwgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdYU21hbGwgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1NtYWxsJzogVDtcclxuICAnU21hbGwgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdTbWFsbCBhbmQgbGFyZ2VyJzogVDtcclxuICAnTWVkaXVtJzogVDtcclxuICAnTWVkaXVtIGFuZCBzbWFsbGVyJzogVDtcclxuICAnTWVkaXVtIGFuZCBsYXJnZXInOiBUO1xyXG4gICdMYXJnZSc6IFQ7XHJcbiAgJ0xhcmdlIGFuZCBzbWFsbGVyJzogVDtcclxuICAnTGFyZ2UgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1hMYXJnZSc6IFQ7XHJcbiAgJ1hMYXJnZSBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1hMYXJnZSBhbmQgbGFyZ2VyJzogVDtcclxuICAnSGFuZHNldCc6IFQ7XHJcbiAgJ0hhbmRzZXQgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdIYW5kc2V0IGFuZCBsYXJnZXInOiBUO1xyXG4gICdUYWJsZXQnOiBUO1xyXG4gICdUYWJsZXQgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdUYWJsZXQgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1dlYic6IFQ7XHJcbiAgJ1dlYiBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1dlYiBhbmQgbGFyZ2VyJzogVDtcclxuICAnSGFuZHNldFBvcnRyYWl0JzogVDtcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnSGFuZHNldFBvcnRyYWl0IGFuZCBsYXJnZXInOiBUO1xyXG4gICdUYWJsZXRQb3J0cmFpdCc6IFQ7XHJcbiAgJ1RhYmxldFBvcnRyYWl0IGFuZCBzbWFsbGVyJzogVDtcclxuICAnVGFibGV0UG9ydHJhaXQgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1dlYlBvcnRyYWl0JzogVDtcclxuICAnV2ViUG9ydHJhaXQgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdXZWJQb3J0cmFpdCBhbmQgbGFyZ2VyJzogVDtcclxuICAnSGFuZHNldExhbmRzY2FwZSc6IFQ7XHJcbiAgJ0hhbmRzZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdIYW5kc2V0TGFuZHNjYXBlIGFuZCBsYXJnZXInOiBUO1xyXG4gICdUYWJsZXRMYW5kc2NhcGUnOiBUO1xyXG4gICdUYWJsZXRMYW5kc2NhcGUgYW5kIHNtYWxsZXInOiBUO1xyXG4gICdUYWJsZXRMYW5kc2NhcGUgYW5kIGxhcmdlcic6IFQ7XHJcbiAgJ1dlYkxhbmRzY2FwZSc6IFQ7XHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgc21hbGxlcic6IFQ7XHJcbiAgJ1dlYkxhbmRzY2FwZSBhbmQgbGFyZ2VyJzogVDtcclxufVxyXG4iLCJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHN9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QWxsQnJlYWtwb2ludHN9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVTd2l0Y2hdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBvYnNlcnZlOiBzdHJpbmdbXTtcclxuICBAT3V0cHV0KCkgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJlZFRlbXBsYXRlczoge1tzaXplOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+fSA9IHt9O1xyXG4gIHByaXZhdGUgZGVmYXVsdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYnJlYWtwb2ludHM6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5vYnNlcnZlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5vYnNlcnZlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zdWIgPSB0aGlzLmJyZWFrcG9pbnRzLm9ic2VydmUodGhpcy5vYnNlcnZlKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW5kZXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3RlcihzaXplOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZXNbc2l6ZS50cmltKCldID0gdGVtcGxhdGU7XHJcbiAgICB0aGlzLnJlbmRlcigpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJEZWZhdWx0KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHVzZWRTaXplID0gT2JqZWN0LmtleXModGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVzKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcclxuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlc1t1c2VkU2l6ZV0gfHwgdGhpcy5kZWZhdWx0VGVtcGxhdGU7XHJcblxyXG4gICAgaWYgKHVzZWRUZW1wbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudmNyLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xyXG4gICAgICB0aGlzLnVwZGF0ZS5lbWl0KHVzZWRTaXplIHx8ICdEZWZhdWx0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnN1YiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZjci5jbGVhcigpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tyZXNwb25zaXZlQ2FzZV0sIFtyZXNwb25zaXZlRGVmYXVsdF0nIC8vIHRzbGludDpkaXNhYmxlLWxpbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVDYXNlRGlyZWN0aXZlIHtcclxuXHJcbiAgQElucHV0KCdyZXNwb25zaXZlQ2FzZScpIHNldCByZXNwb25zaXZlQ2FzZShzaXplOiBzdHJpbmcpIHtcclxuICAgIGlmIChzaXplID09PSBudWxsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gXFwnc2l6ZVxcJyBwYXNzZWQuIFVzZSBcXCdyZXNwb25zaXZlLmRlZmF1bHRcXCcgZm9yIGRlZmF1bHQgY2FzZS4nKTtcclxuICAgIH1cclxuXHJcbiAgICBzaXplID0gc2l6ZS5zdGFydHNXaXRoKCc8PScpID8gc2l6ZS5zdWJzdHJpbmcoMikudHJpbSgpICsgJyBhbmQgc21hbGxlcicgOiBzaXplO1xyXG4gICAgc2l6ZSA9IHNpemUuc3RhcnRzV2l0aCgnPj0nKSA/IHNpemUuc3Vic3RyaW5nKDIpLnRyaW0oKSArICcgYW5kIGxhcmdlcicgOiBzaXplO1xyXG5cclxuICAgIGlmICghKHNpemUgaW4gQWxsQnJlYWtwb2ludHMpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzaXplICcke3NpemV9Jy4gQ2hvb3NlIGVpdGhlciBwcmVmaXgsIHN1ZmZpeCwgb3Igbm9uZS5cclxuQXZhaWxhYmxlIGJhc2UgYnJlYWtwb2ludHM6ICcke09iamVjdC5rZXlzKEJyZWFrcG9pbnRzKS5qb2luKCdcXCcsIFxcJycpfScuXHJcbkF2YWlsYWJsZSBwcmVmaXhlczogJzw9ICcsICc+PSAnLlxyXG5BdmFpbGFibGUgc3VmZml4ZXM6ICcgYW5kIHNtYWxsZXInLCAnIGFuZCBsYXJnZXInLmApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWdpc3RlclRlbXBsYXRlKHNpemUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCdyZXNwb25zaXZlRGVmYXVsdCcpIHNldCByZXNwb25zaXZlRGVmYXVsdChfKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICAgICAgICBASG9zdCgpIHByaXZhdGUgaG9zdDogUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSkge1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJUZW1wbGF0ZShicmVha3BvaW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaG9zdC5yZWdpc3RlcihicmVha3BvaW50LCB0aGlzLnRlbXBsYXRlUmVmKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyRGVmYXVsdCgpIHtcclxuICAgIHRoaXMuaG9zdC5yZWdpc3RlckRlZmF1bHQodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FsbEJyZWFrcG9pbnRzfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7QXZhaWxhYmxlQnJlYWtwb2ludHN9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3Jlc3BvbnNpdmVdJyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZScpIGFsdGVybmF0aXZlRWxlbWVudHM6IFBhcnRpYWw8QXZhaWxhYmxlQnJlYWtwb2ludHM8VGVtcGxhdGVSZWY8YW55Pj4+O1xyXG4gIEBJbnB1dCgncmVzcG9uc2l2ZU9ic2VydmUnKSBvYnNlcnZlOiBzdHJpbmdbXTtcclxuICBASW5wdXQoJ3Jlc3BvbnNpdmVVcGRhdGUnKSB1cGRhdGU6IFN1YmplY3Q8c3RyaW5nPiB8IHVuZGVmaW5lZDtcclxuICAvKiB0c2xpbnQ6ZW5hYmxlICovXHJcblxyXG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG1wbDogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICAgICAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGJyZWFrcG9pbnRzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMub2JzZXJ2ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMub2JzZXJ2ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc3ViID0gdGhpcy5icmVha3BvaW50cy5vYnNlcnZlKHRoaXMub2JzZXJ2ZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVuZGVyKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXIoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHVzZWRTaXplID0gT2JqZWN0LmtleXModGhpcy5hbHRlcm5hdGl2ZUVsZW1lbnRzKS5maW5kKHNpemUgPT4gdGhpcy5icmVha3BvaW50cy5pc01hdGNoZWQoQWxsQnJlYWtwb2ludHNbc2l6ZV0pKTtcclxuICAgIGNvbnN0IHVzZWRUZW1wbGF0ZSA9IHRoaXMuYWx0ZXJuYXRpdmVFbGVtZW50c1t1c2VkU2l6ZV0gfHwgdGhpcy50bXBsO1xyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh1c2VkVGVtcGxhdGUpO1xyXG4gICAgaWYgKHRoaXMudXBkYXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCh1c2VkU2l6ZSB8fCAnRGVmYXVsdCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVzcG9uc2l2ZUNhc2VEaXJlY3RpdmUsIFJlc3BvbnNpdmVTd2l0Y2hEaXJlY3RpdmV9IGZyb20gJy4vcmVzcG9uc2l2ZS1zd2l0Y2guZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVzcG9uc2l2ZURpcmVjdGl2ZSB9IGZyb20gJy4vcmVzcG9uc2l2ZS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtSZXNwb25zaXZlQ2FzZURpcmVjdGl2ZSwgUmVzcG9uc2l2ZVN3aXRjaERpcmVjdGl2ZSwgUmVzcG9uc2l2ZURpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW10sXHJcbiAgZXhwb3J0czogW1Jlc3BvbnNpdmVDYXNlRGlyZWN0aXZlLCBSZXNwb25zaXZlU3dpdGNoRGlyZWN0aXZlLCBSZXNwb25zaXZlRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4Q2RrUmVzcG9uc2l2ZU1vZHVsZSB7IH1cclxuIiwiZXhwb3J0IG5hbWVzcGFjZSBPYnNlcnZlIHtcclxuICBleHBvcnQgY29uc3QgT1JJRU5UQVRJT04gPSAnKG9yaWVudGF0aW9uOmxhbmRzY2FwZSknO1xyXG4gIGV4cG9ydCBjb25zdCBNQVhfV0lEVEggPSAodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nID0gJ3B4JykgPT4gYChtYXgtd2lkdGg6ICR7dmFsdWV9JHt1bml0fSlgO1xyXG4gIGV4cG9ydCBjb25zdCBNSU5fV0lEVEggPSAodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nID0gJ3B4JykgPT4gYChtaW4td2lkdGg6ICR7dmFsdWV9JHt1bml0fSlgO1xyXG4gIGV4cG9ydCBjb25zdCBBTllfV0lORE9XX0NIQU5HRSA9IFsnKG1heC13aWR0aDogNTk5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDk1OS45OXB4KScsICcobWF4LXdpZHRoOiAxMjc5Ljk5cHgpJywgJyhtYXgtd2lkdGg6IDE5MTkuOTlweCknXTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBLElBQWEsY0FBYyxHQUFpQztJQUMxRCxRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLG9CQUFvQixFQUFFLHVCQUF1QjtJQUM3QyxtQkFBbUIsRUFBRSx3QkFBd0I7SUFDN0MsT0FBTyxFQUFFLDhDQUE4QztJQUN2RCxtQkFBbUIsRUFBRSw0Q0FBNEM7SUFDakUsa0JBQWtCLEVBQUUsK0NBQStDO0lBQ25FLFFBQVEsRUFBRSwrQ0FBK0M7SUFDekQsb0JBQW9CLEVBQUUsNkNBQTZDO0lBQ25FLG1CQUFtQixFQUFFLCtDQUErQztJQUNwRSxPQUFPLEVBQUUsZ0RBQWdEO0lBQ3pELG1CQUFtQixFQUFFLDZDQUE2QztJQUNsRSxrQkFBa0IsRUFBRSxnREFBZ0Q7SUFDcEUsUUFBUSxFQUFFLHFCQUFxQjtJQUMvQixvQkFB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 |
@@ -1,26 +0,17 @@ | ||
import { EventEmitter, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { BreakpointObserver } from '@angular/cdk/layout'; | ||
import { Subject } from 'rxjs'; | ||
import { AvailableBreakpoints } from './models'; | ||
export declare class ResponsiveDirective implements OnInit, OnDestroy { | ||
private tmpl; | ||
private vcr; | ||
private breakpoints; | ||
alternativeElements: Partial<AvailableBreakpoints<TemplateRef<any>>>; | ||
observe: string[]; | ||
updated: EventEmitter<string>; | ||
private registeredTemplates; | ||
private defaultTemplate; | ||
update: Subject<string> | undefined; | ||
private sub; | ||
constructor(vcr: ViewContainerRef, breakpoints: BreakpointObserver); | ||
constructor(tmpl: TemplateRef<any>, vcr: ViewContainerRef, breakpoints: BreakpointObserver); | ||
ngOnInit(): void; | ||
register(size: string, template: TemplateRef<any>): void; | ||
registerDefault(template: TemplateRef<any>): void; | ||
render(): void; | ||
ngOnDestroy(): void; | ||
} | ||
export declare class ResponsiveCaseDirective { | ||
private templateRef; | ||
private host; | ||
responsiveCase: string; | ||
responsiveDefault: any; | ||
constructor(templateRef: TemplateRef<any>, host: ResponsiveDirective); | ||
registerTemplate(breakpoint: string): void; | ||
registerDefault(): void; | ||
} |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/observe"}],"metadata":{"ResponsiveDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[responsive]"}]}],"members":{"observe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"updated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":17,"character":27},{"__symbolic":"reference","module":"@angular/cdk/layout","name":"BreakpointObserver","line":18,"character":35}]}],"ngOnInit":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"registerDefault":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ResponsiveCaseDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":57,"character":1},"arguments":[{"selector":"[responsiveCase], [responsiveDefault]"}]}],"members":{"responsiveCase":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3},"arguments":["responsiveCase"]}]}],"responsiveDefault":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3},"arguments":["responsiveDefault"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":84,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"ResponsiveDirective"}]}],"registerTemplate":[{"__symbolic":"method"}],"registerDefault":[{"__symbolic":"method"}]}},"NgxCdkResponsiveModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ResponsiveCaseDirective"},{"__symbolic":"reference","name":"ResponsiveDirective"}],"imports":[],"exports":[{"__symbolic":"reference","name":"ResponsiveCaseDirective"},{"__symbolic":"reference","name":"ResponsiveDirective"}]}]}],"members":{}}},"origins":{"ResponsiveDirective":"./lib/responsive.directive","ResponsiveCaseDirective":"./lib/responsive.directive","NgxCdkResponsiveModule":"./lib/ngx-cdk-responsive.module"},"importAs":"ngx-cdk-responsive"} | ||
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/observe"}],"metadata":{"ResponsiveSwitchDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[responsiveSwitch]"}]}],"members":{"observe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"update":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":17,"character":27},{"__symbolic":"reference","module":"@angular/cdk/layout","name":"BreakpointObserver","line":18,"character":35}]}],"ngOnInit":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"registerDefault":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ResponsiveCaseDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":58,"character":1},"arguments":[{"selector":"[responsiveCase], [responsiveDefault]"}]}],"members":{"responsiveCase":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3},"arguments":["responsiveCase"]}]}],"responsiveDefault":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3},"arguments":["responsiveDefault"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":85,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"ResponsiveSwitchDirective"}]}],"registerTemplate":[{"__symbolic":"method"}],"registerDefault":[{"__symbolic":"method"}]}},"ResponsiveDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":6,"character":1},"arguments":[{"selector":"[responsive]"}]}],"members":{"alternativeElements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3},"arguments":["responsive"]}]}],"observe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3},"arguments":["responsiveObserve"]}]}],"update":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3},"arguments":["responsiveUpdate"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":20,"character":27},{"__symbolic":"reference","module":"@angular/cdk/layout","name":"BreakpointObserver","line":21,"character":35}]}],"ngOnInit":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"NgxCdkResponsiveModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ResponsiveCaseDirective"},{"__symbolic":"reference","name":"ResponsiveSwitchDirective"},{"__symbolic":"reference","name":"ResponsiveDirective"}],"imports":[],"exports":[{"__symbolic":"reference","name":"ResponsiveCaseDirective"},{"__symbolic":"reference","name":"ResponsiveSwitchDirective"},{"__symbolic":"reference","name":"ResponsiveDirective"}]}]}],"members":{}},"AllBreakpoints":{"XSmall":"(max-width: 599.99px)","XSmall and smaller":"(max-width: 599.99px)","XSmall and larger":"(max-width: 1000000px)","Small":"(min-width: 600px) and (max-width: 959.99px)","Small and smaller":"(min-width: 0px) and (max-width: 959.99px)","Small and larger":"(min-width: 600px) and (max-width: 1000000px)","Medium":"(min-width: 960px) and (max-width: 1279.99px)","Medium and smaller":"(min-width: 0px) and (max-width: 1279.99px)","Medium and larger":"(min-width: 960px) and (max-width: 1000000px)","Large":"(min-width: 1280px) and (max-width: 1919.99px)","Large and smaller":"(min-width: 0px) and (max-width: 1919.99px)","Large and larger":"(min-width: 1280px) and (max-width: 1000000px)","XLarge":"(min-width: 1920px)","XLarge and smaller":"(min-width: 0px)","XLarge and larger":"(min-width: 1920px)","Handset":"(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)","Handset and smaller":"(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)","Handset and larger":"(max-width: 1000000px) and (orientation: portrait), (max-width: 1000000px) and (orientation: landscape)","Tablet":"(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)","Tablet and smaller":"(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)","Tablet and larger":"(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait), (min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)","Web":"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)","Web and smaller":"(min-width: 0px) and (orientation: portrait), (min-width: 0px) and (orientation: landscape)","Web and larger":"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)","HandsetPortrait":"(max-width: 599.99px) and (orientation: portrait)","HandsetPortrait and smaller":"(max-width: 599.99px) and (orientation: portrait)","HandsetPortrait and larger":"(max-width: 1000000px) and (orientation: portrait)","TabletPortrait":"(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait)","TabletPortrait and smaller":"(min-width: 0px) and (max-width: 839.99px) and (orientation: portrait)","TabletPortrait and larger":"(min-width: 600px) and (max-width: 1000000px) and (orientation: portrait)","WebPortrait":"(min-width: 840px) and (orientation: portrait)","WebPortrait and smaller":"(min-width: 0px) and (orientation: portrait)","WebPortrait and larger":"(min-width: 840px) and (orientation: portrait)","HandsetLandscape":"(max-width: 959.99px) and (orientation: landscape)","HandsetLandscape and smaller":"(max-width: 959.99px) and (orientation: landscape)","HandsetLandscape and larger":"(max-width: 1000000px) and (orientation: landscape)","TabletLandscape":"(min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)","TabletLandscape and smaller":"(min-width: 0px) and (max-width: 1279.99px) and (orientation: landscape)","TabletLandscape and larger":"(min-width: 960px) and (max-width: 1000000px) and (orientation: landscape)","WebLandscape":"(min-width: 1280px) and (orientation: landscape)","WebLandscape and smaller":"(min-width: 0px) and (orientation: landscape)","WebLandscape and larger":"(min-width: 1280px) and (orientation: landscape)","$quoted$":["XSmall","XSmall and smaller","XSmall and larger","Small","Small and smaller","Small and larger","Medium","Medium and smaller","Medium and larger","Large","Large and smaller","Large and larger","XLarge","XLarge and smaller","XLarge and larger","Handset","Handset and smaller","Handset and larger","Tablet","Tablet and smaller","Tablet and larger","Web","Web and smaller","Web and larger","HandsetPortrait","HandsetPortrait and smaller","HandsetPortrait and larger","TabletPortrait","TabletPortrait and smaller","TabletPortrait and larger","WebPortrait","WebPortrait and smaller","WebPortrait and larger","HandsetLandscape","HandsetLandscape and smaller","HandsetLandscape and larger","TabletLandscape","TabletLandscape and smaller","TabletLandscape and larger","WebLandscape","WebLandscape and smaller","WebLandscape and larger"]},"AvailableBreakpoints":{"__symbolic":"interface"}},"origins":{"ResponsiveSwitchDirective":"./lib/responsive-switch.directive","ResponsiveCaseDirective":"./lib/responsive-switch.directive","ResponsiveDirective":"./lib/responsive.directive","NgxCdkResponsiveModule":"./lib/ngx-cdk-responsive.module","AllBreakpoints":"./lib/models","AvailableBreakpoints":"./lib/models"},"importAs":"ngx-cdk-responsive"} |
{ | ||
"name": "ngx-cdk-responsive", | ||
"version": "0.0.1", | ||
"version": "0.1.0", | ||
"peerDependencies": { | ||
@@ -9,2 +9,18 @@ "@angular/common": "^7.0.0", | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/JanMalch/ngx-cdk-responsive.git" | ||
}, | ||
"keywords": [ | ||
"Angular", | ||
"TypeScript", | ||
"Utility", | ||
"Responsive", | ||
"CDK" | ||
], | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/JanMalch/ngx-cdk-responsive/issues" | ||
}, | ||
"homepage": "https://janmalch.github.io/ngx-cdk-responsive/", | ||
"main": "bundles/ngx-cdk-responsive.umd.js", | ||
@@ -11,0 +27,0 @@ "module": "fesm5/ngx-cdk-responsive.js", |
@@ -0,3 +1,5 @@ | ||
export * from './lib/responsive-switch.directive'; | ||
export * from './lib/responsive.directive'; | ||
export * from './lib/ngx-cdk-responsive.module'; | ||
export * from './lib/observe'; | ||
export * from './lib/models'; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
290904
32
2090
2
2
1
159
0
1