UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

331 lines 22.3 kB
import { __decorate, __metadata } from "tslib"; import { Directive, HostBinding, Input, NgModule } from '@angular/core'; var IgxLayoutDirective = /** @class */ (function () { function IgxLayoutDirective() { /** * Sets the default flow direction of the container's children. * * Defaults to `rows`. * * ```html * <div * igxLayout * igxLayoutDir="row"> * <div igxFlex>1</div> * <div igxFlex>2</div> * <div igxFlex>3</div> * </div> * ``` */ this.dir = 'row'; /** * Defines the direction flex children are placed in the flex container. * * When set to `true`, the `rows` direction goes right to left and `columns` goes bottom to top. * * ```html * <div * igxLayout * igxLayoutReverse="true"> * <div igxFlex>1</div> * <div igxFlex>2</div> * <div igxFlex>3</div> * </div> * ``` */ this.reverse = false; /** * By default the immediate children will all try to fit onto one line. * * The default value `nowrap` sets this behavior. * * Other accepted values are `wrap` and `wrap-reverse`. * * ```html * <div * igxLayout * igxLayoutDir="row" * igxLayoutWrap="wrap"> * <div igxFlex igxFlexGrow="0">1</div> * <div igxFlex igxFlexGrow="0">2</div> * <div igxFlex igxFlexGrow="0">3</div> * </div> * ``` */ this.wrap = 'nowrap'; /** * Defines the alignment along the main axis. * * Defaults to `flex-start` which packs the children toward the start line. * * Other possible values are `flex-end`, `center`, `space-between`, `space-around`. * * ```html * <div * igxLayout * igxLayoutDir="column" * igxLayoutJustify="space-between"> * <div>1</div> * <div>2</div> * <div>3</div> * </div> * ``` */ this.justify = 'flex-start'; /** * Defines the default behavior for how children are laid out along the corss axis of the current line. * * Defaults to `flex-start`. * * Other possible values are `flex-end`, `center`, `baseline`, and `stretch`. * * ```html * <div * igxLayout * igxLayoutDir="column" * igxLayoutItemAlign="start"> * <div igxFlex igxFlexGrow="0">1</div> * <div igxFlex igxFlexGrow="0">2</div> * <div igxFlex igxFlexGrow="0">3</div> * </div> * ``` */ this.itemAlign = 'stretch'; /** * @hidden */ this.display = 'flex'; } Object.defineProperty(IgxLayoutDirective.prototype, "flexwrap", { /** * @hidden */ get: function () { return this.wrap; }, enumerable: true, configurable: true }); Object.defineProperty(IgxLayoutDirective.prototype, "justifycontent", { /** * @hidden */ get: function () { return this.justify; }, enumerable: true, configurable: true }); Object.defineProperty(IgxLayoutDirective.prototype, "align", { /** * @hidden */ get: function () { return this.itemAlign; }, enumerable: true, configurable: true }); Object.defineProperty(IgxLayoutDirective.prototype, "direction", { /** * @hidden */ get: function () { if (this.reverse) { return (this.dir === 'row') ? 'row-reverse' : 'column-reverse'; } return (this.dir === 'row') ? 'row' : 'column'; }, enumerable: true, configurable: true }); __decorate([ Input('igxLayoutDir'), __metadata("design:type", Object) ], IgxLayoutDirective.prototype, "dir", void 0); __decorate([ Input('igxLayoutReverse'), __metadata("design:type", Object) ], IgxLayoutDirective.prototype, "reverse", void 0); __decorate([ Input('igxLayoutWrap'), __metadata("design:type", Object) ], IgxLayoutDirective.prototype, "wrap", void 0); __decorate([ Input('igxLayoutJustify'), __metadata("design:type", Object) ], IgxLayoutDirective.prototype, "justify", void 0); __decorate([ Input('igxLayoutItemAlign'), __metadata("design:type", Object) ], IgxLayoutDirective.prototype, "itemAlign", void 0); __decorate([ HostBinding('style.display'), __metadata("design:type", Object) ], IgxLayoutDirective.prototype, "display", void 0); __decorate([ HostBinding('style.flex-wrap'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxLayoutDirective.prototype, "flexwrap", null); __decorate([ HostBinding('style.justify-content'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxLayoutDirective.prototype, "justifycontent", null); __decorate([ HostBinding('style.align-items'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxLayoutDirective.prototype, "align", null); __decorate([ HostBinding('style.flex-direction'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxLayoutDirective.prototype, "direction", null); IgxLayoutDirective = __decorate([ Directive({ selector: '[igxLayout]' }) ], IgxLayoutDirective); return IgxLayoutDirective; }()); export { IgxLayoutDirective }; var IgxFlexDirective = /** @class */ (function () { function IgxFlexDirective() { /** * Applies the `grow` attribute to an element that uses the directive. * * Default value is `1`. * * ```html * <div> * <div igxFlex igxFlexGrow="0">Content1</div> * <div igxFlex igxFlexGrow="1">Content2</div> * <div igxFlex igxFlexGrow="0">Content3</div> * </div> * ``` */ this.grow = 1; /** * Applies the `shrink` attribute to an element that uses the directive. * * Default value is `1`. * * ```html * <div> * <div igxFlex igxFlexShrink="1">Content1</div> * <div igxFlex igxFlexShrink="0">Content2</div> * <div igxFlex igxFlexShrink="1">Content3</div> * </div> * ``` */ this.shrink = 1; /** * Applies the directive to an element. * * Possible values include `igxFlexGrow`, `igxFlexShrink`, `igxFlexOrder`, `igxFlexBasis`. * * ```html * <div igxFlex>Content</div> * ``` */ this.flex = ''; /** * Applies the `order` attribute to an element that uses the directive. * * Default value is `0`. * * ```html * <div> * <div igxFlex igxFlexOrder="1">Content1</div> * <div igxFlex igxFlexOrder="0">Content2</div> * <div igxFlex igxFlexOrder="2">Content3</div> * </div> * ``` */ this.order = 0; /** * Applies the `flex-basis` attribute to an element that uses the directive. * * Default value is `auto`. * * Other possible values include `content`, `max-content`, `min-content`, `fit-content`. * * ```html * <div igxFlex igxFlexBasis="fit-content">Content</div> * ``` */ this.basis = 'auto'; } Object.defineProperty(IgxFlexDirective.prototype, "style", { /** * @hidden */ get: function () { if (this.flex) { return "" + this.flex; } return this.grow + " " + this.shrink + " " + this.basis; }, enumerable: true, configurable: true }); Object.defineProperty(IgxFlexDirective.prototype, "itemorder", { /** * @hidden */ get: function () { return this.order || 0; }, enumerable: true, configurable: true }); __decorate([ Input('igxFlexGrow'), __metadata("design:type", Object) ], IgxFlexDirective.prototype, "grow", void 0); __decorate([ Input('igxFlexShrink'), __metadata("design:type", Object) ], IgxFlexDirective.prototype, "shrink", void 0); __decorate([ Input('igxFlex'), __metadata("design:type", Object) ], IgxFlexDirective.prototype, "flex", void 0); __decorate([ Input('igxFlexOrder'), __metadata("design:type", Object) ], IgxFlexDirective.prototype, "order", void 0); __decorate([ Input('igxFlexBasis'), __metadata("design:type", Object) ], IgxFlexDirective.prototype, "basis", void 0); __decorate([ HostBinding('style.flex'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxFlexDirective.prototype, "style", null); __decorate([ HostBinding('style.order'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], IgxFlexDirective.prototype, "itemorder", null); IgxFlexDirective = __decorate([ Directive({ selector: '[igxFlex]' }) ], IgxFlexDirective); return IgxFlexDirective; }()); export { IgxFlexDirective }; /** * @hidden */ var IgxLayoutModule = /** @class */ (function () { function IgxLayoutModule() { } IgxLayoutModule = __decorate([ NgModule({ declarations: [IgxFlexDirective, IgxLayoutDirective], exports: [IgxFlexDirective, IgxLayoutDirective] }) ], IgxLayoutModule); return IgxLayoutModule; }()); export { IgxLayoutModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9sYXlvdXQvbGF5b3V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt4RTtJQUFBO1FBQ0k7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDMkIsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUUxQzs7Ozs7Ozs7Ozs7Ozs7V0FjRztRQUMrQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWxEOzs7Ozs7Ozs7Ozs7Ozs7OztXQWlCRztRQUM0QixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7OztXQWlCRztRQUMrQixZQUFPLEdBQUcsWUFBWSxDQUFDO1FBRXpEOzs7Ozs7Ozs7Ozs7Ozs7OztXQWlCRztRQUNpQyxjQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTFEOztXQUVHO1FBQ2tDLFlBQU8sR0FBRyxNQUFNLENBQUM7SUEyQjFELENBQUM7SUF0Qm1DLHNCQUFJLHdDQUFRO1FBSDVDOztXQUVHO2FBQzZCLGNBQWlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7OztPQUFBO0lBSzlCLHNCQUFJLDhDQUFjO1FBSHhEOztXQUVHO2FBQ21DLGNBQXVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7OztPQUFBO0lBS2pELHNCQUFJLHFDQUFLO1FBSDNDOztXQUVHO2FBQytCLGNBQWMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzs7O09BQUE7SUFNeEUsc0JBQUkseUNBQVM7UUFKYjs7V0FFRzthQUVIO1lBQ0ksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxL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Q0FBQztTQUNsRCxDQUFDO09BQ1csZUFBZSxDQUFJO0lBQUQsc0JBQUM7Q0FBQSxBQUFoQyxJQUFnQztTQUFuQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneExheW91dF0nXG59KVxuZXhwb3J0IGNsYXNzIElneExheW91dERpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGVmYXVsdCBmbG93IGRpcmVjdGlvbiBvZiB0aGUgY29udGFpbmVyJ3MgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBEZWZhdWx0cyB0byBgcm93c2AuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0RGlyPVwicm93XCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4zPC9kaXY+XG4gICAgICogIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4TGF5b3V0RGlyJykgcHVibGljIGRpciA9ICdyb3cnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgZGlyZWN0aW9uIGZsZXggY2hpbGRyZW4gYXJlIHBsYWNlZCBpbiB0aGUgZmxleCBjb250YWluZXIuXG4gICAgICpcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBgcm93c2AgZGlyZWN0aW9uIGdvZXMgcmlnaHQgdG8gbGVmdCBhbmQgYGNvbHVtbnNgIGdvZXMgYm90dG9tIHRvIHRvcC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hMYXlvdXRcbiAgICAgKiAgIGlneExheW91dFJldmVyc2U9XCJ0cnVlXCI+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4zPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hMYXlvdXRSZXZlcnNlJykgcHVibGljIHJldmVyc2UgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIGltbWVkaWF0ZSBjaGlsZHJlbiB3aWxsIGFsbCB0cnkgdG8gZml0IG9udG8gb25lIGxpbmUuXG4gICAgICpcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBgbm93cmFwYCBzZXRzIHRoaXMgYmVoYXZpb3IuXG4gICAgICpcbiAgICAgKiBPdGhlciBhY2NlcHRlZCB2YWx1ZXMgYXJlIGB3cmFwYCBhbmQgYHdyYXAtcmV2ZXJzZWAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJyb3dcIlxuICAgICAqICAgaWd4TGF5b3V0V3JhcD1cIndyYXBcIj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4yPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dFdyYXAnKSBwdWJsaWMgd3JhcCA9ICdub3dyYXAnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgYWxpZ25tZW50IGFsb25nIHRoZSBtYWluIGF4aXMuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0cyB0byBgZmxleC1zdGFydGAgd2hpY2ggcGFja3MgdGhlIGNoaWxkcmVuIHRvd2FyZCB0aGUgc3RhcnQgbGluZS5cbiAgICAgKlxuICAgICAqIE90aGVyIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGZsZXgtZW5kYCwgYGNlbnRlcmAsIGBzcGFjZS1iZXR3ZWVuYCwgYHNwYWNlLWFyb3VuZGAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJjb2x1bW5cIlxuICAgICAqICAgaWd4TGF5b3V0SnVzdGlmeT1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgKiAgICA8ZGl2PjE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2PjI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2PjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dEp1c3RpZnknKSBwdWJsaWMganVzdGlmeSA9ICdmbGV4LXN0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGhvdyBjaGlsZHJlbiBhcmUgbGFpZCBvdXQgYWxvbmcgdGhlIGNvcnNzIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGBmbGV4LXN0YXJ0YC5cbiAgICAgKlxuICAgICAqIE90aGVyIHBvc3NpYmxlIHZhbHVlcyBhcmUgYGZsZXgtZW5kYCwgYGNlbnRlcmAsIGBiYXNlbGluZWAsIGFuZCBgc3RyZXRjaGAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJjb2x1bW5cIlxuICAgICAqICAgaWd4TGF5b3V0SXRlbUFsaWduPVwic3RhcnRcIj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4yPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dEl0ZW1BbGlnbicpIHB1YmxpYyBpdGVtQWxpZ24gPSAnc3RyZXRjaCc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgcHVibGljIGRpc3BsYXkgPSAnZmxleCc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LXdyYXAnKSBnZXQgZmxleHdyYXAoKSB7IHJldHVybiB0aGlzLndyYXA7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmp1c3RpZnktY29udGVudCcpIGdldCBqdXN0aWZ5Y29udGVudCgpIHsgcmV0dXJuIHRoaXMuanVzdGlmeTsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYWxpZ24taXRlbXMnKSBnZXQgYWxpZ24oKSB7IHJldHVybiB0aGlzLml0ZW1BbGlnbjsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZmxleC1kaXJlY3Rpb24nKVxuICAgIGdldCBkaXJlY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5kaXIgPT09ICdyb3cnKSA/ICdyb3ctcmV2ZXJzZScgOiAnY29sdW1uLXJldmVyc2UnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcy5kaXIgPT09ICdyb3cnKSA/ICdyb3cnIDogJ2NvbHVtbic7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hGbGV4XSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4RmxleERpcmVjdGl2ZSB7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBgZ3Jvd2AgYXR0cmlidXRlIHRvIGFuIGVsZW1lbnQgdGhhdCB1c2VzIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGAxYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj5Db250ZW50MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjFcIj5Db250ZW50MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj5Db250ZW50MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleEdyb3cnKSBwdWJsaWMgZ3JvdyA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBgc2hyaW5rYCBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCB0aGF0IHVzZXMgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYDFgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhTaHJpbms9XCIxXCI+Q29udGVudDE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleFNocmluaz1cIjBcIj5Db250ZW50MjwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4U2hyaW5rPVwiMVwiPkNvbnRlbnQzPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4U2hyaW5rJykgcHVibGljIHNocmluayA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBkaXJlY3RpdmUgdG8gYW4gZWxlbWVudC5cbiAgICAgKlxuICAgICAqIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlIGBpZ3hGbGV4R3Jvd2AsIGBpZ3hGbGV4U2hyaW5rYCwgYGlneEZsZXhPcmRlcmAsIGBpZ3hGbGV4QmFzaXNgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXYgaWd4RmxleD5Db250ZW50PC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4JykgcHVibGljIGZsZXggPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGBvcmRlcmAgYXR0cmlidXRlIHRvIGFuIGVsZW1lbnQgdGhhdCB1c2VzIHRoZSBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGAwYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4T3JkZXI9XCIxXCI+Q29udGVudDE8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleE9yZGVyPVwiMFwiPkNvbnRlbnQyPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhPcmRlcj1cIjJcIj5Db250ZW50MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleE9yZGVyJykgcHVibGljIG9yZGVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGBmbGV4LWJhc2lzYCBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCB0aGF0IHVzZXMgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGF1dG9gLlxuICAgICAqXG4gICAgICogT3RoZXIgcG9zc2libGUgdmFsdWVzIGluY2x1ZGUgYGNvbnRlbnRgLCBgbWF4LWNvbnRlbnRgLCBgbWluLWNvbnRlbnRgLCBgZml0LWNvbnRlbnRgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXYgaWd4RmxleCBpZ3hGbGV4QmFzaXM9XCJmaXQtY29udGVudFwiPkNvbnRlbnQ8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneEZsZXhCYXNpcycpIHB1YmxpYyBiYXNpcyA9ICdhdXRvJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgnKVxuICAgIGdldCBzdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZmxleCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuZmxleH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdyb3d9ICR7dGhpcy5zaHJpbmt9ICR7dGhpcy5iYXNpc31gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9yZGVyJylcbiAgICBnZXQgaXRlbW9yZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlciB8fCAwO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbSWd4RmxleERpcmVjdGl2ZSwgSWd4TGF5b3V0RGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbSWd4RmxleERpcmVjdGl2ZSwgSWd4TGF5b3V0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hMYXlvdXRNb2R1bGUgeyB9XG4iXX0=