Skip to content
Snippets Groups Projects
Select Git revision
  • 625d6d95dd8c28677b84e914fc784895686bacf8
  • main default protected
  • renovate/lock-file-maintenance
  • demo protected
  • person-select-custom
  • dbp-translation-component
  • icon-set-mapping
  • port-i18next-parser
  • remove-sentry
  • favorites-and-recent-files
  • revert-6c632dc6
  • lit2
  • advertisement
  • wc-part
  • automagic
  • publish
  • wip-cleanup
  • demo-file-handling
18 results

file-sink.js

Blame
  • file-sink.js 21.28 KiB
    import {createInstance} from './i18n';
    import {css, html} from 'lit';
    import {ScopedElementsMixin} from '@open-wc/scoped-elements';
    import * as commonUtils from '@dbp-toolkit/common/utils';
    import {Icon, MiniSpinner} from '@dbp-toolkit/common';
    import * as commonStyles from '@dbp-toolkit/common/styles';
    import {NextcloudFilePicker} from './nextcloud-file-picker';
    import {classMap} from 'lit/directives/class-map.js';
    import FileSaver from 'file-saver';
    import MicroModal from './micromodal.es';
    import * as fileHandlingStyles from './styles';
    import {send} from '@dbp-toolkit/common/notification';
    import {Clipboard} from '@dbp-toolkit/file-handling/src/clipboard';
    import DbpFileHandlingLitElement from './dbp-file-handling-lit-element';
    
    /**
     * FileSink web component
     */
    export class FileSink extends ScopedElementsMixin(DbpFileHandlingLitElement) {
        constructor() {
            super();
            this.context = '';
            this._i18n = createInstance();
            this.lang = this._i18n.language;
            this.nextcloudAuthUrl = '';
            this.nextcloudWebDavUrl = '';
            this.nextcloudName = 'Nextcloud';
            this.nextcloudPath = '';
            this.nextcloudFileURL = '';
            this.nextcloudStoreSession = false;
            this.buttonLabel = '';
            this.filename = 'files.zip';
            this.files = [];
            this.activeTarget = 'local';
            this.isDialogOpen = false;
            this.enabledTargets = 'local';
            this.firstOpen = true;
            this.fullsizeModal = false;
            this.nextcloudAuthInfo = '';
    
            this.initialFileHandlingState = {target: '', path: ''};
        }
    
        static get scopedElements() {
            return {
                'dbp-icon': Icon,
                'dbp-mini-spinner': MiniSpinner,
                'dbp-nextcloud-file-picker': NextcloudFilePicker,
                'dbp-clipboard': Clipboard,
            };
        }
    
        /**
         * See: https://lit-element.polymer-project.org/guide/properties#initialize
         */
        static get properties() {
            return {
                ...super.properties,
                context: {type: String, attribute: 'context'},
                lang: {type: String},
                filename: {type: String},
                files: {type: Array, attribute: false},
                enabledTargets: {type: String, attribute: 'enabled-targets'},
                nextcloudAuthUrl: {type: String, attribute: 'nextcloud-auth-url'},
                nextcloudWebDavUrl: {type: String, attribute: 'nextcloud-web-dav-url'},
                nextcloudName: {type: String, attribute: 'nextcloud-name'},
                nextcloudFileURL: {type: String, attribute: 'nextcloud-file-url'},
                nextcloudAuthInfo: {type: String, attribute: 'nextcloud-auth-info'},
                nextcloudStoreSession: {type: Boolean, attribute: 'nextcloud-store-session'},
                buttonLabel: {type: String, attribute: 'button-label'},