@finam/web-ui-kit-components 3.27.3 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/dist/SecurityIcon/SecurityIcon.d.ts +20 -0
- package/dist/SecurityIcon/SecurityIcon.d.ts.map +1 -0
- package/dist/SecurityIcon/SecurityIcon.js +30 -0
- package/dist/SecurityIcon/SecurityIcon.js.map +1 -0
- package/dist/SecurityIcon/SecurityIcon.styles.css +2 -0
- package/dist/SecurityIcon/SecurityIcon.styles.d.ts +5 -0
- package/dist/SecurityIcon/SecurityIcon.styles.d.ts.map +1 -0
- package/dist/SecurityIcon/SecurityIcon.styles.js +16 -0
- package/dist/SecurityIcon/SecurityIcon.styles.js.map +1 -0
- package/dist/SecurityIcon/constants.d.ts +5 -0
- package/dist/SecurityIcon/constants.d.ts.map +1 -0
- package/dist/SecurityIcon/constants.js +5 -0
- package/dist/SecurityIcon/constants.js.map +1 -0
- package/dist/SecurityIcon/index.d.ts +3 -0
- package/dist/SecurityIcon/index.d.ts.map +1 -0
- package/dist/SecurityIcon/index.js +2 -0
- package/dist/SecurityIcon/index.js.map +1 -0
- package/dist/SecurityIcon/types.d.ts +8 -0
- package/dist/SecurityIcon/types.d.ts.map +1 -0
- package/dist/SecurityIcon/types.js +2 -0
- package/dist/SecurityIcon/types.js.map +1 -0
- package/dist/SecurityIcon/utils.d.ts +4 -0
- package/dist/SecurityIcon/utils.d.ts.map +1 -0
- package/dist/SecurityIcon/utils.js +19 -0
- package/dist/SecurityIcon/utils.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
2
|
+
import { Root } from './SecurityIcon.styles.js';
|
|
3
|
+
import type { IconTypeProps } from './types.js';
|
|
4
|
+
export interface Props extends ComponentPropsWithoutRef<typeof Root>, IconTypeProps {
|
|
5
|
+
/** Шаблон URL сервиса иконок, например `https://host/$type/$size/$id$mult.png` */
|
|
6
|
+
urlTemplate?: string;
|
|
7
|
+
/** Готовый URL картинки, имеет приоритет над urlTemplate */
|
|
8
|
+
imgSrc?: string;
|
|
9
|
+
/** Название, используется для alt/title и буквы-заглушки */
|
|
10
|
+
name?: string;
|
|
11
|
+
/** Размер иконки в пикселях */
|
|
12
|
+
size?: number;
|
|
13
|
+
/** Показывать заглушку, если картинка не загрузилась */
|
|
14
|
+
withPlaceholder?: boolean;
|
|
15
|
+
/** Дополнительное содержимое поверх иконки, например бейдж */
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: import("react").MemoExoticComponent<({ className, urlTemplate, imgSrc, name, size, withPlaceholder, children, type, iconId, style, ...props }: Props) => import("react/jsx-runtime").JSX.Element | null>;
|
|
19
|
+
export default _default;
|
|
20
|
+
//# sourceMappingURL=SecurityIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityIcon.d.ts","sourceRoot":"","sources":["../../src/SecurityIcon/SecurityIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAG5E,OAAO,EAAO,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,KAAM,SAAQ,wBAAwB,CAAC,OAAO,IAAI,CAAC,EAAE,aAAa;IACjF,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;uKAcE,KAAK;AA+CR,wBAAkC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { memo, useState } from 'react';
|
|
4
|
+
import classNames from 'clsx';
|
|
5
|
+
import Typography from '../Typography/index.js';
|
|
6
|
+
import { Img, Root } from './SecurityIcon.styles.js';
|
|
7
|
+
import { DEFAULT_SIZE, LARGE_PLACEHOLDER_SIZE } from './constants.js';
|
|
8
|
+
import { buildIconUrl, resolveIconSize } from './utils.js';
|
|
9
|
+
const SecurityIcon = (_a) => {
|
|
10
|
+
var { className, urlTemplate, imgSrc, name, size = DEFAULT_SIZE, withPlaceholder = true, children, type, iconId, style } = _a, props = __rest(_a, ["className", "urlTemplate", "imgSrc", "name", "size", "withPlaceholder", "children", "type", "iconId", "style"]);
|
|
11
|
+
const [imageLoaded, setImageLoaded] = useState(false);
|
|
12
|
+
const [imageLoadError, setImageLoadError] = useState(false);
|
|
13
|
+
const handleImgLoad = () => {
|
|
14
|
+
setImageLoaded(true);
|
|
15
|
+
};
|
|
16
|
+
const handleImgError = () => {
|
|
17
|
+
setImageLoadError(true);
|
|
18
|
+
};
|
|
19
|
+
if (!withPlaceholder && imageLoadError) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const src = imgSrc ||
|
|
23
|
+
(urlTemplate && type && iconId != null
|
|
24
|
+
? buildIconUrl(urlTemplate, type, iconId, resolveIconSize(size))
|
|
25
|
+
: undefined);
|
|
26
|
+
const imageAvailable = Boolean(src) && !imageLoadError;
|
|
27
|
+
return (_jsxs(Root, Object.assign({}, props, { style: Object.assign({ width: `${size}px`, height: `${size}px` }, style), className: classNames(className, { imageLoaded: imageAvailable && imageLoaded }), children: [children, imageAvailable ? (_jsx(Img, { className: classNames({ imageLoaded, fromImage: Boolean(imgSrc) }), src: src, alt: name, title: name, onLoad: handleImgLoad, onError: handleImgError })) : (_jsx(Typography, { variant: size < LARGE_PLACEHOLDER_SIZE ? 'caption12' : 'body16', children: name === null || name === void 0 ? void 0 : name.charAt(0) }))] })));
|
|
28
|
+
};
|
|
29
|
+
export default memo(SecurityIcon);
|
|
30
|
+
//# sourceMappingURL=SecurityIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityIcon.js","sourceRoot":"","sources":["../../src/SecurityIcon/SecurityIcon.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAuC,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,UAAU,MAAM,MAAM,CAAC;AAC9B,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAiB3D,MAAM,YAAY,GAAG,CAAC,EAYd,EAAE,EAAE;QAZU,EACpB,SAAS,EACT,WAAW,EACX,MAAM,EACN,IAAI,EACJ,IAAI,GAAG,YAAY,EACnB,eAAe,GAAG,IAAI,EACtB,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,OAEC,EADH,KAAK,cAXY,gHAYrB,CADS;IAER,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAI,CAAC,eAAe,IAAI,cAAc,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,MAAM;QAChB,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;YACpC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;IAEvD,OAAO,CACL,MAAC,IAAI,oBACC,KAAK,IACT,KAAK,kBAAI,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,IAAK,KAAK,GAC1D,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,cAAc,IAAI,WAAW,EAAE,CAAC,aAE/E,QAAQ,EACR,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,GAAG,IACF,SAAS,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAClE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,GACvB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IAAC,OAAO,EAAE,IAAI,GAAG,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,YACxE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,GACL,CACd,KACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.ui_components_r1fjyzu5{flex-shrink:0;display:flex;justify-content:center;align-items:center;position:relative;background:var(--ui-colors-bg-base);background-size:cover;background-repeat:no-repeat;overflow:visible;}.ui_components_r1fjyzu5.imageLoaded{background:transparent;border-radius:0;}
|
|
2
|
+
.ui_components_i11iqzt2{width:100%;height:100%;visibility:hidden;}.ui_components_i11iqzt2.imageLoaded{visibility:visible;}.ui_components_i11iqzt2.fromImage{border-radius:50%;object-fit:cover;}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const Root: {
|
|
2
|
+
__wyw_meta: unknown;
|
|
3
|
+
} & import("react").ForwardRefExoticComponent<import("../Avatar/Avatar.js").Props & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export declare const Img: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLImageElement> & import("react").ImgHTMLAttributes<HTMLImageElement> & Record<never, unknown>>;
|
|
5
|
+
//# sourceMappingURL=SecurityIcon.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityIcon.styles.d.ts","sourceRoot":"","sources":["../../src/SecurityIcon/SecurityIcon.styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,IAAI;;kIAehB,CAAC;AAEF,eAAO,MAAM,GAAG,4KAaf,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { styled } from '@linaria/react';
|
|
2
|
+
import Avatar from '../Avatar/index.js';
|
|
3
|
+
const _exp = () => (Avatar);
|
|
4
|
+
export const Root = /*#__PURE__*/styled(_exp())({
|
|
5
|
+
name: "Root",
|
|
6
|
+
class: "ui_components_r1fjyzu5",
|
|
7
|
+
propsAsIs: true
|
|
8
|
+
});
|
|
9
|
+
export const Img = /*#__PURE__*/styled('img')({
|
|
10
|
+
name: "Img",
|
|
11
|
+
class: "ui_components_i11iqzt2",
|
|
12
|
+
propsAsIs: false
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=SecurityIcon.styles.js.map
|
|
15
|
+
|
|
16
|
+
import "./SecurityIcon.styles.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityIcon.styles.js","sourceRoot":"","sources":["../../src/SecurityIcon/SecurityIcon.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;;;;;gBAMlB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;;;;;;;;;CASpD,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;CAa5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/SecurityIcon/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,UAAuB,CAAC;AAEpD,eAAO,MAAM,YAAY,QAAqB,CAAC;AAE/C,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,eAAO,MAAM,sBAAsB,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/SecurityIcon/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SecurityIcon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SecurityIcon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/SecurityIcon/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/SecurityIcon/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SecurityIconType } from './types.js';
|
|
2
|
+
export declare const resolveIconSize: (size: number) => number;
|
|
3
|
+
export declare const buildIconUrl: (urlTemplate: string, type: SecurityIconType, id: string | number, size: number) => string;
|
|
4
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/SecurityIcon/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAenD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,WAG3C,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,aAAa,MAAM,EACnB,MAAM,gBAAgB,EACtB,IAAI,MAAM,GAAG,MAAM,EACnB,MAAM,MAAM,WAOb,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AVAILABLE_SIZES, MAX_PIXEL_RATIO } from './constants.js';
|
|
2
|
+
const getPixelRatioSuffix = () => {
|
|
3
|
+
var _a;
|
|
4
|
+
if (typeof window === 'undefined') {
|
|
5
|
+
return '';
|
|
6
|
+
}
|
|
7
|
+
const pixelRatio = Math.min(MAX_PIXEL_RATIO, Math.ceil(Math.max(1, (_a = window.devicePixelRatio) !== null && _a !== void 0 ? _a : 1)));
|
|
8
|
+
return pixelRatio > 1 ? `@${pixelRatio}x` : '';
|
|
9
|
+
};
|
|
10
|
+
export const resolveIconSize = (size) => {
|
|
11
|
+
var _a;
|
|
12
|
+
return ((_a = AVAILABLE_SIZES.find(availableSize => availableSize >= size)) !== null && _a !== void 0 ? _a : AVAILABLE_SIZES[AVAILABLE_SIZES.length - 1]);
|
|
13
|
+
};
|
|
14
|
+
export const buildIconUrl = (urlTemplate, type, id, size) => (urlTemplate
|
|
15
|
+
.replace('$type', type)
|
|
16
|
+
.replace('$size', size.toString())
|
|
17
|
+
.replace('$id', typeof id === 'number' ? id.toString() : id)
|
|
18
|
+
.replace('$mult', getPixelRatioSuffix()));
|
|
19
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/SecurityIcon/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGlE,MAAM,mBAAmB,GAAG,GAAG,EAAE;;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,eAAe,EACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CACrD,CAAC;IAEF,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;;IAAC,OAAA,CAC/C,MAAA,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,mCAC5D,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAC5C,CAAA;CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,WAAmB,EACnB,IAAsB,EACtB,EAAmB,EACnB,IAAY,EACZ,EAAE,CAAC,CACH,WAAW;KACR,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;KACtB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAC3C,CAAC"}
|