PageSourceSearch

https://voenchast.ru/bitrix/components/bitrix/main.field.file/templates/main.edit/script.js

js voenchast.ru collected 2026-10-09 22:41:39 UTC 8,596 bytes, 160 lines download raw bytes

1/* eslint-disable */
2this.BX = this.BX || {};
3this.BX.Main = this.BX.Main || {};
4this.BX.Main.Field = this.BX.Main.Field || {};
5(function (exports,ui_vue3,main_core,ui_uploader_core,ui_uploader_tileWidget) {
6	'use strict';
7
8	var Main = {
9	  components: {
10	    TileWidgetComponent: ui_uploader_tileWidget.TileWidgetComponent
11	  },
12	  data: function data() {
13	    return {
14	      deletedValues: [],
15	      uploadedValues: [],
16	      uploadInProgress: false
17	    };
18	  },
19	  props: {
20	    fieldName: {
21	      type: String,
22	      required: true
23	    },
24	    controlId: {
25	      type: String,
26	      required: true
27	    },
28	    context: {
29	      type: Object,
30	      required: true
31	    },
32	    values: {
33	      type: Object
34	    }
35	  },
36	  computed: {
37	    sessionInputName: function sessionInputName() {
38	      return "".concat(this.context.fieldName, "_session_id");
39	    },
40	    valueInputName: function valueInputName() {
41	      return this.context.fieldName + (this.context.multiple ? '[]' : '');
42	    },
43	    deletedValueInputName: function deletedValueInputName() {
44	      return "".concat(this.context.fieldName, "_del").concat(this.context.multiple ? '[]' : '');
45	    },
46	    sessionId: function sessionId() {
47	      return this.context.sessionId;
48	    },
49	    currentValues: function currentValues() {
50	      var values = [].concat(babelHelpers.toConsumableArray(this.values), babelHelpers.toConsumableArray(this.uploadedValues));
51	      return this.context.multiple ? values : values.slice(-1);
52	    },
53	    uploaderOptions: function uploaderOptions() {
54	      var _this = this,
55	        _events;
56	      return {
57	        controller: 'main.fileUploader.fieldFileUploaderController',
58	        controllerOptions: this.context.controllerOptions,
59	        files: this.values,
60	        events: (_events = {}, babelHelpers.defineProperty(_events, ui_uploader_core.UploaderEvent.FILE_UPLOAD_COMPLETE, function (event) {
61	          var _event$getData, _event$getData$file, _event$getData$file$g;
62	          var newFileId = (_event$getData = event.getData()) === null || _event$getData === void 0 ? void 0 : (_event$getData$file = _event$getData.file) === null || _event$getData$file === void 0 ? void 0 : (_event$getData$file$g = _event$getData$file.getCustomData()) === null || _event$getData$file$g === void 0 ? void 0 : _event$getData$file$g.realFileId;
63	          if (newFileId) {
64	            _this.uploadedValues.push(newFileId);
65	          }
66	          _this.emitChangeEvent();
67	        }), babelHelpers.defineProperty(_events, ui_uploader_core.UploaderEvent.FILE_REMOVE, function (event) {
68	          var _event$getData2, _event$getData2$file, _event$getData2$file$, _event$getData3, _event$getData3$file;
69	          var justUploadedDeletedFileId = (_event$getData2 = event.getData()) === null || _event$getData2 === void 0 ? void 0 : (_event$getData2$file = _event$getData2.file) === null || _event$getData2$file === void 0 ? void 0 : (_event$getData2$file$ = _event$getData2$file.getCustomData()) === null || _event$getData2$file$ === void 0 ? void 0 : _event$getData2$file$.realFileId;
70	          if (justUploadedDeletedFileId && _this.uploadedValues.includes(justUploadedDeletedFileId))
71	            // just uploaded file was deleted
72	            {
73	              _this.uploadedValues = _this.uploadedValues.filter(function (id) {
74	                return id !== justUploadedDeletedFileId;
75	              });
76	            }
77	          var deletedFileId = (_event$getData3 = event.getData()) === null || _event$getData3 === void 0 ? void 0 : (_event$getData3$file = _event$getData3.file) === null || _event$getData3$file === void 0 ? void 0 : _event$getData3$file.getServerFileId();
78	          if (deletedFileId && main_core.Type.isInteger(deletedFileId))
79	            // existed file was deleted
80	            {
81	              _this.deletedValues.push(deletedFileId);
82	            }
83	          _this.emitChangeEvent();
84	        }), babelHelpers.defineProperty(_events, ui_uploader_core.UploaderEvent.FILE_STATUS_CHANGE, function (event) {
85	          var _event$getTarget;
86	          var files = (_event$getTarget = event.getTarget()) === null || _event$getTarget === void 0 ? void 0 : _event$getTarget.getFiles();
87	          if (!files) {
88	            return;
89	          }
90	          var inProgress = files.some(function (file) {
91	            var status = file.getStatus();
92	            return status === ui_uploader_core.FileStatus.UPLOADING || status === ui_uploader_core.FileStatus.PREPARING || status === ui_uploader_core.FileStatus.PENDING || status === ui_uploader_core.FileStatus.UPLOADING;
93	          });
94	          if (_this.uploadInProgress !== inProgress) {
95	            _this.uploadInProgress = inProgress;
96	            if (inProgress) {
97	              _this.emitUploadStartEvent();
98	            } else {
99	              _this.emitUploadCompleteEvent();
100	            }
101	          }
102	        }), _events),
103	        multiple: this.context.multiple,
104	        autoUpload: true,
105	        treatOversizeImageAsFile: true
106	      };
107	    },
108	    widgetOptions: function widgetOptions() {
109	      return {};
110	    }
111	  },
112	  methods: {
113	    emitChangeEvent: function emitChangeEvent() {
114	      BX.onCustomEvent(window, 'onUIEntityEditorUserFieldExternalChanged', [this.fieldName]);
115	      BX.onCustomEvent(window, 'onCrmEntityEditorUserFieldExternalChanged', [this.fieldName]);
116	    },
117	    emitUploadStartEvent: function emitUploadStartEvent() {
118	      main_core.Event.EventEmitter.emit('BX.UI.EntityEditor:onUserFieldFileUploadStart', {
119	        fieldName: this.fieldName
120	      });
121	    },
122	    emitUploadCompleteEvent: function emitUploadCompleteEvent() {
123	      main_core.Event.EventEmitter.emit('BX.UI.EntityEditor:onUserFieldFileUploadComplete', {
124	        fieldName: this.fieldName
125	      });
126	    }
127	  },
128	  template: "\n\t\t<div class=\"main-field-file-wrapper\">\n\t\t\t<input type=\"hidden\" :name=\"sessionInputName\" :value=\"sessionId\" />\n\t\t\t<input v-if=\"currentValues.length\" v-for=\"(value, index) in currentValues\" :key=\"index\" type=\"hidden\" :name=\"valueInputName\" :value=\"value\"/>\n\t\t\t<input v-else type=\"hidden\" :name=\"valueInputName\" />\n\n\t\t\t<input v-for=\"(value, index) in deletedValues\" :key=\"index\" type=\"hidden\" :name=\"deletedValueInputName\" :value=\"value\"/>\n\n\t\t\t<TileWidgetComponent\n\t\t\t\tref=\"uploader\"\n\t\t\t\t:uploaderOptions=\"uploaderOptions\"\n\t\t\t\t:widgetOptions=\"widgetOptions\"\n\t\t\t/>\n\t\t</div>\n\t"
129	};
130
131	function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
132	function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {};
132 i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { babelHelpers.defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
133	function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
134	function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
135	var _app = /*#__PURE__*/new WeakMap();
136	var App = function App(params) {
137	  babelHelpers.classCallCheck(this, App);
138	  _classPrivateFieldInitSpec(this, _app, {
139	    writable: true,
140	    value: null
141	  });
142	  var container = document.getElementById(params.containerId);
143	  if (!main_core.Type.isDomNode(container)) {
144	    throw new Error('container not found');
145	  }
146	  babelHelpers.classPrivateFieldSet(this, _app, ui_vue3.BitrixVue.createApp(_objectSpread({}, Main), {
147	    fieldName: params.fieldName,
148	    controlId: params.controlId,
149	    context: params.context,
150	    values: params.value.map(function (value) {
151	      return parseInt(value, 10);
152	    })
153	  }));
154	  babelHelpers.classPrivateFieldGet(this, _app).mount(container);
155	};
156
157	exports.App = App;
158
159}((this.BX.Main.Field.File = this.BX.Main.Field.File || {}),BX.Vue3,BX,BX.UI.Uploader,BX.UI.Uploader));
160//# sourceMappingURL=script.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.