PageSourceSearch

https://mijn.schoolleidersbeurs-vo.nl/dist/scripts/project/general…7rDcRlrAobXI0cu5jXASv6YMG7VrJ_nE2g47vMzuy18

js schoolleidersbeurs-vo.nl collected 2026-10-06 11:22:21 UTC 31,903 bytes, 744 lines download raw bytes

1// ReSharper disable CssBrowserCompatibility
2var FileBrowser;
3(function (FileBrowser) {
4    let cropper;
5    FileBrowser.initFileBrowser = function () {
6        initFolders();
7        initButtons();
8        initFolderMove();
9        initRenameFile();
10        initCropperButtons();
11        initResizeButtons();
12        Site.initTooltip();
13        $(".file-actions").hide();
14        $("#uploader").change(() => {
15            uploadFiles($("#uploader")[0].files);
16        });
17        $(".files")
18            .on("drag dragstart dragend dragover dragenter dragleave drop", e => {
19            e.preventDefault();
20            e.stopPropagation();
21        })
22            .on("dragenter", e => {
23            var dt = e.originalEvent.dataTransfer;
24            if (dt.types && (dt.types.indexOf ? dt.types.indexOf("Files") !== -1 : dt.types.containsItem("Files"))) {
25                $(".files").addClass("file-upload-highlight");
26            }
27        })
28            .on("dragleave", e => {
29            var dt = e.originalEvent.dataTransfer;
30            if (dt.types && (dt.types.indexOf ? dt.types.indexOf("Files") !== -1 : dt.types.containsItem("Files"))) {
31                $(".files").removeClass("file-upload-highlight");
32            }
33        })
34            .on("drop", e => {
35            $(".files").removeClass("file-upload-highlight");
36            var dt = e.originalEvent.dataTransfer;
37            if (dt.types && (dt.types.indexOf ? dt.types.indexOf("Files") !== -1 : dt.types.containsItem("Files"))) {
38                uploadFiles(e.originalEvent.dataTransfer.files);
39            }
40        });
41        setTimeout(() => {
42            FileBrowser.openFolder($(".folder-selected").attr('path'));
43        }, 750);
44    };
45    const initFolders = function () {
46        GbtSpinner.spinnerData.showSpinner(".folders");
47        $("#btn-file-download").attr("href", "");
48        $.post("/FileBrowser/GetFolders", {
49            key: Site.fileBrowserKey
50        }, data => {
51            GbtSpinner.spinnerData.stopSpinner(".folders");
52            $("#filebrowser-modal .folder-list").html(data);
53            if (data) {
54                FileBrowser.openFolder($(".file-browser[start]").attr("start"));
55                initFolderClick($("li.folder [path]"));
56            }
57        })
58            .fail(() => {
59            GbtSpinner.spinnerData.stopSpinner(".folders");
60        });
61    };
62    const initButtons = function () {
63        $("#filebrowser-modal").on('hidden.bs.modal', () => {
64            if (typeof window.reInitTinyMce == 'function') {
65                reInitTinyMce();
66            }
67        });
68        $("#btn-file-upload")
69            .click(() => {
70            $("#uploader").click();
71        });
72        var theField = $(`#${Site.fileBrowserTinyMceField}`);
73        if (!theField) {
74            $("#btn-file-select").hide();
75        }
76        $("#btn-file-select")
77            .click(() => {
78            returnSelectedFile($(".file.file-selected > [path]").attr("path"));
79        });
80        $("#btn-folder-edit")
81            .click(() => {
82            switchBewerkModus();
83        });
84        $("#btn-folder-create").click(() => {
85            switchNewFolderStatus();
86        });
87        $("#btn-folder-view").click(() => {
88            switchViewMode();
89        });
90        $("#btn-folder-delete").click(() => {
91            var options = {
92                message: Translation.Shared.ConfirmRemoveDirectory.replace("{0}", $(".folder-selected").val().toString()),
93                callback: (result) => {
94                    if (result) {
95                        deleteFolder();
96                    }
97                },
98                lblCancel: "Annuleren",
99                lblCancelClass: "btn-default",
100                lblConfirm: "Verwijderen",
101                lblConfirmClass: "btn-primary"
102            };
103            Site.confirm(options);
104        });
105        $("#btn-file-delete").click(() => {
106            var options = {
107                message: Translation.Shared.ConfirmDeleteFile,
108                callback: (result) => {
109                    if (result) {
110                        deleteFile();
111                    }
112                },
113                lblCancel: "Annuleren",
114                lblCancelClass: "btn-default",
115                lblConfirm: "Verwijderen",
116                lblConfirmClass: "btn-primary"
117            };
118            Site.confirm(options);
119        });
120        $("#btn-file-crop").click(() => {
121            startImageCrop();
122        });
123        $("#btn-file-resize").click(() => {
124            startImageResize();
125        });
126    };
127    const initFileEvents = function () {
128        $(".file").off("click").off("dblclick").click(el => {
129            $(".file.file-selected").removeClass("file-selected");
130            $(el.currentTarget).addClass("file-selected");
131            $("#btn-file-download").attr("href", Site.router.fileBrowser.downloadFile({ path: $("[path]", el.currentTarget).attr("path"), key: Site.fileBrowserKey })).off("click").click(() => {
132                window.onbeforeunload = null;
133                setTimeout(() => {
134                    window.onbeforeunload = confirmClose;
135                }, 500);
136            });
137            $(".file-actions").show();
138        }).dblclick(el => {
139            if ($(el.currentTarget).hasClass("file-selected")) {
140                if ($(el.currentTarget).find("img").length > 0) {
141                    returnSelectedFile($(el.currentTarget).find("img").attr("path"));
142                }
143                else {
144                    returnSelectedFile($(el.currentTarget).find(".extension").attr("path"));
145                }
146            }
147        });
148        selectMoveFolder();
149    };
150    const initFolderMove = function () {
151        $("#folders-move li a")
152            .off("click")
153            .click(el => {
154            if (!$(el.currentTarget).parents("li").first().hasClass("disabled")) {
155                $.post(Site.router.fileBrowser.moveFile(), {
156                    filePath: $(".file.file-selected > [path]").attr("path"),
157                    moveToPath: $(el.currentTarget).parents("li").first().attr("path")
158                }, data => {
159                    if (data.Success) {
160                        $(".file.file-selected").remove();
161                        gbtNotify.success(data.Message);
162                    }
163                    else {
164                        gbtNotify.error(data.Message);
165                    }
166                });
167            }
168        });
169    };
170    const initFolderClick = function (objs) {
171        $(objs).click(el => {
172            switchFolder(el.target);
173        });
174    };
175    const switchFolder = function (el) {
176        $(".folder-edit-wrapper").removeClass("selected");
177        $(".folder-list .folder-selected").removeClass("folder-selected");
178        $(".fa.fa-folder-open,.far.fa-folder-open").addClass("fa-folder").removeClass("fa-folder-open");
179        $(el).addClass("folder-selected");
180        var icon = $(el).parents(".folder-edit-wrapper").first().addClass("selected").find("i.fa, i.far");
181        icon.removeClass("fa-folder").addClass("fa-folder-open");
182        FileBrowser.openFolder($(el).attr("path"));
183        selectMoveFolder();
184    };
185    const initNewFolder = function ($targetFolder, $selectedFolder) {
186        if (!$targetFolder.parent().hasClass("in")) {
187            $targetFolder.parent().addClass("in");
188            $targetFolder.parent().css("height", "");
189        }
190        $("input", $targetFolder).first().attr("folder", $selectedFolder.attr("path") + "/")
191            .keyup(e => {
192            if ((e.which ? e.which : e.keyCode) === 13) {
193                e.preventDefault();
194                $(e).focusout();
195            }
196        }).change(el => {
197            newFolder($(el.target));
198        }); //.setCaretAtEnd();
199        Site.setCaretAtEnd($("input", $targetFolder).first());
200    };
201    const initRenameFile = function () {
202        $("#btn-file-rename").off("click").click(() => {
203            $(".file-selected .file-name > textarea").focus();
204            Site.setCaretAtEnd($(".file-selected .file-name > textarea"));
205        });
206        $(".file-name > textarea")
207            .change(el => {
208            const textarea = $(el.target);
209            if (!textarea.data("confirmopen")) {
210                textarea.data("confirmopen", true);
211                var options = {
212                    message: Translation.Shared.ConfirmFileNameChange.replace("{0}", textarea.val().toString()),
213                    callback: (result) => {
214                        if (result) {
215                            renameFile(textarea);
216                        }
217                        else {
218                            textarea.val(textarea.next().html());
219                        }
220                        textarea.data("confirmopen", false);
221                    },
222                    lblCancel: "Nee",
223                    lblCancelClass: "btn-danger",
224                    lblConfirm: "Ja",
225                    lblConfirmClass: "btn-success"
226                };
227                Site.confirm(options);
228            }
229        }).keydown(e => {
230            if ((e.which ? e.which : e.keyCode) === 13) {
231                e.preventDefault();
232                e.stopPropagation();
233                $(e.target).change();
234            }
235        });
236    };
237    // Folder functies
238    FileBrowser.openFolder = function (path) {
239        stopImageCrop();
240        stopImageResize();
241        $(".folder-actions").show();
242        $(".file-actions").hide();
243        GbtSpinner.spinnerData.showSpinner(".files");
244        $.post("/FileBrowser/OpenFolder", {
245            path: encodeURI(path),
246            key: Site.fileBrowserKey,
247            mode: $("#btn-folder-view").attr("viewmode")
248        }, data => {
249            GbtSpinner.spinnerData.stopSpinner(".files");
250            $("#filebrowser-modal .files").html(data);
251            if (data) {
252                initFileEvents();
253                initRenameFile();
254            }
255        })
256            .fail(() => {
257            GbtSpinner.spinnerData.stopSpinner(".files");
258        });
259    };
260    const switchBewerkModus = function () {
261        stopImageCrop();
262        $(".folders").toggleClass("folder-edit");
263        if ($(".folders").hasClass("folder-edit")) {
264            //Bewerken
265            $("#btn-folder-create").hide();
266            $("#btn-folder-delete").show();
267            $(".folders input")
268                .removeAttr("readonly")
269                .change((el) => {
270                renameFolder($(el.target), $(el.target).attr("path"), $(el.target).val());
271            });
272        }
273        else {
274            //Normaal
275            $("#btn-folder-create").show();
276            $("#btn-folder-delete").hide();
277            $(".folders input").attr("readonly", "").off("change");
278        }
279    };
280    const switchViewMode = function () {
281        var mode = $("#btn-folder-view i[viewmode]:not([viewmode=" + $("#btn-folder-view").attr("viewmode") + "])");
282        $.post(Site.router.fileBrowser.switchViewMode(), {
283            mode: mode.attr("viewmode")
284        }, (data) => {
285            if (data) {
286                $("#btn-folder-view i[viewmode]").hide();
287                mode.show();
288                $("#btn-folder-view").attr("viewmode", mode.attr("viewmode"));
289                if (mode.attr("viewmode") === "1") {
290                    $(".file.file-list-item").removeClass("file-list-item").addClass("file-block");
291                }
292                else {
293                    $(".file.file-block").removeClass("file-block").addClass("file-list-item");
294                }
295            }
296        });
297    };
298    const switchNewFolderStatus = function () {
299        stopImageCrop();
300        if ($("#btn-folder-create").hasAttr("annuleer")) {
301            $(`#${Site.newFolderGuid}`).remove();
302            $(".new-folder", ".folder-list").parents("li.folder.folder-collapse").first().remove();
303            $("#btn-folder-create").removeAttr("annuleer").addClass("btn-default").removeClass("btn-danger");
304        }
305        else {
306            Site.newFolderGuid = Site.generateGuid();
307            const $selectedFolder = $(".folder-selected");
308            const $targetFolder = $selectedFolder.closest("li.folder").next().find("> ul.folder-list").prepend($("#folder-item-template").clone().attr("id", Site.newFolderGuid).html().replace(/\[new\]/g, Site.newFolderGuid));
309            initNewFolder($targetFolder, $selectedFolder);
310            $("#btn-folder-create").attr("annuleer", "").removeClass("btn-default").addClass("btn-danger");
311        }
312    };
313    const selectMoveFolder = function () {
314        $("#folders-move li.disabled").removeClass("disabled");
315        if ($(".folder-selected").length > 0) {
316            $(`#folders-move li[path='${$(".folder-selected").attr("path").replace("\\", "\\\\")}']`).addClass("disabled");
317        }
318    };
319    const newFolder = function ($input) {
320        if ($input.val()) {
321            $input.attr("path", $input.attr("folder") + $input.val());
322            $.post(Site.router.fileBrowser.createFolder(), {
323                path: encodeURI($input.attr("path")),
324                name: $input.val(),
325                key: Site.fileBrowserKey
326            }, data => {
327                if (data.Success) {
328                    $input.parents("li.folder.folder-collapse[new-folder]").first().removeAttr("new-folder");
329                    $input.attr("folder", $input.val());
330                    $input.off("change").off("keyup").attr("readonly", "").removeClass("new-folder");
331                    initFileEvents();
332                    initFolderClick($input);
333                    switchNewFolderStatus();
334                    getFolderMoveList();
335                    gbtNotify.success(data.Message);
336                }
337                else {
338                    gbtNotify.error(data.Message);
339                }
340            });
341        }
342        else {
343            $(this).closest("li").next().remove();
344            $(this).closest("li").remove();
345        }
346    };
347    const deleteFolder = function () {
348        if ($(".folder-selected").length === 1) {
349            const path = $(".folder-selected").attr("path");
350            $.post(Site.router.fileBrowser.deleteFolder(), {
351                path: encodeURI(path),
352                key: Site.fileBrowserKey
353            }, data => {
354                if (data.Success) {
355                    const parent = $(".folder-selected").closest("[class^='sub-folder-']");
356                    if (parent.find(".folder").length === 1) {
357                    }
358                    $(".folder-selected").closest("li.folder.folder-collapse").next().remove(); // Subfolders verwijderen
359                    $(".folder-selected").closest("li.folder.folder-collapse").remove(); // De geselecteerde folder verwijderen
360                    gbtNotify.success(data.Message);
361                    switchFolder($(".folder-main > span[path]"));
362                    switchBewerkModus();
363                }
364                else {
365                    gbtNotify.error(data.Message);
366                }
367            });
368        }
369    };
370    const renameFolder = function (obj, path, name) {
371        var self = this;
372        $.post(Site.router.fileBrowser.renameFolder(), {
373            path: encodeURI(path),
374            name: name,
375            key: Site.fileBrowserKey
376        }, function (data) {
377            if (data.Success) {
378                var orgPath = obj.attr("path").replace(/\\/g, "/").replace(/\/\//g, "/");
379                var newPath = data.Message.replace(/\\/g, "/").replace(/\/\//g, "/");
380                $(`[path^='${orgPath}']`).each(function (index, el) {
381                    $(el).attr("path", $(el).attr("path").replace(orgPath, newPath));
382                });
383                var pathSegments = orgPath.split("/");
384                pathSegments[pathSegments.length - 1] = name;
385                var newObj = pathSegments.join('/');
386                obj.val(newObj.split("/").slice(-1)[0]);
387                obj.attr("path", newObj);
388                gbtNotify.success("Map is hernoemd");
389                self.getFolderMoveList();
390            }
391            else {
392                gbtNotify.error(data.Message);
393            }
394        });
395    };
396    // File functies
397    const deleteFile = function () {
398        if ($(".file.file-selected").length > 0) {
399            const path = $(".file.file-selected [path]").attr("path");
400            $.post(Site.router.fileBrowser.deleteFile(), {
401                path: encodeURI(path),
402                key: Site.fileBrowserKey
403            }, data => {
404                if (data.Success) {
405                    $(".file.file-selected").remove();
406                    gbtNotify.success(data.Message);
407                }
408                else {
409                    gbtNotify.error(data.Message);
410                }
411            });
412        }
413    };
414    const getFolderMoveList = function () {
415        $.post(Site.router.fileBrowser.getMoveFolders(), {
416            key: Site.fileBrowserKey
417        }, data => {
418            $("#folders-move").replaceWith(data);
419            initFolderMove();
420        });
421    };
422    const renameFile = function ($obj) {
423        var path = $obj.closest("div.file").find(".extension").attr("path") ||
424            $obj.closest("div.file").find("img.preview").attr("path");
425        $.post(Site.router.fileBrowser.renameFile(), {
426            filepath: encodeURI(path),
427            name: $obj.val()
428        }, data => {
429            if (data.Success) {
430                $obj.next().html(data.Message);
431                $obj.val(data.Message);
432                const img = $obj.parent().prev();
433                const pathArray = img.attr("path").split("\\");
434                if (img.is("img")) {
435                    img.attr("src", img.attr("src").replace(pathArray[pathArray.length - 1], data.Message));
436                }
437                img.attr("path", img.attr("path").replace(pathArray[pathArray.length - 1], data.Message));
438                gbtNotify.success("Bestand is hernoemd");
439            }
440            else {
441                $obj.val($obj.next().html());
442                gbtNotify.error(data.Message);
443            }
444        });
445    };
446    const uploadFiles = function (files) {
447        var classref = this;
448        var path = $(".folders .folder .folder-selected[path]").attr("path");
449        if (path) {
450            var fileCount = 0;
451            var data = new FormData();
452            var acceptedFileTypes = $("#uploader").attr("accept").replace(/\./g, "").split(",");
453            // Controle of er geen lege waarde is als AcceptedFileTypes
454            if (acceptedFileTypes.length === 1 && acceptedFileTypes[0] === "") {
455                acceptedFileTypes.splice(0, 1);
456            }
457            $(files).each((ind, el) => {
458                var nameSplited = files[ind].name.split(".");
459                if ($.inArray(nameSplited[nameSplited.length - 1].toLowerCase(), acceptedFileTypes) > -1 || acceptedFileTypes.length === 0) {
460                    data.append(`file${fileCount++}`, el);
461                }
462            });
463            if (fileCount > 0) {
464                data.append("key", Site.fileBrowserKey);
465                data.append("path", path);
466                $.ajax({
467                    url: Site.router.fileBrowser.uploadFiles(),
468                    type: "POST",
469                    data: data,
470                    dataType: "JSON",
471                    contentType: false,
472                    processData: false,
473                    success(result) {
474                        if (result.Success) {
475                            gbtNotify.success(Translation.Document.UploadSuccess, "", { target: "#filebrowser-modal" });
476                        }
477                        else {
478                            gbtNotify.error(result.Message, "", { target: "#filebrowser-modal" });
479                        }
480                        classref.openFolder(path);
481                    },
482                    error() {
483                        gbtNotify.error(Translation.Document.UploadFailed, "", { target: "#filebrowser-modal" });
484                    }
485                });
486            }
487            else {
488                gbtNotify.warning(Translation.Document.OneOrMoreExtentionTypesFail.replace("{0}", acceptedFileTypes.join(",")), "", { target: "#filebrowser-modal" });
489            }
490        }
491        else {
492            gbtNotify.warning("Selecteer eerst een map", "", { target: "#filebrowser-modal" });
493        }
494    };
495    //CROPPER FUNCTIONS
496    const initCropperButtons = function () {
497        $("#btn-crop-save").off("click").click(() => {
498            uploadCroppedImage();
499        });
500        $("#btn-crop-cancel").off("click").click(() => {
501            stopImageCrop();
502        });
503        $("#btn-crop-rotate-left").off("click").click(() => {
504            this.cropper.rotate(-45);
505        });
506        $("#btn-crop-rotate-right").off("click").click(() => {
507            this.cropper.rotate(45);
508        });
509        $("#btn-crop-flip-vertical").off("click").click((el) => {
510            $(el.target).data("flip", ($(el.target).data("flip") && $(el.target).data("flip") === -1) ? 1 : -1);
511            this.cropper.scale(1, $(el.target).data("flip"));
512        });
513        $("#btn-crop-flip-horizontal").off("click").click((el) => {
514            $(el.target).data("flip", ($(el.target).data("flip") && $(el.target).data("flip") === -1) ? 1 : -1);
515            this.cropper.scale($(el.target).data("flip"), 1);
516        });
517    };
518    const startImageCrop = function () {
519        const $selectedFile = $(".file.file-selected");
520        if ($selectedFile) {
521            $(".file-actions, .folder-actions").hide();
522            $(".cropper-actions").show();
523            $(".resize-actions").hide();
524            $(".files").addClass("hide");
525            $(".file-resize").addClass("hide");
526            $(".file-crop").addClass("show");
527            $("#uploader").attr("disabled", "disabled");
528            const img = $(".file-crop #img-cropper").attr("src", $(".file-selected").find("img").attr("src"))[0];
529            // ReSharper disable once TsResolvedFromInaccessibleModule
530            this.cropper = new Cropper(img, {
531                container: "#file-cropper-preview"
532            });
533        }
534    };
535    const stopImageCrop = function () {
536        if ($(".cropper-actions:visible").length > 0) {
537            if (this.cropper) {
538                this.cropper.destroy();
539            }
540            if ($(".files .file.selected")) {
541                $(".file-actions").show();
542            }
543            $(".cropper-actions").hide();
544            $(".resize-actions").hide();
545            $(".folder-actions").show();
546            $(".file-crop").removeClass("show");
547            $(".files").removeClass("hide");
548            $(".file-crop img").attr("src", "");
549            $("#uploader").removeAttr("disabled");
550        }
551    };
552    const uploadCroppedImage = function () {
553        if (this.cropper) {
554            $.post(Site.router.fileBrowser.saveCroppedImage(), {
555                path: $(".file-selected [path]").attr("path"),
556                base64: this.cropper.getCroppedCanvas().toDataURL()
557            }, data => {
558                if (data.Success) {
559                    gbtNotify.success(data.Message);
560                    this.cropper.destroy();
561                    $(".file-crop").removeClass("show");
562                    $(".files").removeClass("hide");
563                    FileBrowser.openFolder($(".folder-selected").attr("path"));
564                }
565                else {
566                    gbtNotify.error(data.Message);
567                }
568            });
569        }
570    };
571    //Resizer FUNCTIONS
572    const initResizeButtons = function () {
573        $("#btn-resize-save").off("click").click(() => {
574            saveResizedImage();
575        });
576        $("#btn-resize-cancel").off("click").click(() => {
577            stopImageResize();
578        });
579    };
580    const startImageResize = function () {
581        const $selectedFile = $(".file.file-selected");
582        if ($selectedFile) {
583            const image = $(".file.file-selected img")[0];
584            $("#filebrowser-resize-x").val(image.naturalWidth).attr("original-x", image.naturalWidth);
585            $("#filebrowser-resize-y").val(image.naturalHeight).attr("original-y", image.naturalHeight);
586            $("#filebrowser-resize-ratio").prop("checked", "checked");
587            $(".file-actions, .folder-actions").hide();
588            $(".cropper-actions").hide();
589            $(".resize-actions").show();
590            $(".files").addClass("hide");
591            $(".file-crop").addClass("hide");
592            $(".file-resize").addClass("show");
593            $("#uploader").attr("disabled", "disabled");
594            initImageResizeEvents();
595            $("#img-resizer").attr("width", "auto").attr("height", "auto").attr("src", $(".file-selected").find("img").attr("src"));
596        }
597    };
598    const stopImageResize = function () {
599        if ($(".file-resize:visible").length > 0) {
600            if ($(".files .file.selected")) {
601                $(".file-actions").show();
602            }
603            $(".cropper-actions").hide();
604            $(".resize-actions").hide();
605            $(".file-resize").removeClass("show");
606            $(".files").removeClass("hide");
607            $(".folder-actions").show();
608            $(".file-crop img").attr("src", "");
609            $(".file-resize img").attr("src", "");
610            $("#uploader").removeAttr("disabled");
611        }
612    };
613    const initImageResizeEvents = function () {
614        $("#filebrowser-resize-ratio").off("change").change((element) => {
615            if ($(element).is(":checked")) {
616                const x = parseInt($("#filebrowser-resize-x").attr("original-x"));
617                const y = parseInt($("#filebrowser-resize-y").attr("original-y"));
618                $("#filebrowser-resize-x").val(x);
619                $("#filebrowser-resize-y").val(y);
620            }
621        });
622        $("#filebrowser-resize-x,#filebrowser-resize-y").off("change").change((element) => {
623            var screenWidth = $(".file-resizer").width();
624            var screenHeight = $(".file-resizer").height();
625            if ($("#filebrowser-resize-ratio").is(":checked")) {
626                const x = parseInt($("#filebrowser-resize-x").attr("original-x"));
627                const y = parseInt($("#filebrowser-resize-y").attr("original-y"));
628                let ratio = y / x;
629                if ($(element.target).attr("id") === "filebrowser-resize-x") {
630                    const newY = parseInt(($("#filebrowser-resize-x").val().toString() * ratio).toFixed(0));
631                    $("#filebrowser-resize-y").val(newY);
632                }
633                else {
634                    const newX = parseInt(($("#filebrowser-resize-y").val().toString() * (1 / ratio)).toFixed(0));
635                    $("#filebrowser-resize-x").val(newX);
636                }
637                const width = parseInt($("#filebrowser-resize-x").val());
638                const height = parseInt($("#filebrowser-resize-y").val());
639                if (width > screenWidth || height > screenHeight) { //Set max viewport boundaries
640                    if (x == y) {
641                        var tempWidth = screenWidth > screenHeight ? screenHeight : screenWidth;
642                        $("#img-resizer").attr("width", tempWidth + "px");
643                        $("#img-resizer").attr("height", tempWidth + "px");
644                    }
645                    else if (x > y) {
646                        $("#img-resizer").attr("width", screenWidth + "px");
647                        $("#img-resizer").attr("height", screenHeight * (y / x) + "px");
648                    }
649                    else {
650                        $("#img-resizer").attr("width", screenWidth * (1 / (y / x)) + "px");
651                        $("#img-resizer").attr("height", screenHeight + "px");
652                    }
653                }
654                else { // Set actual boundaries
655                    $("#img-resizer").attr("width", width + "px");
656                    $("#img-resizer").attr("height", height + "px");
657                }
658            }
659            else {
660                const x = parseInt($("#filebrowser-resize-x").val());
661                const y = parseInt($("#filebrowser-resize-y").val());
662                if (x > screenWidth || y > screenHeight) { //Set max viewport boundaries
663                    if (x == y) {
664                        var tempWidth = screenWidth > screenHeight ? screenHeight : screenWidth;
665                        $("#img-resizer").attr("width", tempWidth + "px");
666                        $("#img-resizer").attr("height", tempWidth + "px");
667                    }
668                    else if (x > y) {
669                        $("#img-resizer").attr("width", screenWidth + "px");
670                        $("#img-resizer").attr("height", screenWidth * (y / x) + "px");
671                    }
672                    else {
673                        $("#img-resizer").attr("width", screenHeight * (x / y) + "px");
674                        $("#img-resizer").attr("height", screenHeight + "px");
675                    }
676                }
677                else { // Set actual boundaries
678                    $("#img-resizer").attr("width", x + "px");
679                    $("#img-resizer").attr("height", y + "px");
680                }
681            }
682        });
683    };
684    const saveResizedImage = function () {
685        var options = {
686            message: Translation.Shared.ConfirmSaveMeasurements,
687            callback: (result) => {
688                if (result) {
689                    const x = $("#filebrowser-resize-x").val();
690                    const y = $("#filebrowser-resize-y").val();
691                    const copy = $("#filebrowser-resize-copy").is(":checked");
692                    $.post(Site.router.fileBrowser.resizeImage(), {
693                        path: $(".file-selected [path]").attr("path"),
694                        x: x,
695                        y: y,
696                        copy: copy
697                    }, (data) => {
698                        if (data.Success) {
699                            gbtNotify.success(data.Message);
700                            FileBrowser.openFolder($(".folder-selected").attr("path"));
701                        }
702                        else {
703                            gbtNotify.error(data.Message);
704                        }
705                    });
706                }
707            }
708        };
709        Site.confirm(options);
710    };
711    const returnSelectedFile = function (fileUrl) {
712        var isSecure = $(".file-browser #file-browser-is-secure").val().toLowerCase() === "true";
713        fileUrl = fileUrl.replace(/.*\/\/[^\/]*/, '');
714        if (isSecure) {
715            fileUrl = `/FileBrowser/OpenSecure?path=${fileUrl}`;
716        }
717        else {
718            fileUrl = fileUrl.replace(/\\/g, "/");
719        }
720        const theField = $(`#${Site.fileBrowserTinyMceField}`);
721        if (theField.length > 0) {
722            theField.val((`${fileUrl}`).replace("../", "").replace("//", "").replace("\\", "/"));
723            $("#filebrowser-modal").modal("hide");
724            const selectedEvent = new CustomEvent("fileSelected");
725            window.dispatchEvent(selectedEvent);
726            if (Site.filebrowserSelectedCallback != null) {
727                Site.filebrowserSelectedCallback(theField.val());
728                Site.filebrowserSelectedCallback = null;
729            }
730            return true;
731        }
732        if (Site.fileBrowserTinyMceField == "TinyMCE6") {
733            if (Site.filebrowserSelectedCallback != null) {
734                Site.filebrowserSelectedCallback(fileUrl);
735                Site.filebrowserSelectedCallback = null;
736            }
737            Site.fileBrowserTinyMceField = null;
738            $("#filebrowser-modal").modal("hide");
739            return true;
740        }
741        return false;
742    };
743})(FileBrowser || (FileBrowser = {}));
744// ReSharper restore CssBrowserCompatibility

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.