ngx-dropdown-list 1.1.0 → 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 (65) 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 -1180
  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 -339
  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 -73
  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 -408
  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 -96
  61. package/fesm2015/ngx-dropdown-list.js +0 -890
  62. package/fesm2015/ngx-dropdown-list.js.map +0 -1
  63. package/fesm5/ngx-dropdown-list.js +0 -1137
  64. package/fesm5/ngx-dropdown-list.js.map +0 -1
  65. package/ngx-dropdown-list.metadata.json +0 -1
@@ -1,73 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,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(item => item.group) != null) : false;
12
- }
13
- /**
14
- * clear all selections from the provide items.
15
- * @param {?} items the dropdown items, can be group or item
16
- * @return {?}
17
- */
18
- export function clearAllSelection(items) {
19
- if (hasGroup(items)) {
20
- for (const groupItem of items) {
21
- if (groupItem.items) {
22
- groupItem.items.filter(item => item.selected).forEach(item => item.selected = false);
23
- }
24
- }
25
- }
26
- else {
27
- // clear the selection of previous selected item
28
- items.filter(item => item.selected).forEach(item => item.selected = false);
29
- }
30
- }
31
- /**
32
- * stop all propagation and default actions
33
- * @param {?} event
34
- * @return {?}
35
- */
36
- export function stopPropagationAndDefault(event) {
37
- event.stopImmediatePropagation();
38
- event.stopPropagation();
39
- event.preventDefault();
40
- }
41
- /**
42
- * check whether the provided value is number of not
43
- * @param {?} value
44
- * @return {?}
45
- */
46
- export function isNumber(value) {
47
- return !(value == null || isNaN(value) || value.length === 0);
48
- }
49
- /**
50
- * get the selected item from the items list (including item and group)
51
- * @param {?} items
52
- * @return {?}
53
- */
54
- export function getFirstSelectedItem(items) {
55
- if (!items) {
56
- return undefined;
57
- }
58
- /** @type {?} */
59
- let selectedItem;
60
- if (hasGroup(items)) {
61
- for (const item of items) {
62
- selectedItem = item.items ? item.items.find(subItem => subItem.selected) : undefined;
63
- if (selectedItem) {
64
- break;
65
- }
66
- }
67
- }
68
- else {
69
- selectedItem = items ? items.find(item => item.selected) : undefined;
70
- }
71
- return selectedItem;
72
- }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kcm9wZG93bi1saXN0LyIsInNvdXJjZXMiOlsic3JjL25neC1kcm9wZG93bi1saXN0L3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLO0lBQzVCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRSxDQUFDOzs7Ozs7QUFNRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBVTtJQUMxQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNuQixLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssRUFBRTtZQUM3QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUM7YUFDdEY7U0FDRjtLQUNGO1NBQU07UUFDTCxnREFBZ0Q7UUFDaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO0tBQzVFO0FBQ0gsQ0FBQzs7Ozs7O0FBS0QsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQVk7SUFDcEQsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUN6QixDQUFDOzs7Ozs7QUFLRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVU7SUFDakMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDOzs7Ozs7QUFLRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBVTtJQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxTQUFTLENBQUM7S0FDbEI7O1FBQ0csWUFBWTtJQUNoQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNuQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyRixJQUFJLFlBQVksRUFBRTtnQkFDaEIsTUFBTTthQUNQO1NBQ0Y7S0FDRjtTQUFNO1FBQ0wsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ3RFO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBjaGVjayB3aGV0aGVyIHRoZSBwcm92aWRlZCBpdGVtcyBjb250YWlucyBncm91cFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0dyb3VwKGl0ZW1zKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIGl0ZW1zID8gKGl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmdyb3VwKSAhPSBudWxsKSA6IGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogY2xlYXIgYWxsIHNlbGVjdGlvbnMgZnJvbSB0aGUgcHJvdmlkZSBpdGVtcy5cclxuICogQHBhcmFtIGl0ZW1zIHRoZSBkcm9wZG93biBpdGVtcywgY2FuIGJlIGdyb3VwIG9yIGl0ZW1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGVhckFsbFNlbGVjdGlvbihpdGVtczogYW55KTogdm9pZCB7XHJcbiAgaWYgKGhhc0dyb3VwKGl0ZW1zKSkge1xyXG4gICAgZm9yIChjb25zdCBncm91cEl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgaWYgKGdyb3VwSXRlbS5pdGVtcykge1xyXG4gICAgICAgIGdyb3VwSXRlbS5pdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKS5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBjbGVhciB0aGUgc2VsZWN0aW9uIG9mIHByZXZpb3VzIHNlbGVjdGVkIGl0ZW1cclxuICAgIGl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIHN0b3AgYWxsIHByb3BhZ2F0aW9uIGFuZCBkZWZhdWx0IGFjdGlvbnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdG9wUHJvcGFnYXRpb25BbmREZWZhdWx0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBjaGVjayB3aGV0aGVyIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBudW1iZXIgb2Ygbm90XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhKHZhbHVlID09IG51bGwgfHwgaXNOYU4odmFsdWUpIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBnZXQgdGhlIHNlbGVjdGVkIGl0ZW0gZnJvbSB0aGUgaXRlbXMgbGlzdCAoaW5jbHVkaW5nIGl0ZW0gYW5kIGdyb3VwKVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0U2VsZWN0ZWRJdGVtKGl0ZW1zOiBhbnkpOiBhbnkge1xyXG4gIGlmICghaXRlbXMpIHtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIGxldCBzZWxlY3RlZEl0ZW07XHJcbiAgaWYgKGhhc0dyb3VwKGl0ZW1zKSkge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgIHNlbGVjdGVkSXRlbSA9IGl0ZW0uaXRlbXMgPyBpdGVtLml0ZW1zLmZpbmQoc3ViSXRlbSA9PiBzdWJJdGVtLnNlbGVjdGVkKSA6IHVuZGVmaW5lZDtcclxuICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHNlbGVjdGVkSXRlbSA9IGl0ZW1zID8gaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuICByZXR1cm4gc2VsZWN0ZWRJdGVtO1xyXG59XHJcbiJdfQ==
@@ -1,14 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,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,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,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%;-webkit-transform:translateY(-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;-webkit-filter:opacity(50%);filter:opacity(50%)}.selection-anchor-disabled:after{font-size:12px;content:'\\0023F7';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:12px;content:\"\\0023F6\";right:10px;padding-bottom:3px}.selection-anchor-close{border-color:#ccc}.selection-anchor-close:after{font-size:12px;content:'\\0023F7';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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Q0FBQzs7aUJBQ3pCOzs7O2dCQVpPLFdBQVc7Ozs0QkFrQmhCLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOzhCQUt4QyxLQUFLOzJCQUlMLEtBQUs7NkJBSUwsS0FBSzs2QkFJTCxLQUFLOytCQUlMLEtBQUs7K0JBSUwsS0FBSzs2QkFJTCxLQUFLOzJCQUlMLEtBQUs7OEJBSUwsTUFBTTtpQ0FJTixNQUFNOztJQXdGVCxzQkFBQztDQUFBLEFBakpELElBaUpDO1NBcklZLGVBQWU7Ozs7OztJQUkxQixvQ0FBaUU7Ozs7O0lBS2pFLHNDQUE2Qjs7Ozs7SUFJN0IsbUNBQTBCOzs7OztJQUkxQixxQ0FBNEI7Ozs7O0lBSTVCLHFDQUEyQjs7Ozs7SUFJM0IsdUNBQStCOzs7OztJQUkvQix1Q0FBMkI7Ozs7O0lBSTNCLHFDQUE0Qjs7Ozs7SUFJNUIsbUNBQTBCOzs7OztJQUkxQixzQ0FBZ0Q7Ozs7O0lBSWhELHlDQUFtRDs7Ozs7SUFLbkQsdUNBQXFCOzs7OztJQUVULHVDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3N0b3BQcm9wYWdhdGlvbkFuZERlZmF1bHQsIGlzTnVtYmVyfSBmcm9tICcuLi91dGlscy91dGlsJztcbmltcG9ydCB7RGVjaW1hbFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuY2hvcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gI2FuY2hvciB0YWJpbmRleD1cIjJcIiBbbmdDbGFzc109XCJhbmNob3JDbGFzc1wiICh3aW5kb3c6cmVzaXplKT1cIm9uUmVzaXplKClcIlxuICAgICAgICAgIChtb3VzZWRvd24pPVwib25BbmNob3JDbGljaygkZXZlbnQpXCIgKGJsdXIpPVwib25BbmNob3JCbHVyKCRldmVudClcIj4ge3thbmNob3JEaXNwbGF5VGV4dH19XG4gICAgICA8c3BhbiAjc2VsZWN0aW9uQ2xlYXJhbmNlIGNsYXNzPVwic2VsZWN0aW9uLWNsZWFyYW5jZVwiIChtb3VzZWRvd24pPVwib25DbGVhcmFuY2VDbGljaygkZXZlbnQpXCIgKm5nSWY9XCJzaG93Q2xlYXJhbmNlRmxhZ1wiPiZ0aW1lczs8L3NwYW4+XG4gICAgPC9zcGFuPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9hbmNob3IuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGVdXG59KVxuXG5leHBvcnQgY2xhc3MgQW5jaG9yQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENoaWxkIGVsZW1lbnQgcmVmZXJlbmNlIG9mIGFuY2hvclxuICAgKi9cbiAgQFZpZXdDaGlsZCgnYW5jaG9yJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGFuY2hvclJlZjogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogYmluZCB0byBbcGxhY2VIb2xkZXJdIGZvciBkaXNwbGF5aW5nIHRoZSBwbGFjZSBob2xkZXIgc3RyaW5nIG9mIHRoZSBhbmNob3IuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZUhvbGRlcjogc3RyaW5nO1xuICAvKipcbiAgICogYmluZCB0byBbY2hlY2tib3hdIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBjbGVhcmFuY2UgZmxhZyBzaG91bGQgYmUgc2hvd24gb3Igbm90LlxuICAgKi9cbiAgQElucHV0KCkgY2hlY2tib3ggPSBmYWxzZTtcbiAgLyoqXG4gICAqIGJpbmQgdG8gW3N1ZmZpeFRleHRdIGZvciBkaXNwbGF5aW5nIHRoZSBzdWZmaXggb2YgdGhlIHNlbGVjdGVkIHRleHQgb2YgYW5jaG9yXG4gICAqL1xuICBASW5wdXQoKSBzdWZmaXhUZXh0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBiaW5kIHRvIFthbGxvd0NsZWFyXSBmb3IgZW5hYmxpbmcgdGhlIGNsZWFyYW5jZSAoY2xlYXJhbmNlIGlzIG5vdCBhdmFpYWJsZSB3aGVuIGNoZWNrYm94IGlzIGVuYWJsZWQpXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0NsZWFyID0gdHJ1ZTtcbiAgLyoqXG4gICAqIGJpbmQgdG8gW2Zvcm1hdE51bWJlcl0gZm9yIHNob3cgZm9ybWF0dGVkIG51bWJlciB0ZXh0XG4gICAqL1xuICBASW5wdXQoKSBmb3JtYXROdW1iZXI6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBiaW5kIHRvIFtzZWxlY3RlZFRleHRdIGZvciBkaXNwbGF5aW5nIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIGFuY2hvclxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRUZXh0OiBhbnk7XG4gIC8qKlxuICAgKiBiaW5kIHRvIFtvcGVuU3RhdHVzXSwgaXQncyB0aGUgdmlzaWJpbGl0eSBzdGF0dXMgb2YgZHJvcGRvd24sIGZvciBzaG93aW5nIHRoZSBhcnJvdyBvbiBhbmNob3JcbiAgICovXG4gIEBJbnB1dCgpIG9wZW5TdGF0dXMgPSBmYWxzZTtcbiAgLyoqXG4gICAqIGJpbmQgdG8gW2Rpc2FibGVkXSBmb3IgZGlzYWJsaW5nIHRoZSBhbmNob3JcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKlxuICAgKiB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIGNsaWNraW5nIHRoZSBhbmNob3JcbiAgICovXG4gIEBPdXRwdXQoKSBhbmNob3JDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAvKipcbiAgICogd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGUgY2xlYXJhbmNlXG4gICAqL1xuICBAT3V0cHV0KCkgY2xlYXJhbmNlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogbGVuZ3RoIG9mIGFuY2hvciBlbGVtZW50LCB1c2VkIGZvciBjYWxjdWxhdGUgdGhlIHN0cmluZyBsZW5ndGggb2YgdGhlIGFuY2hvciBkaXNwbGF5ZWQgdGV4dC5cbiAgICovXG4gIGFuY2hvckxlbmd0aDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSkge31cblxuICAvKipcbiAgICogZmxhZyBmb3Igc2hvd2luZyB0aGUgY2xlYXJhbmNlIGZsYWdcbiAgICovXG4gIGdldCBzaG93Q2xlYXJhbmNlRmxhZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2hlY2tib3ggJiYgdGhpcy5zZWxlY3RlZFRleHQgJiYgdGhpcy5hbGxvd0NsZWFyO1xuICB9XG5cbiAgLyoqXG4gICAqIHRoZSB0ZXh0IGRpc3BsYXlzIG9uIGFuY2hvclxuICAgKi9cbiAgZ2V0IGFuY2hvckRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgbGV0IGFuY2hvckRpc3BsYXlUZXh0ID0gIHRoaXMuc2VsZWN0ZWRUZXh0ID8gKHRoaXMuZm9ybWF0TnVtYmVyID8gKGlzTnVtYmVyKHRoaXMuc2VsZWN0ZWRUZXh0KSA/XG4gICAgICB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0odGhpcy5zZWxlY3RlZFRleHQsICcxLjAtMicpIDogdGhpcy5zZWxlY3RlZFRleHQpIDpcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0KSArICh0aGlzLnN1ZmZpeFRleHQgPyB0aGlzLnN1ZmZpeFRleHQgOiAnJykgOiB0aGlzLnBsYWNlSG9sZGVyO1xuXG4gICAgbGV0IGNoYXJMZW5ndGggPSAxO1xuICAgIGlmICh0aGlzLnNob3dDbGVhcmFuY2VGbGFnICYmIHRoaXMuYW5jaG9yTGVuZ3RoID4gMCkge1xuICAgICAgY2hhckxlbmd0aCA9IE1hdGguZmxvb3IoKHRoaXMuYW5jaG9yTGVuZ3RoIC0gNTApIC8gNyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoYXJMZW5ndGggPSBNYXRoLmZsb29yKCh0aGlzLmFuY2hvckxlbmd0aCAtIDUwKSAvIDcpO1xuICAgIH1cblxuICAgIGlmIChhbmNob3JEaXNwbGF5VGV4dC5sZW5ndGggPiBjaGFyTGVuZ3RoKSB7XG4gICAgICBhbmNob3JEaXNwbGF5VGV4dCA9IGFuY2hvckRpc3BsYXlUZXh0LnNsaWNlKDAsIGNoYXJMZW5ndGggLSAyKSArICcuLi4nO1xuICAgIH1cbiAgICByZXR1cm4gYW5jaG9yRGlzcGxheVRleHQ7XG4gIH1cblxuICAvKipcbiAgICogYW5jaG9yIENTUyBjbGFzc1xuICAgKi9cbiAgZ2V0IGFuY2hvckNsYXNzKCk6IHN0cmluZyB7XG4gICAgbGV0IGFuY2hvckNsYXNzU3RhdHVzUGFydDtcbiAgICBsZXQgYW5jaG9yQ2xhc3NGb250Q29sb3I7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGFuY2hvckNsYXNzU3RhdHVzUGFydCA9ICdzZWxlY3Rpb24tYW5jaG9yLWRpc2FibGVkJztcbiAgICAgIGFuY2hvckNsYXNzRm9udENvbG9yID0gJ3BsYWNlLWhvbGRlcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wZW5TdGF0dXMpIHtcbiAgICAgICAgYW5jaG9yQ2xhc3NTdGF0dXNQYXJ0ID0gJ3NlbGVjdGlvbi1hbmNob3Itb3Blbic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmNob3JDbGFzc1N0YXR1c1BhcnQgPSAnc2VsZWN0aW9uLWFuY2hvci1jbG9zZSc7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFRleHQgIT0gbnVsbCkge1xuICAgICAgICBhbmNob3JDbGFzc0ZvbnRDb2xvciA9ICdzZWxlY3RlZC1pdGVtJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFuY2hvckNsYXNzRm9udENvbG9yID0gJ3BsYWNlLWhvbGRlcic7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHthbmNob3JDbGFzc1N0YXR1c1BhcnR9ICR7YW5jaG9yQ2xhc3NGb250Q29sb3J9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGUgYW5jaG9yXG4gICAqL1xuICBvbkFuY2hvckNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYW5jaG9yQ2xpY2suZW1pdChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogdHJpZ2dlcmVkIHdpdGggKGJsdXIpIG9mIGFuY2hvclxuICAgKi9cbiAgb25BbmNob3JCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHN0b3BQcm9wYWdhdGlvbkFuZERlZmF1bHQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXJlZCB3aGVuIGNsaWNraW5nIHRoZSBjbGVhcmFuY2VcbiAgICovXG4gIG9uQ2xlYXJhbmNlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcmFuY2VDbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VyZWQgd2hlbiByZXNpemluZywgZ2V0IHRoZSBjbGllbnRXaWR0aCBvZiBhbmNob3JcbiAgICovXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMuYW5jaG9yTGVuZ3RoID0gdGhpcy5hbmNob3JSZWYgPyB0aGlzLmFuY2hvclJlZi5uYXRpdmVFbGVtZW50ID8gdGhpcy5hbmNob3JSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCA6IDAgOiAwO1xuICB9XG59XG4iXX0=