ngx-bootstrap 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  4. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  5. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  6. package/accordion/package.json +1 -1
  7. package/alert/package.json +1 -1
  8. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  9. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  10. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  11. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  12. package/buttons/package.json +1 -1
  13. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  14. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  15. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  16. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  17. package/carousel/package.json +1 -1
  18. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  19. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  20. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  21. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  22. package/chronos/package.json +1 -1
  23. package/collapse/package.json +1 -1
  24. package/component-loader/package.json +1 -1
  25. package/datepicker/base/bs-datepicker-container.d.ts +4 -1
  26. package/datepicker/bs-datepicker.config.d.ts +16 -0
  27. package/datepicker/bs-datepicker.css +108 -0
  28. package/datepicker/bs-datepicker.css.map +3 -3
  29. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +59 -9
  30. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  31. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
  32. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  33. package/datepicker/esm2015/base/bs-datepicker-container.js +9 -3
  34. package/datepicker/esm2015/bs-datepicker.config.js +37 -1
  35. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +2 -2
  36. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
  37. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +7 -3
  38. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  39. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +3 -2
  40. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  41. package/datepicker/esm5/base/bs-datepicker-container.js +9 -3
  42. package/datepicker/esm5/bs-datepicker.config.js +37 -1
  43. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +2 -2
  44. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
  45. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +7 -3
  46. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  47. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +3 -2
  48. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  49. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +59 -9
  50. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  51. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +59 -9
  52. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  53. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  54. package/datepicker/package.json +1 -1
  55. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  56. package/datepicker/utils/scss/mixins.css.map +2 -2
  57. package/datepicker/utils/scss/mixins.scss +98 -0
  58. package/datepicker/utils/scss/variables.css.map +1 -1
  59. package/datepicker/utils/scss/variables.scss +14 -0
  60. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  61. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  62. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  63. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  64. package/dropdown/package.json +1 -1
  65. package/locale/package.json +1 -1
  66. package/mini-ngrx/package.json +1 -1
  67. package/modal/bs-modal-ref.service.d.ts +2 -2
  68. package/modal/bs-modal.service.d.ts +3 -1
  69. package/modal/bundles/ngx-bootstrap-modal.umd.js +19 -8
  70. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  71. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  72. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  73. package/modal/esm2015/bs-modal-ref.service.js +5 -1
  74. package/modal/esm2015/bs-modal.service.js +7 -2
  75. package/modal/esm2015/modal-container.component.js +2 -1
  76. package/modal/esm2015/modal-options.class.js +6 -3
  77. package/modal/esm2015/modal.directive.js +2 -2
  78. package/modal/esm2015/models/index.js +3 -1
  79. package/modal/esm2015/ngx-bootstrap-modal.js +3 -3
  80. package/modal/esm2015/public_api.js +2 -2
  81. package/modal/esm5/bs-modal-ref.service.js +4 -1
  82. package/modal/esm5/bs-modal.service.js +8 -4
  83. package/modal/esm5/modal-container.component.js +2 -1
  84. package/modal/esm5/modal-options.class.js +6 -3
  85. package/modal/esm5/modal.directive.js +2 -2
  86. package/modal/esm5/models/index.js +3 -1
  87. package/modal/esm5/ngx-bootstrap-modal.js +3 -3
  88. package/modal/esm5/public_api.js +2 -2
  89. package/modal/fesm2015/ngx-bootstrap-modal.js +18 -5
  90. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  91. package/modal/fesm5/ngx-bootstrap-modal.js +18 -7
  92. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  93. package/modal/modal-options.class.d.ts +2 -2
  94. package/modal/models/index.d.ts +1 -0
  95. package/modal/ngx-bootstrap-modal.d.ts +1 -1
  96. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  97. package/modal/package.json +1 -1
  98. package/modal/public_api.d.ts +1 -1
  99. package/package.json +2 -2
  100. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  101. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  102. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  103. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  104. package/pagination/package.json +1 -1
  105. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  106. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  107. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  108. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  109. package/popover/package.json +1 -1
  110. package/positioning/package.json +1 -1
  111. package/progressbar/bar.component.d.ts +4 -7
  112. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +40 -64
  113. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  114. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  115. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  116. package/progressbar/esm2015/bar.component.js +33 -48
  117. package/progressbar/esm2015/progressbar.component.js +5 -8
  118. package/progressbar/esm5/bar.component.js +37 -58
  119. package/progressbar/esm5/progressbar.component.js +5 -8
  120. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +36 -54
  121. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  122. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +40 -64
  123. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  124. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
  125. package/progressbar/package.json +1 -1
  126. package/progressbar/progressbar.component.d.ts +1 -1
  127. package/rating/package.json +1 -1
  128. package/sortable/package.json +1 -1
  129. package/tabs/package.json +1 -1
  130. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +3 -3
  131. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  132. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  133. package/timepicker/esm2015/timepicker.component.js +2 -2
  134. package/timepicker/esm2015/timepicker.config.js +3 -3
  135. package/timepicker/esm5/timepicker.component.js +2 -2
  136. package/timepicker/esm5/timepicker.config.js +3 -3
  137. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +3 -3
  138. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  139. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +3 -3
  140. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  141. package/timepicker/package.json +1 -1
  142. package/timepicker/timepicker.component.d.ts +1 -1
  143. package/timepicker/timepicker.config.d.ts +1 -1
  144. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  145. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  146. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  147. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  148. package/tooltip/package.json +1 -1
  149. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  150. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  151. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  152. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  153. package/typeahead/package.json +1 -1
  154. package/utils/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-bootstrap/typeahead/latin-map.ts","ng://ngx-bootstrap/typeahead/typeahead-options.class.ts","ng://ngx-bootstrap/typeahead/typeahead-match.class.ts","ng://ngx-bootstrap/typeahead/typeahead-order.class.ts","ng://ngx-bootstrap/typeahead/typeahead-utils.ts","ng://ngx-bootstrap/typeahead/typeahead-animations.ts","ng://ngx-bootstrap/typeahead/typeahead-container.component.ts","ng://ngx-bootstrap/typeahead/typeahead.config.ts","ng://ngx-bootstrap/typeahead/typeahead.directive.ts","ng://ngx-bootstrap/typeahead/typeahead.module.ts"],"names":["__values","o","m","Symbol","iterator","i","call","next","length","value","done","latinMap","Á","Ă","Ắ","Ặ","Ằ","Ẳ","Ẵ","Ǎ","Â","Ấ","Ậ","Ầ","Ẩ","Ẫ","Ä","Ǟ","Ȧ","Ǡ","Ạ","Ȁ","À","Ả","Ȃ","Ā","Ą","Å","Ǻ","Ḁ","Ⱥ","Ã","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ḃ","Ḅ","Ɓ","Ḇ","Ƀ","Ƃ","Ć","Č","Ç","Ḉ","Ĉ","Ċ","Ƈ","Ȼ","Ď","Ḑ","Ḓ","Ḋ","Ḍ","Ɗ","Ḏ","Dz","Dž","Đ","Ƌ","DZ","DŽ","É","Ĕ","Ě","Ȩ","Ḝ","Ê","Ế","Ệ","Ề","Ể","Ễ","Ḙ","Ë","Ė","Ẹ","Ȅ","È","Ẻ","Ȇ","Ē","Ḗ","Ḕ","Ę","Ɇ","Ẽ","Ḛ","Ꝫ","Ḟ","Ƒ","Ǵ","Ğ","Ǧ","Ģ","Ĝ","Ġ","Ɠ","Ḡ","Ǥ","Ḫ","Ȟ","Ḩ","Ĥ","Ⱨ","Ḧ","Ḣ","Ḥ","Ħ","Í","Ĭ","Ǐ","Î","Ï","Ḯ","İ","Ị","Ȉ","Ì","Ỉ","Ȋ","Ī","Į","Ɨ","Ĩ","Ḭ","Ꝺ","Ꝼ","Ᵹ","Ꞃ","Ꞅ","Ꞇ","Ꝭ","Ĵ","Ɉ","Ḱ","Ǩ","Ķ","Ⱪ","Ꝃ","Ḳ","Ƙ","Ḵ","Ꝁ","Ꝅ","Ĺ","Ƚ","Ľ","Ļ","Ḽ","Ḷ","Ḹ","Ⱡ","Ꝉ","Ḻ","Ŀ","Ɫ","Lj","Ł","LJ","Ḿ","Ṁ","Ṃ","Ɱ","Ń","Ň","Ņ","Ṋ","Ṅ","Ṇ","Ǹ","Ɲ","Ṉ","Ƞ","Nj","Ñ","NJ","Ó","Ŏ","Ǒ","Ô","Ố","Ộ","Ồ","Ổ","Ỗ","Ö","Ȫ","Ȯ","Ȱ","Ọ","Ő","Ȍ","Ò","Ỏ","Ơ","Ớ","Ợ","Ờ","Ở","Ỡ","Ȏ","Ꝋ","Ꝍ","Ō","Ṓ","Ṑ","Ɵ","Ǫ","Ǭ","Ø","Ǿ","Õ","Ṍ","Ṏ","Ȭ","Ƣ","Ꝏ","Ɛ","Ɔ","Ȣ","Ṕ","Ṗ","Ꝓ","Ƥ","Ꝕ","Ᵽ","Ꝑ","Ꝙ","Ꝗ","Ŕ","Ř","Ŗ","Ṙ","Ṛ","Ṝ","Ȑ","Ȓ","Ṟ","Ɍ","Ɽ","Ꜿ","Ǝ","Ś","Ṥ","Š","Ṧ","Ş","Ŝ","Ș","Ṡ","Ṣ","Ṩ","Ť","Ţ","Ṱ","Ț","Ⱦ","Ṫ","Ṭ","Ƭ","Ṯ","Ʈ","Ŧ","Ɐ","Ꞁ","Ɯ","Ʌ","Ꜩ","Ú","Ŭ","Ǔ","Û","Ṷ","Ü","Ǘ","Ǚ","Ǜ","Ǖ","Ṳ","Ụ","Ű","Ȕ","Ù","Ủ","Ư","Ứ","Ự","Ừ","Ử","Ữ","Ȗ","Ū","Ṻ","Ų","Ů","Ũ","Ṹ","Ṵ","Ꝟ","Ṿ","Ʋ","Ṽ","Ꝡ","Ẃ","Ŵ","Ẅ","Ẇ","Ẉ","Ẁ","Ⱳ","Ẍ","Ẋ","Ý","Ŷ","Ÿ","Ẏ","Ỵ","Ỳ","Ƴ","Ỷ","Ỿ","Ȳ","Ɏ","Ỹ","Ź","Ž","Ẑ","Ⱬ","Ż","Ẓ","Ȥ","Ẕ","Ƶ","IJ","Œ","ᴀ","ᴁ","ʙ","ᴃ","ᴄ","ᴅ","ᴇ","ꜰ","ɢ","ʛ","ʜ","ɪ","ʁ","ᴊ","ᴋ","ʟ","ᴌ","ᴍ","ɴ","ᴏ","ɶ","ᴐ","ᴕ","ᴘ","ʀ","ᴎ","ᴙ","ꜱ","ᴛ","ⱻ","ᴚ","ᴜ","ᴠ","ᴡ","ʏ","ᴢ","á","ă","ắ","ặ","ằ","ẳ","ẵ","ǎ","â","ấ","ậ","ầ","ẩ","ẫ","ä","ǟ","ȧ","ǡ","ạ","ȁ","à","ả","ȃ","ā","ą","ᶏ","ẚ","å","ǻ","ḁ","ⱥ","ã","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ḃ","ḅ","ɓ","ḇ","ᵬ","ᶀ","ƀ","ƃ","ɵ","ć","č","ç","ḉ","ĉ","ɕ","ċ","ƈ","ȼ","ď","ḑ","ḓ","ȡ","ḋ","ḍ","ɗ","ᶑ","ḏ","ᵭ","ᶁ","đ","ɖ","ƌ","ı","ȷ","ɟ","ʄ","dz","dž","é","ĕ","ě","ȩ","ḝ","ê","ế","ệ","ề","ể","ễ","ḙ","ë","ė","ẹ","ȅ","è","ẻ","ȇ","ē","ḗ","ḕ","ⱸ","ę","ᶒ","ɇ","ẽ","ḛ","ꝫ","ḟ","ƒ","ᵮ","ᶂ","ǵ","ğ","ǧ","ģ","ĝ","ġ","ɠ","ḡ","ᶃ","ǥ","ḫ","ȟ","ḩ","ĥ","ⱨ","ḧ","ḣ","ḥ","ɦ","ẖ","ħ","ƕ","í","ĭ","ǐ","î","ï","ḯ","ị","ȉ","ì","ỉ","ȋ","ī","į","ᶖ","ɨ","ĩ","ḭ","ꝺ","ꝼ","ᵹ","ꞃ","ꞅ","ꞇ","ꝭ","ǰ","ĵ","ʝ","ɉ","ḱ","ǩ","ķ","ⱪ","ꝃ","ḳ","ƙ","ḵ","ᶄ","ꝁ","ꝅ","ĺ","ƚ","ɬ","ľ","ļ","ḽ","ȴ","ḷ","ḹ","ⱡ","ꝉ","ḻ","ŀ","ɫ","ᶅ","ɭ","ł","lj","ſ","ẜ","ẛ","ẝ","ḿ","ṁ","ṃ","ɱ","ᵯ","ᶆ","ń","ň","ņ","ṋ","ȵ","ṅ","ṇ","ǹ","ɲ","ṉ","ƞ","ᵰ","ᶇ","ɳ","ñ","nj","ó","ŏ","ǒ","ô","ố","ộ","ồ","ổ","ỗ","ö","ȫ","ȯ","ȱ","ọ","ő","ȍ","ò","ỏ","ơ","ớ","ợ","ờ","ở","ỡ","ȏ","ꝋ","ꝍ","ⱺ","ō","ṓ","ṑ","ǫ","ǭ","ø","ǿ","õ","ṍ","ṏ","ȭ","ƣ","ꝏ","ɛ","ᶓ","ɔ","ᶗ","ȣ","ṕ","ṗ","ꝓ","ƥ","ᵱ","ᶈ","ꝕ","ᵽ","ꝑ","ꝙ","ʠ","ɋ","ꝗ","ŕ","ř","ŗ","ṙ","ṛ","ṝ","ȑ","ɾ","ᵳ","ȓ","ṟ","ɼ","ᵲ","ᶉ","ɍ","ɽ","ↄ","ꜿ","ɘ","ɿ","ś","ṥ","š","ṧ","ş","ŝ","ș","ṡ","ṣ","ṩ","ʂ","ᵴ","ᶊ","ȿ","ɡ","ᴑ","ᴓ","ᴝ","ť","ţ","ṱ","ț","ȶ","ẗ","ⱦ","ṫ","ṭ","ƭ","ṯ","ᵵ","ƫ","ʈ","ŧ","ᵺ","ɐ","ᴂ","ǝ","ᵷ","ɥ","ʮ","ʯ","ᴉ","ʞ","ꞁ","ɯ","ɰ","ᴔ","ɹ","ɻ","ɺ","ⱹ","ʇ","ʌ","ʍ","ʎ","ꜩ","ú","ŭ","ǔ","û","ṷ","ü","ǘ","ǚ","ǜ","ǖ","ṳ","ụ","ű","ȕ","ù","ủ","ư","ứ","ự","ừ","ử","ữ","ȗ","ū","ṻ","ų","ᶙ","ů","ũ","ṹ","ṵ","ᵫ","ꝸ","ⱴ","ꝟ","ṿ","ʋ","ᶌ","ⱱ","ṽ","ꝡ","ẃ","ŵ","ẅ","ẇ","ẉ","ẁ","ⱳ","ẘ","ẍ","ẋ","ᶍ","ý","ŷ","ÿ","ẏ","ỵ","ỳ","ƴ","ỷ","ỿ","ȳ","ẙ","ɏ","ỹ","ź","ž","ẑ","ʑ","ⱬ","ż","ẓ","ȥ","ẕ","ᵶ","ᶎ","ʐ","ƶ","ɀ","ff","ffi","ffl","fi","fl","ij","œ","st","ₐ","ₑ","ᵢ","ⱼ","ₒ","ᵣ","ᵤ","ᵥ","ₓ","TypeaheadOptions","options","Object","assign","this","TypeaheadMatch","item","header","prototype","isHeader","toString","TypeaheadOrder","latinize","str","replace","a","tokenize","wordRegexDelimiters","phraseRegexDelimiters","delimitersForMultipleSearch","result","multipleSearchRegexStr","delimitedTokens","split","RegExp","lastToken","tokenizeWordsAndPhrases","push","token","regexStr","preTokenized","preTokenizedLength","replacePhraseDelimiters","getValueFromObject","object","option","endsWith","slice","propertiesArray","propertiesArray_1","propertiesArray_1_1","property","typeaheadAnimation","trigger","state","style","height","overflow","transition","animate","nextWindowId","TypeaheadContainerComponent","positionService","renderer","element","changeDetectorRef","_this","activeChangeEvent","EventEmitter","isFocused","popupId","_matches","isScrolledIntoView","elem","containerViewTop","ulElement","nativeElement","scrollTop","containerViewBottom","Number","offsetHeight","elemTop","offsetTop","setAttribute","positionServiceSubscription","event$","subscribe","isAnimated","animationState","isTopPosition","detectChanges","defineProperty","isBs3","selectMatch","bind","selectActive","isActive","_active","active","activeChanged","setOptions","modifiers","flip","enabled","adaptivePosition","allowedPositions","needScrollbar","typeaheadScrollable","typeaheadOptionsInScrollableView","matches","setTimeout","setScrollableMode","typeaheadIsFirstItemActive","nextActiveMatch","concurrency","find","match","classList","contains","parent","optionsListTemplate","undefined","typeaheadItemTemplate","selectActiveMatch","isActiveItemChanged","typeaheadSelectFirstItem","index","indexOf","emit","prevActiveMatch","scrollPrevious","scrollNext","highlight","query","startIdx","tokenLen","itemStr","itemStrHelper","typeaheadLatinize","toLowerCase","queryLen","substring","repeat","focusLost","e","stopPropagation","preventDefault","changeModel","typeaheadOnSelect","liElements","first","ulStyles","Utils","getStyles","liStyles","ulPaddingBottom","parseFloat","ulPaddingTop","optionHeight","guiHeight","setStyle","liElement","toArray","scrollToBottom","scrollToTop","ngOnDestroy","unsubscribe","scrollHeight","Component","args","selector","template","host","class","[class.dropdown-menu]","[style.height]","[style.visibility]","[class.dropup]","[attr.role]","animations","PositioningService","Renderer2","ElementRef","ChangeDetectorRef","Output","ViewChild","static","ViewChildren","HostListener","type","TypeaheadConfig","hideResultsOnBlur","cancelRequestOnFocusLost","selectFirstItem","isFirstItemActive","minLength","Injectable","providedIn","TypeaheadDirective","cis","config","changeDetection","ngControl","viewContainerRef","typeaheadMinLength","typeaheadAsync","typeaheadSingleWords","typeaheadWordDelimiters","typeaheadMultipleSearch","typeaheadMultipleSearchDelimiters","typeaheadPhraseDelimiters","typeaheadLoading","typeaheadNoResults","typeaheadOnBlur","dropup","isOpen","list","keyUpEventEmitter","placement","_subscriptions","_typeahead","createLoader","provide","useValue","typeaheadHideResultsOnBlur","ngOnInit","typeaheadOptionsLimit","typeaheadWaitMs","isObservable","typeahead","asyncActions","syncActions","checkDelimitersConflict","onInput","target","textContent","innerText","trim","hide","onChange","event","_container","keyCode","key","onFocus","onBlur","container","onKeydown","valueStr","tokens","_allEnteredValue","concat","join","viewToModelUpdate","setValue","markForCheck","show","attach","to","position","attachment","typeaheadRef","animation","_outsideClickListener","listen","onOutsideClick","instance","normalizedQuery","control","tokenizeQuery","focus","activeId","activeDescendant","isShown","_b","_c","dispose","pipe","debounceTime","tap","switchMap","finalizeAsyncCall","mergeMap","normalizeQuery","from","filter","testMatch","normalizeOption","optionValue","typeaheadOptionField","currentQuery","haveCommonCharacters","test","spaceLength","prepareMatches","hasMatches","limited","sorted","typeaheadOrderBy","orderMatches","typeaheadGroupField","matches_1","map","v","forEach","group","keys","console","error","_a","field","direction","sort","reverse","b","stringA","stringB","Error","str1","str2","charAt","Directive","exportAs","[attr.aria-activedescendant]","[attr.aria-owns]","[attr.aria-expanded]","[attr.aria-autocomplete]","ComponentLoaderFactory","NgControl","ViewContainerRef","Input","TypeaheadModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","declarations","exports","entryComponents","queryToEscape"],"mappings":";;;;;;;;;;;;;;oFA0GO,SAASA,EAASC,GACrB,IAAIC,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UAAWC,EAAI,EAChE,OAAIH,EAAUA,EAAEI,KAAKL,GACd,CACHM,KAAM,WAEF,OADIN,GAAKI,GAAKJ,EAAEO,SAAQP,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAEI,KAAMK,MAAOT,SC/GnCU,EAAsC,CAC/CC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,I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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","/* tslint:disable */\nexport const latinMap: { [key: string]: string } = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ç ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ç¢': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'È»': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ç´': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ä¢': 'G',\n 'Ĝ': 'G',\n 'Ä ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'â±§': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Ä®': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ä´': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ä»': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'â± ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ä¿': 'L',\n 'â±¢': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'â±®': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'È ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'È®': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Æ ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'á» ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Æ¢': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'È¢': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'â±£': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Å ': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'á¹ ': 'S',\n 'á¹¢': 'S',\n 'Ṩ': 'S',\n 'Ť': 'T',\n 'Å¢': 'T',\n 'á¹°': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'á¹®': 'T',\n 'Æ®': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'á¹¶': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'á¹²': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'á»°': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'á»®': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Å®': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'á¹´': 'U',\n 'Ꝟ': 'V',\n 'á¹¾': 'V',\n 'Ʋ': 'V',\n 'á¹¼': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Å´': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'â±²': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'á»´': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'á»¶': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Å»': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'É¢': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'É´': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'â±»': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'á´ ': 'V',\n 'á´¡': 'W',\n 'ʏ': 'Y',\n 'á´¢': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'Ç¡': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'Ã¥': 'a',\n 'Ç»': 'a',\n 'ḁ': 'a',\n 'â±¥': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'Ç£': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'È¡': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'áµ­': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ı': 'i',\n 'È·': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'È©': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'áµ®': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'Ä£': 'g',\n 'ĝ': 'g',\n 'Ä¡': 'g',\n 'É ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'Ç¥': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'Ä¥': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'Ä­': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'Ä«': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'Ä©': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'áµ¹': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'Ç©': 'k',\n 'Ä·': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'È´': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'É«': 'l',\n 'ᶅ': 'l',\n 'É­': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'Å¿': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'áµ°': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'È«': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'Æ¡': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'Ç«': 'o',\n 'Ç­': 'o',\n 'ø': 'o',\n 'Ç¿': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'È­': 'o',\n 'Æ£': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'È£': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'Æ¥': 'p',\n 'áµ±': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'áµ½': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'Ê ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'áµ³': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'áµ²': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'É¿': 'r',\n 'ś': 's',\n 'á¹¥': 's',\n 'Å¡': 's',\n 'á¹§': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'á¹£': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'áµ´': 's',\n 'ᶊ': 's',\n 'È¿': 's',\n 'É¡': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'Å¥': 't',\n 'Å£': 't',\n 'á¹±': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'á¹­': 't',\n 'Æ­': 't',\n 'ṯ': 't',\n 'áµµ': 't',\n 'Æ«': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'áµ·': 'g',\n 'É¥': 'h',\n 'Ê®': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'É»': 'r',\n 'ɺ': 'r',\n 'â±¹': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'Å­': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'á¹·': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'á¹³': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'á»§': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'á»±': 'u',\n 'ừ': 'u',\n 'á»­': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'Å«': 'u',\n 'á¹»': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'Å©': 'u',\n 'á¹¹': 'u',\n 'á¹µ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'â±´': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'â±±': 'v',\n 'á¹½': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'â±³': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'Å·': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'Æ´': 'y',\n 'á»·': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'È¥': 'z',\n 'ẕ': 'z',\n 'áµ¶': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'áµ¢': 'i',\n 'â±¼': 'j',\n 'ₒ': 'o',\n 'áµ£': 'r',\n 'ᵤ': 'u',\n 'áµ¥': 'v',\n 'ₓ': 'x'\n};\n","import { TypeaheadDirective } from './typeahead.directive';\n\nexport class TypeaheadOptions {\n placement: string;\n animation: boolean;\n typeaheadRef: TypeaheadDirective;\n\n constructor(options: TypeaheadOptions) {\n Object.assign(this, options);\n }\n}\n","export class TypeaheadMatch {\n readonly value: string;\n\n// tslint:disable-next-line:no-any\n readonly item: any;\n protected header: boolean;\n\n// tslint:disable-next-line:no-any\n constructor(item: any, value: string = item, header = false) {\n this.item = item;\n this.value = value;\n this.header = header;\n }\n\n isHeader(): boolean {\n return this.header;\n }\n\n toString(): string {\n return this.value;\n }\n}\n","export class TypeaheadOrder {\n /** field for sorting */\n field?: string;\n /** ordering direction, could be 'asc' or 'desc' */\n direction: 'asc' | 'desc';\n}\n","import { latinMap } from './latin-map';\n\nexport function latinize(str: string): string {\n if (!str) {\n return '';\n }\n\n return str.replace(/[^A-Za-z0-9\\[\\] ]/g, function (a: string): string {\n return latinMap[a] || a;\n });\n}\n\nexport function escapeRegexp(queryToEscape: string): string {\n // Regex: capture the whole query string and replace it with the string\n // that will be used to match the results, for example if the capture is\n // 'a' the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\n\n/* tslint:disable */\nexport function tokenize(str: string,\n wordRegexDelimiters = ' ',\n phraseRegexDelimiters = '', delimitersForMultipleSearch?: string): Array<string> {\n\n let result: string[] = [];\n if (!delimitersForMultipleSearch) {\n result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);\n } else {\n const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;\n const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));\n const lastToken = delimitedTokens[delimitedTokens.length - 1];\n if (lastToken > '') {\n if (wordRegexDelimiters && phraseRegexDelimiters) {\n result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);\n } else {\n result.push(lastToken);\n }\n }\n }\n\n return result;\n}\n\nfunction tokenizeWordsAndPhrases(str: string, wordRegexDelimiters: string, phraseRegexDelimiters: string): Array<string> {\n const result: string[] = [];\n /* tslint:enable */\n const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n const preTokenized: string[] = str.split(new RegExp(regexStr, 'g'));\n const preTokenizedLength: number = preTokenized.length;\n let token: string;\n const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n\n for (let i = 0; i < preTokenizedLength; i += 1) {\n token = preTokenized[i];\n if (token && token.length && token !== wordRegexDelimiters) {\n result.push(token.replace(replacePhraseDelimiters, ''));\n }\n }\n\n return result;\n}\n\n// tslint:disable-next-line:no-any\nexport function getValueFromObject(object: any, option: string): string {\n if (!option || typeof object !== 'object') {\n return object.toString();\n }\n\n if (option.endsWith('()')) {\n const functionName = option.slice(0, option.length - 2);\n\n return object[functionName]().toString();\n }\n\n const properties: string = option\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '');\n const propertiesArray: string[] = properties.split('.');\n\n for (const property of propertiesArray) {\n if (property in object) {\n // tslint:disable-next-line\n object = object[property];\n }\n }\n if (!object) {return ''; }\n\n return object.toString();\n}\n","import {\n animate,\n style,\n AnimationTriggerMetadata,\n state,\n transition,\n trigger\n} from '@angular/animations';\n\nexport const TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const typeaheadAnimation: AnimationTriggerMetadata =\n trigger('typeaheadAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n ]);\n","// tslint:disable:max-file-line-count max-line-length\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n Output,\n EventEmitter\n} from '@angular/core';\n\nimport { isBs3, Utils } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { Subscription } from 'rxjs';\n\nimport { latinize } from './typeahead-utils';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { typeaheadAnimation } from './typeahead-animations';\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext, TypeaheadTemplateMethods } from './models';\n\nlet nextWindowId = 0;\n\n@Component({\n selector: 'typeahead-container',\n templateUrl: './typeahead-container.component.html',\n host: {\n class: 'dropdown open bottom',\n '[class.dropdown-menu]': 'isBs4',\n '[style.height]': `isBs4 && needScrollbar ? guiHeight: 'auto'`,\n '[style.visibility]': `'inherit'`,\n '[class.dropup]': 'dropup',\n style: 'position: absolute;display: block;',\n '[attr.role]': `isBs4 ? 'listbox' : null `\n },\n styles: [\n `\n :host.dropdown {\n z-index: 1000;\n }\n\n :host.dropdown-menu, .dropdown-menu {\n overflow-y: auto;\n height: 100px;\n }\n `\n ],\n animations: [typeaheadAnimation]\n})\n\nexport class TypeaheadContainerComponent implements OnDestroy {\n // tslint:disable-next-line: no-output-rename\n @Output('activeChange') activeChangeEvent = new EventEmitter();\n\n parent: TypeaheadDirective;\n query: string[] | string;\n isFocused = false;\n top: string;\n left: string;\n display: string;\n placement: string;\n dropup: boolean;\n guiHeight: string;\n needScrollbar: boolean;\n animationState: string;\n positionServiceSubscription: Subscription;\n height = 0;\n popupId = `ngb-typeahead-${nextWindowId++}`;\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n get typeaheadTemplateMethods(): TypeaheadTemplateMethods {\n /* tslint:disable:no-this-assignment */\n const _that = this;\n\n return {\n selectMatch: this.selectMatch.bind(_that),\n selectActive: this.selectActive.bind(_that),\n isActive: this.isActive.bind(_that)\n };\n }\n\n protected _active: TypeaheadMatch;\n protected _matches: TypeaheadMatch[] = [];\n\n @ViewChild('ulElement', { static: false })\n private ulElement: ElementRef;\n\n @ViewChildren('liElements')\n private liElements: QueryList<ElementRef>;\n\n constructor(\n private positionService: PositioningService,\n private renderer: Renderer2,\n public element: ElementRef,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\n this.positionServiceSubscription = this.positionService.event$.subscribe(\n () => {\n if (this.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n this.changeDetectorRef.detectChanges();\n\n return;\n }\n\n this.animationState = 'unanimated';\n this.changeDetectorRef.detectChanges();\n }\n );\n }\n\n get active(): TypeaheadMatch {\n return this._active;\n }\n\n set active(active: TypeaheadMatch) {\n this._active = active;\n this.activeChanged();\n }\n\n get matches(): TypeaheadMatch[] {\n return this._matches;\n }\n\n set matches(value: TypeaheadMatch[]) {\n this.positionService.setOptions({\n modifiers: { flip: { enabled: this.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n\n this._matches = value;\n\n this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n\n if (this.typeaheadScrollable) {\n setTimeout(() => {\n this.setScrollableMode();\n });\n }\n\n if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\n this.active = this._matches[0];\n\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n }\n\n if (this._active && !this.typeaheadIsFirstItemActive) {\n const concurrency = this._matches.find(match => match.value === this._active.value);\n\n if (concurrency) {\n this.selectActive(concurrency);\n\n return;\n }\n\n this.active = null;\n }\n }\n\n get isTopPosition(): boolean {\n return this.element.nativeElement.classList.contains('top');\n }\n\n // tslint:disable-next-line:no-any\n get optionsListTemplate(): TemplateRef<TypeaheadOptionListContext> {\n return this.parent ? this.parent.optionsListTemplate : undefined;\n }\n\n get isAnimated(): boolean {\n return this.parent ? this.parent.isAnimated : false;\n }\n\n get adaptivePosition(): boolean {\n return this.parent ? this.parent.adaptivePosition : false;\n }\n\n get typeaheadScrollable(): boolean {\n return this.parent ? this.parent.typeaheadScrollable : false;\n }\n\n get typeaheadOptionsInScrollableView(): number {\n return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n }\n\n get typeaheadIsFirstItemActive(): boolean {\n return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\n }\n // tslint:disable-next-line:no-any\n get itemTemplate(): TemplateRef<TypeaheadOptionItemContext> {\n return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n }\n\n selectActiveMatch(isActiveItemChanged?: boolean): void {\n if (this._active && this.parent.typeaheadSelectFirstItem) {\n this.selectMatch(this._active);\n }\n\n if (!this.parent.typeaheadSelectFirstItem && isActiveItemChanged) {\n this.selectMatch(this._active);\n }\n }\n\n activeChanged(): void {\n const index = this.matches.indexOf(this._active);\n this.activeChangeEvent.emit(`${this.popupId}-${index}`);\n }\n\n prevActiveMatch(): void {\n\n const index = this.matches.indexOf(this._active);\n\n this.active = this.matches[\n index - 1 < 0 ? this.matches.length - 1 : index - 1\n ];\n\n if (this._active.isHeader()) {\n this.prevActiveMatch();\n }\n\n if (this.typeaheadScrollable) {\n this.scrollPrevious(index);\n }\n }\n\n nextActiveMatch(): void {\n const index = this.matches.indexOf(this._active);\n\n this.active = this.matches[\n index + 1 > this.matches.length - 1 ? 0 : index + 1\n ];\n\n\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n\n if (this.typeaheadScrollable) {\n this.scrollNext(index);\n }\n }\n\n selectActive(value: TypeaheadMatch): void {\n this.isFocused = true;\n this.active = value;\n }\n\n highlight(match: TypeaheadMatch, query: string[] | string): string {\n let itemStr: string = match.value;\n let itemStrHelper: string = (this.parent && this.parent.typeaheadLatinize\n ? latinize(itemStr)\n : itemStr).toLowerCase();\n let startIdx: number;\n let tokenLen: number;\n // Replaces the capture string with the same string inside of a \"strong\" tag\n if (typeof query === 'object') {\n const queryLen: number = query.length;\n for (let i = 0; i < queryLen; i += 1) {\n // query[i] is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query[i]);\n tokenLen = query[i].length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n itemStrHelper =\n `${itemStrHelper.substring(0, startIdx)} ${' '.repeat(tokenLen)} ` +\n `${itemStrHelper.substring(startIdx + tokenLen)}`;\n }\n }\n } else if (query) {\n // query is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query);\n tokenLen = query.length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n }\n }\n\n return itemStr;\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n focusLost(): void {\n this.isFocused = false;\n }\n\n isActive(value: TypeaheadMatch): boolean {\n return this.active === value;\n }\n\n selectMatch(value: TypeaheadMatch, e: Event = void 0): boolean {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.parent.changeModel(value);\n setTimeout(() => this.parent.typeaheadOnSelect.emit(value), 0);\n\n return false;\n }\n\n setScrollableMode(): void {\n if (!this.ulElement) {\n this.ulElement = this.element;\n }\n\n if (this.liElements.first) {\n const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')\n .replace('px', ''));\n const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')\n .replace('px', ''));\n const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')\n .replace('px', ''));\n const height = this.typeaheadOptionsInScrollableView * optionHeight;\n this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n }\n\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n }\n\n scrollPrevious(index: number): void {\n if (index === 0) {\n this.scrollToBottom();\n\n return;\n }\n if (this.liElements) {\n const liElement = this.liElements.toArray()[index - 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n }\n }\n }\n\n scrollNext(index: number): void {\n if (index + 1 > this.matches.length - 1) {\n this.scrollToTop();\n\n return;\n }\n if (this.liElements) {\n const liElement = this.liElements.toArray()[index + 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop =\n liElement.nativeElement.offsetTop -\n Number(this.ulElement.nativeElement.offsetHeight) +\n Number(liElement.nativeElement.offsetHeight);\n }\n }\n }\n\n ngOnDestroy(): void {\n this.positionServiceSubscription.unsubscribe();\n }\n\n\n private isScrolledIntoView = function (elem: HTMLElement) {\n const containerViewTop: number = this.ulElement.nativeElement.scrollTop;\n const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.offsetHeight;\n\n return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n };\n\n private scrollToBottom(): void {\n this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n }\n\n private scrollToTop(): void {\n this.ulElement.nativeElement.scrollTop = 0;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/** Default values provider for typeahead */\n@Injectable({\n providedIn: 'root'\n})\nexport class TypeaheadConfig {\n /** sets use adaptive position */\n adaptivePosition = false;\n /** turn on/off animation */\n isAnimated = false;\n /** used to hide results on blur */\n hideResultsOnBlur = true;\n /** if true, typeahead will cancel async request on blur */\n cancelRequestOnFocusLost = false;\n /** used to choose the first item in typeahead container */\n selectFirstItem = true;\n /** used to active/inactive the first item in typeahead container */\n isFirstItemActive = true;\n /** used to choose set minimal no of characters that needs to\n * be entered before typeahead kicks-in\n */\n minLength = 1;\n}\n","/* tslint:disable:max-file-line-count */\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { from, Subscription, isObservable, Observable } from 'rxjs';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { debounceTime, filter, mergeMap, switchMap, toArray, tap } from 'rxjs/operators';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadConfig } from './typeahead.config';\nimport { getValueFromObject, latinize, tokenize } from './typeahead-utils';\nimport { TypeaheadOrder } from './typeahead-order.class';\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext } from './models';\n\ntype TypeaheadOption = string | {[key in string | number]: any};\ntype Typeahead = TypeaheadOption[] | Observable<TypeaheadOption[]>;\n\n@Directive({\n selector: '[typeahead]',\n exportAs: 'bs-typeahead',\n host: {\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isOpen ? this._container.popupId : null',\n '[attr.aria-expanded]': 'isOpen',\n '[attr.aria-autocomplete]': 'list'\n }\n})\nexport class TypeaheadDirective implements OnInit, OnDestroy {\n /** options source, can be Array of strings, objects or\n * an Observable for external matching process\n */\n @Input() typeahead: Typeahead;\n /** minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n */\n @Input() typeaheadMinLength: number = void 0;\n /** sets use adaptive position */\n @Input() adaptivePosition: boolean;\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** minimal wait time after last character typed before typeahead kicks-in */\n @Input() typeaheadWaitMs: number;\n /** maximum length of options items list. The default value is 20 */\n @Input() typeaheadOptionsLimit: number;\n /** when options source is an array of objects, the name of field\n * that contains the options value, we use array item as option in case\n * of this field is missing. Supports nested properties and methods.\n */\n @Input() typeaheadOptionField: string;\n /** when options source is an array of objects, the name of field that\n * contains the group value, matches are grouped by this field when set.\n */\n @Input() typeaheadGroupField: string;\n /** Used to specify a custom order of matches. When options source is an array of objects\n * a field for sorting has to be set up. In case of options source is an array of string,\n * a field for sorting is absent. The ordering direction could be changed to ascending or descending.\n */\n @Input() typeaheadOrderBy: TypeaheadOrder;\n /** should be used only in case of typeahead attribute is Observable of array.\n * If true - loading of options will be async, otherwise - sync.\n * true make sense if options array is large.\n */\n @Input() typeaheadAsync: boolean = void 0;\n /** match latin symbols.\n * If true the word súper would match super and vice versa.\n */\n @Input() typeaheadLatinize = true;\n /** Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n */\n @Input() typeaheadSingleWords = true;\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n */\n @Input() typeaheadWordDelimiters = ' ';\n /** Can be used to conduct a search of multiple items and have suggestion not for the\n * whole value of the input but for the value that comes after a delimiter provided via\n * typeaheadMultipleSearchDelimiters attribute. This option can only be used together with\n * typeaheadSingleWords option if typeaheadWordDelimiters and typeaheadPhraseDelimiters\n * are different from typeaheadMultipleSearchDelimiters to avoid conflict in determining\n * when to delimit multiple searches and when a single word.\n */\n @Input() typeaheadMultipleSearch: boolean = void 0;\n /** should be used only in case typeaheadMultipleSearch attribute is true.\n * Sets the multiple search delimiter to know when to start a new search. Defaults to comma.\n * If space needs to be used, then explicitly set typeaheadWordDelimiters to something else than space\n * because space is used by default OR set typeaheadSingleWords attribute to false if you don't need\n * to use it together with multiple search.\n */\n @Input() typeaheadMultipleSearchDelimiters = ',';\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n */\n @Input() typeaheadPhraseDelimiters = '\\'\"';\n /** used to specify a custom item template.\n * Template variables exposed are called item and index;\n */\n @Input() typeaheadItemTemplate: TemplateRef<TypeaheadOptionItemContext>;\n /** used to specify a custom options list template.\n * Template variables: matches, itemTemplate, query\n */\n @Input() optionsListTemplate: TemplateRef<TypeaheadOptionListContext>;\n /** specifies if typeahead is scrollable */\n @Input() typeaheadScrollable = false;\n /** specifies number of options to show in scroll view */\n @Input() typeaheadOptionsInScrollableView = 5;\n /** used to hide result on blur */\n @Input() typeaheadHideResultsOnBlur: boolean;\n /** fired when an options list was opened and the user clicked Tab\n * If a value equal true, it will be chosen first or active item in the list\n * If value equal false, it will be chosen an active item in the list or nothing\n */\n @Input() typeaheadSelectFirstItem = true;\n /** makes active first item in a list */\n @Input() typeaheadIsFirstItemActive = true;\n /** fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n */\n @Output() typeaheadLoading = new EventEmitter<boolean>();\n /** fired on every key event and returns true\n * in case of matches are not detected\n */\n @Output() typeaheadNoResults = new EventEmitter<boolean>();\n /** fired when option was selected, return object with data of this option */\n @Output() typeaheadOnSelect = new EventEmitter<TypeaheadMatch>();\n /** fired when blur event occurs. returns the active item */\n @Output() typeaheadOnBlur = new EventEmitter<TypeaheadMatch>();\n\n /**\n * A selector specifying the element the typeahead should be appended to.\n */\n @Input() container: string;\n\n /** This attribute indicates that the dropdown should be opened upwards */\n @Input() dropup = false;\n\n // not yet implemented\n /** if false restrict model values to the ones selected from the popup only will be provided */\n // @Input() protected typeaheadEditable:boolean;\n /** if false the first match automatically will not be focused as you type */\n // @Input() protected typeaheadFocusFirst:boolean;\n /** format the ng-model result after selection */\n // @Input() protected typeaheadInputFormatter:any;\n /** if true automatically select an item when there is one option that exactly matches the user input */\n // @Input() protected typeaheadSelectOnExact:boolean;\n /** if true select the currently highlighted match on blur */\n // @Input() protected typeaheadSelectOnBlur:boolean;\n /** if false don't focus the input element the typeahead directive is associated with on selection */\n // @Input() protected typeaheadFocusOnSelect:boolean;\n\n activeDescendant: string;\n isOpen = false;\n list = 'list';\n _container: TypeaheadContainerComponent;\n isActiveItemChanged = false;\n isFocused = false;\n cancelRequestOnFocusLost = false;\n\n // tslint:disable-next-line:no-any\n protected keyUpEventEmitter: EventEmitter<string> = new EventEmitter();\n protected _matches: TypeaheadMatch[] = [];\n protected placement = 'bottom left';\n\n private _typeahead: ComponentLoader<TypeaheadContainerComponent>;\n private _subscriptions: Subscription[] = [];\n private _outsideClickListener: Function;\n private _allEnteredValue: string;\n\n constructor(\n cis: ComponentLoaderFactory,\n config: TypeaheadConfig,\n private changeDetection: ChangeDetectorRef,\n private element: ElementRef,\n private ngControl: NgControl,\n private renderer: Renderer2,\n viewContainerRef: ViewContainerRef\n ) {\n\n this._typeahead = cis.createLoader<TypeaheadContainerComponent>(\n element,\n viewContainerRef,\n renderer\n )\n .provide({ provide: TypeaheadConfig, useValue: config });\n\n Object.assign(this,\n {\n typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\n cancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\n typeaheadSelectFirstItem: config.selectFirstItem,\n typeaheadIsFirstItemActive: config.isFirstItemActive,\n typeaheadMinLength: config.minLength,\n adaptivePosition: config.adaptivePosition,\n isAnimated: config.isAnimated\n }\n );\n }\n\n ngOnInit(): void {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n\n this.typeaheadMinLength =\n this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n\n this.typeaheadWaitMs = this.typeaheadWaitMs || 0;\n\n // async should be false in case of array\n if (this.typeaheadAsync === undefined && !(isObservable(this.typeahead))) {\n this.typeaheadAsync = false;\n }\n\n if (isObservable(this.typeahead)) {\n this.typeaheadAsync = true;\n }\n\n if (this.typeaheadAsync) {\n this.asyncActions();\n } else {\n this.syncActions();\n }\n\n this.checkDelimitersConflict();\n }\n\n @HostListener('input', ['$event'])\n // tslint:disable-next-line:no-any\n onInput(e: any): void {\n // For `<input>`s, use the `value` property. For others that don't have a\n // `value` (such as `<span contenteditable=\"true\">`), use either\n // `textContent` or `innerText` (depending on which one is supported, i.e.\n // Firefox or IE).\n const value =\n e.target.value !== undefined\n ? e.target.value\n : e.target.textContent !== undefined\n ? e.target.textContent\n : e.target.innerText;\n if (value != null && value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n } else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n\n @HostListener('keyup', ['$event'])\n onChange(event: KeyboardEvent): void {\n if (this._container) {\n // esc\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 27 || event.key === 'Escape') {\n this.hide();\n\n return;\n }\n\n // up\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 38 || event.key === 'ArrowUp') {\n this.isActiveItemChanged = true;\n this._container.prevActiveMatch();\n\n return;\n }\n\n // down\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 40 || event.key === 'ArrowDown') {\n this.isActiveItemChanged = true;\n this._container.nextActiveMatch();\n\n return;\n }\n\n // enter\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 13 || event.key === 'Enter') {\n this._container.selectActiveMatch();\n\n return;\n }\n }\n }\n\n @HostListener('click')\n @HostListener('focus')\n onFocus(): void {\n this.isFocused = true;\n // add setTimeout to fix issue #5251\n // to get and emit updated value if it's changed on focus\n setTimeout(() => {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n }\n }, 0);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.isFocused = false;\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n }\n\n if (!this.container && this._matches.length === 0) {\n this.typeaheadOnBlur.emit(new TypeaheadMatch(\n this.element.nativeElement.value,\n this.element.nativeElement.value,\n false));\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n // no container - no problems\n if (!this._container) {\n return;\n }\n\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 9 || event.key === 'Tab') {\n this.onBlur();\n }\n\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\n event.preventDefault();\n if (this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch();\n\n return;\n }\n\n if (!this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch(this.isActiveItemChanged);\n this.isActiveItemChanged = false;\n this.hide();\n }\n }\n }\n\n changeModel(match: TypeaheadMatch): void {\n let valueStr: string;\n if (this.typeaheadMultipleSearch) {\n const tokens = this._allEnteredValue.split(new RegExp(`([${this.typeaheadMultipleSearchDelimiters}]+)`));\n this._allEnteredValue = tokens.slice(0, tokens.length - 1).concat(match.value).join('');\n valueStr = this._allEnteredValue;\n } else {\n valueStr = match.value;\n }\n this.ngControl.viewToModelUpdate(valueStr);\n (this.ngControl.control).setValue(valueStr);\n this.changeDetection.markForCheck();\n this.hide();\n }\n\n get matches(): TypeaheadMatch[] {\n return this._matches;\n }\n\n show(): void {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n .to(this.container)\n .position({attachment: `${this.dropup ? 'top' : 'bottom'} left`})\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false,\n dropup: this.dropup\n });\n\n this._outsideClickListener = this.renderer.listen('document', 'click', (e: MouseEvent) => {\n if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(e.target)) {\n return undefined;\n }\n if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(e.target)) {\n return undefined;\n }\n this.onOutsideClick();\n });\n\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n\n const normalizedQuery = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n\n this._container.query = this.tokenizeQuery(normalizedQuery);\n\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n\n this._container.activeChangeEvent.subscribe((activeId: string) => {\n this.activeDescendant = activeId;\n this.changeDetection.markForCheck();\n });\n this.isOpen = true;\n }\n\n hide(): void {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._outsideClickListener();\n this._container = null;\n this.isOpen = false;\n this.changeDetection.markForCheck();\n }\n }\n\n onOutsideClick(): void {\n if (this._container && !this._container.isFocused) {\n this.hide();\n }\n }\n\n ngOnDestroy() {\n // clean up subscriptions\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._typeahead.dispose();\n }\n\n protected asyncActions(): void {\n this._subscriptions.push(\n this.keyUpEventEmitter\n .pipe(\n debounceTime<string>(this.typeaheadWaitMs),\n tap(value => {\n this._allEnteredValue = value;\n }),\n switchMap(() => this.typeahead)\n )\n .subscribe((matches: TypeaheadOption[]) => {\n this.finalizeAsyncCall(matches);\n })\n );\n }\n\n protected syncActions(): void {\n this._subscriptions.push(\n this.keyUpEventEmitter\n .pipe(\n debounceTime<string>(this.typeaheadWaitMs),\n mergeMap((value: string) => {\n this._allEnteredValue = value;\n const normalizedQuery = this.normalizeQuery(value);\n\n return from(this.typeahead)\n .pipe(\n filter((option: TypeaheadOption) => {\n return option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n }),\n toArray()\n );\n })\n )\n .subscribe((matches: TypeaheadOption[]) => {\n this.finalizeAsyncCall(matches);\n })\n );\n }\n\n protected normalizeOption(option: TypeaheadOption): string {\n const optionValue: string = getValueFromObject(\n option,\n this.typeaheadOptionField\n );\n const normalizedOption = this.typeaheadLatinize\n ? latinize(optionValue)\n : optionValue;\n\n return normalizedOption.toLowerCase();\n }\n\n protected tokenizeQuery(currentQuery: string | string[]): string | string[] {\n\n let query = currentQuery;\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords) {\n if (!this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\n this.typeaheadMultipleSearchDelimiters)) {\n // single words and multiple search delimiters are different, can be used together\n query = tokenize(\n query as string,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters,\n this.typeaheadMultipleSearchDelimiters\n );\n }\n } else if (this.typeaheadSingleWords) {\n query = tokenize(\n query as string,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters\n );\n } else {\n // multiple searches\n query = tokenize(\n query as string,\n null,\n null,\n this.typeaheadMultipleSearchDelimiters\n );\n }\n\n return query;\n }\n\n protected normalizeQuery(value: string): string | string[] {\n // If singleWords, break model here to not be doing extra work on each iteration\n let normalizedQuery: string | string[] = (this.typeaheadLatinize\n ? latinize(value)\n : value)\n .toString()\n .toLowerCase();\n\n normalizedQuery = this.tokenizeQuery(normalizedQuery);\n\n return normalizedQuery;\n }\n\n protected testMatch(match: string, test: string[] | string): boolean {\n let spaceLength: number;\n\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n\n return true;\n }\n\n return match.indexOf(test) >= 0;\n }\n\n protected finalizeAsyncCall(matches: TypeaheadOption[]): void {\n this.prepareMatches(matches || []);\n\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n\n if (!this.hasMatches()) {\n this.hide();\n\n return;\n }\n\n if (!this.isFocused && this.cancelRequestOnFocusLost) {\n return;\n }\n\n if (this._container) {\n // fix: remove usage of ngControl internals\n const _controlValue = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value) || '';\n\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = _controlValue.toString().toLowerCase();\n\n this._container.query = this.tokenizeQuery(normalizedQuery);\n this._container.matches = this._matches;\n } else {\n this.show();\n }\n }\n\n protected prepareMatches(options: TypeaheadOption[]): void {\n const limited = options.slice(0, this.typeaheadOptionsLimit);\n const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\n\n if (this.typeaheadGroupField) {\n let matches: TypeaheadMatch[] = [];\n\n // extract all group names\n const groups = sorted\n .map((option: TypeaheadMatch) =>\n getValueFromObject(option, this.typeaheadGroupField)\n )\n .filter((v: string, i: number, a: string[]) => a.indexOf(v) === i);\n\n groups.forEach((group: string) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n\n // add each item of group to array of matches\n matches = matches.concat(\n sorted\n .filter((option: TypeaheadOption) =>\n getValueFromObject(option, this.typeaheadGroupField) === group\n )\n .map((option: TypeaheadOption) =>\n new TypeaheadMatch(\n option,\n getValueFromObject(option, this.typeaheadOptionField)\n )\n )\n );\n });\n\n this._matches = matches;\n } else {\n this._matches = sorted.map(\n // tslint:disable-next-line:no-any\n (option: any) =>\n new TypeaheadMatch(\n option,\n getValueFromObject(option, this.typeaheadOptionField)\n )\n );\n }\n }\n\n protected orderMatches(options: TypeaheadOption[]): TypeaheadOption[] {\n if (!options.length) {\n return options;\n }\n\n if (this.typeaheadOrderBy !== null\n && this.typeaheadOrderBy !== undefined\n && typeof this.typeaheadOrderBy === 'object'\n && Object.keys(this.typeaheadOrderBy).length === 0) {\n // tslint:disable-next-line:no-console\n console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\n\n return options;\n }\n\n const { field, direction } = this.typeaheadOrderBy;\n\n if (!direction || !(direction === 'asc' || direction === 'desc')) {\n // tslint:disable-next-line:no-console\n console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\n\n return options;\n }\n\n if (typeof options[0] === 'string') {\n return direction === 'asc' ? options.sort() : options.sort().reverse();\n }\n\n if (!field || typeof field !== 'string') {\n // tslint:disable-next-line:no-console\n console.error('typeaheadOrderBy field has to set according to the documentation.');\n\n return options;\n }\n\n return options.sort((a: TypeaheadOption, b: TypeaheadOption) => {\n const stringA = getValueFromObject(a, field);\n const stringB = getValueFromObject(b, field);\n\n if (stringA < stringB) {\n return direction === 'asc' ? -1 : 1;\n }\n\n if (stringA > stringB) {\n return direction === 'asc' ? 1 : -1;\n }\n\n return 0;\n });\n }\n\n protected hasMatches(): boolean {\n return this._matches.length > 0;\n }\n\n protected checkDelimitersConflict(): void {\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords\n && (this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\n this.typeaheadMultipleSearchDelimiters))) {\n throw new Error(`Delimiters used in typeaheadMultipleSearchDelimiters must be different\n from delimiters used in typeaheadWordDelimiters (current value: ${this.typeaheadWordDelimiters}) and\n typeaheadPhraseDelimiters (current value: ${this.typeaheadPhraseDelimiters}).\n Please refer to the documentation`);\n }\n }\n\n protected haveCommonCharacters(str1: string, str2: string) {\n for (let i = 0; i < str1.length; i++) {\n if (str1.charAt(i).indexOf(str2) > -1) {\n return true;\n }\n }\n\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n exports: [TypeaheadContainerComponent, TypeaheadDirective],\n entryComponents: [TypeaheadContainerComponent]\n})\nexport class TypeaheadModule {\n static forRoot(): ModuleWithProviders<TypeaheadModule> {\n return {\n ngModule: TypeaheadModule,\n providers: [ComponentLoaderFactory, PositioningService]\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-bootstrap/typeahead/latin-map.ts","ng://ngx-bootstrap/typeahead/typeahead-options.class.ts","ng://ngx-bootstrap/typeahead/typeahead-match.class.ts","ng://ngx-bootstrap/typeahead/typeahead-order.class.ts","ng://ngx-bootstrap/typeahead/typeahead-utils.ts","ng://ngx-bootstrap/typeahead/typeahead-animations.ts","ng://ngx-bootstrap/typeahead/typeahead-container.component.ts","ng://ngx-bootstrap/typeahead/typeahead.config.ts","ng://ngx-bootstrap/typeahead/typeahead.directive.ts","ng://ngx-bootstrap/typeahead/typeahead.module.ts"],"names":["__values","o","m","Symbol","iterator","i","call","next","length","value","done","latinMap","Á","Ă","Ắ","Ặ","Ằ","Ẳ","Ẵ","Ǎ","Â","Ấ","Ậ","Ầ","Ẩ","Ẫ","Ä","Ǟ","Ȧ","Ǡ","Ạ","Ȁ","À","Ả","Ȃ","Ā","Ą","Å","Ǻ","Ḁ","Ⱥ","Ã","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ḃ","Ḅ","Ɓ","Ḇ","Ƀ","Ƃ","Ć","Č","Ç","Ḉ","Ĉ","Ċ","Ƈ","Ȼ","Ď","Ḑ","Ḓ","Ḋ","Ḍ","Ɗ","Ḏ","Dz","Dž","Đ","Ƌ","DZ","DŽ","É","Ĕ","Ě","Ȩ","Ḝ","Ê","Ế","Ệ","Ề","Ể","Ễ","Ḙ","Ë","Ė","Ẹ","Ȅ","È","Ẻ","Ȇ","Ē","Ḗ","Ḕ","Ę","Ɇ","Ẽ","Ḛ","Ꝫ","Ḟ","Ƒ","Ǵ","Ğ","Ǧ","Ģ","Ĝ","Ġ","Ɠ","Ḡ","Ǥ","Ḫ","Ȟ","Ḩ","Ĥ","Ⱨ","Ḧ","Ḣ","Ḥ","Ħ","Í","Ĭ","Ǐ","Î","Ï","Ḯ","İ","Ị","Ȉ","Ì","Ỉ","Ȋ","Ī","Į","Ɨ","Ĩ","Ḭ","Ꝺ","Ꝼ","Ᵹ","Ꞃ","Ꞅ","Ꞇ","Ꝭ","Ĵ","Ɉ","Ḱ","Ǩ","Ķ","Ⱪ","Ꝃ","Ḳ","Ƙ","Ḵ","Ꝁ","Ꝅ","Ĺ","Ƚ","Ľ","Ļ","Ḽ","Ḷ","Ḹ","Ⱡ","Ꝉ","Ḻ","Ŀ","Ɫ","Lj","Ł","LJ","Ḿ","Ṁ","Ṃ","Ɱ","Ń","Ň","Ņ","Ṋ","Ṅ","Ṇ","Ǹ","Ɲ","Ṉ","Ƞ","Nj","Ñ","NJ","Ó","Ŏ","Ǒ","Ô","Ố","Ộ","Ồ","Ổ","Ỗ","Ö","Ȫ","Ȯ","Ȱ","Ọ","Ő","Ȍ","Ò","Ỏ","Ơ","Ớ","Ợ","Ờ","Ở","Ỡ","Ȏ","Ꝋ","Ꝍ","Ō","Ṓ","Ṑ","Ɵ","Ǫ","Ǭ","Ø","Ǿ","Õ","Ṍ","Ṏ","Ȭ","Ƣ","Ꝏ","Ɛ","Ɔ","Ȣ","Ṕ","Ṗ","Ꝓ","Ƥ","Ꝕ","Ᵽ","Ꝑ","Ꝙ","Ꝗ","Ŕ","Ř","Ŗ","Ṙ","Ṛ","Ṝ","Ȑ","Ȓ","Ṟ","Ɍ","Ɽ","Ꜿ","Ǝ","Ś","Ṥ","Š","Ṧ","Ş","Ŝ","Ș","Ṡ","Ṣ","Ṩ","Ť","Ţ","Ṱ","Ț","Ⱦ","Ṫ","Ṭ","Ƭ","Ṯ","Ʈ","Ŧ","Ɐ","Ꞁ","Ɯ","Ʌ","Ꜩ","Ú","Ŭ","Ǔ","Û","Ṷ","Ü","Ǘ","Ǚ","Ǜ","Ǖ","Ṳ","Ụ","Ű","Ȕ","Ù","Ủ","Ư","Ứ","Ự","Ừ","Ử","Ữ","Ȗ","Ū","Ṻ","Ų","Ů","Ũ","Ṹ","Ṵ","Ꝟ","Ṿ","Ʋ","Ṽ","Ꝡ","Ẃ","Ŵ","Ẅ","Ẇ","Ẉ","Ẁ","Ⱳ","Ẍ","Ẋ","Ý","Ŷ","Ÿ","Ẏ","Ỵ","Ỳ","Ƴ","Ỷ","Ỿ","Ȳ","Ɏ","Ỹ","Ź","Ž","Ẑ","Ⱬ","Ż","Ẓ","Ȥ","Ẕ","Ƶ","IJ","Œ","ᴀ","ᴁ","ʙ","ᴃ","ᴄ","ᴅ","ᴇ","ꜰ","ɢ","ʛ","ʜ","ɪ","ʁ","ᴊ","ᴋ","ʟ","ᴌ","ᴍ","ɴ","ᴏ","ɶ","ᴐ","ᴕ","ᴘ","ʀ","ᴎ","ᴙ","ꜱ","ᴛ","ⱻ","ᴚ","ᴜ","ᴠ","ᴡ","ʏ","ᴢ","á","ă","ắ","ặ","ằ","ẳ","ẵ","ǎ","â","ấ","ậ","ầ","ẩ","ẫ","ä","ǟ","ȧ","ǡ","ạ","ȁ","à","ả","ȃ","ā","ą","ᶏ","ẚ","å","ǻ","ḁ","ⱥ","ã","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ḃ","ḅ","ɓ","ḇ","ᵬ","ᶀ","ƀ","ƃ","ɵ","ć","č","ç","ḉ","ĉ","ɕ","ċ","ƈ","ȼ","ď","ḑ","ḓ","ȡ","ḋ","ḍ","ɗ","ᶑ","ḏ","ᵭ","ᶁ","đ","ɖ","ƌ","ı","ȷ","ɟ","ʄ","dz","dž","é","ĕ","ě","ȩ","ḝ","ê","ế","ệ","ề","ể","ễ","ḙ","ë","ė","ẹ","ȅ","è","ẻ","ȇ","ē","ḗ","ḕ","ⱸ","ę","ᶒ","ɇ","ẽ","ḛ","ꝫ","ḟ","ƒ","ᵮ","ᶂ","ǵ","ğ","ǧ","ģ","ĝ","ġ","ɠ","ḡ","ᶃ","ǥ","ḫ","ȟ","ḩ","ĥ","ⱨ","ḧ","ḣ","ḥ","ɦ","ẖ","ħ","ƕ","í","ĭ","ǐ","î","ï","ḯ","ị","ȉ","ì","ỉ","ȋ","ī","į","ᶖ","ɨ","ĩ","ḭ","ꝺ","ꝼ","ᵹ","ꞃ","ꞅ","ꞇ","ꝭ","ǰ","ĵ","ʝ","ɉ","ḱ","ǩ","ķ","ⱪ","ꝃ","ḳ","ƙ","ḵ","ᶄ","ꝁ","ꝅ","ĺ","ƚ","ɬ","ľ","ļ","ḽ","ȴ","ḷ","ḹ","ⱡ","ꝉ","ḻ","ŀ","ɫ","ᶅ","ɭ","ł","lj","ſ","ẜ","ẛ","ẝ","ḿ","ṁ","ṃ","ɱ","ᵯ","ᶆ","ń","ň","ņ","ṋ","ȵ","ṅ","ṇ","ǹ","ɲ","ṉ","ƞ","ᵰ","ᶇ","ɳ","ñ","nj","ó","ŏ","ǒ","ô","ố","ộ","ồ","ổ","ỗ","ö","ȫ","ȯ","ȱ","ọ","ő","ȍ","ò","ỏ","ơ","ớ","ợ","ờ","ở","ỡ","ȏ","ꝋ","ꝍ","ⱺ","ō","ṓ","ṑ","ǫ","ǭ","ø","ǿ","õ","ṍ","ṏ","ȭ","ƣ","ꝏ","ɛ","ᶓ","ɔ","ᶗ","ȣ","ṕ","ṗ","ꝓ","ƥ","ᵱ","ᶈ","ꝕ","ᵽ","ꝑ","ꝙ","ʠ","ɋ","ꝗ","ŕ","ř","ŗ","ṙ","ṛ","ṝ","ȑ","ɾ","ᵳ","ȓ","ṟ","ɼ","ᵲ","ᶉ","ɍ","ɽ","ↄ","ꜿ","ɘ","ɿ","ś","ṥ","š","ṧ","ş","ŝ","ș","ṡ","ṣ","ṩ","ʂ","ᵴ","ᶊ","ȿ","ɡ","ᴑ","ᴓ","ᴝ","ť","ţ","ṱ","ț","ȶ","ẗ","ⱦ","ṫ","ṭ","ƭ","ṯ","ᵵ","ƫ","ʈ","ŧ","ᵺ","ɐ","ᴂ","ǝ","ᵷ","ɥ","ʮ","ʯ","ᴉ","ʞ","ꞁ","ɯ","ɰ","ᴔ","ɹ","ɻ","ɺ","ⱹ","ʇ","ʌ","ʍ","ʎ","ꜩ","ú","ŭ","ǔ","û","ṷ","ü","ǘ","ǚ","ǜ","ǖ","ṳ","ụ","ű","ȕ","ù","ủ","ư","ứ","ự","ừ","ử","ữ","ȗ","ū","ṻ","ų","ᶙ","ů","ũ","ṹ","ṵ","ᵫ","ꝸ","ⱴ","ꝟ","ṿ","ʋ","ᶌ","ⱱ","ṽ","ꝡ","ẃ","ŵ","ẅ","ẇ","ẉ","ẁ","ⱳ","ẘ","ẍ","ẋ","ᶍ","ý","ŷ","ÿ","ẏ","ỵ","ỳ","ƴ","ỷ","ỿ","ȳ","ẙ","ɏ","ỹ","ź","ž","ẑ","ʑ","ⱬ","ż","ẓ","ȥ","ẕ","ᵶ","ᶎ","ʐ","ƶ","ɀ","ff","ffi","ffl","fi","fl","ij","œ","st","ₐ","ₑ","ᵢ","ⱼ","ₒ","ᵣ","ᵤ","ᵥ","ₓ","TypeaheadOptions","options","Object","assign","this","TypeaheadMatch","item","header","prototype","isHeader","toString","TypeaheadOrder","latinize","str","replace","a","tokenize","wordRegexDelimiters","phraseRegexDelimiters","delimitersForMultipleSearch","result","multipleSearchRegexStr","delimitedTokens","split","RegExp","lastToken","tokenizeWordsAndPhrases","push","token","regexStr","preTokenized","preTokenizedLength","replacePhraseDelimiters","getValueFromObject","object","option","endsWith","slice","propertiesArray","propertiesArray_1","propertiesArray_1_1","property","typeaheadAnimation","trigger","state","style","height","overflow","transition","animate","nextWindowId","TypeaheadContainerComponent","positionService","renderer","element","changeDetectorRef","_this","activeChangeEvent","EventEmitter","isFocused","popupId","_matches","isScrolledIntoView","elem","containerViewTop","ulElement","nativeElement","scrollTop","containerViewBottom","Number","offsetHeight","elemTop","offsetTop","setAttribute","positionServiceSubscription","event$","subscribe","isAnimated","animationState","isTopPosition","detectChanges","defineProperty","isBs3","selectMatch","bind","selectActive","isActive","_active","active","activeChanged","setOptions","modifiers","flip","enabled","adaptivePosition","allowedPositions","needScrollbar","typeaheadScrollable","typeaheadOptionsInScrollableView","matches","setTimeout","setScrollableMode","typeaheadIsFirstItemActive","nextActiveMatch","concurrency","find","match","classList","contains","parent","optionsListTemplate","undefined","typeaheadItemTemplate","selectActiveMatch","isActiveItemChanged","typeaheadSelectFirstItem","index","indexOf","emit","prevActiveMatch","scrollPrevious","scrollNext","highlight","query","startIdx","tokenLen","itemStr","itemStrHelper","typeaheadLatinize","toLowerCase","queryLen","substring","repeat","focusLost","e","stopPropagation","preventDefault","changeModel","typeaheadOnSelect","liElements","first","ulStyles","Utils","getStyles","liStyles","ulPaddingBottom","parseFloat","ulPaddingTop","optionHeight","guiHeight","setStyle","liElement","toArray","scrollToBottom","scrollToTop","ngOnDestroy","unsubscribe","scrollHeight","Component","args","selector","template","host","class","[class.dropdown-menu]","[style.height]","[style.visibility]","[class.dropup]","[attr.role]","animations","PositioningService","Renderer2","ElementRef","ChangeDetectorRef","Output","ViewChild","static","ViewChildren","HostListener","type","TypeaheadConfig","hideResultsOnBlur","cancelRequestOnFocusLost","selectFirstItem","isFirstItemActive","minLength","Injectable","providedIn","TypeaheadDirective","cis","config","changeDetection","ngControl","viewContainerRef","typeaheadMinLength","typeaheadAsync","typeaheadSingleWords","typeaheadWordDelimiters","typeaheadMultipleSearch","typeaheadMultipleSearchDelimiters","typeaheadPhraseDelimiters","typeaheadLoading","typeaheadNoResults","typeaheadOnBlur","dropup","isOpen","list","keyUpEventEmitter","placement","_subscriptions","_typeahead","createLoader","provide","useValue","typeaheadHideResultsOnBlur","ngOnInit","typeaheadOptionsLimit","typeaheadWaitMs","isObservable","typeahead","asyncActions","syncActions","checkDelimitersConflict","onInput","target","textContent","innerText","trim","hide","onChange","event","_container","keyCode","key","onFocus","onBlur","container","onKeydown","valueStr","tokens","_allEnteredValue","concat","join","viewToModelUpdate","setValue","markForCheck","show","attach","to","position","attachment","typeaheadRef","animation","_outsideClickListener","listen","onOutsideClick","instance","normalizedQuery","control","tokenizeQuery","focus","activeId","activeDescendant","isShown","_b","_c","dispose","pipe","debounceTime","tap","switchMap","finalizeAsyncCall","mergeMap","normalizeQuery","from","filter","testMatch","normalizeOption","optionValue","typeaheadOptionField","currentQuery","haveCommonCharacters","test","spaceLength","prepareMatches","hasMatches","limited","sorted","typeaheadOrderBy","orderMatches","typeaheadGroupField","matches_1","map","v","forEach","group","keys","console","error","_a","field","direction","sort","reverse","b","stringA","stringB","Error","str1","str2","charAt","Directive","exportAs","[attr.aria-activedescendant]","[attr.aria-owns]","[attr.aria-expanded]","[attr.aria-autocomplete]","ComponentLoaderFactory","NgControl","ViewContainerRef","Input","TypeaheadModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","declarations","exports","entryComponents","queryToEscape"],"mappings":";;;;;;;;;;;;;;oFA0GO,SAASA,EAASC,GACrB,IAAIC,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UAAWC,EAAI,EAChE,OAAIH,EAAUA,EAAEI,KAAKL,GACd,CACHM,KAAM,WAEF,OADIN,GAAKI,GAAKJ,EAAEO,SAAQP,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAEI,KAAMK,MAAOT,SC/GnCU,EAAsC,CAC/CC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,I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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","/* tslint:disable */\nexport const latinMap: { [key: string]: string } = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ǡ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ǣ': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'Ȼ': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ǵ': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ģ': 'G',\n 'Ĝ': 'G',\n 'Ġ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'Ⱨ': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Į': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ĵ': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ļ': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'Ⱡ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ŀ': 'L',\n 'Ɫ': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'Ɱ': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'Ƞ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'Ȯ': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Ơ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'Ỡ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Ƣ': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'Ȣ': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'Ᵽ': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Š': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'Ṡ': 'S',\n 'Ṣ': 'S',\n 'Ṩ': 'S',\n 'Ť': 'T',\n 'Ţ': 'T',\n 'Ṱ': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'Ṯ': 'T',\n 'Ʈ': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'Ṷ': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'Ṳ': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'Ự': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'Ữ': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Ů': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'Ṵ': 'U',\n 'Ꝟ': 'V',\n 'Ṿ': 'V',\n 'Ʋ': 'V',\n 'Ṽ': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Ŵ': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'Ⱳ': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'Ỵ': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'Ỷ': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Ż': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'ɢ': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'ɴ': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'ⱻ': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'ᴠ': 'V',\n 'ᴡ': 'W',\n 'ʏ': 'Y',\n 'ᴢ': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'ǡ': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'å': 'a',\n 'ǻ': 'a',\n 'ḁ': 'a',\n 'ⱥ': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'ǣ': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'ȡ': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'ᵭ': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ı': 'i',\n 'ȷ': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'ȩ': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'ᵮ': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'ģ': 'g',\n 'ĝ': 'g',\n 'ġ': 'g',\n 'ɠ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'ǥ': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'ĥ': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'ĭ': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'ī': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'ĩ': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'ᵹ': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'ǩ': 'k',\n 'ķ': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'ȴ': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'ɫ': 'l',\n 'ᶅ': 'l',\n 'ɭ': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'ſ': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'ᵰ': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'ȫ': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'ơ': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'ǫ': 'o',\n 'ǭ': 'o',\n 'ø': 'o',\n 'ǿ': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'ȭ': 'o',\n 'ƣ': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'ȣ': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'ƥ': 'p',\n 'ᵱ': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'ᵽ': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'ʠ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'ᵳ': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'ᵲ': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'ɿ': 'r',\n 'ś': 's',\n 'ṥ': 's',\n 'š': 's',\n 'ṧ': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'ṣ': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'ᵴ': 's',\n 'ᶊ': 's',\n 'ȿ': 's',\n 'ɡ': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'ť': 't',\n 'ţ': 't',\n 'ṱ': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'ṭ': 't',\n 'ƭ': 't',\n 'ṯ': 't',\n 'ᵵ': 't',\n 'ƫ': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'ᵷ': 'g',\n 'ɥ': 'h',\n 'ʮ': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'ɻ': 'r',\n 'ɺ': 'r',\n 'ⱹ': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'ŭ': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'ṷ': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'ṳ': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'ủ': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'ự': 'u',\n 'ừ': 'u',\n 'ử': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'ū': 'u',\n 'ṻ': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'ũ': 'u',\n 'ṹ': 'u',\n 'ṵ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'ⱴ': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'ⱱ': 'v',\n 'ṽ': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'ⱳ': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'ŷ': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'ƴ': 'y',\n 'ỷ': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'ȥ': 'z',\n 'ẕ': 'z',\n 'ᵶ': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'ᵢ': 'i',\n 'ⱼ': 'j',\n 'ₒ': 'o',\n 'ᵣ': 'r',\n 'ᵤ': 'u',\n 'ᵥ': 'v',\n 'ₓ': 'x'\n};\n","import { TypeaheadDirective } from './typeahead.directive';\n\nexport class TypeaheadOptions {\n placement: string;\n animation: boolean;\n typeaheadRef: TypeaheadDirective;\n\n constructor(options: TypeaheadOptions) {\n Object.assign(this, options);\n }\n}\n","export class TypeaheadMatch {\n readonly value: string;\n\n// tslint:disable-next-line:no-any\n readonly item: any;\n protected header: boolean;\n\n// tslint:disable-next-line:no-any\n constructor(item: any, value: string = item, header = false) {\n this.item = item;\n this.value = value;\n this.header = header;\n }\n\n isHeader(): boolean {\n return this.header;\n }\n\n toString(): string {\n return this.value;\n }\n}\n","export class TypeaheadOrder {\n /** field for sorting */\n field?: string;\n /** ordering direction, could be 'asc' or 'desc' */\n direction: 'asc' | 'desc';\n}\n","import { latinMap } from './latin-map';\n\nexport function latinize(str: string): string {\n if (!str) {\n return '';\n }\n\n return str.replace(/[^A-Za-z0-9\\[\\] ]/g, function (a: string): string {\n return latinMap[a] || a;\n });\n}\n\nexport function escapeRegexp(queryToEscape: string): string {\n // Regex: capture the whole query string and replace it with the string\n // that will be used to match the results, for example if the capture is\n // 'a' the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\n\n/* tslint:disable */\nexport function tokenize(str: string,\n wordRegexDelimiters = ' ',\n phraseRegexDelimiters = '', delimitersForMultipleSearch?: string): Array<string> {\n\n let result: string[] = [];\n if (!delimitersForMultipleSearch) {\n result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);\n } else {\n const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;\n const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));\n const lastToken = delimitedTokens[delimitedTokens.length - 1];\n if (lastToken > '') {\n if (wordRegexDelimiters && phraseRegexDelimiters) {\n result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);\n } else {\n result.push(lastToken);\n }\n }\n }\n\n return result;\n}\n\nfunction tokenizeWordsAndPhrases(str: string, wordRegexDelimiters: string, phraseRegexDelimiters: string): Array<string> {\n const result: string[] = [];\n /* tslint:enable */\n const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n const preTokenized: string[] = str.split(new RegExp(regexStr, 'g'));\n const preTokenizedLength: number = preTokenized.length;\n let token: string;\n const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n\n for (let i = 0; i < preTokenizedLength; i += 1) {\n token = preTokenized[i];\n if (token && token.length && token !== wordRegexDelimiters) {\n result.push(token.replace(replacePhraseDelimiters, ''));\n }\n }\n\n return result;\n}\n\n// tslint:disable-next-line:no-any\nexport function getValueFromObject(object: any, option: string): string {\n if (!option || typeof object !== 'object') {\n return object.toString();\n }\n\n if (option.endsWith('()')) {\n const functionName = option.slice(0, option.length - 2);\n\n return object[functionName]().toString();\n }\n\n const properties: string = option\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '');\n const propertiesArray: string[] = properties.split('.');\n\n for (const property of propertiesArray) {\n if (property in object) {\n // tslint:disable-next-line\n object = object[property];\n }\n }\n if (!object) {return ''; }\n\n return object.toString();\n}\n","import {\n animate,\n style,\n AnimationTriggerMetadata,\n state,\n transition,\n trigger\n} from '@angular/animations';\n\nexport const TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const typeaheadAnimation: AnimationTriggerMetadata =\n trigger('typeaheadAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden'})),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n ]);\n","// tslint:disable:max-file-line-count max-line-length\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n Output,\n EventEmitter\n} from '@angular/core';\n\nimport { isBs3, Utils } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { Subscription } from 'rxjs';\n\nimport { latinize } from './typeahead-utils';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { typeaheadAnimation } from './typeahead-animations';\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext, TypeaheadTemplateMethods } from './models';\n\nlet nextWindowId = 0;\n\n@Component({\n selector: 'typeahead-container',\n templateUrl: './typeahead-container.component.html',\n host: {\n class: 'dropdown open bottom',\n '[class.dropdown-menu]': 'isBs4',\n '[style.height]': `isBs4 && needScrollbar ? guiHeight: 'auto'`,\n '[style.visibility]': `'inherit'`,\n '[class.dropup]': 'dropup',\n style: 'position: absolute;display: block;',\n '[attr.role]': `isBs4 ? 'listbox' : null `\n },\n styles: [\n `\n :host.dropdown {\n z-index: 1000;\n }\n\n :host.dropdown-menu, .dropdown-menu {\n overflow-y: auto;\n height: 100px;\n }\n `\n ],\n animations: [typeaheadAnimation]\n})\n\nexport class TypeaheadContainerComponent implements OnDestroy {\n // tslint:disable-next-line: no-output-rename\n @Output('activeChange') activeChangeEvent = new EventEmitter();\n\n parent: TypeaheadDirective;\n query: string[] | string;\n isFocused = false;\n top: string;\n left: string;\n display: string;\n placement: string;\n dropup: boolean;\n guiHeight: string;\n needScrollbar: boolean;\n animationState: string;\n positionServiceSubscription: Subscription;\n height = 0;\n popupId = `ngb-typeahead-${nextWindowId++}`;\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n get typeaheadTemplateMethods(): TypeaheadTemplateMethods {\n /* tslint:disable:no-this-assignment */\n const _that = this;\n\n return {\n selectMatch: this.selectMatch.bind(_that),\n selectActive: this.selectActive.bind(_that),\n isActive: this.isActive.bind(_that)\n };\n }\n\n protected _active: TypeaheadMatch;\n protected _matches: TypeaheadMatch[] = [];\n\n @ViewChild('ulElement', { static: false })\n private ulElement: ElementRef;\n\n @ViewChildren('liElements')\n private liElements: QueryList<ElementRef>;\n\n constructor(\n private positionService: PositioningService,\n private renderer: Renderer2,\n public element: ElementRef,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\n this.positionServiceSubscription = this.positionService.event$.subscribe(\n () => {\n if (this.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n this.changeDetectorRef.detectChanges();\n\n return;\n }\n\n this.animationState = 'unanimated';\n this.changeDetectorRef.detectChanges();\n }\n );\n }\n\n get active(): TypeaheadMatch {\n return this._active;\n }\n\n set active(active: TypeaheadMatch) {\n this._active = active;\n this.activeChanged();\n }\n\n get matches(): TypeaheadMatch[] {\n return this._matches;\n }\n\n set matches(value: TypeaheadMatch[]) {\n this.positionService.setOptions({\n modifiers: { flip: { enabled: this.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n\n this._matches = value;\n\n this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n\n if (this.typeaheadScrollable) {\n setTimeout(() => {\n this.setScrollableMode();\n });\n }\n\n if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\n this.active = this._matches[0];\n\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n }\n\n if (this._active && !this.typeaheadIsFirstItemActive) {\n const concurrency = this._matches.find(match => match.value === this._active.value);\n\n if (concurrency) {\n this.selectActive(concurrency);\n\n return;\n }\n\n this.active = null;\n }\n }\n\n get isTopPosition(): boolean {\n return this.element.nativeElement.classList.contains('top');\n }\n\n // tslint:disable-next-line:no-any\n get optionsListTemplate(): TemplateRef<TypeaheadOptionListContext> {\n return this.parent ? this.parent.optionsListTemplate : undefined;\n }\n\n get isAnimated(): boolean {\n return this.parent ? this.parent.isAnimated : false;\n }\n\n get adaptivePosition(): boolean {\n return this.parent ? this.parent.adaptivePosition : false;\n }\n\n get typeaheadScrollable(): boolean {\n return this.parent ? this.parent.typeaheadScrollable : false;\n }\n\n get typeaheadOptionsInScrollableView(): number {\n return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n }\n\n get typeaheadIsFirstItemActive(): boolean {\n return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\n }\n // tslint:disable-next-line:no-any\n get itemTemplate(): TemplateRef<TypeaheadOptionItemContext> {\n return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n }\n\n selectActiveMatch(isActiveItemChanged?: boolean): void {\n if (this._active && this.parent.typeaheadSelectFirstItem) {\n this.selectMatch(this._active);\n }\n\n if (!this.parent.typeaheadSelectFirstItem && isActiveItemChanged) {\n this.selectMatch(this._active);\n }\n }\n\n activeChanged(): void {\n const index = this.matches.indexOf(this._active);\n this.activeChangeEvent.emit(`${this.popupId}-${index}`);\n }\n\n prevActiveMatch(): void {\n\n const index = this.matches.indexOf(this._active);\n\n this.active = this.matches[\n index - 1 < 0 ? this.matches.length - 1 : index - 1\n ];\n\n if (this._active.isHeader()) {\n this.prevActiveMatch();\n }\n\n if (this.typeaheadScrollable) {\n this.scrollPrevious(index);\n }\n }\n\n nextActiveMatch(): void {\n const index = this.matches.indexOf(this._active);\n\n this.active = this.matches[\n index + 1 > this.matches.length - 1 ? 0 : index + 1\n ];\n\n\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n\n if (this.typeaheadScrollable) {\n this.scrollNext(index);\n }\n }\n\n selectActive(value: TypeaheadMatch): void {\n this.isFocused = true;\n this.active = value;\n }\n\n highlight(match: TypeaheadMatch, query: string[] | string): string {\n let itemStr: string = match.value;\n let itemStrHelper: string = (this.parent && this.parent.typeaheadLatinize\n ? latinize(itemStr)\n : itemStr).toLowerCase();\n let startIdx: number;\n let tokenLen: number;\n // Replaces the capture string with the same string inside of a \"strong\" tag\n if (typeof query === 'object') {\n const queryLen: number = query.length;\n for (let i = 0; i < queryLen; i += 1) {\n // query[i] is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query[i]);\n tokenLen = query[i].length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n itemStrHelper =\n `${itemStrHelper.substring(0, startIdx)} ${' '.repeat(tokenLen)} ` +\n `${itemStrHelper.substring(startIdx + tokenLen)}`;\n }\n }\n } else if (query) {\n // query is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query);\n tokenLen = query.length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n }\n }\n\n return itemStr;\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n focusLost(): void {\n this.isFocused = false;\n }\n\n isActive(value: TypeaheadMatch): boolean {\n return this.active === value;\n }\n\n selectMatch(value: TypeaheadMatch, e: Event = void 0): boolean {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.parent.changeModel(value);\n setTimeout(() => this.parent.typeaheadOnSelect.emit(value), 0);\n\n return false;\n }\n\n setScrollableMode(): void {\n if (!this.ulElement) {\n this.ulElement = this.element;\n }\n\n if (this.liElements.first) {\n const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')\n .replace('px', ''));\n const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')\n .replace('px', ''));\n const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')\n .replace('px', ''));\n const height = this.typeaheadOptionsInScrollableView * optionHeight;\n this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n }\n\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n }\n\n scrollPrevious(index: number): void {\n if (index === 0) {\n this.scrollToBottom();\n\n return;\n }\n if (this.liElements) {\n const liElement = this.liElements.toArray()[index - 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n }\n }\n }\n\n scrollNext(index: number): void {\n if (index + 1 > this.matches.length - 1) {\n this.scrollToTop();\n\n return;\n }\n if (this.liElements) {\n const liElement = this.liElements.toArray()[index + 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop =\n liElement.nativeElement.offsetTop -\n Number(this.ulElement.nativeElement.offsetHeight) +\n Number(liElement.nativeElement.offsetHeight);\n }\n }\n }\n\n ngOnDestroy(): void {\n this.positionServiceSubscription.unsubscribe();\n }\n\n\n private isScrolledIntoView = function (elem: HTMLElement) {\n const containerViewTop: number = this.ulElement.nativeElement.scrollTop;\n const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.offsetHeight;\n\n return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n };\n\n private scrollToBottom(): void {\n this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n }\n\n private scrollToTop(): void {\n this.ulElement.nativeElement.scrollTop = 0;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/** Default values provider for typeahead */\n@Injectable({\n providedIn: 'root'\n})\nexport class TypeaheadConfig {\n /** sets use adaptive position */\n adaptivePosition = false;\n /** turn on/off animation */\n isAnimated = false;\n /** used to hide results on blur */\n hideResultsOnBlur = true;\n /** if true, typeahead will cancel async request on blur */\n cancelRequestOnFocusLost = false;\n /** used to choose the first item in typeahead container */\n selectFirstItem = true;\n /** used to active/inactive the first item in typeahead container */\n isFirstItemActive = true;\n /** used to choose set minimal no of characters that needs to\n * be entered before typeahead kicks-in\n */\n minLength = 1;\n}\n","/* tslint:disable:max-file-line-count */\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { from, Subscription, isObservable, Observable } from 'rxjs';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { debounceTime, filter, mergeMap, switchMap, toArray, tap } from 'rxjs/operators';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadConfig } from './typeahead.config';\nimport { getValueFromObject, latinize, tokenize } from './typeahead-utils';\nimport { TypeaheadOrder } from './typeahead-order.class';\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext } from './models';\n\ntype TypeaheadOption = string | {[key in string | number]: any};\ntype Typeahead = TypeaheadOption[] | Observable<TypeaheadOption[]>;\n\n@Directive({\n selector: '[typeahead]',\n exportAs: 'bs-typeahead',\n host: {\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isOpen ? this._container.popupId : null',\n '[attr.aria-expanded]': 'isOpen',\n '[attr.aria-autocomplete]': 'list'\n }\n})\nexport class TypeaheadDirective implements OnInit, OnDestroy {\n /** options source, can be Array of strings, objects or\n * an Observable for external matching process\n */\n @Input() typeahead: Typeahead;\n /** minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n */\n @Input() typeaheadMinLength: number = void 0;\n /** sets use adaptive position */\n @Input() adaptivePosition: boolean;\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** minimal wait time after last character typed before typeahead kicks-in */\n @Input() typeaheadWaitMs: number;\n /** maximum length of options items list. The default value is 20 */\n @Input() typeaheadOptionsLimit: number;\n /** when options source is an array of objects, the name of field\n * that contains the options value, we use array item as option in case\n * of this field is missing. Supports nested properties and methods.\n */\n @Input() typeaheadOptionField: string;\n /** when options source is an array of objects, the name of field that\n * contains the group value, matches are grouped by this field when set.\n */\n @Input() typeaheadGroupField: string;\n /** Used to specify a custom order of matches. When options source is an array of objects\n * a field for sorting has to be set up. In case of options source is an array of string,\n * a field for sorting is absent. The ordering direction could be changed to ascending or descending.\n */\n @Input() typeaheadOrderBy: TypeaheadOrder;\n /** should be used only in case of typeahead attribute is Observable of array.\n * If true - loading of options will be async, otherwise - sync.\n * true make sense if options array is large.\n */\n @Input() typeaheadAsync: boolean = void 0;\n /** match latin symbols.\n * If true the word súper would match super and vice versa.\n */\n @Input() typeaheadLatinize = true;\n /** Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n */\n @Input() typeaheadSingleWords = true;\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n */\n @Input() typeaheadWordDelimiters = ' ';\n /** Can be used to conduct a search of multiple items and have suggestion not for the\n * whole value of the input but for the value that comes after a delimiter provided via\n * typeaheadMultipleSearchDelimiters attribute. This option can only be used together with\n * typeaheadSingleWords option if typeaheadWordDelimiters and typeaheadPhraseDelimiters\n * are different from typeaheadMultipleSearchDelimiters to avoid conflict in determining\n * when to delimit multiple searches and when a single word.\n */\n @Input() typeaheadMultipleSearch: boolean = void 0;\n /** should be used only in case typeaheadMultipleSearch attribute is true.\n * Sets the multiple search delimiter to know when to start a new search. Defaults to comma.\n * If space needs to be used, then explicitly set typeaheadWordDelimiters to something else than space\n * because space is used by default OR set typeaheadSingleWords attribute to false if you don't need\n * to use it together with multiple search.\n */\n @Input() typeaheadMultipleSearchDelimiters = ',';\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n */\n @Input() typeaheadPhraseDelimiters = '\\'\"';\n /** used to specify a custom item template.\n * Template variables exposed are called item and index;\n */\n @Input() typeaheadItemTemplate: TemplateRef<TypeaheadOptionItemContext>;\n /** used to specify a custom options list template.\n * Template variables: matches, itemTemplate, query\n */\n @Input() optionsListTemplate: TemplateRef<TypeaheadOptionListContext>;\n /** specifies if typeahead is scrollable */\n @Input() typeaheadScrollable = false;\n /** specifies number of options to show in scroll view */\n @Input() typeaheadOptionsInScrollableView = 5;\n /** used to hide result on blur */\n @Input() typeaheadHideResultsOnBlur: boolean;\n /** fired when an options list was opened and the user clicked Tab\n * If a value equal true, it will be chosen first or active item in the list\n * If value equal false, it will be chosen an active item in the list or nothing\n */\n @Input() typeaheadSelectFirstItem = true;\n /** makes active first item in a list */\n @Input() typeaheadIsFirstItemActive = true;\n /** fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n */\n @Output() typeaheadLoading = new EventEmitter<boolean>();\n /** fired on every key event and returns true\n * in case of matches are not detected\n */\n @Output() typeaheadNoResults = new EventEmitter<boolean>();\n /** fired when option was selected, return object with data of this option */\n @Output() typeaheadOnSelect = new EventEmitter<TypeaheadMatch>();\n /** fired when blur event occurs. returns the active item */\n @Output() typeaheadOnBlur = new EventEmitter<TypeaheadMatch>();\n\n /**\n * A selector specifying the element the typeahead should be appended to.\n */\n @Input() container: string;\n\n /** This attribute indicates that the dropdown should be opened upwards */\n @Input() dropup = false;\n\n // not yet implemented\n /** if false restrict model values to the ones selected from the popup only will be provided */\n // @Input() protected typeaheadEditable:boolean;\n /** if false the first match automatically will not be focused as you type */\n // @Input() protected typeaheadFocusFirst:boolean;\n /** format the ng-model result after selection */\n // @Input() protected typeaheadInputFormatter:any;\n /** if true automatically select an item when there is one option that exactly matches the user input */\n // @Input() protected typeaheadSelectOnExact:boolean;\n /** if true select the currently highlighted match on blur */\n // @Input() protected typeaheadSelectOnBlur:boolean;\n /** if false don't focus the input element the typeahead directive is associated with on selection */\n // @Input() protected typeaheadFocusOnSelect:boolean;\n\n activeDescendant: string;\n isOpen = false;\n list = 'list';\n _container: TypeaheadContainerComponent;\n isActiveItemChanged = false;\n isFocused = false;\n cancelRequestOnFocusLost = false;\n\n // tslint:disable-next-line:no-any\n protected keyUpEventEmitter: EventEmitter<string> = new EventEmitter();\n protected _matches: TypeaheadMatch[] = [];\n protected placement = 'bottom left';\n\n private _typeahead: ComponentLoader<TypeaheadContainerComponent>;\n private _subscriptions: Subscription[] = [];\n private _outsideClickListener: Function;\n private _allEnteredValue: string;\n\n constructor(\n cis: ComponentLoaderFactory,\n config: TypeaheadConfig,\n private changeDetection: ChangeDetectorRef,\n private element: ElementRef,\n private ngControl: NgControl,\n private renderer: Renderer2,\n viewContainerRef: ViewContainerRef\n ) {\n\n this._typeahead = cis.createLoader<TypeaheadContainerComponent>(\n element,\n viewContainerRef,\n renderer\n )\n .provide({ provide: TypeaheadConfig, useValue: config });\n\n Object.assign(this,\n {\n typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\n cancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\n typeaheadSelectFirstItem: config.selectFirstItem,\n typeaheadIsFirstItemActive: config.isFirstItemActive,\n typeaheadMinLength: config.minLength,\n adaptivePosition: config.adaptivePosition,\n isAnimated: config.isAnimated\n }\n );\n }\n\n ngOnInit(): void {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n\n this.typeaheadMinLength =\n this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n\n this.typeaheadWaitMs = this.typeaheadWaitMs || 0;\n\n // async should be false in case of array\n if (this.typeaheadAsync === undefined && !(isObservable(this.typeahead))) {\n this.typeaheadAsync = false;\n }\n\n if (isObservable(this.typeahead)) {\n this.typeaheadAsync = true;\n }\n\n if (this.typeaheadAsync) {\n this.asyncActions();\n } else {\n this.syncActions();\n }\n\n this.checkDelimitersConflict();\n }\n\n @HostListener('input', ['$event'])\n // tslint:disable-next-line:no-any\n onInput(e: any): void {\n // For `<input>`s, use the `value` property. For others that don't have a\n // `value` (such as `<span contenteditable=\"true\">`), use either\n // `textContent` or `innerText` (depending on which one is supported, i.e.\n // Firefox or IE).\n const value =\n e.target.value !== undefined\n ? e.target.value\n : e.target.textContent !== undefined\n ? e.target.textContent\n : e.target.innerText;\n if (value != null && value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n } else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n\n @HostListener('keyup', ['$event'])\n onChange(event: KeyboardEvent): void {\n if (this._container) {\n // esc\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 27 || event.key === 'Escape') {\n this.hide();\n\n return;\n }\n\n // up\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 38 || event.key === 'ArrowUp') {\n this.isActiveItemChanged = true;\n this._container.prevActiveMatch();\n\n return;\n }\n\n // down\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 40 || event.key === 'ArrowDown') {\n this.isActiveItemChanged = true;\n this._container.nextActiveMatch();\n\n return;\n }\n\n // enter\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 13 || event.key === 'Enter') {\n this._container.selectActiveMatch();\n\n return;\n }\n }\n }\n\n @HostListener('click')\n @HostListener('focus')\n onFocus(): void {\n this.isFocused = true;\n // add setTimeout to fix issue #5251\n // to get and emit updated value if it's changed on focus\n setTimeout(() => {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n }\n }, 0);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.isFocused = false;\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n }\n\n if (!this.container && this._matches.length === 0) {\n this.typeaheadOnBlur.emit(new TypeaheadMatch(\n this.element.nativeElement.value,\n this.element.nativeElement.value,\n false));\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n // no container - no problems\n if (!this._container) {\n return;\n }\n\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 9 || event.key === 'Tab') {\n this.onBlur();\n }\n\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\n event.preventDefault();\n if (this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch();\n\n return;\n }\n\n if (!this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch(this.isActiveItemChanged);\n this.isActiveItemChanged = false;\n this.hide();\n }\n }\n }\n\n changeModel(match: TypeaheadMatch): void {\n let valueStr: string;\n if (this.typeaheadMultipleSearch) {\n const tokens = this._allEnteredValue.split(new RegExp(`([${this.typeaheadMultipleSearchDelimiters}]+)`));\n this._allEnteredValue = tokens.slice(0, tokens.length - 1).concat(match.value).join('');\n valueStr = this._allEnteredValue;\n } else {\n valueStr = match.value;\n }\n this.ngControl.viewToModelUpdate(valueStr);\n (this.ngControl.control).setValue(valueStr);\n this.changeDetection.markForCheck();\n this.hide();\n }\n\n get matches(): TypeaheadMatch[] {\n return this._matches;\n }\n\n show(): void {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n .to(this.container)\n .position({attachment: `${this.dropup ? 'top' : 'bottom'} left`})\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false,\n dropup: this.dropup\n });\n\n this._outsideClickListener = this.renderer.listen('document', 'click', (e: MouseEvent) => {\n if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(e.target)) {\n return undefined;\n }\n if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(e.target)) {\n return undefined;\n }\n this.onOutsideClick();\n });\n\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n\n const normalizedQuery = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n\n this._container.query = this.tokenizeQuery(normalizedQuery);\n\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n\n this._container.activeChangeEvent.subscribe((activeId: string) => {\n this.activeDescendant = activeId;\n this.changeDetection.markForCheck();\n });\n this.isOpen = true;\n }\n\n hide(): void {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._outsideClickListener();\n this._container = null;\n this.isOpen = false;\n this.changeDetection.markForCheck();\n }\n }\n\n onOutsideClick(): void {\n if (this._container && !this._container.isFocused) {\n this.hide();\n }\n }\n\n ngOnDestroy() {\n // clean up subscriptions\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._typeahead.dispose();\n }\n\n protected asyncActions(): void {\n this._subscriptions.push(\n this.keyUpEventEmitter\n .pipe(\n debounceTime<string>(this.typeaheadWaitMs),\n tap(value => {\n this._allEnteredValue = value;\n }),\n switchMap(() => this.typeahead)\n )\n .subscribe((matches: TypeaheadOption[]) => {\n this.finalizeAsyncCall(matches);\n })\n );\n }\n\n protected syncActions(): void {\n this._subscriptions.push(\n this.keyUpEventEmitter\n .pipe(\n debounceTime<string>(this.typeaheadWaitMs),\n mergeMap((value: string) => {\n this._allEnteredValue = value;\n const normalizedQuery = this.normalizeQuery(value);\n\n return from(this.typeahead)\n .pipe(\n filter((option: TypeaheadOption) => {\n return option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n }),\n toArray()\n );\n })\n )\n .subscribe((matches: TypeaheadOption[]) => {\n this.finalizeAsyncCall(matches);\n })\n );\n }\n\n protected normalizeOption(option: TypeaheadOption): string {\n const optionValue: string = getValueFromObject(\n option,\n this.typeaheadOptionField\n );\n const normalizedOption = this.typeaheadLatinize\n ? latinize(optionValue)\n : optionValue;\n\n return normalizedOption.toLowerCase();\n }\n\n protected tokenizeQuery(currentQuery: string | string[]): string | string[] {\n\n let query = currentQuery;\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords) {\n if (!this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\n this.typeaheadMultipleSearchDelimiters)) {\n // single words and multiple search delimiters are different, can be used together\n query = tokenize(\n query as string,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters,\n this.typeaheadMultipleSearchDelimiters\n );\n }\n } else if (this.typeaheadSingleWords) {\n query = tokenize(\n query as string,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters\n );\n } else {\n // multiple searches\n query = tokenize(\n query as string,\n null,\n null,\n this.typeaheadMultipleSearchDelimiters\n );\n }\n\n return query;\n }\n\n protected normalizeQuery(value: string): string | string[] {\n // If singleWords, break model here to not be doing extra work on each iteration\n let normalizedQuery: string | string[] = (this.typeaheadLatinize\n ? latinize(value)\n : value)\n .toString()\n .toLowerCase();\n\n normalizedQuery = this.tokenizeQuery(normalizedQuery);\n\n return normalizedQuery;\n }\n\n protected testMatch(match: string, test: string[] | string): boolean {\n let spaceLength: number;\n\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n\n return true;\n }\n\n return match.indexOf(test) >= 0;\n }\n\n protected finalizeAsyncCall(matches: TypeaheadOption[]): void {\n this.prepareMatches(matches || []);\n\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n\n if (!this.hasMatches()) {\n this.hide();\n\n return;\n }\n\n if (!this.isFocused && this.cancelRequestOnFocusLost) {\n return;\n }\n\n if (this._container) {\n // fix: remove usage of ngControl internals\n const _controlValue = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value) || '';\n\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = _controlValue.toString().toLowerCase();\n\n this._container.query = this.tokenizeQuery(normalizedQuery);\n this._container.matches = this._matches;\n } else {\n this.show();\n }\n }\n\n protected prepareMatches(options: TypeaheadOption[]): void {\n const limited = options.slice(0, this.typeaheadOptionsLimit);\n const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\n\n if (this.typeaheadGroupField) {\n let matches: TypeaheadMatch[] = [];\n\n // extract all group names\n const groups = sorted\n .map((option: TypeaheadMatch) =>\n getValueFromObject(option, this.typeaheadGroupField)\n )\n .filter((v: string, i: number, a: string[]) => a.indexOf(v) === i);\n\n groups.forEach((group: string) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n\n // add each item of group to array of matches\n matches = matches.concat(\n sorted\n .filter((option: TypeaheadOption) =>\n getValueFromObject(option, this.typeaheadGroupField) === group\n )\n .map((option: TypeaheadOption) =>\n new TypeaheadMatch(\n option,\n getValueFromObject(option, this.typeaheadOptionField)\n )\n )\n );\n });\n\n this._matches = matches;\n } else {\n this._matches = sorted.map(\n // tslint:disable-next-line:no-any\n (option: any) =>\n new TypeaheadMatch(\n option,\n getValueFromObject(option, this.typeaheadOptionField)\n )\n );\n }\n }\n\n protected orderMatches(options: TypeaheadOption[]): TypeaheadOption[] {\n if (!options.length) {\n return options;\n }\n\n if (this.typeaheadOrderBy !== null\n && this.typeaheadOrderBy !== undefined\n && typeof this.typeaheadOrderBy === 'object'\n && Object.keys(this.typeaheadOrderBy).length === 0) {\n // tslint:disable-next-line:no-console\n console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\n\n return options;\n }\n\n const { field, direction } = this.typeaheadOrderBy;\n\n if (!direction || !(direction === 'asc' || direction === 'desc')) {\n // tslint:disable-next-line:no-console\n console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\n\n return options;\n }\n\n if (typeof options[0] === 'string') {\n return direction === 'asc' ? options.sort() : options.sort().reverse();\n }\n\n if (!field || typeof field !== 'string') {\n // tslint:disable-next-line:no-console\n console.error('typeaheadOrderBy field has to set according to the documentation.');\n\n return options;\n }\n\n return options.sort((a: TypeaheadOption, b: TypeaheadOption) => {\n const stringA = getValueFromObject(a, field);\n const stringB = getValueFromObject(b, field);\n\n if (stringA < stringB) {\n return direction === 'asc' ? -1 : 1;\n }\n\n if (stringA > stringB) {\n return direction === 'asc' ? 1 : -1;\n }\n\n return 0;\n });\n }\n\n protected hasMatches(): boolean {\n return this._matches.length > 0;\n }\n\n protected checkDelimitersConflict(): void {\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords\n && (this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\n this.typeaheadMultipleSearchDelimiters))) {\n throw new Error(`Delimiters used in typeaheadMultipleSearchDelimiters must be different\n from delimiters used in typeaheadWordDelimiters (current value: ${this.typeaheadWordDelimiters}) and\n typeaheadPhraseDelimiters (current value: ${this.typeaheadPhraseDelimiters}).\n Please refer to the documentation`);\n }\n }\n\n protected haveCommonCharacters(str1: string, str2: string) {\n for (let i = 0; i < str1.length; i++) {\n if (str1.charAt(i).indexOf(str2) > -1) {\n return true;\n }\n }\n\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n exports: [TypeaheadContainerComponent, TypeaheadDirective],\n entryComponents: [TypeaheadContainerComponent]\n})\nexport class TypeaheadModule {\n static forRoot(): ModuleWithProviders<TypeaheadModule> {\n return {\n ngModule: TypeaheadModule,\n providers: [ComponentLoaderFactory, PositioningService]\n };\n }\n}\n"]}