smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
115 lines • 18.6 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { BaseElement } from './smart.element';
import * as i0 from "@angular/core";
export { Smart } from './smart.element';
export class RibbonGroupComponent extends BaseElement {
constructor(ref) {
super(ref);
this.eventHandlers = [];
this.nativeElement = ref.nativeElement;
}
/** @description Creates the component on demand.
* @param properties An optional object of properties, which will be added to the template binded ones.
*/
createComponent(properties = {}) {
this.nativeElement = document.createElement('smart-ribbon-group');
for (let propertyName in properties) {
this.nativeElement[propertyName] = properties[propertyName];
}
return this.nativeElement;
}
/** @description Specifies the text or title displayed as the label for the ribbon group, helping users identify the purpose or category of the grouped controls within the ribbon interface. */
get label() {
return this.nativeElement ? this.nativeElement.label : undefined;
}
set label(value) {
this.nativeElement ? this.nativeElement.label = value : undefined;
}
/** @description Specifies the icon displayed for the ribbon group. This property defines the visual symbol or image that represents the group within the ribbon interface, enhancing usability and quick identification for users. */
get icon() {
return this.nativeElement ? this.nativeElement.icon : undefined;
}
set icon(value) {
this.nativeElement ? this.nativeElement.icon = value : undefined;
}
/** @description Specifies the CSS class applied to the ribbon group, which controls its appearance and styling. Use this property to customize the look and feel of the ribbon group by assigning one or more class names. */
get cssClass() {
return this.nativeElement ? this.nativeElement.cssClass : undefined;
}
set cssClass(value) {
this.nativeElement ? this.nativeElement.cssClass = value : undefined;
}
/** @description Defines the collection of items displayed within the ribbon group, specifying the individual controls, buttons, menus, or tools that appear as part of the ribbon interface. This property allows customization of the content and arrangement of the ribbon group elements. */
get ribbonItems() {
return this.nativeElement ? this.nativeElement.ribbonItems : undefined;
}
set ribbonItems(value) {
this.nativeElement ? this.nativeElement.ribbonItems = value : undefined;
}
/** @description Specifies the orientation of the ribbon group, such as horizontal or vertical, affecting how its contained items are arranged and displayed within the user interface. */
get direction() {
return this.nativeElement ? this.nativeElement.direction : undefined;
}
set direction(value) {
this.nativeElement ? this.nativeElement.direction = value : undefined;
}
/** @description Defines the configuration options for the dialog launcher button within the ribbon group, specifying its appearance, behavior, and associated actions when activated by the user. */
get dialogLauncher() {
return this.nativeElement ? this.nativeElement.dialogLauncher : undefined;
}
set dialogLauncher(value) {
this.nativeElement ? this.nativeElement.dialogLauncher = value : undefined;
}
/** @description Specifies the minimum width (in pixels) at which the ribbon group will be displayed on a single line. If the available space becomes smaller than this value, the ribbon group will automatically wrap to a new line to maintain a responsive layout. */
get wrapSize() {
return this.nativeElement ? this.nativeElement.wrapSize : undefined;
}
set wrapSize(value) {
this.nativeElement ? this.nativeElement.wrapSize = value : undefined;
}
get isRendered() {
return this.nativeElement ? this.nativeElement.isRendered : false;
}
ngOnInit() {
}
ngAfterViewInit() {
const that = this;
that.onCreate.emit(that.nativeElement);
this.nativeElement.classList.add('smart-angular');
if (this.nativeElement.whenRendered)
this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });
}
ngOnDestroy() { }
ngOnChanges(changes) {
if (this.nativeElement && this.nativeElement.isRendered) {
for (const propName in changes) {
if (changes.hasOwnProperty(propName)) {
this.nativeElement[propName] = changes[propName].currentValue;
}
}
}
}
}
RibbonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: RibbonGroupComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
RibbonGroupComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: RibbonGroupComponent, selector: "smart-ribbon-group, [smart-ribbon-group]", inputs: { label: "label", icon: "icon", cssClass: "cssClass", ribbonItems: "ribbonItems", direction: "direction", dialogLauncher: "dialogLauncher", wrapSize: "wrapSize" }, exportAs: ["smart-ribbon-group"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: RibbonGroupComponent, decorators: [{
type: Directive,
args: [{
exportAs: 'smart-ribbon-group', selector: 'smart-ribbon-group, [smart-ribbon-group]'
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { label: [{
type: Input
}], icon: [{
type: Input
}], cssClass: [{
type: Input
}], ribbonItems: [{
type: Input
}], direction: [{
type: Input
}], dialogLauncher: [{
type: Input
}], wrapSize: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQucmliYm9uZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9yaWJib24vc3JjL3NtYXJ0LnJpYmJvbmdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBYSxTQUFTLEVBQTZCLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLFdBQVcsRUFBUyxNQUFNLGlCQUFpQixDQUFDOztBQUVyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFReEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUFDcEQsWUFBWSxHQUE0QjtRQUN2QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFJSixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUhqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxhQUE0QixDQUFDO0lBQ3ZELENBQUM7SUFLRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxVQUFVLEdBQUcsRUFBRTtRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFnQixRQUFRLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEYsS0FBSyxJQUFJLFlBQVksSUFBSSxVQUFVLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0IsQ0FBQztJQUNELGdNQUFnTTtJQUNoTSxJQUNJLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEUsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEs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b20gJy4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgUmliYm9uR3JvdXBEaXJlY3Rpb24sIFJpYmJvbkdyb3VwV3JhcFNpemUsIFJpYmJvbkdyb3VwRGlhbG9nTGF1bmNoZXIsIEVsZW1lbnRSZW5kZXJNb2RlfSBmcm9tICcuLy4uL2luZGV4JztcbmltcG9ydCB7IENvbXBvbmVudCwgRGlyZWN0aXZlLCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnQsIFNtYXJ0IH0gZnJvbSAnLi9zbWFydC5lbGVtZW50JztcbmV4cG9ydCB7IFJpYmJvbkdyb3VwRGlyZWN0aW9uLCBSaWJib25Hcm91cFdyYXBTaXplLCBSaWJib25Hcm91cERpYWxvZ0xhdW5jaGVyLCBFbGVtZW50UmVuZGVyTW9kZX0gZnJvbSAnLi8uLi9pbmRleCc7XG5leHBvcnQgeyBTbWFydCB9IGZyb20gJy4vc21hcnQuZWxlbWVudCc7XG5leHBvcnQgeyBSaWJib25Hcm91cCB9IGZyb20gJy4vLi4vaW5kZXgnO1xuXG5cbkBEaXJlY3RpdmUoe1xuXHRleHBvcnRBczogJ3NtYXJ0LXJpYmJvbi1ncm91cCcsXHRzZWxlY3RvcjogJ3NtYXJ0LXJpYmJvbi1ncm91cCwgW3NtYXJ0LXJpYmJvbi1ncm91cF0nXG59KVxuXG5leHBvcnQgY2xhc3MgUmliYm9uR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWxlbWVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXHRjb25zdHJ1Y3RvcihyZWY6IEVsZW1lbnRSZWY8UmliYm9uR3JvdXA+KSB7XG5cdFx0c3VwZXIocmVmKTtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPSByZWYubmF0aXZlRWxlbWVudCBhcyBSaWJib25Hcm91cDtcblx0fVxuXG5cdHByaXZhdGUgZXZlbnRIYW5kbGVyczogYW55W10gPSBbXTtcblxuXHRwdWJsaWMgZGVjbGFyZSBuYXRpdmVFbGVtZW50OiBSaWJib25Hcm91cDtcblx0LyoqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIHRoZSBjb21wb25lbnQgb24gZGVtYW5kLlxuXHQgKiBAcGFyYW0gcHJvcGVydGllcyBBbiBvcHRpb25hbCBvYmplY3Qgb2YgcHJvcGVydGllcywgd2hpY2ggd2lsbCBiZSBhZGRlZCB0byB0aGUgdGVtcGxhdGUgYmluZGVkIG9uZXMuXG5cdCAqL1xuXHRwdWJsaWMgY3JlYXRlQ29tcG9uZW50KHByb3BlcnRpZXMgPSB7fSk6IGFueSB7XG4gICAgXHR0aGlzLm5hdGl2ZUVsZW1lbnQgPSA8UmliYm9uR3JvdXA+ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc21hcnQtcmliYm9uLWdyb3VwJyk7XG5cdFx0Zm9yIChsZXQgcHJvcGVydHlOYW1lIGluIHByb3BlcnRpZXMpIHsgXG4gXHRcdFx0dGhpcy5uYXRpdmVFbGVtZW50W3Byb3BlcnR5TmFtZV0gPSBwcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV07XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG5cdH1cblx0LyoqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgdGhlIHRleHQgb3IgdGl0bGUgZGlzcGxheWVkIGFzIHRoZSBsYWJlbCBmb3IgdGhlIHJpYmJvbiBncm91cCwgaGVscGluZyB1c2VycyBpZGVudGlmeSB0aGUgcHVycG9zZSBvciBjYXRlZ29yeSBvZiB0aGUgZ3JvdXBlZCBjb250cm9scyB3aXRoaW4gdGhlIHJpYmJvbiBpbnRlcmZhY2UuICovXG5cdEBJbnB1dCgpXG5cdGdldCBsYWJlbCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQubGFiZWwgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGxhYmVsKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQubGFiZWwgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gU3BlY2lmaWVzIHRoZSBpY29uIGRpc3BsYXllZCBmb3IgdGhlIHJpYmJvbiBncm91cC4gVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIHRoZSB2aXN1YWwgc3ltYm9sIG9yIGltYWdlIHRoYXQgcmVwcmVzZW50cyB0aGUgZ3JvdXAgd2l0aGluIHRoZSByaWJib24gaW50ZXJmYWNlLCBlbmhhbmNpbmcgdXNhYmlsaXR5IGFuZCBxdWljayBpZGVudGlmaWNhdGlvbiBmb3IgdXNlcnMuICovXG5cdEBJbnB1dCgpXG5cdGdldCBpY29uKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5pY29uIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCBpY29uKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuaWNvbiA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgdGhlIENTUyBjbGFzcyBhcHBsaWVkIHRvIHRoZSByaWJib24gZ3JvdXAsIHdoaWNoIGNvbnRyb2xzIGl0cyBhcHBlYXJhbmNlIGFuZCBzdHlsaW5nLiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBjdXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwgb2YgdGhlIHJpYmJvbiBncm91cCBieSBhc3NpZ25pbmcgb25lIG9yIG1vcmUgY2xhc3MgbmFtZXMuICovXG5cdEBJbnB1dCgpXG5cdGdldCBjc3NDbGFzcygpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuY3NzQ2xhc3MgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGNzc0NsYXNzKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuY3NzQ2xhc3MgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgY29sbGVjdGlvbiBvZiBpdGVtcyBkaXNwbGF5ZWQgd2l0aGluIHRoZSByaWJib24gZ3JvdXAsIHNwZWNpZnlpbmcgdGhlIGluZGl2aWR1YWwgY29udHJvbHMsIGJ1dHRvbnMsIG1lbnVzLCBvciB0b29scyB0aGF0IGFwcGVhciBhcyBwYXJ0IG9mIHRoZSByaWJib24gaW50ZXJmYWNlLiBUaGlzIHByb3BlcnR5IGFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBjb250ZW50IGFuZCBhcnJhbmdlbWVudCBvZiB0aGUgcmliYm9uIGdyb3VwIGVsZW1lbnRzLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgcmliYm9uSXRlbXMoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnJpYmJvbkl0ZW1zIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCByaWJib25JdGVtcyh2YWx1ZTogYW55KSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnJpYmJvbkl0ZW1zID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIHJpYmJvbiBncm91cCwgc3VjaCBhcyBob3Jpem9udGFsIG9yIHZlcnRpY2FsLCBhZmZlY3RpbmcgaG93IGl0cyBjb250YWluZWQgaXRlbXMgYXJlIGFycmFuZ2VkIGFuZCBkaXNwbGF5ZWQgd2l0aGluIHRoZSB1c2VyIGludGVyZmFjZS4gKi9cblx0QElucHV0KClcblx0Z2V0IGRpcmVjdGlvbigpOiBSaWJib25Hcm91cERpcmVjdGlvbiB8IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5kaXJlY3Rpb24gOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGRpcmVjdGlvbih2YWx1ZTogUmliYm9uR3JvdXBEaXJlY3Rpb24gfCBzdHJpbmcpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuZGlyZWN0aW9uID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGRpYWxvZyBsYXVuY2hlciBidXR0b24gd2l0aGluIHRoZSByaWJib24gZ3JvdXAsIHNwZWNpZnlpbmcgaXRzIGFwcGVhcmFuY2UsIGJlaGF2aW9yLCBhbmQgYXNzb2NpYXRlZCBhY3Rpb25zIHdoZW4gYWN0aXZhdGVkIGJ5IHRoZSB1c2VyLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgZGlhbG9nTGF1bmNoZXIoKTogUmliYm9uR3JvdXBEaWFsb2dMYXVuY2hlciB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5kaWFsb2dMYXVuY2hlciA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgZGlhbG9nTGF1bmNoZXIodmFsdWU6IFJpYmJvbkdyb3VwRGlhbG9nTGF1bmNoZXIpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuZGlhbG9nTGF1bmNoZXIgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gU3BlY2lmaWVzIHRoZSBtaW5pbXVtIHdpZHRoIChpbiBwaXhlbHMpIGF0IHdoaWNoIHRoZSByaWJib24gZ3JvdXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBzaW5nbGUgbGluZS4gSWYgdGhlIGF2YWlsYWJsZSBzcGFjZSBiZWNvbWVzIHNtYWxsZXIgdGhhbiB0aGlzIHZhbHVlLCB0aGUgcmliYm9uIGdyb3VwIHdpbGwgYXV0b21hdGljYWxseSB3cmFwIHRvIGEgbmV3IGxpbmUgdG8gbWFpbnRhaW4gYSByZXNwb25zaXZlIGxheW91dC4gKi9cblx0QElucHV0KClcblx0Z2V0IHdyYXBTaXplKCk6IFJpYmJvbkdyb3VwV3JhcFNpemUgfCBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQud3JhcFNpemUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IHdyYXBTaXplKHZhbHVlOiBSaWJib25Hcm91cFdyYXBTaXplIHwgc3RyaW5nKSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LndyYXBTaXplID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXG5cdGdldCBpc1JlbmRlcmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuaXNSZW5kZXJlZCA6IGZhbHNlO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuXG4gICAgICB0aGF0Lm9uQ3JlYXRlLmVtaXQodGhhdC5uYXRpdmVFbGVtZW50KTtcblxuXHRcdHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzbWFydC1hbmd1bGFyJyk7XG5cblx0XHRpZiAodGhpcy5uYXRpdmVFbGVtZW50LndoZW5SZW5kZXJlZCkgdGhpcy5uYXRpdmVFbGVtZW50LndoZW5SZW5kZXJlZCgoKSA9PiB7IHRoYXQub25SZWFkeS5lbWl0KHRoYXQubmF0aXZlRWxlbWVudCk7IH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5uYXRpdmVFbGVtZW50LmlzUmVuZGVyZWQpIHtcblx0XHRcdGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xuXHRcdFx0XHRpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcblx0XHRcdFx0XHR0aGlzLm5hdGl2ZUVsZW1lbnRbcHJvcE5hbWVdID0gY2hhbmdlc1twcm9wTmFtZV0uY3VycmVudFZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cbn1cbiJdfQ==