@ng-select/ng-select 7.1.0 → 7.4.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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('rxjs/operators'), require('rxjs'), require('@angular/common')) :
3
3
  typeof define === 'function' && define.amd ? define('@ng-select/ng-select', ['exports', '@angular/core', '@angular/forms', 'rxjs/operators', 'rxjs', '@angular/common'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['ng-select'] = global['ng-select'] || {}, global['ng-select']['ng-select'] = {}), global.ng.core, global.ng.forms, global.rxjs.operators, global.rxjs, global.ng.common));
5
- }(this, (function (exports, i0, forms, operators, rxjs, common) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["ng-select"] = global["ng-select"] || {}, global["ng-select"]["ng-select"] = {}), global.ng.core, global.ng.forms, global.rxjs.operators, global.rxjs, global.ng.common));
5
+ })(this, (function (exports, i0, forms, operators, rxjs, common) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -13,14 +13,12 @@
13
13
  var d = Object.getOwnPropertyDescriptor(e, k);
14
14
  Object.defineProperty(n, k, d.get ? d : {
15
15
  enumerable: true,
16
- get: function () {
17
- return e[k];
18
- }
16
+ get: function () { return e[k]; }
19
17
  });
20
18
  }
21
19
  });
22
20
  }
23
- n['default'] = e;
21
+ n["default"] = e;
24
22
  return Object.freeze(n);
25
23
  }
26
24
 
@@ -261,7 +259,7 @@
261
259
  ar[i] = from[i];
262
260
  }
263
261
  }
264
- return to.concat(ar || from);
262
+ return to.concat(ar || Array.prototype.slice.call(from));
265
263
  }
266
264
  function __await(v) {
267
265
  return this instanceof __await ? (this.v = v, this) : new __await(v);
@@ -1952,8 +1950,7 @@
1952
1950
  { type: i0.Injectable }
1953
1951
  ];
1954
1952
 
1955
- var TOP_CSS_CLASS = 'ng-select-top';
1956
- var BOTTOM_CSS_CLASS = 'ng-select-bottom';
1953
+ var CSS_POSITIONS = ['top', 'right', 'bottom', 'left'];
1957
1954
  var SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? rxjs.animationFrameScheduler : rxjs.asapScheduler;
1958
1955
  var NgDropdownPanelComponent = /** @class */ (function () {
1959
1956
  function NgDropdownPanelComponent(_renderer, _zone, _panelService, _elementRef, _document) {
@@ -2007,13 +2004,6 @@
2007
2004
  enumerable: false,
2008
2005
  configurable: true
2009
2006
  });
2010
- NgDropdownPanelComponent.prototype.handleMousedown = function ($event) {
2011
- var target = $event.target;
2012
- if (target.tagName === 'INPUT') {
2013
- return;
2014
- }
2015
- $event.preventDefault();
2016
- };
2017
2007
  NgDropdownPanelComponent.prototype.ngOnInit = function () {
2018
2008
  this._select = this._dropdown.parentElement;
2019
2009
  this._virtualPadding = this.paddingElementRef.nativeElement;
@@ -2022,6 +2012,7 @@
2022
2012
  this._handleScroll();
2023
2013
  this._handleOutsideClick();
2024
2014
  this._appendDropdown();
2015
+ this._setupMousedownListener();
2025
2016
  };
2026
2017
  NgDropdownPanelComponent.prototype.ngOnChanges = function (changes) {
2027
2018
  if (changes.items) {
@@ -2069,23 +2060,28 @@
2069
2060
  };
2070
2061
  NgDropdownPanelComponent.prototype._handleDropdownPosition = function () {
2071
2062
  this._currentPosition = this._calculateCurrentPosition(this._dropdown);
2072
- if (this._currentPosition === 'top') {
2073
- this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);
2074
- this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);
2075
- this._renderer.addClass(this._select, TOP_CSS_CLASS);
2076
- this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS);
2063
+ if (CSS_POSITIONS.includes(this._currentPosition)) {
2064
+ this._updateDropdownClass(this._currentPosition);
2077
2065
  }
2078
2066
  else {
2079
- this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);
2080
- this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);
2081
- this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);
2082
- this._renderer.removeClass(this._select, TOP_CSS_CLASS);
2067
+ this._updateDropdownClass('bottom');
2083
2068
  }
2084
2069
  if (this.appendTo) {
2085
2070
  this._updateYPosition();
2086
2071
  }
2087
2072
  this._dropdown.style.opacity = '1';
2088
2073
  };
2074
+ NgDropdownPanelComponent.prototype._updateDropdownClass = function (currentPosition) {
2075
+ var _this = this;
2076
+ CSS_POSITIONS.forEach(function (position) {
2077
+ var REMOVE_CSS_CLASS = "ng-select-" + position;
2078
+ _this._renderer.removeClass(_this._dropdown, REMOVE_CSS_CLASS);
2079
+ _this._renderer.removeClass(_this._select, REMOVE_CSS_CLASS);
2080
+ });
2081
+ var ADD_CSS_CLASS = "ng-select-" + currentPosition;
2082
+ this._renderer.addClass(this._dropdown, ADD_CSS_CLASS);
2083
+ this._renderer.addClass(this._select, ADD_CSS_CLASS);
2084
+ };
2089
2085
  NgDropdownPanelComponent.prototype._handleScroll = function () {
2090
2086
  var _this = this;
2091
2087
  this._zone.runOutsideAngular(function () {
@@ -2280,6 +2276,20 @@
2280
2276
  this._dropdown.style.bottom = 'auto';
2281
2277
  }
2282
2278
  };
2279
+ NgDropdownPanelComponent.prototype._setupMousedownListener = function () {
2280
+ var _this = this;
2281
+ this._zone.runOutsideAngular(function () {
2282
+ rxjs.fromEvent(_this._dropdown, 'mousedown')
2283
+ .pipe(operators.takeUntil(_this._destroy$))
2284
+ .subscribe(function (event) {
2285
+ var target = event.target;
2286
+ if (target.tagName === 'INPUT') {
2287
+ return;
2288
+ }
2289
+ event.preventDefault();
2290
+ });
2291
+ });
2292
+ };
2283
2293
  return NgDropdownPanelComponent;
2284
2294
  }());
2285
2295
  NgDropdownPanelComponent.decorators = [
@@ -2313,8 +2323,7 @@
2313
2323
  outsideClick: [{ type: i0.Output }],
2314
2324
  contentElementRef: [{ type: i0.ViewChild, args: ['content', { read: i0.ElementRef, static: true },] }],
2315
2325
  scrollElementRef: [{ type: i0.ViewChild, args: ['scroll', { read: i0.ElementRef, static: true },] }],
2316
- paddingElementRef: [{ type: i0.ViewChild, args: ['padding', { read: i0.ElementRef, static: true },] }],
2317
- handleMousedown: [{ type: i0.HostListener, args: ['mousedown', ['$event'],] }]
2326
+ paddingElementRef: [{ type: i0.ViewChild, args: ['padding', { read: i0.ElementRef, static: true },] }]
2318
2327
  };
2319
2328
 
2320
2329
  var NgOptionComponent = /** @class */ (function () {
@@ -2401,6 +2410,7 @@
2401
2410
  var _this = this;
2402
2411
  this.classes = classes;
2403
2412
  this.autoFocus = autoFocus;
2413
+ this.config = config;
2404
2414
  this._cd = _cd;
2405
2415
  this._console = _console;
2406
2416
  this.markFirst = true;
@@ -2492,7 +2502,15 @@
2492
2502
  configurable: true
2493
2503
  });
2494
2504
  Object.defineProperty(NgSelectComponent.prototype, "clearSearchOnAdd", {
2495
- get: function () { return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect; },
2505
+ get: function () {
2506
+ if (isDefined(this._clearSearchOnAdd)) {
2507
+ return this._clearSearchOnAdd;
2508
+ }
2509
+ else if (isDefined(this.config.clearSearchOnAdd)) {
2510
+ return this.config.clearSearchOnAdd;
2511
+ }
2512
+ return this.closeOnSelect;
2513
+ },
2496
2514
  set: function (value) {
2497
2515
  this._clearSearchOnAdd = value;
2498
2516
  },
@@ -3228,7 +3246,7 @@
3228
3246
  '[class.ng-select]': 'useDefaultClass',
3229
3247
  '[class.ng-select-single]': '!multiple',
3230
3248
  },
3231
- styles: [".ng-select{position:relative;display:block}.ng-select,.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border:2px solid rgba(66,66,66,.2);border-left-color:#424242;transform:translateZ(0);-webkit-animation:load8 .8s linear infinite;animation:load8 .8s linear infinite}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@-webkit-keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\"\\200b\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}"]
3249
+ styles: [".ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\"\\200b\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:bold;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n"]
3232
3250
  },] }
3233
3251
  ];
3234
3252
  NgSelectComponent.ctorParameters = function () { return [
@@ -3465,26 +3483,26 @@
3465
3483
  exports.NgSelectConfig = NgSelectConfig;
3466
3484
  exports.NgSelectModule = NgSelectModule;
3467
3485
  exports.SELECTION_MODEL_FACTORY = SELECTION_MODEL_FACTORY;
3468
- exports.ɵb = DefaultSelectionModelFactory;
3469
- exports.ɵc = DefaultSelectionModel;
3470
- exports.ɵd = NgDropdownPanelService;
3471
- exports.ɵe = NgItemLabelDirective;
3472
- exports.ɵf = NgOptionTemplateDirective;
3473
- exports.ɵg = NgOptgroupTemplateDirective;
3474
- exports.ɵh = NgLabelTemplateDirective;
3475
- exports.ɵi = NgMultiLabelTemplateDirective;
3476
- exports.ɵj = NgHeaderTemplateDirective;
3477
- exports.ɵk = NgFooterTemplateDirective;
3478
- exports.ɵl = NgNotFoundTemplateDirective;
3479
- exports.ɵm = NgTypeToSearchTemplateDirective;
3480
- exports.ɵn = NgLoadingTextTemplateDirective;
3481
- exports.ɵo = NgTagTemplateDirective;
3482
- exports.ɵp = NgLoadingSpinnerTemplateDirective;
3483
- exports.ɵq = NgDropdownPanelComponent;
3484
- exports.ɵr = NgOptionComponent;
3485
- exports.ɵs = ConsoleService;
3486
+ exports["ɵb"] = DefaultSelectionModelFactory;
3487
+ exports["ɵc"] = DefaultSelectionModel;
3488
+ exports["ɵd"] = NgDropdownPanelService;
3489
+ exports["ɵe"] = NgItemLabelDirective;
3490
+ exports["ɵf"] = NgOptionTemplateDirective;
3491
+ exports["ɵg"] = NgOptgroupTemplateDirective;
3492
+ exports["ɵh"] = NgLabelTemplateDirective;
3493
+ exports["ɵi"] = NgMultiLabelTemplateDirective;
3494
+ exports["ɵj"] = NgHeaderTemplateDirective;
3495
+ exports["ɵk"] = NgFooterTemplateDirective;
3496
+ exports["ɵl"] = NgNotFoundTemplateDirective;
3497
+ exports["ɵm"] = NgTypeToSearchTemplateDirective;
3498
+ exports["ɵn"] = NgLoadingTextTemplateDirective;
3499
+ exports["ɵo"] = NgTagTemplateDirective;
3500
+ exports["ɵp"] = NgLoadingSpinnerTemplateDirective;
3501
+ exports["ɵq"] = NgDropdownPanelComponent;
3502
+ exports["ɵr"] = NgOptionComponent;
3503
+ exports["ɵs"] = ConsoleService;
3486
3504
 
3487
3505
  Object.defineProperty(exports, '__esModule', { value: true });
3488
3506
 
3489
- })));
3507
+ }));
3490
3508
  //# sourceMappingURL=ng-select-ng-select.umd.js.map