Skip to content
Snippets Groups Projects
Select Git revision
  • 5e3e9d4fe765f69b6787d3a92034a853d54eca21
  • 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 15.43 KiB
    import {i18n} from './i18n';
    import {css, html} from 'lit-element';
    import {ScopedElementsMixin} from '@open-wc/scoped-elements';
    import DBPLitElement from '@dbp-toolkit/common/dbp-lit-element';
    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 "./dbp-nextcloud-file-picker";
    import {classMap} from 'lit-html/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";
    
    
    /**
     * FileSink web component
     */
    export class FileSink extends ScopedElementsMixin(DBPLitElement) {
        constructor() {
            super();
            this.context = '';
            this.lang = 'de';
            this.nextcloudAuthUrl = '';
            this.nextcloudWebDavUrl = '';
            this.nextcloudName ='Nextcloud';
            this.nextcloudPath = '';
            this.nextcloudFileURL = '';
            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'},
                buttonLabel: {type: String, attribute: 'button-label'},
                isDialogOpen: {type: Boolean, attribute: false},
                activeTarget: {type: String, attribute: 'active-target'},