UNPKG

@catull/igniteui-angular

Version:

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

302 lines 20.7 kB
import { __decorate, __metadata } from "tslib"; import { Directive, HostBinding, Input, NgModule } from '@angular/core'; let IgxLayoutDirective = class IgxLayoutDirective { constructor() { /** * 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'; } /** * @hidden */ get flexwrap() { return this.wrap; } /** * @hidden */ get justifycontent() { return this.justify; } /** * @hidden */ get align() { return this.itemAlign; } /** * @hidden */ get direction() { if (this.reverse) { return (this.dir === 'row') ? 'row-reverse' : 'column-reverse'; } return (this.dir === 'row') ? 'row' : 'column'; } }; __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); export { IgxLayoutDirective }; let IgxFlexDirective = class IgxFlexDirective { constructor() { /** * 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'; } /** * @hidden */ get style() { if (this.flex) { return `${this.flex}`; } return `${this.grow} ${this.shrink} ${this.basis}`; } /** * @hidden */ get itemorder() { return this.order || 0; } }; __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); export { IgxFlexDirective }; /** * @hidden */ let IgxLayoutModule = class IgxLayoutModule { }; IgxLayoutModule = __decorate([ NgModule({ declarations: [IgxFlexDirective, IgxLayoutDirective], exports: [IgxFlexDirective, IgxLayoutDirective] }) ], IgxLayoutModule); export { IgxLayoutModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9sYXlvdXQvbGF5b3V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt4RSxJQUFhLGtCQUFrQixHQUEvQixNQUFhLGtCQUFrQjtJQUEvQjtRQUNJOzs7Ozs7Ozs7Ozs7OztXQWNHO1FBQzJCLFFBQUcsR0FBRyxLQUFLLENBQUM7UUFFMUM7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDK0IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDNEIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDK0IsWUFBTyxHQUFHLFlBQVksQ0FBQztRQUV6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDaUMsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUxRDs7V0FFRztRQUNrQyxZQUFPLEdBQUcsTUFBTSxDQUFDO0lBMkIxRCxDQUFDO0lBekJHOztPQUVHO0lBQzZCLElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFcEU7O09BRUc7SUFDbUMsSUFBSSxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVuRjs7T0FFRztJQUMrQixJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXhFOztPQUVHO0lBRUgsSUFBSSxTQUFTO1FBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxD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O1NBQW5CLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4TGF5b3V0XSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4TGF5b3V0RGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkZWZhdWx0IGZsb3cgZGlyZWN0aW9uIG9mIHRoZSBjb250YWluZXIncyBjaGlsZHJlbi5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGByb3dzYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGRpdlxuICAgICAqICAgaWd4TGF5b3V0XG4gICAgICogICBpZ3hMYXlvdXREaXI9XCJyb3dcIj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4yPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjM8L2Rpdj5cbiAgICAgKiAgPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hMYXlvdXREaXInKSBwdWJsaWMgZGlyID0gJ3Jvdyc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZmxleCBjaGlsZHJlbiBhcmUgcGxhY2VkIGluIHRoZSBmbGV4IGNvbnRhaW5lci5cbiAgICAgKlxuICAgICAqIFdoZW4gc2V0IHRvIGB0cnVlYCwgdGhlIGByb3dzYCBkaXJlY3Rpb24gZ29lcyByaWdodCB0byBsZWZ0IGFuZCBgY29sdW1uc2AgZ29lcyBib3R0b20gdG8gdG9wLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXZcbiAgICAgKiAgIGlneExheW91dFxuICAgICAqICAgaWd4TGF5b3V0UmV2ZXJzZT1cInRydWVcIj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXg+MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleD4yPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4PjM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneExheW91dFJldmVyc2UnKSBwdWJsaWMgcmV2ZXJzZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCB0aGUgaW1tZWRpYXRlIGNoaWxkcmVuIHdpbGwgYWxsIHRyeSB0byBmaXQgb250byBvbmUgbGluZS5cbiAgICAgKlxuICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGBub3dyYXBgIHNldHMgdGhpcyBiZWhhdmlvci5cbiAgICAgKlxuICAgICAqIE90aGVyIGFjY2VwdGVkIHZhbHVlcyBhcmUgYHdyYXBgIGFuZCBgd3JhcC1yZXZlcnNlYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hMYXlvdXRcbiAgICAgKiAgIGlneExheW91dERpcj1cInJvd1wiXG4gICAgICogICBpZ3hMYXlvdXRXcmFwPVwid3JhcFwiPlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4xPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4TGF5b3V0V3JhcCcpIHB1YmxpYyB3cmFwID0gJ25vd3JhcCc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBhbGlnbm1lbnQgYWxvbmcgdGhlIG1haW4gYXhpcy5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGBmbGV4LXN0YXJ0YCB3aGljaCBwYWNrcyB0aGUgY2hpbGRyZW4gdG93YXJkIHRoZSBzdGFydCBsaW5lLlxuICAgICAqXG4gICAgICogT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBgZmxleC1lbmRgLCBgY2VudGVyYCwgYHNwYWNlLWJldHdlZW5gLCBgc3BhY2UtYXJvdW5kYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hMYXlvdXRcbiAgICAgKiAgIGlneExheW91dERpcj1cImNvbHVtblwiXG4gICAgICogICBpZ3hMYXlvdXRKdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiPlxuICAgICAqICAgIDxkaXY+MTwvZGl2PlxuICAgICAqICAgIDxkaXY+MjwvZGl2PlxuICAgICAqICAgIDxkaXY+MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4TGF5b3V0SnVzdGlmeScpIHB1YmxpYyBqdXN0aWZ5ID0gJ2ZsZXgtc3RhcnQnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgaG93IGNoaWxkcmVuIGFyZSBsYWlkIG91dCBhbG9uZyB0aGUgY29yc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lLlxuICAgICAqXG4gICAgICogRGVmYXVsdHMgdG8gYGZsZXgtc3RhcnRgLlxuICAgICAqXG4gICAgICogT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBgZmxleC1lbmRgLCBgY2VudGVyYCwgYGJhc2VsaW5lYCwgYW5kIGBzdHJldGNoYC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZGl2XG4gICAgICogICBpZ3hMYXlvdXRcbiAgICAgKiAgIGlneExheW91dERpcj1cImNvbHVtblwiXG4gICAgICogICBpZ3hMYXlvdXRJdGVtQWxpZ249XCJzdGFydFwiPlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4R3Jvdz1cIjBcIj4xPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPjI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleEdyb3c9XCIwXCI+MzwvZGl2PlxuICAgICAqIDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4TGF5b3V0SXRlbUFsaWduJykgcHVibGljIGl0ZW1BbGlnbiA9ICdzdHJldGNoJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBwdWJsaWMgZGlzcGxheSA9ICdmbGV4JztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtd3JhcCcpIGdldCBmbGV4d3JhcCgpIHsgcmV0dXJuIHRoaXMud3JhcDsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuanVzdGlmeS1jb250ZW50JykgZ2V0IGp1c3RpZnljb250ZW50KCkgeyByZXR1cm4gdGhpcy5qdXN0aWZ5OyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5hbGlnbi1pdGVtcycpIGdldCBhbGlnbigpIHsgcmV0dXJuIHRoaXMuaXRlbUFsaWduOyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LWRpcmVjdGlvbicpXG4gICAgZ2V0IGRpcmVjdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMucmV2ZXJzZSkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmRpciA9PT0gJ3JvdycpID8gJ3Jvdy1yZXZlcnNlJyA6ICdjb2x1bW4tcmV2ZXJzZSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0aGlzLmRpciA9PT0gJ3JvdycpID8gJ3JvdycgOiAnY29sdW1uJztcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEZsZXhdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hGbGV4RGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGBncm93YCBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCB0aGF0IHVzZXMgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYDFgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPkNvbnRlbnQxPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMVwiPkNvbnRlbnQyPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhHcm93PVwiMFwiPkNvbnRlbnQzPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4R3JvdycpIHB1YmxpYyBncm93ID0gMTtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGBzaHJpbmtgIGF0dHJpYnV0ZSB0byBhbiBlbGVtZW50IHRoYXQgdXNlcyB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgMWAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleFNocmluaz1cIjFcIj5Db250ZW50MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4U2hyaW5rPVwiMFwiPkNvbnRlbnQyPC9kaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhTaHJpbms9XCIxXCI+Q29udGVudDM8L2Rpdj5cbiAgICAgKiA8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneEZsZXhTaHJpbmsnKSBwdWJsaWMgc2hyaW5rID0gMTtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGRpcmVjdGl2ZSB0byBhbiBlbGVtZW50LlxuICAgICAqXG4gICAgICogUG9zc2libGUgdmFsdWVzIGluY2x1ZGUgYGlneEZsZXhHcm93YCwgYGlneEZsZXhTaHJpbmtgLCBgaWd4RmxleE9yZGVyYCwgYGlneEZsZXhCYXNpc2AuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdiBpZ3hGbGV4PkNvbnRlbnQ8L2Rpdj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneEZsZXgnKSBwdWJsaWMgZmxleCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgYG9yZGVyYCBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCB0aGF0IHVzZXMgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYDBgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXY+XG4gICAgICogICAgPGRpdiBpZ3hGbGV4IGlneEZsZXhPcmRlcj1cIjFcIj5Db250ZW50MTwvZGl2PlxuICAgICAqICAgIDxkaXYgaWd4RmxleCBpZ3hGbGV4T3JkZXI9XCIwXCI+Q29udGVudDI8L2Rpdj5cbiAgICAgKiAgICA8ZGl2IGlneEZsZXggaWd4RmxleE9yZGVyPVwiMlwiPkNvbnRlbnQzPC9kaXY+XG4gICAgICogPC9kaXY+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hGbGV4T3JkZXInKSBwdWJsaWMgb3JkZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyB0aGUgYGZsZXgtYmFzaXNgIGF0dHJpYnV0ZSB0byBhbiBlbGVtZW50IHRoYXQgdXNlcyB0aGUgZGlyZWN0aXZlLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgYXV0b2AuXG4gICAgICpcbiAgICAgKiBPdGhlciBwb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZSBgY29udGVudGAsIGBtYXgtY29udGVudGAsIGBtaW4tY29udGVudGAsIGBmaXQtY29udGVudGAuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdiBpZ3hGbGV4IGlneEZsZXhCYXNpcz1cImZpdC1jb250ZW50XCI+Q29udGVudDwvZGl2PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgnaWd4RmxleEJhc2lzJykgcHVibGljIGJhc2lzID0gJ2F1dG8nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZmxleCcpXG4gICAgZ2V0IHN0eWxlKCkge1xuICAgICAgICBpZiAodGhpcy5mbGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5mbGV4fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ3Jvd30gJHt0aGlzLnNocmlua30gJHt0aGlzLmJhc2lzfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUub3JkZXInKVxuICAgIGdldCBpdGVtb3JkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yZGVyIHx8IDA7XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtJZ3hGbGV4RGlyZWN0aXZlLCBJZ3hMYXlvdXREaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtJZ3hGbGV4RGlyZWN0aXZlLCBJZ3hMYXlvdXREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneExheW91dE1vZHVsZSB7IH1cbiJdfQ==