Is it possible to minimize the filepicker modal while it's uploading?

Yes, this is possible. With the v2 picker this is done by using hide:true as part of your picker options.

This option hides the modal immediately after a file is selected in single file mode, or once the user clicks the 'Upload' button in multiple mode. The upload will continue in the background and progress callbacks will continue to be fired as the upload happens. By default this is set to false. This only works when the picker is in modal mode (container: 'modal').

For the v3 library, the picker can be hidden by setting hideWhenUploading: true. The picker will not be hidden until after the user clicks upload. By using hideWhenUploading: true along with startUploadingWhenMaxFilesReached: true you can hide the picker immediately after a file is selected if the max file limit is set to 1 (it is by default).

Choose several files below to see an example of how the Hide function works. When the uploads are the complete the text will say Ready!

    And here is the code that makes this work

    <script>
    $('#fpButton').click(function(){
         $("#results").html('');
        filepicker.setKey("Your_API_Key");
        filepicker.pickMultiple(
            {
                services: ['COMPUTER', 'FACEBOOK', 'BOX', 'GOOGLE_DRIVE', 'DROPBOX', 'IMAGE_SEARCH'],
                // Hide the modal and handle progress in a custom way
                hide:true,
                // With backgroundUpload:false set, the upload will start only once the upload button is clicked
                backgroundUpload:false
            },
          function(Blobs){
              Blobs.forEach(addResults);
          },
          function(error){
              console.error(JSON.stringify(error));
          },
          onItemProgress
        );
     });
    
    function onItemProgress(data){
        var selector = $('#element_'+data.id);
        if (!selector.length){
            $("#results")
            .append(
                '<li id="element_'+ data.id+ '">'+
                data.filename +
                '<div id="progress_'+data.id+'"></li>'
            );
        }
        if (data.progress === 100){
            addResults(data);
        }
    }
    
    function addResults(data){
        var selector = $('#element_'+data.id);
        selector.html('');
        selector.append(
            '<a target="_blank" href="'+
            data.url + '">'+ data.filename+'</a> Ready!'
        );
    }
    </script>
              

      Here is the code that makes this work

      <script>
      $('#fpButtonv3').click(function() {
        $("#resultsv3").html('');
        client.pick({
          hideWhenUploading: true,
          uploadInBackground: false,
          onFileUploadProgress: function(file, progressEvent) {
            var selector = $('#element_' + file.filename);
            if (!selector.length) {
      
            }
            if (progressEvent.totalPercent === 100) {
              var selector = $('#element_' + file.filename);
              selector.html('');
              $("#resultsv3")
                .append(
                  '<li id="element_' + file.filename + '">' +
                  file.filename + ' ' + progressEvent.totalPercent + '%' +  '</li>'
                );
            }
            console.log(JSON.stringify(progressEvent.totalPercent))
          }
        }).then(function(result) {
          console.log(JSON.stringify(result.filesUploaded[0]))
          var selector = $('#element_' + result.filesUploaded[0].filename);
          selector.html('');
          $("#resultsv3")
            .append(
              '<a target="_blank" href="' +
              result.filesUploaded[0].url + '">' + result.filesUploaded[0].filename + '</a> Ready!'
            );
        })
      });
      </script>