@smart-webcomponents-angular/phoneinput 10.3.4 → 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.
Files changed (40) hide show
  1. package/README.md +10 -2
  2. package/esm2020/phoneinput/index.mjs +2 -0
  3. package/{esm2015/phoneinput/public_api.js → esm2020/phoneinput/public_api.mjs} +0 -0
  4. package/{esm2015/phoneinput/smart-webcomponents-angular-phoneinput.js → esm2020/phoneinput/smart-webcomponents-angular-phoneinput.mjs} +2 -3
  5. package/esm2020/phoneinput/smart.element.mjs +99 -0
  6. package/esm2020/phoneinput/smart.phoneinput.mjs +443 -0
  7. package/esm2020/phoneinput/smart.phoneinput.module.mjs +18 -0
  8. package/fesm2015/{smart-webcomponents-angular-phoneinput.js → smart-webcomponents-angular-phoneinput.mjs} +88 -51
  9. package/fesm2015/smart-webcomponents-angular-phoneinput.mjs.map +1 -0
  10. package/fesm2020/smart-webcomponents-angular-phoneinput.mjs +568 -0
  11. package/fesm2020/smart-webcomponents-angular-phoneinput.mjs.map +1 -0
  12. package/index.d.ts +369 -44
  13. package/package.json +26 -24
  14. package/phoneinput/index.d.ts +1 -0
  15. package/phoneinput/smart-webcomponents-angular-phoneinput.d.ts +2 -2
  16. package/phoneinput/smart.element.d.ts +4 -1
  17. package/phoneinput/smart.phoneinput.d.ts +4 -1
  18. package/phoneinput/smart.phoneinput.module.d.ts +5 -0
  19. package/source/modules/smart.input.js +1 -1
  20. package/source/modules/smart.phoneinput.js +1 -1
  21. package/source/smart.button.js +2 -2
  22. package/source/smart.countryinput.js +1 -1
  23. package/source/smart.element.js +2 -2
  24. package/source/smart.input.js +2 -2
  25. package/source/smart.phoneinput.js +2 -2
  26. package/source/smart.scrollbar.js +1 -1
  27. package/styles/font/smart-icons.eot +0 -0
  28. package/styles/font/smart-icons.svg +11 -3
  29. package/styles/font/smart-icons.ttf +0 -0
  30. package/styles/font/smart-icons.woff +0 -0
  31. package/styles/font/smart-icons.woff2 +0 -0
  32. package/styles/smart.base.css +2 -2
  33. package/styles/smart.phoneinput.css +2 -2
  34. package/bundles/smart-webcomponents-angular-phoneinput.umd.js +0 -1001
  35. package/bundles/smart-webcomponents-angular-phoneinput.umd.min.js +0 -25
  36. package/esm2015/phoneinput/smart.element.js +0 -83
  37. package/esm2015/phoneinput/smart.phoneinput.js +0 -434
  38. package/esm2015/phoneinput/smart.phoneinput.module.js +0 -13
  39. package/fesm2015/smart-webcomponents-angular-phoneinput.js.map +0 -1
  40. package/phoneinput/smart-webcomponents-angular-phoneinput.metadata.json +0 -1
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
  Smart.PhoneInput represents a feature-complete, responsive and touch friendly Angular PhoneInput component.
3
3
  > This is a commercial product and requires a paid license for use. You can purchase a license at https://www.jqwidgets.com/license/ or start a free 30-day trial.
4
4
  >
5
+ ## Angular 13 support
6
+
7
+ The Smart UI for Angular components are packaged using the latest Angular Package Format guidelines.
8
+
5
9
  ## Resources
6
10
  * [Getting Started](https://www.htmlelements.com/docs/angular-cli/)
7
11
  * [View Online Demos](https://www.htmlelements.com/angular/)
@@ -34,8 +38,12 @@ npm install @smart-webcomponents-angular/phoneinput
34
38
  The CSS files are available in ../node_modules/@smart-webcomponents-angular/phoneinput/styles/ folder.
35
39
  ```javascript
36
40
  "styles": [
37
- "node_modules/@smart-webcomponents-angular/phoneinput/styles/smart.phoneinput.css"
41
+ "node_modules/@smart-webcomponents-angular/phoneinput/styles/smart.base.css",
42
+ "node_modules/@smart-webcomponents-angular/phoneinput/styles/smart.phoneinput.css",
43
+ "node_modules/@smart-webcomponents-angular/phoneinput/styles/smart.common.css"
38
44
  ]
45
+
46
+ If you use more than one Smart UI component in your application, firstly add 'smart.base.css', then your components css files like 'smart.grid.css', 'smart.scheduler.css' and finally 'smart.common.css'.
39
47
  ```
40
48
  * Add the Component Module in your application
41
49
 
@@ -62,5 +70,5 @@ export class AppModule { }
62
70
  Check the license detail [here](https://jqwidgets.com/license/).
63
71
  ## Release Notes
64
72
  Check the release notes [here](https://www.htmlelements.com/docs/release-notes/)
65
- © Copyright 2021 jQWidgets, Ltd. All Rights Reserved.
73
+ © Copyright 2022 jQWidgets, Ltd. All Rights Reserved.
66
74
 
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9waG9uZWlucHV0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7Il19
@@ -10,6 +10,5 @@ import './../../source/modules/smart.phoneinput';
10
10
  /**
11
11
  * Generated bundle index. Do not edit.
12
12
  */
13
- export * from './public_api';
14
- export { BaseElement as ɵa } from './smart.element';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtd2ViY29tcG9uZW50cy1hbmd1bGFyLXBob25laW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9waG9uZWlucHV0L3NyYy9zbWFydC13ZWJjb21wb25lbnRzLWFuZ3VsYXItcGhvbmVpbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7QmFzZUVsZW1lbnQgYXMgybVhfSBmcm9tICcuL3NtYXJ0LmVsZW1lbnQnOyJdfQ==
13
+ export * from './index';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtd2ViY29tcG9uZW50cy1hbmd1bGFyLXBob25laW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9waG9uZWlucHV0L3NyYy9zbWFydC13ZWJjb21wb25lbnRzLWFuZ3VsYXItcGhvbmVpbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BaseElement {
4
+ constructor(ref) {
5
+ this.onCreate = new EventEmitter();
6
+ this.onReady = new EventEmitter();
7
+ this.onAttach = new EventEmitter();
8
+ this.onDetach = new EventEmitter();
9
+ const that = this;
10
+ this.nativeElement = ref.nativeElement;
11
+ that.nativeElement.onAttached = () => {
12
+ that.onAttach.emit(that.nativeElement);
13
+ };
14
+ that.nativeElement.onDetached = () => {
15
+ that.onDetach.emit(that.nativeElement);
16
+ };
17
+ }
18
+ addEventListener(type, listener, options = false) {
19
+ this.nativeElement.addEventListener(type, listener, options);
20
+ }
21
+ removeEventListener(type, listener, options = false) {
22
+ this.nativeElement.removeEventListener(type, listener, options);
23
+ }
24
+ dispatchEvent(event) {
25
+ return this.nativeElement.dispatchEvent(event);
26
+ }
27
+ blur() {
28
+ this.nativeElement.blur();
29
+ }
30
+ click() {
31
+ this.nativeElement.click();
32
+ }
33
+ focus(options) {
34
+ this.nativeElement.focus(options);
35
+ }
36
+ /** @description Sets or gets the language. Used in conjunction with the property messages. */
37
+ get locale() {
38
+ return this.nativeElement ? this.nativeElement.locale : undefined;
39
+ }
40
+ set locale(value) {
41
+ this.nativeElement ? this.nativeElement.locale = value : undefined;
42
+ }
43
+ /** @description Callback used to customize the format of the messages that are returned from the Localization Module. */
44
+ get localizeFormatFunction() {
45
+ return this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;
46
+ }
47
+ set localizeFormatFunction(value) {
48
+ this.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;
49
+ }
50
+ /** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */
51
+ get messages() {
52
+ return this.nativeElement ? this.nativeElement.messages : undefined;
53
+ }
54
+ set messages(value) {
55
+ this.nativeElement ? this.nativeElement.messages = value : undefined;
56
+ }
57
+ /** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */
58
+ get rightToLeft() {
59
+ return this.nativeElement ? this.nativeElement.rightToLeft : undefined;
60
+ }
61
+ set rightToLeft(value) {
62
+ this.nativeElement ? this.nativeElement.rightToLeft = value : undefined;
63
+ }
64
+ /** @description Determines the theme. Theme defines the look of the element */
65
+ get theme() {
66
+ return this.nativeElement ? this.nativeElement.theme : undefined;
67
+ }
68
+ set theme(value) {
69
+ this.nativeElement ? this.nativeElement.theme = value : undefined;
70
+ }
71
+ }
72
+ BaseElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BaseElement, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
73
+ BaseElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BaseElement, selector: "ng-component", inputs: { locale: "locale", localizeFormatFunction: "localizeFormatFunction", messages: "messages", rightToLeft: "rightToLeft", theme: "theme" }, outputs: { onCreate: "onCreate", onReady: "onReady", onAttach: "onAttach", onDetach: "onDetach" }, ngImport: i0, template: '', isInline: true });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BaseElement, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ template: ''
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onCreate: [{
80
+ type: Output
81
+ }], onReady: [{
82
+ type: Output
83
+ }], onAttach: [{
84
+ type: Output
85
+ }], onDetach: [{
86
+ type: Output
87
+ }], locale: [{
88
+ type: Input
89
+ }], localizeFormatFunction: [{
90
+ type: Input
91
+ }], messages: [{
92
+ type: Input
93
+ }], rightToLeft: [{
94
+ type: Input
95
+ }], theme: [{
96
+ type: Input
97
+ }] } });
98
+ export const Smart = window.Smart;
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQuZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Bob25laW5wdXQvc3JjL3NtYXJ0LmVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNbkYsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBWSxHQUFlO1FBYWpCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWZ2RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsYUFBb0IsQ0FBQztRQUU5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQTtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQVNNLGdCQUFnQixDQUFDLElBQVksRUFBRSxRQUE0QyxFQUFFLFVBQTZDLEtBQUs7UUFDbEksSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsUUFBNEMsRUFBRSxVQUE2QyxL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akIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkE4Qk4sTUFBTTtzQkFEVCxLQUFLO2dCQVVGLHNCQUFzQjtzQkFEekIsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsV0FBVztzQkFEZCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSzs7QUFTUCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQVEsTUFBTSxDQUFDLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBTbWFydDogYW55O1xufVxufVxuXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVuZGVyTW9kZSB9IGZyb20gJy4vLi4vaW5kZXgnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcihyZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHJlZi5uYXRpdmVFbGVtZW50IGFzIGFueTtcblxuICAgICAgICB0aGF0Lm5hdGl2ZUVsZW1lbnQub25BdHRhY2hlZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoYXQub25BdHRhY2guZW1pdCh0aGF0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhhdC5uYXRpdmVFbGVtZW50Lm9uRGV0YWNoZWQgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGF0Lm9uRGV0YWNoLmVtaXQodGhhdC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBPdXRwdXQoKSBvbkNyZWF0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uUmVhZHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbkF0dGFjaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uRGV0YWNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBuYXRpdmVFbGVtZW50OiBhbnk7XG5cbiAgICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcih0eXBlOiBzdHJpbmcsIGxpc3RlbmVyOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zOiBib29sZWFuIHwgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7XG5cdH1cblxuXHRwdWJsaWMgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlOiBzdHJpbmcsIGxpc3RlbmVyOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zOiBib29sZWFuIHwgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSBmYWxzZSk6IHZvaWQge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTtcblx0fVxuXG5cdHB1YmxpYyBkaXNwYXRjaEV2ZW50KGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG5cdH1cblxuXHRwdWJsaWMgYmx1cigpOiB2b2lkIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuXHR9XG5cblx0cHVibGljIGNsaWNrKCk6IHZvaWQge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXHR9XG5cblx0cHVibGljIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG5cdH1cblxuLyoqIEBkZXNjcmlwdGlvbiBTZXRzIG9yIGdldHMgdGhlIGxhbmd1YWdlLiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHByb3BlcnR5IG1lc3NhZ2VzLiAgKi9cblx0QElucHV0KClcblx0Z2V0IGxvY2FsZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQubG9jYWxlIDogdW5kZWZpbmVkO1xuXHR9XG5cdHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5sb2NhbGUgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gQ2FsbGJhY2sgdXNlZCB0byBjdXN0b21pemUgdGhlIGZvcm1hdCBvZiB0aGUgbWVzc2FnZXMgdGhhdCBhcmUgcmV0dXJuZWQgZnJvbSB0aGUgTG9jYWxpemF0aW9uIE1vZHVsZS4gKi9cblx0QElucHV0KClcblx0Z2V0IGxvY2FsaXplRm9ybWF0RnVuY3Rpb24oKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50ID8gdGhpcy5uYXRpdmVFbGVtZW50LmxvY2FsaXplRm9ybWF0RnVuY3Rpb24gOiB1bmRlZmluZWQ7XG5cdH1cblx0c2V0IGxvY2FsaXplRm9ybWF0RnVuY3Rpb24odmFsdWU6IGFueSkge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5sb2NhbGl6ZUZvcm1hdEZ1bmN0aW9uID0gdmFsdWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKiogQGRlc2NyaXB0aW9uIFNldHMgb3IgZ2V0cyBhbiBvYmplY3Qgc3BlY2lmeWluZyBzdHJpbmdzIHVzZWQgaW4gdGhlIHdpZGdldCB0aGF0IGNhbiBiZSBsb2NhbGl6ZWQuIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJvcGVydHkgbG9jYWxlLiAgKi9cblx0QElucHV0KClcblx0Z2V0IG1lc3NhZ2VzKCk6IGFueSB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5tZXNzYWdlcyA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgbWVzc2FnZXModmFsdWU6IGFueSkge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5tZXNzYWdlcyA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqIEBkZXNjcmlwdGlvbiBTZXRzIG9yIGdldHMgdGhlIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgZWxlbWVudCBpcyBhbGlnbmVkIHRvIHN1cHBvcnQgbG9jYWxlcyB1c2luZyByaWdodC10by1sZWZ0IGZvbnRzLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgcmlnaHRUb0xlZnQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC5yaWdodFRvTGVmdCA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgcmlnaHRUb0xlZnQodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLm5hdGl2ZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUVsZW1lbnQucmlnaHRUb0xlZnQgPSB2YWx1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKiBAZGVzY3JpcHRpb24gRGV0ZXJtaW5lcyB0aGUgdGhlbWUuIFRoZW1lIGRlZmluZXMgdGhlIGxvb2sgb2YgdGhlIGVsZW1lbnQgKi9cblx0QElucHV0KClcblx0Z2V0IHRoZW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC50aGVtZSA6IHVuZGVmaW5lZDtcblx0fVxuXHRzZXQgdGhlbWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMubmF0aXZlRWxlbWVudCA/IHRoaXMubmF0aXZlRWxlbWVudC50aGVtZSA9IHZhbHVlIDogdW5kZWZpbmVkO1xuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBTbWFydDogYW55ID0gd2luZG93LlNtYXJ0O1xuXG4iXX0=