@smart-webcomponents-angular/tooltip 9.2.22 → 13.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/common/i18n.phonenumbers.min.js +501 -0
- package/common/runtime.js +748 -0
- package/demo/angular.json +4 -4
- package/demo/package.json +2 -2
- package/demo/src/tsconfig.app.json +15 -15
- package/demo/src/tsconfig.json +23 -23
- package/esm2020/tooltip/index.mjs +2 -0
- package/{esm2015/tooltip/public_api.js → esm2020/tooltip/public_api.mjs} +0 -0
- package/{esm2015/tooltip/smart-webcomponents-angular-tooltip.js → esm2020/tooltip/smart-webcomponents-angular-tooltip.mjs} +2 -3
- package/esm2020/tooltip/smart.element.mjs +99 -0
- package/esm2020/tooltip/smart.tooltip.mjs +313 -0
- package/esm2020/tooltip/smart.tooltip.module.mjs +18 -0
- package/fesm2015/{smart-webcomponents-angular-tooltip.js → smart-webcomponents-angular-tooltip.mjs} +100 -52
- package/fesm2015/smart-webcomponents-angular-tooltip.mjs.map +1 -0
- package/fesm2020/smart-webcomponents-angular-tooltip.mjs +438 -0
- package/fesm2020/smart-webcomponents-angular-tooltip.mjs.map +1 -0
- package/images/flags.png +0 -0
- package/index.d.ts +3578 -658
- package/package.json +26 -24
- package/source/modules/smart.tooltip.js +1 -1
- package/source/smart.button.js +2 -2
- package/source/smart.element.js +2 -2
- package/source/smart.tooltip.js +2 -2
- package/styles/font/smart-icons.eot +0 -0
- package/styles/font/smart-icons.svg +64 -2
- package/styles/font/smart-icons.ttf +0 -0
- package/styles/font/smart-icons.woff +0 -0
- package/styles/font/smart-icons.woff2 +0 -0
- package/styles/smart.base.css +4 -4
- package/styles/smart.common.css +1 -1
- package/tooltip/index.d.ts +1 -0
- package/tooltip/smart-webcomponents-angular-tooltip.d.ts +2 -2
- package/tooltip/smart.element.d.ts +4 -1
- package/tooltip/smart.tooltip.d.ts +6 -0
- package/tooltip/smart.tooltip.module.d.ts +5 -0
- package/bundles/smart-webcomponents-angular-tooltip.umd.js +0 -816
- package/bundles/smart-webcomponents-angular-tooltip.umd.min.js +0 -25
- package/demo/src/app/app.component.ts +0 -53
- package/demo/src/app/app.module.ts +0 -17
- package/demo/src/app/main.ts +0 -6
- package/demo/src/main.ts +0 -16
- package/demo/src/polyfills.ts +0 -73
- package/esm2015/tooltip/smart.element.js +0 -83
- package/esm2015/tooltip/smart.tooltip.js +0 -284
- package/esm2015/tooltip/smart.tooltip.module.js +0 -13
- package/fesm2015/smart-webcomponents-angular-tooltip.js.map +0 -1
- package/tooltip/smart-webcomponents-angular-tooltip.metadata.json +0 -1
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
if (!window['Smart']) {
|
|
3
|
-
window['Smart'] = { RenderMode: 'manual' };
|
|
4
|
-
}
|
|
5
|
-
else {
|
|
6
|
-
window['Smart'].RenderMode = 'manual';
|
|
7
|
-
}
|
|
8
|
-
import './../source/modules/smart.tooltip';
|
|
9
|
-
|
|
10
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("smart-webcomponents-angular/tooltip",["exports","@angular/core"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["smart-webcomponents-angular"]=e["smart-webcomponents-angular"]||{},e["smart-webcomponents-angular"].tooltip={}),e.ng.core)}(this,(function(e,t){"use strict";
|
|
11
|
-
/*! *****************************************************************************
|
|
12
|
-
Copyright (c) Microsoft Corporation.
|
|
13
|
-
|
|
14
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
15
|
-
purpose with or without fee is hereby granted.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
18
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
19
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
20
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
21
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
22
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
23
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
24
|
-
***************************************************************************** */var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};Object.create;Object.create;var i=function(){function e(e){this.onCreate=new t.EventEmitter,this.onReady=new t.EventEmitter,this.onAttach=new t.EventEmitter,this.onDetach=new t.EventEmitter;var n=this;this.nativeElement=e.nativeElement,n.nativeElement.onAttached=function(){n.onAttach.emit(n.nativeElement)},n.nativeElement.onDetached=function(){n.onDetach.emit(n.nativeElement)}}return e.prototype.addEventListener=function(e,t,n){void 0===n&&(n=!1),this.nativeElement.addEventListener(e,t,n)},e.prototype.removeEventListener=function(e,t,n){void 0===n&&(n=!1),this.nativeElement.removeEventListener(e,t,n)},e.prototype.dispatchEvent=function(e){return this.nativeElement.dispatchEvent(e)},e.prototype.blur=function(){this.nativeElement.blur()},e.prototype.click=function(){this.nativeElement.click()},e.prototype.focus=function(e){this.nativeElement.focus(e)},Object.defineProperty(e.prototype,"locale",{get:function(){return this.nativeElement?this.nativeElement.locale:void 0},set:function(e){this.nativeElement&&(this.nativeElement.locale=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"localizeFormatFunction",{get:function(){return this.nativeElement?this.nativeElement.localizeFormatFunction:void 0},set:function(e){this.nativeElement&&(this.nativeElement.localizeFormatFunction=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"messages",{get:function(){return this.nativeElement?this.nativeElement.messages:void 0},set:function(e){this.nativeElement&&(this.nativeElement.messages=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"rightToLeft",{get:function(){return this.nativeElement?this.nativeElement.rightToLeft:void 0},set:function(e){this.nativeElement&&(this.nativeElement.rightToLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"theme",{get:function(){return this.nativeElement?this.nativeElement.theme:void 0},set:function(e){this.nativeElement&&(this.nativeElement.theme=e)},enumerable:!1,configurable:!0}),e}();i.propDecorators={onCreate:[{type:t.Output}],onReady:[{type:t.Output}],onAttach:[{type:t.Output}],onDetach:[{type:t.Output}],locale:[{type:t.Input}],localizeFormatFunction:[{type:t.Input}],messages:[{type:t.Input}],rightToLeft:[{type:t.Input}],theme:[{type:t.Input}]};var o=window.Smart,r=function(e){function i(n){var i=e.call(this,n)||this;return i.eventHandlers=[],i.onOpen=new t.EventEmitter,i.onOpening=new t.EventEmitter,i.onClose=new t.EventEmitter,i.onClosing=new t.EventEmitter,i.nativeElement=n.nativeElement,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}(i,e),i.prototype.createComponent=function(e){for(var t in void 0===e&&(e={}),this.nativeElement=document.createElement("smart-tooltip"),e)this.nativeElement[t]=e[t];return this.nativeElement},Object.defineProperty(i.prototype,"animation",{get:function(){return this.nativeElement?this.nativeElement.animation:void 0},set:function(e){this.nativeElement&&(this.nativeElement.animation=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"arrow",{get:function(){return this.nativeElement?this.nativeElement.arrow:void 0},set:function(e){this.nativeElement&&(this.nativeElement.arrow=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"arrowDirection",{get:function(){return this.nativeElement?this.nativeElement.arrowDirection:void 0},set:function(e){this.nativeElement&&(this.nativeElement.arrowDirection=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"delay",{get:function(){return this.nativeElement?this.nativeElement.delay:void 0},set:function(e){this.nativeElement&&(this.nativeElement.delay=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"disabled",{get:function(){return this.nativeElement?this.nativeElement.disabled:void 0},set:function(e){this.nativeElement&&(this.nativeElement.disabled=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"offset",{get:function(){return this.nativeElement?this.nativeElement.offset:void 0},set:function(e){this.nativeElement&&(this.nativeElement.offset=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"locale",{get:function(){return this.nativeElement?this.nativeElement.locale:void 0},set:function(e){this.nativeElement&&(this.nativeElement.locale=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"localizeFormatFunction",{get:function(){return this.nativeElement?this.nativeElement.localizeFormatFunction:void 0},set:function(e){this.nativeElement&&(this.nativeElement.localizeFormatFunction=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"messages",{get:function(){return this.nativeElement?this.nativeElement.messages:void 0},set:function(e){this.nativeElement&&(this.nativeElement.messages=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"openMode",{get:function(){return this.nativeElement?this.nativeElement.openMode:void 0},set:function(e){this.nativeElement&&(this.nativeElement.openMode=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"position",{get:function(){return this.nativeElement?this.nativeElement.position:void 0},set:function(e){this.nativeElement&&(this.nativeElement.position=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"selector",{get:function(){return this.nativeElement?this.nativeElement.selector:void 0},set:function(e){this.nativeElement&&(this.nativeElement.selector=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"theme",{get:function(){return this.nativeElement?this.nativeElement.theme:void 0},set:function(e){this.nativeElement&&(this.nativeElement.theme=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"tooltipTemplate",{get:function(){return this.nativeElement?this.nativeElement.tooltipTemplate:void 0},set:function(e){this.nativeElement&&(this.nativeElement.tooltipTemplate=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"unfocusable",{get:function(){return this.nativeElement?this.nativeElement.unfocusable:void 0},set:function(e){this.nativeElement&&(this.nativeElement.unfocusable=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"value",{get:function(){return this.nativeElement?this.nativeElement.value:void 0},set:function(e){this.nativeElement&&(this.nativeElement.value=e)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"visible",{get:function(){return this.nativeElement?this.nativeElement.visible:void 0},set:function(e){this.nativeElement&&(this.nativeElement.visible=e)},enumerable:!1,configurable:!0}),i.prototype.close=function(){var e=this;this.nativeElement.isRendered?this.nativeElement.close():this.nativeElement.whenRendered((function(){e.nativeElement.close()}))},i.prototype.open=function(){var e=this;this.nativeElement.isRendered?this.nativeElement.open():this.nativeElement.whenRendered((function(){e.nativeElement.open()}))},i.prototype.toggle=function(){var e=this;this.nativeElement.isRendered?this.nativeElement.toggle():this.nativeElement.whenRendered((function(){e.nativeElement.toggle()}))},i.prototype.clear=function(){var e=this;this.nativeElement.isRendered?this.nativeElement.clear():this.nativeElement.whenRendered((function(){e.nativeElement.clear()}))},Object.defineProperty(i.prototype,"isRendered",{get:function(){return!!this.nativeElement&&this.nativeElement.isRendered},enumerable:!1,configurable:!0}),i.prototype.ngOnInit=function(){},i.prototype.ngAfterViewInit=function(){var e=this;e.onCreate.emit(e.nativeElement),o.Render(),this.nativeElement.classList.add("smart-angular"),this.nativeElement.whenRendered((function(){e.onReady.emit(e.nativeElement)})),this.listen()},i.prototype.ngOnDestroy=function(){this.unlisten()},i.prototype.ngOnChanges=function(e){if(this.nativeElement&&this.nativeElement.isRendered)for(var t in e)e.hasOwnProperty(t)&&(this.nativeElement[t]=e[t].currentValue)},i.prototype.listen=function(){var e=this;e.eventHandlers.openHandler=function(t){e.onOpen.emit(t)},e.nativeElement.addEventListener("open",e.eventHandlers.openHandler),e.eventHandlers.openingHandler=function(t){e.onOpening.emit(t)},e.nativeElement.addEventListener("opening",e.eventHandlers.openingHandler),e.eventHandlers.closeHandler=function(t){e.onClose.emit(t)},e.nativeElement.addEventListener("close",e.eventHandlers.closeHandler),e.eventHandlers.closingHandler=function(t){e.onClosing.emit(t)},e.nativeElement.addEventListener("closing",e.eventHandlers.closingHandler)},i.prototype.unlisten=function(){var e=this;e.eventHandlers.openHandler&&e.nativeElement.removeEventListener("open",e.eventHandlers.openHandler),e.eventHandlers.openingHandler&&e.nativeElement.removeEventListener("opening",e.eventHandlers.openingHandler),e.eventHandlers.closeHandler&&e.nativeElement.removeEventListener("close",e.eventHandlers.closeHandler),e.eventHandlers.closingHandler&&e.nativeElement.removeEventListener("closing",e.eventHandlers.closingHandler)},i}(i);r.decorators=[{type:t.Directive,args:[{selector:"smart-tooltip, [smart-tooltip]"}]}],r.ctorParameters=function(){return[{type:t.ElementRef}]},r.propDecorators={animation:[{type:t.Input}],arrow:[{type:t.Input}],arrowDirection:[{type:t.Input}],delay:[{type:t.Input}],disabled:[{type:t.Input}],offset:[{type:t.Input}],locale:[{type:t.Input}],localizeFormatFunction:[{type:t.Input}],messages:[{type:t.Input}],openMode:[{type:t.Input}],position:[{type:t.Input}],selector:[{type:t.Input}],theme:[{type:t.Input}],tooltipTemplate:[{type:t.Input}],unfocusable:[{type:t.Input}],value:[{type:t.Input}],visible:[{type:t.Input}],onOpen:[{type:t.Output}],onOpening:[{type:t.Output}],onClose:[{type:t.Output}],onClosing:[{type:t.Output}]};var a=function(){};a.decorators=[{type:t.NgModule,args:[{declarations:[r],schemas:[t.CUSTOM_ELEMENTS_SCHEMA],exports:[r]}]}],e.Smart=o,e.TooltipComponent=r,e.TooltipModule=a,e.ɵa=i,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
25
|
-
//# sourceMappingURL=smart-webcomponents-angular-tooltip.umd.min.js.map
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core';
|
|
2
|
-
import { ButtonComponent } from '@smart-webcomponents-angular/button';
|
|
3
|
-
import { RadioButtonComponent } from '@smart-webcomponents-angular/radiobutton';
|
|
4
|
-
import { TooltipComponent } from '@smart-webcomponents-angular/tooltip';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@Component({
|
|
8
|
-
selector: 'app-root',
|
|
9
|
-
templateUrl: './app.component.html',
|
|
10
|
-
styleUrls: ['./app.component.css']
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
export class AppComponent implements AfterViewInit, OnInit {
|
|
14
|
-
@ViewChild('button', { read: ButtonComponent, static: false }) button: ButtonComponent;
|
|
15
|
-
@ViewChild('radiobutton', { read: RadioButtonComponent, static: false }) radiobutton: RadioButtonComponent;
|
|
16
|
-
@ViewChild('radiobutton2', { read: RadioButtonComponent, static: false }) radiobutton2: RadioButtonComponent;
|
|
17
|
-
@ViewChild('radiobutton3', { read: RadioButtonComponent, static: false }) radiobutton3: RadioButtonComponent;
|
|
18
|
-
@ViewChild('radiobutton4', { read: RadioButtonComponent, static: false }) radiobutton4: RadioButtonComponent;
|
|
19
|
-
@ViewChild('tooltip', { read: TooltipComponent, static: false }) tooltip: TooltipComponent;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
ngOnInit(): void {
|
|
23
|
-
// onInit code.
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
ngAfterViewInit(): void {
|
|
27
|
-
// afterViewInit code.
|
|
28
|
-
this.init();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
init(): void {
|
|
32
|
-
// init code.
|
|
33
|
-
|
|
34
|
-
const that = this,
|
|
35
|
-
tooltip = that.tooltip;
|
|
36
|
-
|
|
37
|
-
that.radiobutton.addEventListener('change', function ():void {
|
|
38
|
-
tooltip.position = 'top';
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
that.radiobutton2.addEventListener('change', function ():void {
|
|
42
|
-
tooltip.position = 'bottom';
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
that.radiobutton3.addEventListener('change', function ():void {
|
|
46
|
-
tooltip.position = 'left';
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
that.radiobutton4.addEventListener('change', function ():void {
|
|
50
|
-
tooltip.position = 'right';
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
3
|
-
|
|
4
|
-
import { ButtonModule } from '@smart-webcomponents-angular/button';
|
|
5
|
-
import { RadioButtonModule } from '@smart-webcomponents-angular/radiobutton';
|
|
6
|
-
import { TooltipModule } from '@smart-webcomponents-angular/tooltip';
|
|
7
|
-
|
|
8
|
-
import { AppComponent } from './app.component';
|
|
9
|
-
|
|
10
|
-
@NgModule({
|
|
11
|
-
declarations: [ AppComponent ],
|
|
12
|
-
imports: [ BrowserModule, ButtonModule, RadioButtonModule, TooltipModule ],
|
|
13
|
-
bootstrap: [ AppComponent ],
|
|
14
|
-
entryComponents: [ AppComponent ]
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
export class AppModule { }
|
package/demo/src/app/main.ts
DELETED
package/demo/src/main.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import './polyfills';
|
|
2
|
-
|
|
3
|
-
import { enableProdMode } from '@angular/core';
|
|
4
|
-
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
5
|
-
|
|
6
|
-
import { AppModule } from './app/app.module';
|
|
7
|
-
|
|
8
|
-
platformBrowserDynamic().bootstrapModule(AppModule).then(ref => {
|
|
9
|
-
// Ensure Angular destroys itself on hot reloads.
|
|
10
|
-
if (window['ngRef']) {
|
|
11
|
-
window['ngRef'].destroy();
|
|
12
|
-
}
|
|
13
|
-
window['ngRef'] = ref;
|
|
14
|
-
|
|
15
|
-
// Otherwise, log the boot error
|
|
16
|
-
}).catch(err => console.error(err));
|
package/demo/src/polyfills.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file includes polyfills needed by Angular and is loaded before the app.
|
|
3
|
-
* You can add your own extra polyfills to this file.
|
|
4
|
-
*
|
|
5
|
-
* This file is divided into 2 sections:
|
|
6
|
-
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
|
|
7
|
-
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
|
|
8
|
-
* file.
|
|
9
|
-
*
|
|
10
|
-
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
|
|
11
|
-
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
|
12
|
-
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
|
|
13
|
-
*
|
|
14
|
-
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/***************************************************************************************************
|
|
18
|
-
* BROWSER POLYFILLS
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
|
|
22
|
-
// import 'core-js/es6/symbol';
|
|
23
|
-
// import 'core-js/es6/object';
|
|
24
|
-
// import 'core-js/es6/function';
|
|
25
|
-
// import 'core-js/es6/parse-int';
|
|
26
|
-
// import 'core-js/es6/parse-float';
|
|
27
|
-
// import 'core-js/es6/number';
|
|
28
|
-
// import 'core-js/es6/math';
|
|
29
|
-
// import 'core-js/es6/string';
|
|
30
|
-
// import 'core-js/es6/date';
|
|
31
|
-
// import 'core-js/es6/array';
|
|
32
|
-
// import 'core-js/es6/regexp';
|
|
33
|
-
// import 'core-js/es6/map';
|
|
34
|
-
// import 'core-js/es6/weak-map';
|
|
35
|
-
// import 'core-js/es6/set';
|
|
36
|
-
|
|
37
|
-
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
|
38
|
-
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
|
39
|
-
|
|
40
|
-
/** Evergreen browsers require these. **/
|
|
41
|
-
//import 'core-js/es6/reflect';
|
|
42
|
-
//import 'core-js/es7/reflect';
|
|
43
|
-
|
|
44
|
-
import 'core-js/es/reflect';
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Required to support Web Animations `@angular/animation`.
|
|
48
|
-
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
|
|
49
|
-
**/
|
|
50
|
-
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/***************************************************************************************************
|
|
55
|
-
* Zone JS is required by Angular itself.
|
|
56
|
-
*/
|
|
57
|
-
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
/***************************************************************************************************
|
|
62
|
-
* APPLICATION IMPORTS
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Date, currency, decimal and percent pipes.
|
|
67
|
-
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
|
|
68
|
-
*/
|
|
69
|
-
// import 'intl'; // Run `npm install --save intl`.
|
|
70
|
-
/**
|
|
71
|
-
* Need to import at least one locale-data with intl.
|
|
72
|
-
*/
|
|
73
|
-
// import 'intl/locale-data/jsonp/en';
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
export class BaseElement {
|
|
3
|
-
constructor(ref) {
|
|
4
|
-
this.onCreate = new EventEmitter();
|
|
5
|
-
this.onReady = new EventEmitter();
|
|
6
|
-
this.onAttach = new EventEmitter();
|
|
7
|
-
this.onDetach = new EventEmitter();
|
|
8
|
-
const that = this;
|
|
9
|
-
this.nativeElement = ref.nativeElement;
|
|
10
|
-
that.nativeElement.onAttached = () => {
|
|
11
|
-
that.onAttach.emit(that.nativeElement);
|
|
12
|
-
};
|
|
13
|
-
that.nativeElement.onDetached = () => {
|
|
14
|
-
that.onDetach.emit(that.nativeElement);
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
addEventListener(type, listener, options = false) {
|
|
18
|
-
this.nativeElement.addEventListener(type, listener, options);
|
|
19
|
-
}
|
|
20
|
-
removeEventListener(type, listener, options = false) {
|
|
21
|
-
this.nativeElement.removeEventListener(type, listener, options);
|
|
22
|
-
}
|
|
23
|
-
dispatchEvent(event) {
|
|
24
|
-
return this.nativeElement.dispatchEvent(event);
|
|
25
|
-
}
|
|
26
|
-
blur() {
|
|
27
|
-
this.nativeElement.blur();
|
|
28
|
-
}
|
|
29
|
-
click() {
|
|
30
|
-
this.nativeElement.click();
|
|
31
|
-
}
|
|
32
|
-
focus(options) {
|
|
33
|
-
this.nativeElement.focus(options);
|
|
34
|
-
}
|
|
35
|
-
/** @description Sets or gets the language. Used in conjunction with the property messages. */
|
|
36
|
-
get locale() {
|
|
37
|
-
return this.nativeElement ? this.nativeElement.locale : undefined;
|
|
38
|
-
}
|
|
39
|
-
set locale(value) {
|
|
40
|
-
this.nativeElement ? this.nativeElement.locale = value : undefined;
|
|
41
|
-
}
|
|
42
|
-
/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */
|
|
43
|
-
get localizeFormatFunction() {
|
|
44
|
-
return this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;
|
|
45
|
-
}
|
|
46
|
-
set localizeFormatFunction(value) {
|
|
47
|
-
this.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;
|
|
48
|
-
}
|
|
49
|
-
/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */
|
|
50
|
-
get messages() {
|
|
51
|
-
return this.nativeElement ? this.nativeElement.messages : undefined;
|
|
52
|
-
}
|
|
53
|
-
set messages(value) {
|
|
54
|
-
this.nativeElement ? this.nativeElement.messages = value : undefined;
|
|
55
|
-
}
|
|
56
|
-
/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */
|
|
57
|
-
get rightToLeft() {
|
|
58
|
-
return this.nativeElement ? this.nativeElement.rightToLeft : undefined;
|
|
59
|
-
}
|
|
60
|
-
set rightToLeft(value) {
|
|
61
|
-
this.nativeElement ? this.nativeElement.rightToLeft = value : undefined;
|
|
62
|
-
}
|
|
63
|
-
/** @description Determines the theme. Theme defines the look of the element */
|
|
64
|
-
get theme() {
|
|
65
|
-
return this.nativeElement ? this.nativeElement.theme : undefined;
|
|
66
|
-
}
|
|
67
|
-
set theme(value) {
|
|
68
|
-
this.nativeElement ? this.nativeElement.theme = value : undefined;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
BaseElement.propDecorators = {
|
|
72
|
-
onCreate: [{ type: Output }],
|
|
73
|
-
onReady: [{ type: Output }],
|
|
74
|
-
onAttach: [{ type: Output }],
|
|
75
|
-
onDetach: [{ type: Output }],
|
|
76
|
-
locale: [{ type: Input }],
|
|
77
|
-
localizeFormatFunction: [{ type: Input }],
|
|
78
|
-
messages: [{ type: Input }],
|
|
79
|
-
rightToLeft: [{ type: Input }],
|
|
80
|
-
theme: [{ type: Input }]
|
|
81
|
-
};
|
|
82
|
-
export const Smart = window.Smart;
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQuZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2x0aXAvc3JjL3NtYXJ0LmVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hFLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQVksR0FBZTtRQWFqQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFmdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQW9CLENBQUM7UUFFOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUE7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFTTSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsUUFBNEMsRUFBRSxVQUE2QyxLQUFLO1FBQ2xJLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sbUJBQW1CLENBQUMsSUFBWSxFQUFFLFFBQTRDLEVBQUUsVUFBNkMsS0FBSztRQUN4SSxJQUFJ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QUFNLEtBQUssR0FBUSxNQUFNLENBQUMsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgICAgIFNtYXJ0OiBhbnk7XG59XG59XG5cblxuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVuZGVyTW9kZSB9IGZyb20gJy4vLi4vaW5kZXgnO1xuXG5leHBvcnQgY2xhc3MgQmFzZUVsZW1lbnQge1xuICAgIGNvbnN0cnVjdG9yKHJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gcmVmLm5hdGl2ZUVsZW1lbnQgYXMgYW55O1xuXG4gICAgICAgIHRoYXQubmF0aXZlRWxlbWVudC5vbkF0dGFjaGVkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhhdC5vbkF0dGFjaC5lbWl0KHRoYXQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGF0Lm5hdGl2ZUVsZW1lbnQub25EZXRhY2hlZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoYXQub25EZXRhY2guZW1pdCh0aGF0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIG9uQ3JlYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uQXR0YWNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25EZXRhY2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIG5hdGl2ZUVsZW1lbnQ6IGFueTtcblxuICAgIHB1YmxpYyBhZGRFdmVudExpc3RlbmVyKHR5cGU6IHN0cmluZywgbGlzdGVuZXI6IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QsIG9wdGlvbnM6IGJvb2xlYW4gfCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTtcblx0fVxuXG5cdHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKHR5cGU6IHN0cmluZywgbGlzdGVuZXI6IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QsIG9wdGlvbnM6IGJvb2xlYW4gfCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IGZhbHNlKTogdm9pZCB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIGRpc3BhdGNoRXZlbnQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcblx0fVxuXG5cdHB1YmxpYyBibHVyKCk6IHZvaWQge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudC5ibHVyKCk7XG5cdH1cblxuXHRwdWJsaWMgY2xpY2soKTogdm9pZCB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cdH1cblxuXHRwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcblx0fVxuXG4vKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyB0aGUgbGFuZ3VhZ2UuIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJvcGVydHkgbWVzc2FnZXMuICAqL1xuXHRASW5wdXQoKVxuXHRnZXQgbG9jYWxlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5sb2NhbGUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGxvY2FsZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmxvY2FsZSA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgZm9ybWF0IG9mIHRoZSBtZXNzYWdlcyB0aGF0IGFyZSByZXR1cm5lZCBmcm9tIHRoZSBMb2NhbGl6YXRpb24gTW9kdWxlLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgbG9jYWxpemVGb3JtYXRGdW5jdGlvbigpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQubG9jYWxpemVGb3JtYXRGdW5jdGlvbiA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgbG9jYWxpemVGb3JtYXRGdW5jdGlvbih2YWx1ZTogYW55KSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmxvY2FsaXplRm9ybWF0RnVuY3Rpb24gPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gU2V0cyBvciBnZXRzIGFuIG9iamVjdCBzcGVjaWZ5aW5nIHN0cmluZ3MgdXNlZCBpbiB0aGUgd2lkZ2V0IHRoYXQgY2FuIGJlIGxvY2FsaXplZC4gVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBwcm9wZXJ0eSBsb2NhbGUuICAqL1xuXHRASW5wdXQoKVxuXHRnZXQgbWVzc2FnZXMoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50Lm1lc3NhZ2VzIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCBtZXNzYWdlcyh2YWx1ZTogYW55KSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50Lm1lc3NhZ2VzID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyB0aGUgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIGFsaWduZWQgdG8gc3VwcG9ydCBsb2NhbGVzIHVzaW5nIHJpZ2h0LXRvLWxlZnQgZm9udHMuICovXG5cdEBJbnB1dCgpXG5cdGdldCByaWdodFRvTGVmdCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnJpZ2h0VG9MZWZ0IDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCByaWdodFRvTGVmdCh2YWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5yaWdodFRvTGVmdCA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIHRoZSB0aGVtZS4gVGhlbWUgZGVmaW5lcyB0aGUgbG9vayBvZiB0aGUgZWxlbWVudCAqL1xuXHRASW5wdXQoKVxuXHRnZXQgdGhlbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnRoZW1lIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCB0aGVtZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnRoZW1lID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IFNtYXJ0OiBhbnkgPSB3aW5kb3cuU21hcnQ7XG5cbiJdfQ==
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { BaseElement, Smart } from './smart.element';
|
|
3
|
-
export { Smart } from './smart.element';
|
|
4
|
-
export class TooltipComponent extends BaseElement {
|
|
5
|
-
constructor(ref) {
|
|
6
|
-
super(ref);
|
|
7
|
-
this.eventHandlers = [];
|
|
8
|
-
/** @description This event is triggered when the tooltip is opened.
|
|
9
|
-
* @param event. The custom event. */
|
|
10
|
-
this.onOpen = new EventEmitter();
|
|
11
|
-
/** @description This event is triggered before the tooltip is opened. The event can be prevented via event.preventDefault().
|
|
12
|
-
* @param event. The custom event. */
|
|
13
|
-
this.onOpening = new EventEmitter();
|
|
14
|
-
/** @description This event is triggered when the tooltip is closed.
|
|
15
|
-
* @param event. The custom event. */
|
|
16
|
-
this.onClose = new EventEmitter();
|
|
17
|
-
/** @description This event is triggered before the tooltip is closed. The event can be prevented via event.preventDefault().
|
|
18
|
-
* @param event. The custom event. */
|
|
19
|
-
this.onClosing = new EventEmitter();
|
|
20
|
-
this.nativeElement = ref.nativeElement;
|
|
21
|
-
}
|
|
22
|
-
/** @description Creates the component on demand.
|
|
23
|
-
* @param properties An optional object of properties, which will be added to the template binded ones.
|
|
24
|
-
*/
|
|
25
|
-
createComponent(properties = {}) {
|
|
26
|
-
this.nativeElement = document.createElement('smart-tooltip');
|
|
27
|
-
for (let propertyName in properties) {
|
|
28
|
-
this.nativeElement[propertyName] = properties[propertyName];
|
|
29
|
-
}
|
|
30
|
-
return this.nativeElement;
|
|
31
|
-
}
|
|
32
|
-
/** @description Sets or gets the animation mode. Animation is disabled when the property is set to 'none' */
|
|
33
|
-
get animation() {
|
|
34
|
-
return this.nativeElement ? this.nativeElement.animation : undefined;
|
|
35
|
-
}
|
|
36
|
-
set animation(value) {
|
|
37
|
-
this.nativeElement ? this.nativeElement.animation = value : undefined;
|
|
38
|
-
}
|
|
39
|
-
/** @description Gets or sets whether a tooltip's arrow will be shown. */
|
|
40
|
-
get arrow() {
|
|
41
|
-
return this.nativeElement ? this.nativeElement.arrow : undefined;
|
|
42
|
-
}
|
|
43
|
-
set arrow(value) {
|
|
44
|
-
this.nativeElement ? this.nativeElement.arrow = value : undefined;
|
|
45
|
-
}
|
|
46
|
-
/** @description Sets the position of the arrow. */
|
|
47
|
-
get arrowDirection() {
|
|
48
|
-
return this.nativeElement ? this.nativeElement.arrowDirection : undefined;
|
|
49
|
-
}
|
|
50
|
-
set arrowDirection(value) {
|
|
51
|
-
this.nativeElement ? this.nativeElement.arrowDirection = value : undefined;
|
|
52
|
-
}
|
|
53
|
-
/** @description Gets or sets whether a tooltip's arrow will be shown. */
|
|
54
|
-
get delay() {
|
|
55
|
-
return this.nativeElement ? this.nativeElement.delay : undefined;
|
|
56
|
-
}
|
|
57
|
-
set delay(value) {
|
|
58
|
-
this.nativeElement ? this.nativeElement.delay = value : undefined;
|
|
59
|
-
}
|
|
60
|
-
/** @description Enables or disables the tooltip. */
|
|
61
|
-
get disabled() {
|
|
62
|
-
return this.nativeElement ? this.nativeElement.disabled : undefined;
|
|
63
|
-
}
|
|
64
|
-
set disabled(value) {
|
|
65
|
-
this.nativeElement ? this.nativeElement.disabled = value : undefined;
|
|
66
|
-
}
|
|
67
|
-
/** @description Sets an offset by X and Y. */
|
|
68
|
-
get offset() {
|
|
69
|
-
return this.nativeElement ? this.nativeElement.offset : undefined;
|
|
70
|
-
}
|
|
71
|
-
set offset(value) {
|
|
72
|
-
this.nativeElement ? this.nativeElement.offset = value : undefined;
|
|
73
|
-
}
|
|
74
|
-
/** @description Sets or gets the language. Used in conjunction with the property messages. */
|
|
75
|
-
get locale() {
|
|
76
|
-
return this.nativeElement ? this.nativeElement.locale : undefined;
|
|
77
|
-
}
|
|
78
|
-
set locale(value) {
|
|
79
|
-
this.nativeElement ? this.nativeElement.locale = value : undefined;
|
|
80
|
-
}
|
|
81
|
-
/** @description Callback, related to localization module. */
|
|
82
|
-
get localizeFormatFunction() {
|
|
83
|
-
return this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;
|
|
84
|
-
}
|
|
85
|
-
set localizeFormatFunction(value) {
|
|
86
|
-
this.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;
|
|
87
|
-
}
|
|
88
|
-
/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property language. */
|
|
89
|
-
get messages() {
|
|
90
|
-
return this.nativeElement ? this.nativeElement.messages : undefined;
|
|
91
|
-
}
|
|
92
|
-
set messages(value) {
|
|
93
|
-
this.nativeElement ? this.nativeElement.messages = value : undefined;
|
|
94
|
-
}
|
|
95
|
-
/** @description Sets or gets the way of triggering the tooltip. */
|
|
96
|
-
get openMode() {
|
|
97
|
-
return this.nativeElement ? this.nativeElement.openMode : undefined;
|
|
98
|
-
}
|
|
99
|
-
set openMode(value) {
|
|
100
|
-
this.nativeElement ? this.nativeElement.openMode = value : undefined;
|
|
101
|
-
}
|
|
102
|
-
/** @description Gets or sets the position of the tooltip. */
|
|
103
|
-
get position() {
|
|
104
|
-
return this.nativeElement ? this.nativeElement.position : undefined;
|
|
105
|
-
}
|
|
106
|
-
set position(value) {
|
|
107
|
-
this.nativeElement ? this.nativeElement.position = value : undefined;
|
|
108
|
-
}
|
|
109
|
-
/** @description Sets the element which triggers the tooltip. */
|
|
110
|
-
get selector() {
|
|
111
|
-
return this.nativeElement ? this.nativeElement.selector : undefined;
|
|
112
|
-
}
|
|
113
|
-
set selector(value) {
|
|
114
|
-
this.nativeElement ? this.nativeElement.selector = value : undefined;
|
|
115
|
-
}
|
|
116
|
-
/** @description Determines the theme. Theme defines the look of the element */
|
|
117
|
-
get theme() {
|
|
118
|
-
return this.nativeElement ? this.nativeElement.theme : undefined;
|
|
119
|
-
}
|
|
120
|
-
set theme(value) {
|
|
121
|
-
this.nativeElement ? this.nativeElement.theme = value : undefined;
|
|
122
|
-
}
|
|
123
|
-
/** @description Sets custom tooltip template. */
|
|
124
|
-
get tooltipTemplate() {
|
|
125
|
-
return this.nativeElement ? this.nativeElement.tooltipTemplate : undefined;
|
|
126
|
-
}
|
|
127
|
-
set tooltipTemplate(value) {
|
|
128
|
-
this.nativeElement ? this.nativeElement.tooltipTemplate = value : undefined;
|
|
129
|
-
}
|
|
130
|
-
/** @description If is set to true, the element cannot be focused. */
|
|
131
|
-
get unfocusable() {
|
|
132
|
-
return this.nativeElement ? this.nativeElement.unfocusable : undefined;
|
|
133
|
-
}
|
|
134
|
-
set unfocusable(value) {
|
|
135
|
-
this.nativeElement ? this.nativeElement.unfocusable = value : undefined;
|
|
136
|
-
}
|
|
137
|
-
/** @description Sets or gets the widget's value. */
|
|
138
|
-
get value() {
|
|
139
|
-
return this.nativeElement ? this.nativeElement.value : undefined;
|
|
140
|
-
}
|
|
141
|
-
set value(value) {
|
|
142
|
-
this.nativeElement ? this.nativeElement.value = value : undefined;
|
|
143
|
-
}
|
|
144
|
-
/** @description Sets or gets the visibility of the tooltip. */
|
|
145
|
-
get visible() {
|
|
146
|
-
return this.nativeElement ? this.nativeElement.visible : undefined;
|
|
147
|
-
}
|
|
148
|
-
set visible(value) {
|
|
149
|
-
this.nativeElement ? this.nativeElement.visible = value : undefined;
|
|
150
|
-
}
|
|
151
|
-
/** @description Closes smart-tooltip.
|
|
152
|
-
*/
|
|
153
|
-
close() {
|
|
154
|
-
if (this.nativeElement.isRendered) {
|
|
155
|
-
this.nativeElement.close();
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
this.nativeElement.whenRendered(() => {
|
|
159
|
-
this.nativeElement.close();
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/** @description Opens smart-tooltip.
|
|
164
|
-
*/
|
|
165
|
-
open() {
|
|
166
|
-
if (this.nativeElement.isRendered) {
|
|
167
|
-
this.nativeElement.open();
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this.nativeElement.whenRendered(() => {
|
|
171
|
-
this.nativeElement.open();
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/** @description Toggles smart-tooltip.
|
|
176
|
-
*/
|
|
177
|
-
toggle() {
|
|
178
|
-
if (this.nativeElement.isRendered) {
|
|
179
|
-
this.nativeElement.toggle();
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
this.nativeElement.whenRendered(() => {
|
|
183
|
-
this.nativeElement.toggle();
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
/** @description Clears the content of the Tooltip.
|
|
188
|
-
*/
|
|
189
|
-
clear() {
|
|
190
|
-
if (this.nativeElement.isRendered) {
|
|
191
|
-
this.nativeElement.clear();
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
this.nativeElement.whenRendered(() => {
|
|
195
|
-
this.nativeElement.clear();
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
get isRendered() {
|
|
200
|
-
return this.nativeElement ? this.nativeElement.isRendered : false;
|
|
201
|
-
}
|
|
202
|
-
ngOnInit() {
|
|
203
|
-
}
|
|
204
|
-
ngAfterViewInit() {
|
|
205
|
-
const that = this;
|
|
206
|
-
that.onCreate.emit(that.nativeElement);
|
|
207
|
-
Smart.Render();
|
|
208
|
-
this.nativeElement.classList.add('smart-angular');
|
|
209
|
-
this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });
|
|
210
|
-
this.listen();
|
|
211
|
-
}
|
|
212
|
-
ngOnDestroy() {
|
|
213
|
-
this.unlisten();
|
|
214
|
-
}
|
|
215
|
-
ngOnChanges(changes) {
|
|
216
|
-
if (this.nativeElement && this.nativeElement.isRendered) {
|
|
217
|
-
for (const propName in changes) {
|
|
218
|
-
if (changes.hasOwnProperty(propName)) {
|
|
219
|
-
this.nativeElement[propName] = changes[propName].currentValue;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/** @description Add event listeners. */
|
|
225
|
-
listen() {
|
|
226
|
-
const that = this;
|
|
227
|
-
that.eventHandlers['openHandler'] = (event) => { that.onOpen.emit(event); };
|
|
228
|
-
that.nativeElement.addEventListener('open', that.eventHandlers['openHandler']);
|
|
229
|
-
that.eventHandlers['openingHandler'] = (event) => { that.onOpening.emit(event); };
|
|
230
|
-
that.nativeElement.addEventListener('opening', that.eventHandlers['openingHandler']);
|
|
231
|
-
that.eventHandlers['closeHandler'] = (event) => { that.onClose.emit(event); };
|
|
232
|
-
that.nativeElement.addEventListener('close', that.eventHandlers['closeHandler']);
|
|
233
|
-
that.eventHandlers['closingHandler'] = (event) => { that.onClosing.emit(event); };
|
|
234
|
-
that.nativeElement.addEventListener('closing', that.eventHandlers['closingHandler']);
|
|
235
|
-
}
|
|
236
|
-
/** @description Remove event listeners. */
|
|
237
|
-
unlisten() {
|
|
238
|
-
const that = this;
|
|
239
|
-
if (that.eventHandlers['openHandler']) {
|
|
240
|
-
that.nativeElement.removeEventListener('open', that.eventHandlers['openHandler']);
|
|
241
|
-
}
|
|
242
|
-
if (that.eventHandlers['openingHandler']) {
|
|
243
|
-
that.nativeElement.removeEventListener('opening', that.eventHandlers['openingHandler']);
|
|
244
|
-
}
|
|
245
|
-
if (that.eventHandlers['closeHandler']) {
|
|
246
|
-
that.nativeElement.removeEventListener('close', that.eventHandlers['closeHandler']);
|
|
247
|
-
}
|
|
248
|
-
if (that.eventHandlers['closingHandler']) {
|
|
249
|
-
that.nativeElement.removeEventListener('closing', that.eventHandlers['closingHandler']);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
TooltipComponent.decorators = [
|
|
254
|
-
{ type: Directive, args: [{
|
|
255
|
-
selector: 'smart-tooltip, [smart-tooltip]'
|
|
256
|
-
},] }
|
|
257
|
-
];
|
|
258
|
-
TooltipComponent.ctorParameters = () => [
|
|
259
|
-
{ type: ElementRef }
|
|
260
|
-
];
|
|
261
|
-
TooltipComponent.propDecorators = {
|
|
262
|
-
animation: [{ type: Input }],
|
|
263
|
-
arrow: [{ type: Input }],
|
|
264
|
-
arrowDirection: [{ type: Input }],
|
|
265
|
-
delay: [{ type: Input }],
|
|
266
|
-
disabled: [{ type: Input }],
|
|
267
|
-
offset: [{ type: Input }],
|
|
268
|
-
locale: [{ type: Input }],
|
|
269
|
-
localizeFormatFunction: [{ type: Input }],
|
|
270
|
-
messages: [{ type: Input }],
|
|
271
|
-
openMode: [{ type: Input }],
|
|
272
|
-
position: [{ type: Input }],
|
|
273
|
-
selector: [{ type: Input }],
|
|
274
|
-
theme: [{ type: Input }],
|
|
275
|
-
tooltipTemplate: [{ type: Input }],
|
|
276
|
-
unfocusable: [{ type: Input }],
|
|
277
|
-
value: [{ type: Input }],
|
|
278
|
-
visible: [{ type: Input }],
|
|
279
|
-
onOpen: [{ type: Output }],
|
|
280
|
-
onOpening: [{ type: Output }],
|
|
281
|
-
onClose: [{ type: Output }],
|
|
282
|
-
onClosing: [{ type: Output }]
|
|
283
|
-
};
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQudG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2x0aXAvc3JjL3NtYXJ0LnRvb2x0aXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFhLFNBQVMsRUFBaUIsVUFBVSxFQUFFLEtBQUssRUFBK0MsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVF4QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUNoRCxZQUFZLEdBQXdCO1FBQ25DLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUlKLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBc0tsQzs4Q0FDc0M7UUFDNUIsV0FBTSxHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpFOzhDQUNzQztRQUM1QixjQUFTLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEU7OENBQ3NDO1FBQzVCLFlBQU8sR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRTs4Q0FDc0M7UUFDNUIsY0FBUyxHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBdkxuRSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxhQUF3QixDQUFDO0lBQ25ELENBQUM7SUFLRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxVQUFVLEdBQUcsRUFBRTtRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFZLFFBQVEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekUsS0FBSyxJQUFJLFlBQVksSUFBSSxVQUFVLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLElBQUks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b250ZW50IjpbImltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuLy4uL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbiwgVG9vbHRpcEFycm93RGlyZWN0aW9uLCBUb29sdGlwT3Blbk1vZGUsIFRvb2x0aXBQb3NpdGlvbiwgRWxlbWVudFJlbmRlck1vZGV9IGZyb20gJy4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnQsIFNtYXJ0IH0gZnJvbSAnLi9zbWFydC5lbGVtZW50JztcbmV4cG9ydCB7IEFuaW1hdGlvbiwgVG9vbHRpcEFycm93RGlyZWN0aW9uLCBUb29sdGlwT3Blbk1vZGUsIFRvb2x0aXBQb3NpdGlvbiwgRWxlbWVudFJlbmRlck1vZGV9IGZyb20gJy4vLi4vaW5kZXgnO1xuZXhwb3J0IHsgU21hcnQgfSBmcm9tICcuL3NtYXJ0LmVsZW1lbnQnO1xuZXhwb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4vLi4vaW5kZXgnO1xuXG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3NtYXJ0LXRvb2x0aXAsIFtzbWFydC10b29sdGlwXSdcbn0pXG5cbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgQmFzZUVsZW1lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblx0Y29uc3RydWN0b3IocmVmOiBFbGVtZW50UmVmPFRvb2x0aXA+KSB7XG5cdFx0c3VwZXIocmVmKTtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPSByZWYubmF0aXZlRWxlbWVudCBhcyBUb29sdGlwO1xuXHR9XG5cblx0cHJpdmF0ZSBldmVudEhhbmRsZXJzOiBhbnlbXSA9IFtdO1xuXG5cdHB1YmxpYyBuYXRpdmVFbGVtZW50OiBUb29sdGlwO1xuXHQvKiogQGRlc2NyaXB0aW9uIENyZWF0ZXMgdGhlIGNvbXBvbmVudCBvbiBkZW1hbmQuXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzIEFuIG9wdGlvbmFsIG9iamVjdCBvZiBwcm9wZXJ0aWVzLCB3aGljaCB3aWxsIGJlIGFkZGVkIHRvIHRoZSB0ZW1wbGF0ZSBiaW5kZWQgb25lcy5cblx0ICovXG5cdHB1YmxpYyBjcmVhdGVDb21wb25lbnQocHJvcGVydGllcyA9IHt9KTogYW55IHtcbiAgICBcdHRoaXMubmF0aXZlRWxlbWVudCA9IDxUb29sdGlwPmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NtYXJ0LXRvb2x0aXAnKTtcblx0XHRmb3IgKGxldCBwcm9wZXJ0eU5hbWUgaW4gcHJvcGVydGllcykgeyBcbiBcdFx0XHR0aGlzLm5hdGl2ZUVsZW1lbnRbcHJvcGVydHlOYW1lXSA9IHByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudDtcblx0fVxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyB0aGUgYW5pbWF0aW9uIG1vZGUuIEFuaW1hdGlvbiBpcyBkaXNhYmxlZCB3aGVuIHRoZSBwcm9wZXJ0eSBpcyBzZXQgdG8gJ25vbmUnICovXG5cdEBJbnB1dCgpXG5cdGdldCBhbmltYXRpb24oKTogQW5pbWF0aW9uIHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmFuaW1hdGlvbiA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgYW5pbWF0aW9uKHZhbHVlOiBBbmltYXRpb24pIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuYW5pbWF0aW9uID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIEdldHMgb3Igc2V0cyB3aGV0aGVyIGEgdG9vbHRpcCdzIGFycm93IHdpbGwgYmUgc2hvd24uICovXG5cdEBJbnB1dCgpXG5cdGdldCBhcnJvdygpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmFycm93IDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCBhcnJvdyh2YWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5hcnJvdyA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBTZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGUgYXJyb3cuICovXG5cdEBJbnB1dCgpXG5cdGdldCBhcnJvd0RpcmVjdGlvbigpOiBUb29sdGlwQXJyb3dEaXJlY3Rpb24ge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuYXJyb3dEaXJlY3Rpb24gOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGFycm93RGlyZWN0aW9uKHZhbHVlOiBUb29sdGlwQXJyb3dEaXJlY3Rpb24pIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuYXJyb3dEaXJlY3Rpb24gPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gR2V0cyBvciBzZXRzIHdoZXRoZXIgYSB0b29sdGlwJ3MgYXJyb3cgd2lsbCBiZSBzaG93bi4gKi9cblx0QElucHV0KClcblx0Z2V0IGRlbGF5KCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5kZWxheSA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgZGVsYXkodmFsdWU6IG51bWJlcikge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5kZWxheSA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gU2V0cyBhbiBvZmZzZXQgYnkgWCBhbmQgWS4gKi9cblx0QElucHV0KClcblx0Z2V0IG9mZnNldCgpOiBudW1iZXJbXSB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5vZmZzZXQgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IG9mZnNldCh2YWx1ZTogbnVtYmVyW10pIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0ID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyB0aGUgbGFuZ3VhZ2UuIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJvcGVydHkgbWVzc2FnZXMuICAqL1xuXHRASW5wdXQoKVxuXHRnZXQgbG9jYWxlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5sb2NhbGUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGxvY2FsZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmxvY2FsZSA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBDYWxsYmFjaywgcmVsYXRlZCB0byBsb2NhbGl6YXRpb24gbW9kdWxlLiAgKi9cblx0QElucHV0KClcblx0Z2V0IGxvY2FsaXplRm9ybWF0RnVuY3Rpb24oKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmxvY2FsaXplRm9ybWF0RnVuY3Rpb24gOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGxvY2FsaXplRm9ybWF0RnVuY3Rpb24odmFsdWU6IGFueSkge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5sb2NhbGl6ZUZvcm1hdEZ1bmN0aW9uID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyBhbiBvYmplY3Qgc3BlY2lmeWluZyBzdHJpbmdzIHVzZWQgaW4gdGhlIHdpZGdldCB0aGF0IGNhbiBiZSBsb2NhbGl6ZWQuIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJvcGVydHkgbGFuZ3VhZ2UuICAqL1xuXHRASW5wdXQoKVxuXHRnZXQgbWVzc2FnZXMoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50Lm1lc3NhZ2VzIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCBtZXNzYWdlcyh2YWx1ZTogYW55KSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50Lm1lc3NhZ2VzID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyB0aGUgd2F5IG9mIHRyaWdnZXJpbmcgdGhlIHRvb2x0aXAuICovXG5cdEBJbnB1dCgpXG5cdGdldCBvcGVuTW9kZSgpOiBUb29sdGlwT3Blbk1vZGUge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQub3Blbk1vZGUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IG9wZW5Nb2RlKHZhbHVlOiBUb29sdGlwT3Blbk1vZGUpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQub3Blbk1vZGUgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gR2V0cyBvciBzZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcC4gKi9cblx0QElucHV0KClcblx0Z2V0IHBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5wb3NpdGlvbiA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgcG9zaXRpb24odmFsdWU6IFRvb2x0aXBQb3NpdGlvbikge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5wb3NpdGlvbiA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBTZXRzIHRoZSBlbGVtZW50IHdoaWNoIHRyaWdnZXJzIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgc2VsZWN0b3IoKTogc3RyaW5nIHwgSFRNTEVsZW1lbnQge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuc2VsZWN0b3IgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IHNlbGVjdG9yKHZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5zZWxlY3RvciA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIHRoZSB0aGVtZS4gVGhlbWUgZGVmaW5lcyB0aGUgbG9vayBvZiB0aGUgZWxlbWVudCAqL1xuXHRASW5wdXQoKVxuXHRnZXQgdGhlbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnRoZW1lIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCB0aGVtZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnRoZW1lID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgY3VzdG9tIHRvb2x0aXAgdGVtcGxhdGUuICovXG5cdEBJbnB1dCgpXG5cdGdldCB0b29sdGlwVGVtcGxhdGUoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnRvb2x0aXBUZW1wbGF0ZSA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgdG9vbHRpcFRlbXBsYXRlKHZhbHVlOiBhbnkpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQudG9vbHRpcFRlbXBsYXRlID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIElmIGlzIHNldCB0byB0cnVlLCB0aGUgZWxlbWVudCBjYW5ub3QgYmUgZm9jdXNlZC4gKi9cblx0QElucHV0KClcblx0Z2V0IHVuZm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQudW5mb2N1c2FibGUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IHVuZm9jdXNhYmxlKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnVuZm9jdXNhYmxlID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyB0aGUgd2lkZ2V0J3MgdmFsdWUuICovXG5cdEBJbnB1dCgpXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gU2V0cyBvciBnZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSB0b29sdGlwLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LnZpc2libGUgOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQudmlzaWJsZSA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB0b29sdGlwIGlzIG9wZW5lZC5cblx0KiAgQHBhcmFtIGV2ZW50LiBUaGUgY3VzdG9tIGV2ZW50LiBcdCovXG5cdEBPdXRwdXQoKSBvbk9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCBiZWZvcmUgdGhlIHRvb2x0aXAgaXMgb3BlbmVkLiBUaGUgZXZlbnQgY2FuIGJlIHByZXZlbnRlZCB2aWEgZXZlbnQucHJldmVudERlZmF1bHQoKS5cblx0KiAgQHBhcmFtIGV2ZW50LiBUaGUgY3VzdG9tIGV2ZW50LiBcdCovXG5cdEBPdXRwdXQoKSBvbk9wZW5pbmc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB0b29sdGlwIGlzIGNsb3NlZC5cblx0KiAgQHBhcmFtIGV2ZW50LiBUaGUgY3VzdG9tIGV2ZW50LiBcdCovXG5cdEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKiBAZGVzY3JpcHRpb24gVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYmVmb3JlIHRoZSB0b29sdGlwIGlzIGNsb3NlZC4gVGhlIGV2ZW50IGNhbiBiZSBwcmV2ZW50ZWQgdmlhIGV2ZW50LnByZXZlbnREZWZhdWx0KCkuXG5cdCogIEBwYXJhbSBldmVudC4gVGhlIGN1c3RvbSBldmVudC4gXHQqL1xuXHRAT3V0cHV0KCkgb25DbG9zaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKiBAZGVzY3JpcHRpb24gQ2xvc2VzIHNtYXJ0LXRvb2x0aXAuICBcblx0Ki9cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQuaXNSZW5kZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQud2hlblJlbmRlcmVkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gT3BlbnMgc21hcnQtdG9vbHRpcC4gIFxuXHQqL1xuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LmlzUmVuZGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQud2hlblJlbmRlcmVkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQub3BlbigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBUb2dnbGVzIHNtYXJ0LXRvb2x0aXAuICBcblx0Ki9cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LmlzUmVuZGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC53aGVuUmVuZGVyZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC50b2dnbGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gQ2xlYXJzIHRoZSBjb250ZW50IG9mIHRoZSBUb29sdGlwLiAgXG5cdCovXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LmlzUmVuZGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LndoZW5SZW5kZXJlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsZWFyKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cdGdldCBpc1JlbmRlcmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQuaXNSZW5kZXJlZCA6IGZhbHNlO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuXG4gICAgICB0aGF0Lm9uQ3JlYXRlLmVtaXQodGhhdC5uYXRpdmVFbGVtZW50KTtcblxuXHRcdFNtYXJ0LlJlbmRlcigpO1xuXG5cdFx0dGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3NtYXJ0LWFuZ3VsYXInKTtcblxuXHRcdHRoaXMubmF0aXZlRWxlbWVudC53aGVuUmVuZGVyZWQoKCkgPT4geyB0aGF0Lm9uUmVhZHkuZW1pdCh0aGF0Lm5hdGl2ZUVsZW1lbnQpOyB9KTtcblx0XHR0aGlzLmxpc3RlbigpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy51bmxpc3RlbigpO1xuXHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5uYXRpdmVFbGVtZW50LmlzUmVuZGVyZWQpIHtcblx0XHRcdGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xuXHRcdFx0XHRpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcblx0XHRcdFx0XHR0aGlzLm5hdGl2ZUVsZW1lbnRbcHJvcE5hbWVdID0gY2hhbmdlc1twcm9wTmFtZV0uY3VycmVudFZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBBZGQgZXZlbnQgbGlzdGVuZXJzLiAqL1xuXHRwcml2YXRlIGxpc3RlbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0dGhhdC5ldmVudEhhbmRsZXJzWydvcGVuSGFuZGxlciddID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4geyB0aGF0Lm9uT3Blbi5lbWl0KGV2ZW50KTsgfVxuXHRcdHRoYXQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgdGhhdC5ldmVudEhhbmRsZXJzWydvcGVuSGFuZGxlciddKTtcblxuXHRcdHRoYXQuZXZlbnRIYW5kbGVyc1snb3BlbmluZ0hhbmRsZXInXSA9IChldmVudDogQ3VzdG9tRXZlbnQpID0+IHsgdGhhdC5vbk9wZW5pbmcuZW1pdChldmVudCk7IH1cblx0XHR0aGF0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignb3BlbmluZycsIHRoYXQuZXZlbnRIYW5kbGVyc1snb3BlbmluZ0hhbmRsZXInXSk7XG5cblx0XHR0aGF0LmV2ZW50SGFuZGxlcnNbJ2Nsb3NlSGFuZGxlciddID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4geyB0aGF0Lm9uQ2xvc2UuZW1pdChldmVudCk7IH1cblx0XHR0aGF0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCB0aGF0LmV2ZW50SGFuZGxlcnNbJ2Nsb3NlSGFuZGxlciddKTtcblxuXHRcdHRoYXQuZXZlbnRIYW5kbGVyc1snY2xvc2luZ0hhbmRsZXInXSA9IChldmVudDogQ3VzdG9tRXZlbnQpID0+IHsgdGhhdC5vbkNsb3NpbmcuZW1pdChldmVudCk7IH1cblx0XHR0aGF0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2luZycsIHRoYXQuZXZlbnRIYW5kbGVyc1snY2xvc2luZ0hhbmRsZXInXSk7XG5cblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGV2ZW50IGxpc3RlbmVycy4gKi9cblx0cHJpdmF0ZSB1bmxpc3RlbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0aWYgKHRoYXQuZXZlbnRIYW5kbGVyc1snb3BlbkhhbmRsZXInXSkge1xuXHRcdFx0dGhhdC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29wZW4nLCB0aGF0LmV2ZW50SGFuZGxlcnNbJ29wZW5IYW5kbGVyJ10pO1xuXHRcdH1cblxuXHRcdGlmICh0aGF0LmV2ZW50SGFuZGxlcnNbJ29wZW5pbmdIYW5kbGVyJ10pIHtcblx0XHRcdHRoYXQubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdvcGVuaW5nJywgdGhhdC5ldmVudEhhbmRsZXJzWydvcGVuaW5nSGFuZGxlciddKTtcblx0XHR9XG5cblx0XHRpZiAodGhhdC5ldmVudEhhbmRsZXJzWydjbG9zZUhhbmRsZXInXSkge1xuXHRcdFx0dGhhdC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgdGhhdC5ldmVudEhhbmRsZXJzWydjbG9zZUhhbmRsZXInXSk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoYXQuZXZlbnRIYW5kbGVyc1snY2xvc2luZ0hhbmRsZXInXSkge1xuXHRcdFx0dGhhdC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Nsb3NpbmcnLCB0aGF0LmV2ZW50SGFuZGxlcnNbJ2Nsb3NpbmdIYW5kbGVyJ10pO1xuXHRcdH1cblxuXHR9XG59XG4iXX0=
|