PageSourceSearch

https://www.sunhope.it/wp-content/plugins/file-manager-advanced/ap…/library/js/elFinder.options.js?ver=5.8.1

js sunhope.it collected 2026-10-02 22:09:16 UTC 39,552 bytes, 1,349 lines download raw bytes

1/**
2 * Default elFinder config
3 *
4 * @type  Object
5 * @autor Dmitry (dio) Levashov
6 */
7elFinder.prototype._options = {
8	/**
9	 * URLs of 3rd party libraries CDN
10	 * 
11	 * @type Object
12	 */
13	cdns : {
14		// for editor etc.
15		ace        : 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.8',
16		codemirror : 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2',
17		ckeditor   : 'https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.12.1',
18		ckeditor5  : 'https://cdn.ckeditor.com/ckeditor5/17.0.0',
19		tinymce    : 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.2.0',
20		simplemde  : 'https://cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2',
21		fabric     : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2',
22		fabric16   : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7',
23		tui        : 'https://uicdn.toast.com',
24		// for quicklook etc.
25		hls        : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.13.2/hls.min.js',
26		dash       : 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/3.0.3/dash.all.min.js',
27		flv        : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.5.0/flv.min.js',
28		videojs    : 'https://cdnjs.cloudflare.com/ajax/libs/video.js/7.7.5',
29		prettify   : 'https://cdn.jsdelivr.net/gh/google/code-prettify@f1c3473acd1e8ea8c8c1a60c56e89f5cdd06f915/loader/run_prettify.js',
30		psd        : 'https://cdnjs.cloudflare.com/ajax/libs/psd.js/3.2.0/psd.min.js',
31		rar        : 'https://cdn.jsdelivr.net/gh/nao-pon/rar.js@6cef13ec66dd67992fc7f3ea22f132d770ebaf8b/rar.min.js',
32		zlibUnzip  : 'https://cdn.jsdelivr.net/gh/imaya/[email protected]/bin/unzip.min.js', // need check unzipFiles() in quicklook.plugins.js when update
33		zlibGunzip : 'https://cdn.jsdelivr.net/gh/imaya/[email protected]/bin/gunzip.min.js',
34		bzip2      : 'https://cdn.jsdelivr.net/gh/nao-pon/[email protected]/bzip2.js',
35		marked     : 'https://cdnjs.cloudflare.com/ajax/libs/marked/0.7.0/marked.min.js',
36		sparkmd5   : 'https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js',
37		jssha      : 'https://cdnjs.cloudflare.com/ajax/libs/jsSHA/2.3.1/sha.js',
38		amr        : 'https://cdn.jsdelivr.net/gh/yxl/opencore-amr-js@dcf3d2b5f384a1d9ded2a54e4c137a81747b222b/js/amrnb.js',
39		tiff       : 'https://cdn.jsdelivr.net/gh/seikichi/tiff.js@545ede3ee46b5a5bc5f06d65954e775aa2a64017/tiff.min.js'
40	},
41	
42	/**
43	 * Connector url. Required!
44	 *
45	 * @type String
46	 */
47	url : '',
48
49	/**
50	 * Ajax request type.
51	 *
52	 * @type String
53	 * @default "get"
54	 */
55	requestType : 'get',
56	
57	/**
58	 * Use CORS to connector url
59	 * 
60	 * @type Boolean|null  true|false|null(Auto detect)
61	 */
62	cors : null,
63
64	/**
65	 * Array of header names to return parrot out in HTTP headers received from the server
66	 * 
67	 * @type Array
68	 */
69	parrotHeaders : [],
70
71	/**
72	 * Maximum number of concurrent connections on request
73	 * 
74	 * @type Number
75	 * @default 3
76	 */
77	requestMaxConn : 3,
78
79	/**
80	 * Transport to send request to backend.
81	 * Required for future extensions using websockets/webdav etc.
82	 * Must be an object with "send" method.
83	 * transport.send must return $.Deferred() object
84	 *
85	 * @type Object
86	 * @default null
87	 * @example
88	 *  transport : {
89	 *    init : function(elfinderInstance) { },
90	 *    send : function(options) {
91	 *      var dfrd = $.Deferred();
92	 *      // connect to backend ...
93	 *      return dfrd;
94	 *    },
95	 *    upload : function(data) {
96	 *      var dfrd = $.Deferred();
97	 *      // upload ...
98	 *      return dfrd;
99	 *    }
100	 *    
101	 *  }
102	 **/
103	transport : {},
104
105	/**
106	 * URL to upload file to.
107	 * If not set - connector URL will be used
108	 *
109	 * @type String
110	 * @default  ''
111	 */
112	urlUpload : '',
113
114	/**
115	 * Allow to drag and drop to upload files
116	 *
117	 * @type Boolean|String
118	 * @default  'auto'
119	 */
120	dragUploadAllow : 'auto',
121	
122	/**
123	 * Confirmation dialog displayed at the time of overwriting upload
124	 * 
125	 * @type Boolean
126	 * @default true
127	 */
128	overwriteUploadConfirm : true,
129	
130	/**
131	 * Max size of chunked data of file upload
132	 * 
133	 * @type Number
134	 * @default  10485760(10MB)
135	 */
136	uploadMaxChunkSize : 10485760,
137	
138	/**
139	 * Regular expression of file name to exclude when uploading folder
140	 * 
141	 * @type Object
142	 * @default { win: /^(?:desktop\.ini|thumbs\.db)$/i, mac: /^\.ds_store$/i }
143	 */
144	folderUploadExclude : {
145		win: /^(?:desktop\.ini|thumbs\.db)$/i,
146		mac: /^\.ds_store$/i
147	},
148	
149	/**
150	 * Timeout for upload using iframe
151	 *
152	 * @type Number
153	 * @default  0 - no timeout
154	 */
155	iframeTimeout : 0,
156	
157	/**
158	 * Data to append to all requests and to upload files
159	 *
160	 * @type Object
161	 * @default  {}
162	 */
163	customData : {},
164	
165	/**
166	 * Event listeners to bind on elFinder init
167	 *
168	 * @type Object
169	 * @default  {}
170	 */
171	handlers : {},
172
173	/**
174	 * Any custom headers to send across every ajax request
175	 *
176	 * @type Object
177	 * @default {}
178	 */
179	customHeaders : {},
180
181	/**
182	 * Any custom xhrFields to send across every ajax request
183	 *
184	 * @type Object
185	 * @default {}
186	 */
187	xhrFields : {},
188
189	/**
190	 * Interface language
191	 *
192	 * @type String
193	 * @default "en"
194	 */
195	lang : 'en',
196
197	/**
198	 * Base URL of elfFinder library starting from Manager HTML
199	 * Auto detect when empty value
200	 * 
201	 * @type String
202	 * @default ""
203	 */
204	baseUrl : '',
205
206	/**
207	 * Base URL of i18n js files
208	 * baseUrl + "js/i18n/" when empty value
209	 * 
210	 * @type String
211	 * @default ""
212	 */
213	i18nBaseUrl : '',
214	
215	/**
216	 * Auto load required CSS
217	 * `false` to disable this function or
218	 * CSS URL Array to load additional CSS files
219	 * 
220	 * @type Boolean|Array
221	 * @default true
222	 */
223	cssAutoLoad : true,
224
225	/**
226	 * Theme to load
227	 * {"themeid" : "Theme CSS URL"} or
228	 * {"themeid" : "Theme manifesto.json URL"} or
229	 * Theme manifesto.json Object
230	 * {
231	 *   "themeid" : {
232	 *     "name":"Theme Name",
233	 *     "cssurls":"Theme CSS URL",
234	 *     "author":"Author Name",
235	 *     "email":"Author Email",
236	 *     "license":"License",
237	 *     "link":"Web Site URL",
238	 *     "image":"Screen Shot URL",
239	 *     "description":"Description"
240	 *   }
241	 * }
242	 * 
243	 * @type Object
244	 */
245	themes : {},
246
247	/**
248	 * Theme id to initial theme
249	 * 
250	 * @type String|Null
251	 */
252	theme : null,
253
254	/**
255	 * Maximum value of error dialog open at the same time
256	 * 
257	 * @type Number
258	 */
259	maxErrorDialogs : 5,
260
261	/**
262	 * Additional css class for filemanager node.
263	 *
264	 * @type String
265	 */
266	cssClass : '',
267
268	/**
269	 * Active commands list. '*' means all of the commands that have been load.
270	 * If some required commands will be missed here, elFinder will add its
271	 *
272	 * @type Array
273	 */
274	commands : ['*'],
275	// Available commands list
276	//commands : [
277	//	'archive', 'back', 'chmod', 'colwidth', 'copy', 'cut', 'download', 'duplicate', 'edit', 'extract',
278	//	'forward', 'fullscreen', 'getfile', 'help', 'home', 'info', 'mkdir', 'mkfile', 'netmount', 'netunmount',
279	//	'open', 'opendir', 'paste', 'places', 'quicklook', 'reload', 'rename', 'resize', 'restore', 'rm',
280	//	'search', 'sort', 'up', 'upload', 'view', 'zipdl'
281	//],
282	
283	/**
284	 * Commands options.
285	 *
286	 * @type Object
287	 **/
288	commandsOptions : {
289		// // configure shortcuts of any command
290		// // add `shortcuts` property into each command
291		// any_command_name : {
292		// 	shortcuts : [] // for disable this command's shortcuts
293		// },
294		// any_command_name : {
295		// 	shortcuts : function(fm, shortcuts) {
296		// 		// for add `CTRL + E` for this command action
297		// 		shortcuts[0]['pattern'] += ' ctrl+e';
298		// 		return shortcuts;
299		// 	}
300		// },
301		// any_command_name : {
302		// 	shortcuts : function(fm, shortcuts) {
303		// 		// for full customize of this command's shortcuts
304		// 		return [ { pattern: 'ctrl+e ctrl+down numpad_enter' + (fm.OS != 'mac' && ' enter') } ];
305		// 	}
306		// },
307		// "getfile" command options.
308		getfile : {
309			onlyURL  : false,
310			// allow to return multiple files info
311			multiple : false,
312			// allow to return filers info
313			folders  : false,
314			// action after callback (""/"close"/"destroy")
315			oncomplete : '',
316			// action when callback is fail (""/"close"/"destroy")
317			onerror : '',
318			// get path before callback call
319			getPath    : true, 
320			// get image sizes before callback call
321			getImgSize : false
322		},
323		open : {
324			// HTTP method that request to the connector when item URL is not valid URL.
325			// If you set to "get" will be displayed request parameter in the browser's location field
326			// so if you want to conceal its parameters should be given "post".
327			// Nevertheless, please specify "get" if you want to enable the partial request by HTTP Range header.
328			method : 'post',
329			// Where to open into : 'window'(default), 'tab' or 'tabs'
330			// 'tabs' opens in each tabs
331			into   : 'window',
332			// Default command list of action when select file
333			// String value that is 'Command Name' or 'Command Name1/CommandName2...'
334			selectAction : 'open'
335		},
336		opennew : {
337			// URL of to open elFinder manager
338			// Default '' : Origin URL
339			url : '',
340			// Use search query of origin URL
341			useOriginQuery : true
342		},
343		// "upload" command options.
344		upload : {
345			// Open elFinder upload dialog: 'button' OR Open system OS upload dialog: 'uploadbutton'
346			ui : 'button'
347		},
348		// "download" command options.
349		download : {
350			// max request to download files when zipdl disabled
351			maxRequests : 10,
352			// minimum count of files to use zipdl
353			minFilesZipdl : 2
354		},
355		// "quicklook" command options.
356		quicklook : {
357			autoplay : true,
358			width    : 450,
359			height   : 300,
360			// ControlsList of HTML5 audio/video preview
361			// see https://googlechrome.github.io/samples/media/controlslist.html
362			mediaControlsList : '', // e.g. 'nodownload nofullscreen noremoteplayback'
363			// Show toolbar of PDF preview (with <embed> tag)
364			pdfToolbar : true,
365			// Maximum lines to preview at initial
366			textInitialLines : 100,
367			// Maximum lines to preview by prettify
368			prettifyMaxLines : 300,
369			// quicklook window must be contained in elFinder node on window open (true|false)
370			contain : false,
371			// preview window into NavDock (0 : undocked | 1 : docked(show) | 2 : docked(hide))
372			docked   : 0,
373			// Docked preview height ('auto' or Number of pixel) 'auto' is setted to the Navbar width
374			dockHeight : 'auto',
375			// media auto play when docked
376			dockAutoplay : false,
377			// Google Maps API key (Require Maps JavaScript API)
378			googleMapsApiKey : '',
379			// Google Maps API Options
380			googleMapsOpts : {
381				maps : {},
382				kml : {
383					suppressInfoWindows : false,
384					preserveViewport : false
385				}
386			},
387			// ViewerJS (https://viewerjs.org/) Options
388			// To enable this you need to place ViewerJS on the same server as elFinder and specify that URL in `url`.
389			viewerjs : {
390				url: '', // Example '/ViewerJS/index.html'
391				mimes: ['application/pdf', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation'],
392				pdfNative: true // Use Native PDF Viewer first
393			},
394			// MIME types to CAD-Files and 3D-Models online viewer on sharecad.org
395			// Example ['image/vnd.dwg', 'image/vnd.dxf', 'model/vnd.dwf', 'application/vnd.hp-hpgl', 'application/plt', 'application/step', 'model/iges', 'application/vnd.ms-pki.stl', 'application/sat', 'image/cgm', 'application/x-msmetafile']
396			sharecadMimes : [],
397			// MIME types to use Google Docs online viewer
398			// Example ['application/pdf', 'image/tiff', 'application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/postscript', 'application/rtf']
399			googleDocsMimes : [],
400			// MIME types to use Microsoft Office Online viewer
401			// Example ['application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']
402			// These MIME types override "googleDocsMimes"
403			officeOnlineMimes : [],
404			// File size threshold when using the dim command for obtain the image size necessary to image preview
405			getDimThreshold : '200K',
406			// Max filesize to show filenames of the zip/tar/gzip/bzip file 
407			unzipMaxSize : '50M',
408			// MIME-Type regular expression that does not check empty files
409			mimeRegexNotEmptyCheck : /^application\/vnd\.google-apps\./
410		},
411		// "edit" command options.
412		edit : {
413			// dialog width, integer(px) or integer+'%' (example: 650, '80%' ...)
414			dialogWidth : void(0),
415			// dialog height, integer(px) or integer+'%' (example: 650, '80%' ...)
416			dialogHeight : void(0),
417			// list of allowed mimetypes to edit of text files
418			// if empty - any text files can be edited
419			mimes : [],
420			// MIME-types to unselected as default of "File types to enable with "New file"" in preferences
421			mkfileHideMimes : [],
422			// MIME-types of text file to make empty file
423			makeTextMimes : ['text/plain', 'text/css', 'text/html'],
424			// Use the editor stored in the browser
425			// This value allowd overwrite with user preferences
426			useStoredEditor : false,
427			// Open the maximized editor window
428			// This value allowd overwrite with user preferences
429			editorMaximized : false,
430			// edit files in wysisyg's
431			editors : [
432				// {
433				// 	/**
434				// 	 * editor info
435				// 	 * @type  Object
436				// 	 */
437				// 	info : { name: 'Editor Name' },
438				// 	/**
439				// 	 * files mimetypes allowed to edit in current wysisyg
440				// 	 * @type  Array
441				// 	 */
442				// 	mimes : ['text/html'], 
443				// 	/**
444				// 	 * HTML element for editing area (optional for text editor)
445				// 	 * @type  String
446				// 	 */
447				// 	html : '<textarea></textarea>', 
448				// 	/**
449				// 	 * Initialize editing area node (optional for text editor)
450				// 	 * 
451				// 	 * @param  String  dialog DOM id
452				// 	 * @param  Object  target file object
453				// 	 * @param  String  target file content (text or Data URI Scheme(binary file))
454				// 	 * @param  Object  elFinder instance
455				// 	 * @type  Function
456				// 	 */
457				// 	init : function(id, file, content, fm) {
458				// 		$(this).attr('id', id + '-text').val(content);
459				// 	},
460				// 	/**
461				// 	 * Get edited contents (optional for text editor)
462				// 	 * @type  Function
463				// 	 */
464				// 	getContent : function() {
465				// 		return $(this).val();
466				// 	},
467				// 	/**
468				// 	 * Called when "edit" dialog loaded.
469				// 	 * Place to init wysisyg.
470				// 	 * Can return wysisyg instance
471				// 	 *
472				// 	 * @param  DOMElement  textarea node
473				// 	 * @return Object      editor instance|jQuery.Deferred(return instance on resolve())
474				// 	 */
475				// 	load : function(textarea) { },
476				// 	/**
477				// 	 * Called before "edit" dialog closed.
478				// 	 * Place to destroy wysisyg instance.
479				// 	 *
480				// 	 * @param  DOMElement  textarea node
481				// 	 * @param  Object      wysisyg instance (if was returned by "load" callback)
482				// 	 * @return void
483				// 	 */
484				// 	close : function(textarea, instance) { },
485				// 	/**
486				// 	 * Called before file content send to backend.
487				// 	 * Place to update textarea content if needed.
488				// 	 *
489				// 	 * @param  DOMElement  textarea node
490				// 	 * @param  Object      wysisyg instance (if was returned by "load" callback)
491				// 	 * @return void
492				// 	 */
493				// 	save : function(textarea, instance) {},
494				// 	/**
495				// 	 * Called after load() or save().
496				// 	 * Set focus to wysisyg editor.
497				// 	 *
498				// 	 * @param  DOMElement  textarea node
499				// 	 * @param  Object      wysisyg instance (if was returned by "load" callback)
500				// 	 * @return void
501				// 	 */
502				// 	focus : function(textarea, instance) {}
503				// 	/**
504				// 	 * Called after dialog resized..
505				// 	 *
506				// 	 * @param  DOMElement  textarea node
507				// 	 * @param  Object      wysisyg instance (if was returned by "load" callback)
508				// 	 * @param  Object      resize event object
509				// 	 * @param  Object      data object
510				// 	 * @return void
511				// 	 */
512				// 	resize : function(textarea, instance, event, data) {}
513				// 
514				// }
515			],
516			// Character encodings of select box
517			encodings : ['Big5', 'Big5-HKSCS', 'Cp437', 'Cp737', 'Cp775', 'Cp850', 'Cp852', 'Cp855', 'Cp857', 'Cp858', 
518				'Cp862', 'Cp866', 'Cp874', 'EUC-CN', 'EUC-JP', 'EUC-KR', 'GB18030', 'ISO-2022-CN', 'ISO-2022-JP', 'ISO-2022-KR', 
519				'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 
520				'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-13', 'ISO-8859-15', 'KOI8-R', 'KOI8-U', 'Shift-JIS', 
521				'Windows-1250', 'Windows-1251', 'Windows-1252', 'Windows-1253', 'Windows-1254', 'Windows-1257'],
522			// options for extra editors
523			extraOptions : {
524				// upload command options
525				uploadOpts : {},
526				// TUI Image Editor's options
527				tuiImgEditOpts : {
528					// Path prefix of icon-a.svg, icon-b.svg, icon-c.svg and icon-d.svg in the Theme. 
529					// `iconsPath` MUST follow the same origin policy.
530					iconsPath : void(0), // default is "./img/tui-"
531					// Theme object
532					theme : {}
533				},
534				// Pixo image editor constructor options - https://pixoeditor.com/
535				// Require 'apikey' to enable it
536				pixo: {
537					apikey: ''
538				},
539				// Browsing manager URL for CKEditor, TinyMCE
540				// Uses self location with the empty value or not defined.
541				//managerUrl : 'elfinder.html'
542				managerUrl : null,
543				// CKEditor editor options
544				ckeditor: {},
545				// CKEditor 5 editor options
546				ckeditor5: {
547					// builds mode - 'classic', 'inline', 'balloon', 'balloon-block' or 'decoupled-document'
548					mode: 'decoupled-document'
549				},
550				// TinyMCE editor options
551				tinymce : {},
552				// Setting for Online-Convert.com
553				onlineConvert : {
554					maxSize  : 100, // (MB) Max 100MB on free account
555					showLink : true // It must be enabled with free account
556				}
557			}
558		},
559		fullscreen : {
560			// fullscreen mode 'screen'(When the browser supports it) or 'window'
561			mode: 'screen' // 'screen' or 'window'
562		},
563		search : {
564			// Incremental search from the current view
565			incsearch : {
566				enable : true, // is enable true or false
567				minlen : 1,    // minimum number of characters
568				wait   : 500   // wait milliseconds
569			},
570			// Additional search types
571			searchTypes : {
572				// "SearchMime" is implemented in default
573				SearchMime : {           // The key is search type that send to the connector
574					name : 'btnMime',    // Button text to be processed in i18n()
575					title : 'searchMime',// Button title to be processed in i18n()
576					incsearch : 'mime'   // Incremental search target filed name of the file object
577					// Or Callable function
578					/* incsearch function example
579					function(queryObject, cwdHashes, elFinderInstance) {
580						var q = queryObject.val;
581						var regex = queryObject.regex;
582						var matchedHashes = $.grep(cwdHashes, function(hash) {
583							var file = elFinderInstance.file(hash);
584							return (file && file.mime && file.mime.match(regex))? true : false;
585						});
586						return matchedHashes;
587					}
588					*/
589				}
590			}
591		},
592		// "info" command options.
593		info : {
594			// If the URL of the Directory is null,
595			// it is assumed that the link destination is a URL to open the folder in elFinder
596			nullUrlDirLinkSelf : true,
597			// Information items to be hidden by default
598			// These name are 'size', 'aliasfor', 'path', 'link', 'dim', 'modify', 'perms', 'locked', 'owner', 'group', 'perm' and your custom info items label
599			hideItems : [],
600			// Maximum file size (byte) to get file contents hash (md5, sha256 ...)
601			showHashMaxsize : 104857600, // 100 MB
602			// Array of hash algorisms to show on info dialog
603			// These name are 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512', 'shake128' and 'shake256'
604			showHashAlgorisms : ['md5', 'sha256'],
605			// Options for fm.getContentsHashes()
606			showHashOpts : {
607				shake128len : 256,
608				shake256len : 512
609			},
610			custom : {
611				// /**
612				//  * Example of custom info `desc`
613				//  */
614				// desc : {
615				// 	/**
616				// 	 * Lable (require)
617				// 	 * It is filtered by the `fm.i18n()`
618				// 	 * 
619				// 	 * @type String
620				// 	 */
621				// 	label : 'Description',
622				// 	
623				// 	/**
624				// 	 * Template (require)
625				// 	 * `{id}` is replaced in dialog.id
626				// 	 * 
627				// 	 * @type String
628				// 	 */
629				// 	tpl : '<div class="elfinder-info-desc"><span class="elfinder-spinner"></span></div>',
630				// 	
631				// 	/**
632				// 	 * Restricts to mimetypes (optional)
633				// 	 * Exact match or category match
634				// 	 * 
635				// 	 * @type Array
636				// 	 */
637				// 	mimes : ['text', 'image/jpeg', 'directory'],
638				// 	
639				// 	/**
640				// 	 * Restricts to file.hash (optional)
641				// 	 * 
642				// 	 * @ type Regex
643				// 	 */
644				// 	hashRegex : /^l\d+_/,
645				// 
646				// 	/**
647				// 	 * Request that asks for the description and sets the field (optional)
648				// 	 * 
649				// 	 * @type Function
650				// 	 */
651				// 	action : function(file, fm, dialog) {
652				// 		fm.request({
653				// 		data : { cmd : 'desc', target: file.hash },
654				// 			preventDefault: true,
655				// 		})
656				// 		.fail(function() {
657				// 			dialog.find('div.elfinder-info-desc').html(fm.i18n('unknown'));
658				// 		})
659				// 		.done(function(data) {
660				// 			dialog.find('div.elfinder-info-desc').html(data.desc);
661				// 		});
662				// 	}
663				// }
664			}
665		},
666		mkdir: {
667			// Enable automatic switching function ["New Folder" / "Into New Folder"] of toolbar buttton
668			intoNewFolderToolbtn: false
669		},
670		resize: {
671			// defalt status of snap to 8px grid of the jpeg image ("enable" or "disable")
672			grid8px : 'disable',
673			// Preset size array [width, height]
674			presetSize : [[320, 240], [400, 400], [640, 480], [800,600]],
675			// File size (bytes) threshold when using the `dim` command for obtain the image size necessary to start editing
676			getDimThreshold : 204800,
677			// File size (bytes) to request to get substitute image (400px) with the `dim` command
678			dimSubImgSize : 307200
679		},
680		rm: {
681			// If trash is valid, items moves immediately to the trash holder without confirm.
682			quickTrash : true,
683			// Maximum wait seconds when checking the number of items to into the trash
684			infoCheckWait : 10,
685			// Maximum number of items that can be placed into the Trash at one time
686			toTrashMaxItems : 1000
687		},
688		paste : {
689			moveConfirm : false // Display confirmation dialog when moving items
690		},
691		help : {
692			// Tabs to show
693			view : ['about', 'shortcuts', 'help', 'integrations', 'debug'],
694			// HTML source URL of the heip tab
695			helpSource : ''
696		},
697		preference : {
698			// dialog width
699			width: 600,
700			// dialog height
701			height: 400,
702			// tabs setting see preference.js : build()
703			categories: null,
704			// preference setting see preference.js : build()
705			prefs: null,
706			// language setting  see preference.js : build()
707			langs: null,
708			// Command list of action when select file
709			// Array value are 'Command Name' or 'Command Name1/CommandName2...'
710			selectActions : ['open', 'edit/download', 'resize/edit/download', 'download', 'quicklook']
711		}
712	},
713	
714	/**
715	 * Disabled commands relationship
716	 * 
717	 * @type Object
718	 */
719	disabledCmdsRels : {
720		'get'       : ['edit'],
721		'rm'        : ['cut', 'empty'],
722		'file&url=' : ['download', 'zipdl'] // file command and volume options url is empty
723	},
724
725	/**
726	 * Callback for prepare boot up
727	 * 
728	 * - The this object in the function is an elFinder node
729	 * - The first parameter is elFinder Instance
730	 * - The second parameter is an object of other parameters
731	 *   For now it can use `dfrdsBeforeBootup` Array
732	 * 
733	 * @type Function
734	 * @default null
735	 * @return void
736	 */
737	bootCallback : null,
738	
739	/**
740	 * Callback for "getfile" commands.
741	 * Required to use elFinder with WYSIWYG editors etc..
742	 *
743	 * @type Function
744	 * @default null (command not active)
745	 */
746	getFileCallback : null,
747	
748	/**
749	 * Default directory view. icons/list
750	 *
751	 * @type String
752	 * @default "icons"
753	 */
754	defaultView : 'icons',
755	
756	/**
757	 * Hash of default directory path to open
758	 * 
759	 * NOTE: This setting will be disabled if the target folder is specified in location.hash.
760	 * 
761	 * If you want to find the hash in Javascript
762	 * can be obtained with the following code. (In the case of a standard hashing method)
763	 * 
764	 * var volumeId = 'l1_'; // volume id
765	 * var path = 'path/to/target'; // without root path
766	 * //var path = 'path\\to\\target'; // use \ on windows server
767	 * var hash = volumeId + btoa(path).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '.').replace(/\.+$/, '');
768	 * 
769	 * @type String
770	 * @default ""
771	 */
772	startPathHash : '',
773
774	/**
775	 * Emit a sound when a file is deleted
776	 * Sounds are in sounds/ folder
777	 * 
778	 * @type Boolean
779	 * @default true
780	 */
781	sound : true,
782	
783	/**
784	 * UI plugins to load.
785	 * Current dir ui and dialogs loads always.
786	 * Here set not required plugins as folders tree/toolbar/statusbar etc.
787	 *
788	 * @type Array
789	 * @default ['toolbar', 'places', 'tree', 'path', 'stat']
790	 * @full ['toolbar', 'places', 'tree', 'path', 'stat']
791	 */
792	ui : ['toolbar', 'places', 'tree', 'path', 'stat'],
793	
794	/**
795	 * Some UI plugins options.
796	 * @type Object
797	 */
798	uiOptions : {
799		// toolbar configuration
800		toolbar : [
801			['home', 'back', 'forward', 'up', 'reload'],
802			['netmount'],
803			['mkdir', 'mkfile', 'upload'],
804			['open', 'download', 'getfile'],
805			['undo', 'redo'],
806			['copy', 'cut', 'paste', 'rm', 'empty', 'hide'],
807			['duplicate', 'rename', 'edit', 'resize', 'chmod'],
808			['selectall', 'selectnone', 'selectinvert'],
809			['quicklook', 'info'],
810			['extract', 'archive'],
811			['search'],
812			['view', 'sort'],
813			['preference', 'help'],
814			['fullscreen']
815		],
816		// toolbar extra options
817		toolbarExtra : {
818			// also displays the text label on the button (true / false / 'none')
819			displayTextLabel: false,
820			// Exclude `displayTextLabel` setting UA type
821			labelExcludeUA: ['Mobile'],
822			// auto hide on initial open
823			autoHideUA: ['Mobile'],
824			// Initial setting value of hide button in toolbar setting
825			defaultHides: ['home', 'reload'],
826			// show Preference button ('none', 'auto', 'always')
827			// If you do not include 'preference' in the context menu you should specify 'auto' or 'always'
828			showPreferenceButton: 'none',
829			// show Preference button into contextmenu of the toolbar (true / false)
830			preferenceInContextmenu: true
831		},
832		// directories tree options
833		tree : {
834			// set path info to attr title
835			attrTitle : true,
836			// expand current root on init
837			openRootOnLoad : true,
838			// expand current work directory on open
839			openCwdOnOpen  : true,
840			// auto loading current directory parents and do expand their node.
841			syncTree : true,
842			// Maximum number of display of each child trees
843			// The tree of directories with children exceeding this number will be split
844			subTreeMax : 100,
845			// Numbar of max connctions of subdirs request
846			subdirsMaxConn : 2,
847			// Number of max simultaneous processing directory of subdirs
848			subdirsAtOnce : 5,
849			// Durations of each animations
850			durations : {
851				slideUpDown : 'fast',
852				autoScroll : 'fast'
853			}
854			// ,
855			// /**
856			//  * Add CSS class name to navbar directories (optional)
857			//  * see: https://github.com/Studio-42/elFinder/pull/1061,
858			//  *      https://github.com/Studio-42/elFinder/issues/1231
859			//  * 
860			//  * @type Function
861			//  */
862			// getClass: function(dir) {
863			// 	// e.g. This adds the directory's name (lowercase) with prefix as a CSS class
864			// 	return 'elfinder-tree-' + dir.name.replace(/[ "]/g, '').toLowerCase();
865			// }
866		},
867		// navbar options
868		navbar : {
869			minWidth : 150,
870			maxWidth : 500,
871			// auto hide on initial open
872			autoHideUA: [] // e.g. ['Mobile']
873		},
874		navdock : {
875			// disabled navdock ui
876			disabled : false,
877			// percentage of initial maximum height to work zone
878			initMaxHeight : '50%',
879			// percentage of maximum height to work zone by user resize action
880			maxHeight : '90%'
881		},
882		cwd : {
883			// display parent folder with ".." name :)
884			oldSchool : false,
885			
886			// fm.UA types array to show item select checkboxes e.g. ['All'] or ['Mobile'] etc. default: ['Touch']
887			showSelectCheckboxUA : ['Touch'],
888
889			// Enable dragout by dragstart with Alt key or Shift key
890			metakeyDragout : true,
891			
892			// file info columns displayed
893			listView : {
894				// name is always displayed, cols are ordered
895				// e.g. ['perm', 'date', 'size', 'kind', 'owner', 'group', 'mode']
896				// mode: 'mode'(by `fileModeStyle` setting), 'modestr'(rwxr-xr-x) , 'modeoct'(755), 'modeboth'(rwxr-xr-x (755))
897				// 'owner', 'group' and 'mode', It's necessary set volume driver option "statOwner" to `true`
898				// for custom, characters that can be used in the name is `a-z0-9_`
899				columns : ['perm', 'date', 'size', 'kind'],
900				// override this if you want custom columns name
901				// example
902				// columnsCustomName : {
903				//		date : 'Last modification',
904				// 		kind : 'Mime type'
905				// }
906				columnsCustomName : {},
907				// fixed list header colmun
908				fixedHeader : true
909			},
910
911			// icons view setting
912			iconsView : {
913				// default icon size (0-3 in default CSS (cwd.css - elfinder-cwd-size[number]))
914				size: 0,
915				// number of maximum size (3 in default CSS (cwd.css - elfinder-cwd-size[number]))
916				// uses in preference.js
917				sizeMax: 3,
918				// Name of each size
919				sizeNames: {
920					0: 'viewSmall',
921					1: 'viewMedium',
922					2: 'viewLarge',
923					3: 'viewExtraLarge' 
924				}
925			},
926
927			// /**
928			//  * Add CSS class name to cwd directories (optional)
929			//  * see: https://github.com/Studio-42/elFinder/pull/1061,
930			//  *      https://github.com/Studio-42/elFinder/issues/1231
931			//  * 
932			//  * @type Function
933			//  */
934			// ,
935			// getClass: function(file) {
936			// 	// e.g. This adds the directory's name (lowercase) with prefix as a CSS class
937			// 	return 'elfinder-cwd-' + file.name.replace(/[ "]/g, '').toLowerCase();
938			//}
939			
940			//,
941			//// Template placeholders replacement rules for overwrite. see ui/cwd.js replacement
942			//replacement : {
943			//	tooltip : function(f, fm) {
944			//		var list = fm.viewType == 'list', // current view type
945			//			query = fm.searchStatus.state == 2, // is in search results
946			//			title = fm.formatDate(f) + (f.size > 0 ? ' ('+fm.formatSize(f.size)+')' : ''),
947			//			info  = '';
948			//		if (query && f.path) {
949			//			info = fm.escape(f.path.replace(/\/[^\/]*$/, ''));
950			//		} else {
951			//			info = f.tooltip? fm.escape(f.tooltip).replace(/\r/g, '&#13;') : '';
952			//		}
953			//		if (list) {
954			//			info += (info? '&#13;' : '') + fm.escape(f.name);
955			//		}
956			//		return info? info + '&#13;' + title : title;
957			//	}
958			//}
959		},
960		path : {
961			// Move to head of work zone without UI navbar
962			toWorkzoneWithoutNavbar : true
963		},
964		dialog : {
965			// Enable to auto focusing on mouse over in the target form element
966			focusOnMouseOver : true
967		},
968		toast : {
969			animate : {
970				// to show
971				showMethod: 'fadeIn', // fadeIn, slideDown, and show are built into jQuery
972				showDuration: 300,    // milliseconds
973				showEasing: 'swing',  // swing and linear are built into jQuery
974				// timeout to hide
975				timeOut: 3000,
976				// to hide
977				hideMethod: 'fadeOut',
978				hideDuration: 1500,
979				hideEasing: 'swing'
980			}
981		}
982	},
983
984	/**
985	 * MIME regex of send HTTP header "Content-Disposition: inline" or allow preview in quicklook
986	 * This option will overwrite by connector configuration
987	 * 
988	 * @type String
989	 * @default '^(?:(?:image|video|audio)|text/plain|application/pdf$)'
990	 * @example
991	 *  dispInlineRegex : '.',  // is allow inline of all of MIME types
992	 *  dispInlineRegex : '$^', // is not allow inline of all of MIME types
993	 */
994	dispInlineRegex : '^(?:(?:image|video|audio)|application/(?:x-mpegURL|dash\+xml)|(?:text/plain|application/pdf)$)',
995
996	/**
997	 * Display only required files by types
998	 *
999	 * @type Array
1000	 * @default []
1001	 * @example
1002	 *  onlyMimes : ["image"] - display all images
1003	 *  onlyMimes : ["image/png", "application/x-shockwave-flash"] - display png and flash
1004	 */
1005	onlyMimes : [],
1006
1007	/**
1008	 * Custom files sort rules.
1009	 * All default rules (name/size/kind/date/perm/mode/owner/group) set in elFinder._sortRules
1010	 *
1011	 * @type {Object}
1012	 * @example
1013	 * sortRules : {
1014	 *   name : function(file1, file2) { return file1.name.toLowerCase().localeCompare(file2.name.toLowerCase()); }
1015	 * }
1016	 */
1017	sortRules : {},
1018
1019	/**
1020	 * Default sort type.
1021	 *
1022	 * @type {String}
1023	 */
1024	sortType : 'name',
1025	
1026	/**
1027	 * Default sort order.
1028	 *
1029	 * @type {String}
1030	 * @default "asc"
1031	 */
1032	sortOrder : 'asc',
1033	
1034	/**
1035	 * Display folders first?
1036	 *
1037	 * @type {Boolean}
1038	 * @default true
1039	 */
1040	sortStickFolders : true,
1041	
1042	/**
1043	 * Sort also applies to the treeview (null: disable this feature)
1044	 *
1045	 * @type Boolean|null
1046	 * @default false
1047	 */
1048	sortAlsoTreeview : false,
1049	
1050	/**
1051	 * If true - elFinder will formating dates itself, 
1052	 * otherwise - backend date will be used.
1053	 *
1054	 * @type Boolean
1055	 */
1056	clientFormatDate : true,
1057	
1058	/**
1059	 * Show UTC dates.
1060	 * Required set clientFormatDate to true
1061	 *
1062	 * @type Boolean
1063	 */
1064	UTCDate : false,
1065	
1066	/**
1067	 * File modification datetime format.
1068	 * Value from selected language data  is used by default.
1069	 * Set format here to overwrite it.
1070	 *
1071	 * @type String
1072	 * @default  ""
1073	 */
1074	dateFormat : '',
1075	
1076	/**
1077	 * File modification datetime format in form "Yesterday 12:23:01".
1078	 * Value from selected language data is used by default.
1079	 * Set format here to overwrite it.
1080	 * Use $1 for "Today"/"Yesterday" placeholder
1081	 *
1082	 * @type String
1083	 * @default  ""
1084	 * @example "$1 H:m:i"
1085	 */
1086	fancyDateFormat : '',
1087	
1088	/**
1089	 * Style of file mode at cwd-list, info dialog
1090	 * 'string' (ex. rwxr-xr-x) or 'octal' (ex. 755) or 'both' (ex. rwxr-xr-x (755))
1091	 * 
1092	 * @type {String}
1093	 * @default 'both'
1094	 */
1095	fileModeStyle : 'both',
1096	
1097	/**
1098	 * elFinder width
1099	 *
1100	 * @type String|Number
1101	 * @default  "auto"
1102	 */
1103	width : 'auto',
1104	
1105	/**
1106	 * elFinder node height
1107	 * Number: pixcel or String: Number + "%"
1108	 *
1109	 * @type Number | String
1110	 * @default  400
1111	 */
1112	height : 400,
1113	
1114	/**
1115	 * Base node object or selector
1116	 * Element which is the reference of the height percentage
1117	 *
1118	 * @type Object|String
1119	 * @default null | $(window) (if height is percentage)
1120	 **/
1121	heightBase : null,
1122	
1123	/**
1124	 * Make elFinder resizable if jquery ui resizable available
1125	 *
1126	 * @type Boolean
1127	 * @default  true
1128	 */
1129	resizable : true,
1130	
1131	/**
1132	 * Timeout before open notifications dialogs
1133	 *
1134	 * @type Number
1135	 * @default  500 (.5 sec)
1136	 */
1137	notifyDelay : 500,
1138	
1139	/**
1140	 * Position CSS, Width of notifications dialogs
1141	 *
1142	 * @type Object
1143	 * @default {position: {}, width : null} - Apply CSS definition
1144	 * position: CSS object | null (null: position center & middle)
1145	 */
1146	notifyDialog : {position : {}, width : null, canClose : false, hiddens : ['open']},
1147	
1148	/**
1149	 * Dialog contained in the elFinder node
1150	 * 
1151	 * @type Boolean
1152	 * @default false
1153	 */
1154	dialogContained : false,
1155	
1156	/**
1157	 * Allow shortcuts
1158	 *
1159	 * @type Boolean
1160	 * @default  true
1161	 */
1162	allowShortcuts : true,
1163	
1164	/**
1165	 * Remeber last opened dir to open it after reload or in next session
1166	 *
1167	 * @type Boolean
1168	 * @default  true
1169	 */
1170	rememberLastDir : true,
1171	
1172	/**
1173	 * Clear historys(elFinder) on reload(not browser) function
1174	 * Historys was cleared on Reload function on elFinder 2.0 (value is true)
1175	 * 
1176	 * @type Boolean
1177	 * @default  false
1178	 */
1179	reloadClearHistory : false,
1180	
1181	/**
1182	 * Use browser native history with supported browsers
1183	 *
1184	 * @type Boolean
1185	 * @default  true
1186	 */
1187	useBrowserHistory : true,
1188	
1189	/**
1190	 * Lazy load config.
1191	 * How many files display at once?
1192	 *
1193	 * @type Number
1194	 * @default  50
1195	 */
1196	showFiles : 50,
1197	
1198	/**
1199	 * Lazy load config.
1200	 * Distance in px to cwd bottom edge to start display files
1201	 *
1202	 * @type Number
1203	 * @default  50
1204	 */
1205	showThreshold : 50,
1206	
1207	/**
1208	 * Additional rule to valid new file name.
1209	 * By default not allowed empty names or '..'
1210	 * This setting does not have a sense of security.
1211	 *
1212	 * @type false|RegExp|function
1213	 * @default  false
1214	 * @example
1215	 *  disable names with spaces:
1216	 *  validName : /^[^\s]+$/,
1217	 */
1218	validName : false,
1219	
1220	/**
1221	 * Additional rule to filtering for browsing.
1222	 * This setting does not have a sense of security.
1223	 * 
1224	 * The object `this` is elFinder instance object in this function
1225	 *
1226	 * @type false|RegExp|function
1227	 * @default  false
1228	 * @example
1229	 *  show only png and jpg files:
1230	 *  fileFilter : /.*\.(png|jpg)$/i,
1231	 *  
1232	 *  show only image type files:
1233	 *  fileFilter : function(file) { return file.mime && file.mime.match(/^image\//i); },
1234	 */
1235	fileFilter : false,
1236	
1237	/**
1238	 * Backup name suffix.
1239	 *
1240	 * @type String
1241	 * @default  "~"
1242	 */
1243	backupSuffix : '~',
1244	
1245	/**
1246	 * Sync content interval
1247	 *
1248	 * @type Number
1249	 * @default  0 (do not sync)
1250	 */
1251	sync : 0,
1252	
1253	/**
1254	 * Sync start on load if sync value >= 1000
1255	 *
1256	 * @type     Bool
1257	 * @default  true
1258	 */
1259	syncStart : true,
1260	
1261	/**
1262	 * How many thumbnails create in one request
1263	 *
1264	 * @type Number
1265	 * @default  5
1266	 */
1267	loadTmbs : 5,
1268	
1269	/**
1270	 * Cookie option for browsersdoes not suppot localStorage
1271	 *
1272	 * @type Object
1273	 */
1274	cookie         : {
1275		expires  : 30,
1276		domain   : '',
1277		path     : '/',
1278		secure   : false,
1279		samesite : 'lax'
1280	},
1281	
1282	/**
1283	 * Contextmenu config
1284	 *
1285	 * @type Object
1286	 */
1287	contextmenu : {
1288		// navbarfolder menu
1289		navbar : ['open', 'opennew', 'download', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', 'hide', '|', 'rename', '|', 'archive', '|', 'places', 'info', 'chmod', 'netunmount'],
1290		// current directory menu
1291		cwd    : ['undo', 'redo', '|', 'back', 'up', 'reload', '|', 'upload', 'mkdir', 'mkfile', 'paste', '|', 'empty', 'hide', '|', 'view', 'sort', 'selectall', 'colwidth', '|', 'places', 'info', 'chmod', 'netunmount', '|', 'fullscreen', '|', 'preference'],
1292		// current directory file menu
1293		files  : ['getfile', '|' ,'open', 'opennew', 'download', 'opendir', 'quicklook', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', 'hide', '|', 'rename', 'edit', 'resize', '|', 'archive', 'extract', '|', 'selectall', 'selectinvert', '|', 'places', 'info', 'chmod', 'netunmount']
1294	},
1295
1296	/**
1297	 * elFinder node enable always
1298	 * This value will set to `true` if <body> has elFinder node only
1299	 * 
1300	 * @type     Bool
1301	 * @default  false
1302	 */
1303	enableAlways : false,
1304	
1305	/**
1306	 * elFinder node enable by mouse over
1307	 * 
1308	 * @type     Bool
1309	 * @default  true
1310	 */
1311	enableByMouseOver : true,
1312
1313	/**
1314	 * Show window close confirm dialog
1315	 * Value is which state to show
1316	 * 'hasNotifyDialog', 'editingFile', 'hasSelectedItem' and 'hasClipboardData'
1317	 * 
1318	 * @type     Array
1319	 * @default  ['hasNotifyDialog', 'editingFile']
1320	 */
1321	windowCloseConfirm : ['hasNotifyDialog', 'editingFile'],
1322
1323	/**
1324	 * Function decoding 'raw' string converted to unicode
1325	 * It is used instead of fm.decodeRawString(str)
1326	 * 
1327	 * @type Null|Function
1328	 */
1329	rawStringDecoder : typeof Encoding === 'object' && $.isFunction(Encoding.convert)? function(str) {
1330		return Encoding.convert(str, {
1331			to: 'UNICODE',
1332			type: 'string'
1333		});
1334	} : null,
1335
1336	/**
1337	 * Debug config
1338	 *
1339	 * @type Array|String('auto')|Boolean(true|false)
1340	 */
1341	debug : ['error', 'warning', 'event-destroy'],
1342
1343	/**
1344	 * Show toast messeges of backend warning (if found data `debug.backendErrors` in backend results)
1345	 *
1346	 * @type Boolean|Object (toast options)
1347	 */
1348	toastBackendWarn : true
1349};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.