Your IP : 3.139.88.204
/* eslint-disable */
this.BX = this.BX || {};
this.BX.UI = this.BX.UI || {};
(function (exports,ui_vue3,ui_uploader_core,main_core,main_core_events) {
'use strict';
/**
* @memberof BX.UI.Uploader
*/
var _uploader = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("uploader");
var _items = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("items");
var _uploaderError = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("uploaderError");
var _handleFileAdd = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleFileAdd");
var _handleFileRemove = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleFileRemove");
var _handleFileStateChange = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleFileStateChange");
var _handleFileComplete = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleFileComplete");
var _handleFileError = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleFileError");
var _handleError = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleError");
var _handleUploadStart = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleUploadStart");
var _handleUploadComplete = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleUploadComplete");
class VueUploaderAdapter extends main_core_events.EventEmitter {
constructor(uploaderOptions) {
super();
Object.defineProperty(this, _handleUploadComplete, {
value: _handleUploadComplete2
});
Object.defineProperty(this, _handleUploadStart, {
value: _handleUploadStart2
});
Object.defineProperty(this, _handleError, {
value: _handleError2
});
Object.defineProperty(this, _handleFileError, {
value: _handleFileError2
});
Object.defineProperty(this, _handleFileComplete, {
value: _handleFileComplete2
});
Object.defineProperty(this, _handleFileStateChange, {
value: _handleFileStateChange2
});
Object.defineProperty(this, _handleFileRemove, {
value: _handleFileRemove2
});
Object.defineProperty(this, _handleFileAdd, {
value: _handleFileAdd2
});
Object.defineProperty(this, _uploader, {
writable: true,
value: null
});
Object.defineProperty(this, _items, {
writable: true,
value: null
});
Object.defineProperty(this, _uploaderError, {
writable: true,
value: null
});
this.setEventNamespace('BX.UI.Uploader.Vue.Adapter');
babelHelpers.classPrivateFieldLooseBase(this, _items)[_items] = ui_vue3.ref([]);
babelHelpers.classPrivateFieldLooseBase(this, _uploaderError)[_uploaderError] = ui_vue3.shallowRef(null);
const options = main_core.Type.isPlainObject(uploaderOptions) ? Object.assign({}, uploaderOptions) : {};
const userEvents = options.events;
options.events = {
[ui_uploader_core.UploaderEvent.FILE_ADD_START]: babelHelpers.classPrivateFieldLooseBase(this, _handleFileAdd)[_handleFileAdd].bind(this),
[ui_uploader_core.UploaderEvent.FILE_REMOVE]: babelHelpers.classPrivateFieldLooseBase(this, _handleFileRemove)[_handleFileRemove].bind(this),
[ui_uploader_core.UploaderEvent.FILE_STATE_CHANGE]: babelHelpers.classPrivateFieldLooseBase(this, _handleFileStateChange)[_handleFileStateChange].bind(this),
[ui_uploader_core.UploaderEvent.FILE_COMPLETE]: babelHelpers.classPrivateFieldLooseBase(this, _handleFileComplete)[_handleFileComplete].bind(this),
[ui_uploader_core.UploaderEvent.FILE_ERROR]: babelHelpers.classPrivateFieldLooseBase(this, _handleFileError)[_handleFileError].bind(this),
[ui_uploader_core.UploaderEvent.ERROR]: babelHelpers.classPrivateFieldLooseBase(this, _handleError)[_handleError].bind(this),
[ui_uploader_core.UploaderEvent.UPLOAD_START]: babelHelpers.classPrivateFieldLooseBase(this, _handleUploadStart)[_handleUploadStart].bind(this),
[ui_uploader_core.UploaderEvent.UPLOAD_COMPLETE]: babelHelpers.classPrivateFieldLooseBase(this, _handleUploadComplete)[_handleUploadComplete].bind(this)
};
babelHelpers.classPrivateFieldLooseBase(this, _uploader)[_uploader] = new ui_uploader_core.Uploader(options);
babelHelpers.classPrivateFieldLooseBase(this, _uploader)[_uploader].subscribeFromOptions(userEvents);
}
getUploader() {
return babelHelpers.classPrivateFieldLooseBase(this, _uploader)[_uploader];
}
getReactiveItems() {
return babelHelpers.classPrivateFieldLooseBase(this, _items)[_items];
}
getUploaderError() {
return babelHelpers.classPrivateFieldLooseBase(this, _uploaderError)[_uploaderError];
}
getItems() {
return babelHelpers.classPrivateFieldLooseBase(this, _items)[_items].value;
}
getItem(id) {
return this.getItems().find(item => item.id === id) || null;
}
destroy() {
babelHelpers.classPrivateFieldLooseBase(this, _uploader)[_uploader].destroy();
babelHelpers.classPrivateFieldLooseBase(this, _uploader)[_uploader] = null;
}
}
function _handleFileAdd2(event) {
const file = event.getData().file;
const item = file.getState();
this.emit('Item:onBeforeAdd', {
item
});
this.getItems().push(item);
this.emit('Item:onAdd', {
item
});
}
function _handleFileRemove2(event) {
const file = event.getData().file;
const position = this.getItems().findIndex(fileInfo => {
return fileInfo.id === file.getId();
});
if (position >= 0) {
const result = this.getItems().splice(position, 1);
this.emit('Item:onRemove', {
item: result[0]
});
}
}
function _handleFileStateChange2(event) {
const file = event.getData().file;
const item = this.getItem(file.getId());
if (item) {
Object.assign(item, file.getState());
}
}
function _handleFileComplete2(event) {
const file = event.getData().file;
const item = file.getState();
this.emit('Item:onComplete', {
item
});
}
function _handleFileError2(event) {
const file = event.getData().file;
const error = event.getData().error;
const item = file.getState();
this.emit('Item:onError', {
item,
error
});
}
function _handleError2(event) {
const {
error
} = event.getData();
babelHelpers.classPrivateFieldLooseBase(this, _uploaderError)[_uploaderError].value = error.toJSON();
this.emit('Uploader:onError', new main_core_events.BaseEvent({
data: event.getData()
}));
}
function _handleUploadStart2(event) {
this.emit('Uploader:onUploadStart', new main_core_events.BaseEvent({
data: event.getData()
}));
}
function _handleUploadComplete2(event) {
this.emit('Uploader:onUploadComplete', new main_core_events.BaseEvent({
data: event.getData()
}));
}
/**
* @memberof BX.UI.Uploader
*/
var _vueAdapter = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("vueAdapter");
var _uploaderOptions = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("uploaderOptions");
var _widgetOptions = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("widgetOptions");
var _vueApp = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("vueApp");
var _rootComponent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("rootComponent");
class VueUploaderWidget extends main_core_events.EventEmitter {
constructor(uploaderOptions, widgetOptions = {}) {
super();
Object.defineProperty(this, _vueAdapter, {
writable: true,
value: null
});
Object.defineProperty(this, _uploaderOptions, {
writable: true,
value: null
});
Object.defineProperty(this, _widgetOptions, {
writable: true,
value: {}
});
Object.defineProperty(this, _vueApp, {
writable: true,
value: null
});
Object.defineProperty(this, _rootComponent, {
writable: true,
value: null
});
this.setEventNamespace('BX.UI.Uploader.Vue.Widget');
babelHelpers.classPrivateFieldLooseBase(this, _uploaderOptions)[_uploaderOptions] = uploaderOptions;
babelHelpers.classPrivateFieldLooseBase(this, _widgetOptions)[_widgetOptions] = widgetOptions;
}
defineComponent() {
return null;
}
getAdapter() {
if (babelHelpers.classPrivateFieldLooseBase(this, _vueAdapter)[_vueAdapter] === null) {
babelHelpers.classPrivateFieldLooseBase(this, _vueAdapter)[_vueAdapter] = new VueUploaderAdapter(babelHelpers.classPrivateFieldLooseBase(this, _uploaderOptions)[_uploaderOptions]);
}
return babelHelpers.classPrivateFieldLooseBase(this, _vueAdapter)[_vueAdapter];
}
getUploader() {
return this.getAdapter().getUploader();
}
getVueApp() {
if (babelHelpers.classPrivateFieldLooseBase(this, _vueApp)[_vueApp] !== null) {
return babelHelpers.classPrivateFieldLooseBase(this, _vueApp)[_vueApp];
}
babelHelpers.classPrivateFieldLooseBase(this, _vueApp)[_vueApp] = ui_vue3.BitrixVue.createApp(this.defineComponent(), {
uploaderOptions: babelHelpers.classPrivateFieldLooseBase(this, _uploaderOptions)[_uploaderOptions],
widgetOptions: babelHelpers.classPrivateFieldLooseBase(this, _widgetOptions)[_widgetOptions],
uploaderAdapter: this.getAdapter()
});
return babelHelpers.classPrivateFieldLooseBase(this, _vueApp)[_vueApp];
}
getRootComponent() {
return babelHelpers.classPrivateFieldLooseBase(this, _rootComponent)[_rootComponent];
}
renderTo(node) {
if (main_core.Type.isDomNode(node) && babelHelpers.classPrivateFieldLooseBase(this, _rootComponent)[_rootComponent] === null) {
babelHelpers.classPrivateFieldLooseBase(this, _rootComponent)[_rootComponent] = this.getVueApp().mount(node);
}
return babelHelpers.classPrivateFieldLooseBase(this, _rootComponent)[_rootComponent];
}
}
/**
* @memberof BX.UI.Uploader
*/
const VueUploaderComponent = {
name: 'VueUploaderComponent',
props: {
uploaderOptions: {
type: Object
},
widgetOptions: {
type: Object,
default: {}
},
uploaderAdapter: {
type: Object,
default: null
}
},
data: () => ({
items: [],
uploaderError: null
}),
provide() {
return {
uploader: this.uploader,
adapter: this.adapter,
widgetOptions: this.widgetOptions,
emitter: this.emitter
};
},
beforeCreate() {
if (this.uploaderAdapter === null) {
this.hasOwnAdapter = true;
const uploaderOptions = Object.assign({}, main_core.Type.isPlainObject(this.customUploaderOptions) ? this.customUploaderOptions : {}, this.uploaderOptions);
this.adapter = new VueUploaderAdapter(uploaderOptions);
} else {
this.hasOwnAdapter = false;
this.adapter = this.uploaderAdapter;
}
this.uploader = this.adapter.getUploader();
this.emitter = new main_core_events.EventEmitter(this, `BX.UI.Uploader.${this.$options.name}`);
this.emitter.subscribeFromOptions(this.widgetOptions.events);
},
created() {
this.items = this.adapter.getReactiveItems();
this.uploaderError = this.adapter.getUploaderError();
},
unmounted() {
if (this.hasOwnAdapter) {
this.adapter.destroy();
this.adapter = null;
this.uploader = null;
}
}
};
exports.VueUploaderAdapter = VueUploaderAdapter;
exports.VueUploaderWidget = VueUploaderWidget;
exports.VueUploaderComponent = VueUploaderComponent;
}((this.BX.UI.Uploader = this.BX.UI.Uploader || {}),BX.Vue3,BX.UI.Uploader,BX,BX.Event));
//# sourceMappingURL=ui.uploader.vue.bundle.js.map