123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. (function (factory) {
  2. if (typeof module === "object" && typeof module.exports === "object") {
  3. var v = factory(require, exports);
  4. if (v !== undefined) module.exports = v;
  5. }
  6. else if (typeof define === "function" && define.amd) {
  7. define(["require", "exports", "@angular/core", "../../config/config", "../../gestures/gesture-controller", "../../util/util", "../../platform/key", "../../navigation/nav-params", "../../navigation/view-controller"], factory);
  8. }
  9. })(function (require, exports) {
  10. "use strict";
  11. Object.defineProperty(exports, "__esModule", { value: true });
  12. var core_1 = require("@angular/core");
  13. var config_1 = require("../../config/config");
  14. var gesture_controller_1 = require("../../gestures/gesture-controller");
  15. var util_1 = require("../../util/util");
  16. var key_1 = require("../../platform/key");
  17. var nav_params_1 = require("../../navigation/nav-params");
  18. var view_controller_1 = require("../../navigation/view-controller");
  19. /**
  20. * @hidden
  21. */
  22. var LoadingCmp = (function () {
  23. function LoadingCmp(_viewCtrl, _config, _elementRef, gestureCtrl, params, renderer) {
  24. this._viewCtrl = _viewCtrl;
  25. this._config = _config;
  26. (void 0) /* assert */;
  27. this.gestureBlocker = gestureCtrl.createBlocker(gesture_controller_1.BLOCK_ALL);
  28. this.d = params.data;
  29. renderer.setElementClass(_elementRef.nativeElement, "loading-" + _config.get('mode'), true);
  30. if (this.d.cssClass) {
  31. this.d.cssClass.split(' ').forEach(function (cssClass) {
  32. // Make sure the class isn't whitespace, otherwise it throws exceptions
  33. if (cssClass.trim() !== '')
  34. renderer.setElementClass(_elementRef.nativeElement, cssClass, true);
  35. });
  36. }
  37. this.id = (++loadingIds);
  38. }
  39. LoadingCmp.prototype.ngOnInit = function () {
  40. // If no spinner was passed in loading options we need to fall back
  41. // to the loadingSpinner in the app's config, then the mode spinner
  42. if (util_1.isUndefined(this.d.spinner)) {
  43. this.d.spinner = this._config.get('loadingSpinner', this._config.get('spinner', 'ios'));
  44. }
  45. // If the user passed hide to the spinner we don't want to show it
  46. this.showSpinner = util_1.isDefined(this.d.spinner) && this.d.spinner !== 'hide';
  47. };
  48. LoadingCmp.prototype.ionViewWillEnter = function () {
  49. this.gestureBlocker.block();
  50. };
  51. LoadingCmp.prototype.ionViewDidLeave = function () {
  52. this.gestureBlocker.unblock();
  53. };
  54. LoadingCmp.prototype.ionViewDidEnter = function () {
  55. var _this = this;
  56. // If there is a duration, dismiss after that amount of time
  57. if (this.d && this.d.duration) {
  58. this.durationTimeout = setTimeout(function () { return _this.dismiss('backdrop'); }, this.d.duration);
  59. }
  60. };
  61. LoadingCmp.prototype.keyUp = function (ev) {
  62. if (this._viewCtrl.isLast() && ev.keyCode === key_1.KEY_ESCAPE) {
  63. this.bdClick();
  64. }
  65. };
  66. LoadingCmp.prototype.bdClick = function () {
  67. if (this.d.enableBackdropDismiss) {
  68. this.dismiss('backdrop');
  69. }
  70. };
  71. LoadingCmp.prototype.dismiss = function (role) {
  72. if (this.durationTimeout) {
  73. clearTimeout(this.durationTimeout);
  74. }
  75. return this._viewCtrl.dismiss(null, role);
  76. };
  77. LoadingCmp.prototype.ngOnDestroy = function () {
  78. (void 0) /* assert */;
  79. this.gestureBlocker.destroy();
  80. };
  81. LoadingCmp.decorators = [
  82. { type: core_1.Component, args: [{
  83. selector: 'ion-loading',
  84. template: '<ion-backdrop [hidden]="!d.showBackdrop" (click)="bdClick()" [class.backdrop-no-tappable]="!d.enableBackdropDismiss"></ion-backdrop>' +
  85. '<div class="loading-wrapper">' +
  86. '<div *ngIf="showSpinner" class="loading-spinner">' +
  87. '<ion-spinner [name]="d.spinner"></ion-spinner>' +
  88. '</div>' +
  89. '<div *ngIf="d.content" [innerHTML]="d.content" class="loading-content"></div>' +
  90. '</div>',
  91. host: {
  92. 'role': 'dialog'
  93. },
  94. encapsulation: core_1.ViewEncapsulation.None,
  95. },] },
  96. ];
  97. /** @nocollapse */
  98. LoadingCmp.ctorParameters = function () { return [
  99. { type: view_controller_1.ViewController, },
  100. { type: config_1.Config, },
  101. { type: core_1.ElementRef, },
  102. { type: gesture_controller_1.GestureController, },
  103. { type: nav_params_1.NavParams, },
  104. { type: core_1.Renderer, },
  105. ]; };
  106. LoadingCmp.propDecorators = {
  107. 'keyUp': [{ type: core_1.HostListener, args: ['body:keyup', ['$event'],] },],
  108. };
  109. return LoadingCmp;
  110. }());
  111. exports.LoadingCmp = LoadingCmp;
  112. var loadingIds = -1;
  113. });
  114. //# sourceMappingURL=loading-component.js.map