ngx-dropdown-list 1.1.2 → 1.2.0

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 (66) hide show
  1. package/README.md +2 -2
  2. package/esm2020/ngx-dropdown-list.mjs +5 -0
  3. package/esm2020/public_api.mjs +2 -0
  4. package/esm2020/src/ngx-dropdown-list/anchor/anchor.component.mjs +149 -0
  5. package/esm2020/src/ngx-dropdown-list/dropdown/dropdown.component.mjs +252 -0
  6. package/esm2020/src/ngx-dropdown-list/dropdown-list.component.mjs +233 -0
  7. package/esm2020/src/ngx-dropdown-list/dropdown-list.module.mjs +38 -0
  8. package/esm2020/src/ngx-dropdown-list/filter/input-filter.component.mjs +44 -0
  9. package/esm2020/src/ngx-dropdown-list/group-item/group-item.component.mjs +25 -0
  10. package/esm2020/src/ngx-dropdown-list/index.mjs +3 -0
  11. package/esm2020/src/ngx-dropdown-list/item/item.component.mjs +77 -0
  12. package/esm2020/src/ngx-dropdown-list/types/index.mjs +3 -0
  13. package/esm2020/src/ngx-dropdown-list/types/selection-group-items.types.mjs +2 -0
  14. package/esm2020/src/ngx-dropdown-list/types/selection-item.types.mjs +2 -0
  15. package/esm2020/src/ngx-dropdown-list/utils/util.mjs +59 -0
  16. package/fesm2015/ngx-dropdown-list.mjs +854 -0
  17. package/fesm2015/ngx-dropdown-list.mjs.map +1 -0
  18. package/fesm2020/ngx-dropdown-list.mjs +854 -0
  19. package/fesm2020/ngx-dropdown-list.mjs.map +1 -0
  20. package/ngx-dropdown-list.d.ts +1 -5
  21. package/package.json +26 -48
  22. package/src/ngx-dropdown-list/anchor/anchor.component.d.ts +6 -3
  23. package/src/ngx-dropdown-list/dropdown/dropdown.component.d.ts +5 -2
  24. package/src/ngx-dropdown-list/dropdown-list.component.d.ts +7 -4
  25. package/src/ngx-dropdown-list/dropdown-list.module.d.ts +12 -0
  26. package/src/ngx-dropdown-list/filter/input-filter.component.d.ts +3 -0
  27. package/src/ngx-dropdown-list/group-item/group-item.component.d.ts +3 -0
  28. package/src/ngx-dropdown-list/item/item.component.d.ts +3 -0
  29. package/bundles/ngx-dropdown-list.umd.js +0 -1212
  30. package/bundles/ngx-dropdown-list.umd.js.map +0 -1
  31. package/bundles/ngx-dropdown-list.umd.min.js +0 -2
  32. package/bundles/ngx-dropdown-list.umd.min.js.map +0 -1
  33. package/esm2015/ngx-dropdown-list.js +0 -14
  34. package/esm2015/public_api.js +0 -6
  35. package/esm2015/src/ngx-dropdown-list/anchor/anchor.component.js +0 -226
  36. package/esm2015/src/ngx-dropdown-list/dropdown/dropdown.component.js +0 -351
  37. package/esm2015/src/ngx-dropdown-list/dropdown-list.component.js +0 -290
  38. package/esm2015/src/ngx-dropdown-list/dropdown-list.module.js +0 -32
  39. package/esm2015/src/ngx-dropdown-list/filter/input-filter.component.js +0 -64
  40. package/esm2015/src/ngx-dropdown-list/group-item/group-item.component.js +0 -37
  41. package/esm2015/src/ngx-dropdown-list/index.js +0 -7
  42. package/esm2015/src/ngx-dropdown-list/item/item.component.js +0 -104
  43. package/esm2015/src/ngx-dropdown-list/types/index.js +0 -7
  44. package/esm2015/src/ngx-dropdown-list/types/selection-group-items.types.js +0 -16
  45. package/esm2015/src/ngx-dropdown-list/types/selection-item.types.js +0 -20
  46. package/esm2015/src/ngx-dropdown-list/utils/util.js +0 -101
  47. package/esm5/ngx-dropdown-list.js +0 -14
  48. package/esm5/public_api.js +0 -6
  49. package/esm5/src/ngx-dropdown-list/anchor/anchor.component.js +0 -272
  50. package/esm5/src/ngx-dropdown-list/dropdown/dropdown.component.js +0 -420
  51. package/esm5/src/ngx-dropdown-list/dropdown-list.component.js +0 -361
  52. package/esm5/src/ngx-dropdown-list/dropdown-list.module.js +0 -36
  53. package/esm5/src/ngx-dropdown-list/filter/input-filter.component.js +0 -79
  54. package/esm5/src/ngx-dropdown-list/group-item/group-item.component.js +0 -47
  55. package/esm5/src/ngx-dropdown-list/index.js +0 -7
  56. package/esm5/src/ngx-dropdown-list/item/item.component.js +0 -120
  57. package/esm5/src/ngx-dropdown-list/types/index.js +0 -7
  58. package/esm5/src/ngx-dropdown-list/types/selection-group-items.types.js +0 -16
  59. package/esm5/src/ngx-dropdown-list/types/selection-item.types.js +0 -20
  60. package/esm5/src/ngx-dropdown-list/utils/util.js +0 -124
  61. package/fesm2015/ngx-dropdown-list.js +0 -930
  62. package/fesm2015/ngx-dropdown-list.js.map +0 -1
  63. package/fesm5/ngx-dropdown-list.js +0 -1177
  64. package/fesm5/ngx-dropdown-list.js.map +0 -1
  65. package/ngx-dropdown-list-1.1.2.tgz +0 -0
  66. package/ngx-dropdown-list.metadata.json +0 -1
@@ -1,101 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * check whether the provided items contains group
7
- * @param {?} items
8
- * @return {?}
9
- */
10
- export function hasGroup(items) {
11
- return items ? (items.find((/**
12
- * @param {?} item
13
- * @return {?}
14
- */
15
- item => item.group)) != null) : false;
16
- }
17
- /**
18
- * clear all selections from the provide items.
19
- * @param {?} items the dropdown items, can be group or item
20
- * @return {?}
21
- */
22
- export function clearAllSelection(items) {
23
- if (hasGroup(items)) {
24
- for (const groupItem of items) {
25
- if (groupItem.items) {
26
- groupItem.items.filter((/**
27
- * @param {?} item
28
- * @return {?}
29
- */
30
- item => item.selected)).forEach((/**
31
- * @param {?} item
32
- * @return {?}
33
- */
34
- item => item.selected = false));
35
- }
36
- }
37
- }
38
- else {
39
- // clear the selection of previous selected item
40
- items.filter((/**
41
- * @param {?} item
42
- * @return {?}
43
- */
44
- item => item.selected)).forEach((/**
45
- * @param {?} item
46
- * @return {?}
47
- */
48
- item => item.selected = false));
49
- }
50
- }
51
- /**
52
- * stop all propagation and default actions
53
- * @param {?} event
54
- * @return {?}
55
- */
56
- export function stopPropagationAndDefault(event) {
57
- event.stopImmediatePropagation();
58
- event.stopPropagation();
59
- event.preventDefault();
60
- }
61
- /**
62
- * check whether the provided value is number of not
63
- * @param {?} value
64
- * @return {?}
65
- */
66
- export function isNumber(value) {
67
- return !(value == null || isNaN(value) || value.length === 0);
68
- }
69
- /**
70
- * get the selected item from the items list (including item and group)
71
- * @param {?} items
72
- * @return {?}
73
- */
74
- export function getFirstSelectedItem(items) {
75
- if (!items) {
76
- return undefined;
77
- }
78
- /** @type {?} */
79
- let selectedItem;
80
- if (hasGroup(items)) {
81
- for (const item of items) {
82
- selectedItem = item.items ? item.items.find((/**
83
- * @param {?} subItem
84
- * @return {?}
85
- */
86
- subItem => subItem.selected)) : undefined;
87
- if (selectedItem) {
88
- break;
89
- }
90
- }
91
- }
92
- else {
93
- selectedItem = items ? items.find((/**
94
- * @param {?} item
95
- * @return {?}
96
- */
97
- item => item.selected)) : undefined;
98
- }
99
- return selectedItem;
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcm9wZG93bi1saXN0LyIsInNvdXJjZXMiOlsic3JjL25neC1kcm9wZG93bi1saXN0L3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLO0lBQzVCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJOzs7O0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRSxDQUFDOzs7Ozs7QUFNRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBVTtJQUMxQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNuQixLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssRUFBRTtZQUM3QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTs7OztnQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQyxPQUFPOzs7O2dCQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLEVBQUMsQ0FBQzthQUN0RjtTQUNGO0tBQ0Y7U0FBTTtRQUNMLGdEQUFnRDtRQUNoRCxLQUFLLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLE9BQU87Ozs7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFDLENBQUM7S0FDNUU7QUFDSCxDQUFDOzs7Ozs7QUFLRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0FBQ3pCLENBQUM7Ozs7OztBQUtELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7Ozs7OztBQUtELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFVO0lBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNsQjs7UUFDRyxZQUFZO0lBQ2hCLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ25CLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3hCLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7Ozs7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3JGLElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNO2FBQ1A7U0FDRjtLQUNGO1NBQU07UUFDTCxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDdEU7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIGNoZWNrIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGl0ZW1zIGNvbnRhaW5zIGdyb3VwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzR3JvdXAoaXRlbXMpOiBib29sZWFuIHtcclxuICByZXR1cm4gaXRlbXMgPyAoaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uZ3JvdXApICE9IG51bGwpIDogZmFsc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBjbGVhciBhbGwgc2VsZWN0aW9ucyBmcm9tIHRoZSBwcm92aWRlIGl0ZW1zLlxyXG4gKiBAcGFyYW0gaXRlbXMgdGhlIGRyb3Bkb3duIGl0ZW1zLCBjYW4gYmUgZ3JvdXAgb3IgaXRlbVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQWxsU2VsZWN0aW9uKGl0ZW1zOiBhbnkpOiB2b2lkIHtcclxuICBpZiAoaGFzR3JvdXAoaXRlbXMpKSB7XHJcbiAgICBmb3IgKGNvbnN0IGdyb3VwSXRlbSBvZiBpdGVtcykge1xyXG4gICAgICBpZiAoZ3JvdXBJdGVtLml0ZW1zKSB7XHJcbiAgICAgICAgZ3JvdXBJdGVtLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIGNsZWFyIHRoZSBzZWxlY3Rpb24gb2YgcHJldmlvdXMgc2VsZWN0ZWQgaXRlbVxyXG4gICAgaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCkuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogc3RvcCBhbGwgcHJvcGFnYXRpb24gYW5kIGRlZmF1bHQgYWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BQcm9wYWdhdGlvbkFuZERlZmF1bHQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGNoZWNrIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIG51bWJlciBvZiBub3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICEodmFsdWUgPT0gbnVsbCB8fCBpc05hTih2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoID09PSAwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGdldCB0aGUgc2VsZWN0ZWQgaXRlbSBmcm9tIHRoZSBpdGVtcyBsaXN0IChpbmNsdWRpbmcgaXRlbSBhbmQgZ3JvdXApXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RTZWxlY3RlZEl0ZW0oaXRlbXM6IGFueSk6IGFueSB7XHJcbiAgaWYgKCFpdGVtcykge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcbiAgbGV0IHNlbGVjdGVkSXRlbTtcclxuICBpZiAoaGFzR3JvdXAoaXRlbXMpKSB7XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgc2VsZWN0ZWRJdGVtID0gaXRlbS5pdGVtcyA/IGl0ZW0uaXRlbXMuZmluZChzdWJJdGVtID0+IHN1Ykl0ZW0uc2VsZWN0ZWQpIDogdW5kZWZpbmVkO1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgc2VsZWN0ZWRJdGVtID0gaXRlbXMgPyBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIHJldHVybiBzZWxlY3RlZEl0ZW07XHJcbn1cclxuIl19
@@ -1,14 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export { DropdownListComponent, DropdownListModule } from './public_api';
9
- export { AnchorComponent as ɵd } from './src/ngx-dropdown-list/anchor/anchor.component';
10
- export { DropdownComponent as ɵe } from './src/ngx-dropdown-list/dropdown/dropdown.component';
11
- export { InputFilterComponent as ɵc } from './src/ngx-dropdown-list/filter/input-filter.component';
12
- export { GroupItemComponent as ɵb } from './src/ngx-dropdown-list/group-item/group-item.component';
13
- export { ItemComponent as ɵa } from './src/ngx-dropdown-list/item/item.component';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRyb3Bkb3duLWxpc3QuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZHJvcGRvd24tbGlzdC8iLCJzb3VyY2VzIjpbIm5neC1kcm9wZG93bi1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwREFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0FuY2hvckNvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vc3JjL25neC1kcm9wZG93bi1saXN0L2FuY2hvci9hbmNob3IuY29tcG9uZW50JztcbmV4cG9ydCB7RHJvcGRvd25Db21wb25lbnQgYXMgybVlfSBmcm9tICcuL3NyYy9uZ3gtZHJvcGRvd24tbGlzdC9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0IHtJbnB1dEZpbHRlckNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vc3JjL25neC1kcm9wZG93bi1saXN0L2ZpbHRlci9pbnB1dC1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7R3JvdXBJdGVtQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9zcmMvbmd4LWRyb3Bkb3duLWxpc3QvZ3JvdXAtaXRlbS9ncm91cC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0l0ZW1Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL3NyYy9uZ3gtZHJvcGRvd24tbGlzdC9pdGVtL2l0ZW0uY29tcG9uZW50JzsiXX0=
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- export { DropdownListComponent, DropdownListModule } from './src/ngx-dropdown-list/index';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcm9wZG93bi1saXN0LyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMERBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9uZ3gtZHJvcGRvd24tbGlzdC9pbmRleCc7XHJcbiJdfQ==
@@ -1,272 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
6
- import { stopPropagationAndDefault, isNumber } from '../utils/util';
7
- import { DecimalPipe } from '@angular/common';
8
- var AnchorComponent = /** @class */ (function () {
9
- function AnchorComponent(_decimalPipe) {
10
- this._decimalPipe = _decimalPipe;
11
- /**
12
- * bind to [checkbox] for checking whether the clearance flag should be shown or not.
13
- */
14
- this.checkbox = false;
15
- /**
16
- * bind to [allowClear] for enabling the clearance (clearance is not avaiable when checkbox is enabled)
17
- */
18
- this.allowClear = true;
19
- /**
20
- * bind to [openStatus], it's the visibility status of dropdown, for showing the arrow on anchor
21
- */
22
- this.openStatus = false;
23
- /**
24
- * bind to [disabled] for disabling the anchor
25
- */
26
- this.disabled = false;
27
- /**
28
- * will be triggered when clicking the anchor
29
- */
30
- this.anchorClick = new EventEmitter();
31
- /**
32
- * will be triggered when clicking the clearance
33
- */
34
- this.clearanceClick = new EventEmitter();
35
- }
36
- Object.defineProperty(AnchorComponent.prototype, "showClearanceFlag", {
37
- /**
38
- * flag for showing the clearance flag
39
- */
40
- get: /**
41
- * flag for showing the clearance flag
42
- * @return {?}
43
- */
44
- function () {
45
- return !this.checkbox && this.selectedText && this.allowClear;
46
- },
47
- enumerable: true,
48
- configurable: true
49
- });
50
- Object.defineProperty(AnchorComponent.prototype, "anchorDisplayText", {
51
- /**
52
- * the text displays on anchor
53
- */
54
- get: /**
55
- * the text displays on anchor
56
- * @return {?}
57
- */
58
- function () {
59
- /** @type {?} */
60
- var anchorDisplayText = this.selectedText ? (this.formatNumber ? (isNumber(this.selectedText) ?
61
- this._decimalPipe.transform(this.selectedText, '1.0-2') : this.selectedText) :
62
- this.selectedText) + (this.suffixText ? this.suffixText : '') : this.placeHolder;
63
- /** @type {?} */
64
- var charLength = 1;
65
- if (this.showClearanceFlag && this.anchorLength > 0) {
66
- charLength = Math.floor((this.anchorLength - 50) / 7);
67
- }
68
- else {
69
- charLength = Math.floor((this.anchorLength - 50) / 7);
70
- }
71
- if (anchorDisplayText.length > charLength) {
72
- anchorDisplayText = anchorDisplayText.slice(0, charLength - 2) + '...';
73
- }
74
- return anchorDisplayText;
75
- },
76
- enumerable: true,
77
- configurable: true
78
- });
79
- Object.defineProperty(AnchorComponent.prototype, "anchorClass", {
80
- /**
81
- * anchor CSS class
82
- */
83
- get: /**
84
- * anchor CSS class
85
- * @return {?}
86
- */
87
- function () {
88
- /** @type {?} */
89
- var anchorClassStatusPart;
90
- /** @type {?} */
91
- var anchorClassFontColor;
92
- if (this.disabled) {
93
- anchorClassStatusPart = 'selection-anchor-disabled';
94
- anchorClassFontColor = 'place-holder';
95
- }
96
- else {
97
- if (this.openStatus) {
98
- anchorClassStatusPart = 'selection-anchor-open';
99
- }
100
- else {
101
- anchorClassStatusPart = 'selection-anchor-close';
102
- }
103
- if (this.selectedText != null) {
104
- anchorClassFontColor = 'selected-item';
105
- }
106
- else {
107
- anchorClassFontColor = 'place-holder';
108
- }
109
- }
110
- return anchorClassStatusPart + " " + anchorClassFontColor;
111
- },
112
- enumerable: true,
113
- configurable: true
114
- });
115
- /**
116
- * triggered when clicking the anchor
117
- */
118
- /**
119
- * triggered when clicking the anchor
120
- * @param {?} event
121
- * @return {?}
122
- */
123
- AnchorComponent.prototype.onAnchorClick = /**
124
- * triggered when clicking the anchor
125
- * @param {?} event
126
- * @return {?}
127
- */
128
- function (event) {
129
- this.anchorClick.emit(event);
130
- };
131
- /**
132
- * triggered with (blur) of anchor
133
- */
134
- /**
135
- * triggered with (blur) of anchor
136
- * @param {?} event
137
- * @return {?}
138
- */
139
- AnchorComponent.prototype.onAnchorBlur = /**
140
- * triggered with (blur) of anchor
141
- * @param {?} event
142
- * @return {?}
143
- */
144
- function (event) {
145
- stopPropagationAndDefault(event);
146
- };
147
- /**
148
- * triggered when clicking the clearance
149
- */
150
- /**
151
- * triggered when clicking the clearance
152
- * @param {?} event
153
- * @return {?}
154
- */
155
- AnchorComponent.prototype.onClearanceClick = /**
156
- * triggered when clicking the clearance
157
- * @param {?} event
158
- * @return {?}
159
- */
160
- function (event) {
161
- this.clearanceClick.emit(event);
162
- };
163
- /**
164
- * triggered when resizing, get the clientWidth of anchor
165
- */
166
- /**
167
- * triggered when resizing, get the clientWidth of anchor
168
- * @return {?}
169
- */
170
- AnchorComponent.prototype.onResize = /**
171
- * triggered when resizing, get the clientWidth of anchor
172
- * @return {?}
173
- */
174
- function () {
175
- this.anchorLength = this.anchorRef ? this.anchorRef.nativeElement ? this.anchorRef.nativeElement.clientWidth : 0 : 0;
176
- };
177
- AnchorComponent.decorators = [
178
- { type: Component, args: [{
179
- selector: 'anchor',
180
- template: "\n <span #anchor tabindex=\"2\" [ngClass]=\"anchorClass\" (window:resize)=\"onResize()\"\n (mousedown)=\"onAnchorClick($event)\" (blur)=\"onAnchorBlur($event)\"> {{anchorDisplayText}}\n <span #selectionClearance class=\"selection-clearance\" (mousedown)=\"onClearanceClick($event)\" *ngIf=\"showClearanceFlag\">&times;</span>\n </span>\n ",
181
- providers: [DecimalPipe],
182
- styles: ["*,:after,:before{font-size:inherit;font-weight:inherit;font-family:inherit;box-sizing:inherit;background:inherit}.selection-anchor-close:after,.selection-anchor-disabled:after,.selection-anchor-open:after,.vertical-center{position:absolute;top:50%;transform:translateY(-50%)}.hover-box,.selection-anchor-close:hover{outline:0;box-shadow:0 0 6px #23adff;border-radius:4px}.anchor-box,.selection-anchor,.selection-anchor-close,.selection-anchor-disabled,.selection-anchor-open{height:100%;border-radius:4px;width:100%;position:relative;display:inline-block;padding:8px 12px 5px;border:1px solid;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-sizing:border-box;white-space:nowrap}.selection-anchor,.selection-anchor-close,.selection-anchor-open{cursor:pointer}.selection-anchor .selection-clearance,.selection-anchor-close .selection-clearance,.selection-anchor-open .selection-clearance{position:absolute;right:35px;font-weight:700}.selection-anchor .selection-clearance:hover,.selection-anchor-close .selection-clearance:hover,.selection-anchor-open .selection-clearance:hover{color:#000}.selection-anchor-close:focus,.selection-anchor-open:focus,.selection-anchor:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;border-color:#66afe9}.selection-anchor-disabled{border-color:#ccc;cursor:default;pointer-events:none;background:#f8f8f8;filter:opacity(50%)}.selection-anchor-disabled:after{font-size:9px;content:'\\0025BC';right:10px;padding-bottom:3px}.selection-anchor-open{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0;border-color:#66afe9}.selection-anchor-open:after{font-size:9px;content:'\\0025B2';right:10px;padding-bottom:3px}.selection-anchor-close{border-color:#ccc}.selection-anchor-close:after{font-size:9px;content:'\\0025BC';right:10px;padding-bottom:3px}.place-holder{color:#999}.selected-item{color:#495057}"]
183
- }] }
184
- ];
185
- /** @nocollapse */
186
- AnchorComponent.ctorParameters = function () { return [
187
- { type: DecimalPipe }
188
- ]; };
189
- AnchorComponent.propDecorators = {
190
- anchorRef: [{ type: ViewChild, args: ['anchor', { read: ElementRef },] }],
191
- placeHolder: [{ type: Input }],
192
- checkbox: [{ type: Input }],
193
- suffixText: [{ type: Input }],
194
- allowClear: [{ type: Input }],
195
- formatNumber: [{ type: Input }],
196
- selectedText: [{ type: Input }],
197
- openStatus: [{ type: Input }],
198
- disabled: [{ type: Input }],
199
- anchorClick: [{ type: Output }],
200
- clearanceClick: [{ type: Output }]
201
- };
202
- return AnchorComponent;
203
- }());
204
- export { AnchorComponent };
205
- if (false) {
206
- /**
207
- * Child element reference of anchor
208
- * @type {?}
209
- */
210
- AnchorComponent.prototype.anchorRef;
211
- /**
212
- * bind to [placeHolder] for displaying the place holder string of the anchor.
213
- * @type {?}
214
- */
215
- AnchorComponent.prototype.placeHolder;
216
- /**
217
- * bind to [checkbox] for checking whether the clearance flag should be shown or not.
218
- * @type {?}
219
- */
220
- AnchorComponent.prototype.checkbox;
221
- /**
222
- * bind to [suffixText] for displaying the suffix of the selected text of anchor
223
- * @type {?}
224
- */
225
- AnchorComponent.prototype.suffixText;
226
- /**
227
- * bind to [allowClear] for enabling the clearance (clearance is not avaiable when checkbox is enabled)
228
- * @type {?}
229
- */
230
- AnchorComponent.prototype.allowClear;
231
- /**
232
- * bind to [formatNumber] for show formatted number text
233
- * @type {?}
234
- */
235
- AnchorComponent.prototype.formatNumber;
236
- /**
237
- * bind to [selectedText] for displaying the selected text on anchor
238
- * @type {?}
239
- */
240
- AnchorComponent.prototype.selectedText;
241
- /**
242
- * bind to [openStatus], it's the visibility status of dropdown, for showing the arrow on anchor
243
- * @type {?}
244
- */
245
- AnchorComponent.prototype.openStatus;
246
- /**
247
- * bind to [disabled] for disabling the anchor
248
- * @type {?}
249
- */
250
- AnchorComponent.prototype.disabled;
251
- /**
252
- * will be triggered when clicking the anchor
253
- * @type {?}
254
- */
255
- AnchorComponent.prototype.anchorClick;
256
- /**
257
- * will be triggered when clicking the clearance
258
- * @type {?}
259
- */
260
- AnchorComponent.prototype.clearanceClick;
261
- /**
262
- * length of anchor element, used for calculate the string length of the anchor displayed text.
263
- * @type {?}
264
- */
265
- AnchorComponent.prototype.anchorLength;
266
- /**
267
- * @type {?}
268
- * @private
269
- */
270
- AnchorComponent.prototype._decimalPipe;
271
- }
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcm9wZG93bi1saXN0LyIsInNvdXJjZXMiOlsic3JjL25neC1kcm9wZG93bi1saXN0L2FuY2hvci9hbmNob3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUM7SUFnRUUseUJBQW9CLFlBQXlCO1FBQXpCLGlCQUFZLEdBQVosWUFBWSxDQUFhOzs7O1FBdkNwQyxhQUFRLEdBQUcsS0FBSyxDQUFDOzs7O1FBUWpCLGVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7UUFZbEIsZUFBVSxHQUFHLEtBQUssQ0FBQzs7OztRQUluQixhQUFRLEdBQUcsS0FBSyxDQUFDOzs7O1FBSWhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7OztRQUl0QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPSCxDQUFDO0lBS2pELHNCQUFJLDhDQUFpQjtRQUhyQjs7V0FFRzs7Ozs7UUFDSDtZQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNoRSxDQUFDOzs7T0FBQTtJQUtELHNCQUFJLDhDQUFpQjtRQUhyQjs7V0FFRzs7Ozs7UUFDSDs7Z0JBQ00saUJBQWlCLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFB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Q0FBQzs7aUJBQ3pCOzs7O2dCQVpPLFdBQVc7Ozs0QkFrQmhCLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOzhCQUt4QyxLQUFLOzJCQUlMLEtBQUs7NkJBSUwsS0FBSzs2QkFJTCxLQUFLOytCQUlMLEtBQUs7K0JBSUwsS0FBSzs2QkFJTCxLQUFLOzJCQUlMLEtBQUs7OEJBSUwsTUFBTTtpQ0FJTixNQUFNOztJQXdGVCxzQkFBQztDQUFBLEFBakpELElBaUpDO1NBcklZLGVBQWU7Ozs7OztJQUkxQixvQ0FBaUU7Ozs7O0lBS2pFLHNDQUE2Qjs7Ozs7SUFJN0IsbUNBQTBCOzs7OztJQUkxQixxQ0FBNEI7Ozs7O0lBSTVCLHFDQUEyQjs7Ozs7SUFJM0IsdUNBQStCOzs7OztJQUkvQix1Q0FBMkI7Ozs7O0lBSTNCLHFDQUE0Qjs7Ozs7SUFJNUIsbUNBQTBCOzs7OztJQUkxQixzQ0FBZ0Q7Ozs7O0lBSWhELHlDQUFtRDs7Ozs7SUFLbkQsdUNBQXFCOzs7OztJQUVULHVDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7c3RvcFByb3BhZ2F0aW9uQW5kRGVmYXVsdCwgaXNOdW1iZXJ9IGZyb20gJy4uL3V0aWxzL3V0aWwnO1xyXG5pbXBvcnQge0RlY2ltYWxQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmNob3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8c3BhbiAjYW5jaG9yIHRhYmluZGV4PVwiMlwiIFtuZ0NsYXNzXT1cImFuY2hvckNsYXNzXCIgKHdpbmRvdzpyZXNpemUpPVwib25SZXNpemUoKVwiXHJcbiAgICAgICAgICAobW91c2Vkb3duKT1cIm9uQW5jaG9yQ2xpY2soJGV2ZW50KVwiIChibHVyKT1cIm9uQW5jaG9yQmx1cigkZXZlbnQpXCI+IHt7YW5jaG9yRGlzcGxheVRleHR9fVxyXG4gICAgICA8c3BhbiAjc2VsZWN0aW9uQ2xlYXJhbmNlIGNsYXNzPVwic2VsZWN0aW9uLWNsZWFyYW5jZVwiIChtb3VzZWRvd24pPVwib25DbGVhcmFuY2VDbGljaygkZXZlbnQpXCIgKm5nSWY9XCJzaG93Q2xlYXJhbmNlRmxhZ1wiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9hbmNob3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZV1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBbmNob3JDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIENoaWxkIGVsZW1lbnQgcmVmZXJlbmNlIG9mIGFuY2hvclxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2FuY2hvcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBhbmNob3JSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIGJpbmQgdG8gW3BsYWNlSG9sZGVyXSBmb3IgZGlzcGxheWluZyB0aGUgcGxhY2UgaG9sZGVyIHN0cmluZyBvZiB0aGUgYW5jaG9yLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogYmluZCB0byBbY2hlY2tib3hdIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBjbGVhcmFuY2UgZmxhZyBzaG91bGQgYmUgc2hvd24gb3Igbm90LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94ID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogYmluZCB0byBbc3VmZml4VGV4dF0gZm9yIGRpc3BsYXlpbmcgdGhlIHN1ZmZpeCBvZiB0aGUgc2VsZWN0ZWQgdGV4dCBvZiBhbmNob3JcclxuICAgKi9cclxuICBASW5wdXQoKSBzdWZmaXhUZXh0OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogYmluZCB0byBbYWxsb3dDbGVhcl0gZm9yIGVuYWJsaW5nIHRoZSBjbGVhcmFuY2UgKGNsZWFyYW5jZSBpcyBub3QgYXZhaWFibGUgd2hlbiBjaGVja2JveCBpcyBlbmFibGVkKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFsbG93Q2xlYXIgPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIGJpbmQgdG8gW2Zvcm1hdE51bWJlcl0gZm9yIHNob3cgZm9ybWF0dGVkIG51bWJlciB0ZXh0XHJcbiAgICovXHJcbiAgQElucHV0KCkgZm9ybWF0TnVtYmVyOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIGJpbmQgdG8gW3NlbGVjdGVkVGV4dF0gZm9yIGRpc3BsYXlpbmcgdGhlIHNlbGVjdGVkIHRleHQgb24gYW5jaG9yXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRUZXh0OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogYmluZCB0byBbb3BlblN0YXR1c10sIGl0J3MgdGhlIHZpc2liaWxpdHkgc3RhdHVzIG9mIGRyb3Bkb3duLCBmb3Igc2hvd2luZyB0aGUgYXJyb3cgb24gYW5jaG9yXHJcbiAgICovXHJcbiAgQElucHV0KCkgb3BlblN0YXR1cyA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIGJpbmQgdG8gW2Rpc2FibGVkXSBmb3IgZGlzYWJsaW5nIHRoZSBhbmNob3JcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gY2xpY2tpbmcgdGhlIGFuY2hvclxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhbmNob3JDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKlxyXG4gICAqIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gY2xpY2tpbmcgdGhlIGNsZWFyYW5jZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjbGVhcmFuY2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKipcclxuICAgKiBsZW5ndGggb2YgYW5jaG9yIGVsZW1lbnQsIHVzZWQgZm9yIGNhbGN1bGF0ZSB0aGUgc3RyaW5nIGxlbmd0aCBvZiB0aGUgYW5jaG9yIGRpc3BsYXllZCB0ZXh0LlxyXG4gICAqL1xyXG4gIGFuY2hvckxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIGZsYWcgZm9yIHNob3dpbmcgdGhlIGNsZWFyYW5jZSBmbGFnXHJcbiAgICovXHJcbiAgZ2V0IHNob3dDbGVhcmFuY2VGbGFnKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmNoZWNrYm94ICYmIHRoaXMuc2VsZWN0ZWRUZXh0ICYmIHRoaXMuYWxsb3dDbGVhcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHRoZSB0ZXh0IGRpc3BsYXlzIG9uIGFuY2hvclxyXG4gICAqL1xyXG4gIGdldCBhbmNob3JEaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGFuY2hvckRpc3BsYXlUZXh0ID0gIHRoaXMuc2VsZWN0ZWRUZXh0ID8gKHRoaXMuZm9ybWF0TnVtYmVyID8gKGlzTnVtYmVyKHRoaXMuc2VsZWN0ZWRUZXh0KSA/XHJcbiAgICAgIHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybSh0aGlzLnNlbGVjdGVkVGV4dCwgJzEuMC0yJykgOiB0aGlzLnNlbGVjdGVkVGV4dCkgOlxyXG4gICAgICB0aGlzLnNlbGVjdGVkVGV4dCkgKyAodGhpcy5zdWZmaXhUZXh0ID8gdGhpcy5zdWZmaXhUZXh0IDogJycpIDogdGhpcy5wbGFjZUhvbGRlcjtcclxuXHJcbiAgICBsZXQgY2hhckxlbmd0aCA9IDE7XHJcbiAgICBpZiAodGhpcy5zaG93Q2xlYXJhbmNlRmxhZyAmJiB0aGlzLmFuY2hvckxlbmd0aCA+IDApIHtcclxuICAgICAgY2hhckxlbmd0aCA9IE1hdGguZmxvb3IoKHRoaXMuYW5jaG9yTGVuZ3RoIC0gNTApIC8gNyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGFyTGVuZ3RoID0gTWF0aC5mbG9vcigodGhpcy5hbmNob3JMZW5ndGggLSA1MCkgLyA3KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYW5jaG9yRGlzcGxheVRleHQubGVuZ3RoID4gY2hhckxlbmd0aCkge1xyXG4gICAgICBhbmNob3JEaXNwbGF5VGV4dCA9IGFuY2hvckRpc3BsYXlUZXh0LnNsaWNlKDAsIGNoYXJMZW5ndGggLSAyKSArICcuLi4nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFuY2hvckRpc3BsYXlUZXh0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYW5jaG9yIENTUyBjbGFzc1xyXG4gICAqL1xyXG4gIGdldCBhbmNob3JDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgbGV0IGFuY2hvckNsYXNzU3RhdHVzUGFydDtcclxuICAgIGxldCBhbmNob3JDbGFzc0ZvbnRDb2xvcjtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGFuY2hvckNsYXNzU3RhdHVzUGFydCA9ICdzZWxlY3Rpb24tYW5jaG9yLWRpc2FibGVkJztcclxuICAgICAgYW5jaG9yQ2xhc3NGb250Q29sb3IgPSAncGxhY2UtaG9sZGVyJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLm9wZW5TdGF0dXMpIHtcclxuICAgICAgICBhbmNob3JDbGFzc1N0YXR1c1BhcnQgPSAnc2VsZWN0aW9uLWFuY2hvci1vcGVuJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhbmNob3JDbGFzc1N0YXR1c1BhcnQgPSAnc2VsZWN0aW9uLWFuY2hvci1jbG9zZSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUZXh0ICE9IG51bGwpIHtcclxuICAgICAgICBhbmNob3JDbGFzc0ZvbnRDb2xvciA9ICdzZWxlY3RlZC1pdGVtJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhbmNob3JDbGFzc0ZvbnRDb2xvciA9ICdwbGFjZS1ob2xkZXInO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7YW5jaG9yQ2xhc3NTdGF0dXNQYXJ0fSAke2FuY2hvckNsYXNzRm9udENvbG9yfWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGUgYW5jaG9yXHJcbiAgICovXHJcbiAgb25BbmNob3JDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5jaG9yQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB0cmlnZ2VyZWQgd2l0aCAoYmx1cikgb2YgYW5jaG9yXHJcbiAgICovXHJcbiAgb25BbmNob3JCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgc3RvcFByb3BhZ2F0aW9uQW5kRGVmYXVsdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGUgY2xlYXJhbmNlXHJcbiAgICovXHJcbiAgb25DbGVhcmFuY2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJhbmNlQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB0cmlnZ2VyZWQgd2hlbiByZXNpemluZywgZ2V0IHRoZSBjbGllbnRXaWR0aCBvZiBhbmNob3JcclxuICAgKi9cclxuICBvblJlc2l6ZSgpIHtcclxuICAgIHRoaXMuYW5jaG9yTGVuZ3RoID0gdGhpcy5hbmNob3JSZWYgPyB0aGlzLmFuY2hvclJlZi5uYXRpdmVFbGVtZW50ID8gdGhpcy5hbmNob3JSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCA6IDAgOiAwO1xyXG4gIH1cclxufVxyXG4iXX0=