@redneckz/wildless-cms-uni-blocks 0.14.846 → 0.14.850
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/bundle/bundle.umd.js +22 -74
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/Header/HeaderChatBotButton.d.ts +0 -1
- package/bundle/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
- package/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
- package/bundle/hooks/useAspects/useAspects.d.ts +1 -1
- package/dist/components/Header/HeaderChatBotButton.d.ts +0 -1
- package/dist/components/Header/HeaderChatBotButton.js +15 -4
- package/dist/components/Header/HeaderChatBotButton.js.map +1 -1
- package/dist/components/Header/HeaderSubMenu.js +1 -1
- package/dist/components/Header/HeaderSubMenu.js.map +1 -1
- package/dist/components/Header/HeaderTop.js +1 -1
- package/dist/components/Header/HeaderTop.js.map +1 -1
- package/dist/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
- package/dist/hooks/useAspects/aspects/forwardQuery.js +1 -1
- package/dist/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
- package/dist/hooks/useAspects/handleAspects.d.ts +1 -1
- package/dist/hooks/useAspects/handleAspects.js +5 -2
- package/dist/hooks/useAspects/handleAspects.js.map +1 -1
- package/dist/hooks/useAspects/useAspects.d.ts +1 -1
- package/dist/retail/utils/renderStep.js +3 -1
- package/dist/retail/utils/renderStep.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Header/HeaderChatBotButton.d.ts +0 -1
- package/lib/components/Header/HeaderChatBotButton.js +15 -4
- package/lib/components/Header/HeaderChatBotButton.js.map +1 -1
- package/lib/components/Header/HeaderSubMenu.js +1 -1
- package/lib/components/Header/HeaderSubMenu.js.map +1 -1
- package/lib/components/Header/HeaderTop.js +1 -1
- package/lib/components/Header/HeaderTop.js.map +1 -1
- package/lib/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
- package/lib/hooks/useAspects/aspects/forwardQuery.js +1 -1
- package/lib/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
- package/lib/hooks/useAspects/handleAspects.d.ts +1 -1
- package/lib/hooks/useAspects/handleAspects.js +5 -2
- package/lib/hooks/useAspects/handleAspects.js.map +1 -1
- package/lib/hooks/useAspects/useAspects.d.ts +1 -1
- package/lib/retail/utils/renderStep.js +3 -1
- package/lib/retail/utils/renderStep.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +22 -74
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/Header/HeaderChatBotButton.d.ts +0 -1
- package/mobile/bundle/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
- package/mobile/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
- package/mobile/bundle/hooks/useAspects/useAspects.d.ts +1 -1
- package/mobile/dist/components/Header/HeaderChatBotButton.d.ts +0 -1
- package/mobile/dist/components/Header/HeaderChatBotButton.js +15 -4
- package/mobile/dist/components/Header/HeaderChatBotButton.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSubMenu.js +1 -1
- package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderTop.js +1 -1
- package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
- package/mobile/dist/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
- package/mobile/dist/hooks/useAspects/aspects/forwardQuery.js +1 -1
- package/mobile/dist/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
- package/mobile/dist/hooks/useAspects/handleAspects.d.ts +1 -1
- package/mobile/dist/hooks/useAspects/handleAspects.js +5 -2
- package/mobile/dist/hooks/useAspects/handleAspects.js.map +1 -1
- package/mobile/dist/hooks/useAspects/useAspects.d.ts +1 -1
- package/mobile/dist/retail/utils/renderStep.js +3 -1
- package/mobile/dist/retail/utils/renderStep.js.map +1 -1
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/Header/HeaderChatBotButton.d.ts +0 -1
- package/mobile/lib/components/Header/HeaderChatBotButton.js +15 -4
- package/mobile/lib/components/Header/HeaderChatBotButton.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSubMenu.js +1 -1
- package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderTop.js +1 -1
- package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
- package/mobile/lib/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
- package/mobile/lib/hooks/useAspects/aspects/forwardQuery.js +1 -1
- package/mobile/lib/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
- package/mobile/lib/hooks/useAspects/handleAspects.d.ts +1 -1
- package/mobile/lib/hooks/useAspects/handleAspects.js +5 -2
- package/mobile/lib/hooks/useAspects/handleAspects.js.map +1 -1
- package/mobile/lib/hooks/useAspects/useAspects.d.ts +1 -1
- package/mobile/lib/retail/utils/renderStep.js +3 -1
- package/mobile/lib/retail/utils/renderStep.js.map +1 -1
- package/mobile/src/components/Header/HeaderChatBotButton.tsx +18 -12
- package/mobile/src/components/Header/HeaderSubMenu.tsx +0 -1
- package/mobile/src/components/Header/HeaderTop.tsx +1 -6
- package/mobile/src/hooks/useAspects/aspects/forwardQuery.ts +1 -1
- package/mobile/src/hooks/useAspects/handleAspects.ts +6 -2
- package/mobile/src/hooks/useAspects/useAspects.ts +1 -1
- package/mobile/src/retail/utils/renderStep.tsx +3 -1
- package/package.json +1 -1
- package/src/components/Header/HeaderChatBotButton.tsx +18 -12
- package/src/components/Header/HeaderSubMenu.tsx +0 -1
- package/src/components/Header/HeaderTop.tsx +1 -6
- package/src/hooks/useAspects/aspects/forwardQuery.ts +1 -1
- package/src/hooks/useAspects/handleAspects.ts +6 -2
- package/src/hooks/useAspects/useAspects.ts +1 -1
- package/src/retail/utils/renderStep.tsx +3 -1
- package/bundle/components/Header/useChatBot.d.ts +0 -5
- package/dist/components/Header/useChatBot.d.ts +0 -5
- package/dist/components/Header/useChatBot.js +0 -61
- package/dist/components/Header/useChatBot.js.map +0 -1
- package/lib/components/Header/useChatBot.d.ts +0 -5
- package/lib/components/Header/useChatBot.js +0 -58
- package/lib/components/Header/useChatBot.js.map +0 -1
- package/mobile/bundle/components/Header/useChatBot.d.ts +0 -5
- package/mobile/dist/components/Header/useChatBot.d.ts +0 -5
- package/mobile/dist/components/Header/useChatBot.js +0 -61
- package/mobile/dist/components/Header/useChatBot.js.map +0 -1
- package/mobile/lib/components/Header/useChatBot.d.ts +0 -5
- package/mobile/lib/components/Header/useChatBot.js +0 -58
- package/mobile/lib/components/Header/useChatBot.js.map +0 -1
- package/mobile/src/components/Header/useChatBot.ts +0 -86
- package/src/components/Header/useChatBot.ts +0 -86
|
@@ -9,7 +9,9 @@ export const renderStep = ({ sections, field, step, params, }) => sections?.map(
|
|
|
9
9
|
const cleanElements = [
|
|
10
10
|
!checkCondition({ condition }, getValue(field)) ? renderTitle(title) : null,
|
|
11
11
|
...renderInputs({ field, inputs, params }),
|
|
12
|
-
]
|
|
12
|
+
]
|
|
13
|
+
.filter(Boolean)
|
|
14
|
+
.map((_, j) => ({ ..._, key: _.key ?? `elem-${j}` }));
|
|
13
15
|
return cleanElements.length ? (_jsx("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: cleanElements }, `section-${i}`)) : null;
|
|
14
16
|
});
|
|
15
17
|
const getValue = (field) => (name) => field(name)?.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderStep.js","sourceRoot":"","sources":["../../../src/retail/utils/renderStep.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4C,EACpE,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAM,GACmB,EAAE,EAAE,CAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3E,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC3C,
|
|
1
|
+
{"version":3,"file":"renderStep.js","sourceRoot":"","sources":["../../../src/retail/utils/renderStep.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4C,EACpE,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAM,GACmB,EAAE,EAAE,CAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3E,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC3C;SACE,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAExD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC5B,cAA0B,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,YACnF,aAAa,IADN,WAAW,CAAC,EAAE,CAElB,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC;AAEL,MAAM,QAAQ,GACZ,CAAC,KAAyC,EAAY,EAAE,CACxD,CAAC,IAAI,EAAE,EAAE,CACP,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
|
+
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
4
|
+
import { useAspects } from '../../hooks/useAspects/useAspects';
|
|
2
5
|
import { type BlockVersion } from '../../model/BlockVersion';
|
|
3
6
|
import { type ComponentType } from '../../model/ComponentType';
|
|
4
7
|
import { type IconVersion } from '../../model/IconVersion';
|
|
5
8
|
import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
|
|
6
9
|
import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
|
|
7
|
-
|
|
10
|
+
|
|
11
|
+
const CHAT_BOT_ASPECT_NAME = 'openChatBot';
|
|
8
12
|
|
|
9
13
|
interface HeaderChatBotButtonProps extends ComponentType {
|
|
10
14
|
iconVersion?: IconVersion;
|
|
11
|
-
chat?: string;
|
|
12
15
|
onClick?: (ev: PreventableEventWithTarget) => void;
|
|
13
16
|
ariaLabel?: string;
|
|
14
17
|
version?: BlockVersion;
|
|
@@ -16,26 +19,29 @@ interface HeaderChatBotButtonProps extends ComponentType {
|
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
export const HeaderChatBotButton = JSX<HeaderChatBotButtonProps>(
|
|
19
|
-
({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
({ iconVersion, className, ariaLabel = 'Чат', version, buttonSize = 'large' }) => {
|
|
23
|
+
const [isLoading, { setTrue: startLoad, setFalse: endLoad }] = useBool(false);
|
|
24
|
+
const aspects = useAspects();
|
|
25
|
+
|
|
26
|
+
const handleClick = useCallback((ev: PreventableEventWithTarget) => {
|
|
27
|
+
const openChatBot = aspects[CHAT_BOT_ASPECT_NAME];
|
|
28
|
+
if (openChatBot) {
|
|
29
|
+
startLoad();
|
|
30
|
+
openChatBot(ev).finally(endLoad);
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
28
33
|
|
|
29
34
|
return (
|
|
30
35
|
<HeaderSecondaryMenuButton
|
|
31
36
|
className={className}
|
|
32
37
|
image={{ icon: 'ChatBotIcon', iconVersion }}
|
|
33
38
|
ariaLabel={ariaLabel}
|
|
34
|
-
onClick={
|
|
39
|
+
onClick={handleClick}
|
|
35
40
|
buttonSize={buttonSize}
|
|
36
41
|
isGrayBg={true}
|
|
37
42
|
version={version}
|
|
38
43
|
isLoading={isLoading}
|
|
44
|
+
disabled={isLoading}
|
|
39
45
|
dataTestId="chat icon"
|
|
40
46
|
/>
|
|
41
47
|
);
|
|
@@ -51,12 +51,7 @@ export const HeaderTop = JSX<HeaderTopProps>(
|
|
|
51
51
|
)}
|
|
52
52
|
<div className="flex gap-lg items-center">
|
|
53
53
|
{projectSettings.CHAT_BOT ? (
|
|
54
|
-
<HeaderChatBotButton
|
|
55
|
-
version={version}
|
|
56
|
-
iconVersion={iconVersion}
|
|
57
|
-
chat={projectSettings.CHAT_BOT}
|
|
58
|
-
buttonSize="medium"
|
|
59
|
-
/>
|
|
54
|
+
<HeaderChatBotButton version={version} iconVersion={iconVersion} buttonSize="medium" />
|
|
60
55
|
) : null}
|
|
61
56
|
<InternetBankButton version={version} {...internetBankButton} />
|
|
62
57
|
</div>
|
|
@@ -4,7 +4,7 @@ import { type PreventableEventWithTarget } from '../../../ui-kit/PreventableEven
|
|
|
4
4
|
import { adjustSessionQuery } from '../../../utils/adjustSessionQuery';
|
|
5
5
|
import { isURL } from '../../../utils/url';
|
|
6
6
|
|
|
7
|
-
export const forwardQuery = (ev: PreventableEventWithTarget) => {
|
|
7
|
+
export const forwardQuery = async (ev: PreventableEventWithTarget) => {
|
|
8
8
|
const anchor = (ev.target as Element | null)?.closest('a');
|
|
9
9
|
const navigator = locationNavigator();
|
|
10
10
|
|
|
@@ -7,8 +7,12 @@ export type HandleAspectsProps = {
|
|
|
7
7
|
ev: PreventableEventWithTarget;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export const handleAspects = ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
|
|
10
|
+
export const handleAspects = async ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
|
|
11
11
|
for (const { aspectName, params } of aspectsAttributes ?? []) {
|
|
12
|
-
aspects[aspectName ?? '']
|
|
12
|
+
const aspectFn = aspects[aspectName ?? ''];
|
|
13
|
+
|
|
14
|
+
if (aspectFn) {
|
|
15
|
+
await aspectFn(ev, params);
|
|
16
|
+
}
|
|
13
17
|
}
|
|
14
18
|
};
|
|
@@ -14,7 +14,7 @@ export interface AspectsAttribute {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export interface Aspects {
|
|
17
|
-
[key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => void
|
|
17
|
+
[key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export function useAspects(): Aspects {
|
|
@@ -25,7 +25,9 @@ export const renderStep = <SectionsProps extends SectionsRetailProps>({
|
|
|
25
25
|
const cleanElements = [
|
|
26
26
|
!checkCondition({ condition }, getValue(field)) ? renderTitle(title) : null,
|
|
27
27
|
...renderInputs({ field, inputs, params }),
|
|
28
|
-
]
|
|
28
|
+
]
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.map((_, j) => ({ ..._, key: _.key ?? `elem-${j}` }));
|
|
29
31
|
|
|
30
32
|
return cleanElements.length ? (
|
|
31
33
|
<div key={`section-${i}`} className={style(inputColumnStyles(columns), 'grid gap-x-m')}>
|
package/package.json
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
|
+
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
4
|
+
import { useAspects } from '../../hooks/useAspects/useAspects';
|
|
2
5
|
import { type BlockVersion } from '../../model/BlockVersion';
|
|
3
6
|
import { type ComponentType } from '../../model/ComponentType';
|
|
4
7
|
import { type IconVersion } from '../../model/IconVersion';
|
|
5
8
|
import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
|
|
6
9
|
import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
|
|
7
|
-
|
|
10
|
+
|
|
11
|
+
const CHAT_BOT_ASPECT_NAME = 'openChatBot';
|
|
8
12
|
|
|
9
13
|
interface HeaderChatBotButtonProps extends ComponentType {
|
|
10
14
|
iconVersion?: IconVersion;
|
|
11
|
-
chat?: string;
|
|
12
15
|
onClick?: (ev: PreventableEventWithTarget) => void;
|
|
13
16
|
ariaLabel?: string;
|
|
14
17
|
version?: BlockVersion;
|
|
@@ -16,26 +19,29 @@ interface HeaderChatBotButtonProps extends ComponentType {
|
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
export const HeaderChatBotButton = JSX<HeaderChatBotButtonProps>(
|
|
19
|
-
({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
({ iconVersion, className, ariaLabel = 'Чат', version, buttonSize = 'large' }) => {
|
|
23
|
+
const [isLoading, { setTrue: startLoad, setFalse: endLoad }] = useBool(false);
|
|
24
|
+
const aspects = useAspects();
|
|
25
|
+
|
|
26
|
+
const handleClick = useCallback((ev: PreventableEventWithTarget) => {
|
|
27
|
+
const openChatBot = aspects[CHAT_BOT_ASPECT_NAME];
|
|
28
|
+
if (openChatBot) {
|
|
29
|
+
startLoad();
|
|
30
|
+
openChatBot(ev).finally(endLoad);
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
28
33
|
|
|
29
34
|
return (
|
|
30
35
|
<HeaderSecondaryMenuButton
|
|
31
36
|
className={className}
|
|
32
37
|
image={{ icon: 'ChatBotIcon', iconVersion }}
|
|
33
38
|
ariaLabel={ariaLabel}
|
|
34
|
-
onClick={
|
|
39
|
+
onClick={handleClick}
|
|
35
40
|
buttonSize={buttonSize}
|
|
36
41
|
isGrayBg={true}
|
|
37
42
|
version={version}
|
|
38
43
|
isLoading={isLoading}
|
|
44
|
+
disabled={isLoading}
|
|
39
45
|
dataTestId="chat icon"
|
|
40
46
|
/>
|
|
41
47
|
);
|
|
@@ -51,12 +51,7 @@ export const HeaderTop = JSX<HeaderTopProps>(
|
|
|
51
51
|
)}
|
|
52
52
|
<div className="flex gap-lg items-center">
|
|
53
53
|
{projectSettings.CHAT_BOT ? (
|
|
54
|
-
<HeaderChatBotButton
|
|
55
|
-
version={version}
|
|
56
|
-
iconVersion={iconVersion}
|
|
57
|
-
chat={projectSettings.CHAT_BOT}
|
|
58
|
-
buttonSize="medium"
|
|
59
|
-
/>
|
|
54
|
+
<HeaderChatBotButton version={version} iconVersion={iconVersion} buttonSize="medium" />
|
|
60
55
|
) : null}
|
|
61
56
|
<InternetBankButton version={version} {...internetBankButton} />
|
|
62
57
|
</div>
|
|
@@ -4,7 +4,7 @@ import { type PreventableEventWithTarget } from '../../../ui-kit/PreventableEven
|
|
|
4
4
|
import { adjustSessionQuery } from '../../../utils/adjustSessionQuery';
|
|
5
5
|
import { isURL } from '../../../utils/url';
|
|
6
6
|
|
|
7
|
-
export const forwardQuery = (ev: PreventableEventWithTarget) => {
|
|
7
|
+
export const forwardQuery = async (ev: PreventableEventWithTarget) => {
|
|
8
8
|
const anchor = (ev.target as Element | null)?.closest('a');
|
|
9
9
|
const navigator = locationNavigator();
|
|
10
10
|
|
|
@@ -7,8 +7,12 @@ export type HandleAspectsProps = {
|
|
|
7
7
|
ev: PreventableEventWithTarget;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export const handleAspects = ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
|
|
10
|
+
export const handleAspects = async ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
|
|
11
11
|
for (const { aspectName, params } of aspectsAttributes ?? []) {
|
|
12
|
-
aspects[aspectName ?? '']
|
|
12
|
+
const aspectFn = aspects[aspectName ?? ''];
|
|
13
|
+
|
|
14
|
+
if (aspectFn) {
|
|
15
|
+
await aspectFn(ev, params);
|
|
16
|
+
}
|
|
13
17
|
}
|
|
14
18
|
};
|
|
@@ -14,7 +14,7 @@ export interface AspectsAttribute {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export interface Aspects {
|
|
17
|
-
[key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => void
|
|
17
|
+
[key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export function useAspects(): Aspects {
|
|
@@ -25,7 +25,9 @@ export const renderStep = <SectionsProps extends SectionsRetailProps>({
|
|
|
25
25
|
const cleanElements = [
|
|
26
26
|
!checkCondition({ condition }, getValue(field)) ? renderTitle(title) : null,
|
|
27
27
|
...renderInputs({ field, inputs, params }),
|
|
28
|
-
]
|
|
28
|
+
]
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.map((_, j) => ({ ..._, key: _.key ?? `elem-${j}` }));
|
|
29
31
|
|
|
30
32
|
return cleanElements.length ? (
|
|
31
33
|
<div key={`section-${i}`} className={style(inputColumnStyles(columns), 'grid gap-x-m')}>
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.useChatBot = void 0;
|
|
3
|
-
const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
|
|
4
|
-
const useExternalNS_1 = require("../../hooks/useExternalNS");
|
|
5
|
-
const CHAT_NAMESPACE = 'chatbot';
|
|
6
|
-
const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
|
|
7
|
-
const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
|
|
8
|
-
const CHAT_STORAGE_NAME = 'webchat-keep-open';
|
|
9
|
-
const BUSINESS_CHAT_PREFIX = '/webchat-api';
|
|
10
|
-
const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
|
|
11
|
-
const CHATBOT_URL = {
|
|
12
|
-
personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
|
|
13
|
-
business: '/webchat',
|
|
14
|
-
};
|
|
15
|
-
const useChatBot = (chat) => {
|
|
16
|
-
const [isLoading, setIsLoading] = (0, hooks_1.useState)(false);
|
|
17
|
-
(0, hooks_1.useEffect)(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
|
|
18
|
-
const chatUrl = CHATBOT_URL[chat ?? ''];
|
|
19
|
-
const load = (0, hooks_1.useCallback)((ev) => {
|
|
20
|
-
if (!chatUrl) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
setIsLoading(true);
|
|
24
|
-
if (chat === 'business') {
|
|
25
|
-
renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
|
|
29
|
-
}
|
|
30
|
-
}, [chatUrl, chat]);
|
|
31
|
-
return { load, isLoading };
|
|
32
|
-
};
|
|
33
|
-
exports.useChatBot = useChatBot;
|
|
34
|
-
const renderPersonalChatBot = async (ev, chatUrl) => {
|
|
35
|
-
const target = ev.target;
|
|
36
|
-
if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
|
|
37
|
-
target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
|
|
38
|
-
}
|
|
39
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
40
|
-
if (!chatFrame) {
|
|
41
|
-
await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, chatUrl);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
const renderBusinessChatBot = async (chatUrl) => {
|
|
45
|
-
const businessChat = (await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
|
|
46
|
-
(0, useExternalNS_1.initializeExternalStylesheet)(`${chatUrl}/bundle.css`);
|
|
47
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
48
|
-
if (chatFrame) {
|
|
49
|
-
businessChat?.chatOpen?.();
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
createChatFrame();
|
|
53
|
-
businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
const createChatFrame = () => {
|
|
57
|
-
const chatFrame = globalThis.document.createElement('div');
|
|
58
|
-
chatFrame.id = CHAT_FRAME_ID;
|
|
59
|
-
globalThis.document.body.appendChild(chatFrame);
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=useChatBot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
-
import { initializeExternalNS, initializeExternalStylesheet } from '../../hooks/useExternalNS.js';
|
|
3
|
-
const CHAT_NAMESPACE = 'chatbot';
|
|
4
|
-
const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
|
|
5
|
-
const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
|
|
6
|
-
const CHAT_STORAGE_NAME = 'webchat-keep-open';
|
|
7
|
-
const BUSINESS_CHAT_PREFIX = '/webchat-api';
|
|
8
|
-
const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
|
|
9
|
-
const CHATBOT_URL = {
|
|
10
|
-
personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
|
|
11
|
-
business: '/webchat',
|
|
12
|
-
};
|
|
13
|
-
export const useChatBot = (chat) => {
|
|
14
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
15
|
-
useEffect(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
|
|
16
|
-
const chatUrl = CHATBOT_URL[chat ?? ''];
|
|
17
|
-
const load = useCallback((ev) => {
|
|
18
|
-
if (!chatUrl) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
setIsLoading(true);
|
|
22
|
-
if (chat === 'business') {
|
|
23
|
-
renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
|
|
27
|
-
}
|
|
28
|
-
}, [chatUrl, chat]);
|
|
29
|
-
return { load, isLoading };
|
|
30
|
-
};
|
|
31
|
-
const renderPersonalChatBot = async (ev, chatUrl) => {
|
|
32
|
-
const target = ev.target;
|
|
33
|
-
if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
|
|
34
|
-
target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
|
|
35
|
-
}
|
|
36
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
37
|
-
if (!chatFrame) {
|
|
38
|
-
await initializeExternalNS(CHAT_NAMESPACE, chatUrl);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const renderBusinessChatBot = async (chatUrl) => {
|
|
42
|
-
const businessChat = (await initializeExternalNS(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
|
|
43
|
-
initializeExternalStylesheet(`${chatUrl}/bundle.css`);
|
|
44
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
45
|
-
if (chatFrame) {
|
|
46
|
-
businessChat?.chatOpen?.();
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
createChatFrame();
|
|
50
|
-
businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const createChatFrame = () => {
|
|
54
|
-
const chatFrame = globalThis.document.createElement('div');
|
|
55
|
-
chatFrame.id = CHAT_FRAME_ID;
|
|
56
|
-
globalThis.document.body.appendChild(chatFrame);
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=useChatBot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.useChatBot = void 0;
|
|
3
|
-
const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
|
|
4
|
-
const useExternalNS_1 = require("../../hooks/useExternalNS");
|
|
5
|
-
const CHAT_NAMESPACE = 'chatbot';
|
|
6
|
-
const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
|
|
7
|
-
const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
|
|
8
|
-
const CHAT_STORAGE_NAME = 'webchat-keep-open';
|
|
9
|
-
const BUSINESS_CHAT_PREFIX = '/webchat-api';
|
|
10
|
-
const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
|
|
11
|
-
const CHATBOT_URL = {
|
|
12
|
-
personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
|
|
13
|
-
business: '/webchat',
|
|
14
|
-
};
|
|
15
|
-
const useChatBot = (chat) => {
|
|
16
|
-
const [isLoading, setIsLoading] = (0, hooks_1.useState)(false);
|
|
17
|
-
(0, hooks_1.useEffect)(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
|
|
18
|
-
const chatUrl = CHATBOT_URL[chat ?? ''];
|
|
19
|
-
const load = (0, hooks_1.useCallback)((ev) => {
|
|
20
|
-
if (!chatUrl) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
setIsLoading(true);
|
|
24
|
-
if (chat === 'business') {
|
|
25
|
-
renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
|
|
29
|
-
}
|
|
30
|
-
}, [chatUrl, chat]);
|
|
31
|
-
return { load, isLoading };
|
|
32
|
-
};
|
|
33
|
-
exports.useChatBot = useChatBot;
|
|
34
|
-
const renderPersonalChatBot = async (ev, chatUrl) => {
|
|
35
|
-
const target = ev.target;
|
|
36
|
-
if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
|
|
37
|
-
target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
|
|
38
|
-
}
|
|
39
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
40
|
-
if (!chatFrame) {
|
|
41
|
-
await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, chatUrl);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
const renderBusinessChatBot = async (chatUrl) => {
|
|
45
|
-
const businessChat = (await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
|
|
46
|
-
(0, useExternalNS_1.initializeExternalStylesheet)(`${chatUrl}/bundle.css`);
|
|
47
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
48
|
-
if (chatFrame) {
|
|
49
|
-
businessChat?.chatOpen?.();
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
createChatFrame();
|
|
53
|
-
businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
const createChatFrame = () => {
|
|
57
|
-
const chatFrame = globalThis.document.createElement('div');
|
|
58
|
-
chatFrame.id = CHAT_FRAME_ID;
|
|
59
|
-
globalThis.document.body.appendChild(chatFrame);
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=useChatBot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
-
import { initializeExternalNS, initializeExternalStylesheet } from '../../hooks/useExternalNS.js';
|
|
3
|
-
const CHAT_NAMESPACE = 'chatbot';
|
|
4
|
-
const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
|
|
5
|
-
const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
|
|
6
|
-
const CHAT_STORAGE_NAME = 'webchat-keep-open';
|
|
7
|
-
const BUSINESS_CHAT_PREFIX = '/webchat-api';
|
|
8
|
-
const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
|
|
9
|
-
const CHATBOT_URL = {
|
|
10
|
-
personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
|
|
11
|
-
business: '/webchat',
|
|
12
|
-
};
|
|
13
|
-
export const useChatBot = (chat) => {
|
|
14
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
15
|
-
useEffect(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
|
|
16
|
-
const chatUrl = CHATBOT_URL[chat ?? ''];
|
|
17
|
-
const load = useCallback((ev) => {
|
|
18
|
-
if (!chatUrl) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
setIsLoading(true);
|
|
22
|
-
if (chat === 'business') {
|
|
23
|
-
renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
|
|
27
|
-
}
|
|
28
|
-
}, [chatUrl, chat]);
|
|
29
|
-
return { load, isLoading };
|
|
30
|
-
};
|
|
31
|
-
const renderPersonalChatBot = async (ev, chatUrl) => {
|
|
32
|
-
const target = ev.target;
|
|
33
|
-
if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
|
|
34
|
-
target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
|
|
35
|
-
}
|
|
36
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
37
|
-
if (!chatFrame) {
|
|
38
|
-
await initializeExternalNS(CHAT_NAMESPACE, chatUrl);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const renderBusinessChatBot = async (chatUrl) => {
|
|
42
|
-
const businessChat = (await initializeExternalNS(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
|
|
43
|
-
initializeExternalStylesheet(`${chatUrl}/bundle.css`);
|
|
44
|
-
const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
|
|
45
|
-
if (chatFrame) {
|
|
46
|
-
businessChat?.chatOpen?.();
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
createChatFrame();
|
|
50
|
-
businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const createChatFrame = () => {
|
|
54
|
-
const chatFrame = globalThis.document.createElement('div');
|
|
55
|
-
chatFrame.id = CHAT_FRAME_ID;
|
|
56
|
-
globalThis.document.body.appendChild(chatFrame);
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=useChatBot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
|