Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/ui/userfieldfactory/dist/ |
Upload File : |
{"version":3,"file":"userfieldfactory.bundle.js","sources":["../src/fieldtypes.js","../src/creationmenu.js","../src/enumitem.js","../src/configurator.js","../src/factory.js"],"sourcesContent":["import {Loc} from 'main.core';\n\nexport const MAX_FIELD_LENGTH = 50;\n\n/**\n * @memberof BX.UI.UserFieldFactory\n */\nexport class FieldTypes\n{\n\tstatic getTypes(): {}\n\t{\n\t\treturn Object.freeze({\n\t\t\tstring: 'string',\n\t\t\tenumeration: 'enumeration',\n\t\t\tdate: 'date',\n\t\t\tdatetime: 'datetime',\n\t\t\taddress: 'address',\n\t\t\turl: 'url',\n\t\t\tfile: 'file',\n\t\t\tmoney: 'money',\n\t\t\tboolean: 'boolean',\n\t\t\tdouble: 'double',\n\t\t\temployee: 'employee',\n\t\t\tcrm: 'crm',\n\t\t\tcrmStatus: 'crm_status',\n\t\t});\n\t}\n\n\tstatic getDescriptions(): {}\n\t{\n\t\treturn Object.freeze({\n\t\t\tstring: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_STRING_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_STRING_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_STRING_LABEL'),\n\t\t\t},\n\t\t\tenumeration: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_ENUM_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_ENUM_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_ENUMERATION_LABEL'),\n\t\t\t},\n\t\t\tdate: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_DATE_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_DATE_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_DATE_LABEL'),\n\t\t\t},\n\t\t\tdatetime: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_DATETIME_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_DATETIME_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_DATETIME_LABEL'),\n\t\t\t},\n\t\t\taddress: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_ADDRESS_TITLE_2\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_ADDRESS_LEGEND_2\"),\n\t\t\t},\n\t\t\turl: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_URL_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_URL_LEGEND\"),\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_FILE_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_FILE_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_FILE_LABEL'),\n\t\t\t},\n\t\t\tmoney: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_MONEY_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_MONEY_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_MONEY_LABEL'),\n\t\t\t},\n\t\t\tboolean: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_BOOLEAN_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_BOOLEAN_LEGEND\"),\n\t\t\t},\n\t\t\tdouble: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_DOUBLE_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_DOUBLE_LEGEND\"),\n\t\t\t\tdefaultTitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_DOUBLE_LABEL'),\n\t\t\t},\n\t\t\temployee: {\n\t\t\t\ttitle: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_EMPLOYEE_TITLE\"),\n\t\t\t\tdescription: Loc.getMessage(\"UI_USERFIELD_FACTORY_UF_EMPLOYEE_LEGEND\"),\n\t\t\t},\n\t\t});\n\t}\n\n\tstatic getCustomTypeDescription(): {}\n\t{\n\t\treturn Object.freeze({\n\t\t\tname: 'custom',\n\t\t\ttitle: Loc.getMessage('UI_USERFIELD_FACTORY_UF_CUSTOM_TITLE'),\n\t\t\tdescription: Loc.getMessage('UI_USERFIELD_FACTORY_UF_CUSTOM_LEGEND'),\n\t\t});\n\t}\n}\n\nexport const DefaultData = Object.freeze({\n\tmultiple: 'N',\n\tmandatory: 'N',\n\tuserTypeId: FieldTypes.string,\n\tshowFilter: 'E',\n\tshowInList: 'Y',\n\tsettings: {},\n\tisSearchable: 'N',\n});\n\nexport const DefaultFieldData = Object.freeze({\n\tfile: {\n\t\tshowFilter: 'N',\n\t\tshowInList: 'N',\n\t},\n\temployee: {\n\t\tshowFilter: 'I',\n\t},\n\tcrm: {\n\t\tshowFilter: 'I',\n\t},\n\tcrm_status: {\n\t\tshowFilter: 'I',\n\t},\n\tenumeration: {\n\t\tsettings: {\n\t\t\tDISPLAY: 'UI',\n\t\t},\n\t},\n\tdouble: {\n\t\tsettings: {\n\t\t\tPRECISION: 2,\n\t\t},\n\t},\n});\n","import {Dom, Event, Type, Tag} from 'main.core';\nimport {Popup} from 'main.popup';\n\nconst SCROLL_OFFSET = 3;\n\n/**\n * @memberof BX.UI.UserFieldFactory\n */\nexport class CreationMenu\n{\n\t#enableScrollToBottom: boolean;\n\t#enableScrollToTop: boolean;\n\n\tconstructor(id: string, types: Array, params: Object)\n\t{\n\t\tthis.id = id;\n\t\tthis.items = types;\n\t\tthis.params = {};\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tthis.params = params;\n\t\t}\n\t}\n\n\tgetId(): string\n\t{\n\t\tif(!this.id)\n\t\t{\n\t\t\treturn 'ui-user-field-factory-menu';\n\t\t}\n\n\t\treturn this.id;\n\t}\n\n\tgetPopup(onItemClick = null): Popup\n\t{\n\t\tif(!this.popup)\n\t\t{\n\t\t\tlet options = {...CreationMenu.getDefaultPopupOptions(), ...this.params};\n\n\t\t\toptions.events = {\n\t\t\t\tonPopupShow: this.onPopupShow.bind(this),\n\t\t\t\tonPopupDestroy: this.onPopupDestroy.bind(this),\n\t\t\t};\n\t\t\toptions.id = this.getId();\n\n\t\t\tthis.popup = new Popup(options);\n\t\t}\n\n\t\tthis.popup.setContent(this.render(onItemClick));\n\n\t\treturn this.popup;\n\t}\n\n\tstatic getDefaultPopupOptions(): Object\n\t{\n\t\treturn {\n\t\t\tautoHide: true,\n\t\t\tdraggable: false,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tnoAllPaddings: true,\n\t\t\tbindOptions: { forceBindPosition: true },\n\t\t\tcloseByEsc: true,\n\t\t\tcacheable: false,\n\t\t};\n\t}\n\n\topen(callback: function): void\n\t{\n\t\tconst popup = this.getPopup(callback);\n\t\tif(!popup.isShown())\n\t\t{\n\t\t\tpopup.show();\n\t\t}\n\t}\n\n\trender(onItemClick): Element\n\t{\n\t\tif(!this.container)\n\t\t{\n\t\t\tthis.container = Tag.render`<div class=\"ui-userfieldfactory-creation-menu-container\"></div>`;\n\n\t\t\tconst scrollIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"42\\\" height=\\\"13\\\" viewBox=\\\"0 0 42 13\\\">\\n\" +\n\t\t\t\t\" <polyline fill=\\\"none\\\" stroke=\\\"#CACDD1\\\" stroke-width=\\\"2\\\" points=\\\"274 98 284 78.614 274 59\\\" transform=\\\"rotate(90 186 -86.5)\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n\" +\n\t\t\t\t\"</svg>\\n\";\n\n\t\t\tthis.topScrollButton = Tag.render`<div class=\"ui-userfieldfactory-creation-menu-scroll-top\">${scrollIcon}</div>`;\n\t\t\tthis.bottomScrollButton = Tag.render`<div class=\"ui-userfieldfactory-creation-menu-scroll-bottom\">${scrollIcon}</div>`;\n\n\t\t\tthis.container.appendChild(this.topScrollButton);\n\t\t\tthis.container.appendChild(this.bottomScrollButton);\n\n\t\t\tthis.container.appendChild(this.renderList(onItemClick));\n\t\t}\n\n\t\treturn this.container;\n\t}\n\n\trenderList(onItemClick): Element\n\t{\n\t\tif(!this.containerList)\n\t\t{\n\t\t\tthis.containerList = Tag.render`<div class=\"ui-userfieldfactory-creation-menu-list\"></div>`;\n\n\t\t\tthis.items.forEach((item) =>\n\t\t\t{\n\t\t\t\tthis.containerList.appendChild(this.renderItem(item, onItemClick));\n\t\t\t});\n\t\t}\n\n\t\treturn this.containerList;\n\t}\n\n\trenderItem(item, onClick): Element\n\t{\n\t\treturn Tag.render`<div class=\"ui-userfieldfactory-creation-menu-item\" onclick=\"${(()=>{this.handleItemClick(item, onClick);})}\">\n\t\t\t<div class=\"ui-userfieldfactory-creation-menu-item-title\">${item.title}</div>\n\t\t\t<div class=\"ui-userfieldfactory-creation-menu-item-desc\">${item.description}</div>\n\t\t</div>`;\n\t}\n\n\thandleItemClick(item, onClick)\n\t{\n\t\tif(Type.isFunction(item.onClick))\n\t\t{\n\t\t\titem.onClick(item.name);\n\t\t}\n\t\telse if(Type.isFunction(onClick))\n\t\t{\n\t\t\tonClick(item.name);\n\t\t}\n\t\tthis.getPopup().close();\n\t}\n\n\tonPopupShow()\n\t{\n\t\tEvent.bind(this.bottomScrollButton, \"mouseover\", this.onBottomButtonMouseOver.bind(this));\n\t\tEvent.bind(this.bottomScrollButton, \"mouseout\", this.onBottomButtonMouseOut.bind(this));\n\t\tEvent.bind(this.topScrollButton, \"mouseover\", this.onTopButtonMouseOver.bind(this));\n\t\tEvent.bind(this.topScrollButton, \"mouseout\", this.onTopButtonMouseOut.bind(this));\n\t\tEvent.bind(this.containerList, \"scroll\", this.onScroll.bind(this));\n\n\t\twindow.setTimeout(this.adjust.bind(this), 100);\n\t}\n\n\tonPopupDestroy()\n\t{\n\t\tEvent.unbind(this.bottomScrollButton, \"mouseover\", this.onBottomButtonMouseOver.bind(this));\n\t\tEvent.unbind(this.bottomScrollButton, \"mouseout\", this.onBottomButtonMouseOut.bind(this));\n\t\tEvent.unbind(this.topScrollButton, \"mouseover\", this.onTopButtonMouseOver.bind(this));\n\t\tEvent.unbind(this.topScrollButton, \"mouseout\", this.onTopButtonMouseOut.bind(this));\n\t\tEvent.unbind(this.containerList, \"scroll\", this.onScroll.bind(this));\n\n\t\tthis.container = null;\n\t\tthis.containerList = null;\n\t\tthis.topScrollButton = null;\n\t\tthis.bottomScrollButton = null;\n\n\t\tthis.popup = null;\n\t}\n\n\tonBottomButtonMouseOver()\n\t{\n\t\tif(this.#enableScrollToBottom)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#enableScrollToBottom = true;\n\t\tthis.#enableScrollToTop = false;\n\n\t\t(function scroll()\n\t\t{\n\t\t\tif(!this.#enableScrollToBottom)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif((this.containerList.scrollTop + this.containerList.offsetHeight) !== this.containerList.scrollHeight)\n\t\t\t{\n\t\t\t\tthis.containerList.scrollTop += SCROLL_OFFSET;\n\t\t\t}\n\n\t\t\tif((this.containerList.scrollTop + this.containerList.offsetHeight) === this.containerList.scrollHeight)\n\t\t\t{\n\t\t\t\tthis.#enableScrollToBottom = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\twindow.setTimeout(scroll.bind(this), 20);\n\t\t\t}\n\t\t}).bind(this)();\n\t}\n\n\tonBottomButtonMouseOut()\n\t{\n\t\tthis.#enableScrollToBottom = false;\n\t}\n\n\tonTopButtonMouseOver()\n\t{\n\t\tif(this.#enableScrollToTop)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#enableScrollToBottom = false;\n\t\tthis.#enableScrollToTop = true;\n\n\t\t(function scroll()\n\t\t{\n\t\t\tif(!this.#enableScrollToTop)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(this.containerList.scrollTop > 0)\n\t\t\t{\n\t\t\t\tthis.containerList.scrollTop -= SCROLL_OFFSET;\n\t\t\t}\n\n\t\t\tif(this.containerList.scrollTop === 0)\n\t\t\t{\n\t\t\t\tthis.#enableScrollToTop = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\twindow.setTimeout(scroll.bind(this), 20);\n\t\t\t}\n\t\t}).bind(this)();\n\t}\n\n\tonTopButtonMouseOut()\n\t{\n\t\tthis.#enableScrollToTop = false;\n\t}\n\n\tonScroll()\n\t{\n\t\tthis.adjust();\n\t}\n\n\tadjust()\n\t{\n\t\tconst height = this.containerList.offsetHeight;\n\t\tconst scrollTop = this.containerList.scrollTop;\n\t\tconst scrollHeight = this.containerList.scrollHeight;\n\n\t\tif(scrollTop === 0)\n\t\t{\n\t\t\tDom.hide(this.topScrollButton);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.show(this.topScrollButton);\n\t\t}\n\n\t\tif((scrollTop + height) === scrollHeight)\n\t\t{\n\t\t\tDom.hide(this.bottomScrollButton);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.show(this.bottomScrollButton);\n\t\t}\n\t}\n}","/**\n * @memberof BX.UI.UserFieldFactory\n */\nexport class EnumItem\n{\n\tconstructor(value = null, id = null)\n\t{\n\t\tthis.value = value;\n\t\tthis.id = id;\n\t}\n\n\tsetNode(node: Element)\n\t{\n\t\tthis.node = node;\n\t}\n\n\tgetId(): ?number\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetNode(): ?Element\n\t{\n\t\treturn this.node;\n\t}\n\n\tgetInput(): ?Element\n\t{\n\t\tconst node = this.getNode();\n\t\tif(!node)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tif(node instanceof HTMLInputElement)\n\t\t{\n\t\t\treturn node;\n\t\t}\n\t\treturn node.querySelector('input');\n\t}\n\n\tgetValue(): string\n\t{\n\t\tconst input = this.getInput();\n\t\tif(input && input.value)\n\t\t{\n\t\t\treturn input.value;\n\t\t}\n\n\t\treturn this.value || '';\n\t}\n}","import {Type, Loc, Tag, Text, Dom} from 'main.core';\nimport {UserField} from 'ui.userfield';\nimport {FieldTypes} from \"./fieldtypes\";\nimport {EnumItem} from './enumitem';\n\n/**\n * @memberof BX.UI.UserFieldFactory\n */\nexport class Configurator\n{\n\tconstructor(params: {\n\t\tuserField: UserField,\n\t\tonSave: Function,\n\t\tonCancel: ?Function,\n\t\tcanMultipleFields: boolean,\n\t\tcanRequiredFields: boolean,\n\t})\n\t{\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(params.userField)\n\t\t\t{\n\t\t\t\tthis.userField = params.userField;\n\t\t\t}\n\t\t\tif(Type.isFunction(params.onSave))\n\t\t\t{\n\t\t\t\tthis.onSave = params.onSave;\n\t\t\t}\n\t\t\tif(Type.isFunction(params.onCancel))\n\t\t\t{\n\t\t\t\tthis.onCancel = params.onCancel;\n\t\t\t}\n\n\t\t\tthis.canMultipleFields = true;\n\t\t\tif (Type.isBoolean(params.canMultipleFields))\n\t\t\t{\n\t\t\t\tthis.canMultipleFields = params.canMultipleFields;\n\t\t\t}\n\n\t\t\tthis.canRequiredFields = true;\n\t\t\tif (Type.isBoolean(params.canRequiredFields))\n\t\t\t{\n\t\t\t\tthis.canRequiredFields = params.canRequiredFields;\n\t\t\t}\n\t\t}\n\n\t\tthis.enumItems = new Set();\n\t}\n\n\trender(): Element\n\t{\n\t\tthis.node = Tag.render`<div class=\"ui-userfieldfactory-configurator\"></div>`;\n\n\t\tthis.labelInput = Tag.render`<input class=\"ui-ctl-element\" type=\"text\" placeholder=\"${Text.encode(this.userField.getTitle())}\" />`;\n\n\t\tthis.node.appendChild(Tag.render`<div class=\"ui-userfieldfactory-configurator-block\">\n\t\t\t<div class=\"ui-userfieldfactory-configurator-title\">\n\t\t\t\t<span class=\"ui-userfieldfactory-configurator-title-text\">${Loc.getMessage('UI_USERFIELD_FACTORY_CONFIGURATOR_FIELD_TITLE')}</span>\n\t\t\t</div>\n\t\t\t<div class=\"ui-userfieldfactory-configurator-content\">\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t${this.labelInput}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>`);\n\n\t\tif(this.userField.getUserTypeId() === FieldTypes.getTypes().enumeration)\n\t\t{\n\t\t\tthis.node.appendChild(this.renderEnumeration());\n\t\t}\n\n\t\tthis.node.appendChild(this.renderOptions());\n\n\t\tconst save = (event) =>\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tif(Type.isFunction(this.onSave))\n\t\t\t{\n\t\t\t\tthis.onSave(this.saveField());\n\t\t\t}\n\t\t};\n\n\t\tconst cancel = (event) =>\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tif(Type.isFunction(this.onCancel))\n\t\t\t{\n\t\t\t\tthis.onCancel();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.node.style.display = 'none';\n\t\t\t}\n\t\t};\n\n\t\tthis.saveButton = Tag.render`<span class=\"ui-btn ui-btn-primary\" onclick=\"${save.bind(this)}\">${Loc.getMessage('UI_USERFIELD_SAVE')}</span>`;\n\t\tthis.cancelButton = Tag.render`<span class=\"ui-btn ui-btn-light-border\" onclick=\"${cancel.bind(this)}\">${Loc.getMessage('UI_USERFIELD_CANCEL')}</span>`;\n\n\t\tthis.node.appendChild(Tag.render`<div class=\"ui-userfieldfactory-configurator-block\">\n\t\t\t${this.saveButton}${this.cancelButton}\n\t\t</div>`);\n\n\t\treturn this.node;\n\t}\n\n\tsaveField(): UserField\n\t{\n\t\tif(this.timeCheckbox)\n\t\t{\n\t\t\tif(this.timeCheckbox.checked)\n\t\t\t{\n\t\t\t\tthis.userField.setUserTypeId(FieldTypes.getTypes().datetime);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.userField.setUserTypeId(FieldTypes.getTypes().date);\n\t\t\t}\n\t\t}\n\t\tif(this.multipleCheckbox)\n\t\t{\n\t\t\tthis.userField.setIsMultiple(this.multipleCheckbox.checked);\n\t\t}\n\n\t\tif (this.mandatoryCheckbox)\n\t\t{\n\t\t\tthis.userField.setIsMandatory(this.mandatoryCheckbox.checked);\n\t\t}\n\n\t\tthis.userField.setTitle(this.labelInput.value);\n\t\tthis.saveEnumeration(this.userField, this.enumItems);\n\n\t\treturn this.userField;\n\t}\n\n\trenderEnumeration(): Element\n\t{\n\t\tthis.enumItemsContainer = Tag.render`<div class=\"ui-userfieldfactory-configurator-block\"></div>`;\n\n\t\tthis.enumAddItemContainer = Tag.render`<div class=\"ui-userfieldfactory-configurator-block-add-field\">\n\t\t\t<span class=\"ui-userfieldfactory-configurator-add-button\" onclick=\"${() => {this.addEnumInput().focus();}}\">${Loc.getMessage('UI_USERFIELD_ADD')}</span>\n\t\t</div>`;\n\n\t\tthis.enumContainer = Tag.render`<div class=\"ui-userfieldfactory-configurator-block\">\n\t\t\t<div class=\"ui-userfieldfactory-configurator-title\">\n\t\t\t\t<span class=\"ui-userfieldfactory-configurator-title-text\">${Loc.getMessage('UI_USERFIELD_FACTORY_UF_ENUM_ITEMS')}</span>\n\t\t\t</div>\n\t\t\t${this.enumItemsContainer}\n\t\t\t${this.enumAddItemContainer}\n\t\t</div>`;\n\n\t\tthis.userField.getEnumeration().forEach((item) =>\n\t\t{\n\t\t\tthis.addEnumInput(item);\n\t\t});\n\t\tthis.addEnumInput();\n\n\t\treturn this.enumContainer;\n\t}\n\n\taddEnumInput(item: ?{\n\t\tvalue: string,\n\t\tid: ?number,\n\t}): Element\n\t{\n\t\tlet enumItem;\n\t\tif(Type.isPlainObject(item))\n\t\t{\n\t\t\tenumItem = new EnumItem(item.value, item.id);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tenumItem = new EnumItem();\n\t\t}\n\n\t\tconst node = Tag.render`<div style=\"margin-bottom: 10px;\" class=\"ui-ctl ui-ctl-textbox ui-ctl-w100 ui-ctl-row\">\n\t\t\t<input class=\"ui-ctl-element\" type=\"text\" value=\"${Text.encode(enumItem.getValue())}\">\n\t\t\t<div class=\"ui-userfieldfactory-configurator-remove-enum\" onclick=\"${(event) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.deleteEnumItem(enumItem);\n\t\t\t}}\"></div>\n\t\t</div>`;\n\n\t\tenumItem.setNode(node);\n\n\t\tthis.enumItems.add(enumItem);\n\n\t\tthis.enumItemsContainer.appendChild(node);\n\n\t\treturn node;\n\t}\n\n\tdeleteEnumItem(item: EnumItem)\n\t{\n\t\tthis.enumItemsContainer.removeChild(item.getNode());\n\t\tthis.enumItems.delete(item);\n\t}\n\n\trenderOptions(): Element\n\t{\n\t\tthis.optionsContainer = Tag.render`<div class=\"ui-userfieldfactory-configurator-block\"></div>`;\n\n\t\tif (this.canRequiredFields)\n\t\t{\n\t\t\tthis.mandatoryCheckbox = Tag.render`<input class=\"ui-ctl-element\" type=\"checkbox\">`;\n\t\t\tthis.mandatoryCheckbox.checked = (this.userField.isMandatory());\n\t\t\tthis.optionsContainer.appendChild(Tag.render`<div>\n\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox ui-ctl-xs\">\n\t\t\t\t\t${this.mandatoryCheckbox}\n\t\t\t\t\t<div class=\"ui-ctl-label-text\">${Loc.getMessage('UI_USERFIELD_FACTORY_FIELD_REQUIRED')}</div>\n\t\t\t\t</label>\n\t\t\t</div>`);\n\t\t}\n\n\t\tif(\n\t\t\t!this.userField.isSaved()\n\t\t\t&& (\n\t\t\t\tthis.userField.getUserTypeId() === FieldTypes.getTypes().date\n\t\t\t\t|| this.userField.getUserTypeId() === FieldTypes.getTypes().datetime\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\tthis.timeCheckbox = Tag.render`<input class=\"ui-ctl-element\" type=\"checkbox\">`;\n\t\t\tthis.timeCheckbox.checked = (this.userField.getUserTypeId() === FieldTypes.getTypes().datetime);\n\t\t\tconst label = Tag.render`\n\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox ui-ctl-xs\">\n\t\t\t\t\t${this.timeCheckbox}\n\t\t\t\t</label>\n\t\t\t`;\n\n\t\t\tif (this.userField.getUserTypeId() === FieldTypes.getTypes().datetime)\n\t\t\t{\n\t\t\t\tDom.append(\n\t\t\t\t\tTag.render`<div className=\"ui-ctl-label-text\">${Loc.getMessage('UI_USERFIELD_FACTORY_UF_ENABLE_TIME')}</div>`,\n\t\t\t\t\tlabel,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.optionsContainer.appendChild(Tag.render`<div>\n\t\t\t\t\n\t\t\t</div>`);\n\t\t}\n\n\t\tif (\n\t\t\t!this.userField.isSaved()\n\t\t\t&& this.userField.getUserTypeId() !== FieldTypes.getTypes().boolean\n\t\t\t&& this.canMultipleFields\n\t\t)\n\t\t{\n\t\t\tthis.multipleCheckbox = Tag.render`<input class=\"ui-ctl-element\" type=\"checkbox\">`;\n\t\t\tthis.multipleCheckbox.checked = this.userField.isMultiple();\n\t\t\tthis.optionsContainer.appendChild(Tag.render`<div>\n\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox ui-ctl-xs\">\n\t\t\t\t\t${this.multipleCheckbox}\n\t\t\t\t\t<div class=\"ui-ctl-label-text\">${Loc.getMessage('UI_USERFIELD_FACTORY_FIELD_MULTIPLE')}</div>\n\t\t\t\t</label>\n\t\t\t</div>`);\n\t\t}\n\n\t\treturn this.optionsContainer;\n\t}\n\n\tsaveEnumeration(userField: UserField, enumItems: EnumItem[])\n\t{\n\t\tconst items = [];\n\t\tlet sort = 100;\n\n\t\tenumItems.forEach((item) =>\n\t\t{\n\t\t\titems.push({\n\t\t\t\tvalue: item.getValue(),\n\t\t\t\tsort: sort,\n\t\t\t\tid: item.getId(),\n\t\t\t});\n\n\t\t\tsort += 100;\n\t\t});\n\n\t\tuserField.setEnumeration(items);\n\t}\n}\n","import {Loc, Type, Reflection} from \"main.core\";\nimport {EventEmitter} from \"main.core.events\";\n\nimport {CreationMenu} from \"./creationmenu\";\nimport {UserField} from 'ui.userfield';\nimport {MAX_FIELD_LENGTH, DefaultData, DefaultFieldData, FieldTypes} from \"./fieldtypes\";\nimport {Configurator} from \"./configurator\";\n\nimport 'sidepanel';\nimport 'uf';\n\n/**\n * @memberof BX.UI.UserFieldFactory\n * @mixes EventEmitter\n */\nexport class Factory\n{\n\tconstructor(entityId: string, params: {\n\t\tmenuId: ?string,\n\t\ttypes: ?Array,\n\t\tbindElement: ?Element,\n\t\tconfiguratorClass: ?Configurator,\n\t\tcustomTypesUrl: ?string,\n\t\tmoduleId: ?string,\n\t} = {})\n\t{\n\t\tEventEmitter.makeObservable(this, 'BX.UI.UserFieldFactory.Factory');\n\t\tthis.configuratorClass = Configurator;\n\t\tif(Type.isString(entityId) && entityId.length > 0)\n\t\t{\n\t\t\tthis.entityId = entityId;\n\t\t}\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(Type.isString(params.menuId))\n\t\t\t{\n\t\t\t\tthis.menuId = params.menuId;\n\t\t\t}\n\t\t\tif(!Type.isArray(params.types))\n\t\t\t{\n\t\t\t\tparams.types = [];\n\t\t\t}\n\t\t\tif(Type.isDomNode(params.bindElement))\n\t\t\t{\n\t\t\t\tthis.bindElement = params.bindElement;\n\t\t\t}\n\t\t\tthis.moduleId = params.moduleId;\n\t\t\tthis.setCustomTypesUrl(params.customTypesUrl)\n\t\t\t\t.setConfiguratorClass(params.configuratorClass);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tparams.types = [];\n\t\t}\n\t\tthis.types = this.getFieldTypes().concat(params.types);\n\t}\n\n\tgetFieldTypes(): Array\n\t{\n\t\tconst types = [];\n\n\t\tObject.keys(FieldTypes.getDescriptions()).forEach((name) =>\n\t\t{\n\t\t\ttypes.push({...FieldTypes.getDescriptions()[name], ...{name}});\n\t\t});\n\n\t\tthis.emit('OnGetUserTypes', {\n\t\t\ttypes\n\t\t});\n\n\t\treturn types;\n\t}\n\n\tgetMenu(params: Object): CreationMenu\n\t{\n\t\tif(!Type.isPlainObject(params))\n\t\t{\n\t\t\tparams = {};\n\t\t}\n\t\tif(!Type.isDomNode(params.bindElement))\n\t\t{\n\t\t\tparams.bindElement = this.bindElement;\n\t\t}\n\t\tconst types = this.types;\n\t\tif(this.customTypesUrl && !this.isCustomTypeAdded)\n\t\t{\n\t\t\tconst customType = {...FieldTypes.getCustomTypeDescription()};\n\t\t\tcustomType.onClick = this.onCustomTypeClick.bind(this);\n\t\t\ttypes.push(customType);\n\t\t\tthis.isCustomTypeAdded = true;\n\t\t}\n\t\tif(!this.menu)\n\t\t{\n\t\t\tthis.menu = new CreationMenu(this.menuId, types, params);\n\t\t}\n\n\t\treturn this.menu;\n\t}\n\n\tsetConfiguratorClass(configuratorClassName: string|Function)\n\t{\n\t\tlet configuratorClass = null;\n\t\tif(Type.isString(configuratorClassName))\n\t\t{\n\t\t\tconfiguratorClass = Reflection.getClass(configuratorClassName);\n\t\t}\n\t\telse if(Type.isFunction(configuratorClassName))\n\t\t{\n\t\t\tconfiguratorClass = configuratorClassName;\n\t\t}\n\n\t\tif(Type.isFunction(configuratorClass) && configuratorClass.prototype instanceof Configurator)\n\t\t{\n\t\t\tthis.configuratorClass = configuratorClass;\n\t\t}\n\t}\n\n\tsetCustomTypesUrl(customTypesUrl: string): this\n\t{\n\t\tthis.customTypesUrl = customTypesUrl;\n\n\t\treturn this;\n\t}\n\n\tgetConfigurator(params: {\n\t\tuserField: UserField,\n\t\tonSave: Function,\n\t\tonCancel: ?Function,\n\t}): Configurator\n\t{\n\t\treturn new this.configuratorClass(params);\n\t}\n\n\tcreateUserField(fieldType: string, fieldName: ?string): UserField\n\t{\n\t\tlet data = {...DefaultData, ...DefaultFieldData[fieldType], ...{userTypeId: fieldType}};\n\n\t\tif(!Type.isString(fieldName) || fieldName.length <= 0 || fieldName.length > MAX_FIELD_LENGTH)\n\t\t{\n\t\t\tfieldName = this.generateFieldName();\n\t\t}\n\t\tdata.fieldName = fieldName;\n\t\tdata.entityId = this.entityId;\n\n\t\tconst userField = new UserField(data, {\n\t\t\tmoduleId: this.moduleId,\n\t\t});\n\t\tuserField.setTitle(this.getDefaultLabel(fieldType));\n\n\t\tthis.emit('onCreateField', {\n\t\t\tuserField,\n\t\t});\n\n\t\treturn userField;\n\t}\n\n\tgetDefaultLabel(fieldType: string): string\n\t{\n\t\tlet label = Loc.getMessage('UI_USERFIELD_FACTORY_UF_LABEL');\n\t\tthis.types.forEach((type) =>\n\t\t{\n\t\t\tif(type.name === fieldType && Type.isString(type.defaultTitle))\n\t\t\t{\n\t\t\t\tlabel = type.defaultTitle;\n\t\t\t}\n\t\t});\n\n\t\treturn label;\n\t}\n\n\tgenerateFieldName(): string\n\t{\n\t\tlet name = 'UF_' + (this.entityId ? (this.entityId + \"_\") : \"\");\n\t\tlet dateSuffix = (new Date()).getTime().toString();\n\t\tif(name.length + dateSuffix.length > MAX_FIELD_LENGTH)\n\t\t{\n\t\t\tdateSuffix = dateSuffix.substr(((name.length + dateSuffix.length) - MAX_FIELD_LENGTH));\n\t\t}\n\n\t\tname += dateSuffix;\n\n\t\treturn name;\n\t}\n\n\tonCustomTypeClick()\n\t{\n\t\tif(!this.customTypesUrl)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tBX.SidePanel.Instance.open(this.customTypesUrl.toString(), {\n\t\t\tcacheable: false,\n\t\t\tallowChangeHistory: false,\n\t\t\twidth: 900,\n\t\t\tevents: {\n\t\t\t\tonClose: (event) => {\n\t\t\t\t\tconst slider = event.getSlider();\n\t\t\t\t\tif(slider)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst userFieldData = slider.getData().get('userFieldData');\n\t\t\t\t\t\tif(userFieldData)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst userField = UserField.unserialize(userFieldData);\n\t\t\t\t\t\t\tthis.emit('onCreateCustomUserField', {userField});\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}"],"names":["MAX_FIELD_LENGTH","FieldTypes","getTypes","Object","freeze","string","enumeration","date","datetime","address","url","file","money","boolean","double","employee","crm","crmStatus","getDescriptions","title","Loc","getMessage","description","defaultTitle","getCustomTypeDescription","name","DefaultData","multiple","mandatory","userTypeId","showFilter","showInList","settings","isSearchable","DefaultFieldData","crm_status","DISPLAY","PRECISION","SCROLL_OFFSET","CreationMenu","constructor","id","types","params","items","Type","isPlainObject","getId","getPopup","onItemClick","popup","options","getDefaultPopupOptions","events","onPopupShow","bind","onPopupDestroy","Popup","setContent","render","autoHide","draggable","offsetLeft","offsetTop","noAllPaddings","bindOptions","forceBindPosition","closeByEsc","cacheable","open","callback","isShown","show","container","Tag","scrollIcon","topScrollButton","bottomScrollButton","appendChild","renderList","containerList","forEach","item","renderItem","onClick","handleItemClick","isFunction","close","Event","onBottomButtonMouseOver","onBottomButtonMouseOut","onTopButtonMouseOver","onTopButtonMouseOut","onScroll","window","setTimeout","adjust","unbind","scroll","scrollTop","offsetHeight","scrollHeight","height","Dom","hide","EnumItem","value","setNode","node","getNode","getInput","HTMLInputElement","querySelector","getValue","input","Configurator","userField","onSave","onCancel","canMultipleFields","isBoolean","canRequiredFields","enumItems","Set","labelInput","Text","encode","getTitle","getUserTypeId","renderEnumeration","renderOptions","save","event","preventDefault","saveField","cancel","style","display","saveButton","cancelButton","timeCheckbox","checked","setUserTypeId","multipleCheckbox","setIsMultiple","mandatoryCheckbox","setIsMandatory","setTitle","saveEnumeration","enumItemsContainer","enumAddItemContainer","addEnumInput","focus","enumContainer","getEnumeration","enumItem","deleteEnumItem","add","removeChild","delete","optionsContainer","isMandatory","isSaved","label","append","isMultiple","sort","push","setEnumeration","Factory","entityId","EventEmitter","makeObservable","configuratorClass","isString","length","menuId","isArray","isDomNode","bindElement","moduleId","setCustomTypesUrl","customTypesUrl","setConfiguratorClass","getFieldTypes","concat","keys","emit","getMenu","isCustomTypeAdded","customType","onCustomTypeClick","menu","configuratorClassName","Reflection","getClass","prototype","getConfigurator","createUserField","fieldType","fieldName","data","generateFieldName","UserField","getDefaultLabel","type","dateSuffix","Date","getTime","toString","substr","BX","SidePanel","Instance","allowChangeHistory","width","onClose","slider","getSlider","userFieldData","getData","get","unserialize"],"mappings":"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"}