ru.coon 2.7.53 → 2.7.55

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 (28) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/package.json +1 -1
  3. package/src/report/component/ReportPanel.js +53 -5
  4. package/src/report/component/reportpanel/ReportGrid.js +3 -5
  5. package/src/report/component/reportpanel/ReportTree.js +3 -5
  6. package/src/report/component/settings/plugin/PluginSelectWindow.js +1 -1
  7. package/src/report/component/settings/plugin/ReportFormPluginPanelController.js +4 -1
  8. package/src/report/component/settings/plugin/ReportToolbarFunctions.js +176 -0
  9. package/src/report/plugin/configPanel/ReportToolbarPluginConfigPanel.js +195 -0
  10. package/src/report/plugin/grid/ExportReportDataToFilePlugin.js +7 -0
  11. package/src/report/plugin/grid/GroupButtonsPlugin.js +4 -1
  12. package/src/report/plugin/grid/ToolbarItemPlugin.js +5 -4
  13. package/src/report/plugin/report/ReportToolbarPlugin.js +66 -0
  14. package/src/report/toolbar/ButtonsByType.scss +168 -0
  15. package/src/report/toolbar/ReportGridToolbar.js +248 -0
  16. package/src/report/toolbar/ReportGridToolbar.scss +9 -0
  17. package/src/report/toolbar/dropdown/ToolbarConfigurationPanel.js +234 -0
  18. package/src/report/toolbar/dropdown/ToolbarConfigurationPanel.scss +13 -0
  19. package/src/report/toolbar/dropdown/ToolbarOverflowButton.js +113 -0
  20. package/src/report/toolbar/dropdown/ToolbarOverflowButton.scss +94 -0
  21. package/src/report/toolbar/dropdown/ToolbarOverflowPanel.js +188 -0
  22. package/src/report/toolbar/dropdown/ToolbarOverflowPanel.scss +37 -0
  23. package/src/report/toolbar/layout/ReportToolbarOverflow.js +374 -0
  24. package/src/uielement/component/settings/UiAceEditor.js +3 -0
  25. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGrid.js +6 -31
  26. package/src/uielement/component/settings/plugin/UiCustomPanelPluginModel.js +30 -0
  27. package/src/uielement/component/settings/plugin/UiCustomPanelPluginStore.js +5 -0
  28. package/src/version.js +1 -1
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Панель конфигурирования настроек тулбара.
3
+ * Регулирует видимость элементов в тулбаре.
4
+ * Позволяет настроить сортировку элементов.
5
+ */
6
+ Ext.define('Coon.report.toolbar.dropdown.ToolbarConfigurationPanel', {
7
+ extend: 'Ext.panel.Panel',
8
+ xtype: 'ToolbarConfigurationPanel',
9
+ cls: 'ToolbarConfigurationPanel',
10
+ width: '100%',
11
+ height: 330,
12
+ bodyPadding: '0 0 10px 0',
13
+ layout: {type: 'vbox', align: 'stretch'},
14
+ items: [
15
+ {
16
+ xtype: 'container',
17
+ html: 'Управление отображением кнопок отчета',
18
+ },
19
+ {
20
+ flex: 1,
21
+ xtype: 'panel',
22
+ layout: {type: 'hbox', align: 'stretch'},
23
+ defaults: {
24
+ flex: 1,
25
+ border: false,
26
+ rowLines: false,
27
+ columnLines: false,
28
+ margin: 5,
29
+ },
30
+ items: [
31
+ {
32
+ xtype: 'grid',
33
+ reference: 'toolbarItems',
34
+
35
+ viewConfig: {
36
+ plugins: {
37
+ gridviewdragdrop: {
38
+ containerScroll: true,
39
+ dragGroup: 'dd-grid-group1',
40
+ dropGroup: 'dd-grid-group1',
41
+ },
42
+ },
43
+ },
44
+ store: {
45
+ fields: ['text', 'iconCls', 'cls', 'isGroupButton', 'isSystemButton', 'foldStateId'],
46
+ data: [],
47
+ },
48
+ columns: [
49
+ {
50
+ text: 'Отчет', flex: 1, dataIndex: 'button', menuDisabled: true, sortable: false,
51
+ renderer: 'buttonRenderer',
52
+ },
53
+ {
54
+ xtype: 'actioncolumn',
55
+ menuDisabled: true,
56
+ width: 40,
57
+ stopSelection: false,
58
+ items: [
59
+ {
60
+ text: 'Перенести',
61
+ to: 'right',
62
+ sortable: false,
63
+ iconCls: 'x-fa fa-toggle-on activeToggle',
64
+ handler: 'onReplaceButton',
65
+ }
66
+ ],
67
+ }
68
+ ],
69
+ listeners: {
70
+ boxready: function(grid) {
71
+ Ext.util.Observable.capture(grid.getStore(), function(evname) {
72
+ });
73
+ },
74
+ },
75
+ },
76
+ {
77
+ xtype: 'grid',
78
+ border: false,
79
+ reference: 'menuItems',
80
+ viewConfig: {
81
+ plugins: {
82
+ gridviewdragdrop: {
83
+ containerScroll: true,
84
+ dragGroup: 'dd-grid-group2',
85
+ dropGroup: 'dd-grid-group2',
86
+ },
87
+ },
88
+ },
89
+ store: {
90
+ fields: ['text', 'iconCls', 'cls', 'isGroupButton', 'isSystemButton', 'foldStateId'],
91
+ data: [
92
+ ],
93
+ },
94
+ columns: [
95
+ {
96
+ text: 'Панель', flex: 1, dataIndex: 'button', menuDisabled: true, sortable: false,
97
+ renderer: 'buttonRenderer',
98
+ },
99
+ {
100
+ xtype: 'actioncolumn',
101
+ menuDisabled: true,
102
+ width: 40,
103
+ stopSelection: false,
104
+ items: [
105
+ {
106
+ text: 'Перенести',
107
+ sortable: false,
108
+ to: 'left',
109
+ iconCls: 'x-fa fa-toggle-on inactiveToggle fa-rotate-180',
110
+ handler: 'onReplaceButton',
111
+ }
112
+ ],
113
+ }
114
+ ],
115
+ }
116
+ ],
117
+ }
118
+ ],
119
+ controller: {
120
+
121
+ /**
122
+ * @param {string} reportId
123
+ * @param {Array} allItems
124
+ * @param {Array} foldedItems
125
+ */
126
+ doInit(reportId, allItems, foldedItems) {
127
+ this.reportId = reportId;
128
+ allItems = allItems || [];
129
+ foldedItems = foldedItems || [];
130
+
131
+ // Получение информации из элемента тулбара для отрисовки его в гриде конфигурации
132
+ // todo: Подумать о выносе данного кода в плагины (ToolbarItemPlugin)
133
+ const convert = function(item) {
134
+ let data;
135
+ const isGroupButton = false; // todo: Научиться распозновать по плагину
136
+ if (item.isButton) {
137
+ data = {
138
+ text: item.text, iconCls: item.config.iconCls,
139
+ foldStateId: item.config.foldStateId, isGroupButton: isGroupButton, isSystemButton: false,
140
+ };
141
+ } else if (item.xtype === 'label') {
142
+ data = {
143
+ text: item.config.html, iconCls: undefined,
144
+ foldStateId: item.config.foldStateId, isGroupButton: isGroupButton, isSystemButton: false,
145
+ };
146
+ } else {
147
+ // todo: Сделать реализацию для других типов плагинов
148
+ data = {};
149
+ }
150
+ return data;
151
+ };
152
+ this.lookup('toolbarItems').getStore().loadData(
153
+ allItems.filter((item) => item.itemId !== 'hiddenDisplayElement').map(convert)
154
+ );
155
+ this.lookup('menuItems').getStore().loadData(
156
+ foldedItems.map(convert)
157
+ );
158
+ },
159
+
160
+ buttonRenderer: function(value, meta, record) {
161
+ let iconCls = '';
162
+ const text = record.get('text');
163
+ if (record.get('iconCls')) {
164
+ iconCls = record.get('iconCls');
165
+ }
166
+ return iconCls ? `<span class="x-btn-button x-btn-button-default-toolbar-small x-btn-text x-btn-icon x-btn-icon-left">
167
+ <span class="x-btn-icon-el x-btn-icon-el-default-toolbar-small ${iconCls}" ></span>
168
+ <span class="x-btn-inner x-btn-inner-default-toolbar-small">${text}</span>
169
+ </span>`:
170
+ `<span class="x-btn-inner x-btn-inner-default-toolbar-small">${text}</span>`;
171
+ },
172
+
173
+ saveConfig: function(flag) {
174
+ const view = this.getView();
175
+ try {
176
+ if (!flag) {
177
+ localStorage.setItem('REPORT_TOOLBAR_' + this.reportId, JSON.stringify(
178
+ this.getConfiguration()
179
+ ));
180
+ } else {
181
+ localStorage.removeItem('REPORT_TOOLBAR_' + this.reportId);
182
+ }
183
+ const toolbar = view.up('ToolbarOverflowPanel').overflowButton.getReportToolbar();
184
+ toolbar && toolbar.fireEvent('needreload');
185
+ } catch (e) {
186
+ Coon.log.error('Ошибка формирования конфигурации тулбара отчета', e);
187
+ }
188
+ },
189
+
190
+ /**
191
+ * Получение новой конфигурации
192
+ * @returns {{}}
193
+ */
194
+ getConfiguration() {
195
+ const newUserPreferences = {data: {}, folded: undefined};
196
+ const convert = function(acc, item, index) {
197
+ const id = item.get('foldStateId');
198
+ if (!id) {
199
+ Coon.log.warn('У кнопки нет идентификатора для сохранения состояния!');
200
+ }
201
+ acc['data'][id] = {
202
+ folded: acc['folded'],
203
+ position: index,
204
+ };
205
+ return acc;
206
+ };
207
+ newUserPreferences.folded = false;
208
+ this.lookup('toolbarItems').getStore().getRange().reduce(convert, newUserPreferences);
209
+ newUserPreferences.folded = true;
210
+ this.lookup('menuItems').getStore().getRange().reduce(convert, newUserPreferences);
211
+ return newUserPreferences.data;
212
+ },
213
+
214
+ onReplaceButton: function(view, rIdx, cIdx, item, e, record) {
215
+ if (item.to === 'right') {
216
+ this.lookup('menuItems').getStore().loadRawData([record.getData()], true);
217
+ this.lookup('toolbarItems').getStore().removeAt(rIdx, 1);
218
+ } else {
219
+ this.lookup('toolbarItems').getStore().loadRawData([record.getData()], true);
220
+ this.lookup('menuItems').getStore().removeAt(rIdx, 1);
221
+ }
222
+ },
223
+
224
+ setDefaultSettings() {
225
+ const menuItems = this.lookup('menuItems');
226
+ const toolbarItems = this.lookup('toolbarItems');
227
+ menuItems.getStore().getRange().forEach((record) => {
228
+ toolbarItems.getStore().loadRawData([record.getData()], true);
229
+ menuItems.getStore().remove(record);
230
+ });
231
+ },
232
+
233
+ },
234
+ });
@@ -0,0 +1,13 @@
1
+ .ToolbarConfigurationPanel {
2
+ .x-grid-td {
3
+ border-right: 0 !important;
4
+ }
5
+
6
+ .activeToggle {
7
+ color: #A9A9A9;
8
+ }
9
+
10
+ .inactiveToggle {
11
+ color: #d0d0d0;
12
+ }
13
+ }
@@ -0,0 +1,113 @@
1
+ Ext.define('Coon.report.toolbar.dropdown.ToolbarOverflowButton', {
2
+ extend: 'Ext.button.Button',
3
+ alias: 'widget.ToolbarOverflowButton',
4
+ cls: 'ToolbarOverflowButton',
5
+ xtype: 'ToolbarOverflowButton',
6
+ overCls: 'no-color-on-hover',
7
+ iconCls: 'ToolbarOverflowButtonIcon',
8
+ focusOnToFront: false,
9
+ focusable: false,
10
+ allowDepress: false,
11
+ viewModel: {
12
+ data: {
13
+ isPanelOpen: false,
14
+ },
15
+ },
16
+ /* iconCls: 'fas fa-chevron-up',
17
+ bind: {
18
+ iconCls: '{iconCls}',
19
+ },*/
20
+ config: {
21
+ reportToolbar: undefined,
22
+ },
23
+
24
+ initComponent() {
25
+ const me = this;
26
+ this.dropDownMenu = Ext.create({
27
+ xtype: 'ToolbarOverflowPanel',
28
+ shadow: false,
29
+ overflowButton: me,
30
+ floating: true,
31
+ hideOnClick: false,
32
+ });
33
+ this.dropDownMenu.on({
34
+ scope: this,
35
+ hide: this.onHidePanel,
36
+ show: this.onShowPanel,
37
+ });
38
+ this.callParent();
39
+ },
40
+
41
+ onHidePanel: function() {
42
+ this.setHidden(false);
43
+ if (this.dropDownMenu.shadowElem) {
44
+ document.body.removeChild(this.dropDownMenu.shadowElem);
45
+ }
46
+ this.getViewModel().set('isPanelOpen', false);
47
+ this.dropDownMenu.getController().clearContainer(this.reportToolbar);
48
+ this.dropDownMenu.setActiveItem(0);
49
+ },
50
+
51
+ setIndicator() {
52
+ if (!this.hasCls('indicator-button')) {
53
+ this.addCls('indicator-button');
54
+ }
55
+ },
56
+
57
+ removeIndicator() {
58
+ if (this.hasCls('indicator-button')) {
59
+ this.removeCls('indicator-button');
60
+ }
61
+ },
62
+
63
+ setOverflowIndicator(indicator) {
64
+ if (indicator && !this.overflowIndicator) {
65
+ const div = document.createElement('div');
66
+ div.setAttribute('class', 'overflow-indicator');
67
+ this.overflowIndicator= this.getEl().dom.appendChild(div);
68
+ }
69
+ if (!indicator && this.overflowIndicator) {
70
+ this.getEl().dom.removeChild(this.overflowIndicator);
71
+ this.overflowIndicator = null;
72
+ }
73
+ },
74
+
75
+ onShowPanel: function() {
76
+ this.getViewModel().set('isPanelOpen', true);
77
+ const div = document.createElement('div');
78
+ div.setAttribute('class', 'shadow-elem');
79
+ const style = this.dropDownMenu.el.dom.style;
80
+ const xy = this.dropDownMenu.getXY();
81
+ div.style.zIndex = style.zIndex + 1;
82
+ div.style.top = (xy[1] - 34) + 'px';
83
+ div.style.left = (xy[0] + Number(style.width.replace('px', '')) - 40) + 'px';
84
+ this.dropDownMenu.shadowElem = document.body.appendChild(div);
85
+ this.setHidden(true);
86
+ },
87
+ listeners: {
88
+ render: function() {
89
+ if (this.reportToolbar.up('WindowWrap')) {
90
+ this.reportToolbar.up('WindowWrap').on({
91
+ beforeclose: () => this.dropDownMenu.hide(),
92
+ beforecollapse: () => this.dropDownMenu.hide(),
93
+ beforehide: () => this.dropDownMenu.hide(),
94
+ resize: () => this.dropDownMenu.hide(),
95
+ scope: this,
96
+ });
97
+ }
98
+ },
99
+ },
100
+ handler: function(button) {
101
+ if (button.disableHandler === true) {
102
+ button.disableHandler = false;
103
+ return;
104
+ }
105
+ const isPanelOpen = this.getViewModel().get('isPanelOpen');
106
+ if (isPanelOpen) {
107
+ this.dropDownMenu.hide();
108
+ } else {
109
+ this.dropDownMenu.showBy(button, 'tr-br?', [0, 2]);
110
+ }
111
+ },
112
+
113
+ });
@@ -0,0 +1,94 @@
1
+ /*.ToolbarOverflowButton {
2
+ padding: 8px 8px;
3
+ background-repeat: no-repeat;
4
+ width: 30px;
5
+ height: 30px;
6
+ border: 1px solid #3d6780;
7
+ border-radius: 6px;
8
+ //mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAgMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9InBhdGgtMS1pbnNpZGUtMV8zMzMzXzcyNTU4IiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTAgNkMwIDIuNjg2MjkgMi42ODYyOSAwIDYgMEgyNEMyNy4zMTM3IDAgMzAgMi42ODYyOSAzMCA2VjI0QzMwIDI3LjMxMzcgMjcuMzEzNyAzMCAyNCAzMEg2QzIuNjg2MjkgMzAgMCAyNy4zMTM3IDAgMjRWNloiLz48L21hc2s+PHBhdGggZD0iTTAgNkMwIDIuNjg2MjkgMi42ODYyOSAwIDYgMEgyNEMyNy4zMTM3IDAgMzAgMi42ODYyOSAzMCA2VjI0QzMwIDI3LjMxMzcgMjcuMzEzNyAzMCAyNCAzMEg2QzIuNjg2MjkgMzAgMCAyNy4zMTM3IDAgMjRWNloiIGZpbGw9IndoaXRlIi8+PHBhdGggZD0iTTYgMUgyNFYtMUg2VjFaTTI5IDZWMjRIMzFWNkgyOVpNMjQgMjlINlYzMUgyNFYyOVpNMSAyNFY2SC0xVjI0SDFaTTYgMjlDMy4yMzg1OCAyOSAxIDI2Ljc2MTQgMSAyNEgtMUMtMSAyNy44NjYgMi4xMzQwMSAzMSA2IDMxVjI5Wk0yOSAyNEMyOSAyNi43NjE0IDI2Ljc2MTQgMjkgMjQgMjlWMzFDMjcuODY2IDMxIDMxIDI3Ljg2NiAzMSAyNEgyOVpNMjQgMUMyNi43NjE0IDEgMjkgMy4yMzg1OCAyOSA2SDMxQzMxIDIuMTM0MDEgMjcuODY2IC0xIDI0IC0xVjFaTTYgLTFDMi4xMzQwMSAtMSAtMSAyLjEzNDAxIC0xIDZIMUMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMVYtMVoiIGZpbGw9IiMzRDY3ODAiIG1hc2s9InVybCgjcGF0aC0xLWluc2lkZS0xXzMzMzNfNzI1NTgpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjQ2OTY3IDExLjQ2OTdDOC43NjI1NiAxMS4xNzY4IDkuMjM3NDQgMTEuMTc2OCA5LjUzMDMzIDExLjQ2OTdMMTUgMTYuOTM5M0wyMC40Njk3IDExLjQ2OTdDMjAuNzYyNiAxMS4xNzY4IDIxLjIzNzQgMTEuMTc2OCAyMS41MzAzIDExLjQ2OTdDMjEuODIzMiAxMS43NjI2IDIxLjgyMzIgMTIuMjM3NCAyMS41MzAzIDEyLjUzMDNMMTUuNTMwMyAxOC41MzAzQzE1LjIzNzQgMTguODIzMiAxNC43NjI2IDE4LjgyMzIgMTQuNDY5NyAxOC41MzAzTDguNDY5NjcgMTIuNTMwM0M4LjE3Njc4IDEyLjIzNzQgOC4xNzY3OCAxMS43NjI2IDguNDY5NjcgMTEuNDY5N1oiIGZpbGw9IiMzRDY3ODAiLz48L3N2Zz4=");
9
+ .no-color-on-hover{
10
+ background-color: #FFFFFFFF;
11
+ }
12
+ }
13
+
14
+ .ToolbarOverflowButton.x-btn-menu-active,
15
+ .ToolbarOverflowButton.x-btn-pressed,
16
+ .ToolbarOverflowButton.x-btn-focus,
17
+ {
18
+ background-color: #ffffff !important;
19
+ background-image: url("data:image/svg+xml;base64,PHN2ZyAgaGVpZ2h0PSIzNSIgdmlld0JveD0iMCAwIDM4IDM1IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8zNDYzXzc1NzYpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0IDBDMTAuNjg2MyAwIDggMi42ODYyOSA4IDZWMjZDOCAyNy4wNTA2IDcuNzkzMDcgMjguMDkwOSA3LjM5MTA0IDI5LjA2MTVDNi45ODkgMzAuMDMyMSA2LjM5OTcyIDMwLjkxNCA1LjY1Njg1IDMxLjY1NjlDNC45MTM5OSAzMi4zOTk3IDQuMDMyMDcgMzIuOTg5IDMuMDYxNDcgMzMuMzkxQzIuMDkwODYgMzMuNzkzMSAxLjA1MDU4IDM0IDAgMzRWMzVIOEg5SDM4VjZDMzggMi42ODYyOSAzNS4zMTM3IDAgMzIgMEgxNFoiIGZpbGw9IndoaXRlIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yOS41MzAzIDE4LjUzMDNDMjkuMjM3NCAxOC44MjMyIDI4Ljc2MjYgMTguODIzMiAyOC40Njk3IDE4LjUzMDNMMjMgMTMuMDYwN0wxNy41MzAzIDE4LjUzMDNDMTcuMjM3NCAxOC44MjMyIDE2Ljc2MjYgMTguODIzMiAxNi40Njk3IDE4LjUzMDNDMTYuMTc2OCAxOC4yMzc0IDE2LjE3NjggMTcuNzYyNiAxNi40Njk3IDE3LjQ2OTdMMjIuNDY5NyAxMS40Njk3QzIyLjc2MjYgMTEuMTc2OCAyMy4yMzc0IDExLjE3NjggMjMuNTMwMyAxMS40Njk3TDI5LjUzMDMgMTcuNDY5N0MyOS44MjMyIDE3Ljc2MjYgMjkuODIzMiAxOC4yMzc0IDI5LjUzMDMgMTguNTMwM1oiIGZpbGw9IiMzRDY3ODAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkgNkM5IDMuMjM4NTggMTEuMjM4NiAxIDE0IDFIMzJDMzQuNzYxNCAxIDM3IDMuMjM4NTggMzcgNlYyNlYzNFYzNUgzOFY2QzM4IDIuNjg2MjkgMzUuMzEzNyAwIDMyIDBIMTRDMTAuNjg2MyAwIDggMi42ODYyOSA4IDZWMjZDOCAyNy4wNTA2IDcuNzkzMDcgMjguMDkwOSA3LjM5MTA0IDI5LjA2MTVDNi45ODkgMzAuMDMyMSA2LjM5OTcyIDMwLjkxNCA1LjY1Njg1IDMxLjY1NjlDNC45MTM5OSAzMi4zOTk3IDQuMDMyMDcgMzIuOTg5IDMuMDYxNDcgMzMuMzkxQzIuMDkwODYgMzMuNzkzMSAxLjA1MDU4IDM0IDAgMzRWMzVDMS4xODE5IDM1IDIuMzUyMjIgMzQuNzY3MiAzLjQ0NDE1IDM0LjMxNDlDMy42NzUxMSAzNC4yMTkyIDMuOTAxNjEgMzQuMTE0MiA0LjEyMzEgMzRDNC45NDg3OSAzMy41NzQ0IDUuNzA1IDMzLjAyMjkgNi4zNjM5NiAzMi4zNjRDNi40Njg0MyAzMi4yNTk1IDYuNTcwMTkgMzIuMTUyNiA2LjY2OTE5IDMyLjA0MzNDNy4zNjIxMyAzMS4yNzg2IDcuOTE5MTYgMzAuMzk5NiA4LjMxNDkyIDI5LjQ0NDJDOC43NjcyMSAyOC4zNTIyIDkgMjcuMTgxOSA5IDI2VjZaIiBmaWxsPSIjM0Q2NzgwIiBmaWxsLW9wYWNpdHk9IjAuNSIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwXzM0NjNfNzU3NiI+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") !important;
20
+ border-color: #3d6780 !important;
21
+ }*/
22
+
23
+
24
+ .ToolbarOverflowButton.x-btn-menu-active,
25
+ .ToolbarOverflowButton.x-btn-pressed,
26
+ .ToolbarOverflowButton.x-btn-focus,
27
+ {
28
+ background-color: #ffffff !important;
29
+ border-color: #3d6780 !important;
30
+ }
31
+
32
+ .ToolbarOverflowButton {
33
+ border: 1px solid #3d6780;
34
+ border-radius: 6px;
35
+ padding: 7px;
36
+
37
+ .overflow-indicator{
38
+ position: absolute;
39
+ width: 6px;
40
+ height: 6px;
41
+ right: 3px;
42
+ top:3px;
43
+ background-color: #6493CC;
44
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNiA2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9IjMiIGN5PSIzIiByPSIzIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==");
45
+ mask-size: 100%;
46
+ }
47
+
48
+ .ToolbarOverflowButtonIcon{
49
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjI5Mjg5IDcuMjkyODlDMy42ODM0MiA2LjkwMjM3IDQuMzE2NTggNi45MDIzNyA0LjcwNzExIDcuMjkyODlMMTIgMTQuNTg1OEwxOS4yOTI5IDcuMjkyODlDMTkuNjgzNCA2LjkwMjM3IDIwLjMxNjYgNi45MDIzNyAyMC43MDcxIDcuMjkyODlDMjEuMDk3NiA3LjY4MzQyIDIxLjA5NzYgOC4zMTY1OCAyMC43MDcxIDguNzA3MTFMMTIuNzA3MSAxNi43MDcxQzEyLjMxNjYgMTcuMDk3NiAxMS42ODM0IDE3LjA5NzYgMTEuMjkyOSAxNi43MDcxTDMuMjkyODkgOC43MDcxMUMyLjkwMjM3IDguMzE2NTggMi45MDIzNyA3LjY4MzQyIDMuMjkyODkgNy4yOTI4OVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+");
50
+ mask-size: 100%;
51
+ mask-repeat: no-repeat;
52
+ background-color: #3d6780;
53
+ }
54
+ }
55
+
56
+
57
+ .indicator-button{
58
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAgMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgNkMwIDIuNjg2MjkgMi42ODYyOSAwIDYgMEgyNEMyNy4zMTM3IDAgMzAgMi42ODYyOSAzMCA2VjI0QzMwIDI3LjMxMzcgMjcuMzEzNyAzMCAyNCAzMEg2QzIuNjg2MjkgMzAgMCAyNy4zMTM3IDAgMjRWNloiIGZpbGw9IiNFQ0YxRjkiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguNDY5NjcgMTEuNDY5N0M4Ljc2MjU2IDExLjE3NjggOS4yMzc0NCAxMS4xNzY4IDkuNTMwMzMgMTEuNDY5N0wxNSAxNi45MzkzTDIwLjQ2OTcgMTEuNDY5N0MyMC43NjI2IDExLjE3NjggMjEuMjM3NCAxMS4xNzY4IDIxLjUzMDMgMTEuNDY5N0MyMS44MjMyIDExLjc2MjYgMjEuODIzMiAxMi4yMzc0IDIxLjUzMDMgMTIuNTMwM0wxNS41MzAzIDE4LjUzMDNDMTUuMjM3NCAxOC44MjMyIDE0Ljc2MjYgMTguODIzMiAxNC40Njk3IDE4LjUzMDNMOC40Njk2NyAxMi41MzAzQzguMTc2NzggMTIuMjM3NCA4LjE3Njc4IDExLjc2MjYgOC40Njk2NyAxMS40Njk3WiIgZmlsbD0iIzNENjc4MCIvPjwvc3ZnPg==") !important;
59
+ }
60
+
61
+ .go-to-button{
62
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzkxN18yNDU4KSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi43MDcxIDE2LjcwNzFMMTYuNzA3MSAxMi43MDcxQzE3LjA5NzYgMTIuMzE2NiAxNy4wOTc2IDExLjY4MzQgMTYuNzA3MSAxMS4yOTI5TDEyLjcwNzEgNy4yOTI4OUMxMi4zMTY2IDYuOTAyMzcgMTEuNjgzNCA2LjkwMjM3IDExLjI5MjkgNy4yOTI4OUMxMC45MDI0IDcuNjgzNDIgMTAuOTAyNCA4LjMxNjU4IDExLjI5MjkgOC43MDcxMUwxMy41ODU4IDExTDkuMDkwOTEgMTFDNi4zMTc4NSAxMSA0IDEzLjE2ODggNCAxNS45Mjg2TDQgMjNDNCAyMy41NTIzIDQuNDQ3NzIgMjQgNSAyNEM1LjU1MjI5IDI0IDYgMjMuNTUyMyA2IDIzTDYgMTUuOTI4NkM2IDE0LjM0ODkgNy4zNDUzMiAxMyA5LjA5MDkxIDEzTDEzLjU4NTggMTNMMTEuMjkyOSAxNS4yOTI5QzEwLjkwMjQgMTUuNjgzNCAxMC45MDI0IDE2LjMxNjYgMTEuMjkyOSAxNi43MDcxQzExLjY4MzQgMTcuMDk3NiAxMi4zMTY2IDE3LjA5NzYgMTIuNzA3MSAxNi43MDcxWiIgZmlsbD0iYmxhY2siLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjI5MjkgMC4yOTI4OTNDMTEuNjgzNCAtMC4wOTc2MzExIDEyLjMxNjYgLTAuMDk3NjMxMSAxMi43MDcxIDAuMjkyODkzTDIzLjcwNzEgMTEuMjkyOUMyNC4wOTc2IDExLjY4MzQgMjQuMDk3NiAxMi4zMTY2IDIzLjcwNzEgMTIuNzA3MUwxMi43MDcxIDIzLjcwNzFDMTIuNTE5NiAyMy44OTQ2IDEyLjI2NTIgMjQgMTIgMjRDMTEuNzM0OCAyNCAxMS40ODA0IDIzLjg5NDYgMTEuMjkyOSAyMy43MDcxTDcuNDQyODkgMTkuODU3MUM3LjA1MjM3IDE5LjQ2NjYgNy4wNTIzNyAxOC44MzM0IDcuNDQyODkgMTguNDQyOUM3LjgzMzQyIDE4LjA1MjQgOC40NjY1OCAxOC4wNTI0IDguODU3MTEgMTguNDQyOUwxMiAyMS41ODU4TDIxLjU4NTggMTJMMTIgMi40MTQyMUwyLjQxNDIxIDEyTDIuNzA3MTEgMTIuMjkyOUMzLjA5NzYzIDEyLjY4MzQgMy4wOTc2MyAxMy4zMTY2IDIuNzA3MTEgMTMuNzA3MUMyLjMxNjU4IDE0LjA5NzYgMS42ODM0MiAxNC4wOTc2IDEuMjkyODkgMTMuNzA3MUwwLjI5Mjg5MyAxMi43MDcxQy0wLjA5NzYzMTEgMTIuMzE2NiAtMC4wOTc2MzExIDExLjY4MzQgMC4yOTI4OTMgMTEuMjkyOUwxMS4yOTI5IDAuMjkyODkzWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC41Ii8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDBfOTE3XzI0NTgiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IndoaXRlIi8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+");
63
+ }
64
+
65
+ .print-pdf-button{
66
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjAwMDAxIDAuOTg5OTlDMy40NDc3MiAwLjk4OTk5IDMuMDAwMDEgMS40Mzc3MSAzLjAwMDAxIDEuOTg5OTlWMTAuOTlDMy4wMDAwMSAxMS41NDIzIDMuNDQ3NzIgMTEuOTkgNC4wMDAwMSAxMS45OUM0LjU1MjI5IDExLjk5IDUuMDAwMDEgMTEuNTQyMyA1LjAwMDAxIDEwLjk5VjIuOTg5OTlIMTRWNi45ODk5OUMxNCA3LjU0MjI3IDE0LjQ0NzcgNy45ODk5OSAxNSA3Ljk4OTk5SDE5VjEwLjk5QzE5IDExLjU0MjMgMTkuNDQ3NyAxMS45OSAyMCAxMS45OUMyMC41NTIzIDExLjk5IDIxIDExLjU0MjMgMjEgMTAuOTlWNi45ODk5OUMyMSA2LjcyNDc3IDIwLjg5NDcgNi40NzA0MiAyMC43MDcxIDYuMjgyODhMMTUuNzA3MSAxLjI4Mjg4QzE1LjUxOTYgMS4wOTUzNSAxNS4yNjUyIDAuOTg5OTkgMTUgMC45ODk5OUg0LjAwMDAxWk0xNy41ODU4IDUuOTg5OTlMMTYgNC40MDQyVjUuOTg5OTlIMTcuNTg1OFpNMy4zMDQ5MyAyMC4wNTQ5SDQuNzU4MDZDNS40Mzc3NCAyMC4wNTQ5IDYuMDE5NzggMTkuOTQzNiA2LjUwNDE1IDE5LjcyMDlDNi45OTI0MyAxOS40OTQ0IDcuMzY1NDggMTkuMTc4IDcuNjIzMjkgMTguNzcxN0M3Ljg4NTAxIDE4LjM2NTUgOC4wMTU4NyAxNy44ODcgOC4wMTU4NyAxNy4zMzYyQzguMDE1ODcgMTYuNzg1NCA3Ljg4NTAxIDE2LjI5NzEgNy42MjMyOSAxNS44NzEzQzcuMzY1NDggMTUuNDQxNyA2Ljk5MjQzIDE1LjEwMzggNi41MDQxNSAxNC44NTc3QzYuMDE5NzggMTQuNjExNiA1LjQzNzc0IDE0LjQ4ODUgNC43NTgwNiAxNC40ODg1SDEuMzk0NzhWMjMuMDE5OEgzLjMwNDkzVjIwLjA1NDlaTTMuMzA0OTMgMTguNTcyNVYxNS45NzA5SDQuNzU4MDZDNS4wNzQ0NiAxNS45NzA5IDUuMzI4MzcgMTYuMDM1NCA1LjUxOTc4IDE2LjE2NDNDNS43MTUwOSAxNi4yOTMyIDUuODU3NjcgMTYuNDYzMSA1Ljk0NzUxIDE2LjY3NDFDNi4wNDEyNiAxNi44ODExIDYuMDg4MTMgMTcuMTA1NyA2LjA4ODEzIDE3LjM0NzlDNi4wODgxMyAxNy41ODIzIDYuMDQxMjYgMTcuNzkzMiA1Ljk0NzUxIDE3Ljk4MDdDNS44NTc2NyAxOC4xNjQzIDUuNzE1MDkgMTguMzA4OCA1LjUxOTc4IDE4LjQxNDNDNS4zMjgzNyAxOC41MTk4IDUuMDc0NDYgMTguNTcyNSA0Ljc1ODA2IDE4LjU3MjVIMy4zMDQ5M1pNMTEuMzI2MiAyMy4wMTk4SDEyLjExNzJDMTIuNjkxNCAyMy4wMTk4IDEzLjIxNjggMjIuOTIyMSAxMy42OTM0IDIyLjcyNjhDMTQuMTY5OSAyMi41MzE1IDE0LjU4MiAyMi4yNTQyIDE0LjkyOTcgMjEuODk0OEMxNS4yODEzIDIxLjUzMTUgMTUuNTUyNyAyMS4xMDE4IDE1Ljc0NDIgMjAuNjA1N0MxNS45MzU2IDIwLjEwNTcgMTYuMDMxMyAxOS41NTMgMTYuMDMxMyAxOC45NDc1VjE4LjU2NjdDMTYuMDMxMyAxNy45NTczIDE1LjkzNTYgMTcuNDA0NSAxNS43NDQyIDE2LjkwODRDMTUuNTUyNyAxNi40MTI0IDE1LjI4MTMgMTUuOTgyNyAxNC45Mjk3IDE1LjYxOTRDMTQuNTgyIDE1LjI1NjEgMTQuMTY4IDE0Ljk3NjggMTMuNjg3NSAxNC43ODE1QzEzLjIxMDkgMTQuNTg2MiAxMi42ODM2IDE0LjQ4ODUgMTIuMTA1NSAxNC40ODg1SDExLjMyNjJIMTAuMjA3SDkuNDE2MDNWMjMuMDE5OEgxMC4yNDIySDExLjMyNjJaTTExLjMyNjIgMjEuNTQzMkgxMi4xMTcyQzEyLjU0MyAyMS41NDMyIDEyLjkwMjQgMjEuNDQ1NiAxMy4xOTUzIDIxLjI1MDJDMTMuNDg4MyAyMS4wNTEgMTMuNzEwOSAyMC43NTgxIDEzLjg2MzMgMjAuMzcxM0MxNC4wMTU2IDE5Ljk4MDcgMTQuMDkxOCAxOS41MDYxIDE0LjA5MTggMTguOTQ3NVYxOC41NTQ5QzE0LjA5MTggMTguMTMzMSAxNC4wNDg4IDE3Ljc2MiAxMy45NjI5IDE3LjQ0MTdDMTMuODc3IDE3LjExNzQgMTMuNzUgMTYuODQ1OSAxMy41ODIgMTYuNjI3MkMxMy40MTQxIDE2LjQwODQgMTMuMjA1MSAxNi4yNDQ0IDEyLjk1NTEgMTYuMTM1QzEyLjcwOSAxNi4wMjU2IDEyLjQyNTggMTUuOTcwOSAxMi4xMDU1IDE1Ljk3MDlIMTEuMzI2MlYyMS41NDMyWk0xOS4zNDc0IDE4LjA4NjJWMTUuOTcwOUgyMy4wNzk5VjE0LjQ4ODVIMTkuMzQ3NEgxOC44MTQySDE3LjQzNzNWMjMuMDE5OEgxOS4zNDc0VjE5LjU2MjdIMjIuNzA0OVYxOC4wODYySDE5LjM0NzRaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==");
67
+ }
68
+
69
+ .masked-system-button{
70
+ padding: 0 !important;
71
+ background-color: #3d6780;
72
+ mask-size: 100%;
73
+ mask-repeat: no-repeat;
74
+ }
75
+
76
+ .print-excel-button{
77
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjAwMDAxIDAuOTg5OTlDMy40NDc3MiAwLjk4OTk5IDMuMDAwMDEgMS40Mzc3MSAzLjAwMDAxIDEuOTg5OTlWMTAuOTlDMy4wMDAwMSAxMS41NDIzIDMuNDQ3NzIgMTEuOTkgNC4wMDAwMSAxMS45OUM0LjU1MjI5IDExLjk5IDUuMDAwMDEgMTEuNTQyMyA1LjAwMDAxIDEwLjk5VjIuOTg5OTlIMTRWNi45ODk5OUMxNCA3LjU0MjI3IDE0LjQ0NzcgNy45ODk5OSAxNSA3Ljk4OTk5SDE5VjEwLjk5QzE5IDExLjU0MjMgMTkuNDQ3NyAxMS45OSAyMCAxMS45OUMyMC41NTIzIDExLjk5IDIxIDExLjU0MjMgMjEgMTAuOTlWNi45ODk5OUMyMSA2LjcyNDc3IDIwLjg5NDcgNi40NzA0MiAyMC43MDcxIDYuMjgyODhMMTUuNzA3MSAxLjI4Mjg4QzE1LjUxOTYgMS4wOTUzNSAxNS4yNjUyIDAuOTg5OTkgMTUgMC45ODk5OUg0LjAwMDAxWk0xNy41ODU4IDUuOTg5OTlMMTYgNC40MDQyVjUuOTg5OTlIMTcuNTg1OFpNNC43ODE0OSAxNy4zOTQ4TDMuMjgxNDkgMTQuNDg4NUgxLjEwMTgxTDMuNTMzNDUgMTguNzE5TDEuMDM3MzUgMjMuMDE5OEgzLjI0MDQ4TDQuNzgxNDkgMjAuMDYwOEw2LjMyODM3IDIzLjAxOThIOC41MjU2M0w2LjAzNTQgMTguNzE5TDguNDYxMTggMTQuNDg4NUg2LjI4MTQ5TDQuNzgxNDkgMTcuMzk0OFpNMTUuMTExMyAyMy4wMTk4VjIxLjU0MzJIMTEuNDU1MVYxNC40ODg1SDkuNTQ0OTNWMjMuMDE5OEgxMC44MDQ3SDExLjQ1NTFIMTUuMTExM1pNMjAuNjQ4MiAyMC4zODMxQzIwLjY5MTIgMjAuNDk2MyAyMC43MTI3IDIwLjYyNTIgMjAuNzEyNyAyMC43Njk4QzIwLjcxMjcgMjAuOTQxNyAyMC42Njk3IDIxLjA5NzkgMjAuNTgzOCAyMS4yMzg1QzIwLjQ5NzggMjEuMzc5MiAyMC4zNjUgMjEuNDkwNSAyMC4xODUzIDIxLjU3MjVDMjAuMDA5NSAyMS42NTA2IDE5Ljc3OTEgMjEuNjg5NyAxOS40OTM5IDIxLjY4OTdDMTkuMjQ3OCAyMS42ODk3IDE5LjAyNTIgMjEuNjY2MyAxOC44MjU5IDIxLjYxOTRDMTguNjI2NyAyMS41NzI1IDE4LjQ1NjggMjEuNDk0NCAxOC4zMTYyIDIxLjM4NUMxOC4xNzk1IDIxLjI3NTYgMTguMDc0IDIxLjEzMzEgMTcuOTk5OCAyMC45NTczQzE3LjkyNTYgMjAuNzc3NiAxNy44ODg0IDIwLjU1ODggMTcuODg4NCAyMC4zMDFIMTUuOTc4M0MxNS45NzgzIDIwLjc5MzIgMTYuMDc3OSAyMS4yMTkgMTYuMjc3MSAyMS41Nzg0QzE2LjQ4MDIgMjEuOTMzOCAxNi43NDk4IDIyLjIyNjggMTcuMDg1NyAyMi40NTczQzE3LjQyNTYgMjIuNjg3NyAxNy44MDQ1IDIyLjg1OTYgMTguMjIyNCAyMi45NzI5QzE4LjY0MDQgMjMuMDgyMyAxOS4wNjQyIDIzLjEzNyAxOS40OTM5IDIzLjEzN0MxOS45NjY2IDIzLjEzNyAyMC4zOTQzIDIzLjA4NDIgMjAuNzc3MSAyMi45Nzg4QzIxLjE1OTkgMjIuODczMyAyMS40ODgxIDIyLjcxOSAyMS43NjE1IDIyLjUxNTlDMjIuMDM4OCAyMi4zMDg4IDIyLjI0OTggMjIuMDU4OCAyMi4zOTQzIDIxLjc2NTlDMjIuNTQyNyAyMS40NzI5IDIyLjYxNyAyMS4xMzcgMjIuNjE3IDIwLjc1ODFDMjIuNjE3IDIwLjQwMjYgMjIuNTU0NSAyMC4wODQyIDIyLjQyOTUgMTkuODAzQzIyLjMwODQgMTkuNTIxNyAyMi4xMjY3IDE5LjI2OTggMjEuODg0NSAxOS4wNDcxQzIxLjY0MjQgMTguODI0NSAyMS4zNDM1IDE4LjYyNTIgMjAuOTg4MSAxOC40NDk1QzIwLjYzNjUgMTguMjczNyAyMC4yMzIyIDE4LjExMzUgMTkuNzc1MiAxNy45NjlDMTkuNTEzNCAxNy44OTA5IDE5LjI4MSAxNy44MDg4IDE5LjA3NzkgMTcuNzIyOUMxOC44NzQ4IDE3LjYzNyAxOC43MDI5IDE3LjU0NzEgMTguNTYyMyAxNy40NTM0QzE4LjQyNTYgMTcuMzU1NyAxOC4zMjAxIDE3LjI1MjIgMTguMjQ1OSAxNy4xNDI4QzE4LjE3NTYgMTcuMDI5NSAxOC4xNDA0IDE2LjkwNDUgMTguMTQwNCAxNi43Njc4QzE4LjE0MDQgMTYuNTk1OSAxOC4xODczIDE2LjQzNzcgMTguMjgxIDE2LjI5MzJDMTguMzc4NyAxNi4xNDg3IDE4LjUyMTMgMTYuMDM1NCAxOC43MDg4IDE1Ljk1MzRDMTguOTAwMiAxNS44Njc0IDE5LjEzNjUgMTUuODI0NSAxOS40MTc3IDE1LjgyNDVDMTkuNzA2OCAxNS44MjQ1IDE5Ljk0NyAxNS44NzUyIDIwLjEzODQgMTUuOTc2OEMyMC4zMzM4IDE2LjA3ODQgMjAuNDc4MyAxNi4yMTkgMjAuNTcyIDE2LjM5ODdDMjAuNjY5NyAxNi41NzQ1IDIwLjcxODUgMTYuNzc3NiAyMC43MTg1IDE3LjAwODFIMjIuNjE3QzIyLjYxNyAxNi40ODQ2IDIyLjQ4NDEgMTYuMDI1NiAyMi4yMTg1IDE1LjYzMTFDMjEuOTUyOSAxNS4yMzI3IDIxLjU4MTggMTQuOTI0MSAyMS4xMDUyIDE0LjcwNTNDMjAuNjMyNiAxNC40ODI3IDIwLjA4MzggMTQuMzcxMyAxOS40NTg4IDE0LjM3MTNDMTguOTkgMTQuMzcxMyAxOC41NjAzIDE0LjQyOCAxOC4xNjk3IDE0LjU0MTNDMTcuNzc5MSAxNC42NTA2IDE3LjQzOTIgMTQuODEwOCAxNy4xNTAyIDE1LjAyMTdDMTYuODYxMSAxNS4yMjg4IDE2LjYzNjUgMTUuNDc4OCAxNi40NzYzIDE1Ljc3MTdDMTYuMzE2MiAxNi4wNjQ3IDE2LjIzNjEgMTYuMzkyOCAxNi4yMzYxIDE2Ljc1NjFDMTYuMjM2MSAxNy4xMzExIDE2LjMxMjMgMTcuNDU5MiAxNi40NjQ2IDE3Ljc0MDVDMTYuNjIwOSAxOC4wMjE3IDE2LjgzMzggMTguMjY3OCAxNy4xMDMzIDE4LjQ3ODhDMTcuMzcyOCAxOC42ODk3IDE3LjY3OTUgMTguODc1MiAxOC4wMjMyIDE5LjAzNTRDMTguMzcwOSAxOS4xOTE3IDE4LjczNjEgMTkuMzMyMyAxOS4xMTg5IDE5LjQ1NzNDMTkuNDU0OSAxOS41NjI3IDE5LjcyNjMgMTkuNjY2MyAxOS45MzM0IDE5Ljc2NzhDMjAuMTQwNCAxOS44NjU1IDIwLjMwMDYgMTkuOTYzMSAyMC40MTM4IDIwLjA2MDhDMjAuNTI3MSAyMC4xNTg0IDIwLjYwNTIgMjAuMjY1OSAyMC42NDgyIDIwLjM4MzFaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==");
78
+ }
79
+
80
+ .print-csv-button{
81
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjAwMDAxIDAuOTg5OTlDMy40NDc3MiAwLjk4OTk5IDMuMDAwMDEgMS40Mzc3MSAzLjAwMDAxIDEuOTg5OTlWMTAuOTlDMy4wMDAwMSAxMS41NDIzIDMuNDQ3NzIgMTEuOTkgNC4wMDAwMSAxMS45OUM0LjU1MjI5IDExLjk5IDUuMDAwMDEgMTEuNTQyMyA1LjAwMDAxIDEwLjk5VjIuOTg5OTlIMTRWNi45ODk5OUMxNCA3LjU0MjI3IDE0LjQ0NzcgNy45ODk5OSAxNSA3Ljk4OTk5SDE5VjEwLjk5QzE5IDExLjU0MjMgMTkuNDQ3NyAxMS45OSAyMCAxMS45OUMyMC41NTIzIDExLjk5IDIxIDExLjU0MjMgMjEgMTAuOTlWNi45ODk5OUMyMSA2LjcyNDc3IDIwLjg5NDcgNi40NzA0MiAyMC43MDcxIDYuMjgyODhMMTUuNzA3MSAxLjI4Mjg4QzE1LjUxOTYgMS4wOTUzNSAxNS4yNjUyIDAuOTg5OTkgMTUgMC45ODk5OUg0LjAwMDAxWk0xNy41ODU4IDUuOTg5OTlMMTYgNC40MDQyVjUuOTg5OTlIMTcuNTg1OFpNNy42NjQzMSAyMC4xNjA0SDUuNzY1ODdDNS43NDYzNCAyMC40OTI0IDUuNjc2MDMgMjAuNzY3OCA1LjU1NDkzIDIwLjk4NjZDNS40MzM4NCAyMS4yMDUzIDUuMjYwMDEgMjEuMzY5NCA1LjAzMzQ1IDIxLjQ3ODhDNC44MDY4OCAyMS41ODQyIDQuNTIzNjggMjEuNjM3IDQuMTgzODQgMjEuNjM3QzMuODg2OTYgMjEuNjM3IDMuNjM1MDEgMjEuNTg0MiAzLjQyNzk4IDIxLjQ3ODhDMy4yMjA5NSAyMS4zNzMzIDMuMDUxMDMgMjEuMjEzMSAyLjkxODIxIDIwLjk5ODNDMi43ODkzMSAyMC43ODM0IDIuNjk1NTYgMjAuNTEyIDIuNjM2OTYgMjAuMTgzOEMyLjU3ODM3IDE5Ljg1NTcgMi41NDkwNyAxOS40NjcgMi41NDkwNyAxOS4wMTc4VjE4LjQ4NDZDMi41NDkwNyAxOC4wMzE1IDIuNTgyMjggMTcuNjQwOSAyLjY0ODY4IDE3LjMxMjdDMi43MTUwOSAxNi45ODA3IDIuODE0NyAxNi43MDczIDIuOTQ3NTEgMTYuNDkyNEMzLjA4NDIzIDE2LjI3NzYgMy4yNTQxNSAxNi4xMTk0IDMuNDU3MjggMTYuMDE3OEMzLjY2NDMxIDE1LjkxNjMgMy45MDQ1NCAxNS44NjU1IDQuMTc3OTggMTUuODY1NUM0LjU1Mjk4IDE1Ljg2NTUgNC44NTM3NiAxNS45MjQxIDUuMDgwMzIgMTYuMDQxM0M1LjMwNjg4IDE2LjE1ODQgNS40NzQ4NSAxNi4zMzIzIDUuNTg0MjMgMTYuNTYyN0M1LjY5MzYgMTYuNzg5MyA1Ljc1NjEgMTcuMDY4NiA1Ljc3MTczIDE3LjQwMDZINy42NzYwM0M3LjYyMTM0IDE2LjgxNDcgNy40NTUzMiAxNi4yOTMyIDcuMTc3OTggMTUuODM2MkM2LjkwNDU0IDE1LjM3OTIgNi41MTc4MiAxNS4wMTk4IDYuMDE3ODIgMTQuNzU4MUM1LjUxNzgyIDE0LjQ5NjMgNC45MDQ1NCAxNC4zNjU1IDQuMTc3OTggMTQuMzY1NUMzLjYzODkyIDE0LjM2NTUgMy4xNTA2MyAxNC40NjEyIDIuNzEzMTMgMTQuNjUyNkMyLjI3NTYzIDE0Ljg0NCAxLjkwMDYzIDE1LjExOTQgMS41ODgxMyAxNS40Nzg4QzEuMjc1NjMgMTUuODM4MSAxLjAzNTQgMTYuMjcxNyAwLjg2NzQzMiAxNi43Nzk1QzAuNjk5NDYzIDE3LjI4NzQgMC42MTU0NzkgMTcuODU5NiAwLjYxNTQ3OSAxOC40OTYzVjE5LjAxNzhDMC42MTU0NzkgMTkuNjU0NSAwLjY5NTU1NyAyMC4yMjY4IDAuODU1NzEzIDIwLjczNDZDMS4wMTk3OCAyMS4yMzg1IDEuMjU0MTUgMjEuNjcwMiAxLjU1ODg0IDIyLjAyOTVDMS44Njc0MyAyMi4zODUgMi4yNDI0MyAyMi42NTg0IDIuNjgzODQgMjIuODQ5OUMzLjEyNTI0IDIzLjA0MTMgMy42MjUyNCAyMy4xMzcgNC4xODM4NCAyMy4xMzdDNC44ODMwNiAyMy4xMzcgNS40ODY1NyAyMy4wMTIgNS45OTQzOCAyMi43NjJDNi41MDIyIDIyLjUwODEgNi44OTg2OCAyMi4xNTg0IDcuMTgzODQgMjEuNzEzMUM3LjQ3MjkgMjEuMjYzOSA3LjYzMzA2IDIwLjc0NjMgNy42NjQzMSAyMC4xNjA0Wk0xMy4zMjQyIDIwLjM4MzFDMTMuMzY3MiAyMC40OTYzIDEzLjM4ODcgMjAuNjI1MiAxMy4zODg3IDIwLjc2OThDMTMuMzg4NyAyMC45NDE3IDEzLjM0NTcgMjEuMDk3OSAxMy4yNTk4IDIxLjIzODVDMTMuMTczOCAyMS4zNzkyIDEzLjA0MSAyMS40OTA1IDEyLjg2MTMgMjEuNTcyNUMxMi42ODU2IDIxLjY1MDYgMTIuNDU1MSAyMS42ODk3IDEyLjE2OTkgMjEuNjg5N0MxMS45MjM4IDIxLjY4OTcgMTEuNzAxMiAyMS42NjYzIDExLjUwMiAyMS42MTk0QzExLjMwMjcgMjEuNTcyNSAxMS4xMzI4IDIxLjQ5NDQgMTAuOTkyMiAyMS4zODVDMTAuODU1NSAyMS4yNzU2IDEwLjc1IDIxLjEzMzEgMTAuNjc1OCAyMC45NTczQzEwLjYwMTYgMjAuNzc3NiAxMC41NjQ1IDIwLjU1ODggMTAuNTY0NSAyMC4zMDFIOC42NTQzMUM4LjY1NDMxIDIwLjc5MzIgOC43NTM5MiAyMS4yMTkgOC45NTMxMyAyMS41Nzg0QzkuMTU2MjYgMjEuOTMzOCA5LjQyNTc5IDIyLjIyNjggOS43NjE3MyAyMi40NTczQzEwLjEwMTYgMjIuNjg3NyAxMC40ODA1IDIyLjg1OTYgMTAuODk4NCAyMi45NzI5QzExLjMxNjQgMjMuMDgyMyAxMS43NDAyIDIzLjEzNyAxMi4xNjk5IDIzLjEzN0MxMi42NDI2IDIzLjEzNyAxMy4wNzAzIDIzLjA4NDIgMTMuNDUzMSAyMi45Nzg4QzEzLjgzNTkgMjIuODczMyAxNC4xNjQxIDIyLjcxOSAxNC40Mzc1IDIyLjUxNTlDMTQuNzE0OSAyMi4zMDg4IDE0LjkyNTggMjIuMDU4OCAxNS4wNzAzIDIxLjc2NTlDMTUuMjE4OCAyMS40NzI5IDE1LjI5MyAyMS4xMzcgMTUuMjkzIDIwLjc1ODFDMTUuMjkzIDIwLjQwMjYgMTUuMjMwNSAyMC4wODQyIDE1LjEwNTUgMTkuODAzQzE0Ljk4NDQgMTkuNTIxNyAxNC44MDI3IDE5LjI2OTggMTQuNTYwNiAxOS4wNDcxQzE0LjMxODQgMTguODI0NSAxNC4wMTk1IDE4LjYyNTIgMTMuNjY0MSAxOC40NDk1QzEzLjMxMjUgMTguMjczNyAxMi45MDgyIDE4LjExMzUgMTIuNDUxMiAxNy45NjlDMTIuMTg5NSAxNy44OTA5IDExLjk1NyAxNy44MDg4IDExLjc1MzkgMTcuNzIyOUMxMS41NTA4IDE3LjYzNyAxMS4zNzg5IDE3LjU0NzEgMTEuMjM4MyAxNy40NTM0QzExLjEwMTYgMTcuMzU1NyAxMC45OTYxIDE3LjI1MjIgMTAuOTIxOSAxNy4xNDI4QzEwLjg1MTYgMTcuMDI5NSAxMC44MTY0IDE2LjkwNDUgMTAuODE2NCAxNi43Njc4QzEwLjgxNjQgMTYuNTk1OSAxMC44NjMzIDE2LjQzNzcgMTAuOTU3IDE2LjI5MzJDMTEuMDU0NyAxNi4xNDg3IDExLjE5NzMgMTYuMDM1NCAxMS4zODQ4IDE1Ljk1MzRDMTEuNTc2MiAxNS44Njc0IDExLjgxMjUgMTUuODI0NSAxMi4wOTM4IDE1LjgyNDVDMTIuMzgyOCAxNS44MjQ1IDEyLjYyMzEgMTUuODc1MiAxMi44MTQ1IDE1Ljk3NjhDMTMuMDA5OCAxNi4wNzg0IDEzLjE1NDMgMTYuMjE5IDEzLjI0ODEgMTYuMzk4N0MxMy4zNDU3IDE2LjU3NDUgMTMuMzk0NSAxNi43Nzc2IDEzLjM5NDUgMTcuMDA4MUgxNS4yOTNDMTUuMjkzIDE2LjQ4NDYgMTUuMTYwMiAxNi4wMjU2IDE0Ljg5NDUgMTUuNjMxMUMxNC42Mjg5IDE1LjIzMjcgMTQuMjU3OCAxNC45MjQxIDEzLjc4MTMgMTQuNzA1M0MxMy4zMDg2IDE0LjQ4MjcgMTIuNzU5OCAxNC4zNzEzIDEyLjEzNDggMTQuMzcxM0MxMS42NjYgMTQuMzcxMyAxMS4yMzYzIDE0LjQyOCAxMC44NDU3IDE0LjU0MTNDMTAuNDU1MSAxNC42NTA2IDEwLjExNTIgMTQuODEwOCA5LjgyNjE4IDE1LjAyMTdDOS41MzcxMiAxNS4yMjg4IDkuMzEyNTEgMTUuNDc4OCA5LjE1MjM1IDE1Ljc3MTdDOC45OTIyIDE2LjA2NDcgOC45MTIxMiAxNi4zOTI4IDguOTEyMTIgMTYuNzU2MUM4LjkxMjEyIDE3LjEzMTEgOC45ODgyOSAxNy40NTkyIDkuMTQwNjMgMTcuNzQwNUM5LjI5Njg4IDE4LjAyMTcgOS41MDk3OCAxOC4yNjc4IDkuNzc5MzEgMTguNDc4OEMxMC4wNDg4IDE4LjY4OTcgMTAuMzU1NSAxOC44NzUyIDEwLjY5OTIgMTkuMDM1NEMxMS4wNDY5IDE5LjE5MTcgMTEuNDEyMSAxOS4zMzIzIDExLjc5NDkgMTkuNDU3M0MxMi4xMzA5IDE5LjU2MjcgMTIuNDAyNCAxOS42NjYzIDEyLjYwOTQgMTkuNzY3OEMxMi44MTY0IDE5Ljg2NTUgMTIuOTc2NiAxOS45NjMxIDEzLjA4OTkgMjAuMDYwOEMxMy4yMDMxIDIwLjE1ODQgMTMuMjgxMyAyMC4yNjU5IDEzLjMyNDIgMjAuMzgzMVpNMTkuNTIzMiAyMy4wMTk4SDE4Ljg2N0wxNS45NjA3IDE0LjQ4ODVIMTguMDgxOEwxOS44OTI1IDIwLjgzOTlMMjEuNzA4OCAxNC40ODg1SDIzLjgzNTdMMjAuOTExOSAyMy4wMTk4SDIwLjI3MzJIMTkuNTIzMloiIGZpbGw9ImJsYWNrIi8+PC9zdmc+");
82
+ }
83
+
84
+ .print-txt-button{
85
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjUwMDAxIDFDMy45NDc3MiAxIDMuNTAwMDEgMS40NDc3MiAzLjUwMDAxIDJWMTFDMy41MDAwMSAxMS41NTIzIDMuOTQ3NzIgMTIgNC41MDAwMSAxMkM1LjA1MjI5IDEyIDUuNTAwMDEgMTEuNTUyMyA1LjUwMDAxIDExVjNIMTQuNVY3QzE0LjUgNy41NTIyOCAxNC45NDc3IDggMTUuNSA4SDE5LjVWMTFDMTkuNSAxMS41NTIzIDE5Ljk0NzcgMTIgMjAuNSAxMkMyMS4wNTIzIDEyIDIxLjUgMTEuNTUyMyAyMS41IDExVjdDMjEuNSA2LjczNDc4IDIxLjM5NDcgNi40ODA0MyAyMS4yMDcxIDYuMjkyODlMMTYuMjA3MSAxLjI5Mjg5QzE2LjAxOTYgMS4xMDUzNiAxNS43NjUyIDEgMTUuNSAxSDQuNTAwMDFaTTE4LjA4NTggNkwxNi41IDQuNDE0MjFWNkgxOC4wODU4WiIgZmlsbD0iYmxhY2siLz48cGF0aCBkPSJNNS4xMDM3NiAyMy4yNDUyVjE2LjE5NjRINy42OTk0NlYxNC43MTM5SDAuNjU2NDk0VjE2LjE5NjRIMy4xOTk0NlYyMy4yNDUySDUuMTAzNzZaIiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik0xMiAxNy42MjAyTDEwLjUgMTQuNzEzOUg4LjMyMDMyTDEwLjc1MiAxOC45NDQ0TDguMjU1ODcgMjMuMjQ1MkgxMC40NTlMMTIgMjAuMjg2MkwxMy41NDY5IDIzLjI0NTJIMTUuNzQ0MkwxMy4yNTM5IDE4Ljk0NDRMMTUuNjc5NyAxNC43MTM5SDEzLjVMMTIgMTcuNjIwMloiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTIwLjczNjEgMjMuMjQ1MlYxNi4xOTY0SDIzLjMzMThWMTQuNzEzOUgxNi4yODg4VjE2LjE5NjRIMTguODMxOFYyMy4yNDUySDIwLjczNjFaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==");
86
+ }
87
+
88
+ .indicator-elem{
89
+ position: absolute;
90
+ border-radius: 13px;
91
+ width: 12px;
92
+ height: 12px;
93
+ background-color: #9DB2BF;
94
+ }
@@ -0,0 +1,188 @@
1
+ Ext.define('Coon.report.toolbar.dropdown.ToolbarOverflowPanel', {
2
+ extend: 'Ext.panel.Panel',
3
+ xtype: 'ToolbarOverflowPanel',
4
+ cls: 'ToolbarOverflowPanel',
5
+ minWidth: 400,
6
+ width: 600,
7
+ maxWidth: 800,
8
+ maxHeight: 500,
9
+ layout: 'card',
10
+ focusable: true,
11
+ viewModel: {
12
+ data: {
13
+ configMode: false,
14
+ },
15
+ },
16
+ config: {
17
+ overflowedItems: [],
18
+ },
19
+ items: [
20
+ {
21
+ // По умолчанию отображаем кнопки 1. Пользователь скрыл специально. 2. Не вместились в тулбар (overflow)
22
+ xtype: 'panel',
23
+ minHeight: 0,
24
+ cls: 'panel-body-buttons',
25
+ margin: '20px 20px 20px 20px',
26
+ maxHeight: 350,
27
+ // scrollable: true,
28
+ width: '100%',
29
+ layout: 'column',
30
+ reference: 'foldedItems',
31
+ /* defaults: {
32
+ margin: '0 3 5px 3',
33
+ },*/
34
+ items: [],
35
+ bbar: {
36
+ /* style: {
37
+ borderTop: '1px solid #9DB2BF !important',
38
+ },*/
39
+ reference: 'toConfigurationModeBbar',
40
+ items: [
41
+ {width: 280, xtype: 'panel', margin: '14px 2px 2px 12px', html: 'Управление отображением кнопок отчета'},
42
+ '->',
43
+ {
44
+ iconCls: 'svg-icon svg-icon-settings fix-btn-width',
45
+ handler: 'toConfigurationMode',
46
+ }
47
+ ],
48
+ },
49
+
50
+ },
51
+ {
52
+ // панель управления настройками кнопок (порядок, спрятанные кнопки по умолчанию)
53
+ xtype: 'ToolbarConfigurationPanel',
54
+ minHeight: 300,
55
+ reference: 'toolbarConfigurationPanel',
56
+ padding: '20px',
57
+ bbar: {
58
+ items: [
59
+ {
60
+ xtype: 'button',
61
+ text: 'Сбросить настройки',
62
+ handler: function(button) {
63
+ button.up('ToolbarOverflowPanel').getController().setDefaultSettings();
64
+ },
65
+ focusOnToFront: false,
66
+ focusable: false,
67
+ },
68
+ '->',
69
+ {
70
+ xtype: 'button',
71
+ text: 'Применить',
72
+ ui: 'orange-button',
73
+ handler: function(button) {
74
+ button.up('ToolbarOverflowPanel').getController().onApply();
75
+ },
76
+ },
77
+ {
78
+ xtype: 'button',
79
+ text: 'Отмена',
80
+ ui: 'green-button',
81
+ handler: function(button) {
82
+ button.up('ToolbarOverflowPanel').getController().onCancel();
83
+ },
84
+ }
85
+ ],
86
+ },
87
+ }
88
+
89
+ ],
90
+ listeners: {
91
+ afterrender: function(cmp) {
92
+ const div = document.createElement('div');
93
+ div.setAttribute('class', 'white-space');
94
+ cmp.getEl().dom.appendChild(div);
95
+ }
96
+ ,
97
+ },
98
+ controller: {
99
+ listen: {
100
+ global: {
101
+ mousedown: 'dismissWindowCheck',
102
+ }
103
+ ,
104
+ },
105
+ /**
106
+ * @param {string} reportId идентификатор отчета
107
+ * @param {Array} allItems все сущности тулбара
108
+ * @param {Array} overflowedItems что не поместилось
109
+ * @param {Array} userFoldItems спрятано пользователем
110
+ */
111
+ doInit: function(reportId, allItems, overflowedItems, userFoldItems) {
112
+ this.reportId = reportId;
113
+ this.allItems = allItems;
114
+ this.overflowedItems = overflowedItems;
115
+ this.userFoldItems = userFoldItems;
116
+ this.fillContainer();
117
+ },
118
+
119
+ setDefaultSettings() {
120
+ const toolbarConfigurationPanel = this.lookup('toolbarConfigurationPanel').getController();
121
+ toolbarConfigurationPanel.setDefaultSettings();
122
+ toolbarConfigurationPanel.saveConfig(true);
123
+ this.getView().getLayout().setActiveItem(0);
124
+ this.getView().hide();
125
+ },
126
+
127
+ fillContainer: function() {
128
+ // this.clearContainer();
129
+ if (Array.isArray(this.overflowedItems)) {
130
+ this.overflowedItems.forEach((item) => {
131
+ this.addPanelElement(item);
132
+ });
133
+ }
134
+
135
+ if (Array.isArray(this.userFoldItems)) {
136
+ this.userFoldItems.forEach((item) => {
137
+ this.addPanelElement(item);
138
+ });
139
+ }
140
+ },
141
+
142
+ clearContainer: function(reportToolbar) {
143
+ this.lookup('foldedItems').items.each((item) => reportToolbar.foldItemsContainer.add(item));
144
+ },
145
+
146
+ addPanelElement: function(element) {
147
+ this.lookup('foldedItems').add(element);
148
+ },
149
+
150
+ toConfigurationMode: function() {
151
+ // this.getViewModel().set('configMode', true);
152
+ this.lookup('toolbarConfigurationPanel').getController().doInit(this.reportId, this.allItems, this.userFoldItems);
153
+ this.getView().getLayout().setActiveItem(1);
154
+ },
155
+
156
+ onApply() {
157
+ // this.getViewModel().set('configMode', false);
158
+ // Получить и применить новую конфигурацию
159
+ this.lookup('toolbarConfigurationPanel').getController().saveConfig();
160
+ // this.getView().hide();
161
+ this.getView().getLayout().setActiveItem(0);
162
+ },
163
+
164
+ onCancel() {
165
+ // this.getViewModel().set('configMode', false);
166
+ // this.getView().hide();
167
+ this.getView().getLayout().setActiveItem(0);
168
+ },
169
+
170
+ /**
171
+ * Для закрытия панели при клике мимо.
172
+ * Поведение отключено.
173
+ * @param event
174
+ */
175
+ dismissWindowCheck: function(event) {
176
+ const view = this.getView();
177
+ if (view.isVisible()) {
178
+ if (!view.owns(event.getTarget())) {
179
+ const btn = this.getView().overflowButton;
180
+ if (btn.owns(event.getTarget())) {
181
+ btn.disableHandler = true;
182
+ }
183
+ view.hide();
184
+ }
185
+ }
186
+ },
187
+ },
188
+ });