Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

vipera-npm-registry / motif-web-admin-core   js

Repository URL to install this package:

Version: 0.3.1 

/ esm5 / lib / components / UI / wc-upload-panel-component / wc-upload-panel-component.js

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { WCFileDropPanelComponent } from './wc-file-drop-panel-component';
import { Component, ElementRef, Renderer2, ViewChild, EventEmitter, Output, Input } from '@angular/core';
import { WCSlidePanelComponent } from 'web-console-ui-kit';
import { NGXLogger } from 'ngx-logger';
import { WCSubscriptionHandler } from '../../Commons/wc-subscription-handler';
/** @type {?} */
var LOG_TAG = '[WCUploadPanelComponent]';
/**
 * @record
 */
export function WCUploadPanelEvent() { }
if (false) {
    /** @type {?} */
    WCUploadPanelEvent.prototype.file;
    /** @type {?} */
    WCUploadPanelEvent.prototype.fileName;
}
var WCUploadPanelComponent = /** @class */ (function () {
    function WCUploadPanelComponent(renderer2, element, logger) {
        this.renderer2 = renderer2;
        this.element = element;
        this.logger = logger;
        this._subHandler = new WCSubscriptionHandler();
        this.confirmationTitle = "Do Upload?";
        this.close = new EventEmitter();
        this.open = new EventEmitter();
        this.upload = new EventEmitter();
        this.uploadError = new EventEmitter();
    }
    /**
     * @return {?}
     */
    WCUploadPanelComponent.prototype.ngOnInit = /**
     * @return {?}
     */
    function () {
    };
    Object.defineProperty(WCUploadPanelComponent.prototype, "isOpen", {
        get: /**
         * @return {?}
         */
        function () {
            return this._uploadSlideDownPanel.isOpen;
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @return {?}
     */
    WCUploadPanelComponent.prototype.toggle = /**
     * @return {?}
     */
    function () {
        this._uploadSlideDownPanel.toggle();
    };
    /**
     *
     * @param show Show/Hide the new Slide down panel
     */
    /**
     *
     * @param {?} show Show/Hide the new Slide down panel
     * @return {?}
     */
    WCUploadPanelComponent.prototype.show = /**
     *
     * @param {?} show Show/Hide the new Slide down panel
     * @return {?}
     */
    function (show) {
        this._uploadSlideDownPanel.show(show);
    };
    /**
     * @return {?}
     */
    WCUploadPanelComponent.prototype.onSlideEditorClose = /**
     * @return {?}
     */
    function () {
        this.logger.trace(LOG_TAG, 'onSlideEditorClose');
        if (this.fileDrop.file) {
            this.fileDrop.reset();
        }
    };
    /**
     * @return {?}
     */
    WCUploadPanelComponent.prototype.onBundleUploadCancel = /**
     * @return {?}
     */
    function () {
        this.logger.debug(LOG_TAG, 'onBundleUploadCancel');
        this._uploadSlideDownPanel.show(false);
    };
    /**
     * @return {?}
     */
    WCUploadPanelComponent.prototype.onBundleUploadConfirm = /**
     * @return {?}
     */
    function () {
        this.logger.debug(LOG_TAG, 'onBundleUploadConfirm');
        if (this.fileDrop.file) {
            this.doUploadFile(this.fileDrop.file);
            this._uploadSlideDownPanel.show(false);
            this.fileDrop.reset();
        }
    };
    /**
     * @private
     * @param {?} file
     * @return {?}
     */
    WCUploadPanelComponent.prototype.doUploadFile = /**
     * @private
     * @param {?} file
     * @return {?}
     */
    function (file) {
        var _this = this;
        this.logger.debug(LOG_TAG, 'doUploadNewBundle : ', file);
        /** @type {?} */
        var reader = new FileReader();
        reader.onloadend = (/**
         * @param {?} data
         * @return {?}
         */
        function (data) {
            _this.uploadAssetBundle((/** @type {?} */ (reader.result)), file.name);
        });
        reader.onerror = (/**
         * @param {?} error
         * @return {?}
         */
        function (error) {
            _this.logger.error(LOG_TAG, 'doUploadNewBundle error: ', error);
            _this.uploadError.emit(error);
        });
        reader.readAsArrayBuffer(file);
    };
    /**
     * @private
     * @param {?} blob
     * @param {?} fileName
     * @return {?}
     */
    WCUploadPanelComponent.prototype.uploadAssetBundle = /**
     * @private
     * @param {?} blob
     * @param {?} fileName
     * @return {?}
     */
    function (blob, fileName) {
        this.logger.debug(LOG_TAG, 'uploadAssetBundle : ', blob);
        /** @type {?} */
        var file = new File([blob], fileName);
        this.upload.emit({ file: file, fileName: fileName });
    };
    WCUploadPanelComponent.decorators = [
        { type: Component, args: [{
                    selector: 'wc-upload-panel',
                    template: "<wc-slide-panel #uploadSlideDownPanel (close)=\"onSlideEditorClose()\">\n    \n    <div class=\"zzzz-container\" style=\"display: flex;flex-direction: column;\">\n\n        <div style=\"display: flex;\">\n            <div class=\"wc-slide-down-editor-pane\" style=\"display:flex;height: 45px;\">\n                <div style=\"width:350px;height: 100%;\">\n                        <wc-file-drop-panel #fileDrop></wc-file-drop-panel>\n                </div>\n            </div>\n        \n            <div class=\"cmd\" style=\"align-items: center;\">\n                <label style=\"padding-bottom: 0px;padding-left: 10px;padding-right: 10px;\">{{confirmationTitle}}</label>\n                <a (click)=\"onBundleUploadConfirm()\" style=\"margin-right: 3px;\">\n                    <i class=\"ok icon wa-ico-ok confirmation-icon\" data-id=\"ok\"></i>\n                </a>\n                <a (click)=\"onBundleUploadCancel()\" data-slideup=\"#user-add\">\n                    <i class=\"ko icon wa-ico-ko confirmation-icon\" data-id=\"ko\"></i>\n                </a>\n            </div>\n        </div>\n\n        <div>\n            <ng-content>\n            </ng-content>\n        </div>\n        \n    </div>\n\n</wc-slide-panel>",
                    styles: [""]
                }] }
    ];
    /** @nocollapse */
    WCUploadPanelComponent.ctorParameters = function () { return [
        { type: Renderer2 },
        { type: ElementRef },
        { type: NGXLogger }
    ]; };
    WCUploadPanelComponent.propDecorators = {
        confirmationTitle: [{ type: Input }],
        fileDrop: [{ type: ViewChild, args: ['fileDrop',] }],
        _uploadSlideDownPanel: [{ type: ViewChild, args: ['uploadSlideDownPanel',] }],
        close: [{ type: Output }],
        open: [{ type: Output }],
        upload: [{ type: Output }],
        uploadError: [{ type: Output }]
    };
    return WCUploadPanelComponent;
}());
export { WCUploadPanelComponent };
if (false) {
    /**
     * @type {?}
     * @private
     */
    WCUploadPanelComponent.prototype._subHandler;
    /** @type {?} */
    WCUploadPanelComponent.prototype.confirmationTitle;
    /** @type {?} */
    WCUploadPanelComponent.prototype.fileDrop;
    /** @type {?} */
    WCUploadPanelComponent.prototype._uploadSlideDownPanel;
    /** @type {?} */
    WCUploadPanelComponent.prototype.close;
    /** @type {?} */
    WCUploadPanelComponent.prototype.open;
    /** @type {?} */
    WCUploadPanelComponent.prototype.upload;
    /** @type {?} */
    WCUploadPanelComponent.prototype.uploadError;
    /**
     * @type {?}
     * @private
     */
    WCUploadPanelComponent.prototype.renderer2;
    /**
     * @type {?}
     * @private
     */
    WCUploadPanelComponent.prototype.element;
    /**
     * @type {?}
     * @private
     */
    WCUploadPanelComponent.prototype.logger;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2MtdXBsb2FkLXBhbmVsLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vdGlmLXdlYi1hZG1pbi1jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvVUkvd2MtdXBsb2FkLXBhbmVsLWNvbXBvbmVudC93Yy11cGxvYWQtcGFuZWwtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0lBRXhFLE9BQU8sR0FBRywwQkFBMEI7Ozs7QUFFMUMsd0NBR0M7OztJQUZHLGtDQUFXOztJQUNYLHNDQUFpQjs7QUFHckI7SUFvQkcsZ0NBQW9CLFNBQW9CLEVBQy9CLE9BQW1CLEVBQ25CLE1BQWlCO1FBRk4sY0FBUyxHQUFULFNBQVMsQ0FBVztRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFmakIsZ0JBQVcsR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBR2xFLHNCQUFpQixHQUFHLFlBQVksQ0FBQztRQUs5QixVQUFLLEdBQXlDLElBQUksWUFBWSxFQUEwQixDQUFDO1FBQ3pGLFNBQUksR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDeEYsV0FBTSxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNsRixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBSXRD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O29CQUMzQiwydENBQStDOztpQkFFaEQ7Ozs7Z0JBaEJzQyxTQUFTO2dCQUFyQixVQUFVO2dCQUU3QixTQUFTOzs7b0NBbUJiLEtBQUs7MkJBR0wsU0FBUyxTQUFDLFVBQVU7d0NBQ3BCLFNBQVMsU0FBQyxzQkFBc0I7d0JBRWhDLE1BQU07dUJBQ04sTUFBTTt5QkFDTixNQUFNOzhCQUNOLE1BQU07O0lBaUVWLDZCQUFDO0NBQUEsQUFuRkYsSUFtRkU7U0E5RVksc0JBQXNCOzs7Ozs7SUFFaEMsNkNBQXlFOztJQUV6RSxtREFDd0M7O0lBRXhDLDBDQUEwRDs7SUFDMUQsdURBQWdGOztJQUVoRix1Q0FBbUc7O0lBQ25HLHNDQUFrRzs7SUFDbEcsd0NBQTRGOztJQUM1Riw2Q0FBbUU7Ozs7O0lBRXhELDJDQUE0Qjs7Ozs7SUFDdkMseUNBQTJCOzs7OztJQUMzQix3Q0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXQ0ZpbGVEcm9wUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3djLWZpbGUtZHJvcC1wYW5lbC1jb21wb25lbnQnO1xuIFxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsT3V0cHV0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV0NTbGlkZVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnd2ViLWNvbnNvbGUtdWkta2l0JztcbmltcG9ydCB7IE5HWExvZ2dlciB9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHsgV0NTdWJzY3JpcHRpb25IYW5kbGVyIH0gZnJvbSAnLi4vLi4vQ29tbW9ucy93Yy1zdWJzY3JpcHRpb24taGFuZGxlcic7XG5cbmNvbnN0IExPR19UQUcgPSAnW1dDVXBsb2FkUGFuZWxDb21wb25lbnRdJztcblxuZXhwb3J0IGludGVyZmFjZSBXQ1VwbG9hZFBhbmVsRXZlbnQge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgZmlsZU5hbWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogJ3djLXVwbG9hZC1wYW5lbCcsXG4gICB0ZW1wbGF0ZVVybDogJy4vd2MtdXBsb2FkLXBhbmVsLWNvbXBvbmVudC5odG1sJyxcbiAgIHN0eWxlVXJsczogWyAnLi93Yy11cGxvYWQtcGFuZWwtY29tcG9uZW50LnNjc3MnIF1cbiB9KVxuIGV4cG9ydCBjbGFzcyBXQ1VwbG9hZFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIHByaXZhdGUgX3N1YkhhbmRsZXI6IFdDU3Vic2NyaXB0aW9uSGFuZGxlciA9IG5ldyBXQ1N1YnNjcmlwdGlvbkhhbmRsZXIoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbmZpcm1hdGlvblRpdGxlID0gXCJEbyBVcGxvYWQ/XCI7XG5cbiAgICBAVmlld0NoaWxkKCdmaWxlRHJvcCcpIGZpbGVEcm9wOiBXQ0ZpbGVEcm9wUGFuZWxDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgndXBsb2FkU2xpZGVEb3duUGFuZWwnKSBfdXBsb2FkU2xpZGVEb3duUGFuZWw6IFdDU2xpZGVQYW5lbENvbXBvbmVudDtcblxuICAgIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPFdDVXBsb2FkUGFuZWxDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxXQ1VwbG9hZFBhbmVsQ29tcG9uZW50PigpO1xuICAgIEBPdXRwdXQoKSBvcGVuOiBFdmVudEVtaXR0ZXI8V0NVcGxvYWRQYW5lbENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFdDVXBsb2FkUGFuZWxDb21wb25lbnQ+KCk7XG4gICAgQE91dHB1dCgpIHVwbG9hZDogRXZlbnRFbWl0dGVyPFdDVXBsb2FkUGFuZWxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFdDVXBsb2FkUGFuZWxFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgdXBsb2FkRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIsIFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxvZ2dlcjogTkdYTG9nZ2VyKSB7IH1cbiBcbiAgIG5nT25Jbml0KCkge1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwbG9hZFNsaWRlRG93blBhbmVsLmlzT3BlbjtcbiAgIH1cblxuICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGxvYWRTbGlkZURvd25QYW5lbC50b2dnbGUoKVxuICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2hvdyBTaG93L0hpZGUgdGhlIG5ldyBTbGlkZSBkb3duIHBhbmVsXG4gICAgICovXG4gICAgcHVibGljIHNob3coc2hvdzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGxvYWRTbGlkZURvd25QYW5lbC5zaG93KHNob3cpO1xuICAgIH1cblxuICAgIG9uU2xpZGVFZGl0b3JDbG9zZSgpOnZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShMT0dfVEFHLCAnb25TbGlkZUVkaXRvckNsb3NlJyk7XG4gICAgICAgIGlmICh0aGlzLmZpbGVEcm9wLmZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZURyb3AucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQnVuZGxlVXBsb2FkQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHLCAnb25CdW5kbGVVcGxvYWRDYW5jZWwnKTtcbiAgICAgICAgdGhpcy5fdXBsb2FkU2xpZGVEb3duUGFuZWwuc2hvdyhmYWxzZSk7XG4gICAgfVxuXG4gICAgb25CdW5kbGVVcGxvYWRDb25maXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHLCAnb25CdW5kbGVVcGxvYWRDb25maXJtJyk7XG4gICAgICAgIGlmICh0aGlzLmZpbGVEcm9wLmZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZG9VcGxvYWRGaWxlKHRoaXMuZmlsZURyb3AuZmlsZSk7XG4gICAgICAgICAgICB0aGlzLl91cGxvYWRTbGlkZURvd25QYW5lbC5zaG93KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZURyb3AucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZG9VcGxvYWRGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoTE9HX1RBRywgJ2RvVXBsb2FkTmV3QnVuZGxlIDogJywgZmlsZSk7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRBc3NldEJ1bmRsZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyLCBmaWxlLm5hbWUpO1xuICAgICAgICB9O1xuICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoTE9HX1RBRywgJ2RvVXBsb2FkTmV3QnVuZGxlIGVycm9yOiAnLCBlcnJvcik7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICB9O1xuICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGxvYWRBc3NldEJ1bmRsZShibG9iOiBBcnJheUJ1ZmZlciwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhMT0dfVEFHLCAndXBsb2FkQXNzZXRCdW5kbGUgOiAnLCBibG9iKTtcbiAgICAgICAgY29uc3QgZmlsZSA9ICBuZXcgRmlsZShbYmxvYl0sIGZpbGVOYW1lKTtcbiAgICAgICAgdGhpcy51cGxvYWQuZW1pdCh7IGZpbGU6IGZpbGUsIGZpbGVOYW1lOiBmaWxlTmFtZX0pO1xuICAgIH1cblxuIH1cbiAiXX0=