File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/components/bitrix/main.ui.filter/templates/.default/script.js.map
Back
{"version":3,"file":"script.js","sources":["src/blocks/date-group.js","src/blocks/main-ui-control-field.js","src/blocks/main-ui-control-field-group.js","src/blocks/main-ui-control-string.js","src/blocks/main-ui-control-textarea.js","src/blocks/main-ui-filter-field-list-item.js","src/blocks/main-ui-filter-info.js","src/blocks/main-ui-number.js","src/blocks/main-ui-search-square.js","src/blocks/number-group.js","src/blocks/sidebar-item.js","src/utils.js","src/destination-selector.js","src/entity-selector.js","src/field-controller.js","src/main-ui-control-custom-entity.js","src/search.js","src/settings.js","src/filter.js","src/field/field.js","src/api.js","src/fields/create-date-input-decl.js","src/fields/create-number-input-decl.js","src/fields/create-line-decl.js","src/fields/create-select-decl.js","src/additional-filter.js","src/fields.js","src/presets.js"],"sourcesContent":[";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['date-group'] = function(data)\n\t{\n\t\tvar group, select, deleteButton, label, dragButton;\n\n\t\tgroup = {\n\t\t\tblock: 'main-ui-control-field-group',\n\t\t\tname: 'name' ? (data.name + '_datesel') : '',\n\t\t\tmix: 'mix' in data ? data.mix : null,\n\t\t\tattrs: {\n\t\t\t\t'data-type': 'type' in data ? data.type : '',\n\t\t\t\t'data-name': 'name' in data ? data.name : '',\n\t\t\t\t'data-time': data.enableTime\n\n\t\t\t},\n\t\t\tcontent: []\n\t\t};\n\n\t\tif ('label' in data && BX.type.isNotEmptyString(data.label))\n\t\t{\n\t\t\tlet labelContent = data.label;\n\n\t\t\tif ('icon' in data && BX.Type.isPlainObject(data.icon))\n\t\t\t{\n\t\t\t\tlabelContent = [\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: 'main-ui-control-field-label-icon',\n\t\t\t\t\t\ttag: 'img',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttitle: data.icon.title ? data.icon.title : '',\n\t\t\t\t\t\t\tsrc: data.icon.url\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\tblock: 'main-ui-control-field-label-text',\n\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\tcontent: labelContent\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}\n\t\t\tlabel = {\n\t\t\t\tblock: 'main-ui-control-field-label',\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {title: data.label},\n\t\t\t\tcontent: labelContent\n\t\t\t};\n\n\t\t\tgroup.content.push(label);\n\t\t}\n\n\t\tselect = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tdragButton: false,\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-select',\n\t\t\t\ttabindex: 'tabindex' in data ? data.tabindex : '',\n\t\t\t\tvalue: 'value' in data ? data.value : '',\n\t\t\t\titems: 'items' in data ? data.items : '',\n\t\t\t\tname: 'name' in data ? (data.name + '_datesel') : '',\n\t\t\t\tparams: 'params' in data ? data.params : '',\n\t\t\t\tvalueDelete: false\n\t\t\t}\n\t\t};\n\n\t\tgroup.content.push(select);\n\n\t\tif ('content' in data && BX.type.isArray(data.content))\n\t\t{\n\t\t\tdata.content.forEach(function(current) {\n\t\t\t\tgroup.content.push(current);\n\t\t\t});\n\t\t}\n\n\t\tif ('content' in data &&\n\t\t\t(BX.type.isPlainObject(data.content) || BX.type.isNotEmptyString(data.content)))\n\t\t{\n\t\t\tgroup.content.push(data.content);\n\t\t}\n\n\t\tdeleteButton = {\n\t\t\tblock: 'main-ui-item-icon-container',\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-item-icon',\n\t\t\t\tmix: ['main-ui-delete', 'main-ui-filter-field-delete'],\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {\n\t\t\t\t\ttitle: 'deleteTitle' in data && data.deleteTitle ? data.deleteTitle : ''\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tgroup.content.push(deleteButton);\n\n\t\tif (!('dragButton' in data) || data.dragButton !== false)\n\t\t{\n\t\t\tdragButton = {\n\t\t\t\tblock: 'main-ui-filter-icon-grab',\n\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {\n\t\t\t\t\ttitle: 'dragTitle' in data && data.dragTitle ? data.dragTitle : ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tgroup.content.push(dragButton);\n\t\t}\n\n\t\treturn group;\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-control-field'] = function(data)\n\t{\n\t\tvar field, deleteButton, valueDeleteButton, label, dragButton;\n\n\t\tfield = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: 'mix' in data ? data.mix : null,\n\t\t\tattrs: {\n\t\t\t\t'data-type': 'type' in data ? data.type : '',\n\t\t\t\t'data-name': 'name' in data ? data.name : ''\n\t\t\t},\n\t\t\tcontent: []\n\t\t};\n\n\t\tif ('label' in data && BX.type.isNotEmptyString(data.label))\n\t\t{\n\t\t\tlet labelContent = data.label;\n\n\t\t\tif ('icon' in data && BX.Type.isPlainObject(data.icon))\n\t\t\t{\n\t\t\t\tlabelContent = [\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: 'main-ui-control-field-label-icon',\n\t\t\t\t\t\ttag: 'img',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttitle: data.icon.title ? data.icon.title : '',\n\t\t\t\t\t\t\tsrc: data.icon.url\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\tblock: 'main-ui-control-field-label-text',\n\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\tcontent: labelContent\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}\n\n\t\t\tlabel = {\n\t\t\t\tblock: 'main-ui-control-field-label',\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {title: data.label},\n\t\t\t\tcontent: labelContent\n\t\t\t};\n\n\t\t\tfield.content.push(label);\n\t\t}\n\n\t\tif (BX.type.isArray(data.content))\n\t\t{\n\t\t\tdata.content.forEach(function(current) {\n\t\t\t\tfield.content.push(current);\n\t\t\t});\n\t\t}\n\t\telse if (BX.type.isPlainObject(data.content) ||\n\t\t\tBX.type.isNotEmptyString(data.content))\n\t\t{\n\t\t\tfield.content.push(data.content);\n\t\t}\n\n\t\tif ('valueDelete' in data && data.valueDelete === true)\n\t\t{\n\t\t\tvalueDeleteButton = {\n\t\t\t\tblock: 'main-ui-control-value-delete',\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-control-value-delete-item',\n\t\t\t\t\ttag: 'span'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfield.content.push(valueDeleteButton);\n\t\t}\n\n\t\tif ('deleteButton' in data && data.deleteButton === true)\n\t\t{\n\t\t\tdeleteButton = {\n\t\t\t\tblock: 'main-ui-item-icon-container',\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-item-icon',\n\t\t\t\t\tmix: ['main-ui-delete', 'main-ui-filter-field-delete'],\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttitle: 'deleteTitle' in data && data.deleteTitle ? data.deleteTitle : ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfield.content.push(deleteButton);\n\t\t}\n\n\t\tif (!('dragButton' in data) || data.dragButton !== false)\n\t\t{\n\t\t\tdragButton = {\n\t\t\t\tblock: 'main-ui-filter-icon-grab',\n\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {\n\t\t\t\t\ttitle: 'dragTitle' in data && data.dragTitle ? data.dragTitle : ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfield.content.push(dragButton);\n\t\t}\n\n\t\treturn field;\n\t};\n\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-control-field-group'] = function(data)\n\t{\n\t\tvar field, deleteButton, label, dragButton;\n\n\t\tfield = {\n\t\t\tblock: 'main-ui-control-field-group',\n\t\t\tmix: 'mix' in data ? data.mix : null,\n\t\t\tattrs: {\n\t\t\t\t'data-type': 'type' in data ? data.type : '',\n\t\t\t\t'data-name': 'name' in data ? data.name : ''\n\t\t\t},\n\t\t\tcontent: []\n\t\t};\n\n\t\tif ('label' in data && BX.type.isNotEmptyString(data.label))\n\t\t{\n\t\t\tlet labelContent = data.label;\n\n\t\t\tif ('icon' in data && BX.Type.isPlainObject(data.icon))\n\t\t\t{\n\t\t\t\tlabelContent = [\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: 'main-ui-control-field-label-icon',\n\t\t\t\t\t\ttag: 'img',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttitle: data.icon.title ? data.icon.title : '',\n\t\t\t\t\t\t\tsrc: data.icon.url\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\tblock: 'main-ui-control-field-label-text',\n\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\tcontent: labelContent\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}\n\t\t\tlabel = {\n\t\t\t\tblock: 'main-ui-control-field-label',\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {title: data.label},\n\t\t\t\tcontent: labelContent\n\t\t\t};\n\n\t\t\tfield.content.push(label);\n\t\t}\n\n\t\tif (BX.type.isArray(data.content))\n\t\t{\n\t\t\tdata.content.forEach(function(current) {\n\t\t\t\tfield.content.push(current);\n\t\t\t});\n\t\t}\n\t\telse if (BX.type.isPlainObject(data.content) ||\n\t\t\tBX.type.isNotEmptyString(data.content))\n\t\t{\n\t\t\tfield.content.push(data.content);\n\t\t}\n\n\t\tif ('deleteButton' in data && data.deleteButton === true)\n\t\t{\n\t\t\tdeleteButton = {\n\t\t\t\tblock: 'main-ui-item-icon-container',\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-item-icon',\n\t\t\t\t\tmix: ['main-ui-delete', 'main-ui-filter-field-delete'],\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttitle: 'deleteTitle' in data && data.deleteTitle ? data.deleteTitle : ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfield.content.push(deleteButton);\n\t\t}\n\n\t\tif (!('dragButton' in data) || data.dragButton !== false)\n\t\t{\n\t\t\tdragButton = {\n\t\t\t\tblock: 'main-ui-filter-icon-grab',\n\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {\n\t\t\t\t\ttitle: 'dragTitle' in data && data.dragTitle ? data.dragTitle : ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfield.content.push(dragButton);\n\t\t}\n\n\t\treturn field;\n\t};\n\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-control-string'] = function(data)\n\t{\n\t\treturn {\n\t\t\tblock: 'main-ui-control-string',\n\t\t\tmix: ['main-ui-control'],\n\t\t\ttag: 'input',\n\t\t\tattrs: {\n\t\t\t\ttype: 'type' in data ? data.type : 'text',\n\t\t\t\tname: 'name' in data ? data.name : '',\n\t\t\t\tplaceholder: 'placeholder' in data ? data.placeholder : '',\n\t\t\t\ttabindex: 'tabindex' in data ? data.tabindex : '',\n\t\t\t\tvalue: 'value' in data ? data.value : ''\n\t\t\t}\n\t\t};\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-control-textarea'] = function(data)\n\t{\n\t\treturn {\n\t\t\tblock: 'main-ui-control-string',\n\t\t\tmix: ['main-ui-control main-ui-control-textarea'],\n\t\t\ttag: 'textarea',\n\t\t\tattrs: {\n\t\t\t\tname: 'name' in data ? data.name : '',\n\t\t\t\tplaceholder: 'placeholder' in data ? data.placeholder : '',\n\t\t\t\ttabindex: 'tabindex' in data ? data.tabindex : '',\n\t\t\t},\n\t\t\tcontent: 'value' in data ? data.value : '',\n\t\t};\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-filter-field-list-item'] = function(data)\n\t{\n\t\tvar label = {\n\t\t\tblock: 'main-ui-select-inner-label',\n\t\t\tcontent: 'label' in data ? data.label : ''\n\t\t};\n\n\t\tvar item = {\n\t\t\tblock: 'main-ui-filter-field-list-item',\n\t\t\tmix: 'main-ui-select-inner-item',\n\t\t\tattrs: {\n\t\t\t\t'data-id': data.id,\n\t\t\t\t'data-name': data.name,\n\t\t\t\t'data-item': 'item' in data ? JSON.stringify(data.item) : {}\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tclick: 'onClick' in data ? data.onClick : ''\n\t\t\t},\n\t\t\tcontent: label\n\t\t};\n\n\t\treturn item;\n\t}\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-filter-info'] = function(data)\n\t{\n\t\treturn {\n\t\t\tblock: 'main-ui-filter-info',\n\t\t\ttag: 'span',\n\t\t\tcontent: data.content,\n\t\t\tattrs: {\n\t\t\t\ttitle: data.title\n\t\t\t}\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-number'] = function(data)\n\t{\n\t\tvar control, input, valueDelete;\n\n\t\tcontrol = {\n\t\t\tblock: 'main-ui-number',\n\t\t\tmix: ['main-ui-control'],\n\t\t\tcontent: []\n\t\t};\n\n\t\tif ('mix' in data && BX.type.isArray(data.mix))\n\t\t{\n\t\t\tdata.mix.forEach(function(current) {\n\t\t\t\tcontrol.mix.push(current);\n\t\t\t});\n\t\t}\n\n\t\tinput = {\n\t\t\tblock: 'main-ui-number-input',\n\t\t\tmix: ['main-ui-control-input'],\n\t\t\ttag: 'input',\n\t\t\tattrs: {\n\t\t\t\ttype: 'number',\n\t\t\t\tname: 'name' in data ? data.name : '',\n\t\t\t\ttabindex: 'tabindex' in data ? data.tabindex : '',\n\t\t\t\tvalue: 'value' in data ? data.value : '',\n\t\t\t\tplaceholder: 'placeholder' in data ? data.placeholder : '',\n\t\t\t\tautocomplete: 'off'\n\t\t\t}\n\t\t};\n\n\t\tcontrol.content.push(input);\n\n\t\tif ('valueDelete' in data && data.valueDelete === true)\n\t\t{\n\t\t\tvalueDelete = {\n\t\t\t\tblock: 'main-ui-control-value-delete',\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-control-value-delete-item',\n\t\t\t\t\ttag: 'span'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcontrol.content.push(valueDelete);\n\t\t}\n\n\t\treturn control;\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['main-ui-search-square'] = function(data)\n\t{\n\t\tvar mix = ['main-ui-filter-search-square'];\n\n\t\tif ('isPreset' in data && data.isPreset)\n\t\t{\n\t\t\tmix.push('main-ui-filter-search-square-preset');\n\t\t}\n\n\t\tlet title = ('title' in data ? data.title : '');\n\t\tlet name = ('name' in data ? BX.util.htmlspecialcharsback(data.name) : '');\n\t\tif ('icon' in data && BX.Type.isPlainObject(data.icon))\n\t\t{\n\t\t\tlet iconTitle = data.icon.title;\n\t\t\ttitle = title.length ? (iconTitle + ': ' + title) : '';\n\t\t\tname = name.length ? (iconTitle + ': ' + name) : '';\n\t\t}\n\n\t\treturn {\n\t\t\tblock: 'main-ui-square',\n\t\t\tmix: mix,\n\t\t\tattrs: {\n\t\t\t\t'data-item': 'item' in data ? JSON.stringify(data.item) : '',\n\t\t\t\t'title': title\n\t\t\t},\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-square-item',\n\t\t\t\t\tcontent: name\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-square-delete',\n\t\t\t\t\tmix: ['main-ui-item-icon']\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['number-group'] = function(data)\n\t{\n\t\tvar group, select, deleteButton, label, dragButton;\n\n\t\tgroup = {\n\t\t\tblock: 'main-ui-control-field-group',\n\t\t\tname: 'name' in data ? (data.name + '_numsel') : '',\n\t\t\tmix: 'mix' in data ? data.mix : null,\n\t\t\tattrs: {\n\t\t\t\t'data-type': 'type' in data ? data.type : '',\n\t\t\t\t'data-name': 'name' in data ? data.name : ''\n\t\t\t},\n\t\t\tcontent: []\n\t\t};\n\n\t\tif ('label' in data && BX.type.isNotEmptyString(data.label))\n\t\t{\n\t\t\tlet labelContent = data.label;\n\n\t\t\tif ('icon' in data && BX.Type.isPlainObject(data.icon))\n\t\t\t{\n\t\t\t\tlabelContent = [\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: 'main-ui-control-field-label-icon',\n\t\t\t\t\t\ttag: 'img',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttitle: data.icon.title ? data.icon.title : '',\n\t\t\t\t\t\t\tsrc: data.icon.url\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\tblock: 'main-ui-control-field-label-text',\n\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\tcontent: labelContent\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}\n\n\t\t\tlabel = {\n\t\t\t\tblock: 'main-ui-control-field-label',\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {title: data.label},\n\t\t\t\tcontent: labelContent\n\t\t\t};\n\n\t\t\tgroup.content.push(label);\n\t\t}\n\n\t\tselect = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tdragButton: false,\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-select',\n\t\t\t\ttabindex: 'tabindex' in data ? data.tabindex : '',\n\t\t\t\tvalue: 'value' in data ? data.value : '',\n\t\t\t\titems: 'items' in data ? data.items : '',\n\t\t\t\tname: 'name' in data ? (data.name + '_numsel') : '',\n\t\t\t\tparams: 'params' in data ? data.params : '',\n\t\t\t\tvalueDelete: false\n\t\t\t}\n\t\t};\n\n\t\tgroup.content.push(select);\n\n\t\tif ('content' in data && BX.type.isArray(data.content))\n\t\t{\n\t\t\tdata.content.forEach(function(current) {\n\t\t\t\tgroup.content.push(current);\n\t\t\t});\n\t\t}\n\n\t\tif ('content' in data &&\n\t\t\t(BX.type.isPlainObject(data.content) || BX.type.isNotEmptyString(data.content)))\n\t\t{\n\t\t\tgroup.content.push(data.content);\n\t\t}\n\n\t\tdeleteButton = {\n\t\t\tblock: 'main-ui-item-icon-container',\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-item-icon',\n\t\t\t\tmix: ['main-ui-delete', 'main-ui-filter-field-delete'],\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {\n\t\t\t\t\ttitle: 'deleteTitle' in data && data.deleteTitle ? data.deleteTitle : ''\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tgroup.content.push(deleteButton);\n\n\t\tif (!('dragButton' in data) || data.dragButton !== false)\n\t\t{\n\t\t\tdragButton = {\n\t\t\t\tblock: 'main-ui-filter-icon-grab',\n\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\ttag: 'span',\n\t\t\t\tattrs: {\n\t\t\t\t\ttitle: 'dragTitle' in data && data.dragTitle ? data.dragTitle : ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tgroup.content.push(dragButton);\n\t\t}\n\n\t\treturn group;\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui.block');\n\n\tBX.Main.ui.block['sidebar-item'] = function(data)\n\t{\n\t\treturn {\n\t\t\tblock: 'main-ui-filter-sidebar-item' + ('pinned' in data && data.pinned ? ' main-ui-item-pin' : ''),\n\t\t\tattrs: {\n\t\t\t\t'data-id': 'id' in data ? data.id : ''\n\t\t\t},\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-filter-icon-grab',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttitle: 'dragTitle' in data && data.dragTitle ? data.dragTitle : ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-filter-sidebar-item-text-container',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: 'main-ui-filter-sidebar-item-input',\n\t\t\t\t\t\t\ttag: 'input',\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tplaceholder: 'placeholder' in data ? data.placeholder : '',\n\t\t\t\t\t\t\t\tvalue: 'text' in data ? BX.util.htmlspecialchars(BX.util.htmlspecialcharsback(data.text)) : ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: 'main-ui-filter-sidebar-item-text',\n\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\tcontent: 'text' in data ? data.text : '',\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\ttitle: 'text' in data ? data.text : ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tblock: 'main-ui-filter-icon-pin',\n\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\ttitle: 'noEditPinTitle' in data && data.noEditPinTitle ? data.noEditPinTitle : ''\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},\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-filter-icon-edit',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttitle: 'editNameTitle' in data && data.editNameTitle ? data.editNameTitle : ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-delete',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttitle: 'removeTitle' in data && data.removeTitle ? data.removeTitle : ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-filter-icon-pin',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tmix: ['main-ui-item-icon'],\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\ttitle: 'editPinTitle' in data && data.editPinTitle ? data.editPinTitle : ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-filter-edit-mask'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Filter');\n\n\n\t/**\n\t * @type {{\n\t * \t\tcache: {},\n\t * \t\tstyleForEach: BX.Filter.Utils.styleForEach,\n\t * \t\tclosestParent: BX.Filter.Utils.closestParent,\n\t * \t\tclosestChilds: BX.Filter.Utils.closestChilds,\n\t * \t\tgetNext: BX.Filter.Utils.getNext,\n\t * \t\tgetPrev: BX.Filter.Utils.getPrev,\n\t * \t\tcollectionSort: BX.Filter.Utils.collectionSort,\n\t * \t\tgetIndex: BX.Filter.Utils.getIndex,\n\t * \t\tgetByClass: BX.Filter.Utils.getByClass,\n\t * \t\tgetByTag: BX.Filter.Utils.getByTag,\n\t * \t\tgetBySelector: BX.Filter.Utils.getBySelector,\n\t * \t\trequestAnimationFrame: BX.Filter.Utils.requestAnimationFrame,\n\t * \t\tsortObject: BX.Filter.Utils.sortObject,\n\t * \t\tobjectsIsEquals: BX.Filter.Utils.objectsIsEquals,\n\t * \t\tisKey: BX.Filter.Utils.isKey\n\t * \t}}\n\t */\n\tBX.Filter.Utils = {\n\t\t/** @protected **/\n\t\tcache: {},\n\n\t\t/**\n\t\t * Sets css properties for element or elements collection\n\t\t * @param {?HTMLElement|?HTMLElement[]} collection\n\t\t * @param {object} properties\n\t\t */\n\t\tstyleForEach: function(collection, properties)\n\t\t{\n\t\t\tvar keys;\n\t\t\tproperties = BX.type.isPlainObject(properties) ? properties : null;\n\t\t\tkeys = Object.keys(properties);\n\n\t\t\t[].forEach.call((collection || []), function(current) {\n\t\t\t\tkeys.forEach(function(propKey) {\n\t\t\t\t\tBX.style(current, propKey, properties[propKey]);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets closest parent or closest parent element with class name\n\t\t * @param {HTMLElement} item\n\t\t * @param {?string} [className]\n\t\t * @return {?HTMLElement|?Node}\n\t\t */\n\t\tclosestParent: function(item, className)\n\t\t{\n\t\t\tif (item)\n\t\t\t{\n\t\t\t\tif (!className)\n\t\t\t\t{\n\t\t\t\t\treturn item.parentNode || null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treturn BX.findParent(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\t{className: className}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets closest childs elements\n\t\t * @param {HTMLElement} item\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tclosestChilds: function(item)\n\t\t{\n\t\t\treturn !!item ? item.children : null;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets next element\n\t\t * @param {HTMLElement} currentItem\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetNext: function(currentItem)\n\t\t{\n\t\t\treturn !!currentItem ? currentItem.nextElementSibling : null;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets previews element\n\t\t * @param {HTMLElement} currentItem\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetPrev: function(currentItem)\n\t\t{\n\t\t\treturn !!currentItem ? currentItem.previousElementSibling : null\n\t\t},\n\n\n\t\t/**\n\t\t * Move current item after target item\n\t\t * @param {HTMLElement} current\n\t\t * @param {HTMLElement} target\n\t\t */\n\t\tcollectionSort: function(current, target)\n\t\t{\n\t\t\tvar root, collection, collectionLength, currentIndex, targetIndex;\n\n\t\t\tif (current && target && current !== target && current.parentNode === target.parentNode)\n\t\t\t{\n\t\t\t\troot = this.closestParent(target);\n\t\t\t\tcollection = this.closestChilds(root);\n\t\t\t\tcollectionLength = collection.length;\n\t\t\t\tcurrentIndex = this.getIndex(collection, current);\n\t\t\t\ttargetIndex = this.getIndex(collection, target);\n\n\t\t\t\tif (collectionLength === targetIndex) {\n\t\t\t\t\troot.appendChild(target);\n\t\t\t\t}\n\n\t\t\t\tif (currentIndex > targetIndex) {\n\t\t\t\t\troot.insertBefore(current, target);\n\t\t\t\t}\n\n\t\t\t\tif (currentIndex < targetIndex && collectionLength !== targetIndex)\n\t\t\t\t{\n\t\t\t\t\troot.insertBefore(current, this.getNext(target));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets collection item index\n\t\t * @param {Array|HTMLCollection|NodeList} collection\n\t\t * @param {*} item\n\t\t * @return {int}\n\t\t */\n\t\tgetIndex: function(collection, item)\n\t\t{\n\t\t\treturn [].indexOf.call((collection || []), item);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets elements by class name\n\t\t * @param {HTMLElement|HTMLDocument} rootElement\n\t\t * @param {string} className\n\t\t * @param {boolean} [all = false]\n\t\t * @returns {?HTMLElement|?HTMLElement[]}\n\t\t */\n\t\tgetByClass: function(rootElement, className, all)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (className)\n\t\t\t{\n\t\t\t\tresult = (rootElement || document.body).getElementsByClassName(className);\n\n\t\t\t\tif (!all)\n\t\t\t\t{\n\t\t\t\t\tresult = result.length ? result[0] : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets element or elements by tag name\n\t\t * @param {HTMLElement|HTMLDocument} rootElement\n\t\t * @param {string} tag\n\t\t * @param {boolean} [all = false]\n\t\t * @return {?HTMLElement|?HTMLElement[]}\n\t\t */\n\t\tgetByTag: function(rootElement, tag, all)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (tag)\n\t\t\t{\n\t\t\t\tresult = (rootElement || document.body).getElementsByTagName(tag);\n\n\t\t\t\tif (!all)\n\t\t\t\t{\n\t\t\t\t\tresult = result.length ? result[0] : null;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets element or elements by css selector\n\t\t * @param {HTMLElement|HTMLDocument|Node} rootElement\n\t\t * @param {string} selector\n\t\t * @param {boolean} [all = false]\n\t\t * @return {?HTMLElement|?HTMLElement[]}\n\t\t */\n\t\tgetBySelector: function(rootElement, selector, all)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (selector)\n\t\t\t{\n\t\t\t\tif (!all)\n\t\t\t\t{\n\t\t\t\t\tresult = (rootElement || document.body).querySelector(selector);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult = (rootElement || document.body).querySelectorAll(selector);\n\t\t\t\t\tresult = [].slice.call(result);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\trequestAnimationFrame: function()\n\t\t{\n\t\t\tvar raf = (\n\t\t\t\twindow.requestAnimationFrame ||\n\t\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\t\twindow.msRequestAnimationFrame ||\n\t\t\t\twindow.oRequestAnimationFrame ||\n\t\t\t\tfunction(callback){ window.setTimeout(callback, 1000/60) }\n\t\t\t);\n\n\t\t\traf.apply(window, arguments);\n\t\t},\n\n\n\t\t/**\n\t\t * Sorts object properties\n\t\t * @param {object} input\n\t\t * @return {object}\n\t\t */\n\t\tsortObject: function(input)\n\t\t{\n\t\t\tvar output = {};\n\n\t\t\tObject.keys(input).sort().forEach(function(key) {\n\t\t\t\toutput[key] = input[key];\n\t\t\t});\n\n\t\t\treturn output;\n\t\t},\n\n\n\t\t/**\n\t\t * Compares two objects or arrays\n\t\t * @param {object} object1\n\t\t * @param {object} object2\n\t\t * @return {boolean}\n\t\t */\n\t\tobjectsIsEquals: function(object1, object2)\n\t\t{\n\t\t\treturn JSON.stringify(object1) === JSON.stringify(object2);\n\t\t},\n\n\t\tisKey: function(event, keyCode)\n\t\t{\n\t\t\tvar keyboard = {8: 'backspace', 9: 'tab', 13: 'enter', 16: 'shift', 17: 'ctrl', 18: 'alt', 27: 'escape',\n\t\t\t\t32: 'space', 37: 'leftArrow', 38: 'upArrow', 39: 'rightArrow', 40: 'downArrow', 46: 'delete',\n\t\t\t\t112: 'f1', 113: 'f2', 114: 'f3', 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9',\n\t\t\t\t121: 'f10', 122: 'f11', 123: 'f12', 65: 'a'};\n\n\t\t\tvar code = !!event ? (('keyCode' in event) ? event.keyCode : 'which' in event ? event.which : 0) : 0;\n\n\t\t\treturn code in keyboard && keyboard[code] === keyCode;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Filter');\n\n\tBX.Filter.DestinationSelectorManager = {\n\n\t\tfields: [],\n\t\tcontrols: {},\n\n\t\tonSelect: function(isNumeric, prefix, params)\n\t\t{\n\t\t\tif (\n\t\t\t\t!BX.type.isNotEmptyObject(params)\n\t\t\t\t|| !BX.type.isNotEmptyObject(params.item)\n\t\t\t\t|| !BX.type.isNotEmptyString(params.selectorId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar\n\t\t\t\tselectorId = params.selectorId,\n\t\t\t\titem = params.item;\n\n\t\t\tvar control = BX.Filter.DestinationSelectorManager.controls[selectorId];\n\t\t\tif (control)\n\t\t\t{\n\t\t\t\tvar value = item.id;\n\n\t\t\t\tif (\n\t\t\t\t\tBX.type.isNotEmptyString(isNumeric)\n\t\t\t\t\t&& isNumeric == 'Y'\n\t\t\t\t\t&& BX.type.isNotEmptyString(prefix)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tvar re = new RegExp('^' + prefix + '(\\\\d+)$');\n\t\t\t\t\tvar found = value.match(re);\n\t\t\t\t\tif (BX.type.isArray(found))\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = found[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar eventResult = {};\n\t\t\t\t\tBX.onCustomEvent(window, 'BX.Filter.DestinationSelector:convert', [ {\n\t\t\t\t\t\tselectorId: selectorId,\n\t\t\t\t\t\tvalue: value\n\t\t\t\t\t}, eventResult ]);\n\n\t\t\t\t\tif (BX.type.isNotEmptyString(eventResult.value))\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = eventResult.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontrol.setData(BX.util.htmlspecialcharsback(item.name), value);\n\t\t\t\tcontrol.getLabelNode().value = '';\n\t\t\t\tcontrol.getLabelNode().blur();\n\t\t\t}\n\t\t},\n\n\t\tonDialogOpen: function(params)\n\t\t{\n\t\t\tif (\n\t\t\t\ttypeof params == 'undefined'\n\t\t\t\t|| !BX.type.isNotEmptyString(params.selectorId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar selectorId = params.selectorId;\n\n\t\t\tvar item = BX.Filter.DestinationSelector.items[selectorId];\n\t\t\tif(item)\n\t\t\t{\n\t\t\t\titem.onDialogOpen();\n\t\t\t}\n\t\t},\n\n\t\tonDialogClose: function(params)\n\t\t{\n\t\t\tif (\n\t\t\t\ttypeof params == 'undefined'\n\t\t\t\t|| !BX.type.isNotEmptyString(params.selectorId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar selectorId = params.selectorId;\n\n\t\t\tvar item = BX.Filter.DestinationSelector.items[selectorId];\n\t\t\tif(item)\n\t\t\t{\n\t\t\t\titem.onDialogClose();\n\t\t\t}\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector = function ()\n\t{\n\t\tthis.id = \"\";\n\t\tthis.filterId = \"\";\n\t\tthis.settings = {};\n\t\tthis.fieldId = \"\";\n\t\tthis.control = null;\n\t\tthis.inited = null;\n\t};\n\n\tBX.Filter.DestinationSelector.items = {};\n\n\tBX.Filter.DestinationSelector.create = function(id, settings)\n\t{\n\t\tif (typeof this.items[id] != 'undefined')\n\t\t{\n\t\t\treturn this.items[id];\n\t\t}\n\n\t\tvar self = new BX.Filter.DestinationSelector(id, settings);\n\t\tself.initialize(id, settings);\n\t\tthis.items[id] = self;\n\t\tBX.onCustomEvent(window, 'BX.Filter.DestinationSelector:create', [ id ]);\n\t\treturn self;\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.getSetting = function(name, defaultval)\n\t{\n\t\treturn this.settings.hasOwnProperty(name) ? this.settings[name] : defaultval;\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.getSearchInput = function()\n\t{\n\t\treturn this.control ? this.control.getLabelNode() : null;\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.initialize = function(id, settings)\n\t{\n\t\tthis.id = id;\n\t\tthis.settings = settings ? settings : {};\n\t\tthis.fieldId = this.getSetting(\"fieldId\", \"\");\n\t\tthis.filterId = this.getSetting(\"filterId\", \"\");\n\t\tthis.inited = false;\n\t\tthis.opened = null;\n\n\t\tvar initialValue = this.getSetting(\"initialValue\", false);\n\t\tif (!!initialValue)\n\t\t{\n\t\t\tvar initialSettings = {};\n\t\t\tinitialSettings[this.fieldId] = initialValue.itemId;\n\t\t\tinitialSettings[this.fieldId + '_label'] = initialValue.itemName;\n\n\t\t\tBX.Main.filterManager.getById(this.filterId).getApi().setFields(initialSettings);\n\t\t}\n\t\tBX.addCustomEvent(window, \"BX.Main.Filter:customEntityFocus\", BX.delegate(this.onCustomEntitySelectorOpen, this));\n\t\tBX.addCustomEvent(window, \"BX.Main.Filter:customEntityBlur\", BX.delegate(this.onCustomEntitySelectorClose, this));\n\t\tBX.addCustomEvent(window, \"BX.Main.Filter:onGetStopBlur\", BX.delegate(this.onGetStopBlur, this));\n\t\tBX.addCustomEvent(window, \"BX.Main.SelectorV2:beforeInitDialog\", BX.delegate(this.onBeforeInitDialog, this));\n\t\tBX.addCustomEvent(window, \"BX.Main.Filter:customEntityRemove\", BX.delegate(this.onCustomEntityRemove, this));\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.open = function()\n\t{\n\t\tvar name = this.id;\n\n\t\tif (!this.inited)\n\t\t{\n\t\t\tvar input = this.getSearchInput();\n\t\t\tinput.id = input.name;\n\n\t\t\tBX.addCustomEvent(window, \"BX.Main.SelectorV2:afterInitDialog\", BX.delegate(function(params) {\n\t\t\t\tif (\n\t\t\t\t\ttypeof params.id != 'undefined'\n\t\t\t\t\t|| params.id != this.id\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.opened = true;\n\t\t\t}, this));\n\n\t\t\tBX.addCustomEvent(window, \"BX.UI.SelectorManager:onCreate\", BX.delegate(function(selectorId) {\n\t\t\t\tif (\n\t\t\t\t\t!BX.type.isNotEmptyString(selectorId)\n\t\t\t\t\t|| selectorId != this.id\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'BX.Filter.DestinationSelector:setSelected', [ {\n\t\t\t\t\tselectorId: selectorId,\n\t\t\t\t\tcurrent: this.control.getCurrentValues()\n\t\t\t\t} ]);\n\n\t\t\t}, this));\n\n\t\t\tBX.onCustomEvent(window, 'BX.Filter.DestinationSelector:openInit', [ {\n\t\t\t\tid: this.id,\n\t\t\t\tinputId: input.id,\n\t\t\t\tcontainerId: input.id\n\t\t\t} ]);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tvar currentValue = {};\n\t\t\tcurrentValue[this.currentUser.entityId] = \"users\";\n\n\t\t\tBX.onCustomEvent(window, 'BX.Filter.DestinationSelector:open', [ {\n\t\t\t\tid: this.id,\n\t\t\t\tbindNode: this.control.getField(),\n\t\t\t\tvalue: currentValue\n\t\t\t} ]);\n\n\t\t\tthis.opened = true;\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.close = function()\n\t{\n\t\tif(typeof(BX.Main.selectorManagerV2.controls[this.id]) !== \"undefined\")\n\t\t{\n\t\t\tBX.Main.selectorManagerV2.controls[this.id].closeDialog();\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onCustomEntitySelectorOpen = function(control)\n\t{\n\t\tvar fieldId = control.getId();\n\n\t\tif(this.fieldId !== fieldId)\n\t\t{\n\t\t\tthis.control = null;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.control = control;\n\n\t\t\tif(this.control)\n\t\t\t{\n\t\t\t\tvar current = this.control.getCurrentValues();\n\t\t\t\tthis.currentUser = {\n\t\t\t\t\tentityId: current[\"value\"]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tBX.Filter.DestinationSelectorManager.controls[this.id] = this.control;\n\n\t\t\tif (!this.opened)\n\t\t\t{\n\t\t\t\tthis.open();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onCustomEntitySelectorClose = function(control)\n\t{\n\t\tif(\n\t\t\tthis.fieldId === control.getId()\n\t\t\t&& this.inited === true\n\t\t\t&& this.opened === true\n\t\t)\n\t\t{\n\t\t\tthis.control = null;\n\t\t\twindow.setTimeout(BX.delegate(this.close, this), 0);\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onGetStopBlur = function(event, result)\n\t{\n\t\tif (BX.findParent(event.target, { className: 'bx-lm-box'}))\n\t\t{\n\t\t\tresult.stopBlur = true;\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onCustomEntityRemove = function(control)\n\t{\n\t\tif(this.fieldId === control.getId())\n\t\t{\n\t\t\tvar instance = BX.UI.SelectorManager.instances[control.getId()];\n\t\t\tif (\n\t\t\t\tinstance\n\t\t\t\t&& typeof control.hiddenInput != 'undefined'\n\t\t\t\t&& typeof control.hiddenInput.value != 'undefined'\n\t\t\t\t&& BX.type.isNotEmptyObject(instance.itemsSelected)\n\t\t\t\t&& typeof instance.itemsSelected[control.hiddenInput.value] != 'undefined'\n\t\t\t)\n\t\t\t{\n\t\t\t\tdelete instance.itemsSelected[control.hiddenInput.value];\n\t\t\t}\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onBeforeInitDialog = function(params)\n\t{\n\t\tif (\n\t\t\ttypeof params.id == 'undefined'\n\t\t\t|| params.id != this.id\n\t\t)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.inited = true;\n\n\t\tif (!this.control)\n\t\t{\n\t\t\tparams.blockInit = true;\n\t\t}\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onDialogOpen = function()\n\t{\n\t\tthis.opened = true;\n\t};\n\n\tBX.Filter.DestinationSelector.prototype.onDialogClose = function()\n\t{\n\t\tthis.opened = false;\n\t};\n\n})();","import {Dialog, DialogOptions, Item} from 'ui.entity-selector';\nimport {Event, Reflection, Type, Runtime, Dom} from \"main.core\";\nimport {EventEmitter, BaseEvent} from \"main.core.events\";\n\nclass EntitySelector\n{\n\tstatic initExtensionPromise = null;\n\tstatic items = {};\n\n\tid: string = null;\n\tfilter: BX.Main.Filter = null;\n\tdialog: Dialog = null;\n\tdialogOptions: DialogOptions = null;\n\tcontrol: BX.Main.ui.CustomEntity = null;\n\tisMultiple: boolean = false;\n\tneedAddEntityIdToFilter = false;\n\tisActive: boolean = false;\n\tneedShowDialogOnEmptyInput: boolean = true;\n\n\tconstructor(id: string, settings)\n\t{\n\t\tthis.id = id;\n\t\tthis.settings = settings ? settings : {};\n\t\tthis.filter = this.getSetting('filter', null);\n\t\tif (!this.filter)\n\t\t{\n\t\t\tthrow new Error('Filter option is required for EntitySelector field');\n\t\t}\n\n\t\tthis.isMultiple = !!this.getSetting('isMultiple', false);\n\t\tthis.needAddEntityIdToFilter = this.getSetting('addEntityIdToResult', 'N') === 'Y';\n\t\tthis.needShowDialogOnEmptyInput = !!this.getSetting('showDialogOnEmptyInput', true);\n\n\t\tthis.dialogOptions = this.prepareDialogOptions();\n\t\tthis.dialog = null;\n\n\t\tEventEmitter.subscribe('BX.Main.Filter:customEntityFocus', this.onCustomEntityFocus.bind(this));\n\t\tEventEmitter.subscribe('BX.Main.Filter:customEntityBlur', this.onCustomEntityBlur.bind(this));\n\t\tEventEmitter.subscribe('BX.Main.Filter:onGetStopBlur', this.onGetStopBlur.bind(this));\n\t\tEventEmitter.subscribe('BX.Main.Filter:move', this.onCustomEntityRemove.bind(this));\n\t\tEventEmitter.subscribe('BX.Main.Filter:onApplyPreset', this.onApplyPreset.bind(this));\n\n\t\tthis.controlInputChangeHandler = this.onSearchInputChange.bind(this);\n\t}\n\n\topen(): void\n\t{\n\t\tthis.isActive = true;\n\t\tif (!this.dialog)\n\t\t{\n\t\t\tthis.initDialog()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (this.isActive)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.openDialog();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.openDialog();\n\t\t}\n\t}\n\n\tclose(): void\n\t{\n\t\tthis.isActive = false;\n\t\tif (this.dialog && this.dialog.isOpen())\n\t\t{\n\t\t\tthis.dialog.hide();\n\t\t}\n\t}\n\n\tgetFilterField(): ?BX.Filter.Field\n\t{\n\t\treturn this.filter.getField(this.id);\n\t}\n\n\tgetFilterFieldInputWrapper(): ?HTMLElement\n\t{\n\t\tconst field = this.getFilterField();\n\t\tif (!field)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn BX.Filter.Utils.getBySelector(field.node, '.main-ui-control-entity');\n\t}\n\n\tgetFilterFieldInput(): ?HTMLElement\n\t{\n\t\tconst field = this.getFilterField();\n\t\tif (!field)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\treturn BX.Filter.Utils.getBySelector(field.node, '.' + this.filter.settings.classStringInput + '[type=\"text\"]');\n\t}\n\n\tsetControl(control: BX.Main.ui.CustomEntity): void\n\t{\n\t\tthis.control = control;\n\t}\n\n\tunsetControl(): void\n\t{\n\t\tthis.control = null;\n\t}\n\n\tgetSetting(name: string, defaultValue)\n\t{\n\t\treturn this.settings.hasOwnProperty(name)\n\t\t\t? this.settings[name]\n\t\t\t: defaultValue\n\t\t;\n\t};\n\n\tprepareDialogOptions()\n\t{\n\t\tconst defaultOptions = {\n\t\t\tenableSearch: false,\n\t\t\thideOnSelect: true,\n\t\t\tautoHide: false,\n\t\t\thideByEsc: false,\n\t\t};\n\n\t\tlet dialogOptions = this.getSetting('dialogOptions', {});\n\t\tdialogOptions = Object.assign(defaultOptions, dialogOptions);\n\n\t\treturn dialogOptions;\n\t}\n\n\topenDialog(): void\n\t{\n\t\tif (this.dialog.isOpen())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst inputWrapper = this.getFilterFieldInputWrapper();\n\t\tconst searchInput = this.getFilterFieldInput();\n\t\tconst searchQuery = Type.isDomNode(searchInput) ? searchInput.value.trim() : '';\n\t\tthis.dialog.setTargetNode(inputWrapper);\n\t\tthis.dialog.setWidth(inputWrapper.offsetWidth);\n\t\tif (this.needShowDialogOnEmptyInput || searchQuery.length)\n\t\t{\n\t\t\tthis.dialog.show();\n\t\t}\n\t\tthis.updateSelectedItemsInDialog(this.dialog);\n\n\t\tif (searchQuery.length)\n\t\t{\n\t\t\tthis.dialog.search(searchQuery);\n\t\t}\n\t}\n\n\tinitDialog(): Promise\n\t{\n\t\treturn EntitySelector.initDialogExtension()\n\t\t\t.then(exports =>\n\t\t\t{\n\t\t\t\tconst {Dialog} = exports;\n\t\t\t\tthis.dialog = new Dialog({\n\t\t\t\t\t...this.dialogOptions,\n\t\t\t\t\tid: this.getDialogId(),\n\t\t\t\t\tmultiple: this.isMultiple,\n\t\t\t\t});\n\n\t\t\t\tEventEmitter.subscribe(this.dialog, 'Item:onSelect', this.onDialogItemSelect.bind(this));\n\t\t\t\tEventEmitter.subscribe(this.dialog, 'Item:onDeselect', this.onDialogItemDeSelect.bind(this));\n\t\t\t\tEventEmitter.subscribe(this.dialog, 'onLoad', this.onDialogLoad.bind(this));\n\n\t\t\t\tconst searchInput = this.getFilterFieldInput();\n\t\t\t\tEvent.bind(searchInput, 'input', this.controlInputChangeHandler);\n\t\t\t})\n\t\t\t;\n\t}\n\n\taddItemToFilter(id: string, title: string): void\n\t{\n\t\tif (!this.control)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (this.isMultiple)\n\t\t{\n\t\t\tconst currentValues = this.control.getCurrentValues();\n\t\t\tif (\n\t\t\t\t!(currentValues\n\t\t\t\t\t.filter(item => (item.value === id))\n\t\t\t\t\t.length\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tcurrentValues.push({\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel: title\n\t\t\t\t});\n\t\t\t\tthis.control.setMultipleData(currentValues);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.control.setSingleData(title, id);\n\t\t}\n\t}\n\n\tremoveItemFromFilter(id: string): void\n\t{\n\t\tif (!this.control)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (this.isMultiple)\n\t\t{\n\t\t\tconst currentValues = this.control.getCurrentValues();\n\t\t\tthis.control.setMultipleData(\n\t\t\t\tcurrentValues.filter(item => (item.value !== id))\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.control.clearValue();\n\t\t}\n\t}\n\n\tgetDialogId(): string\n\t{\n\t\treturn this.id + '_' + this.filter.getParam('FILTER_ID');\n\t}\n\n\tgetItemId(item: Item): string\n\t{\n\t\tif (this.needAddEntityIdToFilter)\n\t\t{\n\t\t\treturn JSON.stringify([item.getEntityId() + '', item.getId() + '']);\n\t\t}\n\t\treturn item.getId() + '';\n\t}\n\n\tupdateSelectedItemsInDialog(dialog: Dialog)\n\t{\n\t\tif (!this.control)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet currentValues = this.control.getCurrentValues();\n\t\tif (!this.isMultiple)\n\t\t{\n\t\t\tcurrentValues = [currentValues];\n\t\t}\n\t\tconst selectedIds = currentValues.map(item => item.value);\n\n\t\tdialog.getItems()\n\t\t\t.forEach((dialogItem) =>\n\t\t\t{\n\t\t\t\tif (selectedIds.indexOf(this.getItemId(dialogItem)) > -1)\n\t\t\t\t{\n\t\t\t\t\tdialogItem.select(true);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tdialogItem.deselect();\n\t\t\t\t}\n\t\t\t})\n\t\t;\n\t}\n\n\tonCustomEntityFocus(event: BaseEvent): void\n\t{\n\t\tconst [control] = event.getData();\n\t\tif (this.id !== control.getId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.setControl(control);\n\t\tthis.open();\n\t}\n\n\tonCustomEntityBlur(event: BaseEvent): void\n\t{\n\t\tconst [control] = event.getData();\n\t\tif (this.id !== control.getId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.close();\n\t\tthis.unsetControl();\n\t}\n\n\tonGetStopBlur(event: BaseEvent): void\n\t{\n\t\tconst [browserEvent, result] = event.getData();\n\t\tif (!(this.dialog && this.dialog.isOpen()))\n\t\t{\n\t\t\treturn; // if dialog wasn't shown, cancel blur is not required\n\t\t}\n\t\tconst field = this.getFilterField();\n\t\tif (!field)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = browserEvent.target;\n\t\tif (\n\t\t\ttarget === field.node\n\t\t\t|| (\n\t\t\t\t// click on any child except field deletion button\n\t\t\t\tfield.node.contains(target)\n\t\t\t\t&& !Dom.hasClass(target, this.filter.settings.classFieldDelete)\n\t\t\t)\n\t\t\t|| target === document.body\n\t\t)\n\t\t{\n\t\t\tresult.stopBlur = true;\n\t\t\treturn;\n\t\t}\n\n\t\tconst dialogContainerElement = this.dialog.getPopup().getContentContainer();\n\t\tif (target === dialogContainerElement || dialogContainerElement.contains(target))\n\t\t{\n\t\t\tresult.stopBlur = true;\n\t\t}\n\t}\n\n\tonCustomEntityRemove(event: BaseEvent): void\n\t{\n\t\tconst [control] = event.getData();\n\t\tif (this.id !== control.getId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.destroy();\n\t\t\tthis.dialog = null;\n\t\t}\n\t\tthis.unsetControl();\n\t}\n\n\tonApplyPreset(event: BaseEvent): void\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.destroy();\n\t\t\tthis.dialog = null;\n\t\t}\n\t\tthis.unsetControl();\n\t}\n\n\tonSearchInputChange(event): void\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tif (!this.needShowDialogOnEmptyInput)\n\t\t\t{\n\t\t\t\tif (event.target.value)\n\t\t\t\t{\n\t\t\t\t\tthis.open();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.close();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.dialog.search(event.target.value);\n\t\t}\n\t}\n\n\tonDialogItemSelect(event: BaseEvent): void\n\t{\n\t\tconst {item} = event.getData();\n\t\tthis.addItemToFilter(this.getItemId(item), item.getTitle());\n\t\tthis.getFilterFieldInput().value = ''; // clear search query\n\t}\n\n\tonDialogItemDeSelect(event: BaseEvent): void\n\t{\n\t\tconst {item} = event.getData();\n\t\tthis.removeItemFromFilter(this.getItemId(item));\n\t}\n\n\tonDialogLoad(event: BaseEvent): void\n\t{\n\t\tconst dialog: Dialog = event.getTarget();\n\t\tthis.updateSelectedItemsInDialog(dialog);\n\t}\n\n\tstatic initDialogExtension(): Promise\n\t{\n\t\tif (!EntitySelector.initExtensionPromise)\n\t\t{\n\t\t\tEntitySelector.initExtensionPromise = Runtime.loadExtension('ui.entity-selector');\n\t\t}\n\n\t\treturn EntitySelector.initExtensionPromise;\n\t}\n\n\tstatic create(id, settings): EntitySelector\n\t{\n\t\tif (Type.isObject(this.items[id]))\n\t\t{\n\t\t\tif (Type.isObject(settings.filter))\n\t\t\t{\n\t\t\t\tthis.items[id].filter = settings.filter;\n\t\t\t}\n\t\t\treturn this.items[id];\n\t\t}\n\t\tconst self = new EntitySelector(id, settings);\n\t\tthis.items[id] = self;\n\t\treturn self;\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.Filter');\nnamespace.EntitySelector = EntitySelector;\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Filter');\n\n\tBX.Filter.FieldController = function(field, parent)\n\t{\n\t\tthis.field = null;\n\t\tthis.parent = null;\n\t\tthis.type = null;\n\t\tthis.input = null;\n\t\tthis.deleteButton = null;\n\t\tthis.init(field, parent);\n\t};\n\n\tBX.Filter.FieldController.prototype = {\n\t\tinit: function(field, parent)\n\t\t{\n\t\t\tif (!BX.type.isDomNode(field))\n\t\t\t{\n\t\t\t\tthrow 'BX.Filter.FieldController.init: field isn\\'t dom node';\n\t\t\t}\n\n\t\t\tif (!(parent instanceof BX.Main.Filter))\n\t\t\t{\n\t\t\t\tthrow 'BX.Filter.FieldController.init: parent not instance of BX.Main.ui.Filter';\n\t\t\t}\n\n\t\t\tthis.field = field;\n\t\t\tthis.parent = parent;\n\t\t\tthis.bind();\n\n\t\t\tthis.isShowDelete() ? this.showDelete() : this.hideDelete();\n\t\t},\n\n\t\tisShowDelete: function()\n\t\t{\n\t\t\tvar squares = this.getSquares();\n\t\t\treturn this.getInputValue() || (BX.type.isArray(squares) && squares.length);\n\t\t},\n\n\t\tgetField: function()\n\t\t{\n\t\t\treturn this.field;\n\t\t},\n\n\t\tgetInput: function()\n\t\t{\n\t\t\tvar type, types;\n\n\t\t\tif (!BX.type.isDomNode(this.input))\n\t\t\t{\n\t\t\t\ttype = this.getType();\n\t\t\t\ttypes = this.parent.types;\n\n\t\t\t\tif (type === types.DATE)\n\t\t\t\t{\n\t\t\t\t\tthis.input = BX.Filter.Utils.getByClass(this.getField(), this.parent.settings.classDateInput);\n\t\t\t\t}\n\n\t\t\t\tif (type === types.NUMBER || type === 'number')\n\t\t\t\t{\n\t\t\t\t\tthis.input = BX.Filter.Utils.getByClass(this.getField(), this.parent.settings.classNumberInput);\n\t\t\t\t}\n\n\t\t\t\tif (type === types.STRING)\n\t\t\t\t{\n\t\t\t\t\tthis.input = BX.Filter.Utils.getByClass(this.getField(), this.parent.settings.classStringInput);\n\t\t\t\t}\n\n\t\t\t\tif (type === types.CUSTOM_ENTITY)\n\t\t\t\t{\n\t\t\t\t\tthis.input = BX.Filter.Utils.getBySelector(this.getField(), 'input[type=\"hidden\"]');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.input;\n\t\t},\n\n\t\tgetDeleteButton: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.deleteButton))\n\t\t\t{\n\t\t\t\tthis.deleteButton = BX.Filter.Utils.getByClass(this.getField(), this.parent.settings.classValueDelete);\n\t\t\t}\n\n\t\t\treturn this.deleteButton;\n\t\t},\n\n\t\tgetSquares: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getField(), this.parent.settings.classSquare);\n\t\t},\n\n\t\tbind: function()\n\t\t{\n\t\t\tif (this.getType() !== this.parent.types.MULTI_SELECT && this.getType() !== this.parent.types.SELECT)\n\t\t\t{\n\t\t\t\tBX.bind(this.getDeleteButton(), 'click', BX.delegate(this._onDeleteClick, this));\n\t\t\t\tBX.bind(this.getInput(), 'input', BX.delegate(this._onInput, this));\n\t\t\t}\n\t\t},\n\n\t\tclearInput: function()\n\t\t{\n\t\t\tvar input = this.getInput();\n\n\t\t\tif (BX.type.isDomNode(input))\n\t\t\t{\n\t\t\t\tinput.value = '';\n\t\t\t}\n\t\t},\n\n\t\thideDelete: function()\n\t\t{\n\t\t\tvar deleteButton = this.getDeleteButton();\n\n\t\t\tif (BX.type.isDomNode(deleteButton))\n\t\t\t{\n\t\t\t\tBX.addClass(deleteButton, this.parent.settings.classHide);\n\t\t\t}\n\t\t},\n\n\t\tshowDelete: function()\n\t\t{\n\t\t\tvar deleteButton = this.getDeleteButton();\n\n\t\t\tif (BX.type.isDomNode(deleteButton))\n\t\t\t{\n\t\t\t\tBX.removeClass(deleteButton, this.parent.settings.classHide);\n\t\t\t}\n\t\t},\n\n\t\tremoveSquares: function()\n\t\t{\n\t\t\tvar squares = this.getSquares();\n\n\t\t\tif (BX.type.isArray(squares) && squares.length)\n\t\t\t{\n\t\t\t\tsquares.forEach(function(square) {\n\t\t\t\t\tBX.remove(square);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_onDeleteClick: function()\n\t\t{\n\t\t\tthis.removeSquares();\n\t\t\tthis.clearInput();\n\t\t\tthis.hideDelete();\n\t\t},\n\n\t\t_onInput: function()\n\t\t{\n\t\t\tthis.getInputValue() ? this.showDelete() : this.hideDelete();\n\t\t},\n\n\t\tgetInputValue: function()\n\t\t{\n\t\t\tvar result = '';\n\t\t\tvar input = this.getInput();\n\n\t\t\tif (BX.type.isDomNode(input))\n\t\t\t{\n\t\t\t\tresult = input.value;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetType: function()\n\t\t{\n\t\t\tif (!BX.type.isNotEmptyString(this.type))\n\t\t\t{\n\t\t\t\tthis.type = BX.data(this.getField(), 'type');\n\t\t\t}\n\n\t\t\treturn this.type;\n\t\t}\n\t};\n\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main.ui');\n\n\tBX.Main.ui.CustomEntity = function()\n\t{\n\t\tthis.field = null;\n\t\tthis.labelInput = null;\n\t\tthis.hiddenInput = null;\n\t\tthis.popupContainer = null;\n\t\tthis.inputClass = 'main-ui-control-string';\n\t\tthis.squareClass = 'main-ui-square';\n\t\tthis.multiple = null;\n\t};\n\n\n\t/**\n\t * @static\n\t * @param {HTMLElement} field\n\t * @return {boolean}\n\t */\n\tBX.Main.ui.CustomEntity.isMultiple = function(field)\n\t{\n\t\tif (!!field && !BX.hasClass(field, 'main-ui-control-entity'))\n\t\t{\n\t\t\tfield = BX.Filter.Utils.getByClass(field, 'main-ui-control-entity');\n\t\t}\n\n\t\treturn !!field && JSON.parse(BX.data(field, 'multiple'));\n\t};\n\n\n\t//noinspection JSUnusedGlobalSymbols\n\tBX.Main.ui.CustomEntity.prototype = {\n\t\tsetField: function(field)\n\t\t{\n\t\t\tif (this.field !== field)\n\t\t\t{\n\t\t\t\tthis.field = field;\n\t\t\t\tthis.reset();\n\t\t\t}\n\t\t},\n\n\t\tisMultiple: function()\n\t\t{\n\t\t\treturn BX.Main.ui.CustomEntity.isMultiple(this.getField());\n\t\t},\n\n\t\treset: function()\n\t\t{\n\t\t\tthis.labelInput = null;\n\t\t\tthis.hiddenInput = null;\n\t\t},\n\n\t\tgetField: function()\n\t\t{\n\t\t\treturn this.field;\n\t\t},\n\n\t\tgetId: function()\n\t\t{\n\t\t\tvar hiddenNode = this.getHiddenNode();\n\t\t\tvar id = null;\n\n\t\t\tif (BX.type.isDomNode(hiddenNode))\n\t\t\t{\n\t\t\t\tid = hiddenNode.name;\n\t\t\t}\n\n\t\t\treturn id;\n\t\t},\n\n\t\tgetLabelNode: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.labelInput))\n\t\t\t{\n\t\t\t\tthis.labelInput = BX.Filter.Utils.getBySelector(this.getField(), '.'+this.inputClass+'[type=\"text\"]');\n\t\t\t}\n\n\t\t\treturn this.labelInput;\n\t\t},\n\n\t\tgetHiddenNode: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.hiddenInput))\n\t\t\t{\n\t\t\t\tthis.hiddenInput = BX.Filter.Utils.getBySelector(this.getField(), '.'+this.inputClass+'[type=\"hidden\"]');\n\t\t\t}\n\n\t\t\treturn this.hiddenInput;\n\t\t},\n\n\t\tgetSquareByValue: function(value)\n\t\t{\n\t\t\treturn BX.Filter.Utils.getBySelector(this.getField(), [\n\t\t\t\t'[data-item*=\":'+BX.util.jsencode(value)+'}\"]',\n\t\t\t\t'[data-item*=\":\\\\\"'+BX.util.jsencode(value)+'\\\\\"}\"]'\n\t\t\t].join(', '));\n\t\t},\n\n\t\tgetSquares: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getField(), this.squareClass, true);\n\t\t},\n\n\t\tremoveSquares: function()\n\t\t{\n\t\t\tthis.getSquares().forEach(BX.remove);\n\t\t},\n\n\t\tsetSquare: function(label, value)\n\t\t{\n\t\t\tvar field = this.getField();\n\t\t\tvar squareData = {\n\t\t\t\tblock: 'main-ui-square',\n\t\t\t\tname: label,\n\t\t\t\titem: {\n\t\t\t\t\t'_label': label,\n\t\t\t\t\t'_value': value\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar square = BX.decl(squareData);\n\t\t\tvar squares = this.getSquares();\n\n\t\t\tif (!squares.length)\n\t\t\t{\n\t\t\t\tBX.prepend(square, field);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.insertAfter(square, squares[squares.length-1]);\n\t\t\t}\n\t\t},\n\n\t\tgetCurrentValues: function()\n\t\t{\n\t\t\tvar squares = this.getSquares();\n\t\t\tvar data, result;\n\t\t\tif(this.isMultiple())\n\t\t\t{\n\t\t\t\tresult = [];\n\t\t\t\tfor(var i = 0, length = squares.length; i < length; i++)\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tdata = JSON.parse(BX.data(squares[i], 'item'));\n\t\t\t\t\t\tresult.push({ label: data._label, value: data._value });\n\t\t\t\t\t}\n\t\t\t\t\tcatch (ex)\n\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\tif(squares.length === 0)\n\t\t\t\t{\n\t\t\t\t\tresult = { label: '', value: '' };\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tdata = JSON.parse(BX.data(squares[0], 'item'));\n\t\t\t\t\t\tresult = { label: data._label, value: data._value };\n\t\t\t\t\t}\n\t\t\t\t\tcatch (ex)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = { label: '', value: '' };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\n\t\tsetData: function(label, value)\n\t\t{\n\t\t\treturn this.isMultiple() ? this.setMultipleData(label, value) : this.setSingleData(label, value);\n\t\t},\n\n\t\tsetSingleData: function(label, value)\n\t\t{\n\t\t\tvar hiddenNode = this.getHiddenNode();\n\t\t\tthis.removeSquares();\n\t\t\tthis.setSquare(label, value);\n\n\t\t\tif (BX.type.isDomNode(hiddenNode))\n\t\t\t{\n\t\t\t\thiddenNode.value = value;\n\t\t\t\tBX.fireEvent(hiddenNode, 'input');\n\t\t\t}\n\t\t},\n\n\t\tsetMultipleData: function(items, value)\n\t\t{\n\t\t\tvar values = [];\n\t\t\tvar hiddenNode = this.getHiddenNode();\n\n\t\t\tif (BX.type.isArray(items))\n\t\t\t{\n\t\t\t\tthis.removeSquares();\n\n\t\t\t\tif (BX.type.isArray(items))\n\t\t\t\t{\n\t\t\t\t\titems.forEach(function(item) {\n\t\t\t\t\t\tvalues.push(item.value);\n\t\t\t\t\t\tthis.setSquare(item.label, item.value);\n\t\t\t\t\t}, this);\n\n\t\t\t\t\tif (BX.type.isDomNode(hiddenNode))\n\t\t\t\t\t{\n\t\t\t\t\t\thiddenNode.value = JSON.stringify(values);\n\t\t\t\t\t\tBX.fireEvent(hiddenNode, 'input');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!BX.type.isArray(items) && value !== null)\n\t\t\t{\n\t\t\t\tif (!this.getSquareByValue(value))\n\t\t\t\t{\n\t\t\t\t\tthis.setSquare(items, value);\n\n\t\t\t\t\tthis.getSquares().forEach(function(square) {\n\t\t\t\t\t\tvar squareData = JSON.parse(BX.data(square, 'item'));\n\t\t\t\t\t\tif (BX.type.isPlainObject(squareData))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalues.push(squareData._value);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\thiddenNode.value = JSON.stringify(values);\n\t\t\t\t\tBX.fireEvent(hiddenNode, 'input');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tclearValue: function()\n\t\t{\n\t\t\tthis.removeSquares();\n\n\t\t\tvar hiddenNode = this.getHiddenNode();\n\t\t\thiddenNode.value = this.isMultiple() ? '[]': '';\n\t\t},\n\n\t\tsetPopupContainer: function(container)\n\t\t{\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tthis.popupContainer = container;\n\t\t\t}\n\t\t},\n\n\t\tgetPopupContainer: function()\n\t\t{\n\t\t\treturn this.popupContainer;\n\t\t}\n\t};\n})();",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Filter');\n\n\t/**\n\t * Filter search block class\n\t * @param parent\n\t * @constructor\n\t */\n\tBX.Filter.Search = function(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.container = null;\n\t\tthis.input = null;\n\t\tthis.preset = null;\n\t\tthis.buttonsContainer = null;\n\t\tthis.delay = 800;\n\t\tthis.timeout = null;\n\t\tthis.init(parent);\n\t};\n\tBX.Filter.Search.prototype = {\n\t\tinit: function(parent)\n\t\t{\n\t\t\tthis.parent = parent;\n\t\t\tBX.bind(this.getInput(), 'input', BX.delegate(this._onInputWithoutDebounce, this));\n\n\t\t\tif (this.parent.getParam('ENABLE_LIVE_SEARCH'))\n\t\t\t{\n\t\t\t\tBX.bind(this.getInput(), 'input', BX.debounce(this._onInput, this.delay, this));\n\t\t\t}\n\n\t\t\tBX.bind(this.getInput(), 'keydown', BX.delegate(this._onKeyDown, this));\n\t\t\tBX.bind(this.getFindButton(), 'click', BX.delegate(this._onSearchClick, this));\n\t\t\tBX.bind(this.getContainer(), 'click', BX.delegate(this._onSearchContainerClick, this));\n\t\t\tthis.removeAutofocus();\n\t\t\tthis.firstInit = true;\n\t\t},\n\n\n\t\t/**\n\t\t * Removes autofocus attr from search input\n\t\t */\n\t\tremoveAutofocus: function()\n\t\t{\n\t\t\tvar input = this.getInput();\n\n\t\t\tif (!!input)\n\t\t\t{\n\t\t\t\tinput.blur();\n\t\t\t\tinput.autofocus = null;\n\t\t\t}\n\t\t},\n\n\n\t\tgetFindButton: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.findButton))\n\t\t\t{\n\t\t\t\tthis.findButton = BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classSearchButton);\n\t\t\t}\n\n\t\t\treturn this.findButton;\n\t\t},\n\n\t\t_onSearchClick: function()\n\t\t{\n\t\t\tthis.apply();\n\t\t},\n\n\t\tselectSquare: function(square)\n\t\t{\n\t\t\t!!square && BX.addClass(square, this.parent.settings.classSquareSelected);\n\t\t},\n\n\t\tselectSquares: function()\n\t\t{\n\t\t\tthis.getSquares().forEach(this.selectSquare, this);\n\t\t},\n\n\t\tunselectSquare: function(square)\n\t\t{\n\t\t\t!!square && BX.removeClass(square, this.parent.settings.classSquareSelected);\n\t\t},\n\n\t\tunselectSquares: function()\n\t\t{\n\t\t\tthis.getSquares().forEach(this.unselectSquare, this);\n\t\t},\n\n\t\tremoveSquares: function()\n\t\t{\n\t\t\tthis.getSquares().forEach(this.removeSquare, this);\n\t\t},\n\n\t\tisSquaresSelected: function()\n\t\t{\n\t\t\tvar squares = this.getSquares();\n\t\t\treturn squares.length && squares.every(this.isSquareSelected, this);\n\t\t},\n\n\t\tisSquareSelected: function(square)\n\t\t{\n\t\t\treturn !!square && BX.hasClass(square, this.parent.settings.classSquareSelected);\n\t\t},\n\n\t\tgetLastSquare: function()\n\t\t{\n\t\t\tvar squares = this.getSquares();\n\t\t\treturn !!squares ? squares[squares.length-1] : null;\n\t\t},\n\n\t\tisTextSelected: function()\n\t\t{\n\t\t\tvar searchStringLength = this.getSearchString().length;\n\t\t\tvar searchInput = this.getInput();\n\t\t\tvar selectionStart = searchInput.selectionStart;\n\t\t\tvar selectionEnd = searchInput.selectionEnd;\n\n\t\t\treturn selectionStart === 0 && selectionEnd !== 0 && selectionEnd === searchStringLength;\n\t\t},\n\n\t\tisSelectionStart: function()\n\t\t{\n\t\t\tvar searchInput = this.getInput();\n\t\t\tvar selectionStart = searchInput.selectionStart;\n\t\t\tvar selectionEnd = searchInput.selectionEnd;\n\n\t\t\treturn selectionStart === 0 && selectionEnd === 0;\n\t\t},\n\n\t\tisSquareRemoveButton: function(node)\n\t\t{\n\t\t\treturn !!node && BX.hasClass(node, this.parent.settings.classSquareDelete);\n\t\t},\n\n\t\tisClearButton: function(node)\n\t\t{\n\t\t\treturn !!node && BX.hasClass(node, this.parent.settings.classClearSearchValueButton);\n\t\t},\n\n\t\tgetClearButton: function()\n\t\t{\n\t\t\treturn this.getContainer().querySelector(\".\" + this.parent.settings.classClearSearchValueButton);\n\t\t},\n\n\t\tisSearchButton: function(node)\n\t\t{\n\t\t\treturn !!node && BX.hasClass(node, this.parent.settings.classSearchButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Adjust focus on search input\n\t\t */\n\t\tadjustFocus: function()\n\t\t{\n\t\t\tif (!BX.browser.IsMobile())\n\t\t\t{\n\t\t\t\tvar searchInput = this.getInput();\n\n\t\t\t\tif (document.activeElement !== searchInput && window.scrollY < BX.pos(searchInput).top)\n\t\t\t\t{\n\t\t\t\t\t//Puts cursor after last character\n\t\t\t\t\t//noinspection SillyAssignmentJS\n\t\t\t\t\tsearchInput.value = searchInput.value;\n\t\t\t\t\tsearchInput.blur();\n\t\t\t\t\tsearchInput.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindSquareByChild: function(childNode)\n\t\t{\n\t\t\treturn BX.findParent(childNode, {className: this.parent.settings.classSquare}, true, false);\n\t\t},\n\n\t\t/**\n\t\t * @param {HTMLElement} square\n\t\t */\n\t\tgetSquareData: function(square)\n\t\t{\n\t\t\tvar rawData = BX.data(square, 'item');\n\t\t\treturn !!square && !!rawData ? JSON.parse(rawData) : null;\n\t\t},\n\n\t\t/**\n\t\t * @param {HTMLElement} square\n\t\t * @return {boolean}\n\t\t */\n\t\tisSquareControl: function(square)\n\t\t{\n\t\t\tvar squareData = this.getSquareData(square);\n\t\t\treturn !!squareData && (squareData.type === 'control' || BX.type.isArray(squareData));\n\t\t},\n\n\t\tonPresetSquareRemove: function()\n\t\t{\n\t\t\tvar Filter = this.parent;\n\t\t\tvar Preset = Filter.getPreset();\n\t\t\tvar currentPresetId = Preset.getCurrentPresetId();\n\t\t\tvar isResetToDefaultMode = Filter.getParam('RESET_TO_DEFAULT_MODE');\n\t\t\tvar isValueRequiredModeMail = Filter.getParam('VALUE_REQUIRED');\n\t\t\tvar isPinned = Preset.isPinned(currentPresetId);\n\t\t\tvar squares = this.getSquares();\n\n\t\t\tif (squares.length === 1)\n\t\t\t{\n\t\t\t\tif (isValueRequiredModeMail && isPinned)\n\t\t\t\t{\n\t\t\t\t\tthis.parent.showPopup();\n\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t\tthis.parent.getPreset().deactivateAllPresets();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif ((isResetToDefaultMode && isPinned) || !isResetToDefaultMode)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar resetWithoutSearch = true;\n\t\t\t\t\t\tthis.lastPromise = Filter.resetFilter(resetWithoutSearch);\n\t\t\t\t\t\tFilter.closePopup();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (isResetToDefaultMode && !isPinned)\n\t\t\t\t{\n\t\t\t\t\tthis.lastPromise = Filter.getPreset().applyPinnedPreset();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (squares.length > 1)\n\t\t\t{\n\t\t\t\tvar currentPreset = Preset.getPreset(Preset.getCurrentPresetId());\n\t\t\t\tvar tmpPreset = Preset.getPreset('tmp_filter');\n\n\t\t\t\ttmpPreset.FIELDS = BX.clone(currentPreset.ADDITIONAL);\n\t\t\t\tcurrentPreset.ADDITIONAL = [];\n\t\t\t\tPreset.deactivateAllPresets();\n\t\t\t\tPreset.applyPreset('tmp_filter');\n\t\t\t\tFilter.applyFilter();\n\t\t\t}\n\t\t},\n\n\t\tonControlSquareRemove: function(square)\n\t\t{\n\t\t\tvar Filter = this.parent;\n\t\t\tvar Preset = Filter.getPreset();\n\t\t\tvar isResetToDefaultMode = Filter.getParam('RESET_TO_DEFAULT_MODE');\n\t\t\tvar isValueRequiredModeMail = Filter.getParam('VALUE_REQUIRED');\n\t\t\tvar squareData;\n\n\t\t\tif (isResetToDefaultMode && this.getSquares().length === 1)\n\t\t\t{\n\t\t\t\tif (isValueRequiredModeMail)\n\t\t\t\t{\n\t\t\t\t\tsquareData = this.getSquareData(square);\n\t\t\t\t\tFilter.clearControls(squareData);\n\n\t\t\t\t\tthis.parent.showPopup();\n\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t\tthis.parent.getPreset().deactivateAllPresets();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.lastPromise = Filter.getPreset().applyPinnedPreset();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tsquareData = this.getSquareData(square);\n\t\t\t\tFilter.clearControls(squareData);\n\t\t\t\tFilter.closePopup();\n\n\t\t\t\tif (BX.type.isArray(squareData))\n\t\t\t\t{\n\t\t\t\t\tsquareData.forEach(function(square) {\n\t\t\t\t\t\tPreset.removeAdditionalField(square.name);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (BX.type.isPlainObject(squareData))\n\t\t\t\t{\n\t\t\t\t\tPreset.removeAdditionalField(squareData.name);\n\t\t\t\t}\n\n\t\t\t\tthis.apply();\n\t\t\t}\n\t\t},\n\n\t\tonValueRequiredSquareRemove: function()\n\t\t{\n\t\t\tvar Filter = this.parent;\n\t\t\tFilter.getPreset().deactivateAllPresets();\n\t\t\tFilter.showPopup();\n\t\t\tthis.adjustPlaceholder();\n\t\t},\n\n\t\t/**\n\t\t * @param {HTMLElement} square\n\t\t */\n\t\tcomplexSquareRemove: function(square)\n\t\t{\n\t\t\tvar isValueRequiredMode = this.parent.getParam('VALUE_REQUIRED_MODE');\n\t\t\tvar isPresetSquare = !this.isSquareControl(square);\n\n\t\t\tif (isValueRequiredMode)\n\t\t\t{\n\t\t\t\tthis.onValueRequiredSquareRemove();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (isPresetSquare)\n\t\t\t\t{\n\t\t\t\t\tthis.onPresetSquareRemove();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.onControlSquareRemove(square);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.removeSquare(square);\n\t\t\tthis.adjustClearButton();\n\t\t},\n\n\t\tadjustClearButton: function()\n\t\t{\n\t\t\t!!this.getLastSquare() ? this.showClearButton() : this.hideClearButton();\n\t\t},\n\n\t\t/**\n\t\t * @param {HTMLElement} square\n\t\t */\n\t\tremoveSquare: function(square)\n\t\t{\n\t\t\t!!square && BX.remove(square);\n\t\t},\n\n\t\t_onSearchContainerClick: function(event)\n\t\t{\n\t\t\tvar Filter = this.parent;\n\n\t\t\tif (this.isClearButton(event.target))\n\t\t\t{\n\t\t\t\tif (!Filter.getParam('VALUE_REQUIRED'))\n\t\t\t\t{\n\t\t\t\t\tif (!Filter.getParam('VALUE_REQUIRED_MODE'))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Filter.getParam('RESET_TO_DEFAULT_MODE'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.clearInput();\n\t\t\t\t\t\t\tthis.lastPromise = Filter.getPreset().applyPinnedPreset();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tFilter.resetFilter();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tFilter.closePopup();\n\t\t\t\t\t\tthis.adjustFocus();\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.removeSquares();\n\t\t\t\t\t\tFilter.showPopup();\n\t\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t\t\tthis.hideClearButton();\n\t\t\t\t\t\tFilter.getPreset().deactivateAllPresets();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar isPinned = Filter.getPreset().isPinned(\n\t\t\t\t\t\tFilter.getPreset().getCurrentPresetId()\n\t\t\t\t\t);\n\n\t\t\t\t\tif (isPinned || Filter.getPreset().getCurrentPresetId() === 'tmp_filter')\n\t\t\t\t\t{\n\t\t\t\t\t\tvar presetData = Filter.getPreset().getPreset(\n\t\t\t\t\t\t\tFilter.getPreset().getCurrentPresetId()\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (presetData.ADDITIONAL.length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpresetData.ADDITIONAL = [];\n\t\t\t\t\t\t\tthis.lastPromise = Filter.getPreset().applyPreset(Filter.getPreset().getCurrentPresetId());\n\t\t\t\t\t\t\tthis.apply();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.removeSquares();\n\t\t\t\t\t\t\tFilter.showPopup();\n\t\t\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t\t\t\tthis.hideClearButton();\n\t\t\t\t\t\t\tFilter.getPreset().deactivateAllPresets();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Filter.getParam('RESET_TO_DEFAULT_MODE'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.lastPromise = Filter.getPreset().applyPinnedPreset();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tFilter.resetFilter();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tFilter.closePopup();\n\t\t\t\t\t\tthis.adjustFocus();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.clearInput();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telse if (this.isSearchButton(event.target))\n\t\t\t{\n\t\t\t\tthis.apply();\n\t\t\t\tthis.adjustFocus();\n\t\t\t}\n\n\t\t\telse if (this.isSquareRemoveButton(event.target))\n\t\t\t{\n\t\t\t\tvar square = this.findSquareByChild(event.target);\n\t\t\t\tthis.complexSquareRemove(square);\n\t\t\t\tthis.adjustFocus();\n\t\t\t}\n\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (!Filter.getPopup().isShown())\n\t\t\t\t{\n\t\t\t\t\tFilter.showPopup();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar input = this.getInput();\n\t\t\t\t\tvar start = input.selectionStart;\n\t\t\t\t\tvar end = input.selectionEnd;\n\t\t\t\t\tvar searchLength = this.getSearchString().length;\n\n\t\t\t\t\tif (!(searchLength && start === 0 && end === searchLength))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Filter.getParam('VALUE_REQUIRED'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (!this.getSquares().length)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.lastPromise = Filter.getPreset().applyPinnedPreset();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tFilter.closePopup();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tFilter.closePopup();\n\n\t\t\t\t\t\t\tif (Filter.getParam('VALUE_REQUIRED_MODE'))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tFilter.restoreRemovedPreset();\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}\n\t\t\t}\n\t\t},\n\n\t\t_onKeyDown: function(event)\n\t\t{\n\t\t\tvar utils = BX.Filter.Utils;\n\t\t\tvar parent = this.parent;\n\n\t\t\tif (utils.isKey(event, 'enter'))\n\t\t\t{\n\t\t\t\tif (parent.getParam('VALUE_REQUIRED'))\n\t\t\t\t{\n\t\t\t\t\tif (!this.getSquares().length)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.parent.getPreset().applyPinnedPreset();\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.apply();\n\t\t\t\t\t\tthis.firstInit = false;\n\t\t\t\t\t\tthis.lastSearchString = this.getSearchString();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.apply();\n\t\t\t\t\tthis.firstInit = false;\n\t\t\t\t\tthis.lastSearchString = this.getSearchString();\n\t\t\t\t}\n\n\t\t\t\tparent.closePopup();\n\t\t\t}\n\n\t\t\tif (utils.isKey(event, 'tab') || utils.isKey(event, 'downArrow'))\n\t\t\t{\n\t\t\t\tparent.showPopup();\n\t\t\t\tparent.adjustFocus();\n\t\t\t\tthis.unselectSquares();\n\t\t\t}\n\n\t\t\tif (utils.isKey(event, 'upArrow'))\n\t\t\t{\n\t\t\t\tparent.closePopup();\n\n\t\t\t\tif (parent.getParam('VALUE_REQUIRED_MODE'))\n\t\t\t\t{\n\t\t\t\t\tthis.parent.restoreRemovedPreset();\n\t\t\t\t}\n\n\t\t\t\tif (parent.getParam('VALUE_REQUIRED'))\n\t\t\t\t{\n\t\t\t\t\tif (!this.getSquares().length)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.parent.getPreset().applyPinnedPreset();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (utils.isKey(event, 'a') && event.metaKey || utils.isKey(event, 'a') && event.ctrlKey)\n\t\t\t{\n\t\t\t\tthis.selectSquares();\n\t\t\t}\n\n\t\t\tif (utils.isKey(event, 'backspace') && this.isTextSelected() && this.isSquaresSelected())\n\t\t\t{\n\t\t\t\tclearTimeout(this.timeout);\n\n\t\t\t\tif (this.parent.getParam('VALUE_REQUIRED'))\n\t\t\t\t{\n\t\t\t\t\tvar isPinned = this.parent.getPreset().isPinned(\n\t\t\t\t\t\tthis.parent.getPreset().getCurrentPresetId()\n\t\t\t\t\t);\n\n\t\t\t\t\tif (isPinned)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.removeSquares();\n\t\t\t\t\t\tthis.parent.showPopup();\n\t\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t\t\tthis.hideClearButton();\n\t\t\t\t\t\tthis.parent.getPreset().deactivateAllPresets();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tif (this.parent.getParam('RESET_TO_DEFAULT_MODE'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.lastPromise = this.parent.getPreset().applyPinnedPreset();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.parent.resetFilter();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.parent.closePopup();\n\t\t\t\t\t\tthis.adjustFocus();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.clearInput();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (this.parent.getParam('RESET_TO_DEFAULT_MODE'))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.lastPromise = this.parent.getPreset().applyPinnedPreset();\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.lastPromise = this.parent.resetFilter();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.parent.closePopup();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (utils.isKey(event, 'backspace') && this.isSelectionStart())\n\t\t\t{\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t\tvar square = this.getLastSquare();\n\n\t\t\t\tthis.isSquareSelected(square) ? this.complexSquareRemove(square) : this.selectSquare(square);\n\t\t\t}\n\n\t\t\tif (!utils.isKey(event, 'backspace') && !event.metaKey && this.isSquaresSelected())\n\t\t\t{\n\t\t\t\tthis.unselectSquares();\n\t\t\t}\n\t\t},\n\n\t\tgetSearchString: function()\n\t\t{\n\t\t\tvar input = this.getInput();\n\t\t\treturn !!input ? input.value : '';\n\t\t},\n\n\t\tgetSquares: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classSquare, true);\n\t\t},\n\n\t\tadjustPlaceholder: function()\n\t\t{\n\t\t\tif (this.parent.getParam(\"LIMITS_ENABLED\"))\n\t\t\t{\n\t\t\t\tthis.setInputPlaceholder(this.parent.getParam('MAIN_UI_FILTER__PLACEHOLDER_LIMITS_EXCEEDED'));\n\t\t\t}\n\t\t\telse if (this.parent.getParam(\"DISABLE_SEARCH\") || !this.parent.settings.get('SEARCH'))\n\t\t\t{\n\t\t\t\tthis.setInputPlaceholder(this.parent.getParam('MAIN_UI_FILTER__PLACEHOLDER'));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.setInputPlaceholder(this.parent.getParam('MAIN_UI_FILTER__PLACEHOLDER_DEFAULT'));\n\t\t\t}\n\t\t},\n\n\t\tisResolvedRequest: function()\n\t\t{\n\t\t\treturn !this.lastPromise || !!this.lastPromise && this.lastPromise.state;\n\t\t},\n\n\t\t/**\n\t\t * Calls BX.Main.Filter.applyFilter\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tapply: function()\n\t\t{\n\t\t\tif (this.isResolvedRequest())\n\t\t\t{\n\t\t\t\tthis.lastPromise = this.parent._onFindButtonClick();\n\t\t\t}\n\n\t\t\treturn this.lastPromise;\n\t\t},\n\n\t\t/**\n\t\t * Calls BX.Main.Filter.resetFilter()\n\t\t * @return {BX.Promise}\n\t\t */\n\t\treset: function()\n\t\t{\n\t\t\tif (this.isResolvedRequest())\n\t\t\t{\n\t\t\t\tthis.parent.getSearch().removePreset();\n\t\t\t\tthis.parent.getPreset().deactivateAllPresets();\n\t\t\t\tthis.parent.getPreset().resetPreset(true);\n\n\t\t\t\tthis.timeout = setTimeout(BX.delegate(function() {\n\t\t\t\t\tthis.lastPromise = this.parent.resetFilter();\n\t\t\t\t}, this), this.delay);\n\t\t\t}\n\n\t\t\treturn this.lastPromise;\n\t\t},\n\n\t\t_onInputWithoutDebounce: function()\n\t\t{\n\t\t\tclearTimeout(this.timeout);\n\n\t\t\tvar searchString = this.getSearchString();\n\t\t\tthis.lastSearchString = !!this.lastSearchString ? this.lastSearchString : searchString;\n\n\t\t\tif (searchString !== this.lastSearchString &&\n\t\t\t\t(!this.parent.isIe() || !this.firstInit))\n\t\t\t{\n\t\t\t\tif (this.parent.getParam('ENABLE_LIVE_SEARCH'))\n\t\t\t\t{\n\t\t\t\t\tthis.parent.showGridAnimation();\n\t\t\t\t\tBX.onCustomEvent(window, 'BX.Filter.Search:input', [this.parent.params.FILTER_ID, searchString]);\n\t\t\t\t}\n\n\t\t\t\tthis.parent.getPopup().isShown() && this.parent.closePopup();\n\t\t\t}\n\n\t\t\tif (searchString)\n\t\t\t{\n\t\t\t\tthis.showClearButton();\n\t\t\t\tthis.parent.setIsSetOutsideState(false);\n\t\t\t\tthis.parent.setDefaultPresetAppliedState(false);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (!this.getSquares().length && this.lastSearchString !== searchString)\n\t\t\t\t{\n\t\t\t\t\tthis.hideClearButton();\n\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t}\n\n\t\t\t\tif (this.parent.isAppliedDefaultPreset())\n\t\t\t\t{\n\t\t\t\t\tthis.parent.setDefaultPresetAppliedState(true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.parent.isAppliedUserFilter())\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(this.container, 'main-ui-filter-search--active');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(this.container, 'main-ui-filter-search--active');\n\t\t\t}\n\t\t},\n\n\t\t_onInput: function()\n\t\t{\n\t\t\tvar searchString = this.getSearchString();\n\n\t\t\tif (searchString !== this.lastSearchString && (!this.parent.isIe() || !this.firstInit))\n\t\t\t{\n\t\t\t\tthis.apply();\n\t\t\t}\n\n\t\t\tthis.firstInit = false;\n\t\t\tthis.lastSearchString = searchString;\n\t\t},\n\n\t\tgetButtonsContainer: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.buttonsContainer))\n\t\t\t{\n\t\t\t\tthis.buttonsContainer = BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classSearchButtonsContainer);\n\t\t\t}\n\n\t\t\treturn this.buttonsContainer;\n\t\t},\n\n\t\tshowClearButton: function()\n\t\t{\n\t\t\tBX.addClass(this.getButtonsContainer(), this.parent.settings.classShow);\n\t\t},\n\n\t\thideClearButton: function()\n\t\t{\n\t\t\tBX.removeClass(this.getButtonsContainer(), this.parent.settings.classShow);\n\t\t},\n\n\t\tgetInput: function()\n\t\t{\n\t\t\tvar inputId;\n\n\t\t\tif (!BX.type.isDomNode(this.input))\n\t\t\t{\n\t\t\t\tinputId = [this.parent.getParam('FILTER_ID', ''), '_search'].join('');\n\t\t\t\tthis.input = BX(inputId);\n\t\t\t}\n\n\t\t\treturn this.input;\n\t\t},\n\n\t\tgetContainer: function()\n\t\t{\n\t\t\tvar containerId;\n\n\t\t\tif (!BX.type.isDomNode(this.container))\n\t\t\t{\n\t\t\t\tcontainerId = [this.parent.getParam('FILTER_ID'), '_search_container'].join('');\n\t\t\t\tthis.container = BX(containerId);\n\t\t\t}\n\n\t\t\treturn this.container;\n\t\t},\n\n\t\tsetInputPlaceholder: function(text)\n\t\t{\n\t\t\tvar input = this.getInput();\n\t\t\tinput.placeholder = text;\n\t\t},\n\n\t\tclearInput: function()\n\t\t{\n\t\t\tvar form = this.getInput();\n\n\t\t\tif (BX.type.isDomNode(form))\n\t\t\t{\n\t\t\t\tform.value = null;\n\t\t\t}\n\t\t},\n\n\t\tclearForm: function()\n\t\t{\n\t\t\tthis.clearInput();\n\t\t\tthis.removePreset();\n\t\t},\n\n\t\tmakeSquares: function(squaresData, depth, additional)\n\t\t{\n\t\t\tvar square;\n\t\t\tvar tmpSquare = null;\n\t\t\tvar container = this.getContainer();\n\t\t\tvar result = {squares: [], moreSquares: []};\n\n\t\t\tsquaresData.forEach(function(current, index) {\n\t\t\t\tif (index < depth)\n\t\t\t\t{\n\t\t\t\t\tsquare = BX.decl(current);\n\t\t\t\t\ttmpSquare = tmpSquare || square;\n\n\t\t\t\t\tif (!additional)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (index === 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.prepend(square, container);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.insertAfter(square, tmpSquare);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvar lastSquare = BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classSquare);\n\t\t\t\t\t\tif (lastSquare)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.insertAfter(square, lastSquare);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.prepend(square, container);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttmpSquare = square;\n\t\t\t\t\tresult.squares.push(square);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult.moreSquares.push({type: 'control', name: current.value, title: current.title, icon: current.icon});\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\treturn result;\n\t\t},\n\n\t\tsquares: function(fields, depth, additional)\n\t\t{\n\t\t\tvar squaresData, moreSquares, square, squaresWidth, result;\n\t\t\tvar squares = BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classSquare, true);\n\n\t\t\tif (additional)\n\t\t\t{\n\t\t\t\tsquares.forEach(function(current) {\n\t\t\t\t\tvar item = BX.data(current, 'item');\n\n\t\t\t\t\tif (item)\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.remove(current);\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\tsquares.forEach(BX.remove);\n\t\t\t}\n\n\t\t\tsquaresData = this.prepareSquaresData(fields);\n\t\t\tmoreSquares = this.makeSquares(squaresData, depth, additional);\n\t\t\tsquaresWidth = 0;\n\t\t\tresult = {squaresData: squaresData, width: 0};\n\n\t\t\tif (moreSquares.moreSquares.length)\n\t\t\t{\n\t\t\t\tsquare = {\n\t\t\t\t\tblock: 'main-ui-search-square',\n\t\t\t\t\tname: this.parent.getParam('MAIN_UI_FILTER__AND') + ' ' + this.parent.getParam('MAIN_UI_FILTER__MORE') + ' ' + moreSquares.moreSquares.length,\n\t\t\t\t\titem: moreSquares.moreSquares,\n\t\t\t\t\ttitle: moreSquares.moreSquares\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\tfunction(curr) {\n\t\t\t\t\t\t\t\tlet title = curr.title;\n\t\t\t\t\t\t\t\tif ('icon' in curr && BX.Type.isPlainObject(curr.icon))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlet iconTitle = curr.icon.title;\n\t\t\t\t\t\t\t\t\ttitle = title.length ? (iconTitle + ': ' + title) : '';\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn title;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(', \\n')\n\t\t\t\t};\n\n\t\t\t\tsquare = BX.decl(square);\n\t\t\t\tmoreSquares.squares.push(square);\n\t\t\t\tBX.insertAfter(square, moreSquares.squares[moreSquares.squares.length-2]);\n\n\t\t\t\tsquaresWidth = moreSquares.squares.reduce(function(prev, curr) {\n\t\t\t\t\treturn prev + BX.width(curr) + (parseFloat(BX.style(curr, 'margin-right')) || 0);\n\t\t\t\t}, 0);\n\t\t\t}\n\n\t\t\tresult.width = squaresWidth;\n\n\t\t\treturn result;\n\t\t},\n\n\t\tsetPreset: function(presetData)\n\t\t{\n\t\t\tvar container = this.getContainer();\n\t\t\tvar square, squares;\n\t\t\tvar squaresResult;\n\n\t\t\tif (BX.type.isPlainObject(presetData))\n\t\t\t{\n\t\t\t\tsquares = BX.Filter.Utils.getByClass(container, this.parent.settings.classSquare, true);\n\t\t\t\tsquares.forEach(BX.remove);\n\n\t\t\t\tpresetData = BX.clone(presetData);\n\t\t\t\tpresetData.ADDITIONAL = presetData.ADDITIONAL || [];\n\t\t\t\tBX.onCustomEvent(window, 'BX.Filter.Search:beforeSquaresUpdate', [presetData, this]);\n\n\t\t\t\tif (presetData.ID !== 'default_filter' && presetData.ID !== 'tmp_filter')\n\t\t\t\t{\n\t\t\t\t\tsquare = BX.decl({\n\t\t\t\t\t\tblock: 'main-ui-search-square',\n\t\t\t\t\t\tname: presetData.TITLE,\n\t\t\t\t\t\tvalue: presetData.ID,\n\t\t\t\t\t\tisPreset: true\n\t\t\t\t\t});\n\n\t\t\t\t\tBX.prepend(square, container);\n\n\t\t\t\t\tif ('ADDITIONAL' in presetData && BX.type.isArray(presetData.ADDITIONAL) && presetData.ADDITIONAL.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tsquaresResult = this.squares(presetData.ADDITIONAL, 1, true);\n\n\t\t\t\t\t\tif ((BX.width(container) - squaresResult.width) < 100)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsquaresResult = this.squares(presetData.ADDITIONAL, 0, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif ('ADDITIONAL' in presetData && BX.type.isArray(presetData.ADDITIONAL) && presetData.ADDITIONAL.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tpresetData.ADDITIONAL.forEach(function(current, index) {\n\t\t\t\t\t\t\tif (!('ID' in current))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcurrent.ID = 'ADDITIONAL_ID_'+index;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!('NAME' in current))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcurrent.NAME = 'ADDITIONAL_NAME_'+index;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!('TYPE' in current))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcurrent.TYPE = 'STRING';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ('LABEL' in current && 'LABEL' in current)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpresetData.FIELDS.push(current);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (BX.type.isArray(presetData.FIELDS) && presetData.FIELDS.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tsquaresResult = this.squares(presetData.FIELDS, 2);\n\n\t\t\t\t\t\tif ((BX.width(container) - squaresResult.width) < 100)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsquaresResult = this.squares(presetData.FIELDS, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (squaresResult && BX.type.isArray(squaresResult.squaresData) && squaresResult.squaresData.length || (presetData.ID !== 'default_filter' && presetData.ID !== 'tmp_filter'))\n\t\t\t\t{\n\t\t\t\t\tif (this.parent.getParam(\"LIMITS_ENABLED\"))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setInputPlaceholder(this.parent.getParam('MAIN_UI_FILTER__PLACEHOLDER_LIMITS_EXCEEDED'));\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.setInputPlaceholder(this.parent.getParam('MAIN_UI_FILTER__PLACEHOLDER_WITH_FILTER'));\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.showClearButton();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.adjustPlaceholder();\n\t\t\t\t}\n\n\t\t\t\tif (BX.type.isNotEmptyString(this.parent.getSearch().getInput().value))\n\t\t\t\t{\n\t\t\t\t\tthis.showClearButton();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tprepareSquaresData: function(fields)\n\t\t{\n\t\t\tvar value, tmpValues, title, control;\n\t\t\tvar result = [];\n\n\t\t\tfields = fields.filter(function(current) {\n\t\t\t\treturn (\n\t\t\t\t\t!!current\n\t\t\t\t\t&& this.parent.params.FIELDS.some(function(currentField) {\n\t\t\t\t\t\treturn current.NAME === currentField.NAME;\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}, this);\n\n\t\t\tfields.map(function(current) {\n\t\t\t\tvalue = null;\n\n\t\t\t\tif (!BX.Type.isStringFilled(current.ADDITIONAL_FILTER))\n\t\t\t\t{\n\t\t\t\t\tswitch (current.TYPE)\n\t\t\t\t\t{\n\t\t\t\t\t\tcase this.parent.types.DATE : {\n\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.SUB_TYPE.NAME;\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.QUARTER &&\n\t\t\t\t\t\t\t\tBX.type.isNotEmptyString(current.VALUES._quarter))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvar quarter = current.QUARTERS.filter(function(curr) {\n\t\t\t\t\t\t\t\t\treturn curr.VALUE == current.VALUES._quarter;\n\t\t\t\t\t\t\t\t}).map(function(curr) {\n\t\t\t\t\t\t\t\t\treturn curr.NAME;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tquarter = quarter.length ? quarter.join('') : '';\n\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + quarter + ' ' +\n\t\t\t\t\t\t\t\t\tthis.parent.getParam('MAIN_UI_FILTER__QUARTER').toLocaleLowerCase() + ' ' +\n\t\t\t\t\t\t\t\t\tcurrent.VALUES._year;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.YEAR &&\n\t\t\t\t\t\t\t\tBX.type.isNotEmptyString(current.VALUES._year))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUES._year;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.MONTH &&\n\t\t\t\t\t\t\t\tBX.type.isNotEmptyString(current.VALUES._month))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvar month = current.MONTHS.filter(function(curr) {\n\t\t\t\t\t\t\t\t\treturn curr.VALUE == current.VALUES._month;\n\t\t\t\t\t\t\t\t}).map(function(curr) {\n\t\t\t\t\t\t\t\t\treturn curr.NAME;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tmonth = month.length ? month.join('') : '';\n\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + month + ' ' + current.VALUES._year;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.EXACT &&\n\t\t\t\t\t\t\t\tBX.type.isNotEmptyString(current.VALUES._from))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUES._from;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.RANGE)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._from) && BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUES._from + '-' + current.VALUES._to;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (!BX.type.isNotEmptyString(current.VALUES._from) && BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + this.parent.getParam('MAIN_UI_FILTER__BEFORE') + ' ' + current.VALUES._to;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (BX.type.isNotEmptyString(current.VALUES._from) && !BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + this.parent.getParam('MAIN_UI_FILTER__AFTER') + ' ' + current.VALUES._from;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\tif ((current.SUB_TYPE.VALUE === this.parent.dateTypes.NEXT_DAYS ||\n\t\t\t\t\t\t\t\tcurrent.SUB_TYPE.VALUE === this.parent.dateTypes.PREV_DAYS) &&\n\t\t\t\t\t\t\t\t!BX.type.isNumber(parseInt(current.VALUES._days)))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.NEXT_DAYS &&\n\t\t\t\t\t\t\t\tBX.type.isNumber(parseInt(current.VALUES._days)))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + this.parent.getParam('MAIN_UI_FILTER__DATE_NEXT_DAYS_LABEL').replace('#N#', current.VALUES._days);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.PREV_DAYS &&\n\t\t\t\t\t\t\t\tBX.type.isNumber(parseInt(current.VALUES._days)))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + this.parent.getParam('MAIN_UI_FILTER__DATE_PREV_DAYS_LABEL').replace('#N#', current.VALUES._days);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === this.parent.dateTypes.NONE)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.parent.types.CUSTOM_DATE : {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(BX.type.isArray(current.VALUE.days) && current.VALUE.days.length) ||\n\t\t\t\t\t\t\t\t(BX.type.isArray(current.VALUE.months) && current.VALUE.months.length) ||\n\t\t\t\t\t\t\t\t(BX.type.isArray(current.VALUE.years) && current.VALUE.years.length)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.parent.types.SELECT : {\n\t\t\t\t\t\t\tif ((BX.type.isPlainObject(current.VALUE) && current.VALUE.VALUE) || current.STRICT)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUE.NAME;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.parent.types.MULTI_SELECT : {\n\t\t\t\t\t\t\tif (BX.type.isArray(current.VALUE) && current.VALUE.length)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttmpValues = [];\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ';\n\t\t\t\t\t\t\t\tcurrent.VALUE.forEach(function(val, index) {\n\t\t\t\t\t\t\t\t\tif (index < 2)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttmpValues.push(val.NAME);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tvalue += tmpValues.join(', ');\n\n\t\t\t\t\t\t\t\tif (current.VALUE.length > 2)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttitle = [];\n\n\t\t\t\t\t\t\t\t\tcurrent.VALUE.forEach(function(val) {\n\t\t\t\t\t\t\t\t\t\ttitle.push(val.NAME);\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tvalue = title.join(', ');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.parent.types.NUMBER : {\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === 'exact')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._from))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUES._from;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === 'range')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._from) && BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUES._from + '-' + current.VALUES._to;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (!BX.type.isNotEmptyString(current.VALUES._from) && BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + this.parent.getParam('MAIN_UI_FILTER__NUMBER_LESS') + ' ' + current.VALUES._to;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (BX.type.isNotEmptyString(current.VALUES._from) && !BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + this.parent.getParam('MAIN_UI_FILTER__NUMBER_MORE') + ' ' + current.VALUES._from;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === 'more')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._from))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': > ';\n\t\t\t\t\t\t\t\t\tvalue += current.VALUES._from;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === 'less')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': < ';\n\t\t\t\t\t\t\t\t\tvalue += current.VALUES._to;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (current.SUB_TYPE.VALUE === 'before_n')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._to))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': < ';\n\t\t\t\t\t\t\t\t\tvalue += current.VALUES._to;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.parent.types.CUSTOM_ENTITY :\n\t\t\t\t\t\tcase this.parent.types.DEST_SELECTOR :\n\t\t\t\t\t\tcase this.parent.types.ENTITY_SELECTOR : {\n\t\t\t\t\t\t\tif (current.MULTIPLE)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvar label = !!current.VALUES._label ? current.VALUES._label : [];\n\n\t\t\t\t\t\t\t\tif (BX.type.isPlainObject(label))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel = Object.keys(label).map(function(key) {\n\t\t\t\t\t\t\t\t\t\treturn label[key];\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!BX.type.isArray(label))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel = [ label ];\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (label.length > 0)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ';\n\t\t\t\t\t\t\t\t\tvalue += label.join(', ');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUES._value) &&\n\t\t\t\t\t\t\t\t\tBX.type.isNotEmptyString(current.VALUES._label))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ';\n\t\t\t\t\t\t\t\t\tvalue += current.VALUES._label;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.parent.types.CUSTOM : {\n\t\t\t\t\t\t\tvalue = '_VALUE' in current && BX.type.isNotEmptyString(current._VALUE) ? current.LABEL : null;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdefault : {\n\t\t\t\t\t\t\tif (BX.type.isNotEmptyString(current.VALUE))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = current.LABEL + ': ' + current.VALUE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar squareItem = {\n\t\t\t\t\t\tblock: 'main-ui-search-square',\n\t\t\t\t\t\tname: current.LABEL + ': ' + BX.Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_IS_EMPTY'),\n\t\t\t\t\t\tvalue: current.NAME,\n\t\t\t\t\t\ticon: ('ICON' in current ? current.ICON : null),\n\t\t\t\t\t\titem: {type: 'control', name: current.NAME},\n\t\t\t\t\t\ttitle: current.LABEL + ': ' + BX.Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_IS_EMPTY')\n\t\t\t\t\t};\n\n\t\t\t\t\tif (current.ADDITIONAL_FILTER === BX.Filter.AdditionalFilter.Type.HAS_ANY_VALUE)\n\t\t\t\t\t{\n\t\t\t\t\t\tsquareItem.name = current.LABEL + ': ' + BX.Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_HAS_ANY_VALUE');\n\t\t\t\t\t\tsquareItem.title = current.LABEL + ': ' + BX.Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_HAS_ANY_VALUE');\n\t\t\t\t\t}\n\n\t\t\t\t\tresult.push(squareItem);\n\t\t\t\t}\n\n\t\t\t\tif (value !== null)\n\t\t\t\t{\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tblock: 'main-ui-search-square',\n\t\t\t\t\t\tname: value,\n\t\t\t\t\t\tvalue: current.NAME,\n\t\t\t\t\t\ticon: ('ICON' in current ? current.ICON : null),\n\t\t\t\t\t\titem: {type: 'control', name: current.NAME},\n\t\t\t\t\t\ttitle: value\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetPreset: function()\n\t\t{\n\t\t\tvar container = this.getContainer();\n\t\t\tvar presetClass = this.parent.settings.classSquare;\n\t\t\tvar preset = null;\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tpreset = BX.Filter.Utils.getByClass(container,presetClass);\n\t\t\t}\n\n\t\t\treturn preset;\n\t\t},\n\n\t\tremovePreset: function()\n\t\t{\n\t\t\tvar preset = this.getPreset();\n\n\t\t\tif (BX.type.isDomNode(preset))\n\t\t\t{\n\t\t\t\tBX.remove(preset);\n\n\t\t\t\tthis.adjustPlaceholder();\n\t\t\t}\n\n\t\t\tthis.hideClearButton();\n\t\t},\n\n\t\tupdatePreset: function(presetData)\n\t\t{\n\t\t\tthis.removePreset();\n\t\t\tthis.setPreset(presetData);\n\t\t}\n\t};\n\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Filter');\n\n\t/**\n\t * Filter settings class\n\t * @param options\n\t * @param parent\n\t * @constructor\n\t */\n\tBX.Filter.Settings = function(options, parent)\n\t{\n\t\t/**\n\t\t * Field\n\t\t * @type {string}\n\t\t */\n\t\tthis.classField = 'main-ui-control-field';\n\t\tthis.classFieldGroup = 'main-ui-control-field-group';\n\t\tthis.classFieldLine = 'main-ui-filter-field-line';\n\t\tthis.classFieldDelete = 'main-ui-filter-field-delete';\n\t\tthis.classFieldLabel = 'main-ui-control-field-label';\n\t\tthis.classFieldWithLabel = 'main-ui-filter-wield-with-label';\n\t\tthis.classPresetName = 'main-ui-filter-sidebar-item-text';\n\t\tthis.classControl = 'main-ui-control';\n\t\tthis.classDateInput = 'main-ui-date-input';\n\t\tthis.classHide = 'main-ui-hide';\n\t\tthis.classNumberInput = 'main-ui-number-input';\n\t\tthis.classSelect = 'main-ui-select';\n\t\tthis.classMultiSelect = 'main-ui-multi-select';\n\t\tthis.classValueDelete = 'main-ui-control-value-delete';\n\t\tthis.classStringInput = 'main-ui-control-string';\n\t\tthis.classAddField = 'main-ui-filter-field-add-item';\n\t\tthis.classAddPresetField = 'main-ui-filter-new-filter';\n\t\tthis.classAddPresetFieldInput = 'main-ui-filter-sidebar-edit-control';\n\t\tthis.classAddPresetButton = 'main-ui-filter-add-item';\n\t\tthis.classButtonsContainer = 'main-ui-filter-field-button-container';\n\t\tthis.classSaveButton = 'main-ui-filter-save';\n\t\tthis.classCancelButton = 'main-ui-filter-cancel';\n\t\tthis.classMenuItem = 'main-ui-select-inner-item';\n\t\tthis.classMenuItemText = 'main-ui-select-inner-item-element';\n\t\tthis.classMenuMultiItemText = 'main-ui-select-inner-label';\n\t\tthis.classMenuItemChecked = 'main-ui-checked';\n\t\tthis.classSearchContainer = 'main-ui-filter-search';\n\t\tthis.classDefaultPopup = 'popup-window';\n\t\tthis.classPopupFieldList = 'main-ui-filter-popup-field-list';\n\t\tthis.classPopupFieldList1Column = 'main-ui-filter-field-list-1-column';\n\t\tthis.classPopupFieldList2Column = 'main-ui-filter-field-list-2-column';\n\t\tthis.classPopupFieldList3Column = 'main-ui-filter-field-list-3-column';\n\t\tthis.classPopupFieldList4Column = 'main-ui-filter-field-list-4-column';\n\t\tthis.classPopupFieldList5Column = 'main-ui-filter-field-list-5-column';\n\t\tthis.classPopupFieldList6Column = 'main-ui-filter-field-list-6-column';\n\t\tthis.classFieldListItem = 'main-ui-filter-field-list-item';\n\t\tthis.classEditButton = 'main-ui-filter-add-edit';\n\t\tthis.classPresetEdit = 'main-ui-filter-edit';\n\t\tthis.classPresetNameEdit = 'main-ui-filter-edit-text';\n\t\tthis.classPresetDeleteButton = 'main-ui-delete';\n\t\tthis.classPresetDragButton = 'main-ui-filter-icon-grab';\n\t\tthis.classPresetEditButton = 'main-ui-filter-icon-edit';\n\t\tthis.classPresetEditInput = 'main-ui-filter-sidebar-item-input';\n\t\tthis.classPresetOndrag = 'main-ui-filter-sidebar-item-ondrag';\n\t\tthis.classSquare = 'main-ui-square';\n\t\tthis.classSquareDelete = 'main-ui-square-delete';\n\t\tthis.classSquareSelected = 'main-ui-square-selected';\n\t\tthis.classPresetsContainer = 'main-ui-filter-sidebar-item-container';\n\t\tthis.classPreset = 'main-ui-filter-sidebar-item';\n\t\tthis.classPresetCurrent = 'main-ui-filter-current-item';\n\t\tthis.classFilterContainer = 'main-ui-filter-wrapper';\n\t\tthis.classFileldControlList = 'main-ui-filter-field-container-list';\n\t\tthis.classRestoreFieldsButton = 'main-ui-filter-field-restore-items';\n\t\tthis.classClearSearchValueButton = 'main-ui-delete';\n\t\tthis.classSearchButtonsContainer = 'main-ui-item-icon-block';\n\t\tthis.classSearchButton = 'main-ui-search';\n\t\tthis.classDisabled = 'main-ui-disable';\n\t\tthis.classAnimationShow = 'main-ui-popup-show-animation';\n\t\tthis.classAnimationClose = 'main-ui-popup-close-animation';\n\t\tthis.classLimitsAnimation = 'main-ui-filter-field-limits-animate';\n\t\tthis.classSidebarControlsContainer = 'main-ui-filter-add-container';\n\t\tthis.searchContainerPostfix = '_search_container';\n\t\tthis.classPresetButtonsContainer = 'main-ui-filter-field-preset-button-container';\n\t\tthis.classFindButton = 'main-ui-filter-find';\n\t\tthis.classResetButton = 'main-ui-filter-reset';\n\t\tthis.classDefaultFilter = 'main-ui-filter-default-preset';\n\t\tthis.classRestoreButton = 'main-ui-filter-reset-link';\n\t\tthis.classPinButton = 'main-ui-filter-icon-pin';\n\t\tthis.classPopupOverlay = 'popup-window-overlay';\n\t\tthis.classSidePanelContainer = 'side-panel-container';\n\t\tthis.classPinnedPreset = 'main-ui-item-pin';\n\t\tthis.classWaitButtonClass = 'ui-btn-clock';\n\t\tthis.classForAllCheckbox = 'main-ui-filter-save-for-all';\n\t\tthis.classShow = 'main-ui-show';\n\t\tthis.classFocus = 'main-ui-focus';\n\t\tthis.classPresetField = 'main-ui-filter-preset-field';\n\t\tthis.classPopupSearchFieldListItemHidden = 'main-ui-filter-field-list-item-hidden';\n\t\tthis.classPopupSearchFieldListItemVisible = 'main-ui-filter-field-list-item-visible';\n\t\tthis.classPopupSearchSectionItem = 'main-ui-filter-popup-search-section-input';\n\t\tthis.classPopupSearchSectionItemIcon = 'main-ui-filter-popup-search-section-item-icon';\n\t\tthis.classPopupSearchSectionItemIconActive = 'main-ui-filter-popup-search-section-item-icon-active';\n\t\tthis.numberPostfix = '_numsel';\n\t\tthis.datePostfix = '_datesel';\n\t\tthis.toPostfix = '_to';\n\t\tthis.fromPostfix = '_from';\n\t\tthis.daysPostfix = '_days';\n\t\tthis.monthPostfix = '_month';\n\t\tthis.quarterPostfix = '_quarter';\n\t\tthis.yearPostfix = '_year';\n\t\tthis.generalTemplateId = '';\n\t\tthis.maxPopupColumnCount = 6;\n\t\tthis.popupWidth = 630;\n\t\tthis.init(options, parent);\n\t};\n\n\tBX.Filter.Settings.prototype = {\n\t\tinit: function(options, parent)\n\t\t{\n\t\t\tthis.generalTemplateId = parent.getParam('FILTER_ID') + '_GENERAL_template';\n\t\t\tthis.mergeSettings(options);\n\t\t},\n\n\t\tget: function(name, defaultValue)\n\t\t{\n\t\t\treturn (name && name in this && !BX.type.isFunction(this[name])) ? this[name] : defaultValue;\n\t\t},\n\n\t\tmergeSettings: function(options)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\tObject.keys(options).forEach(function(key) {\n\t\t\t\t\tif (!BX.type.isFunction(this[key]))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis[key] = options[key];\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t}\n\t};\n\n})();\n",";(function() {\n\t'use strict';\n\n\tBX.namespace('BX.Main');\n\n\n\t/**\n\t * General filter class\n\t * @param {object} params Component params\n\t * @param {object} options Extends BX.Filter.Settings\n\t * @param {object} types Field types from Bitrix\\Main\\UI\\Filter\\Type\n\t * @param types.STRING\n\t * @param types.SELECT\n\t * @param types.DATE\n\t * @param types.CUSTOM_DATE\n\t * @param types.MULTI_SELECT\n\t * @param types.NUMBER\n\t * @param types.DEST_SELECTOR\n\t * @param types.ENTITY_SELECTOR\n\t * @param types.CUSTOM_ENTITY\n\t * @param types.CHECKBOX\n\t * @param types.CUSTOM\n\t * @param types.ENTITY\n\t * @param {object} dateTypes Date field types from Bitrix\\Main\\UI\\Filter\\DateType\n\t * @param dateTypes.NONE\n\t * @param dateTypes.YESTERDAY\n\t * @param dateTypes.CURRENT_DAY\n\t * @param dateTypes.CURRENT_WEEK\n\t * @param dateTypes.CURRENT_MONTH\n\t * @param dateTypes.CURRENT_QUARTER\n\t * @param dateTypes.LAST_7_DAYS\n\t * @param dateTypes.LAST_30_DAYS\n\t * @param dateTypes.LAST_60_DAYS\n\t * @param dateTypes.LAST_90_DAYS\n\t * @param dateTypes.MONTH\n\t * @param dateTypes.QUARTER\n\t * @param dateTypes.YEAR\n\t * @param dateTypes.EXACT\n\t * @param dateTypes.LAST_WEEK\n\t * @param dateTypes.LAST_MONTH\n\t * @param dateTypes.RANGE\n\t * @param dateTypes.NEXT_DAYS\n\t * @param dateTypes.PREV_DAYS\n\t * @param dateTypes.TOMORROW\n\t * @param dateTypes.NEXT_MONTH\n\t * @param dateTypes.NEXT_WEEK\n\t * @param {object} numberTypes Number field types from Bitrix\\Main\\UI\\Filter\\NumberType\n\t * @memberOf {BX.Main}\n\t */\n\tBX.Main.Filter = function(params, options, types, dateTypes, numberTypes, additionalDateTypes, additionalNumberTypes)\n\t{\n\t\tthis.params = params;\n\t\tthis.search = null;\n\t\tthis.popup = null;\n\t\tthis.presets = null;\n\t\tthis.fields = null;\n\t\tthis.types = types;\n\t\tthis.dateTypes = dateTypes;\n\t\tthis.additionalDateTypes = additionalDateTypes;\n\t\tthis.additionalNumberTypes = additionalNumberTypes;\n\t\tthis.numberTypes = numberTypes;\n\t\tthis.settings = new BX.Filter.Settings(options, this);\n\t\tthis.filter = null;\n\t\tthis.api = null;\n\t\tthis.isAddPresetModeState = false;\n\t\tthis.firstInit = true;\n\t\tthis.analyticsLabel = null;\n\t\tthis.emitter = new BX.Event.EventEmitter();\n\t\tthis.emitter.setEventNamespace('BX.Filter.Field');\n\t\tthis.emitter.subscribe = function(eventName, listener) {\n\t\t\tBX.Event.EventEmitter.subscribe(\n\t\t\t\tthis.emitter,\n\t\t\t\teventName.replace('BX.Filter.Field:', ''),\n\t\t\t\tlistener\n\t\t\t);\n\t\t}.bind(this);\n\t\tthis.enableFieldsSearch = null;\n\t\tthis.enableHeadersSections = null;\n\n\t\tthis.init();\n\t};\n\n\t/**\n\t * Converts string to camel case\n\t * @param {string} string\n\t * @return {*}\n\t */\n\tfunction toCamelCase(string)\n\t{\n\t\tif (BX.type.isString(string))\n\t\t{\n\t\t\tstring = string.toLowerCase();\n\t\t\tstring = string.replace(/[\\-_\\s]+(.)?/g, function(match, chr) {\n\t\t\t\treturn chr ? chr.toUpperCase() : '';\n\t\t\t});\n\t\t\treturn string.substr(0, 1).toLowerCase() + string.substr(1);\n\t\t}\n\n\t\treturn string;\n\t}\n\n\t//noinspection JSUnusedGlobalSymbols\n\tBX.Main.Filter.prototype = {\n\t\tinit: function()\n\t\t{\n\t\t\tBX.bind(document, 'mousedown', BX.delegate(this._onDocumentClick, this));\n\t\t\tBX.bind(document, 'keydown', BX.delegate(this._onDocumentKeydown, this));\n\t\t\tBX.bind(window, 'load', BX.delegate(this.onWindowLoad, this));\n\t\t\tBX.addCustomEvent('Grid::ready', BX.delegate(this._onGridReady, this));\n\n\t\t\tthis.getSearch().updatePreset(this.getParam('CURRENT_PRESET'));\n\n\t\t\tthis.enableFieldsSearch = this.getParam('ENABLE_FIELDS_SEARCH', false);\n\t\t\tthis.enableHeadersSections = this.getParam('HEADERS_SECTIONS', false);\n\n\t\t\tif (this.isAppliedDefaultPreset())\n\t\t\t{\n\t\t\t\tthis.setDefaultPresetAppliedState(true);\n\t\t\t}\n\t\t},\n\n\t\tgetEmitter: function()\n\t\t{\n\t\t\treturn this.emitter;\n\t\t},\n\n\n\t\tonWindowLoad: function()\n\t\t{\n\t\t\tthis.settings.get('AUTOFOCUS') && this.adjustFocus();\n\t\t},\n\n\n\t\t/**\n\t\t * Removes apply_filter param from url\n\t\t */\n\t\tclearGet: function()\n\t\t{\n\t\t\tif ('history' in window)\n\t\t\t{\n\t\t\t\tvar url = window.location.toString();\n\t\t\t\tvar clearUrl = BX.util.remove_url_param(url, 'apply_filter');\n\t\t\t\twindow.history.replaceState(null, '', clearUrl);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Adjusts focus on search field\n\t\t */\n\t\tadjustFocus: function()\n\t\t{\n\t\t\tthis.getSearch().adjustFocus();\n\t\t},\n\n\t\t_onAddPresetKeydown: function(event)\n\t\t{\n\t\t\tif (BX.Filter.Utils.isKey(event, 'enter'))\n\t\t\t{\n\t\t\t\tthis._onSaveButtonClick();\n\t\t\t}\n\t\t},\n\n\t\t_onDocumentKeydown: function(event)\n\t\t{\n\t\t\tif (BX.Filter.Utils.isKey(event, 'escape'))\n\t\t\t{\n\t\t\t\tif (this.getPopup().isShown())\n\t\t\t\t{\n\t\t\t\t\tBX.onCustomEvent(window, 'BX.Main.Filter:blur', [this]);\n\t\t\t\t\tthis.closePopup();\n\n\t\t\t\t\tif (this.getParam('VALUE_REQUIRED_MODE'))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.restoreRemovedPreset();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.getParam('VALUE_REQUIRED'))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!this.getSearch().getSquares().length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.getPreset().applyPinnedPreset();\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},\n\n\n\t\t/**\n\t\t * Gets BX.Filter.Api instance\n\t\t * @return {BX.Filter.Api}\n\t\t */\n\t\tgetApi: function()\n\t\t{\n\t\t\tif (!(this.api instanceof BX.Filter.Api))\n\t\t\t{\n\t\t\t\tthis.api = new BX.Filter.Api(this);\n\t\t\t}\n\n\t\t\treturn this.api;\n\t\t},\n\n\n\t\t/**\n\t\t * Adds sidebar item\n\t\t * @param {string} id\n\t\t * @param {string} name\n\t\t * @param {boolean} [pinned = false]\n\t\t */\n\t\taddSidebarItem: function(id, name, pinned)\n\t\t{\n\t\t\tvar Presets = this.getPreset();\n\t\t\tvar presetsContainer = Presets.getContainer();\n\t\t\tvar sidebarItem = Presets.createSidebarItem(id, name, pinned);\n\t\t\tvar preset = Presets.getPresetNodeById(id);\n\n\t\t\tif (BX.type.isDomNode(preset))\n\t\t\t{\n\t\t\t\tBX.remove(preset);\n\t\t\t\tpresetsContainer.insertBefore(sidebarItem, Presets.getAddPresetField());\n\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tpresetsContainer && presetsContainer.insertBefore(sidebarItem, Presets.getAddPresetField());\n\t\t\t}\n\n\t\t\tBX.bind(sidebarItem, 'click', BX.delegate(Presets._onPresetClick, Presets));\n\t\t},\n\n\n\t\t/**\n\t\t * Saves user settings\n\t\t * @param {boolean} [forAll = false]\n\t\t */\n\t\tsaveUserSettings: function(forAll)\n\t\t{\n\t\t\tvar optionsParams = {'FILTER_ID': this.getParam('FILTER_ID'), 'GRID_ID': this.getParam('GRID_ID'), 'action': 'SET_FILTER_ARRAY'};\n\t\t\tvar Presets = this.getPreset();\n\t\t\tvar currentPresetId = Presets.getCurrentPresetId();\n\t\t\tvar presetsSettings = {};\n\n\t\t\tthis.params['PRESETS'] = BX.clone(this.editablePresets);\n\t\t\tpresetsSettings.current_preset = currentPresetId;\n\n\t\t\tPresets.getPresets().forEach(function(current, index) {\n\t\t\t\tvar presetId = Presets.getPresetId(current);\n\n\t\t\t\tif (presetId && presetId !== 'tmp_filter')\n\t\t\t\t{\n\t\t\t\t\tvar presetData = Presets.getPreset(presetId);\n\n\t\t\t\t\tpresetData.TITLE = BX.util.htmlspecialchars(BX.util.htmlspecialcharsback(presetData.TITLE));\n\t\t\t\t\tpresetData.SORT = index;\n\t\t\t\t\tPresets.updatePresetName(current, presetData.TITLE);\n\n\t\t\t\t\tpresetsSettings[presetId] = {\n\t\t\t\t\t\tsort: index,\n\t\t\t\t\t\tname: presetData.TITLE,\n\t\t\t\t\t\tfields: this.preparePresetSettingsFields(presetData.FIELDS),\n\t\t\t\t\t\trows: presetData.FIELDS.map((field) => field.NAME),\n\t\t\t\t\t\tfor_all: (\n\t\t\t\t\t\t\t(forAll && !BX.type.isBoolean(presetData.FOR_ALL)) ||\n\t\t\t\t\t\t\t(forAll && presetData.FOR_ALL === true)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tthis.saveOptions(presetsSettings, optionsParams, null, forAll);\n\t\t},\n\n\n\t\t/**\n\t\t * Checks is for all\n\t\t * @return {boolean}\n\t\t */\n\t\tisForAll: function(forAll)\n\t\t{\n\t\t\tvar checkbox = this.getForAllCheckbox();\n\t\t\treturn (\n\t\t\t\t(BX.type.isBoolean(forAll) && forAll) ||\n\t\t\t\t(!!checkbox && !!checkbox.checked)\n\t\t\t);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets for all checkbox\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetForAllCheckbox: function()\n\t\t{\n\t\t\tif (!this.forAllCheckbox)\n\t\t\t{\n\t\t\t\tthis.forAllCheckbox = BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classForAllCheckbox);\n\t\t\t}\n\n\t\t\treturn this.forAllCheckbox;\n\t\t},\n\n\n\t\t/**\n\t\t * Prepares preset settings fields\n\t\t * @param fields\n\t\t * @return {?object}\n\t\t */\n\t\tpreparePresetSettingsFields: function(fields)\n\t\t{\n\t\t\tvar result = {};\n\t\t\tvar valuesKeys;\n\n\t\t\t(fields || []).forEach(function(current) {\n\t\t\t\tswitch (current.TYPE)\n\t\t\t\t{\n\t\t\t\t\tcase this.types.STRING : {\n\t\t\t\t\t\tresult[current.NAME] = current.VALUE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.TEXTAREA : {\n\t\t\t\t\t\tresult[current.NAME] = current.VALUE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.SELECT : {\n\t\t\t\t\t\tresult[current.NAME] = 'VALUE' in current.VALUE ? current.VALUE.VALUE : '';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.MULTI_SELECT : {\n\t\t\t\t\t\tif (BX.type.isArray(current.VALUE) && current.VALUE.length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrent.VALUE.forEach(function(curr, index) {\n\t\t\t\t\t\t\t\tresult[current.NAME] = BX.type.isPlainObject(result[current.NAME]) ? result[current.NAME] : {};\n\t\t\t\t\t\t\t\tresult[current.NAME][index] = curr.VALUE;\n\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CHECKBOX : {\n\t\t\t\t\t\tif (BX.type.isArray(current.VALUE) && current.VALUE.length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrent.VALUE.forEach(function(curr, index) {\n\t\t\t\t\t\t\t\tresult[current.NAME] = BX.type.isPlainObject(result[current.NAME]) ? result[current.NAME] : {};\n\t\t\t\t\t\t\t\tresult[current.NAME][index] = curr.VALUE;\n\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DATE : {\n\t\t\t\t\t\tif (BX.type.isPlainObject(current.VALUES))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvaluesKeys = Object.keys(current.VALUES);\n\t\t\t\t\t\t\tresult[current.NAME + '_datesel'] = current.SUB_TYPE.VALUE;\n\t\t\t\t\t\t\tvaluesKeys.forEach(function(curr) {\n\t\t\t\t\t\t\t\tresult[current.NAME + curr] = current.VALUES[curr];\n\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.NUMBER : {\n\t\t\t\t\t\tif (BX.type.isPlainObject(current.VALUES))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvaluesKeys = Object.keys(current.VALUES);\n\t\t\t\t\t\t\tresult[current.NAME + '_numsel'] = current.SUB_TYPE.VALUE;\n\t\t\t\t\t\t\tvaluesKeys.forEach(function(curr) {\n\t\t\t\t\t\t\t\tresult[current.NAME + curr] = current.VALUES[curr];\n\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DEST_SELECTOR : {\n\t\t\t\t\t\tif (BX.type.isPlainObject(current.VALUES))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresult[current.NAME] = current.VALUES._value;\n\t\t\t\t\t\t\tresult[current.NAME + '_label'] = current.VALUES._label;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DEST_SELECTOR:\n\t\t\t\t\tcase this.types.ENTITY_SELECTOR:\n\t\t\t\t\tcase this.types.CUSTOM_ENTITY: {\n\t\t\t\t\t\tif (BX.type.isPlainObject(current.VALUES))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresult[current.NAME] = current.VALUES._value;\n\t\t\t\t\t\t\tresult[current.NAME + '_label'] = current.VALUES._label;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault : {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Saves preset\n\t\t */\n\t\tsavePreset: function()\n\t\t{\n\t\t\tvar presetId = 'filter_' + (+new Date());\n\t\t\tvar presetName = BX.util.htmlspecialcharsback(this.getPreset().getAddPresetFieldInput().value);\n\n\t\t\tthis.updatePreset(presetId, presetName, null, true, null, null, true);\n\t\t\tthis.addSidebarItem(presetId, presetName);\n\t\t\tthis.getPreset().applyPreset(presetId);\n\t\t\tthis.getPreset().activatePreset(presetId);\n\t\t\tthis.applyFilter();\n\t\t},\n\n\n\t\t/**\n\t\t * Updates preset\n\t\t * @param {string} presetId\n\t\t * @param {?string} [presetName]\n\t\t * @param {?boolean} [reset]\n\t\t * @param {?boolean} [sort]\n\t\t * @param {?function} [beforeLoad]\n\t\t * @param {?function} [afterLoad]\n\t\t * @param {boolean} [isNew]\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tupdatePreset: function(presetId, presetName, reset, sort, beforeLoad, afterLoad, isNew)\n\t\t{\n\t\t\tvar fields = this.getFilterFieldsValues();\n\t\t\tvar sourceFields = this.getPreset().getFields().map(function(curr) { return BX.data(curr, 'name'); });\n\t\t\tvar preset = this.getPreset().getCurrentPresetData();\n\t\t\tvar params = {'FILTER_ID': this.getParam('FILTER_ID'), 'GRID_ID': this.getParam('GRID_ID'), 'action': 'SET_FILTER'};\n\t\t\tvar rows, value, tmpPresetNode, tmpPresetInput, presets;\n\t\t\tvar data = {};\n\n\t\t\tdata.additional = {};\n\n\t\t\tif (presetId !== 'tmp_filter' && presetId !== 'default_filter' && !isNew)\n\t\t\t{\n\t\t\t\tvar additional = BX.type.isArray(preset.ADDITIONAL) ? preset.ADDITIONAL : [];\n\n\t\t\t\tadditional.forEach(function(field) {\n\t\t\t\t\tObject.keys(fields).forEach(function(key) {\n\t\t\t\t\t\tif (key.indexOf(field.NAME) !== -1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata.additional[key] = fields[key];\n\t\t\t\t\t\t\tdelete fields[key];\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\trows = Object.keys(fields);\n\n\t\t\tif (!reset)\n\t\t\t{\n\t\t\t\tdata.apply_filter = 'Y';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdata.clear_filter = 'Y';\n\t\t\t}\n\n\t\t\tdata.save = 'Y';\n\t\t\tdata.fields = fields;\n\t\t\tdata.rows = sourceFields.join(',');\n\n\t\t\tdata.preset_id = presetId || preset.ID;\n\n\t\t\tif (BX.type.isNotEmptyString(presetName))\n\t\t\t{\n\t\t\t\tdata.name = BX.util.htmlspecialchars(presetName);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttmpPresetNode = this.getPreset().getPresetNodeById(data.preset_id);\n\t\t\t\ttmpPresetInput = this.getPreset().getPresetInput(tmpPresetNode);\n\n\t\t\t\tif (BX.type.isDomNode(tmpPresetInput) && BX.type.isNotEmptyString(tmpPresetInput.value))\n\t\t\t\t{\n\t\t\t\t\tdata.name = tmpPresetInput.value;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tdata.name = preset.TITLE;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ((!('sort' in data) || !BX.type.isNumber(data.sort)) && sort)\n\t\t\t{\n\t\t\t\tpresets = this.getParam('PRESETS');\n\t\t\t\tdata.sort = presets.length + 2;\n\t\t\t}\n\n\t\t\tif (!reset)\n\t\t\t{\n\t\t\t\trows.forEach(function(key) {\n\t\t\t\t\tif (BX.type.isArray(data.fields[key]))\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = data.fields[key].length ? {} : '';\n\n\t\t\t\t\t\tdata.fields[key].forEach(function(val, index) {\n\t\t\t\t\t\t\tvalue[index] = val;\n\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\tif (value || BX.type.isNumber(value) || BX.type.isBoolean(value))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata.fields[key] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tif (data.preset_id === 'tmp_filter' || this.isAddPresetEnabled() || reset)\n\t\t\t{\n\t\t\t\tthis.updateParams(data);\n\t\t\t}\n\n\t\t\tif (BX.type.isFunction(beforeLoad))\n\t\t\t{\n\t\t\t\tbeforeLoad();\n\t\t\t}\n\n\t\t\tvar promise = new BX.Promise(null, this);\n\t\t\tpromise.setAutoResolve('fulfill', 0);\n\n\t\t\tpromise.then(function() {\n\t\t\t\tvar afterPromise = new BX.Promise(null, this);\n\t\t\t\tthis.saveOptions(data, params, BX.proxy(afterPromise.fulfill, afterPromise));\n\t\t\t\treturn afterPromise;\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\t!!afterLoad && afterLoad();\n\t\t\t});\n\n\t\t\treturn promise;\n\t\t},\n\n\n\t\t/**\n\t\t * Saves fields sort\n\t\t */\n\t\tsaveFieldsSort: function()\n\t\t{\n\t\t\tvar params = {'FILTER_ID': this.getParam('FILTER_ID'), 'GRID_ID': this.getParam('GRID_ID'), 'action': 'SET_FILTER'};\n\t\t\tvar fields = this.getPreset().getFields();\n\t\t\tvar data = {};\n\n\t\t\tdata.preset_id = 'default_filter';\n\n\t\t\tif (BX.type.isArray(fields))\n\t\t\t{\n\t\t\t\tdata.rows = fields.map(function(current) {\n\t\t\t\t\treturn BX.data(current, 'name');\n\t\t\t\t});\n\t\t\t\tdata.rows = data.rows.join(',');\n\t\t\t}\n\n\t\t\tthis.updateParams(data);\n\t\t\tthis.saveOptions(data, params);\n\t\t},\n\n\n\t\t/**\n\t\t * Updates params\n\t\t * @param {object} data\n\t\t */\n\t\tupdateParams: function(data)\n\t\t{\n\t\t\tvar preset, presets;\n\t\t\tvar fields = [];\n\n\t\t\tif (BX.type.isPlainObject(data) && 'preset_id' in data)\n\t\t\t{\n\t\t\t\tpreset = this.getPreset().getPreset(data.preset_id);\n\n\t\t\t\tif (BX.type.isPlainObject(preset))\n\t\t\t\t{\n\t\t\t\t\tif ('name' in data && BX.type.isNotEmptyString(data.name))\n\t\t\t\t\t{\n\t\t\t\t\t\tpreset.TITLE = data.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ('rows' in data && !('fields' in data))\n\t\t\t\t\t{\n\t\t\t\t\t\tdata.fields = {};\n\n\t\t\t\t\t\tdata.rows.split(',').forEach(function(curr) {\n\t\t\t\t\t\t\tdata.fields[curr] = '';\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif ('fields' in data)\n\t\t\t\t\t{\n\t\t\t\t\t\tpreset.FIELDS = this.preparePresetFields(data.fields, data.rows);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ('additional' in data && preset.ID !== 'tmp_filter')\n\t\t\t\t\t{\n\t\t\t\t\t\tpreset.ADDITIONAL = this.preparePresetFields(data.additional, data.rows);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpresets = this.getParam('PRESETS');\n\t\t\t\t\tpreset = {\n\t\t\t\t\t\tID: data.preset_id,\n\t\t\t\t\t\tTITLE: data.name,\n\t\t\t\t\t\tSORT: (presets.length + 2),\n\t\t\t\t\t\tFIELDS: this.preparePresetFields(data.fields, data.rows)\n\t\t\t\t\t};\n\n\t\t\t\t\tpresets.push(preset);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Prepares preset fields\n\t\t * @param {object[]} dataFields\n\t\t * @param rows\n\t\t * @return {object[]}\n\t\t */\n\t\tpreparePresetFields: function(dataFields, rows)\n\t\t{\n\t\t\tvar fieldKeys, field;\n\t\t\tvar fields = [];\n\n\t\t\tif (BX.type.isPlainObject(dataFields))\n\t\t\t{\n\t\t\t\trows = BX.type.isNotEmptyString(rows) ? rows.split(',') : [];\n\t\t\t\tfieldKeys = rows.length ? rows : Object.keys(dataFields);\n\t\t\t\tfieldKeys.forEach(function(current) {\n\t\t\t\t\tcurrent = current\n\t\t\t\t\t\t.replace('_datesel', '')\n\t\t\t\t\t\t.replace('_numsel', '')\n\t\t\t\t\t\t.replace('_' + BX.Filter.AdditionalFilter.Type.IS_EMPTY, '')\n\t\t\t\t\t\t.replace('_' + BX.Filter.AdditionalFilter.Type.HAS_ANY_VALUE, '');\n\t\t\t\t\tfield = BX.clone(this.getFieldByName(current));\n\n\t\t\t\t\tif (BX.type.isPlainObject(field))\n\t\t\t\t\t{\n\t\t\t\t\t\tfield.ADDITIONAL_FILTER = BX.Filter.AdditionalFilter.fetchAdditionalFilter(current, dataFields);\n\t\t\t\t\t\tif (!BX.Type.isStringFilled(field.ADDITIONAL_FILTER))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (field.TYPE === this.types.STRING)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.VALUE = dataFields[current];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.TEXTAREA)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.VALUE = dataFields[current];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.MULTI_SELECT)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.VALUE = this.prepareMultiSelectValue(dataFields[current], field.ITEMS);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.SELECT || field.TYPE === this.types.CHECKBOX)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.VALUE = this.prepareSelectValue(dataFields[current], field.ITEMS);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.DATE)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.SUB_TYPE = this.prepareSelectValue(dataFields[current + '_datesel'], field.SUB_TYPES);\n\n\t\t\t\t\t\t\t\tfield.VALUES = {\n\t\t\t\t\t\t\t\t\t'_from': dataFields[current + '_from'],\n\t\t\t\t\t\t\t\t\t'_to': dataFields[current + '_to'],\n\t\t\t\t\t\t\t\t\t'_days': dataFields[current + '_days'],\n\t\t\t\t\t\t\t\t\t'_month': dataFields[current + '_month'],\n\t\t\t\t\t\t\t\t\t'_quarter': dataFields[current + '_quarter'],\n\t\t\t\t\t\t\t\t\t'_year': dataFields[current + '_year'],\n\t\t\t\t\t\t\t\t\t'_allow_year': dataFields[current + '_allow_year']\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.CUSTOM_DATE)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.VALUE = {\n\t\t\t\t\t\t\t\t\t'days': Object.keys(dataFields[current + '_days'] || {}).map(function(index) {\n\t\t\t\t\t\t\t\t\t\treturn dataFields[current + '_days'][index];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t'months': Object.keys(dataFields[current + '_months'] || {}).map(function(index) {\n\t\t\t\t\t\t\t\t\t\treturn dataFields[current + '_months'][index];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t'years': Object.keys(dataFields[current + '_years'] || {}).map(function(index) {\n\t\t\t\t\t\t\t\t\t\treturn dataFields[current + '_years'][index];\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.NUMBER)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield.SUB_TYPE = this.prepareSelectValue(dataFields[current + '_numsel'], field.SUB_TYPES);\n\t\t\t\t\t\t\t\tfield.VALUES = {\n\t\t\t\t\t\t\t\t\t'_from': dataFields[current + '_from'],\n\t\t\t\t\t\t\t\t\t'_to': dataFields[current + '_to']\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tfield.TYPE === this.types.DEST_SELECTOR\n\t\t\t\t\t\t\t\t|| field.TYPE === this.types.ENTITY_SELECTOR\n\t\t\t\t\t\t\t\t||field.TYPE === this.types.CUSTOM_ENTITY\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (typeof dataFields[current + '_label'] !== 'undefined')\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfield.VALUES._label = dataFields[current + '_label'];\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (typeof dataFields[current] !== 'undefined')\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfield.VALUES._value = dataFields[current];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (field.TYPE === this.types.CUSTOM)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield._VALUE = dataFields[current];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfields.push(field);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn fields;\n\t\t},\n\n\n\t\t/**\n\t\t * Prepares select values\n\t\t * @param value\n\t\t * @param items\n\t\t * @return {object}\n\t\t */\n\t\tprepareSelectValue: function(value, items)\n\t\t{\n\t\t\tvar result = {};\n\t\t\tvar tmpResult;\n\n\t\t\tif (BX.type.isNotEmptyString(value) && BX.type.isArray(items))\n\t\t\t{\n\t\t\t\ttmpResult = this.prepareMultiSelectValue({0: value}, items);\n\t\t\t\tresult = tmpResult.length > 0 ? tmpResult[0] : {};\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult = items[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Prepares multiselect value\n\t\t * @param values\n\t\t * @param items\n\t\t * @return {Array}\n\t\t */\n\t\tprepareMultiSelectValue: function(values, items)\n\t\t{\n\t\t\tvar result = [];\n\n\t\t\tif (BX.type.isPlainObject(values) && BX.type.isArray(items))\n\t\t\t{\n\t\t\t\tvar valuesKeys = Object.keys(values);\n\t\t\t\tvar valuesValues = valuesKeys.map(function(curr) { return values[curr]; });\n\n\t\t\t\tresult = items.filter(function(current) {\n\t\t\t\t\treturn valuesValues.some(function(val) { return val === current.VALUE});\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Get field by name\n\t\t * @param {string} name\n\t\t * @return {?object}\n\t\t */\n\t\tgetFieldByName: function(name)\n\t\t{\n\t\t\tvar fields = this.getParam('FIELDS');\n\n\t\t\tvar field = fields.find(function(current) {\n\t\t\t\treturn current.NAME === name;\n\t\t\t});\n\n\t\t\tif (field)\n\t\t\t{\n\t\t\t\treturn field;\n\t\t\t}\n\n\t\t\tvar node = this.getFieldListContainer()\n\t\t\t\t.querySelector('[data-name=\"' + name + '\"]');\n\n\t\t\tfield = BX.Filter.Field.instances.get(node);\n\n\t\t\tif (field)\n\t\t\t{\n\t\t\t\treturn field.options;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\n\t\t/**\n\t\t * @private\n\t\t * @return {Promise}\n\t\t */\n\t\tconfirmSaveForAll: function()\n\t\t{\n\t\t\treturn new Promise(function(resolve) {\n\t\t\t\tvar action = {\n\t\t\t\t\tCONFIRM: true,\n\t\t\t\t\tCONFIRM_MESSAGE: this.getParam('MAIN_UI_FILTER__CONFIRM_MESSAGE_FOR_ALL'),\n\t\t\t\t\tCONFIRM_APPLY_BUTTON: this.getParam('MAIN_UI_FILTER__CONFIRM_APPLY_FOR_ALL'),\n\t\t\t\t\tCONFIRM_CANCEL_BUTTON: this.getParam('CONFIRM_CANCEL')\n\t\t\t\t};\n\t\t\t\tthis.confirmDialog(action, resolve);\n\t\t\t}.bind(this));\n\t\t},\n\n\n\t\t/**\n\t\t * Save options\n\t\t * @param {object} data\n\t\t * @param {object} [params]\n\t\t * @param {function} [callback]\n\t\t * @param {boolean} [forAll = false]\n\t\t */\n\t\tsaveOptions: function(data, params, callback, forAll)\n\t\t{\n\t\t\tparams.action = toCamelCase(params.action);\n\t\t\tparams.forAll = this.isForAll(forAll);\n\t\t\tparams.commonPresetsId = this.getParam('COMMON_PRESETS_ID');\n\t\t\tparams.apply_filter = data.apply_filter || \"N\";\n\t\t\tparams.clear_filter = data.clear_filter || \"N\";\n\t\t\tparams.with_preset = data.with_preset || \"N\";\n\t\t\tparams.save = data.save || \"N\";\n\t\t\tparams.isSetOutside = this.isSetOutside();\n\n\t\t\tvar requestData = {\n\t\t\t\tparams: params,\n\t\t\t\tdata: data\n\t\t\t};\n\n\t\t\tdelete data.apply_filter;\n\t\t\tdelete data.save;\n\t\t\tdelete data.clear_filter;\n\t\t\tdelete data.with_preset;\n\n\t\t\tif (params.forAll && params.action === 'setFilterArray')\n\t\t\t{\n\t\t\t\treturn this.confirmSaveForAll()\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\treturn this.backend(params.action, requestData);\n\t\t\t\t\t}.bind(this))\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tthis.disableEdit();\n\t\t\t\t\t\tthis.disableAddPreset();\n\t\t\t\t\t}.bind(this))\n\t\t\t}\n\n\t\t\treturn this.backend(params.action, requestData)\n\t\t\t\t.then(function() {\n\t\t\t\t\tBX.removeClass(this.getFindButton(), this.settings.classWaitButtonClass);\n\t\t\t\t\tBX.type.isFunction(callback) && callback();\n\t\t\t\t}.bind(this));\n\t\t},\n\n\n\t\t/**\n\t\t *\n\t\t * @param {string} action\n\t\t * @param data\n\t\t */\n\t\tbackend: function(action, data)\n\t\t{\n\t\t\tconst analyticsLabel = this.analyticsLabel || {};\n\t\t\tthis.analyticsLabel = {};\n\n\t\t\treturn BX.ajax.runComponentAction(\n\t\t\t\t'bitrix:main.ui.filter',\n\t\t\t\taction,\n\t\t\t\t{\n\t\t\t\t\tmode: 'ajax',\n\t\t\t\t\tdata: data,\n\t\t\t\t\tanalyticsLabel: {\n\t\t\t\t\t\tFILTER_ID: this.getParam('FILTER_ID'),\n\t\t\t\t\t\tGRID_ID: this.getParam('GRID_ID'),\n\t\t\t\t\t\tPRESET_ID: data['data']['preset_id'],\n\t\t\t\t\t\tFIND: data['data'].hasOwnProperty('fields')\n\t\t\t\t\t\t\t&& data['data']['fields'].hasOwnProperty('FIND')\n\t\t\t\t\t\t\t&& !!data['data']['fields']['FIND'] ? \"Y\" : \"N\",\n\t\t\t\t\t\tROWS: BX.Type.isObject(data['data']['additional'])\n\t\t\t\t\t\t\t&& Object.keys(data['data']['additional']).length == 0 ? \"N\" : \"Y\",\n\t\t\t\t\t\t...analyticsLabel\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Sends analytics when limit is enabled\n\t\t */\n\t\tlimitAnalyticsSend: function ()\n\t\t{\n\t\t\tBX.ajax.runComponentAction(\n\t\t\t\t'bitrix:main.ui.filter',\n\t\t\t\t'limitAnalytics',\n\t\t\t\t{\n\t\t\t\t\tmode: 'ajax',\n\t\t\t\t\tdata: {},\n\t\t\t\t\tanalyticsLabel: {\n\t\t\t\t\t\tFILTER_ID: this.getParam('FILTER_ID'),\n\t\t\t\t\t\tLIMIT: this.getParam('FILTER_ID')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Prepares event.path\n\t\t * @param event\n\t\t * @return {*}\n\t\t */\n\t\tprepareEvent: function(event)\n\t\t{\n\t\t\tvar i, x;\n\n\t\t\tif (!('path' in event) || !event.path.length)\n\t\t\t{\n\t\t\t\tevent.path = [event.target];\n\t\t\t\ti = 0;\n\n\t\t\t\twhile ((x = event.path[i++].parentNode) !== null)\n\t\t\t\t{\n\t\t\t\t\tevent.path.push(x);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn event;\n\t\t},\n\n\n\t\t/**\n\t\t * Restores removed preset values\n\t\t * VALUE_REQUIRED_MODE = true only\n\t\t */\n\t\trestoreRemovedPreset: function()\n\t\t{\n\t\t\tif (this.getParam('VALUE_REQUIRED_MODE'))\n\t\t\t{\n\t\t\t\tvar currentPreset = this.getParam('CURRENT_PRESET');\n\t\t\t\tif (BX.type.isPlainObject(currentPreset))\n\t\t\t\t{\n\t\t\t\t\tvar currentPresetId = currentPreset.ID;\n\t\t\t\t\tvar presetNode = this.getPreset().getPresetNodeById(currentPresetId);\n\t\t\t\t\tthis.getPreset().applyPreset(currentPresetId);\n\t\t\t\t\tthis.getPreset().activatePreset(presetNode);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Checks that the event occurred on the scroll bar\n\t\t * @param {MouseEvent} event\n\t\t * @return {boolean}\n\t\t */\n\t\thasScrollClick: function(event)\n\t\t{\n\t\t\tvar x = 'clientX' in event ? event.clientX : 'x' in event ? event.x : 0;\n\t\t\treturn x >= document.documentElement.offsetWidth;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks whether to use common presets\n\t\t * @return {boolean}\n\t\t */\n\t\tisUseCommonPresets: function()\n\t\t{\n\t\t\treturn !!this.getParam('COMMON_PRESETS_ID');\n\t\t},\n\n\n\t\t/**\n\t\t * Checks whether event is inside filter\n\t\t * @param {MouseEvent} event\n\t\t * @returns {boolean}\n\t\t */\n\t\tisInsideFilterEvent: function(event)\n\t\t{\n\t\t\tevent = this.prepareEvent(event);\n\t\t\treturn (event.path || []).some(function(current) {\n\t\t\t\treturn (\n\t\t\t\t\tBX.type.isDomNode(current) && (\n\t\t\t\t\t\tBX.hasClass(current, this.settings.classFilterContainer) ||\n\t\t\t\t\t\tBX.hasClass(current, this.settings.classSearchContainer) ||\n\t\t\t\t\t\tBX.hasClass(current, this.settings.classDefaultPopup) ||\n\t\t\t\t\t\tBX.hasClass(current, this.settings.classPopupOverlay) ||\n\t\t\t\t\t\tBX.hasClass(current, this.settings.classSidePanelContainer)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}, this);\n\t\t},\n\n\t\t_onDocumentClick: function(event)\n\t\t{\n\t\t\tvar popup = this.getPopup();\n\n\t\t\tif (!this.isInsideFilterEvent(event) && !this.hasScrollClick(event))\n\t\t\t{\n\t\t\t\tif (popup && popup.isShown())\n\t\t\t\t{\n\t\t\t\t\tthis.closePopup();\n\n\t\t\t\t\tif (this.getParam('VALUE_REQUIRED_MODE'))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.restoreRemovedPreset();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.getParam('VALUE_REQUIRED'))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!this.getSearch().getSquares().length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.getPreset().applyPinnedPreset();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tBX.onCustomEvent(window, 'BX.Main.Filter:blur', [this]);\n\t\t\t}\n\t\t},\n\n\t\t_onAddFieldClick: function(event)\n\t\t{\n\t\t\tvar popup = this.getFieldsPopup();\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\tif (popup && !popup.isShown())\n\t\t\t{\n\t\t\t\tthis.showFieldsPopup();\n\t\t\t\tthis.syncFields();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.closeFieldListPopup();\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Synchronizes field list in popup and filter field list\n\t\t * @param {?{cache: boolean}} [options]\n\t\t */\n\t\tsyncFields: function(options)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(options))\n\t\t\t{\n\t\t\t\tif (options.cache === false)\n\t\t\t\t{\n\t\t\t\t\tthis.fieldsPopupItems = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar fields = this.getPreset().getFields();\n\t\t\tvar items = this.getFieldsPopupItems();\n\t\t\tvar currentId, isNeedCheck;\n\n\t\t\tif (BX.type.isArray(items) && items.length)\n\t\t\t{\n\t\t\t\titems.forEach(function(current) {\n\t\t\t\t\tcurrentId = BX.data(current, 'name').replace('_datesel', '').replace('_numsel', '');\n\t\t\t\t\tisNeedCheck = fields.some(function(field) {\n\t\t\t\t\t\treturn BX.data(field, 'name') === currentId;\n\t\t\t\t\t});\n\t\t\t\t\tif (isNeedCheck)\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.addClass(current, this.settings.classMenuItemChecked);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.removeClass(current, this.settings.classMenuItemChecked);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets items of popup window with a list of available fields\n\t\t * @return {?HTMLElement[]}\n\t\t */\n\t\tgetFieldsPopupItems: function()\n\t\t{\n\t\t\tif (!BX.type.isArray(this.fieldsPopupItems))\n\t\t\t{\n\t\t\t\tvar popup = this.getFieldsPopup();\n\n\t\t\t\tif ('contentContainer' in popup && BX.type.isDomNode(popup.contentContainer))\n\t\t\t\t{\n\t\t\t\t\tthis.fieldsPopupItems = BX.Filter.Utils.getByClass(popup.contentContainer, this.settings.classMenuItem, true);\n\t\t\t\t}\n\n\t\t\t\tthis.prepareAnimation();\n\t\t\t}\n\n\t\t\treturn this.fieldsPopupItems;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup container class name by popup items count\n\t\t * @param {int|string} itemsCount\n\t\t * @return {string}\n\t\t */\n\t\tgetFieldListContainerClassName: function(itemsCount)\n\t\t{\n\t\t\tvar popupColumnsCount = parseInt(this.settings.get('popupColumnsCount', 0), 10);\n\t\t\tif (popupColumnsCount > 0 && popupColumnsCount <= this.settings.maxPopupColumnCount)\n\t\t\t{\n\t\t\t\treturn this.settings.get('classPopupFieldList' + popupColumnsCount + 'Column');\n\t\t\t}\n\n\t\t\tvar containerClass = this.settings.classPopupFieldList1Column;\n\n\t\t\tif (itemsCount > 6 && itemsCount < 12)\n\t\t\t{\n\t\t\t\tcontainerClass = this.settings.classPopupFieldList2Column;\n\t\t\t}\n\n\t\t\tif (itemsCount > 12)\n\t\t\t{\n\t\t\t\tcontainerClass = this.settings.classPopupFieldList3Column;\n\t\t\t}\n\n\t\t\treturn containerClass;\n\t\t},\n\n\n\t\t/**\n\t\t * Prepares fields declarations\n\t\t * @param {object[]} fields\n\t\t * @return {object[]}\n\t\t */\n\t\tprepareFieldsDecl: function(fields)\n\t\t{\n\t\t\treturn (fields || []).map(function(item) {\n\t\t\t\treturn {\n\t\t\t\t\tblock: 'main-ui-filter-field-list-item',\n\t\t\t\t\tlabel: 'LABEL' in item ? item.LABEL : '',\n\t\t\t\t\tid: 'ID' in item ? item.ID : '',\n\t\t\t\t\tname: 'NAME' in item ? item.NAME : '',\n\t\t\t\t\titem: item,\n\t\t\t\t\tsectionId: 'SECTION_ID' in item ? item.SECTION_ID : '',\n\t\t\t\t\tonClick: BX.delegate(this._clickOnFieldListItem, this)\n\t\t\t\t};\n\t\t\t}, this);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets lazy load field list\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tgetLazyLoadFields: function()\n\t\t{\n\t\t\tvar p = new BX.Promise();\n\n\t\t\tBX.ajax({\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: this.getParam(\"LAZY_LOAD\")[\"GET_LIST\"],\n\t\t\t\tdataType: 'json',\n\t\t\t\tonsuccess: function(response) {\n\t\t\t\t\tp.fulfill(response);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn p;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets fields list popup content\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tgetFieldsListPopupContent: function()\n\t\t{\n\t\t\tvar p = new BX.Promise();\n\t\t\tvar fields = this.getParam('FIELDS');\n\t\t\tvar fieldsCount = BX.type.isArray(fields) ? fields.length : 0;\n\n\t\t\tif (this.getParam('LAZY_LOAD'))\n\t\t\t{\n\t\t\t\tconst callback = function(response) {\n\t\t\t\t\tp.fulfill(this.getPopupContent(\n\t\t\t\t\t\tthis.settings.classPopupFieldList,\n\t\t\t\t\t\tthis.getFieldListContainerClassName(response.length),\n\t\t\t\t\t\tthis.prepareFieldsDecl(response)\n\t\t\t\t\t));\n\t\t\t\t}.bind(this);\n\n\t\t\t\tif (BX.type.isNotEmptyObject(this.getParam('LAZY_LOAD')['CONTROLLER']))\n\t\t\t\t{\n\t\t\t\t\tvar sourceComponentName = this.getParam('LAZY_LOAD')['CONTROLLER']['componentName'];\n\t\t\t\t\tvar sourceComponentSignedParameters = this.getParam('LAZY_LOAD')['CONTROLLER']['signedParameters'];\n\n\t\t\t\t\tBX.ajax.runAction(this.getParam('LAZY_LOAD')['CONTROLLER']['getList'], {\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tfilterId: this.getParam('FILTER_ID'),\n\t\t\t\t\t\t\tcomponentName: (BX.type.isNotEmptyString(sourceComponentName) ? sourceComponentName : ''),\n\t\t\t\t\t\t\tsignedParameters: (BX.type.isNotEmptyString(sourceComponentSignedParameters) ? sourceComponentSignedParameters : '')\n\t\t\t\t\t\t}\n\t\t\t\t\t}).then(function(response) {\n\t\t\t\t\t\tcallback(response.data);\n\t\t\t\t\t}.bind(this), function (response) {\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.getLazyLoadFields().then(callback);\n\t\t\t\t}\n\n\t\t\t\treturn p;\n\t\t\t}\n\n\t\t\tp.fulfill(this.getPopupContent(\n\t\t\t\tthis.settings.classPopupFieldList,\n\t\t\t\tthis.getFieldListContainerClassName(fieldsCount),\n\t\t\t\tthis.prepareFieldsDecl(fields)\n\t\t\t));\n\t\t\treturn p;\n\t\t},\n\n\t\tgetPopupContent: function(block: string, mix: string, content: Object[]): HTMLElement\n\t\t{\n\t\t\tconst wrapper = BX.Tag.render`<div></div>`;\n\t\t\tif (!this.enableHeadersSections)\n\t\t\t{\n\t\t\t\tconst fieldsContent = BX.decl({\n\t\t\t\t\tcontent: content,\n\t\t\t\t\tblock: block,\n\t\t\t\t\tmix: mix,\n\t\t\t\t});\n\t\t\t\tthis.setPopupElementWidthFromSettings(fieldsContent);\n\t\t\t\twrapper.appendChild(fieldsContent);\n\n\t\t\t\tif (this.enableFieldsSearch)\n\t\t\t\t{\n\t\t\t\t\tthis.preparePopupContentHeader(wrapper);\n\t\t\t\t}\n\n\t\t\t\treturn wrapper;\n\t\t\t}\n\n\t\t\tconst defaultHeaderSection = this.getDefaultHeaderSection();\n\t\t\tconst sections = {};\n\n\t\t\tcontent.forEach((item: Object) => {\n\t\t\t\tconst sectionId = (item.sectionId.length ? item.sectionId : defaultHeaderSection.id);\n\t\t\t\tif (sections[sectionId] === undefined)\n\t\t\t\t{\n\t\t\t\t\tsections[sectionId] = [];\n\t\t\t\t}\n\t\t\t\tsections[sectionId].push(item);\n\t\t\t});\n\n\t\t\tthis.preparePopupContentHeader(wrapper);\n\t\t\tthis.preparePopupContentFields(wrapper, sections, block, mix);\n\n\t\t\treturn wrapper;\n\t\t},\n\n\t\tpreparePopupContentHeader: function(wrapper: HTMLElement): void\n\t\t{\n\t\t\tconst headerWrapper = BX.Tag.render`\n\t\t\t\t<div class=\"main-ui-filter-popup-search-header-wrapper\">\n\t\t\t\t\t<div class=\"ui-form-row-inline\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\twrapper.prepend(headerWrapper);\n\n\t\t\tthis.preparePopupContentHeaderSections(headerWrapper);\n\t\t\tthis.preparePopupContentHeaderSearch(headerWrapper);\n\t\t},\n\n\t\tpreparePopupContentHeaderSections: function(headerWrapper): void\n\t\t{\n\t\t\tif (!this.enableHeadersSections)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst headerSectionsWrapper = BX.Tag.render`\n\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t<div class=\"ui-form-content main-ui-filter-popup-search-section-wrapper\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\theaderWrapper.firstElementChild.appendChild(headerSectionsWrapper);\n\n\t\t\tconst headersSections = this.getHeadersSections();\n\t\t\tfor (let key in headersSections)\n\t\t\t{\n\t\t\t\tconst itemClass = this.settings.classPopupSearchSectionItemIcon\n\t\t\t\t + (headersSections[key].selected ? ` ${this.settings.classPopupSearchSectionItemIconActive}` : '');\n\n\t\t\t\tconst headerSectionItem = BX.Tag.render`\n\t\t\t\t\t<div class=\"main-ui-filter-popup-search-section-item\" data-ui-popup-filter-section-button=\"${key}\">\n\t\t\t\t\t\t<div class=\"${itemClass}\">\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t${BX.Text.encode(headersSections[key].name)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tBX.bind(headerSectionItem, 'click', this.onFilterSectionClick.bind(this, headerSectionItem));\n\n\t\t\t\theaderSectionsWrapper.firstElementChild.appendChild(headerSectionItem);\n\t\t\t}\n\t\t},\n\n\t\tonFilterSectionClick: function(item: HTMLElement): void\n\t\t{\n\t\t\tconst activeClass = this.settings.classPopupSearchSectionItemIconActive;\n\t\t\tconst sectionId = item.dataset.uiPopupFilterSectionButton;\n\t\t\tconst section = document.querySelectorAll(\"[data-ui-popup-filter-section='\"+sectionId+\"']\");\n\t\t\tif (BX.Dom.hasClass(item.firstElementChild, activeClass))\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(item.firstElementChild, activeClass);\n\t\t\t\tBX.Dom.hide(section[0]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(item.firstElementChild, activeClass);\n\t\t\t\tBX.Dom.show(section[0]);\n\t\t\t}\n\t\t},\n\n\t\tpreparePopupContentHeaderSearch: function(headerWrapper: HTMLElement): void\n\t\t{\n\t\t\tif (!this.enableFieldsSearch)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst searchForm = BX.Tag.render`\n\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t<div class=\"ui-form-content main-ui-filter-popup-search-input-wrapper\">\n\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-before-icon ui-ctl-after-icon\">\n\t\t\t\t\t\t\t<div class=\"ui-ctl-before ui-ctl-icon-search\"></div>\n\t\t\t\t\t\t\t<button class=\"ui-ctl-after ui-ctl-icon-clear\"></button>\n\t\t\t\t\t\t\t<input type=\"text\" class=\"ui-ctl-element ${this.settings.classPopupSearchSectionItem}\">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t\theaderWrapper.firstElementChild.appendChild(searchForm);\n\t\t\tconst inputs = searchForm.getElementsByClassName(this.settings.classPopupSearchSectionItem);\n\t\t\tif (inputs.length)\n\t\t\t{\n\t\t\t\tconst input = inputs[0];\n\t\t\t\tBX.bind(input, 'input', this.onFilterSectionSearchInput.bind(this, input));\n\t\t\t\tBX.bind(input.previousElementSibling, 'click', this.onFilterSectionSearchInputClear.bind(this, input));\n\t\t\t}\n\t\t},\n\n\t\tpreparePopupContentFields: function(wrapper: HTMLElement, sections, block: string, mix): void\n\t\t{\n\t\t\tif (!this.enableHeadersSections)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst sectionsWrapper = BX.Tag.render`<div class=\"main-ui-filter-popup-search-sections-wrapper\"></div>`;\n\t\t\twrapper.appendChild(sectionsWrapper);\n\n\t\t\tfor (let key in sections)\n\t\t\t{\n\t\t\t\tconst sectionWrapper = BX.Tag.render`\n\t\t\t\t\t<div class=\"main-ui-filter-popup-section-wrapper\" data-ui-popup-filter-section=\"${key}\"></div>\n\t\t\t\t`;\n\t\t\t\tthis.setPopupElementWidthFromSettings(sectionWrapper);\n\n\t\t\t\tif (!this.getHeadersSectionParam(key, 'selected'))\n\t\t\t\t{\n\t\t\t\t\tsectionWrapper.setAttribute('hidden', '');\n\t\t\t\t}\n\n\t\t\t\tconst sectionTitle = BX.Tag.render`\n\t\t\t\t\t<h3 class=\"main-ui-filter-popup-title\">\n\t\t\t\t\t\t${BX.Text.encode(this.getHeadersSectionParam(key, 'name'))}\n\t\t\t\t\t</h3>\n\t\t\t\t`;\n\n\t\t\t\tconst fieldsBlock = BX.decl({\n\t\t\t\t\tblock: block,\n\t\t\t\t\tmix: mix,\n\t\t\t\t\tcontent: sections[key]\n\t\t\t\t});\n\n\t\t\t\tsectionWrapper.appendChild(sectionTitle);\n\t\t\t\tsectionWrapper.appendChild(fieldsBlock);\n\n\t\t\t\tsectionsWrapper.appendChild(sectionWrapper);\n\t\t\t}\n\t\t},\n\n\t\tprepareAnimation: function(): void\n\t\t{\n\t\t\tif (this.enableFieldsSearch)\n\t\t\t{\n\t\t\t\tthis.fieldsPopupItems.forEach(item =>\n\t\t\t\t{\n\t\t\t\t\tBX.bind(item, 'animationend', this.onAnimationEnd.bind(this, item));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tonAnimationEnd: function(item: HTMLElement): void\n\t\t{\n\t\t\titem.style.display = (\n\t\t\t\tBX.Dom.hasClass(item, this.settings.classPopupSearchFieldListItemHidden)\n\t\t\t\t? 'none'\n\t\t\t\t: 'inline-block'\n\t\t\t);\n\t\t},\n\n\t\tonFilterSectionSearchInput: function(input: HTMLElement): void\n\t\t{\n\t\t\tlet search = input.value;\n\t\t\tif (search.length)\n\t\t\t{\n\t\t\t\tsearch = search.toLowerCase();\n\t\t\t}\n\n\t\t\tthis.getFieldsPopupItems().forEach(function (item){\n\t\t\t\tconst title = item.innerText.toLowerCase();\n\n\t\t\t\tif (search.length && title.indexOf(search) === -1)\n\t\t\t\t{\n\t\t\t\t\tBX.Dom.removeClass(item,this.settings.classPopupSearchFieldListItemVisible);\n\t\t\t\t\tBX.Dom.addClass(item,this.settings.classPopupSearchFieldListItemHidden);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.Dom.removeClass(item, this.settings.classPopupSearchFieldListItemHidden);\n\t\t\t\t\tBX.Dom.addClass(item, this.settings.classPopupSearchFieldListItemVisible);\n\t\t\t\t\titem.style.display = 'inline-block';\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\n\t\tonFilterSectionSearchInputClear: function(input: HTMLElement): void\n\t\t{\n\t\t\tif (input.value.length)\n\t\t\t{\n\t\t\t\tinput.value = '';\n\t\t\t\tthis.onFilterSectionSearchInput(input);\n\t\t\t}\n\t\t},\n\n\t\tgetDefaultHeaderSection: function(): Object|null\n\t\t{\n\t\t\tconst headersSections = this.getHeadersSections();\n\n\t\t\tfor (let key in headersSections)\n\t\t\t{\n\t\t\t\tif ('selected' in headersSections[key] && headersSections[key].selected)\n\t\t\t\t{\n\t\t\t\t\treturn headersSections[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\tgetHeadersSections: function(): Array\n\t\t{\n\t\t\treturn this.getParam('HEADERS_SECTIONS');\n\t\t},\n\n\t\tgetHeadersSectionParam: function(sectionId: string, paramName: string, defaultValue: any): any\n\t\t{\n\t\t\tif (\n\t\t\t\tthis.getHeadersSections()[sectionId] !== undefined\n\t\t\t\t&& this.getHeadersSections()[sectionId][paramName] !== undefined\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn this.getHeadersSections()[sectionId][paramName];\n\t\t\t}\n\t\t\treturn defaultValue;\n\t\t},\n\n\t\t/**\n\t\t * Gets field loader\n\t\t * @return {BX.Loader}\n\t\t */\n\t\tgetFieldLoader: function()\n\t\t{\n\t\t\tif (!this.fieldLoader)\n\t\t\t{\n\t\t\t\tthis.fieldLoader = new BX.Loader({mode: \"custom\", size: 18, offset: {left: \"5px\", top: \"5px\"}});\n\t\t\t}\n\n\t\t\treturn this.fieldLoader;\n\t\t},\n\n\t\t_clickOnFieldListItem: function(event)\n\t\t{\n\t\t\tvar target = event.target;\n\t\t\tvar data;\n\n\t\t\tif (!BX.hasClass(target, this.settings.classFieldListItem))\n\t\t\t{\n\t\t\t\ttarget = BX.findParent(target, {className: this.settings.classFieldListItem}, true, false);\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(target))\n\t\t\t{\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(BX.data(target, 'item'));\n\t\t\t\t} catch (err) {}\n\n\t\t\t\tlet isChecked = BX.hasClass(target, this.settings.classMenuItemChecked);\n\t\t\t\tlet event = new BX.Event.BaseEvent({\n\t\t\t\t\tdata\n\t\t\t\t});\n\t\t\t\tthis.emitter.emit(\n\t\t\t\t\tisChecked\n\t\t\t\t\t\t? 'onBeforeRemoveFilterItem'\n\t\t\t\t\t\t: 'onBeforeAddFilterItem'\n\t\t\t\t\t,\n\t\t\t\t\tevent\n\t\t\t\t);\n\n\t\t\t\tif (event.isDefaultPrevented())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar p = new BX.Promise();\n\n\t\t\t\tif (this.getParam(\"LAZY_LOAD\"))\n\t\t\t\t{\n\t\t\t\t\tthis.getFieldLoader().show(target);\n\t\t\t\t\tvar label = target.querySelector(\".main-ui-select-inner-label\");\n\n\t\t\t\t\tif (label)\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel.classList.add(\"main-ui-no-before\");\n\t\t\t\t\t}\n\n\t\t\t\t\tvar callback = function(response) {\n\t\t\t\t\t\tp.fulfill(response);\n\t\t\t\t\t\tthis.getFieldLoader().hide();\n\t\t\t\t\t\tif (label)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel.classList.remove(\"main-ui-no-before\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}.bind(this);\n\n\t\t\t\t\tif (BX.type.isNotEmptyObject(this.getParam('LAZY_LOAD')['CONTROLLER']))\n\t\t\t\t\t{\n\t\t\t\t\t\tvar sourceComponentName = this.getParam('LAZY_LOAD')['CONTROLLER']['componentName'];\n\t\t\t\t\t\tvar sourceComponentSignedParameters = this.getParam('LAZY_LOAD')['CONTROLLER']['signedParameters'];\n\n\t\t\t\t\t\tBX.ajax.runAction(this.getParam('LAZY_LOAD')['CONTROLLER']['getField'], {\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tfilterId: this.getParam('FILTER_ID'),\n\t\t\t\t\t\t\t\tid: data.NAME,\n\t\t\t\t\t\t\t\tcomponentName: (BX.type.isNotEmptyString(sourceComponentName) ? sourceComponentName : ''),\n\t\t\t\t\t\t\t\tsignedParameters: (BX.type.isNotEmptyString(sourceComponentSignedParameters) ? sourceComponentSignedParameters : '')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(response) {\n\t\t\t\t\t\t\tcallback(response.data);\n\t\t\t\t\t\t}.bind(this), function (response) {\n\t\t\t\t\t\t});\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.getLazyLoadField(data.NAME).then(callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tp.fulfill(data);\n\t\t\t\t}\n\n\t\t\t\tp.then(function(response) {\n\t\t\t\t\tthis.params.FIELDS.push(response);\n\n\t\t\t\t\tif (BX.hasClass(target, this.settings.classMenuItemChecked))\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.removeClass(target, this.settings.classMenuItemChecked);\n\t\t\t\t\t\tthis.getPreset().removeField(response);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tif (BX.type.isPlainObject(response))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.getPreset().addField(response);\n\t\t\t\t\t\t\tBX.addClass(target, this.settings.classMenuItemChecked);\n\n\t\t\t\t\t\t\tif (BX.type.isString(response.HTML))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvar wrap = BX.create(\"div\");\n\t\t\t\t\t\t\t\tthis.getHiddenElement().appendChild(wrap);\n\t\t\t\t\t\t\t\tBX.html(wrap, response.HTML);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.syncFields();\n\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t},\n\n\n\t\tgetHiddenElement: function()\n\t\t{\n\t\t\tif (!this.hiddenElement)\n\t\t\t{\n\t\t\t\tthis.hiddenElement = BX.create(\"div\");\n\t\t\t\tdocument.body.appendChild(this.hiddenElement);\n\t\t\t}\n\n\t\t\treturn this.hiddenElement;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets lazy load fields\n\t\t * @param id\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tgetLazyLoadField: function(id)\n\t\t{\n\t\t\tvar p = new BX.Promise();\n\n\t\t\tBX.ajax({\n\t\t\t\tmethod: 'get',\n\t\t\t\turl: BX.util.add_url_param(this.getParam(\"LAZY_LOAD\")[\"GET_FIELD\"], {id: id}),\n\t\t\t\tdataType: 'json',\n\t\t\t\tonsuccess: function(response) {\n\t\t\t\t\tp.fulfill(response);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn p;\n\t\t},\n\n\n\t\t/**\n\t\t * Shows fields list popup\n\t\t */\n\t\tshowFieldsPopup: function()\n\t\t{\n\t\t\tvar popup = this.getFieldsPopup();\n\t\t\tthis.adjustFieldListPopupPosition();\n\t\t\tpopup.show();\n\t\t},\n\n\n\t\t/**\n\t\t * Closes fields list popup\n\t\t */\n\t\tcloseFieldListPopup: function()\n\t\t{\n\t\t\tvar popup = this.getFieldsPopup();\n\t\t\tpopup.close();\n\t\t},\n\n\n\t\t/**\n\t\t * Adjusts field list popup position\n\t\t */\n\t\tadjustFieldListPopupPosition: function()\n\t\t{\n\t\t\tvar popup = this.getFieldsPopup();\n\t\t\tvar pos = BX.pos(this.getAddField());\n\t\t\tpos.forceBindPosition = true;\n\t\t\tpopup.adjustPosition(pos);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets field list popup instance\n\t\t * @return {BX.PopupWindow}\n\t\t */\n\t\tgetFieldsPopup: function()\n\t\t{\n\t\t\tvar bindElement = (this.settings.get('showPopupInCenter', false) ? null : this.getAddField());\n\n\t\t\tif (!this.fieldsPopup)\n\t\t\t{\n\t\t\t\tthis.fieldsPopup = new BX.PopupWindow(\n\t\t\t\t\tthis.getParam('FILTER_ID') + '_fields_popup',\n\t\t\t\t\tbindElement,\n\t\t\t\t\t{\n\t\t\t\t\t\tautoHide : true,\n\t\t\t\t\t\toffsetTop : 4,\n\t\t\t\t\t\toffsetLeft : 0,\n\t\t\t\t\t\tlightShadow : true,\n\t\t\t\t\t\tcloseIcon : (bindElement === null),\n\t\t\t\t\t\tcloseByEsc : (bindElement === null),\n\t\t\t\t\t\tnoAllPaddings: true,\n\t\t\t\t\t\tzIndex: 13\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.fieldsPopupLoader = new BX.Loader({target: this.fieldsPopup.contentContainer});\n\t\t\t\tthis.fieldsPopupLoader.show();\n\t\t\t\tthis.setPopupElementWidthFromSettings(this.fieldsPopup.contentContainer);\n\t\t\t\tthis.fieldsPopup.contentContainer.style.height = \"330px\";\n\t\t\t\tthis.getFieldsListPopupContent().then(function(res) {\n\t\t\t\t\tthis.fieldsPopup.contentContainer.removeAttribute(\"style\");\n\t\t\t\t\tthis.fieldsPopupLoader.hide();\n\t\t\t\t\tthis.fieldsPopup.setContent(res);\n\t\t\t\t\tthis.syncFields({cache: false});\n\t\t\t\t\tthis.adjustFieldListPopupPosition();\n\t\t\t\t}.bind(this));\n\t\t\t}\n\n\t\t\treturn this.fieldsPopup;\n\t\t},\n\n\t\tsetPopupElementWidthFromSettings: function(element: HTMLElement): void\n\t\t{\n\t\t\telement.style.width = this.settings.popupWidth + 'px';\n\t\t},\n\n\t\t_onAddPresetClick: function()\n\t\t{\n\t\t\tthis.enableAddPreset();\n\t\t},\n\n\n\t\t/**\n\t\t * Enables shows wait spinner for button\n\t\t * @param {HTMLElement} button\n\t\t */\n\t\tenableWaitSate: function(button)\n\t\t{\n\t\t\t!!button && BX.addClass(button, this.settings.classWaitButtonClass);\n\t\t},\n\n\n\t\t/**\n\t\t * Disables shows wait spinner for button\n\t\t * @param {HTMLElement} button\n\t\t */\n\t\tdisableWaitState: function(button)\n\t\t{\n\t\t\t!!button && BX.removeClass(button, this.settings.classWaitButtonClass);\n\t\t},\n\n\t\t_onSaveButtonClick: function()\n\t\t{\n\t\t\tvar forAll = !!this.getSaveForAllCheckbox() && this.getSaveForAllCheckbox().checked;\n\t\t\tvar input = this.getPreset().getAddPresetFieldInput();\n\t\t\tvar mask = input.parentNode.querySelector(\".main-ui-filter-edit-mask\");\n\t\t\tvar presetName;\n\n\t\t\tfunction onAnimationEnd(event)\n\t\t\t{\n\t\t\t\tif (event.animationName === \"fieldError\")\n\t\t\t\t{\n\t\t\t\t\tevent.currentTarget.removeEventListener(\"animationend\", onAnimationEnd);\n\t\t\t\t\tevent.currentTarget.removeEventListener(\"oAnimationEnd\", onAnimationEnd);\n\t\t\t\t\tevent.currentTarget.removeEventListener(\"webkitAnimationEnd\", onAnimationEnd);\n\t\t\t\t\tevent.currentTarget.classList.remove(\"main-ui-filter-error\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction showLengthError(mask)\n\t\t\t{\n\t\t\t\tmask.addEventListener(\"animationend\", onAnimationEnd);\n\t\t\t\tmask.addEventListener(\"oAnimationEnd\", onAnimationEnd);\n\t\t\t\tmask.addEventListener(\"webkitAnimationEnd\", onAnimationEnd);\n\t\t\t\tmask.classList.add(\"main-ui-filter-error\");\n\t\t\t\tvar promise = new BX.Promise();\n\t\t\t\tpromise.fulfill(true);\n\t\t\t\treturn promise;\n\t\t\t}\n\n\t\t\tthis.enableWaitSate(this.getFindButton());\n\n\t\t\tif (this.isAddPresetEnabled() && !forAll)\n\t\t\t{\n\t\t\t\tpresetName = input.value;\n\n\t\t\t\tif (presetName.length)\n\t\t\t\t{\n\t\t\t\t\tthis.savePreset();\n\t\t\t\t\tthis.disableAddPreset();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tshowLengthError(mask).then(function() {\n\t\t\t\t\t\tinput.focus();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.isEditEnabled())\n\t\t\t{\n\t\t\t\tvar preset = this.getPreset();\n\t\t\t\tvar presetNode = preset.getPresetNodeById(preset.getCurrentPresetId());\n\t\t\t\tvar presetNameInput = preset.getPresetInput(presetNode);\n\n\t\t\t\tif (presetNameInput.value.length)\n\t\t\t\t{\n\t\t\t\t\tpreset.updateEditablePreset(preset.getCurrentPresetId());\n\t\t\t\t\tthis.saveUserSettings(forAll);\n\n\t\t\t\t\tif (!forAll)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.disableEdit();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar presetMask = presetNode.querySelector(\".main-ui-filter-edit-mask\");\n\t\t\t\t\tshowLengthError(presetMask).then(function() {\n\t\t\t\t\t\tpresetNameInput.focus();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_onCancelButtonClick: function()\n\t\t{\n\t\t\tthis.setIsSetOutsideState(false);\n\t\t\tthis.disableAddPreset();\n\t\t\tthis.getPreset().clearAddPresetFieldInput();\n\t\t\tthis.disableEdit();\n\t\t\t!!this.getSaveForAllCheckbox() && (this.getSaveForAllCheckbox().checked = null);\n\t\t},\n\n\t\t_onGridReady: function(grid)\n\t\t{\n\t\t\tif (!this.grid && grid.getContainerId() === this.getParam('GRID_ID'))\n\t\t\t{\n\t\t\t\tthis.grid = grid;\n\t\t\t}\n\t\t},\n\n\t\t_onFilterMousedown: function(event)\n\t\t{\n\t\t\tvar target = event.target;\n\n\t\t\tif (this.getFields().isDragButton(target))\n\t\t\t{\n\t\t\t\tvar inputs = BX.Filter.Utils.getByTag(target.parentNode, 'input', true);\n\n\t\t\t\t(inputs || []).forEach(function(item) {\n\t\t\t\t\tBX.fireEvent(item, 'blur');\n\t\t\t\t});\n\n\t\t\t\tBX.fireEvent(this.getFilter(), 'click');\n\t\t\t}\n\t\t},\n\n\t\t_onFilterClick: function(event)\n\t\t{\n\t\t\tvar Fields = this.getFields();\n\t\t\tvar Presets = this.getPreset();\n\t\t\tvar field;\n\n\t\t\tif (Fields.isFieldDelete(event.target))\n\t\t\t{\n\t\t\t\tfield = Fields.getField(event.target);\n\t\t\t\tPresets.removeField(field);\n\t\t\t}\n\n\t\t\tif (Fields.isFieldValueDelete(event.target))\n\t\t\t{\n\t\t\t\tfield = Fields.getField(event.target);\n\t\t\t\tFields.clearFieldValue(field);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets filter buttons container\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetButtonsContainer: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classButtonsContainer);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets save button element\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetSaveButton: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classSaveButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets cancel element\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetCancelButton: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classCancelButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets find button element\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetFindButton: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classFindButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets reset button element\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetResetButton: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classResetButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets add preset button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetAddPresetButton: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classAddPresetButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Checks that add preset mode enabled\n\t\t * @return {boolean}\n\t\t */\n\t\tisAddPresetEnabled: function()\n\t\t{\n\t\t\treturn this.isAddPresetModeState;\n\t\t},\n\n\n\t\t/**\n\t\t * Enables add preset mode\n\t\t */\n\t\tenableAddPreset: function()\n\t\t{\n\t\t\tvar Preset = this.getPreset();\n\t\t\tvar addPresetField = Preset.getAddPresetField();\n\t\t\tvar addPresetFieldInput = Preset.getAddPresetFieldInput();\n\t\t\tvar buttonsContainer = this.getButtonsContainer();\n\n\t\t\tBX.show(addPresetField);\n\t\t\tBX.show(buttonsContainer);\n\t\t\tBX.hide(this.getPresetButtonsContainer());\n\t\t\tthis.hideForAllCheckbox();\n\n\t\t\tif (BX.type.isDomNode(addPresetFieldInput))\n\t\t\t{\n\t\t\t\taddPresetFieldInput.focus();\n\t\t\t}\n\n\t\t\tBX.addClass(this.getSidebarControlsContainer(), this.settings.classDisabled);\n\n\t\t\tthis.isAddPresetModeState = true;\n\t\t},\n\n\n\t\t/**\n\t\t * Disables add preset mode\n\t\t */\n\t\tdisableAddPreset: function()\n\t\t{\n\t\t\tvar Preset = this.getPreset();\n\t\t\tvar addPresetField = Preset.getAddPresetField();\n\t\t\tvar buttonsContainer = this.getButtonsContainer();\n\n\t\t\tBX.hide(addPresetField);\n\t\t\tBX.hide(buttonsContainer);\n\t\t\tBX.show(this.getPresetButtonsContainer());\n\t\t\tthis.showForAllCheckbox();\n\n\t\t\tPreset.getAddPresetFieldInput().value = '';\n\n\t\t\tBX.removeClass(this.getSidebarControlsContainer(), this.settings.classDisabled);\n\n\t\t\tthis.isAddPresetModeState = false;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets control from field list\n\t\t * @return {?HTMLElement[]}\n\t\t */\n\t\tgetControls: function()\n\t\t{\n\t\t\tvar container = this.getFieldListContainer();\n\t\t\tvar controls = null;\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tcontrols = BX.Filter.Utils.getByClass(container, this.settings.classControl, true);\n\t\t\t}\n\n\t\t\treturn controls;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets filter fields\n\t\t * @return {?HTMLElement[]}\n\t\t */\n\t\tgetFilterFields: function()\n\t\t{\n\t\t\tvar container = this.getFieldListContainer();\n\t\t\tvar fields = [];\n\t\t\tvar groups = [];\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tfields = BX.Filter.Utils.getByClass(container, this.settings.classField, true);\n\t\t\t\tgroups = BX.Filter.Utils.getByClass(container, this.settings.classFieldGroup, true);\n\n\t\t\t\tif (!BX.type.isArray(fields))\n\t\t\t\t{\n\t\t\t\t\tfields = [];\n\t\t\t\t}\n\n\t\t\t\tif (BX.type.isArray(groups))\n\t\t\t\t{\n\t\t\t\t\tgroups.forEach(function(current) {\n\t\t\t\t\t\tfields.push(current);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn fields;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets filter fields values\n\t\t * @return {object}\n\t\t */\n\t\tgetFilterFieldsValues: function()\n\t\t{\n\t\t\tvar fields = this.getPreset().getFields();\n\t\t\tvar Search = this.getSearch();\n\t\t\tvar values = {};\n\t\t\tvar type, name;\n\n\t\t\tvalues['FIND'] = Search.getInput().value;\n\n\t\t\tif (BX.type.isArray(fields) && fields.length)\n\t\t\t{\n\t\t\t\tfields.forEach(function(current) {\n\t\t\t\t\tvar additionalFilter = BX.Filter.AdditionalFilter.getInstance().getFilter(current);\n\t\t\t\t\tif (additionalFilter)\n\t\t\t\t\t{\n\t\t\t\t\t\tObject.assign(values, additionalFilter);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\ttype = BX.data(current, 'type');\n\t\t\t\t\tname = BX.data(current, 'name');\n\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase this.types.STRING : {\n\t\t\t\t\t\t\tthis.prepareControlStringValue(values, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.TEXTAREA : {\n\t\t\t\t\t\t\tthis.prepareControlTextareaValue(values, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.NUMBER : {\n\t\t\t\t\t\t\tthis.prepareControlNumberValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.DATE : {\n\t\t\t\t\t\t\tthis.prepareControlDateValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.CUSTOM_DATE : {\n\t\t\t\t\t\t\tthis.prepareControlCustomDateValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.SELECT : {\n\t\t\t\t\t\t\tthis.prepareControlSelectValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.MULTI_SELECT : {\n\t\t\t\t\t\t\tthis.prepareControlMultiselectValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.DEST_SELECTOR:\n\t\t\t\t\t\tcase this.types.CUSTOM_ENTITY:\n\t\t\t\t\t\tcase this.types.ENTITY_SELECTOR: {\n\t\t\t\t\t\t\tthis.prepareControlCustomEntityValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase this.types.CUSTOM : {\n\t\t\t\t\t\t\tthis.prepareControlCustomValue(values, name, current);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdefault : {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn values;\n\t\t},\n\n\n\t\t/**\n\t\t * @param values\n\t\t * @param name\n\t\t * @param field\n\t\t */\n\t\tprepareControlCustomEntityValue: function(values, name, field)\n\t\t{\n\t\t\tvar squares = this.fetchSquares(field);\n\t\t\tvar squaresData = this.fetchSquaresData(squares);\n\t\t\tvar isMultiple = BX.Main.ui.CustomEntity.isMultiple(field);\n\n\t\t\tvalues[name] = '';\n\t\t\tvalues[name + '_label'] = '';\n\n\t\t\tif (isMultiple)\n\t\t\t{\n\t\t\t\tvalues[name] = [];\n\t\t\t\tvalues[name + '_label'] = [];\n\n\t\t\t\t!!squaresData && squaresData.forEach(function(item) {\n\t\t\t\t\tvalues[name].push(item._value.toString());\n\t\t\t\t\tvalues[name + '_label'].push(item._label.toString());\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (squaresData.length)\n\t\t\t\t{\n\t\t\t\t\tvalues[name] = squaresData[0]._value.toString();\n\t\t\t\t\tvalues[name + '_label'] = squaresData[0]._label.toString();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * @param {HTMLElement} field\n\t\t * @return {HTMLElement[]}\n\t\t */\n\t\tfetchSquares: function(field)\n\t\t{\n\t\t\treturn !!field ? BX.Filter.Utils.getByClass(field, this.settings.classSquare, true) : [];\n\t\t},\n\n\n\t\t/**\n\t\t * @param {HTMLElement[]} squares\n\t\t * @return {object[]}\n\t\t */\n\t\tfetchSquaresData: function(squares)\n\t\t{\n\t\t\treturn squares.map(function(square) {\n\t\t\t\treturn JSON.parse(BX.data(square, 'item'));\n\t\t\t}, this);\n\t\t},\n\n\n\t\t/**\n\t\t * @param {object} values\n\t\t * @param {string} name\n\t\t * @param {HTMLElement} field\n\t\t */\n\t\tprepareControlCustomValue: function(values, name, field)\n\t\t{\n\t\t\tvar stringFields = BX.Filter.Utils.getByTag(field, 'input', true);\n\n\t\t\tvalues[name] = '';\n\n\t\t\tif (BX.type.isArray(stringFields))\n\t\t\t{\n\t\t\t\tstringFields.forEach(function(current) {\n\t\t\t\t\tif (BX.type.isNotEmptyString(current.name))\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues[current.name] = current.value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tprepareControlMultiselectValue: function(values, name, field)\n\t\t{\n\t\t\tvar select = BX.Filter.Utils.getByClass(field, this.settings.classMultiSelect);\n\t\t\tvar value = JSON.parse(BX.data(select, 'value'));\n\n\t\t\tvalues[name] = '';\n\n\t\t\tif (BX.type.isArray(value) && value.length)\n\t\t\t{\n\t\t\t\tvalues[name] = {};\n\t\t\t\tvalue.forEach(function(current, index) {\n\t\t\t\t\tvalues[name][index] = current.VALUE;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tprepareControlSelectValue: function(values, name, field)\n\t\t{\n\t\t\tvar select = BX.Filter.Utils.getByClass(field, this.settings.classSelect);\n\t\t\tvar value = JSON.parse(BX.data(select, 'value'));\n\n\t\t\tvalues[name] = value.VALUE;\n\t\t},\n\n\t\tprepareControlCustomDateValue: function(values, name, field)\n\t\t{\n\t\t\tvar daysControl = field.querySelector(\"[data-name=\\\"\"+name + '_days'+\"\\\"]\");\n\n\t\t\tif (daysControl)\n\t\t\t{\n\t\t\t\tvar daysValue = JSON.parse(daysControl.dataset.value);\n\n\t\t\t\tvalues[name + '_days'] = daysValue.map(function(item) {\n\t\t\t\t\treturn item.VALUE;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar monthsControl = field.querySelector(\"[data-name=\\\"\"+name + '_months'+\"\\\"]\");\n\n\t\t\tif (monthsControl)\n\t\t\t{\n\t\t\t\tvar monthsValue = JSON.parse(monthsControl.dataset.value);\n\n\t\t\t\tvalues[name + '_months'] = monthsValue.map(function(item) {\n\t\t\t\t\treturn item.VALUE;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar yearsControl = field.querySelector(\"[data-name=\\\"\"+name + '_years'+\"\\\"]\");\n\n\t\t\tif (yearsControl)\n\t\t\t{\n\t\t\t\tvar yearsValue = JSON.parse(yearsControl.dataset.value);\n\n\t\t\t\tvalues[name + '_years'] = yearsValue.map(function(item) {\n\t\t\t\t\treturn item.VALUE;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tprepareControlDateValue: function(values, name, field, withAdditional)\n\t\t{\n\t\t\tvar additionalFieldsContainer = field.querySelector('.main-ui-filter-additional-fields-container');\n\n\t\t\tif (additionalFieldsContainer && !withAdditional)\n\t\t\t{\n\t\t\t\tBX.remove(additionalFieldsContainer);\n\t\t\t}\n\n\t\t\tvar select = BX.Filter.Utils.getByClass(field, this.settings.classSelect);\n\t\t\tvar yearsSwitcher = field.querySelector(\".main-ui-select[data-name*=\\\"_allow_year\\\"]\");\n\t\t\tvar selectName = name + this.settings.datePostfix;\n\t\t\tvar fromName = name + this.settings.fromPostfix;\n\t\t\tvar toName = name + this.settings.toPostfix;\n\t\t\tvar daysName = name + this.settings.daysPostfix;\n\t\t\tvar monthName = name + this.settings.monthPostfix;\n\t\t\tvar quarterName = name + this.settings.quarterPostfix;\n\t\t\tvar yearName = name + this.settings.yearPostfix;\n\t\t\tvar yearsSwitcherName = name + \"_allow_year\";\n\t\t\tvar selectValue, stringFields, controls, controlName, yearsSwitcherValue;\n\n\t\t\tvalues[selectName] = '';\n\t\t\tvalues[fromName] = '';\n\t\t\tvalues[toName] = '';\n\t\t\tvalues[daysName] = '';\n\t\t\tvalues[monthName] = '';\n\t\t\tvalues[quarterName] = '';\n\t\t\tvalues[yearName] = '';\n\n\t\t\tvar input = field.querySelector(\".main-ui-date-input\");\n\n\t\t\tif (input && input.dataset.isValid === \"false\")\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselectValue = JSON.parse(BX.data(select, 'value'));\n\t\t\tvalues[selectName] = selectValue.VALUE;\n\n\t\t\tif (yearsSwitcher)\n\t\t\t{\n\t\t\t\tyearsSwitcherValue = JSON.parse(BX.data(yearsSwitcher, 'value'));\n\t\t\t\tvalues[yearsSwitcherName] = yearsSwitcherValue.VALUE;\n\t\t\t}\n\n\t\t\tswitch (selectValue.VALUE) {\n\t\t\t\tcase this.dateTypes.EXACT : {\n\t\t\t\t\tstringFields = BX.Filter.Utils.getByClass(field, this.settings.classDateInput);\n\t\t\t\t\tvalues[fromName] = stringFields.value;\n\t\t\t\t\tvalues[toName] = stringFields.value;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase this.dateTypes.QUARTER : {\n\t\t\t\t\tcontrols = BX.Filter.Utils.getByClass(field, this.settings.classControl, true);\n\n\t\t\t\t\tif (BX.type.isArray(controls))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontrols.forEach(function(current) {\n\t\t\t\t\t\t\tcontrolName = BX.data(current, 'name');\n\n\t\t\t\t\t\t\tif (controlName && controlName.indexOf('_quarter') !== -1)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalues[quarterName] = JSON.parse(BX.data(current, 'value')).VALUE;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t&& controlName.endsWith('_year')\n\t\t\t\t\t\t\t\t&& !controlName.endsWith('_allow_year')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalues[yearName] = JSON.parse(BX.data(current, 'value')).VALUE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase this.dateTypes.YEAR : {\n\t\t\t\t\tcontrols = BX.Filter.Utils.getByClass(field, this.settings.classControl, true);\n\n\t\t\t\t\tif (BX.type.isArray(controls))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontrols.forEach(function(current) {\n\t\t\t\t\t\t\tcontrolName = BX.data(current, 'name');\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t&& controlName.endsWith('_year')\n\t\t\t\t\t\t\t\t&& !controlName.endsWith('_allow_year')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalues[yearName] = JSON.parse(BX.data(current, 'value')).VALUE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase this.dateTypes.MONTH : {\n\t\t\t\t\tcontrols = BX.Filter.Utils.getByClass(field, this.settings.classControl, true);\n\n\t\t\t\t\tif (BX.type.isArray(controls))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontrols.forEach(function(current) {\n\t\t\t\t\t\t\tcontrolName = BX.data(current, 'name');\n\n\t\t\t\t\t\t\tif (controlName && controlName.indexOf('_month') !== -1)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalues[monthName] = JSON.parse(BX.data(current, 'value')).VALUE;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t&& controlName.endsWith('_year')\n\t\t\t\t\t\t\t\t&& !controlName.endsWith('_allow_year')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalues[yearName] = JSON.parse(BX.data(current, 'value')).VALUE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase this.additionalDateTypes.PREV_DAY :\n\t\t\t\tcase this.additionalDateTypes.NEXT_DAY :\n\t\t\t\tcase this.additionalDateTypes.MORE_THAN_DAYS_AGO :\n\t\t\t\tcase this.additionalDateTypes.AFTER_DAYS :\n\t\t\t\tcase this.dateTypes.NEXT_DAYS :\n\t\t\t\tcase this.dateTypes.PREV_DAYS : {\n\t\t\t\t\tvar control = BX.Filter.Utils.getByClass(field, this.settings.classNumberInput);\n\n\t\t\t\t\tif (!!control && control.name === daysName)\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues[daysName] = control.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase this.dateTypes.RANGE : {\n\t\t\t\t\tstringFields = BX.Filter.Utils.getByClass(field, this.settings.classDateInput, true);\n\t\t\t\t\tstringFields.forEach(function(current) {\n\t\t\t\t\t\tif (current.name === fromName)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalues[fromName] = current.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (current.name === toName)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalues[toName] = current.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"CUSTOM_DATE\" : {\n\t\t\t\t\tvar customValues = {};\n\t\t\t\t\tthis.prepareControlCustomDateValue(customValues, name, field);\n\t\t\t\t\tvalues[name + '_days'] = customValues[name + '_days'];\n\t\t\t\t\tvalues[monthName] = customValues[name + '_months'];\n\t\t\t\t\tvalues[yearName] = customValues[name + '_years'];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault : {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (additionalFieldsContainer && !withAdditional)\n\t\t\t{\n\t\t\t\tBX.append(additionalFieldsContainer, field);\n\t\t\t}\n\n\t\t\tvar additionalFields = Array.from(\n\t\t\t\tfield.querySelectorAll(\n\t\t\t\t\t'.main-ui-filter-additional-fields-container > [data-type=\"DATE\"]',\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tif (additionalFields)\n\t\t\t{\n\t\t\t\tadditionalFields.forEach(function(additionalField) {\n\t\t\t\t\tvar name = additionalField.dataset.name;\n\t\t\t\t\tthis.prepareControlDateValue(values, name, additionalField, true);\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\tprepareControlNumberValue: function(values, name, field)\n\t\t{\n\t\t\tvar stringFields = BX.Filter.Utils.getByClass(field, this.settings.classNumberInput, true);\n\t\t\tvar select = BX.Filter.Utils.getByClass(field, this.settings.classSelect);\n\t\t\tvar selectName = name + this.settings.numberPostfix;\n\t\t\tvar fromName = name + this.settings.fromPostfix;\n\t\t\tvar toName = name + this.settings.toPostfix;\n\t\t\tvar selectValue;\n\n\t\t\tvalues[fromName] = '';\n\t\t\tvalues[toName] = '';\n\n\t\t\tselectValue = JSON.parse(BX.data(select, 'value'));\n\t\t\tvalues[selectName] = selectValue.VALUE;\n\n\t\t\tstringFields.forEach(function(current) {\n\t\t\t\tif (current.name.indexOf(this.settings.fromPostfix) !== -1)\n\t\t\t\t{\n\t\t\t\t\tvalues[fromName] = current.value || '';\n\n\t\t\t\t\tif (values[selectName] === 'exact')\n\t\t\t\t\t{\n\t\t\t\t\t\tvalues[toName] = current.value || '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (current.name.indexOf(this.settings.toPostfix) !== -1)\n\t\t\t\t{\n\t\t\t\t\tvalues[toName] = current.value || '';\n\t\t\t\t}\n\t\t\t}, this);\n\t\t},\n\n\t\tprepareControlStringValue: function(values, field)\n\t\t{\n\t\t\tvar control = BX.Filter.Utils.getByClass(field, this.settings.classStringInput);\n\t\t\tvar name;\n\n\t\t\tif (BX.type.isDomNode(control))\n\t\t\t{\n\t\t\t\tname = control.name;\n\t\t\t\tvalues[name] = control.value;\n\t\t\t}\n\t\t},\n\n\t\tprepareControlTextareaValue: function(values, field)\n\t\t{\n\t\t\tvar control = BX.Filter.Utils.getByClass(field, this.settings.classStringInput);\n\t\t\tvar name;\n\n\t\t\tif (BX.type.isDomNode(control))\n\t\t\t{\n\t\t\t\tname = control.name;\n\t\t\t\tvalues[name] = control.value;\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Shows grid animation\n\t\t */\n\t\tshowGridAnimation: function()\n\t\t{\n\t\t\tthis.grid && this.grid.tableFade();\n\t\t},\n\n\n\t\t/**\n\t\t * Hides grid animations\n\t\t */\n\t\thideGridAnimation: function()\n\t\t{\n\t\t\tthis.grid && this.grid.tableUnfade();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t * @param {?Boolean} clear - is need reset filter\n\t\t * @param {?Boolean} applyPreset - is need apply preset\n\t\t * @return {String}\n\t\t */\n\t\tgetPresetId: function(clear, applyPreset)\n\t\t{\n\t\t\tvar presetId = this.getPreset().getCurrentPresetId();\n\n\t\t\tif ((!this.isEditEnabled() && !this.isAddPresetEnabled() && !applyPreset) ||\n\t\t\t\t(presetId === 'default_filter' && !clear))\n\t\t\t{\n\t\t\t\tpresetId = 'tmp_filter';\n\t\t\t}\n\n\t\t\treturn presetId;\n\t\t},\n\n\t\tisAppliedUserFilter: function()\n\t\t{\n\t\t\tconst presetOptions = this.getPreset().getCurrentPresetData();\n\t\t\tif (BX.Type.isPlainObject(presetOptions))\n\t\t\t{\n\t\t\t\tconst hasFields = (\n\t\t\t\t\tBX.Type.isArrayFilled(presetOptions.FIELDS)\n\t\t\t\t\t&& presetOptions.FIELDS.some((field) => {\n\t\t\t\t\t\treturn !this.getPreset().isEmptyField(field);\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tconst hasAdditional = (\n\t\t\t\t\tBX.Type.isArrayFilled(presetOptions.ADDITIONAL)\n\t\t\t\t\t&& presetOptions.ADDITIONAL.some((field) => {\n\t\t\t\t\t\treturn !this.getPreset().isEmptyField(field);\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t(\n\t\t\t\t\t\t!presetOptions.IS_PINNED\n\t\t\t\t\t\t&& (\n\t\t\t\t\t\t\thasFields\n\t\t\t\t\t\t\t|| hasAdditional\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\tpresetOptions.IS_PINNED\n\t\t\t\t\t\t&& BX.Type.isArrayFilled(presetOptions.ADDITIONAL)\n\t\t\t\t\t)\n\t\t\t\t\t|| BX.Type.isStringFilled(this.getSearch().getSearchString())\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tisAppliedDefaultPreset: function()\n\t\t{\n\t\t\tconst presetData = this.getPreset().getCurrentPresetData();\n\t\t\tif (!presetData.IS_PINNED)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (BX.Type.isArrayFilled(presetData.ADDITIONAL))\n\t\t\t{\n\t\t\t\tconst hasAdditional = presetData.ADDITIONAL.some((field) => {\n\t\t\t\t\treturn !this.getPreset().isEmptyField(field);\n\t\t\t\t});\n\n\t\t\t\tif (hasAdditional)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (BX.Type.isStringFilled(this.getSearch().getSearchString()))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\t/**\n\t\t * Applies filter\n\t\t * @param {?Boolean} [clear] - is need reset filter\n\t\t * @param {?Boolean} [applyPreset] - is need apply preset\n\t\t * @param {?Boolean} [isSetOutside] - is filter sets from outside\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tapplyFilter: function(clear, applyPreset, isSetOutside)\n\t\t{\n\t\t\tthis.setIsSetOutsideState(isSetOutside);\n\n\t\t\tvar presetId = this.getPresetId(clear, applyPreset);\n\t\t\tvar filterId = this.getParam('FILTER_ID');\n\t\t\tvar promise = new BX.Promise(null, this);\n\t\t\tvar Preset = this.getPreset();\n\t\t\tvar Search = this.getSearch();\n\t\t\tvar applyParams = {autoResolve: !this.grid};\n\t\t\tvar self = this;\n\n\t\t\tthis.setDefaultPresetAppliedState(this.isAppliedDefaultPreset());\n\n\t\t\tif (this.isAppliedUserFilter())\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(this.getSearch().container, 'main-ui-filter-search--active');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(this.getSearch().container, 'main-ui-filter-search--active');\n\t\t\t}\n\n\t\t\tthis.clearGet();\n\t\t\tthis.showGridAnimation();\n\n\t\t\tvar action = clear ? \"clear\" : \"apply\";\n\n\t\t\tBX.onCustomEvent(window, 'BX.Main.Filter:beforeApply', [filterId, {action: action}, this, promise]);\n\n\t\t\tthis.updatePreset(presetId, null, clear, null).then(function() {\n\t\t\t\tSearch.updatePreset(Preset.getPreset(presetId));\n\n\t\t\t\tif (self.getParam('VALUE_REQUIRED'))\n\t\t\t\t{\n\t\t\t\t\tif (!Search.getSquares().length)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.lastPromise = Preset.applyPinnedPreset();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).then(function() {\n\t\t\t\tvar params = {apply_filter: 'Y', clear_nav: 'Y'};\n\t\t\t\tvar fulfill = BX.delegate(promise.fulfill, promise);\n\t\t\t\tvar reject = BX.delegate(promise.reject, promise);\n\t\t\t\tself.grid && self.grid.reloadTable('POST', params, fulfill, reject);\n\t\t\t\tBX.onCustomEvent(window, 'BX.Main.Filter:apply', [filterId, {action: action}, self, promise, applyParams]);\n\t\t\t\tapplyParams.autoResolve && promise.fulfill();\n\t\t\t});\n\n\t\t\treturn promise;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets add field buttons\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetAddField: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classAddField);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets fields list container\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetFieldListContainer: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classFileldControlList);\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Filter.Fields}\n\t\t */\n\t\tgetFields: function()\n\t\t{\n\t\t\tif (!(this.fields instanceof BX.Filter.Fields))\n\t\t\t{\n\t\t\t\tthis.fields = new BX.Filter.Fields(this);\n\t\t\t}\n\n\t\t\treturn this.fields;\n\t\t},\n\n\n\t\t/**\n\t\t * @return {BX.Filter.Presets}\n\t\t */\n\t\tgetPreset: function()\n\t\t{\n\t\t\tif (!(this.presets instanceof BX.Filter.Presets))\n\t\t\t{\n\t\t\t\tthis.presets = new BX.Filter.Presets(this);\n\t\t\t}\n\n\t\t\treturn this.presets;\n\t\t},\n\n\n\t\t/**\n\t\t * @param controlData\n\t\t * @return {*}\n\t\t */\n\t\tresetControlData: function(controlData)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(controlData))\n\t\t\t{\n\t\t\t\tswitch (controlData.TYPE)\n\t\t\t\t{\n\t\t\t\t\tcase this.types.MULTI_SELECT : {\n\t\t\t\t\t\tcontrolData.VALUE = [];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.SELECT : {\n\t\t\t\t\t\tcontrolData.VALUE = controlData.ITEMS[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DATE : {\n\t\t\t\t\t\tcontrolData.SUB_TYPE = controlData.SUB_TYPES[0];\n\t\t\t\t\t\tcontrolData.VALUES = {\n\t\t\t\t\t\t\t'_from': '',\n\t\t\t\t\t\t\t'_to': '',\n\t\t\t\t\t\t\t'_days': '',\n\t\t\t\t\t\t\t'_quarter': '',\n\t\t\t\t\t\t\t'_year': ''\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CUSTOM_DATE : {\n\t\t\t\t\t\tcontrolData.VALUES = {\n\t\t\t\t\t\t\t'days': [],\n\t\t\t\t\t\t\t'months': [],\n\t\t\t\t\t\t\t'years': []\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.NUMBER : {\n\t\t\t\t\t\tcontrolData.SUB_TYPE = controlData.SUB_TYPES[0];\n\t\t\t\t\t\tcontrolData.VALUES = {\n\t\t\t\t\t\t\t'_from': '',\n\t\t\t\t\t\t\t'_to': ''\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.DEST_SELECTOR:\n\t\t\t\t\tcase this.types.ENTITY_SELECTOR:\n\t\t\t\t\tcase this.types.CUSTOM_ENTITY: {\n\t\t\t\t\t\tcontrolData.VALUES = {\n\t\t\t\t\t\t\t'_label': '',\n\t\t\t\t\t\t\t'_value': ''\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase this.types.CUSTOM : {\n\t\t\t\t\t\tcontrolData._VALUE = '';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault : {\n\t\t\t\t\t\tcontrolData.VALUE = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn controlData;\n\t\t},\n\n\n\t\tclearControl: function(name)\n\t\t{\n\t\t\tvar control = this.getPreset().getField({NAME: name});\n\t\t\tvar controlData, newControl;\n\n\t\t\tif (BX.type.isDomNode(control))\n\t\t\t{\n\t\t\t\tcontrolData = this.getFieldByName(name);\n\t\t\t\tcontrolData = this.resetControlData(controlData);\n\n\t\t\t\tnewControl = this.getPreset().createControl(controlData);\n\t\t\t\tBX.insertAfter(newControl, control);\n\t\t\t\tBX.remove(control);\n\t\t\t}\n\t\t},\n\n\t\tclearControls: function(squareData)\n\t\t{\n\t\t\tif (BX.type.isArray(squareData))\n\t\t\t{\n\t\t\t\tsquareData.forEach(function(item) {\n\t\t\t\t\t'name' in item && this.clearControl(item.name);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\telse if (BX.type.isPlainObject(squareData) && 'name' in squareData)\n\t\t\t{\n\t\t\t\tthis.clearControl(squareData.name);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets filter popup template\n\t\t * @return {?string}\n\t\t */\n\t\tgetTemplate: function()\n\t\t{\n\t\t\treturn BX.html(BX(this.settings.generalTemplateId));\n\t\t},\n\n\t\tisIe: function()\n\t\t{\n\t\t\tif (!BX.type.isBoolean(this.ie))\n\t\t\t{\n\t\t\t\tthis.ie = BX.hasClass(document.documentElement, 'bx-ie');\n\t\t\t}\n\n\t\t\treturn this.ie;\n\t\t},\n\n\n\t\t/**\n\t\t * Closes filter popup\n\t\t */\n\t\tclosePopup: function()\n\t\t{\n\t\t\tvar popup = this.getPopup();\n\t\t\tvar popupContainer = popup.popupContainer;\n\t\t\tvar configCloseDelay = this.settings.get('FILTER_CLOSE_DELAY');\n\t\t\tvar closeDelay;\n\n\t\t\tBX.Dom.removeClass(this.getSearch().container, 'main-ui-filter-search--showed');\n\n\t\t\tsetTimeout(BX.delegate(function() {\n\n\t\t\t\tif (!this.isIe())\n\t\t\t\t{\n\t\t\t\t\tBX.removeClass(popupContainer, this.settings.classAnimationShow);\n\t\t\t\t\tBX.addClass(popupContainer, this.settings.classAnimationClose);\n\n\t\t\t\t\tcloseDelay = parseFloat(BX.style(popupContainer, 'animation-duration'));\n\n\t\t\t\t\tif (BX.type.isNumber(closeDelay))\n\t\t\t\t\t{\n\t\t\t\t\t\tcloseDelay = closeDelay * 1000;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t}, closeDelay);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpopup.close();\n\t\t\t\t}\n\t\t\t}, this), configCloseDelay);\n\n\t\t\tif (this.getParam(\"LIMITS_ENABLED\"))\n\t\t\t{\n\t\t\t\tBX.removeClass(this.getFilter(), this.settings.classLimitsAnimation);\n\t\t\t}\n\n\t\t\tthis.closeFieldListPopup();\n\t\t\tthis.adjustFocus();\n\t\t},\n\n\n\t\t/**\n\t\t * Shows filter popup\n\t\t */\n\t\tshowPopup: function()\n\t\t{\n\t\t\tvar popup = this.getPopup();\n\t\t\tvar popupContainer;\n\n\t\t\tif (!popup.isShown())\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(this.getSearch().container, 'main-ui-filter-search--showed');\n\n\t\t\t\tthis.isOpened = true;\n\t\t\t\tvar showDelay = this.settings.get('FILTER_SHOW_DELAY');\n\n\t\t\t\tif (this.getParam('LIMITS_ENABLED') === true)\n\t\t\t\t{\n\t\t\t\t\tthis.limitAnalyticsSend();\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(BX.delegate(function() {\n\t\t\t\t\tpopup.show();\n\n\t\t\t\t\tif (!this.isIe())\n\t\t\t\t\t{\n\t\t\t\t\t\tpopupContainer = popup.popupContainer;\n\t\t\t\t\t\tBX.removeClass(popupContainer, this.settings.classAnimationClose);\n\t\t\t\t\t\tBX.addClass(popupContainer, this.settings.classAnimationShow);\n\t\t\t\t\t\tBX.onCustomEvent(window, \"BX.Main.Filter:show\", [this]);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar textareas = [].slice.call(\n\t\t\t\t\t\tthis.getFieldListContainer().querySelectorAll('textarea')\n\t\t\t\t\t);\n\n\t\t\t\t\ttextareas.forEach(function(item) {\n\t\t\t\t\t\tBX.style(item, 'height', item.scrollHeight + 'px');\n\t\t\t\t\t});\n\t\t\t\t}, this), showDelay);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets save for all checkbox element\n\t\t * @return {?HTMLInputElement}\n\t\t */\n\t\tgetSaveForAllCheckbox: function()\n\t\t{\n\t\t\tif (!this.saveForAllCheckbox && !!this.getSaveForAllCheckboxContainer())\n\t\t\t{\n\t\t\t\tthis.saveForAllCheckbox = BX.Filter.Utils.getBySelector(this.getSaveForAllCheckboxContainer(), 'input[type=\"checkbox\"]');\n\t\t\t}\n\n\t\t\treturn this.saveForAllCheckbox;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets save for all checkbox container\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetSaveForAllCheckboxContainer: function()\n\t\t{\n\t\t\tif (!this.saveForAllCheckboxContainer)\n\t\t\t{\n\t\t\t\tthis.saveForAllCheckboxContainer = BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classForAllCheckbox);\n\t\t\t}\n\n\t\t\treturn this.saveForAllCheckboxContainer;\n\t\t},\n\n\n\t\t/**\n\t\t * Shows for all checkbox\n\t\t */\n\t\tshowForAllCheckbox: function()\n\t\t{\n\t\t\t!!this.getSaveForAllCheckboxContainer() &&\n\t\t\t\tBX.removeClass(this.getSaveForAllCheckboxContainer(), this.settings.classHide);\n\t\t},\n\n\n\t\t/**\n\t\t * Hides for all checkbox\n\t\t */\n\t\thideForAllCheckbox: function()\n\t\t{\n\t\t\t!!this.getSaveForAllCheckboxContainer() &&\n\t\t\t\tBX.addClass(this.getSaveForAllCheckboxContainer(), this.settings.classHide);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets popup bind element\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetPopupBindElement: function()\n\t\t{\n\t\t\tif (!this.popupBindElement)\n\t\t\t{\n\t\t\t\tvar selector = this.settings.get('POPUP_BIND_ELEMENT_SELECTOR');\n\t\t\t\tvar result = null;\n\n\t\t\t\tif (BX.type.isNotEmptyString(selector))\n\t\t\t\t{\n\t\t\t\t\tresult = BX.Filter.Utils.getBySelector(document, selector);\n\t\t\t\t}\n\n\t\t\t\tthis.popupBindElement = !!result ? result : this.getSearch().getContainer();\n\t\t\t}\n\n\t\t\treturn this.popupBindElement;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets filter popup window instance\n\t\t * @return {BX.PopupWindow}\n\t\t */\n\t\tgetPopup: function()\n\t\t{\n\t\t\tif (!(this.popup instanceof BX.PopupWindow))\n\t\t\t{\n\t\t\t\tthis.popup = new BX.PopupWindow(\n\t\t\t\t\tthis.getParam('FILTER_ID') + this.settings.searchContainerPostfix,\n\t\t\t\t\tthis.getPopupBindElement(),\n\t\t\t\t\t{\n\t\t\t\t\t\tautoHide : false,\n\t\t\t\t\t\toffsetTop : parseInt(this.settings.get('POPUP_OFFSET_TOP')),\n\t\t\t\t\t\toffsetLeft : parseInt(this.settings.get('POPUP_OFFSET_LEFT')),\n\t\t\t\t\t\tlightShadow : true,\n\t\t\t\t\t\tcloseIcon : false,\n\t\t\t\t\t\tcloseByEsc : false,\n\t\t\t\t\t\tnoAllPaddings: true,\n\t\t\t\t\t\tzIndex: 12\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.popup.setContent(this.getTemplate());\n\t\t\t\tBX.bind(this.getFieldListContainer(), 'keydown', BX.delegate(this._onFieldsContainerKeydown, this));\n\t\t\t\tBX.bind(this.getFilter(), 'click', BX.delegate(this._onFilterClick, this));\n\t\t\t\tBX.bind(this.getAddPresetButton(), 'click', BX.delegate(this._onAddPresetClick, this));\n\t\t\t\tBX.bind(this.getPreset().getAddPresetFieldInput(), 'keydown', BX.delegate(this._onAddPresetKeydown, this));\n\t\t\t\tBX.bind(this.getPreset().getContainer(), 'keydown', BX.delegate(this._onPresetInputKeydown, this));\n\t\t\t\tBX.bind(this.getSaveButton(), 'click', BX.delegate(this._onSaveButtonClick, this));\n\t\t\t\tBX.bind(this.getCancelButton(), 'click', BX.delegate(this._onCancelButtonClick, this));\n\t\t\t\tBX.bind(this.getFindButton(), 'click', BX.delegate(this._onFindButtonClick, this));\n\t\t\t\tBX.bind(this.getResetButton(), 'click', BX.delegate(this._onResetButtonClick, this));\n\t\t\t\tBX.bind(this.getAddField(), 'click', BX.delegate(this._onAddFieldClick, this));\n\t\t\t\tBX.bind(this.getEditButton(), 'click', BX.delegate(this._onEditButtonClick, this));\n\t\t\t\tBX.bind(this.getRestoreButton(), 'click', BX.delegate(this._onRestoreButtonClick, this));\n\t\t\t\tBX.bind(this.getRestoreFieldsButton(), 'click', BX.delegate(this._onRestoreFieldsButtonClick, this));\n\t\t\t\tthis.getFilter().addEventListener('mousedown', BX.delegate(this._onFilterMousedown, this), true);\n\t\t\t\tthis.getPreset().showCurrentPresetFields();\n\t\t\t\tthis.getPreset().bindOnPresetClick();\n\t\t\t}\n\n\t\t\treturn this.popup;\n\t\t},\n\n\t\t_onRestoreFieldsButtonClick: function()\n\t\t{\n\t\t\tthis.restoreDefaultFields();\n\t\t},\n\n\n\t\t/**\n\t\t * Restores default fields list\n\t\t */\n\t\trestoreDefaultFields: function()\n\t\t{\n\t\t\tvar defaultPreset = this.getPreset().getPreset('default_filter', true);\n\t\t\tvar presets = this.getParam('PRESETS');\n\t\t\tvar currentPresetId = this.getPreset().getCurrentPresetId();\n\t\t\tvar params = {'FILTER_ID': this.getParam('FILTER_ID'), 'GRID_ID': this.getParam('GRID_ID'), 'action': 'SET_FILTER'};\n\t\t\tvar fields = defaultPreset.FIELDS.map(function(curr) { return curr.NAME; });\n\t\t\tvar rows = fields.join(',');\n\n\t\t\tpresets.forEach(function(current, index) {\n\t\t\t\tif (current.ID === 'default_filter')\n\t\t\t\t{\n\t\t\t\t\tpresets[index] = BX.clone(defaultPreset);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tif (BX.type.isArray(this.editablePresets))\n\t\t\t{\n\t\t\t\tthis.editablePresets.forEach(function(current, index) {\n\t\t\t\t\tif (current.ID === 'default_filter')\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.editablePresets[index] = BX.clone(defaultPreset);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tthis.getPreset().applyPreset(currentPresetId);\n\t\t\tthis.updatePreset(currentPresetId);\n\t\t\tthis.saveOptions({preset_id: \"default_filter\", rows: rows, save: \"Y\", apply_filter: \"N\"}, params);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets restore default fields button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetRestoreFieldsButton: function()\n\t\t{\n\t\t\tif (!this.restoreFieldsButton)\n\t\t\t{\n\t\t\t\tthis.restoreFieldsButton = BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classRestoreFieldsButton);\n\t\t\t}\n\n\t\t\treturn this.restoreFieldsButton;\n\t\t},\n\n\n\t\t/**\n\t\t * Restores filter\n\t\t */\n\t\trestoreFilter: function()\n\t\t{\n\t\t\tvar defaultPresets = this.getParam('DEFAULT_PRESETS');\n\t\t\tvar allPresets = this.getParam('PRESETS');\n\t\t\tvar isReplace = false;\n\t\t\tvar replaceIndex, applyPresetId, presetNode;\n\n\t\t\tif (BX.type.isArray(defaultPresets))\n\t\t\t{\n\t\t\t\tdefaultPresets.sort(function(a, b) {\n\t\t\t\t\treturn a.SORT - b.SORT;\n\t\t\t\t});\n\n\t\t\t\tdefaultPresets.forEach(function(defPreset) {\n\t\t\t\t\tisReplace = allPresets.some(function(current, index) {\n\t\t\t\t\t\tif (current.ID === defPreset.ID)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treplaceIndex = index;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (isReplace)\n\t\t\t\t\t{\n\t\t\t\t\t\tallPresets[replaceIndex] = BX.clone(defPreset);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tallPresets.push(BX.clone(defPreset));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (defPreset.ID !== 'default_filter')\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.addSidebarItem(defPreset.ID, defPreset.TITLE, defPreset.IS_PINNED);\n\n\t\t\t\t\t\tif (defPreset.IS_PINNED)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tapplyPresetId = defPreset.ID;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tthis.saveRestoreFilter();\n\t\t\tthis.disableAddPreset();\n\t\t\tthis.disableEdit();\n\n\t\t\tif (!applyPresetId)\n\t\t\t{\n\t\t\t\tapplyPresetId = \"default_filter\";\n\t\t\t}\n\n\t\t\tpresetNode = this.getPreset().getPresetNodeById(applyPresetId);\n\n\t\t\tif (presetNode)\n\t\t\t{\n\t\t\t\tBX.fireEvent(presetNode, 'click');\n\t\t\t}\n\t\t},\n\n\t\tsaveRestoreFilter: function()\n\t\t{\n\t\t\tvar params = {'FILTER_ID': this.getParam('FILTER_ID'), 'GRID_ID': this.getParam('GRID_ID'), 'action': 'RESTORE_FILTER'};\n\t\t\tvar presets = this.getParam('PRESETS');\n\t\t\tvar data = {};\n\t\t\tvar rows;\n\n\t\t\tif (BX.type.isArray(presets))\n\t\t\t{\n\t\t\t\tpresets.forEach(function(current) {\n\t\t\t\t\trows = current.FIELDS.map(function(field) {\n\t\t\t\t\t\treturn field.NAME;\n\t\t\t\t\t});\n\t\t\t\t\trows = rows.join(',');\n\t\t\t\t\tdata[current.ID] = {\n\t\t\t\t\t\tname: current.TITLE || null,\n\t\t\t\t\t\tsort: current.SORT,\n\t\t\t\t\t\tpreset_id: current.ID,\n\t\t\t\t\t\tfields: this.prepareFields(current.FIELDS),\n\t\t\t\t\t\trows: rows,\n\t\t\t\t\t\tfor_all: current.FOR_ALL\n\t\t\t\t\t};\n\t\t\t\t}, this);\n\n\t\t\t\tthis.saveOptions(data, params);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Prepares fields\n\t\t * @param {object[]} fields\n\t\t * @return {object}\n\t\t */\n\t\tprepareFields: function(fields)\n\t\t{\n\t\t\tvar result = {};\n\t\t\tvar valuesKeys;\n\n\t\t\tif (BX.type.isArray(fields))\n\t\t\t{\n\t\t\t\tfields.forEach(function(current) {\n\t\t\t\t\tif (current.TYPE === this.types.SELECT)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[current.NAME] = 'VALUE' in current.VALUE ? current.VALUE.VALUE : '';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (current.TYPE === this.types.MULTI_SELECT)\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrent.VALUE.forEach(function(val, i) {\n\t\t\t\t\t\t\tresult[current.NAME] = result[current.NAME] || {};\n\t\t\t\t\t\t\tresult[current.NAME][i] = val.VALUE;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tresult[current.NAME] = result[current.NAME] || '';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (current.TYPE === this.types.DATE ||\n\t\t\t\t\t\tcurrent.TYPE === this.types.NUMBER)\n\t\t\t\t\t{\n\t\t\t\t\t\tvaluesKeys = Object.keys(current.VALUES);\n\n\t\t\t\t\t\tvaluesKeys.forEach(function(key) {\n\t\t\t\t\t\t\tresult[current.NAME + key] = current.VALUES[key];\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (current.TYPE === this.types.DATE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresult[current.NAME + '_datesel'] = 'VALUE' in current.SUB_TYPE ?\n\t\t\t\t\t\t\t\tcurrent.SUB_TYPE.VALUE : current.SUB_TYPES[0].VALUE;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (current.TYPE === this.types.NUMBER)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresult[current.NAME + '_numsel'] = 'VALUE' in current.SUB_TYPE ?\n\t\t\t\t\t\t\t\tcurrent.SUB_TYPE.VALUE : current.SUB_TYPES[0].VALUE;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tcurrent.TYPE === this.types.DEST_SELECTOR\n\t\t\t\t\t\t|| current.TYPE === this.types.ENTITY_SELECTOR\n\t\t\t\t\t\t|| current.TYPE === this.types.CUSTOM_ENTITY\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[current.NAME + '_label'] = current.VALUES._label;\n\t\t\t\t\t\tresult[current.NAME + '_value'] = current.VALUES._value;\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets restore button\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetRestoreButton: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.restoreButton))\n\t\t\t{\n\t\t\t\tthis.restoreButton = BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classRestoreButton);\n\t\t\t}\n\n\t\t\treturn this.restoreButton;\n\t\t},\n\n\t\t_onPresetInputKeydown: function(event)\n\t\t{\n\t\t\tif (BX.Filter.Utils.isKey(event, 'enter') && event.target.tagName === 'INPUT')\n\t\t\t{\n\t\t\t\tBX.fireEvent(this.getSaveButton(), 'click');\n\t\t\t}\n\t\t},\n\n\t\t_onFieldsContainerKeydown: function(event)\n\t\t{\n\t\t\tif (BX.Filter.Utils.isKey(event, 'enter') && event.target.tagName === 'INPUT')\n\t\t\t{\n\t\t\t\tBX.fireEvent(this.getFindButton(), 'click');\n\t\t\t}\n\t\t},\n\n\t\t_onFindButtonClick: function()\n\t\t{\n\t\t\tthis.setIsSetOutsideState(false);\n\t\t\tvar presets = this.getPreset();\n\t\t\tvar currentPresetId = presets.getCurrentPresetId();\n\t\t\tvar promise;\n\n\t\t\tif (\n\t\t\t\tcurrentPresetId !== 'tmp_filter'\n\t\t\t\t&& currentPresetId !== 'default_filter'\n\t\t\t\t&& !presets.isPresetValuesModified(currentPresetId)\n\t\t\t)\n\t\t\t{\n\t\t\t\tvar preset = presets.getPreset(currentPresetId);\n\t\t\t\tvar additional = presets.getAdditionalValues(currentPresetId);\n\t\t\t\tvar rows = presets.getFields().map(function(current) {\n\t\t\t\t\treturn BX.data(current, 'name');\n\t\t\t\t});\n\n\t\t\t\tpreset.ADDITIONAL = this.preparePresetFields(additional, rows);\n\t\t\t\tpreset.ADDITIONAL = preset.ADDITIONAL.filter(function(field) {\n\t\t\t\t\treturn !this.getPreset().isEmptyField(field);\n\t\t\t\t}, this);\n\n\t\t\t\tpromise = this.applyFilter(false, currentPresetId);\n\t\t\t\tthis.closePopup();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tpresets.deactivateAllPresets();\n\t\t\t\tpromise = this.applyFilter();\n\t\t\t\tthis.closePopup();\n\t\t\t}\n\n\t\t\treturn promise;\n\t\t},\n\n\t\t_onResetButtonClick: function()\n\t\t{\n\t\t\tif (this.getParam('VALUE_REQUIRED'))\n\t\t\t{\n\t\t\t\tvar preset = this.getPreset().getCurrentPresetData();\n\n\t\t\t\tif (preset.ADDITIONAL.length)\n\t\t\t\t{\n\t\t\t\t\tthis.closePopup();\n\t\t\t\t}\n\n\t\t\t\tBX.fireEvent(this.getSearch().getClearButton(), 'click');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (this.getParam('RESET_TO_DEFAULT_MODE'))\n\t\t\t\t{\n\t\t\t\t\tthis.getSearch().clearInput();\n\t\t\t\t\tthis.getPreset().applyPinnedPreset();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.resetFilter();\n\t\t\t\t}\n\n\t\t\t\tthis.closePopup();\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * @param withoutSearch\n\t\t * @return {BX.Promise}\n\t\t */\n\t\tresetFilter: function(withoutSearch)\n\t\t{\n\t\t\tvar Search = this.getSearch();\n\t\t\tvar Presets = this.getPreset();\n\n\t\t\tif (!withoutSearch)\n\t\t\t{\n\t\t\t\tSearch.clearInput();\n\t\t\t}\n\n\t\t\tSearch.removePreset();\n\t\t\tPresets.deactivateAllPresets();\n\t\t\tPresets.resetPreset(true);\n\t\t\tSearch.hideClearButton();\n\t\t\tSearch.adjustPlaceholder();\n\t\t\treturn this.applyFilter(true, true);\n\t\t},\n\n\t\t_onEditButtonClick: function()\n\t\t{\n\t\t\tif (!this.isEditEnabled())\n\t\t\t{\n\t\t\t\tthis.enableEdit();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.disableEdit();\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Enables fields drag and drop\n\t\t */\n\t\tenableFieldsDragAndDrop: function()\n\t\t{\n\t\t\tvar fields = this.getPreset().getFields();\n\n\t\t\tthis.fieldsList = [];\n\n\t\t\tif (BX.type.isArray(fields))\n\t\t\t{\n\t\t\t\tthis.fieldsList = fields.map(this.registerDragItem, this);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Register drag item\n\t\t * @param {HTMLElement} item\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tregisterDragItem: function(item)\n\t\t{\n\t\t\tvar dragButton = this.getDragButton(item);\n\n\t\t\tif (dragButton)\n\t\t\t{\n\t\t\t\tdragButton.onbxdragstart = BX.delegate(this._onFieldDragStart, this);\n\t\t\t\tdragButton.onbxdragstop = BX.delegate(this._onFieldDragStop, this);\n\t\t\t\tdragButton.onbxdrag = BX.delegate(this._onFieldDrag, this);\n\t\t\t\tjsDD.registerObject(dragButton);\n\t\t\t\tjsDD.registerDest(dragButton);\n\t\t\t}\n\n\t\t\treturn item;\n\t\t},\n\n\n\t\t/**\n\t\t * Unregister drag item\n\t\t * @param {HTMLElement} item\n\t\t */\n\t\tunregisterDragItem: function(item)\n\t\t{\n\t\t\tvar dragButton = this.getDragButton(item);\n\n\t\t\tif (dragButton)\n\t\t\t{\n\t\t\t\tjsDD.unregisterObject(dragButton);\n\t\t\t\tjsDD.unregisterDest(dragButton);\n\t\t\t}\n\t\t},\n\n\t\t_onFieldDragStart: function()\n\t\t{\n\t\t\tthis.dragItem = this.getFields().getField(jsDD.current_node);\n\t\t\tthis.dragIndex = BX.Filter.Utils.getIndex(this.fieldsList, this.dragItem);\n\t\t\tthis.dragRect = this.dragItem.getBoundingClientRect();\n\t\t\tthis.offset = this.dragRect.height;\n\t\t\tthis.dragStartOffset = (jsDD.start_y - (this.dragRect.top + BX.scrollTop(window)));\n\n\t\t\tBX.Filter.Utils.styleForEach(this.fieldsList, {'transition': '100ms'});\n\t\t\tBX.addClass(this.dragItem, this.settings.classPresetOndrag);\n\t\t\tBX.bind(document, 'mousemove', BX.delegate(this._onMouseMove, this));\n\t\t},\n\n\t\t_onFieldDragStop: function()\n\t\t{\n\t\t\tBX.unbind(document, 'mousemove', BX.delegate(this._onMouseMove, this));\n\t\t\tBX.removeClass(this.dragItem, this.settings.classPresetOndrag);\n\n\t\t\tBX.Filter.Utils.styleForEach(this.fieldsList, {'transition': '', 'transform': ''});\n\t\t\tBX.Filter.Utils.collectionSort(this.dragItem, this.targetItem);\n\n\t\t\tthis.fieldsList = this.getPreset().getFields();\n\n\t\t\tthis.saveFieldsSort();\n\t\t},\n\n\t\t_onFieldDrag: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar currentRect, currentMiddle;\n\n\t\t\tthis.dragOffset = (this.realY - this.dragRect.top - this.dragStartOffset);\n\t\t\tthis.sortOffset = self.realY + BX.scrollTop(window);\n\n\t\t\tBX.Filter.Utils.styleForEach([this.dragItem], {\n\t\t\t\t'transition': '0ms',\n\t\t\t\t'transform': 'translate3d(0px, '+this.dragOffset+'px, 0px)'\n\t\t\t});\n\n\t\t\tthis.fieldsList.forEach(function(current, index) {\n\t\t\t\tif (current)\n\t\t\t\t{\n\t\t\t\t\tcurrentRect = current.getBoundingClientRect();\n\t\t\t\t\tcurrentMiddle = currentRect.top + BX.scrollTop(window) + (currentRect.height / 2);\n\n\t\t\t\t\tif (index > self.dragIndex && self.sortOffset > currentMiddle &&\n\t\t\t\t\t\tcurrent.style.transform !== 'translate3d(0px, '+(-self.offset)+'px, 0px)' &&\n\t\t\t\t\t\tcurrent.style.transform !== '')\n\t\t\t\t\t{\n\t\t\t\t\t\tself.targetItem = current;\n\t\t\t\t\t\tBX.style(current, 'transform', 'translate3d(0px, '+(-self.offset)+'px, 0px)');\n\t\t\t\t\t\tBX.style(current, 'transition', '300ms');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < self.dragIndex && self.sortOffset < currentMiddle &&\n\t\t\t\t\t\tcurrent.style.transform !== 'translate3d(0px, '+(self.offset)+'px, 0px)' &&\n\t\t\t\t\t\tcurrent.style.transform !== '')\n\t\t\t\t\t{\n\t\t\t\t\t\tself.targetItem = current;\n\t\t\t\t\t\tBX.style(current, 'transform', 'translate3d(0px, '+(self.offset)+'px, 0px)');\n\t\t\t\t\t\tBX.style(current, 'transition', '300ms');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (((index < self.dragIndex && self.sortOffset > currentMiddle) ||\n\t\t\t\t\t\t(index > self.dragIndex && self.sortOffset < currentMiddle)) &&\n\t\t\t\t\t\tcurrent.style.transform !== 'translate3d(0px, 0px, 0px)')\n\t\t\t\t\t{\n\t\t\t\t\t\tif (current.style.transform !== '')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.targetItem = current;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.style(current, 'transform', 'translate3d(0px, 0px, 0px)');\n\t\t\t\t\t\tBX.style(current, 'transition', '300ms');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Disables fields drag and drop\n\t\t */\n\t\tdisableFieldsDragAndDrop: function()\n\t\t{\n\t\t\tif (BX.type.isArray(this.fieldsList) && this.fieldsList.length)\n\t\t\t{\n\t\t\t\tthis.fieldsList.map(this.unregisterDragItem, this);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Enables presets drag and drop\n\t\t */\n\t\tenablePresetsDragAndDrop: function()\n\t\t{\n\t\t\tvar Preset, presets, dragButton, presetId;\n\n\t\t\tPreset = this.getPreset();\n\t\t\tpresets = Preset.getPresets();\n\t\t\tthis.presetsList = [];\n\n\t\t\tif (BX.type.isArray(presets) && presets.length)\n\t\t\t{\n\t\t\t\tpresets.forEach(function(current) {\n\t\t\t\t\tpresetId = Preset.getPresetId(current);\n\n\t\t\t\t\tif (!BX.hasClass(current, this.settings.classAddPresetField) &&\n\t\t\t\t\t\tpresetId !== 'default_filter' &&\n\t\t\t\t\t\t!BX.hasClass(current, this.settings.classDefaultFilter))\n\t\t\t\t\t{\n\t\t\t\t\t\tdragButton = this.getDragButton(current);\n\t\t\t\t\t\tdragButton.onbxdragstart = BX.delegate(this._onDragStart, this);\n\t\t\t\t\t\tdragButton.onbxdragstop = BX.delegate(this._onDragStop, this);\n\t\t\t\t\t\tdragButton.onbxdrag = BX.delegate(this._onDrag, this);\n\t\t\t\t\t\tjsDD.registerObject(dragButton);\n\t\t\t\t\t\tjsDD.registerDest(dragButton);\n\t\t\t\t\t\tthis.presetsList.push(current);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Gets drag button\n\t\t * @param {HTMLElement} presetNode\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetDragButton: function(presetNode)\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(presetNode, this.settings.classPresetDragButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Disables presets drag and drop\n\t\t */\n\t\tdisablePresetsDragAndDrop: function()\n\t\t{\n\t\t\tif (BX.type.isArray(this.presetsList) && this.presetsList.length)\n\t\t\t{\n\t\t\t\tthis.presetsList.forEach(function(current) {\n\t\t\t\t\tif (!BX.hasClass(current, this.settings.classAddPresetField))\n\t\t\t\t\t{\n\t\t\t\t\t\tjsDD.unregisterObject(current);\n\t\t\t\t\t\tjsDD.unregisterDest(current);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t},\n\n\t\t_onDragStart: function()\n\t\t{\n\t\t\tthis.dragItem = this.getPreset().normalizePreset(jsDD.current_node);\n\t\t\tthis.dragIndex = BX.Filter.Utils.getIndex(this.presetsList, this.dragItem);\n\t\t\tthis.dragRect = this.dragItem.getBoundingClientRect();\n\t\t\tthis.offset = this.dragRect.height;\n\t\t\tthis.dragStartOffset = (jsDD.start_y - (this.dragRect.top + BX.scrollTop(window)));\n\n\t\t\tBX.Filter.Utils.styleForEach(this.list, {'transition': '100ms'});\n\t\t\tBX.addClass(this.dragItem, this.settings.classPresetOndrag);\n\t\t\tBX.bind(document, 'mousemove', BX.delegate(this._onMouseMove, this));\n\t\t},\n\n\t\t_onMouseMove: function(event)\n\t\t{\n\t\t\tthis.realX = event.clientX;\n\t\t\tthis.realY = event.clientY;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets drag offset\n\t\t * @return {number}\n\t\t */\n\t\tgetDragOffset: function()\n\t\t{\n\t\t\treturn (jsDD.x - this.startDragOffset - this.dragRect.left);\n\t\t},\n\n\t\t_onDragStop: function()\n\t\t{\n\t\t\tvar Preset, presets;\n\n\t\t\tBX.unbind(document, 'mousemove', BX.delegate(this._onMouseMove, this));\n\t\t\tBX.removeClass(this.dragItem, this.settings.classPresetOndrag);\n\n\t\t\tBX.Filter.Utils.styleForEach(this.presetsList, {'transition': '', 'transform': ''});\n\t\t\tBX.Filter.Utils.collectionSort(this.dragItem, this.targetItem);\n\n\t\t\tPreset = this.getPreset();\n\t\t\tpresets = Preset.getPresets();\n\t\t\tthis.presetsList = [];\n\n\t\t\tif (BX.type.isArray(presets) && presets.length)\n\t\t\t{\n\t\t\t\tpresets.forEach(function(current) {\n\t\t\t\t\tif (!BX.hasClass(current, this.settings.classAddPresetField) &&\n\t\t\t\t\t\t!BX.hasClass(current, this.settings.classDefaultFilter))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.presetsList.push(current);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t},\n\n\t\t_onDrag: function()\n\t\t{\n\t\t\tvar self = this;\n\t\t\tvar currentRect, currentMiddle;\n\n\t\t\tthis.dragOffset = (this.realY - this.dragRect.top - this.dragStartOffset);\n\t\t\tthis.sortOffset = self.realY + BX.scrollTop(window);\n\n\t\t\tBX.Filter.Utils.styleForEach([this.dragItem], {\n\t\t\t\t'transition': '0ms',\n\t\t\t\t'transform': 'translate3d(0px, '+this.dragOffset+'px, 0px)'\n\t\t\t});\n\n\t\t\tthis.presetsList.forEach(function(current, index) {\n\t\t\t\tif (current)\n\t\t\t\t{\n\t\t\t\t\tcurrentRect = current.getBoundingClientRect();\n\t\t\t\t\tcurrentMiddle = currentRect.top + BX.scrollTop(window) + (currentRect.height / 2);\n\n\t\t\t\t\tif (index > self.dragIndex && self.sortOffset > currentMiddle &&\n\t\t\t\t\t\tcurrent.style.transform !== 'translate3d(0px, '+(-self.offset)+'px, 0px)' &&\n\t\t\t\t\t\tcurrent.style.transform !== '')\n\t\t\t\t\t{\n\t\t\t\t\t\tself.targetItem = current;\n\t\t\t\t\t\tBX.style(current, 'transform', 'translate3d(0px, '+(-self.offset)+'px, 0px)');\n\t\t\t\t\t\tBX.style(current, 'transition', '300ms');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < self.dragIndex && self.sortOffset < currentMiddle &&\n\t\t\t\t\t\tcurrent.style.transform !== 'translate3d(0px, '+(self.offset)+'px, 0px)' &&\n\t\t\t\t\t\tcurrent.style.transform !== '')\n\t\t\t\t\t{\n\t\t\t\t\t\tself.targetItem = current;\n\t\t\t\t\t\tBX.style(current, 'transform', 'translate3d(0px, '+(self.offset)+'px, 0px)');\n\t\t\t\t\t\tBX.style(current, 'transition', '300ms');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (((index < self.dragIndex && self.sortOffset > currentMiddle) ||\n\t\t\t\t\t\t(index > self.dragIndex && self.sortOffset < currentMiddle)) &&\n\t\t\t\t\t\tcurrent.style.transform !== 'translate3d(0px, 0px, 0px)')\n\t\t\t\t\t{\n\t\t\t\t\t\tif (current.style.transform !== '')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tself.targetItem = current;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.style(current, 'transform', 'translate3d(0px, 0px, 0px)');\n\t\t\t\t\t\tBX.style(current, 'transition', '300ms');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Gets sidebar controls container\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetSidebarControlsContainer: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.sidebarControlsContainer))\n\t\t\t{\n\t\t\t\tthis.sidebarControlsContainer = BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classSidebarControlsContainer);\n\t\t\t}\n\n\t\t\treturn this.sidebarControlsContainer;\n\t\t},\n\n\n\t\t/**\n\t\t * Enables edit mode\n\t\t */\n\t\tenableEdit: function()\n\t\t{\n\t\t\tvar Preset = this.getPreset();\n\t\t\tvar presets = Preset.getPresets();\n\t\t\tvar presetId;\n\n\t\t\tif (BX.type.isArray(presets) && presets.length)\n\t\t\t{\n\t\t\t\tpresets.forEach(function(current) {\n\t\t\t\t\tpresetId = Preset.getPresetId(current);\n\t\t\t\t\tif (!BX.hasClass(current, this.settings.classAddPresetField) && presetId !== 'default_filter')\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.addClass(current, this.settings.classPresetEdit);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tthis.enablePresetsDragAndDrop();\n\t\t\tBX.show(this.getButtonsContainer());\n\t\t\tBX.hide(this.getPresetButtonsContainer());\n\t\t\tBX.addClass(this.getSidebarControlsContainer(), this.settings.classDisabled);\n\t\t\tthis.editablePresets = BX.clone(this.getParam('PRESETS'));\n\t\t\tthis.isEditEnabledState = true;\n\t\t},\n\n\n\t\t/**\n\t\t * Disables edit mode\n\t\t */\n\t\tdisableEdit: function()\n\t\t{\n\t\t\tvar Preset = this.getPreset();\n\t\t\tvar presets = Preset.getPresets();\n\n\t\t\tif (BX.type.isArray(presets) && presets.length)\n\t\t\t{\n\t\t\t\tpresets.forEach(function(current) {\n\t\t\t\t\tif (!BX.hasClass(current, this.settings.classAddPresetField))\n\t\t\t\t\t{\n\t\t\t\t\t\tBX.removeClass(current, this.settings.classPresetEdit);\n\t\t\t\t\t\tthis.getPreset().disableEditPresetName(current);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tthis.disablePresetsDragAndDrop();\n\n\t\t\tif (!this.isAddPresetEnabled())\n\t\t\t{\n\t\t\t\tBX.style(this.getButtonsContainer(), 'display', '');\n\t\t\t}\n\n\t\t\tBX.show(this.getPresetButtonsContainer());\n\t\t\tBX.removeClass(this.getSidebarControlsContainer(), this.settings.classDisabled);\n\t\t\tthis.editablePresets = null;\n\t\t\tthis.isEditEnabledState = false;\n\t\t\tthis.applyFilter(null, true);\n\t\t},\n\n\n\t\t/**\n\t\t * Get preset buttons container\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetPresetButtonsContainer: function()\n\t\t{\n\t\t\tif (!BX.type.isDomNode(this.presetButtonsContainer))\n\t\t\t{\n\t\t\t\tthis.presetButtonsContainer = BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classPresetButtonsContainer);\n\t\t\t}\n\n\t\t\treturn this.presetButtonsContainer;\n\t\t},\n\n\n\t\t/**\n\t\t * Checks is edit mode enabled\n\t\t * @return {boolean}\n\t\t */\n\t\tisEditEnabled: function()\n\t\t{\n\t\t\treturn this.isEditEnabledState;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets edit button element\n\t\t * @return {?HTMLElement}\n\t\t */\n\t\tgetEditButton: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getFilter(), this.settings.classEditButton);\n\t\t},\n\n\n\t\t/**\n\t\t * Gets component param by param name\n\t\t * @param {string} paramName\n\t\t * @param {*} [defaultValue] - Be returns if param with paramName not set\n\t\t * @returns {*}\n\t\t */\n\t\tgetParam: function(paramName, defaultValue)\n\t\t{\n\t\t\treturn paramName in this.params ? this.params[paramName] : defaultValue;\n\t\t},\n\n\n\t\t/**\n\t\t * Gets container of filter popup\n\t\t * @returns {HTMLElement|null}\n\t\t */\n\t\tgetFilter: function()\n\t\t{\n\t\t\treturn BX.Filter.Utils.getByClass(this.getPopup().contentContainer, this.settings.classFilterContainer);\n\t\t},\n\n\n\t\t/**\n\t\t * @returns {BX.Filter.Search}\n\t\t */\n\t\tgetSearch: function()\n\t\t{\n\t\t\tif (!(this.search instanceof BX.Filter.Search))\n\t\t\t{\n\t\t\t\tthis.search = new BX.Filter.Search(this);\n\t\t\t}\n\n\t\t\treturn this.search;\n\t\t},\n\n\t\t_onRestoreButtonClick: function()\n\t\t{\n\t\t\tvar action = {\n\t\t\t\tCONFIRM: true,\n\t\t\t\tCONFIRM_MESSAGE: this.getParam('CONFIRM_MESSAGE'),\n\t\t\t\tCONFIRM_APPLY_BUTTON: this.getParam('CONFIRM_APPLY'),\n\t\t\t\tCONFIRM_CANCEL_BUTTON: this.getParam('CONFIRM_CANCEL')\n\t\t\t};\n\n\t\t\tthis.confirmDialog(action, BX.delegate(this.restoreFilter, this));\n\t\t},\n\n\n\t\t/**\n\t\t * Shows confirmation popup\n\t\t * @param {object} action - Popup properties\n\t\t * @param {boolean} action.CONFIRM - true If the user must confirm the action\n\t\t * @param {string} action.CONFIRM_MESSAGE - Message of confirm popup\n\t\t * @param {string} action.CONFIRM_APPLY_BUTTON - Text of apply button\n\t\t * @param {string} action.CONFIRM_CANCEL_BUTTON - Text of cancel button\n\t\t * @param {string} [action.CONFIRM_TITLE] - Title of confirm popup\n\t\t * @param {function} then - Callback after a successful confirmation\n\t\t * @param {function} [cancel] - callback after cancel confirmation\n\t\t */\n\t\tconfirmDialog: function(action, then, cancel)\n\t\t{\n\t\t\tif ('CONFIRM' in action && action.CONFIRM)\n\t\t\t{\n\t\t\t\tvar dialogId = this.getParam('FILTER_ID') + '-confirm-dialog';\n\t\t\t\tvar popupMessage = '<div class=\"main-ui-filter-confirm-content\">'+action.CONFIRM_MESSAGE+'</div>';\n\t\t\t\tvar popupTitle = 'CONFIRM_TITLE' in action ? action.CONFIRM_TITLE : '';\n\n\t\t\t\tvar applyButton = new BX.PopupWindowButton({\n\t\t\t\t\ttext: action.CONFIRM_APPLY_BUTTON,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.type.isFunction(then) ? then() : null;\n\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\tthis.popupWindow.destroy();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tvar cancelButton = new BX.PopupWindowButtonLink({\n\t\t\t\t\ttext: action.CONFIRM_CANCEL_BUTTON,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.type.isFunction(cancel) ? cancel() : null;\n\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\tthis.popupWindow.destroy();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tvar dialog = new BX.PopupWindow(\n\t\t\t\t\tdialogId,\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tcontent: popupMessage,\n\t\t\t\t\t\ttitleBar: popupTitle,\n\t\t\t\t\t\tautoHide: false,\n\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\toverlay: 0.4,\n\t\t\t\t\t\toffsetTop: -100,\n\t\t\t\t\t\tcloseIcon : true,\n\t\t\t\t\t\tcloseByEsc : true,\n\t\t\t\t\t\tbuttons: [applyButton, cancelButton]\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tBX.addCustomEvent(dialog, 'onPopupClose', BX.delegate(function() {\n\t\t\t\t\t!!this.getSaveForAllCheckbox() && (this.getSaveForAllCheckbox().checked = null);\n\t\t\t\t}, this));\n\n\t\t\t\tif (!dialog.isShown())\n\t\t\t\t{\n\t\t\t\t\tdialog.show();\n\t\t\t\t\tvar popupContainer = dialog.popupContainer;\n\t\t\t\t\tBX.removeClass(popupContainer, this.settings.classAnimationShow);\n\t\t\t\t\tBX.addClass(popupContainer, this.settings.classAnimationShow);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.type.isFunction(then) ? then() : null;\n\t\t\t}\n\t\t},\n\n\t\tgetInitialValue: function(name)\n\t\t{\n\t\t\tif (BX.type.isString(name))\n\t\t\t{\n\t\t\t\tvar values = this.params.INITIAL_FILTER;\n\n\t\t\t\tif (BX.type.isPlainObject(values))\n\t\t\t\t{\n\t\t\t\t\tvar filteredEntries = Object.entries(values).reduce(function(acc, item) {\n\t\t\t\t\t\tif (item[0].startsWith(name))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tacc.push(item);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t}, []);\n\n\t\t\t\t\tif (filteredEntries.length === 1)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn filteredEntries[0][1];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (filteredEntries.length > 1)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn filteredEntries.reduce(function(acc, item) {\n\t\t\t\t\t\t\tacc[item[0].replace(name, '')] = item[1];\n\t\t\t\t\t\t\treturn acc;\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 '';\n\t\t},\n\n\t\tgetField: function(name)\n\t\t{\n\t\t\tvar node = this.getFieldListContainer()\n\t\t\t\t.querySelector('[data-name=\"' + name + '\"]');\n\n\t\t\treturn BX.Filter.Field.instances.get(node);\n\t\t},\n\n\t\tisSetOutside: function()\n\t\t{\n\t\t\treturn BX.Text.toBoolean(this.isSetOutsideState);\n\t\t},\n\n\t\tsetIsSetOutsideState: function(state)\n\t\t{\n\t\t\tthis.isSetOutsideState = BX.Text.toBoolean(state);\n\t\t\tconst searchContainer = this.getSearch().getContainer();\n\t\t\tif (this.isSetOutsideState)\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(searchContainer, 'main-ui-filter-set-outside');\n\t\t\t\tBX.Dom.removeClass(searchContainer, 'main-ui-filter-set-inside');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(searchContainer, 'main-ui-filter-set-inside');\n\t\t\t\tBX.Dom.removeClass(searchContainer, 'main-ui-filter-set-outside');\n\t\t\t}\n\t\t},\n\n\t\tsetDefaultPresetAppliedState: function(state)\n\t\t{\n\t\t\tthis.isDefaultPresetAppliedState = BX.Text.toBoolean(state);\n\t\t\tconst searchContainer = this.getSearch().getContainer();\n\t\t\tif (this.isDefaultPresetAppliedState)\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(searchContainer, 'main-ui-filter-default-applied');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.Dom.removeClass(searchContainer, 'main-ui-filter-default-applied');\n\t\t\t}\n\t\t}\n\t};\n})();\n\n\n(function() {\n\tBX.Main.filterManager = {\n\t\tdata: {},\n\n\t\tpush: function(id, instance)\n\t\t{\n\t\t\tif (BX.type.isNotEmptyString(id) && instance)\n\t\t\t{\n\t\t\t\tthis.data[id] = instance;\n\t\t\t}\n\t\t},\n\n\t\tgetById: function(id)\n\t\t{\n\t\t\tvar result = null;\n\n\t\t\tif (id in this.data)\n\t\t\t{\n\t\t\t\tresult = this.data[id];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tgetList: function()\n\t\t{\n\t\t\treturn Object.values(this.data);\n\t\t}\n\t};\n})();\n","import {Event, Dom, Cache, Tag, Type} from 'main.core';\n\nconst onValueChange = Symbol('onValueChange');\n\nexport class Field extends Event.EventEmitter\n{\n\tstatic instances = new WeakMap();\n\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Filter.Field');\n\n\t\tthis.id = options.options.NAME;\n\t\tthis.parent = options.parent;\n\t\tthis.node = options.node;\n\t\tthis.options = {...options.options};\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis[onValueChange] = this[onValueChange].bind(this);\n\n\t\tEvent.bind(this.node, 'input', this[onValueChange]);\n\t\tEvent.bind(this.node, 'change', this[onValueChange]);\n\n\t\tconst clearButtons = [\n\t\t\t...this.node.querySelectorAll('.main-ui-control-value-delete'),\n\t\t];\n\n\t\tclearButtons.forEach((button) => {\n\t\t\tbutton.addEventListener('click', () => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis[onValueChange]();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tconst MO = new MutationObserver(() => {\n\t\t\tthis[onValueChange]();\n\t\t});\n\n\t\tconst selects = [\n\t\t\t...this.node.querySelectorAll('.main-ui-select'),\n\t\t];\n\n\t\tselects.forEach((select) => {\n\t\t\tMO.observe(select, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-value'],\n\t\t\t});\n\t\t});\n\n\t\tField.instances.set(this.node, this);\n\t}\n\n\tsubscribe(eventName, listener)\n\t{\n\t\tEvent.EventEmitter.subscribe(\n\t\t\tthis,\n\t\t\teventName.replace('BX.Filter.Field:', ''),\n\t\t\tlistener,\n\t\t);\n\t}\n\n\t[onValueChange]()\n\t{\n\t\tthis.emit('change', {\n\t\t\tfield: this,\n\t\t\tvalue: this.getValue(),\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t * @return {HTMLDivElement}\n\t */\n\tgetAdditionalFieldContainer(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('additionalFieldsContainer', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"main-ui-filter-additional-fields-container\"></div>\n\t\t\t`;\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t * @return {boolean}\n\t */\n\thasAdditional(): boolean\n\t{\n\t\treturn Dom.hasClass(this.node, 'main-ui-filter-field-with-additional-fields');\n\t}\n\n\taddAdditionalField(field): Field\n\t{\n\t\tif (!this.hasAdditional())\n\t\t{\n\t\t\tDom.addClass(this.node, 'main-ui-filter-field-with-additional-fields');\n\t\t\tDom.append(this.getAdditionalFieldContainer(), this.node);\n\t\t}\n\n\t\tconst preset = this.parent.getPreset();\n\t\tconst options = this.prepareFieldOptions(field);\n\t\tconst renderedField = preset.createControl(options);\n\t\tthis.appendRenderedField(renderedField);\n\n\t\treturn Field.instances.get(renderedField);\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprepareListItems(items = {})\n\t{\n\t\tif (Type.isPlainObject(items))\n\t\t{\n\t\t\treturn Object.entries(items).map(([VALUE, NAME]) => {\n\t\t\t\treturn {NAME, VALUE};\n\t\t\t});\n\t\t}\n\n\t\treturn {};\n\t}\n\n\t/**\n\t * @private\n\t * @return {object}\n\t */\n\tprepareFieldOptions(options): {[key: string]: any}\n\t{\n\t\tif (Type.isPlainObject(options))\n\t\t{\n\t\t\tconst stubs = this.parent.params.FIELDS_STUBS;\n\t\t\tconst {type = 'string'} = options;\n\t\t\tconst stub = stubs.find((item) => item.NAME === type);\n\n\t\t\tif (Type.isPlainObject(stub))\n\t\t\t{\n\t\t\t\tconst baseField = {\n\t\t\t\t\t...stub,\n\t\t\t\t\tNAME: options.id,\n\t\t\t\t\tLABEL: options.name,\n\t\t\t\t\tTYPE: type === 'checkbox' ? 'SELECT' : stub.TYPE,\n\t\t\t\t\tVALUE_REQUIRED: options.valueRequired === true,\n\t\t\t\t};\n\n\t\t\t\tif (type === 'list')\n\t\t\t\t{\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...baseField,\n\t\t\t\t\t\tITEMS: [\n\t\t\t\t\t\t\t...baseField.ITEMS,\n\t\t\t\t\t\t\tthis.prepareListItems(options.items),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\tisMulti: (() => {\n\t\t\t\t\t\t\t\tif (Type.isPlainObject(options.params))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn options.params === true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn false;\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}\n\n\t\t\t\tif (type === 'date')\n\t\t\t\t{\n\t\t\t\t\tconst subType = (() => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tType.isPlainObject(options.value)\n\t\t\t\t\t\t\t&& Reflect.has(options.value, '_datesel')\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\t\t\t\t\treturn options.value._datesel;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this.parent.dateTypes.NONE;\n\t\t\t\t\t})();\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...baseField,\n\t\t\t\t\t\tSUB_TYPES: (() => {\n\t\t\t\t\t\t\tif (Type.isArray(options.exclude))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn baseField.SUB_TYPES.filter((item) => {\n\t\t\t\t\t\t\t\t\treturn !options.exclude.includes(item.VALUE);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn baseField.SUB_TYPES;\n\t\t\t\t\t\t})(),\n\t\t\t\t\t\tSUB_TYPE: (() => {\n\t\t\t\t\t\t\treturn baseField.SUB_TYPES.find((item) => {\n\t\t\t\t\t\t\t\treturn item.VALUE === subType;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})(),\n\t\t\t\t\t\tVALUES: (() => {\n\t\t\t\t\t\t\tif (Type.isPlainObject(options.value))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn {...options.value};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn baseField.VALUES;\n\t\t\t\t\t\t})(),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\ttype === 'string'\n\t\t\t\t\t|| type === 'custom_date'\n\t\t\t\t\t|| type === 'number'\n\t\t\t\t\t|| type === 'checkbox'\n\t\t\t\t\t|| type === 'custom_entity'\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn baseField;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn options;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tappendRenderedField(field: HTMLElement)\n\t{\n\t\tif (Type.isDomNode(field))\n\t\t{\n\t\t\tconst additionalFieldsContainer = this.getAdditionalFieldContainer();\n\t\t\tDom.append(field, additionalFieldsContainer);\n\t\t}\n\t}\n\n\tgetValue(): {[key: string]: any} | string | number\n\t{\n\t\tconst allValues = this.parent.getFilterFieldsValues();\n\t\tconst {TYPE, NAME} = this.options;\n\n\t\tif (TYPE === 'DATE' || TYPE === 'NUMBER')\n\t\t{\n\t\t\treturn Object.entries(allValues).reduce((acc, [key, value]) => {\n\t\t\t\tif (key.startsWith(NAME))\n\t\t\t\t{\n\t\t\t\t\tacc[key.replace(NAME, '')] = value;\n\t\t\t\t}\n\n\t\t\t\treturn acc;\n\t\t\t}, {});\n\t\t}\n\n\t\tif (NAME in allValues)\n\t\t{\n\t\t\treturn allValues[NAME];\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tsetValue(value)\n\t{\n\t\tconst {TYPE: type} = this.options;\n\n\t\tif (type === 'DATE' || type === 'NUMBER')\n\t\t{\n\t\t\tif (Type.isPlainObject(value))\n\t\t\t{\n\t\t\t\tconst container = this.parent.getFieldListContainer();\n\n\t\t\t\tObject.entries(value).forEach(([key, fieldValue]) => {\n\t\t\t\t\tconst fieldNode = container.querySelector(`[data-name=\"${this.id}\"] [data-name=\"${this.id}${key}\"], [data-name=\"${this.id}\"] [name=\"${this.id}${key}\"]`);\n\n\t\t\t\t\tif (fieldNode)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Dom.hasClass(fieldNode, 'main-ui-select'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst items = Dom.attr(fieldNode, 'data-items');\n\n\t\t\t\t\t\t\tif (Type.isArray(items))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst item = items.find((currentItem) => currentItem.VALUE === fieldValue);\n\n\t\t\t\t\t\t\t\tif (Type.isPlainObject(item))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tDom.attr(fieldNode, 'data-value', item);\n\n\t\t\t\t\t\t\t\t\tconst nameNode = fieldNode.querySelector('.main-ui-select-name');\n\t\t\t\t\t\t\t\t\tif (nameNode)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tnameNode.innerText = item.NAME;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tlet result = BX.Main.ui.Factory.get(fieldNode);\n\n\t\t\t\t\t\t\t\t\tif (!result)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tresult = {node: fieldNode, instance: new BX.Main.ui.select(fieldNode)};\n\t\t\t\t\t\t\t\t\t\tBX.Main.ui.Factory.data.push(result);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (Type.isPlainObject(result))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tBX.onCustomEvent(window, 'UI::Select::Change', [result.instance, item]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (fieldNode.tagName === 'INPUT')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfieldNode.value = fieldValue;\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}\n\t}\n}","import {Event, Type} from 'main.core';\n\nexport class Api\n{\n\tconstructor(parent)\n\t{\n\t\t/**\n\t\t * @var {BX.Main.Filter}\n\t\t */\n\t\tthis.parent = parent;\n\t}\n\n\tsetFields(fields)\n\t{\n\t\tif (Type.isPlainObject(fields))\n\t\t{\n\t\t\tthis.parent.getPopup();\n\t\t\tconst preset = this.parent.getPreset();\n\t\t\tpreset.deactivateAllPresets();\n\t\t\tconst data = {preset_id: 'tmp_filter', fields};\n\t\t\tthis.parent.updateParams(data);\n\t\t\tpreset.applyPreset('tmp_filter');\n\t\t}\n\t}\n\n\tsetFilter(filter, analyticsLabel = null)\n\t{\n\t\tthis.setAnalyticsLabel(analyticsLabel);\n\n\t\tif (Type.isObject(filter))\n\t\t{\n\t\t\tthis.parent.updateParams(filter);\n\t\t\tthis.parent.getPreset().deactivateAllPresets();\n\t\t\tthis.parent.getPreset().activatePreset(filter.preset_id);\n\t\t\tthis.parent.getPreset().applyPreset(filter.preset_id);\n\n\t\t\tif (!filter.checkFields || !this.parent.getPreset().isPresetValuesModified(filter.preset_id))\n\t\t\t{\n\t\t\t\tconst isSetOutside = true;\n\t\t\t\tthis.parent.applyFilter(false, filter.preset_id, isSetOutside);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet newFields = {};\n\n\t\t\t\tif (Type.isPlainObject(filter.fields))\n\t\t\t\t{\n\t\t\t\t\tnewFields = Object.assign({}, filter.fields);\n\t\t\t\t}\n\n\t\t\t\tif (Type.isPlainObject(filter.additional))\n\t\t\t\t{\n\t\t\t\t\tnewFields = Object.assign({}, filter.additional);\n\t\t\t\t}\n\n\t\t\t\tthis.parent.getPreset().deactivateAllPresets();\n\t\t\t\tthis.setFields(newFields);\n\t\t\t\tthis.apply();\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Extends current applied filter\n\t * @param {Object.<String, *>} fields\n\t * @param {boolean} [force = false]\n\t */\n\textendFilter(fields, force = false, analyticsLabel= null)\n\t{\n\t\tthis.setAnalyticsLabel(analyticsLabel);\n\n\t\tif (Type.isObject(fields))\n\t\t{\n\t\t\tObject.keys(fields).forEach((key) => {\n\t\t\t\tif (Type.isNumber(fields[key]))\n\t\t\t\t{\n\t\t\t\t\tfields[key] = String(fields[key]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst currentPresetId = this.parent.getPreset().getCurrentPresetId();\n\n\t\t\tif (\n\t\t\t\tforce\n\t\t\t\t|| currentPresetId === 'tmp_filter'\n\t\t\t\t|| currentPresetId === 'default_filter'\n\t\t\t)\n\t\t\t{\n\t\t\t\tconst newFields = Object.assign({}, this.parent.getFilterFieldsValues(), fields);\n\n\t\t\t\tthis.setFields(newFields);\n\t\t\t\tthis.apply();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst previewsAdditionalValues = this.parent.getPreset().getAdditionalValues(currentPresetId);\n\n\t\t\tif (Type.isPlainObject(previewsAdditionalValues)\n\t\t\t\t&& Object.keys(previewsAdditionalValues).length)\n\t\t\t{\n\t\t\t\tfields = Object.assign({}, previewsAdditionalValues, fields);\n\t\t\t}\n\n\t\t\tthis.setFilter({\n\t\t\t\tpreset_id: currentPresetId,\n\t\t\t\tadditional: fields,\n\t\t\t\tcheckFields: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tapply(analyticsLabel= null)\n\t{\n\t\tthis.setAnalyticsLabel(analyticsLabel);\n\n\t\tif (!this.parent.isEditEnabled())\n\t\t{\n\t\t\tif (!this.parent.isEditEnabled())\n\t\t\t{\n\t\t\t\tconst clear = false;\n\t\t\t\tconst applyPreset = false;\n\t\t\t\tconst isSetOutside = true;\n\t\t\t\tthis.parent.applyFilter(clear, applyPreset, isSetOutside);\n\t\t\t}\n\n\t\t\tthis.parent.closePopup();\n\n\t\t\tif (this.parent.isAddPresetEnabled())\n\t\t\t{\n\t\t\t\tthis.parent.disableAddPreset();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetEmitter(): Event.EventEmitter\n\t{\n\t\treturn this.parent.emitter;\n\t}\n\n\tsetAnalyticsLabel(analyticsLabel = null)\n\t{\n\t\tif (Type.isObject(analyticsLabel))\n\t\t{\n\t\t\tthis.parent.analyticsLabel = analyticsLabel;\n\t\t}\n\t}\n}","export default function createDateInputDecl(options)\n{\n\treturn {\n\t\tblock: 'main-ui-control-field',\n\t\ttype: options.type,\n\t\tdragButton: false,\n\t\tcontent: {\n\t\t\tblock: 'main-ui-date',\n\t\t\tmix: ['filter-type-single'],\n\t\t\tcalendarButton: true,\n\t\t\tvalueDelete: true,\n\t\t\tplaceholder: options.placeholder,\n\t\t\tname: options.name,\n\t\t\ttabindex: options.tabindex,\n\t\t\tvalue: options.value,\n\t\t\tenableTime: options.enableTime,\n\t\t},\n\t};\n}","export default function createNumberInputDecl(options)\n{\n\treturn {\n\t\tblock: 'main-ui-control-field',\n\t\ttype: options.type,\n\t\tdragButton: false,\n\t\tcontent: {\n\t\t\tblock: 'main-ui-number',\n\t\t\tmix: ['filter-type-single'],\n\t\t\tvalueDelete: true,\n\t\t\tplaceholder: options.placeholder,\n\t\t\tname: options.name,\n\t\t\ttabindex: options.tabindex,\n\t\t\tvalue: options.value,\n\t\t},\n\t};\n}","export default function createLineDecl()\n{\n\treturn {\n\t\tblock: 'main-ui-filter-field-line',\n\t\tcontent: {\n\t\t\tblock: 'main-ui-filter-field-line-item',\n\t\t\ttag: 'span',\n\t\t},\n\t};\n}","export default function createSelectDecl(options)\n{\n\treturn {\n\t\tblock: 'main-ui-control-field',\n\t\tdragButton: false,\n\t\tcontent: {\n\t\t\tblock: 'main-ui-select',\n\t\t\ttabindex: options.tabindex,\n\t\t\tvalue: options.value,\n\t\t\titems: options.items,\n\t\t\tname: options.name,\n\t\t\tvalueDelete: false,\n\t\t},\n\t};\n}","import {EventEmitter} from 'main.core.events';\nimport {Cache, Tag, Event, Dom, Loc, Type} from 'main.core';\nimport {Menu} from 'main.popup';\n\n/**\n * @memberOf BX.Filter\n */\nexport class AdditionalFilter extends EventEmitter\n{\n\tstatic Type = {\n\t\tIS_EMPTY: 'isEmpty',\n\t\tHAS_ANY_VALUE: 'hasAnyValue',\n\t}\n\n\tstatic getInstance(): AdditionalFilter\n\t{\n\t\treturn AdditionalFilter.cache.remember('instance', () => {\n\t\t\treturn new AdditionalFilter();\n\t\t});\n\t}\n\n\tstatic fetchAdditionalFilter(name: string, fields: {[key: string]: any}): ?string\n\t{\n\t\tif (Type.isStringFilled(name) && Type.isPlainObject(fields))\n\t\t{\n\t\t\tif (`${name}_${AdditionalFilter.Type.IS_EMPTY}` in fields)\n\t\t\t{\n\t\t\t\treturn AdditionalFilter.Type.IS_EMPTY;\n\t\t\t}\n\n\t\t\tif (`${name}_${AdditionalFilter.Type.HAS_ANY_VALUE}` in fields)\n\t\t\t{\n\t\t\t\treturn AdditionalFilter.Type.HAS_ANY_VALUE;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tstatic cache = new Cache.MemoryCache();\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Main.Filter.AdditionalFilter');\n\t\tthis.options = {...options};\n\n\t\tEvent.bind(document, 'click', this.onDocumentClick.bind(this));\n\t}\n\n\tgetAdditionalFilterMenu(): Menu\n\t{\n\t\treturn this.cache.remember('menu', () => {\n\t\t\treturn new Menu({\n\t\t\t\tid: 'additional_filter_menu',\n\t\t\t\tautoHide: false,\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'isEmpty',\n\t\t\t\t\t\ttext: Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_MENU_IS_EMPTY'),\n\t\t\t\t\t\tonclick: this.onAdditionalFilterMenuItemClick.bind(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\tAdditionalFilter.Type.IS_EMPTY,\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: 'hasAnyValue',\n\t\t\t\t\t\ttext: Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_MENU_HAS_ANY_VALUE'),\n\t\t\t\t\t\tonclick: this.onAdditionalFilterMenuItemClick.bind(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\tAdditionalFilter.Type.HAS_ANY_VALUE,\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: 'delimiter',\n\t\t\t\t\t\tdelimiter: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'helper',\n\t\t\t\t\t\thtml: Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_HOW') + '<span class=\"ui-hint\"><span class=\"ui-hint-icon\"></span></span>',\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tif(top.BX.Helper)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttop.BX.Helper.show(\"redirect=detail&code=14006190\");\n\t\t\t\t\t\t\t\tevent.preventDefault();\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],\n\t\t\t});\n\t\t});\n\t}\n\n\tonAdditionalFilterMenuItemClick(typeId: $Values<AdditionalFilter.Type>)\n\t{\n\t\tconst node = this.getCurrentFieldNode();\n\t\tthis.initAdditionalFilter(node, typeId);\n\t}\n\n\tonDocumentClick()\n\t{\n\t\tthis.getAdditionalFilterMenu().close();\n\t}\n\n\tsetCurrentFieldId(fieldId: string)\n\t{\n\t\tthis.cache.set('currentFieldId', fieldId);\n\t}\n\n\tgetCurrentFieldId(): string\n\t{\n\t\treturn this.cache.get('currentFieldId', '');\n\t}\n\n\tsetCurrentFieldNode(node: HTMLDivElement)\n\t{\n\t\tthis.cache.set('currentFieldNode', node);\n\t}\n\n\tgetCurrentFieldNode(): HTMLDivElement\n\t{\n\t\treturn this.cache.get('currentFieldNode');\n\t}\n\n\tonAdditionalFilterButtonClick(fieldId: string, event: MouseEvent)\n\t{\n\t\tevent.stopPropagation();\n\t\tconst {currentTarget} = event;\n\n\t\tthis.setCurrentFieldId(fieldId);\n\t\tthis.setCurrentFieldNode(currentTarget.parentElement);\n\n\t\tconst menu = this.getAdditionalFilterMenu();\n\t\tconst allowedItems = String(Dom.attr(currentTarget, 'data-allowed-types')).split(',');\n\t\tmenu.getMenuItems().forEach((menuItem) => {\n\t\t\tlet menuItemId = menuItem.getId();\n\t\t\tif (allowedItems.includes(menuItemId) || (menuItemId === 'helper') || (menuItemId === 'delimiter'))\n\t\t\t{\n\t\t\t\tDom.removeClass(menuItem.layout.item, 'main-ui-disable');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.addClass(menuItem.layout.item, 'main-ui-disable');\n\t\t\t}\n\t\t});\n\n\t\tif (menu.getPopupWindow().isShown())\n\t\t{\n\t\t\tif (menu.getPopupWindow().bindElement !== currentTarget)\n\t\t\t{\n\t\t\t\tmenu.getPopupWindow().setBindElement(currentTarget);\n\t\t\t\tmenu.getPopupWindow().adjustPosition();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tmenu.close();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tmenu.getPopupWindow().setBindElement(currentTarget);\n\t\t\tmenu.show();\n\t\t}\n\t}\n\n\tgetAdditionalFilterButton({fieldId, enabled}): HTMLDivElement\n\t{\n\t\treturn this.cache.remember(`field_${fieldId}`, () => {\n\t\t\tconst disabled = !Type.isArrayFilled(enabled) && enabled !== true;\n\t\t\tconst allowedTypes = (() => {\n\t\t\t\tif (Type.isArrayFilled(enabled))\n\t\t\t\t{\n\t\t\t\t\treturn enabled.join(',');\n\t\t\t\t}\n\n\t\t\t\tif (!disabled)\n\t\t\t\t{\n\t\t\t\t\treturn [\n\t\t\t\t\t\tAdditionalFilter.Type.IS_EMPTY,\n\t\t\t\t\t\tAdditionalFilter.Type.HAS_ANY_VALUE,\n\t\t\t\t\t].join(',');\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t})();\n\n\t\t\treturn Tag.render`\n\t\t\t\t<span \n\t\t\t\t\tclass=\"ui-icon ui-icon-service-light-other main-ui-filter-additional-filters-button${disabled ? ' main-ui-disable' : ''}\"\n\t\t\t\t\tonclick=\"${this.onAdditionalFilterButtonClick.bind(this, fieldId)}\"\n\t\t\t\t\tdata-allowed-types=\"${allowedTypes}\"\n\t\t\t\t>\n\t\t\t\t\t<i></i>\n\t\t\t\t</span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tinitAdditionalFilter(fieldNode: HTMLDivElement, typeId: $Values<AdditionalFilter.Type>)\n\t{\n\t\tlet currentFieldId = this.getCurrentFieldId();\n\t\tif (currentFieldId === '')\n\t\t{\n\t\t\tcurrentFieldId = fieldNode.attributes[1].value;\n\t\t}\n\t\tconst placeholder = this.getAdditionalFilterPlaceholderField(currentFieldId, typeId);\n\n\t\tDom.addClass(fieldNode, 'main-ui-filter-field-with-additional-filter');\n\n\t\tconst currentPlaceholder = fieldNode.querySelector('.main-ui-filter-additional-filter-placeholder');\n\t\tif (currentPlaceholder)\n\t\t{\n\t\t\tDom.replace(currentPlaceholder, placeholder);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(placeholder, fieldNode);\n\t\t}\n\t}\n\n\trestoreField(fieldNode: HTMLDivElement)\n\t{\n\t\tif (Type.isDomNode(fieldNode))\n\t\t{\n\t\t\tconst placeholder = fieldNode.querySelector('.main-ui-filter-additional-filter-placeholder');\n\t\t\tif (placeholder)\n\t\t\t{\n\t\t\t\tDom.remove(placeholder);\n\t\t\t}\n\n\t\t\tDom.removeClass(fieldNode, 'main-ui-filter-field-with-additional-filter');\n\t\t}\n\t}\n\n\tgetAdditionalFilterPlaceholderField(fieldId: string, typeId: $Values<AdditionalFilter.Type>): HTMLDivElement\n\t{\n\t\treturn this.cache.remember(`placeholder_${fieldId}_${typeId}`, () => {\n\t\t\tconst message = (() => {\n\t\t\t\tif (typeId === AdditionalFilter.Type.HAS_ANY_VALUE)\n\t\t\t\t{\n\t\t\t\t\treturn Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_HAS_ANY_VALUE');\n\t\t\t\t}\n\n\t\t\t\treturn Loc.getMessage('MAIN_UI_FILTER__ADDITIONAL_FILTER_PLACEHOLDER_IS_EMPTY');\n\t\t\t})();\n\n\t\t\tconst onRemoveClick = (event: MouseEvent) => {\n\t\t\t\tthis.restoreField(\n\t\t\t\t\tevent.currentTarget.closest('.main-ui-filter-field-with-additional-filter'),\n\t\t\t\t);\n\t\t\t};\n\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"main-ui-control main-ui-filter-additional-filter-placeholder\" data-type=\"${typeId}\">\n\t\t\t\t\t<div class=\"main-ui-square\">\n\t\t\t\t\t\t<div class=\"main-ui-square-item\">${message}</div>\n\t\t\t\t\t\t<div class=\"main-ui-item-icon main-ui-square-delete\" onclick=\"${onRemoveClick}\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetFilter(fieldNode: HTMLDivElement): ?{[key: string]: any}\n\t{\n\t\tif (Type.isDomNode(fieldNode))\n\t\t{\n\t\t\tconst placeholder = fieldNode.querySelector('.main-ui-filter-additional-filter-placeholder');\n\t\t\tif (Type.isDomNode(placeholder))\n\t\t\t{\n\t\t\t\tconst type = Dom.attr(placeholder, 'data-type');\n\t\t\t\tconst fieldId = Dom.attr(fieldNode, 'data-name');\n\n\t\t\t\treturn {[`${fieldId}_${type}`]: 'y'};\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}","/* eslint-disable no-underscore-dangle */\n/* eslint-disable class-methods-use-this */\nimport {Dom, Event, Runtime, Type, Text, Loc, Tag} from 'main.core';\nimport createDateInputDecl from './fields/create-date-input-decl';\nimport createNumberInputDecl from './fields/create-number-input-decl';\nimport createLineDecl from './fields/create-line-decl';\nimport createSelectDecl from './fields/create-select-decl';\nimport {Field} from './field/field';\nimport {AdditionalFilter} from './additional-filter';\n\nconst errorMessages = new WeakMap();\nconst errorMessagesTypes = new WeakMap();\nconst values = new WeakMap();\n\nexport class Fields\n{\n\tconstructor(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.init(parent);\n\t}\n\n\tinit(parent)\n\t{\n\t\tthis.parent = parent;\n\t\tBX.addCustomEvent(window, 'UI::Select::change', this._onDateTypeChange.bind(this));\n\t}\n\n\tdeleteField(node)\n\t{\n\t\tDom.remove(node);\n\t}\n\n\tisFieldDelete(node)\n\t{\n\t\treturn Dom.hasClass(node, this.parent.settings.classFieldDelete);\n\t}\n\n\tisFieldValueDelete(node)\n\t{\n\t\treturn (\n\t\t\tDom.hasClass(node, this.parent.settings.classValueDelete)\n\t\t\t|| Dom.hasClass(node.parentNode, this.parent.settings.classValueDelete)\n\t\t);\n\t}\n\n\tisDragButton(node)\n\t{\n\t\treturn node && Dom.hasClass(node, this.parent.settings.classPresetDragButton);\n\t}\n\n\t/**\n\t * Clears values of filter field node\n\t * @param {HTMLElement} field\n\t */\n\tclearFieldValue(field)\n\t{\n\t\tif (field)\n\t\t{\n\t\t\tconst controls = [...field.querySelectorAll('.main-ui-control')];\n\t\t\tconst squares = [...field.querySelectorAll('.main-ui-square')];\n\n\t\t\tsquares.forEach((square) => Dom.remove(square));\n\t\t\tcontrols.forEach((control) => {\n\t\t\t\tif (Reflect.has(control, 'value'))\n\t\t\t\t{\n\t\t\t\t\tcontrol.value = '';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tgetField(node)\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\treturn node.closest('.main-ui-control-field, .main-ui-control-field-group');\n\t\t}\n\n\t\treturn null;\n\t}\n\n\trender(template, data)\n\t{\n\t\tif (Type.isString(template) && Type.isPlainObject(data))\n\t\t{\n\t\t\tconst html = Object.entries(data).reduce((acc, [key, value]) => {\n\t\t\t\treturn acc.replace(new RegExp(`{{${key}}}`, 'g'), value);\n\t\t\t}, template);\n\n\t\t\tconst wrapped = Dom.create('div', {html});\n\n\t\t\tconst fieldGroup = wrapped.querySelector('.main-ui-control-field-group');\n\t\t\tif (fieldGroup)\n\t\t\t{\n\t\t\t\treturn fieldGroup;\n\t\t\t}\n\n\t\t\tconst field = wrapped.querySelector('.main-ui-control-field');\n\t\t\tif (field)\n\t\t\t{\n\t\t\t\treturn field;\n\t\t\t}\n\n\t\t\tconst fieldLine = wrapped.querySelector('.main-ui-filter-field-line');\n\t\t\tif (fieldLine)\n\t\t\t{\n\t\t\t\treturn fieldLine;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tcreateInputText(fieldData)\n\t{\n\t\tconst field = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel] : null,\n\t\t\tdeleteButton: true,\n\t\t\tvalueDelete: true,\n\t\t\tname: fieldData.NAME,\n\t\t\ttype: fieldData.TYPE,\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-control-string',\n\t\t\t\t\tname: fieldData.NAME,\n\t\t\t\t\tplaceholder: fieldData.PLACEHOLDER || '',\n\t\t\t\t\tvalue: (Type.isString(fieldData.VALUE)\n\t\t\t\t\t\t\t|| Type.isNumber(fieldData.VALUE) ? fieldData.VALUE : ''),\n\t\t\t\t\ttabindex: fieldData.TABINDEX,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tconst renderedField = BX.decl(field);\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: renderedField,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn renderedField;\n\t}\n\n\tcreateTextarea(fieldData)\n\t{\n\t\tconst field = BX.decl({\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel] : null,\n\t\t\tdeleteButton: true,\n\t\t\tvalueDelete: true,\n\t\t\tname: fieldData.NAME,\n\t\t\ttype: fieldData.TYPE,\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\tcontent: [\n\t\t\t\t{\n\t\t\t\t\tblock: 'main-ui-control-textarea',\n\t\t\t\t\tname: fieldData.NAME,\n\t\t\t\t\tplaceholder: fieldData.PLACEHOLDER || '',\n\t\t\t\t\tvalue: (Type.isString(fieldData.VALUE)\n\t\t\t\t\t|| Type.isNumber(fieldData.VALUE) ? fieldData.VALUE : ''),\n\t\t\t\t\ttabindex: fieldData.TABINDEX,\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\n\t\tconst textarea = field.querySelector('textarea');\n\t\tconst onChange = () => {\n\t\t\tDom.style(textarea, 'height', '1px');\n\t\t\tDom.style(textarea, 'height', `${textarea.scrollHeight}px`);\n\t\t};\n\n\t\tEvent.bind(textarea, 'input', onChange);\n\t\tEvent.bind(textarea, 'change', onChange);\n\t\tEvent.bind(textarea, 'keyup', onChange);\n\t\tEvent.bind(textarea, 'cut', onChange);\n\t\tEvent.bind(textarea, 'paste', onChange);\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\tcreateCustomEntityFieldLayout(fieldData)\n\t{\n\t\tlet field = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel] : null,\n\t\t\tdeleteButton: true,\n\t\t\tvalueDelete: true,\n\t\t\tname: fieldData.NAME,\n\t\t\ttype: fieldData.TYPE,\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-control-entity',\n\t\t\t\tmix: 'main-ui-control',\n\t\t\t\tattrs: {\n\t\t\t\t\t'data-multiple': JSON.stringify(fieldData.MULTIPLE),\n\t\t\t\t},\n\t\t\t\tcontent: [],\n\t\t\t},\n\t\t};\n\n\t\tif ('_label' in fieldData.VALUES && !!fieldData.VALUES._label)\n\t\t{\n\t\t\tif (fieldData.MULTIPLE)\n\t\t\t{\n\t\t\t\tlet label = fieldData.VALUES._label ? fieldData.VALUES._label : [];\n\n\t\t\t\tif (Type.isPlainObject(label))\n\t\t\t\t{\n\t\t\t\t\tlabel = Object.keys(label).map((key) => {\n\t\t\t\t\t\treturn label[key];\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (!Type.isArray(label))\n\t\t\t\t{\n\t\t\t\t\tlabel = [label];\n\t\t\t\t}\n\n\t\t\t\tlet value = fieldData.VALUES._value ? fieldData.VALUES._value : [];\n\t\t\t\tif (Type.isPlainObject(value))\n\t\t\t\t{\n\t\t\t\t\tvalue = Object.keys(value).map((key) => {\n\t\t\t\t\t\treturn value[key];\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (!Type.isArray(value))\n\t\t\t\t{\n\t\t\t\t\tvalue = [value];\n\t\t\t\t}\n\n\t\t\t\tlabel.forEach((currentLabel, index) => {\n\t\t\t\t\tfield.content.content.push({\n\t\t\t\t\t\tblock: 'main-ui-square',\n\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\tname: currentLabel,\n\t\t\t\t\t\titem: {_label: currentLabel, _value: value[index]},\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\tfield.content.content.push({\n\t\t\t\t\tblock: 'main-ui-square',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tname: '_label' in fieldData.VALUES ? fieldData.VALUES._label : '',\n\t\t\t\t\titem: fieldData.VALUES,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfield.content.content.push(\n\t\t\t{\n\t\t\t\tblock: 'main-ui-square-search',\n\t\t\t\ttag: 'span',\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-control-string',\n\t\t\t\t\tname: `${fieldData.NAME}_label`,\n\t\t\t\t\ttabindex: fieldData.TABINDEX,\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tplaceholder: fieldData.PLACEHOLDER || '',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tblock: 'main-ui-control-string',\n\t\t\t\tname: fieldData.NAME,\n\t\t\t\ttype: 'hidden',\n\t\t\t\tplaceholder: fieldData.PLACEHOLDER || '',\n\t\t\t\tvalue: '_value' in fieldData.VALUES ? fieldData.VALUES._value : '',\n\t\t\t\ttabindex: fieldData.TABINDEX,\n\t\t\t},\n\t\t);\n\n\t\tfield = BX.decl(field);\n\n\t\tconst input = BX.Filter.Utils.getBySelector(field, '.main-ui-control-string[type=\"text\"]');\n\t\tBX.addClass(input, 'main-ui-square-search-item');\n\t\tinput.autocomplete = 'off';\n\n\t\tEvent.bind(input, 'focus', BX.proxy(this._onCustomEntityInputFocus, this));\n\t\tEvent.bind(input, 'click', BX.proxy(this._onCustomEntityInputClick, this));\n\n\t\tif (!this.bindDocument)\n\t\t{\n\t\t\tEvent.bind(document, 'click', BX.proxy(this._onCustomEntityBlur, this));\n\t\t\tdocument.addEventListener('focus', BX.proxy(this._onDocumentFocus, this), true);\n\t\t\tthis.bindDocument = true;\n\t\t}\n\n\t\tEvent.bind(input, 'keydown', BX.proxy(this._onCustomEntityKeydown, this));\n\t\tEvent.bind(field, 'click', BX.proxy(this._onCustomEntityFieldClick, this));\n\n\t\treturn field;\n\t}\n\n\tcreateDestSelector(fieldData)\n\t{\n\t\tconst field = this.createCustomEntityFieldLayout(fieldData);\n\n\t\tBX.ready(BX.proxy(function() {\n\t\t\tBX.Filter.DestinationSelector.create(\n\t\t\t\tfieldData.NAME,\n\t\t\t\t{\n\t\t\t\t\tfilterId: this.parent.getParam('FILTER_ID'),\n\t\t\t\t\tfieldId: fieldData.NAME,\n\t\t\t\t},\n\t\t\t);\n\t\t}, this));\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\tcreateEntitySelector(fieldData)\n\t{\n\t\tconst field = this.createCustomEntityFieldLayout(fieldData);\n\n\t\tBX.Filter.EntitySelector.create(\n\t\t\tfieldData.NAME,\n\t\t\t{\n\t\t\t\tfilter: this.parent,\n\t\t\t\tisMultiple: fieldData.MULTIPLE,\n\t\t\t\taddEntityIdToResult: fieldData.ADD_ENTITY_ID_TO_RESULT,\n\t\t\t\tshowDialogOnEmptyInput: fieldData.SHOW_DIALOG_ON_EMPTY_INPUT,\n\t\t\t\tdialogOptions: fieldData.DIALOG_OPTIONS\n\t\t\t},\n\t\t);\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\tcreateCustomEntity(fieldData)\n\t{\n\t\tconst field = this.createCustomEntityFieldLayout(fieldData);\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\t_onCustomEntityInputFocus(event)\n\t{\n\t\tBX.fireEvent(event.currentTarget, 'click');\n\t}\n\n\t_onCustomEntityInputClick(event)\n\t{\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tif (event.isTrusted)\n\t\t{\n\t\t\tthis.trustTimestamp = event.timeStamp;\n\t\t\tthis.notTrustTimestamp = this.notTrustTimestamp || event.timeStamp;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.notTrustTimestamp = event.timeStamp;\n\t\t}\n\n\t\tconst trustDate = new Date(this.trustTimestamp);\n\t\tconst notTrustDate = new Date(this.notTrustTimestamp);\n\t\tconst trustTime = `${trustDate.getMinutes()}:${trustDate.getSeconds()}`;\n\t\tconst notTrustTime = `${notTrustDate.getMinutes()}:${notTrustDate.getSeconds()}`;\n\n\t\tif (trustTime !== notTrustTime)\n\t\t{\n\t\t\tthis._onCustomEntityFocus(event);\n\t\t}\n\t}\n\n\t_onDocumentFocus(event)\n\t{\n\t\tconst CustomEntity = this.getCustomEntityInstance();\n\t\tconst popupContainer = CustomEntity.getPopupContainer();\n\t\tconst isOnInputField = CustomEntity.getLabelNode() === event.target;\n\t\tconst isInsidePopup = !!popupContainer && popupContainer.contains(event.target);\n\n\t\tif (!isOnInputField && !isInsidePopup)\n\t\t{\n\t\t\tthis._onCustomEntityBlur(event);\n\t\t}\n\t}\n\n\t_onCustomEntityKeydown(event)\n\t{\n\t\tconst {target, currentTarget} = event;\n\t\tconst {parentNode} = target.parentNode;\n\n\t\tconst squares = parentNode.querySelectorAll('.main-ui-square');\n\t\tconst square = squares[squares.length - 1];\n\n\t\tif (!Type.isDomNode(square))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tBX.Filter.Utils.isKey(event, 'backspace')\n\t\t\t&& currentTarget.selectionStart === 0\n\t\t)\n\t\t{\n\t\t\tif (Dom.hasClass(square, 'main-ui-square-selected'))\n\t\t\t{\n\t\t\t\tconst input = parentNode.querySelector('input[type=\"hidden\"]');\n\n\t\t\t\tif (Type.isDomNode(input))\n\t\t\t\t{\n\t\t\t\t\tinput.value = '';\n\t\t\t\t\tBX.fireEvent(input, 'input');\n\t\t\t\t}\n\n\t\t\t\tDom.remove(square);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tDom.addClass(square, 'main-ui-square-selected');\n\t\t\treturn;\n\t\t}\n\n\t\tDom.removeClass(square, 'main-ui-square-selected');\n\t}\n\n\t_onCustomEntityFieldClick({target})\n\t{\n\t\tif (Dom.hasClass(target, 'main-ui-square-delete'))\n\t\t{\n\t\t\tconst square = target.closest('.main-ui-square');\n\n\t\t\tif (Type.isDomNode(square))\n\t\t\t{\n\t\t\t\tconst CustomEntity = this.getCustomEntityInstance();\n\t\t\t\tBX.onCustomEvent(window, 'BX.Main.Filter:customEntityRemove', [CustomEntity]);\n\t\t\t\tDom.remove(square);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = target.querySelector('input[type=\"text\"]');\n\n\t\tif (Type.isDomNode(input))\n\t\t{\n\t\t\tBX.fireEvent(input, 'focus');\n\t\t}\n\t}\n\n\t_onCustomEntityBlur(event)\n\t{\n\t\tconst eventData = {\n\t\t\tstopBlur: false,\n\t\t};\n\n\t\tBX.onCustomEvent(window, 'BX.Main.Filter:onGetStopBlur', [event, eventData]);\n\n\t\tif (\n\t\t\ttypeof eventData.stopBlur === 'undefined'\n\t\t\t|| !eventData.stopBlur\n\t\t)\n\t\t{\n\t\t\tconst CustomEntity = this.getCustomEntityInstance();\n\t\t\tBX.onCustomEvent(window, 'BX.Main.Filter:customEntityBlur', [CustomEntity]);\n\n\t\t\tEvent.unbind(CustomEntity.getPopupContainer(), 'click', this._stopPropagation);\n\t\t\tDom.removeClass(CustomEntity.getField(), 'main-ui-focus');\n\t\t}\n\t}\n\n\t_stopPropagation(event)\n\t{\n\t\tevent.stopPropagation();\n\t}\n\n\tgetCustomEntityInstance()\n\t{\n\t\tif (!(this.customEntityInstance instanceof BX.Main.ui.CustomEntity))\n\t\t{\n\t\t\tthis.customEntityInstance = new BX.Main.ui.CustomEntity();\n\t\t}\n\n\t\treturn this.customEntityInstance;\n\t}\n\n\t_onCustomEntityFocus(event)\n\t{\n\t\tevent.stopPropagation();\n\n\t\tconst {currentTarget} = event;\n\t\tconst field = currentTarget.closest('.main-ui-control-entity');\n\n\t\tconst CustomEntity = this.getCustomEntityInstance();\n\t\tCustomEntity.setField(field);\n\t\tBX.onCustomEvent('BX.Main.Filter:customEntityFocus', [CustomEntity]);\n\n\t\tconst popupContainer = CustomEntity.getPopupContainer();\n\t\tif (Type.isElementNode(popupContainer))\n\t\t{\n\t\t\tEvent.bind(popupContainer, 'click', this._stopPropagation);\n\t\t}\n\n\t\tDom.addClass(field, 'main-ui-focus');\n\t}\n\n\tcreateCustom(fieldData)\n\t{\n\t\tconst field = BX.decl({\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel] : null,\n\t\t\tname: fieldData.NAME,\n\t\t\ttype: fieldData.TYPE,\n\t\t\tdeleteButton: true,\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-custom',\n\t\t\t\tmix: [\n\t\t\t\t\t'main-ui-control',\n\t\t\t\t\t'main-ui-custom-style',\n\t\t\t\t],\n\t\t\t\tattrs: {\n\t\t\t\t\t'data-name': fieldData.NAME,\n\t\t\t\t},\n\t\t\t\tcontent: '',\n\t\t\t},\n\t\t});\n\n\t\tif (Type.isString(fieldData.VALUE))\n\t\t{\n\t\t\tconst fieldValue = (() => {\n\t\t\t\tif (Reflect.has(fieldData, '_VALUE'))\n\t\t\t\t{\n\t\t\t\t\treturn fieldData._VALUE;\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t})();\n\n\t\t\tconst html = Text\n\t\t\t\t.decode(fieldData.VALUE)\n\t\t\t\t.replace(\n\t\t\t\t\t`name=\"${fieldData.NAME}\"`,\n\t\t\t\t\t`name=\"${fieldData.NAME}\" value=\"${fieldValue}\"`,\n\t\t\t\t);\n\n\t\t\tconst control = field.querySelector('.main-ui-custom');\n\t\t\tRuntime.html(control, html);\n\t\t}\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\tcreateSelect(fieldData)\n\t{\n\t\tconst field = BX.decl({\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel] : null,\n\t\t\tname: fieldData.NAME,\n\t\t\ttype: fieldData.TYPE,\n\t\t\tdeleteButton: true,\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\tcontent: {\n\t\t\t\tblock: this.parent.settings.classSelect,\n\t\t\t\tname: fieldData.NAME,\n\t\t\t\titems: fieldData.ITEMS,\n\t\t\t\tvalue: 'VALUE' in fieldData ? fieldData.VALUE : fieldData.ITEMS[0],\n\t\t\t\tparams: fieldData.PARAMS,\n\t\t\t\ttabindex: fieldData.TABINDEX,\n\t\t\t\tvalueDelete: false,\n\t\t\t},\n\t\t});\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\tcreateMultiSelect(fieldData)\n\t{\n\t\tconst field = BX.decl({\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel] : null,\n\t\t\tname: fieldData.NAME,\n\t\t\ttype: fieldData.TYPE,\n\t\t\tdeleteButton: true,\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-multi-select',\n\t\t\t\tname: fieldData.NAME,\n\t\t\t\ttabindex: 'TABINDEX' in fieldData ? fieldData.TABINDEX : '',\n\t\t\t\tplaceholder: !this.parent.getParam('ENABLE_LABEL') && 'PLACEHOLDER' in fieldData ? fieldData.PLACEHOLDER : '',\n\t\t\t\titems: 'ITEMS' in fieldData ? fieldData.ITEMS : [],\n\t\t\t\tvalue: 'VALUE' in fieldData ? fieldData.VALUE : [],\n\t\t\t\tparams: 'PARAMS' in fieldData ? fieldData.PARAMS : {isMulti: true},\n\t\t\t\tvalueDelete: true,\n\t\t\t},\n\t\t});\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\n\tcreateCustomDate(fieldData)\n\t{\n\t\tconst group = {\n\t\t\tblock: 'main-ui-control-field-group',\n\t\t\ttype: fieldData.TYPE,\n\t\t\tmix: this.parent.getParam('ENABLE_LABEL') ? [this.parent.settings.classFieldWithLabel, 'main-ui-filter-date-group'] : ['main-ui-filter-date-group'],\n\t\t\tlabel: this.parent.getParam('ENABLE_LABEL') ? fieldData.LABEL : '',\n\t\t\ticon: (this.parent.getParam('ENABLE_LABEL') && fieldData.ICON) ? fieldData.ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\ttabindex: 'TABINDEX' in fieldData ? fieldData.TABINDEX : '',\n\t\t\tname: 'NAME' in fieldData ? fieldData.NAME : '',\n\t\t\tdeleteButton: true,\n\t\t\tcontent: [],\n\t\t};\n\n\t\tif (Type.isPlainObject(fieldData.VALUE.days))\n\t\t{\n\t\t\tfieldData.VALUE.days = Object.keys(fieldData.VALUE.days).map((index) => {\n\t\t\t\treturn fieldData.VALUE.days[index];\n\t\t\t});\n\t\t}\n\n\t\tconst daysValue = fieldData.DAYS.filter((item) => {\n\t\t\treturn fieldData.VALUE.days.some((value) => {\n\t\t\t\treturn value === item.VALUE;\n\t\t\t});\n\t\t});\n\n\t\tconst days = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: ['main-ui-control-custom-date'],\n\t\t\tplaceholder: fieldData.DAYS_PLACEHOLDER,\n\t\t\tdragButton: false,\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-multi-select',\n\t\t\t\tname: `${fieldData.NAME}_days`,\n\t\t\t\ttabindex: 'TABINDEX' in fieldData ? fieldData.TABINDEX : '',\n\t\t\t\titems: fieldData.DAYS,\n\t\t\t\tvalue: daysValue,\n\t\t\t\tparams: 'PARAMS' in fieldData ? fieldData.PARAMS : {isMulti: true},\n\t\t\t\tvalueDelete: true,\n\t\t\t\tattrs: {'data-placeholder': fieldData.DAYS_PLACEHOLDER},\n\t\t\t},\n\t\t};\n\n\n\t\tif (Type.isPlainObject(fieldData.VALUE.months))\n\t\t{\n\t\t\tfieldData.VALUE.months = Object.keys(fieldData.VALUE.months).map((index) => {\n\t\t\t\treturn fieldData.VALUE.months[index];\n\t\t\t});\n\t\t}\n\n\t\tconst monthsValue = fieldData.MONTHS.filter((item) => {\n\t\t\treturn fieldData.VALUE.months.some((value) => {\n\t\t\t\treturn value === item.VALUE;\n\t\t\t});\n\t\t});\n\n\t\tconst months = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: ['main-ui-control-custom-date'],\n\t\t\tdragButton: false,\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-multi-select',\n\t\t\t\tname: `${fieldData.NAME}_months`,\n\t\t\t\ttabindex: 'TABINDEX' in fieldData ? fieldData.TABINDEX : '',\n\t\t\t\titems: fieldData.MONTHS,\n\t\t\t\tvalue: monthsValue,\n\t\t\t\tparams: 'PARAMS' in fieldData ? fieldData.PARAMS : {isMulti: true},\n\t\t\t\tvalueDelete: true,\n\t\t\t\tattrs: {'data-placeholder': fieldData.MONTHS_PLACEHOLDER},\n\t\t\t},\n\t\t};\n\n\n\t\tif (Type.isPlainObject(fieldData.VALUE.years))\n\t\t{\n\t\t\tfieldData.VALUE.years = Object.keys(fieldData.VALUE.years).map((index) => {\n\t\t\t\treturn fieldData.VALUE.years[index];\n\t\t\t});\n\t\t}\n\n\t\tconst yearsValue = fieldData.YEARS.filter((item) => {\n\t\t\treturn fieldData.VALUE.years.some((value) => {\n\t\t\t\treturn value === item.VALUE;\n\t\t\t});\n\t\t});\n\n\t\tconst years = {\n\t\t\tblock: 'main-ui-control-field',\n\t\t\tmix: ['main-ui-control-custom-date'],\n\t\t\tdragButton: false,\n\t\t\tcontent: {\n\t\t\t\tblock: 'main-ui-multi-select',\n\t\t\t\tname: `${fieldData.NAME}_years`,\n\t\t\t\ttabindex: 'TABINDEX' in fieldData ? fieldData.TABINDEX : '',\n\t\t\t\titems: fieldData.YEARS,\n\t\t\t\tvalue: yearsValue,\n\t\t\t\tparams: 'PARAMS' in fieldData ? fieldData.PARAMS : {isMulti: true},\n\t\t\t\tvalueDelete: true,\n\t\t\t\tattrs: {'data-placeholder': fieldData.YEARS_PLACEHOLDER},\n\t\t\t},\n\t\t};\n\n\t\tgroup.content.push(days);\n\t\tgroup.content.push(months);\n\t\tgroup.content.push(years);\n\n\t\tconst field = BX.decl(group);\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...fieldData},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\n\t_onDateTypeChange(instance, data)\n\t{\n\t\tif (this.parent.getPopup().contentContainer.contains(instance.node))\n\t\t{\n\t\t\tconst fieldData = {};\n\t\t\tlet dateGroup = null;\n\t\t\tlet label;\n\t\t\tlet controls;\n\t\t\tlet index;\n\n\t\t\tif (Type.isPlainObject(data) && Reflect.has(data, 'VALUE'))\n\t\t\t{\n\t\t\t\tconst fieldNode = instance.getNode();\n\t\t\t\tconst params = instance.getParams();\n\t\t\t\tconst {name} = fieldNode.dataset;\n\n\t\t\t\tif (\n\t\t\t\t\t!Type.isPlainObject(params)\n\t\t\t\t\t&& (name.endsWith('_datesel') || name.endsWith('_numsel')))\n\t\t\t\t{\n\t\t\t\t\tconst group = fieldNode.parentNode.parentNode;\n\t\t\t\t\tfieldData.TABINDEX = instance.getInput().getAttribute('tabindex');\n\t\t\t\t\tfieldData.SUB_TYPES = instance.getItems();\n\t\t\t\t\tfieldData.SUB_TYPE = data;\n\t\t\t\t\tfieldData.NAME = group.dataset.name;\n\t\t\t\t\tfieldData.TYPE = group.dataset.type;\n\t\t\t\t\tfieldData.VALUE_REQUIRED = group.dataset.valueRequired === 'true';\n\n\t\t\t\t\tconst presetData = this.parent.getPreset().getCurrentPresetData();\n\n\t\t\t\t\tif (Type.isArray(presetData.FIELDS))\n\t\t\t\t\t{\n\t\t\t\t\t\tlet presetField = presetData.FIELDS.find((current) => {\n\t\t\t\t\t\t\treturn current.NAME === fieldData.NAME;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (Type.isNil(presetField))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpresetField = this.parent.params.FIELDS_STUBS.find((current) => {\n\t\t\t\t\t\t\t\treturn current.TYPE === fieldData.TYPE;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!Type.isNil(presetField))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (name.endsWith('_datesel'))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfieldData.MONTHS = presetField.MONTHS;\n\t\t\t\t\t\t\t\tfieldData.MONTH = presetField.MONTH;\n\t\t\t\t\t\t\t\tfieldData.YEARS = presetField.YEARS;\n\t\t\t\t\t\t\t\tfieldData.YEAR = presetField.YEAR;\n\t\t\t\t\t\t\t\tfieldData.QUARTERS = presetField.QUARTERS;\n\t\t\t\t\t\t\t\tfieldData.QUARTER = presetField.QUARTER;\n\t\t\t\t\t\t\t\tfieldData.ENABLE_TIME = presetField.ENABLE_TIME;\n\t\t\t\t\t\t\t\tfieldData.YEARS_SWITCHER = presetField.YEARS_SWITCHER;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfieldData.VALUES = presetField.VALUES;\n\t\t\t\t\t\t\tfieldData.REQUIRED = presetField.REQUIRED;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.parent.getParam('ENABLE_LABEL'))\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel = group.querySelector('.main-ui-control-field-label');\n\t\t\t\t\t\tfieldData.LABEL = label.innerText;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (name.endsWith('_datesel'))\n\t\t\t\t\t{\n\t\t\t\t\t\tdateGroup = this.createDate(fieldData);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tdateGroup = this.createNumber(fieldData);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Type.isArray(this.parent.fieldsList))\n\t\t\t\t\t{\n\t\t\t\t\t\tindex = this.parent.fieldsList.indexOf(group);\n\n\t\t\t\t\t\tif (index !== -1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.parent.fieldsList[index] = dateGroup;\n\t\t\t\t\t\t\tthis.parent.registerDragItem(dateGroup);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.parent.unregisterDragItem(group);\n\n\t\t\t\t\tcontrols = [...dateGroup.querySelectorAll('.main-ui-control-field')];\n\n\t\t\t\t\tif (Type.isArray(controls) && controls.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontrols.forEach((control) => {\n\t\t\t\t\t\t\tcontrol.FieldController = new BX.Filter.FieldController(control, this.parent);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.parent.getParam('ENABLE_ADDITIONAL_FILTERS'))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst button = AdditionalFilter.getInstance().getAdditionalFilterButton({\n\t\t\t\t\t\t\tfieldId: fieldData.NAME,\n\t\t\t\t\t\t\tenabled: fieldData.ADDITIONAL_FILTER_ALLOWED,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tDom.append(button, dateGroup);\n\t\t\t\t\t}\n\n\t\t\t\t\tDom.insertAfter(dateGroup, group);\n\t\t\t\t\tDom.remove(group);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcreateNumber(options)\n\t{\n\t\tconst {\n\t\t\tnumberTypes,\n\t\t\tadditionalNumberTypes,\n\t\t} = this.parent;\n\t\tconst {ENABLE_LABEL} = this.parent.params;\n\t\tconst {\n\t\t\tSUB_TYPE = {},\n\t\t\tSUB_TYPES = [],\n\t\t\tTABINDEX = '',\n\t\t\tVALUES = {_from: '', _to: ''},\n\t\t\tLABEL = '',\n\t\t\tICON = null,\n\t\t\tTYPE,\n\t\t} = options;\n\n\t\tconst subType = SUB_TYPE.VALUE || numberTypes.SINGLE;\n\t\tconst placeholder = SUB_TYPE.PLACEHOLDER || '';\n\t\tconst fieldName = options.NAME.replace('_numsel', '');\n\t\tconst classes = (() => {\n\t\t\tif (ENABLE_LABEL)\n\t\t\t{\n\t\t\t\treturn [\n\t\t\t\t\t'main-ui-filter-wield-with-label',\n\t\t\t\t\t'main-ui-filter-number-group',\n\t\t\t\t];\n\t\t\t}\n\n\t\t\treturn ['main-ui-filter-number-group'];\n\t\t})();\n\n\t\tconst fieldGroup = {\n\t\t\tblock: 'number-group',\n\t\t\ttype: TYPE,\n\t\t\tmix: classes,\n\t\t\tlabel: ENABLE_LABEL ? LABEL : '',\n\t\t\ticon: ENABLE_LABEL ? ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\ttabindex: TABINDEX,\n\t\t\tvalue: SUB_TYPE,\n\t\t\titems: SUB_TYPES,\n\t\t\tname: fieldName,\n\t\t\tdeleteButton: true,\n\t\t\tcontent: [],\n\t\t};\n\n\t\tif (\n\t\t\tsubType !== numberTypes.LESS\n\t\t\t&& subType !== additionalNumberTypes.BEFORE_N\n\t\t)\n\t\t{\n\t\t\tconst from = {\n\t\t\t\tblock: 'main-ui-control-field',\n\t\t\t\ttype: TYPE,\n\t\t\t\tdragButton: false,\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-number',\n\t\t\t\t\tmix: ['filter-type-single'],\n\t\t\t\t\tcalendarButton: true,\n\t\t\t\t\tvalueDelete: true,\n\t\t\t\t\tplaceholder,\n\t\t\t\t\tname: `${fieldName}_from`,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t\tvalue: VALUES._from || '',\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tfieldGroup.content.push(from);\n\t\t}\n\n\t\tif (subType === numberTypes.RANGE)\n\t\t{\n\t\t\tconst line = {\n\t\t\t\tblock: 'main-ui-filter-field-line',\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-filter-field-line-item',\n\t\t\t\t\ttag: 'span',\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tfieldGroup.content.push(line);\n\t\t}\n\n\t\tif (\n\t\t\tsubType === numberTypes.RANGE\n\t\t\t|| subType === numberTypes.LESS\n\t\t\t|| subType === additionalNumberTypes.BEFORE_N\n\t\t)\n\t\t{\n\t\t\tconst to = {\n\t\t\t\tblock: 'main-ui-control-field',\n\t\t\t\ttype: TYPE,\n\t\t\t\tdragButton: false,\n\t\t\t\tcontent: {\n\t\t\t\t\tblock: 'main-ui-number',\n\t\t\t\t\tcalendarButton: true,\n\t\t\t\t\tvalueDelete: true,\n\t\t\t\t\tname: `${fieldName}_to`,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t\tvalue: VALUES._to || '',\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tfieldGroup.content.push(to);\n\t\t}\n\n\t\tconst field = BX.decl(fieldGroup);\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...options},\n\t\t\t\t\tnode: field,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn field;\n\t}\n\n\tcreateDate(options)\n\t{\n\t\tconst {\n\t\t\tdateTypes,\n\t\t\tadditionalDateTypes,\n\t\t} = this.parent;\n\t\tconst {\n\t\t\tSUB_TYPE = {},\n\t\t\tSUB_TYPES = [],\n\t\t\tPLACEHOLDER = '',\n\t\t\tVALUES = {\n\t\t\t\t_from: '',\n\t\t\t\t_to: '',\n\t\t\t\t_quarter: '',\n\t\t\t\t_days: '',\n\t\t\t\t_month: '',\n\t\t\t\t_year: '',\n\t\t\t\t_allow_year: '',\n\t\t\t},\n\t\t\tTABINDEX = '',\n\t\t\tENABLE_TIME = false,\n\t\t\tLABEL = '',\n\t\t\tICON = null,\n\t\t\tTYPE,\n\t\t\tVALUE_REQUIRED = false,\n\t\t\tREQUIRED = false,\n\t\t} = options;\n\t\tconst {ENABLE_LABEL} = this.parent.params;\n\n\t\tconst subType = SUB_TYPE.VALUE || dateTypes.NONE;\n\t\tconst fieldName = options.NAME.replace('_datesel', '');\n\t\tconst classes = (() => {\n\t\t\tif (ENABLE_LABEL)\n\t\t\t{\n\t\t\t\treturn [\n\t\t\t\t\t'main-ui-filter-wield-with-label',\n\t\t\t\t\t'main-ui-filter-date-group',\n\t\t\t\t];\n\t\t\t}\n\n\t\t\treturn ['main-ui-filter-date-group'];\n\t\t})();\n\n\t\tconst fieldGroup = {\n\t\t\tblock: 'date-group',\n\t\t\ttype: TYPE,\n\t\t\tmix: classes,\n\t\t\tlabel: ENABLE_LABEL ? LABEL : '',\n\t\t\ticon: ENABLE_LABEL ? ICON : null,\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_FIELD_TITLE'),\n\t\t\tdeleteTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_FIELD'),\n\t\t\ttabindex: TABINDEX,\n\t\t\tvalue: SUB_TYPE,\n\t\t\titems: SUB_TYPES,\n\t\t\tname: fieldName,\n\t\t\tenableTime: ENABLE_TIME,\n\t\t\tdeleteButton: true,\n\t\t\tcontent: [],\n\t\t};\n\n\t\tif (subType === dateTypes.EXACT)\n\t\t{\n\t\t\tconst fieldDecl = createDateInputDecl({\n\t\t\t\ttype: TYPE,\n\t\t\t\tname: `${fieldName.NAME}_from`,\n\t\t\t\tplaceholder: PLACEHOLDER,\n\t\t\t\ttabindex: TABINDEX,\n\t\t\t\tvalue: VALUES._from || '',\n\t\t\t\tenableTime: ENABLE_TIME,\n\t\t\t});\n\n\t\t\tfieldGroup.content.push(fieldDecl);\n\t\t}\n\n\t\tif (\n\t\t\tsubType === dateTypes.NEXT_DAYS\n\t\t\t|| subType === dateTypes.PREV_DAYS\n\t\t\t|| subType === additionalDateTypes.PREV_DAY\n\t\t\t|| subType === additionalDateTypes.NEXT_DAY\n\t\t\t|| subType === additionalDateTypes.MORE_THAN_DAYS_AGO\n\t\t\t|| subType === additionalDateTypes.AFTER_DAYS\n\t\t)\n\t\t{\n\t\t\tconst fieldDecl = createNumberInputDecl({\n\t\t\t\ttype: TYPE,\n\t\t\t\tname: `${fieldName}_days`,\n\t\t\t\ttabindex: TABINDEX,\n\t\t\t\tvalue: VALUES._days || '',\n\t\t\t\tplaceholder: PLACEHOLDER,\n\t\t\t});\n\n\t\t\tfieldGroup.content.push(fieldDecl);\n\t\t}\n\n\t\tif (subType === dateTypes.RANGE)\n\t\t{\n\t\t\tconst rangeGroup = {\n\t\t\t\tblock: 'main-ui-filter-range-group',\n\t\t\t\tcontent: [\n\t\t\t\t\tcreateDateInputDecl({\n\t\t\t\t\t\ttype: TYPE,\n\t\t\t\t\t\tname: `${fieldName}_from`,\n\t\t\t\t\t\tplaceholder: PLACEHOLDER,\n\t\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t\t\tvalue: VALUES._from || '',\n\t\t\t\t\t\tenableTime: ENABLE_TIME,\n\t\t\t\t\t}),\n\t\t\t\t\tcreateLineDecl(),\n\t\t\t\t\tcreateDateInputDecl({\n\t\t\t\t\t\ttype: TYPE,\n\t\t\t\t\t\tname: `${fieldName}_to`,\n\t\t\t\t\t\tplaceholder: PLACEHOLDER,\n\t\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t\t\tvalue: VALUES._to || '',\n\t\t\t\t\t\tenableTime: ENABLE_TIME,\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tfieldGroup.content.push(rangeGroup);\n\t\t}\n\n\t\tif (subType === dateTypes.MONTH)\n\t\t{\n\t\t\tconst {MONTHS, MONTH, YEARS, YEAR} = options;\n\n\t\t\tconst monthValue = (\n\t\t\t\tMONTHS.find((item) => {\n\t\t\t\t\treturn item.VALUE === VALUES._month;\n\t\t\t\t})\n\t\t\t\t|| MONTH\n\t\t\t\t|| MONTHS[0]\n\t\t\t);\n\n\t\t\tconst yearValue = (\n\t\t\t\tYEARS.find((item) => {\n\t\t\t\t\treturn item.VALUE === VALUES._year;\n\t\t\t\t})\n\t\t\t\t|| YEAR\n\t\t\t\t|| YEARS[0]\n\t\t\t);\n\n\t\t\tfieldGroup.content.push(\n\t\t\t\tcreateSelectDecl({\n\t\t\t\t\tname: `${fieldName}_month`,\n\t\t\t\t\tvalue: monthValue,\n\t\t\t\t\titems: MONTHS,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t}),\n\t\t\t\tcreateSelectDecl({\n\t\t\t\t\tname: `${fieldName}_year`,\n\t\t\t\t\tvalue: yearValue,\n\t\t\t\t\titems: YEARS,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (subType === dateTypes.QUARTER)\n\t\t{\n\t\t\tconst {YEARS, YEAR, QUARTERS, QUARTER, PARAMS} = options;\n\n\t\t\tconst yearValue = (\n\t\t\t\tYEARS.find((item) => {\n\t\t\t\t\treturn item.VALUE === VALUES._year;\n\t\t\t\t})\n\t\t\t\t|| YEAR\n\t\t\t\t|| YEARS[0]\n\t\t\t);\n\n\t\t\tconst quarterValue = (\n\t\t\t\tQUARTERS.find((item) => {\n\t\t\t\t\treturn item.VALUE === VALUES._quarter;\n\t\t\t\t})\n\t\t\t\t|| QUARTER\n\t\t\t\t|| QUARTERS[0]\n\t\t\t);\n\n\t\t\tfieldGroup.content.push(\n\t\t\t\tcreateSelectDecl({\n\t\t\t\t\tname: `${fieldName}_year`,\n\t\t\t\t\tvalue: yearValue,\n\t\t\t\t\titems: YEARS,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t}),\n\t\t\t\tcreateSelectDecl({\n\t\t\t\t\tname: `${fieldName}_quarter`,\n\t\t\t\t\tvalue: quarterValue,\n\t\t\t\t\titems: QUARTERS,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t\tparams: PARAMS,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (subType === dateTypes.YEAR)\n\t\t{\n\t\t\tconst {YEARS, YEAR} = options;\n\n\t\t\tconst yearValue = (\n\t\t\t\tYEARS.find((item) => {\n\t\t\t\t\treturn item.VALUE === VALUES._year;\n\t\t\t\t})\n\t\t\t\t|| YEAR\n\t\t\t\t|| YEARS[0]\n\t\t\t);\n\n\t\t\tfieldGroup.content.push(\n\t\t\t\tcreateSelectDecl({\n\t\t\t\t\tname: `${fieldName}_year`,\n\t\t\t\t\tvalue: yearValue,\n\t\t\t\t\titems: YEARS,\n\t\t\t\t\ttabindex: TABINDEX,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (subType === 'CUSTOM_DATE')\n\t\t{\n\t\t\tconst customDateSubType = SUB_TYPES.find((item) => {\n\t\t\t\treturn item.VALUE === 'CUSTOM_DATE';\n\t\t\t});\n\n\t\t\tif (customDateSubType)\n\t\t\t{\n\t\t\t\tconst customDateDecl = Runtime.clone(customDateSubType.DECL);\n\n\t\t\t\tif (Type.isArray(VALUES._days))\n\t\t\t\t{\n\t\t\t\t\tcustomDateDecl.VALUE.days = VALUES._days;\n\t\t\t\t}\n\n\t\t\t\tif (Type.isArray(VALUES._month))\n\t\t\t\t{\n\t\t\t\t\tcustomDateDecl.VALUE.months = VALUES._month;\n\t\t\t\t}\n\n\t\t\t\tif (Type.isArray(VALUES._year))\n\t\t\t\t{\n\t\t\t\t\tcustomDateDecl.VALUE.years = VALUES._year;\n\t\t\t\t}\n\n\t\t\t\tconst renderedField = this.createCustomDate(customDateDecl);\n\t\t\t\tDom.removeClass(renderedField, 'main-ui-filter-wield-with-label');\n\n\t\t\t\tconst buttons = [\n\t\t\t\t\t...renderedField\n\t\t\t\t\t\t.querySelectorAll('.main-ui-item-icon-container, .main-ui-filter-icon-grab'),\n\t\t\t\t];\n\n\t\t\t\tbuttons.forEach((button) => Dom.remove(button));\n\n\t\t\t\tfieldGroup.content.push(renderedField);\n\t\t\t\tfieldGroup.mix.push('main-ui-filter-custom-date-group');\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tsubType !== dateTypes.NONE\n\t\t\t&& subType !== additionalDateTypes.CUSTOM_DATE\n\t\t\t&& options.YEARS_SWITCHER\n\t\t)\n\t\t{\n\t\t\tconst YEARS_SWITCHER = Runtime.clone(options.YEARS_SWITCHER);\n\t\t\tconst {ITEMS} = YEARS_SWITCHER;\n\n\t\t\tYEARS_SWITCHER.VALUE = ITEMS.reduce((acc, item) => {\n\t\t\t\treturn item.VALUE === VALUES._allow_year ? item : acc;\n\t\t\t});\n\n\t\t\tconst renderedField = this.createSelect(YEARS_SWITCHER);\n\n\t\t\tDom.addClass(renderedField, ['main-ui-filter-year-switcher', 'main-ui-filter-with-padding']);\n\t\t\tDom.removeClass(renderedField, 'main-ui-filter-wield-with-label');\n\n\t\t\tconst buttons = [\n\t\t\t\t...renderedField\n\t\t\t\t\t.querySelectorAll('.main-ui-item-icon-container, .main-ui-filter-icon-grab'),\n\t\t\t];\n\n\t\t\tbuttons.forEach((button) => Dom.remove(button));\n\n\t\t\tconst lastIndex = fieldGroup.content.length - 1;\n\t\t\tconst lastContentItem = fieldGroup.content[lastIndex];\n\n\t\t\tif (Type.isPlainObject(lastContentItem))\n\t\t\t{\n\t\t\t\tif (!Type.isArray(lastContentItem.mix))\n\t\t\t\t{\n\t\t\t\t\tlastContentItem.mix = [];\n\t\t\t\t}\n\n\t\t\t\tlastContentItem.mix.push('main-ui-filter-remove-margin-right');\n\t\t\t}\n\n\t\t\tif (Type.isDomNode(lastContentItem))\n\t\t\t{\n\t\t\t\tDom.addClass(lastContentItem, 'main-ui-filter-remove-margin-right');\n\t\t\t}\n\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tDom.addClass(renderedField.previousElementSibling, 'main-ui-filter-remove-margin-right');\n\t\t\t});\n\n\t\t\tfieldGroup.content.push(renderedField);\n\t\t\tfieldGroup.mix.push('main-ui-filter-date-with-years-switcher');\n\t\t}\n\n\t\tconst renderedFieldGroup = BX.decl(fieldGroup);\n\t\tconst onDateChange = Runtime.debounce(this.onDateChange, 500, this);\n\n\t\tconst inputs = [\n\t\t\t...renderedFieldGroup\n\t\t\t\t.querySelectorAll('.main-ui-date-input'),\n\t\t];\n\n\t\tinputs\n\t\t\t.forEach((input) => {\n\t\t\t\tinput.addEventListener('change', onDateChange);\n\t\t\t\tinput.addEventListener('input', onDateChange);\n\n\t\t\t\tconst {parentNode} = input;\n\t\t\t\tconst clearButton = parentNode.querySelector('.main-ui-control-value-delete');\n\n\t\t\t\tif (clearButton)\n\t\t\t\t{\n\t\t\t\t\tclearButton.addEventListener('click', () => {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tthis.onDateChange({target: input});\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\tif (VALUE_REQUIRED)\n\t\t{\n\t\t\trenderedFieldGroup.dataset.valueRequired = true;\n\n\t\t\tconst allInputs = [\n\t\t\t\t...inputs,\n\t\t\t\t...renderedFieldGroup\n\t\t\t\t\t.querySelectorAll('.main-ui-number-input'),\n\t\t\t];\n\n\t\t\tallInputs\n\t\t\t\t.forEach((input) => {\n\t\t\t\t\tinput.addEventListener('change', this.checkRequiredDateValue.bind(this));\n\t\t\t\t\tinput.addEventListener('input', this.checkRequiredDateValue.bind(this));\n\n\t\t\t\t\tconst {parentNode} = input;\n\t\t\t\t\tconst clearButton = parentNode.querySelector('.main-ui-control-value-delete');\n\n\t\t\t\t\tif (clearButton)\n\t\t\t\t\t{\n\t\t\t\t\t\tclearButton.addEventListener('click', () => {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tthis.checkRequiredDateValue({target: input});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tEvent.bindOnce(input, 'mouseout', () => {\n\t\t\t\t\t\tthis.checkRequiredDateValue({target: input});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\n\t\tif (REQUIRED)\n\t\t{\n\t\t\tconst removeButton = renderedFieldGroup\n\t\t\t\t.querySelector('.main-ui-filter-field-delete');\n\n\t\t\tif (removeButton)\n\t\t\t{\n\t\t\t\tBX.remove(removeButton);\n\t\t\t}\n\t\t}\n\n\t\tconst currentValues = {};\n\t\tthis.parent.prepareControlDateValue(currentValues, fieldName, renderedFieldGroup);\n\n\t\tObject.entries(currentValues).forEach(([key, value]) => {\n\t\t\tcurrentValues[key.replace(fieldName, '')] = value;\n\t\t\tdelete currentValues[key];\n\t\t});\n\n\t\tthis.parent.getEmitter().emit(\n\t\t\t'init',\n\t\t\t{\n\t\t\t\tfield: new Field({\n\t\t\t\t\tparent: this.parent,\n\t\t\t\t\toptions: {...options, VALUES: currentValues},\n\t\t\t\t\tnode: renderedFieldGroup,\n\t\t\t\t}),\n\t\t\t},\n\t\t);\n\n\t\treturn renderedFieldGroup;\n\t}\n\n\tcheckRequiredDateValue(event)\n\t{\n\t\tif (event.target.value === '')\n\t\t{\n\t\t\tthis.showError({\n\t\t\t\tid: 'valueError',\n\t\t\t\ttarget: event.target,\n\t\t\t\ttext: this.parent.params.MAIN_UI_FILTER__VALUE_REQUIRED,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hideError({\n\t\t\tid: 'valueError',\n\t\t\ttarget: event.target,\n\t\t});\n\t}\n\n\tonDateChange(event)\n\t{\n\t\tif (values.get(event.target) === event.target.value)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvalues.set(event.target, event.target.value);\n\n\t\tif (event.target.value === '')\n\t\t{\n\t\t\tthis.hideError({\n\t\t\t\tid: 'formatError',\n\t\t\t\ttarget: event.target,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tBX.ajax\n\t\t\t.runComponentAction(\n\t\t\t\t'bitrix:main.ui.filter',\n\t\t\t\t'checkDateFormat',\n\t\t\t\t{\n\t\t\t\t\tmode: 'ajax',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tvalue: event.target.value,\n\t\t\t\t\t\tformat: BX.message('FORMAT_DATETIME'),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t\t.then((result) => {\n\t\t\t\tif (!result.data.result)\n\t\t\t\t{\n\t\t\t\t\tthis.showError({\n\t\t\t\t\t\tid: 'formatError',\n\t\t\t\t\t\ttarget: event.target,\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.hideError({\n\t\t\t\t\tid: 'formatError',\n\t\t\t\t\ttarget: event.target,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tshowError({id, target, text = null})\n\t{\n\t\tDom.style(target, 'border-color', '#FF5752');\n\n\t\tif (\n\t\t\terrorMessages.has(target)\n\t\t\t&& errorMessagesTypes.get(target) === id\n\t\t)\n\t\t{\n\t\t\tDom.remove(errorMessages.get(target));\n\t\t}\n\n\t\tconst {\n\t\t\tMAIN_UI_FILTER__DATE_ERROR_TITLE,\n\t\t\tMAIN_UI_FILTER__DATE_ERROR_LABEL,\n\t\t} = this.parent.params;\n\n\t\tconst errorText = text || `${MAIN_UI_FILTER__DATE_ERROR_LABEL} ${Loc.getMessage('FORMAT_DATE')}`;\n\n\t\tconst dateErrorMessage = Tag.render`\n\t\t\t<div \n\t\t\t\tclass=\"main-ui-filter-error-message\" \n\t\t\t\ttitle=\"${MAIN_UI_FILTER__DATE_ERROR_TITLE}\">\n\t\t\t\t${errorText}\n\t\t\t</div>\n\t\t`;\n\n\t\terrorMessages.set(target, dateErrorMessage);\n\t\terrorMessagesTypes.set(target, id);\n\n\t\tDom.insertAfter(dateErrorMessage, target);\n\t\tDom.attr(target, 'is-valid', 'false');\n\t}\n\n\thideError({id, target})\n\t{\n\t\tDom.style(target, 'border-color', null);\n\n\t\tif (\n\t\t\terrorMessages.has(target)\n\t\t\t&& errorMessagesTypes.get(target) === id\n\t\t)\n\t\t{\n\t\t\tDom.remove(errorMessages.get(target));\n\t\t}\n\n\t\tDom.attr(target, 'is-valid', 'true');\n\t}\n}","/* eslint-disable no-underscore-dangle */\n/* eslint-disable class-methods-use-this */\nimport {Type, Dom, Text, Runtime, Event, Tag} from 'main.core';\nimport 'ui.icons.service';\nimport {AdditionalFilter} from './additional-filter';\n\nexport class Presets\n{\n\tconstructor(parent)\n\t{\n\t\tthis.parent = null;\n\t\tthis.presets = null;\n\t\tthis.container = null;\n\t\tthis.init(parent);\n\t}\n\n\tinit(parent)\n\t{\n\t\tthis.parent = parent;\n\t}\n\n\tbindOnPresetClick()\n\t{\n\t\t(this.getPresets() || []).forEach((current) => {\n\t\t\tEvent.bind(current, 'click', BX.delegate(this._onPresetClick, this));\n\t\t});\n\t}\n\n\t/**\n\t * Gets add preset field\n\t * @return {?HTMLElement}\n\t */\n\tgetAddPresetField()\n\t{\n\t\treturn this.getContainer().querySelector('.main-ui-filter-new-filter');\n\t}\n\n\n\t/**\n\t * Gets add preset name input\n\t * @return {?HTMLInputElement}\n\t */\n\tgetAddPresetFieldInput()\n\t{\n\t\treturn this.getAddPresetField().querySelector('.main-ui-filter-sidebar-edit-control');\n\t}\n\n\n\t/**\n\t * Clears add preset input value\n\t */\n\tclearAddPresetFieldInput()\n\t{\n\t\tconst input = this.getAddPresetFieldInput();\n\n\t\tif (Type.isDomNode(input))\n\t\t{\n\t\t\tinput.value = '';\n\t\t}\n\t}\n\n\n\t/**\n\t * Finds preset node by child node\n\t * @param {?HTMLElement} node\n\t * @return {?HTMLElement}\n\t */\n\tnormalizePreset(node)\n\t{\n\t\treturn node.closest('.main-ui-filter-sidebar-item');\n\t}\n\n\n\t/**\n\t * Deactivates all presets\n\t */\n\tdeactivateAllPresets()\n\t{\n\t\tthis.getPresets().forEach((current) => {\n\t\t\tDom.removeClass(current, 'main-ui-filter-current-item');\n\t\t});\n\t}\n\n\t/**\n\t * Creates sidebar preset item\n\t * @param {string} id - Preset id\n\t * @param {string} title - Preset title\n\t * @param {boolean} [isPinned] - Pass true is preset pinned\n\t */\n\tcreateSidebarItem(id, title, isPinned)\n\t{\n\t\treturn BX.decl({\n\t\t\tblock: 'sidebar-item',\n\t\t\ttext: Text.decode(title),\n\t\t\tid,\n\t\t\tpinned: isPinned,\n\t\t\tnoEditPinTitle: this.parent.getParam('MAIN_UI_FILTER__IS_SET_AS_DEFAULT_PRESET'),\n\t\t\teditNameTitle: this.parent.getParam('MAIN_UI_FILTER__EDIT_PRESET_TITLE'),\n\t\t\tremoveTitle: this.parent.getParam('MAIN_UI_FILTER__REMOVE_PRESET'),\n\t\t\teditPinTitle: this.parent.getParam('MAIN_UI_FILTER__SET_AS_DEFAULT_PRESET'),\n\t\t\tdragTitle: this.parent.getParam('MAIN_UI_FILTER__DRAG_TITLE'),\n\t\t});\n\t}\n\n\n\t/**\n\t * Highlights preset node as active\n\t * @param {?HTMLElement|string} preset - preset node or preset id\n\t */\n\tactivatePreset(preset)\n\t{\n\t\tthis.deactivateAllPresets();\n\n\t\tconst presetNode = (() => {\n\t\t\tif (Type.isString(preset))\n\t\t\t{\n\t\t\t\treturn this.getPresetNodeById(preset);\n\t\t\t}\n\n\t\t\treturn preset;\n\t\t})();\n\n\t\tif (Type.isDomNode(presetNode))\n\t\t{\n\t\t\tDom.addClass(presetNode, 'main-ui-filter-current-item');\n\t\t}\n\t}\n\n\n\t/**\n\t * Gets preset node by preset id\n\t * @param {string} id\n\t * @return {?HTMLElement}\n\t */\n\tgetPresetNodeById(id)\n\t{\n\t\treturn this.getPresets().find((current) => {\n\t\t\treturn Dom.attr(current, 'data-id') === id;\n\t\t});\n\t}\n\n\n\t/**\n\t * Gets preset id by preset node\n\t * @param {?HTMLElement} preset\n\t */\n\tgetPresetId(preset)\n\t{\n\t\treturn Dom.attr(preset, 'data-id');\n\t}\n\n\n\t/**\n\t * Updates preset name\n\t * @param {?HTMLElement} presetNode\n\t * @param {string} name\n\t */\n\tupdatePresetName(presetNode, name)\n\t{\n\t\tif (Type.isDomNode(presetNode) && Type.isString(name) && name !== '')\n\t\t{\n\t\t\tconst nameNode = this.getPresetNameNode(presetNode);\n\n\t\t\tif (Type.isDomNode(nameNode))\n\t\t\t{\n\t\t\t\tRuntime.html(nameNode, name);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Removes preset\n\t * @param {HTMLElement} presetNode\n\t * @param {string} presetId\n\t * @param {boolean} isDefault\n\t */\n\tremovePreset(presetNode, presetId, isDefault)\n\t{\n\t\tconst currentPresetId = this.getCurrentPresetId();\n\t\tlet newPresets = [];\n\t\tconst postData = {\n\t\t\tpreset_id: presetId,\n\t\t\tis_default: isDefault,\n\t\t};\n\n\t\tconst getData = {\n\t\t\tFILTER_ID: this.parent.getParam('FILTER_ID'),\n\t\t\taction: 'REMOVE_FILTER',\n\t\t};\n\n\t\tthis.parent.saveOptions(postData, getData);\n\t\tBX.remove(presetNode);\n\n\t\tif (BX.type.isArray(this.parent.params.PRESETS))\n\t\t{\n\t\t\tnewPresets = this.parent.params.PRESETS.filter((current) => {\n\t\t\t\treturn current.ID !== presetId;\n\t\t\t}, this);\n\n\t\t\tthis.parent.params.PRESETS = newPresets;\n\t\t}\n\n\t\tif (BX.type.isArray(this.parent.editablePresets))\n\t\t{\n\t\t\tnewPresets = this.parent.editablePresets.filter((current) => {\n\t\t\t\treturn current.ID !== presetId;\n\t\t\t}, this);\n\n\t\t\tthis.parent.editablePresets = newPresets;\n\t\t}\n\n\t\tif (presetId === currentPresetId)\n\t\t{\n\t\t\tthis.parent.getSearch().removePreset();\n\t\t\tthis.resetPreset();\n\t\t}\n\t}\n\n\n\t/**\n\t * Pin preset (Sets as default preset)\n\t * @param {string} presetId\n\t */\n\tpinPreset(presetId)\n\t{\n\t\tif (!BX.type.isNotEmptyString(presetId))\n\t\t{\n\t\t\tpresetId = 'default_filter';\n\t\t}\n\n\t\tconst presetNode = this.getPresetNodeById(presetId);\n\n\t\tif (this.parent.getParam('VALUE_REQUIRED_MODE'))\n\t\t{\n\t\t\tif (presetId === 'default_filter')\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst params = {FILTER_ID: this.parent.getParam('FILTER_ID'), GRID_ID: this.parent.getParam('GRID_ID'), action: 'PIN_PRESET'};\n\t\tconst data = {preset_id: presetId};\n\n\t\tthis.getPresets().forEach(function(current) {\n\t\t\tDom.removeClass(current, this.parent.settings.classPinnedPreset);\n\t\t}, this);\n\n\t\tBX.addClass(presetNode, this.parent.settings.classPinnedPreset);\n\n\t\tthis.parent.saveOptions(data, params);\n\t}\n\n\t_onPresetClick(event) {\n\t\tlet presetNode; let presetId; let presetData; let isDefault; let target; let settings; let\n\t\t\tparent;\n\n\t\tevent.preventDefault();\n\n\t\tparent = this.parent;\n\t\tsettings = parent.settings;\n\t\ttarget = event.target;\n\t\tpresetNode = event.currentTarget;\n\t\tpresetId = this.getPresetId(presetNode);\n\t\tpresetData = this.getPreset(presetId);\n\n\t\tif (Dom.hasClass(target, settings.classPinButton))\n\t\t{\n\t\t\tif (this.parent.isEditEnabled())\n\t\t\t{\n\t\t\t\tif (Dom.hasClass(presetNode, settings.classPinnedPreset))\n\t\t\t\t{\n\t\t\t\t\tthis.pinPreset('default_filter');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.pinPreset(presetId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (Dom.hasClass(target, settings.classPresetEditButton))\n\t\t{\n\t\t\tthis.enableEditPresetName(presetNode);\n\t\t}\n\n\t\tif (Dom.hasClass(target, settings.classPresetDeleteButton))\n\t\t{\n\t\t\tisDefault = 'IS_DEFAULT' in presetData ? presetData.IS_DEFAULT : false;\n\t\t\tthis.removePreset(presetNode, presetId, isDefault);\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!Dom.hasClass(target, settings.classPresetDragButton)\n\t\t\t&& !Dom.hasClass(target, settings.classAddPresetFieldInput))\n\t\t{\n\t\t\tif (this.parent.isEditEnabled())\n\t\t\t{\n\t\t\t\tthis.updateEditablePreset(this.getCurrentPresetId());\n\t\t\t}\n\n\t\t\tconst currentPreset = this.getPreset(this.getCurrentPresetId());\n\t\t\tconst preset = this.getPreset(presetId);\n\t\t\tcurrentPreset.ADDITIONAL = [];\n\t\t\tpreset.ADDITIONAL = [];\n\n\t\t\tthis.activatePreset(presetNode);\n\t\t\tthis.applyPreset(presetId);\n\n\t\t\tif (!this.parent.isEditEnabled())\n\t\t\t{\n\t\t\t\tparent.applyFilter(null, true);\n\n\t\t\t\tif (event.isTrusted)\n\t\t\t\t{\n\t\t\t\t\tparent.closePopup();\n\t\t\t\t}\n\n\t\t\t\tif (parent.isAddPresetEnabled())\n\t\t\t\t{\n\t\t\t\t\tparent.disableAddPreset();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Applies default preset\n\t * @return {BX.Promise}\n\t */\n\tapplyPinnedPreset()\n\t{\n\t\tconst Filter = this.parent;\n\t\tconst isPinned = this.isPinned(this.getCurrentPresetId());\n\t\tlet promise;\n\n\t\tif (this.parent.getParam('VALUE_REQUIRED')\n\t\t\t&& this.getPinnedPresetId() === 'default_filter')\n\t\t{\n\t\t\tthis.applyPreset('default_filter');\n\t\t\tthis.deactivateAllPresets();\n\t\t\tpromise = this.parent.applyFilter();\n\t\t}\n\t\telse\n\t\tif (!isPinned)\n\t\t{\n\t\t\tconst pinnedPresetId = this.getPinnedPresetId();\n\t\t\tconst presetData = this.getPreset(pinnedPresetId);\n\t\t\tpresetData.ADDITIONAL = [];\n\n\t\t\tconst pinnedPresetNode = this.getPinnedPresetNode();\n\t\t\tconst clear = false;\n\t\t\tconst applyPreset = true;\n\n\t\t\tthis.deactivateAllPresets();\n\t\t\tthis.activatePreset(pinnedPresetNode);\n\t\t\tthis.applyPreset(pinnedPresetId);\n\t\t\tpromise = Filter.applyFilter(clear, applyPreset);\n\t\t\tFilter.closePopup();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tpromise = Filter.resetFilter();\n\t\t}\n\n\n\t\treturn promise;\n\t}\n\n\n\t/**\n\t * Updates editable presets\n\t * @param {string} presetId\n\t */\n\tupdateEditablePreset(presetId)\n\t{\n\t\tconst fields = this.parent.getFilterFieldsValues();\n\t\tconst presetRows = this.getFields().map((curr) => { return BX.data(curr, 'name'); });\n\t\tconst presetFields = this.parent.preparePresetFields(fields, presetRows);\n\t\tconst preset = this.getPreset(presetId);\n\n\t\tpreset.FIELDS = presetFields;\n\t\tpreset.TITLE = this.getPresetInput(this.getPresetNodeById(presetId)).value;\n\t\tpreset.ROWS = presetRows;\n\t}\n\n\n\t/**\n\t * Gets preset input node\n\t * @param presetNode\n\t * @return {?HTMLInputElement}\n\t */\n\tgetPresetInput(presetNode)\n\t{\n\t\treturn BX.Filter.Utils.getByClass(presetNode, this.parent.settings.classPresetEditInput);\n\t}\n\n\n\t/**\n\t * Enable edit preset name\n\t * @param {HTMLElement} presetNode\n\t */\n\tenableEditPresetName(presetNode)\n\t{\n\t\tconst input = this.getPresetInput(presetNode);\n\n\t\tBX.addClass(presetNode, this.parent.settings.classPresetNameEdit);\n\t\tinput.select();\n\t\t// noinspection SillyAssignmentJS\n\t\tinput.value = BX.util.htmlspecialcharsback(input.value);\n\t\tEvent.bind(input, 'input', BX.delegate(this._onPresetNameInput, this));\n\t}\n\n\t_onPresetNameInput(event)\n\t{\n\t\tconst Search = this.parent.getSearch();\n\t\tconst inputValue = event.currentTarget.value;\n\t\tconst presetNode = BX.findParent(event.currentTarget, {className: this.parent.settings.classPreset}, true, false);\n\t\tconst presetId = this.getPresetId(presetNode);\n\t\tconst currentPresetId = this.getCurrentPresetId();\n\t\tconst data = {ID: presetId, TITLE: inputValue};\n\n\t\tif (presetId === currentPresetId)\n\t\t{\n\t\t\tSearch.updatePreset(data);\n\t\t}\n\t}\n\n\n\t/**\n\t * Gets preset name node element\n\t * @param {HTMLElement} presetNode\n\t * @return {?HTMLElement}\n\t */\n\tgetPresetNameNode(presetNode)\n\t{\n\t\treturn BX.Filter.Utils.getByClass(presetNode, this.parent.settings.classPresetName);\n\t}\n\n\n\t/**\n\t * Disable edit name for preset\n\t * @param {HTMLElement} presetNode\n\t */\n\tdisableEditPresetName(presetNode)\n\t{\n\t\tconst input = this.getPresetInput(presetNode);\n\n\t\tDom.removeClass(presetNode, this.parent.settings.classPresetNameEdit);\n\n\t\tif (BX.type.isDomNode(input))\n\t\t{\n\t\t\tinput.blur();\n\t\t\tBX.unbind(input, 'input', BX.delegate(this._onPresetNameInput, this));\n\t\t}\n\t}\n\n\n\t/**\n\t * Gets preset object\n\t * @param {string} presetId\n\t * @param {boolean} [isDefault = false] - gets from default presets collection\n\t * @return {?object}\n\t */\n\tgetPreset(presetId, isDefault)\n\t{\n\t\tlet presets = this.parent.getParam(isDefault ? 'DEFAULT_PRESETS' : 'PRESETS', []);\n\n\t\tif (this.parent.isEditEnabled() && !isDefault)\n\t\t{\n\t\t\tpresets = this.parent.editablePresets;\n\t\t}\n\n\t\tconst filtered = presets.filter((current) => {\n\t\t\treturn current.ID === presetId;\n\t\t});\n\n\t\tif (presetId === 'tmp_filter' && !filtered.length)\n\t\t{\n\t\t\tconst tmpPreset = BX.clone(this.getPreset('default_filter'));\n\t\t\ttmpPreset.ID = 'tmp_filter';\n\t\t\tpresets.push(tmpPreset);\n\t\t\tfiltered.push(tmpPreset);\n\t\t}\n\n\t\treturn filtered.length !== 0 ? filtered[0] : null;\n\t}\n\n\n\t/**\n\t * Gets preset field by preset name (id)\n\t * @param {string} presetId\n\t * @param {string} fieldName\n\t * @return {?object}\n\t */\n\tgetPresetField(presetId, fieldName)\n\t{\n\t\tconst preset = this.getPreset(presetId);\n\t\tlet field = null;\n\n\t\tif (BX.type.isPlainObject(preset) && 'FIELDS' in preset && BX.type.isArray(preset.FIELDS))\n\t\t{\n\t\t\tfield = preset.FIELDS.filter((current) => {\n\t\t\t\treturn current.NAME === fieldName;\n\t\t\t});\n\n\t\t\tfield = field.length ? field[0] : null;\n\t\t}\n\n\t\treturn field;\n\t}\n\n\n\t/**\n\t * Applies preset by id\n\t * @param {string} presetId\n\t * @param {boolean} [noValues = false]\n\t */\n\tapplyPreset(presetId, noValues)\n\t{\n\t\tpresetId = noValues ? 'default_filter' : presetId || 'default_filter';\n\n\t\tlet preset = this.getPreset(presetId);\n\n\t\tif (presetId !== 'default_preset')\n\t\t{\n\t\t\tpreset = this.extendPreset(preset);\n\t\t}\n\n\t\tthis.parent.getSearch().updatePreset(preset);\n\t\tthis.updatePresetFields(preset, noValues);\n\n\t\tBX.onCustomEvent('BX.Main.Filter:onApplyPreset', [presetId]);\n\t}\n\n\n\t/**\n\t * Extends preset\n\t * @param {object} preset\n\t * @return {object}\n\t */\n\textendPreset(preset)\n\t{\n\t\tconst defaultPreset = BX.clone(this.getPreset('default_filter'));\n\n\t\tif (BX.type.isPlainObject(preset))\n\t\t{\n\t\t\tpreset = BX.clone(preset);\n\t\t\tpreset.FIELDS.forEach(function(curr) {\n\t\t\t\tlet index;\n\t\t\t\tconst someField = defaultPreset.FIELDS.some((defCurr, defIndex) => {\n\t\t\t\t\tlet result = false;\n\n\t\t\t\t\tif (defCurr.NAME === curr.NAME)\n\t\t\t\t\t{\n\t\t\t\t\t\tindex = defIndex;\n\t\t\t\t\t\tresult = true;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn result;\n\t\t\t\t}, this);\n\n\t\t\t\tif (someField && index || someField && index === 0)\n\t\t\t\t{\n\t\t\t\t\tdefaultPreset.FIELDS[index] = curr;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\tif (!this.isEmptyField(curr))\n\t\t\t\t{\n\t\t\t\t\tdefaultPreset.FIELDS.push(curr);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tpreset.FIELDS = defaultPreset.FIELDS;\n\t\t}\n\n\t\treturn preset;\n\t}\n\n\n\t/**\n\t * Checks field is empty\n\t * @param {object} field\n\t * @return {boolean}\n\t */\n\tisEmptyField(field)\n\t{\n\t\tlet result = true;\n\n\t\tif (Type.isStringFilled(field.ADDITIONAL_FILTER))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.STRING)\n\t\t{\n\t\t\tif (field.VALUE && field.VALUE.length)\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.SELECT)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(field.VALUE) && 'VALUE' in field.VALUE && field.VALUE.VALUE)\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.MULTI_SELECT)\n\t\t{\n\t\t\tif (BX.type.isArray(field.VALUE) && field.VALUE.length)\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.CUSTOM_DATE)\n\t\t{\n\t\t\tif (\n\t\t\t\t(BX.type.isArray(field.VALUE.days) && field.VALUE.days.length)\n\t\t\t\t|| (BX.type.isArray(field.VALUE.months) && field.VALUE.months.length)\n\t\t\t\t|| (BX.type.isArray(field.VALUE.years) && field.VALUE.years.length)\n\t\t\t)\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tfield.TYPE === this.parent.types.CUSTOM_ENTITY\n\t\t\t|| field.TYPE === this.parent.types.DEST_SELECTOR\n\t\t\t|| field.TYPE === this.parent.types.ENTITY_SELECTOR\n\t\t)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(field.VALUES))\n\t\t\t{\n\t\t\t\tif (BX.type.isNotEmptyString(field.VALUES._label) && BX.type.isNotEmptyString(field.VALUES._value))\n\t\t\t\t{\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\n\t\t\t\tif (BX.type.isPlainObject(field.VALUES._label)\n\t\t\t\t\t&& BX.type.isPlainObject(field.VALUES._value)\n\t\t\t\t\t&& Object.keys(field.VALUES._label).length\n\t\t\t\t\t&& Object.keys(field.VALUES._value).length)\n\t\t\t\t{\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\n\t\t\t\tif (BX.type.isArray(field.VALUES._label)\n\t\t\t\t\t&& BX.type.isArray(field.VALUES._value)\n\t\t\t\t\t&& field.VALUES._label.length\n\t\t\t\t\t&& field.VALUES._value.length)\n\t\t\t\t{\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(\n\t\t\t\t\t\t(BX.type.isArray(field.VALUES._label) && field.VALUES._label.length)\n\t\t\t\t\t\t|| (BX.type.isPlainObject(field.VALUES._label) && Object.keys(field.VALUES._label).length)\n\t\t\t\t\t)\n\t\t\t\t\t&& (\n\t\t\t\t\t\t(BX.type.isArray(field.VALUES._value) && field.VALUES._value.length)\n\t\t\t\t\t\t|| (BX.type.isPlainObject(field.VALUES._value) && Object.keys(field.VALUES._value).length)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.DATE)\n\t\t{\n\t\t\tconst datesel = '_datesel' in field.VALUES ? field.VALUES._datesel : field.SUB_TYPE.VALUE;\n\n\t\t\tif (BX.type.isPlainObject(field.VALUES)\n\t\t\t\t&& (field.VALUES._from || field.VALUES._to || field.VALUES._quarter\n\t\t\t\t|| (field.VALUES._month && !BX.type.isArray(field.VALUES._month))\n\t\t\t\t|| (field.VALUES._year && !BX.type.isArray(field.VALUES._year))\n\t\t\t\t|| (field.VALUES._days) && !BX.type.isArray(field.VALUES._days))\n\t\t\t\t|| (BX.type.isArray(field.VALUES._days) && field.VALUES._days.length)\n\t\t\t\t|| (BX.type.isArray(field.VALUES._month) && field.VALUES._month.length)\n\t\t\t\t|| (BX.type.isArray(field.VALUES._year) && field.VALUES._year.length)\n\t\t\t\t|| (\n\t\t\t\t\tdatesel === this.parent.dateTypes.CURRENT_DAY\n\t\t\t\t\t|| datesel === this.parent.dateTypes.CURRENT_WEEK\n\t\t\t\t\t|| datesel === this.parent.dateTypes.CURRENT_MONTH\n\t\t\t\t\t|| datesel === this.parent.dateTypes.CURRENT_QUARTER\n\t\t\t\t\t|| datesel === this.parent.dateTypes.LAST_7_DAYS\n\t\t\t\t\t|| datesel === this.parent.dateTypes.LAST_30_DAYS\n\t\t\t\t\t|| datesel === this.parent.dateTypes.LAST_60_DAYS\n\t\t\t\t\t|| datesel === this.parent.dateTypes.LAST_90_DAYS\n\t\t\t\t\t|| datesel === this.parent.dateTypes.LAST_WEEK\n\t\t\t\t\t|| datesel === this.parent.dateTypes.LAST_MONTH\n\t\t\t\t\t|| datesel === this.parent.dateTypes.TOMORROW\n\t\t\t\t\t|| datesel === this.parent.dateTypes.YESTERDAY\n\t\t\t\t\t|| datesel === this.parent.dateTypes.NEXT_WEEK\n\t\t\t\t\t|| datesel === this.parent.dateTypes.NEXT_MONTH\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.NUMBER)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(field.VALUES) && (field.VALUES._from || field.VALUES._to))\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\tif (field.TYPE === this.parent.types.CHECKBOX)\n\t\t{\n\t\t\tif (BX.type.isPlainObject(field.VALUE) && field.VALUE.VALUE)\n\t\t\t{\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\n\t/**\n\t * Resets preset\n\t * @param {boolean} [noValues]\n\t */\n\tresetPreset(noValues)\n\t{\n\t\tthis.applyPreset('', noValues);\n\t}\n\n\n\t/**\n\t * Gets preset fields elements\n\t * @return {?HTMLElement[]}\n\t */\n\tgetFields()\n\t{\n\t\tconst container = this.parent.getFieldListContainer();\n\t\tlet fields = null;\n\n\t\tif (BX.type.isDomNode(container))\n\t\t{\n\t\t\tfields = BX.Filter.Utils.getBySelector(container.parentNode, `.${this.parent.settings.classFileldControlList} > div`, true);\n\t\t}\n\n\t\treturn fields;\n\t}\n\n\n\t/**\n\t * Gets field element by field object\n\t * @param {object} fieldData\n\t * @return {?HTMLElement}\n\t */\n\tgetField(fieldData)\n\t{\n\t\tconst fields = this.getFields();\n\t\tlet field = null;\n\t\tlet tmpName; let\n\t\t\tfiltered;\n\n\t\tif (BX.type.isArray(fields) && fields.length)\n\t\t{\n\t\t\tfiltered = fields.filter((current) => {\n\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t{\n\t\t\t\t\ttmpName = BX.data(current, 'name');\n\t\t\t\t}\n\t\t\t\treturn tmpName === fieldData.NAME;\n\t\t\t}, this);\n\n\t\t\tfield = filtered.length > 0 ? filtered[0] : null;\n\t\t}\n\n\t\treturn field;\n\t}\n\n\n\t/**\n\t * Removes field element by field object\n\t * @param {object} field\n\t * @param {boolean} disableSaveFieldsSort\n\t */\n\tremoveField(field, disableSaveFieldsSort)\n\t{\n\t\tlet index; let\n\t\t\tfieldName;\n\t\tdisableSaveFieldsSort = disableSaveFieldsSort || false;\n\n\t\tif (BX.type.isPlainObject(field))\n\t\t{\n\t\t\tfieldName = field.NAME;\n\t\t\tfield = this.getField(field);\n\n\t\t\tif (BX.type.isArray(this.parent.fieldsList))\n\t\t\t{\n\t\t\t\tindex = this.parent.fieldsList.indexOf(field);\n\n\t\t\t\tif (index !== -1)\n\t\t\t\t{\n\t\t\t\t\tdelete this.parent.fieldsList[index];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.parent.unregisterDragItem(field);\n\t\t}\n\n\t\tif (BX.type.isDomNode(field))\n\t\t{\n\t\t\tfieldName = BX.data(field, 'name');\n\t\t\tthis.parent.getFields().deleteField(field);\n\t\t}\n\n\t\tif (!this.parent.isEditEnabled() && !this.parent.isAddPresetEnabled())\n\t\t{\n\t\t\tconst currentPresetId = this.getCurrentPresetId();\n\t\t\tconst currentPresetField = this.getPresetField(currentPresetId, fieldName);\n\n\t\t\tif (currentPresetField && !this.isEmptyField(currentPresetField))\n\t\t\t{\n\t\t\t\tthis.deactivateAllPresets();\n\t\t\t\tthis.parent.applyFilter();\n\t\t\t}\n\t\t}\n\n\t\tif (!disableSaveFieldsSort)\n\t\t{\n\t\t\tthis.parent.saveFieldsSort();\n\t\t}\n\t}\n\n\t/**\n\t * Removes field elements by field objects.\n\t * @param {object[]} fields\n\t */\n\tremoveFields(fields)\n\t{\n\t\tfields.forEach(function(field) {\n\t\t\tthis.removeField(field, true);\n\t\t}, this);\n\n\t\tthis.parent.saveFieldsSort();\n\t}\n\n\t/**\n\t * Adds field into filter field list by field object\n\t * @param {object} fieldData\n\t */\n\taddField(fieldData)\n\t{\n\t\tlet container; let control; let\n\t\t\tcontrols;\n\n\t\tif (BX.type.isPlainObject(fieldData))\n\t\t{\n\t\t\tcontainer = this.parent.getFieldListContainer();\n\t\t\tcontrols = this.parent.getControls();\n\t\t\tcontrol = BX.type.isArray(controls) ? controls[controls.length - 1] : null;\n\n\t\t\tif (BX.type.isDomNode(control))\n\t\t\t{\n\t\t\t\tif (control.nodeName !== 'INPUT')\n\t\t\t\t{\n\t\t\t\t\tcontrol = BX.Filter.Utils.getByTag(control, 'input');\n\t\t\t\t}\n\n\t\t\t\tif (BX.type.isDomNode(control))\n\t\t\t\t{\n\t\t\t\t\tfieldData.TABINDEX = parseInt(control.getAttribute('tabindex')) + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfieldData.TABINDEX = 2;\n\t\t\t}\n\n\t\t\tif (BX.type.isDomNode(container))\n\t\t\t{\n\t\t\t\tcontrol = this.createControl(fieldData);\n\n\t\t\t\tif (BX.type.isDomNode(control))\n\t\t\t\t{\n\t\t\t\t\tBX.append(control, container);\n\t\t\t\t\tif (BX.type.isArray(this.parent.fieldsList))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.parent.fieldsList.push(control);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.parent.registerDragItem(control);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!this.parent.isEditEnabled() && !this.parent.isAddPresetEnabled())\n\t\t{\n\t\t\tconst currentPresetId = this.getCurrentPresetId();\n\t\t\tconst currentPresetField = this.getPresetField(currentPresetId, fieldData.NAME);\n\n\t\t\tif (currentPresetField && !this.isEmptyField(currentPresetField))\n\t\t\t{\n\t\t\t\tthis.parent.updatePreset('tmp_filter');\n\t\t\t\tthis.deactivateAllPresets();\n\t\t\t\tthis.parent.getSearch().updatePreset(this.getPreset('tmp_filter'));\n\t\t\t}\n\t\t}\n\n\t\tthis.parent.saveFieldsSort();\n\t}\n\n\n\t/**\n\t * Creates field control by field object\n\t * @param {object} fieldData\n\t * @return {?HTMLElement}\n\t */\n\tcreateControl(fieldData)\n\t{\n\t\tlet control;\n\n\t\tswitch (fieldData.TYPE)\n\t\t{\n\t\t\tcase this.parent.types.STRING: {\n\t\t\t\tcontrol = this.parent.getFields().createInputText(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.TEXTAREA: {\n\t\t\t\tcontrol = this.parent.getFields().createTextarea(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.SELECT: {\n\t\t\t\tcontrol = this.parent.getFields().createSelect(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.MULTI_SELECT: {\n\t\t\t\tcontrol = this.parent.getFields().createMultiSelect(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.NUMBER: {\n\t\t\t\tcontrol = this.parent.getFields().createNumber(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.DATE: {\n\t\t\t\tcontrol = this.parent.getFields().createDate(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.CUSTOM_DATE: {\n\t\t\t\tcontrol = this.parent.getFields().createCustomDate(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.DEST_SELECTOR: {\n\t\t\t\tcontrol = this.parent.getFields().createDestSelector(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.ENTITY_SELECTOR: {\n\t\t\t\tcontrol = this.parent.getFields().createEntitySelector(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.CUSTOM: {\n\t\t\t\tcontrol = this.parent.getFields().createCustom(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase this.parent.types.CUSTOM_ENTITY: {\n\t\t\t\tcontrol = this.parent.getFields().createCustomEntity(fieldData);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (this.parent.getParam('ENABLE_ADDITIONAL_FILTERS'))\n\t\t{\n\t\t\tconst additionalFilterInstance = AdditionalFilter.getInstance();\n\t\t\tconst button = additionalFilterInstance.getAdditionalFilterButton({\n\t\t\t\tfieldId: fieldData.NAME,\n\t\t\t\tenabled: fieldData.ADDITIONAL_FILTER_ALLOWED,\n\t\t\t});\n\t\t\tDom.append(button, control);\n\t\t\tif (!fieldData.ADDITIONAL_FILTER_ALLOWED)\n\t\t\t{\n\t\t\t\tBX.Dom.addClass(control, 'main-ui-filter-additional-filters-hide');\n\t\t\t}\n\n\t\t\tif (Type.isStringFilled(fieldData.ADDITIONAL_FILTER))\n\t\t\t{\n\t\t\t\tadditionalFilterInstance.initAdditionalFilter(control, fieldData.ADDITIONAL_FILTER);\n\t\t\t}\n\t\t}\n\n\t\tif (BX.type.isDomNode(control))\n\t\t{\n\t\t\tcontrol.dataset.name = fieldData.NAME;\n\t\t\tcontrol.FieldController = new BX.Filter.FieldController(control, this.parent);\n\n\t\t\tif (fieldData.REQUIRED)\n\t\t\t{\n\t\t\t\tconst removeButton = control.querySelector('.main-ui-filter-field-delete');\n\n\t\t\t\tif (removeButton)\n\t\t\t\t{\n\t\t\t\t\tBX.remove(removeButton);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn control;\n\t}\n\n\n\t/**\n\t * Removes not compared properties\n\t * @param {object} fields\n\t * @param {boolean} [noClean]\n\t */\n\tremoveNotCompareVariables(fields, noClean)\n\t{\n\t\tif (BX.type.isPlainObject(fields))\n\t\t{\n\t\t\tconst dateType = this.parent.dateTypes;\n\t\t\tconst {additionalDateTypes} = this.parent;\n\n\t\t\tif ('FIND' in fields)\n\t\t\t{\n\t\t\t\tdelete fields.FIND;\n\t\t\t}\n\n\t\t\tif (!noClean)\n\t\t\t{\n\t\t\t\tObject.keys(fields).forEach(function(key) {\n\t\t\t\t\tif (key.indexOf('_numsel') !== -1)\n\t\t\t\t\t{\n\t\t\t\t\t\tdelete fields[key];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key.indexOf('_datesel') !== -1)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst datesel = fields[key];\n\n\t\t\t\t\t\tif (datesel === dateType.EXACT\n\t\t\t\t\t\t\t|| datesel === dateType.RANGE\n\t\t\t\t\t\t\t|| datesel === additionalDateTypes.PREV_DAY\n\t\t\t\t\t\t\t|| datesel === additionalDateTypes.NEXT_DAY\n\t\t\t\t\t\t\t|| datesel === additionalDateTypes.MORE_THAN_DAYS_AGO\n\t\t\t\t\t\t\t|| datesel === additionalDateTypes.AFTER_DAYS\n\t\t\t\t\t\t\t|| datesel === dateType.PREV_DAYS\n\t\t\t\t\t\t\t|| datesel === dateType.NEXT_DAYS\n\t\t\t\t\t\t\t|| datesel === dateType.YEAR\n\t\t\t\t\t\t\t|| datesel === dateType.MONTH\n\t\t\t\t\t\t\t|| datesel === dateType.QUARTER\n\t\t\t\t\t\t\t|| datesel === dateType.NONE\n\t\t\t\t\t\t\t|| datesel === dateType.CUSTOM_DATE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdelete fields[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst field = this.parent.getFieldByName(key);\n\n\t\t\t\t\tif (fields[key] === '' && (!field || !field.STRICT))\n\t\t\t\t\t{\n\t\t\t\t\t\tdelete fields[key];\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Checks is modified preset field values\n\t * @param {string} presetId\n\t * @returns {boolean}\n\t */\n\tisPresetValuesModified(presetId)\n\t{\n\t\tconst currentPresetData = this.getPreset(presetId);\n\t\tconst presetFields = this.parent.preparePresetSettingsFields(currentPresetData.FIELDS);\n\t\tconst currentFields = this.parent.getFilterFieldsValues();\n\n\t\tthis.removeNotCompareVariables(presetFields);\n\t\tthis.removeNotCompareVariables(currentFields);\n\n\t\tconst comparedPresetFields = BX.Filter.Utils.sortObject(presetFields);\n\t\tconst comparedCurrentFields = BX.Filter.Utils.sortObject(currentFields);\n\n\t\treturn !Object.keys(comparedPresetFields).every((key) => {\n\t\t\treturn (\n\t\t\t\tcomparedPresetFields[key] === comparedCurrentFields[key]\n\t\t\t\t|| ((BX.type.isPlainObject(comparedPresetFields[key]) || BX.type.isArray(comparedPresetFields[key]))\n\t\t\t\t && BX.Filter.Utils.objectsIsEquals(comparedPresetFields[key], comparedCurrentFields[key]))\n\t\t\t);\n\t\t});\n\t}\n\n\n\t/**\n\t * Gets additional preset values\n\t * @param {string} presetId\n\t * @return {?object}\n\t */\n\tgetAdditionalValues(presetId)\n\t{\n\t\tconst currentPresetData = this.getPreset(presetId);\n\t\tconst notEmptyFields = currentPresetData.FIELDS.filter(function(field) {\n\t\t\treturn !this.isEmptyField(field);\n\t\t}, this);\n\t\tconst presetFields = this.parent.preparePresetSettingsFields(notEmptyFields);\n\t\tconst currentFields = this.parent.getFilterFieldsValues();\n\n\t\tthis.removeNotCompareVariables(presetFields, true);\n\t\tthis.removeNotCompareVariables(currentFields, true);\n\n\t\tthis.removeSameProperties(currentFields, presetFields);\n\n\t\treturn currentFields;\n\t}\n\n\n\t/**\n\t * Removes same object properties\n\t * @param {object} object1\n\t * @param {object} object2\n\t */\n\tremoveSameProperties(object1, object2)\n\t{\n\t\tif (BX.type.isPlainObject(object1) && BX.type.isPlainObject(object2))\n\t\t{\n\t\t\tObject.keys(object2).forEach((key) => {\n\t\t\t\tif (key in object1)\n\t\t\t\t{\n\t\t\t\t\tdelete object1[key];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\n\t/**\n\t * Removes additional field by field name\n\t * @param {string} name\n\t */\n\tremoveAdditionalField(name)\n\t{\n\t\tconst preset = this.getPreset(this.getCurrentPresetId());\n\n\t\tif (BX.type.isArray(preset.ADDITIONAL))\n\t\t{\n\t\t\tpreset.ADDITIONAL = preset.ADDITIONAL.filter((field) => {\n\t\t\t\treturn field.NAME !== name;\n\t\t\t});\n\t\t}\n\t}\n\n\n\t/**\n\t * Updates preset fields list\n\t * @param {object} preset\n\t * @param {boolean} [noValues = false]\n\t */\n\tupdatePresetFields(preset, noValues)\n\t{\n\t\tlet fields; let\n\t\t\tfieldListContainer;\n\t\tconst fieldNodes = [];\n\n\t\tif (BX.type.isPlainObject(preset) && ('FIELDS' in preset))\n\t\t{\n\t\t\tfields = preset.FIELDS;\n\n\t\t\tif (BX.type.isArray(preset.ADDITIONAL))\n\t\t\t{\n\t\t\t\tpreset.ADDITIONAL\n\t\t\t\t\t.filter((field) => {\n\t\t\t\t\t\treturn this.parent.params.FIELDS.some((currentField) => {\n\t\t\t\t\t\t\treturn field.NAME === currentField.NAME;\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.forEach((field) => {\n\t\t\t\t\t\tlet replaced = false;\n\t\t\t\t\t\tfield.IS_PRESET_FIELD = true;\n\t\t\t\t\t\tfields.forEach((presetField, index) => {\n\t\t\t\t\t\t\tif (field.NAME === presetField.NAME)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfields[index] = field;\n\t\t\t\t\t\t\t\treplaced = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!replaced)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfields.push(field);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\t(fields || [])\n\t\t\t\t.filter((field) => {\n\t\t\t\t\treturn this.parent.params.FIELDS.some((currentField) => {\n\t\t\t\t\t\treturn field.NAME === currentField.NAME;\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.forEach(function(fieldData, index) {\n\t\t\t\t\tfieldData.TABINDEX = index + 1;\n\t\t\t\t\tif (noValues)\n\t\t\t\t\t{\n\t\t\t\t\t\tswitch (fieldData.TYPE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcase this.parent.types.SELECT: {\n\t\t\t\t\t\t\t\tfieldData.VALUE = fieldData.ITEMS[0];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcase this.parent.types.MULTI_SELECT: {\n\t\t\t\t\t\t\t\tfieldData.VALUE = [];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcase this.parent.types.DATE: {\n\t\t\t\t\t\t\t\tfieldData.SUB_TYPE = fieldData.SUB_TYPES[0];\n\t\t\t\t\t\t\t\tfieldData.VALUES = {\n\t\t\t\t\t\t\t\t\t_from: '',\n\t\t\t\t\t\t\t\t\t_to: '',\n\t\t\t\t\t\t\t\t\t_days: '',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcase this.parent.types.CUSTOM_DATE: {\n\t\t\t\t\t\t\t\tfieldData.VALUE = {\n\t\t\t\t\t\t\t\t\tdays: [],\n\t\t\t\t\t\t\t\t\tmonths: [],\n\t\t\t\t\t\t\t\t\tyears: [],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcase this.parent.types.NUMBER: {\n\t\t\t\t\t\t\t\tfieldData.SUB_TYPE = fieldData.SUB_TYPES[0];\n\t\t\t\t\t\t\t\tfieldData.VALUES = {\n\t\t\t\t\t\t\t\t\t_from: '',\n\t\t\t\t\t\t\t\t\t_to: '',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcase this.parent.types.CUSTOM_ENTITY: {\n\t\t\t\t\t\t\t\tfieldData.VALUES = {\n\t\t\t\t\t\t\t\t\t_label: '',\n\t\t\t\t\t\t\t\t\t_value: '',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcase this.parent.types.CUSTOM: {\n\t\t\t\t\t\t\t\tfieldData._VALUE = '';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tif ('VALUE' in fieldData)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (BX.type.isArray(fieldData.VALUE))\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfieldData.VALUE = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfieldData.VALUE = '';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfieldNodes.push(this.createControl(fieldData));\n\t\t\t\t}, this);\n\n\t\t\tthis.parent.disableFieldsDragAndDrop();\n\t\t\tfieldListContainer = this.parent.getFieldListContainer();\n\t\t\tBX.cleanNode(fieldListContainer);\n\n\t\t\tif (fieldNodes.length)\n\t\t\t{\n\t\t\t\tfieldNodes.forEach(function(current, index) {\n\t\t\t\t\tif (BX.type.isDomNode(current))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (preset.ID !== 'tmp_filter'\n\t\t\t\t\t\t\t&& preset.ID !== 'default_filter'\n\t\t\t\t\t\t\t&& !('IS_PRESET_FIELD' in fields[index])\n\t\t\t\t\t\t\t&& !this.isEmptyField(fields[index]))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.addClass(current, this.parent.settings.classPresetField);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tBX.append(current, fieldListContainer);\n\n\t\t\t\t\t\tif (BX.type.isString(fields[index].HTML))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst wrap = BX.create('div');\n\t\t\t\t\t\t\tthis.parent.getHiddenElement().appendChild(wrap);\n\t\t\t\t\t\t\tBX.html(wrap, fields[index].HTML);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\tthis.parent.enableFieldsDragAndDrop();\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Shows current preset fields\n\t */\n\tshowCurrentPresetFields()\n\t{\n\t\tconst preset = this.getCurrentPresetData();\n\t\tthis.updatePresetFields(preset);\n\t}\n\n\n\t/**\n\t * Gets current preset element\n\t * @return {?HTMLElement}\n\t */\n\tgetCurrentPreset()\n\t{\n\t\treturn BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classPresetCurrent);\n\t}\n\n\n\t/**\n\t * Gets current preset id\n\t * @return {*}\n\t */\n\tgetCurrentPresetId()\n\t{\n\t\tconst current = this.getCurrentPreset();\n\t\tlet currentId = null;\n\n\t\tif (BX.type.isDomNode(current))\n\t\t{\n\t\t\tcurrentId = this.getPresetId(current);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcurrentId = 'tmp_filter';\n\t\t}\n\n\t\treturn currentId;\n\t}\n\n\n\t/**\n\t * Gets current preset data\n\t * @return {?object}\n\t */\n\tgetCurrentPresetData()\n\t{\n\t\tconst currentId = this.getCurrentPresetId();\n\t\tlet currentData = null;\n\n\t\tif (BX.type.isNotEmptyString(currentId))\n\t\t{\n\t\t\tcurrentData = this.getPreset(currentId);\n\t\t\tcurrentData = this.extendPreset(currentData);\n\t\t}\n\n\t\treturn currentData;\n\t}\n\n\n\t/**\n\t * Gets presets container element\n\t * @return {?HTMLElement}\n\t */\n\tgetContainer()\n\t{\n\t\treturn BX.Filter.Utils.getByClass(this.parent.getFilter(), this.parent.settings.classPresetsContainer);\n\t}\n\n\n\t/**\n\t * Gets preset nodes\n\t * @return {?HTMLElement[]}\n\t */\n\tgetPresets()\n\t{\n\t\treturn BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classPreset, true);\n\t}\n\n\n\t/**\n\t * Gets default presets elements\n\t * @return {?HTMLElement[]}\n\t */\n\tgetDefaultPresets()\n\t{\n\t\treturn BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classDefaultFilter, true);\n\t}\n\n\n\t/**\n\t * Gets default preset element\n\t * @return {?HTMLElement}\n\t */\n\tgetPinnedPresetNode()\n\t{\n\t\treturn BX.Filter.Utils.getByClass(this.getContainer(), this.parent.settings.classPinnedPreset);\n\t}\n\n\n\t/**\n\t * Checks preset is pinned (default)\n\t * @param presetId\n\t * @return {boolean}\n\t */\n\tisPinned(presetId)\n\t{\n\t\treturn this.getPinnedPresetId() === presetId;\n\t}\n\n\n\t/**\n\t * Gets pinned (default) preset id\n\t * @return {string}\n\t */\n\tgetPinnedPresetId()\n\t{\n\t\tconst node = this.getPinnedPresetNode();\n\t\tlet id = 'default_filter';\n\n\t\tif (node)\n\t\t{\n\t\t\tconst dataId = BX.data(node, 'id');\n\t\t\tid = dataId || id;\n\t\t}\n\n\t\treturn id;\n\t}\n}"],"names":["BX","namespace","Main","ui","block","data","group","select","deleteButton","label","dragButton","name","mix","attrs","type","enableTime","content","isNotEmptyString","labelContent","Type","isPlainObject","icon","tag","title","src","url","push","tabindex","value","items","params","valueDelete","isArray","forEach","current","deleteTitle","dragTitle","field","valueDeleteButton","placeholder","item","id","JSON","stringify","events","click","onClick","control","input","autocomplete","isPreset","util","htmlspecialcharsback","iconTitle","length","pinned","htmlspecialchars","text","noEditPinTitle","editNameTitle","removeTitle","editPinTitle","Filter","Utils","cache","styleForEach","collection","properties","keys","Object","call","propKey","style","closestParent","className","parentNode","findParent","closestChilds","children","getNext","currentItem","nextElementSibling","getPrev","previousElementSibling","collectionSort","target","root","collectionLength","currentIndex","targetIndex","getIndex","appendChild","insertBefore","indexOf","getByClass","rootElement","all","result","document","body","getElementsByClassName","slice","getByTag","getElementsByTagName","getBySelector","selector","querySelector","querySelectorAll","requestAnimationFrame","raf","window","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","callback","setTimeout","apply","arguments","sortObject","output","sort","key","objectsIsEquals","object1","object2","isKey","event","keyCode","keyboard","code","which","DestinationSelectorManager","fields","controls","onSelect","isNumeric","prefix","isNotEmptyObject","selectorId","re","RegExp","found","match","eventResult","onCustomEvent","setData","getLabelNode","blur","onDialogOpen","DestinationSelector","onDialogClose","filterId","settings","fieldId","inited","create","self","initialize","prototype","getSetting","defaultval","hasOwnProperty","getSearchInput","opened","initialValue","initialSettings","itemId","itemName","filterManager","getById","getApi","setFields","addCustomEvent","delegate","onCustomEntitySelectorOpen","onCustomEntitySelectorClose","onGetStopBlur","onBeforeInitDialog","onCustomEntityRemove","open","getCurrentValues","inputId","containerId","currentValue","currentUser","entityId","bindNode","getField","close","selectorManagerV2","closeDialog","getId","stopBlur","instance","UI","SelectorManager","instances","hiddenInput","itemsSelected","blockInit","EntitySelector","filter","Error","isMultiple","needAddEntityIdToFilter","needShowDialogOnEmptyInput","dialogOptions","prepareDialogOptions","dialog","EventEmitter","subscribe","onCustomEntityFocus","bind","onCustomEntityBlur","onApplyPreset","controlInputChangeHandler","onSearchInputChange","isActive","initDialog","then","openDialog","isOpen","hide","getFilterField","node","classStringInput","defaultValue","defaultOptions","enableSearch","hideOnSelect","autoHide","hideByEsc","assign","inputWrapper","getFilterFieldInputWrapper","searchInput","getFilterFieldInput","searchQuery","isDomNode","trim","setTargetNode","setWidth","offsetWidth","show","updateSelectedItemsInDialog","search","initDialogExtension","exports","Dialog","getDialogId","multiple","onDialogItemSelect","onDialogItemDeSelect","onDialogLoad","Event","currentValues","setMultipleData","setSingleData","clearValue","getParam","getEntityId","selectedIds","map","getItems","dialogItem","getItemId","deselect","getData","setControl","unsetControl","browserEvent","contains","Dom","hasClass","classFieldDelete","dialogContainerElement","getPopup","getContentContainer","destroy","addItemToFilter","getTitle","removeItemFromFilter","getTarget","initExtensionPromise","Runtime","loadExtension","isObject","Reflection","FieldController","parent","init","isShowDelete","showDelete","hideDelete","squares","getSquares","getInputValue","getInput","types","getType","DATE","classDateInput","NUMBER","classNumberInput","STRING","CUSTOM_ENTITY","getDeleteButton","classValueDelete","classSquare","MULTI_SELECT","SELECT","_onDeleteClick","_onInput","clearInput","addClass","classHide","removeClass","removeSquares","square","remove","CustomEntity","labelInput","popupContainer","inputClass","squareClass","parse","setField","reset","hiddenNode","getHiddenNode","getSquareByValue","jsencode","join","setSquare","squareData","decl","prepend","insertAfter","i","_label","_value","ex","fireEvent","values","setPopupContainer","container","getPopupContainer","Search","preset","buttonsContainer","delay","timeout","_onInputWithoutDebounce","debounce","_onKeyDown","getFindButton","_onSearchClick","getContainer","_onSearchContainerClick","removeAutofocus","firstInit","autofocus","findButton","classSearchButton","selectSquare","classSquareSelected","selectSquares","unselectSquare","unselectSquares","removeSquare","isSquaresSelected","every","isSquareSelected","getLastSquare","isTextSelected","searchStringLength","getSearchString","selectionStart","selectionEnd","isSelectionStart","isSquareRemoveButton","classSquareDelete","isClearButton","classClearSearchValueButton","getClearButton","isSearchButton","adjustFocus","browser","IsMobile","activeElement","scrollY","pos","top","focus","findSquareByChild","childNode","getSquareData","rawData","isSquareControl","onPresetSquareRemove","Preset","getPreset","currentPresetId","getCurrentPresetId","isResetToDefaultMode","isValueRequiredModeMail","isPinned","showPopup","adjustPlaceholder","deactivateAllPresets","resetWithoutSearch","lastPromise","resetFilter","closePopup","applyPinnedPreset","currentPreset","tmpPreset","FIELDS","clone","ADDITIONAL","applyPreset","applyFilter","onControlSquareRemove","clearControls","removeAdditionalField","onValueRequiredSquareRemove","complexSquareRemove","isValueRequiredMode","isPresetSquare","adjustClearButton","showClearButton","hideClearButton","presetData","isShown","start","end","searchLength","restoreRemovedPreset","utils","lastSearchString","metaKey","ctrlKey","clearTimeout","setInputPlaceholder","get","isResolvedRequest","state","_onFindButtonClick","getSearch","removePreset","resetPreset","searchString","isIe","showGridAnimation","FILTER_ID","setIsSetOutsideState","setDefaultPresetAppliedState","isAppliedDefaultPreset","isAppliedUserFilter","getButtonsContainer","classSearchButtonsContainer","classShow","form","clearForm","makeSquares","squaresData","depth","additional","tmpSquare","moreSquares","index","lastSquare","squaresWidth","prepareSquaresData","width","curr","reduce","prev","parseFloat","setPreset","squaresResult","ID","TITLE","NAME","TYPE","tmpValues","some","currentField","isStringFilled","ADDITIONAL_FILTER","LABEL","SUB_TYPE","VALUE","dateTypes","QUARTER","VALUES","_quarter","quarter","QUARTERS","toLocaleLowerCase","_year","YEAR","MONTH","_month","month","MONTHS","EXACT","_from","RANGE","_to","NEXT_DAYS","PREV_DAYS","isNumber","parseInt","_days","replace","NONE","CUSTOM_DATE","days","months","years","STRICT","val","DEST_SELECTOR","ENTITY_SELECTOR","MULTIPLE","CUSTOM","_VALUE","squareItem","Loc","getMessage","ICON","AdditionalFilter","HAS_ANY_VALUE","presetClass","updatePreset","Settings","options","classField","classFieldGroup","classFieldLine","classFieldLabel","classFieldWithLabel","classPresetName","classControl","classSelect","classMultiSelect","classAddField","classAddPresetField","classAddPresetFieldInput","classAddPresetButton","classButtonsContainer","classSaveButton","classCancelButton","classMenuItem","classMenuItemText","classMenuMultiItemText","classMenuItemChecked","classSearchContainer","classDefaultPopup","classPopupFieldList","classPopupFieldList1Column","classPopupFieldList2Column","classPopupFieldList3Column","classPopupFieldList4Column","classPopupFieldList5Column","classPopupFieldList6Column","classFieldListItem","classEditButton","classPresetEdit","classPresetNameEdit","classPresetDeleteButton","classPresetDragButton","classPresetEditButton","classPresetEditInput","classPresetOndrag","classPresetsContainer","classPreset","classPresetCurrent","classFilterContainer","classFileldControlList","classRestoreFieldsButton","classDisabled","classAnimationShow","classAnimationClose","classLimitsAnimation","classSidebarControlsContainer","searchContainerPostfix","classPresetButtonsContainer","classFindButton","classResetButton","classDefaultFilter","classRestoreButton","classPinButton","classPopupOverlay","classSidePanelContainer","classPinnedPreset","classWaitButtonClass","classForAllCheckbox","classFocus","classPresetField","classPopupSearchFieldListItemHidden","classPopupSearchFieldListItemVisible","classPopupSearchSectionItem","classPopupSearchSectionItemIcon","classPopupSearchSectionItemIconActive","numberPostfix","datePostfix","toPostfix","fromPostfix","daysPostfix","monthPostfix","quarterPostfix","yearPostfix","generalTemplateId","maxPopupColumnCount","popupWidth","mergeSettings","isFunction","numberTypes","additionalDateTypes","additionalNumberTypes","popup","presets","api","isAddPresetModeState","analyticsLabel","emitter","setEventNamespace","eventName","listener","enableFieldsSearch","enableHeadersSections","toCamelCase","string","isString","toLowerCase","chr","toUpperCase","substr","_onDocumentClick","_onDocumentKeydown","onWindowLoad","_onGridReady","getEmitter","clearGet","location","toString","clearUrl","remove_url_param","history","replaceState","_onAddPresetKeydown","_onSaveButtonClick","Api","addSidebarItem","Presets","presetsContainer","sidebarItem","createSidebarItem","getPresetNodeById","getAddPresetField","_onPresetClick","saveUserSettings","forAll","optionsParams","presetsSettings","editablePresets","current_preset","getPresets","presetId","getPresetId","SORT","updatePresetName","preparePresetSettingsFields","rows","for_all","isBoolean","FOR_ALL","saveOptions","isForAll","checkbox","getForAllCheckbox","checked","forAllCheckbox","getFilter","valuesKeys","TEXTAREA","CHECKBOX","savePreset","Date","presetName","getAddPresetFieldInput","activatePreset","beforeLoad","afterLoad","isNew","getFilterFieldsValues","sourceFields","getFields","getCurrentPresetData","tmpPresetNode","tmpPresetInput","apply_filter","clear_filter","save","preset_id","getPresetInput","isAddPresetEnabled","updateParams","promise","Promise","setAutoResolve","afterPromise","proxy","fulfill","saveFieldsSort","split","preparePresetFields","dataFields","fieldKeys","IS_EMPTY","getFieldByName","fetchAdditionalFilter","prepareMultiSelectValue","ITEMS","prepareSelectValue","SUB_TYPES","tmpResult","valuesValues","find","getFieldListContainer","Field","confirmSaveForAll","resolve","action","CONFIRM","CONFIRM_MESSAGE","CONFIRM_APPLY_BUTTON","CONFIRM_CANCEL_BUTTON","confirmDialog","commonPresetsId","with_preset","isSetOutside","requestData","backend","disableEdit","disableAddPreset","ajax","runComponentAction","mode","GRID_ID","PRESET_ID","FIND","ROWS","limitAnalyticsSend","LIMIT","prepareEvent","x","path","presetNode","hasScrollClick","clientX","documentElement","isUseCommonPresets","isInsideFilterEvent","_onAddFieldClick","getFieldsPopup","stopPropagation","preventDefault","showFieldsPopup","syncFields","closeFieldListPopup","fieldsPopupItems","getFieldsPopupItems","currentId","isNeedCheck","contentContainer","prepareAnimation","getFieldListContainerClassName","itemsCount","popupColumnsCount","containerClass","prepareFieldsDecl","sectionId","SECTION_ID","_clickOnFieldListItem","getLazyLoadFields","p","method","dataType","onsuccess","response","getFieldsListPopupContent","fieldsCount","getPopupContent","sourceComponentName","sourceComponentSignedParameters","runAction","componentName","signedParameters","wrapper","Tag","render","fieldsContent","setPopupElementWidthFromSettings","preparePopupContentHeader","defaultHeaderSection","getDefaultHeaderSection","sections","undefined","preparePopupContentFields","headerWrapper","preparePopupContentHeaderSections","preparePopupContentHeaderSearch","headerSectionsWrapper","firstElementChild","headersSections","getHeadersSections","itemClass","selected","headerSectionItem","Text","encode","onFilterSectionClick","activeClass","dataset","uiPopupFilterSectionButton","section","searchForm","inputs","onFilterSectionSearchInput","onFilterSectionSearchInputClear","sectionsWrapper","sectionWrapper","getHeadersSectionParam","setAttribute","sectionTitle","fieldsBlock","onAnimationEnd","display","innerText","paramName","getFieldLoader","fieldLoader","Loader","size","offset","left","err","isChecked","BaseEvent","emit","isDefaultPrevented","classList","add","getLazyLoadField","removeField","addField","HTML","wrap","getHiddenElement","html","hiddenElement","add_url_param","adjustFieldListPopupPosition","getAddField","forceBindPosition","adjustPosition","bindElement","fieldsPopup","PopupWindow","offsetTop","offsetLeft","lightShadow","closeIcon","closeByEsc","noAllPaddings","zIndex","fieldsPopupLoader","height","res","removeAttribute","setContent","element","_onAddPresetClick","enableAddPreset","enableWaitSate","button","disableWaitState","getSaveForAllCheckbox","mask","animationName","currentTarget","removeEventListener","showLengthError","addEventListener","isEditEnabled","presetNameInput","updateEditablePreset","presetMask","_onCancelButtonClick","clearAddPresetFieldInput","grid","getContainerId","_onFilterMousedown","isDragButton","_onFilterClick","Fields","isFieldDelete","isFieldValueDelete","clearFieldValue","getSaveButton","getCancelButton","getResetButton","getAddPresetButton","addPresetField","addPresetFieldInput","getPresetButtonsContainer","hideForAllCheckbox","getSidebarControlsContainer","showForAllCheckbox","getControls","getFilterFields","groups","additionalFilter","getInstance","prepareControlStringValue","prepareControlTextareaValue","prepareControlNumberValue","prepareControlDateValue","prepareControlCustomDateValue","prepareControlSelectValue","prepareControlMultiselectValue","prepareControlCustomEntityValue","prepareControlCustomValue","fetchSquares","fetchSquaresData","stringFields","daysControl","daysValue","monthsControl","monthsValue","yearsControl","yearsValue","withAdditional","additionalFieldsContainer","yearsSwitcher","selectName","fromName","toName","daysName","monthName","quarterName","yearName","yearsSwitcherName","selectValue","controlName","yearsSwitcherValue","isValid","endsWith","PREV_DAY","NEXT_DAY","MORE_THAN_DAYS_AGO","AFTER_DAYS","customValues","append","additionalFields","Array","from","additionalField","tableFade","hideGridAnimation","tableUnfade","clear","presetOptions","hasFields","isArrayFilled","isEmptyField","hasAdditional","IS_PINNED","applyParams","autoResolve","clear_nav","reject","reloadTable","resetControlData","controlData","clearControl","newControl","createControl","getTemplate","ie","configCloseDelay","closeDelay","isOpened","showDelay","textareas","scrollHeight","saveForAllCheckbox","getSaveForAllCheckboxContainer","saveForAllCheckboxContainer","getPopupBindElement","popupBindElement","_onFieldsContainerKeydown","_onPresetInputKeydown","_onResetButtonClick","getEditButton","_onEditButtonClick","getRestoreButton","_onRestoreButtonClick","getRestoreFieldsButton","_onRestoreFieldsButtonClick","showCurrentPresetFields","bindOnPresetClick","restoreDefaultFields","defaultPreset","restoreFieldsButton","restoreFilter","defaultPresets","allPresets","isReplace","replaceIndex","applyPresetId","a","b","defPreset","saveRestoreFilter","prepareFields","restoreButton","tagName","isPresetValuesModified","getAdditionalValues","withoutSearch","enableEdit","enableFieldsDragAndDrop","fieldsList","registerDragItem","getDragButton","onbxdragstart","_onFieldDragStart","onbxdragstop","_onFieldDragStop","onbxdrag","_onFieldDrag","jsDD","registerObject","registerDest","unregisterDragItem","unregisterObject","unregisterDest","dragItem","current_node","dragIndex","dragRect","getBoundingClientRect","dragStartOffset","start_y","scrollTop","_onMouseMove","unbind","targetItem","currentRect","currentMiddle","dragOffset","realY","sortOffset","transform","disableFieldsDragAndDrop","enablePresetsDragAndDrop","presetsList","_onDragStart","_onDragStop","_onDrag","disablePresetsDragAndDrop","normalizePreset","list","realX","clientY","getDragOffset","startDragOffset","sidebarControlsContainer","isEditEnabledState","disableEditPresetName","presetButtonsContainer","cancel","dialogId","popupMessage","popupTitle","CONFIRM_TITLE","applyButton","PopupWindowButton","popupWindow","cancelButton","PopupWindowButtonLink","titleBar","overlay","buttons","getInitialValue","INITIAL_FILTER","filteredEntries","entries","acc","startsWith","toBoolean","isSetOutsideState","searchContainer","isDefaultPresetAppliedState","getList","onValueChange","Symbol","Cache","MemoryCache","clearButtons","MO","MutationObserver","selects","observe","attributes","attributeFilter","set","getValue","remember","getAdditionalFieldContainer","prepareFieldOptions","renderedField","appendRenderedField","stubs","FIELDS_STUBS","stub","baseField","VALUE_REQUIRED","valueRequired","prepareListItems","isMulti","subType","Reflect","has","_datesel","exclude","includes","allValues","fieldValue","fieldNode","attr","nameNode","Factory","WeakMap","setAnalyticsLabel","checkFields","newFields","force","String","previewsAdditionalValues","setFilter","createDateInputDecl","calendarButton","createNumberInputDecl","createLineDecl","createSelectDecl","onDocumentClick","Menu","onclick","onAdditionalFilterMenuItemClick","delimiter","Helper","typeId","getCurrentFieldNode","initAdditionalFilter","getAdditionalFilterMenu","setCurrentFieldId","setCurrentFieldNode","parentElement","menu","allowedItems","getMenuItems","menuItem","menuItemId","layout","getPopupWindow","setBindElement","enabled","disabled","allowedTypes","onAdditionalFilterButtonClick","currentFieldId","getCurrentFieldId","getAdditionalFilterPlaceholderField","currentPlaceholder","message","onRemoveClick","restoreField","closest","errorMessages","errorMessagesTypes","_onDateTypeChange","template","wrapped","fieldGroup","fieldLine","fieldData","PLACEHOLDER","TABINDEX","textarea","onChange","currentLabel","_onCustomEntityInputFocus","_onCustomEntityInputClick","bindDocument","_onCustomEntityBlur","_onDocumentFocus","_onCustomEntityKeydown","_onCustomEntityFieldClick","createCustomEntityFieldLayout","ready","addEntityIdToResult","ADD_ENTITY_ID_TO_RESULT","showDialogOnEmptyInput","SHOW_DIALOG_ON_EMPTY_INPUT","DIALOG_OPTIONS","isTrusted","trustTimestamp","timeStamp","notTrustTimestamp","trustDate","notTrustDate","trustTime","getMinutes","getSeconds","notTrustTime","_onCustomEntityFocus","getCustomEntityInstance","isOnInputField","isInsidePopup","eventData","_stopPropagation","customEntityInstance","isElementNode","decode","PARAMS","DAYS","DAYS_PLACEHOLDER","MONTHS_PLACEHOLDER","YEARS","YEARS_PLACEHOLDER","dateGroup","getNode","getParams","getAttribute","presetField","isNil","ENABLE_TIME","YEARS_SWITCHER","REQUIRED","createDate","createNumber","getAdditionalFilterButton","ADDITIONAL_FILTER_ALLOWED","ENABLE_LABEL","SINGLE","fieldName","classes","LESS","BEFORE_N","line","to","_allow_year","fieldDecl","rangeGroup","monthValue","yearValue","quarterValue","customDateSubType","customDateDecl","DECL","createCustomDate","createSelect","lastIndex","lastContentItem","renderedFieldGroup","onDateChange","clearButton","allInputs","checkRequiredDateValue","bindOnce","removeButton","showError","MAIN_UI_FILTER__VALUE_REQUIRED","hideError","format","MAIN_UI_FILTER__DATE_ERROR_TITLE","MAIN_UI_FILTER__DATE_ERROR_LABEL","errorText","dateErrorMessage","getPresetNameNode","isDefault","newPresets","postData","is_default","PRESETS","pinPreset","enableEditPresetName","IS_DEFAULT","getPinnedPresetId","pinnedPresetId","pinnedPresetNode","getPinnedPresetNode","presetRows","presetFields","_onPresetNameInput","inputValue","filtered","noValues","extendPreset","updatePresetFields","someField","defCurr","defIndex","datesel","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_QUARTER","LAST_7_DAYS","LAST_30_DAYS","LAST_60_DAYS","LAST_90_DAYS","LAST_WEEK","LAST_MONTH","TOMORROW","YESTERDAY","NEXT_WEEK","NEXT_MONTH","tmpName","disableSaveFieldsSort","deleteField","currentPresetField","getPresetField","nodeName","createInputText","createTextarea","createMultiSelect","createDestSelector","createEntitySelector","createCustom","createCustomEntity","additionalFilterInstance","noClean","dateType","currentPresetData","currentFields","removeNotCompareVariables","comparedPresetFields","comparedCurrentFields","notEmptyFields","removeSameProperties","fieldListContainer","fieldNodes","replaced","IS_PRESET_FIELD","cleanNode","getCurrentPreset","currentData","dataId"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings