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/rospirotorg.ru/bitrix/js/ui/accessrights/dist/ |
Upload File : |
{"version":3,"file":"accessrights.bundle.js","sources":["../src/selector/entity-selector-adapter.js","../src/grid.js","../src/item/base.js","../src/item/title.js","../src/item/hint.js","../src/item/member.js","../src/item/role.js","../src/item/changer.js","../src/item/toggler.js","../src/item/controller.js","../src/item/variableselector.js","../src/item/usergrouptitle.js","../src/item/multivariable/footer.js","../src/item/multivariable/multiselector.js","../src/columnitem.js","../src/column.js","../src/section.js"],"sourcesContent":["import { EventEmitter } from 'main.core.events';\nimport { Type } from 'main.core';\n\nexport interface EntitySelectorOptions {\n\toptions: Object,\n\tentitiesIdsEncoder?: (item: string | number) => { entityName: string; id: string | number },\n\tentitiesIdsDecoder?: (item: Object) => string | number,\n\tnormalizeType?: (originalType: string) => string,\n}\n\nexport default class EntitySelectorAdapter\n{\n\t#options: EntitySelectorOptions;\n\n\tconstructor(options: EntitySelectorOptions)\n\t{\n\t\tthis.#options = options;\n\t}\n\n\tshow(columnId: string, accessCodes: { [key: string]: string; }, targetNode: HTMLElement)\n\t{\n\t\tconst preselectedItems = [];\n\t\tfor (const code in accessCodes)\n\t\t{\n\t\t\tif (!Object.hasOwn(accessCodes, code))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst data = this.#encoderId(code);\n\t\t\tpreselectedItems.push([data.entityName, data.id]);\n\t\t}\n\n\t\tconst options = {\n\t\t\t...this.#options.options,\n\t\t\ttargetNode,\n\t\t\tpreselectedItems,\n\t\t\tevents: {\n\t\t\t\t'Item:onSelect': (event) => {\n\t\t\t\t\tconst item = event.data.item;\n\t\t\t\t\tthis.#onItemSelect(item, columnId);\n\t\t\t\t},\n\t\t\t\t'Item:onDeselect': (event) => {\n\t\t\t\t\tconst item = event.data.item;\n\t\t\t\t\tthis.#onDeselect(item, columnId);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tconst dialog = new BX.UI.EntitySelector.Dialog(options);\n\n\t\tdialog.show();\n\t}\n\n\t#onItemSelect(item: Object, columnId: string): void\n\t{\n\t\tlet id = item.id;\n\t\tconst decoder = this.#options.entitiesIdsDecoder;\n\t\tif (Type.isFunction(decoder))\n\t\t{\n\t\t\tid = decoder(item);\n\t\t}\n\n\t\tlet type = item.entityId;\n\t\tconst normalizeType = this.#options.normalizeType;\n\t\tif (Type.isFunction(normalizeType))\n\t\t{\n\t\t\ttype = normalizeType(item.entityId);\n\t\t}\n\n\t\tconst option = {\n\t\t\taccessCodes: {\n\t\t\t\t[id]: type,\n\t\t\t},\n\t\t\tcolumnId,\n\t\t\titem: {\n\t\t\t\tid,\n\t\t\t\tentityId: item.id,\n\t\t\t\tname: item.title.text,\n\t\t\t\tavatar: item.avatar,\n\t\t\t},\n\t\t};\n\n\t\tEventEmitter.emit('BX.UI.AccessRights:addToAccessCodes', option);\n\t}\n\n\t#onDeselect(item: Object, columnId: string)\n\t{\n\t\tconst id = this.#decodeId(item);\n\t\tconst type = this.#normalizeType(item.entityId);\n\n\t\tconst option = {\n\t\t\taccessCodes: {\n\t\t\t\t[id]: type,\n\t\t\t},\n\t\t\tcolumnId,\n\t\t};\n\n\t\tEventEmitter.emit('BX.UI.AccessRights:removeFromAccessCodes', option);\n\t}\n\n\t#normalizeType(type: string): string\n\t{\n\t\tconst normalizeType = this.#options.normalizeType;\n\t\tif (Type.isFunction(normalizeType))\n\t\t{\n\t\t\treturn normalizeType(type);\n\t\t}\n\n\t\treturn type;\n\t}\n\n\t#decodeId(item: Object): string | number\n\t{\n\t\tconst decoder = this.#options.entitiesIdsDecoder;\n\t\tif (Type.isFunction(decoder))\n\t\t{\n\t\t\treturn decoder(item);\n\t\t}\n\n\t\treturn item.id;\n\t}\n\n\t#encoderId(code: string | number): { entityName: string; id: string | number }\n\t{\n\t\tconst encoder = this.#options.entitiesIdsEncoder;\n\n\t\tif (Type.isFunction(encoder))\n\t\t{\n\t\t\treturn encoder(code);\n\t\t}\n\n\t\treturn code;\n\t}\n}\n","import {BaseEvent, EventEmitter} from \"main.core.events\";\nimport {Dom, Reflection, Type, Tag, Loc, Text} from 'main.core';\nimport {Loader} from \"main.loader\";\nimport Section from \"./section\";\nimport 'ui.notification';\nimport { EntitySelectorOptions } from './selector/entity-selector-adapter';\n\nconst BX = Reflection.namespace('BX');\n\nexport type GridOptions = {\n\toptions: GridOptions;\n\trenderTo: HTMLElement;\n\tbuttonPanel: BX.UI.ButtonPanel;\n\tcomponent: string;\n\tactionSave: null;\n\tactionDelete: null;\n\tactionLoad: null;\n\tmode: 'string';\n\topenPopupEvent: null;\n\tpopupContainer: null;\n\tadditionalSaveParams: {};\n\tuserGroups: [];\n\taccessRights: [];\n\tloadParams: {};\n\tneedToLoadUserGroups?: boolean;\n\tisSaveOnlyChangedRights?: boolean;\n\tuseEntitySelectorDialogAsPopup?: boolean;\n\tentitySelectorDialogOptions?: EntitySelectorOptions\n};\n\nexport default class Grid {\n\tstatic ACTION_SAVE = 'save';\n\tstatic ACTION_DELETE = 'delete';\n\tstatic ACTION_LOAD = 'load';\n\tstatic MODE = 'ajax';\n\n\tconstructor(options: GridOptions)\n\t{\n\t\toptions = options || {};\n\t\tthis.options = options;\n\t\tthis.renderTo = options.renderTo;\n\t\tthis.buttonPanel = BX.UI.ButtonPanel || null;\n\n\t\tthis.layout = {\n\t\t\tcontainer: null\n\t\t};\n\t\tthis.component = options.component ? options.component : null;\n\t\tthis.actionSave = options.actionSave || Grid.ACTION_SAVE;\n\t\tthis.actionDelete = options.actionDelete || Grid.ACTION_DELETE;\n\t\tthis.actionLoad = options.actionLoad || Grid.ACTION_LOAD;\n\t\tthis.mode = options.mode || Grid.MODE;\n\t\tthis.openPopupEvent = options.openPopupEvent ? options.openPopupEvent : null;\n\t\tthis.popupContainer = options.popupContainer ? options.popupContainer : null;\n\t\tthis.additionalSaveParams = options.additionalSaveParams ? options.additionalSaveParams : null;\n\t\tthis.loadParams = options.loadParams ? options.loadParams : null;\n\t\tthis.loader = null;\n\t\tthis.timer = null;\n\t\tthis.needToLoadUserGroups = options.needToLoadUserGroups ?? true;\n\t\tthis.isSaveOnlyChangedRights = options.isSaveOnlyChangedRights || false;\n\n\t\tthis.useEntitySelectorDialogAsPopup = options.useEntitySelectorDialogAsPopup || false;\n\t\tthis.entitySelectorDialogOptions = options.entitySelectorDialogOptions || null;\n\n\t\tthis.expandedGroups = [];\n\t\tthis.groupElements = [];\n\t\tthis.changedAccessIds = new Map();\n\n\t\tthis.initData();\n\t\tif (options.userGroups)\n\t\t{\n\t\t\tthis.userGroups = options.userGroups;\n\t\t}\n\t\tif (options.accessRights)\n\t\t{\n\t\t\tthis.accessRights = options.accessRights;\n\t\t}\n\n\t\tthis.isRequested = false;\n\n\t\tthis.loadData();\n\t\tthis.bindEvents();\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:updateRole', this.updateRole.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:selectAccessItems', this.updateAccessVariationRight.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:accessOn', this.updateAccessRight.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:accessOff', this.updateAccessRight.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:update', this.adjustButtonPanel.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:addRole', this.addUserGroup.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:addRole', this.addRoleColumn.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:copyRole', this.addRoleColumn.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:copyRole', this.addUserGroup.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:removeRole', this.removeRoleColumn.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:removeRole', this.adjustButtonPanel.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:toggleGroup', this.toggleGroup.bind(this));\n\t\tEventEmitter.subscribe('BX.Main.SelectorV2:onGetEntityTypes', this.onGetEntityTypes.bind(this));\n\t}\n\n\tinitData(): void\n\t{\n\t\tthis.accessRights = [];\n\t\tthis.userGroups = [];\n\t\tthis.accessRightsSections = [];\n\t\tthis.headSection = null;\n\t\tthis.members = [];\n\t\tthis.columns = [];\n\t\tthis.changedAccessIds = new Map();\n\t}\n\n\tfireEventReset(): void\n\t{\n\t\tEventEmitter.emit('BX.UI.AccessRights:reset', this);\n\t}\n\n\tfireEventRefresh(): void\n\t{\n\t\tEventEmitter.emit( 'BX.UI.AccessRights:refresh', this);\n\t}\n\n\tgetButtonPanel(): BX.UI.ButtonPanel\n\t{\n\t\treturn this.buttonPanel;\n\t}\n\n\tshowNotification(title): void\n\t{\n\t\tBX.UI.Notification.Center.notify({\n\t\t\tcontent: title,\n\t\t\tposition: 'top-right',\n\t\t\tautoHideDelay: 3000,\n\t\t});\n\t}\n\n\tsendActionRequest(): void\n\t{\n\t\tif (this.isRequested)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRequested = true;\n\t\tEventEmitter.emit(this, 'onBeforeSave', this);\n\n\t\tthis.timer = setTimeout(\n\t\t\t() => {\n\t\t\t\tthis.blockGrid();\n\t\t\t},\n\t\t\t1000\n\t\t);\n\n\t\tlet needReload = false;\n\t\tconst dataToSave = [];\n\n\t\tfor (let i = 0; i < this.userGroups.length; i++)\n\t\t{\n\t\t\tconst userGroup = this.userGroups[i];\n\n\t\t\tif (Text.toNumber(userGroup.id) === 0)\n\t\t\t{\n\t\t\t\tneedReload = true;\n\t\t\t}\n\n\t\t\tlet accessRights = userGroup.accessRights;\n\n\t\t\tif (this.isSaveOnlyChangedRights === true)\n\t\t\t{\n\t\t\t\taccessRights = this.#filterOnlyChangedAccessRight(accessRights, userGroup);\n\t\t\t}\n\n\t\t\tdataToSave.push({\n\t\t\t\taccessCodes: userGroup.accessCodes,\n\t\t\t\tid: userGroup.id,\n\t\t\t\ttitle: userGroup.title,\n\t\t\t\ttype: userGroup.type,\n\t\t\t\taccessRights,\n\t\t\t});\n\t\t}\n\n\t\tBX.ajax.runComponentAction(\n\t\t\tthis.component,\n\t\t\tthis.actionSave,\n\t\t\t{\n\t\t\t\tmode: this.mode,\n\t\t\t\tdata: {\n\t\t\t\t\tuserGroups: dataToSave,\n\t\t\t\t\tparameters: this.additionalSaveParams\n\t\t\t\t},\n\t\t\t\t// analyticsLabel: {\n\t\t\t\t// \tviewMode: 'grid',\n\t\t\t\t// \tfilterState: 'closed'\n\t\t\t\t// }\n\t\t\t}\n\t\t).then(\n\t\t\t() => {\n\t\t\t\tif (needReload)\n\t\t\t\t{\n\t\t\t\t\tthis.reloadGrid();\n\t\t\t\t}\n\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification(Loc.getMessage('JS_UI_ACCESSRIGHTS_STTINGS_HAVE_BEEN_SAVED'));\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tthis.fireEventRefresh();\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.adjustButtonPanel()\n\t\t\t\t});\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t\tconst waitContainer = this.buttonPanel.getContainer().querySelector('.ui-btn-wait');\n\t\t\t\tDom.removeClass(waitContainer, 'ui-btn-wait');\n\t\t\t\tthis.changedAccessIds = new Map();\n\t\t\t},\n\t\t\t(response) => {\n\t\t\t\tlet errorMessage = 'Error message';\n\t\t\t\tif (response.errors)\n\t\t\t\t{\n\t\t\t\t\terrorMessage = response.errors[0].message;\n\t\t\t\t}\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification(errorMessage);\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t\tconst waitContainer = this.buttonPanel.getContainer().querySelector('.ui-btn-wait');\n\t\t\t\tDom.removeClass(waitContainer, 'ui-btn-wait');\n\t\t\t}\n\t\t);\n\n\t\tEventEmitter.emit( 'BX.UI.AccessRights:preservation', this);\n\t}\n\n\tlock(): void\n\t{\n\t\tDom.addClass(this.getMainContainer(), '--lock');\n\t}\n\n\tunlock(): void\n\t{\n\t\tDom.removeClass(this.getMainContainer(), '--lock');\n\t}\n\n\tdeleteActionRequest(roleId): void\n\t{\n\t\tif (this.isRequested)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRequested = true;\n\n\t\tthis.timer = setTimeout(\n\t\t\t() => {\n\t\t\t\tthis.blockGrid();\n\t\t\t\t},\n\t\t\t1000\n\t\t);\n\n\t\tBX.ajax.runComponentAction(\n\t\t\tthis.component,\n\t\t\tthis.actionDelete,\n\t\t\t{\n\t\t\t\tmode: this.mode,\n\t\t\t\tdata: {\n\t\t\t\t\troleId: roleId\n\t\t\t\t},\n\t\t\t\t// analyticsLabel: {\n\t\t\t\t// \tviewMode: 'grid',\n\t\t\t\t// \tfilterState: 'closed'\n\t\t\t\t// }\n\t\t\t}\n\t\t).then(\n\t\t\t() => {\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification(Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_REMOVE'));\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t},\n\t\t\t(response) => {\n\t\t\t\tlet errorMessage = 'Error message';\n\t\t\t\tif (response.errors)\n\t\t\t\t{\n\t\t\t\t\terrorMessage = response.errors[0].message;\n\t\t\t\t}\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification(errorMessage);\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t}\n\t\t);\n\t}\n\n\treloadGrid(): void\n\t{\n\t\tthis.initData();\n\n\t\tBX.ajax.runComponentAction(\n\t\t\tthis.component,\n\t\t\tthis.actionLoad,\n\t\t\t{\n\t\t\t\tmode: this.mode,\n\t\t\t\tdata: {\n\t\t\t\t\tparameters: this.loadParams\n\t\t\t\t},\n\t\t\t}\n\t\t).then(\n\t\t\t(response) => {\n\t\t\t\tif (\n\t\t\t\t\tresponse.data['ACCESS_RIGHTS']\n\t\t\t\t\t&& response.data['USER_GROUPS']\n\t\t\t\t) {\n\t\t\t\t\tthis.accessRights = response.data.ACCESS_RIGHTS;\n\t\t\t\t\tthis.userGroups = response.data.USER_GROUPS;\n\t\t\t\t\tthis.loadData();\n\t\t\t\t\tthis.draw();\n\t\t\t\t}\n\t\t\t\tthis.unBlockGrid();\n\t\t\t},\n\t\t\t(err) => {\n\t\t\t\tconsole.error(err);\n\t\t\t\tthis.unBlockGrid\n\t\t\t}\n\t\t);\n\t}\n\n\tblockGrid(): void\n\t{\n\t\tconst offsetTop =\n\t\t\tthis.layout.container.getBoundingClientRect().top < 0\n\t\t\t\t? '0'\n\t\t\t\t: this.layout.container.getBoundingClientRect().top\n\t\t;\n\n\t\tDom.addClass(this.layout.container, 'ui-access-rights-block');\n\t\tDom.style(this.layout.container, 'height', 'calc(100vh - ' + offsetTop + 'px)')\n\n\t\tsetTimeout(() => {\n\t\t\tDom.style(this.layout.container, 'height', 'calc(100vh - ' + offsetTop + 'px)')\n\t\t});\n\n\t\tthis\n\t\t\t.getLoader()\n\t\t\t.show()\n\t\t;\n\t}\n\n\tunBlockGrid(): void\n\t{\n\t\tDom.removeClass(this.layout.container, 'ui-access-rights-block');\n\t\tDom.style(this.layout.container, 'height', null)\n\n\t\tthis\n\t\t\t.getLoader()\n\t\t\t.hide()\n\t\t;\n\t}\n\n\tgetLoader(): Loader\n\t{\n\t\tif (!this.loader)\n\t\t{\n\t\t\tthis.loader = new Loader({\n\t\t\t\ttarget: this.layout.container\n\t\t\t});\n\t\t}\n\n\t\treturn this.loader;\n\t}\n\n\tremoveRoleColumn(param): void\n\t{\n\t\tthis.headSection.removeColumn(param.data);\n\t\tthis.accessRightsSections.map(\n\t\t\t(data) => {\n\t\t\t\tdata.removeColumn(param.data);\n\t\t\t}\n\t\t);\n\n\t\tconst targetIndex = this.userGroups.indexOf(param.data.userGroup);\n\t\tthis.userGroups.splice(targetIndex, 1);\n\n\t\tconst roleId = param.data.userGroup.id;\n\t\tif (roleId > 0)\n\t\t{\n\t\t\tthis.deleteActionRequest(roleId);\n\t\t}\n\t}\n\n\taddRoleColumn(event: BaseEvent): void\n\t{\n\t\tconst [param] = event.getData();\n\t\tif (!param)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst sections = this.accessRightsSections;\n\n\t\tfor (let i = 0; i < sections.length; i++)\n\t\t{\n\t\t\tparam.headSection = false;\n\t\t\tparam.newColumn = true;\n\t\t\tsections[i].addColumn(param);\n\t\t\tsections[i].scrollToRight(sections[i].getColumnsContainer().scrollWidth - sections[i].getColumnsContainer().offsetWidth, 'stop');\n\t\t}\n\n\t\tparam.headSection = true;\n\t\tparam.newColumn = true;\n\t\tthis.headSection.addColumn(param);\n\n\t\tthis.actualizeExpandedGroups();\n\t}\n\n\taddUserGroup(event: BaseEvent): void\n\t{\n\t\tlet [options] = event.getData();\n\t\toptions = options || {};\n\t\tthis.userGroups.push(options);\n\t}\n\n\tupdateRole(event: BaseEvent): void\n\t{\n\t\tconst item = event.getData();\n\t\tconst index = this.userGroups.indexOf(item.userGroup);\n\t\tif (index >= 0)\n\t\t{\n\t\t\tthis.userGroups[index].title = item.text;\n\t\t}\n\t}\n\n\tadjustButtonPanel(): void\n\t{\n\t\tconst modifiedItems = this.getMainContainer().querySelectorAll('.ui-access-rights-column-item-changer-on');\n\t\tconst modifiedRoles = this.getMainContainer().querySelectorAll('.ui-access-rights-column-new');\n\t\tconst modifiedUsers = this.getMainContainer().querySelectorAll('.ui-access-rights-members-item-new');\n\t\tconst modifiedVariables = this.getMainContainer().querySelectorAll('.ui-tag-selector-container');\n\n\t\tif(modifiedItems.length > 0 || modifiedRoles.length > 0 || modifiedUsers.length > 0 || modifiedVariables.length > 0)\n\t\t{\n\t\t\tthis.buttonPanel.show();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.buttonPanel.hide();\n\t\t}\n\t}\n\n\tupdateAccessRight(event: BaseEvent): void\n\t{\n\t\tconst data = event.getData();\n\t\tconst userGroup = this.userGroups[this.userGroups.indexOf(data.userGroup)];\n\t\tconst accessId = data.access.id;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.#storeChangedAccessId(data);\n\t\t}, 0)\n\n\t\tfor (let i = 0; i < userGroup.accessRights.length; i++)\n\t\t{\n\t\t\tconst item = userGroup.accessRights[i];\n\t\t\tif (item && String(item.id) === String(accessId))\n\t\t\t{\n\t\t\t\titem.value = (String(item.value) === '0') ? '1' : '0';\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tuserGroup.accessRights.push({\n\t\t\tid: accessId,\n\t\t\tvalue: data.switcher.isChecked() ? '1' : '0'\n\t\t});\n\t}\n\n\tupdateAccessVariationRight(event: BaseEvent): void\n\t{\n\t\tconst item = event.getData();\n\t\tconst userGroup = this.userGroups[this.userGroups.indexOf(item.userGroup)];\n\t\tconst accessId = item.access.id;\n\n\t\tthis.#storeChangedAccessId(item);\n\n\t\tconst deleteIds = [];\n\t\tfor (let i = 0; i < userGroup.accessRights.length; i++)\n\t\t{\n\t\t\tconst item = userGroup.accessRights[i];\n\t\t\tif (item && String(item.id) === String(accessId))\n\t\t\t{\n\t\t\t\tdeleteIds.push(i);\n\t\t\t}\n\t\t}\n\n\t\tdeleteIds.forEach((i) => {\n\t\t\tdelete (userGroup.accessRights[i]);\n\t\t});\n\n\t\tconst values = item.selectedValues || [];\n\t\tvalues.forEach((value) => {\n\t\t\tuserGroup.accessRights.push({\n\t\t\t\tid: accessId,\n\t\t\t\tvalue: value\n\t\t\t});\n\t\t});\n\t}\n\n\tloadData()\n\t{\n\t\tthis.accessRights.map(\n\t\t\t(data, index) => {\n\t\t\t\tdata.id = index;\n\t\t\t\tthis.accessRightsSections.push(this.addSection(data));\n\t\t\t}\n\t\t);\n\t}\n\n\tgetColumns(): Column[]\n\t{\n\t\treturn this.columns;\n\t}\n\n\tgetSections(): Section[]\n\t{\n\t\treturn this.accessRightsSections;\n\t}\n\n\tgetUserGroups(): []\n\t{\n\t\tthis.userGroups.forEach(\n\t\t\t(item) => {\n\t\t\t\tif (item.accessCodes)\n\t\t\t\t{\n\t\t\t\t\tfor (const user in item.members)\n\t\t\t\t\t{\n\t\t\t\t\t\titem.accessCodes[user] = item.members[user].type\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\treturn this.userGroups;\n\t}\n\n\tgetHeadSection(): Section\n\t{\n\t\tif (!this.headSection)\n\t\t{\n\t\t\tthis.headSection = new Section({\n\t\t\t\theadSection: true,\n\t\t\t\tuserGroups: this.userGroups,\n\t\t\t\tgrid: this\n\t\t\t});\n\t\t}\n\n\t\treturn this.headSection;\n\t}\n\n\taddSection(options): Section\n\t{\n\t\toptions = options || {};\n\t\treturn new Section({\n\t\t\tid: options.id,\n\t\t\thint: options.sectionHint,\n\t\t\ttitle: options.sectionTitle,\n\t\t\trights: options.rights ? options.rights : [],\n\t\t\tgrid: this\n\t\t});\n\t}\n\n\tgetSectionNode(): HTMLElement\n\t{\n\t\treturn Tag.render`<div class='ui-access-rights-section'></div>`;\n\t}\n\n\tgetMainContainer(): HTMLElement\n\t{\n\t\tif (!this.layout.container)\n\t\t{\n\t\t\tthis.layout.container = Tag.render`<div class='ui-access-rights'></div>`;\n\t\t}\n\n\t\treturn this.layout.container;\n\t}\n\n\tdraw(): void\n\t{\n\t\tconst docFragmentSections = document.createDocumentFragment();\n\t\tDom.append(this.getHeadSection().render(), docFragmentSections);\n\n\t\tthis\n\t\t\t.getSections()\n\t\t\t.map((data) => {\n\t\t\t\tDom.append(data.render(), docFragmentSections);\n\t\t\t})\n\t\t;\n\n\t\tthis.layout.container = null;\n\t\tDom.append(docFragmentSections, this.getMainContainer());\n\n\t\tthis.renderTo.innerHTML = '';\n\t\tDom.append(this.getMainContainer(), this.renderTo);\n\n\t\tthis.afterRender();\n\t}\n\n\tafterRender(): void\n\t{\n\t\tthis.getHeadSection().adjustEars();\n\t\tthis\n\t\t\t.getSections()\n\t\t\t.map((data) => {\n\t\t\t\tdata.adjustEars();\n\t\t\t})\n\t\t;\n\t}\n\n\tonMemberSelect(params): void\n\t{\n\t\tconst option = Grid.buildOption(params);\n\t\tif (!option)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (params.state === 'select')\n\t\t{\n\t\t\tEventEmitter.emit('BX.UI.AccessRights:addToAccessCodes', option);\n\t\t}\n\t}\n\n\tonMemberUnselect(params)\n\t{\n\t\tconst option = Grid.buildOption(params);\n\n\t\tif (!option)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tEventEmitter.emit('BX.UI.AccessRights:removeFromAccessCodes', option);\n\t}\n\n\tonGetEntityTypes(): void\n\t{\n\t\tif (!this.needToLoadUserGroups)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst controls = BX.Main\n\t\t\t.selectorManagerV2\n\t\t\t.controls\n\t\t;\n\t\tconst selectorInstance = controls[Object.keys(controls)[0]];\n\n\t\tselectorInstance.entityTypes.USERGROUPS = {\n\t\t\toptions: {\n\t\t\t\tenableSearch: 'Y',\n\t\t\t\tsearchById: 'Y',\n\t\t\t\taddTab: 'Y',\n\t\t\t\treturnItemUrl: (selectorInstance.getOption('returnItemUrl') === 'N' ? 'N' : 'Y')\n\t\t\t}\n\t\t};\n\t}\n\n\ttoggleGroup(event: BaseEvent): void\n\t{\n\t\tconst groupId = event.getData().id;\n\n\t\tvar idx = this.expandedGroups.indexOf(groupId);\n\t\tif (idx > -1)\n\t\t{\n\t\t\tthis.expandedGroups.splice(idx, 1);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.expandedGroups.push(groupId);\n\t\t}\n\n\t\tthis.actualizeExpandedGroups();\n\t}\n\n\tactualizeExpandedGroups()\n\t{\n\t\tfor (const groupItem of this.groupElements)\n\t\t{\n\t\t\tif (this.igGroupsExpanded(groupItem.group))\n\t\t\t{\n\t\t\t\tgroupItem.container.classList.add('--expanded');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tgroupItem.container.classList.remove('--expanded');\n\t\t\t}\n\t\t}\n\t}\n\n\tigGroupsExpanded(group: string): string[]\n\t{\n\t\treturn this.expandedGroups.includes(group);\n\t}\n\n\t#makeChangedHash(roleId: number | string, accessId: string): string\n\t{\n\t\treturn `r${roleId}_a${accessId}`;\n\t}\n\n\t#storeChangedAccessId(item): void\n\t{\n\t\tconst accessId = item.access.id;\n\t\tconst isAccessChanged = item.isModify;\n\t\tconst userGroup = this.userGroups[this.userGroups.indexOf(item.userGroup)];\n\n\t\tconst changedCode = this.#makeChangedHash(userGroup.id, accessId);\n\n\t\tif (isAccessChanged && !this.changedAccessIds.has(changedCode))\n\t\t{\n\t\t\tthis.changedAccessIds.set(changedCode, { accessId, roleId: userGroup.id });\n\t\t}\n\t\telse if (!isAccessChanged && this.changedAccessIds.has(changedCode))\n\t\t{\n\t\t\tthis.changedAccessIds.delete(changedCode);\n\t\t}\n\t}\n\n\t#filterOnlyChangedAccessRight(accessRights, userGroup): Array\n\t{\n\t\tconst processedChanged = new Map(this.changedAccessIds);\n\n\t\tconst filteredAccessRights = accessRights.filter((access) => {\n\n\t\t\tif (Number(userGroup.id) === 0)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst changedCode = this.#makeChangedHash(userGroup.id, access.id);\n\n\t\t\tconst found = this.changedAccessIds.has(changedCode);\n\n\t\t\tif (found)\n\t\t\t{\n\t\t\t\tprocessedChanged.delete(changedCode);\n\t\t\t}\n\n\t\t\treturn found;\n\t\t});\n\n\t\t// some rights may be changed but not present in the accessRights array because they values were deleted.\n\t\t// Than have to will add them with null value.\n\t\tfor (const [key, data] of processedChanged)\n\t\t{\n\t\t\tif (data.roleId != userGroup.id)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfilteredAccessRights.push({\n\t\t\t\tid: data.accessId,\n\t\t\t\tvalue: null,\n\t\t\t});\n\t\t}\n\n\t\treturn filteredAccessRights;\n\t}\n\n\tstatic buildOption(params): {}\n\t{\n\t\tconst controls = BX.Main\n\t\t\t.selectorManagerV2\n\t\t\t.controls\n\t\t;\n\t\tconst selectorInstance = controls[Object.keys(controls)[0]].selectorInstance;\n\t\tconst dataColumnAttribute = 'bx-data-column-id';\n\n\t\tconst node = selectorInstance.bindOptions.node;\n\n\t\tif (!node.hasAttribute(dataColumnAttribute) || Type.isUndefined(params.item))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst columnId = node.getAttribute(dataColumnAttribute);\n\n\t\tconst accessItem = params.item.id;\n\t\tconst entityType = params.entityType;\n\t\tconst accessCodesResult = {};\n\t\taccessCodesResult[accessItem] = entityType;\n\n\t\treturn {\n\t\t\taccessCodes: accessCodesResult,\n\t\t\tcolumnId,\n\t\t\titem: params.item,\n\t\t};\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI');\nnamespace.AccessRights = Grid;\n","import ColumnItemOptions from '../columnitem';\nimport { Tag } from 'main.core';\n\nexport interface ChangerOpts {\n\treplaceNullValueTo: ?string;\n}\n\nexport default class Base\n{\n\tchangerOptions: ?ChangerOpts;\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tthis.changerOptions = options.changerOptions || {};\n\n\t\tconst defaultValue = this.changerOptions.replaceNullValueTo || null;\n\n\t\tthis.currentValue = options.currentValue || defaultValue;\n\t\tthis.identificator = `col-${Math.random()}`;\n\t\tthis.parentContainer = options.container;\n\t\tthis.grid = options.grid;\n\t\tthis.text = options.text;\n\t\tthis.userGroup = options.userGroup;\n\t\tthis.access = options.access;\n\n\t\tthis.bindEvents();\n\t}\n\n\tbindEvents()\n\t{}\n\n\trender(): HTMLElement\n\t{\n\t\treturn Tag.render`<div></div>`;\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.identificator;\n\t}\n}\n","import {Dom, Event, Text, Tag} from \"main.core\";\nimport {PopupWindowManager} from \"main.popup\";\nimport {EventEmitter} from \"main.core.events\";\nimport ColumnItemOptions from '../columnitem';\nimport Base from \"./base\";\n\nexport default class Title extends Base\n{\n\tstatic TYPE = 'title';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.rightId = options.id;\n\t\tthis.group = options.group;\n\t\tthis.groupHead = options.groupHead;\n\t\tthis.isExpanded = false;\n\t\tthis.node = null;\n\t\tthis.toggleIndicator = null;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tconst node = Tag.render`\n\t\t\t<div \n\t\t\t\tclass='ui-access-rights-column-item-text ui-access-rights-column-item-title'\n\t\t\t\tdata-id='${this.getId()}'\n\t\t\t>\n\t\t\t\t ${Text.encode(this.text)}\n\t\t\t</div>\n\t\t`;\n\n\t\tif (this.groupHead)\n\t\t{\n\t\t\tthis.toggleIndicator = Tag.render`\n\t\t\t\t<span class=\"ui-access-rights-column-item-text-toggle-indicator ui-icon-set --chevron-down\"></span>\n\t\t\t`;\n\t\t\tDom.prepend(this.toggleIndicator, node);\n\t\t}\n\n\t\tif (this.group)\n\t\t{\n\t\t\tDom.addClass(node, '--group-children');\n\t\t}\n\n\t\tEvent.bind(node, 'mouseenter', this.adjustPopupHelper.bind(this));\n\n\t\tEvent.bind(node, 'mouseleave', () => {\n\t\t\tif (this.popupHelper)\n\t\t\t{\n\t\t\t\tthis.popupHelper.close();\n\t\t\t}\n\t\t});\n\n\t\tEvent.bind(node, 'click', this.onGroupToggle.bind(this));\n\n\t\tthis.node = node;\n\n\t\treturn node;\n\t}\n\n\tonGroupToggle(): void\n\t{\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:toggleGroup', {\n\t\t\tid: this.rightId,\n\t\t});\n\n\t\tif (!this.node || !this.groupHead)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.grid.igGroupsExpanded(this.rightId))\n\t\t{\n\t\t\tDom.removeClass(this.toggleIndicator, '--chevron-down');\n\t\t\tDom.addClass(this.toggleIndicator, '--chevron-up');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.toggleIndicator, '--chevron-down');\n\t\t\tDom.removeClass(this.toggleIndicator, '--chevron-up');\n\t\t}\n\t}\n\n\tadjustPopupHelper(): void\n\t{\n\t\tconst set = this.parentContainer.cloneNode(true);\n\n\t\tDom.style(set, 'position', 'absolute');\n\t\tDom.style(set, 'display', 'inline');\n\t\tDom.style(set, 'visibility', 'hidden');\n\t\tDom.style(set, 'height', '0');\n\n\t\tDom.append(set, document.body);\n\n\t\tsetTimeout(() => {\n\t\t\tDom.remove(set);\n\t\t});\n\n\t\tif (set.offsetWidth > this.parentContainer.offsetWidth)\n\t\t{\n\t\t\tDom.style(set, 'visibility', 'visible');\n\t\t\tthis.getPopupHelper().show();\n\t\t}\n\t}\n\n\tgetPopupHelper(): Popup\n\t{\n\t\tif (!this.popupHelper)\n\t\t{\n\t\t\tthis.popupHelper = PopupWindowManager.create(\n\t\t\t\tnull,\n\t\t\t\tthis.parentContainer,\n\t\t\t\t{\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tdarkMode: true,\n\t\t\t\t\tcontent: this.text,\n\t\t\t\t\tmaxWidth: this.parentContainer.offsetWidth,\n\t\t\t\t\toffsetTop: -9,\n\t\t\t\t\toffsetLeft: 5,\n\t\t\t\t\tanimation: 'fading-slide'\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn this.popupHelper;\n\t}\n}\n","import {Tag} from 'main.core';\nimport ColumnItemOptions from \"../columnitem\";\nimport Base from \"./base\";\n\nexport default class Hint extends Base\n{\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.hint = options.hint;\n\t\tthis.className = options.className;\n\n\t\tthis.hintNode = null;\n\t}\n\n\trender(): ?HTMLElement\n\t{\n\t\tif (!this.hintNode && this.hint)\n\t\t{\n\t\t\tconst hintManager = BX.UI.Hint.createInstance({\n\t\t\t\tid: 'access-rights-ui-hint-' + this.getId(),\n\t\t\t\tpopupParameters: {\n\t\t\t\t\tclassName: 'ui-access-rights-popup-pointer-events ui-hint-popup',\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tdarkMode: true,\n\t\t\t\t\tmaxWidth: 280,\n\t\t\t\t\toffsetTop: 0,\n\t\t\t\t\toffsetLeft: 8,\n\t\t\t\t\tangle: true,\n\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.hintNode = Tag.render`<span class='${this.className}'></span>`;\n\t\t\tthis.hintNode.setAttribute(hintManager.attributeName, this.hint);\n\t\t\tthis.hintNode.setAttribute(hintManager.attributeHtmlName, true);\n\t\t\tthis.hintNode.setAttribute(hintManager.attributeInteractivityName, true);\n\n\t\t\thintManager.initNode(this.hintNode);\n\t\t}\n\n\t\treturn this.hintNode;\n\t}\n}\n","import {Dom, Event, Text, Tag, Type, Loc, Reflection} from 'main.core';\nimport {BaseEvent, EventEmitter} from \"main.core.events\";\nimport {PopupWindowManager} from \"main.popup\";\nimport EntitySelectorAdapter from '../selector/entity-selector-adapter';\nimport Base from \"./base\";\nimport ColumnItemOptions from \"../columnitem\";\n\nconst BX = Reflection.namespace('BX');\n\nexport default class Member extends Base\n{\n\tstatic TYPE = 'members';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.openPopupEvent = options.openPopupEvent;\n\t\tthis.popupContainer = options.popupContainer\n\t\tthis.accessCodes = options.accessCodes || [];\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:addToAccessCodes', this.addToAccessCodes.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:removeFromAccessCodes', this.removeFromAccessCodes.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.resetNewMembers.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.resetNewMembers.bind(this));\n\t}\n\n\tgetMember(): HTMLElement\n\t{\n\t\tif (!this.member)\n\t\t{\n\t\t\tconst members = this.userGroup.members || {};\n\t\t\tconst membersFragment = document.createDocumentFragment();\n\t\t\tlet counter = 0;\n\t\t\tthis.validateVariables();\n\n\t\t\tObject.keys(members).reverse().forEach(\n\t\t\t\t(item) => {\n\t\t\t\t\tcounter++;\n\t\t\t\t\tif (counter < 7)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst user = members[item];\n\n\t\t\t\t\t\tconst userNode = Tag.render`\n\t\t\t\t\t\t\t<div class='ui-access-rights-members-item'></div>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tif (user.new)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDom.addClass(userNode, 'ui-access-rights-members-item-new');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (user.avatar)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst userAvatar = Tag.render`<a class='ui-access-rights-members-item-avatar' title=\"${Text.encode(user.name)}\"></a>`;\n\t\t\t\t\t\t\tDom.style(userAvatar, 'backgroundImage', 'url(\\'' + encodeURI(user.avatar) + '\\')');\n\t\t\t\t\t\t\tDom.style(userAvatar, 'backgroundSize', 'cover');\n\t\t\t\t\t\t\tDom.append(userAvatar, userNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet avatarClass = 'ui-icon-common-user';\n\n\t\t\t\t\t\t\tif (user.type === 'groups')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tavatarClass = 'ui-icon-common-user-group';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (user.type === 'sonetgroups')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tavatarClass = 'ui-icon-common-company';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (user.type === 'usergroups')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tavatarClass = 'ui-icon-common-user-group';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst emptyAvatar = Tag.render`<a class='ui-icon ui-icon-xs' title=\"${Text.encode(user.name)}\"><i></i></a>`;\n\t\t\t\t\t\t\tDom.addClass(emptyAvatar, avatarClass);\n\t\t\t\t\t\t\tDom.append(emptyAvatar, userNode);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tDom.append(userNode, membersFragment);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tDom.append(this.getAddUserToRole(), membersFragment);\n\n\t\t\tthis.member = Tag.render`<div class='ui-access-rights-members'>${membersFragment}</div>`;\n\t\t\tEvent.bind(this.member, 'click', this.adjustPopupUserControl.bind(this));\n\t\t}\n\n\t\treturn this.member;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getMember();\n\t}\n\n\tresetNewMembers(): void\n\t{\n\t\tconst newMembers = this.getMember().querySelectorAll('.ui-access-rights-members-item-new');\n\n\t\tnewMembers.forEach((item) => {\n\t\t\tDom.removeClass(item, 'ui-access-rights-members-item-new');\n\t\t})\n\t}\n\n\tvalidateVariables(): void\n\t{\n\t\tif (Type.isUndefined(this.userGroup.accessCodes))\n\t\t{\n\t\t\tthis.userGroup.accessCodes = [];\n\t\t}\n\t}\n\n\tupdateMembers(): void\n\t{\n\t\tDom.remove(this.member);\n\t\tthis.member = null;\n\n\t\tDom.append(this.getMember(), this.parentContainer);\n\t\tthis.grid.getButtonPanel().show();\n\t}\n\n\taddToAccessCodes(event: BaseEvent): void\n\t{\n\t\tconst params = event.getData();\n\n\t\tif (params.columnId !== this.getId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstKey = Object.keys(params.accessCodes)[0];\n\t\tconst type = params.accessCodes[firstKey].toUpperCase();\n\t\tthis.userGroup.accessCodes = Object.keys(this.accessCodes);\n\n\t\tconst item = params.item;\n\n\t\tif (!Type.isUndefined(item) && Object.keys(item).length)\n\t\t{\n\t\t\tthis.userGroup.members[firstKey] = {\n\t\t\t\tid: item.entityId,\n\t\t\t\tname: item.name,\n\t\t\t\tavatar: item.avatar,\n\t\t\t\turl: '',\n\t\t\t\tnew: true,\n\t\t\t\ttype: type.toLowerCase()\n\t\t\t};\n\n\t\t\tthis.updateMembers();\n\t\t}\n\n\t\tthis.userGroup.accessCodes = [];\n\n\t\tfor (const key in this.userGroup.members)\n\t\t{\n\t\t\tthis.userGroup.accessCodes[key] = this.userGroup.members[key].type;\n\t\t}\n\t}\n\n\tremoveFromAccessCodes(event): void\n\t{\n\t\tconst params = event.data;\n\n\t\tif (params.columnId !== this.identificator)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstKey = Object.keys(params.accessCodes)[0];\n\n\t\tdelete this.userGroup.members[firstKey];\n\t\tthis.updateMembers();\n\n\t\tthis.userGroup.accessCodes = [];\n\n\t\tfor (const key in this.userGroup.members)\n\t\t{\n\t\t\tthis.userGroup.accessCodes[key] = this.userGroup.members[key].type;\n\t\t}\n\t}\n\n\tadjustPopupUserControl(): void\n\t{\n\t\tconst users = [];\n\t\tconst groups = [];\n\t\tconst departments = [];\n\t\tconst sonetgroups = [];\n\n\t\tfor (const item in this.userGroup.members)\n\t\t{\n\t\t\tthis.userGroup.members[item].key = item;\n\n\t\t\tif (this.userGroup.members[item].type === 'users')\n\t\t\t{\n\t\t\t\tusers.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'groups')\n\t\t\t{\n\t\t\t\tgroups.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'usergroups')\n\t\t\t{\n\t\t\t\tgroups.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'departments')\n\t\t\t{\n\t\t\t\tdepartments.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'sonetgroups')\n\t\t\t{\n\t\t\t\tsonetgroups.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t}\n\n\t\tconst counterUsers = [];\n\n\t\tfor (const key in this.userGroup.members)\n\t\t{\n\t\t\tcounterUsers.push(this.userGroup.members[key])\n\t\t}\n\n\t\tif (counterUsers.length === 0)\n\t\t{\n\t\t\tthis.showUserSelectorPopup();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getUserPopup(users, groups, departments, sonetgroups).show();\n\t}\n\n\tgetAddUserToRole(): HTMLElement\n\t{\n\t\tif (!this.addUserToRole)\n\t\t{\n\t\t\tthis.addUserToRole = Tag.render`\n\t\t\t\t<span \n\t\t\t\t\tclass='ui-access-rights-members-item ui-access-rights-members-item-add'\n\t\t\t\t\tbx-data-column-id='${this.getId()}'\n\t\t\t\t>\n\t\t\t\t</span>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.addUserToRole;\n\t}\n\n\tgetUserPopup(users, groups, departments, sonetgroups): Popup\n\t{\n\t\tif (!this.popupUsers)\n\t\t{\n\t\t\tusers = users || [];\n\t\t\tgroups = groups || [];\n\t\t\tdepartments = departments || [];\n\t\t\tsonetgroups = sonetgroups || [];\n\n\t\t\tconst content = Tag.render`<div class='ui-access-rights-popup-toggler'></div>`;\n\n\t\t\tconst contentTitle = Tag.render`<div class='ui-access-rights-popup-toggler-title'></div>`;\n\n\t\t\tconst onTitleClick = (event: BaseEvent) => {\n\t\t\t\tconst node = event.target;\n\t\t\t\tactivate(node);\n\t\t\t\tadjustSlicker(node);\n\t\t\t};\n\n\t\t\tif (groups.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item ui-access-rights-popup-toggler-title-item-active'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-groups'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_USER_GROUPS')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tif (departments.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-departments'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_DEPARTMENTS')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tif (users.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-users'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_STAFF')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tif (sonetgroups.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-sonetgroups'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_SOCNETGROUP')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tDom.append(Tag.render`<div class='ui-access-rights-popup-toggler-title-slicker'></div>`, contentTitle);\n\n\t\t\tDom.append(contentTitle, content);\n\n\t\t\tif (groups.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(groups, 'groups'), content);\n\t\t\t}\n\n\t\t\tif (departments.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(departments, 'departments'), content);\n\t\t\t}\n\n\t\t\tif (users.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(users, 'users'), content);\n\t\t\t}\n\n\t\t\tif (sonetgroups.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(sonetgroups, 'sonetgroups'), content);\n\t\t\t}\n\n\t\t\tconst footer = Tag.render`<div class='ui-access-rights-popup-toggler-footer'></div>`;\n\n\t\t\tconst footerLink = Tag.render`\n\t\t\t\t<div class='ui-access-rights-popup-toggler-footer-link'>\n\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_ADD')}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t\tEvent.bind(footerLink, 'click', (event: Event) => {\n\t\t\t\tthis.popupUsers.close();\n\t\t\t\tthis.showUserSelectorPopup();\n\t\t\t\tevent.preventDefault()\n\t\t\t});\n\n\t\t\tDom.append(footerLink, footer);\n\t\t\tDom.append(footer, content);\n\n\t\t\tconst adjustSlicker = (node) => {\n\t\t\t\tif (!Type.isDomNode(node))\n\t\t\t\t{\n\t\t\t\t\tnode = content.querySelector('.ui-access-rights-popup-toggler-title-item-active');\n\t\t\t\t}\n\t\t\t\tconst slicker = content.querySelector('.ui-access-rights-popup-toggler-title-slicker');\n\t\t\t\tDom.style(slicker, 'left', node.offsetLeft + 'px');\n\t\t\t\tDom.style(slicker, 'width', node.offsetWidth + 'px');\n\t\t\t};\n\n\t\t\tconst activate = (node) => {\n\t\t\t\tconst titles = content.querySelectorAll('.ui-access-rights-popup-toggler-title-item');\n\t\t\t\tconst contents = content.querySelectorAll('.ui-access-rights-popup-toggler-content');\n\n\t\t\t\tconst target = content.querySelector('.' + node.getAttribute('data-role'));\n\n\t\t\t\ttitles.forEach((item) => {\n\t\t\t\t\tDom.removeClass(item, 'ui-access-rights-popup-toggler-title-item-active');\n\t\t\t\t});\n\n\t\t\t\tcontents.forEach((item) => {\n\t\t\t\t\tDom.style(item, 'display', 'none');\n\t\t\t\t});\n\n\t\t\t\tDom.style(target, 'display', 'block');\n\t\t\t\tDom.addClass(node, 'ui-access-rights-popup-toggler-title-item-active');\n\t\t\t};\n\n\t\t\tthis.popupUsers = PopupWindowManager.create(\n\t\t\t\tnull,\n\t\t\t\tthis.getAddUserToRole(),\n\t\t\t\t{\n\t\t\t\t\tcontentPadding: 10,\n\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t\tcontent,\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\toffsetTop: 5,\n\t\t\t\t\tangle: {\n\t\t\t\t\t\tposition: 'top',\n\t\t\t\t\t\toffset: 35,\n\t\t\t\t\t},\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tcloseEsc: true,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupShow: () => {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tconst firstActiveNode = content.querySelector('.ui-access-rights-popup-toggler-title-item');\n\n\t\t\t\t\t\t\t\tif (!firstActiveNode)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tDom.addClass(firstActiveNode, 'ui-access-rights-popup-toggler-title-item-active');\n\t\t\t\t\t\t\t\tadjustSlicker(firstActiveNode);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\t\tthis.popupUsers.destroy();\n\t\t\t\t\t\t\tthis.popupUsers = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn this.popupUsers;\n\t}\n\n\tgetUserPopupTogglerGroup(array, type)\n\t{\n\t\tconst node = Tag.render`<div class='ui-access-rights-popup-toggler-content'></div>`;\n\t\tDom.addClass(node, 'ui-access-rights-popup-toggler-content-' + type);\n\n\t\tarray.forEach((item) => {\n\t\t\tconst toggler = Tag.render`<div class='ui-access-rights-popup-toggler-content-item'></div>`;\n\n\t\t\tif (item.avatar)\n\t\t\t{\n\t\t\t\tconst avatar = Tag.render`\n\t\t\t\t\t<a \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-content-item-userpic'\n\t\t\t\t\t\ttitle=\"${Text.encode(item.name)}\"\n\t\t\t\t\t></a>\n\t\t\t\t`;\n\t\t\t\tDom.style(avatar, 'backgroundImage', 'url(\\'' + encodeURI(item.avatar) + '\\')');\n\t\t\t\tDom.style(avatar, 'backgroundSize', 'cover');\n\t\t\t\tDom.append(avatar, toggler);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet iconClass = '';\n\n\t\t\t\tif (type === 'users')\n\t\t\t\t{\n\t\t\t\t\ticonClass = 'ui-icon-common-user';\n\t\t\t\t}\n\t\t\t\telse if (type === 'groups')\n\t\t\t\t{\n\t\t\t\t\ticonClass = 'ui-icon-common-user-group';\n\t\t\t\t}\n\t\t\t\telse if (type === 'sonetgroups' || type === 'departments')\n\t\t\t\t{\n\t\t\t\t\ticonClass = 'ui-icon-common-company';\n\t\t\t\t}\n\n\t\t\t\tconst emptyAvatar = Tag.render`<a class='ui-icon ui-icon-sm' title=\"${Text.encode(item.name)}\"><i></i></a>`;\n\t\t\t\tDom.addClass(emptyAvatar, iconClass);\n\t\t\t\tDom.style(emptyAvatar, 'margin', '5px 10px');\n\t\t\t\tDom.append(emptyAvatar, toggler);\n\t\t\t}\n\n\t\t\tDom.append(\n\t\t\t\tTag.render`<div class='ui-access-rights-popup-toggler-content-item-name'>${Text.encode(item.name)}</div>`,\n\t\t\t\ttoggler\n\t\t\t);\n\n\t\t\tconst removeButton = Tag.render`\n\t\t\t\t<div class='ui-access-rights-popup-toggler-content-item-remove'>${Loc.getMessage('JS_UI_ACCESSRIGHTS_REMOVE')}</div>\n\t\t\t`;\n\n\t\t\tEvent.bind(removeButton, 'click', () => {\n\t\t\t\tthis.userGroup.accessCodes.splice(this.userGroup.accessCodes.indexOf(item.key), 1);\n\n\t\t\t\tdelete this.userGroup.accessCodes[item.key];\n\t\t\t\tdelete this.userGroup.members[item.key];\n\n\t\t\t\tDom.remove(toggler);\n\n\t\t\t\tthis.updateMembers();\n\t\t\t\tthis.adjustPopupUserControl();\n\t\t\t\tthis.grid.getButtonPanel().show();\n\t\t\t});\n\n\t\t\tDom.append(removeButton, toggler);\n\n\t\t\tDom.append(toggler, node);\n\t\t});\n\n\t\treturn node;\n\t}\n\n\tshowUserSelectorPopup(): void\n\t{\n\t\tif (this.grid.useEntitySelectorDialogAsPopup)\n\t\t{\n\t\t\tthis.#showEntitySelector();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#showSelectorV2();\n\t\t}\n\t}\n\n\t#showSelectorV2(): void\n\t{\n\t\tconst selectorInstance = BX.Main\n\t\t\t.selectorManagerV2.controls[this.popupContainer]\n\t\t\t?.selectorInstance\n\t\t;\n\n\t\tif (selectorInstance)\n\t\t{\n\t\t\tselectorInstance.itemsSelected = {};\n\t\t}\n\n\t\tBX.onCustomEvent(this.openPopupEvent, [{\n\t\t\tid: this.popupContainer,\n\t\t\tbindNode: this.getAddUserToRole()\n\t\t}]);\n\n\t\tBX.onCustomEvent('BX.Main.SelectorV2:reInitDialog', [{\n\t\t\tselectorId: this.popupContainer,\n\t\t\tselectedItems: this.userGroup.accessCodes\n\t\t}]);\n\t}\n\n\t#showEntitySelector(): void\n\t{\n\t\tif (!this.entitySelectorAdapter)\n\t\t{\n\t\t\tthis.entitySelectorAdapter = new EntitySelectorAdapter(\n\t\t\t\tthis.grid.entitySelectorDialogOptions,\n\t\t\t);\n\t\t}\n\n\t\tthis.entitySelectorAdapter.show(\n\t\t\tthis.getId(),\n\t\t\tthis.userGroup.accessCodes,\n\t\t\tthis.addUserToRole,\n\t\t);\n\t}\n}\n","import {EventEmitter} from \"main.core.events\";\nimport {Dom, Event, Text, Tag, Loc} from 'main.core';\nimport Base from \"./base\";\n\nimport {PopupWindowManager} from \"main.popup\";\nimport ColumnItemOptions from \"../columnitem\";\n\nexport default class Role extends Base\n{\n\tstatic TYPE = 'role';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.column = options.column;\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEvent.bind(window, 'click', (event: Event) => {\n\t\t\tif (\n\t\t\t\tevent.target === this.getRole()\n\t\t\t\t|| event.target.closest('.ui-access-rights-role')\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.updateRole();\n\t\t\tthis.offRoleEditMode();\n\t\t});\n\n\t\tEventEmitter.subscribe(this.grid, 'onBeforeSave', () => {\n\t\t\tthis.updateRole();\n\t\t\tthis.offRoleEditMode();\n\t\t});\n\t}\n\n\tgetRole(): HTMLElement\n\t{\n\t\tif (this.role)\n\t\t{\n\t\t\treturn this.role;\n\t\t}\n\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:preservation', this.updateRole.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:preservation', this.offRoleEditMode.bind(this));\n\n\t\tthis.roleInput = Tag.render`\n\t\t\t\t<input\n\t\t\t\t\ttype='text'\n\t\t\t\t\tclass='ui-access-rights-role-input'\n\t\t\t\t\tvalue='${Text.encode(this.text)}'\n\t\t\t\t\tplaceholder='${Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_NAME')}'\n\t\t\t\t/>\n\t\t\t`;\n\n\t\tEvent.bind(this.roleInput, 'keydown', (event: Event) => {\n\t\t\tif (event.keyCode === 13)\n\t\t\t{\n\t\t\t\tthis.updateRole();\n\t\t\t\tthis.offRoleEditMode();\n\t\t\t}\n\t\t});\n\n\t\tEvent.bind(this.roleInput, 'input', () => {\n\t\t\tthis.grid.getButtonPanel().show();\n\t\t});\n\n\t\tthis.roleValue = Tag.render`<div class='ui-access-rights-role-value'>${Text.encode(this.text)}</div>`;\n\n\t\tconst editControl = Tag.render`<div class='ui-access-rights-role-edit'></div>`;\n\t\tEvent.bind(editControl, 'click', this.onRoleEditMode.bind(this));\n\n\t\tconst removeControl = Tag.render`<div class='ui-access-rights-role-remove'></div>`;\n\t\tEvent.bind(removeControl, 'click', this.showPopupConfirm.bind(this));\n\n\t\tconst roleControlWrapper = Tag.render`\n\t\t\t\t<div class='ui-access-rights-role-controls'>\n\t\t\t\t\t${editControl}\n\t\t\t\t\t${removeControl}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\tthis.role = Tag.render`\n\t\t\t\t<div class='ui-access-rights-role'>\n\t\t\t\t\t${this.roleInput}\n\t\t\t\t\t${this.roleValue}\n\t\t\t\t\t${roleControlWrapper}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\treturn this.role;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getRole();\n\t}\n\n\tonRoleEditMode()\n\t{\n\t\tDom.addClass(this.getRole(), 'ui-access-rights-role-edit-mode');\n\t\tthis.roleInput.focus();\n\t}\n\n\tshowPopupConfirm()\n\t{\n\t\tif (!this.popupConfirm)\n\t\t{\n\t\t\t/**@ToDO check role*/\n\t\t\tthis.popupConfirm = PopupWindowManager.create(\n\t\t\t\tnull,\n\t\t\t\tthis.getRole(),\n\t\t\t\t{\n\t\t\t\t\twidth: 250,\n\t\t\t\t\toverlay: true,\n\t\t\t\t\tcontentPadding: 10,\n\t\t\t\t\tcontent: Loc.getMessage('JS_UI_ACCESSRIGHTS_POPUP_REMOVE_THIS_ROLE'),\n\t\t\t\t\tanimation: 'fading-slide'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.popupConfirm.setButtons([\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('JS_UI_ACCESSRIGHTS_POPUP_REMOVE'),\n\t\t\t\t\tclassName: 'ui-btn ui-btn-sm ui-btn-primary',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: () => {\n\t\t\t\t\t\t\tthis.popupConfirm.close();\n\t\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:removeRole', this);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('JS_UI_ACCESSRIGHTS_POPUP_CANCEL'),\n\t\t\t\t\tclassName: 'ui-btn ui-btn-sm ui-btn-link',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: () => {\n\t\t\t\t\t\t\tthis.popupConfirm.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t]);\n\t\t}\n\n\t\tthis.popupConfirm.show();\n\t}\n\n\tupdateRole(): void\n\t{\n\t\tif (this.roleValue.innerHTML === this.roleInput.value || this.roleInput.value === '')\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.text = this.roleInput.value;\n\t\tthis.userGroup = this.column.getUserGroup();\n\n\t\tthis.roleValue.innerText = this.roleInput.value;\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:updateRole', this);\n\t}\n\n\toffRoleEditMode(): void\n\t{\n\t\tDom.removeClass(this.getRole(), 'ui-access-rights-role-edit-mode')\n\t}\n}\n","import {EventEmitter} from \"main.core.events\";\nimport {Dom, Tag} from \"main.core\";\nimport Base from \"./base\";\nimport ColumnItemOptions from \"../columnitem\";\n\n\nexport default class Changer extends Base\n{\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.isModify = false;\n\t}\n\n\tgetChanger(): HTMLElement\n\t{\n\t\tif (!this.changer)\n\t\t{\n\t\t\tthis.changer = Tag.render`<a class='ui-access-rights-column-item-changer'></a>`\n\t\t}\n\n\t\treturn this.changer;\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.offChanger.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.refreshStatus.bind(this));\n\t}\n\n\trefreshStatus(): void\n\t{\n\t\tthis.isModify = false;\n\t\tDom.removeClass(this.getChanger(), 'ui-access-rights-column-item-changer-on');\n\t}\n\n\toffChanger(): void\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.refreshStatus();\n\t\t\t});\n\t\t}\n\t}\n\n\tadjustChanger(): void\n\t{\n\t\tthis.isModify = !this.isModify;\n\n\t\tthis.toggleChangerHtmlClass();\n\t}\n\n\ttoggleChangerHtmlClass()\n\t{\n\t\tDom.toggleClass(this.getChanger(), 'ui-access-rights-column-item-changer-on');\n\t}\n\n\taddChangerHtmlClass(): void\n\t{\n\t\tDom.addClass(this.getChanger(), 'ui-access-rights-column-item-changer-on');\n\t}\n\n\tremoveChangerHtmlClass(): void\n\t{\n\t\tDom.removeClass(this.getChanger(), 'ui-access-rights-column-item-changer-on');\n\t}\n}\n","import ColumnItemOptions from \"../columnitem\";\nimport {EventEmitter} from \"main.core.events\";\nimport \"ui.switcher\";\nimport {Dom} from \"main.core\";\nimport Changer from \"./changer\";\n\nexport default class Toggler extends Changer\n{\n\tstatic TYPE = 'toggler';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.switcher = new BX.UI.Switcher(\n\t\t\t{\n\t\t\t\tsize: 'small',\n\t\t\t\tchecked: this.currentValue === '1',\n\t\t\t\thandlers: {\n\t\t\t\t\tchecked: () => {\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:accessOn', this);\n\t\t\t\t\t},\n\t\t\t\t\tunchecked: () => {\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:accessOff', this);\n\t\t\t\t\t},\n\t\t\t\t\ttoggled: () => {\n\t\t\t\t\t\tthis.adjustChanger();\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\toffChanger(): void\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.switcher.check(!this.switcher.isChecked());\n\t\t}\n\n\t\tsuper.offChanger();\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tDom.append(this.switcher.getNode(), this.getChanger());\n\n\t\treturn this.getChanger();\n\t}\n}\n","import {EventEmitter} from \"main.core.events\";\nimport {Event, Text, Tag, Loc, Dom} from 'main.core';\nimport Base from \"./base\";\n\nimport { Menu} from \"main.popup\";\nimport Role from \"./role\";\n\nexport default class Controller extends Base\n{\n\trender(): HTMLElement\n\t{\n\t\tif (!this.controller)\n\t\t{\n\t\t\tthis.controllerLink = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-controller-link'>\n\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_CREATE_ROLE')}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tthis.controllerMenu = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-controller-link'>\n\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_COPY_ROLE')}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tEvent.bind(this.controllerMenu, 'click', () => {\n\t\t\t\tif (this.popupMenu)\n\t\t\t\t{\n\t\t\t\t\tthis.popupMenu.close();\n\t\t\t\t}\n\t\t\t\telse if (this.grid.getUserGroups().length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.getPopupMenu(this.grid.getUserGroups()).show();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.toggleControllerMenu();\n\n\t\t\tthis.controller = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-controller'>\n\t\t\t\t\t${this.controllerLink}\n\t\t\t\t\t${this.controllerMenu}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tEvent.bind(this.controllerLink, 'click', () => {\n\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:addRole', [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: '0',\n\t\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_NAME'),\n\t\t\t\t\t\taccessRights: [],\n\t\t\t\t\t\tmembers: [],\n\t\t\t\t\t\taccessCodes: [],\n\t\t\t\t\t\ttype: Role.TYPE\n\t\t\t\t\t}\n\t\t\t\t]);\n\n\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\n\t\t\t\tthis.toggleControllerMenu();\n\t\t\t\tthis.grid.lock();\n\t\t\t});\n\n\t\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:removeRole', this.toggleControllerMenu.bind(this));\n\t\t}\n\n\t\treturn this.controller;\n\t}\n\n\tgetPopupMenu(options): Menu\n\t{\n\t\tif (!options)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst menuItems = [];\n\n\t\toptions.map(\n\t\t\t(data) => {\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: Text.encode(data.title),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tconst accessRightsCopy = Object.assign([], data.accessRights);\n\t\t\t\t\t\tconst accessCodesCopy = Object.assign([], data.accessCodes);\n\n\t\t\t\t\t\tEventEmitter.emit(\n\t\t\t\t\t\t\t'BX.UI.AccessRights.ColumnItem:copyRole',\n\t\t\t\t\t\t\t[{\n\t\t\t\t\t\t\t\tid: '0',\n\t\t\t\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_NAME'),\n\t\t\t\t\t\t\t\taccessRights: accessRightsCopy,\n\t\t\t\t\t\t\t\taccessCodes: accessCodesCopy,\n\t\t\t\t\t\t\t\ttype: Role.TYPE,\n\t\t\t\t\t\t\t\tmembers: data.members\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t\t\t\t\t\tthis.popupMenu.destroy();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\treturn this.popupMenu = new Menu(\n\t\t\t'ui_accessrights_copy_role_list',\n\t\t\tthis.controllerMenu,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tthis.popupMenu.destroy();\n\t\t\t\t\t\tthis.popupMenu = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\ttoggleControllerMenu()\n\t{\n\t\tif (this.grid.getUserGroups().length === 0)\n\t\t{\n\t\t\tDom.addClass(this.controllerMenu, 'ui-access-rights-column-item-controller-link--disabled');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.controllerMenu, 'ui-access-rights-column-item-controller-link--disabled');\n\t\t}\n\t}\n}\n","import ColumnItemOptions from \"../columnitem\";\nimport {Event, Text, Tag, Dom, Loc} from 'main.core';\n\nimport {PopupMenu} from \"main.popup\";\nimport type { ChangerOpts } from './changer';\nimport Changer from \"./changer\";\nimport {BaseEvent, EventEmitter} from \"main.core.events\";\n\ntype VariableItem = {\n\tid: number,\n\ttitle: string,\n}\n\nexport default class VariableSelector extends Changer\n{\n\tstatic TYPE = 'variables';\n\n\tchangerOptions: ChangerOpts;\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.variables = options.variables || [];\n\n\t\tthis.selectedValues = [this.currentValue ?? '0'];\n\t}\n\n\tbindEvents()\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.reset.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.refresh.bind(this));\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tconst title = this.getSelected()?.title ?? Loc.getMessage('JS_UI_ACCESSRIGHTS_ADD');\n\t\tconst variablesValue = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-text-link'>\n\t\t\t\t\t${Text.encode(title)}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\tEvent.bind(variablesValue, 'click', this.showVariablesPopup.bind(this));\n\n\t\tDom.append(variablesValue, this.getChanger());\n\n\t\treturn this.getChanger();\n\t}\n\n\trefresh(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.currentValue = this.selectedValues[0];\n\t\t\tthis.reset();\n\t\t}\n\t}\n\n\treset(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.selectedValues = [this.currentValue];\n\t\t\tthis.getChanger().innerHTML = '';\n\t\t\tthis.adjustChanger();\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tgetSelected(): VariableItem\n\t{\n\t\tconst selected = this.variables.filter(variable => this.selectedValues.map(String).includes(String(variable.id)));\n\n\t\treturn selected[0];\n\t}\n\n\tshowVariablesPopup(event: Event): void\n\t{\n\t\tconst menuItems = [];\n\n\t\tthis.variables.map((data) => {\n\t\t\tmenuItems.push({\n\t\t\t\tid: data.id,\n\t\t\t\ttext: data.title,\n\t\t\t\tonclick: this.select.bind(this),\n\t\t\t});\n\t\t});\n\n\t\tPopupMenu.show(\n\t\t\t'ui-access-rights-column-item-popup-variables',\n\t\t\tevent.target,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tautoHide: true,\n\t\t\t\tevents : {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tPopupMenu.destroy('ui-access-rights-column-item-popup-variables');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tselect(event: BaseEvent, item: MenuItem)\n\t{\n\t\tthis.selectedValues = [item.options.id];\n\n\t\titem\n\t\t\t.getMenuWindow()\n\t\t\t?.close()\n\t\t;\n\n\t\tthis.getChanger().innerHTML = '';\n\t\tthis.render();\n\t\tthis.adjustChanger();\n\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:selectAccessItems', this);\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t}\n\n\tadjustChanger(): void\n\t{\n\t\tconst defaultValue = this.changerOptions.replaceNullValueTo || null;\n\n\t\tconst selectedValue = this.selectedValues[0] || defaultValue;\n\n\t\tif (selectedValue === this.currentValue)\n\t\t{\n\t\t\tthis.isModify = false;\n\t\t\tthis.removeChangerHtmlClass();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.isModify = true;\n\t\t\tthis.addChangerHtmlClass();\n\t\t}\n\t}\n}\n","import {Tag, Text} from \"main.core\";\nimport Title from \"./title\";\n\nexport default class UserGroupTitle extends Title\n{\n\tstatic TYPE = 'userGroupTitle';\n\n\trender(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div \n\t\t\t\tclass='ui-access-rights-column-item-text'\n\t\t\t\tdata-id='${this.getId()}'\n\t\t\t>\n\t\t\t\t${Text.encode(this.text)}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n","import {DefaultFooter, Dialog, Item} from 'ui.entity-selector';\nimport {Dom, Loc, Tag, Event} from 'main.core';\n\nexport default class Footer extends DefaultFooter\n{\n\tconstructor(dialog: Dialog, options: { [option: string]: any })\n\t{\n\t\tsuper(dialog, options);\n\n\t\tthis.selectAllButton = Tag.render`<div class=\"ui-selector-footer-link ui-selector-search-footer-label--hide\">${Loc.getMessage('JS_UI_ACCESSRIGHTS_ALL_SELECT_LABEL')}</div>`;\n\t\tEvent.bind(this.selectAllButton, 'click', this.selectAll.bind(this));\n\t\tthis.deselectAllButton = Tag.render`<div class=\"ui-selector-footer-link ui-selector-search-footer-label--hide\">${Loc.getMessage('JS_UI_ACCESSRIGHTS_ALL_DESELECT_LABEL')}</div>`;\n\t\tEvent.bind(this.deselectAllButton, 'click', this.deselectAll.bind(this));\n\n\t\tthis.getDialog().subscribe('Item:onSelect', this.onItemStatusChange.bind(this));\n\t\tthis.getDialog().subscribe('Item:onDeselect', this.onItemStatusChange.bind(this));\n\t}\n\n\tgetContent(): HTMLElement\n\t{\n\t\tthis.toggleSelectButtons();\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-selector-search-footer-box\">\n\t\t\t\t${this.selectAllButton}\n\t\t\t\t${this.deselectAllButton}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\ttoggleSelectButtons(): void\n\t{\n\t\tif (this.getDialog().getSelectedItems().length === this.getDialog().getItems().length)\n\t\t{\n\t\t\tif (Dom.hasClass(this.deselectAllButton, 'ui-selector-search-footer-label--hide'))\n\t\t\t{\n\t\t\t\tDom.addClass(this.selectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t\t\tDom.removeClass(this.deselectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t\t}\n\t\t}\n\t\telse if (Dom.hasClass(this.selectAllButton, 'ui-selector-search-footer-label--hide'))\n\t\t{\n\t\t\tDom.addClass(this.deselectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t\tDom.removeClass(this.selectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t}\n\t}\n\n\tselectAll(): void\n\t{\n\t\tif (this.getDialog().getSelectedItems().length === this.getDialog().getItems().length)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis\n\t\t\t.getDialog()\n\t\t\t.getItems()\n\t\t\t.forEach((item: Item) => {\n\t\t\t\titem.select();\n\t\t\t})\n\t\t;\n\t}\n\n\tdeselectAll(): void\n\t{\n\t\tthis\n\t\t\t.getDialog()\n\t\t\t.getSelectedItems()\n\t\t\t.forEach((item: Item) => {\n\t\t\t\titem.deselect();\n\t\t\t})\n\t\t;\n\t}\n\n\tonItemStatusChange(): void\n\t{\n\t\tthis.toggleSelectButtons();\n\t}\n}\n","import ColumnItemOptions from '../../columnitem';\nimport { Event, Text, Tag, Dom, Type, Loc } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport { Dialog, Item } from 'ui.entity-selector';\n\nimport Changer from '../changer';\nimport { ChangerOpts } from '../base';\nimport { EventEmitter } from 'main.core.events';\nimport Footer from './footer';\nimport 'ui.hint';\n\ntype VariableItem = {\n\tid: number,\n\ttitle: string,\n}\n\ninterface MultiSelectorChangerOpts extends ChangerOpts {\n\tdisableSelectAll?: boolean;\n\tuseSelectedActions?: boolean;\n}\n\nexport default class MultiSelector extends Changer\n{\n\tstatic TYPE = 'multivariables';\n\n\tchangerOptions: MultiSelectorChangerOpts;\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\t\tthis.variables = options.variables || [];\n\t\tthis.enableSearch = options.enableSearch ?? false;\n\t\tthis.placeholder = options.placeholder || '';\n\t\tthis.hintTitle = options.hintTitle || '';\n\t\tthis.allSelectedCode = String(options.allSelectedCode || -1);\n\t\tthis.showAvatars = options.showAvatars ?? true;\n\t\tthis.compactView = options.compactView ?? false;\n\t\tthis.currentValue = Type.isArray(options.currentValue) ? options.currentValue.map((item) => String(item)) : [];\n\n\t\tthis.selectedValues = this.currentValue.filter((val) => Boolean(val));\n\n\t\tthis.variables = this.variables.map((item) => {\n\t\t\titem.entityId = item.entityId || 'editor-right-item';\n\t\t\titem.tabs = 'recents';\n\t\t\tif (item.selectedAction)\n\t\t\t{\n\t\t\t\titem.customData = { ...item.customData, selectedAction: item.selectedAction };\n\t\t\t}\n\n\t\t\treturn item;\n\t\t});\n\n\t\tthis.selector = this.createSelector();\n\t}\n\n\tbindEvents()\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.reset.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.refresh.bind(this));\n\t}\n\n\tcreateSelector(): Dialog\n\t{\n\t\treturn new Dialog({\n\t\t\theight: 300,\n\t\t\tid: this.getId(),\n\t\t\tcontext: 'editor-right-items',\n\t\t\tenableSearch: this.enableSearch,\n\t\t\tmultiple: true,\n\t\t\tdropdownMode: true,\n\t\t\tcompactView: this.compactView,\n\t\t\tshowAvatars: this.showAvatars,\n\t\t\tselectedItems: this.getSelected(),\n\t\t\tsearchOptions: {\n\t\t\t\tallowCreateItem: false,\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\t'Item:onSelect': this.#obSelectItem.bind(this),\n\t\t\t\t'Item:onDeselect': this.#onDeselectItem.bind(this),\n\t\t\t},\n\t\t\tentities: [\n\t\t\t\t{\n\t\t\t\t\tid: 'editor-right-item',\n\t\t\t\t}\n\t\t\t],\n\t\t\titems: this.variables,\n\t\t\tfooter: this.#getDialogFooter(),\n\t\t});\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tlet title = '';\n\t\tif (this.includesSelected(this.allSelectedCode))\n\t\t{\n\t\t\ttitle = Loc.getMessage('JS_UI_ACCESSRIGHTS_ALL_ACCEPTED');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst titles = [];\n\t\t\tthis.getSelected()?.forEach((item) => {\n\t\t\t\ttitles.push(item.title)\n\t\t\t});\n\n\t\t\tif (titles.length > 0 )\n\t\t\t{\n\t\t\t\tconst firstItem = titles[0];\n\t\t\t\ttitle =\n\t\t\t\t\ttitles.length - 1 > 0\n\t\t\t\t\t\t? Loc.getMessage(\n\t\t\t\t\t\t\t'JS_UI_ACCESSRIGHTS_HAS_SELECTED_ITEMS',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'#FIRST_ITEM_NAME#':\n\t\t\t\t\t\t\t\t\tfirstItem.length > 10\n\t\t\t\t\t\t\t\t\t\t? firstItem.slice(0, 10) + '...'\n\t\t\t\t\t\t\t\t\t\t: firstItem\n\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t'#COUNT_REST_ITEMS#': titles.length - 1,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: firstItem\n\t\t\t\t;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttitle = Loc.getMessage('JS_UI_ACCESSRIGHTS_ADD');\n\t\t\t}\n\t\t}\n\n\t\tlet hint = '';\n\t\tif (this.selector.getSelectedItems().length > 0)\n\t\t{\n\t\t\tconst hintTitle =\n\t\t\t\tType.isStringFilled(this.hintTitle)\n\t\t\t\t\t? this.hintTitle\n\t\t\t\t\t: Loc.getMessage('JS_UI_ACCESSRIGHTS_SELECTED_ITEMS_TITLE_MSGVER_1')\n\t\t\t;\n\t\t\thint += '<p>' + hintTitle + '</p>';\n\t\t\thint += '<ul>';\n\t\t\tthis.selector.getSelectedItems().forEach((item: Item) => hint += '<li>' + Text.encode(item.getTitle()))\n\t\t\thint += '</ul>';\n\t\t}\n\n\t\tconst variablesValue = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-text-link' data-hint-html data-hint-no-icon data-hint=\"${Text.encode(hint)}\">\n\t\t\t\t\t${Text.encode(title)}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\tEvent.bind(variablesValue, 'click', this.showSelector.bind(this));\n\n\t\tDom.append(variablesValue, this.getChanger());\n\n\t\tBX.UI.Hint.init(this.getChanger());\n\n\t\tthis.selector.setTargetNode(this.getChanger());\n\n\t\treturn this.getChanger();\n\t}\n\n\trefresh(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.currentValue = [...this.selectedValues];\n\t\t\tthis.reset();\n\t\t}\n\t}\n\n\treset(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.selectedValues = [...this.currentValue];\n\t\t\tthis.selector = this.createSelector();\n\t\t\tthis.getChanger().innerHTML = '';\n\t\t\tthis.adjustChanger();\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tgetSelected(): ?VariableItem[]\n\t{\n\t\tif (this.includesSelected(this.allSelectedCode))\n\t\t{\n\t\t\treturn this.variables;\n\t\t}\n\n\t\treturn this.variables.filter(variable => this.includesSelected(variable.id));\n\t}\n\n\tincludesSelected(itemId): boolean\n\t{\n\t\treturn this.selectedValues.some((id) => String(id) === String(itemId));\n\t}\n\n\tshowSelector(event: Event): void\n\t{\n\t\tthis.selector.show();\n\t}\n\n\t#obSelectItem(event: BaseEvent): void\n\t{\n\t\tconst addedItem = event.getData().item;\n\t\tconst addedId = String(addedItem.id);\n\n\t\tif (this.changerOptions.useSelectedActions)\n\t\t{\n\t\t\tthis.#useSelectedActionLogic(addedItem);\n\t\t}\n\n\t\tif (!this.selectedValues.includes(addedId))\n\t\t{\n\t\t\tthis.selectedValues.push(addedId);\n\t\t}\n\n\t\tif (this.selectedValues.length === this.variables.length)\n\t\t{\n\t\t\tthis.selectedValues = [this.allSelectedCode];\n\t\t}\n\n\t\tthis.#afterSetupItems();\n\t}\n\n\t#onDeselectItem(event: BaseEvent): void\n\t{\n\t\tconst removedItem = event.getData().item;\n\t\tconst removedId = String(removedItem.id);\n\n\t\tif (this.selectedValues.includes(this.allSelectedCode))\n\t\t{\n\t\t\tconst allWithoutRemoved = this.variables\n\t\t\t\t.map((variable) => String(variable.id))\n\t\t\t\t.filter((id) => id !== removedId)\n\t\t\t;\n\n\t\t\tthis.selectedValues = allWithoutRemoved;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.selectedValues = this.selectedValues.filter((id) => id !== removedId);\n\t\t}\n\n\t\tthis.#afterSetupItems();\n\t}\n\n\t#afterSetupItems(): void\n\t{\n\t\tthis.isModify = !this.#isArraysEqual(this.selectedValues, this.currentValue);\n\n\t\tthis.getChanger().innerHTML = '';\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.addChangerHtmlClass();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.removeChangerHtmlClass();\n\t\t}\n\n\t\tthis.render();\n\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:selectAccessItems', this);\n\t}\n\n\t#getDialogFooter(): ?Footer\n\t{\n\t\tif (this.changerOptions.disableSelectAll)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn Footer;\n\t}\n\n\t#useSelectedActionLogic(addedItem: Item): void\n\t{\n\t\tconst selectedAction = addedItem.customData.get('selectedAction', null);\n\n\t\tif (selectedAction === 'clear-other')\n\t\t{\n\t\t\tconst selected = this.selector.getSelectedItems();\n\t\t\tfor (const item of selected)\n\t\t\t{\n\t\t\t\tif (addedItem.id === item.id)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\titem.deselect();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst selected = this.selector.getSelectedItems();\n\t\t\tfor (const item of selected)\n\t\t\t{\n\t\t\t\tif (addedItem.id === item.id)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst currSelectedAction = item.customData.get('selectedAction', null);\n\t\t\t\tif (currSelectedAction)\n\t\t\t\t{\n\t\t\t\t\titem.deselect();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t#isArraysEqual(a, b: ?string[]): boolean\n\t{\n\t\tif (a === b)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a === null || b === null)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (a.length !== b.length)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst aClone = [...a];\n\t\tconst bClone = [...b];\n\t\taClone.sort();\n\t\tbClone.sort();\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t{\n\t\t\tif (aClone[i] !== bClone[i])\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n}\n","import Column from \"./column\";\nimport Grid from \"./grid\";\nimport {Dom, Reflection, Tag} from 'main.core';\nimport type { ChangerOpts } from './item/changer';\nimport Title from './item/title';\nimport Hint from './item/hint';\nimport Member from './item/member';\nimport Role from './item/role';\nimport Toggler from './item/toggler';\nimport Controller from './item/controller';\nimport VariableSelector from './item/variableselector';\nimport UserGroupTitle from './item/usergrouptitle';\nimport MultiSelector from \"./item/multivariable/multiselector\";\n\ntype ColumnItemOptions = {\n\tgrid: Grid;\n\tid: number;\n\ttype: string;\n\ttext: string;\n\tplaceholder: string;\n\thintTitle: string;\n\thint: string;\n\tvariables: [];\n\tenableSearch: boolean;\n\tshowAvatars: boolean;\n\tcompactView: boolean;\n\tuserGroup: null;\n\taccess: null;\n\tcurrentValue: null;\n\tcontroller: null;\n\topenPopupEvent: null;\n\tpopupContainer: null;\n\taccessCodes: null;\n\tallSelectedCode: number;\n\tcontainer: HTMLElement;\n\tcolumn: Column;\n\tgroupHead: boolean;\n\tchangerOptions: ?ChangerOpts;\n};\n\nexport default class ColumnItem {\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tthis.options = options;\n\t\tthis.type = options.type ? options.type : null;\n\t\tthis.hint = options.hint ? options.hint : null;\n\t\tthis.controller = options.controller ? options.controller : null;\n\t\tthis.column = options.column;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tlet item = null;\n\t\tconst container = Tag.render`<div class='ui-access-rights-column-item'></div>`;\n\n\t\tif (this.options.group)\n\t\t{\n\t\t\tDom.addClass(container, 'ui-access-rights-group-children');\n\t\t\tcontainer.dataset.group = this.options.group;\n\n\t\t\tthis.options.grid.groupElements.push({\n\t\t\t\tcontainer,\n\t\t\t\tgroup: this.options.group,\n\t\t\t\tisHidden: true,\n\t\t\t});\n\t\t}\n\n\t\tthis.options.container = container;\n\t\tif (this.type === Role.TYPE)\n\t\t{\n\t\t\titem = new Role(this.options);\n\t\t\tif (this.column.newColumn)\n\t\t\t{\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\titem.onRoleEditMode();\n\t\t\t\t\titem.roleInput.value = '';\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\telse if (this.type === Member.TYPE)\n\t\t{\n\t\t\titem = new Member(this.options);\n\t\t}\n\t\telse if (this.type === Title.TYPE)\n\t\t{\n\t\t\titem = new Title(this.options);\n\t\t}\n\t\telse if (this.type === VariableSelector.TYPE)\n\t\t{\n\t\t\titem = new VariableSelector(this.options);\n\t\t}\n\t\telse if (this.type === MultiSelector.TYPE)\n\t\t{\n\t\t\titem = new MultiSelector(this.options);\n\t\t}\n\t\telse if (this.type === Toggler.TYPE)\n\t\t{\n\t\t\titem = new Toggler(this.options);\n\t\t}\n\n\t\tif (item)\n\t\t{\n\t\t\tDom.append(item.render(), container);\n\t\t}\n\n\t\tif (this.hint)\n\t\t{\n\t\t\tconst hintOptions = {\n\t\t\t\tclassName: 'ui-access-rights-column-item-notify',\n\t\t\t\t...this.options\n\t\t\t};\n\t\t\tDom.append((new Hint(hintOptions)).render(), container);\n\t\t}\n\n\t\tif (this.type === UserGroupTitle.TYPE)\n\t\t{\n\t\t\tDom.append((new UserGroupTitle(this.options)).render(), container);\n\t\t}\n\n\t\tif (this.controller)\n\t\t{\n\t\t\tDom.append((new Controller(this.options)).render(), container);\n\t\t}\n\n\t\treturn container;\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI.AccessRights');\nnamespace.ColumnItem = ColumnItem;\n","import { EventEmitter } from \"main.core.events\";\nimport { Dom, Event, Reflection, Tag, Type } from 'main.core';\n\nimport Section from \"./section\";\nimport ColumnItem from \"./columnitem\";\nimport Role from \"./item/role\";\nimport Member from \"./item/member\";\nimport Title from \"./item/title\";\nimport UserGroupTitle from \"./item/usergrouptitle\";\nimport Toggler from \"./item/toggler\";\nimport VariableSelector from \"./item/variableselector\";\nimport MultiSelector from \"./item/multivariable/multiselector\";\n\ntype ColumnOptions = {\n\tgrid: Grid;\n\titems: [];\n\tuserGroup: [];\n\taccessCodes: [];\n\tsection: Section;\n\theadSection: Section;\n\tnewColumn: Column;\n\topenPopupEvent: string;\n\tpopupContainer: HTMLElement;\n};\n\nexport default class Column {\n\tconstructor(options: ColumnOptions)\n\t{\n\t\tthis.layout = {\n\t\t\tcontainer: null\n\t\t};\n\t\tthis.grid = options.grid ? options.grid : null;\n\t\tthis.items = options.items ? options.items : [];\n\t\tthis.userGroup = options.userGroup ? options.userGroup : null;\n\t\tthis.accessCodes = options.accessCodes ? options.accessCodes : null;\n\t\tthis.section = options.section ? options.section : null;\n\t\tthis.headSection = options.headSection;\n\t\tthis.newColumn = options.newColumn ? options.newColumn : null;\n\t\tthis.openPopupEvent = options.grid.openPopupEvent ? options.grid.openPopupEvent : null;\n\t\tthis.popupContainer = options.grid.popupContainer ? options.grid.popupContainer : null;\n\t}\n\n\tgetItem(options): ColumnItem\n\t{\n\t\toptions = options || {};\n\n\t\tconst defaultParam = {\n\t\t\tgroup: options.group,\n\t\t\tchangerOptions: options.changerOptions,\n\t\t};\n\t\tlet param = {\n\t\t\t...defaultParam\n\t\t};\n\n\t\tif (options.type === UserGroupTitle.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\ttext: options.title,\n\t\t\t\tcontroller: options.controller,\n\t\t\t\t...defaultParam,\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === Title.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\t...defaultParam,\n\t\t\t\tid: options.id,\n\t\t\t\tgroupHead: options.groupHead,\n\t\t\t\ttype: options.type,\n\t\t\t\thint: options.hint,\n\t\t\t\ttext: options.title,\n\t\t\t\tcontroller: options.controller\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === Toggler.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\t...defaultParam,\n\t\t\t\ttype: options.type,\n\t\t\t\taccess: options.access,\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === VariableSelector.TYPE || options.type === MultiSelector.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\t...defaultParam,\n\t\t\t\ttype: options.type,\n\t\t\t\ttext: options.title,\n\t\t\t\tvariables: options.variables,\n\t\t\t\taccess: options.access,\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === MultiSelector.TYPE)\n\t\t{\n\t\t\tparam.allSelectedCode = options.allSelectedCode;\n\t\t\tparam.enableSearch = options.enableSearch;\n\t\t\tparam.showAvatars = options.showAvatars;\n\t\t\tparam.compactView = options.compactView;\n\t\t\tparam.hintTitle = options.hintTitle;\n\t\t\tparam.disableSelectAll = options.disableSelectAll || false;\n\t\t}\n\n\t\tif (options.type === Role.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\t...defaultParam,\n\t\t\t\ttype: options.type,\n\t\t\t\ttext: options.title,\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === Member.TYPE)\n\t\t{\n\t\t\tconst accessCodes = [];\n\n\t\t\tfor (const item in options.members)\n\t\t\t{\n\t\t\t\taccessCodes[item] = options.members[item].type;\n\t\t\t}\n\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\taccessCodes: accessCodes\n\t\t\t}\n\t\t}\n\n\t\tparam.column = this;\n\t\tparam.userGroup = this.userGroup;\n\t\tparam.openPopupEvent = this.openPopupEvent;\n\t\tparam.popupContainer = this.popupContainer;\n\t\tparam.currentValue = null;\n\n\t\tparam.grid = this.grid;\n\n\t\tif (\n\t\t\toptions.type === VariableSelector.TYPE\n\t\t\t|| options.type === MultiSelector.TYPE\n\t\t\t|| options.type === Toggler.TYPE\n\t\t)\n\t\t{\n\t\t\tconst accessId = param.access.id.toString();\n\t\t\tconst accessRights = param.userGroup?.accessRights ?? [];\n\n\t\t\tfor (let i = 0; i < accessRights.length; i++)\n\t\t\t{\n\t\t\t\tif (accessId !== accessRights[i].id.toString())\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (options.type === MultiSelector.TYPE)\n\t\t\t\t{\n\t\t\t\t\tparam.currentValue = param.currentValue ?? [];\n\n\t\t\t\t\tif (Type.isArray(accessRights[i].value))\n\t\t\t\t\t{\n\t\t\t\t\t\tparam.currentValue = [...param.currentValue, ...accessRights[i].value]\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tparam.currentValue.push(accessRights[i].value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tparam.currentValue = accessRights[i].value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new ColumnItem(param);\n\t}\n\n\tgetUserGroup(): []\n\t{\n\t\treturn this.userGroup;\n\t}\n\n\tremove(): void\n\t{\n\t\tif (Dom.hasClass(this.layout.container, 'ui-access-rights-column-new'))\n\t\t{\n\t\t\tthis.resetClassNew();\n\t\t}\n\n\t\tDom.addClass(this.layout.container,'ui-access-rights-column-remove')\n\t\tDom.style(this.layout.container, 'width', this.layout.container.offsetWidth + 'px')\n\n\t\tEvent.bind(this.layout.container, 'animationend', () => {\n\t\t\tDom.style(this.layout.container, 'minWidth', '0px')\n\t\t\tDom.style(this.layout.container, 'maxWidth', '0px')\n\t\t});\n\n\n\t\tsetTimeout(() => {\n\t\t\tDom.remove(this.layout.container);\n\t\t}, 500);\n\t}\n\n\tresetClassNew(): void\n\t{\n\t\tDom.removeClass(this.layout.container,'ui-access-rights-column-new');\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tif (!this.layout.container)\n\t\t{\n\t\t\tconst itemsFragment = document.createDocumentFragment();\n\n\t\t\tif (this.headSection)\n\t\t\t{\n\t\t\t\tthis.userGroup.type = Role.TYPE;\n\t\t\t\tDom.append(this.getItem(this.userGroup).render(), itemsFragment);\n\n\t\t\t\tthis.userGroup.type = Member.TYPE;\n\t\t\t\tDom.append(this.getItem(this.userGroup).render(), itemsFragment);\n\t\t\t}\n\n\t\t\tfor (const data of this.items)\n\t\t\t{\n\t\t\t\tconst item = this.getItem(data);\n\t\t\t\tDom.append(item.render(), itemsFragment);\n\t\t\t}\n\n\t\t\tthis.layout.container = Tag.render`<div class='ui-access-rights-column'></div>`;\n\t\t\tif (this.newColumn)\n\t\t\t{\n\t\t\t\tDom.addClass('ui-access-rights-column-new', this.layout.container)\n\t\t\t}\n\n\t\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.resetClassNew.bind(this));\n\n\t\t\tDom.append(itemsFragment, this.layout.container);\n\n\t\t\treturn this.layout.container;\n\t\t}\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI.AccessRights');\nnamespace.Column = Column;\n","import {EventEmitter, BaseEvent} from \"main.core.events\";\nimport {PopupMenu} from 'main.popup';\nimport {Dom, Event, Reflection, Text, Tag, Loc} from 'main.core';\nimport Grid from \"./grid\";\nimport Column from \"./column\";\nimport Title from \"./item/title\";\nimport UserGroupTitle from \"./item/usergrouptitle\";\nimport VariableSelector from \"./item/variableselector\";\nimport MultiSelector from \"./item/multivariable/multiselector\";\nimport Hint from \"./item/hint\";\n\ntype SectionOptions = {\n\tid: string;\n\theadSection: Section;\n\ttitle: string;\n\thint: string;\n\trights: [];\n\tuserGroups: [];\n\tgrid: Grid;\n};\n\nexport default class Section {\n\tconstructor(options: SectionOptions)\n\t{\n\t\tthis.id = options.id ?? null;\n\t\tthis.headSection = options.headSection ? options.headSection : null;\n\t\tthis.title = options.title;\n\t\tthis.hint = options.hint;\n\t\tthis.rights = options.rights ? options.rights : [];\n\t\tthis.userGroups = options.userGroups ? options.userGroups : [];\n\t\tthis.grid = options.grid ? options.grid : null;\n\n\t\tthis.layout = {\n\t\t\ttitle: null,\n\t\t\theadColumn: null,\n\t\t\tcolumns: null,\n\t\t\tcontent: null,\n\t\t\tearLeft: null,\n\t\t\tearRight: null\n\t\t};\n\n\t\tthis.scroll = 0;\n\t\tthis.earTimer = null;\n\t\tthis.earLeftTimer = null;\n\t\tthis.earRightTimer = null;\n\t\tthis.columns = [];\n\n\t\tthis.bindEvents();\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe(this.grid, 'AccessRights.Section:scroll', (event: BaseEvent) => {\n\t\t\tconst [object] = event.getData();\n\t\t\tif (this.title !== object.title)\n\t\t\t{\n\t\t\t\tthis.getColumnsContainer().scrollLeft = object.getScroll()\n\t\t\t}\n\t\t\tobject.adjustEars();\n\t\t\tPopupMenu.destroy('ui-access-rights-column-item-popup-variables');\n\t\t});\n\n\t\tEvent.bind(window, 'resize', this.adjustEars.bind(this));\n\t}\n\n\tgetGrid(): Grid\n\t{\n\t\treturn this.grid;\n\t}\n\n\taddColumn(param): void\n\t{\n\t\tif(!param)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst options = Object.assign({}, param);\n\t\toptions.userGroup = param;\n\t\tconst column = this.getColumn(options);\n\n\t\tDom.append(column.render(), this.layout.columns)\n\t\tthis.columns.push(column);\n\t}\n\n\tgetColumn(options): Column\n\t{\n\t\tconst controls = [];\n\n\t\tthis.rights.map(\n\t\t\t(data) => {\n\t\t\t\tconst isVariable = (data.type === VariableSelector.TYPE || data.type === MultiSelector.TYPE);\n\n\t\t\t\tcontrols.push({\n\t\t\t\t\ttype: data.type,\n\t\t\t\t\ttitle: isVariable ? data.title : null,\n\t\t\t\t\thint: data.hint,\n\t\t\t\t\tgroup: data.group,\n\t\t\t\t\tvariables: isVariable ? data.variables : [],\n\t\t\t\t\tenableSearch: isVariable ? data.enableSearch : null,\n\t\t\t\t\tshowAvatars: isVariable ? data.showAvatars : false,\n\t\t\t\t\tcompactView: isVariable ? data.compactView : false,\n\t\t\t\t\thintTitle: isVariable ? data.hintTitle : null,\n\t\t\t\t\tallSelectedCode: isVariable ? data.allSelectedCode : null,\n\t\t\t\t\tchangerOptions: data.changerOptions || {},\n\t\t\t\t\taccess: data\n\t\t\t\t})\n\t\t\t}\n\t\t);\n\n\t\treturn new Column({\n\t\t\titems: controls,\n\t\t\tuserGroup: options.userGroup ? options.userGroup : null,\n\t\t\tsection: this,\n\t\t\theadSection: options.headSection,\n\t\t\tgrid: this.grid,\n\t\t\tnewColumn: options.newColumn ? options.newColumn : null\n\t\t});\n\t}\n\n\tremoveColumn(param): void\n\t{\n\t\tif (!param)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.columns.length; i++)\n\t\t{\n\t\t\tif (param.userGroup === this.columns[i].userGroup)\n\t\t\t{\n\t\t\t\tthis.columns[i].remove();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\taddHeadColumn(): Column\n\t{\n\t\tlet titles = [];\n\n\t\tif(!this.headSection)\n\t\t{\n\t\t\tthis.rights.map((data) => {\n\t\t\t\ttitles.push({\n\t\t\t\t\tid: data.id,\n\t\t\t\t\ttype: Title.TYPE,\n\t\t\t\t\ttitle: data.title,\n\t\t\t\t\thint: data.hint,\n\t\t\t\t\tgroup: data.group,\n\t\t\t\t\tgroupHead: data.groupHead,\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\n\t\tif (this.headSection)\n\t\t{\n\t\t\ttitles = [\n\t\t\t\t{\n\t\t\t\t\ttype: UserGroupTitle.TYPE,\n\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLES'),\n\t\t\t\t\tcontroller: true\n\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: UserGroupTitle.TYPE,\n\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_EMPLOYEES_AND_DEPARTMENTS'),\n\t\t\t\t\tcontroller: false\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\n\t\tconst column = new Column({\n\t\t\titems: titles,\n\t\t\tsection: this,\n\t\t\tgrid: this.grid\n\t\t});\n\n\t\tDom.append(column.render(), this.layout.headColumn);\n\n\t\treturn column;\n\t}\n\n\tgetColumnsContainer(): HTMLElement\n\t{\n\t\tif (!this.layout.columns)\n\t\t{\n\t\t\tconst column = Tag.render`<div class='ui-access-rights-section-wrapper'></div>`;\n\t\t\tEvent.bind(column, 'scroll', this.adjustScroll.bind(this));\n\t\t\tthis.layout.columns = column;\n\t\t}\n\n\t\treturn this.layout.columns;\n\t}\n\n\tgetTitleNode(): HTMLElement\n\t{\n\t\tconst node = Tag.render`<div class='ui-access-rights-section-title'>${Text.encode(this.title)}</div>`;\n\n\t\tif (this.hint)\n\t\t{\n\t\t\tconst hintNode = new Hint({\n\t\t\t\thint: this.hint,\n\t\t\t\tclassName: 'ui-access-rights-section-title-hint'\n\t\t\t});\n\t\t\tnode.appendChild(hintNode.render());\n\t\t}\n\n\t\treturn node;\n\t}\n\n\tadjustScroll(): void\n\t{\n\t\tif (Text.toNumber(this.scroll) !== Text.toNumber(this.getColumnsContainer().scrollLeft))\n\t\t{\n\t\t\tthis.scroll = this.getColumnsContainer().scrollLeft;\n\t\t\tEventEmitter.emit(this.grid, \"AccessRights.Section:scroll\", [this]);\n\t\t}\n\t}\n\n\tadjustEars(): void\n\t{\n\t\tconst container = this.getColumnsContainer();\n\t\tconst scroll = container.scrollLeft;\n\n\t\tconst isLeftVisible = scroll > 0;\n\t\tconst isRightVisible = container.scrollWidth > (Math.round(scroll + container.offsetWidth));\n\n\t\tthis.getContentContainer().classList[isLeftVisible ? 'add' : 'remove']('ui-access-rights-section-ear-left-shown');\n\t\tthis.getContentContainer().classList[isRightVisible ? 'add' : 'remove']('ui-access-rights-section-ear-right-shown');\n\t}\n\n\tgetContentContainer(): HTMLElement\n\t{\n\t\tif (!this.layout.content)\n\t\t{\n\t\t\tthis.layout.content = Tag.render`\n\t\t\t\t<div class='ui-access-rights-section-content'>\n\t\t\t\t\t${this.getColumnsContainer()}\n\t\t\t\t\t${this.getEarLeft()}\n\t\t\t\t\t${this.getEarRight()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.content;\n\t}\n\n\tgetEarLeft(): HTMLElement\n\t{\n\t\tif (!this.layout.earLeft)\n\t\t{\n\t\t\tthis.layout.earLeft = Tag.render`<div class='ui-access-rights-section-ear-left'></div>`;\n\t\t\tEvent.bind(this.layout.earLeft, 'mouseenter', () => {\n\t\t\t\tthis.stopAutoScroll();\n\t\t\t\tthis.earLeftTimer =\tsetTimeout(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.scrollToLeft()\n\t\t\t\t\t},\n\t\t\t\t\t110\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tEvent.bind(this.layout.earLeft, 'mouseleave', () => {\n\t\t\t\tclearTimeout(this.earLeftTimer);\n\t\t\t\tthis.stopAutoScroll()\n\t\t\t});\n\t\t}\n\n\t\treturn this.layout.earLeft;\n\t}\n\n\tgetEarRight(): HTMLElement\n\t{\n\t\tif (!this.layout.earRight)\n\t\t{\n\t\t\tthis.layout.earRight = Tag.render`<div class='ui-access-rights-section-ear-right'></div>`;\n\t\t\tEvent.bind(this.layout.earRight, 'mouseenter', () => {\n\t\t\t\tthis.stopAutoScroll();\n\t\t\t\tthis.earRightTimer = setTimeout(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.scrollToRight()\n\t\t\t\t\t},\n\t\t\t\t\t110\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tEvent.bind(this.layout.earRight, 'mouseleave', () => {\n\t\t\t\tclearTimeout(this.earRightTimer);\n\t\t\t\tthis.stopAutoScroll()\n\t\t\t});\n\t\t}\n\n\t\treturn this.layout.earRight;\n\t}\n\n\tscrollToRight(param: number, stop): void\n\t{\n\t\tconst interval = param ? 2 : 20;\n\n\t\tthis.earTimer = setInterval(\n\t\t\t() => {\n\t\t\t\tthis.getColumnsContainer().scrollLeft += 10;\n\t\t\t\tif(param && param <= this.getColumnsContainer().scrollLeft)\n\t\t\t\t{\n\t\t\t\t\t this.stopAutoScroll();\n\t\t\t\t}\n\t\t\t},\n\t\t\tinterval\n\t\t);\n\n\t\tif(stop === 'stop')\n\t\t{\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tthis.stopAutoScroll();\n\t\t\t\t\tthis.getGrid().unlock();\n\t\t\t\t},\n\t\t\t\tparam * 2\n\t\t\t)\n\t\t}\n\t}\n\n\tscrollToLeft(): void\n\t{\n\t\tthis.earTimer = setInterval(\n\t\t\t() => {\n\t\t\t\tthis.getColumnsContainer().scrollLeft -= 10;\n\t\t\t},\n\t\t\t20\n\t\t)\n\t}\n\n\tstopAutoScroll(): void\n\t{\n\t\tclearInterval(this.earTimer);\n\t}\n\n\tgetScroll(): number\n\t{\n\t\treturn this.scroll;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tconst title = this.title ? this.getTitleNode() : null;\n\n\t\tconst sectionContainer = Tag.render`\n\t\t\t<div class='ui-access-rights-section'>\n\t\t\t\t${title}\n\t\t\t\t${this.getMainContainer()}\n\t\t\t</div>\n\t\t`;\n\n\t\tif (this.headSection)\n\t\t{\n\t\t\tDom.addClass(sectionContainer, 'ui-access-rights--head-section')\n\t\t}\n\n\t\tthis.addHeadColumn();\n\n\t\tconst columnsFragment = document.createDocumentFragment();\n\n\t\tconst userGroups = this.grid.getUserGroups() ?? [];\n\t\tfor (let i = 0; i < userGroups.length; i++)\n\t\t{\n\t\t\tconst column = this.getColumn(\n\t\t\t\t{\n\t\t\t\t\theadSection: this.headSection ? this.headSection : null,\n\t\t\t\t\tuserGroup: userGroups[i]\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.columns.push(column);\n\t\t\tDom.append(column.render(), columnsFragment);\n\t\t}\n\n\t\tDom.append(columnsFragment, this.getColumnsContainer());\n\n\t\treturn sectionContainer;\n\t}\n\n\tgetMainContainer(): HTMLElement\n\t{\n\t\tthis.layout.headColumn = Tag.render`<div class='ui-access-rights-section-head'></div>`;\n\t\treturn Tag.render`\n\t\t\t<div class='ui-access-rights-section-container'>\n\t\t\t\t${this.layout.headColumn}\n\t\t\t\t${this.getContentContainer()}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI.AccessRights');\nnamespace.Section = Section;\n"],"names":["EntitySelectorAdapter","constructor","options","show","columnId","accessCodes","targetNode","preselectedItems","code","Object","hasOwn","data","push","entityName","id","events","event","item","dialog","BX","UI","EntitySelector","Dialog","decoder","entitiesIdsDecoder","Type","isFunction","type","entityId","normalizeType","option","name","title","text","avatar","EventEmitter","emit","encoder","entitiesIdsEncoder","Reflection","namespace","Grid","renderTo","buttonPanel","ButtonPanel","layout","container","component","actionSave","ACTION_SAVE","actionDelete","ACTION_DELETE","actionLoad","ACTION_LOAD","mode","MODE","openPopupEvent","popupContainer","additionalSaveParams","loadParams","loader","timer","needToLoadUserGroups","isSaveOnlyChangedRights","useEntitySelectorDialogAsPopup","entitySelectorDialogOptions","expandedGroups","groupElements","changedAccessIds","Map","initData","userGroups","accessRights","isRequested","loadData","bindEvents","subscribe","updateRole","bind","updateAccessVariationRight","updateAccessRight","adjustButtonPanel","addUserGroup","addRoleColumn","removeRoleColumn","toggleGroup","onGetEntityTypes","accessRightsSections","headSection","members","columns","fireEventReset","fireEventRefresh","getButtonPanel","showNotification","Notification","Center","notify","content","position","autoHideDelay","sendActionRequest","setTimeout","blockGrid","needReload","dataToSave","i","length","userGroup","Text","toNumber","ajax","runComponentAction","parameters","then","reloadGrid","Loc","getMessage","unBlockGrid","clearTimeout","waitContainer","getContainer","querySelector","Dom","removeClass","response","errorMessage","errors","message","lock","addClass","getMainContainer","unlock","deleteActionRequest","roleId","ACCESS_RIGHTS","USER_GROUPS","draw","err","console","error","offsetTop","getBoundingClientRect","top","style","getLoader","hide","Loader","target","param","removeColumn","map","targetIndex","indexOf","splice","getData","sections","newColumn","addColumn","scrollToRight","getColumnsContainer","scrollWidth","offsetWidth","actualizeExpandedGroups","index","modifiedItems","querySelectorAll","modifiedRoles","modifiedUsers","modifiedVariables","accessId","access","String","value","switcher","isChecked","deleteIds","forEach","values","selectedValues","addSection","getColumns","getSections","getUserGroups","user","getHeadSection","Section","grid","hint","sectionHint","sectionTitle","rights","getSectionNode","Tag","render","docFragmentSections","document","createDocumentFragment","append","innerHTML","afterRender","adjustEars","onMemberSelect","params","buildOption","state","onMemberUnselect","controls","Main","selectorManagerV2","selectorInstance","keys","entityTypes","USERGROUPS","enableSearch","searchById","addTab","returnItemUrl","getOption","groupId","idx","groupItem","igGroupsExpanded","group","classList","add","remove","includes","dataColumnAttribute","node","bindOptions","hasAttribute","isUndefined","getAttribute","accessItem","entityType","accessCodesResult","isAccessChanged","isModify","changedCode","has","set","delete","processedChanged","filteredAccessRights","filter","Number","found","key","AccessRights","Base","changerOptions","defaultValue","replaceNullValueTo","currentValue","identificator","Math","random","parentContainer","getId","Title","rightId","groupHead","isExpanded","toggleIndicator","encode","prepend","Event","adjustPopupHelper","popupHelper","close","onGroupToggle","cloneNode","body","getPopupHelper","PopupWindowManager","create","autoHide","darkMode","maxWidth","offsetLeft","animation","TYPE","Hint","className","hintNode","hintManager","createInstance","popupParameters","angle","setAttribute","attributeName","attributeHtmlName","attributeInteractivityName","initNode","Member","addToAccessCodes","removeFromAccessCodes","resetNewMembers","getMember","member","membersFragment","counter","validateVariables","reverse","userNode","new","userAvatar","encodeURI","avatarClass","emptyAvatar","getAddUserToRole","adjustPopupUserControl","newMembers","updateMembers","firstKey","toUpperCase","url","toLowerCase","users","groups","departments","sonetgroups","counterUsers","showUserSelectorPopup","getUserPopup","addUserToRole","popupUsers","contentTitle","onTitleClick","activate","adjustSlicker","groupTitleItem","getUserPopupTogglerGroup","footer","footerLink","preventDefault","isDomNode","slicker","titles","contents","contentPadding","padding","offset","closeEsc","onPopupShow","firstActiveNode","onPopupClose","destroy","array","toggler","iconClass","removeButton","itemsSelected","onCustomEvent","bindNode","selectorId","selectedItems","entitySelectorAdapter","Role","column","window","getRole","closest","offRoleEditMode","role","roleInput","keyCode","roleValue","editControl","onRoleEditMode","removeControl","showPopupConfirm","roleControlWrapper","focus","popupConfirm","width","overlay","setButtons","Button","click","getUserGroup","innerText","Changer","getChanger","changer","offChanger","refreshStatus","adjustChanger","toggleChangerHtmlClass","toggleClass","addChangerHtmlClass","removeChangerHtmlClass","Toggler","Switcher","size","checked","handlers","unchecked","toggled","check","getNode","Controller","controller","controllerLink","controllerMenu","popupMenu","getPopupMenu","toggleControllerMenu","menuItems","onclick","accessRightsCopy","assign","accessCodesCopy","Menu","VariableSelector","variables","reset","refresh","getSelected","variablesValue","showVariablesPopup","selected","variable","select","PopupMenu","getMenuWindow","selectedValue","UserGroupTitle","Footer","DefaultFooter","selectAllButton","selectAll","deselectAllButton","deselectAll","getDialog","onItemStatusChange","getContent","toggleSelectButtons","getSelectedItems","getItems","hasClass","deselect","MultiSelector","placeholder","hintTitle","allSelectedCode","showAvatars","compactView","isArray","val","Boolean","tabs","selectedAction","customData","selector","createSelector","height","context","multiple","dropdownMode","searchOptions","allowCreateItem","entities","items","includesSelected","firstItem","slice","isStringFilled","getTitle","showSelector","init","setTargetNode","itemId","some","addedItem","addedId","useSelectedActions","removedItem","removedId","allWithoutRemoved","disableSelectAll","get","currSelectedAction","a","b","aClone","bClone","sort","ColumnItem","dataset","isHidden","hintOptions","Column","section","getItem","defaultParam","toString","resetClassNew","itemsFragment","headColumn","earLeft","earRight","scroll","earTimer","earLeftTimer","earRightTimer","object","scrollLeft","getScroll","getGrid","getColumn","isVariable","addHeadColumn","adjustScroll","getTitleNode","appendChild","isLeftVisible","isRightVisible","round","getContentContainer","getEarLeft","getEarRight","stopAutoScroll","scrollToLeft","stop","interval","setInterval","clearInterval","sectionContainer","columnsFragment"],"mappings":"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"}