| Current Path : /var/www/homesaver/www/bitrix/js/ui/uploader/tile-widget/dist/ |
| Current File : /var/www/homesaver/www/bitrix/js/ui/uploader/tile-widget/dist/ui.uploader.tile-widget.bundle.js.map |
{"version":3,"file":"ui.uploader.tile-widget.bundle.js","sources":["../src/components/settings-button.js","../src/components/drop-area.js","../src/components/error-popup.js","../src/components/file-icon.js","../src/components/insert-into-text-button.js","../src/components/upload-loader.js","../src/components/tile-item.js","../src/components/tile-more-item.js","../src/components/tile-list.js","../src/mixins/drag-over-mixin.js","../src/components/tile-widget-component.js","../src/tile-widget.js","../src/tile-widget-slot.js"],"sourcesContent":["import type { BitrixVueComponentProps } from 'ui.vue3';\n\nexport const SettingsButton: BitrixVueComponentProps = {\n\tinject: ['widgetOptions', 'emitter'],\n\tdata: () => ({\n\t\tselected: false,\n\t}),\n\tmethods: {\n\t\thandleSettingsClick(): void\n\t\t{\n\t\t\tthis.emitter.emit(\n\t\t\t\t'SettingsButton:onClick',\n\t\t\t\t{\n\t\t\t\t\tcontainer: this.$refs['container'],\n\t\t\t\t\tbutton: this,\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\tgetContainer(): HTMLElement\n\t\t{\n\t\t\treturn this.$refs['container'];\n\t\t},\n\n\t\tselect(): void\n\t\t{\n\t\t\tthis.selected = true;\n\t\t},\n\n\t\tdeselect(): void\n\t\t{\n\t\t\tthis.selected = false;\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div \n\t\t\tclass=\"ui-tile-uploader-settings\" \n\t\t\t:class=\"{ '--selected': this.selected }\" \n\t\t\t@click=\"handleSettingsClick\" \n\t\t\tref=\"container\"\n\t\t></div>\n\t`\n};\n","import { Loc } from 'main.core';\n\nimport { SettingsButton } from './settings-button';\n\nimport type { BitrixVueComponentProps } from 'ui.vue3';\n\nexport const DropArea: BitrixVueComponentProps = {\n\tinject: ['uploader', 'widgetOptions', 'emitter'],\n\tcomponents: {\n\t\tSettingsButton,\n\t},\n\tmounted(): void\n\t{\n\t\tthis.uploader.assignBrowse(this.$refs.dropArea);\n\t},\n\tcomputed: {\n\t\tdropLabel(): string\n\t\t{\n\t\t\treturn Loc.getMessage('TILE_UPLOADER_DROP_FILES_HERE');\n\t\t},\n\t},\n\tmethods: {\n\t\thandleSettingsClick()\n\t\t{\n\t\t\tthis.emitter.emit('onSettingsButtonClick', { button: this.$refs['ui-tile-uploader-settings'] });\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"ui-tile-uploader-drop-area\">\n\t\t\t<div class=\"ui-tile-uploader-drop-box\">\n\t\t\t\t<label class=\"ui-tile-uploader-drop-label\" ref=\"dropArea\">{{dropLabel}}</label>\n\t\t\t\t<SettingsButton v-if=\"widgetOptions.showSettingsButton\" />\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { Popup } from 'main.popup';\nimport { Type } from 'main.core';\n\nimport type { UploaderError } from 'ui.uploader.core';\nimport type { BitrixVueComponentProps } from 'ui.vue3';\n\n/**\n * @memberof BX.UI.Uploader\n */\nexport const ErrorPopup: BitrixVueComponentProps = {\n\tprops: {\n\t\terror: {\n\t\t\ttype: [Object, String],\n\t\t},\n\t\talignArrow: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tpopupOptions: {\n\t\t\ttype: Object,\n\t\t\tdefault(): {}\n\t\t\t{\n\t\t\t\treturn {};\n\t\t\t},\n\t\t},\n\t},\n\temits: ['onDestroy'],\n\twatch: {\n\t\terror(newValue): void\n\t\t{\n\t\t\tif (this.errorPopup)\n\t\t\t{\n\t\t\t\tthis.errorPopup.destroy();\n\t\t\t}\n\n\t\t\tthis.errorPopup = this.createPopup(newValue);\n\t\t\tthis.errorPopup.show();\n\t\t},\n\t},\n\tcreated(): void\n\t{\n\t\tthis.errorPopup = null;\n\t},\n\tmounted(): void\n\t{\n\t\tif (this.error)\n\t\t{\n\t\t\tthis.errorPopup = this.createPopup(this.error);\n\t\t\tthis.errorPopup.show();\n\t\t}\n\t},\n\tbeforeUnmount(): void\n\t{\n\t\tif (this.errorPopup)\n\t\t{\n\t\t\tthis.errorPopup.destroy();\n\t\t\tthis.errorPopup = null;\n\t\t}\n\t},\n\tmethods: {\n\t\tcreateContent(error: UploaderError | string): string\n\t\t{\n\t\t\tif (Type.isStringFilled(error))\n\t\t\t{\n\t\t\t\treturn error;\n\t\t\t}\n\t\t\telse if (Type.isObject(error))\n\t\t\t{\n\t\t\t\treturn error.message + '<br>' + error.description;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\n\t\tcreatePopup(error: UploaderError | string): Popup\n\t\t{\n\t\t\tconst content = this.createContent(error);\n\t\t\tlet defaultOptions;\n\t\t\tif (this.alignArrow && Type.isElementNode(this.popupOptions.bindElement))\n\t\t\t{\n\t\t\t\tconst targetNode = this.popupOptions.bindElement;\n\t\t\t\tconst targetNodeWidth = targetNode.offsetWidth;\n\n\t\t\t\tdefaultOptions = {\n\t\t\t\t\tcacheable: false,\n\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t\tcontent,\n\t\t\t\t\t// minWidth: 300,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonDestroy: () => {\n\t\t\t\t\t\t\tthis.$emit('onDestroy', error);\n\t\t\t\t\t\t\tthis.errorPopup = null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonShow: function(event) {\n\t\t\t\t\t\t\tconst popup = event.getTarget();\n\t\t\t\t\t\t\tpopup.getPopupContainer().style.display = 'block';\n\n\t\t\t\t\t\t\tconst popupWidth = popup.getPopupContainer().offsetWidth;\n\t\t\t\t\t\t\tconst offsetLeft = (targetNodeWidth / 2) - (popupWidth / 2);\n\t\t\t\t\t\t\tconst angleShift = Popup.getOption('angleLeftOffset') - Popup.getOption('angleMinTop');\n\n\t\t\t\t\t\t\tpopup.setAngle({ offset: popupWidth / 2 - angleShift });\n\t\t\t\t\t\t\tpopup.setOffset({ offsetLeft: offsetLeft + Popup.getOption('angleLeftOffset') });\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdefaultOptions = {\n\t\t\t\t\tcacheable: false,\n\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t\tcontent,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonDestroy: () => {\n\t\t\t\t\t\t\tthis.$emit('onDestroy', error);\n\t\t\t\t\t\t\tthis.errorPopup = null;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst options = Object.assign({}, defaultOptions, this.popupOptions);\n\n\t\t\treturn new Popup(options);\n\t\t},\n\t},\n\ttemplate: '<span></span>',\n};\n","import { FileIcon } from 'ui.icons.generator';\n\nimport type { BitrixVueComponentProps } from 'ui.vue3';\n/**\n * @memberof BX.UI.Uploader\n */\nexport const FileIconComponent: BitrixVueComponentProps = {\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t},\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t},\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 36,\n\t\t},\n\t},\n\tmounted(): void\n\t{\n\t\tconst icon = new FileIcon({\n\t\t\tname: this.name,\n\t\t\tfileType: this.type,\n\t\t\tcolor: this.color,\n\t\t\tsize: this.size,\n\t\t});\n\n\t\ticon.renderTo(this.$el);\n\t},\n\ttemplate: '<span></span>',\n};\n","import { Loc } from 'main.core';\nimport { Popup } from 'main.popup';\n\nimport type { BaseEvent } from 'main.core.events';\nimport type { BitrixVueComponentProps } from 'ui.vue3';\n\nimport '../css/insert-into-text-button.css';\n\nexport const InsertIntoTextButton: BitrixVueComponentProps = {\n\tname: 'InsertIntoTextButton',\n\tinject: ['emitter'],\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\tdefault: {},\n\t\t},\n\t},\n\tcomputed: {\n\t\tisInserted(): boolean\n\t\t{\n\t\t\treturn this.item.customData?.tileSelected === true;\n\t\t},\n\t},\n\tmethods: {\n\t\tclick(): void\n\t\t{\n\t\t\tthis.emitter.emit('onInsertIntoText', { item: this.item });\n\t\t},\n\n\t\thandleMouseEnter(event: MouseEvent): void\n\t\t{\n\t\t\tif (this.hintPopup)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst targetNode: HTMLElement = event.currentTarget;\n\t\t\tconst targetNodeWidth: number = targetNode.offsetWidth;\n\n\t\t\tthis.hintPopup = new Popup({\n\t\t\t\tcontent: Loc.getMessage('TILE_UPLOADER_INSERT_INTO_THE_TEXT'),\n\t\t\t\tcacheable: false,\n\t\t\t\tanimation: 'fading-slide',\n\t\t\t\tbindElement: targetNode,\n\t\t\t\toffsetTop: 0,\n\t\t\t\tbindOptions: {\n\t\t\t\t\tposition: 'top',\n\t\t\t\t},\n\t\t\t\tdarkMode: true,\n\t\t\t\tevents: {\n\t\t\t\t\tonClose: (): void => {\n\t\t\t\t\t\tthis.hintPopup.destroy();\n\t\t\t\t\t\tthis.hintPopup = null;\n\t\t\t\t\t},\n\t\t\t\t\tonShow: (event: BaseEvent): void => {\n\t\t\t\t\t\tconst popup = event.getTarget();\n\t\t\t\t\t\tconst popupWidth = popup.getPopupContainer().offsetWidth;\n\t\t\t\t\t\tconst offsetLeft: number = (targetNodeWidth / 2) - (popupWidth / 2);\n\t\t\t\t\t\tconst angleShift: number = Popup.getOption('angleLeftOffset') - Popup.getOption('angleMinTop');\n\n\t\t\t\t\t\tpopup.setAngle({ offset: popupWidth / 2 - angleShift });\n\t\t\t\t\t\tpopup.setOffset({ offsetLeft: offsetLeft + Popup.getOption('angleLeftOffset') });\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.hintPopup.show();\n\t\t},\n\n\t\thandleMouseLeave(event: Event): void\n\t\t{\n\t\t\tif (this.hintPopup)\n\t\t\t{\n\t\t\t\tthis.hintPopup.close();\n\t\t\t\tthis.hintPopup = null;\n\t\t\t}\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div \n\t\t\tclass=\"ui-tile-uploader-insert-into-text-button\"\n\t\t\t:class=\"[{ '--inserted': isInserted }]\"\n\t\t\t@mouseenter=\"handleMouseEnter\" \n\t\t\t@mouseleave=\"handleMouseLeave\" \n\t\t\t@click=\"click\"\n\t\t></div>\n\t`,\n};\n","import { ProgressRound } from 'ui.progressround';\n\nimport type { BitrixVueComponentProps } from 'ui.vue3';\n\n/**\n * @memberof BX.UI.Uploader\n */\nexport const UploadLoader: BitrixVueComponentProps = {\n\tprops: {\n\t\tprogress: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\twidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 45,\n\t\t},\n\t\tlineSize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 3,\n\t\t},\n\t\tcolorTrack: {\n\t\t\ttype: String,\n\t\t\tdefault: '#eeeff0',\n\t\t},\n\t\tcolorBar: {\n\t\t\ttype: String,\n\t\t\tdefault: '#2fc6f6',\n\t\t},\n\t\trotation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tmounted()\n\t{\n\t\tthis.createProgressbar();\n\t},\n\twatch: {\n\t\tprogress()\n\t\t{\n\t\t\tthis.updateProgressbar();\n\t\t},\n\t},\n\tmethods: {\n\t\tcreateProgressbar()\n\t\t{\n\t\t\tthis.loader = new ProgressRound({\n\t\t\t\twidth: this.width,\n\t\t\t\tlineSize: this.lineSize,\n\t\t\t\tcolorBar: this.colorBar,\n\t\t\t\tcolorTrack: this.colorTrack,\n\t\t\t\trotation: this.rotation,\n\t\t\t\tvalue: this.progress,\n\t\t\t\tcolor: ProgressRound.Color.SUCCESS,\n\t\t\t});\n\n\t\t\tthis.loader.renderTo(this.$refs.container);\n\t\t},\n\t\tupdateProgressbar()\n\t\t{\n\t\t\tif (!this.loader)\n\t\t\t{\n\t\t\t\tthis.createProgressbar();\n\t\t\t}\n\n\t\t\tthis.loader.update(this.progress);\n\t\t},\n\t},\n\ttemplate: '<span ref=\"container\"></span>',\n};\n","import { Loc, Text, Type } from 'main.core';\nimport { MenuManager, PopupOptions } from 'main.popup';\nimport { FileOrigin, FileStatus, FileStatusType } from 'ui.uploader.core';\nimport { TileWidgetSlot } from 'ui.uploader.tile-widget';\n\nimport type { BitrixVueComponentProps } from 'ui.vue3';\nimport { ErrorPopup } from './error-popup';\nimport { FileIconComponent } from './file-icon';\nimport { InsertIntoTextButton } from './insert-into-text-button';\n\nimport { UploadLoader } from './upload-loader';\n\nexport const TileItem: BitrixVueComponentProps = {\n\tcomponents: {\n\t\tUploadLoader,\n\t\tErrorPopup,\n\t\tFileIconComponent,\n\t},\n\tinject: ['uploader', 'widgetOptions', 'emitter'],\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\tdefault: {},\n\t\t},\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\ttileId: `tile-uploader-${Text.getRandom().toLowerCase()}`,\n\t\t\tshowError: false,\n\t\t};\n\t},\n\tcomputed: {\n\t\tFileStatus: (): FileStatusType => FileStatus,\n\t\tstatus(): string\n\t\t{\n\t\t\tif (this.item.status === FileStatus.UPLOADING)\n\t\t\t{\n\t\t\t\treturn `${this.item.progress}%`;\n\t\t\t}\n\n\t\t\tif (this.item.status === FileStatus.LOAD_FAILED || this.item.status === FileStatus.UPLOAD_FAILED)\n\t\t\t{\n\t\t\t\treturn Loc.getMessage('TILE_UPLOADER_ERROR_STATUS');\n\t\t\t}\n\n\t\t\treturn Loc.getMessage('TILE_UPLOADER_WAITING_STATUS');\n\t\t},\n\t\tfileSize(): string\n\t\t{\n\t\t\tif (\n\t\t\t\t[FileStatus.LOADING, FileStatus.LOAD_FAILED].includes(this.item.status)\n\t\t\t\t&& this.item.origin === FileOrigin.SERVER\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn this.item.sizeFormatted;\n\t\t},\n\t\terrorPopupOptions(): PopupOptions\n\t\t{\n\t\t\tconst targetNode = this.$refs.container;\n\t\t\tconst targetNodeWidth = targetNode.offsetWidth;\n\n\t\t\treturn {\n\t\t\t\tbindElement: targetNode,\n\t\t\t\tdarkMode: true,\n\t\t\t\toffsetTop: 6,\n\t\t\t\tminWidth: targetNodeWidth,\n\t\t\t\tmaxWidth: 500,\n\t\t\t};\n\t\t},\n\t\tclampedFileName(): string\n\t\t{\n\t\t\tconst nameParts = this.item.name.split('.');\n\t\t\tif (nameParts.length > 1)\n\t\t\t{\n\t\t\t\tnameParts.pop();\n\t\t\t}\n\n\t\t\tconst nameWithoutExtension = nameParts.join('.');\n\t\t\tif (nameWithoutExtension.length > 27)\n\t\t\t{\n\t\t\t\treturn nameWithoutExtension.substr(0, 17) + '...' + nameWithoutExtension.substr(-5);\n\t\t\t}\n\n\t\t\treturn nameWithoutExtension;\n\t\t},\n\n\t\tshowItemMenuButton(): boolean\n\t\t{\n\t\t\tif (Type.isBoolean(this.widgetOptions.showItemMenuButton))\n\t\t\t{\n\t\t\t\treturn this.widgetOptions.showItemMenuButton;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn this.menuItems.length > 0;\n\t\t\t}\n\t\t},\n\n\t\tmenuItems(): Array\n\t\t{\n\t\t\tconst items = [];\n\t\t\titems.push(\n\t\t\t\t{\n\t\t\t\t\tid: 'filesize',\n\t\t\t\t\ttext: Loc.getMessage('TILE_UPLOADER_FILE_SIZE', { '#filesize#': this.item.sizeFormatted }),\n\t\t\t\t\tdisabled: true,\n\t\t\t\t},\n\t\t\t\t{ delimiter: true },\n\t\t\t);\n\n\t\t\tif (this.widgetOptions.insertIntoText === true)\n\t\t\t{\n\t\t\t\titems.push({\n\t\t\t\t\tid: 'insert-into-text',\n\t\t\t\t\ttext: Loc.getMessage('TILE_UPLOADER_INSERT_INTO_THE_TEXT'),\n\t\t\t\t\tonclick: (): void => {\n\t\t\t\t\t\tif (this.menu)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.menu.close();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.emitter.emit('onInsertIntoText', { item: this.item });\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (Type.isStringFilled(this.item.downloadUrl))\n\t\t\t{\n\t\t\t\titems.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'download',\n\t\t\t\t\t\ttext: Loc.getMessage('TILE_UPLOADER_MENU_DOWNLOAD'),\n\t\t\t\t\t\thref: this.item.downloadUrl,\n\t\t\t\t\t\tonclick: (): void => {\n\t\t\t\t\t\t\tif (this.menu)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.menu.close();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'remove',\n\t\t\t\t\t\ttext: Loc.getMessage('TILE_UPLOADER_MENU_REMOVE'),\n\t\t\t\t\t\tonclick: (): void => {\n\t\t\t\t\t\t\tthis.remove();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\t\textraAction(): ?BitrixVueComponentProps\n\t\t{\n\t\t\treturn (\n\t\t\t\tthis.widgetOptions.slots && this.widgetOptions.slots[TileWidgetSlot.ITEM_EXTRA_ACTION]\n\t\t\t\t\t? this.widgetOptions.slots[TileWidgetSlot.ITEM_EXTRA_ACTION]\n\t\t\t\t\t: (this.widgetOptions.insertIntoText === true ? InsertIntoTextButton : null)\n\t\t\t);\n\t\t},\n\t\tisSelected(): boolean\n\t\t{\n\t\t\treturn this.item.customData.tileSelected === true;\n\t\t},\n\t},\n\tcreated(): void\n\t{\n\t\tthis.menu = null;\n\t},\n\tbeforeUnmount(): void\n\t{\n\t\tif (this.menu)\n\t\t{\n\t\t\tthis.menu.destroy();\n\t\t\tthis.menu = null;\n\t\t}\n\t},\n\tmethods: {\n\t\tremove(): void\n\t\t{\n\t\t\tthis.uploader.removeFile(this.item.id);\n\t\t},\n\n\t\thandleMouseEnter(item): void\n\t\t{\n\t\t\tif (item.error)\n\t\t\t{\n\t\t\t\tthis.showError = true;\n\t\t\t}\n\t\t},\n\n\t\thandleMouseLeave(): void\n\t\t{\n\t\t\tthis.showError = false;\n\t\t},\n\n\t\ttoggleMenu(): void\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (this.menu)\n\t\t\t\t{\n\t\t\t\t\tif (this.menu.getPopupWindow().isShown())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.menu.close();\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.menu.destroy();\n\t\t\t\t}\n\n\t\t\t\tthis.menu = MenuManager.create({\n\t\t\t\t\tid: this.tileId,\n\t\t\t\t\tbindElement: this.$refs.menu,\n\t\t\t\t\tangle: true,\n\t\t\t\t\toffsetLeft: 13,\n\t\t\t\t\tminWidth: 100,\n\t\t\t\t\tcacheable: false,\n\t\t\t\t\titems: this.menuItems,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonDestroy: () => {\n\t\t\t\t\t\t\tthis.menu = null;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tthis.emitter.emit('TileItem:onMenuCreate', {\n\t\t\t\t\tmenu: this.menu,\n\t\t\t\t\titem: this.item,\n\t\t\t\t});\n\n\t\t\t\tthis.menu.show();\n\t\t\t});\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t<div\n\t\tclass=\"ui-tile-uploader-item\"\n\t\t:class=\"['ui-tile-uploader-item--' + item.status, { '--image': item.isImage, '--selected': isSelected } ]\"\n\t\tref=\"container\"\n\t>\n\t\t<ErrorPopup v-if=\"item.error && showError\" :error=\"item.error\" :popup-options=\"errorPopupOptions\"/>\n\t\t<div \n\t\t\tclass=\"ui-tile-uploader-item-content\"\n\t\t\t@mouseenter=\"handleMouseEnter(item)\" \n\t\t\t@mouseleave=\"handleMouseLeave(item)\"\n\t\t>\n\t\t\t<div v-if=\"item.status !== FileStatus.COMPLETE\" class=\"ui-tile-uploader-item-state\">\n\t\t\t\t<div class=\"ui-tile-uploader-item-loader\" v-if=\"item.status === FileStatus.UPLOADING\">\n\t\t\t\t\t<UploadLoader :progress=\"item.progress\" :width=\"20\" colorTrack=\"#73d8f8\" colorBar=\"#fff\" />\n\t\t\t\t</div>\n\t\t\t\t<div v-else class=\"ui-tile-uploader-item-state-icon\"></div>\n\t\t\t\t<div class=\"ui-tile-uploader-item-status\">\n\t\t\t\t\t<div class=\"ui-tile-uploader-item-status-name\">{{status}}</div>\n\t\t\t\t\t<div v-if=\"fileSize\" class=\"ui-tile-uploader-item-state-desc\">{{fileSize}}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-tile-uploader-item-state-remove\" @click=\"remove\" key=\"aaa\"></div>\n\t\t\t</div>\n\t\t\t<template v-else>\n\t\t\t\t<div class=\"ui-tile-uploader-item-remove\" @click=\"remove\" key=\"remove\"></div>\n\t\t\t\t<div class=\"ui-tile-uploader-item-actions\" key=\"actions\">\n\t\t\t\t\t<div class=\"ui-tile-uploader-item-actions-pad\">\n\t\t\t\t\t\t<div v-if=\"extraAction\" class=\"ui-tile-uploader-item-extra-actions\">\n\t\t\t\t\t\t\t<component :is=\"extraAction\" :item=\"this.item\"></component>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if=\"showItemMenuButton\" class=\"ui-tile-uploader-item-menu\" @click=\"toggleMenu\" ref=\"menu\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<div class=\"ui-tile-uploader-item-preview\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"item.previewUrl\"\n\t\t\t\t\tclass=\"ui-tile-uploader-item-image\"\n\t\t\t\t\t:class=\"{ 'ui-tile-uploader-item-image-default': item.previewUrl === null }\"\n\t\t\t\t\t:style=\"{ backgroundImage: item.previewUrl !== null ? 'url(' + item.previewUrl + ')' : '' }\">\n\t\t\t\t</div>\n\t\t\t\t<div \n\t\t\t\t\tv-else-if=\"item.name\" \n\t\t\t\t\tclass=\"ui-tile-uploader-item-file-icon\"\n\t\t\t\t>\n\t\t\t\t\t<FileIconComponent :name=\"item.extension ? item.extension : '...'\" />\n\t\t\t\t</div>\n\t\t\t\t<div \n\t\t\t\t\tv-else \n\t\t\t\t\tclass=\"ui-tile-uploader-item-file-default\"\n\t\t\t\t>\n\t\t\t\t\t<FileIconComponent :name=\"item.extension ? item.extension : '...'\" :size=\"36\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"item.name\" class=\"ui-tile-uploader-item-name-box\" :title=\"item.name\">\n\t\t\t\t<div class=\"ui-tile-uploader-item-name\">\n\t\t\t\t\t<span class=\"ui-tile-uploader-item-name-title\">{{clampedFileName}}</span><!--\n\t\t\t\t\t--><span v-if=\"item.extension\" class=\"ui-tile-uploader-item-name-extension\">.{{item.extension}}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t`\n};\n","import type { BitrixVueComponentProps } from 'ui.vue3';\nimport { ErrorPopup, UploadLoader } from 'ui.uploader.tile-widget';\nimport { FileIconComponent } from './file-icon';\nimport { Loc } from 'main.core';\n\nexport const TileMoreItem: BitrixVueComponentProps = {\n\tcomponents: {\n\t\tUploadLoader,\n\t\tErrorPopup,\n\t\tFileIconComponent,\n\t},\n\temit: ['onClick'],\n\tprops: {\n\t\thiddenFilesCount: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0\n\t\t},\n\t},\n\tcomputed: {\n\t\tmoreButtonCaption(): string {\n\t\t\treturn Loc.getMessage(\n\t\t\t\t'TILE_UPLOADER_MORE_BUTTON_CAPTION',\n\t\t\t\t{\n\t\t\t\t\t'#COUNT#': `<span class=\"ui-tile-uploader-item-more-count\">${this.hiddenFilesCount}</span>`\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"ui-tile-uploader-item\" @click=\"$emit('onClick')\">\n\t\t\t<div class=\"ui-tile-uploader-item-more\">\n\t\t\t\t<div class=\"ui-tile-uploader-item-more-icon\"></div>\n\t\t\t\t<div class=\"ui-tile-uploader-item-more-label\" v-html=\"moreButtonCaption\"></div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};","import { TileItem } from './tile-item';\nimport { TileMoreItem } from './tile-more-item';\n\nimport type { BitrixVueComponentProps } from 'ui.vue3';\nimport type { TileWidgetItem } from '../tile-widget-item';\n\n/**\n * @memberof BX.UI.Uploader\n */\nexport const TileList: BitrixVueComponentProps = {\n\tcomponents: {\n\t\tTileItem,\n\t\tTileMoreItem,\n\t},\n\temits: ['onUnmount'],\n\tprops: {\n\t\tautoCollapse: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\titems: {\n\t\t\ttype: Array,\n\t\t\tdefault: [],\n\t\t},\n\t},\n\tdata: (): Object => ({\n\t\tpageSize: 5,\n\t\tfirstHiddenItem: null,\n\t\tlastHiddenItem: null,\n\t}),\n\tcreated(): void\n\t{\n\t\tthis.moreItemBlocked = false;\n\n\t\tif (!this.autoCollapse)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.items.length > this.pageSize)\n\t\t{\n\t\t\tthis.firstHiddenItem = this.items[this.pageSize];\n\t\t\tthis.lastHiddenItem = this.items[this.items.length - 1];\n\t\t}\n\t},\n\tunmounted(): void\n\t{\n\t\tthis.$emit('onUnmount');\n\t},\n\tcomputed: {\n\t\tvisibleItems(): TileWidgetItem[]\n\t\t{\n\t\t\tif (this.firstHiddenItem === null)\n\t\t\t{\n\t\t\t\treturn this.items;\n\t\t\t}\n\n\t\t\tconst index = this.items.indexOf(this.firstHiddenItem);\n\t\t\tif (index === -1)\n\t\t\t{\n\t\t\t\tthis.resetMoreItem();\n\n\t\t\t\treturn this.items;\n\t\t\t}\n\n\t\t\treturn this.items.slice(0, index);\n\t\t},\n\n\t\trealtimeItems(): TileWidgetItem[]\n\t\t{\n\t\t\tif (this.lastHiddenItem === null)\n\t\t\t{\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst index = this.items.indexOf(this.lastHiddenItem);\n\t\t\tif (index === -1)\n\t\t\t{\n\t\t\t\tthis.resetMoreItem();\n\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn this.items.slice(index + 1);\n\t\t},\n\n\t\thiddenFilesCount(): number\n\t\t{\n\t\t\tif (this.lastHiddenItem === null)\n\t\t\t{\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tconst firstIndex = this.items.indexOf(this.firstHiddenItem);\n\t\t\tconst lastIndex = this.items.indexOf(this.lastHiddenItem);\n\n\t\t\tif (firstIndex === -1 || lastIndex === -1)\n\t\t\t{\n\t\t\t\tthis.resetMoreItem();\n\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\treturn lastIndex - firstIndex + 1;\n\t\t},\n\t},\n\tmethods: {\n\t\tgetMore(): void\n\t\t{\n\t\t\tif (this.moreItemBlocked)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.pageSize = Math.min(this.pageSize + 5, 30);\n\n\t\t\tconst currentFirstIndex = this.items.indexOf(this.firstHiddenItem);\n\t\t\tconst lastIndex = this.items.indexOf(this.lastHiddenItem);\n\n\t\t\tconst newFirstIndex: number = currentFirstIndex + this.pageSize;\n\t\t\tconst nextFirstIndex: number = newFirstIndex > lastIndex ? lastIndex + 1 : newFirstIndex;\n\t\t\tlet itemsToShow: number = nextFirstIndex - currentFirstIndex;\n\n\t\t\tfor (let i = currentFirstIndex, delay = 0; i < nextFirstIndex; i++, delay++)\n\t\t\t{\n\t\t\t\tthis.moreItemBlocked = true;\n\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\tif (i === lastIndex)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.resetMoreItem();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.firstHiddenItem = this.items[i + 1];\n\t\t\t\t\t}\n\n\t\t\t\t\titemsToShow--;\n\t\t\t\t\tif (itemsToShow === 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.moreItemBlocked = false;\n\t\t\t\t\t}\n\t\t\t\t}, 100 * delay);\n\t\t\t}\n\t\t},\n\t\tresetMoreItem(): void\n\t\t{\n\t\t\tthis.firstHiddenItem = null;\n\t\t\tthis.lastHiddenItem = null;\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"ui-tile-uploader-items\">\n\t\t\t<transition-group name=\"ui-tile-uploader-item\" type=\"animation\">\n\t\t\t\t<TileItem v-for=\"item in visibleItems\" :key=\"item.id\" :item=\"item\" />\n\t\t\t</transition-group>\n\t\t\t<transition name=\"ui-tile-uploader-item\" type=\"animation\">\n\t\t\t\t<TileMoreItem v-if=\"hiddenFilesCount > 0\" :hidden-files-count=\"hiddenFilesCount\" @onClick=\"getMore\"/>\n\t\t\t</transition>\n\t\t\t<transition-group name=\"ui-tile-uploader-item\" type=\"animation\">\n\t\t\t\t<TileItem v-for=\"item in realtimeItems\" :key=\"item.id\" :item=\"item\" />\n\t\t\t</transition-group>\n\t\t</div>\n\t`,\n};\n","import { Event } from 'main.core';\nimport { hasDataTransferOnlyFiles } from 'ui.uploader.core';\n/**\n * @memberof BX.UI.Uploader\n */\nexport const DragOverMixin = {\n\tdirectives: {\n\t\tdrop: {\n\t\t\tbeforeMount(el, binding, vnode): void\n\t\t\t{\n\t\t\t\tif (binding.value === false)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction addClass(): void\n\t\t\t\t{\n\t\t\t\t\tbinding.instance.dragOver = true;\n\t\t\t\t\tel.classList.add('--drag-over');\n\t\t\t\t}\n\n\t\t\t\tfunction removeClass(): void\n\t\t\t\t{\n\t\t\t\t\tbinding.instance.dragOver = false;\n\t\t\t\t\tel.classList.remove('--drag-over');\n\t\t\t\t}\n\n\t\t\t\tlet lastEnterTarget = null;\n\t\t\t\tEvent.bind(el, 'dragenter', (event: DragEvent): void => {\n\t\t\t\t\thasDataTransferOnlyFiles(event.dataTransfer, false)\n\t\t\t\t\t\t.then((success): void => {\n\t\t\t\t\t\t\tif (success)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tevent.stopPropagation();\n\n\t\t\t\t\t\t\t\tlastEnterTarget = event.target;\n\t\t\t\t\t\t\t\taddClass();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\t// no-op\n\t\t\t\t\t\t})\n\t\t\t\t\t;\n\t\t\t\t});\n\n\t\t\t\tEvent.bind(el, 'dragleave', (event: DragEvent): void => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\n\t\t\t\t\tif (lastEnterTarget === event.target)\n\t\t\t\t\t{\n\t\t\t\t\t\tremoveClass();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tEvent.bind(el, 'drop', (event: DragEvent): void => {\n\t\t\t\t\tremoveClass();\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tunmounted(el, binding, vnode)\n\t\t\t{\n\t\t\t\tif (binding.value === false)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tbinding.instance.dragOver = false;\n\t\t\t\tEvent.unbindAll(el, 'dragenter');\n\t\t\t\tEvent.unbindAll(el, 'dragleave');\n\t\t\t\tEvent.unbindAll(el, 'drop');\n\t\t\t},\n\t\t},\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tdragOver: false,\n\t\t};\n\t},\n};\n","import { Type } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport { VueUploaderComponent } from 'ui.uploader.vue';\nimport { TileWidgetSlot } from 'ui.uploader.tile-widget';\n\nimport { DropArea } from './drop-area';\nimport { TileList } from './tile-list';\nimport { ErrorPopup } from './error-popup';\nimport { DragOverMixin } from '../mixins/drag-over-mixin';\n\nimport type { BitrixVueComponentProps } from 'ui.vue3';\nimport type { PopupOptions } from 'main.popup';\n\n/**\n * @memberof BX.UI.Uploader\n */\nexport const TileWidgetComponent: BitrixVueComponentProps = {\n\tname: 'TileWidget',\n\textends: VueUploaderComponent,\n\tcomponents: {\n\t\tDropArea,\n\t\tTileList,\n\t\tErrorPopup,\n\t},\n\tmixins: [\n\t\tDragOverMixin,\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tisMounted: false,\n\t\t\tautoCollapse: false,\n\t\t};\n\t},\n\tcomputed: {\n\t\terrorPopupOptions(): PopupOptions\n\t\t{\n\t\t\treturn {\n\t\t\t\tbindElement: this.$refs.container,\n\t\t\t\tcloseIcon: true,\n\t\t\t\tpadding: 20,\n\t\t\t\toffsetLeft: 45,\n\t\t\t\tangle: true,\n\t\t\t\tdarkMode: true,\n\t\t\t\tbindOptions: {\n\t\t\t\t\tposition: 'top',\n\t\t\t\t\tforceTop: true,\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\tTileWidgetSlot: () => TileWidgetSlot,\n\t\tslots(): TileWidgetSlot\n\t\t{\n\t\t\tconst slots = Type.isPlainObject(this.widgetOptions.slots) ? this.widgetOptions.slots : {};\n\n\t\t\treturn {\n\t\t\t\t[TileWidgetSlot.BEFORE_TILE_LIST]: slots[TileWidgetSlot.BEFORE_TILE_LIST],\n\t\t\t\t[TileWidgetSlot.AFTER_TILE_LIST]: slots[TileWidgetSlot.AFTER_TILE_LIST],\n\t\t\t\t[TileWidgetSlot.BEFORE_DROP_AREA]: slots[TileWidgetSlot.BEFORE_DROP_AREA],\n\t\t\t\t[TileWidgetSlot.AFTER_DROP_AREA]: slots[TileWidgetSlot.AFTER_DROP_AREA],\n\t\t\t};\n\t\t},\n\t\tenableDropzone(): boolean\n\t\t{\n\t\t\treturn this.widgetOptions.enableDropzone !== false;\n\t\t},\n\t},\n\tcreated(): void\n\t{\n\t\tthis.autoCollapse = (\n\t\t\tType.isBoolean(this.widgetOptions.autoCollapse)\n\t\t\t\t? this.widgetOptions.autoCollapse\n\t\t\t\t: this.items.length > 0\n\t\t);\n\n\t\tthis.adapter.subscribe('Item:onAdd', (event: BaseEvent): void => {\n\t\t\tthis.uploaderError = null;\n\t\t});\n\n\t\tthis.adapter.subscribe('Item:onRemove', (event: BaseEvent): void => {\n\t\t\tthis.uploaderError = null;\n\t\t});\n\t},\n\tmounted(): void\n\t{\n\t\tif (this.enableDropzone)\n\t\t{\n\t\t\tthis.uploader.assignDropzone(this.$refs.container);\n\t\t}\n\n\t\tthis.isMounted = true;\n\t},\n\tmethods: {\n\t\tenableAutoCollapse(): void\n\t\t{\n\t\t\tthis.autoCollapse = true;\n\t\t},\n\n\t\tdisableAutoCollapse(): void\n\t\t{\n\t\t\tthis.autoCollapse = false;\n\t\t},\n\n\t\thandlePopupDestroy(error)\n\t\t{\n\t\t\tif (this.uploaderError === error)\n\t\t\t{\n\t\t\t\tthis.uploaderError = null;\n\t\t\t}\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"ui-tile-uploader\" ref=\"container\" v-drop=\"enableDropzone\">\n\t\t\t<component :is=\"slots[TileWidgetSlot.BEFORE_TILE_LIST]\"></component>\n\t\t\t<TileList \n\t\t\t\tv-if=\"items.length !== 0\" \n\t\t\t\t:items=\"items\" \n\t\t\t\t:auto-collapse=\"autoCollapse\" \n\t\t\t\t@onUnmount=\"this.autoCollapse = false\"\n\t\t\t/>\n\t\t\t<component :is=\"slots[TileWidgetSlot.AFTER_TILE_LIST]\"></component>\n\t\t\t<component :is=\"slots[TileWidgetSlot.BEFORE_DROP_AREA]\"></component>\n\t\t\t<DropArea />\n\t\t\t<component :is=\"slots[TileWidgetSlot.AFTER_DROP_AREA]\"></component>\n\t\t</div>\n\t\t<ErrorPopup\n\t\t\tv-if=\"uploaderError && isMounted\"\n\t\t\t:alignArrow=\"false\"\n\t\t\t:error=\"uploaderError\"\n\t\t\t:popup-options=\"errorPopupOptions\"\n\t\t\t@onDestroy=\"handlePopupDestroy\"\n\t\t/>\n\t`,\n};\n","import { Type } from 'main.core';\nimport { VueUploaderWidget } from 'ui.uploader.vue';\n\nimport { TileWidgetComponent } from './components/tile-widget-component';\n\nimport type { UploaderOptions } from 'ui.uploader.core';\nimport type { TileWidgetOptions } from './tile-widget-options';\n\n/**\n * @memberof BX.UI.Uploader\n */\nexport default class TileWidget extends VueUploaderWidget\n{\n\tconstructor(uploaderOptions: UploaderOptions, tileWidgetOptions: TileWidgetOptions)\n\t{\n\t\tconst widgetOptions = Type.isPlainObject(tileWidgetOptions) ? Object.assign({}, tileWidgetOptions) : {};\n\t\tsuper(uploaderOptions, widgetOptions);\n\t}\n\n\tdefineComponent(): ?Function\n\t{\n\t\treturn TileWidgetComponent;\n\t}\n}\n","export const TileWidgetSlot: Object<string, string> = {\n\tBEFORE_TILE_LIST: 'beforeTileList',\n\tAFTER_TILE_LIST: 'afterTileList',\n\tBEFORE_DROP_AREA: 'beforeDropArea',\n\tAFTER_DROP_AREA: 'afterDropArea',\n\tITEM_EXTRA_ACTION: 'Item:extraAction',\n};"],"names":["SettingsButton","inject","data","selected","methods","handleSettingsClick","emitter","emit","container","$refs","button","getContainer","select","deselect","template","DropArea","components","mounted","uploader","assignBrowse","dropArea","computed","dropLabel","Loc","getMessage","ErrorPopup","props","error","type","Object","String","alignArrow","Boolean","default","popupOptions","emits","watch","newValue","errorPopup","destroy","createPopup","show","created","beforeUnmount","createContent","Type","isStringFilled","isObject","message","description","content","defaultOptions","isElementNode","bindElement","targetNode","targetNodeWidth","offsetWidth","cacheable","animation","events","onDestroy","$emit","onShow","event","popup","getTarget","getPopupContainer","style","display","popupWidth","offsetLeft","angleShift","Popup","getOption","setAngle","offset","setOffset","options","assign","FileIconComponent","name","color","size","Number","icon","FileIcon","fileType","renderTo","$el","InsertIntoTextButton","item","isInserted","customData","tileSelected","click","handleMouseEnter","hintPopup","currentTarget","offsetTop","bindOptions","position","darkMode","onClose","handleMouseLeave","close","UploadLoader","progress","width","lineSize","colorTrack","colorBar","rotation","createProgressbar","updateProgressbar","loader","ProgressRound","value","Color","SUCCESS","update","TileItem","tileId","Text","getRandom","toLowerCase","showError","FileStatus","status","UPLOADING","LOAD_FAILED","UPLOAD_FAILED","fileSize","LOADING","includes","origin","FileOrigin","SERVER","sizeFormatted","errorPopupOptions","minWidth","maxWidth","clampedFileName","nameParts","split","length","pop","nameWithoutExtension","join","substr","showItemMenuButton","isBoolean","widgetOptions","menuItems","items","push","id","text","disabled","delimiter","insertIntoText","onclick","menu","downloadUrl","href","remove","extraAction","slots","TileWidgetSlot","ITEM_EXTRA_ACTION","isSelected","removeFile","toggleMenu","setTimeout","getPopupWindow","isShown","MenuManager","create","angle","TileMoreItem","hiddenFilesCount","moreButtonCaption","TileList","autoCollapse","Array","pageSize","firstHiddenItem","lastHiddenItem","moreItemBlocked","unmounted","visibleItems","index","indexOf","resetMoreItem","slice","realtimeItems","firstIndex","lastIndex","getMore","Math","min","currentFirstIndex","newFirstIndex","nextFirstIndex","itemsToShow","i","delay","DragOverMixin","directives","drop","beforeMount","el","binding","vnode","addClass","instance","dragOver","classList","add","removeClass","lastEnterTarget","Event","bind","hasDataTransferOnlyFiles","dataTransfer","then","success","preventDefault","stopPropagation","target","catch","unbindAll","TileWidgetComponent","extends","VueUploaderComponent","mixins","isMounted","closeIcon","padding","forceTop","isPlainObject","BEFORE_TILE_LIST","AFTER_TILE_LIST","BEFORE_DROP_AREA","AFTER_DROP_AREA","enableDropzone","adapter","subscribe","uploaderError","assignDropzone","enableAutoCollapse","disableAutoCollapse","handlePopupDestroy","TileWidget","VueUploaderWidget","constructor","uploaderOptions","tileWidgetOptions","defineComponent"],"mappings":"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"}