ngx-bootstrap-utils.umd.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957
  1. (function (global, factory) {
  2. typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) :
  3. typeof define === 'function' && define.amd ? define('ngx-bootstrap/utils', ['exports', '@angular/core'], factory) :
  4. (global = global || self, factory((global['ngx-bootstrap'] = global['ngx-bootstrap'] || {}, global['ngx-bootstrap'].utils = {}), global.ng.core));
  5. }(this, function (exports, core) { 'use strict';
  6. /**
  7. * @fileoverview added by tsickle
  8. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  9. */
  10. /**
  11. * @copyright Valor Software
  12. * @copyright Angular ng-bootstrap team
  13. */
  14. var Trigger = /** @class */ (function () {
  15. function Trigger(open, close) {
  16. this.open = open;
  17. this.close = close || open;
  18. }
  19. /**
  20. * @return {?}
  21. */
  22. Trigger.prototype.isManual = /**
  23. * @return {?}
  24. */
  25. function () {
  26. return this.open === 'manual' || this.close === 'manual';
  27. };
  28. return Trigger;
  29. }());
  30. /**
  31. * @fileoverview added by tsickle
  32. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  33. */
  34. /** @type {?} */
  35. var DEFAULT_ALIASES = {
  36. hover: ['mouseover', 'mouseout'],
  37. focus: ['focusin', 'focusout']
  38. };
  39. /* tslint:disable-next-line: no-any */
  40. /**
  41. * @param {?} triggers
  42. * @param {?=} aliases
  43. * @return {?}
  44. */
  45. function parseTriggers(triggers, aliases) {
  46. if (aliases === void 0) { aliases = DEFAULT_ALIASES; }
  47. /** @type {?} */
  48. var trimmedTriggers = (triggers || '').trim();
  49. if (trimmedTriggers.length === 0) {
  50. return [];
  51. }
  52. /** @type {?} */
  53. var parsedTriggers = trimmedTriggers
  54. .split(/\s+/)
  55. .map((/**
  56. * @param {?} trigger
  57. * @return {?}
  58. */
  59. function (trigger) { return trigger.split(':'); }))
  60. .map((/**
  61. * @param {?} triggerPair
  62. * @return {?}
  63. */
  64. function (triggerPair) {
  65. /** @type {?} */
  66. var alias = aliases[triggerPair[0]] || triggerPair;
  67. return new Trigger(alias[0], alias[1]);
  68. }));
  69. /** @type {?} */
  70. var manualTriggers = parsedTriggers.filter((/**
  71. * @param {?} triggerPair
  72. * @return {?}
  73. */
  74. function (triggerPair) {
  75. return triggerPair.isManual();
  76. }));
  77. if (manualTriggers.length > 1) {
  78. throw new Error('Triggers parse error: only one manual trigger is allowed');
  79. }
  80. if (manualTriggers.length === 1 && parsedTriggers.length > 1) {
  81. throw new Error('Triggers parse error: manual trigger can\'t be mixed with other triggers');
  82. }
  83. return parsedTriggers;
  84. }
  85. /**
  86. * @param {?} renderer
  87. * @param {?} target
  88. * @param {?} triggers
  89. * @param {?} showFn
  90. * @param {?} hideFn
  91. * @param {?} toggleFn
  92. * @return {?}
  93. */
  94. function listenToTriggers(renderer,
  95. /* tslint:disable-next-line: no-any */
  96. target, triggers, showFn, hideFn, toggleFn) {
  97. /** @type {?} */
  98. var parsedTriggers = parseTriggers(triggers);
  99. /* tslint:disable-next-line: no-any */
  100. /** @type {?} */
  101. var listeners = [];
  102. if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {
  103. return Function.prototype;
  104. }
  105. parsedTriggers.forEach((/**
  106. * @param {?} trigger
  107. * @return {?}
  108. */
  109. function (trigger) {
  110. if (trigger.open === trigger.close) {
  111. listeners.push(renderer.listen(target, trigger.open, toggleFn));
  112. return;
  113. }
  114. listeners.push(renderer.listen(target, trigger.open, showFn), renderer.listen(target, trigger.close, hideFn));
  115. }));
  116. return (/**
  117. * @return {?}
  118. */
  119. function () {
  120. listeners.forEach((/**
  121. * @param {?} unsubscribeFn
  122. * @return {?}
  123. */
  124. function (unsubscribeFn) { return unsubscribeFn(); }));
  125. });
  126. }
  127. /**
  128. * @param {?} renderer
  129. * @param {?} options
  130. * @return {?}
  131. */
  132. function listenToTriggersV2(renderer, options) {
  133. /** @type {?} */
  134. var parsedTriggers = parseTriggers(options.triggers);
  135. /** @type {?} */
  136. var target = options.target;
  137. // do nothing
  138. if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {
  139. return Function.prototype;
  140. }
  141. // all listeners
  142. /* tslint:disable-next-line: no-any */
  143. /** @type {?} */
  144. var listeners = [];
  145. // lazy listeners registration
  146. /** @type {?} */
  147. var _registerHide = [];
  148. /** @type {?} */
  149. var registerHide = (/**
  150. * @return {?}
  151. */
  152. function () {
  153. // add hide listeners to unregister array
  154. _registerHide.forEach((/**
  155. * @param {?} fn
  156. * @return {?}
  157. */
  158. function (fn) { return listeners.push(fn()); }));
  159. // register hide events only once
  160. _registerHide.length = 0;
  161. });
  162. // register open\close\toggle listeners
  163. parsedTriggers.forEach((/**
  164. * @param {?} trigger
  165. * @return {?}
  166. */
  167. function (trigger) {
  168. /** @type {?} */
  169. var useToggle = trigger.open === trigger.close;
  170. /** @type {?} */
  171. var showFn = useToggle ? options.toggle : options.show;
  172. if (!useToggle) {
  173. _registerHide.push((/**
  174. * @return {?}
  175. */
  176. function () {
  177. return renderer.listen(target, trigger.close, options.hide);
  178. }));
  179. }
  180. listeners.push(renderer.listen(target, trigger.open, (/**
  181. * @return {?}
  182. */
  183. function () { return showFn(registerHide); })));
  184. }));
  185. return (/**
  186. * @return {?}
  187. */
  188. function () {
  189. listeners.forEach((/**
  190. * @param {?} unsubscribeFn
  191. * @return {?}
  192. */
  193. function (unsubscribeFn) { return unsubscribeFn(); }));
  194. });
  195. }
  196. /**
  197. * @param {?} renderer
  198. * @param {?} options
  199. * @return {?}
  200. */
  201. function registerOutsideClick(renderer, options) {
  202. if (!options.outsideClick) {
  203. return Function.prototype;
  204. }
  205. /* tslint:disable-next-line: no-any */
  206. return renderer.listen('document', 'click', (/**
  207. * @param {?} event
  208. * @return {?}
  209. */
  210. function (event) {
  211. if (options.target && options.target.contains(event.target)) {
  212. return undefined;
  213. }
  214. if (options.targets &&
  215. options.targets.some((/**
  216. * @param {?} target
  217. * @return {?}
  218. */
  219. function (target) { return target.contains(event.target); }))) {
  220. return undefined;
  221. }
  222. options.hide();
  223. }));
  224. }
  225. /**
  226. * @param {?} renderer
  227. * @param {?} options
  228. * @return {?}
  229. */
  230. function registerEscClick(renderer, options) {
  231. if (!options.outsideEsc) {
  232. return Function.prototype;
  233. }
  234. return renderer.listen('document', 'keyup.esc', (/**
  235. * @param {?} event
  236. * @return {?}
  237. */
  238. function (event) {
  239. if (options.target && options.target.contains(event.target)) {
  240. return undefined;
  241. }
  242. if (options.targets &&
  243. options.targets.some((/**
  244. * @param {?} target
  245. * @return {?}
  246. */
  247. function (target) { return target.contains(event.target); }))) {
  248. return undefined;
  249. }
  250. options.hide();
  251. }));
  252. }
  253. /**
  254. * @fileoverview added by tsickle
  255. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  256. */
  257. /**
  258. * @license
  259. * Copyright Google Inc. All Rights Reserved.
  260. *
  261. * Use of this source code is governed by an MIT-style license that can be
  262. * found in the LICENSE file at https://angular.io/license
  263. */
  264. /**
  265. * JS version of browser APIs. This library can only run in the browser.
  266. * @type {?}
  267. */
  268. var win = (typeof window !== 'undefined' && window) || (/** @type {?} */ ({}));
  269. /** @type {?} */
  270. var document$1 = win.document;
  271. /** @type {?} */
  272. var location = win.location;
  273. /** @type {?} */
  274. var gc = win.gc ? (/**
  275. * @return {?}
  276. */
  277. function () { return win.gc(); }) : (/**
  278. * @return {?}
  279. */
  280. function () { return null; });
  281. /** @type {?} */
  282. var performance = win.performance ? win.performance : null;
  283. /** @type {?} */
  284. var Event = win.Event;
  285. /** @type {?} */
  286. var MouseEvent = win.MouseEvent;
  287. /** @type {?} */
  288. var KeyboardEvent = win.KeyboardEvent;
  289. /** @type {?} */
  290. var EventTarget = win.EventTarget;
  291. /** @type {?} */
  292. var History = win.History;
  293. /** @type {?} */
  294. var Location = win.Location;
  295. /** @type {?} */
  296. var EventListener = win.EventListener;
  297. /**
  298. * @fileoverview added by tsickle
  299. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  300. */
  301. /** @type {?} */
  302. var guessedVersion;
  303. /**
  304. * @return {?}
  305. */
  306. function _guessBsVersion() {
  307. if (typeof document === 'undefined') {
  308. return null;
  309. }
  310. /** @type {?} */
  311. var spanEl = document.createElement('span');
  312. spanEl.innerText = 'test bs version';
  313. document.body.appendChild(spanEl);
  314. spanEl.classList.add('d-none');
  315. /** @type {?} */
  316. var rect = spanEl.getBoundingClientRect();
  317. document.body.removeChild(spanEl);
  318. if (!rect) {
  319. return 'bs3';
  320. }
  321. return rect.top === 0 ? 'bs4' : 'bs3';
  322. }
  323. /**
  324. * @param {?} theme
  325. * @return {?}
  326. */
  327. function setTheme(theme) {
  328. guessedVersion = theme;
  329. }
  330. // todo: in ngx-bootstrap, bs4 will became a default one
  331. /**
  332. * @return {?}
  333. */
  334. function isBs3() {
  335. if (typeof win === 'undefined') {
  336. return true;
  337. }
  338. if (typeof win.__theme === 'undefined') {
  339. if (guessedVersion) {
  340. return guessedVersion === 'bs3';
  341. }
  342. guessedVersion = _guessBsVersion();
  343. return guessedVersion === 'bs3';
  344. }
  345. return win.__theme !== 'bs4';
  346. }
  347. /**
  348. * @fileoverview added by tsickle
  349. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  350. */
  351. /**
  352. * @template T
  353. */
  354. var /**
  355. * @template T
  356. */
  357. LinkedList = /** @class */ (function () {
  358. function LinkedList() {
  359. this.length = 0;
  360. this.asArray = [];
  361. // Array methods overriding END
  362. }
  363. /**
  364. * @param {?} position
  365. * @return {?}
  366. */
  367. LinkedList.prototype.get = /**
  368. * @param {?} position
  369. * @return {?}
  370. */
  371. function (position) {
  372. if (this.length === 0 || position < 0 || position >= this.length) {
  373. return void 0;
  374. }
  375. /** @type {?} */
  376. var current = this.head;
  377. for (var index = 0; index < position; index++) {
  378. current = current.next;
  379. }
  380. return current.value;
  381. };
  382. /**
  383. * @param {?} value
  384. * @param {?=} position
  385. * @return {?}
  386. */
  387. LinkedList.prototype.add = /**
  388. * @param {?} value
  389. * @param {?=} position
  390. * @return {?}
  391. */
  392. function (value, position) {
  393. if (position === void 0) { position = this.length; }
  394. if (position < 0 || position > this.length) {
  395. throw new Error('Position is out of the list');
  396. }
  397. /* tslint:disable-next-line: no-any*/
  398. /** @type {?} */
  399. var node = {
  400. value: value,
  401. next: undefined,
  402. previous: undefined
  403. };
  404. if (this.length === 0) {
  405. this.head = node;
  406. this.tail = node;
  407. this.current = node;
  408. }
  409. else {
  410. if (position === 0) {
  411. // first node
  412. node.next = this.head;
  413. this.head.previous = node;
  414. this.head = node;
  415. }
  416. else if (position === this.length) {
  417. // last node
  418. this.tail.next = node;
  419. node.previous = this.tail;
  420. this.tail = node;
  421. }
  422. else {
  423. // node in middle
  424. /** @type {?} */
  425. var currentPreviousNode = this.getNode(position - 1);
  426. /** @type {?} */
  427. var currentNextNode = currentPreviousNode.next;
  428. currentPreviousNode.next = node;
  429. currentNextNode.previous = node;
  430. node.previous = currentPreviousNode;
  431. node.next = currentNextNode;
  432. }
  433. }
  434. this.length++;
  435. this.createInternalArrayRepresentation();
  436. };
  437. /**
  438. * @param {?=} position
  439. * @return {?}
  440. */
  441. LinkedList.prototype.remove = /**
  442. * @param {?=} position
  443. * @return {?}
  444. */
  445. function (position) {
  446. if (position === void 0) { position = 0; }
  447. if (this.length === 0 || position < 0 || position >= this.length) {
  448. throw new Error('Position is out of the list');
  449. }
  450. if (position === 0) {
  451. // first node
  452. this.head = this.head.next;
  453. if (this.head) {
  454. // there is no second node
  455. this.head.previous = undefined;
  456. }
  457. else {
  458. // there is no second node
  459. this.tail = undefined;
  460. }
  461. }
  462. else if (position === this.length - 1) {
  463. // last node
  464. this.tail = this.tail.previous;
  465. this.tail.next = undefined;
  466. }
  467. else {
  468. // middle node
  469. /** @type {?} */
  470. var removedNode = this.getNode(position);
  471. removedNode.next.previous = removedNode.previous;
  472. removedNode.previous.next = removedNode.next;
  473. }
  474. this.length--;
  475. this.createInternalArrayRepresentation();
  476. };
  477. /**
  478. * @param {?} position
  479. * @param {?} value
  480. * @return {?}
  481. */
  482. LinkedList.prototype.set = /**
  483. * @param {?} position
  484. * @param {?} value
  485. * @return {?}
  486. */
  487. function (position, value) {
  488. if (this.length === 0 || position < 0 || position >= this.length) {
  489. throw new Error('Position is out of the list');
  490. }
  491. /** @type {?} */
  492. var node = this.getNode(position);
  493. node.value = value;
  494. this.createInternalArrayRepresentation();
  495. };
  496. /**
  497. * @return {?}
  498. */
  499. LinkedList.prototype.toArray = /**
  500. * @return {?}
  501. */
  502. function () {
  503. return this.asArray;
  504. };
  505. /* tslint:disable-next-line: no-any*/
  506. /* tslint:disable-next-line: no-any*/
  507. /**
  508. * @param {?} fn
  509. * @return {?}
  510. */
  511. LinkedList.prototype.findAll = /* tslint:disable-next-line: no-any*/
  512. /**
  513. * @param {?} fn
  514. * @return {?}
  515. */
  516. function (fn) {
  517. /** @type {?} */
  518. var current = this.head;
  519. /* tslint:disable-next-line: no-any*/
  520. /** @type {?} */
  521. var result = [];
  522. for (var index = 0; index < this.length; index++) {
  523. if (fn(current.value, index)) {
  524. result.push({ index: index, value: current.value });
  525. }
  526. current = current.next;
  527. }
  528. return result;
  529. };
  530. // Array methods overriding start
  531. // Array methods overriding start
  532. /**
  533. * @param {...?} args
  534. * @return {?}
  535. */
  536. LinkedList.prototype.push =
  537. // Array methods overriding start
  538. /**
  539. * @param {...?} args
  540. * @return {?}
  541. */
  542. function () {
  543. var _this = this;
  544. var args = [];
  545. for (var _i = 0; _i < arguments.length; _i++) {
  546. args[_i] = arguments[_i];
  547. }
  548. /* tslint:disable-next-line: no-any*/
  549. args.forEach((/**
  550. * @param {?} arg
  551. * @return {?}
  552. */
  553. function (arg) {
  554. _this.add(arg);
  555. }));
  556. return this.length;
  557. };
  558. /**
  559. * @return {?}
  560. */
  561. LinkedList.prototype.pop = /**
  562. * @return {?}
  563. */
  564. function () {
  565. if (this.length === 0) {
  566. return undefined;
  567. }
  568. /** @type {?} */
  569. var last = this.tail;
  570. this.remove(this.length - 1);
  571. return last.value;
  572. };
  573. /**
  574. * @param {...?} args
  575. * @return {?}
  576. */
  577. LinkedList.prototype.unshift = /**
  578. * @param {...?} args
  579. * @return {?}
  580. */
  581. function () {
  582. var _this = this;
  583. var args = [];
  584. for (var _i = 0; _i < arguments.length; _i++) {
  585. args[_i] = arguments[_i];
  586. }
  587. args.reverse();
  588. /* tslint:disable-next-line: no-any*/
  589. args.forEach((/**
  590. * @param {?} arg
  591. * @return {?}
  592. */
  593. function (arg) {
  594. _this.add(arg, 0);
  595. }));
  596. return this.length;
  597. };
  598. /**
  599. * @return {?}
  600. */
  601. LinkedList.prototype.shift = /**
  602. * @return {?}
  603. */
  604. function () {
  605. if (this.length === 0) {
  606. return undefined;
  607. }
  608. /** @type {?} */
  609. var lastItem = this.head.value;
  610. this.remove();
  611. return lastItem;
  612. };
  613. /* tslint:disable-next-line: no-any*/
  614. /* tslint:disable-next-line: no-any*/
  615. /**
  616. * @param {?} fn
  617. * @return {?}
  618. */
  619. LinkedList.prototype.forEach = /* tslint:disable-next-line: no-any*/
  620. /**
  621. * @param {?} fn
  622. * @return {?}
  623. */
  624. function (fn) {
  625. /** @type {?} */
  626. var current = this.head;
  627. for (var index = 0; index < this.length; index++) {
  628. fn(current.value, index);
  629. current = current.next;
  630. }
  631. };
  632. /**
  633. * @param {?} value
  634. * @return {?}
  635. */
  636. LinkedList.prototype.indexOf = /**
  637. * @param {?} value
  638. * @return {?}
  639. */
  640. function (value) {
  641. /** @type {?} */
  642. var current = this.head;
  643. /** @type {?} */
  644. var position = 0;
  645. for (var index = 0; index < this.length; index++) {
  646. if (current.value === value) {
  647. position = index;
  648. break;
  649. }
  650. current = current.next;
  651. }
  652. return position;
  653. };
  654. /* tslint:disable-next-line: no-any*/
  655. /* tslint:disable-next-line: no-any*/
  656. /**
  657. * @param {?} fn
  658. * @return {?}
  659. */
  660. LinkedList.prototype.some = /* tslint:disable-next-line: no-any*/
  661. /**
  662. * @param {?} fn
  663. * @return {?}
  664. */
  665. function (fn) {
  666. /** @type {?} */
  667. var current = this.head;
  668. /** @type {?} */
  669. var result = false;
  670. while (current && !result) {
  671. if (fn(current.value)) {
  672. result = true;
  673. break;
  674. }
  675. current = current.next;
  676. }
  677. return result;
  678. };
  679. /* tslint:disable-next-line: no-any*/
  680. /* tslint:disable-next-line: no-any*/
  681. /**
  682. * @param {?} fn
  683. * @return {?}
  684. */
  685. LinkedList.prototype.every = /* tslint:disable-next-line: no-any*/
  686. /**
  687. * @param {?} fn
  688. * @return {?}
  689. */
  690. function (fn) {
  691. /** @type {?} */
  692. var current = this.head;
  693. /** @type {?} */
  694. var result = true;
  695. while (current && result) {
  696. if (!fn(current.value)) {
  697. result = false;
  698. }
  699. current = current.next;
  700. }
  701. return result;
  702. };
  703. /**
  704. * @return {?}
  705. */
  706. LinkedList.prototype.toString = /**
  707. * @return {?}
  708. */
  709. function () {
  710. return '[Linked List]';
  711. };
  712. /* tslint:disable-next-line: no-any*/
  713. /* tslint:disable-next-line: no-any*/
  714. /**
  715. * @param {?} fn
  716. * @return {?}
  717. */
  718. LinkedList.prototype.find = /* tslint:disable-next-line: no-any*/
  719. /**
  720. * @param {?} fn
  721. * @return {?}
  722. */
  723. function (fn) {
  724. /** @type {?} */
  725. var current = this.head;
  726. /** @type {?} */
  727. var result;
  728. for (var index = 0; index < this.length; index++) {
  729. if (fn(current.value, index)) {
  730. result = current.value;
  731. break;
  732. }
  733. current = current.next;
  734. }
  735. return result;
  736. };
  737. /* tslint:disable-next-line: no-any*/
  738. /* tslint:disable-next-line: no-any*/
  739. /**
  740. * @param {?} fn
  741. * @return {?}
  742. */
  743. LinkedList.prototype.findIndex = /* tslint:disable-next-line: no-any*/
  744. /**
  745. * @param {?} fn
  746. * @return {?}
  747. */
  748. function (fn) {
  749. /** @type {?} */
  750. var current = this.head;
  751. /** @type {?} */
  752. var result;
  753. for (var index = 0; index < this.length; index++) {
  754. if (fn(current.value, index)) {
  755. result = index;
  756. break;
  757. }
  758. current = current.next;
  759. }
  760. return result;
  761. };
  762. /* tslint:disable-next-line: no-any*/
  763. /* tslint:disable-next-line: no-any*/
  764. /**
  765. * @protected
  766. * @param {?} position
  767. * @return {?}
  768. */
  769. LinkedList.prototype.getNode = /* tslint:disable-next-line: no-any*/
  770. /**
  771. * @protected
  772. * @param {?} position
  773. * @return {?}
  774. */
  775. function (position) {
  776. if (this.length === 0 || position < 0 || position >= this.length) {
  777. throw new Error('Position is out of the list');
  778. }
  779. /** @type {?} */
  780. var current = this.head;
  781. for (var index = 0; index < position; index++) {
  782. current = current.next;
  783. }
  784. return current;
  785. };
  786. /**
  787. * @protected
  788. * @return {?}
  789. */
  790. LinkedList.prototype.createInternalArrayRepresentation = /**
  791. * @protected
  792. * @return {?}
  793. */
  794. function () {
  795. /* tslint:disable-next-line: no-any*/
  796. /** @type {?} */
  797. var outArray = [];
  798. /** @type {?} */
  799. var current = this.head;
  800. while (current) {
  801. outArray.push(current.value);
  802. current = current.next;
  803. }
  804. this.asArray = outArray;
  805. };
  806. return LinkedList;
  807. }());
  808. /**
  809. * @fileoverview added by tsickle
  810. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  811. */
  812. /*tslint:disable:no-invalid-this */
  813. /* tslint:disable-next-line: no-any */
  814. /**
  815. * @param {?=} defaultValue
  816. * @return {?}
  817. */
  818. function OnChange(defaultValue) {
  819. /** @type {?} */
  820. var sufix = 'Change';
  821. /* tslint:disable-next-line: no-any */
  822. return (/**
  823. * @param {?} target
  824. * @param {?} propertyKey
  825. * @return {?}
  826. */
  827. function OnChangeHandler(target, propertyKey) {
  828. /** @type {?} */
  829. var _key = " __" + propertyKey + "Value";
  830. Object.defineProperty(target, propertyKey, {
  831. /* tslint:disable-next-line: no-any */
  832. get: /* tslint:disable-next-line: no-any */
  833. /**
  834. * @return {?}
  835. */
  836. function () {
  837. return this[_key];
  838. },
  839. /* tslint:disable-next-line: no-any */
  840. set: /* tslint:disable-next-line: no-any */
  841. /**
  842. * @param {?} value
  843. * @return {?}
  844. */
  845. function (value) {
  846. /** @type {?} */
  847. var prevValue = this[_key];
  848. this[_key] = value;
  849. if (prevValue !== value && this[propertyKey + sufix]) {
  850. this[propertyKey + sufix].emit(value);
  851. }
  852. }
  853. });
  854. });
  855. }
  856. /**
  857. * @fileoverview added by tsickle
  858. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  859. */
  860. var Utils = /** @class */ (function () {
  861. function Utils() {
  862. }
  863. /* tslint:disable-next-line: no-any */
  864. /* tslint:disable-next-line: no-any */
  865. /**
  866. * @param {?} element
  867. * @return {?}
  868. */
  869. Utils.reflow = /* tslint:disable-next-line: no-any */
  870. /**
  871. * @param {?} element
  872. * @return {?}
  873. */
  874. function (element) {
  875. /* tslint:disable-next-line: no-any */
  876. ((/**
  877. * @param {?} bs
  878. * @return {?}
  879. */
  880. function (bs) { return bs; }))(element.offsetHeight);
  881. };
  882. // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js
  883. /* tslint:disable-next-line: no-any */
  884. // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js
  885. /* tslint:disable-next-line: no-any */
  886. /**
  887. * @param {?} elem
  888. * @return {?}
  889. */
  890. Utils.getStyles =
  891. // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js
  892. /* tslint:disable-next-line: no-any */
  893. /**
  894. * @param {?} elem
  895. * @return {?}
  896. */
  897. function (elem) {
  898. // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
  899. // IE throws on elements created in popups
  900. // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
  901. /** @type {?} */
  902. var view = elem.ownerDocument.defaultView;
  903. if (!view || !view.opener) {
  904. view = win;
  905. }
  906. return view.getComputedStyle(elem);
  907. };
  908. return Utils;
  909. }());
  910. /**
  911. * @fileoverview added by tsickle
  912. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  913. */
  914. /** @type {?} */
  915. var _messagesHash = {};
  916. /** @type {?} */
  917. var _hideMsg = typeof console === 'undefined' || !('warn' in console);
  918. /**
  919. * @param {?} msg
  920. * @return {?}
  921. */
  922. function warnOnce(msg) {
  923. if (!core.isDevMode() || _hideMsg || msg in _messagesHash) {
  924. return;
  925. }
  926. _messagesHash[msg] = true;
  927. /*tslint:disable-next-line*/
  928. console.warn(msg);
  929. }
  930. exports.LinkedList = LinkedList;
  931. exports.OnChange = OnChange;
  932. exports.Trigger = Trigger;
  933. exports.Utils = Utils;
  934. exports.document = document$1;
  935. exports.isBs3 = isBs3;
  936. exports.listenToTriggers = listenToTriggers;
  937. exports.listenToTriggersV2 = listenToTriggersV2;
  938. exports.parseTriggers = parseTriggers;
  939. exports.registerEscClick = registerEscClick;
  940. exports.registerOutsideClick = registerOutsideClick;
  941. exports.setTheme = setTheme;
  942. exports.warnOnce = warnOnce;
  943. exports.window = win;
  944. Object.defineProperty(exports, '__esModule', { value: true });
  945. }));
  946. //# sourceMappingURL=ngx-bootstrap-utils.umd.js.map