File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/catalog/install/js/catalog/product-selector/dist/product-selector.bundle.js.map
Back
{"version":3,"file":"product-selector.bundle.js","sources":["../src/product-search-selector-footer.js","../src/product-creation-limited-footer.js","../src/selector-error-code.js","../src/product-search-input.js","../src/product-image-input.js","../src/barcode-search-selector-footer.js","../src/barcode-search-input.js","../src/product-selector.js"],"sourcesContent":["import {DefaultFooter, Dialog} from 'ui.entity-selector';\nimport {Dom, Loc, Tag, Type} from 'main.core';\nimport {BaseEvent} from \"main.core.events\";\nimport {Loader} from \"main.loader\";\nimport {ProductSelector} from \"catalog.product-selector\";\n\nexport default class ProductSearchSelectorFooter extends DefaultFooter\n{\n\tloader: Loader = null;\n\n\tconstructor(dialog: Dialog, options: { [option: string]: any })\n\t{\n\t\tsuper(dialog, options);\n\n\t\tthis.errorAdminHint = options.errorAdminHint || '';\n\t\tthis.getDialog().subscribe('onSearch', this.handleOnSearch.bind(this));\n\t}\n\n\tgetContent(): HTMLElement\n\t{\n\t\tlet phrase = '';\n\n\t\tconst isViewCreateButton = this.options.allowCreateItem === true || this.options.allowEditItem === false;\n\n\t\tif (this.isViewEditButton() && isViewCreateButton)\n\t\t{\n\t\t\tphrase = Tag.render`\n\t\t\t\t<div>${Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_1')}</div>\n\t\t\t`;\n\n\t\t\tconst createButton = phrase.querySelector('create-button');\n\t\t\tDom.replace(createButton, this.getLabelContainer());\n\n\t\t\tconst changeButton = phrase.querySelector('change-button');\n\t\t\tDom.replace(changeButton, this.getSaveContainer());\n\t\t}\n\t\telse if (this.isViewEditButton())\n\t\t{\n\t\t\tphrase = this.getSaveContainer();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tphrase = this.getLabelContainer();\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-selector-search-footer-box\">\n\t\t\t\t${phrase}\n\t\t\t\t${this.getHintContainer()}\n\t\t\t\t${this.getLoaderContainer()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tisViewEditButton(): boolean\n\t{\n\t\treturn this.options.allowEditItem === true;\n\t}\n\n\tgetLoader(): Loader\n\t{\n\t\tif (Type.isNil(this.loader))\n\t\t{\n\t\t\tthis.loader = new Loader({\n\t\t\t\ttarget: this.getLoaderContainer(),\n\t\t\t\tsize: 17,\n\t\t\t\tcolor: 'rgba(82, 92, 105, 0.9)'\n\t\t\t});\n\t\t}\n\n\t\treturn this.loader;\n\t}\n\n\tshowLoader(): void\n\t{\n\t\tvoid this.getLoader().show();\n\t}\n\n\thideLoader(): void\n\t{\n\t\tvoid this.getLoader().hide();\n\t}\n\n\tsetLabel(label: string)\n\t{\n\t\tif (Type.isString(label))\n\t\t{\n\t\t\tthis.getLabelContainer().textContent = label;\n\t\t}\n\t}\n\n\tgetLabelContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('label', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span>\n\t\t\t\t\t<span onclick=\"${this.handleClick.bind(this)}\" class=\"ui-selector-footer-link ui-selector-footer-link-add\">\n\t\t\t\t\t\t${\n\t\t\t\t\t\t\tthis.getOption('creationLabel', Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_CREATE'))\n\t\t\t\t\t\t}\n\t\t\t\t\t</span>\n\t\t\t\t\t${this.getQueryContainer()}\n\t\t\t\t</span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetQueryContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('name-container', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span class=\"ui-selector-search-footer-query\"></span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetSaveContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('save-container', () => {\n\t\t\tconst className = `ui-selector-footer-link`;\n\n\t\t\tconst messageId =\n\t\t\t\t(this.options.inputName === ProductSelector.INPUT_FIELD_BARCODE)\n\t\t\t\t\t? 'CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_BARCODE_CHANGE'\n\t\t\t\t\t: 'CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_CHANGE'\n\t\t\t;\n\n\t\t\treturn Tag.render`\n\t\t\t<span class=\"${className}\" onclick=\"${this.onClickSaveChanges.bind(this)}\">\n\t\t\t\t${Loc.getMessage(messageId)}\n\t\t\t</span>\n\t\t`;\n\t\t});\n\t}\n\n\tgetLoaderContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('loader', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-selector-search-footer-loader\"></div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetHintContainer(): ?HTMLElement\n\t{\n\t\treturn this.cache.remember('hint', () => {\n\t\t\tlet message = null;\n\t\t\tif (!this.options.allowEditItem && !this.options.allowCreateItem)\n\t\t\t{\n\t\t\t\tmessage = Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_DISABLED_FOOTER_ALL_HINT', {\n\t\t\t\t\t'#ADMIN_HINT#': this.errorAdminHint\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (!this.options.allowEditItem)\n\t\t\t{\n\t\t\t\tmessage = Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_DISABLED_FOOTER_EDIT_HINT', {\n\t\t\t\t\t'#ADMIN_HINT#': this.errorAdminHint\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (!this.options.allowCreateItem)\n\t\t\t{\n\t\t\t\tmessage = Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_DISABLED_FOOTER_ADD_HINT', {\n\t\t\t\t\t'#ADMIN_HINT#': this.errorAdminHint\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!message)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst hintNode = Tag.render`<span class=\"ui-btn ui-btn-icon-lock ui-btn-link\"></span>`;\n\t\t\thintNode.dataset.hint = message;\n\t\t\thintNode.dataset.hintNoIcon = true;\n\n\t\t\tBX.UI.Hint.initNode(hintNode);\n\n\t\t\treturn Tag.render`<div class=\"product-search-selector-disabled-footer-hint\">${hintNode}</div>`;\n\t\t});\n\t}\n\n\tonClickSaveChanges()\n\t{\n\t\tif (!this.options.allowEditItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastQuery = this.getDialog().getActiveTab().getLastSearchQuery();\n\t\tthis.getDialog().emit('ChangeItem:onClick', { query: lastQuery.query });\n\t\tthis.getDialog().clearSearch();\n\t\tthis.getDialog().hide();\n\t}\n\n\tcreateItem(): void\n\t{\n\t\tif (!this.options.allowCreateItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst tagSelector = this.getDialog().getTagSelector();\n\t\tif (tagSelector && tagSelector.isLocked())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\tthis.hideLoader();\n\t\t\tif (this.getDialog().getTagSelector())\n\t\t\t{\n\t\t\t\tthis.getDialog().getTagSelector().unlock();\n\t\t\t\tthis.getDialog().focusSearch();\n\t\t\t}\n\t\t};\n\n\t\tevent.preventDefault();\n\t\tthis.showLoader();\n\n\t\tif (tagSelector)\n\t\t{\n\t\t\ttagSelector.lock();\n\t\t}\n\n\t\tthis.getDialog()\n\t\t\t.emitAsync('Search:onItemCreateAsync', {\n\t\t\t\tsearchQuery: this.getDialog().getActiveTab().getLastSearchQuery()\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\tthis.getTab().clearResults();\n\t\t\t\tthis.getDialog().clearSearch();\n\t\t\t\tif (this.getDialog().getActiveTab() === this.getTab())\n\t\t\t\t{\n\t\t\t\t\tthis.getDialog().selectFirstTab();\n\t\t\t\t}\n\n\t\t\t\tfinalize();\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tfinalize();\n\t\t\t})\n\t\t;\n\t}\n\n\thandleClick(): void\n\t{\n\t\tthis.createItem();\n\t}\n\n\thandleOnSearch(event: BaseEvent): void\n\t{\n\t\tconst { query } = event.getData();\n\n\t\tif (this.options.currentValue === query || query === '')\n\t\t{\n\t\t\tthis.hide();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.show();\n\t\t}\n\n\t\tthis.getQueryContainer().textContent = \" \" + query;\n\t}\n}\n","import {DefaultFooter} from 'ui.entity-selector';\nimport {Event, Loc, Tag} from 'main.core';\nimport 'ui.info-helper';\n\nexport default class ProductCreationLimitedFooter extends DefaultFooter\n{\n\tgetContent(): HTMLElement\n\t{\n\t\tconst phrase = Tag.render`\n\t\t\t<div>${Loc.getMessage('CATALOG_SELECTOR_LIMITED_PRODUCT_CREATION')}</div>\n\t\t`;\n\n\t\tconst infoButton = Tag.render`\n\t\t\t<a class=\"ui-btn ui-btn-sm ui-btn-primary ui-btn-hover ui-btn-round\">\n\t\t\t\t${Loc.getMessage('CATALOG_SELECTOR_LICENSE_EXPLODE')}\n\t\t\t</a>\n\t\t`;\n\n\t\tEvent.bind(infoButton, 'click', () => {\n\t\t\tBX.UI.InfoHelper.show('limit_shop_products');\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-selector-search-footer-box\">\n\t\t\t\t<div class=\"ui-selector-search-footer-box\">\n\t\t\t\t\t<div class=\"tariff-lock\"></div>\n\t\t\t\t\t${phrase}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t${infoButton}\n\t\t\t\t</div>\t\t\t\t\n\t\t\t</div>\n\t\t`;\n\t}\n}","export class SelectorErrorCode\n{\n\tstatic NOT_SELECTED_PRODUCT: string = 'NOT_SELECTED_PRODUCT';\n\tstatic FAILED_PRODUCT: string = 'FAILED_PRODUCT';\n\n\tstatic getCodes(): Array<string>\n\t{\n\t\treturn [\n\t\t\tSelectorErrorCode.NOT_SELECTED_PRODUCT,\n\t\t\tSelectorErrorCode.FAILED_PRODUCT,\n\t\t]\n\t}\n}","import {ajax, Browser, Cache, Dom, Event, Extension, Loc, Runtime, Tag, Text, Type} from 'main.core';\nimport {Dialog, Item} from 'ui.entity-selector';\nimport './component.css';\nimport {EventEmitter} from 'main.core.events';\nimport {ProductModel} from 'catalog.product-model';\nimport {ProductSelector} from 'catalog.product-selector';\nimport ProductSearchSelectorFooter from './product-search-selector-footer';\nimport ProductCreationLimitedFooter from './product-creation-limited-footer';\nimport {SelectorErrorCode} from './selector-error-code';\nimport 'ui.notification';\n\nclass DialogMode\n{\n\tstatic SEARCHING: string = 'SEARCHING';\n\tstatic SHOW_PRODUCT_ITEM: string = 'SHOW_PRODUCT_ITEM';\n\tstatic SHOW_RECENT: string = 'SHOW_RECENT';\n}\n\nexport class ProductSearchInput\n{\n\tstatic SEARCH_TYPE_ID = 'product';\n\n\tmodel: ProductModel;\n\tselector: ProductSelector;\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(id, options = {})\n\t{\n\t\tthis.id = id || Text.getRandom();\n\t\tthis.selector = options.selector;\n\t\tif (!(this.selector instanceof ProductSelector))\n\t\t{\n\t\t\tthrow new Error('Product selector instance not found.');\n\t\t}\n\n\t\tthis.model = options.model || {};\n\t\tthis.isEnabledSearch = options.isSearchEnabled;\n\t\tthis.isEnabledDetailLink = options.isEnabledDetailLink;\n\t\tthis.inputName = options.inputName || ProductSelector.INPUT_FIELD_NAME;\n\t\tthis.immutableFieldNames = [ProductSelector.INPUT_FIELD_BARCODE, ProductSelector.INPUT_FIELD_NAME];\n\t\tif (!this.immutableFieldNames.includes(this.inputName))\n\t\t{\n\t\t\tthis.immutableFieldNames.push(this.inputName);\n\t\t}\n\t\tthis.ajaxInProcess = false;\n\t\tthis.loadedSelectedItem = null;\n\n\t\tthis.handleSearchInput = Runtime.debounce(this.searchInDialog, 500, this);\n\t}\n\n\tdestroy()\n\t{\n\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetSelectorType(): string\n\t{\n\t\treturn ProductSelector.INPUT_FIELD_NAME;\n\t}\n\n\tgetField(fieldName): string\n\t{\n\t\treturn this.model.getField(fieldName);\n\t}\n\n\tgetValue(): string\n\t{\n\t\treturn this.getField(this.inputName);\n\t}\n\n\tgetFilledValue(): string\n\t{\n\t\treturn this.getNameInput().value || '';\n\t}\n\n\tisSearchEnabled(): boolean\n\t{\n\t\treturn this.isEnabledSearch;\n\t}\n\n\ttoggleIcon(icon, value)\n\t{\n\t\tif (Type.isDomNode(icon))\n\t\t{\n\t\t\tDom.style(icon, 'display', value);\n\t\t}\n\t}\n\n\tgetNameBlock(): HTMLElement\n\t{\n\t\treturn this.cache.remember('nameBlock', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t${this.getNameTag()}\n\t\t\t\t\t${this.getNameInput()}\n\t\t\t\t\t${this.getHiddenNameInput()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetNameTag(): ?HTMLElement\n\t{\n\t\tif (!this.model.isNew())\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-ctl-tag\">${Loc.getMessage('CATALOG_SELECTOR_NEW_TAG_TITLE')}</div>\n\t\t`;\n\t}\n\n\tgetNameInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('nameInput', () => {\n\t\t\tconst input = Tag.render`\n\t\t\t\t<input type=\"text\"\n\t\t\t\t\tclass=\"ui-ctl-element ui-ctl-textbox\"\n\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\tdata-name=\"${Text.encode(this.inputName)}\"\n\t\t\t\t\tvalue=\"${Text.encode(this.getValue())}\"\n\t\t\t\t\tplaceholder=\"${Text.encode(this.getPlaceholder())}\"\n\t\t\t\t\ttitle=\"${Text.encode(this.getValue())}\"\n\t\t\t\t\tonchange=\"${this.handleNameInputHiddenChange.bind(this)}\"\n\t\t\t\t>\n\t\t\t`;\n\n\t\t\tif (this.selector.getConfig('SELECTOR_INPUT_DISABLED', false))\n\t\t\t{\n\t\t\t\tDom.addClass(input, 'ui-ctl-disabled');\n\t\t\t\tinput.setAttribute('disabled', true);\n\t\t\t}\n\n\t\t\treturn input;\n\t\t});\n\t}\n\n\tgetHiddenNameInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('hiddenNameInput', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<input\n\t\t\t\t \ttype=\"hidden\"\n\t\t\t\t\tname=\"${Text.encode(this.inputName)}\"\n\t\t\t\t\tvalue=\"${Text.encode(this.getValue())}\"\n\t\t\t\t>\n\t\t\t`;\n\t\t});\n\t}\n\n\thandleNameInputHiddenChange(event: UIEvent)\n\t{\n\t\tthis.getHiddenNameInput().value = event.target.value;\n\t}\n\n\tgetClearIcon(): HTMLElement\n\t{\n\t\treturn this.cache.remember('closeIcon', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<button\n\t\t\t\t\tclass=\"ui-ctl-after ui-ctl-icon-clear\"\n\t\t\t\t\tonclick=\"${this.handleClearIconClick.bind(this)}\"\n\t\t\t\t></button>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetArrowIcon(): HTMLElement\n\t{\n\t\treturn this.cache.remember('arrowIcon', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<a\n\t\t\t\t\thref=\"${Text.encode(this.model.getDetailPath())}\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\tclass=\"ui-ctl-after ui-ctl-icon-forward\"\n\t\t\t\t>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetSearchIcon(): HTMLElement\n\t{\n\t\treturn this.cache.remember('searchIcon', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<button\n\t\t\t\t\tclass=\"ui-ctl-after ui-ctl-icon-search\"\n\t\t\t\t\tonclick=\"${this.handleSearchIconClick.bind(this)}\"\n\t\t\t\t></button>\n\t\t\t`;\n\t\t});\n\t}\n\n\tlayout(): HTMLElement\n\t{\n\t\tthis.clearInputCache();\n\t\tconst block = Tag.render`<div class=\"ui-ctl ui-ctl-w100 ui-ctl-after-icon\"></div>`;\n\n\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\t\tDom.append(this.getClearIcon(), block);\n\n\t\tif (this.isSearchEnabled())\n\t\t{\n\t\t\tif (this.selector.isProductSearchEnabled())\n\t\t\t{\n\t\t\t\tthis.initHasDialogItems();\n\t\t\t}\n\n\t\t\tthis.toggleIcon(\n\t\t\t\tthis.getSearchIcon(),\n\t\t\t\tType.isStringFilled(this.getFilledValue()) ? 'none' : 'block'\n\t\t\t);\n\t\t\tDom.append(this.getSearchIcon(), block);\n\n\t\t\tEvent.bind(this.getNameInput(), 'click', this.handleClickNameInput.bind(this));\n\t\t\tEvent.bind(this.getNameInput(), 'input', this.handleSearchInput);\n\t\t\tEvent.bind(this.getNameInput(), 'blur', this.handleNameInputBlur.bind(this));\n\t\t\tEvent.bind(this.getNameInput(), 'keydown', this.handleNameInputKeyDown.bind(this));\n\n\t\t\tthis.dialogMode =\n\t\t\t\tthis.model.isCatalogExisted()\n\t\t\t\t\t? DialogMode.SHOW_PRODUCT_ITEM\n\t\t\t\t\t: DialogMode.SHOW_RECENT\n\t\t\t;\n\t\t}\n\n\t\tif (this.showDetailLink() && Type.isStringFilled(this.getValue()))\n\t\t{\n\t\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\t\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\t\tthis.toggleIcon(this.getArrowIcon(), 'block');\n\t\t\tDom.append(this.getArrowIcon(), block);\n\t\t}\n\n\t\tEvent.bind(this.getNameInput(), 'click', this.handleIconsSwitchingOnNameInput.bind(this));\n\t\tEvent.bind(this.getNameInput(), 'input', this.handleIconsSwitchingOnNameInput.bind(this));\n\t\tEvent.bind(this.getNameInput(), 'change', this.handleNameInputChange.bind(this));\n\n\t\tDom.append(this.getNameBlock(), block);\n\t\treturn block;\n\t}\n\n\tshowDetailLink(): boolean\n\t{\n\t\treturn this.isEnabledDetailLink;\n\t}\n\n\tgetDialog(): ?Dialog\n\t{\n\t\treturn this.cache.remember('dialog', () => {\n\t\t\tconst searchTypeId = ProductSearchInput.SEARCH_TYPE_ID ;\n\t\t\tconst entity = {\n\t\t\t\tid: searchTypeId,\n\t\t\t\toptions: {\n\t\t\t\t\tiblockId: this.model.getIblockId(),\n\t\t\t\t\tbasePriceId: this.model.getBasePriceId(),\n\t\t\t\t\tcurrency: this.model.getCurrency(),\n\t\t\t\t},\n\t\t\t\tdynamicLoad: true,\n\t\t\t\tdynamicSearch: true,\n\t\t\t};\n\t\t\tconst restrictedProductTypes = this.selector.getConfig('RESTRICTED_PRODUCT_TYPES', null);\n\t\t\tif (!Type.isNil(restrictedProductTypes))\n\t\t\t{\n\t\t\t\tentity.options.restrictedProductTypes = restrictedProductTypes;\n\t\t\t}\n\n\t\t\tconst params = {\n\t\t\t\tid: this.id + '_' + searchTypeId,\n\t\t\t\theight: 300,\n\t\t\t\twidth: Math.max(this.getNameInput()?.offsetWidth, 565),\n\t\t\t\tcontext: 'catalog-products',\n\t\t\t\ttargetNode: this.getNameInput(),\n\t\t\t\tenableSearch: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tdropdownMode: true,\n\t\t\t\tsearchTabOptions: {\n\t\t\t\t\tstub: true,\n\t\t\t\t\tstubOptions: {\n\t\t\t\t\t\ttitle: Tag.message`${'CATALOG_SELECTOR_IS_EMPTY_TITLE'}`,\n\t\t\t\t\t\tsubtitle:\n\t\t\t\t\t\t\tthis.isAllowedCreateProduct()\n\t\t\t\t\t\t\t\t? Tag.message`${'CATALOG_SELECTOR_IS_EMPTY_SUBTITLE'}`\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t,\n\t\t\t\t\t\tarrow: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.onProductSelect.bind(this),\n\t\t\t\t\t'Search:onItemCreateAsync': this.createProduct.bind(this),\n\t\t\t\t\t'ChangeItem:onClick': this.showChangeNotification.bind(this),\n\t\t\t\t},\n\t\t\t\tentities: [entity]\n\t\t\t};\n\n\t\t\tconst settingsCollection = Extension.getSettings('catalog.product-selector');\n\t\t\tif (Type.isObject(settingsCollection.get('limitInfo')))\n\t\t\t{\n\t\t\t\tparams.footer = ProductCreationLimitedFooter;\n\t\t\t}\n\t\t\telse if (this.model && this.model.isCatalogExisted())\n\t\t\t{\n\t\t\t\tparams.footer = ProductSearchSelectorFooter;\n\t\t\t\tparams.footerOptions = {\n\t\t\t\t\tinputName: this.inputName,\n\t\t\t\t\tallowEditItem: this.isAllowedEditProduct(),\n\t\t\t\t\tallowCreateItem: this.isAllowedCreateProduct(),\n\t\t\t\t\terrorAdminHint: settingsCollection.get('errorAdminHint'),\n\t\t\t\t\tcreationLabel: Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_CREATE'),\n\t\t\t\t\tcurrentValue: this.getValue(),\n\t\t\t\t};\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tparams.searchOptions = { allowCreateItem: this.isAllowedCreateProduct() };\n\t\t\t}\n\n\t\t\treturn new Dialog(params);\n\t\t});\n\t}\n\n\tinitHasDialogItems()\n\t{\n\t\tif (!Type.isNil(this.selector.getConfig('EXIST_DIALOG_ITEMS')))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.selector.getModel().isEmpty())\n\t\t{\n\t\t\tthis.selector.setConfig('EXIST_DIALOG_ITEMS', true);\n\t\t\treturn;\n\t\t}\n\n\t\t// is null, that not send ajax\n\t\tthis.selector.setConfig('EXIST_DIALOG_ITEMS', false);\n\n\t\tconst dialog = this.getDialog();\n\t\tif (dialog.hasDynamicLoad())\n\t\t{\n\t\t\tthis.#loadPreselectedItems();\n\t\t\tdialog.subscribeOnce('onLoad', () => {\n\t\t\t\tif (dialog.getPreselectedItems().length > 1)\n\t\t\t\t{\n\t\t\t\t\tthis.selector.setConfig('EXIST_DIALOG_ITEMS', true);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.selector.setConfig('EXIST_DIALOG_ITEMS', true);\n\t\t}\n\t}\n\n\tisAllowedCreateProduct(): boolean\n\t{\n\t\treturn this.selector.getConfig('IS_ALLOWED_CREATION_PRODUCT', true) && this.selector.checkProductAddRights();\n\t}\n\n\tisAllowedEditProduct(): boolean\n\t{\n\t\treturn this.selector.checkProductEditRights();\n\t}\n\n\thandleNameInputKeyDown(event: KeyboardEvent): void\n\t{\n\t\tconst dialog = this.getDialog();\n\t\tif (event.key === 'Enter' && dialog.getActiveTab() === dialog.getSearchTab())\n\t\t{\n\t\t\t// prevent a form submit\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\tif ((Browser.isMac() && event.metaKey) || event.ctrlKey)\n\t\t\t{\n\t\t\t\tdialog.getSearchTab().getFooter().createItem();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleIconsSwitchingOnNameInput(event: UIEvent): void\n\t{\n\t\tthis.toggleIcon(this.getArrowIcon(), 'none');\n\n\t\tif (Type.isStringFilled(event.target.value))\n\t\t{\n\t\t\tthis.toggleIcon(this.getClearIcon(), 'block');\n\t\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\t\t\tif (this.isSearchEnabled())\n\t\t\t{\n\t\t\t\tthis.toggleIcon(this.getSearchIcon(), 'block');\n\t\t\t}\n\t\t}\n\t}\n\n\tclearInputCache()\n\t{\n\t\tthis.cache.delete('dialog');\n\t\tthis.cache.delete('nameBlock');\n\t\tthis.cache.delete('nameInput');\n\t\tthis.cache.delete('hiddenNameInput');\n\t}\n\n\thandleClearIconClick(event: UIEvent)\n\t{\n\t\tthis.selector.emit('onBeforeClear', {\n\t\t\tselectorId: this.selector.getId(),\n\t\t\trowId: this.selector.getRowId()\n\t\t});\n\n\t\tthis.loadedSelectedItem = null;\n\t\tif (this.selector.isProductSearchEnabled() && !this.model.isEmpty())\n\t\t{\n\t\t\tthis.selector.clearState();\n\t\t\tthis.selector.clearLayout();\n\t\t\tthis.selector.layout();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst newValue = '';\n\t\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\t\t\tthis.onChangeValue(newValue);\n\t\t}\n\n\t\tthis.selector.focusName();\n\n\t\tthis.selector.emit('onClear', {\n\t\t\tselectorId: this.selector.getId(),\n\t\t\trowId: this.selector.getRowId()\n\t\t});\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\n\thandleNameInputChange(event: UIEvent)\n\t{\n\t\tconst value = event.target.value;\n\t\tthis.onChangeValue(value);\n\t}\n\n\tonChangeValue(value: string)\n\t{\n\t\tconst fields = {};\n\t\tthis.getNameInput().title = value;\n\t\tthis.getNameInput().value = value;\n\t\tfields[this.inputName] = value;\n\t\tEventEmitter.emit('ProductSelector::onNameChange', {\n\t\t\trowId: this.selector.getRowId(),\n\t\t\tfields\n\t\t});\n\n\t\tif (!this.selector.isEnabledAutosave())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selector.getModel().setFields(fields);\n\t\tthis.selector.getModel().save().then(() => {\n\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\tid: 'saving_field_notify_name',\n\t\t\t\tcloseButton: false,\n\t\t\t\tcontent: Tag.render`<div>${Loc.getMessage('CATALOG_SELECTOR_SAVING_NOTIFICATION_NAME')}</div>`,\n\t\t\t\tautoHide: true,\n\t\t\t});\n\t\t});\n\t}\n\n\tfocusName()\n\t{\n\t\trequestAnimationFrame(() => this.getNameInput().focus());\n\t}\n\n\tsearchInDialog(): void\n\t{\n\t\tconst searchQuery = this.getFilledValue().trim();\n\t\tif (searchQuery === '')\n\t\t{\n\t\t\tif (this.isHasDialogItems === false)\n\t\t\t{\n\t\t\t\tthis.getDialog().hide();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.loadedSelectedItem = null;\n\t\t\tthis.#showPreselectedItems()\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dialogMode = DialogMode.SEARCHING;\n\t\tthis.#searchItem(searchQuery);\n\t\tthis.isSearchingInProcess = true;\n\t}\n\n\t#showSelectedItem()\n\t{\n\t\tif (!this.selector.isProductSearchEnabled())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst dialog = this.getDialog();\n\t\tdialog.removeItems();\n\n\t\tnew Promise((resolve) => {\n\t\t\tif (!Type.isNil(this.loadedSelectedItem))\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdialog.showLoader();\n\t\t\tajax.runAction(\n\t\t\t\t'catalog.productSelector.getSkuSelectorItem',\n\t\t\t\t{\n\t\t\t\t\tjson: {\n\t\t\t\t\t\tid: this.selector.getModel().getSkuId(),\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tiblockId: this.model.getIblockId(),\n\t\t\t\t\t\t\tbasePriceId: this.model.getBasePriceId(),\n\t\t\t\t\t\t\tcurrency: this.model.getCurrency(),\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\t\t.then((response) => {\n\t\t\t\t\tdialog.hideLoader();\n\t\t\t\t\tthis.loadedSelectedItem = null;\n\t\t\t\t\tif (Type.isObject(response.data) && !dialog.isLoading())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.loadedSelectedItem = dialog.addItem(response.data);\n\t\t\t\t\t}\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t})\n\t\t\t.then(() => {\n\t\t\t\tif (!Type.isNil(this.loadedSelectedItem))\n\t\t\t\t{\n\t\t\t\t\tdialog.setPreselectedItems([this.selector.getModel().getSkuId()]);\n\t\t\t\t\tdialog.getRecentTab().getRootNode().addItem(this.loadedSelectedItem);\n\t\t\t\t\tdialog.selectFirstTab();\n\t\t\t\t\tdialog.getFooter()?.hide();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.searchInDialog();\n\t\t\t\t}\n\t\t\t});\n\n\t\tdialog.getPopup().show();\n\t\tdialog.getFooter()?.hide();\n\t}\n\n\t#loadPreselectedItems()\n\t{\n\t\tconst dialog = this.getDialog();\n\t\tif (dialog.isLoading())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.loadedSelectedItem)\n\t\t{\n\t\t\tdialog.removeItems();\n\t\t\tdialog.loadState = 'UNSENT';\n\t\t\tthis.loadedSelectedItem = null;\n\t\t}\n\n\t\tdialog.load();\n\t}\n\n\t#showPreselectedItems()\n\t{\n\t\tif (!this.selector.isProductSearchEnabled())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dialogMode = DialogMode.SHOW_RECENT;\n\t\tconst dialog = this.getDialog();\n\t\tthis.#loadPreselectedItems();\n\n\t\tdialog.selectFirstTab();\n\t\tdialog.getFooter()?.hide();\n\t\tdialog.show();\n\t}\n\n\t#searchItem(searchQuery: string = '')\n\t{\n\t\tif (!this.selector.isProductSearchEnabled())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst dialog = this.getDialog();\n\t\tdialog.getPopup().show();\n\t\tdialog.search(searchQuery);\n\t}\n\n\thandleClickNameInput(): void\n\t{\n\t\tconst dialog = this.getDialog();\n\n\t\tif (\n\t\t\tdialog.isOpen()\n\t\t\t|| (this.getFilledValue() === '' && this.isHasDialogItems === false)\n\t\t)\n\t\t{\n\t\t\tdialog.hide();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.showItems();\n\t}\n\n\tshowItems()\n\t{\n\t\tif (this.getFilledValue() === '')\n\t\t{\n\t\t\tthis.#showPreselectedItems();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.model.isCatalogExisted() || this.dialogMode !== DialogMode.SHOW_PRODUCT_ITEM)\n\t\t{\n\t\t\tthis.searchInDialog();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#showSelectedItem();\n\t}\n\n\thandleNameInputBlur(event: UIEvent)\n\t{\n\t\t// timeout to toggle clear icon handler while cursor is inside of name input\n\t\tsetTimeout(() => {\n\t\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\n\t\t\tif (this.showDetailLink() && Type.isStringFilled(this.getValue()))\n\t\t\t{\n\t\t\t\tif (this.isSearchEnabled())\n\t\t\t\t{\n\t\t\t\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\t\t\t}\n\t\t\t\tthis.toggleIcon(this.getArrowIcon(), 'block');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.toggleIcon(this.getArrowIcon(), 'none');\n\t\t\t\tif (this.isSearchEnabled())\n\t\t\t\t{\n\t\t\t\t\tthis.toggleIcon(\n\t\t\t\t\t\tthis.getSearchIcon(),\n\t\t\t\t\t\tType.isStringFilled(this.getFilledValue()) ? 'none' : 'block'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}, 200);\n\n\t\tif (this.isSearchEnabled() && this.selector.isEnabledEmptyProductError())\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!this.selector.inProcess()\n\t\t\t\t\t&& (\n\t\t\t\t\t\tthis.model.isEmpty()\n\t\t\t\t\t\t|| !Type.isStringFilled(this.getFilledValue())\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tthis.model.getErrorCollection().setError(\n\t\t\t\t\t\tSelectorErrorCode.NOT_SELECTED_PRODUCT,\n\t\t\t\t\t\tthis.selector.getEmptySelectErrorMessage()\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.selector.layoutErrors();\n\t\t\t\t}\n\t\t\t}, 200);\n\t\t}\n\t}\n\n\thandleSearchIconClick(event: UIEvent)\n\t{\n\t\tthis.searchInDialog();\n\t\tthis.focusName();\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\n\tgetImmutableFieldNames(): []\n\t{\n\t\treturn this.immutableFieldNames;\n\t}\n\n\tsetInputValueOnProductSelect(item: Item)\n\t{\n\t\titem.getDialog().getTargetNode().value = item.getTitle()\n\t}\n\n\tonProductSelect(event)\n\t{\n\t\tconst item = event.getData().item;\n\t\tthis.setInputValueOnProductSelect(item);\n\n\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\tthis.clearErrors();\n\t\tif (this.selector)\n\t\t{\n\t\t\tconst isNew = item.getCustomData().get('isNew');\n\t\t\tconst immutableFields = [];\n\t\t\tthis.getImmutableFieldNames().forEach((key) => {\n\t\t\t\tif (!Type.isNil(item.getCustomData().get(key)))\n\t\t\t\t{\n\t\t\t\t\tthis.model.setField(key, item.getCustomData().get(key));\n\t\t\t\t\timmutableFields.push(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.selector.onProductSelect(\n\t\t\t\titem.getId(),\n\t\t\t\t\t{\n\t\t\t\t\t\tisNew,\n\t\t\t\t\t\timmutableFields,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.selector.clearLayout();\n\t\t\tthis.selector.layout();\n\t\t}\n\n\t\tthis.dialogMode = DialogMode.SHOW_PRODUCT_ITEM;\n\t\tthis.loadedSelectedItem = item;\n\t\tthis.cache.delete('dialog');\n\t}\n\n\tclearErrors()\n\t{\n\t\tconst errors = this.model.getErrorCollection().getErrors();\n\t\tfor (const code in errors)\n\t\t{\n\t\t\tif (ProductSelector.ErrorCodes.getCodes().includes(code))\n\t\t\t{\n\t\t\t\tthis.model.getErrorCollection().removeError(code);\n\t\t\t}\n\t\t}\n\t}\n\n\tcreateProductModelFromSearchQuery(searchQuery: string): ProductModel\n\t{\n\t\tconst fields = {...this.selector.getModel().getFields()};\n\t\tfields[this.inputName] = searchQuery;\n\n\t\treturn new ProductModel({\n\t\t\tisSimpleModel: true,\n\t\t\tisNew: true,\n\t\t\tcurrency: this.selector.options.currency,\n\t\t\tiblockId: this.selector.getModel().getIblockId(),\n\t\t\tbasePriceId: this.selector.getModel().getBasePriceId(),\n\t\t\tfields\n\t\t})\n\t}\n\n\tcreateProduct(event): ?Promise\n\t{\n\t\tif (this.ajaxInProcess)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ajaxInProcess = true;\n\t\tconst dialog: Dialog = event.getTarget();\n\t\tconst {searchQuery} = event.getData();\n\t\tconst newProduct = this.createProductModelFromSearchQuery(searchQuery.getQuery());\n\n\t\tEventEmitter.emit(this.selector, 'onBeforeCreate', {model: newProduct});\n\n\t\treturn new Promise(\n\t\t\t(resolve, reject) => {\n\t\t\t\tif (!this.checkCreationModel(newProduct))\n\t\t\t\t{\n\t\t\t\t\tthis.ajaxInProcess = false;\n\t\t\t\t\tdialog.hide();\n\t\t\t\t\treject();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdialog.showLoader();\n\t\t\t\tnewProduct.save()\n\t\t\t\t\t.then(response => {\n\t\t\t\t\t\tdialog.hideLoader();\n\t\t\t\t\t\tconst id = Text.toInteger(response.data.id);\n\t\t\t\t\t\tconst item = dialog.addItem({\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tentityId: ProductSearchInput.SEARCH_TYPE_ID,\n\t\t\t\t\t\t\ttitle: searchQuery.getQuery(),\n\t\t\t\t\t\t\ttabs: dialog.getRecentTab().getId(),\n\t\t\t\t\t\t\tcustomData: {\n\t\t\t\t\t\t\t\tisNew: true,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.selector.getModel().setOption('isSimpleModel', false);\n\t\t\t\t\t\tthis.selector.getModel().setOption('isNew', true);\n\n\t\t\t\t\t\tthis.getImmutableFieldNames().forEach((name) => {\n\t\t\t\t\t\t\tthis.selector.getModel().setField(name, newProduct.getField(name));\n\t\t\t\t\t\t\tthis.selector.getModel().setOption(name, newProduct.getField(name));\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (item)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\titem.select();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdialog.hide();\n\t\t\t\t\t\tthis.cache.delete('dialog');\n\t\t\t\t\t\tthis.ajaxInProcess = false;\n\t\t\t\t\t\tthis.isHasDialogItems = true;\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((errorResponse) => {\n\t\t\t\t\t\tdialog.hideLoader();\n\t\t\t\t\t\terrorResponse.errors.forEach((error) => {\n\t\t\t\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\t\t\t\tcloseButton: true,\n\t\t\t\t\t\t\t\tcontent: Tag.render`<div>${error.message}</div>`,\n\t\t\t\t\t\t\t\tautoHide: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.ajaxInProcess = false;\n\t\t\t\t\t\treject();\n\t\t\t\t\t});\n\t\t\t});\n\t}\n\n\tcheckCreationModel(creationModel: ProductModel): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tshowChangeNotification(event): void\n\t{\n\t\tconst {query} = event.getData();\n\t\tconst options = {\n\t\t\ttitle: Loc.getMessage('CATALOG_SELECTOR_SAVING_NOTIFICATION_' + this.selector.getType()),\n\t\t\tevents: {\n\t\t\t\tonSave: () => {\n\t\t\t\t\tif (this.selector)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.selector.getModel().setField(this.inputName, query);\n\t\t\t\t\t\tthis.selector.getModel().save([this.inputName])\n\t\t\t\t\t\t\t.catch((errorResponse) => {\n\t\t\t\t\t\t\t\terrorResponse.errors.forEach((error) => {\n\t\t\t\t\t\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\t\t\t\t\t\tcloseButton: true,\n\t\t\t\t\t\t\t\t\t\tcontent: Tag.render`<div>${error.message}</div>`,\n\t\t\t\t\t\t\t\t\t\tautoHide: true,\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}\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\n\t\tif (this.selector.getConfig('ROLLBACK_INPUT_AFTER_CANCEL', false))\n\t\t{\n\t\t\toptions.declineCancelTitle = Loc.getMessage('CATALOG_SELECTOR_SAVING_NOTIFICATION_CANCEL_TITLE');\n\t\t\toptions.events.onCancel = () => {\n\t\t\t\tthis.selector.clearLayout();\n\t\t\t\tthis.selector.layout();\n\t\t\t};\n\t\t}\n\n\t\tthis.selector.getModel().showSaveNotifier(\n\t\t\t'nameChanger_' + this.selector.getId(),\n\t\t\toptions\n\t\t);\n\t}\n\n\tgetPlaceholder(): string\n\t{\n\t\treturn (\n\t\t\tthis.isSearchEnabled() && this.model.isEmpty()\n\t\t\t\t? Loc.getMessage('CATALOG_SELECTOR_BEFORE_SEARCH_TITLE')\n\t\t\t\t: Loc.getMessage('CATALOG_SELECTOR_VIEW_NAME_TITLE')\n\t\t);\n\t}\n\n\tremoveSpotlight()\n\t{\n\t}\n\n\tremoveQrAuth()\n\t{\n\t}\n}\n","import {Runtime, Tag, Text, Type, Dom} from 'main.core';\nimport './component.css';\nimport {ProductSelector} from 'catalog.product-selector';\n\nexport class ProductImageInput\n{\n\tconstructor(id, options = {})\n\t{\n\t\tthis.id = id || Text.getRandom();\n\t\tthis.selector = options.selector || null;\n\t\tif (!(this.selector instanceof ProductSelector))\n\t\t{\n\t\t\tthrow new Error('Product selector instance not found.');\n\t\t}\n\n\t\tthis.config = options.config || {};\n\n\t\tif (!Type.isStringFilled(this.selector.getModel()?.getImageCollection().getEditInput()))\n\t\t{\n\t\t\tthis.restoreDefaultInputHtml();\n\t\t}\n\n\t\tthis.enableSaving = options.enableSaving;\n\n\t\tthis.uploaderFieldMap = {};\n\t}\n\n\tgetId()\n\t{\n\t\treturn this.id;\n\t}\n\n\tsetId(id)\n\t{\n\t\tthis.id = id;\n\t}\n\n\tsetView(html): void\n\t{\n\t\tthis.selector.getModel()?.getImageCollection().setPreview(html);\n\t}\n\n\tsetInputHtml(html): void\n\t{\n\t\tthis.selector.getModel()?.getImageCollection().setEditInput(html);\n\t}\n\n\trestoreDefaultInputHtml(): void\n\t{\n\t\tconst defaultInput = `\n\t\t\t<div class='ui-image-input-container ui-image-input-img--disabled'>\n\t\t\t\t<div class='adm-fileinput-wrapper '>\n\t\t\t\t\t<div class='adm-fileinput-area mode-pict adm-fileinput-drag-area'></div>\n\t\t\t\t</div>\n\t\t\t</div>\n`\t\t;\n\n\t\tthis.selector.getModel()?.getImageCollection().setEditInput(defaultInput);\n\t\tthis.selector.getModel()?.getImageCollection().setPreview(defaultInput);\n\t}\n\n\tisViewMode(): boolean\n\t{\n\t\treturn this.selector && (this.selector.isViewMode() || !this.selector.model.isSaveable());\n\t}\n\n\tisEnabledLiveSaving(): boolean\n\t{\n\t\treturn this.enableSaving;\n\t}\n\n\tlayout(): HTMLElement\n\t{\n\t\tconst imageContainer = Tag.render`<div></div>`;\n\t\tconst html =\n\t\t\tthis.isViewMode()\n\t\t\t\t? this.selector.getModel()?.getImageCollection()?.getPreview()\n\t\t\t\t: this.selector.getModel()?.getImageCollection()?.getEditInput()\n\t\t;\n\n\t\tRuntime.html(imageContainer, html);\n\n\t\treturn imageContainer;\n\t}\n}","import {Loc, Tag, Dom, Type} from 'main.core';\nimport {BaseEvent} from \"main.core.events\";\nimport ProductSearchSelectorFooter from \"./product-search-selector-footer\";\n\nexport class BarcodeSearchSelectorFooter extends ProductSearchSelectorFooter\n{\n\tconstructor(id, options = {})\n\t{\n\t\tsuper(id, options);\n\t\tthis.isEmptyBarcode = options.isEmptyBarcode;\n\t\tthis.getDialog().subscribe('SearchTab:onLoad', this.handleOnSearchLoad.bind(this));\n\t}\n\n\tgetContent(): HTMLElement\n\t{\n\t\tthis.barcodeContent = super.getContent();\n\t\tthis.scannerContent = this.getScannerContent();\n\t\tDom.style(this.barcodeContent, 'display', 'none');\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"catalog-footers-container\">\n\t\t\t\t${this.barcodeContent}\n\t\t\t\t${this.scannerContent}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tisViewEditButton(): boolean\n\t{\n\t\treturn !this.isEmptyBarcode && super.isViewEditButton();\n\t}\n\n\tgetScannerContent(): HTMLElement\n\t{\n\t\tconst phrase = Tag.render`\n\t\t\t<div>${Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_BARCODE')}</div>\n\t\t`;\n\n\t\tconst createButton = phrase.querySelector('create-button');\n\n\t\tDom.replace(createButton, this.getScannerLabelContainer());\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-selector-search-footer-box\">\n\t\t\t\t${phrase}\n\t\t\t\t${this.getLoaderContainer()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetScannerLabelContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('scannerLabel', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span onclick=\"${this.handleScannerClick.bind(this)}\">\n\t\t\t\t\t<span class=\"ui-selector-footer-link ui-selector-footer-link-add footer-link--warehouse-barcode-icon\">\n\t\t\t\t\t\t${Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_BARCODE_START_SCAN_LABEL')}\n\t\t\t\t\t</span>\n\t\t\t\t\t${this.getScannerQueryContainer()}\n\t\t\t\t</span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetScannerQueryContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('scanner_name-container', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span class=\"ui-selector-search-footer-query\"></span>\n\t\t\t`;\n\t\t});\n\t}\n\n\thandleScannerClick(): void\n\t{\n\t\tconst inputEntity = this.options?.inputEntity;\n\t\tif (inputEntity)\n\t\t{\n\t\t\tinputEntity.startMobileScanner();\n\t\t}\n\t}\n\n\thandleOnSearch(event: BaseEvent): void\n\t{\n\t\tconst { query } = event.getData();\n\n\t\tif (!Type.isStringFilled(query))\n\t\t{\n\t\t\tthis.show();\n\t\t\tDom.style(this.scannerContent, 'display', '');\n\t\t\tDom.style(this.barcodeContent, 'display', 'none');\n\t\t}\n\t\telse if (this.options.currentValue === query)\n\t\t{\n\t\t\tthis.hide();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.show();\n\t\t\tDom.style(this.barcodeContent, 'display', '');\n\t\t\tDom.style(this.scannerContent, 'display', 'none');\n\t\t}\n\n\t\tthis.getQueryContainer().textContent = \" \" + query;\n\t\tthis.getScannerQueryContainer().textContent = \" \" + query;\n\t}\n\n\thandleOnSearchLoad(event: BaseEvent): void\n\t{\n\t\tconst {searchTab} = event.getData();\n\t\tthis.getDialog().getItems().forEach(item => {\n\t\t\tif (item.getCustomData().get('BARCODE') === searchTab.getLastSearchQuery().getQuery())\n\t\t\t{\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t});\n\t}\n}","import {Extension, Loc, Tag, Type, Text, Dom, Event, userOptions, ajax} from 'main.core';\nimport {Dialog, Item} from 'ui.entity-selector';\nimport './component.css';\nimport {EventEmitter} from 'main.core.events';\nimport {ProductModel} from 'catalog.product-model';\nimport ProductCreationLimitedFooter from './product-creation-limited-footer';\nimport {ProductSearchInput} from './product-search-input';\nimport {ProductSelector} from 'catalog.product-selector';\nimport {BarcodeScanner} from 'catalog.barcode-scanner';\nimport 'ui.notification';\nimport {BarcodeSearchSelectorFooter} from './barcode-search-selector-footer';\nimport {QrAuthorization} from 'ui.qrauthorization';\nimport {SelectorErrorCode} from './selector-error-code';\nimport 'spotlight';\nimport {Guide} from 'ui.tour';\n\nexport class BarcodeSearchInput extends ProductSearchInput\n{\n\tstatic SEARCH_TYPE_ID = 'barcode';\n\n\tonFocusHandler = this.handleFocusEvent.bind(this);\n\tonBlurHandler = this.handleBlurEvent.bind(this);\n\n\tconstructor(id, options = {})\n\t{\n\t\tsuper(id, options);\n\n\t\tthis.focused = false;\n\t\tthis.settingsCollection = Extension.getSettings('catalog.product-selector');\n\n\t\tthis.isInstalledMobileApp =\n\t\t\tthis.selector.getConfig('IS_INSTALLED_MOBILE_APP')\n\t\t\t|| this.settingsCollection.get('isInstallMobileApp')\n\t\t;\n\n\t\tif (\n\t\t\t!this.settingsCollection.get('isEnabledQrAuth')\n\t\t\t&& this.selector.getConfig('ENABLE_BARCODE_QR_AUTH', true)\n\t\t)\n\t\t{\n\t\t\tthis.qrAuth = new QrAuthorization();\n\t\t\tthis.qrAuth.createQrCodeImage();\n\t\t}\n\t}\n\n\tdestroy()\n\t{\n\t\tEvent.unbind(this.getNameInput(), 'focus', this.onFocusHandler);\n\t\tEvent.unbind(this.getNameInput(), 'blur', this.onBlurHandler);\n\t}\n\n\thandleFocusEvent()\n\t{\n\t\tthis.focused = true;\n\t}\n\n\thandleBlurEvent()\n\t{\n\t\tthis.focused = false;\n\t}\n\n\tisSearchEnabled(): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tshowDetailLink(): boolean\n\t{\n\t\treturn false\n\t}\n\n\tgetNameBlock(): HTMLElement\n\t{\n\t\treturn this.cache.remember('nameBlock', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t${this.getNameInput()}\n\t\t\t\t\t${this.getHiddenNameInput()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetDialog(): ?Dialog\n\t{\n\t\treturn this.cache.remember('dialog', () => {\n\t\t\tconst entity = {\n\t\t\t\tid: BarcodeSearchInput.SEARCH_TYPE_ID,\n\t\t\t\toptions: {\n\t\t\t\t\tiblockId: this.model.getIblockId(),\n\t\t\t\t\tbasePriceId: this.model.getBasePriceId(),\n\t\t\t\t\tcurrency: this.model.getCurrency(),\n\t\t\t\t},\n\t\t\t\tdynamicLoad: true,\n\t\t\t\tdynamicSearch: true,\n\t\t\t\tsearchFields: [\n\t\t\t\t\t{ name: 'title', type: 'string', system: true, searchable: false },\n\t\t\t\t],\n\t\t\t};\n\n\t\t\tconst restrictedProductTypes = this.selector.getConfig('RESTRICTED_PRODUCT_TYPES', null);\n\t\t\tif (!Type.isNil(restrictedProductTypes))\n\t\t\t{\n\t\t\t\tentity.options.restrictedProductTypes = restrictedProductTypes;\n\t\t\t}\n\n\t\t\tconst params = {\n\t\t\t\tid: this.id + '_' + BarcodeSearchInput.SEARCH_TYPE_ID,\n\t\t\t\theight: 300,\n\t\t\t\twidth: Math.max(this.getNameInput()?.offsetWidth, 565),\n\t\t\t\tcontext: null,\n\t\t\t\ttargetNode: this.getNameInput(),\n\t\t\t\tenableSearch: false,\n\t\t\t\tmultiple: false,\n\t\t\t\tdropdownMode: true,\n\t\t\t\tsearchTabOptions: {\n\t\t\t\t\tstub: true,\n\t\t\t\t\tstubOptions: {\n\t\t\t\t\t\ttitle: Tag.message`${'CATALOG_SELECTOR_IS_EMPTY_TITLE'}`,\n\t\t\t\t\t\tsubtitle:\n\t\t\t\t\t\t\tthis.isAllowedCreateProduct()\n\t\t\t\t\t\t\t\t? Tag.message`${'CATALOG_SELECTOR_IS_EMPTY_SUBTITLE'}`\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t,\n\t\t\t\t\t\tarrow: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.onProductSelect.bind(this),\n\t\t\t\t\t'Search:onItemCreateAsync': this.createProduct.bind(this),\n\t\t\t\t\t'ChangeItem:onClick': this.showChangeNotification.bind(this),\n\t\t\t\t},\n\t\t\t\tentities: [entity]\n\t\t\t};\n\n\t\t\tif (this.model.getSkuId() && !Type.isStringFilled(this.model.getField(this.inputName)))\n\t\t\t{\n\t\t\t\tparams.preselectedItems = [[BarcodeSearchInput.SEARCH_TYPE_ID, this.model.getSkuId()]];\n\t\t\t}\n\n\t\t\tif (Type.isObject(this.settingsCollection.get('limitInfo')))\n\t\t\t{\n\t\t\t\tparams.footer = ProductCreationLimitedFooter;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tparams.footer = BarcodeSearchSelectorFooter;\n\t\t\t\tparams.footerOptions = {\n\t\t\t\t\tinputEntity: this,\n\t\t\t\t\tisEmptyBarcode: !this.model || !this.model.isCatalogExisted(),\n\t\t\t\t\tinputName: this.inputName,\n\t\t\t\t\terrorAdminHint: this.settingsCollection.get('errorAdminHint'),\n\t\t\t\t\tallowEditItem: this.isAllowedEditProduct(),\n\t\t\t\t\tallowCreateItem: this.isAllowedCreateProduct(),\n\t\t\t\t\tcreationLabel: Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_CREATE_WITH_BARCODE'),\n\t\t\t\t\tcurrentValue: this.getValue(),\n\t\t\t\t\tsearchOptions: {\n\t\t\t\t\t\tallowCreateItem: this.isAllowedCreateProduct(),\n\t\t\t\t\t\tfooterOptions: {\n\t\t\t\t\t\t\tlabel: Loc.getMessage('CATALOG_SELECTOR_SEARCH_POPUP_FOOTER_CREATE_WITH_BARCODE')\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 new Dialog(params);\n\t\t});\n\t}\n\n\tlayoutMobileQrPopup(): HTMLElement\n\t{\n\t\treturn this.cache.remember('qrMobilePopup', () => {\n\n\t\t\tconst closeIcon = Tag.render`<span class=\"popup-window-close-icon\"></span>`;\n\t\t\tEvent.bind(closeIcon, 'click', this.closeMobilePopup.bind(this));\n\n\t\t\tlet sendButton = '';\n\t\t\tlet helpButton = '';\n\t\t\tif (top.BX.Helper)\n\t\t\t{\n\t\t\t\thelpButton = Tag.render`\n\t\t\t\t\t<a class=\"product-selector-mobile-popup-link ui-btn ui-btn-light-border ui-btn-round\">\n\t\t\t\t\t\t${Loc.getMessage('CATALOG_SELECTOR_MOBILE_POPUP_HELP_BUTTON')}\n\t\t\t\t\t</a>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(helpButton, 'click', () => {\n\t\t\t\t\ttop.BX.Helper.show(\"redirect=detail&code=14956818\");\n\t\t\t\t});\n\n\t\t\t\tsendButton = Tag.render`\n\t\t\t\t\t<a class=\"product-selector-mobile-popup-link ui-btn ui-btn-link\">\n\t\t\t\t\t\t${Loc.getMessage('CATALOG_SELECTOR_MOBILE_POPUP_SEND_PUSH_BUTTON')}\n\t\t\t\t\t</a>\n\t\t\t\t`;\n\n\t\t\t\tEvent.bind(sendButton, 'click', () => {\n\t\t\t\t\ttop.BX.Helper.show(\"redirect=detail&code=15042444\");\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn Tag.render`\n\t\t\t\t<div data-role=\"mobile-popup\">\n\t\t\t\t\t<div class=\"product-selector-mobile-popup-overlay\"></div>\n\t\t\t\t\t<div class=\"product-selector-mobile-popup-content\">\n\t\t\t\t\t\t<div class=\"product-selector-mobile-popup-title\">${Loc.getMessage('CATALOG_SELECTOR_MOBILE_POPUP_TITLE')}</div>\n\t\t\t\t\t\t<div class=\"product-selector-mobile-popup-text\">${Loc.getMessage('CATALOG_SELECTOR_MOBILE_POPUP_INSTRUCTION')}</div>\n\t\t\t\t\t\t<div class=\"product-selector-mobile-popup-qr\">\n\t\t\t\t\t\t\t${this.qrAuth.getQrNode()}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"product-selector-mobile-popup-link-container\">\n\t\t\t\t\t\t\t${helpButton}\n\t\t\t\t\t\t\t${sendButton}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t${closeIcon}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tcloseMobilePopup()\n\t{\n\t\tthis.removeQrAuth();\n\n\t\tajax\n\t\t\t.runAction(\n\t\t\t\t'catalog.ProductSelector.isInstalledMobileApp',\n\t\t\t\t{\n\t\t\t\t\tjson: {}\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then((result) => {\n\t\t\t\tthis.selector.emit('onBarcodeQrClose', {});\n\n\t\t\t\tif (result.data === true)\n\t\t\t\t{\n\t\t\t\t\tthis.selector.emit('onBarcodeScannerInstallChecked', {});\n\t\t\t\t\tthis.isInstalledMobileApp = true;\n\t\t\t\t}\n\t\t\t})\n\t\t;\n\n\t\tuserOptions.save('product-selector', 'barcodeQrAuth', 'showed', 'Y');\n\t}\n\n\thandleClickNameInput(event: UIEvent)\n\t{\n\t\tif (this.qrAuth && this.getDialog().getContainer())\n\t\t{\n\t\t\tif (!Dom.hasClass(this.getDialog().getContainer(), 'qr-barcode-info'))\n\t\t\t{\n\t\t\t\tDom.addClass(this.getDialog().getContainer(),'qr-barcode-info');\n\t\t\t}\n\n\t\t\tif (this.getDialog().getContainer())\n\t\t\t{\n\t\t\t\tDom.append(this.layoutMobileQrPopup(), this.getDialog().getContainer());\n\t\t\t}\n\t\t}\n\n\t\tsuper.handleClickNameInput(event);\n\t}\n\n\tshowItems()\n\t{\n\t\tthis.searchInDialog();\n\t}\n\n\tonChangeValue(value: string)\n\t{\n\t\tconst fields = {};\n\n\t\tthis.getNameInput().title = value;\n\t\tthis.getNameInput().value = value;\n\n\t\tfields[this.inputName] = value;\n\n\t\tEventEmitter.emit('ProductSelector::onBarcodeChange', {\n\t\t\trowId: this.selector.getRowId(),\n\t\t\tfields\n\t\t});\n\n\t\tthis.selector.emit('onBarcodeChange', {value});\n\n\t\tif (this.selector.isEnabledAutosave())\n\t\t{\n\t\t\tthis.selector.getModel().setField(this.inputName, value);\n\t\t\tthis.selector.getModel().showSaveNotifier(\n\t\t\t\t'barcodeChanger_' + this.selector.getId(),\n\t\t\t\t{\n\t\t\t\t\ttitle: Loc.getMessage('CATALOG_SELECTOR_SAVING_NOTIFICATION_BARCODE'),\n\t\t\t\t\tdisableCancel: true,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonSave: () => {\n\t\t\t\t\t\t\tif (this.selector)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.selector.getModel().save([this.inputName]);\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\tsearchInDialog(): void\n\t{\n\t\tconst searchQuery = this.getFilledValue().trim();\n\t\tthis.searchByBarcode(searchQuery);\n\t}\n\n\tsearchByBarcode(searchQuery: string = ''): void\n\t{\n\t\tif (!this.selector.isProductSearchEnabled())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst dialog = this.getDialog();\n\t\tif (!dialog)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tdialog.removeItems();\n\t\tif (!Type.isStringFilled(searchQuery))\n\t\t{\n\t\t\tif (this.model && this.model.isCatalogExisted())\n\t\t\t{\n\t\t\t\tdialog.setPreselectedItems([[BarcodeSearchInput.SEARCH_TYPE_ID, this.model.getSkuId()]])\n\t\t\t\tdialog.loadState = 'UNSENT';\n\t\t\t\tdialog.load();\n\t\t\t}\n\t\t}\n\n\t\tdialog.show();\n\t\tdialog.search(searchQuery);\n\t}\n\n\thandleNameInputBlur(event: UIEvent)\n\t{\n\t\t// timeout to toggle clear icon handler while cursor is inside of name input\n\t\tsetTimeout(() => {\n\t\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\n\t\t\tif (this.showDetailLink() && Type.isStringFilled(this.getValue()))\n\t\t\t{\n\t\t\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\t\t\tthis.toggleIcon(this.getArrowIcon(), 'block');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.toggleIcon(this.getArrowIcon(), 'none');\n\t\t\t\tthis.toggleIcon(\n\t\t\t\t\tthis.getSearchIcon(),\n\t\t\t\t\tType.isStringFilled(this.getFilledValue()) ? 'none' : 'block'\n\t\t\t\t);\n\t\t\t}\n\t\t}, 200);\n\t}\n\n\tsetInputValueOnProductSelect(item: Item)\n\t{\n\t\titem.getDialog().getTargetNode().value = item.getSubtitle()\n\t}\n\n\tgetCreationProduct(name)\n\t{\n\t\tconst fields = {...this.selector.getModel().getFields()};\n\t\tfields[ProductSelector.INPUT_FIELD_NAME] = name;\n\n\t\treturn new ProductModel({\n\t\t\tisSimpleModel: true,\n\t\t\tisNew: true,\n\t\t\tcurrency: this.selector.options.currency,\n\t\t\tiblockId: this.selector.getModel().getIblockId(),\n\t\t\tbasePriceId: this.selector.getModel().getBasePriceId(),\n\t\t\tfields\n\t\t})\n\t}\n\n\tcreateProductModelFromSearchQuery(searchQuery: string)\n\t{\n\t\tconst model = super.createProductModelFromSearchQuery(searchQuery);\n\t\tmodel.setField(ProductSelector.INPUT_FIELD_NAME, Loc.getMessage('CATALOG_SELECTOR_NEW_BARCODE_PRODUCT_NAME'));\n\t\tmodel.setField(this.inputName, searchQuery);\n\n\t\treturn model;\n\t}\n\n\tcheckCreationModel(creationModel: ProductModel): boolean\n\t{\n\t\tif (!Type.isStringFilled(creationModel.getField(ProductSelector.INPUT_FIELD_NAME)))\n\t\t{\n\t\t\tthis.model.getErrorCollection().setError(\n\t\t\t\tSelectorErrorCode.NOT_SELECTED_PRODUCT,\n\t\t\t\tLoc.getMessage('CATALOG_SELECTOR_EMPTY_TITLE')\n\t\t\t);\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tgetPlaceholder(): string\n\t{\n\t\treturn (\n\t\t\tthis.isSearchEnabled() && this.model.isEmpty()\n\t\t\t\t? Loc.getMessage('CATALOG_SELECTOR_BEFORE_SEARCH_BARCODE_TITLE')\n\t\t\t\t: Loc.getMessage('CATALOG_SELECTOR_VIEW_BARCODE_TITLE')\n\t\t);\n\t}\n\n\thandleClearIconClick(event: UIEvent)\n\t{\n\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\t\tthis.onChangeValue('');\n\n\t\tthis.selector.focusName();\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\n\tstartMobileScanner(event)\n\t{\n\t\tif (this.isInstalledMobileApp)\n\t\t{\n\t\t\tthis.sendMobilePush(event);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.qrAuth)\n\t\t{\n\t\t\tthis.qrAuth = new QrAuthorization();\n\t\t\tthis.qrAuth.createQrCodeImage();\n\t\t}\n\n\t\tif (this.getDialog().isOpen())\n\t\t{\n\t\t\tthis.getDialog().hide();\n\t\t\tthis.getDialog().subscribeOnce('onHide', this.handleClickNameInput.bind(this));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.handleClickNameInput(event);\n\t\t}\n\t}\n\n\tsendMobilePush(event)\n\t{\n\t\tevent?.preventDefault();\n\t\tthis.getDialog().hide();\n\t\tthis.getNameInput().focus();\n\n\t\tif (!this.selector.isEnabledMobileScanning())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst token = this.selector.getMobileScannerToken();\n\t\tBarcodeScanner.open(token);\n\n\t\tconst repeatLink = Tag.render`<span class='ui-notification-balloon-action'>${Loc.getMessage('CATALOG_SELECTOR_SEND_PUSH_ON_SCANNER_NOTIFICATION_REPEAT')}</span>`;\n\t\tEvent.bind(repeatLink, 'click', this.sendMobilePush.bind(this));\n\n\t\tconst content = Tag.render`\n\t\t\t<div>\n\t\t\t\t<span>${Loc.getMessage('CATALOG_SELECTOR_SEND_PUSH_ON_SCANNER_NOTIFICATION')}</span>\n\t\t\t\t${repeatLink}\n\t\t\t</div>\n\t\t`;\n\n\t\tBX.UI.Notification.Center.notify({\n\t\t\tcontent,\n\t\t\tcategory: 'sending_push_barcode_scanner_notification',\n\t\t\tautoHideDelay: 5000,\n\t\t});\n\t}\n\n\tgetProductIdByBarcode(barcode)\n\t{\n\t\treturn ajax.runAction(\n\t\t\t'catalog.ProductSelector.getProductIdByBarcode',\n\t\t\t{\n\t\t\t\tjson: {\n\t\t\t\t\tbarcode: barcode,\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t}\n\n\tapplyScannerData(barcode)\n\t{\n\t\tthis.getProductIdByBarcode(barcode).then((response) => {\n\t\t\tconst productId = response?.data;\n\t\t\tif (productId)\n\t\t\t{\n\t\t\t\tthis.selectScannedBarcodeProduct(productId);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.searchByBarcode(barcode);\n\t\t\t}\n\t\t\tthis.getNameInput().value = Text.encode(barcode);\n\t\t});\n\t}\n\n\tselectScannedBarcodeProduct(productId)\n\t{\n\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\tthis.clearErrors();\n\t\tif (this.selector)\n\t\t{\n\t\t\tthis.selector.onProductSelect(\n\t\t\t\tproductId,\n\t\t\t\t{\n\t\t\t\t\tisNew: false,\n\t\t\t\t\timmutableFields: [],\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.selector.clearLayout();\n\t\t\tthis.selector.layout();\n\t\t}\n\n\t\tthis.cache.delete('dialog');\n\t}\n\n\tgetBarcodeIcon(): HTMLElement\n\t{\n\t\treturn this.cache.remember('barcodeIcon', () => {\n\t\t\tconst barcodeIcon = Tag.render`\n\t\t\t\t<button\tclass=\"ui-ctl-before warehouse-barcode-icon\" title=\"${Loc.getMessage('CATALOG_SELECTOR_BARCODE_ICON_TITLE')}\"></button>\n\t\t\t`;\n\n\t\t\tif (\n\t\t\t\t!this.settingsCollection.get('isShowedBarcodeSpotlightInfo')\n\t\t\t\t&& this.settingsCollection.get('isAllowedShowBarcodeSpotlightInfo')\n\t\t\t\t&& this.selector.getConfig('ENABLE_INFO_SPOTLIGHT', true)\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.spotlight = new BX.SpotLight(\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'selector_barcode_scanner_info',\n\t\t\t\t\t\ttargetElement: barcodeIcon,\n\t\t\t\t\t\tautoSave: true,\n\t\t\t\t\t\ttargetVertex: \"middle-center\",\n\t\t\t\t\t\tzIndex: 200\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.spotlight.show();\n\n\t\t\t\tEventEmitter.subscribe(this.spotlight, 'BX.SpotLight:onTargetEnter', () => {\n\t\t\t\t\tconst guide = new Guide({\n\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttarget: barcodeIcon,\n\t\t\t\t\t\t\t\ttitle: Loc.getMessage('CATALOG_SELECTOR_BARCODE_SCANNER_FIRST_TIME_HINT_TITLE'),\n\t\t\t\t\t\t\t\ttext: Loc.getMessage('CATALOG_SELECTOR_BARCODE_SCANNER_FIRST_TIME_HINT_TEXT'),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tonEvents: true,\n\t\t\t\t\t});\n\n\t\t\t\t\tguide.getPopup().setAutoHide(true);\n\t\t\t\t\tguide.showNextStep();\n\t\t\t\t\tthis.selector.setConfig('ENABLE_INFO_SPOTLIGHT', false);\n\t\t\t\t\tthis.selector.emit('onSpotlightClose', {});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tEvent.bind(barcodeIcon, 'click', (event) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (this.qrAuth)\n\t\t\t\t{\n\t\t\t\t\tthis.handleClickNameInput(event);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.startMobileScanner(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn barcodeIcon;\n\t\t});\n\t}\n\n\tlayout(): HTMLElement\n\t{\n\t\tconst block = super.layout();\n\t\tDom.append(this.getBarcodeIcon(), block);\n\t\tthis.getNameInput().className += ' catalog-product-field-input-barcode';\n\t\tEvent.bind(this.getNameInput(), 'focus', this.onFocusHandler);\n\t\tEvent.bind(this.getNameInput(), 'blur', this.onBlurHandler);\n\n\t\treturn block;\n\t}\n\n\tremoveSpotlight()\n\t{\n\t\tif (this.spotlight)\n\t\t{\n\t\t\tthis.spotlight.close();\n\t\t}\n\t}\n\n\tremoveQrAuth()\n\t{\n\t\tconst mobilePopup = this.getDialog().getContainer()?.querySelector('[data-role=\"mobile-popup\"]');\n\t\tif (mobilePopup)\n\t\t{\n\t\t\tDom.remove(mobilePopup);\n\t\t\tif (Dom.hasClass(this.getDialog().getContainer(), 'qr-barcode-info'))\n\t\t\t{\n\t\t\t\tDom.removeClass(this.getDialog().getContainer(),'qr-barcode-info');\n\t\t\t}\n\t\t}\n\n\t\tthis.qrAuth = null;\n\t}\n}\n","import {ajax, Cache, Dom, Event, Extension, Loc, Reflection, Runtime, Tag, Text, Type} from 'main.core';\nimport 'ui.design-tokens';\nimport 'ui.forms';\nimport 'fileinput';\nimport 'ui.notification';\nimport {EventEmitter} from 'main.core.events';\nimport {SkuTree} from 'catalog.sku-tree';\nimport {ProductSearchInput} from \"./product-search-input\";\nimport {ProductImageInput} from \"./product-image-input\";\nimport {ProductModel, RightActionDictionary} from \"catalog.product-model\";\nimport './component.css';\nimport {BarcodeSearchInput} from \"./barcode-search-input\";\nimport {SelectorErrorCode} from \"./selector-error-code\";\n\nconst instances = new Map();\nconst iblockSkuTreeProperties = new Map();\n\nexport class ProductSelector extends EventEmitter\n{\n\tstatic MODE_VIEW = 'view';\n\tstatic MODE_EDIT = 'edit';\n\tstatic SHORT_VIEW_FORMAT = 'short';\n\tstatic FULL_VIEW_FORMAT = 'full';\n\tstatic INPUT_FIELD_NAME = 'NAME';\n\tstatic INPUT_FIELD_BARCODE = 'BARCODE';\n\n\tstatic ErrorCodes = SelectorErrorCode;\n\t#inAjaxProcess = false;\n\tmode: ProductSelector.MODE_EDIT | ProductSelector.MODE_VIEW = ProductSelector.MODE_EDIT;\n\tcache = new Cache.MemoryCache();\n\ttype = ProductSelector.INPUT_FIELD_NAME;\n\tfileInput: ?ProductImageInput;\n\tsearchInput: ?ProductSearchInput;\n\tskuTreeInstance: ?SkuTree;\n\tmobileScannerToken = null;\n\n\tvariationChangeHandler = this.handleVariationChange.bind(this);\n\tonSaveImageHandler = this.onSaveImage.bind(this);\n\tonChangeFieldsHandler = Runtime.debounce(this.onChangeFields, 500, this);\n\tonUploaderIsInitedHandler = this.onUploaderIsInited.bind(this);\n\tonNameChangeFieldHandler = Runtime.debounce(this.onNameChange, 500, this);\n\n\tstatic getById(id: string): ?ProductSelector\n\t{\n\t\treturn instances.get(id) || null;\n\t}\n\n\tconstructor(id, options = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Catalog.ProductSelector');\n\n\t\tthis.id = id || Text.getRandom();\n\t\toptions.inputFieldName = options.inputFieldName || ProductSelector.INPUT_FIELD_NAME;\n\t\tthis.options = options || {};\n\t\tthis.settings = Extension.getSettings('catalog.product-selector');\n\n\t\tthis.type = this.options.type || ProductSelector.INPUT_FIELD_NAME;\n\n\t\tthis.setMode(options.mode);\n\n\t\tif (options.model && (options.model instanceof ProductModel))\n\t\t{\n\t\t\tthis.model = options.model;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.model = ProductModel.getById(this.id);\n\t\t}\n\n\t\tif (!(this.model instanceof ProductModel))\n\t\t{\n\t\t\tthis.model = new ProductModel(\n\t\t\t\t{\n\t\t\t\t\tcurrency: options.currency,\n\t\t\t\t\tiblockId: Text.toNumber(options.iblockId),\n\t\t\t\t\tbasePriceId: Text.toNumber(options.basePriceId),\n\t\t\t\t\tfields: options.fields,\n\t\t\t\t\tskuTree: options.skuTree,\n\t\t\t\t\tstoreMap: options.storeMap,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthis.model.getImageCollection().setMorePhotoValues(options.morePhotoValues);\n\t\tif (!Type.isNil(this.getConfig('DETAIL_PATH')))\n\t\t{\n\t\t\tthis.model.setDetailPath(this.getConfig('DETAIL_PATH'));\n\t\t}\n\n\t\tif (options.failedProduct)\n\t\t{\n\t\t\tthis.model.getErrorCollection().setError(\n\t\t\t\tSelectorErrorCode.FAILED_PRODUCT,\n\t\t\t\t''\n\t\t\t);\n\t\t}\n\n\t\tif (this.isShowableEmptyProductError())\n\t\t{\n\t\t\tthis.model.getErrorCollection().setError(\n\t\t\t\tSelectorErrorCode.NOT_SELECTED_PRODUCT,\n\t\t\t\tthis.getEmptySelectErrorMessage()\n\t\t\t);\n\t\t}\n\n\t\tif (options.fileView)\n\t\t{\n\t\t\tthis.model.getImageCollection().setPreview(options.fileView);\n\t\t}\n\t\tif (options.fileInput)\n\t\t{\n\t\t\tthis.model.getImageCollection().setEditInput(options.fileInput);\n\t\t}\n\n\t\tthis.layout();\n\n\t\tif (options.skuTree)\n\t\t{\n\t\t\tthis.updateSkuTree(options.skuTree);\n\t\t}\n\n\t\tif (options.scannerToken)\n\t\t{\n\t\t\tthis.setMobileScannerToken(options.scannerToken);\n\t\t}\n\n\t\tthis.subscribeEvents();\n\n\t\tinstances.set(this.id, this);\n\t}\n\n\tsetModel(model: ProductModel): void\n\t{\n\t\tthis.model = model;\n\t}\n\n\tgetModel(): ProductModel\n\t{\n\t\treturn this.model;\n\t}\n\n\tsetMode(mode: ProductSelector.MODE_VIEW | ProductSelector.MODE_EDIT ): void\n\t{\n\t\tif (!Type.isNil(mode))\n\t\t{\n\t\t\tthis.mode = mode === ProductSelector.MODE_VIEW ? ProductSelector.MODE_VIEW : ProductSelector.MODE_EDIT;\n\t\t}\n\t}\n\n\tisViewMode(): boolean\n\t{\n\t\treturn this.mode === ProductSelector.MODE_VIEW;\n\t}\n\n\tisShortViewFormat(): boolean\n\t{\n\t\treturn this.getConfig('VIEW_FORMAT', ProductSelector.FULL_VIEW_FORMAT) === ProductSelector.SHORT_VIEW_FORMAT;\n\t}\n\n\tisSaveable(): boolean\n\t{\n\t\treturn !this.isViewMode() && this.model.isSaveable();\n\t}\n\n\tisEnabledAutosave(): boolean\n\t{\n\t\treturn this.isSaveable() && this.getConfig('ENABLE_AUTO_SAVE', false);\n\t}\n\n\tisEnabledMobileScanning(): boolean\n\t{\n\t\treturn !this.isViewMode() && this.getConfig('ENABLE_MOBILE_SCANNING', true);\n\t}\n\n\tgetEmptySelectErrorMessage()\n\t{\n\t\treturn this.checkProductAddRights()\n\t\t\t? Loc.getMessage('CATALOG_SELECTOR_SELECTED_PRODUCT_TITLE')\n\t\t\t: Loc.getMessage('CATALOG_SELECTOR_SELECT_PRODUCT_TITLE')\n\t\t;\n\t}\n\n\n\tgetMobileScannerToken(): string\n\t{\n\t\treturn this.mobileScannerToken || Text.getRandom(16);\n\t}\n\n\tcheckProductViewRights(): boolean\n\t{\n\t\treturn this.model.checkAccess(RightActionDictionary.ACTION_PRODUCT_VIEW) ?? true;\n\t}\n\n\tcheckProductEditRights(): boolean\n\t{\n\t\treturn this.model.checkAccess(RightActionDictionary.ACTION_PRODUCT_EDIT) ?? false;\n\t}\n\n\tcheckProductAddRights(): boolean\n\t{\n\t\treturn this.model.checkAccess(RightActionDictionary.ACTION_PRODUCT_ADD) ?? false;\n\t}\n\n\tsetMobileScannerToken(token: string): void\n\t{\n\t\tthis.mobileScannerToken = token;\n\t}\n\n\tremoveMobileScannerToken(): void\n\t{\n\t\tthis.mobileScannerToken = null;\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetType(): string\n\t{\n\t\treturn this.type;\n\t}\n\n\tgetConfig(name, defaultValue)\n\t{\n\t\treturn BX.prop.get(this.options.config, name, defaultValue);\n\t}\n\n\tsetConfig(name, value): this\n\t{\n\t\tthis.options.config[name] = value;\n\n\t\treturn this;\n\t}\n\n\tgetRowId(): string\n\t{\n\t\treturn this.getConfig('ROW_ID');\n\t}\n\n\tgetFileInput(): ProductImageInput\n\t{\n\t\tif (!this.fileInput)\n\t\t{\n\t\t\tthis.fileInput = new ProductImageInput(\n\t\t\t\tthis.options.fileInputId,\n\t\t\t\t{\n\t\t\t\t\tselector: this,\n\t\t\t\t\tenableSaving: this.getConfig('ENABLE_IMAGE_CHANGE_SAVING', false)\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn this.fileInput;\n\t}\n\n\tisProductSearchEnabled(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_SEARCH', false)\n\t\t\t&& this.model.getIblockId() > 0\n\t\t\t&& this.checkProductViewRights()\n\t\t;\n\t}\n\n\tisSkuTreeEnabled(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_SKU_TREE', true) !== false;\n\t}\n\n\tisImageFieldEnabled(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_IMAGE_INPUT', true) !== false;\n\t}\n\n\tisShowableEmptyProductError(): boolean\n\t{\n\t\treturn this.isEnabledEmptyProductError() &&\n\t\t\t(\n\t\t\t\tthis.model.isEmpty() && this.model.isChanged()\n\t\t\t\t|| this.model.isSimple()\n\t\t\t);\n\t}\n\n\tisShowableErrors(): boolean\n\t{\n\t\treturn this.isEnabledEmptyProductError() || this.isEnabledEmptyImagesError();\n\t}\n\n\tisEnabledEmptyProductError(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_EMPTY_PRODUCT_ERROR', false);\n\t}\n\n\tisEnabledEmptyImagesError(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_EMPTY_IMAGES_ERROR', false);\n\t}\n\n\tisEnabledChangesRendering(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_CHANGES_RENDERING', true);\n\t}\n\n\tisInputDetailLinkEnabled(): boolean\n\t{\n\t\treturn this.getConfig('ENABLE_INPUT_DETAIL_LINK', false)\n\t\t\t&& Type.isStringFilled(this.model.getDetailPath())\n\t\t\t&& this.checkProductViewRights()\n\t\t;\n\t}\n\n\tgetWrapper(): HTMLElement\n\t{\n\t\tif (!this.wrapper)\n\t\t{\n\t\t\tthis.wrapper = document.getElementById(this.id);\n\t\t}\n\n\t\treturn this.wrapper;\n\t}\n\n\trenderTo(node)\n\t{\n\t\tthis.clearLayout();\n\t\tthis.wrapper = node;\n\t\tthis.layout();\n\t}\n\n\tlayout()\n\t{\n\t\tconst wrapper = this.getWrapper();\n\t\tif (!wrapper)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.defineWrapperClass(wrapper);\n\t\twrapper.innerHTML = '';\n\n\t\tconst block = Tag.render`<div class=\"catalog-product-field-inner\"></div>`;\n\t\tDom.append(this.layoutNameBlock(), block);\n\n\t\tif (this.getSkuTreeInstance())\n\t\t{\n\t\t\tDom.append(this.getSkuTreeInstance().layout(), block);\n\t\t}\n\n\t\tDom.append(this.getErrorContainer(), block);\n\n\t\tif (!this.isViewMode())\n\t\t{\n\t\t\tDom.append(block, wrapper);\n\t\t}\n\n\t\tif (this.isImageFieldEnabled())\n\t\t{\n\t\t\tif (!Reflection.getClass('BX.UI.ImageInput'))\n\t\t\t{\n\t\t\t\tajax\n\t\t\t\t\t.runAction(\t'catalog.productSelector.getFileInput', {\n\t\t\t\t\t\tjson:{\n\t\t\t\t\t\t\tiblockId: this.getModel().getIblockId()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tthis.layoutImage();\n\t\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.layoutImage();\n\t\t\t}\n\n\t\t\tDom.append(this.getImageContainer(), wrapper);\n\t\t}\n\n\t\tif (this.isViewMode())\n\t\t{\n\t\t\tDom.append(block, wrapper);\n\t\t}\n\n\t\tif (this.isViewMode())\n\t\t{\n\t\t\tDom.append(block, wrapper);\n\t\t}\n\n\t\tif (this.isShowableErrors)\n\t\t{\n\t\t\tthis.layoutErrors();\n\t\t}\n\n\t\tthis.subscribeToVariationChange();\n\t}\n\n\tfocusName(): this\n\t{\n\t\tif (this.searchInput)\n\t\t{\n\t\t\tthis.searchInput.focusName();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetImageContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('imageContainer', () => (\n\t\t\tTag.render`<div class=\"catalog-product-img\"></div>`\n\t\t));\n\t}\n\n\tgetErrorContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('errorContainer', () => (\n\t\t\tTag.render`<div class=\"catalog-product-error\"></div>`\n\t\t));\n\t}\n\n\tlayoutErrors()\n\t{\n\t\tthis.getErrorContainer().innerHTML = '';\n\t\tthis.clearImageErrorBorder();\n\t\tif (!this.model.getErrorCollection().hasErrors())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst errors = this.model.getErrorCollection().getErrors();\n\t\tfor (const code in errors)\n\t\t{\n\t\t\tif (!ProductSelector.ErrorCodes.getCodes().includes(code))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (code === 'EMPTY_IMAGE')\n\t\t\t{\n\t\t\t\tthis.setImageErrorBorder();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.append(\n\t\t\t\t\tTag.render`<div class=\"catalog-product-error-item\">${errors[code].text}</div>`,\n\t\t\t\t\tthis.getErrorContainer()\n\t\t\t\t);\n\n\t\t\t\tif (this.searchInput)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(this.searchInput.getNameBlock(), 'ui-ctl-danger');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsetImageErrorBorder()\n\t{\n\t\tDom.addClass(\n\t\t\tthis.getImageContainer().querySelector('.adm-fileinput-area'),\n\t\t\t'adm-fileinput-drag-area-error'\n\t\t);\n\t}\n\n\tclearImageErrorBorder()\n\t{\n\t\tDom.removeClass(\n\t\t\tthis.getImageContainer().querySelector('.adm-fileinput-area'),\n\t\t\t'adm-fileinput-drag-area-error'\n\t\t);\n\t}\n\n\tonUploaderIsInited()\n\t{\n\t\tif (this.isEnabledEmptyImagesError())\n\t\t{\n\t\t\trequestAnimationFrame(this.layoutErrors.bind(this));\n\t\t}\n\t}\n\n\tlayoutImage()\n\t{\n\t\tthis.getImageContainer().innerHTML = '';\n\t\tDom.append(this.getFileInput().layout(), this.getImageContainer());\n\t\tthis.refreshImageSelectorId = null;\n\t}\n\n\tclearState(): void\n\t{\n\t\tthis\n\t\t\t.getModel()\n\t\t\t.initFields({\n\t\t\t\tID: '',\n\t\t\t\tNAME: '',\n\t\t\t\tBARCODE: '',\n\t\t\t\tPRODUCT_ID: null,\n\t\t\t\tSKU_ID: null,\n\t\t\t})\n\t\t\t.setOption('isNew', false)\n\t\t;\n\n\t\tthis\n\t\t\t.getFileInput()\n\t\t\t.restoreDefaultInputHtml()\n\t\t;\n\n\t\tthis\n\t\t\t.getModel()\n\t\t\t.clearSkuTree()\n\t\t;\n\t\tthis.skuTreeInstance = null;\n\n\t\tthis\n\t\t\t.getModel()\n\t\t\t.getStoreCollection()\n\t\t\t.clear()\n\t\t;\n\t}\n\n\tclearLayout(): void\n\t{\n\t\tconst wrapper = this.getWrapper();\n\t\tif (wrapper)\n\t\t{\n\t\t\twrapper.innerHTML = '';\n\t\t}\n\n\t\tthis.unsubscribeToVariationChange();\n\t}\n\n\tsubscribeEvents()\n\t{\n\t\tEventEmitter.subscribe('ProductList::onChangeFields', this.onChangeFieldsHandler);\n\t\tEventEmitter.subscribe('ProductSelector::onNameChange', this.onNameChangeFieldHandler);\n\t\tEventEmitter.subscribe('Catalog.ImageInput::save', this.onSaveImageHandler);\n\t\tEventEmitter.subscribe('onUploaderIsInited', this.onUploaderIsInitedHandler);\n\t}\n\n\tunsubscribeEvents()\n\t{\n\t\tthis.unsubscribeToVariationChange();\n\n\t\tEventEmitter.unsubscribe('Catalog.ImageInput::save', this.onSaveImageHandler);\n\t\tEventEmitter.unsubscribe('ProductList::onChangeFields', this.onChangeFieldsHandler);\n\t\tEventEmitter.unsubscribe('onUploaderIsInited', this.onUploaderIsInitedHandler);\n\t\tEventEmitter.unsubscribe('onUploaderIsInited', this.onUploaderIsInitedHandler);\n\t\tEventEmitter.unsubscribe('ProductSelector::onNameChange', this.onNameChangeFieldHandler);\n\t}\n\n\tdefineWrapperClass(wrapper)\n\t{\n\t\tif (this.isViewMode())\n\t\t{\n\t\t\tDom.addClass(wrapper, 'catalog-product-view');\n\t\t\tDom.removeClass(wrapper, 'catalog-product-edit');\n\n\t\t\tif (this.isShortViewFormat())\n\t\t\t{\n\t\t\t\tDom.addClass(wrapper, '--short-format');\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(wrapper, 'catalog-product-edit');\n\t\t\tDom.removeClass(wrapper, 'catalog-product-view');\n\t\t}\n\t}\n\n\tgetNameBlockView(): HTMLElement\n\t{\n\t\tconst productName = Text.encode(this.model.getField('NAME'));\n\t\tconst namePlaceholder = Loc.getMessage('CATALOG_SELECTOR_VIEW_NAME_TITLE');\n\n\t\tif (this.getModel().getDetailPath())\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<a href=\"${this.getModel().getDetailPath()}\" title=\"${namePlaceholder}\">${productName}</a>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`<span title=\"${namePlaceholder}\">${productName}</span>`;\n\n\t}\n\n\tgetNameInputFilledValue(): string\n\t{\n\t\tif (this.searchInput)\n\t\t{\n\t\t\treturn this.searchInput.getFilledValue();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tlayoutNameBlock(): HTMLElement\n\t{\n\t\tconst block = Tag.render`<div class=\"catalog-product-field-input\"></div>`;\n\n\t\tif (this.isViewMode())\n\t\t{\n\t\t\tDom.append(this.getNameBlockView(), block);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.getType() === ProductSelector.INPUT_FIELD_BARCODE)\n\t\t\t{\n\t\t\t\tif (!this.searchInput)\n\t\t\t\t{\n\t\t\t\t\tthis.searchInput = new BarcodeSearchInput(\n\t\t\t\t\t\tthis.id,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tselector: this,\n\t\t\t\t\t\t\tmodel: this.getModel(),\n\t\t\t\t\t\t\tinputName: this.options.inputFieldName,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.searchInput = new ProductSearchInput(\n\t\t\t\t\tthis.id,\n\t\t\t\t\t{\n\t\t\t\t\t\tselector: this,\n\t\t\t\t\t\tmodel: this.getModel(),\n\t\t\t\t\t\tinputName: this.options.inputFieldName,\n\t\t\t\t\t\tisSearchEnabled: this.isProductSearchEnabled(),\n\t\t\t\t\t\tisEnabledEmptyProductError: this.isEnabledEmptyProductError(),\n\t\t\t\t\t\tisEnabledDetailLink: this.isInputDetailLinkEnabled()\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tDom.append(this.searchInput.layout(), block);\n\t\t}\n\n\t\treturn block;\n\t}\n\n\tsearchInDialog(): ProductSelector\n\t{\n\t\tthis.searchInput.searchInDialog();\n\n\t\treturn this;\n\t}\n\n\tupdateSkuTree(tree): ProductSelector\n\t{\n\t\tthis.getModel().setSkuTree(tree);\n\t\tthis.skuTreeInstance = null;\n\n\t\treturn this;\n\t}\n\n\tgetIblockSkuTreeProperties(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tif (iblockSkuTreeProperties.has(this.getModel().getIblockId()))\n\t\t\t{\n\t\t\t\tresolve(iblockSkuTreeProperties.get(this.getModel().getIblockId()));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tajax.runAction(\n\t\t\t\t\t'catalog.productSelector.getSkuTreeProperties',\n\t\t\t\t\t{\n\t\t\t\t\t\tjson: {\n\t\t\t\t\t\t\tiblockId: this.getModel().getIblockId(),\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(response => {\n\t\t\t\t\t\tiblockSkuTreeProperties.set(this.getModel().getIblockId(), response)\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tgetSkuTreeInstance(): SkuTree\n\t{\n\t\tif (this.isSkuTreeEnabled() && this.getModel()?.getSkuTree() && !this.skuTreeInstance)\n\t\t{\n\t\t\tthis.skuTreeInstance = new SkuTree({\n\t\t\t\tskuTree: this.getModel().getSkuTree(),\n\t\t\t\tselectable: this.getConfig('ENABLE_SKU_SELECTION', true),\n\t\t\t\thideUnselected: this.getConfig('HIDE_UNSELECTED_ITEMS', false),\n\t\t\t\tisShortView: this.isViewMode() && this.isShortViewFormat(),\n\t\t\t});\n\t\t}\n\n\t\treturn this.skuTreeInstance;\n\t}\n\n\tsubscribeToVariationChange()\n\t{\n\t\tconst skuTree = this.getSkuTreeInstance();\n\t\tif (skuTree)\n\t\t{\n\t\t\tthis.unsubscribeToVariationChange();\n\t\t\tskuTree.subscribe('SkuProperty::onChange', this.variationChangeHandler);\n\t\t}\n\t}\n\n\tunsubscribeToVariationChange()\n\t{\n\t\tconst skuTree = this.getSkuTreeInstance();\n\t\tif (skuTree)\n\t\t{\n\t\t\tskuTree.unsubscribe('SkuProperty::onChange', this.variationChangeHandler);\n\t\t}\n\t}\n\n\thandleVariationChange(event)\n\t{\n\t\tconst [skuFields] = event.getData();\n\t\tconst productId = Text.toNumber(skuFields.PARENT_PRODUCT_ID);\n\t\tconst variationId = Text.toNumber(skuFields.ID);\n\n\t\tif (productId <= 0 || variationId <= 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.emit('onBeforeChange', {\n\t\t\tselectorId: this.getId(),\n\t\t\trowId: this.getRowId()\n\t\t});\n\n\t\tthis.#inAjaxProcess = true;\n\t\tajax.runAction(\n\t\t\t'catalog.productSelector.getSelectedSku',\n\t\t\t{\n\t\t\t\tjson: {\n\t\t\t\t\tvariationId,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tpriceId: this.basePriceId,\n\t\t\t\t\t\tcurrency: this.model.getCurrency(),\n\t\t\t\t\t\turlBuilder: this.getConfig('URL_BUILDER_CONTEXT')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t\t.then(response => this.processResponse(response, {...this.options.config}));\n\t}\n\n\tonChangeFields(event)\n\t{\n\t\tconst eventData = event.getData();\n\n\t\tif (eventData.rowId !== this.getRowId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst fields = eventData.fields;\n\t\tthis.getModel().setFields(fields);\n\t}\n\n\treloadFileInput()\n\t{\n\t\tajax\n\t\t\t.runAction(\t'catalog.productSelector.getFileInput', {\n\t\t\t\tjson:{\n\t\t\t\t\tiblockId: this.getModel().getIblockId(),\n\t\t\t\t\tskuId: this.getModel()?.getSkuId()\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then((event) => {\n\t\t\t\tthis.getModel().getImageCollection().setEditInput(event.data.html);\n\t\t\t\tif (this.isImageFieldEnabled())\n\t\t\t\t{\n\t\t\t\t\tthis.layoutImage();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tonNameChange(event)\n\t{\n\t\tconst eventData = event.getData();\n\n\t\tif (eventData.rowId !== this.getRowId() || !this.isEnabledAutosave())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst fields = eventData.fields;\n\t\tthis.getModel().setFields(fields);\n\t\tthis.getModel().save().then(() => {\n\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\tid: 'saving_field_notify_name',\n\t\t\t\tcloseButton: false,\n\t\t\t\tcontent: Tag.render`<div>${Loc.getMessage('CATALOG_SELECTOR_SAVING_NOTIFICATION_NAME_CHANGED')}</div>`,\n\t\t\t\tautoHide: true,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSaveImage(event)\n\t{\n\t\tconst [, inputId, response] = event.getData();\n\t\tif (inputId !== this.getFileInput().getId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getFileInput().setId(response.data.id);\n\t\tthis.getFileInput().setInputHtml(response.data.input);\n\t\tthis.getFileInput().setView(response.data.preview);\n\t\tthis.getModel().getImageCollection().setMorePhotoValues(response.data.values);\n\t\tif (this.isImageFieldEnabled())\n\t\t{\n\t\t\tthis.layoutImage();\n\t\t}\n\n\t\tthis.emit('onChange', {\n\t\t\tselectorId: this.id,\n\t\t\trowId: this.getRowId(),\n\t\t\tfields: this.getModel().getFields(),\n\t\t\tmorePhoto: this.getModel().getImageCollection().getMorePhotoValues(),\n\t\t});\n\t}\n\n\tinProcess()\n\t{\n\t\treturn this.#inAjaxProcess;\n\t}\n\n\tonProductSelect(productId, itemConfig)\n\t{\n\t\tthis.emit('onProductSelect', {\n\t\t\tselectorId: this.getId(),\n\t\t\trowId: this.getRowId()\n\t\t});\n\n\t\tthis.emit('onBeforeChange', {\n\t\t\tselectorId: this.getId(),\n\t\t\trowId: this.getRowId()\n\t\t});\n\n\t\tthis.productSelectAjaxAction(productId, itemConfig);\n\t}\n\n\tproductSelectAjaxAction(\n\t\tproductId,\n\t\titemConfig = {\n\t\t\tisNew: false,\n\t\t\timmutableFields: [],\n\t\t}\n\t)\n\t{\n\t\tthis.#inAjaxProcess = true\n\t\tajax\n\t\t\t.runAction(\n\t\t\t\t'catalog.productSelector.getProduct',\n\t\t\t\t{\n\t\t\t\t\tjson: {\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tpriceId: this.basePriceId,\n\t\t\t\t\t\t\tcurrency: this.model.getCurrency(),\n\t\t\t\t\t\t\turlBuilder: this.getConfig('URL_BUILDER_CONTEXT')\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\t.then(response => this.processResponse(response, {...this.options.config, ...itemConfig}, true));\n\t}\n\n\tprocessResponse(response, config = {}, isProductAction = false)\n\t{\n\t\tconst data = response?.data || null;\n\t\tthis.#inAjaxProcess = false;\n\n\t\tconst fields = data?.fields || [];\n\t\tif (Type.isArray(config.immutableFields))\n\t\t{\n\t\t\tconfig.immutableFields.forEach((field) => {\n\t\t\t\tfields[field] = this.getModel().getField(field);\n\t\t\t});\n\n\t\t\tdata.fields = fields;\n\t\t}\n\n\t\tif (isProductAction)\n\t\t{\n\t\t\tthis.clearState();\n\t\t}\n\n\t\tif (data)\n\t\t{\n\t\t\tthis.changeSelectedElement(data, config);\n\t\t}\n\t\telse if (!isProductAction)\n\t\t{\n\t\t\tthis.productSelectAjaxAction(this.getModel().getProductId());\n\t\t}\n\n\t\tthis.unsubscribeToVariationChange();\n\n\t\tif (this.isEnabledChangesRendering())\n\t\t{\n\t\t\tthis.clearLayout();\n\t\t\tthis.layout();\n\t\t}\n\n\t\tthis.emit('onChange', {\n\t\t\tselectorId: this.id,\n\t\t\trowId: this.getRowId(),\n\t\t\tisNew: config.isNew || false,\n\t\t\tfields,\n\t\t\tmorePhoto: this.getModel().getImageCollection().getMorePhotoValues(),\n\t\t});\n\t}\n\n\tchangeSelectedElement(data, config)\n\t{\n\t\tconst productId = Text.toInteger(data.productId);\n\t\tconst productChanged = this.getModel().getProductId() !== productId;\n\n\t\tif (productChanged)\n\t\t{\n\t\t\tthis.getModel().setOption('productId', productId);\n\t\t\tthis.getModel().setOption('skuId', Text.toInteger(data.skuId));\n\t\t\tthis.getModel().setOption('isSimpleModel', false);\n\t\t\tthis.getModel().setOption('isNew', config.isNew);\n\t\t}\n\n\t\tthis.getModel().initFields(data.fields);\n\n\t\tconst imageField = {\n\t\t\tid: '',\n\t\t\tinput: '',\n\t\t\tpreview: '',\n\t\t\tvalues: []\n\t\t};\n\n\t\tif (Type.isObject(data.image))\n\t\t{\n\t\t\timageField.id = data.image.id;\n\t\t\timageField.input = data.image.input;\n\t\t\timageField.preview = data.image.preview;\n\t\t\timageField.values = data.image.values;\n\t\t}\n\n\t\tthis.getFileInput().setId(imageField.id);\n\t\tthis.getFileInput().setInputHtml(imageField.input);\n\t\tthis.getFileInput().setView(imageField.preview);\n\n\t\tthis.getModel().getImageCollection().setMorePhotoValues(imageField.values);\n\t\tthis.checkEmptyImageError();\n\n\t\tif (data.detailUrl)\n\t\t{\n\t\t\tthis.getModel().setDetailPath(data.detailUrl);\n\t\t}\n\n\t\tif (Type.isObject(data.skuTree))\n\t\t{\n\t\t\tthis.updateSkuTree(data.skuTree);\n\t\t}\n\t}\n\n\tcheckEmptyImageError()\n\t{\n\t\tif (\n\t\t\t!Type.isArrayFilled(this.getModel().getImageCollection().getMorePhotoValues())\n\t\t\t&& this.isEnabledEmptyImagesError()\n\t\t)\n\t\t{\n\t\t\tthis.getModel().getErrorCollection().setError(\n\t\t\t\t'EMPTY_IMAGE',\n\t\t\t\tLoc.getMessage('CATALOG_SELECTOR_EMPTY_IMAGE_ERROR'),\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getModel().getErrorCollection().removeError('EMPTY_IMAGE');\n\t\t}\n\t}\n\n\tremoveSpotlight()\n\t{\n\t\tthis.searchInput?.removeSpotlight();\n\t\tthis.setConfig('ENABLE_INFO_SPOTLIGHT', false);\n\t}\n\n\tremoveQrAuth()\n\t{\n\t\tthis.searchInput?.removeQrAuth();\n\t\tthis.setConfig('ENABLE_BARCODE_QR_AUTH', false);\n\t}\n}\n"],"names":["ProductSearchSelectorFooter","DefaultFooter","constructor","dialog","options","loader","errorAdminHint","getDialog","subscribe","handleOnSearch","bind","getContent","phrase","isViewCreateButton","allowCreateItem","allowEditItem","isViewEditButton","Tag","render","Loc","getMessage","createButton","querySelector","Dom","replace","getLabelContainer","changeButton","getSaveContainer","getHintContainer","getLoaderContainer","getLoader","Type","isNil","Loader","target","size","color","showLoader","show","hideLoader","hide","setLabel","label","isString","textContent","cache","remember","handleClick","getOption","getQueryContainer","className","messageId","inputName","ProductSelector","INPUT_FIELD_BARCODE","onClickSaveChanges","message","hintNode","dataset","hint","hintNoIcon","BX","UI","Hint","initNode","lastQuery","getActiveTab","getLastSearchQuery","emit","query","clearSearch","createItem","tagSelector","getTagSelector","isLocked","finalize","unlock","focusSearch","event","preventDefault","lock","emitAsync","searchQuery","then","getTab","clearResults","selectFirstTab","catch","getData","currentValue","ProductCreationLimitedFooter","infoButton","Event","InfoHelper","SelectorErrorCode","getCodes","NOT_SELECTED_PRODUCT","FAILED_PRODUCT","DialogMode","SEARCHING","SHOW_PRODUCT_ITEM","SHOW_RECENT","ProductSearchInput","id","Cache","MemoryCache","Text","getRandom","selector","Error","model","isEnabledSearch","isSearchEnabled","isEnabledDetailLink","INPUT_FIELD_NAME","immutableFieldNames","includes","push","ajaxInProcess","loadedSelectedItem","handleSearchInput","Runtime","debounce","searchInDialog","destroy","getId","getSelectorType","getField","fieldName","getValue","getFilledValue","getNameInput","value","toggleIcon","icon","isDomNode","style","getNameBlock","getNameTag","getHiddenNameInput","isNew","input","encode","getPlaceholder","handleNameInputHiddenChange","getConfig","addClass","setAttribute","getClearIcon","handleClearIconClick","getArrowIcon","getDetailPath","getSearchIcon","handleSearchIconClick","layout","clearInputCache","block","append","isProductSearchEnabled","initHasDialogItems","isStringFilled","handleClickNameInput","handleNameInputBlur","handleNameInputKeyDown","dialogMode","isCatalogExisted","showDetailLink","handleIconsSwitchingOnNameInput","handleNameInputChange","searchTypeId","SEARCH_TYPE_ID","entity","iblockId","getIblockId","basePriceId","getBasePriceId","currency","getCurrency","dynamicLoad","dynamicSearch","restrictedProductTypes","params","height","width","Math","max","offsetWidth","context","targetNode","enableSearch","multiple","dropdownMode","searchTabOptions","stub","stubOptions","title","subtitle","isAllowedCreateProduct","arrow","events","onProductSelect","createProduct","showChangeNotification","entities","settingsCollection","Extension","getSettings","isObject","get","footer","footerOptions","isAllowedEditProduct","creationLabel","searchOptions","Dialog","getModel","isEmpty","setConfig","hasDynamicLoad","subscribeOnce","getPreselectedItems","length","checkProductAddRights","checkProductEditRights","key","getSearchTab","stopPropagation","Browser","isMac","metaKey","ctrlKey","getFooter","delete","selectorId","rowId","getRowId","clearState","clearLayout","newValue","onChangeValue","focusName","fields","EventEmitter","isEnabledAutosave","setFields","save","Notification","Center","notify","closeButton","content","autoHide","requestAnimationFrame","focus","trim","isHasDialogItems","isSearchingInProcess","isOpen","showItems","setTimeout","isEnabledEmptyProductError","inProcess","getErrorCollection","setError","getEmptySelectErrorMessage","layoutErrors","getImmutableFieldNames","setInputValueOnProductSelect","item","getTargetNode","getTitle","clearErrors","getCustomData","immutableFields","forEach","setField","errors","getErrors","code","ErrorCodes","removeError","createProductModelFromSearchQuery","getFields","ProductModel","isSimpleModel","getTarget","newProduct","getQuery","Promise","resolve","reject","checkCreationModel","response","toInteger","data","addItem","entityId","tabs","getRecentTab","customData","setOption","name","select","errorResponse","error","creationModel","getType","onSave","declineCancelTitle","onCancel","showSaveNotifier","removeSpotlight","removeQrAuth","removeItems","ajax","runAction","json","getSkuId","isLoading","setPreselectedItems","getRootNode","getPopup","loadState","load","search","ProductImageInput","config","getImageCollection","getEditInput","restoreDefaultInputHtml","enableSaving","uploaderFieldMap","setId","setView","html","setPreview","setInputHtml","setEditInput","defaultInput","isViewMode","isSaveable","isEnabledLiveSaving","imageContainer","getPreview","BarcodeSearchSelectorFooter","isEmptyBarcode","handleOnSearchLoad","barcodeContent","scannerContent","getScannerContent","getScannerLabelContainer","handleScannerClick","getScannerQueryContainer","inputEntity","startMobileScanner","searchTab","getItems","BarcodeSearchInput","onFocusHandler","handleFocusEvent","onBlurHandler","handleBlurEvent","focused","isInstalledMobileApp","qrAuth","QrAuthorization","createQrCodeImage","unbind","searchFields","type","system","searchable","preselectedItems","layoutMobileQrPopup","closeIcon","closeMobilePopup","sendButton","helpButton","top","Helper","getQrNode","result","userOptions","getContainer","hasClass","disableCancel","searchByBarcode","getSubtitle","getCreationProduct","sendMobilePush","isEnabledMobileScanning","token","getMobileScannerToken","BarcodeScanner","open","repeatLink","category","autoHideDelay","getProductIdByBarcode","barcode","applyScannerData","productId","selectScannedBarcodeProduct","getBarcodeIcon","barcodeIcon","spotlight","SpotLight","targetElement","autoSave","targetVertex","zIndex","guide","Guide","steps","text","onEvents","setAutoHide","showNextStep","close","mobilePopup","remove","removeClass","instances","Map","iblockSkuTreeProperties","getById","mode","MODE_EDIT","mobileScannerToken","variationChangeHandler","handleVariationChange","onSaveImageHandler","onSaveImage","onChangeFieldsHandler","onChangeFields","onUploaderIsInitedHandler","onUploaderIsInited","onNameChangeFieldHandler","onNameChange","setEventNamespace","inputFieldName","settings","setMode","toNumber","skuTree","storeMap","setMorePhotoValues","morePhotoValues","setDetailPath","failedProduct","isShowableEmptyProductError","fileView","fileInput","updateSkuTree","scannerToken","setMobileScannerToken","subscribeEvents","set","setModel","MODE_VIEW","isShortViewFormat","FULL_VIEW_FORMAT","SHORT_VIEW_FORMAT","checkProductViewRights","checkAccess","RightActionDictionary","ACTION_PRODUCT_VIEW","ACTION_PRODUCT_EDIT","ACTION_PRODUCT_ADD","removeMobileScannerToken","defaultValue","prop","getFileInput","fileInputId","isSkuTreeEnabled","isImageFieldEnabled","isChanged","isSimple","isShowableErrors","isEnabledEmptyImagesError","isEnabledChangesRendering","isInputDetailLinkEnabled","getWrapper","wrapper","document","getElementById","renderTo","node","defineWrapperClass","innerHTML","layoutNameBlock","getSkuTreeInstance","getErrorContainer","Reflection","getClass","layoutImage","getImageContainer","subscribeToVariationChange","searchInput","clearImageErrorBorder","hasErrors","setImageErrorBorder","refreshImageSelectorId","initFields","ID","NAME","BARCODE","PRODUCT_ID","SKU_ID","clearSkuTree","skuTreeInstance","getStoreCollection","clear","unsubscribeToVariationChange","unsubscribeEvents","unsubscribe","getNameBlockView","productName","namePlaceholder","getNameInputFilledValue","tree","setSkuTree","getIblockSkuTreeProperties","has","getSkuTree","SkuTree","selectable","hideUnselected","isShortView","skuFields","PARENT_PRODUCT_ID","variationId","priceId","urlBuilder","processResponse","eventData","reloadFileInput","skuId","inputId","preview","values","morePhoto","getMorePhotoValues","itemConfig","productSelectAjaxAction","isProductAction","isArray","field","changeSelectedElement","getProductId","productChanged","imageField","image","checkEmptyImageError","detailUrl","isArrayFilled"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings