@syncfusion/ej2-filemanager 31.1.17 → 31.1.21

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 (83) hide show
  1. package/dist/ej2-filemanager.min.js +2 -2
  2. package/dist/ej2-filemanager.umd.min.js +2 -2
  3. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-filemanager.es2015.js +7 -1
  5. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es5.js +7 -1
  7. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  8. package/dist/global/ej2-filemanager.min.js +2 -2
  9. package/dist/global/ej2-filemanager.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +17 -53
  12. package/src/file-manager/layout/details-view.js +7 -1
  13. package/dist/ts/file-manager/actions/breadcrumb-bar.d.ts +0 -60
  14. package/dist/ts/file-manager/actions/breadcrumb-bar.ts +0 -423
  15. package/dist/ts/file-manager/actions/index.d.ts +0 -6
  16. package/dist/ts/file-manager/actions/index.ts +0 -6
  17. package/dist/ts/file-manager/actions/toolbar.d.ts +0 -54
  18. package/dist/ts/file-manager/actions/toolbar.ts +0 -609
  19. package/dist/ts/file-manager/actions/virtualization.d.ts +0 -93
  20. package/dist/ts/file-manager/actions/virtualization.ts +0 -324
  21. package/dist/ts/file-manager/base/classes.d.ts +0 -224
  22. package/dist/ts/file-manager/base/classes.ts +0 -225
  23. package/dist/ts/file-manager/base/constant.d.ts +0 -136
  24. package/dist/ts/file-manager/base/constant.ts +0 -137
  25. package/dist/ts/file-manager/base/file-manager-model.d.ts +0 -520
  26. package/dist/ts/file-manager/base/file-manager.d.ts +0 -867
  27. package/dist/ts/file-manager/base/file-manager.ts +0 -2061
  28. package/dist/ts/file-manager/base/index.d.ts +0 -8
  29. package/dist/ts/file-manager/base/index.ts +0 -8
  30. package/dist/ts/file-manager/base/interface.d.ts +0 -952
  31. package/dist/ts/file-manager/base/interface.ts +0 -931
  32. package/dist/ts/file-manager/common/index.d.ts +0 -5
  33. package/dist/ts/file-manager/common/index.ts +0 -5
  34. package/dist/ts/file-manager/common/operations.d.ts +0 -122
  35. package/dist/ts/file-manager/common/operations.ts +0 -1369
  36. package/dist/ts/file-manager/common/utility.d.ts +0 -644
  37. package/dist/ts/file-manager/common/utility.ts +0 -1732
  38. package/dist/ts/file-manager/index.d.ts +0 -9
  39. package/dist/ts/file-manager/index.ts +0 -9
  40. package/dist/ts/file-manager/layout/details-view.d.ts +0 -152
  41. package/dist/ts/file-manager/layout/details-view.ts +0 -1993
  42. package/dist/ts/file-manager/layout/index.d.ts +0 -6
  43. package/dist/ts/file-manager/layout/index.ts +0 -6
  44. package/dist/ts/file-manager/layout/large-icons-view.d.ts +0 -157
  45. package/dist/ts/file-manager/layout/large-icons-view.ts +0 -1684
  46. package/dist/ts/file-manager/layout/navigation-pane.d.ts +0 -104
  47. package/dist/ts/file-manager/layout/navigation-pane.ts +0 -921
  48. package/dist/ts/file-manager/models/ajax-settings-model.d.ts +0 -36
  49. package/dist/ts/file-manager/models/ajax-settings.d.ts +0 -30
  50. package/dist/ts/file-manager/models/ajax-settings.ts +0 -39
  51. package/dist/ts/file-manager/models/column-model.d.ts +0 -155
  52. package/dist/ts/file-manager/models/column.d.ts +0 -179
  53. package/dist/ts/file-manager/models/column.ts +0 -216
  54. package/dist/ts/file-manager/models/contextMenu-settings-model.d.ts +0 -36
  55. package/dist/ts/file-manager/models/contextMenu-settings.d.ts +0 -33
  56. package/dist/ts/file-manager/models/contextMenu-settings.ts +0 -44
  57. package/dist/ts/file-manager/models/default-locale.d.ts +0 -4
  58. package/dist/ts/file-manager/models/default-locale.ts +0 -101
  59. package/dist/ts/file-manager/models/details-view-settings-model.d.ts +0 -30
  60. package/dist/ts/file-manager/models/details-view-settings.d.ts +0 -31
  61. package/dist/ts/file-manager/models/details-view-settings.ts +0 -54
  62. package/dist/ts/file-manager/models/index.d.ts +0 -19
  63. package/dist/ts/file-manager/models/index.ts +0 -19
  64. package/dist/ts/file-manager/models/navigation-pane-settings-model.d.ts +0 -40
  65. package/dist/ts/file-manager/models/navigation-pane-settings.d.ts +0 -34
  66. package/dist/ts/file-manager/models/navigation-pane-settings.ts +0 -42
  67. package/dist/ts/file-manager/models/search-settings-model.d.ts +0 -42
  68. package/dist/ts/file-manager/models/search-settings.d.ts +0 -44
  69. package/dist/ts/file-manager/models/search-settings.ts +0 -53
  70. package/dist/ts/file-manager/models/toolbar-settings-model.d.ts +0 -197
  71. package/dist/ts/file-manager/models/toolbar-settings.d.ts +0 -174
  72. package/dist/ts/file-manager/models/toolbar-settings.ts +0 -198
  73. package/dist/ts/file-manager/models/upload-settings-model.d.ts +0 -70
  74. package/dist/ts/file-manager/models/upload-settings.d.ts +0 -61
  75. package/dist/ts/file-manager/models/upload-settings.ts +0 -75
  76. package/dist/ts/file-manager/pop-up/context-menu.d.ts +0 -64
  77. package/dist/ts/file-manager/pop-up/context-menu.ts +0 -693
  78. package/dist/ts/file-manager/pop-up/dialog.d.ts +0 -31
  79. package/dist/ts/file-manager/pop-up/dialog.ts +0 -1009
  80. package/dist/ts/file-manager/pop-up/index.d.ts +0 -5
  81. package/dist/ts/file-manager/pop-up/index.ts +0 -5
  82. package/dist/ts/index.d.ts +0 -4
  83. package/dist/ts/index.ts +0 -4
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 31.1.17
3
+ * version : 31.1.21
4
4
  * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,57 +1,25 @@
1
1
  {
2
- "_from": "@syncfusion/ej2-filemanager@*",
3
- "_id": "@syncfusion/ej2-filemanager@18.29.0",
4
- "_inBundle": false,
5
- "_integrity": "sha512-esijpeNObOJbY8o+9gH5MDnU/30kI4loqQmdHy75a7kHRO+EQthdd824vuWnKCvgoKQSkrgXCM7ynsftkUG5fw==",
6
- "_location": "/@syncfusion/ej2-filemanager",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "range",
10
- "registry": true,
11
- "raw": "@syncfusion/ej2-filemanager@*",
12
- "name": "@syncfusion/ej2-filemanager",
13
- "escapedName": "@syncfusion%2fej2-filemanager",
14
- "scope": "@syncfusion",
15
- "rawSpec": "*",
16
- "saveSpec": null,
17
- "fetchSpec": "*"
18
- },
19
- "_requiredBy": [
20
- "/",
21
- "/@syncfusion/ej2",
22
- "/@syncfusion/ej2-angular-filemanager",
23
- "/@syncfusion/ej2-react-filemanager",
24
- "/@syncfusion/ej2-richtexteditor",
25
- "/@syncfusion/ej2-vue-filemanager"
26
- ],
27
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-development/@syncfusion/ej2-filemanager/-/ej2-filemanager-18.29.0.tgz",
28
- "_shasum": "60735641491d8140178f103d71815f607e959f1c",
29
- "_spec": "@syncfusion/ej2-filemanager@*",
30
- "_where": "D:\\SF3992\\WFH\\Nexus\\release",
31
- "author": {
32
- "name": "Syncfusion Inc."
33
- },
34
- "bugs": {
35
- "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/issues"
36
- },
37
- "bundleDependencies": false,
2
+ "name": "@syncfusion/ej2-filemanager",
3
+ "version": "31.1.21",
4
+ "description": "Essential JS 2 FileManager Component",
5
+ "author": "Syncfusion Inc.",
6
+ "license": "SEE LICENSE IN license",
7
+ "main": "./dist/ej2-filemanager.umd.min.js",
8
+ "module": "./index.js",
9
+ "es2015": "./dist/es6/ej2-filemanager.es5.js",
38
10
  "dependencies": {
39
- "@syncfusion/ej2-base": "~31.1.17",
40
- "@syncfusion/ej2-buttons": "~31.1.17",
11
+ "@syncfusion/ej2-base": "~31.1.20",
12
+ "@syncfusion/ej2-buttons": "~31.1.21",
41
13
  "@syncfusion/ej2-data": "~31.1.17",
42
- "@syncfusion/ej2-grids": "~31.1.17",
43
- "@syncfusion/ej2-inputs": "~31.1.17",
14
+ "@syncfusion/ej2-grids": "~31.1.21",
15
+ "@syncfusion/ej2-inputs": "~31.1.21",
44
16
  "@syncfusion/ej2-layouts": "~31.1.17",
45
17
  "@syncfusion/ej2-lists": "~31.1.17",
46
- "@syncfusion/ej2-navigations": "~31.1.17",
47
- "@syncfusion/ej2-popups": "~31.1.17",
18
+ "@syncfusion/ej2-navigations": "~31.1.20",
19
+ "@syncfusion/ej2-popups": "~31.1.20",
48
20
  "@syncfusion/ej2-splitbuttons": "~31.1.17"
49
21
  },
50
- "deprecated": false,
51
- "description": "Essential JS 2 FileManager Component",
52
22
  "devDependencies": {},
53
- "es2015": "./dist/es6/ej2-filemanager.es5.js",
54
- "homepage": "https://www.syncfusion.com/javascript-ui-controls",
55
23
  "keywords": [
56
24
  "ej2",
57
25
  "syncfusion",
@@ -66,15 +34,11 @@
66
34
  "file selector",
67
35
  "directory viewer"
68
36
  ],
69
- "license": "SEE LICENSE IN license",
70
- "main": "./dist/ej2-filemanager.umd.min.js",
71
- "module": "./index.js",
72
- "name": "@syncfusion/ej2-filemanager",
73
37
  "repository": {
74
38
  "type": "git",
75
- "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
39
+ "url": "https://github.com/syncfusion/ej2-javascript-ui-controls.git"
76
40
  },
77
41
  "typings": "index.d.ts",
78
- "version": "31.1.17",
79
- "sideEffects": false
42
+ "sideEffects": false,
43
+ "homepage": "https://www.syncfusion.com/javascript-ui-controls"
80
44
  }
@@ -406,7 +406,7 @@ var DetailsView = /** @class */ (function () {
406
406
  var _this = this;
407
407
  showSpinner(this.parent.element);
408
408
  var nameColumn = this.parent.detailsViewSettings.columns.find(function (column) { return column.field === _this.parent.sortBy; });
409
- if (nameColumn && !('sortComparer' in nameColumn)) {
409
+ if (nameColumn && !('sortComparer' in nameColumn) || this.parent.sortOrder === 'None') {
410
410
  var items = getSortedData(this.parent, (this.parent.enableVirtualization)
411
411
  ? args.result
412
412
  : this.gridObj.dataSource);
@@ -488,6 +488,12 @@ var DetailsView = /** @class */ (function () {
488
488
  this.checkEmptyDiv(this.emptyArgs);
489
489
  this.isInteracted = this.isLoaded ? true : this.isInteracted;
490
490
  this.isLoaded = false;
491
+ if (this.parent.sortOrder === 'None' && !isNOU(this.gridObj.element)) {
492
+ var sortIconElement = this.gridObj.element.querySelector('.e-ascending, .e-descending');
493
+ if (sortIconElement && sortIconElement.classList) {
494
+ sortIconElement.classList.remove('e-icon-ascending', 'e-ascending', 'e-icon-descending', 'e-descending');
495
+ }
496
+ }
491
497
  };
492
498
  DetailsView.prototype.selectRecords = function (nodes) {
493
499
  var gridRecords = this.gridObj.getCurrentViewRecords();
@@ -1,60 +0,0 @@
1
- import { TextBox } from '@syncfusion/ej2-inputs';
2
- import { IFileManager } from '../base/interface';
3
- /**
4
- * BreadCrumbBar module
5
- */
6
- export declare class BreadCrumbBar {
7
- private parent;
8
- addressPath: string;
9
- addressBarLink: string;
10
- searchObj: TextBox;
11
- private subMenuObj;
12
- private keyboardModule;
13
- private searchTimer;
14
- private keyConfigs;
15
- private searchWrapWidth;
16
- /**
17
- * constructor for addressbar module
18
- *
19
- * @hidden
20
- * @param {IFileManager} parent - specifies parent element.
21
- * @private
22
- *
23
- */
24
- constructor(parent?: IFileManager);
25
- private onPropertyChanged;
26
- private render;
27
- onPathChange(): void;
28
- private updateBreadCrumbBar;
29
- private onFocus;
30
- private onKeyUp;
31
- private onBlur;
32
- private subMenuSelectOperations;
33
- private addSubMenuAttributes;
34
- private searchEventBind;
35
- private searchChangeHandler;
36
- private addressPathClickHandler;
37
- private triggerFileOpen;
38
- private onShowInput;
39
- private updatePath;
40
- private onUpdatePath;
41
- private onCreateEnd;
42
- private onRenameEnd;
43
- private onDeleteEnd;
44
- private removeSearchValue;
45
- private onResize;
46
- private onPasteEnd;
47
- private addEventListener;
48
- private keyActionHandler;
49
- private removeEventListener;
50
- private onDropInit;
51
- /**
52
- * For internal use only - Get the module name.
53
- *
54
- * @returns {string} - returns the module name
55
- * @private
56
- */
57
- private getModuleName;
58
- destroy(): void;
59
- private onSearchTextChange;
60
- }
@@ -1,423 +0,0 @@
1
- import { EventHandler, closest, isNullOrUndefined, KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base';
2
- import { getValue, addClass, removeClass, remove, createElement, DragEventArgs } from '@syncfusion/ej2-base';
3
- import { TextBox, ChangedEventArgs } from '@syncfusion/ej2-inputs';
4
- import { IFileManager, NotifyArgs, ReadArgs, FileOpenEventArgs } from '../base/interface';
5
- import { DropDownButton, MenuEventArgs } from '@syncfusion/ej2-splitbuttons';
6
- import { read } from '../common/operations';
7
- import { getLocaleText, searchWordHandler } from '../common/utility';
8
- import * as events from '../base/constant';
9
- import * as CLS from '../base/classes';
10
- import { SearchSettingsModel } from '../models';
11
-
12
- /**
13
- * BreadCrumbBar module
14
- */
15
- export class BreadCrumbBar {
16
-
17
- /* Internal variables */
18
- private parent: IFileManager;
19
- public addressPath: string = '';
20
- public addressBarLink: string = '';
21
- public searchObj: TextBox;
22
- private subMenuObj: DropDownButton;
23
- private keyboardModule: KeyboardEvents;
24
- private searchTimer: number = null;
25
- private keyConfigs: { [key: string]: string };
26
- private searchWrapWidth: number = null;
27
- /**
28
- * constructor for addressbar module
29
- *
30
- * @hidden
31
- * @param {IFileManager} parent - specifies parent element.
32
- * @private
33
- *
34
- */
35
- constructor(parent?: IFileManager) {
36
- this.parent = parent;
37
- this.keyConfigs = {
38
- enter: 'enter'
39
- };
40
- this.render();
41
- }
42
- private onPropertyChanged(e: NotifyArgs): void {
43
- if (e.module !== this.getModuleName() && e.module !== 'common') {
44
- return;
45
- }
46
- for (const prop of Object.keys(e.newProp)) {
47
- const value: SearchSettingsModel = e.newProp.searchSettings;
48
- switch (prop) {
49
- case 'searchSettings':
50
- if (!isNullOrUndefined(value.allowSearchOnTyping)) {
51
- this.searchEventBind(value.allowSearchOnTyping);
52
- }
53
- if (this.parent.breadcrumbbarModule.searchObj.value && this.parent.breadcrumbbarModule.searchObj.value !== '' &&
54
- !(!isNullOrUndefined(value.allowSearchOnTyping) && isNullOrUndefined(value.filterType) &&
55
- isNullOrUndefined(value.ignoreCase))) {
56
- searchWordHandler(this.parent, this.parent.breadcrumbbarModule.searchObj.value, false);
57
- }
58
- break;
59
- }
60
- }
61
- }
62
- private render(): void {
63
- this.addEventListener();
64
- }
65
- public onPathChange(): void {
66
- const pathNames: string[] = this.parent.pathNames;
67
- const paths: string[] = this.parent.path.split('/');
68
- const addressbarUL: HTMLElement = this.parent.createElement('ul', { className: 'e-addressbar-ul' });
69
- let addressbarLI: HTMLElement = null;
70
- const pathNamesLen: number = pathNames.length;
71
- if (pathNames.length > 0) {
72
- let id: string = '';
73
- for (let i: number = 0; i < pathNamesLen; i++) {
74
- let addressATag: HTMLElement = null;
75
- addressbarLI = this.parent.createElement('li', { className: 'e-address-list-item' });
76
- for (let j: number = 0; j <= i; j++) {
77
- id = id + paths[j as number] + '/';
78
- }
79
- addressbarLI.setAttribute('data-utext', id);
80
- if (i !== 0) {
81
- const icon: HTMLElement = createElement('span', { className: CLS.ICONS });
82
- addressbarLI.appendChild(icon);
83
- }
84
- if (pathNamesLen - i !== 1) {
85
- addressATag = createElement('a', { className: CLS.LIST_TEXT });
86
- addressbarLI.setAttribute('tabindex', '0');
87
- } else {
88
- addressATag = createElement('span', { className: CLS.LIST_TEXT });
89
- }
90
- id = '';
91
- addressATag.innerText = pathNames[i as number];
92
- addressbarLI.appendChild(addressATag);
93
- addressbarUL.appendChild(addressbarLI);
94
- }
95
- const ulElement: Element = this.parent.breadCrumbBarNavigation.querySelector('.e-addressbar-ul');
96
- if (!isNullOrUndefined(ulElement)) {
97
- if (!isNullOrUndefined(this.subMenuObj)) {
98
- this.subMenuObj.destroy();
99
- }
100
- remove(ulElement);
101
- }
102
- const searchWrap: Element = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap');
103
- if (!searchWrap) {
104
- this.parent.breadCrumbBarNavigation.insertBefore(addressbarUL, searchWrap);
105
- } else {
106
- this.parent.breadCrumbBarNavigation.appendChild(addressbarUL);
107
- }
108
- this.updateBreadCrumbBar(addressbarUL);
109
- }
110
- }
111
- /* istanbul ignore next */
112
- private updateBreadCrumbBar(addresBarUL: HTMLElement): void {
113
- const liElements: NodeListOf<Element> = addresBarUL.querySelectorAll('li');
114
- const ulElement: Element = this.parent.breadCrumbBarNavigation.querySelector('.e-addressbar-ul');
115
- const style: CSSStyleDeclaration = window.getComputedStyle(ulElement, null);
116
- const pRight: number = parseFloat(style.getPropertyValue('padding-right'));
117
- const pLeft: number = parseFloat(style.getPropertyValue('padding-left'));
118
- let breadCrumbBarWidth: number = (<HTMLElement>ulElement).offsetWidth - pRight - pLeft;
119
- const addressbarUL: HTMLElement = this.parent.createElement('ul', { className: 'e-addressbar-ul' });
120
- let liElementsWidth: number = 0;
121
- const liElementsWidths: number[] = [];
122
- for (let i: number = 0; i < liElements.length; i++) {
123
- const width: number = liElements[i as number].clientWidth;
124
- liElementsWidths.push(width);
125
- liElementsWidth = liElementsWidth + width;
126
- }
127
- if (!isNullOrUndefined(ulElement)) {
128
- remove(ulElement);
129
- }
130
- const searchContainer: HTMLElement = this.parent.createElement('div');
131
- searchContainer.setAttribute('class', 'e-search-wrap');
132
- const id: string = this.parent.element.id + CLS.SEARCH_ID;
133
- const searchInput: HTMLElement = createElement('input', { id: id,
134
- attrs: { autocomplete: 'off', 'aria-label': getLocaleText(this.parent, 'Search') } });
135
- searchContainer.appendChild(searchInput);
136
- const searchEle: Element = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap .e-input');
137
- if (isNullOrUndefined(searchEle)) {
138
- this.parent.breadCrumbBarNavigation.appendChild(searchContainer);
139
- const span: Element = createElement('span', { className: 'e-icons e-fe-search' });
140
- EventHandler.add(span, 'click', this.onShowInput, this);
141
- searchInput.parentElement.insertBefore(span, searchInput);
142
- this.searchObj = new TextBox({
143
- value: '',
144
- showClearButton: true,
145
- placeholder: getLocaleText(this.parent, 'Search'),
146
- focus: this.onFocus.bind(this),
147
- blur: this.onBlur.bind(this)
148
- });
149
- this.searchObj.appendTo('#' + this.parent.element.id + CLS.SEARCH_ID);
150
- this.searchEventBind(this.parent.searchSettings.allowSearchOnTyping);
151
- const search: Element = this.searchObj.element.nextElementSibling;
152
- EventHandler.add(search, 'mousedown', this.searchChangeHandler.bind(this), this);
153
- EventHandler.add(this.searchObj.element, 'keyup', this.onKeyUp.bind(this), this);
154
- }
155
- const searchWrap: HTMLElement = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap');
156
- breadCrumbBarWidth = breadCrumbBarWidth - (this.searchWrapWidth ? this.searchWrapWidth : searchWrap.offsetWidth);
157
- if (liElementsWidth > breadCrumbBarWidth) {
158
- let i: number = liElements.length;
159
- while (i--) {
160
- const diff: number = breadCrumbBarWidth - liElementsWidths[i as number];
161
- if (diff > 40) {
162
- addressbarUL.insertBefore(liElements[i as number], addressbarUL.querySelector('li'));
163
- breadCrumbBarWidth = diff;
164
- } else {
165
- const items: Object[] = [];
166
- for (let j: number = 0; j <= i; j++) {
167
- const liElement: Element = liElements[j as number];
168
- items.push({
169
- text: (<HTMLElement>liElement).innerText,
170
- utext: liElement.getAttribute('data-utext')
171
- });
172
- }
173
- const subMenuLi: HTMLElement = this.parent.createElement('li', { className: 'e-breadcrumb-menu' });
174
- const attributes: Object = { className: 'e-breadcrumb-submenu' };
175
- const subMenuSpan: HTMLElement = this.parent.createElement('button', attributes);
176
- subMenuLi.appendChild(subMenuSpan);
177
- addressbarUL.insertBefore(subMenuLi, addressbarUL.querySelector('li'));
178
- this.subMenuObj = new DropDownButton({
179
- items: items,
180
- cssClass: 'e-caret-hide e-submenu',
181
- iconCss: CLS.ICON_BREADCRUMB,
182
- iconPosition: 'Top',
183
- enableHtmlSanitizer: this.parent.enableHtmlSanitizer,
184
- beforeItemRender: this.addSubMenuAttributes.bind(this),
185
- select: this.subMenuSelectOperations.bind(this)
186
- });
187
- this.subMenuObj.isStringTemplate = true;
188
- this.subMenuObj.appendTo(subMenuSpan);
189
- break;
190
- }
191
- }
192
- this.parent.breadCrumbBarNavigation.insertBefore(addressbarUL, searchWrap);
193
- } else {
194
- this.parent.breadCrumbBarNavigation.insertBefore(addresBarUL, searchWrap);
195
- }
196
- }
197
- /* istanbul ignore next */
198
- private onFocus(): void {
199
- const wrap: Element = closest(this.searchObj.element, '.e-search-wrap');
200
- wrap.classList.add('e-focus');
201
- }
202
- /* istanbul ignore next */
203
- private onKeyUp(): void {
204
- this.parent.notify(events.pathColumn, { args: this.parent });
205
- }
206
- /* istanbul ignore next */
207
- private onBlur(): void {
208
- const wrap: Element = closest(this.searchObj.element, '.e-search-wrap');
209
- wrap.classList.remove('e-focus');
210
- }
211
- /* istanbul ignore next */
212
- private subMenuSelectOperations(event: MenuEventArgs): void {
213
- const args: Object = { target: event.element };
214
- this.addressPathClickHandler(<Event>args);
215
- }
216
- /* istanbul ignore next */
217
- private addSubMenuAttributes(args: MenuEventArgs): void {
218
- args.element.setAttribute('data-utext', getValue('utext', args.item));
219
- const anchor: HTMLElement = this.parent.createElement('a', { className: 'e-list-text' });
220
- args.element.appendChild(anchor);
221
- }
222
- private searchEventBind(allow: boolean): void {
223
- if (allow) {
224
- this.searchObj.input = this.searchChangeHandler.bind(this);
225
- this.searchObj.change = null;
226
- } else {
227
- this.searchObj.change = this.searchChangeHandler.bind(this);
228
- this.searchObj.input = null;
229
- }
230
- }
231
- private searchChangeHandler(args?: ChangedEventArgs): void {
232
- if (!isNullOrUndefined(args.value)) {
233
- this.parent.isFiltered = false;
234
- if (this.parent.searchSettings.allowSearchOnTyping) {
235
- window.clearTimeout(this.searchTimer);
236
- this.searchTimer = window.setTimeout(() => { searchWordHandler(this.parent, args.value, false); }, 300);
237
- } else {
238
- searchWordHandler(this.parent, args.value, false);
239
- }
240
- }
241
- }
242
- private addressPathClickHandler(e: Event): void {
243
- const li: HTMLElement = (<HTMLElement>e.target);
244
- if (li.nodeName === 'LI' || li.nodeName === 'A') {
245
- const node: Element = li.nodeName === 'LI' ? li.children[0] : li;
246
- if (!isNullOrUndefined(node)) {
247
- this.parent.isFiltered = false;
248
- const currentPath: string = this.updatePath((<HTMLElement>node));
249
- this.parent.itemData = [getValue(this.parent.pathId[this.parent.pathId.length - 1], this.parent.feParent)];
250
- this.triggerFileOpen(this.parent.itemData[0]);
251
- read(this.parent, events.pathChanged, currentPath);
252
- const treeNodeId: string = this.parent.pathId[this.parent.pathId.length - 1];
253
- this.parent.notify(events.updateTreeSelection, { module: 'treeview', selectedNode: treeNodeId });
254
- }
255
- }
256
- }
257
-
258
- private triggerFileOpen(data: Object): void {
259
- const eventArgs: FileOpenEventArgs = { cancel: false, fileDetails: data, module: 'BreadCrumbBar' };
260
- delete eventArgs.cancel;
261
- this.parent.trigger('fileOpen', eventArgs);
262
- }
263
-
264
- /* istanbul ignore next */
265
- private onShowInput(): void {
266
- if (this.parent.isMobile) {
267
- if (this.parent.element.classList.contains(CLS.FILTER)) {
268
- removeClass([this.parent.element], CLS.FILTER);
269
- this.searchWrapWidth = null;
270
- } else {
271
- const searchWrap: HTMLElement = this.parent.breadCrumbBarNavigation.querySelector('.e-search-wrap');
272
- this.searchWrapWidth = searchWrap.offsetWidth;
273
- addClass([this.parent.element], CLS.FILTER);
274
- this.searchObj.element.focus();
275
- }
276
- }
277
- }
278
-
279
- private updatePath(list: HTMLElement): string {
280
- const li: Element = closest(list, 'li');
281
- const liElementId: string = li.getAttribute('data-utext');
282
- this.addressBarLink = liElementId;
283
- const link: string[] = this.addressBarLink.split('/');
284
- const ids: string[] = this.parent.pathId;
285
- const names: string[] = this.parent.pathNames;
286
- this.parent.pathId = [];
287
- this.parent.pathNames = [];
288
- let newpath: string = '';
289
- for (let i: number = 0, len: number = link.length - 1; i < len; i++) {
290
- this.parent.pathId.push(ids[i as number]);
291
- this.parent.pathNames.push(names[i as number]);
292
- newpath += link[i as number] + '/';
293
- }
294
- this.parent.setProperties({ path: newpath }, true);
295
- return newpath;
296
- }
297
-
298
- private onUpdatePath(): void {
299
- this.onPathChange();
300
- this.removeSearchValue();
301
- }
302
-
303
- private onCreateEnd(): void {
304
- this.onPathChange();
305
- }
306
-
307
- private onRenameEnd(): void {
308
- this.onPathChange();
309
- }
310
-
311
- /* istanbul ignore next */
312
- private onDeleteEnd(): void {
313
- this.onUpdatePath();
314
- }
315
-
316
- /* istanbul ignore next */
317
- private removeSearchValue(): void {
318
- this.parent.isFiltered = false;
319
- if (this.searchObj && (this.searchObj.value !== '' || this.searchObj.element.value !== '')) {
320
- this.searchObj.value = '';
321
- this.searchObj.element.value = '';
322
- this.searchObj.dataBind();
323
- }
324
- }
325
-
326
- private onResize(): void {
327
- this.onPathChange();
328
- }
329
- private onPasteEnd(): void {
330
- this.onPathChange();
331
- }
332
-
333
- private addEventListener(): void {
334
- this.keyboardModule = new KeyboardEvents(
335
- this.parent.breadCrumbBarNavigation,
336
- {
337
- keyAction: this.keyActionHandler.bind(this),
338
- keyConfigs: this.keyConfigs,
339
- eventName: 'keydown'
340
- }
341
- );
342
- this.parent.on(events.modelChanged, this.onPropertyChanged, this);
343
- EventHandler.add(this.parent.breadCrumbBarNavigation, 'click', this.addressPathClickHandler, this);
344
- this.parent.on(events.destroy, this.destroy, this);
345
- this.parent.on(events.pathChanged, this.onUpdatePath, this);
346
- this.parent.on(events.finalizeEnd, this.onUpdatePath, this);
347
- this.parent.on(events.refreshEnd, this.onUpdatePath, this);
348
- this.parent.on(events.openEnd, this.onUpdatePath, this);
349
- this.parent.on(events.createEnd, this.onCreateEnd, this);
350
- this.parent.on(events.renameEnd, this.onRenameEnd, this);
351
- this.parent.on(events.deleteEnd, this.onDeleteEnd, this);
352
- this.parent.on(events.splitterResize, this.onResize, this);
353
- this.parent.on(events.pasteEnd, this.onPasteEnd, this);
354
- this.parent.on(events.resizeEnd, this.onResize, this);
355
- this.parent.on(events.searchTextChange, this.onSearchTextChange, this);
356
- this.parent.on(events.dropInit, this.onDropInit, this);
357
- this.parent.on(events.layoutRefresh, this.onResize, this);
358
- this.parent.on(events.dropPath, this.onPathChange, this);
359
- }
360
-
361
- private keyActionHandler(e: KeyboardEventArgs): void {
362
- switch (e.action) {
363
- case 'enter':
364
- this.addressPathClickHandler(e);
365
- break;
366
- }
367
- }
368
- private removeEventListener(): void {
369
- this.keyboardModule.destroy();
370
- this.parent.off(events.pathChanged, this.onUpdatePath);
371
- this.parent.off(events.finalizeEnd, this.onUpdatePath);
372
- this.parent.off(events.refreshEnd, this.onUpdatePath);
373
- this.parent.off(events.openEnd, this.onUpdatePath);
374
- this.parent.off(events.pasteEnd, this.onPasteEnd);
375
- this.parent.off(events.createEnd, this.onCreateEnd);
376
- this.parent.off(events.renameEnd, this.onRenameEnd);
377
- this.parent.off(events.deleteEnd, this.onDeleteEnd);
378
- this.parent.off(events.splitterResize, this.onResize);
379
- this.parent.off(events.resizeEnd, this.onResize);
380
- this.parent.off(events.searchTextChange, this.onSearchTextChange);
381
- this.parent.off(events.dropInit, this.onDropInit);
382
- this.parent.off(events.layoutRefresh, this.onResize);
383
- this.parent.off(events.dropPath, this.onPathChange);
384
- }
385
-
386
- /* istanbul ignore next */
387
- private onDropInit(args: DragEventArgs): void {
388
- if (this.parent.targetModule === this.getModuleName()) {
389
- const liEle: Element = args.target.closest('li');
390
- this.parent.dropPath = this.updatePath(<HTMLElement>(liEle.children[0]));
391
- this.parent.dropData = getValue(this.parent.pathId[this.parent.pathId.length - 1], this.parent.feParent);
392
- this.triggerFileOpen(this.parent.dropData);
393
- const treeNodeId: string = this.parent.pathId[this.parent.pathId.length - 1];
394
- this.parent.notify(events.updateTreeSelection, { module: 'treeview', selectedNode: treeNodeId });
395
- }
396
- }
397
-
398
- /**
399
- * For internal use only - Get the module name.
400
- *
401
- * @returns {string} - returns the module name
402
- * @private
403
- */
404
- private getModuleName(): string {
405
- return 'breadcrumbbar';
406
- }
407
-
408
- public destroy(): void {
409
- if (this.parent.isDestroyed) { return; }
410
- this.removeEventListener();
411
- /* istanbul ignore next */
412
- if (!isNullOrUndefined(this.subMenuObj)) {
413
- this.subMenuObj.destroy();
414
- }
415
- if (!isNullOrUndefined(this.searchObj)) {
416
- this.searchObj.destroy();
417
- }
418
- }
419
-
420
- private onSearchTextChange(args: ReadArgs): void {
421
- this.searchObj.element.placeholder = (this.parent.searchSettings.placeholder != null) ? this.parent.searchSettings.placeholder : getLocaleText(this.parent, 'Search') + ' ' + getLocaleText(this.parent, args.cwd.name.toString());
422
- }
423
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * File Manager actions modules
3
- */
4
- export * from './toolbar';
5
- export * from './breadcrumb-bar';
6
- export * from './virtualization';
@@ -1,6 +0,0 @@
1
- /**
2
- * File Manager actions modules
3
- */
4
- export * from './toolbar';
5
- export * from './breadcrumb-bar';
6
- export * from './virtualization';
@@ -1,54 +0,0 @@
1
- import { Toolbar as BaseToolbar } from '@syncfusion/ej2-navigations';
2
- import { IFileManager } from '../base/interface';
3
- /**
4
- * Toolbar module
5
- */
6
- export declare class Toolbar {
7
- private parent;
8
- private items;
9
- private buttonObj;
10
- private layoutBtnObj;
11
- private default;
12
- private single;
13
- private multiple;
14
- private selection;
15
- toolbarObj: BaseToolbar;
16
- /**
17
- * Constructor for the Toolbar module
18
- *
19
- * @hidden
20
- * @param {IFileManager} parent - specifies the parent element.
21
- * @private
22
- */
23
- constructor(parent?: IFileManager);
24
- private render;
25
- getItemIndex(item: string): number;
26
- private getItems;
27
- private onClicked;
28
- private toolbarCreateHandler;
29
- private updateSortByButton;
30
- private getPupupId;
31
- private layoutChange;
32
- private toolbarItemData;
33
- private getItemModel;
34
- private getId;
35
- private addEventListener;
36
- private reRenderToolbar;
37
- private onSelectionChanged;
38
- private hideItems;
39
- private hideStatus;
40
- private showPaste;
41
- private hidePaste;
42
- private onLayoutChange;
43
- private removeEventListener;
44
- /**
45
- * For internal use only - Get the module name.
46
- *
47
- * @returns {string} - returns module name.
48
- * @private
49
- */
50
- private getModuleName;
51
- private onPropertyChanged;
52
- destroy(): void;
53
- enableItems(items: string[], isEnable?: boolean): void;
54
- }