@ng-select/ng-select 2.20.2 → 3.0.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 (104) hide show
  1. package/README.md +3 -3
  2. package/bundles/ng-select-ng-select.umd.js +4525 -0
  3. package/bundles/ng-select-ng-select.umd.js.map +1 -0
  4. package/bundles/ng-select-ng-select.umd.min.js +2 -0
  5. package/bundles/ng-select-ng-select.umd.min.js.map +1 -0
  6. package/esm2015/lib/config.service.js +40 -0
  7. package/esm2015/lib/console.service.js +20 -0
  8. package/esm2015/lib/id.js +21 -0
  9. package/esm2015/lib/items-list.js +661 -0
  10. package/esm2015/lib/ng-dropdown-panel.component.js +661 -0
  11. package/esm2015/lib/ng-dropdown-panel.service.js +127 -0
  12. package/esm2015/lib/ng-option.component.js +74 -0
  13. package/esm2015/lib/ng-select.component.js +1384 -0
  14. package/esm2015/lib/ng-select.module.js +57 -0
  15. package/esm2015/lib/ng-select.types.js +48 -0
  16. package/esm2015/{ng-select → lib}/ng-templates.directive.js +2 -3
  17. package/esm2015/lib/search-helper.js +862 -0
  18. package/esm2015/lib/selection-model.js +166 -0
  19. package/esm2015/lib/value-utils.js +33 -0
  20. package/esm2015/ng-select-ng-select.js +15 -0
  21. package/esm2015/public-api.js +11 -0
  22. package/esm5/lib/config.service.js +42 -0
  23. package/esm5/lib/console.service.js +28 -0
  24. package/esm5/lib/id.js +21 -0
  25. package/esm5/lib/items-list.js +888 -0
  26. package/esm5/lib/ng-dropdown-panel.component.js +770 -0
  27. package/esm5/lib/ng-dropdown-panel.service.js +150 -0
  28. package/esm5/lib/ng-option.component.js +86 -0
  29. package/esm5/lib/ng-select.component.js +1637 -0
  30. package/esm5/lib/ng-select.module.js +61 -0
  31. package/esm5/lib/ng-select.types.js +48 -0
  32. package/esm5/{ng-select → lib}/ng-templates.directive.js +2 -3
  33. package/esm5/lib/search-helper.js +862 -0
  34. package/esm5/{ng-select → lib}/selection-model.js +69 -22
  35. package/esm5/lib/value-utils.js +33 -0
  36. package/esm5/ng-select-ng-select.js +15 -0
  37. package/esm5/public-api.js +11 -0
  38. package/fesm2015/ng-select-ng-select.js +3804 -0
  39. package/fesm2015/ng-select-ng-select.js.map +1 -0
  40. package/fesm5/ng-select-ng-select.js +4442 -0
  41. package/fesm5/ng-select-ng-select.js.map +1 -0
  42. package/{ng-select → lib}/config.service.d.ts +0 -0
  43. package/{ng-select → lib}/console.service.d.ts +0 -0
  44. package/{ng-select → lib}/id.d.ts +0 -0
  45. package/{ng-select → lib}/items-list.d.ts +1 -1
  46. package/{ng-select → lib}/ng-dropdown-panel.component.d.ts +0 -0
  47. package/{ng-select → lib}/ng-dropdown-panel.service.d.ts +0 -0
  48. package/{ng-select → lib}/ng-option.component.d.ts +0 -0
  49. package/{ng-select → lib}/ng-select.component.d.ts +9 -9
  50. package/{ng-select → lib}/ng-select.module.d.ts +0 -0
  51. package/{ng-select → lib}/ng-select.types.d.ts +0 -0
  52. package/{ng-select → lib}/ng-templates.directive.d.ts +0 -0
  53. package/{ng-select → lib}/search-helper.d.ts +0 -0
  54. package/{ng-select → lib}/selection-model.d.ts +0 -0
  55. package/{ng-select → lib}/value-utils.d.ts +0 -0
  56. package/ng-select-ng-select.d.ts +10 -0
  57. package/ng-select-ng-select.metadata.json +1 -0
  58. package/package.json +13 -14
  59. package/public-api.d.ts +5 -0
  60. package/scss/material.theme.scss +1 -1
  61. package/themes/material.theme.css +1 -1
  62. package/bundles/ng-select.umd.js +0 -4283
  63. package/bundles/ng-select.umd.js.map +0 -1
  64. package/bundles/ng-select.umd.min.js +0 -2
  65. package/bundles/ng-select.umd.min.js.map +0 -1
  66. package/esm2015/index.js +0 -9
  67. package/esm2015/ng-select/config.service.js +0 -41
  68. package/esm2015/ng-select/console.service.js +0 -21
  69. package/esm2015/ng-select/id.js +0 -17
  70. package/esm2015/ng-select/items-list.js +0 -542
  71. package/esm2015/ng-select/ng-dropdown-panel.component.js +0 -562
  72. package/esm2015/ng-select/ng-dropdown-panel.service.js +0 -121
  73. package/esm2015/ng-select/ng-option-highlight.directive.js +0 -98
  74. package/esm2015/ng-select/ng-option.component.js +0 -71
  75. package/esm2015/ng-select/ng-select.component.js +0 -1214
  76. package/esm2015/ng-select/ng-select.module.js +0 -61
  77. package/esm2015/ng-select/ng-select.types.js +0 -49
  78. package/esm2015/ng-select/search-helper.js +0 -859
  79. package/esm2015/ng-select/selection-model.js +0 -122
  80. package/esm2015/ng-select/value-utils.js +0 -34
  81. package/esm2015/ng-select.js +0 -17
  82. package/esm5/index.js +0 -9
  83. package/esm5/ng-select/config.service.js +0 -43
  84. package/esm5/ng-select/console.service.js +0 -29
  85. package/esm5/ng-select/id.js +0 -17
  86. package/esm5/ng-select/items-list.js +0 -761
  87. package/esm5/ng-select/ng-dropdown-panel.component.js +0 -654
  88. package/esm5/ng-select/ng-dropdown-panel.service.js +0 -144
  89. package/esm5/ng-select/ng-option-highlight.directive.js +0 -113
  90. package/esm5/ng-select/ng-option.component.js +0 -82
  91. package/esm5/ng-select/ng-select.component.js +0 -1430
  92. package/esm5/ng-select/ng-select.module.js +0 -65
  93. package/esm5/ng-select/ng-select.types.js +0 -49
  94. package/esm5/ng-select/search-helper.js +0 -859
  95. package/esm5/ng-select/value-utils.js +0 -34
  96. package/esm5/ng-select.js +0 -17
  97. package/fesm2015/ng-select.js +0 -3559
  98. package/fesm2015/ng-select.js.map +0 -1
  99. package/fesm5/ng-select.js +0 -4145
  100. package/fesm5/ng-select.js.map +0 -1
  101. package/index.d.ts +0 -5
  102. package/ng-select/ng-option-highlight.directive.d.ts +0 -14
  103. package/ng-select.d.ts +0 -11
  104. package/ng-select.metadata.json +0 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ */
8
+ export function ItemsRangeResult() { }
9
+ if (false) {
10
+ /** @type {?} */
11
+ ItemsRangeResult.prototype.scrollHeight;
12
+ /** @type {?} */
13
+ ItemsRangeResult.prototype.topPadding;
14
+ /** @type {?} */
15
+ ItemsRangeResult.prototype.start;
16
+ /** @type {?} */
17
+ ItemsRangeResult.prototype.end;
18
+ }
19
+ /**
20
+ * @record
21
+ */
22
+ export function PanelDimensions() { }
23
+ if (false) {
24
+ /** @type {?} */
25
+ PanelDimensions.prototype.itemHeight;
26
+ /** @type {?} */
27
+ PanelDimensions.prototype.panelHeight;
28
+ /** @type {?} */
29
+ PanelDimensions.prototype.itemsPerViewport;
30
+ }
31
+ var NgDropdownPanelService = /** @class */ (function () {
32
+ function NgDropdownPanelService() {
33
+ this._dimensions = {
34
+ itemHeight: 0,
35
+ panelHeight: 0,
36
+ itemsPerViewport: 0
37
+ };
38
+ }
39
+ Object.defineProperty(NgDropdownPanelService.prototype, "dimensions", {
40
+ get: /**
41
+ * @return {?}
42
+ */
43
+ function () {
44
+ return this._dimensions;
45
+ },
46
+ enumerable: true,
47
+ configurable: true
48
+ });
49
+ /**
50
+ * @param {?} scrollPos
51
+ * @param {?} itemsLength
52
+ * @param {?} buffer
53
+ * @return {?}
54
+ */
55
+ NgDropdownPanelService.prototype.calculateItems = /**
56
+ * @param {?} scrollPos
57
+ * @param {?} itemsLength
58
+ * @param {?} buffer
59
+ * @return {?}
60
+ */
61
+ function (scrollPos, itemsLength, buffer) {
62
+ /** @type {?} */
63
+ var d = this._dimensions;
64
+ /** @type {?} */
65
+ var scrollHeight = d.itemHeight * itemsLength;
66
+ /** @type {?} */
67
+ var scrollTop = Math.max(0, scrollPos);
68
+ /** @type {?} */
69
+ var indexByScrollTop = scrollTop / scrollHeight * itemsLength;
70
+ /** @type {?} */
71
+ var end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));
72
+ /** @type {?} */
73
+ var maxStartEnd = end;
74
+ /** @type {?} */
75
+ var maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);
76
+ /** @type {?} */
77
+ var start = Math.min(maxStart, Math.floor(indexByScrollTop));
78
+ /** @type {?} */
79
+ var topPadding = d.itemHeight * Math.ceil(start) - (d.itemHeight * Math.min(start, buffer));
80
+ topPadding = !isNaN(topPadding) ? topPadding : 0;
81
+ start = !isNaN(start) ? start : -1;
82
+ end = !isNaN(end) ? end : -1;
83
+ start -= buffer;
84
+ start = Math.max(0, start);
85
+ end += buffer;
86
+ end = Math.min(itemsLength, end);
87
+ return {
88
+ topPadding: topPadding,
89
+ scrollHeight: scrollHeight,
90
+ start: start,
91
+ end: end
92
+ };
93
+ };
94
+ /**
95
+ * @param {?} itemHeight
96
+ * @param {?} panelHeight
97
+ * @return {?}
98
+ */
99
+ NgDropdownPanelService.prototype.setDimensions = /**
100
+ * @param {?} itemHeight
101
+ * @param {?} panelHeight
102
+ * @return {?}
103
+ */
104
+ function (itemHeight, panelHeight) {
105
+ /** @type {?} */
106
+ var itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));
107
+ this._dimensions = {
108
+ itemHeight: itemHeight,
109
+ panelHeight: panelHeight,
110
+ itemsPerViewport: itemsPerViewport
111
+ };
112
+ };
113
+ /**
114
+ * @param {?} itemTop
115
+ * @param {?} itemHeight
116
+ * @param {?} lastScroll
117
+ * @return {?}
118
+ */
119
+ NgDropdownPanelService.prototype.getScrollTo = /**
120
+ * @param {?} itemTop
121
+ * @param {?} itemHeight
122
+ * @param {?} lastScroll
123
+ * @return {?}
124
+ */
125
+ function (itemTop, itemHeight, lastScroll) {
126
+ /** @type {?} */
127
+ var itemBottom = itemTop + itemHeight;
128
+ /** @type {?} */
129
+ var top = lastScroll;
130
+ /** @type {?} */
131
+ var bottom = top + this.dimensions.panelHeight;
132
+ if (itemBottom > bottom) {
133
+ return top + itemBottom - bottom;
134
+ }
135
+ else if (itemTop <= top) {
136
+ return itemTop;
137
+ }
138
+ return null;
139
+ };
140
+ return NgDropdownPanelService;
141
+ }());
142
+ export { NgDropdownPanelService };
143
+ if (false) {
144
+ /**
145
+ * @type {?}
146
+ * @private
147
+ */
148
+ NgDropdownPanelService.prototype._dimensions;
149
+ }
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZHJvcGRvd24tcGFuZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1zZWxlY3Qvbmctc2VsZWN0LyIsInNvdXJjZXMiOlsibGliL25nLWRyb3Bkb3duLXBhbmVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLHNDQUtDOzs7SUFKRyx3Q0FBcUI7O0lBQ3JCLHNDQUFtQjs7SUFDbkIsaUNBQWM7O0lBQ2QsK0JBQVk7Ozs7O0FBR2hCLHFDQUlDOzs7SUFIRyxxQ0FBbUI7O0lBQ25CLHNDQUFvQjs7SUFDcEIsMkNBQXlCOztBQUc3QjtJQUFBO1FBRVksZ0JBQVcsR0FBb0I7WUFDbkMsVUFBVSxFQUFFLENBQUM7WUFDYixXQUFXLEVBQUUsQ0FBQztZQUNkLGdCQUFnQixFQUFFLENBQUM7U0FDdEIsQ0FBQztJQXlETixDQUFDO0lBdkRHLHNCQUFJLDhDQUFVOzs7O1FBQWQ7WUFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7Ozs7Ozs7SUFFRCwrQ0FBYzs7Ozs7O0lBQWQsVUFBZSxTQUFpQixFQUFFLFdBQW1CLEVBQUUsTUFBYzs7WUFDM0QsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXOztZQUNwQixZQUFZLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxXQUFXOztZQUV6QyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDOztZQUNsQyxnQkFBZ0IsR0FBRyxTQUFTLEdBQUcsWUFBWSxHQUFHLFdBQVc7O1lBQzNELEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7O1lBRWpGLFdBQVcsR0FBRyxHQUFHOztZQUNqQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQzs7WUFDMUQsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs7WUFFeEQsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0YsVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLEtBQUssSUFBSSxNQUFNLENBQUM7UUFDaEIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNCLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFakMsT0FBTztZQUNILFVBQVUsWUFBQTtZQUNWLFlBQVksY0FBQTtZQUNaLEtBQUssT0FBQTtZQUNMLEdBQUcsS0FBQTtTQUNOLENBQUE7SUFDTCxDQUFDOzs7Ozs7SUFFRCw4Q0FBYTs7Ozs7SUFBYixVQUFjLFVBQWtCLEVBQUUsV0FBbUI7O1lBQzNDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDZixVQUFVLFlBQUE7WUFDVixXQUFXLGFBQUE7WUFDWCxnQkFBZ0Isa0JBQUE7U0FDbkIsQ0FBQztJQUNOLENBQUM7Ozs7Ozs7SUFFRCw0Q0FBVzs7Ozs7O0lBQVgsVUFBWSxPQUFlLEVBQUUsVUFBa0IsRUFBRSxVQUFrQjs7WUFDekQsVUFBVSxHQUFHLE9BQU8sR0FBRyxVQUFVOztZQUNqQyxHQUFHLEdBQUcsVUFBVTs7WUFDaEIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVc7UUFFaEQsSUFBSSxVQUFVLEdBQUcsTUFBTSxFQUFFO1lBQ3JCLE9BQU8sR0FBRyxHQUFHLFVBQVUsR0FBRyxNQUFNLENBQUM7U0FDcEM7YUFBTSxJQUFJLE9BQU8sSUFBSSxHQUFHLEVBQUU7WUFDdkIsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0wsNkJBQUM7QUFBRCxDQUFDLEFBL0RELElBK0RDOzs7Ozs7O0lBN0RHLDZDQUlFIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJdGVtc1JhbmdlUmVzdWx0IHtcbiAgICBzY3JvbGxIZWlnaHQ6IG51bWJlcjtcbiAgICB0b3BQYWRkaW5nOiBudW1iZXI7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgICBlbmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYW5lbERpbWVuc2lvbnMge1xuICAgIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgICBwYW5lbEhlaWdodDogbnVtYmVyO1xuICAgIGl0ZW1zUGVyVmlld3BvcnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE5nRHJvcGRvd25QYW5lbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBfZGltZW5zaW9uczogUGFuZWxEaW1lbnNpb25zID0ge1xuICAgICAgICBpdGVtSGVpZ2h0OiAwLFxuICAgICAgICBwYW5lbEhlaWdodDogMCxcbiAgICAgICAgaXRlbXNQZXJWaWV3cG9ydDogMFxuICAgIH07XG5cbiAgICBnZXQgZGltZW5zaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpbWVuc2lvbnM7XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlSXRlbXMoc2Nyb2xsUG9zOiBudW1iZXIsIGl0ZW1zTGVuZ3RoOiBudW1iZXIsIGJ1ZmZlcjogbnVtYmVyKTogSXRlbXNSYW5nZVJlc3VsdCB7XG4gICAgICAgIGNvbnN0IGQgPSB0aGlzLl9kaW1lbnNpb25zO1xuICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBkLml0ZW1IZWlnaHQgKiBpdGVtc0xlbmd0aDtcblxuICAgICAgICBjb25zdCBzY3JvbGxUb3AgPSBNYXRoLm1heCgwLCBzY3JvbGxQb3MpO1xuICAgICAgICBjb25zdCBpbmRleEJ5U2Nyb2xsVG9wID0gc2Nyb2xsVG9wIC8gc2Nyb2xsSGVpZ2h0ICogaXRlbXNMZW5ndGg7XG4gICAgICAgIGxldCBlbmQgPSBNYXRoLm1pbihpdGVtc0xlbmd0aCwgTWF0aC5jZWlsKGluZGV4QnlTY3JvbGxUb3ApICsgKGQuaXRlbXNQZXJWaWV3cG9ydCArIDEpKTtcblxuICAgICAgICBjb25zdCBtYXhTdGFydEVuZCA9IGVuZDtcbiAgICAgICAgY29uc3QgbWF4U3RhcnQgPSBNYXRoLm1heCgwLCBtYXhTdGFydEVuZCAtIGQuaXRlbXNQZXJWaWV3cG9ydCk7XG4gICAgICAgIGxldCBzdGFydCA9IE1hdGgubWluKG1heFN0YXJ0LCBNYXRoLmZsb29yKGluZGV4QnlTY3JvbGxUb3ApKTtcblxuICAgICAgICBsZXQgdG9wUGFkZGluZyA9IGQuaXRlbUhlaWdodCAqIE1hdGguY2VpbChzdGFydCkgLSAoZC5pdGVtSGVpZ2h0ICogTWF0aC5taW4oc3RhcnQsIGJ1ZmZlcikpO1xuICAgICAgICB0b3BQYWRkaW5nID0gIWlzTmFOKHRvcFBhZGRpbmcpID8gdG9wUGFkZGluZyA6IDA7XG4gICAgICAgIHN0YXJ0ID0gIWlzTmFOKHN0YXJ0KSA/IHN0YXJ0IDogLTE7XG4gICAgICAgIGVuZCA9ICFpc05hTihlbmQpID8gZW5kIDogLTE7XG4gICAgICAgIHN0YXJ0IC09IGJ1ZmZlcjtcbiAgICAgICAgc3RhcnQgPSBNYXRoLm1heCgwLCBzdGFydCk7XG4gICAgICAgIGVuZCArPSBidWZmZXI7XG4gICAgICAgIGVuZCA9IE1hdGgubWluKGl0ZW1zTGVuZ3RoLCBlbmQpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3BQYWRkaW5nLFxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERpbWVuc2lvbnMoaXRlbUhlaWdodDogbnVtYmVyLCBwYW5lbEhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zUGVyVmlld3BvcnQgPSBNYXRoLm1heCgxLCBNYXRoLmZsb29yKHBhbmVsSGVpZ2h0IC8gaXRlbUhlaWdodCkpO1xuICAgICAgICB0aGlzLl9kaW1lbnNpb25zID0ge1xuICAgICAgICAgICAgaXRlbUhlaWdodCxcbiAgICAgICAgICAgIHBhbmVsSGVpZ2h0LFxuICAgICAgICAgICAgaXRlbXNQZXJWaWV3cG9ydFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldFNjcm9sbFRvKGl0ZW1Ub3A6IG51bWJlciwgaXRlbUhlaWdodDogbnVtYmVyLCBsYXN0U2Nyb2xsOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaXRlbUJvdHRvbSA9IGl0ZW1Ub3AgKyBpdGVtSGVpZ2h0O1xuICAgICAgICBjb25zdCB0b3AgPSBsYXN0U2Nyb2xsO1xuICAgICAgICBjb25zdCBib3R0b20gPSB0b3AgKyB0aGlzLmRpbWVuc2lvbnMucGFuZWxIZWlnaHQ7XG5cbiAgICAgICAgaWYgKGl0ZW1Cb3R0b20gPiBib3R0b20pIHtcbiAgICAgICAgICAgIHJldHVybiB0b3AgKyBpdGVtQm90dG9tIC0gYm90dG9tO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW1Ub3AgPD0gdG9wKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbVRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { ChangeDetectionStrategy, Component, ElementRef, Input } from '@angular/core';
6
+ import { Subject } from 'rxjs';
7
+ var NgOptionComponent = /** @class */ (function () {
8
+ function NgOptionComponent(elementRef) {
9
+ this.elementRef = elementRef;
10
+ this.stateChange$ = new Subject();
11
+ this._disabled = false;
12
+ }
13
+ Object.defineProperty(NgOptionComponent.prototype, "disabled", {
14
+ get: /**
15
+ * @return {?}
16
+ */
17
+ function () { return this._disabled; },
18
+ set: /**
19
+ * @param {?} value
20
+ * @return {?}
21
+ */
22
+ function (value) { this._disabled = this._isDisabled(value); },
23
+ enumerable: true,
24
+ configurable: true
25
+ });
26
+ /**
27
+ * @param {?} changes
28
+ * @return {?}
29
+ */
30
+ NgOptionComponent.prototype.ngOnChanges = /**
31
+ * @param {?} changes
32
+ * @return {?}
33
+ */
34
+ function (changes) {
35
+ if (changes.disabled) {
36
+ this.stateChange$.next({
37
+ value: this.value,
38
+ disabled: this._disabled
39
+ });
40
+ }
41
+ };
42
+ /**
43
+ * @private
44
+ * @param {?} value
45
+ * @return {?}
46
+ */
47
+ NgOptionComponent.prototype._isDisabled = /**
48
+ * @private
49
+ * @param {?} value
50
+ * @return {?}
51
+ */
52
+ function (value) {
53
+ return value != null && "" + value !== 'false';
54
+ };
55
+ NgOptionComponent.decorators = [
56
+ { type: Component, args: [{
57
+ selector: 'ng-option',
58
+ changeDetection: ChangeDetectionStrategy.OnPush,
59
+ template: "<ng-content></ng-content>"
60
+ }] }
61
+ ];
62
+ /** @nocollapse */
63
+ NgOptionComponent.ctorParameters = function () { return [
64
+ { type: ElementRef }
65
+ ]; };
66
+ NgOptionComponent.propDecorators = {
67
+ value: [{ type: Input }],
68
+ disabled: [{ type: Input }]
69
+ };
70
+ return NgOptionComponent;
71
+ }());
72
+ export { NgOptionComponent };
73
+ if (false) {
74
+ /** @type {?} */
75
+ NgOptionComponent.prototype.value;
76
+ /** @type {?} */
77
+ NgOptionComponent.prototype.stateChange$;
78
+ /**
79
+ * @type {?}
80
+ * @private
81
+ */
82
+ NgOptionComponent.prototype._disabled;
83
+ /** @type {?} */
84
+ NgOptionComponent.prototype.elementRef;
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZy1zZWxlY3Qvbmctc2VsZWN0LyIsInNvdXJjZXMiOlsibGliL25nLW9wdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQjtJQWVJLDJCQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSGhDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQXFDLENBQUM7UUFDakUsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUVtQixDQUFDO0lBUDlDLHNCQUNJLHVDQUFROzs7O1FBRFosY0FDaUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzs7Ozs7UUFDekMsVUFBYSxLQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQzs7O09BRDVCOzs7OztJQVF6Qyx1Q0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUzthQUMzQixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7Ozs7OztJQUVPLHVDQUFXOzs7OztJQUFuQixVQUFvQixLQUFLO1FBQ3JCLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFHLEtBQU8sS0FBSyxPQUFPLENBQUM7SUFDbkQsQ0FBQzs7Z0JBNUJKLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3hDOzs7O2dCQVhHLFVBQVU7Ozt3QkFjVCxLQUFLOzJCQUNMLEtBQUs7O0lBcUJWLHdCQUFDO0NBQUEsQUE3QkQsSUE2QkM7U0F4QlksaUJBQWlCOzs7SUFFMUIsa0NBQW9COztJQUtwQix5Q0FBeUU7Ozs7O0lBQ3pFLHNDQUEwQjs7SUFFZCx1Q0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25nLW9wdGlvbicsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBOZ09wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCkgeyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSkgeyB0aGlzLl9kaXNhYmxlZCA9IHRoaXMuX2lzRGlzYWJsZWQodmFsdWUpIH1cblxuICAgIHJlYWRvbmx5IHN0YXRlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHsgdmFsdWU6IGFueSwgZGlzYWJsZWQ6IGJvb2xlYW4gfT4oKTtcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZSQubmV4dCh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgYCR7dmFsdWV9YCAhPT0gJ2ZhbHNlJztcbiAgICB9XG59XG4iXX0=