panel.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. "use strict";
  2. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5. 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;
  6. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7. };
  8. var __metadata = (this && this.__metadata) || function (k, v) {
  9. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
  10. };
  11. Object.defineProperty(exports, "__esModule", { value: true });
  12. var core_1 = require("@angular/core");
  13. var common_1 = require("@angular/common");
  14. var shared_1 = require("../common/shared");
  15. var animations_1 = require("@angular/animations");
  16. var idx = 0;
  17. var Panel = /** @class */ (function () {
  18. function Panel(el) {
  19. this.el = el;
  20. this.collapsed = false;
  21. this.expandIcon = 'pi pi-plus';
  22. this.collapseIcon = 'pi pi-minus';
  23. this.showHeader = true;
  24. this.toggler = "icon";
  25. this.collapsedChange = new core_1.EventEmitter();
  26. this.onBeforeToggle = new core_1.EventEmitter();
  27. this.onAfterToggle = new core_1.EventEmitter();
  28. this.transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
  29. this.id = "ui-panel-" + idx++;
  30. }
  31. Panel.prototype.onHeaderClick = function (event) {
  32. if (this.toggler === 'header') {
  33. this.toggle(event);
  34. }
  35. };
  36. Panel.prototype.onIconClick = function (event) {
  37. if (this.toggler === 'icon') {
  38. this.toggle(event);
  39. }
  40. };
  41. Panel.prototype.toggle = function (event) {
  42. if (this.animating) {
  43. return false;
  44. }
  45. this.animating = true;
  46. this.onBeforeToggle.emit({ originalEvent: event, collapsed: this.collapsed });
  47. if (this.toggleable) {
  48. if (this.collapsed)
  49. this.expand(event);
  50. else
  51. this.collapse(event);
  52. }
  53. event.preventDefault();
  54. };
  55. Panel.prototype.expand = function (event) {
  56. this.collapsed = false;
  57. this.collapsedChange.emit(this.collapsed);
  58. };
  59. Panel.prototype.collapse = function (event) {
  60. this.collapsed = true;
  61. this.collapsedChange.emit(this.collapsed);
  62. };
  63. Panel.prototype.getBlockableElement = function () {
  64. return this.el.nativeElement.children[0];
  65. };
  66. Panel.prototype.onToggleDone = function (event) {
  67. this.animating = false;
  68. this.onAfterToggle.emit({ originalEvent: event, collapsed: this.collapsed });
  69. };
  70. __decorate([
  71. core_1.Input(),
  72. __metadata("design:type", Boolean)
  73. ], Panel.prototype, "toggleable", void 0);
  74. __decorate([
  75. core_1.Input(),
  76. __metadata("design:type", String)
  77. ], Panel.prototype, "header", void 0);
  78. __decorate([
  79. core_1.Input(),
  80. __metadata("design:type", Boolean)
  81. ], Panel.prototype, "collapsed", void 0);
  82. __decorate([
  83. core_1.Input(),
  84. __metadata("design:type", Object)
  85. ], Panel.prototype, "style", void 0);
  86. __decorate([
  87. core_1.Input(),
  88. __metadata("design:type", String)
  89. ], Panel.prototype, "styleClass", void 0);
  90. __decorate([
  91. core_1.Input(),
  92. __metadata("design:type", String)
  93. ], Panel.prototype, "expandIcon", void 0);
  94. __decorate([
  95. core_1.Input(),
  96. __metadata("design:type", String)
  97. ], Panel.prototype, "collapseIcon", void 0);
  98. __decorate([
  99. core_1.Input(),
  100. __metadata("design:type", Boolean)
  101. ], Panel.prototype, "showHeader", void 0);
  102. __decorate([
  103. core_1.Input(),
  104. __metadata("design:type", String)
  105. ], Panel.prototype, "toggler", void 0);
  106. __decorate([
  107. core_1.Output(),
  108. __metadata("design:type", core_1.EventEmitter)
  109. ], Panel.prototype, "collapsedChange", void 0);
  110. __decorate([
  111. core_1.Output(),
  112. __metadata("design:type", core_1.EventEmitter)
  113. ], Panel.prototype, "onBeforeToggle", void 0);
  114. __decorate([
  115. core_1.Output(),
  116. __metadata("design:type", core_1.EventEmitter)
  117. ], Panel.prototype, "onAfterToggle", void 0);
  118. __decorate([
  119. core_1.Input(),
  120. __metadata("design:type", String)
  121. ], Panel.prototype, "transitionOptions", void 0);
  122. __decorate([
  123. core_1.ContentChild(shared_1.Footer, { static: false }),
  124. __metadata("design:type", Object)
  125. ], Panel.prototype, "footerFacet", void 0);
  126. Panel = __decorate([
  127. core_1.Component({
  128. selector: 'p-panel',
  129. template: "\n <div [attr.id]=\"id\" [ngClass]=\"'ui-panel ui-widget ui-widget-content ui-corner-all'\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div [ngClass]=\"{'ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all': true, 'ui-panel-titlebar-clickable': (toggleable && toggler === 'header')}\" \n *ngIf=\"showHeader\" (click)=\"onHeaderClick($event)\">\n <span class=\"ui-panel-title\" *ngIf=\"header\">{{header}}</span>\n <ng-content select=\"p-header\"></ng-content>\n <a *ngIf=\"toggleable\" [attr.id]=\"id + '-label'\" class=\"ui-panel-titlebar-icon ui-panel-titlebar-toggler ui-corner-all ui-state-default\" tabindex=\"0\"\n (click)=\"onIconClick($event)\" (keydown.enter)=\"onIconClick($event)\" [attr.aria-controls]=\"id + '-content'\" role=\"tab\" [attr.aria-expanded]=\"!collapsed\">\n <span [class]=\"collapsed ? expandIcon : collapseIcon\"></span>\n </a>\n </div>\n <div [attr.id]=\"id + '-content'\" class=\"ui-panel-content-wrapper\" [@panelContent]=\"collapsed ? {value: 'hidden', params: {transitionParams: animating ? transitionOptions : '0ms', height: '0', opacity:'0'}} : {value: 'visible', params: {transitionParams: animating ? transitionOptions : '0ms', height: '*', opacity: '1'}}\" (@panelContent.done)=\"onToggleDone($event)\"\n [ngClass]=\"{'ui-panel-content-wrapper-overflown': collapsed||animating}\"\n role=\"region\" [attr.aria-hidden]=\"collapsed\" [attr.aria-labelledby]=\"id + '-label'\">\n <div class=\"ui-panel-content ui-widget-content\">\n <ng-content></ng-content>\n </div>\n \n <div class=\"ui-panel-footer ui-widget-content\" *ngIf=\"footerFacet\">\n <ng-content select=\"p-footer\"></ng-content>\n </div>\n </div>\n </div>\n ",
  130. animations: [
  131. animations_1.trigger('panelContent', [
  132. animations_1.state('hidden', animations_1.style({
  133. height: '0',
  134. opacity: 0
  135. })),
  136. animations_1.state('void', animations_1.style({
  137. height: '{{height}}',
  138. opacity: '{{opacity}}'
  139. }), { params: { height: '0', opacity: '0' } }),
  140. animations_1.state('visible', animations_1.style({
  141. height: '*',
  142. opacity: 1
  143. })),
  144. animations_1.transition('visible <=> hidden', animations_1.animate('{{transitionParams}}')),
  145. animations_1.transition('void => hidden', animations_1.animate('{{transitionParams}}')),
  146. animations_1.transition('void => visible', animations_1.animate('{{transitionParams}}'))
  147. ])
  148. ]
  149. }),
  150. __metadata("design:paramtypes", [core_1.ElementRef])
  151. ], Panel);
  152. return Panel;
  153. }());
  154. exports.Panel = Panel;
  155. var PanelModule = /** @class */ (function () {
  156. function PanelModule() {
  157. }
  158. PanelModule = __decorate([
  159. core_1.NgModule({
  160. imports: [common_1.CommonModule],
  161. exports: [Panel, shared_1.SharedModule],
  162. declarations: [Panel]
  163. })
  164. ], PanelModule);
  165. return PanelModule;
  166. }());
  167. exports.PanelModule = PanelModule;
  168. //# sourceMappingURL=panel.js.map