@ng-select/ng-select 7.3.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.
- package/bundles/ng-select-ng-select.umd.js +39 -37
- package/bundles/ng-select-ng-select.umd.js.map +1 -1
- package/esm2015/lib/ng-dropdown-panel.component.js +15 -12
- package/esm2015/lib/ng-select.component.js +2 -2
- package/fesm2015/ng-select-ng-select.js +15 -12
- package/fesm2015/ng-select-ng-select.js.map +1 -1
- package/lib/ng-dropdown-panel.component.d.ts +1 -0
- package/lib/ng-select.component.d.ts +1 -1
- package/ng-select-ng-select.metadata.json +1 -1
- package/package.json +1 -1
- package/scss/ant.design.theme.scss +15 -2
- package/scss/default.theme.scss +50 -6
- package/scss/material.theme.scss +13 -2
- package/themes/ant.design.theme.css +1 -1
- package/themes/default.theme.css +1 -1
- package/themes/material.theme.css +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-select-ng-select.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../src/ng-select/lib/value-utils.ts","../../../src/ng-select/lib/ng-templates.directive.ts","../../../src/ng-select/lib/console.service.ts","../../../src/ng-select/lib/id.ts","../../../src/ng-select/lib/search-helper.ts","../../../src/ng-select/lib/items-list.ts","../../../src/ng-select/lib/ng-select.types.ts","../../../src/ng-select/lib/ng-dropdown-panel.service.ts","../../../src/ng-select/lib/ng-dropdown-panel.component.ts","../../../src/ng-select/lib/ng-option.component.ts","../../../src/ng-select/lib/config.service.ts","../../../src/ng-select/lib/ng-select.component.ts","../../../src/ng-select/lib/selection-model.ts","../../../src/ng-select/lib/ng-select.module.ts","../../../src/ng-select/public-api.ts","../../../src/ng-select/ng-select-ng-select.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","const unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nexport function escapeHTML(string: string) {\n return (string && hasUnescapedHTMLExp.test(string)) ?\n string.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :\n string;\n}\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && isDefined(value);\n}\n\nexport function isPromise(value: any) {\n return value instanceof Promise;\n}\n\nexport function isFunction(value: any) {\n return value instanceof Function;\n}\n","import { Directive, ElementRef, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';\nimport { escapeHTML } from './value-utils';\n\n@Directive({ selector: '[ngItemLabel]' })\nexport class NgItemLabelDirective implements OnChanges {\n @Input() ngItemLabel: string;\n @Input() escape = true;\n\n constructor(private element: ElementRef<HTMLElement>) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.element.nativeElement.innerHTML = this.escape ?\n escapeHTML(this.ngItemLabel) :\n this.ngItemLabel;\n }\n}\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class NgOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class NgOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class NgLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class NgMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class NgHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class NgFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class NgNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class NgTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class NgLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class NgTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class NgLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ConsoleService {\n warn(message: string) {\n console.warn(message)\n }\n}\n","export function newId() {\n // First character is an 'a', it's good practice to tag id to begin with a letter\n return 'axxxxxxxxxxx'.replace(/[x]/g, function (_) {\n // tslint:disable-next-line:no-bitwise\n const val = Math.random() * 16 | 0;\n return val.toString(16);\n });\n}\n","const diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n};\n\nexport function stripSpecialChars(text: string): string {\n const match = (a: string): string => {\n return diacritics[a] || a;\n };\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n}\n","import { newId } from './id';\nimport { NgSelectComponent } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport * as searchHelper from './search-helper';\nimport { SelectionModel } from './selection-model';\nimport { isDefined, isFunction, isObject } from './value-utils';\n\ntype OptionGroups = Map<string | NgOption, NgOption[]>;\n\nexport class ItemsList {\n private _groups: OptionGroups;\n\n constructor(\n private _ngSelect: NgSelectComponent,\n private _selectionModel: SelectionModel) {\n }\n\n private _items: NgOption[] = [];\n\n get items(): NgOption[] {\n return this._items;\n }\n\n private _filteredItems: NgOption[] = [];\n\n get filteredItems(): NgOption[] {\n return this._filteredItems;\n }\n\n private _markedIndex = -1;\n\n get markedIndex(): number {\n return this._markedIndex;\n }\n\n get selectedItems() {\n return this._selectionModel.value;\n }\n\n get markedItem(): NgOption {\n return this._filteredItems[this._markedIndex];\n }\n\n get noItemsToSelect(): boolean {\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\n }\n\n get maxItemsSelected(): boolean {\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\n }\n\n get lastSelectedItem() {\n let i = this.selectedItems.length - 1;\n for (; i >= 0; i--) {\n let item = this.selectedItems[i];\n if (!item.disabled) {\n return item;\n }\n }\n return null;\n }\n\n setItems(items: any[]) {\n this._items = items.map((item, index) => this.mapItem(item, index));\n if (this._ngSelect.groupBy) {\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\n this._items = this._flatten(this._groups);\n } else {\n this._groups = new Map();\n this._groups.set(undefined, this._items)\n }\n this._filteredItems = [...this._items];\n }\n\n select(item: NgOption) {\n if (item.selected || this.maxItemsSelected) {\n return;\n }\n const multiple = this._ngSelect.multiple;\n if (!multiple) {\n this.clearSelected();\n }\n\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel);\n if (this._ngSelect.hideSelected) {\n this._hideSelected(item);\n }\n }\n\n unselect(item: NgOption) {\n if (!item.selected) {\n return;\n }\n this._selectionModel.unselect(item, this._ngSelect.multiple);\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\n this._showSelected(item);\n }\n }\n\n findItem(value: any): NgOption {\n let findBy: (item: NgOption) => boolean;\n if (this._ngSelect.compareWith) {\n findBy = item => this._ngSelect.compareWith(item.value, value)\n } else if (this._ngSelect.bindValue) {\n findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value\n } else {\n findBy = item => item.value === value ||\n !item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel)\n }\n return this._items.find(item => findBy(item));\n }\n\n addItem(item: any) {\n const option = this.mapItem(item, this._items.length);\n this._items.push(option);\n this._filteredItems.push(option);\n return option;\n }\n\n clearSelected(keepDisabled = false) {\n this._selectionModel.clear(keepDisabled);\n this._items.forEach(item => {\n item.selected = keepDisabled && item.selected && item.disabled;\n item.marked = false;\n });\n if (this._ngSelect.hideSelected) {\n this.resetFilteredItems();\n }\n }\n\n findByLabel(term: string) {\n term = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n return this.filteredItems.find(item => {\n const label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\n return label.substr(0, term.length) === term;\n });\n }\n\n filter(term: string): void {\n if (!term) {\n this.resetFilteredItems();\n return;\n }\n\n this._filteredItems = [];\n term = this._ngSelect.searchFn ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\n const hideSelected = this._ngSelect.hideSelected;\n\n for (const key of Array.from(this._groups.keys())) {\n const matchedItems = [];\n for (const item of this._groups.get(key)) {\n if (hideSelected && (item.parent && item.parent.selected || item.selected)) {\n continue;\n }\n const searchItem = this._ngSelect.searchFn ? item.value : item;\n if (match(term, searchItem)) {\n matchedItems.push(item);\n }\n }\n if (matchedItems.length > 0) {\n const [last] = matchedItems.slice(-1);\n if (last.parent) {\n const head = this._items.find(x => x === last.parent);\n this._filteredItems.push(head);\n }\n this._filteredItems.push(...matchedItems);\n }\n }\n }\n\n resetFilteredItems() {\n if (this._filteredItems.length === this._items.length) {\n return;\n }\n\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\n this._filteredItems = this._items.filter(x => !x.selected);\n } else {\n this._filteredItems = this._items;\n }\n }\n\n unmarkItem() {\n this._markedIndex = -1;\n }\n\n markNextItem() {\n this._stepToItem(+1);\n }\n\n markPreviousItem() {\n this._stepToItem(-1);\n }\n\n markItem(item: NgOption) {\n this._markedIndex = this._filteredItems.indexOf(item);\n }\n\n markSelectedOrDefault(markDefault?: boolean) {\n if (this._filteredItems.length === 0) {\n return;\n }\n\n const lastMarkedIndex = this._getLastMarkedIndex();\n if (lastMarkedIndex > -1) {\n this._markedIndex = lastMarkedIndex;\n } else {\n this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;\n }\n }\n\n resolveNested(option: any, key: string): any {\n if (!isObject(option)) {\n return option;\n }\n if (key.indexOf('.') === -1) {\n return option[key];\n } else {\n let keys: string[] = key.split('.');\n let value = option;\n for (let i = 0, len = keys.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[keys[i]];\n }\n return value;\n }\n }\n\n mapItem(item: any, index: number): NgOption {\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\n return {\n index: index,\n label: isDefined(label) ? label.toString() : '',\n value: value,\n disabled: item.disabled,\n htmlId: `${this._ngSelect.dropdownId}-${index}`,\n };\n }\n\n mapSelectedItems() {\n const multiple = this._ngSelect.multiple;\n for (const selected of this.selectedItems) {\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\n const item = isDefined(value) ? this.findItem(value) : null;\n this._selectionModel.unselect(selected, multiple);\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\n }\n\n if (this._ngSelect.hideSelected) {\n this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);\n }\n }\n\n private _showSelected(item: NgOption) {\n this._filteredItems.push(item);\n if (item.parent) {\n const parent = item.parent;\n const parentExists = this._filteredItems.find(x => x === parent);\n if (!parentExists) {\n this._filteredItems.push(parent);\n }\n } else if (item.children) {\n for (const child of item.children) {\n child.selected = false;\n this._filteredItems.push(child);\n }\n }\n this._filteredItems = [...this._filteredItems.sort((a, b) => (a.index - b.index))];\n }\n\n private _hideSelected(item: NgOption) {\n this._filteredItems = this._filteredItems.filter(x => x !== item);\n if (item.parent) {\n const children = item.parent.children;\n if (children.every(x => x.selected)) {\n this._filteredItems = this._filteredItems.filter(x => x !== item.parent);\n }\n } else if (item.children) {\n this._filteredItems = this.filteredItems.filter(x => x.parent !== item);\n }\n }\n\n private _defaultSearchFn(search: string, opt: NgOption) {\n const label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\n return label.indexOf(search) > -1\n }\n\n private _getNextItemIndex(steps: number) {\n if (steps > 0) {\n return (this._markedIndex >= this._filteredItems.length - 1) ? 0 : (this._markedIndex + 1);\n }\n return (this._markedIndex <= 0) ? (this._filteredItems.length - 1) : (this._markedIndex - 1);\n }\n\n private _stepToItem(steps: number) {\n if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {\n return;\n }\n\n this._markedIndex = this._getNextItemIndex(steps);\n if (this.markedItem.disabled) {\n this._stepToItem(steps);\n }\n }\n\n private _getLastMarkedIndex() {\n if (this._ngSelect.hideSelected) {\n return -1;\n }\n\n if (this._markedIndex > -1 && this.markedItem === undefined) {\n return -1;\n }\n\n const selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n if (this.lastSelectedItem && selectedIndex < 0) {\n return -1;\n }\n\n return Math.max(this.markedIndex, selectedIndex);\n }\n\n private _groupBy(items: NgOption[], prop: string | Function): OptionGroups {\n const groups = new Map<string | NgOption, NgOption[]>();\n if (items.length === 0) {\n return groups;\n }\n\n // Check if items are already grouped by given key.\n if (Array.isArray(items[0].value[<string>prop])) {\n for (const item of items) {\n const children = (item.value[<string>prop] || []).map((x, index) => this.mapItem(x, index));\n groups.set(item, children);\n }\n return groups;\n }\n\n const isFnKey = isFunction(this._ngSelect.groupBy);\n const keyFn = (item: NgOption) => {\n let key = isFnKey ? (<Function>prop)(item.value) : item.value[<string>prop];\n return isDefined(key) ? key : undefined;\n };\n\n // Group items by key.\n for (const item of items) {\n let key = keyFn(item);\n const group = groups.get(key);\n if (group) {\n group.push(item);\n } else {\n groups.set(key, [item]);\n }\n }\n return groups;\n }\n\n private _flatten(groups: OptionGroups) {\n const isGroupByFn = isFunction(this._ngSelect.groupBy);\n const items = [];\n for (const key of Array.from(groups.keys())) {\n let i = items.length;\n if (key === undefined) {\n const withoutGroup = groups.get(undefined) || [];\n items.push(...withoutGroup.map(x => {\n x.index = i++;\n return x;\n }));\n continue;\n }\n\n const isObjectKey = isObject(key);\n const parent: NgOption = {\n label: isObjectKey ? '' : String(key),\n children: undefined,\n parent: null,\n index: i++,\n disabled: !this._ngSelect.selectableGroup,\n htmlId: newId(),\n };\n const groupKey = isGroupByFn ? this._ngSelect.bindLabel : <string>this._ngSelect.groupBy;\n const groupValue = this._ngSelect.groupValue || (() => {\n if (isObjectKey) {\n return (<NgOption>key).value;\n }\n return { [groupKey]: key };\n });\n const children = groups.get(key).map(x => {\n x.parent = parent;\n x.children = undefined;\n x.index = i++;\n return x;\n });\n parent.children = children;\n parent.value = groupValue(key, children.map(x => x.value));\n items.push(parent);\n items.push(...children);\n }\n return items;\n }\n}\n","export interface NgOption {\n [name: string]: any;\n index?: number;\n htmlId?: string;\n selected?: boolean;\n disabled?: boolean;\n marked?: boolean;\n label?: string;\n value?: string | Object;\n parent?: NgOption;\n children?: NgOption[];\n}\n\nexport enum KeyCode {\n Tab = 9,\n Enter = 13,\n Esc = 27,\n Space = 32,\n ArrowUp = 38,\n ArrowDown = 40,\n Backspace = 8\n}\n","import { Injectable } from '@angular/core';\nexport interface ItemsRangeResult {\n scrollHeight: number;\n topPadding: number;\n start: number;\n end: number;\n}\n\nexport interface PanelDimensions {\n itemHeight: number;\n panelHeight: number;\n itemsPerViewport: number;\n}\n\n@Injectable()\nexport class NgDropdownPanelService {\n\n private _dimensions: PanelDimensions = {\n itemHeight: 0,\n panelHeight: 0,\n itemsPerViewport: 0\n };\n\n get dimensions() {\n return this._dimensions;\n }\n\n calculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult {\n const d = this._dimensions;\n const scrollHeight = d.itemHeight * itemsLength;\n\n const scrollTop = Math.max(0, scrollPos);\n const indexByScrollTop = scrollTop / scrollHeight * itemsLength;\n let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n\n const maxStartEnd = end;\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\n\n let topPadding = d.itemHeight * Math.ceil(start) - (d.itemHeight * Math.min(start, buffer));\n topPadding = !isNaN(topPadding) ? topPadding : 0;\n start = !isNaN(start) ? start : -1;\n end = !isNaN(end) ? end : -1;\n start -= buffer;\n start = Math.max(0, start);\n end += buffer;\n end = Math.min(itemsLength, end);\n\n return {\n topPadding,\n scrollHeight,\n start,\n end\n }\n }\n\n setDimensions(itemHeight: number, panelHeight: number) {\n const itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n this._dimensions = {\n itemHeight,\n panelHeight,\n itemsPerViewport\n };\n }\n\n getScrollTo(itemTop: number, itemHeight: number, lastScroll: number) {\n const { panelHeight } = this.dimensions;\n const itemBottom = itemTop + itemHeight;\n const top = lastScroll;\n const bottom = top + panelHeight;\n\n if (panelHeight >= itemBottom && lastScroll === itemTop) {\n return null;\n }\n\n if (itemBottom > bottom) {\n return top + itemBottom - bottom;\n } else if (itemTop <= top) {\n return itemTop;\n }\n\n return null;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { animationFrameScheduler, asapScheduler, fromEvent, merge, Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { NgDropdownPanelService, PanelDimensions } from './ng-dropdown-panel.service';\n\nimport { DropdownPosition } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport { isDefined } from './value-utils';\n\nconst TOP_CSS_CLASS = 'ng-select-top';\nconst BOTTOM_CSS_CLASS = 'ng-select-bottom';\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'ng-dropdown-panel',\n template: `\n <div *ngIf=\"headerTemplate\" class=\"ng-dropdown-header\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n <div #scroll class=\"ng-dropdown-panel-items scroll-host\">\n <div #padding [class.total-padding]=\"virtualScroll\"></div>\n <div #content [class.scrollable-content]=\"virtualScroll && items.length\">\n <ng-content></ng-content>\n </div>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"ng-dropdown-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n `\n})\nexport class NgDropdownPanelComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() items: NgOption[] = [];\n @Input() markedItem: NgOption;\n @Input() position: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() bufferAmount;\n @Input() virtualScroll = false;\n @Input() headerTemplate: TemplateRef<any>;\n @Input() footerTemplate: TemplateRef<any>;\n @Input() filterValue: string = null;\n\n @Output() update = new EventEmitter<any[]>();\n @Output() scroll = new EventEmitter<{ start: number; end: number }>();\n @Output() scrollToEnd = new EventEmitter<void>();\n @Output() outsideClick = new EventEmitter<void>();\n\n @ViewChild('content', { read: ElementRef, static: true }) contentElementRef: ElementRef;\n @ViewChild('scroll', { read: ElementRef, static: true }) scrollElementRef: ElementRef;\n @ViewChild('padding', { read: ElementRef, static: true }) paddingElementRef: ElementRef;\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _dropdown: HTMLElement;\n private _virtualPadding: HTMLElement;\n private _scrollablePanel: HTMLElement;\n private _contentPanel: HTMLElement;\n private _select: HTMLElement;\n private _parent: HTMLElement;\n private _scrollToEndFired = false;\n private _updateScrollHeight = false;\n private _lastScrollPosition = 0;\n\n constructor(\n private _renderer: Renderer2,\n private _zone: NgZone,\n private _panelService: NgDropdownPanelService,\n _elementRef: ElementRef,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n this._dropdown = _elementRef.nativeElement;\n }\n\n private _currentPosition: DropdownPosition;\n\n get currentPosition(): DropdownPosition {\n return this._currentPosition;\n }\n\n private _itemsLength: number;\n\n private get itemsLength() {\n return this._itemsLength;\n }\n\n private set itemsLength(value: number) {\n if (value !== this._itemsLength) {\n this._itemsLength = value;\n this._onItemsLengthChanged();\n }\n }\n\n private get _startOffset() {\n if (this.markedItem) {\n const { itemHeight, panelHeight } = this._panelService.dimensions;\n const offset = this.markedItem.index * itemHeight;\n return panelHeight > offset ? 0 : offset;\n }\n return 0;\n }\n\n ngOnInit() {\n this._select = this._dropdown.parentElement;\n this._virtualPadding = this.paddingElementRef.nativeElement;\n this._scrollablePanel = this.scrollElementRef.nativeElement;\n this._contentPanel = this.contentElementRef.nativeElement;\n this._handleScroll();\n this._handleOutsideClick();\n this._appendDropdown();\n this._setupMousedownListener();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items) {\n const change = changes.items;\n this._onItemsChange(change.currentValue, change.firstChange);\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroy$.unsubscribe();\n if (this.appendTo) {\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n }\n }\n\n scrollTo(option: NgOption, startFromOption = false) {\n if (!option) {\n return;\n }\n\n const index = this.items.indexOf(option);\n if (index < 0 || index >= this.itemsLength) {\n return;\n }\n\n let scrollTo;\n if (this.virtualScroll) {\n const itemHeight = this._panelService.dimensions.itemHeight;\n scrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n } else {\n const item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n const lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n scrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n }\n\n if (isDefined(scrollTo)) {\n this._scrollablePanel.scrollTop = scrollTo;\n }\n }\n\n scrollToTag() {\n const panel = this._scrollablePanel;\n panel.scrollTop = panel.scrollHeight - panel.clientHeight;\n }\n\n adjustPosition() {\n this._updateYPosition();\n }\n\n private _handleDropdownPosition() {\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\n if (this._currentPosition === 'top') {\n this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);\n this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);\n this._renderer.addClass(this._select, TOP_CSS_CLASS);\n this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS)\n } else {\n this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);\n this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);\n this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);\n this._renderer.removeClass(this._select, TOP_CSS_CLASS);\n }\n\n if (this.appendTo) {\n this._updateYPosition();\n }\n\n this._dropdown.style.opacity = '1';\n }\n\n private _handleScroll() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this.scrollElementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER))\n .subscribe((e: { path, composedPath, target }) => {\n const path = e.path || (e.composedPath && e.composedPath());\n const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop\n this._onContentScrolled(scrollTop);\n });\n });\n }\n\n private _handleOutsideClick() {\n if (!this._document) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n merge(\n fromEvent(this._document, 'touchstart', { capture: true }),\n fromEvent(this._document, 'mousedown', { capture: true })\n ).pipe(takeUntil(this._destroy$))\n .subscribe($event => this._checkToClose($event));\n });\n }\n\n private _checkToClose($event: any) {\n if (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n return;\n }\n\n const path = $event.path || ($event.composedPath && $event.composedPath());\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n return;\n }\n\n this._zone.run(() => this.outsideClick.emit());\n }\n\n private _onItemsChange(items: NgOption[], firstChange: boolean) {\n this.items = items || [];\n this._scrollToEndFired = false;\n this.itemsLength = items.length;\n\n if (this.virtualScroll) {\n this._updateItemsRange(firstChange);\n } else {\n this._setVirtualHeight();\n this._updateItems(firstChange);\n }\n }\n\n private _updateItems(firstChange: boolean) {\n this.update.emit(this.items);\n if (firstChange === false) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(0, panelHeight);\n this._handleDropdownPosition();\n this.scrollTo(this.markedItem, firstChange);\n });\n });\n }\n\n private _updateItemsRange(firstChange: boolean) {\n this._zone.runOutsideAngular(() => {\n this._measureDimensions().then(() => {\n if (firstChange) {\n this._renderItemsRange(this._startOffset);\n this._handleDropdownPosition();\n } else {\n this._renderItemsRange();\n }\n });\n });\n }\n\n private _onContentScrolled(scrollTop: number) {\n if (this.virtualScroll) {\n this._renderItemsRange(scrollTop);\n }\n this._lastScrollPosition = scrollTop;\n this._fireScrollToEnd(scrollTop);\n }\n\n private _updateVirtualHeight(height: number) {\n if (this._updateScrollHeight) {\n this._virtualPadding.style.height = `${height}px`;\n this._updateScrollHeight = false;\n }\n }\n\n private _setVirtualHeight() {\n\n if (!this._virtualPadding) {\n return;\n }\n\n this._virtualPadding.style.height = `0px`;\n }\n\n private _onItemsLengthChanged() {\n this._updateScrollHeight = true;\n }\n\n private _renderItemsRange(scrollTop = null) {\n if (scrollTop && this._lastScrollPosition === scrollTop) {\n return;\n }\n\n scrollTop = scrollTop || this._scrollablePanel.scrollTop;\n const range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount);\n this._updateVirtualHeight(range.scrollHeight);\n this._contentPanel.style.transform = `translateY(${range.topPadding}px)`;\n\n this._zone.run(() => {\n this.update.emit(this.items.slice(range.start, range.end));\n this.scroll.emit({ start: range.start, end: range.end });\n });\n\n if (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n this._scrollablePanel.scrollTop = scrollTop;\n this._lastScrollPosition = scrollTop;\n }\n }\n\n private _measureDimensions(): Promise<PanelDimensions> {\n if (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n return Promise.resolve(this._panelService.dimensions);\n }\n\n const [first] = this.items;\n this.update.emit([first]);\n\n return Promise.resolve().then(() => {\n const option = this._dropdown.querySelector(`#${first.htmlId}`);\n const optionHeight = option.clientHeight;\n this._virtualPadding.style.height = `${optionHeight * this.itemsLength}px`;\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(optionHeight, panelHeight);\n\n return this._panelService.dimensions;\n });\n }\n\n private _fireScrollToEnd(scrollTop: number) {\n if (this._scrollToEndFired || scrollTop === 0) {\n return;\n }\n\n const padding = this.virtualScroll ?\n this._virtualPadding :\n this._contentPanel;\n\n if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {\n this._zone.run(() => this.scrollToEnd.emit());\n this._scrollToEndFired = true;\n }\n }\n\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {\n if (this.position !== 'auto') {\n return this.position;\n }\n const selectRect: ClientRect = this._select.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const offsetTop = selectRect.top + window.pageYOffset;\n const height = selectRect.height;\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\n if (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n private _appendDropdown() {\n if (!this.appendTo) {\n return;\n }\n\n this._parent = document.querySelector(this.appendTo);\n if (!this._parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._updateXPosition();\n this._parent.appendChild(this._dropdown);\n }\n\n private _updateXPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\n\n this._dropdown.style.left = offsetLeft + 'px';\n this._dropdown.style.width = select.width + 'px';\n this._dropdown.style.minWidth = select.width + 'px';\n }\n\n private _updateYPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const delta = select.height;\n\n if (this._currentPosition === 'top') {\n const offsetBottom = parent.bottom - select.bottom;\n this._dropdown.style.bottom = offsetBottom + delta + 'px';\n this._dropdown.style.top = 'auto';\n } else if (this._currentPosition === 'bottom') {\n const offsetTop = select.top - parent.top;\n this._dropdown.style.top = offsetTop + delta + 'px';\n this._dropdown.style.bottom = 'auto';\n }\n }\n\n private _setupMousedownListener(): void {\n this._zone.runOutsideAngular(() => {\n fromEvent(this._dropdown, 'mousedown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (target.tagName === 'INPUT') {\n return;\n }\n event.preventDefault();\n });\n });\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'ng-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`\n})\nexport class NgOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n\n @Input() value: any;\n @Input()\n get disabled() { return this._disabled; }\n set disabled(value: any) { this._disabled = this._isDisabled(value) }\n\n readonly stateChange$ = new Subject<{ value: any, disabled: boolean, label?: string }>();\n\n private _disabled = false;\n private _previousLabel: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) { }\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n placeholder: string;\n notFoundText = 'No items found';\n typeToSearchText = 'Type to search';\n addTagText = 'Add item';\n loadingText = 'Loading...';\n clearAllText = 'Clear all';\n disableVirtualScroll = true;\n openOnEnter = true;\n appendTo: string;\n bindValue: string;\n bindLabel: string;\n appearance = 'underline';\n clearSearchOnAdd: boolean;\n}\n","import {\n Component,\n OnDestroy,\n OnChanges,\n AfterViewInit,\n forwardRef,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n ViewEncapsulation,\n HostListener,\n HostBinding,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n Inject,\n SimpleChanges,\n ContentChildren,\n QueryList,\n InjectionToken,\n Attribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil, startWith, tap, debounceTime, map, filter } from 'rxjs/operators';\nimport { Subject, merge } from 'rxjs';\n\nimport {\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgOptgroupTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n} from './ng-templates.directive';\n\nimport { ConsoleService } from './console.service';\nimport { isDefined, isFunction, isPromise, isObject } from './value-utils';\nimport { ItemsList } from './items-list';\nimport { NgOption, KeyCode } from './ng-select.types';\nimport { newId } from './id';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { SelectionModelFactory } from './selection-model';\nimport { NgSelectConfig } from './config.service';\nimport { NgDropdownPanelService } from './ng-dropdown-panel.service';\n\nexport const SELECTION_MODEL_FACTORY = new InjectionToken<SelectionModelFactory>('ng-select-selection-model');\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = ((term: string) => any | Promise<any>);\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (key: string | object, children: any[]) => string | object;\n\n@Component({\n selector: 'ng-select',\n templateUrl: './ng-select.component.html',\n styleUrls: ['./ng-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.ng-select]': 'useDefaultClass',\n '[class.ng-select-single]': '!multiple',\n }\n})\nexport class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor {\n\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() markFirst = true;\n @Input() placeholder: string;\n @Input() notFoundText: string;\n @Input() typeToSearchText: string;\n @Input() addTagText: string;\n @Input() loadingText: string;\n @Input() clearAllText: string;\n @Input() appearance: string;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() loading = false;\n @Input() closeOnSelect = true;\n @Input() hideSelected = false;\n @Input() selectOnTab = false;\n @Input() openOnEnter: boolean;\n @Input() maxSelectedItems: number;\n @Input() groupBy: string | Function;\n @Input() groupValue: GroupValueFn;\n @Input() bufferAmount = 4;\n @Input() virtualScroll: boolean;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() searchFn = null;\n @Input() trackByFn = null;\n @Input() clearOnBackspace = true;\n @Input() labelForId = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex: number;\n @Input() readonly = false;\n @Input() searchWhileComposing = true;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n\n @Input() @HostBinding('class.ng-select-typeahead') typeahead: Subject<string>;\n @Input() @HostBinding('class.ng-select-multiple') multiple = false;\n @Input() @HostBinding('class.ng-select-taggable') addTag: boolean | AddTagFn = false;\n @Input() @HostBinding('class.ng-select-searchable') searchable = true;\n @Input() @HostBinding('class.ng-select-clearable') clearable = true;\n @Input() @HostBinding('class.ng-select-opened') isOpen = false;\n\n @Input()\n get items() { return this._items };\n\n set items(value: any[] | null) {\n if (value === null) {\n value = [];\n }\n this._itemsAreUsed = true;\n this._items = value;\n };\n\n @Input()\n get compareWith() { return this._compareWith; }\n\n set compareWith(fn: CompareWithFn) {\n if (fn !== undefined && fn !== null && !isFunction(fn)) {\n throw Error('`compareWith` must be a function.');\n }\n this._compareWith = fn;\n }\n\n @Input()\n get clearSearchOnAdd() {\n if (isDefined(this._clearSearchOnAdd)) {\n return this._clearSearchOnAdd;\n } else if (isDefined(this.config.clearSearchOnAdd)) {\n return this.config.clearSearchOnAdd;\n }\n return this.closeOnSelect;\n };\n\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n };\n\n // output events\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string, items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n // custom templates\n @ContentChild(NgOptionTemplateDirective, { read: TemplateRef }) optionTemplate: TemplateRef<any>;\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef }) optgroupTemplate: TemplateRef<any>;\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef }) labelTemplate: TemplateRef<any>;\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef }) multiLabelTemplate: TemplateRef<any>;\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef }) headerTemplate: TemplateRef<any>;\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef }) footerTemplate: TemplateRef<any>;\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef }) notFoundTemplate: TemplateRef<any>;\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef }) typeToSearchTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef }) loadingTextTemplate: TemplateRef<any>;\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef }) tagTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef }) loadingSpinnerTemplate: TemplateRef<any>;\n\n @ViewChild(forwardRef(() => NgDropdownPanelComponent)) dropdownPanel: NgDropdownPanelComponent;\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef<HTMLInputElement>;\n @ContentChildren(NgOptionComponent, { descendants: true }) ngOptions: QueryList<NgOptionComponent>;\n\n @HostBinding('class.ng-select-disabled') get disabled() { return this.readonly || this._disabled };\n\n @HostBinding('class.ng-select-filtered') get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing) };\n\n itemsList: ItemsList;\n viewPortItems: NgOption[] = [];\n searchTerm: string = null;\n dropdownId = newId();\n element: HTMLElement;\n focused: boolean;\n escapeHTML = true;\n useDefaultClass = true;\n\n private _items = [];\n private _itemsAreUsed: boolean;\n private _defaultLabel = 'label';\n private _primitive;\n private _manualOpen: boolean;\n private _disabled: boolean;\n private _pressedKeys: string[] = [];\n private _compareWith: CompareWithFn;\n private _clearSearchOnAdd: boolean;\n private _isComposing = false;\n\n private get _editableSearchTerm(): boolean {\n return this.editableSearchTerm && !this.multiple;\n }\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _keyPress$ = new Subject<string>();\n private _onChange = (_: any) => { };\n private _onTouched = () => { };\n\n clearItem = (item: any) => {\n const option = this.selectedItems.find(x => x.value === item);\n this.unselect(option);\n };\n\n constructor(\n @Attribute('class') public classes: string,\n @Attribute('autofocus') private autoFocus: any,\n public config: NgSelectConfig,\n @Inject(SELECTION_MODEL_FACTORY) newSelectionModel: SelectionModelFactory,\n _elementRef: ElementRef<HTMLElement>,\n private _cd: ChangeDetectorRef,\n private _console: ConsoleService\n ) {\n this._mergeGlobalConfig(config);\n this.itemsList = new ItemsList(this, newSelectionModel());\n this.element = _elementRef.nativeElement;\n }\n\n get selectedItems(): NgOption[] {\n return this.itemsList.selectedItems;\n }\n\n get selectedValues() {\n return this.selectedItems.map(x => x.value);\n }\n\n get hasValue() {\n return this.selectedItems.length > 0;\n }\n\n get currentPanelPosition(): DropdownPosition {\n if (this.dropdownPanel) {\n return this.dropdownPanel.currentPosition;\n }\n return undefined;\n }\n\n ngOnInit() {\n this._handleKeyPresses();\n this._setInputAttributes();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.multiple) {\n this.itemsList.clearSelected();\n }\n if (changes.items) {\n this._setItems(changes.items.currentValue || []);\n }\n if (changes.isOpen) {\n this._manualOpen = isDefined(changes.isOpen.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this.escapeHTML = false;\n this._setItemsFromNgOptions();\n }\n\n if (isDefined(this.autoFocus)) {\n this.focus();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyDown($event: KeyboardEvent) {\n const keyCode = KeyCode[$event.which];\n if (keyCode) {\n if (this.keyDownFn($event) === false) {\n return;\n }\n this.handleKeyCode($event)\n } else if ($event.key && $event.key.length === 1) {\n this._keyPress$.next($event.key.toLocaleLowerCase());\n }\n }\n\n handleKeyCode($event: KeyboardEvent) {\n switch ($event.which) {\n case KeyCode.ArrowDown:\n this._handleArrowDown($event);\n break;\n case KeyCode.ArrowUp:\n this._handleArrowUp($event);\n break;\n case KeyCode.Space:\n this._handleSpace($event);\n break;\n case KeyCode.Enter:\n this._handleEnter($event);\n break;\n case KeyCode.Tab:\n this._handleTab($event);\n break;\n case KeyCode.Esc:\n this.close();\n $event.preventDefault();\n break;\n case KeyCode.Backspace:\n this._handleBackspace();\n break\n }\n }\n\n handleMousedown($event: MouseEvent) {\n const target = $event.target as HTMLElement;\n if (target.tagName !== 'INPUT') {\n $event.preventDefault();\n }\n\n if (target.classList.contains('ng-clear-wrapper')) {\n this.handleClearClick();\n return;\n }\n\n if (target.classList.contains('ng-arrow-wrapper')) {\n this.handleArrowClick();\n return;\n }\n\n if (target.classList.contains('ng-value-icon')) {\n return;\n }\n\n if (!this.focused) {\n this.focus();\n }\n\n if (this.searchable) {\n this.open();\n } else {\n this.toggle();\n }\n }\n\n handleArrowClick() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n handleClearClick() {\n if (this.hasValue) {\n this.itemsList.clearSelected(true);\n this._updateNgModel();\n }\n this._clearSearch();\n this.focus();\n this.clearEvent.emit();\n\n this._onSelectionChanged();\n }\n\n clearModel() {\n if (!this.clearable) {\n return;\n }\n this.itemsList.clearSelected();\n this._updateNgModel();\n }\n\n writeValue(value: any | any[]): void {\n this.itemsList.clearSelected();\n this._handleWriteValue(value);\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this._disabled = state;\n this._cd.markForCheck();\n }\n\n toggle() {\n if (!this.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n open() {\n if (this.disabled || this.isOpen || this.itemsList.maxItemsSelected || this._manualOpen) {\n return;\n }\n\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\n return;\n }\n this.isOpen = true;\n this.itemsList.markSelectedOrDefault(this.markFirst);\n this.openEvent.emit();\n if (!this.searchTerm) {\n this.focus();\n }\n this.detectChanges();\n }\n\n close() {\n if (!this.isOpen || this._manualOpen) {\n return;\n }\n this.isOpen = false;\n this._isComposing = false;\n if (!this._editableSearchTerm) {\n this._clearSearch();\n } else {\n this.itemsList.resetFilteredItems();\n }\n this.itemsList.unmarkItem();\n this._onTouched();\n this.closeEvent.emit();\n this._cd.markForCheck();\n }\n\n toggleItem(item: NgOption) {\n if (!item || item.disabled || this.disabled) {\n return;\n }\n\n if (this.multiple && item.selected) {\n this.unselect(item);\n } else {\n this.select(item);\n }\n\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n\n this._onSelectionChanged();\n }\n\n select(item: NgOption) {\n if (!item.selected) {\n this.itemsList.select(item);\n if (this.clearSearchOnAdd && !this._editableSearchTerm) {\n this._clearSearch();\n }\n\n this._updateNgModel();\n if (this.multiple) {\n this.addEvent.emit(item.value);\n }\n }\n\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\n this.close();\n }\n }\n\n focus() {\n this.searchInput.nativeElement.focus();\n }\n\n blur() {\n this.searchInput.nativeElement.blur();\n }\n\n unselect(item: NgOption) {\n if (!item) {\n return;\n }\n\n this.itemsList.unselect(item);\n this.focus();\n this._updateNgModel();\n this.removeEvent.emit(item);\n }\n\n selectTag() {\n let tag;\n if (isFunction(this.addTag)) {\n tag = (<AddTagFn>this.addTag)(this.searchTerm);\n } else {\n tag = this._primitive ? this.searchTerm : { [this.bindLabel]: this.searchTerm };\n }\n\n const handleTag = (item) => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n if (isPromise(tag)) {\n tag.then(item => this.select(handleTag(item))).catch(() => { });\n } else if (tag) {\n this.select(handleTag(tag));\n }\n }\n\n showClear() {\n return this.clearable && (this.hasValue || this.searchTerm) && !this.disabled;\n }\n\n trackByOption = (_: number, item: NgOption) => {\n if (this.trackByFn) {\n return this.trackByFn(item.value);\n }\n\n return item;\n };\n\n get showAddTag() {\n if (!this._validTerm) {\n return false;\n }\n\n const term = this.searchTerm.toLowerCase().trim();\n return this.addTag &&\n (!this.itemsList.filteredItems.some(x => x.label.toLowerCase() === term) &&\n (!this.hideSelected && this.isOpen || !this.selectedItems.some(x => x.label.toLowerCase() === term))) &&\n !this.loading;\n }\n\n showNoItemsFound() {\n const empty = this.itemsList.filteredItems.length === 0;\n return ((empty && !this._isTypeahead && !this.loading) ||\n (empty && this._isTypeahead && this._validTerm && !this.loading)) &&\n !this.showAddTag;\n }\n\n showTypeToSearch() {\n const empty = this.itemsList.filteredItems.length === 0;\n return empty && this._isTypeahead && !this._validTerm && !this.loading;\n }\n\n onCompositionStart() {\n this._isComposing = true;\n }\n\n onCompositionEnd(term: string) {\n this._isComposing = false;\n if (this.searchWhileComposing) {\n return;\n }\n\n this.filter(term);\n }\n\n filter(term: string) {\n if (this._isComposing && !this.searchWhileComposing) {\n return;\n }\n\n this.searchTerm = term;\n if (this._isTypeahead && (this._validTerm || this.minTermLength === 0)) {\n this.typeahead.next(term);\n }\n\n if (!this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n if (this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map(x => x.value) });\n this.open();\n }\n\n onInputFocus($event) {\n if (this.focused) {\n return;\n }\n\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n\n this.element.classList.add('ng-select-focused');\n this.focusEvent.emit($event);\n this.focused = true;\n }\n\n onInputBlur($event) {\n this.element.classList.remove('ng-select-focused');\n this.blurEvent.emit($event);\n if (!this.isOpen && !this.disabled) {\n this._onTouched();\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.focused = false;\n }\n\n onItemHover(item: NgOption) {\n if (item.disabled) {\n return;\n }\n this.itemsList.markItem(item);\n }\n\n detectChanges() {\n if (!(<any>this._cd).destroyed) {\n this._cd.detectChanges();\n }\n }\n\n private _setSearchTermFromItems() {\n const selected = this.selectedItems && this.selectedItems[0];\n this.searchTerm = (selected && selected.label) || null;\n }\n\n private _setItems(items: any[]) {\n const firstItem = items[0];\n this.bindLabel = this.bindLabel || this._defaultLabel;\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel === this._defaultLabel;\n this.itemsList.setItems(items);\n if (items.length > 0 && this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n if (this.isOpen && isDefined(this.searchTerm) && !this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n }\n if (this._isTypeahead || this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n private _setItemsFromNgOptions() {\n const mapNgOptions = (options: QueryList<NgOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled\n }));\n this.itemsList.setItems(this.items);\n if (this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n this.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\n merge(...this.ngOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this._cd.detectChanges();\n });\n };\n\n this.ngOptions.changes\n .pipe(startWith(this.ngOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n this.bindLabel = this._defaultLabel;\n mapNgOptions(options);\n handleOptionChange();\n });\n }\n\n private _isValidWriteValue(value: any): boolean {\n if (!isDefined(value) || (this.multiple && value === '') || Array.isArray(value) && value.length === 0) {\n return false;\n }\n\n const validateBinding = (item: any): boolean => {\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\n this._console.warn(\n `Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`\n );\n return false;\n }\n return true;\n };\n\n if (this.multiple) {\n if (!Array.isArray(value)) {\n this._console.warn('Multiple select ngModel should be array.');\n return false;\n }\n return value.every(item => validateBinding(item));\n } else {\n return validateBinding(value);\n }\n }\n\n private _handleWriteValue(ngModel: any | any[]) {\n if (!this._isValidWriteValue(ngModel)) {\n return\n }\n\n const select = (val: any) => {\n let item = this.itemsList.findItem(val);\n if (item) {\n this.itemsList.select(item);\n } else {\n const isValObject = isObject(val);\n const isPrimitive = !isValObject && !this.bindValue;\n if ((isValObject || isPrimitive)) {\n this.itemsList.select(this.itemsList.mapItem(val, null));\n } else if (this.bindValue) {\n item = {\n [this.bindLabel]: null,\n [this.bindValue]: val\n };\n this.itemsList.select(this.itemsList.mapItem(item, null));\n }\n }\n };\n\n if (this.multiple) {\n (<any[]>ngModel).forEach(item => select(item));\n } else {\n select(ngModel);\n }\n }\n\n private _handleKeyPresses() {\n if (this.searchable) {\n return;\n }\n\n this._keyPress$\n .pipe(takeUntil(this._destroy$),\n tap(letter => this._pressedKeys.push(letter)),\n debounceTime(200),\n filter(() => this._pressedKeys.length > 0),\n map(() => this._pressedKeys.join('')))\n .subscribe(term => {\n const item = this.itemsList.findByLabel(term);\n if (item) {\n if (this.isOpen) {\n this.itemsList.markItem(item);\n this._scrollToMarked();\n this._cd.markForCheck();\n } else {\n this.select(item);\n }\n }\n this._pressedKeys = [];\n });\n }\n\n private _setInputAttributes() {\n const input = this.searchInput.nativeElement;\n const attributes = {\n type: 'text',\n autocorrect: 'off',\n autocapitalize: 'off',\n autocomplete: this.labelForId ? 'off' : this.dropdownId,\n ...this.inputAttrs\n };\n\n for (const key of Object.keys(attributes)) {\n input.setAttribute(key, attributes[key]);\n }\n }\n\n private _updateNgModel() {\n const model = [];\n for (const item of this.selectedItems) {\n if (this.bindValue) {\n let value = null;\n if (item.children) {\n const groupKey = this.groupValue ? this.bindValue : <string>this.groupBy;\n value = item.value[groupKey || <string>this.groupBy];\n } else {\n value = this.itemsList.resolveNested(item.value, this.bindValue);\n }\n model.push(value);\n } else {\n model.push(item.value);\n }\n }\n\n const selected = this.selectedItems.map(x => x.value);\n if (this.multiple) {\n this._onChange(model);\n this.changeEvent.emit(selected);\n } else {\n this._onChange(isDefined(model[0]) ? model[0] : null);\n this.changeEvent.emit(selected[0]);\n }\n\n this._cd.markForCheck();\n }\n\n private _clearSearch() {\n if (!this.searchTerm) {\n return;\n }\n\n this._changeSearch(null);\n this.itemsList.resetFilteredItems();\n }\n\n private _changeSearch(searchTerm: string) {\n this.searchTerm = searchTerm;\n if (this._isTypeahead) {\n this.typeahead.next(searchTerm);\n }\n }\n\n private _scrollToMarked() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollTo(this.itemsList.markedItem);\n }\n\n private _scrollToTag() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollToTag();\n }\n\n private _onSelectionChanged() {\n if (this.isOpen && this.multiple && this.appendTo) {\n // Make sure items are rendered.\n this._cd.detectChanges();\n this.dropdownPanel.adjustPosition();\n }\n }\n\n private _handleTab($event: KeyboardEvent) {\n if (this.isOpen === false && !this.addTag) {\n return;\n }\n\n if (this.selectOnTab) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n $event.preventDefault();\n } else if (this.showAddTag) {\n this.selectTag();\n $event.preventDefault();\n } else {\n this.close();\n }\n } else {\n this.close();\n }\n }\n\n private _handleEnter($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n } else if (this.showAddTag) {\n this.selectTag();\n }\n } else if (this.openOnEnter) {\n this.open();\n } else {\n return;\n }\n\n $event.preventDefault();\n }\n\n private _handleSpace($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n return;\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowDown($event: KeyboardEvent) {\n if (this._nextItemIsTag(+1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markNextItem();\n this._scrollToMarked();\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowUp($event: KeyboardEvent) {\n if (!this.isOpen) {\n return;\n }\n\n if (this._nextItemIsTag(-1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markPreviousItem();\n this._scrollToMarked();\n }\n $event.preventDefault();\n }\n\n private _nextItemIsTag(nextStep: number): boolean {\n const nextIndex = this.itemsList.markedIndex + nextStep;\n return this.addTag && this.searchTerm\n && this.itemsList.markedItem\n && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length)\n }\n\n private _handleBackspace() {\n if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\n return;\n }\n\n if (this.multiple) {\n this.unselect(this.itemsList.lastSelectedItem);\n } else {\n this.clearModel();\n }\n }\n\n private get _isTypeahead() {\n return this.typeahead && this.typeahead.observers.length > 0;\n }\n\n private get _validTerm() {\n const term = this.searchTerm && this.searchTerm.trim();\n return term && term.length >= this.minTermLength;\n }\n\n private _mergeGlobalConfig(config: NgSelectConfig) {\n this.placeholder = this.placeholder || config.placeholder;\n this.notFoundText = this.notFoundText || config.notFoundText;\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\n this.addTagText = this.addTagText || config.addTagText;\n this.loadingText = this.loadingText || config.loadingText;\n this.clearAllText = this.clearAllText || config.clearAllText;\n this.virtualScroll = isDefined(this.virtualScroll)\n ? this.virtualScroll\n : isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\n this.appendTo = this.appendTo || config.appendTo;\n this.bindValue = this.bindValue || config.bindValue;\n this.bindLabel = this.bindLabel || config.bindLabel;\n this.appearance = this.appearance || config.appearance;\n }\n}\n","import { NgOption } from './ng-select.types';\n\nexport type SelectionModelFactory = () => SelectionModel;\n\nexport function DefaultSelectionModelFactory() {\n return new DefaultSelectionModel();\n}\n\nexport interface SelectionModel {\n value: NgOption[];\n select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean);\n unselect(item: NgOption, multiple: boolean);\n clear(keepDisabled: boolean);\n}\n\nexport class DefaultSelectionModel implements SelectionModel {\n private _selected: NgOption[] = [];\n\n get value(): NgOption[] {\n return this._selected;\n }\n\n select(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n item.selected = true;\n if (!item.children || (!multiple && groupAsModel)) {\n this._selected.push(item);\n }\n if (multiple) {\n if (item.parent) {\n const childrenCount = item.parent.children.length;\n const selectedCount = item.parent.children.filter(x => x.selected).length;\n item.parent.selected = childrenCount === selectedCount;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, true);\n this._removeChildren(item);\n if (groupAsModel && this._activeChildren(item)) {\n this._selected = [...this._selected.filter(x => x.parent !== item), item]\n } else {\n this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];\n }\n }\n }\n }\n\n unselect(item: NgOption, multiple: boolean) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n if (multiple) {\n if (item.parent && item.parent.selected) {\n const children = item.parent.children;\n this._removeParent(item.parent);\n this._removeChildren(item.parent);\n this._selected.push(...children.filter(x => x !== item && !x.disabled));\n item.parent.selected = false;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, false);\n this._removeChildren(item);\n }\n }\n }\n\n clear(keepDisabled: boolean) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n\n private _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n for (const child of children) {\n if (child.disabled) {\n continue;\n }\n child.selected = selected;\n }\n }\n\n private _removeChildren(parent: NgOption) {\n this._selected = [\n ...this._selected.filter(x => x.parent !== parent),\n ...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)\n ];\n }\n\n private _removeParent(parent: NgOption) {\n this._selected = this._selected.filter(x => x !== parent)\n }\n\n private _activeChildren(item: NgOption): boolean {\n return item.children.every(x => !x.disabled || x.selected);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './ng-select.component';\nimport {\n NgFooterTemplateDirective,\n NgHeaderTemplateDirective,\n NgLabelTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgNotFoundTemplateDirective,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgTagTemplateDirective,\n NgItemLabelDirective,\n NgTypeToSearchTemplateDirective\n} from './ng-templates.directive';\nimport { DefaultSelectionModelFactory } from './selection-model';\n\n@NgModule({\n declarations: [\n NgDropdownPanelComponent,\n NgOptionComponent,\n NgSelectComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgItemLabelDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NgSelectComponent,\n NgOptionComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n ],\n providers: [\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\n ]\n})\nexport class NgSelectModule {}\n","/*\n * Public API Surface of ng-select\n */\n\nexport { DropdownPosition, NgSelectComponent, SELECTION_MODEL_FACTORY } from './lib/ng-select.component';\nexport { NgSelectModule } from './lib/ng-select.module';\nexport { NgOption } from './lib/ng-select.types';\nexport { SelectionModel } from './lib/selection-model';\nexport { NgSelectConfig } from './lib/config.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ConsoleService as ɵs} from './lib/console.service';\nexport {NgDropdownPanelComponent as ɵq} from './lib/ng-dropdown-panel.component';\nexport {NgDropdownPanelService as ɵd} from './lib/ng-dropdown-panel.service';\nexport {NgOptionComponent as ɵr} from './lib/ng-option.component';\nexport {NgFooterTemplateDirective as ɵk,NgHeaderTemplateDirective as ɵj,NgItemLabelDirective as ɵe,NgLabelTemplateDirective as ɵh,NgLoadingSpinnerTemplateDirective as ɵp,NgLoadingTextTemplateDirective as ɵn,NgMultiLabelTemplateDirective as ɵi,NgNotFoundTemplateDirective as ɵl,NgOptgroupTemplateDirective as ɵg,NgOptionTemplateDirective as ɵf,NgTagTemplateDirective as ɵo,NgTypeToSearchTemplateDirective as ɵm} from './lib/ng-templates.directive';\nexport {DefaultSelectionModel as ɵc,DefaultSelectionModelFactory as ɵb,SelectionModelFactory as ɵa} from './lib/selection-model';"],"names":["Directive","ElementRef","Input","TemplateRef","Injectable","searchHelper.stripSpecialChars","animationFrameScheduler","asapScheduler","EventEmitter","Subject","fromEvent","takeUntil","auditTime","merge","Component","ChangeDetectionStrategy","ViewEncapsulation","Renderer2","NgZone","Optional","Inject","DOCUMENT","Output","ViewChild","InjectionToken","startWith","tap","debounceTime","filter","map","NG_VALUE_ACCESSOR","forwardRef","Attribute","ChangeDetectorRef","HostBinding","ContentChild","ContentChildren","HostListener","NgModule","CommonModule"],"mappings":"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QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;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"}
|
|
1
|
+
{"version":3,"file":"ng-select-ng-select.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../src/ng-select/lib/value-utils.ts","../../../src/ng-select/lib/ng-templates.directive.ts","../../../src/ng-select/lib/console.service.ts","../../../src/ng-select/lib/id.ts","../../../src/ng-select/lib/search-helper.ts","../../../src/ng-select/lib/items-list.ts","../../../src/ng-select/lib/ng-select.types.ts","../../../src/ng-select/lib/ng-dropdown-panel.service.ts","../../../src/ng-select/lib/ng-dropdown-panel.component.ts","../../../src/ng-select/lib/ng-option.component.ts","../../../src/ng-select/lib/config.service.ts","../../../src/ng-select/lib/ng-select.component.ts","../../../src/ng-select/lib/selection-model.ts","../../../src/ng-select/lib/ng-select.module.ts","../../../src/ng-select/public-api.ts","../../../src/ng-select/ng-select-ng-select.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","const unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nexport function escapeHTML(string: string) {\n return (string && hasUnescapedHTMLExp.test(string)) ?\n string.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :\n string;\n}\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && isDefined(value);\n}\n\nexport function isPromise(value: any) {\n return value instanceof Promise;\n}\n\nexport function isFunction(value: any) {\n return value instanceof Function;\n}\n","import { Directive, ElementRef, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';\nimport { escapeHTML } from './value-utils';\n\n@Directive({ selector: '[ngItemLabel]' })\nexport class NgItemLabelDirective implements OnChanges {\n @Input() ngItemLabel: string;\n @Input() escape = true;\n\n constructor(private element: ElementRef<HTMLElement>) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.element.nativeElement.innerHTML = this.escape ?\n escapeHTML(this.ngItemLabel) :\n this.ngItemLabel;\n }\n}\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class NgOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class NgOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class NgLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class NgMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class NgHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class NgFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class NgNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class NgTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class NgLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class NgTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class NgLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ConsoleService {\n warn(message: string) {\n console.warn(message)\n }\n}\n","export function newId() {\n // First character is an 'a', it's good practice to tag id to begin with a letter\n return 'axxxxxxxxxxx'.replace(/[x]/g, function (_) {\n // tslint:disable-next-line:no-bitwise\n const val = Math.random() * 16 | 0;\n return val.toString(16);\n });\n}\n","const diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n};\n\nexport function stripSpecialChars(text: string): string {\n const match = (a: string): string => {\n return diacritics[a] || a;\n };\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n}\n","import { newId } from './id';\nimport { NgSelectComponent } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport * as searchHelper from './search-helper';\nimport { SelectionModel } from './selection-model';\nimport { isDefined, isFunction, isObject } from './value-utils';\n\ntype OptionGroups = Map<string | NgOption, NgOption[]>;\n\nexport class ItemsList {\n private _groups: OptionGroups;\n\n constructor(\n private _ngSelect: NgSelectComponent,\n private _selectionModel: SelectionModel) {\n }\n\n private _items: NgOption[] = [];\n\n get items(): NgOption[] {\n return this._items;\n }\n\n private _filteredItems: NgOption[] = [];\n\n get filteredItems(): NgOption[] {\n return this._filteredItems;\n }\n\n private _markedIndex = -1;\n\n get markedIndex(): number {\n return this._markedIndex;\n }\n\n get selectedItems() {\n return this._selectionModel.value;\n }\n\n get markedItem(): NgOption {\n return this._filteredItems[this._markedIndex];\n }\n\n get noItemsToSelect(): boolean {\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\n }\n\n get maxItemsSelected(): boolean {\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\n }\n\n get lastSelectedItem() {\n let i = this.selectedItems.length - 1;\n for (; i >= 0; i--) {\n let item = this.selectedItems[i];\n if (!item.disabled) {\n return item;\n }\n }\n return null;\n }\n\n setItems(items: any[]) {\n this._items = items.map((item, index) => this.mapItem(item, index));\n if (this._ngSelect.groupBy) {\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\n this._items = this._flatten(this._groups);\n } else {\n this._groups = new Map();\n this._groups.set(undefined, this._items)\n }\n this._filteredItems = [...this._items];\n }\n\n select(item: NgOption) {\n if (item.selected || this.maxItemsSelected) {\n return;\n }\n const multiple = this._ngSelect.multiple;\n if (!multiple) {\n this.clearSelected();\n }\n\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel);\n if (this._ngSelect.hideSelected) {\n this._hideSelected(item);\n }\n }\n\n unselect(item: NgOption) {\n if (!item.selected) {\n return;\n }\n this._selectionModel.unselect(item, this._ngSelect.multiple);\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\n this._showSelected(item);\n }\n }\n\n findItem(value: any): NgOption {\n let findBy: (item: NgOption) => boolean;\n if (this._ngSelect.compareWith) {\n findBy = item => this._ngSelect.compareWith(item.value, value)\n } else if (this._ngSelect.bindValue) {\n findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value\n } else {\n findBy = item => item.value === value ||\n !item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel)\n }\n return this._items.find(item => findBy(item));\n }\n\n addItem(item: any) {\n const option = this.mapItem(item, this._items.length);\n this._items.push(option);\n this._filteredItems.push(option);\n return option;\n }\n\n clearSelected(keepDisabled = false) {\n this._selectionModel.clear(keepDisabled);\n this._items.forEach(item => {\n item.selected = keepDisabled && item.selected && item.disabled;\n item.marked = false;\n });\n if (this._ngSelect.hideSelected) {\n this.resetFilteredItems();\n }\n }\n\n findByLabel(term: string) {\n term = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n return this.filteredItems.find(item => {\n const label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\n return label.substr(0, term.length) === term;\n });\n }\n\n filter(term: string): void {\n if (!term) {\n this.resetFilteredItems();\n return;\n }\n\n this._filteredItems = [];\n term = this._ngSelect.searchFn ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\n const hideSelected = this._ngSelect.hideSelected;\n\n for (const key of Array.from(this._groups.keys())) {\n const matchedItems = [];\n for (const item of this._groups.get(key)) {\n if (hideSelected && (item.parent && item.parent.selected || item.selected)) {\n continue;\n }\n const searchItem = this._ngSelect.searchFn ? item.value : item;\n if (match(term, searchItem)) {\n matchedItems.push(item);\n }\n }\n if (matchedItems.length > 0) {\n const [last] = matchedItems.slice(-1);\n if (last.parent) {\n const head = this._items.find(x => x === last.parent);\n this._filteredItems.push(head);\n }\n this._filteredItems.push(...matchedItems);\n }\n }\n }\n\n resetFilteredItems() {\n if (this._filteredItems.length === this._items.length) {\n return;\n }\n\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\n this._filteredItems = this._items.filter(x => !x.selected);\n } else {\n this._filteredItems = this._items;\n }\n }\n\n unmarkItem() {\n this._markedIndex = -1;\n }\n\n markNextItem() {\n this._stepToItem(+1);\n }\n\n markPreviousItem() {\n this._stepToItem(-1);\n }\n\n markItem(item: NgOption) {\n this._markedIndex = this._filteredItems.indexOf(item);\n }\n\n markSelectedOrDefault(markDefault?: boolean) {\n if (this._filteredItems.length === 0) {\n return;\n }\n\n const lastMarkedIndex = this._getLastMarkedIndex();\n if (lastMarkedIndex > -1) {\n this._markedIndex = lastMarkedIndex;\n } else {\n this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;\n }\n }\n\n resolveNested(option: any, key: string): any {\n if (!isObject(option)) {\n return option;\n }\n if (key.indexOf('.') === -1) {\n return option[key];\n } else {\n let keys: string[] = key.split('.');\n let value = option;\n for (let i = 0, len = keys.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[keys[i]];\n }\n return value;\n }\n }\n\n mapItem(item: any, index: number): NgOption {\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\n return {\n index: index,\n label: isDefined(label) ? label.toString() : '',\n value: value,\n disabled: item.disabled,\n htmlId: `${this._ngSelect.dropdownId}-${index}`,\n };\n }\n\n mapSelectedItems() {\n const multiple = this._ngSelect.multiple;\n for (const selected of this.selectedItems) {\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\n const item = isDefined(value) ? this.findItem(value) : null;\n this._selectionModel.unselect(selected, multiple);\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\n }\n\n if (this._ngSelect.hideSelected) {\n this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);\n }\n }\n\n private _showSelected(item: NgOption) {\n this._filteredItems.push(item);\n if (item.parent) {\n const parent = item.parent;\n const parentExists = this._filteredItems.find(x => x === parent);\n if (!parentExists) {\n this._filteredItems.push(parent);\n }\n } else if (item.children) {\n for (const child of item.children) {\n child.selected = false;\n this._filteredItems.push(child);\n }\n }\n this._filteredItems = [...this._filteredItems.sort((a, b) => (a.index - b.index))];\n }\n\n private _hideSelected(item: NgOption) {\n this._filteredItems = this._filteredItems.filter(x => x !== item);\n if (item.parent) {\n const children = item.parent.children;\n if (children.every(x => x.selected)) {\n this._filteredItems = this._filteredItems.filter(x => x !== item.parent);\n }\n } else if (item.children) {\n this._filteredItems = this.filteredItems.filter(x => x.parent !== item);\n }\n }\n\n private _defaultSearchFn(search: string, opt: NgOption) {\n const label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\n return label.indexOf(search) > -1\n }\n\n private _getNextItemIndex(steps: number) {\n if (steps > 0) {\n return (this._markedIndex >= this._filteredItems.length - 1) ? 0 : (this._markedIndex + 1);\n }\n return (this._markedIndex <= 0) ? (this._filteredItems.length - 1) : (this._markedIndex - 1);\n }\n\n private _stepToItem(steps: number) {\n if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {\n return;\n }\n\n this._markedIndex = this._getNextItemIndex(steps);\n if (this.markedItem.disabled) {\n this._stepToItem(steps);\n }\n }\n\n private _getLastMarkedIndex() {\n if (this._ngSelect.hideSelected) {\n return -1;\n }\n\n if (this._markedIndex > -1 && this.markedItem === undefined) {\n return -1;\n }\n\n const selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n if (this.lastSelectedItem && selectedIndex < 0) {\n return -1;\n }\n\n return Math.max(this.markedIndex, selectedIndex);\n }\n\n private _groupBy(items: NgOption[], prop: string | Function): OptionGroups {\n const groups = new Map<string | NgOption, NgOption[]>();\n if (items.length === 0) {\n return groups;\n }\n\n // Check if items are already grouped by given key.\n if (Array.isArray(items[0].value[<string>prop])) {\n for (const item of items) {\n const children = (item.value[<string>prop] || []).map((x, index) => this.mapItem(x, index));\n groups.set(item, children);\n }\n return groups;\n }\n\n const isFnKey = isFunction(this._ngSelect.groupBy);\n const keyFn = (item: NgOption) => {\n let key = isFnKey ? (<Function>prop)(item.value) : item.value[<string>prop];\n return isDefined(key) ? key : undefined;\n };\n\n // Group items by key.\n for (const item of items) {\n let key = keyFn(item);\n const group = groups.get(key);\n if (group) {\n group.push(item);\n } else {\n groups.set(key, [item]);\n }\n }\n return groups;\n }\n\n private _flatten(groups: OptionGroups) {\n const isGroupByFn = isFunction(this._ngSelect.groupBy);\n const items = [];\n for (const key of Array.from(groups.keys())) {\n let i = items.length;\n if (key === undefined) {\n const withoutGroup = groups.get(undefined) || [];\n items.push(...withoutGroup.map(x => {\n x.index = i++;\n return x;\n }));\n continue;\n }\n\n const isObjectKey = isObject(key);\n const parent: NgOption = {\n label: isObjectKey ? '' : String(key),\n children: undefined,\n parent: null,\n index: i++,\n disabled: !this._ngSelect.selectableGroup,\n htmlId: newId(),\n };\n const groupKey = isGroupByFn ? this._ngSelect.bindLabel : <string>this._ngSelect.groupBy;\n const groupValue = this._ngSelect.groupValue || (() => {\n if (isObjectKey) {\n return (<NgOption>key).value;\n }\n return { [groupKey]: key };\n });\n const children = groups.get(key).map(x => {\n x.parent = parent;\n x.children = undefined;\n x.index = i++;\n return x;\n });\n parent.children = children;\n parent.value = groupValue(key, children.map(x => x.value));\n items.push(parent);\n items.push(...children);\n }\n return items;\n }\n}\n","export interface NgOption {\n [name: string]: any;\n index?: number;\n htmlId?: string;\n selected?: boolean;\n disabled?: boolean;\n marked?: boolean;\n label?: string;\n value?: string | Object;\n parent?: NgOption;\n children?: NgOption[];\n}\n\nexport enum KeyCode {\n Tab = 9,\n Enter = 13,\n Esc = 27,\n Space = 32,\n ArrowUp = 38,\n ArrowDown = 40,\n Backspace = 8\n}\n","import { Injectable } from '@angular/core';\nexport interface ItemsRangeResult {\n scrollHeight: number;\n topPadding: number;\n start: number;\n end: number;\n}\n\nexport interface PanelDimensions {\n itemHeight: number;\n panelHeight: number;\n itemsPerViewport: number;\n}\n\n@Injectable()\nexport class NgDropdownPanelService {\n\n private _dimensions: PanelDimensions = {\n itemHeight: 0,\n panelHeight: 0,\n itemsPerViewport: 0\n };\n\n get dimensions() {\n return this._dimensions;\n }\n\n calculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult {\n const d = this._dimensions;\n const scrollHeight = d.itemHeight * itemsLength;\n\n const scrollTop = Math.max(0, scrollPos);\n const indexByScrollTop = scrollTop / scrollHeight * itemsLength;\n let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n\n const maxStartEnd = end;\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\n\n let topPadding = d.itemHeight * Math.ceil(start) - (d.itemHeight * Math.min(start, buffer));\n topPadding = !isNaN(topPadding) ? topPadding : 0;\n start = !isNaN(start) ? start : -1;\n end = !isNaN(end) ? end : -1;\n start -= buffer;\n start = Math.max(0, start);\n end += buffer;\n end = Math.min(itemsLength, end);\n\n return {\n topPadding,\n scrollHeight,\n start,\n end\n }\n }\n\n setDimensions(itemHeight: number, panelHeight: number) {\n const itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n this._dimensions = {\n itemHeight,\n panelHeight,\n itemsPerViewport\n };\n }\n\n getScrollTo(itemTop: number, itemHeight: number, lastScroll: number) {\n const { panelHeight } = this.dimensions;\n const itemBottom = itemTop + itemHeight;\n const top = lastScroll;\n const bottom = top + panelHeight;\n\n if (panelHeight >= itemBottom && lastScroll === itemTop) {\n return null;\n }\n\n if (itemBottom > bottom) {\n return top + itemBottom - bottom;\n } else if (itemTop <= top) {\n return itemTop;\n }\n\n return null;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { animationFrameScheduler, asapScheduler, fromEvent, merge, Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { NgDropdownPanelService, PanelDimensions } from './ng-dropdown-panel.service';\n\nimport { DropdownPosition } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport { isDefined } from './value-utils';\n\nconst CSS_POSITIONS: Readonly<string[]> = ['top', 'right', 'bottom', 'left'];\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'ng-dropdown-panel',\n template: `\n <div *ngIf=\"headerTemplate\" class=\"ng-dropdown-header\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n <div #scroll class=\"ng-dropdown-panel-items scroll-host\">\n <div #padding [class.total-padding]=\"virtualScroll\"></div>\n <div #content [class.scrollable-content]=\"virtualScroll && items.length\">\n <ng-content></ng-content>\n </div>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"ng-dropdown-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n `\n})\nexport class NgDropdownPanelComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() items: NgOption[] = [];\n @Input() markedItem: NgOption;\n @Input() position: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() bufferAmount;\n @Input() virtualScroll = false;\n @Input() headerTemplate: TemplateRef<any>;\n @Input() footerTemplate: TemplateRef<any>;\n @Input() filterValue: string = null;\n\n @Output() update = new EventEmitter<any[]>();\n @Output() scroll = new EventEmitter<{ start: number; end: number }>();\n @Output() scrollToEnd = new EventEmitter<void>();\n @Output() outsideClick = new EventEmitter<void>();\n\n @ViewChild('content', { read: ElementRef, static: true }) contentElementRef: ElementRef;\n @ViewChild('scroll', { read: ElementRef, static: true }) scrollElementRef: ElementRef;\n @ViewChild('padding', { read: ElementRef, static: true }) paddingElementRef: ElementRef;\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _dropdown: HTMLElement;\n private _virtualPadding: HTMLElement;\n private _scrollablePanel: HTMLElement;\n private _contentPanel: HTMLElement;\n private _select: HTMLElement;\n private _parent: HTMLElement;\n private _scrollToEndFired = false;\n private _updateScrollHeight = false;\n private _lastScrollPosition = 0;\n\n constructor(\n private _renderer: Renderer2,\n private _zone: NgZone,\n private _panelService: NgDropdownPanelService,\n _elementRef: ElementRef,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n this._dropdown = _elementRef.nativeElement;\n }\n\n private _currentPosition: DropdownPosition;\n\n get currentPosition(): DropdownPosition {\n return this._currentPosition;\n }\n\n private _itemsLength: number;\n\n private get itemsLength() {\n return this._itemsLength;\n }\n\n private set itemsLength(value: number) {\n if (value !== this._itemsLength) {\n this._itemsLength = value;\n this._onItemsLengthChanged();\n }\n }\n\n private get _startOffset() {\n if (this.markedItem) {\n const { itemHeight, panelHeight } = this._panelService.dimensions;\n const offset = this.markedItem.index * itemHeight;\n return panelHeight > offset ? 0 : offset;\n }\n return 0;\n }\n\n ngOnInit() {\n this._select = this._dropdown.parentElement;\n this._virtualPadding = this.paddingElementRef.nativeElement;\n this._scrollablePanel = this.scrollElementRef.nativeElement;\n this._contentPanel = this.contentElementRef.nativeElement;\n this._handleScroll();\n this._handleOutsideClick();\n this._appendDropdown();\n this._setupMousedownListener();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items) {\n const change = changes.items;\n this._onItemsChange(change.currentValue, change.firstChange);\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroy$.unsubscribe();\n if (this.appendTo) {\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n }\n }\n\n scrollTo(option: NgOption, startFromOption = false) {\n if (!option) {\n return;\n }\n\n const index = this.items.indexOf(option);\n if (index < 0 || index >= this.itemsLength) {\n return;\n }\n\n let scrollTo;\n if (this.virtualScroll) {\n const itemHeight = this._panelService.dimensions.itemHeight;\n scrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n } else {\n const item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n const lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n scrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n }\n\n if (isDefined(scrollTo)) {\n this._scrollablePanel.scrollTop = scrollTo;\n }\n }\n\n scrollToTag() {\n const panel = this._scrollablePanel;\n panel.scrollTop = panel.scrollHeight - panel.clientHeight;\n }\n\n adjustPosition() {\n this._updateYPosition();\n }\n\n private _handleDropdownPosition() {\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\n if (CSS_POSITIONS.includes(this._currentPosition)) {\n this._updateDropdownClass(this._currentPosition);\n } else {\n this._updateDropdownClass('bottom');\n }\n \n\n if (this.appendTo) {\n this._updateYPosition();\n }\n\n this._dropdown.style.opacity = '1';\n }\n\n private _updateDropdownClass(currentPosition: string) {\n CSS_POSITIONS.forEach((position) => {\n const REMOVE_CSS_CLASS = `ng-select-${position}`;\n this._renderer.removeClass(this._dropdown, REMOVE_CSS_CLASS);\n this._renderer.removeClass(this._select, REMOVE_CSS_CLASS);\n });\n\n const ADD_CSS_CLASS = `ng-select-${currentPosition}`;\n this._renderer.addClass(this._dropdown, ADD_CSS_CLASS);\n this._renderer.addClass(this._select, ADD_CSS_CLASS);\n }\n\n private _handleScroll() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this.scrollElementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER))\n .subscribe((e: { path, composedPath, target }) => {\n const path = e.path || (e.composedPath && e.composedPath());\n const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop\n this._onContentScrolled(scrollTop);\n });\n });\n }\n\n private _handleOutsideClick() {\n if (!this._document) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n merge(\n fromEvent(this._document, 'touchstart', { capture: true }),\n fromEvent(this._document, 'mousedown', { capture: true })\n ).pipe(takeUntil(this._destroy$))\n .subscribe($event => this._checkToClose($event));\n });\n }\n\n private _checkToClose($event: any) {\n if (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n return;\n }\n\n const path = $event.path || ($event.composedPath && $event.composedPath());\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n return;\n }\n\n this._zone.run(() => this.outsideClick.emit());\n }\n\n private _onItemsChange(items: NgOption[], firstChange: boolean) {\n this.items = items || [];\n this._scrollToEndFired = false;\n this.itemsLength = items.length;\n\n if (this.virtualScroll) {\n this._updateItemsRange(firstChange);\n } else {\n this._setVirtualHeight();\n this._updateItems(firstChange);\n }\n }\n\n private _updateItems(firstChange: boolean) {\n this.update.emit(this.items);\n if (firstChange === false) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(0, panelHeight);\n this._handleDropdownPosition();\n this.scrollTo(this.markedItem, firstChange);\n });\n });\n }\n\n private _updateItemsRange(firstChange: boolean) {\n this._zone.runOutsideAngular(() => {\n this._measureDimensions().then(() => {\n if (firstChange) {\n this._renderItemsRange(this._startOffset);\n this._handleDropdownPosition();\n } else {\n this._renderItemsRange();\n }\n });\n });\n }\n\n private _onContentScrolled(scrollTop: number) {\n if (this.virtualScroll) {\n this._renderItemsRange(scrollTop);\n }\n this._lastScrollPosition = scrollTop;\n this._fireScrollToEnd(scrollTop);\n }\n\n private _updateVirtualHeight(height: number) {\n if (this._updateScrollHeight) {\n this._virtualPadding.style.height = `${height}px`;\n this._updateScrollHeight = false;\n }\n }\n\n private _setVirtualHeight() {\n\n if (!this._virtualPadding) {\n return;\n }\n\n this._virtualPadding.style.height = `0px`;\n }\n\n private _onItemsLengthChanged() {\n this._updateScrollHeight = true;\n }\n\n private _renderItemsRange(scrollTop = null) {\n if (scrollTop && this._lastScrollPosition === scrollTop) {\n return;\n }\n\n scrollTop = scrollTop || this._scrollablePanel.scrollTop;\n const range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount);\n this._updateVirtualHeight(range.scrollHeight);\n this._contentPanel.style.transform = `translateY(${range.topPadding}px)`;\n\n this._zone.run(() => {\n this.update.emit(this.items.slice(range.start, range.end));\n this.scroll.emit({ start: range.start, end: range.end });\n });\n\n if (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n this._scrollablePanel.scrollTop = scrollTop;\n this._lastScrollPosition = scrollTop;\n }\n }\n\n private _measureDimensions(): Promise<PanelDimensions> {\n if (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n return Promise.resolve(this._panelService.dimensions);\n }\n\n const [first] = this.items;\n this.update.emit([first]);\n\n return Promise.resolve().then(() => {\n const option = this._dropdown.querySelector(`#${first.htmlId}`);\n const optionHeight = option.clientHeight;\n this._virtualPadding.style.height = `${optionHeight * this.itemsLength}px`;\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(optionHeight, panelHeight);\n\n return this._panelService.dimensions;\n });\n }\n\n private _fireScrollToEnd(scrollTop: number) {\n if (this._scrollToEndFired || scrollTop === 0) {\n return;\n }\n\n const padding = this.virtualScroll ?\n this._virtualPadding :\n this._contentPanel;\n\n if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {\n this._zone.run(() => this.scrollToEnd.emit());\n this._scrollToEndFired = true;\n }\n }\n\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {\n if (this.position !== 'auto') {\n return this.position;\n }\n const selectRect: ClientRect = this._select.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const offsetTop = selectRect.top + window.pageYOffset;\n const height = selectRect.height;\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\n if (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n private _appendDropdown() {\n if (!this.appendTo) {\n return;\n }\n\n this._parent = document.querySelector(this.appendTo);\n if (!this._parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._updateXPosition();\n this._parent.appendChild(this._dropdown);\n }\n\n private _updateXPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\n\n this._dropdown.style.left = offsetLeft + 'px';\n this._dropdown.style.width = select.width + 'px';\n this._dropdown.style.minWidth = select.width + 'px';\n }\n\n private _updateYPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const delta = select.height;\n\n if (this._currentPosition === 'top') {\n const offsetBottom = parent.bottom - select.bottom;\n this._dropdown.style.bottom = offsetBottom + delta + 'px';\n this._dropdown.style.top = 'auto';\n } else if (this._currentPosition === 'bottom') {\n const offsetTop = select.top - parent.top;\n this._dropdown.style.top = offsetTop + delta + 'px';\n this._dropdown.style.bottom = 'auto';\n }\n }\n\n private _setupMousedownListener(): void {\n this._zone.runOutsideAngular(() => {\n fromEvent(this._dropdown, 'mousedown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (target.tagName === 'INPUT') {\n return;\n }\n event.preventDefault();\n });\n });\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'ng-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`\n})\nexport class NgOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n\n @Input() value: any;\n @Input()\n get disabled() { return this._disabled; }\n set disabled(value: any) { this._disabled = this._isDisabled(value) }\n\n readonly stateChange$ = new Subject<{ value: any, disabled: boolean, label?: string }>();\n\n private _disabled = false;\n private _previousLabel: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) { }\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n placeholder: string;\n notFoundText = 'No items found';\n typeToSearchText = 'Type to search';\n addTagText = 'Add item';\n loadingText = 'Loading...';\n clearAllText = 'Clear all';\n disableVirtualScroll = true;\n openOnEnter = true;\n appendTo: string;\n bindValue: string;\n bindLabel: string;\n appearance = 'underline';\n clearSearchOnAdd: boolean;\n}\n","import {\n Component,\n OnDestroy,\n OnChanges,\n AfterViewInit,\n forwardRef,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n ViewEncapsulation,\n HostListener,\n HostBinding,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n Inject,\n SimpleChanges,\n ContentChildren,\n QueryList,\n InjectionToken,\n Attribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil, startWith, tap, debounceTime, map, filter } from 'rxjs/operators';\nimport { Subject, merge } from 'rxjs';\n\nimport {\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgOptgroupTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n} from './ng-templates.directive';\n\nimport { ConsoleService } from './console.service';\nimport { isDefined, isFunction, isPromise, isObject } from './value-utils';\nimport { ItemsList } from './items-list';\nimport { NgOption, KeyCode } from './ng-select.types';\nimport { newId } from './id';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { SelectionModelFactory } from './selection-model';\nimport { NgSelectConfig } from './config.service';\nimport { NgDropdownPanelService } from './ng-dropdown-panel.service';\n\nexport const SELECTION_MODEL_FACTORY = new InjectionToken<SelectionModelFactory>('ng-select-selection-model');\nexport type DropdownPosition = 'top' | 'right' | 'bottom' | 'left' | 'auto';\nexport type AddTagFn = ((term: string) => any | Promise<any>);\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (key: string | object, children: any[]) => string | object;\n\n@Component({\n selector: 'ng-select',\n templateUrl: './ng-select.component.html',\n styleUrls: ['./ng-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.ng-select]': 'useDefaultClass',\n '[class.ng-select-single]': '!multiple',\n }\n})\nexport class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor {\n\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() markFirst = true;\n @Input() placeholder: string;\n @Input() notFoundText: string;\n @Input() typeToSearchText: string;\n @Input() addTagText: string;\n @Input() loadingText: string;\n @Input() clearAllText: string;\n @Input() appearance: string;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() loading = false;\n @Input() closeOnSelect = true;\n @Input() hideSelected = false;\n @Input() selectOnTab = false;\n @Input() openOnEnter: boolean;\n @Input() maxSelectedItems: number;\n @Input() groupBy: string | Function;\n @Input() groupValue: GroupValueFn;\n @Input() bufferAmount = 4;\n @Input() virtualScroll: boolean;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() searchFn = null;\n @Input() trackByFn = null;\n @Input() clearOnBackspace = true;\n @Input() labelForId = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex: number;\n @Input() readonly = false;\n @Input() searchWhileComposing = true;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n\n @Input() @HostBinding('class.ng-select-typeahead') typeahead: Subject<string>;\n @Input() @HostBinding('class.ng-select-multiple') multiple = false;\n @Input() @HostBinding('class.ng-select-taggable') addTag: boolean | AddTagFn = false;\n @Input() @HostBinding('class.ng-select-searchable') searchable = true;\n @Input() @HostBinding('class.ng-select-clearable') clearable = true;\n @Input() @HostBinding('class.ng-select-opened') isOpen = false;\n\n @Input()\n get items() { return this._items };\n\n set items(value: any[] | null) {\n if (value === null) {\n value = [];\n }\n this._itemsAreUsed = true;\n this._items = value;\n };\n\n @Input()\n get compareWith() { return this._compareWith; }\n\n set compareWith(fn: CompareWithFn) {\n if (fn !== undefined && fn !== null && !isFunction(fn)) {\n throw Error('`compareWith` must be a function.');\n }\n this._compareWith = fn;\n }\n\n @Input()\n get clearSearchOnAdd() {\n if (isDefined(this._clearSearchOnAdd)) {\n return this._clearSearchOnAdd;\n } else if (isDefined(this.config.clearSearchOnAdd)) {\n return this.config.clearSearchOnAdd;\n }\n return this.closeOnSelect;\n };\n\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n };\n\n // output events\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string, items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n // custom templates\n @ContentChild(NgOptionTemplateDirective, { read: TemplateRef }) optionTemplate: TemplateRef<any>;\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef }) optgroupTemplate: TemplateRef<any>;\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef }) labelTemplate: TemplateRef<any>;\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef }) multiLabelTemplate: TemplateRef<any>;\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef }) headerTemplate: TemplateRef<any>;\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef }) footerTemplate: TemplateRef<any>;\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef }) notFoundTemplate: TemplateRef<any>;\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef }) typeToSearchTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef }) loadingTextTemplate: TemplateRef<any>;\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef }) tagTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef }) loadingSpinnerTemplate: TemplateRef<any>;\n\n @ViewChild(forwardRef(() => NgDropdownPanelComponent)) dropdownPanel: NgDropdownPanelComponent;\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef<HTMLInputElement>;\n @ContentChildren(NgOptionComponent, { descendants: true }) ngOptions: QueryList<NgOptionComponent>;\n\n @HostBinding('class.ng-select-disabled') get disabled() { return this.readonly || this._disabled };\n\n @HostBinding('class.ng-select-filtered') get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing) };\n\n itemsList: ItemsList;\n viewPortItems: NgOption[] = [];\n searchTerm: string = null;\n dropdownId = newId();\n element: HTMLElement;\n focused: boolean;\n escapeHTML = true;\n useDefaultClass = true;\n\n private _items = [];\n private _itemsAreUsed: boolean;\n private _defaultLabel = 'label';\n private _primitive;\n private _manualOpen: boolean;\n private _disabled: boolean;\n private _pressedKeys: string[] = [];\n private _compareWith: CompareWithFn;\n private _clearSearchOnAdd: boolean;\n private _isComposing = false;\n\n private get _editableSearchTerm(): boolean {\n return this.editableSearchTerm && !this.multiple;\n }\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _keyPress$ = new Subject<string>();\n private _onChange = (_: any) => { };\n private _onTouched = () => { };\n\n clearItem = (item: any) => {\n const option = this.selectedItems.find(x => x.value === item);\n this.unselect(option);\n };\n\n constructor(\n @Attribute('class') public classes: string,\n @Attribute('autofocus') private autoFocus: any,\n public config: NgSelectConfig,\n @Inject(SELECTION_MODEL_FACTORY) newSelectionModel: SelectionModelFactory,\n _elementRef: ElementRef<HTMLElement>,\n private _cd: ChangeDetectorRef,\n private _console: ConsoleService\n ) {\n this._mergeGlobalConfig(config);\n this.itemsList = new ItemsList(this, newSelectionModel());\n this.element = _elementRef.nativeElement;\n }\n\n get selectedItems(): NgOption[] {\n return this.itemsList.selectedItems;\n }\n\n get selectedValues() {\n return this.selectedItems.map(x => x.value);\n }\n\n get hasValue() {\n return this.selectedItems.length > 0;\n }\n\n get currentPanelPosition(): DropdownPosition {\n if (this.dropdownPanel) {\n return this.dropdownPanel.currentPosition;\n }\n return undefined;\n }\n\n ngOnInit() {\n this._handleKeyPresses();\n this._setInputAttributes();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.multiple) {\n this.itemsList.clearSelected();\n }\n if (changes.items) {\n this._setItems(changes.items.currentValue || []);\n }\n if (changes.isOpen) {\n this._manualOpen = isDefined(changes.isOpen.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this.escapeHTML = false;\n this._setItemsFromNgOptions();\n }\n\n if (isDefined(this.autoFocus)) {\n this.focus();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyDown($event: KeyboardEvent) {\n const keyCode = KeyCode[$event.which];\n if (keyCode) {\n if (this.keyDownFn($event) === false) {\n return;\n }\n this.handleKeyCode($event)\n } else if ($event.key && $event.key.length === 1) {\n this._keyPress$.next($event.key.toLocaleLowerCase());\n }\n }\n\n handleKeyCode($event: KeyboardEvent) {\n switch ($event.which) {\n case KeyCode.ArrowDown:\n this._handleArrowDown($event);\n break;\n case KeyCode.ArrowUp:\n this._handleArrowUp($event);\n break;\n case KeyCode.Space:\n this._handleSpace($event);\n break;\n case KeyCode.Enter:\n this._handleEnter($event);\n break;\n case KeyCode.Tab:\n this._handleTab($event);\n break;\n case KeyCode.Esc:\n this.close();\n $event.preventDefault();\n break;\n case KeyCode.Backspace:\n this._handleBackspace();\n break\n }\n }\n\n handleMousedown($event: MouseEvent) {\n const target = $event.target as HTMLElement;\n if (target.tagName !== 'INPUT') {\n $event.preventDefault();\n }\n\n if (target.classList.contains('ng-clear-wrapper')) {\n this.handleClearClick();\n return;\n }\n\n if (target.classList.contains('ng-arrow-wrapper')) {\n this.handleArrowClick();\n return;\n }\n\n if (target.classList.contains('ng-value-icon')) {\n return;\n }\n\n if (!this.focused) {\n this.focus();\n }\n\n if (this.searchable) {\n this.open();\n } else {\n this.toggle();\n }\n }\n\n handleArrowClick() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n handleClearClick() {\n if (this.hasValue) {\n this.itemsList.clearSelected(true);\n this._updateNgModel();\n }\n this._clearSearch();\n this.focus();\n this.clearEvent.emit();\n\n this._onSelectionChanged();\n }\n\n clearModel() {\n if (!this.clearable) {\n return;\n }\n this.itemsList.clearSelected();\n this._updateNgModel();\n }\n\n writeValue(value: any | any[]): void {\n this.itemsList.clearSelected();\n this._handleWriteValue(value);\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this._disabled = state;\n this._cd.markForCheck();\n }\n\n toggle() {\n if (!this.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n open() {\n if (this.disabled || this.isOpen || this.itemsList.maxItemsSelected || this._manualOpen) {\n return;\n }\n\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\n return;\n }\n this.isOpen = true;\n this.itemsList.markSelectedOrDefault(this.markFirst);\n this.openEvent.emit();\n if (!this.searchTerm) {\n this.focus();\n }\n this.detectChanges();\n }\n\n close() {\n if (!this.isOpen || this._manualOpen) {\n return;\n }\n this.isOpen = false;\n this._isComposing = false;\n if (!this._editableSearchTerm) {\n this._clearSearch();\n } else {\n this.itemsList.resetFilteredItems();\n }\n this.itemsList.unmarkItem();\n this._onTouched();\n this.closeEvent.emit();\n this._cd.markForCheck();\n }\n\n toggleItem(item: NgOption) {\n if (!item || item.disabled || this.disabled) {\n return;\n }\n\n if (this.multiple && item.selected) {\n this.unselect(item);\n } else {\n this.select(item);\n }\n\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n\n this._onSelectionChanged();\n }\n\n select(item: NgOption) {\n if (!item.selected) {\n this.itemsList.select(item);\n if (this.clearSearchOnAdd && !this._editableSearchTerm) {\n this._clearSearch();\n }\n\n this._updateNgModel();\n if (this.multiple) {\n this.addEvent.emit(item.value);\n }\n }\n\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\n this.close();\n }\n }\n\n focus() {\n this.searchInput.nativeElement.focus();\n }\n\n blur() {\n this.searchInput.nativeElement.blur();\n }\n\n unselect(item: NgOption) {\n if (!item) {\n return;\n }\n\n this.itemsList.unselect(item);\n this.focus();\n this._updateNgModel();\n this.removeEvent.emit(item);\n }\n\n selectTag() {\n let tag;\n if (isFunction(this.addTag)) {\n tag = (<AddTagFn>this.addTag)(this.searchTerm);\n } else {\n tag = this._primitive ? this.searchTerm : { [this.bindLabel]: this.searchTerm };\n }\n\n const handleTag = (item) => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n if (isPromise(tag)) {\n tag.then(item => this.select(handleTag(item))).catch(() => { });\n } else if (tag) {\n this.select(handleTag(tag));\n }\n }\n\n showClear() {\n return this.clearable && (this.hasValue || this.searchTerm) && !this.disabled;\n }\n\n trackByOption = (_: number, item: NgOption) => {\n if (this.trackByFn) {\n return this.trackByFn(item.value);\n }\n\n return item;\n };\n\n get showAddTag() {\n if (!this._validTerm) {\n return false;\n }\n\n const term = this.searchTerm.toLowerCase().trim();\n return this.addTag &&\n (!this.itemsList.filteredItems.some(x => x.label.toLowerCase() === term) &&\n (!this.hideSelected && this.isOpen || !this.selectedItems.some(x => x.label.toLowerCase() === term))) &&\n !this.loading;\n }\n\n showNoItemsFound() {\n const empty = this.itemsList.filteredItems.length === 0;\n return ((empty && !this._isTypeahead && !this.loading) ||\n (empty && this._isTypeahead && this._validTerm && !this.loading)) &&\n !this.showAddTag;\n }\n\n showTypeToSearch() {\n const empty = this.itemsList.filteredItems.length === 0;\n return empty && this._isTypeahead && !this._validTerm && !this.loading;\n }\n\n onCompositionStart() {\n this._isComposing = true;\n }\n\n onCompositionEnd(term: string) {\n this._isComposing = false;\n if (this.searchWhileComposing) {\n return;\n }\n\n this.filter(term);\n }\n\n filter(term: string) {\n if (this._isComposing && !this.searchWhileComposing) {\n return;\n }\n\n this.searchTerm = term;\n if (this._isTypeahead && (this._validTerm || this.minTermLength === 0)) {\n this.typeahead.next(term);\n }\n\n if (!this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n if (this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map(x => x.value) });\n this.open();\n }\n\n onInputFocus($event) {\n if (this.focused) {\n return;\n }\n\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n\n this.element.classList.add('ng-select-focused');\n this.focusEvent.emit($event);\n this.focused = true;\n }\n\n onInputBlur($event) {\n this.element.classList.remove('ng-select-focused');\n this.blurEvent.emit($event);\n if (!this.isOpen && !this.disabled) {\n this._onTouched();\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.focused = false;\n }\n\n onItemHover(item: NgOption) {\n if (item.disabled) {\n return;\n }\n this.itemsList.markItem(item);\n }\n\n detectChanges() {\n if (!(<any>this._cd).destroyed) {\n this._cd.detectChanges();\n }\n }\n\n private _setSearchTermFromItems() {\n const selected = this.selectedItems && this.selectedItems[0];\n this.searchTerm = (selected && selected.label) || null;\n }\n\n private _setItems(items: any[]) {\n const firstItem = items[0];\n this.bindLabel = this.bindLabel || this._defaultLabel;\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel === this._defaultLabel;\n this.itemsList.setItems(items);\n if (items.length > 0 && this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n if (this.isOpen && isDefined(this.searchTerm) && !this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n }\n if (this._isTypeahead || this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n private _setItemsFromNgOptions() {\n const mapNgOptions = (options: QueryList<NgOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled\n }));\n this.itemsList.setItems(this.items);\n if (this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n this.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\n merge(...this.ngOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this._cd.detectChanges();\n });\n };\n\n this.ngOptions.changes\n .pipe(startWith(this.ngOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n this.bindLabel = this._defaultLabel;\n mapNgOptions(options);\n handleOptionChange();\n });\n }\n\n private _isValidWriteValue(value: any): boolean {\n if (!isDefined(value) || (this.multiple && value === '') || Array.isArray(value) && value.length === 0) {\n return false;\n }\n\n const validateBinding = (item: any): boolean => {\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\n this._console.warn(\n `Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`\n );\n return false;\n }\n return true;\n };\n\n if (this.multiple) {\n if (!Array.isArray(value)) {\n this._console.warn('Multiple select ngModel should be array.');\n return false;\n }\n return value.every(item => validateBinding(item));\n } else {\n return validateBinding(value);\n }\n }\n\n private _handleWriteValue(ngModel: any | any[]) {\n if (!this._isValidWriteValue(ngModel)) {\n return\n }\n\n const select = (val: any) => {\n let item = this.itemsList.findItem(val);\n if (item) {\n this.itemsList.select(item);\n } else {\n const isValObject = isObject(val);\n const isPrimitive = !isValObject && !this.bindValue;\n if ((isValObject || isPrimitive)) {\n this.itemsList.select(this.itemsList.mapItem(val, null));\n } else if (this.bindValue) {\n item = {\n [this.bindLabel]: null,\n [this.bindValue]: val\n };\n this.itemsList.select(this.itemsList.mapItem(item, null));\n }\n }\n };\n\n if (this.multiple) {\n (<any[]>ngModel).forEach(item => select(item));\n } else {\n select(ngModel);\n }\n }\n\n private _handleKeyPresses() {\n if (this.searchable) {\n return;\n }\n\n this._keyPress$\n .pipe(takeUntil(this._destroy$),\n tap(letter => this._pressedKeys.push(letter)),\n debounceTime(200),\n filter(() => this._pressedKeys.length > 0),\n map(() => this._pressedKeys.join('')))\n .subscribe(term => {\n const item = this.itemsList.findByLabel(term);\n if (item) {\n if (this.isOpen) {\n this.itemsList.markItem(item);\n this._scrollToMarked();\n this._cd.markForCheck();\n } else {\n this.select(item);\n }\n }\n this._pressedKeys = [];\n });\n }\n\n private _setInputAttributes() {\n const input = this.searchInput.nativeElement;\n const attributes = {\n type: 'text',\n autocorrect: 'off',\n autocapitalize: 'off',\n autocomplete: this.labelForId ? 'off' : this.dropdownId,\n ...this.inputAttrs\n };\n\n for (const key of Object.keys(attributes)) {\n input.setAttribute(key, attributes[key]);\n }\n }\n\n private _updateNgModel() {\n const model = [];\n for (const item of this.selectedItems) {\n if (this.bindValue) {\n let value = null;\n if (item.children) {\n const groupKey = this.groupValue ? this.bindValue : <string>this.groupBy;\n value = item.value[groupKey || <string>this.groupBy];\n } else {\n value = this.itemsList.resolveNested(item.value, this.bindValue);\n }\n model.push(value);\n } else {\n model.push(item.value);\n }\n }\n\n const selected = this.selectedItems.map(x => x.value);\n if (this.multiple) {\n this._onChange(model);\n this.changeEvent.emit(selected);\n } else {\n this._onChange(isDefined(model[0]) ? model[0] : null);\n this.changeEvent.emit(selected[0]);\n }\n\n this._cd.markForCheck();\n }\n\n private _clearSearch() {\n if (!this.searchTerm) {\n return;\n }\n\n this._changeSearch(null);\n this.itemsList.resetFilteredItems();\n }\n\n private _changeSearch(searchTerm: string) {\n this.searchTerm = searchTerm;\n if (this._isTypeahead) {\n this.typeahead.next(searchTerm);\n }\n }\n\n private _scrollToMarked() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollTo(this.itemsList.markedItem);\n }\n\n private _scrollToTag() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollToTag();\n }\n\n private _onSelectionChanged() {\n if (this.isOpen && this.multiple && this.appendTo) {\n // Make sure items are rendered.\n this._cd.detectChanges();\n this.dropdownPanel.adjustPosition();\n }\n }\n\n private _handleTab($event: KeyboardEvent) {\n if (this.isOpen === false && !this.addTag) {\n return;\n }\n\n if (this.selectOnTab) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n $event.preventDefault();\n } else if (this.showAddTag) {\n this.selectTag();\n $event.preventDefault();\n } else {\n this.close();\n }\n } else {\n this.close();\n }\n }\n\n private _handleEnter($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n } else if (this.showAddTag) {\n this.selectTag();\n }\n } else if (this.openOnEnter) {\n this.open();\n } else {\n return;\n }\n\n $event.preventDefault();\n }\n\n private _handleSpace($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n return;\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowDown($event: KeyboardEvent) {\n if (this._nextItemIsTag(+1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markNextItem();\n this._scrollToMarked();\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowUp($event: KeyboardEvent) {\n if (!this.isOpen) {\n return;\n }\n\n if (this._nextItemIsTag(-1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markPreviousItem();\n this._scrollToMarked();\n }\n $event.preventDefault();\n }\n\n private _nextItemIsTag(nextStep: number): boolean {\n const nextIndex = this.itemsList.markedIndex + nextStep;\n return this.addTag && this.searchTerm\n && this.itemsList.markedItem\n && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length)\n }\n\n private _handleBackspace() {\n if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\n return;\n }\n\n if (this.multiple) {\n this.unselect(this.itemsList.lastSelectedItem);\n } else {\n this.clearModel();\n }\n }\n\n private get _isTypeahead() {\n return this.typeahead && this.typeahead.observers.length > 0;\n }\n\n private get _validTerm() {\n const term = this.searchTerm && this.searchTerm.trim();\n return term && term.length >= this.minTermLength;\n }\n\n private _mergeGlobalConfig(config: NgSelectConfig) {\n this.placeholder = this.placeholder || config.placeholder;\n this.notFoundText = this.notFoundText || config.notFoundText;\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\n this.addTagText = this.addTagText || config.addTagText;\n this.loadingText = this.loadingText || config.loadingText;\n this.clearAllText = this.clearAllText || config.clearAllText;\n this.virtualScroll = isDefined(this.virtualScroll)\n ? this.virtualScroll\n : isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\n this.appendTo = this.appendTo || config.appendTo;\n this.bindValue = this.bindValue || config.bindValue;\n this.bindLabel = this.bindLabel || config.bindLabel;\n this.appearance = this.appearance || config.appearance;\n }\n}\n","import { NgOption } from './ng-select.types';\n\nexport type SelectionModelFactory = () => SelectionModel;\n\nexport function DefaultSelectionModelFactory() {\n return new DefaultSelectionModel();\n}\n\nexport interface SelectionModel {\n value: NgOption[];\n select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean);\n unselect(item: NgOption, multiple: boolean);\n clear(keepDisabled: boolean);\n}\n\nexport class DefaultSelectionModel implements SelectionModel {\n private _selected: NgOption[] = [];\n\n get value(): NgOption[] {\n return this._selected;\n }\n\n select(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n item.selected = true;\n if (!item.children || (!multiple && groupAsModel)) {\n this._selected.push(item);\n }\n if (multiple) {\n if (item.parent) {\n const childrenCount = item.parent.children.length;\n const selectedCount = item.parent.children.filter(x => x.selected).length;\n item.parent.selected = childrenCount === selectedCount;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, true);\n this._removeChildren(item);\n if (groupAsModel && this._activeChildren(item)) {\n this._selected = [...this._selected.filter(x => x.parent !== item), item]\n } else {\n this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];\n }\n }\n }\n }\n\n unselect(item: NgOption, multiple: boolean) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n if (multiple) {\n if (item.parent && item.parent.selected) {\n const children = item.parent.children;\n this._removeParent(item.parent);\n this._removeChildren(item.parent);\n this._selected.push(...children.filter(x => x !== item && !x.disabled));\n item.parent.selected = false;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, false);\n this._removeChildren(item);\n }\n }\n }\n\n clear(keepDisabled: boolean) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n\n private _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n for (const child of children) {\n if (child.disabled) {\n continue;\n }\n child.selected = selected;\n }\n }\n\n private _removeChildren(parent: NgOption) {\n this._selected = [\n ...this._selected.filter(x => x.parent !== parent),\n ...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)\n ];\n }\n\n private _removeParent(parent: NgOption) {\n this._selected = this._selected.filter(x => x !== parent)\n }\n\n private _activeChildren(item: NgOption): boolean {\n return item.children.every(x => !x.disabled || x.selected);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './ng-select.component';\nimport {\n NgFooterTemplateDirective,\n NgHeaderTemplateDirective,\n NgLabelTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgNotFoundTemplateDirective,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgTagTemplateDirective,\n NgItemLabelDirective,\n NgTypeToSearchTemplateDirective\n} from './ng-templates.directive';\nimport { DefaultSelectionModelFactory } from './selection-model';\n\n@NgModule({\n declarations: [\n NgDropdownPanelComponent,\n NgOptionComponent,\n NgSelectComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgItemLabelDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NgSelectComponent,\n NgOptionComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n ],\n providers: [\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\n ]\n})\nexport class NgSelectModule {}\n","/*\n * Public API Surface of ng-select\n */\n\nexport { DropdownPosition, NgSelectComponent, SELECTION_MODEL_FACTORY } from './lib/ng-select.component';\nexport { NgSelectModule } from './lib/ng-select.module';\nexport { NgOption } from './lib/ng-select.types';\nexport { SelectionModel } from './lib/selection-model';\nexport { NgSelectConfig } from './lib/config.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ConsoleService as ɵs} from './lib/console.service';\nexport {NgDropdownPanelComponent as ɵq} from './lib/ng-dropdown-panel.component';\nexport {NgDropdownPanelService as ɵd} from './lib/ng-dropdown-panel.service';\nexport {NgOptionComponent as ɵr} from './lib/ng-option.component';\nexport {NgFooterTemplateDirective as ɵk,NgHeaderTemplateDirective as ɵj,NgItemLabelDirective as ɵe,NgLabelTemplateDirective as ɵh,NgLoadingSpinnerTemplateDirective as ɵp,NgLoadingTextTemplateDirective as ɵn,NgMultiLabelTemplateDirective as ɵi,NgNotFoundTemplateDirective as ɵl,NgOptgroupTemplateDirective as ɵg,NgOptionTemplateDirective as ɵf,NgTagTemplateDirective as ɵo,NgTypeToSearchTemplateDirective as ɵm} from './lib/ng-templates.directive';\nexport {DefaultSelectionModel as ɵc,DefaultSelectionModelFactory as ɵb,SelectionModelFactory as ɵa} from './lib/selection-model';"],"names":["Directive","ElementRef","Input","TemplateRef","Injectable","searchHelper.stripSpecialChars","animationFrameScheduler","asapScheduler","EventEmitter","Subject","fromEvent","takeUntil","auditTime","merge","Component","ChangeDetectionStrategy","ViewEncapsulation","Renderer2","NgZone","Optional","Inject","DOCUMENT","Output","ViewChild","InjectionToken","startWith","tap","debounceTime","filter","map","NG_VALUE_ACCESSOR","forwardRef","Attribute","ChangeDetectorRef","HostBinding","ContentChild","ContentChildren","HostListener","NgModule","CommonModule"],"mappings":"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Cd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QA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"}
|