This commit is contained in:
root
2025-11-13 19:52:28 +03:00
parent 8aeeb05b7d
commit 807dec3b6c
4646 changed files with 163445 additions and 626017 deletions

View File

@@ -1,4 +1,4 @@
<?
<?php
use Bitrix\Main\Loader;
use Bitrix\UI\EntitySelector\Configuration;
@@ -20,10 +20,12 @@ return [
'main.loader',
'ui.fonts.opensans',
'ui.design-tokens',
'ui.icon-set.api.core',
'ui.icon-set.outline',
],
'post_rel' => $extensions,
'settings' => [
'extensions' => $extensions
],
'skip_core' => false,
];
];

View File

@@ -201,9 +201,12 @@
}
.ui-selector-tab-icon {
width: 23px;
min-width: 23px;
height: 23px;
--icon-size: 23px;
--ui-icon-set__icon-size: var(--icon-size);
--ui-icon-set__icon-color: #ABB1B8;
width: var(--icon-size);
min-width: var(--icon-size);
height: var(--icon-size);
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='23' height='23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.479 4.062a.3.3 0 00-.512.212v4.455H4.249a.3.3 0 00-.3.3v4.879a.3.3 0 00.3.3h7.718v4.455a.3.3 0 00.512.212l7.195-7.194a.3.3 0 000-.425l-7.195-7.194z' fill='%23ABB1B8'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: center;
@@ -212,6 +215,7 @@
}
.ui-selector-tab-label-active .ui-selector-tab-icon {
--ui-icon-set__icon-color: var(--ui-color-base-white-fixed);
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='23' height='23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.479 4.062a.3.3 0 00-.512.212v4.455H4.249a.3.3 0 00-.3.3v4.879a.3.3 0 00.3.3h7.718v4.455a.3.3 0 00.512.212l7.195-7.194a.3.3 0 000-.425l-7.195-7.194z' fill='%23FFF'/%3E%3C/svg%3E");
}

View File

@@ -1,7 +1,7 @@
/* eslint-disable */
this.BX = this.BX || {};
this.BX.UI = this.BX.UI || {};
(function (exports,main_popup,main_core_collections,main_core_events,main_core,main_loader) {
(function (exports,main_popup,main_core_collections,ui_iconSet_outline,ui_iconSet_api_core,main_core_events,main_core,main_loader) {
'use strict';
let ItemNodeComparator = /*#__PURE__*/function () {
@@ -3394,12 +3394,17 @@ this.BX.UI = this.BX.UI || {};
_t2,
_t3,
_t4;
function _classPrivateMethodInitSpec$2(obj, privateSet) { _checkPrivateRedeclaration$2(obj, privateSet); privateSet.add(obj); }
function _checkPrivateRedeclaration$2(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
function _classPrivateMethodGet$2(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
var _isIconSet = /*#__PURE__*/new WeakSet();
let DefaultStub = /*#__PURE__*/function (_BaseStub) {
babelHelpers.inherits(DefaultStub, _BaseStub);
function DefaultStub(tab, options) {
var _this;
babelHelpers.classCallCheck(this, DefaultStub);
_this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(DefaultStub).call(this, tab, options));
_classPrivateMethodInitSpec$2(babelHelpers.assertThisInitialized(_this), _isIconSet);
babelHelpers.defineProperty(babelHelpers.assertThisInitialized(_this), "content", null);
return _this;
}
@@ -3414,7 +3419,7 @@ this.BX.UI = this.BX.UI || {};
if (main_core.Type.isNumber(this.getOption('iconOpacity'))) {
iconOpacity = Math.min(100, Math.max(0, this.getOption('iconOpacity')));
}
const iconStyle = main_core.Type.isStringFilled(icon) ? `style="background-image: url('${encodeUrl(icon)}'); opacity: ${iconOpacity / 100};"` : '';
const iconStyle = main_core.Type.isStringFilled(icon) && !_classPrivateMethodGet$2(this, _isIconSet, _isIconSet2).call(this, icon) ? `style="background-image: url('${encodeUrl(icon)}'); opacity: ${iconOpacity / 100};"` : '';
const arrow = this.getOption('arrow', false) && this.getTab().getDialog().getActiveFooter() !== null;
return main_core.Tag.render(_t$1 || (_t$1 = _$1`
<div class="ui-selector-tab-default-stub">
@@ -3423,7 +3428,6 @@ this.BX.UI = this.BX.UI || {};
<div class="ui-selector-tab-default-stub-title">${0}</div>
${0}
</div>
${0}
</div>
`), iconStyle, title, subtitle ? main_core.Tag.render(_t2 || (_t2 = _$1`<div class="ui-selector-tab-default-stub-subtitle">${0}</div>`), subtitle) : '', arrow ? main_core.Tag.render(_t3 || (_t3 = _$1`<div class="ui-selector-tab-default-stub-arrow"></div>`)) : '');
@@ -3448,6 +3452,16 @@ this.BX.UI = this.BX.UI || {};
}]);
return DefaultStub;
}(BaseStub);
function _isIconSet2(icon) {
try {
new ui_iconSet_api_core.Icon({
icon
});
return true;
} catch {
return false;
}
}
let _$2 = t => t,
_t$2;
@@ -3982,7 +3996,15 @@ this.BX.UI = this.BX.UI || {};
main_core.Dom.style(this.getTitleContainer(), 'color', this.getPropertyByCurrentState('textColor'));
main_core.Dom.style(this.getLabelContainer(), 'background-color', this.getPropertyByCurrentState('bgColor'));
const icon = this.getPropertyByCurrentState('icon');
main_core.Dom.style(this.getIconContainer(), 'background-image', icon ? `url('${encodeUrl(icon)}')` : null);
main_core.Dom.clean(this.getIconContainer());
try {
main_core.Dom.append(new ui_iconSet_api_core.Icon({
icon
}).render(), this.getIconContainer());
main_core.Dom.style(this.getIconContainer(), 'background-image', 'none');
} catch {
main_core.Dom.style(this.getIconContainer(), 'background-image', icon ? `url('${encodeUrl(icon)}')` : null);
}
const titleNode = this.getTitleNode();
if (titleNode) {
this.getTitleNode().renderTo(this.getTitleContainer());
@@ -4145,8 +4167,8 @@ this.BX.UI = this.BX.UI || {};
return Tab;
}();
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration$2(obj, privateMap); privateMap.set(obj, value); }
function _checkPrivateRedeclaration$2(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration$3(obj, privateMap); privateMap.set(obj, value); }
function _checkPrivateRedeclaration$3(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
/**
* @namespace BX.UI.Uploader
@@ -4181,8 +4203,8 @@ this.BX.UI = this.BX.UI || {};
}(main_core.BaseError);
let _Symbol$iterator;
function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$3(obj, privateMap); privateMap.set(obj, value); }
function _checkPrivateRedeclaration$3(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$4(obj, privateMap); privateMap.set(obj, value); }
function _checkPrivateRedeclaration$4(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
var _errors = /*#__PURE__*/new WeakMap();
_Symbol$iterator = Symbol.iterator;
/**
@@ -4494,6 +4516,9 @@ this.BX.UI = this.BX.UI || {};
value: function setDeselectable(flag) {
if (main_core.Type.isBoolean(flag)) {
this.deselectable = flag;
if (this.isRendered()) {
main_core.Dom.toggleClass(this.getContainer(), 'ui-tag-selector-tag-readonly', !flag);
}
}
}
}, {
@@ -8847,5 +8872,5 @@ this.BX.UI = this.BX.UI || {};
exports.DefaultStub = DefaultStub;
exports.EntityError = EntityError;
}((this.BX.UI.EntitySelector = this.BX.UI.EntitySelector || {}),BX.Main,BX.Collections,BX.Event,BX,BX));
}((this.BX.UI.EntitySelector = this.BX.UI.EntitySelector || {}),BX.Main,BX.Collections,BX,BX.UI.IconSet,BX.Event,BX,BX));
//# sourceMappingURL=entity-selector.bundle.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -65,9 +65,12 @@
}
.ui-selector-tab-icon {
width: 23px;
min-width: 23px;
height: 23px;
--icon-size: 23px;
--ui-icon-set__icon-size: var(--icon-size);
--ui-icon-set__icon-color: #ABB1B8;
width: var(--icon-size);
min-width: var(--icon-size);
height: var(--icon-size);
background-image: url(images/tab-icon.svg);
background-repeat: no-repeat;
background-position: center;
@@ -76,6 +79,7 @@
}
.ui-selector-tab-label-active .ui-selector-tab-icon {
--ui-icon-set__icon-color: var(--ui-color-base-white-fixed);
background-image: url(images/tab-icon-selected.svg);
}

View File

@@ -1,4 +1,6 @@
import { Tag, Type, Loc } from 'main.core';
import { Icon } from 'ui.icon-set.api.core';
import type Tab from '../tabs/tab';
import BaseStub from './base-stub';
import encodeUrl from '../../common/encode-url';
@@ -25,10 +27,9 @@ export default class DefaultStub extends BaseStub
iconOpacity = Math.min(100, Math.max(0, this.getOption('iconOpacity')));
}
const iconStyle =
Type.isStringFilled(icon)
? `style="background-image: url('${encodeUrl(icon)}'); opacity: ${iconOpacity / 100};"`
: ''
const iconStyle = Type.isStringFilled(icon) && !this.#isIconSet(icon)
? `style="background-image: url('${encodeUrl(icon)}'); opacity: ${iconOpacity / 100};"`
: ''
;
const arrow = this.getOption('arrow', false) && this.getTab().getDialog().getActiveFooter() !== null;
@@ -38,19 +39,28 @@ export default class DefaultStub extends BaseStub
<div class="ui-selector-tab-default-stub-icon" ${iconStyle}></div>
<div class="ui-selector-tab-default-stub-titles">
<div class="ui-selector-tab-default-stub-title">${title}</div>
${
subtitle ?
Tag.render`<div class="ui-selector-tab-default-stub-subtitle">${subtitle}</div>`
: ''
}
${subtitle ? Tag.render`<div class="ui-selector-tab-default-stub-subtitle">${subtitle}</div>` : ''}
</div>
${arrow ? Tag.render`<div class="ui-selector-tab-default-stub-arrow"></div>` : ''}
</div>
`;
});
}
#isIconSet(icon: string): boolean
{
try
{
new Icon({ icon });
return true;
}
catch
{
return false;
}
}
getDefaultTitle(): string
{
const titleNode = this.getTab().getTitleNode();

View File

@@ -1,4 +1,7 @@
import { Type, Tag, Dom, Cache, Reflection } from 'main.core';
import { Icon } from 'ui.icon-set.api.core';
import 'ui.icon-set.outline';
import ItemNode from '../../item/item-node';
import Dialog from '../dialog';
import BaseStub from './base-stub';
@@ -449,7 +452,16 @@ export default class Tab
Dom.style(this.getLabelContainer(), 'background-color', this.getPropertyByCurrentState('bgColor'));
const icon = this.getPropertyByCurrentState('icon');
Dom.style(this.getIconContainer(), 'background-image', icon ? `url('${encodeUrl(icon)}')` : null);
Dom.clean(this.getIconContainer());
try
{
Dom.append(new Icon({ icon }).render(), this.getIconContainer());
Dom.style(this.getIconContainer(), 'background-image', 'none');
}
catch
{
Dom.style(this.getIconContainer(), 'background-image', icon ? `url('${encodeUrl(icon)}')` : null);
}
const titleNode = this.getTitleNode();
if (titleNode)

View File

@@ -287,6 +287,11 @@ export default class TagItem
if (Type.isBoolean(flag))
{
this.deselectable = flag;
if (this.isRendered())
{
Dom.toggleClass(this.getContainer(), 'ui-tag-selector-tag-readonly', !flag);
}
}
}