1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | "use strict";
|
8 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
9 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
10 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
11 | 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;
|
12 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
13 | };
|
14 | var __metadata = (this && this.__metadata) || function (k, v) {
|
15 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
16 | };
|
17 | Object.defineProperty(exports, "__esModule", { value: true });
|
18 | var utils_1 = require("../utils");
|
19 | var gridOptionsWrapper_1 = require("../gridOptionsWrapper");
|
20 | var context_1 = require("../context/context");
|
21 | var dragAndDropService_1 = require("../dragAndDrop/dragAndDropService");
|
22 | var columnController_1 = require("../columnController/columnController");
|
23 | var eventService_1 = require("../eventService");
|
24 | var events_1 = require("../events");
|
25 | var headerRowComp_1 = require("./headerRowComp");
|
26 | var bodyDropTarget_1 = require("./bodyDropTarget");
|
27 | var column_1 = require("../entities/column");
|
28 | var scrollVisibleService_1 = require("../gridPanel/scrollVisibleService");
|
29 | var HeaderContainer = (function () {
|
30 | function HeaderContainer(eContainer, eViewport, pinned) {
|
31 | this.headerRowComps = [];
|
32 | this.eContainer = eContainer;
|
33 | this.pinned = pinned;
|
34 | this.eViewport = eViewport;
|
35 | }
|
36 | HeaderContainer.prototype.registerGridComp = function (gridPanel) {
|
37 | this.setupDragAndDrop(gridPanel);
|
38 | };
|
39 | HeaderContainer.prototype.forEachHeaderElement = function (callback) {
|
40 | this.headerRowComps.forEach(function (headerRowComp) { return headerRowComp.forEachHeaderElement(callback); });
|
41 | };
|
42 | HeaderContainer.prototype.init = function () {
|
43 | this.scrollWidth = this.gridOptionsWrapper.getScrollbarWidth();
|
44 |
|
45 |
|
46 | this.eventService.addEventListener(events_1.Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));
|
47 | this.eventService.addEventListener(events_1.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));
|
48 | this.eventService.addEventListener(events_1.Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
|
49 | this.eventService.addEventListener(events_1.Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
|
50 | this.eventService.addEventListener(events_1.Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));
|
51 | this.eventService.addEventListener(events_1.Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
|
52 | };
|
53 |
|
54 |
|
55 | HeaderContainer.prototype.onColumnRowGroupChanged = function () {
|
56 | this.onGridColumnsChanged();
|
57 | };
|
58 |
|
59 | HeaderContainer.prototype.onColumnValueChanged = function () {
|
60 | this.onGridColumnsChanged();
|
61 | };
|
62 | HeaderContainer.prototype.onColumnResized = function () {
|
63 | this.setWidthOfPinnedContainer();
|
64 | };
|
65 | HeaderContainer.prototype.onDisplayedColumnsChanged = function () {
|
66 | this.setWidthOfPinnedContainer();
|
67 | };
|
68 | HeaderContainer.prototype.onScrollVisibilityChanged = function () {
|
69 | this.setWidthOfPinnedContainer();
|
70 | };
|
71 | HeaderContainer.prototype.setWidthOfPinnedContainer = function () {
|
72 | var pinningLeft = this.pinned === column_1.Column.PINNED_LEFT;
|
73 | var pinningRight = this.pinned === column_1.Column.PINNED_RIGHT;
|
74 | if (pinningLeft || pinningRight) {
|
75 |
|
76 | var width = pinningLeft ?
|
77 | this.columnController.getPinnedLeftContainerWidth()
|
78 | : this.columnController.getPinnedRightContainerWidth();
|
79 |
|
80 |
|
81 |
|
82 | var addPaddingForScrollbar = pinningLeft ?
|
83 | this.scrollVisibleService.isLeftVerticalScrollShowing()
|
84 | : this.scrollVisibleService.isRightVerticalScrollShowing();
|
85 | if (addPaddingForScrollbar) {
|
86 | width += this.scrollWidth;
|
87 | }
|
88 | this.eContainer.style.width = width + 'px';
|
89 | }
|
90 | };
|
91 | HeaderContainer.prototype.destroy = function () {
|
92 | this.removeHeaderRowComps();
|
93 | };
|
94 |
|
95 |
|
96 | HeaderContainer.prototype.onGridColumnsChanged = function () {
|
97 | this.removeHeaderRowComps();
|
98 | this.createHeaderRowComps();
|
99 | };
|
100 |
|
101 | HeaderContainer.prototype.refresh = function () {
|
102 | this.onGridColumnsChanged();
|
103 | };
|
104 | HeaderContainer.prototype.setupDragAndDrop = function (gridComp) {
|
105 | var dropContainer = this.eViewport ? this.eViewport : this.eContainer;
|
106 | var bodyDropTarget = new bodyDropTarget_1.BodyDropTarget(this.pinned, dropContainer);
|
107 | this.context.wireBean(bodyDropTarget);
|
108 | bodyDropTarget.registerGridComp(gridComp);
|
109 | };
|
110 | HeaderContainer.prototype.removeHeaderRowComps = function () {
|
111 | this.headerRowComps.forEach(function (headerRowComp) {
|
112 | headerRowComp.destroy();
|
113 | });
|
114 | this.headerRowComps.length = 0;
|
115 | utils_1.Utils.removeAllChildren(this.eContainer);
|
116 | };
|
117 | HeaderContainer.prototype.createHeaderRowComps = function () {
|
118 |
|
119 |
|
120 | var rowCount = this.columnController.getHeaderRowCount();
|
121 | for (var dept = 0; dept < rowCount; dept++) {
|
122 | var groupRow = dept !== (rowCount - 1);
|
123 | var type = groupRow ? headerRowComp_1.HeaderRowType.COLUMN_GROUP : headerRowComp_1.HeaderRowType.COLUMN;
|
124 | var headerRowComp = new headerRowComp_1.HeaderRowComp(dept, type, this.pinned, this.dropTarget);
|
125 | this.context.wireBean(headerRowComp);
|
126 | this.headerRowComps.push(headerRowComp);
|
127 | this.eContainer.appendChild(headerRowComp.getGui());
|
128 | }
|
129 | var includeFloatingFilterRow = this.gridOptionsWrapper.isFloatingFilter() && !this.columnController.isPivotMode();
|
130 | if (includeFloatingFilterRow) {
|
131 | var headerRowComp = new headerRowComp_1.HeaderRowComp(rowCount, headerRowComp_1.HeaderRowType.FLOATING_FILTER, this.pinned, this.dropTarget);
|
132 | this.context.wireBean(headerRowComp);
|
133 | this.headerRowComps.push(headerRowComp);
|
134 | this.eContainer.appendChild(headerRowComp.getGui());
|
135 | }
|
136 | };
|
137 | __decorate([
|
138 | context_1.Autowired('gridOptionsWrapper'),
|
139 | __metadata("design:type", gridOptionsWrapper_1.GridOptionsWrapper)
|
140 | ], HeaderContainer.prototype, "gridOptionsWrapper", void 0);
|
141 | __decorate([
|
142 | context_1.Autowired('context'),
|
143 | __metadata("design:type", context_1.Context)
|
144 | ], HeaderContainer.prototype, "context", void 0);
|
145 | __decorate([
|
146 | context_1.Autowired('$scope'),
|
147 | __metadata("design:type", Object)
|
148 | ], HeaderContainer.prototype, "$scope", void 0);
|
149 | __decorate([
|
150 | context_1.Autowired('dragAndDropService'),
|
151 | __metadata("design:type", dragAndDropService_1.DragAndDropService)
|
152 | ], HeaderContainer.prototype, "dragAndDropService", void 0);
|
153 | __decorate([
|
154 | context_1.Autowired('columnController'),
|
155 | __metadata("design:type", columnController_1.ColumnController)
|
156 | ], HeaderContainer.prototype, "columnController", void 0);
|
157 | __decorate([
|
158 | context_1.Autowired('eventService'),
|
159 | __metadata("design:type", eventService_1.EventService)
|
160 | ], HeaderContainer.prototype, "eventService", void 0);
|
161 | __decorate([
|
162 | context_1.Autowired('scrollVisibleService'),
|
163 | __metadata("design:type", scrollVisibleService_1.ScrollVisibleService)
|
164 | ], HeaderContainer.prototype, "scrollVisibleService", void 0);
|
165 | __decorate([
|
166 | context_1.PostConstruct,
|
167 | __metadata("design:type", Function),
|
168 | __metadata("design:paramtypes", []),
|
169 | __metadata("design:returntype", void 0)
|
170 | ], HeaderContainer.prototype, "init", null);
|
171 | return HeaderContainer;
|
172 | }());
|
173 | exports.HeaderContainer = HeaderContainer;
|