Repository URL to install this package:
/**
* @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=