/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _SelectedContainer = __webpack_require__(20); var _SelectedContainer2 = _interopRequireDefault(_SelectedContainer); var _SelectedContainerCreate = __webpack_require__(27); var _SelectedContainerCreate2 = _interopRequireDefault(_SelectedContainerCreate); var _NoTreeSelect = __webpack_require__(24); var _NoTreeSelect2 = _interopRequireDefault(_NoTreeSelect); var _TreeSelect = __webpack_require__(26); var _TreeSelect2 = _interopRequireDefault(_TreeSelect); var _SingleTreeSelect = __webpack_require__(28); var _SingleTreeSelect2 = _interopRequireDefault(_SingleTreeSelect); var _SelectOrCreate = __webpack_require__(29); var _SelectOrCreate2 = _interopRequireDefault(_SelectOrCreate); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } $(function () { function createSpecs(url) { // SPECIALIZATIONS var sb_main = new _TreeSelect2.default($('#select-box-1'), { url: url, visible: true, required: true }); // sb_main.setHeader("Тип готовой работы"); var select_container = new _SelectedContainer2.default($('#selected-spec'), { obj: sb_main }); sb_main.connectSelectedContainer(select_container); var sb_1 = new _TreeSelect2.default($('#select-box-2'), { obj: sb_main }); var sb_2 = new _TreeSelect2.default($('#select-box-3'), { obj: sb_main }); var sb_3 = new _TreeSelect2.default($('#select-box-4'), { obj: sb_main }); var sb_4 = new _TreeSelect2.default($('#select-box-5'), { obj: sb_main }); // select_container.on("add", () => { // let $container = $('#spec-value'); // $container.html($('#selected-spec').find(".selected-element").find(".name").html()); // }); sb_main.setNearbySelectBox(sb_1); sb_1.setNearbySelectBox(sb_2, sb_main); sb_2.setNearbySelectBox(sb_3, sb_1); sb_3.setNearbySelectBox(sb_4, sb_2); sb_4.setNearbySelectBox("", sb_3); } function createBuildingClass(url) { // BUILDING-CLASSIFICATION sb_build_main = new _TreeSelect2.default($('#sb-building-classification'), { url: url, visible: true }); sb_build_main.setHeader("Классификация здания"); var sb_build_1 = new _TreeSelect2.default($('#sb-building-sub-classification'), { obj: sb_build_main }); var select_build_container = new _SelectedContainer2.default($('#selected-building-classification'), { obj: sb_build_main, onlyOne: true }); sb_build_main.connectSelectedContainer(select_build_container); sb_build_main.setNearbySelectBox(sb_build_1); sb_build_1.setNearbySelectBox("", sb_build_main); } function createConstructionType(url) { sb_constr_main = new _NoTreeSelect2.default($('#sb-construction-type'), { url: url, visible: true }); sb_constr_main.setHeader("Вид строительства"); var select_constr_type = new _SelectedContainer2.default($('#selected-construction-type'), { obj: sb_constr_main, noTree: true, onlyOne: true }); sb_constr_main.connectSelectedContainer(select_constr_type); } function createLocations(url) { sb_loc_main = new _TreeSelect2.default($('#sb-location-1'), { url: url, visible: true }); sb_loc_main.setHeader("Проектное местоположение"); var select_loc = new _SelectedContainer2.default($('#selected-location'), { obj: sb_loc_main, onlyOne: true }); sb_loc_main.connectSelectedContainer(select_loc); var sb_loc_1 = new _TreeSelect2.default($('#sb-location-2'), { obj: sb_loc_main }); var sb_loc_2 = new _TreeSelect2.default($('#sb-location-3'), { obj: sb_loc_main }); sb_loc_main.setNearbySelectBox(sb_loc_1); sb_loc_1.setNearbySelectBox(sb_loc_2, sb_loc_main); sb_loc_2.setNearbySelectBox("", sb_loc_1); } function createFormat(url) { var sb_format_main = new _NoTreeSelect2.default($('#sb-format'), { url: url, visible: true }); sb_format_main.setHeader("Формат электронной версии"); var select_format = new _SelectedContainer2.default($('#selected-format'), { obj: sb_format_main, noTree: true }); sb_format_main.connectSelectedContainer(select_format); } var sb_loc_main = void 0, sb_constr_main = void 0, sb_build_main = void 0; createSpecs('/api/specializations_flat'); createBuildingClass('/api/building_classifications'); createConstructionType('/api/construction_type'); createLocations('/api/locations_flat'); createFormat('/api/el_format'); // createRealty('/api/realties/current_user') }); /***/ }, /* 1 */, /* 2 */, /* 3 */, /* 4 */, /* 5 */, /* 6 */, /* 7 */, /* 8 */, /* 9 */, /* 10 */, /* 11 */, /* 12 */, /* 13 */, /* 14 */, /* 15 */, /* 16 */, /* 17 */, /* 18 */, /* 19 */, /* 20 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _desc, _value, _class; // ` var _DataTree = __webpack_require__(21); var _DataTree2 = _interopRequireDefault(_DataTree); var _NoTreeData = __webpack_require__(22); var _NoTreeData2 = _interopRequireDefault(_NoTreeData); var _decorators = __webpack_require__(23); var _decorators2 = _interopRequireDefault(_decorators); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } var tmpl_selectedElement = function tmpl_selectedElement(header, name, id) { return '\n
\n
\n ' + header + '\n
\n
\n ' + name + '\n
\n \n
\n'; }; var SelectedContainer = (_class = function () { function SelectedContainer($container, _ref) { var _this = this; var obj = _ref.obj, _ref$noTree = _ref.noTree, noTree = _ref$noTree === undefined ? false : _ref$noTree, _ref$noHeader = _ref.noHeader, noHeader = _ref$noHeader === undefined ? false : _ref$noHeader, _ref$onlyOne = _ref.onlyOne, onlyOne = _ref$onlyOne === undefined ? false : _ref$onlyOne; _classCallCheck(this, SelectedContainer); // TODO: rename variables to camelCase this.$self = $container; this.elements_id = []; // [spec_id, spec_id, ...] this.onlyOne = onlyOne; this.options = { noHeader: noHeader }; var self = this; this.$self.hide(); this.dataPromise = obj.dataPromise; this.dataPromise.then(function (data) { data = data.results ? data.results : data; _this.dataTree = noTree ? new _NoTreeData2.default(data) : new _DataTree2.default(data); _this.$input = _this.$self.find('input[type="hidden"]'); if (_this.$input.length == 0) throw new URIError('input for ' + _this.$self.attr("class") + ' not found'); _this.restoreElements(); }).catch(self._onLoadDataError.bind(self)); } _createClass(SelectedContainer, [{ key: 'restoreElements', value: function restoreElements() { var self = this; if (this.$input && this.$input.val()) { var clearString = this.$input.val().replace(/[\[\]\'\'\"\"]/g, ''); var data = clearString.split(',').filter(function (el) { return el; }); this.elements_id = []; if (this.$input) this.$input.val(this.elements_id.join(',')); data.forEach(function (el) { return self.add(el); }); } } }, { key: 'on', value: function on(methodName, func) { this[methodName] = this[methodName].bind(this, { func: func, bindFunc: true }); } }, { key: '_removeById', value: function _removeById(id) { var index = this.elements_id.indexOf(id); if (index >= 0) { this.elements_id.splice(index, 1); } this.$self.find('span[data-id=\'' + id + '\']').parents('.selected-element').remove(); } }, { key: '_onLoadDataError', value: function _onLoadDataError(error) { console.log("Error loading data -->", error); } }, { key: 'removeAll', value: function removeAll() { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = this.elements_id[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var id = _step.value; this._removeById(id); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, { key: 'remove', value: function remove(e) { var spec_id = $(e.target).data("id"); this._removeById(spec_id); if (this.$input) this.$input.val(this.elements_id.join(',')); if (!this.elements_id.length) this.$self.hide(); e.preventDefault(); } }, { key: 'replace', value: function replace(_id, max_len) { var id = Number(_id); if (this.elements_id.length > 1) throw new RangeError("Replace error: more than one element"); // Remove old this._removeById(this.elements_id[0]); //Add new this._addElementToHtml(id, max_len); this.elements_id = [id]; } }, { key: '_addElementToHtml', value: function _addElementToHtml(id, max_len) { var self = this; var header = SelectedContainer.getHeader(this.dataTree.getSpecChain(id), "", max_len); var name = this.dataTree.getElementById(id).name; this.elements_id.push(id); if (this.$input) this.$input.val(this.elements_id.join(',')); // console.log("header = ", header); this.$self.append(SelectedContainer.getTemplate(header || (this.options.noHeader ? "" : " "), name, id)); this.btn_remove = this.$self.find('.icon-remove'); this.btn_remove.on("click", this.remove.bind(self)); if (this.elements_id.length) this.$self.show(); } }, { key: 'add', value: function add(_id, max_len) { var id = Number(_id); var el = this.dataTree.getElementById(id); if (!el) { throw new Error('\u042D\u043B\u0435\u043C\u0435\u043D\u0442 \u0441 id = ' + _id + ' \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0438 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D'); } var self = this; if (this.onlyOne) { this.replace(_id, max_len); return; } var has_already = this.elements_id.filter(function (el) { return self.dataTree.isChild(el, id); }); if (has_already.length || this.elements_id.indexOf(Number(id)) != -1) { //TODO: do popup messages return; } var not_valid = this.elements_id.filter(function (el) { return self.dataTree.isChild(id, el); }); not_valid.forEach(function (el) { self._removeById(el); }); this._addElementToHtml(id, max_len); } }], [{ key: 'getTemplate', value: function getTemplate(header, name, id) { return tmpl_selectedElement(header, name, id); } }, { key: 'getHeader', value: function getHeader(spec_chain, separator, max_len) { function toShortString(string, max_len) { return string.slice(0, max_len) + (string.length > max_len ? "..." : ""); } separator = separator || ' / '; var str_chain = ""; spec_chain.forEach(function (el) { str_chain = (max_len ? toShortString(el.name, max_len) : el.name) + (str_chain ? separator : "") + str_chain; }); return str_chain; } }]); return SelectedContainer; }(), (_applyDecoratedDescriptor(_class.prototype, 'remove', [_decorators2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'remove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'add', [_decorators2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'add'), _class.prototype)), _class); exports.default = SelectedContainer; /***/ }, /* 21 */ /***/ function(module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Node = function Node(data, tree) { _classCallCheck(this, Node); this.name = data.name; this.id = data.id; if (data.parent === null) { this.parent = "root"; data.parent = { id: "root" }; this.name = ""; } if (data.parent.id && data.parent.id !== 'root') { var el = tree._getElementById(data.parent.id); this.parent = el.node || new Node(el, tree); } data.node = this; this.children = data.children.map(function (el_obj) { var el = tree._getElementById(el_obj.id); if (el.node) return el.node; el.node = new Node(el, tree); return el.node; }); this.children = this.children || []; }; var DataTree = function () { function DataTree(data) { _classCallCheck(this, DataTree); this.baseData = data; this._root = new Node(data[0], this); } /** * получить element в базовой структуре */ _createClass(DataTree, [{ key: "_getElementById", value: function _getElementById(id) { for (var i = 0; i < this.baseData.length; i++) { if (this.baseData[i].id == id) return this.baseData[i]; } } /** * получить element в дереве */ }, { key: "getElementById", value: function getElementById(id) { function searchInChildren(children) { for (var i = 0; i < children.length; i++) { if (children[i].id == id) return children[i]; var res = searchInChildren(children[i].children); if (res) return res; } } return searchInChildren(this._root.children); } /** * Является ли узел c el_id дочерним для parent_id * @param el_id * @param parent_id */ }, { key: "isChild", value: function isChild(elId, parent_id) { function checkParent(el, parent) { if (el.parent == parent) return true; if (el.parent && el.parent != 'root') return checkParent(el.parent, parent); return false; } return checkParent(this.getElementById(elId), this.getElementById(parent_id)); } }, { key: "hasChildren", value: function hasChildren(elId) { return this.getElementById(elId).children.length ? true : false; } /** * @param start_parent_id(number) - начиная с * @param attached(bool) - включая вложенные/дочерние * @param exclude_id - исключая узел c exclude_id и всеми его вложенными узлами * @returns [{name, id}, ...] */ }, { key: "dataToList", value: function dataToList(start_parent_id, attached, exclude_id) { var data_list = []; function goInChildren(children) { for (var i = 0; i < children.length; i++) { if (children[i].id == exclude_id) continue; data_list.push({ name: children[i].name, id: children[i].id }); if (attached) goInChildren(children[i].children); } } var start = start_parent_id ? this.getElementById(start_parent_id) : this._root; goInChildren(start.children); return data_list; } /** * * @param id * @param incl(bool) - исключая сам элемент * @returns {Array} всех узлов/элементов от элемента с id до корня */ }, { key: "getSpecChain", value: function getSpecChain(id) { var incl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var chain = []; var el = this.getElementById(id); function getParent(el) { if (el.parent && el.parent != "root") { chain.push(el.parent); getParent(el.parent); } } getParent(el); if (incl) chain.unshift(el); return chain; } }]); return DataTree; }(); exports.default = DataTree; /***/ }, /* 22 */ /***/ function(module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var NoTreeData = function () { function NoTreeData(data) { _classCallCheck(this, NoTreeData); this.data = data; this.specChain = []; } _createClass(NoTreeData, [{ key: "getElementById", value: function getElementById(id) { for (var i = 0; i < this.data.length; i++) { if (this.data[i].id == id) return this.data[i]; } } }, { key: "getSpecChain", value: function getSpecChain(id, incl) { return this.specChain; } }, { key: "isChild", value: function isChild(el_id, parent_id) { return false; } }, { key: "hasChildren", value: function hasChildren() { return false; } }, { key: "dataToList", value: function dataToList() { return this.data; } }]); return NoTreeData; }(); exports.default = NoTreeData; /***/ }, /* 23 */ /***/ function(module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = onBind; function onBind(target, name, descriptor) { var method = descriptor.value; descriptor.value = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var binds = []; args = Array.from(args); // console.log("args -->", args.slice()); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = args.slice()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var arg = _step.value; // console.log("onBind -->", typeof arg, "arg = ", arg); // console.log("arg.func -->", typeof arg.originalEvent); // typeof arg === 'object' && !(arg.originalEvent) if (arg && arg.bindFunc) { binds.push(arg); args.splice(args.indexOf(arg), 1); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } method.apply(this, args); var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = binds[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var bind = _step2.value; bind.func.bind(this)(args); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return this; }; } // export {onBind}; /***/ }, /* 24 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _AbsBaseSelect2 = __webpack_require__(25); var _NoTreeData = __webpack_require__(22); var _NoTreeData2 = _interopRequireDefault(_NoTreeData); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var NoTreeSelect = function (_AbsBaseSelect) { _inherits(NoTreeSelect, _AbsBaseSelect); function NoTreeSelect($container, _ref) { var url = _ref.url, obj = _ref.obj, _ref$visible = _ref.visible, visible = _ref$visible === undefined ? true : _ref$visible, _ref$required = _ref.required, required = _ref$required === undefined ? false : _ref$required; _classCallCheck(this, NoTreeSelect); //TODO: сделать автоматическую передачу всех параметров родителю return _possibleConstructorReturn(this, (NoTreeSelect.__proto__ || Object.getPrototypeOf(NoTreeSelect)).call(this, $container, { url: url, obj: obj, visible: visible, required: required })); } _createClass(NoTreeSelect, [{ key: '_buildComponents', value: function _buildComponents(data) { _get(NoTreeSelect.prototype.__proto__ || Object.getPrototypeOf(NoTreeSelect.prototype), '_buildComponents', this).call(this, data); this.dataTree = this.dataTree || new _NoTreeData2.default(data.results || data); this.$buttonAddOptions.hide(); this._fillOptionsData(); this._bindEvents(); } }, { key: '_onclickOptionsElement', value: function _onclickOptionsElement(e) { _get(NoTreeSelect.prototype.__proto__ || Object.getPrototypeOf(NoTreeSelect.prototype), '_onclickOptionsElement', this).call(this, e); this.clear(); var id = $(e.target).data("id"); this.selectedContainer.add(id); e.preventDefault(); return false; } }, { key: '_onButtonAddOptions', value: function _onButtonAddOptions(e) { // pass } }]); return NoTreeSelect; }(_AbsBaseSelect2.AbsBaseSelect); exports.default = NoTreeSelect; /***/ }, /* 25 */ /***/ function(module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } //TEMPLATES ` var tmpl_selectBoxEditCont = function tmpl_selectBoxEditCont() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref$preloaderTemplat = _ref.preloaderTemplate, preloaderTemplate = _ref$preloaderTemplat === undefined ? "" : _ref$preloaderTemplat; return "\n
\n
\n \n
\n " + preloaderTemplate + "\n \n \n
\n
\n
\n \n
\n
\n"; }; var tmpl_selectBox = function tmpl_selectBox() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref2$preloaderTempla = _ref2.preloaderTemplate, preloaderTemplate = _ref2$preloaderTempla === undefined ? "" : _ref2$preloaderTempla; return " \n " + preloaderTemplate + "\n \n \n"; }; var tmpl_elementResult = function tmpl_elementResult(el, id, header) { return "
  • "; }; var tmpl_elementOption = function tmpl_elementOption(el) { return "
  • " + el.name + "
  • "; }; var tmpl_plug = function tmpl_plug(_ref3) { var header = _ref3.header, selectBox = _ref3.selectBox; return htmlTemplate({ header: header, selectBox: selectBox }); }; var tmpl_selectBoxOptions = function tmpl_selectBoxOptions() { return "\n
    \n
    \n \n
    \n
    \n"; }; var tmpl_selectBoxResults = function tmpl_selectBoxResults() { return "\n
    \n
    \n
    \n
      \n
    \n
    \n
    \n \u0418\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439\n
      \n
    \n
    \n
    \n
    \n \n
    \n
    \n"; }; var htmlTemplate = function htmlTemplate(_ref4) { var header = _ref4.header, selectBox = _ref4.selectBox, _ref4$required = _ref4.required, required = _ref4$required === undefined ? false : _ref4$required, _ref4$id = _ref4.id, id = _ref4$id === undefined ? "" : _ref4$id, _ref4$classes = _ref4.classes, classes = _ref4$classes === undefined ? "" : _ref4$classes, _ref4$tmpl_selectBoxO = _ref4.tmpl_selectBoxOptions, tmpl_selectBoxOptions = _ref4$tmpl_selectBoxO === undefined ? function () { return ""; } : _ref4$tmpl_selectBoxO, _ref4$tmpl_selectBoxR = _ref4.tmpl_selectBoxResults, tmpl_selectBoxResults = _ref4$tmpl_selectBoxR === undefined ? function () { return ""; } : _ref4$tmpl_selectBoxR; return "\n
    \n
    \n
    " + header + "
    \n \n " + (required ? 'Обязательно' : '') + "\n
    \n
    \n " + selectBox + "\n
    \n \n " + tmpl_selectBoxOptions() + "\n " + tmpl_selectBoxResults() + "\n \n
    \n"; }; var tmpl_light = function tmpl_light(el) { return "" + el + ""; }; var tmpl_preloader = function tmpl_preloader() { return "
    "; }; var AbsBaseSelect = function () { function AbsBaseSelect($container, _ref5) { var url = _ref5.url, obj = _ref5.obj, _ref5$hasEditableCont = _ref5.hasEditableContainer, hasEditableContainer = _ref5$hasEditableCont === undefined ? false : _ref5$hasEditableCont, _ref5$visible = _ref5.visible, visible = _ref5$visible === undefined ? false : _ref5$visible, _ref5$required = _ref5.required, required = _ref5$required === undefined ? false : _ref5$required; _classCallCheck(this, AbsBaseSelect); if (new.target === AbsBaseSelect) { throw new TypeError("Cannot construct Abstract instances directly"); } if (obj && url) { throw new URIError("Must be either the date or url"); } var self = this; //TODO: проверка наличия id контейнера this.containerId = $container.attr("id"); this.$container = $container; this.hasEditableContainer = hasEditableContainer; this.visible = visible; this.required = required; // Быстрая заглушка, до отображения данных if (visible) { var preloaderTemplate = tmpl_preloader(); var selectBox = this.hasEditableContainer ? tmpl_selectBoxEditCont({ preloaderTemplate: preloaderTemplate }) : tmpl_selectBox({ preloaderTemplate: preloaderTemplate }); var plugTemplate = tmpl_plug({ header: "Loading...", selectBox: selectBox }); $container.html(plugTemplate); this.$preloader = $container.find('#component-preloader'); this.$spinner = this.$preloader.find('.spinner'); } if (url) { this.dataPromise = this.getData(url); //TODO: дописать нормальную обработку url this.type = url.split("/")[2]; } var _dataPromise = void 0; if (url) { _dataPromise = this.dataPromise; } else { _dataPromise = obj.dataPromise; } // if (dataTree) this.dataTree = dataTree; _dataPromise.then(self._buildComponents.bind(self)).catch(self._onLoadDataError.bind(self)); // INIT EMPTY PROP this.selectedEl = { id: undefined, value: undefined }; this.parentId = undefined; } _createClass(AbsBaseSelect, [{ key: "getTemplate", value: function getTemplate(classes) { var selectBox = this.hasEditableContainer ? tmpl_selectBoxEditCont() : tmpl_selectBox(); classes = classes ? classes.join(" ") : ""; return htmlTemplate({ header: "", selectBox: selectBox, required: this.required, id: this.containerId, classes: classes, tmpl_selectBoxOptions: tmpl_selectBoxOptions, tmpl_selectBoxResults: tmpl_selectBoxResults }); } }, { key: "getData", value: function getData(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var self = this; return Promise.resolve($.ajax({ url: url, dataType: 'json', data: data })); } }, { key: "hidePreloader", value: function hidePreloader() { // console.log("hide preloader ", this.$preloader); this.$spinner.fadeOut(); return Promise.resolve(this.$preloader.delay(500).fadeOut(2000)); } }, { key: "clear", value: function clear() { this.$searchInput.val(""); this.$optionsBox.hide(); this.$resultsBox.hide(); this.$buttonAdd.hide(); this.$buttonAddOptions.hide(); this.selectedEl = { id: undefined, value: undefined }; if (this.hasEditableContainer) { this.$editableContainer.html(""); this.$editableContainer.hide(); } this.$searchInput.removeClass("active"); } }, { key: "hide", value: function hide() { this.$selectBox.hide(); } }, { key: "show", value: function show() { this.$selectBox.show(); } }, { key: "setHeader", value: function setHeader(header) { if (this.$header) { this.$header.find('.header').html(header); this.$header.show(); } else { this.header = header; } // default hide // this.show(); } }, { key: "setParent", value: function setParent(parentId) { this.parentId = parentId; this._fillOptionsData(); } }, { key: "connectSelectedContainer", value: function connectSelectedContainer(selectedContainer) { this.selectedContainer = selectedContainer; } }, { key: "getIdsSelectedElements", value: function getIdsSelectedElements() { var allChecked = this.$resultsBox.find(":checked"); return allChecked.map(function () { return $(this).data("id"); }); } }, { key: "updateEditableContainer", value: function updateEditableContainer(elId) { // Если нет контейнера для отображения ... if (this.$editableContainer.length) { var separator = ' / '; var chainHeader = AbsBaseSelect.getHeader(this.dataTree.getSpecChain(elId, true), { separator: separator }); chainHeader = AbsBaseSelect.highlight(chainHeader, separator, true); var elTemplate = "" + chainHeader + ""; this.$editableContainer.html(elTemplate); this.$editableContainer.show(); return; } //..., передаем отображение предыдущему selectBox if (this.prevSelectBox) this.prevSelectBox.updateEditableContainer(elId); } }, { key: "_buildComponents", value: function _buildComponents(data) { // AFTER PRELOAD // this.hidePreloader().then(() => console.log("END -)")); var classes = this.$container.attr('class'); if (classes) classes = classes.split(/\s+/); var template = this.getTemplate(classes); this.$container.replaceWith(template); this.$selectBox = $("#" + this.containerId); this.$header = this.$selectBox.find('.select-box-header'); this.$header.find('.header').html(this.header); if (!this.header) this.$header.hide(); this.$resultsBox = this.$selectBox.find('.select-box-results'); this.$optionsBox = this.$selectBox.find('.select-box-options'); this.$searchInput = this.$selectBox.find('input.select-box-search'); this.$buttonAdd = this.$selectBox.find('.button-add.results'); this.$buttonAddOptions = this.$selectBox.find('.button-add.options'); this.$editableContainer = this.$selectBox.find('.editable-container'); this.$resultsBox.hide(); this.$optionsBox.hide(); this.$buttonAddOptions.hide(); //TODO: реализовать нормальное show/hide + visible if (!this.visible) this.hide(); // TODO: сделать проверку на наличие всех нужных элементов и их корректый jq select } }, { key: "_fillOptionsData", value: function _fillOptionsData() { var self = this; var dataList = this.dataTree.dataToList(this.parentId); var $container = this.$optionsBox.find('ul'); $container.html(""); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = dataList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var el = _step.value; $container.append($(tmpl_elementOption(el))); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } this.$selectBox.find('li').on("click", this._onclickOptionsElement.bind(self)); } }, { key: "_search", value: function _search(_ref6) { var searchText = _ref6.searchText, _ref6$parentCategoryI = _ref6.parentCategoryId, parentCategoryId = _ref6$parentCategoryI === undefined ? null : _ref6$parentCategoryI, _ref6$attached = _ref6.attached, attached = _ref6$attached === undefined ? true : _ref6$attached, _ref6$excludeCategory = _ref6.excludeCategoryId, excludeCategoryId = _ref6$excludeCategory === undefined ? null : _ref6$excludeCategory; // :FORMAT spec_list [{name, id}, ...] var specList = this.dataTree.dataToList(parentCategoryId, attached, excludeCategoryId); return specList.filter(function (el) { return el.name.toLowerCase().indexOf(searchText.toLowerCase()) !== -1; }); } }, { key: "_fillContainer", value: function _fillContainer($container, template, _ref7) { var _ref7$searchText = _ref7.searchText, searchText = _ref7$searchText === undefined ? "" : _ref7$searchText, _ref7$parentCategoryI = _ref7.parentCategoryId, parentCategoryId = _ref7$parentCategoryI === undefined ? null : _ref7$parentCategoryI, _ref7$attached = _ref7.attached, attached = _ref7$attached === undefined ? true : _ref7$attached, _ref7$excludeCategory = _ref7.excludeCategoryId, excludeCategoryId = _ref7$excludeCategory === undefined ? null : _ref7$excludeCategory; $container.html(""); $('.other-part').show(); var searchRes = this._search({ searchText: searchText, parentCategoryId: parentCategoryId, attached: attached, excludeCategoryId: excludeCategoryId }); if (!searchRes.length) { if ($container.closest('div').hasClass('main-part')) { $container.append('
  • Ничего не найдено
  • '); this.$resultsBox.find('.button-add.results').hide(); } else { $('.other-part').hide(); } return; } this.$resultsBox.find('.button-add.results').show(); var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = searchRes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var el = _step2.value; var header = AbsBaseSelect.getHeader(this.dataTree.getSpecChain(el.id), {}); $container.append(template(AbsBaseSelect.highlight(el.name, searchText), el.id, header)); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } }, { key: "_fillResultsData", value: function _fillResultsData(searchText) { var self = this; // FILL RESULTS // MAIN PART var $container = this.$resultsBox.find('.main-part ul'); this._fillContainer($container, tmpl_elementResult, { searchText: searchText, parentCategoryId: self.parentId }); // OTHER PART // Если нет parentId, не нужно искать в других категориях if (!this.parentId) { $('.other-part').hide(); } else { $container = this.$resultsBox.find('.other-part ul'); this._fillContainer($container, tmpl_elementResult, { searchText: searchText, excludeCategoryId: self.parentId }); } this.$resultsBox.find('div.header').hide(); this.$resultsBox.find('li').on("mouseover", function (e) { $(e.target).children('.header').show(300); e.preventDefault(); }); this.$resultsBox.find('li').on("mouseout", function (event) { var e = event.toElement || event.relatedTarget; if (e.parentNode == this || e == this) { return; } $(this).find('.header').hide(); }); } }, { key: "setElementById", value: function setElementById(id) { var value = this.dataTree.getElementById(id).name; this.selectedEl.id = id; this.selectedEl.value = value; this.$searchInput.val(value); this.updateEditableContainer(id); } }, { key: "_onclickOptionsElement", value: function _onclickOptionsElement(e) { var id = $(e.target).data("id"); this.setElementById(id); this.$buttonAddOptions.show(); this.$optionsBox.hide(); } }, { key: "_onButtonAddOptions", value: function _onButtonAddOptions(e) { this._addToSelectedContainer(this.selectedEl.id); this.clear(); e.preventDefault(); return false; } }, { key: "_onButtonAdd", value: function _onButtonAdd(e) { var self = this; this.getIdsSelectedElements().each(function () { self._addToSelectedContainer(this); }); this.clear(); e.preventDefault(); return false; } }, { key: "_onLoadDataError", value: function _onLoadDataError(error) { console.log("Error loading data -->", error); } }, { key: "_addToSelectedContainer", value: function _addToSelectedContainer(id) { this.selectedContainer.add(id); } }, { key: "_onInput_searchInput", value: function _onInput_searchInput(e) { this._fillResultsData(this.$searchInput.val()); this.$resultsBox.show(); this.$optionsBox.hide(); } }, { key: "_onClick_searchInput", value: function _onClick_searchInput(e) { this.$optionsBox.show(); this.$resultsBox.hide(); this.$searchInput.val(""); } }, { key: "_bindEvents", value: function _bindEvents() { var self = this; $(document).click(function (event) { if ($(event.target).closest("#" + self.containerId).length) { return; } self._looseFocus(); }); // RESULTS BOX this.$searchInput.on("input", this._onInput_searchInput.bind(self)); // OPTIONS BOX this.$searchInput.on("click", this._onClick_searchInput.bind(self)); this.$buttonAdd.on("click", this._onButtonAdd.bind(self)); this.$buttonAddOptions.on("click", this._onButtonAddOptions.bind(self)); } }, { key: "_looseFocus", value: function _looseFocus() { this.$resultsBox.hide(); this.$optionsBox.hide(); if (!this.selectedEl.id) { this.$searchInput.val(""); } else { this.$searchInput.val(this.selectedEl.value); } } }], [{ key: "getHeader", value: function getHeader(catChain, _ref8) { var _ref8$separator = _ref8.separator, separator = _ref8$separator === undefined ? " / " : _ref8$separator, _ref8$maxLen = _ref8.maxLen, maxLen = _ref8$maxLen === undefined ? 60 : _ref8$maxLen; function toShortString(string, maxLen) { return string.slice(0, maxLen) + (string.length > maxLen ? "..." : ""); } var strChain = ""; catChain.forEach(function (el) { strChain = (maxLen ? toShortString(el.name, maxLen) : el.name) + (strChain ? separator : "") + strChain; }); return strChain; } }, { key: "highlight", value: function highlight(string, sub_string) { var lastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var index = lastIndex ? string.toLowerCase().lastIndexOf(sub_string.toLowerCase()) : string.toLowerCase().indexOf(sub_string.toLowerCase()); if (index === -1) return string; var before = void 0, select = void 0, after = void 0; if (lastIndex) { var _ref9 = [string.slice(0, index), string.slice(index, string.length), ""]; before = _ref9[0]; select = _ref9[1]; after = _ref9[2]; } else { var _ref10 = [string.slice(0, index), string.slice(index, index + sub_string.length), string.slice(index + sub_string.length)]; before = _ref10[0]; select = _ref10[1]; after = _ref10[2]; } return "" + before + tmpl_light(select) + after; } }]); return AbsBaseSelect; }(); exports.default = AbsBaseSelect; exports.htmlTemplate = htmlTemplate; exports.tmpl_plug = tmpl_plug; exports.tmpl_elementOption = tmpl_elementOption; exports.tmpl_preloader = tmpl_preloader; exports.tmpl_light = tmpl_light; exports.tmpl_elementResult = tmpl_elementResult; exports.tmpl_selectBox = tmpl_selectBox; exports.tmpl_selectBoxEditCont = tmpl_selectBoxEditCont; exports.tmpl_selectBoxResults = tmpl_selectBoxResults; exports.tmpl_selectBoxOptions = tmpl_selectBoxOptions; exports.AbsBaseSelect = AbsBaseSelect; /***/ }, /* 26 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _AbsBaseSelect2 = __webpack_require__(25); var _DataTree = __webpack_require__(21); var _DataTree2 = _interopRequireDefault(_DataTree); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var TreeSelect = function (_AbsBaseSelect) { _inherits(TreeSelect, _AbsBaseSelect); function TreeSelect() { _classCallCheck(this, TreeSelect); return _possibleConstructorReturn(this, (TreeSelect.__proto__ || Object.getPrototypeOf(TreeSelect)).apply(this, arguments)); } _createClass(TreeSelect, [{ key: 'setNearbySelectBox', value: function setNearbySelectBox(next, prev) { this.nextSelectBox = next; this.prevSelectBox = prev; } }, { key: 'clearAllNext', value: function clearAllNext() { this.clear(); if (this.nextSelectBox) { this.nextSelectBox.hide(); this.nextSelectBox.clearAllNext(); } } }, { key: 'clearAllPrev', value: function clearAllPrev() { this.clear(); if (this.prevSelectBox) { this.clear(); this.hide(); this.prevSelectBox.clearAllPrev(); } } }, { key: '_buildComponents', value: function _buildComponents(data) { _get(TreeSelect.prototype.__proto__ || Object.getPrototypeOf(TreeSelect.prototype), '_buildComponents', this).call(this, data); //TODO: Изменять свойство visible при show/hide if (!this.visible) this.hide(); if (this.hasEditableContainer) this.$editableContainer.hide(); this.dataTree = this.dataTree || new _DataTree2.default(data.results); this._fillOptionsData(); this._bindEvents(); } }, { key: '_onclickOptionsElement', value: function _onclickOptionsElement(e) { this.clearAllNext(); _get(TreeSelect.prototype.__proto__ || Object.getPrototypeOf(TreeSelect.prototype), '_onclickOptionsElement', this).call(this, e); if (this.nextSelectBox && this.dataTree.hasChildren(this.selectedEl.id)) { this.nextSelectBox.setParent(this.selectedEl.id); this.nextSelectBox.setHeader(this.selectedEl.value); this.nextSelectBox.show(); } if (this.prevSelectBox) { this.prevSelectBox.$buttonAddOptions.hide(); this.prevSelectBox.$searchInput.removeClass("active"); } this.$searchInput.addClass('active'); } }, { key: '_onButtonAddOptions', value: function _onButtonAddOptions(e) { // this._addToSelectedContainer(this.selectedEl.id); // this.clear(); // e.preventDefault(); // return false; _get(TreeSelect.prototype.__proto__ || Object.getPrototypeOf(TreeSelect.prototype), '_onButtonAddOptions', this).call(this, e); this.clearAllNext(); this.clearAllPrev(); } }, { key: '_onButtonAdd', value: function _onButtonAdd(e) { _get(TreeSelect.prototype.__proto__ || Object.getPrototypeOf(TreeSelect.prototype), '_onButtonAdd', this).call(this, e); this.clearAllNext(); this.clearAllPrev(); } }, { key: '_addToSelectedContainer', value: function _addToSelectedContainer(id) { if (this.selectedContainer) { this.selectedContainer.add(id); return; } this.prevSelectBox._addToSelectedContainer(id); } }]); return TreeSelect; }(_AbsBaseSelect2.AbsBaseSelect); exports.default = TreeSelect; /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _desc, _value, _class; var _SelectedContainer2 = __webpack_require__(20); var _SelectedContainer3 = _interopRequireDefault(_SelectedContainer2); var _decorators = __webpack_require__(23); var _decorators2 = _interopRequireDefault(_decorators); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } /** * Контэйнер - позволяющий принимать/отправлять новый объект для создания */ //TODO: попробовать реализовать как Mixin var SelectedContainerCreate = (_class = function (_SelectedContainer) { _inherits(SelectedContainerCreate, _SelectedContainer); function SelectedContainerCreate() { _classCallCheck(this, SelectedContainerCreate); return _possibleConstructorReturn(this, (SelectedContainerCreate.__proto__ || Object.getPrototypeOf(SelectedContainerCreate)).apply(this, arguments)); } _createClass(SelectedContainerCreate, [{ key: 'add', value: function add(_id, max_len) { console.log("_id = ", _id); var self = this; if (_id.text) { this._removeById(this.elements_id[0]); this.elements_id = [0]; this.$input_id = this.$self.find('input[type="hidden"].-id'); this.$input_id.val(""); this.$input_name = this.$self.find('input[type="hidden"].-name'); this.$input_name.val(_id.text); this.$self.append(_SelectedContainer3.default.getTemplate("", _id.text, 0)); this.btn_remove = this.$self.find('.icon-remove'); this.btn_remove.on("click", this.remove.bind(self)); if (this.elements_id.length) this.$self.show(); return; } _get(SelectedContainerCreate.prototype.__proto__ || Object.getPrototypeOf(SelectedContainerCreate.prototype), 'add', this).call(this, _id, max_len); } }]); return SelectedContainerCreate; }(_SelectedContainer3.default), (_applyDecoratedDescriptor(_class.prototype, 'add', [_decorators2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'add'), _class.prototype)), _class); exports.default = SelectedContainerCreate; /***/ }, /* 28 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _AbsBaseSelect = __webpack_require__(25); var _TreeSelect2 = __webpack_require__(26); var _TreeSelect3 = _interopRequireDefault(_TreeSelect2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var tmpl_selectBoxResults = function tmpl_selectBoxResults() { return '\n
    \n
    \n
    \n
      \n
    \n
    \n
    \n
    \n'; }; var tmpl_elementResult = function tmpl_elementResult(el, id, header) { return '
  • \n ' + el + '\n
  • '; }; /** * Поиск только в своей категории, отсутствует множественный выбор */ var SingleTreeSelect = function (_TreeSelect) { _inherits(SingleTreeSelect, _TreeSelect); function SingleTreeSelect() { _classCallCheck(this, SingleTreeSelect); return _possibleConstructorReturn(this, (SingleTreeSelect.__proto__ || Object.getPrototypeOf(SingleTreeSelect)).apply(this, arguments)); } _createClass(SingleTreeSelect, [{ key: 'getTemplate', value: function getTemplate(classes) { var selectBox = this.hasEditableContainer ? (0, _AbsBaseSelect.tmpl_selectBoxEditCont)() : (0, _AbsBaseSelect.tmpl_selectBox)(); classes = classes ? classes.join(" ") : ""; return (0, _AbsBaseSelect.htmlTemplate)({ header: "TestHeader", selectBox: selectBox, id: this.containerId, classes: classes, tmpl_selectBoxOptions: _AbsBaseSelect.tmpl_selectBoxOptions, tmpl_selectBoxResults: tmpl_selectBoxResults }); } }, { key: '_fillResultsData', value: function _fillResultsData(searchText) { var self = this; // FILL RESULTS // MAIN PART var $container = this.$resultsBox.find('.main-part ul'); this._fillContainer($container, tmpl_elementResult, { searchText: searchText, parentCategoryId: self.parentId, attached: false }); this.$resultsBox.find('li').on("click", function (e) { var id = $(e.target).data("id"); self.selectedEl.id = id; self.selectedEl.value = self.dataTree.getElementById(id).name; self.$searchInput.val(self.selectedEl.value); self.updateEditableContainer(id); if (self.$buttonAddOptions) self.$buttonAddOptions.show(); self.$resultsBox.hide(); //TODO: duplicate code if (self.nextSelectBox && self.dataTree.hasChildren(self.selectedEl.id)) { self.nextSelectBox.setParent(self.selectedEl.id); self.nextSelectBox.setHeader(self.selectedEl.value); self.nextSelectBox.show(); } if (self.prevSelectBox) { self.prevSelectBox.$buttonAddOptions.hide(); self.prevSelectBox.$searchInput.removeClass("active"); } self.$searchInput.addClass('active'); }); } }]); return SingleTreeSelect; }(_TreeSelect3.default); exports.default = SingleTreeSelect; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _AbsBaseSelect2 = __webpack_require__(25); var _NoTreeData = __webpack_require__(22); var _NoTreeData2 = _interopRequireDefault(_NoTreeData); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var htmlTemplate = function htmlTemplate(_ref) { var header = _ref.header, selectBox = _ref.selectBox, _ref$id = _ref.id, id = _ref$id === undefined ? "" : _ref$id, _ref$classes = _ref.classes, classes = _ref$classes === undefined ? "" : _ref$classes, _ref$tmpl_selectBoxOp = _ref.tmpl_selectBoxOptions, tmpl_selectBoxOptions = _ref$tmpl_selectBoxOp === undefined ? function () { return ""; } : _ref$tmpl_selectBoxOp, _ref$tmpl_selectBoxRe = _ref.tmpl_selectBoxResults, tmpl_selectBoxResults = _ref$tmpl_selectBoxRe === undefined ? function () { return ""; } : _ref$tmpl_selectBoxRe; return '\n
    \n \n\n ' + tmpl_selectBoxOptions() + '\n ' + tmpl_selectBoxResults() + '\n \n
    \n'; }; var tmpl_selectBoxResults = function tmpl_selectBoxResults() { return '\n
    \n \n
    \n'; }; // const tmpl_elementResult = (el, id, header) => // `
  • // ${el} //
  • `; var SelectOrCreate = function (_AbsBaseSelect) { _inherits(SelectOrCreate, _AbsBaseSelect); function SelectOrCreate() { _classCallCheck(this, SelectOrCreate); return _possibleConstructorReturn(this, (SelectOrCreate.__proto__ || Object.getPrototypeOf(SelectOrCreate)).apply(this, arguments)); } _createClass(SelectOrCreate, [{ key: 'getTemplate', value: function getTemplate(classes) { var selectBox = this.hasEditableContainer ? (0, _AbsBaseSelect2.tmpl_selectBoxEditCont)() : (0, _AbsBaseSelect2.tmpl_selectBox)(); classes = classes ? classes.join(" ") : ""; return htmlTemplate({ header: "TestHeader", selectBox: selectBox, id: this.containerId, classes: classes, tmpl_selectBoxOptions: _AbsBaseSelect2.tmpl_selectBoxOptions, tmpl_selectBoxResults: tmpl_selectBoxResults }); } }, { key: 'setLinkBoxes', value: function setLinkBoxes() { var boxes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; this.boxes = boxes; } }, { key: '_buildComponents', value: function _buildComponents(data) { _get(SelectOrCreate.prototype.__proto__ || Object.getPrototypeOf(SelectOrCreate.prototype), '_buildComponents', this).call(this, data); var self = this; //TODO: Изменять свойство visible при show/hide if (!this.visible) this.hide(); if (this.hasEditableContainer) this.$editableContainer.hide(); this.dataTree = this.dataTree || new _NoTreeData2.default(data); this.$buttonCreate = this.$resultsBox.find('.create'); // console.log("$buttonCreate = ", $buttonCreate); this.$buttonCreate.on("click", function () { return console.log('Button Create'); }); this.$buttonCreate.on("click", this._onButtonCreate.bind(self)); this._fillOptionsData(); this._bindEvents(); this.$searchInput.attr("placeholder", 'Создать/Выбрать объект'); } }, { key: 'getData', value: function getData(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return Promise.resolve($.ajax({ url: url, dataType: 'json', data: data })); } }, { key: '_onLoadDataError', value: function _onLoadDataError(error) { console.log("Error loading data -->", error); } }, { key: '_fillBoxes', value: function _fillBoxes() { var _this2 = this; var self = this; var id = this.selectedEl.id; this.getData('/api/realties?id=' + id).then(function (_data) { var data = _data.results[0] || _data[0]; // this._addToSelectedContainer(this.selectedEl.id); // console.log("res data = ", data); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _this2.boxes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var box = _step.value; box.selectedContainer.removeAll(); //TODO: Костыль! if (box.type == 'building_classifications' && data['building_classification']) { // console.log("building_classification = ",data['building_classification']); box._addToSelectedContainer(data['building_classification'].id); } else if (box.type == 'locations_flat' && data['location']) { // console.log("location = ",data['location']); box._addToSelectedContainer(data['location'].id); } else if (box.type == 'construction_type' && data['construction_type']) { // console.log("construction_type = ",data['construction_type']); box._addToSelectedContainer(data['construction_type'].id); } else { console.log("Нет совпадений для ", box.type); box.selectedContainer.$input.removeAttr('value'); } } //Костыль для обновлени имени модельного окна "Редктирование Объекта" } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var name = data['name']; var $name = $('#realtyEditModal').find('input[name=name]'); if ($name.length > 0) $name.val(name); }).catch(this._onLoadDataError.bind(self)); } }, { key: '_onButtonAddOptions', value: function _onButtonAddOptions(e) { this._fillBoxes(); _get(SelectOrCreate.prototype.__proto__ || Object.getPrototypeOf(SelectOrCreate.prototype), '_onButtonAddOptions', this).call(this, e); } }, { key: '_onButtonCreate', value: function _onButtonCreate(e) { this.selectedContainer.add({ text: this.$searchInput.val() }); if (this.boxes) { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = this.boxes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var box = _step2.value; console.log('box clear'); box.selectedContainer.removeAll(); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } e.preventDefault(); this.$buttonCreate.hide(); this.$searchInput.val(""); } }, { key: '_onInput_searchInput', value: function _onInput_searchInput(e) { // this._fillResultsData(self .$searchInput.val()); this.$buttonAddOptions.hide(); this.$buttonCreate.show(); // console.log("on input"); this.$resultsBox.show(); this.$optionsBox.hide(); } }, { key: '_onClick_searchInput', value: function _onClick_searchInput(e) { this.$optionsBox.show(); this.$resultsBox.hide(); this.$searchInput.val(""); } }]); return SelectOrCreate; }(_AbsBaseSelect2.AbsBaseSelect); exports.default = SelectOrCreate; /***/ } /******/ ]);