File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/catalog/store-selector/dist/store-selector.bundle.js.map
Back
{"version":3,"file":"store-selector.bundle.js","sources":["../src/selector-error-code.js","../src/store-search-input.js","../src/store-selector.js"],"sourcesContent":["export class SelectorErrorCode\n{\n\tstatic NOT_SELECTED_STORE: string = 'NOT_SELECTED_STORE';\n}","import {ajax, Browser, Cache, Dom, Event, Loc, Tag, Text, Type} from 'main.core';\nimport {Dialog} from 'ui.entity-selector';\nimport './component.css';\nimport {StoreSelector} from 'catalog.store-selector';\nimport 'ui.notification';\nimport {SelectorErrorCode} from \"./selector-error-code\";\n\nexport class StoreSearchInput\n{\n\tselector: StoreSelector;\n\tcache = new Cache.MemoryCache();\n\tinputName: String;\n\tisEnabledDetailLink: Boolean;\n\tallowCreateItem: Boolean;\n\tdisableByRights: Boolean;\n\tdisabledHint: ?String;\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 StoreSelector))\n\t\t{\n\t\t\tthrow new Error('Store selector instance not found.');\n\t\t}\n\n\t\tthis.isEnabledDetailLink = options.isEnabledDetailLink;\n\t\tthis.inputName = options.inputName || '';\n\t\tthis.allowCreateItem = options.allowCreateItem !== undefined ? options.allowCreateItem : true;\n\t\tthis.disableByRights = options.disableByRights ?? false;\n\t\tthis.disabledHint = options.disabledHint ?? Loc.getMessage('CATALOG_STORE_SELECTOR_HAS_PERMISSION_VIEW_STORES_HINT');\n\t}\n\n\tgetId()\n\t{\n\t\treturn this.id;\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\tif (this.disableByRights)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ui-ctl ui-ctl-w100 ui-ctl-before-icon ui-ctl-after-icon ui-ctl-disabled\"\n\t\t\t\t\tdata-hint=\"${this.disabledHint}\"\n\t\t\t\t\tdata-hint-no-icon\n\t\t\t\t>\n\t\t\t\t\t<div class=\"ui-ctl-before catalog-store-field-input-access-denied-lock\"></div>\n\t\t\t\t\t<div class=\"ui-ctl-after catalog-store-field-input-access-denied-hint\"></div>\n\t\t\t\t\t<div class=\"ui-ctl-element\">${Loc.getMessage('CATALOG_STORE_SELECTOR_HAS_PERMISSION_VIEW_STORES_TITLE')}</div>\n\t\t\t\t</div>\n\t\t\t`\n\t\t}\n\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\tgetNameInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('nameInput', () => {\n\t\t\treturn 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\tvalue=\"${Text.encode(this.selector.getStoreTitle())}\"\n\t\t\t\t\tplaceholder=\"${Text.encode(this.getPlaceholder())}\"\n\t\t\t\t\ttitle=\"${Text.encode(this.selector.getStoreTitle())}\"\n\t\t\t\t\tonchange=\"${this.handleNameInputHiddenChange.bind(this)}\"\n\t\t\t\t>\n\t\t\t`;\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.selector.getStoreTitle())}\"\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=\"${this.selector.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></button>\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\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\tclearDialogCache()\n\t{\n\t\tthis.cache.delete('dialog');\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\tDom.append(this.getSearchIcon(), block)\n\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\n\t\tDom.append(this.getClearIcon(), block)\n\t\tthis.toggleIcon(this.getClearIcon(), 'none');\n\n\t\tif (this.showDetailLink() && Type.isStringFilled(this.selector.getStoreTitle()))\n\t\t{\n\t\t\tthis.toggleIcon(this.getArrowIcon(), 'block');\n\t\t\tDom.append(this.getArrowIcon(), block)\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.toggleIcon(this.getSearchIcon(), 'block');\n\t\t}\n\n\t\tEvent.bind(this.getNameInput(), 'click', this.handleNameInputClick.bind(this));\n\t\tEvent.bind(this.getNameInput(), 'input', this.handleNameInput.bind(this));\n\t\tEvent.bind(this.getNameInput(), 'blur', this.handleNameInputBlur.bind(this));\n\t\tEvent.bind(this.getNameInput(), 'keydown', this.handleNameInputKeyDown.bind(this));\n\n\t\tDom.append(this.getNameBlock(), block);\n\t\tBX.UI.Hint.init(block);\n\n\t\treturn block;\n\t}\n\n\thandleNameInputClick(event: UIEvent)\n\t{\n\t\tthis.searchInDialog(event.target.value);\n\t\tthis.handleIconsSwitchingOnNameInput(event);\n\t}\n\n\thandleNameInput(event: UIEvent)\n\t{\n\t\tif (!Type.isStringFilled(event.target.value))\n\t\t{\n\t\t\tthis.selector.onClear();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.searchInDialog(event.target.value);\n\t\tthis.handleIconsSwitchingOnNameInput(event);\n\t}\n\n\tshowDetailLink(): string\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 stubOptions = {\n\t\t\t\ttitle: Tag.message`${'CATALOG_STORE_SELECTOR_IS_EMPTY_TITLE'}`,\n\t\t\t};\n\t\t\tif (this.allowCreateItem)\n\t\t\t{\n\t\t\t\tstubOptions.subtitle = Tag.message`${'CATALOG_STORE_SELECTOR_IS_EMPTY_SUBTITLE'}`;\n\t\t\t\tstubOptions.arrow = true;\n\t\t\t}\n\n\t\t\tconst params = {\n\t\t\t\tid: this.id + '_store',\n\t\t\t\theight: 300,\n\t\t\t\tcontext: 'catalog-store',\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\tstubOptions,\n\t\t\t\t\tstub: true,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.onStoreSelect.bind(this),\n\t\t\t\t\t'onSearch': this.onSearch.bind(this),\n\t\t\t\t\t'Search:onItemCreateAsync': this.createStore.bind(this),\n\t\t\t\t},\n\t\t\t\tentities: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'store',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tproductId: this.selector.getProductId(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsearchFields: [\n\t\t\t\t\t\t\t{ name: 'subtitle', type: 'string', system: true, searchable: false },\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdynamicLoad: true,\n\t\t\t\t\t\tdynamicSearch: true,\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tsearchOptions: {\n\t\t\t\t\tallowCreateItem: this.allowCreateItem\n\t\t\t\t},\n\t\t\t};\n\n\t\t\treturn new Dialog(params);\n\t\t});\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.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\tthis.toggleIcon(this.getSearchIcon(), 'block');\n\t\t}\n\t}\n\n\thandleClearIconClick(event: UIEvent)\n\t{\n\t\tthis.selector.onClear();\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\n\tfocusName()\n\t{\n\t\trequestAnimationFrame(() => this.getNameInput().focus());\n\t}\n\n\tsearchInDialog(searchQuery: string = '')\n\t{\n\t\tconst dialog = this.getDialog();\n\t\tif (dialog)\n\t\t{\n\t\t\tdialog.show();\n\t\t\tdialog.search(searchQuery);\n\t\t}\n\t}\n\n\thandleShowSearchDialog(event: UIEvent)\n\t{\n\t\tthis.searchInDialog(event.target.value);\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.selector.getStoreTitle()))\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(this.getSearchIcon(), 'block');\n\t\t\t}\n\t\t}, 200);\n\n\t\tif (this.selector.isDisabledEmpty())\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (this.selector.getStoreId() === '')\n\t\t\t\t{\n\t\t\t\t\tthis.selector.setEmptyError();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.selector.clearErrorLayout();\n\t\t\t\t\tthis.selector.clearEmptyError();\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\tonSearch(event)\n\t{\n\t\tconst { query } = event.getData();\n\t\tif (query === '' || query === this.selector.getStoreTitle())\n\t\t{\n\t\t\tevent.target?.searchTab?.getFooter()?.hide();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tevent.target?.searchTab?.getFooter()?.show();\n\t\t}\n\t}\n\n\tonStoreSelect(event)\n\t{\n\t\tconst item = event.getData().item;\n\t\titem.getDialog().getTargetNode().value = item.getTitle();\n\n\t\tif (this.selector)\n\t\t{\n\t\t\tthis.selector.onStoreSelect(item.getId(), item.getTitle());\n\t\t}\n\t\tthis.toggleIcon(this.getSearchIcon(), 'none');\n\t\tthis.selector.clearLayout();\n\t\tthis.selector.layout();\n\n\t\tthis.cache.delete('dialog');\n\t}\n\n\tcreateStore(event): Promise\n\t{\n\t\tconst {searchQuery} = event.getData();\n\t\tconst name = searchQuery.getQuery();\n\n\t\treturn new Promise(\n\t\t\t(resolve, reject) => {\n\t\t\t\tif (!Type.isStringFilled(name))\n\t\t\t\t{\n\t\t\t\t\treject();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst dialog: Dialog = event.getTarget();\n\t\t\t\tdialog.showLoader();\n\t\t\t\tajax.runAction(\n\t\t\t\t\t\t'catalog.storeSelector.createStore',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tjson: {name}\n\t\t\t\t\t\t}\n\t\t\t\t\t)\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: 'store',\n\t\t\t\t\t\t\ttitle: name,\n\t\t\t\t\t\t\ttabs: dialog.getRecentTab().getId(),\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\tresolve();\n\t\t\t\t\t})\n\t\t\t\t\t.catch(response => {\n\t\t\t\t\t\tconsole.error(response);\n\t\t\t\t\t\treject();\n\t\t\t\t\t})\n\t\t\t\t;\n\t\t\t});\n\t}\n\n\tgetPlaceholder(): string\n\t{\n\t\treturn Loc.getMessage('CATALOG_STORE_SELECTOR_BEFORE_SEARCH_TITLE');\n\t}\n\n\tdisable(hint: string|null): void\n\t{\n\t\tthis.disableByRights = true;\n\t\tif (hint)\n\t\t{\n\t\t\tthis.disabledHint = hint;\n\t\t}\n\t}\n}\n","import {Cache, Dom, Event, Extension, Loc, Tag, Text, Type} from 'main.core';\nimport 'ui.forms';\nimport 'ui.notification';\nimport {EventEmitter} from 'main.core.events';\nimport {StoreSearchInput} from \"./store-search-input\";\nimport './component.css';\nimport {ProductModel} from \"catalog.product-model\";\nimport {SelectorErrorCode} from \"./selector-error-code\";\n\nconst instances = new Map();\n\nexport class StoreSelector extends EventEmitter\n{\n\tstatic MODE_VIEW = 'view';\n\tstatic MODE_EDIT = 'edit';\n\tstatic INPUT_FIELD_TITLE = 'STORE_TITLE';\n\tstatic INPUT_FIELD_ID = 'STORE_ID';\n\n\tstatic ErrorCodes = SelectorErrorCode;\n\tmode: StoreSelector.MODE_EDIT | StoreSelector.MODE_VIEW = StoreSelector.MODE_EDIT;\n\tproductId: number = null;\n\tcache = new Cache.MemoryCache();\n\tsearchInput: ?StoreSearchInput;\n\n\t#storeInfo: Map = new Map();\n\t#model: ?ProductModel;\n\n\tstatic getById(id: string): ?StoreSelector\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.StoreSelector');\n\n\t\tthis.id = id || Text.getRandom();\n\t\toptions.inputFieldTitle = options.inputFieldTitle || StoreSelector.INPUT_FIELD_TITLE;\n\t\toptions.inputFieldId = options.inputFieldId || StoreSelector.INPUT_FIELD_ID;\n\t\toptions.isDisabledEmpty = !!options.isDisabledEmpty;\n\t\tthis.options = options || {};\n\n\t\tthis.setMode(options.mode);\n\n\t\tconst settingsCollection = Extension.getSettings('catalog.store-selector');\n\n\t\tif (options.model instanceof ProductModel)\n\t\t{\n\t\t\tif (options.model.getField(options.inputFieldId) > 0)\n\t\t\t{\n\t\t\t\tthis.#storeInfo.set('id', options.model.getField(options.inputFieldId));\n\t\t\t\tconst name =\n\t\t\t\t\tType.isStringFilled(options.model.getField(options.inputFieldTitle))\n\t\t\t\t\t\t? options.model.getField(options.inputFieldTitle)\n\t\t\t\t\t\t: ''\n\t\t\t\t;\n\n\t\t\t\tthis.setProductId(options.model.getSkuId());\n\t\t\t\tthis.#storeInfo.set('title', name);\n\t\t\t}\n\t\t\telse if (!options.model.isCatalogExisted())\n\t\t\t{\n\t\t\t\tthis.#storeInfo.set('id', settingsCollection.get('defaultStoreId'));\n\t\t\t\tthis.#storeInfo.set('title', settingsCollection.get('defaultStoreName'));\n\t\t\t}\n\n\t\t\tthis.#model = options.model;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#storeInfo.set('id', settingsCollection.get('defaultStoreId'));\n\t\t\tthis.#storeInfo.set('title', settingsCollection.get('defaultStoreName'));\n\t\t}\n\n\t\tthis.searchInput = new StoreSearchInput(this.id, {\n\t\t\tselector: this,\n\t\t\tinputName: this.options.inputFieldTitle,\n\t\t\tallowCreateItem: this.options.allowCreateItem || settingsCollection.get('allowCreateItem'),\n\t\t\tdisableByRights: settingsCollection.get('disableByRights'),\n\t\t});\n\n\t\t// this.setDetailPath(this.getConfig('DETAIL_PATH'));\n\t\tthis.layout();\n\n\t\tinstances.set(this.id, this);\n\t}\n\n\tsetMode(mode: StoreSelector.MODE_VIEW | StoreSelector.MODE_EDIT): void\n\t{\n\t\tif (!Type.isNil(mode))\n\t\t{\n\t\t\tthis.mode = mode === StoreSelector.MODE_VIEW ? StoreSelector.MODE_VIEW : StoreSelector.MODE_EDIT;\n\t\t}\n\t}\n\n\tsetProductId(productId: number): void\n\t{\n\t\tproductId = Text.toNumber(productId);\n\t\tif (productId > 0)\n\t\t{\n\t\t\tthis.productId = productId;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.productId = null;\n\t\t}\n\n\t\tthis.searchInput?.clearDialogCache();\n\t}\n\n\tisViewMode(): boolean\n\t{\n\t\treturn this.mode === StoreSelector.MODE_VIEW;\n\t}\n\n\tisDisabledEmpty(): boolean\n\t{\n\t\treturn this.options.isDisabledEmpty;\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetProductId(): ?number\n\t{\n\t\treturn this.productId;\n\t}\n\n\tgetConfig(name, defaultValue)\n\t{\n\t\treturn BX.prop.get(this.options.config, name, defaultValue);\n\t}\n\n\tgetDetailPath(): string\n\t{\n\t\treturn this.getConfig('detailPath', '');\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\tconst block = Tag.render`<div class=\"catalog-store-field-inner\"></div>`;\n\t\tDom.append(block, wrapper);\n\t\tDom.append(this.getNameBlock(), block);\n\t\tDom.append(this.getErrorBlock(), block);\n\t\tif (this.getStoreId() === '')\n\t\t{\n\t\t\tthis.layoutEmptyError();\n\t\t}\n\t}\n\n\tsetEmptyError()\n\t{\n\t\tthis.#model.getErrorCollection().setError(\n\t\t\tSelectorErrorCode.NOT_SELECTED_STORE,\n\t\t\tLoc.getMessage('CATALOG_STORE_SELECTOR_UNSELECTED')\n\t\t);\n\n\t\tthis.layoutEmptyError();\n\t}\n\n\tclearEmptyError(): this\n\t{\n\t\tthis.#model.getErrorCollection().removeError(SelectorErrorCode.NOT_SELECTED_STORE);\n\n\t\treturn this;\n\t}\n\n\tlayoutEmptyError(): this\n\t{\n\t\tthis.getErrorBlock().innerHTML = '';\n\t\tDom.append(\n\t\t\tTag.render`<div class=\"catalog-store-field-error\">${Loc.getMessage('CATALOG_STORE_SELECTOR_UNSELECTED')}</div>`,\n\t\t\tthis.getErrorBlock()\n\t\t);\n\n\t\tif (this.searchInput)\n\t\t{\n\t\t\tDom.addClass(this.getNameBlock(), 'ui-ctl-danger');\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tclearErrorLayout(): this\n\t{\n\t\tthis.getErrorBlock().innerHTML = '';\n\t\tDom.removeClass(this.getNameBlock(), 'ui-ctl-danger');\n\n\t\treturn this;\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\tonClear()\n\t{\n\t\tthis.clearState();\n\t\tthis.clearLayout();\n\t\tthis.layout();\n\t\tthis.searchInput.searchInDialog();\n\t\tthis.focusName();\n\n\t\tthis.emit('onClear', {\n\t\t\tselectorId: this.getId(),\n\t\t\trowId: this.getRowId(),\n\t\t\tfields: [\n\t\t\t\t{\n\t\t\t\t\tNAME: this.options.inputFieldId,\n\t\t\t\t\tVALUE: null,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tNAME: this.options.inputFieldTitle,\n\t\t\t\t\tVALUE: '',\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t}\n\n\tclearState(): void\n\t{\n\t\tthis.#storeInfo.clear();\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.nameBlock = null;\n\n\t\tthis.clearErrorLayout();\n\t}\n\n\tunsubscribeEvents()\n\t{\n\t}\n\n\tdefineWrapperClass(wrapper)\n\t{\n\t\tif (this.isViewMode())\n\t\t{\n\t\t\tDom.addClass(wrapper, 'catalog-store-view');\n\t\t\tDom.removeClass(wrapper, 'catalog-store-edit');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(wrapper, 'catalog-store-edit');\n\t\t\tDom.removeClass(wrapper, 'catalog-store-view');\n\t\t}\n\t}\n\n\tgetViewHtml(): HTMLElement\n\t{\n\t\tconst storeTitle = Text.encode(this.getStoreTitle());\n\t\tconst titlePlaceholder = Loc.getMessage('CATALOG_STORE_SELECTOR_VIEW_NAME_TITLE');\n\n\t\tif (this.getDetailPath())\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<a href=\"${this.getDetailPath()}\" title=\"${titlePlaceholder}\">${storeTitle}</a>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`<span title=\"${titlePlaceholder}\">${storeTitle}</span>`;\n\n\t}\n\n\tgetNameBlock(): HTMLElement\n\t{\n\t\tif (this.nameBlock)\n\t\t{\n\t\t\treturn this.nameBlock;\n\t\t}\n\n\t\tconst block = Tag.render`<div class=\"catalog-store-field-input\"></div>`;\n\n\t\tif (this.isViewMode())\n\t\t{\n\t\t\tDom.append(this.getViewHtml(), block);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(this.searchInput.layout(), block);\n\t\t}\n\n\t\tthis.nameBlock = block;\n\n\t\treturn this.nameBlock;\n\t}\n\n\tgetErrorBlock(): HTMLElement\n\t{\n\t\tif (!this.errorBlock)\n\t\t{\n\t\t\tthis.errorBlock = Tag.render`<div class=\"catalog-store-field-error\"></div>`;\n\t\t}\n\n\t\treturn this.errorBlock;\n\t}\n\n\tgetStoreTitle()\n\t{\n\t\treturn this.#storeInfo.get('title') || '';\n\t}\n\n\tgetStoreId()\n\t{\n\t\treturn this.#storeInfo.get('id') || '';\n\t}\n\n\tonStoreSelect(storeId, storeTitle)\n\t{\n\t\tif (storeTitle === '')\n\t\t{\n\t\t\tstoreTitle = Loc.getMessage('CATALOG_STORE_SELECTOR_EMPTY_STORE_TITLE');\n\t\t}\n\t\tthis.#storeInfo.set('id', storeId);\n\t\tthis.#storeInfo.set('title', storeTitle);\n\t\tthis.clearLayout();\n\t\tthis.clearEmptyError();\n\t\tthis.layout();\n\n\t\tthis.emit('onChange', {\n\t\t\tselectorId: this.id,\n\t\t\trowId: this.getRowId(),\n\t\t\tfields: [\n\t\t\t\t{\n\t\t\t\t\tNAME: this.options.inputFieldId,\n\t\t\t\t\tVALUE: storeId,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tNAME: this.options.inputFieldTitle,\n\t\t\t\t\tVALUE: storeTitle,\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t}\n\n\tgetRowId(): string\n\t{\n\t\treturn this.getConfig('ROW_ID');\n\t}\n}\n"],"names":["SelectorErrorCode","StoreSearchInput","id","options","Cache","MemoryCache","Text","getRandom","selector","StoreSelector","Error","isEnabledDetailLink","inputName","allowCreateItem","undefined","disableByRights","disabledHint","Loc","getMessage","icon","value","Type","isDomNode","Dom","style","Tag","render","cache","remember","getNameInput","getHiddenNameInput","encode","getStoreTitle","getPlaceholder","handleNameInputHiddenChange","bind","event","target","handleClearIconClick","getDetailPath","handleSearchIconClick","clearInputCache","block","append","getSearchIcon","toggleIcon","getClearIcon","showDetailLink","isStringFilled","getArrowIcon","Event","handleNameInputClick","handleNameInput","handleNameInputBlur","handleNameInputKeyDown","getNameBlock","BX","UI","Hint","init","searchInDialog","handleIconsSwitchingOnNameInput","onClear","stubOptions","title","message","subtitle","arrow","params","height","context","targetNode","enableSearch","multiple","dropdownMode","searchTabOptions","stub","events","onStoreSelect","onSearch","createStore","entities","productId","getProductId","searchFields","name","type","system","searchable","dynamicLoad","dynamicSearch","searchOptions","Dialog","dialog","getDialog","key","getActiveTab","getSearchTab","preventDefault","Browser","isMac","metaKey","ctrlKey","getFooter","createItem","stopPropagation","requestAnimationFrame","focus","searchQuery","show","search","setTimeout","isDisabledEmpty","getStoreId","setEmptyError","clearErrorLayout","clearEmptyError","focusName","getData","query","searchTab","hide","item","getTargetNode","getTitle","getId","clearLayout","layout","getQuery","Promise","resolve","reject","getTarget","showLoader","ajax","runAction","json","then","response","hideLoader","toInteger","data","addItem","entityId","tabs","getRecentTab","select","console","error","hint","instances","Map","get","MODE_EDIT","setEventNamespace","inputFieldTitle","INPUT_FIELD_TITLE","inputFieldId","INPUT_FIELD_ID","setMode","mode","settingsCollection","Extension","getSettings","model","ProductModel","getField","set","setProductId","getSkuId","isCatalogExisted","searchInput","isNil","MODE_VIEW","toNumber","clearDialogCache","defaultValue","prop","config","getConfig","wrapper","document","getElementById","node","getWrapper","defineWrapperClass","getErrorBlock","layoutEmptyError","getErrorCollection","setError","NOT_SELECTED_STORE","removeError","innerHTML","addClass","removeClass","clearState","emit","selectorId","rowId","getRowId","fields","NAME","VALUE","clear","nameBlock","isViewMode","storeTitle","titlePlaceholder","getViewHtml","errorBlock","storeId","EventEmitter"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.27 |
proxy
|
phpinfo
|
Settings