PageSourceSearch

https://www.holbrookfd.org/apps/scripts/fileuploader/js/jquery.fileupload-video.js

js holbrookfd.org collected 2026-10-05 19:19:48 UTC 2,973 bytes, 101 lines download raw bytes

vendor: 2,973 bytes, lines 1-101
1/*
2 * jQuery File Upload Video Preview Plugin
3 * https://github.com/blueimp/jQuery-File-Upload
4 *
5 * Copyright 2013, Sebastian Tschan
6 * https://blueimp.net
7 *
8 * Licensed under the MIT license:
9 * https://opensource.org/licenses/MIT
10 */
11
12/* global define, require */
13
14(function (factory) {
15  'use strict';
16  if (typeof define === 'function' && define.amd) {
17    // Register as an anonymous AMD module:
18    define(['jquery', 'load-image', './jquery.fileupload-process'], factory);
19  } else if (typeof exports === 'object') {
20    // Node/CommonJS:
21    factory(
22      require('jquery'),
23      require('blueimp-load-image/js/load-image'),
24      require('./jquery.fileupload-process')
25    );
26  } else {
27    // Browser globals:
28    factory(window.jQuery, window.loadImage);
29  }
30})(function ($, loadImage) {
31  'use strict';
32
33  // Prepend to the default processQueue:
34  $.blueimp.fileupload.prototype.options.processQueue.unshift(
35    {
36      action: 'loadVideo',
37      // Use the action as prefix for the "@" options:
38      prefix: true,
39      fileTypes: '@',
40      maxFileSize: '@',
41      disabled: '@disableVideoPreview'
42    },
43    {
44      action: 'setVideo',
45      name: '@videoPreviewName',
46      disabled: '@disableVideoPreview'
47    }
48  );
49
50  // The File Upload Video Preview plugin extends the fileupload widget
51  // with video preview functionality:
52  $.widget('blueimp.fileupload', $.blueimp.fileupload, {
53    options: {
54      // The regular expression for the types of video files to load,
55      // matched against the file type:
56      loadVideoFileTypes: /^video\/.*$/
57    },
58
59    _videoElement: document.createElement('video'),
60
61    processActions: {
62      // Loads the video file given via data.files and data.index
63      // as video element if the browser supports playing it.
64      // Accepts the options fileTypes (regular expression)
65      // and maxFileSize (integer) to limit the files to load:
66      loadVideo: function (data, options) {
67        if (options.disabled) {
68          return data;
69        }
70        var file = data.files[data.index],
71          url,
72          video;
73        if (
74          this._videoElement.canPlayType &&
75          this._videoElement.canPlayType(file.type) &&
76          ($.type(options.maxFileSize) !== 'number' ||
77            file.size <= options.maxFileSize) &&
78          (!options.fileTypes || options.fileTypes.test(file.type))
79        ) {
80          url = loadImage.createObjectURL(file);
81          if (url) {
82            video = this._videoElement.cloneNode(false);
83            video.src = url;
84            video.controls = true;
85            data.video = video;
86            return data;
87          }
88        }
89        return data;
90      },
91
92      // Sets the video element as a property of the file object:
93      setVideo: function (data, options) {
94        if (data.video && !options.disabled) {
95          data.files[data.index][options.name || 'preview'] = data.video;
96        }
97        return data;
98      }
99    }
100  });
101});

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.