@cleartrip/talos-radio-selection 2.0.0-beta-260717-7.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/dist/RadioSelection.d.ts +5 -0
- package/dist/RadioSelection.d.ts.map +1 -0
- package/dist/RadioSelectionItem.d.ts +5 -0
- package/dist/RadioSelectionItem.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/style.d.ts +32 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/talos-radio-selection.browser.cjs.js +2 -0
- package/dist/talos-radio-selection.browser.cjs.js.map +1 -0
- package/dist/talos-radio-selection.browser.esm.js +2 -0
- package/dist/talos-radio-selection.browser.esm.js.map +1 -0
- package/dist/talos-radio-selection.cjs.js +126 -0
- package/dist/talos-radio-selection.cjs.js.map +1 -0
- package/dist/talos-radio-selection.esm.js +123 -0
- package/dist/talos-radio-selection.esm.js.map +1 -0
- package/dist/talos-radio-selection.umd.js +32209 -0
- package/dist/talos-radio-selection.umd.js.map +1 -0
- package/dist/type.d.ts +16 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type IWidgetProps } from "@cleartrip/talos-widget-types";
|
|
2
|
+
import type { IRadioSelectionProps } from "./type";
|
|
3
|
+
declare const RadioSelection: ({ data }: IWidgetProps<IRadioSelectionProps>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export default RadioSelection;
|
|
5
|
+
//# sourceMappingURL=RadioSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioSelection.d.ts","sourceRoot":"","sources":["../packages/components/radio-selection/src/RadioSelection.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AASvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAInD,QAAA,MAAM,cAAc,aAAc,aAAa,oBAAoB,CAAC,4CAiGnE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type IWidgetProps } from "@cleartrip/talos-widget-types";
|
|
2
|
+
import type { IRadioSelectionItemProps } from "./type";
|
|
3
|
+
declare const RadioSelectionItem: ({ data, events, }: IWidgetProps<IRadioSelectionItemProps>) => import("react/jsx-runtime").JSX.Element | null;
|
|
4
|
+
export default RadioSelectionItem;
|
|
5
|
+
//# sourceMappingURL=RadioSelectionItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioSelectionItem.d.ts","sourceRoot":"","sources":["../packages/components/radio-selection/src/RadioSelectionItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAa9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAEvD,QAAA,MAAM,kBAAkB,sBAGrB,aAAa,wBAAwB,CAAC,mDAiDxC,CAAC;AACF,eAAe,kBAAkB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../packages/components/radio-selection/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,QAAQ,CAAC"}
|
package/dist/style.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Theme } from "@cleartrip/ct-design-components";
|
|
2
|
+
export declare const getRadioSelectionStyle: (theme: Theme) => {
|
|
3
|
+
root: {
|
|
4
|
+
display: string;
|
|
5
|
+
flexDirection: string;
|
|
6
|
+
alignItems: string;
|
|
7
|
+
gap: "16px";
|
|
8
|
+
};
|
|
9
|
+
selectionOptionRoot: {
|
|
10
|
+
display: string;
|
|
11
|
+
flexDirection: string;
|
|
12
|
+
backgroundColor: string;
|
|
13
|
+
borderRadius: "16px";
|
|
14
|
+
};
|
|
15
|
+
selectionOptionItem: {
|
|
16
|
+
display: string;
|
|
17
|
+
alignItems: string;
|
|
18
|
+
gap: "8px";
|
|
19
|
+
padding: "8px";
|
|
20
|
+
};
|
|
21
|
+
selectionOptionContent: {
|
|
22
|
+
display: string;
|
|
23
|
+
flexDirection: string;
|
|
24
|
+
alignItems: string;
|
|
25
|
+
justifyContent: string;
|
|
26
|
+
paddingRight: "36px";
|
|
27
|
+
};
|
|
28
|
+
loadMoreButton: {
|
|
29
|
+
backgroundColor: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../packages/components/radio-selection/src/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAExD,eAAO,MAAM,sBAAsB,UAAW,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BlD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("tslib"),n=require("react/jsx-runtime"),t=require("react"),i=require("@cleartrip/ct-design-components"),a=require("@cleartrip/talos-widget-types"),o=require("@cleartrip/talos-widget-manager"),r=require("@cleartrip/talos-use-chat-controller"),s=function(e){return{root:{display:"flex",flexDirection:"column",alignItems:"start",gap:e.spacing[4]},selectionOptionRoot:{display:"flex",flexDirection:"column",backgroundColor:e.color.background.neutral,borderRadius:e.border.radius[16]},selectionOptionItem:{display:"flex",alignItems:"start",gap:e.spacing[2],padding:e.spacing[2]},selectionOptionContent:{display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"flex-start",paddingRight:e.spacing[9]},loadMoreButton:{backgroundColor:"transparent"}}},l=function(e){return"radio-selection-option-".concat(e)};exports.RadioSelection=function(c){var u=c.data,d=i.useTheme(),p=r.useAppDispatch().dispatch,g=t.useMemo(function(){return s(d)},[d]),h=u||{},f=h.options,_=void 0===f?[]:f,y=h.action,m=void 0===y?null:y,v=(h.config||{}).initialLoadCount,x=t.useRef(null),C=t.useState(null),b=C[0],j=C[1],k=t.useState(v||5),D=k[0],R=k[1],T=t.useMemo(function(){return _.slice(0,D)},[_,D]),A=_.length>D,I=t.useCallback(function(){R(function(e){return x.current=e,Math.min(e+5,_.length)})},[_.length]),O=t.useCallback(function(e){switch(e.type){case a.ActionType.TOGGLE_RADIO:j(e.payload.id);break;case a.ActionType.LOAD_MORE:I();break;default:p(e)}},[p,I]);t.useLayoutEffect(function(){var e,n=x.current;if(null!=n){x.current=null;var t=_[n],i=null===(e=null==t?void 0:t.data)||void 0===e?void 0:e.id;if(i){var a=document.getElementById(l(i));null==a||a.scrollIntoView({behavior:"smooth",block:"start"})}}},[D,_]);var q=t.useCallback(function(e){return e.forEach(O)},[O]);return n.jsx(r.ChatDispatchProvider,e.__assign({dispatch:O,dispatchAll:q},{children:n.jsxs(i.Container,e.__assign({css:g.root},{children:[n.jsx(i.Container,e.__assign({css:g.selectionOptionRoot},{children:T.map(function(a,r){var s=((null==a?void 0:a.data)||{}).id,l=b===s,c=r<T.length-1,u=e.__assign(e.__assign({},a),{data:e.__assign(e.__assign({},a.data),{checked:l})});return n.jsxs(t.Fragment,{children:[n.jsx(o.WidgetGenerator,e.__assign({},u)),c&&n.jsx(i.Divider,{type:"solid",borderColor:d.color.border.disabledDark})]},null!=s?s:r)})})),A&&m&&n.jsx(o.WidgetGenerator,e.__assign({},m))]}))}))},exports.RadioSelectionItem=function(o){var c=o.data,u=o.events,d=i.useTheme(),p=r.useAppDispatch().dispatchAll,g=c||{},h=g.id,f=g.label,_=g.subheading,y=void 0===_?"":_,m=g.checked,v=void 0!==m&&m,x=(u||{}).onClick,C=r.useDispatch(),b=t.useMemo(function(){return s(d)},[d]),j=h?l(h):void 0;return h?n.jsxs(i.Container,e.__assign({id:j,css:b.selectionOptionItem},{children:[n.jsx(i.Radio,{id:h,onChange:function(){return function(e){C({type:a.ActionType.TOGGLE_RADIO,payload:{id:e}}),p(x)}(h)},checked:v}),n.jsxs(i.Container,e.__assign({css:b.selectionOptionContent},{children:[n.jsx(i.Typography,e.__assign({variant:i.TypographyVariant.L3,color:i.TypographyColor.PRIMARY,lineClamp:1},{children:f})),y&&n.jsx(i.Typography,e.__assign({variant:i.TypographyVariant.P3,color:i.TypographyColor.SUBHEADING,lineClamp:1},{children:y}))]}))]})):null};
|
|
2
|
+
//# sourceMappingURL=talos-radio-selection.browser.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-radio-selection.browser.cjs.js","sources":["../packages/components/radio-selection/src/style.ts","../packages/components/radio-selection/src/util.ts","../packages/components/radio-selection/src/RadioSelection.tsx","../packages/components/radio-selection/src/RadioSelectionItem.tsx"],"sourcesContent":[null,null,null,null],"names":["getRadioSelectionStyle","theme","root","display","flexDirection","alignItems","gap","spacing","selectionOptionRoot","backgroundColor","color","background","neutral","borderRadius","border","radius","selectionOptionItem","padding","selectionOptionContent","justifyContent","paddingRight","loadMoreButton","getOptionDomId","optionId","concat","_a","data","useTheme","appDispatch","useAppDispatch","staticStyles","useMemo","_b","_c","options","_d","action","initialLoadCount","config","scrollToIndexRef","useRef","_e","useState","selectedRadioId","setSelectedRadioId","_f","visibleCount","setVisibleCount","visibleOptions","slice","showLoadMoreButton","length","handleLoadMore","useCallback","prev","current","Math","min","localDispatch","type","ActionType","TOGGLE_RADIO","payload","id","LOAD_MORE","useLayoutEffect","index","option","element","document","getElementById","scrollIntoView","behavior","block","localDispatchAll","actions","forEach","_jsx","ChatDispatchProvider","__assign","dispatch","dispatchAll","children","_jsxs","jsxs","Container","css","map","isChecked","showDivider","enrichedRadioSelectionItemProps","checked","Fragment","WidgetGenerator","Divider","borderColor","disabledDark","jsx","events","label","subheading","onClick","useDispatch","optionDomId","undefined","Radio","onChange","handleOnChange","Typography","variant","TypographyVariant","L3","TypographyColor","PRIMARY","lineClamp","P3","SUBHEADING"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__assign as t}from"tslib";import{jsx as n,jsxs as o}from"react/jsx-runtime";import{useMemo as i,useRef as r,useState as e,useCallback as l,useLayoutEffect as a,Fragment as c}from"react";import{useTheme as d,Container as s,Divider as u,Radio as p,Typography as f,TypographyVariant as m,TypographyColor as h}from"@cleartrip/ct-design-components";import{ActionType as g}from"@cleartrip/talos-widget-types";import{WidgetGenerator as v}from"@cleartrip/talos-widget-manager";import{useAppDispatch as b,ChatDispatchProvider as y,useDispatch as O}from"@cleartrip/talos-use-chat-controller";var k=function(t){return{root:{display:"flex",flexDirection:"column",alignItems:"start",gap:t.spacing[4]},selectionOptionRoot:{display:"flex",flexDirection:"column",backgroundColor:t.color.background.neutral,borderRadius:t.border.radius[16]},selectionOptionItem:{display:"flex",alignItems:"start",gap:t.spacing[2],padding:t.spacing[2]},selectionOptionContent:{display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"flex-start",paddingRight:t.spacing[9]},loadMoreButton:{backgroundColor:"transparent"}}},C=function(t){return"radio-selection-option-".concat(t)},I=function(p){var f=p.data,m=d(),h=b().dispatch,O=i(function(){return k(m)},[m]),I=f||{},x=I.options,R=void 0===x?[]:x,D=I.action,A=void 0===D?null:D,E=(I.config||{}).initialLoadCount,G=r(null),L=e(null),w=L[0],M=L[1],B=e(E||5),_=B[0],j=B[1],P=i(function(){return R.slice(0,_)},[R,_]),T=R.length>_,H=l(function(){j(function(t){return G.current=t,Math.min(t+5,R.length)})},[R.length]),N=l(function(t){switch(t.type){case g.TOGGLE_RADIO:M(t.payload.id);break;case g.LOAD_MORE:H();break;default:h(t)}},[h,H]);a(function(){var t,n=G.current;if(null!=n){G.current=null;var o=R[n],i=null===(t=null==o?void 0:o.data)||void 0===t?void 0:t.id;if(i){var r=document.getElementById(C(i));null==r||r.scrollIntoView({behavior:"smooth",block:"start"})}}},[_,R]);var S=l(function(t){return t.forEach(N)},[N]);return n(y,t({dispatch:N,dispatchAll:S},{children:o(s,t({css:O.root},{children:[n(s,t({css:O.selectionOptionRoot},{children:P.map(function(i,r){var e=((null==i?void 0:i.data)||{}).id,l=w===e,a=r<P.length-1,d=t(t({},i),{data:t(t({},i.data),{checked:l})});return o(c,{children:[n(v,t({},d)),a&&n(u,{type:"solid",borderColor:m.color.border.disabledDark})]},null!=e?e:r)})})),T&&A&&n(v,t({},A))]}))}))},x=function(r){var e=r.data,l=r.events,a=d(),c=b().dispatchAll,u=e||{},v=u.id,y=u.label,I=u.subheading,x=void 0===I?"":I,R=u.checked,D=void 0!==R&&R,A=(l||{}).onClick,E=O(),G=i(function(){return k(a)},[a]),L=v?C(v):void 0;return v?o(s,t({id:L,css:G.selectionOptionItem},{children:[n(p,{id:v,onChange:function(){return function(t){E({type:g.TOGGLE_RADIO,payload:{id:t}}),c(A)}(v)},checked:D}),o(s,t({css:G.selectionOptionContent},{children:[n(f,t({variant:m.L3,color:h.PRIMARY,lineClamp:1},{children:y})),x&&n(f,t({variant:m.P3,color:h.SUBHEADING,lineClamp:1},{children:x}))]}))]})):null};export{I as RadioSelection,x as RadioSelectionItem};
|
|
2
|
+
//# sourceMappingURL=talos-radio-selection.browser.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-radio-selection.browser.esm.js","sources":["../packages/components/radio-selection/src/style.ts","../packages/components/radio-selection/src/util.ts","../packages/components/radio-selection/src/RadioSelection.tsx","../packages/components/radio-selection/src/RadioSelectionItem.tsx"],"sourcesContent":[null,null,null,null],"names":["getRadioSelectionStyle","theme","root","display","flexDirection","alignItems","gap","spacing","selectionOptionRoot","backgroundColor","color","background","neutral","borderRadius","border","radius","selectionOptionItem","padding","selectionOptionContent","justifyContent","paddingRight","loadMoreButton","getOptionDomId","optionId","concat","RadioSelection","_a","data","useTheme","appDispatch","useAppDispatch","staticStyles","useMemo","_b","_c","options","_d","action","initialLoadCount","config","scrollToIndexRef","useRef","_e","useState","selectedRadioId","setSelectedRadioId","_f","visibleCount","setVisibleCount","visibleOptions","slice","showLoadMoreButton","length","handleLoadMore","useCallback","prev","current","Math","min","localDispatch","type","ActionType","TOGGLE_RADIO","payload","id","LOAD_MORE","useLayoutEffect","index","option","element","document","getElementById","scrollIntoView","behavior","block","localDispatchAll","actions","forEach","_jsx","ChatDispatchProvider","__assign","dispatch","dispatchAll","children","_jsxs","Container","css","map","isChecked","showDivider","enrichedRadioSelectionItemProps","checked","Fragment","WidgetGenerator","Divider","borderColor","disabledDark","RadioSelectionItem","events","label","subheading","onClick","useDispatch","optionDomId","undefined","Radio","onChange","handleOnChange","Typography","variant","TypographyVariant","L3","TypographyColor","PRIMARY","lineClamp","P3","SUBHEADING"],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var ctDesignComponents = require('@cleartrip/ct-design-components');
|
|
7
|
+
var talosWidgetTypes = require('@cleartrip/talos-widget-types');
|
|
8
|
+
var talosWidgetManager = require('@cleartrip/talos-widget-manager');
|
|
9
|
+
var talosUseChatController = require('@cleartrip/talos-use-chat-controller');
|
|
10
|
+
|
|
11
|
+
var getRadioSelectionStyle = function (theme) {
|
|
12
|
+
return {
|
|
13
|
+
root: {
|
|
14
|
+
display: "flex",
|
|
15
|
+
flexDirection: "column",
|
|
16
|
+
alignItems: "start",
|
|
17
|
+
gap: theme.spacing[4],
|
|
18
|
+
},
|
|
19
|
+
selectionOptionRoot: {
|
|
20
|
+
display: "flex",
|
|
21
|
+
flexDirection: "column",
|
|
22
|
+
backgroundColor: theme.color.background.neutral,
|
|
23
|
+
borderRadius: theme.border.radius[16],
|
|
24
|
+
},
|
|
25
|
+
selectionOptionItem: {
|
|
26
|
+
display: "flex",
|
|
27
|
+
alignItems: "start",
|
|
28
|
+
gap: theme.spacing[2],
|
|
29
|
+
padding: theme.spacing[2],
|
|
30
|
+
},
|
|
31
|
+
selectionOptionContent: {
|
|
32
|
+
display: "flex",
|
|
33
|
+
flexDirection: "column",
|
|
34
|
+
alignItems: "start",
|
|
35
|
+
justifyContent: "flex-start",
|
|
36
|
+
paddingRight: theme.spacing[9],
|
|
37
|
+
},
|
|
38
|
+
loadMoreButton: {
|
|
39
|
+
backgroundColor: "transparent",
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
var getOptionDomId = function (optionId) {
|
|
45
|
+
return "radio-selection-option-".concat(optionId);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var MAX_OPTIONS_TO_SHOW = 5;
|
|
49
|
+
var RadioSelection = function (_a) {
|
|
50
|
+
var data = _a.data;
|
|
51
|
+
var theme = ctDesignComponents.useTheme();
|
|
52
|
+
var appDispatch = talosUseChatController.useAppDispatch().dispatch;
|
|
53
|
+
var staticStyles = react.useMemo(function () { return getRadioSelectionStyle(theme); }, [theme]);
|
|
54
|
+
var _b = data || {}, _c = _b.options, options = _c === void 0 ? [] : _c, _d = _b.action, action = _d === void 0 ? null : _d, config = _b.config;
|
|
55
|
+
var initialLoadCount = (config || {}).initialLoadCount;
|
|
56
|
+
var scrollToIndexRef = react.useRef(null);
|
|
57
|
+
var _e = react.useState(null), selectedRadioId = _e[0], setSelectedRadioId = _e[1];
|
|
58
|
+
var _f = react.useState(initialLoadCount || MAX_OPTIONS_TO_SHOW), visibleCount = _f[0], setVisibleCount = _f[1];
|
|
59
|
+
var visibleOptions = react.useMemo(function () { return options.slice(0, visibleCount); }, [options, visibleCount]);
|
|
60
|
+
var showLoadMoreButton = options.length > visibleCount;
|
|
61
|
+
var handleLoadMore = react.useCallback(function () {
|
|
62
|
+
setVisibleCount(function (prev) {
|
|
63
|
+
scrollToIndexRef.current = prev;
|
|
64
|
+
return Math.min(prev + MAX_OPTIONS_TO_SHOW, options.length);
|
|
65
|
+
});
|
|
66
|
+
}, [options.length]);
|
|
67
|
+
var localDispatch = react.useCallback(function (action) {
|
|
68
|
+
switch (action.type) {
|
|
69
|
+
case talosWidgetTypes.ActionType.TOGGLE_RADIO:
|
|
70
|
+
setSelectedRadioId(action.payload.id);
|
|
71
|
+
break;
|
|
72
|
+
case talosWidgetTypes.ActionType.LOAD_MORE:
|
|
73
|
+
handleLoadMore();
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
appDispatch(action);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}, [appDispatch, handleLoadMore]);
|
|
80
|
+
react.useLayoutEffect(function () {
|
|
81
|
+
var _a;
|
|
82
|
+
var index = scrollToIndexRef.current;
|
|
83
|
+
if (index == null)
|
|
84
|
+
return;
|
|
85
|
+
scrollToIndexRef.current = null;
|
|
86
|
+
var option = options[index];
|
|
87
|
+
var optionId = (_a = option === null || option === void 0 ? void 0 : option.data) === null || _a === void 0 ? void 0 : _a.id;
|
|
88
|
+
if (!optionId)
|
|
89
|
+
return;
|
|
90
|
+
var element = document.getElementById(getOptionDomId(optionId));
|
|
91
|
+
element === null || element === void 0 ? void 0 : element.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
92
|
+
}, [visibleCount, options]);
|
|
93
|
+
var localDispatchAll = react.useCallback(function (actions) { return actions.forEach(localDispatch); }, [localDispatch]);
|
|
94
|
+
return (jsxRuntime.jsx(talosUseChatController.ChatDispatchProvider, tslib.__assign({ dispatch: localDispatch, dispatchAll: localDispatchAll }, { children: jsxRuntime.jsxs(ctDesignComponents.Container, tslib.__assign({ css: staticStyles.root }, { children: [jsxRuntime.jsx(ctDesignComponents.Container, tslib.__assign({ css: staticStyles.selectionOptionRoot }, { children: visibleOptions.map(function (option, index) {
|
|
95
|
+
var id = ((option === null || option === void 0 ? void 0 : option.data) || {}).id;
|
|
96
|
+
var isChecked = selectedRadioId === id;
|
|
97
|
+
var showDivider = index < visibleOptions.length - 1;
|
|
98
|
+
var enrichedRadioSelectionItemProps = tslib.__assign(tslib.__assign({}, option), { data: tslib.__assign(tslib.__assign({}, option.data), { checked: isChecked }) });
|
|
99
|
+
return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(talosWidgetManager.WidgetGenerator, tslib.__assign({}, enrichedRadioSelectionItemProps)), showDivider && (jsxRuntime.jsx(ctDesignComponents.Divider, { type: "solid", borderColor: theme.color.border.disabledDark }))] }, id !== null && id !== void 0 ? id : index));
|
|
100
|
+
}) })), showLoadMoreButton && action && jsxRuntime.jsx(talosWidgetManager.WidgetGenerator, tslib.__assign({}, action))] })) })));
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var RadioSelectionItem = function (_a) {
|
|
104
|
+
var data = _a.data, events = _a.events;
|
|
105
|
+
var theme = ctDesignComponents.useTheme();
|
|
106
|
+
var dispatchAll = talosUseChatController.useAppDispatch().dispatchAll;
|
|
107
|
+
var _b = data || {}, id = _b.id, label = _b.label, _c = _b.subheading, subheading = _c === void 0 ? '' : _c, _d = _b.checked, checked = _d === void 0 ? false : _d;
|
|
108
|
+
var onClick = (events || {}).onClick;
|
|
109
|
+
var dispatch = talosUseChatController.useDispatch();
|
|
110
|
+
var staticStyles = react.useMemo(function () { return getRadioSelectionStyle(theme); }, [theme]);
|
|
111
|
+
var optionDomId = id ? getOptionDomId(id) : undefined;
|
|
112
|
+
var handleOnChange = function (id) {
|
|
113
|
+
dispatch({
|
|
114
|
+
type: talosWidgetTypes.ActionType.TOGGLE_RADIO,
|
|
115
|
+
payload: { id: id },
|
|
116
|
+
});
|
|
117
|
+
dispatchAll(onClick);
|
|
118
|
+
};
|
|
119
|
+
if (!id)
|
|
120
|
+
return null;
|
|
121
|
+
return (jsxRuntime.jsxs(ctDesignComponents.Container, tslib.__assign({ id: optionDomId, css: staticStyles.selectionOptionItem }, { children: [jsxRuntime.jsx(ctDesignComponents.Radio, { id: id, onChange: function () { return handleOnChange(id); }, checked: checked }), jsxRuntime.jsxs(ctDesignComponents.Container, tslib.__assign({ css: staticStyles.selectionOptionContent }, { children: [jsxRuntime.jsx(ctDesignComponents.Typography, tslib.__assign({ variant: ctDesignComponents.TypographyVariant.L3, color: ctDesignComponents.TypographyColor.PRIMARY, lineClamp: 1 }, { children: label })), subheading && (jsxRuntime.jsx(ctDesignComponents.Typography, tslib.__assign({ variant: ctDesignComponents.TypographyVariant.P3, color: ctDesignComponents.TypographyColor.SUBHEADING, lineClamp: 1 }, { children: subheading })))] }))] })));
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
exports.RadioSelection = RadioSelection;
|
|
125
|
+
exports.RadioSelectionItem = RadioSelectionItem;
|
|
126
|
+
//# sourceMappingURL=talos-radio-selection.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-radio-selection.cjs.js","sources":["../packages/components/radio-selection/src/style.ts","../packages/components/radio-selection/src/util.ts","../packages/components/radio-selection/src/RadioSelection.tsx","../packages/components/radio-selection/src/RadioSelectionItem.tsx"],"sourcesContent":[null,null,null,null],"names":["useTheme","useAppDispatch","useMemo","useRef","useState","useCallback","ActionType","useLayoutEffect","_jsx","ChatDispatchProvider","__assign","_jsxs","Container","Fragment","WidgetGenerator","Divider","useDispatch","Radio","Typography","TypographyVariant","TypographyColor"],"mappings":";;;;;;;;;;AAEO,IAAM,sBAAsB,GAAG,UAAC,KAAY,EAAA;IACjD,OAAO;AACL,QAAA,IAAI,EAAC;AACH,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO;YAC/C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACtC,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1B,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,eAAe,EAAE,aAAa;AAC/B,SAAA;KACF,CAAC;AACJ,CAAC;;ACjCM,IAAM,cAAc,GAAG,UAAC,QAAgB,EAAA;IAC7C,OAAA,yBAAA,CAAA,MAAA,CAA0B,QAAQ,CAAE,CAAA;AAApC,CAAoC;;ACatC,IAAM,mBAAmB,GAAG,CAAC,CAAC;AAExB,IAAA,cAAc,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAC5B,IAAA,IAAM,KAAK,GAAGA,2BAAQ,EAAE,CAAC;AACjB,IAAA,IAAU,WAAW,GAAKC,qCAAc,EAAE,SAArB,CAAsB;AACnD,IAAA,IAAM,YAAY,GAAGC,aAAO,CAAC,YAAA,EAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,GAAA,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,IAAA,EAAA,GAA0C,IAAI,IAAI,EAAE,EAAlD,EAAY,GAAA,EAAA,CAAA,OAAA,EAAZ,OAAO,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,EAAE,KAAA,EAAE,EAAA,GAAA,EAAA,CAAA,MAAa,EAAb,MAAM,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAA,EAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAe,CAAC;IACnD,IAAA,gBAAgB,GAAK,CAAA,MAAM,IAAI,EAAE,kBAAjB,CAAkB;AAC1C,IAAA,IAAM,gBAAgB,GAAGC,YAAM,CAAgB,IAAI,CAAC,CAAC;IAC/C,IAAA,EAAA,GAAwCC,cAAQ,CAAgB,IAAI,CAAC,EAApE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,kBAAkB,GAAA,EAAA,CAAA,CAAA,CAAiC,CAAC;AACtE,IAAA,IAAA,EAAkC,GAAAA,cAAQ,CAC9C,gBAAgB,IAAI,mBAAmB,CACxC,EAFM,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,QAEnC,CAAC;IAGF,IAAM,cAAc,GAAGF,aAAO,CAC5B,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAA9B,EAA8B,EACpC,CAAC,OAAO,EAAE,YAAY,CAAC,CACxB,CAAC;AACF,IAAA,IAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC;IAEzD,IAAM,cAAc,GAAGG,iBAAW,CAAC,YAAA;QACjC,eAAe,CAAC,UAAC,IAAI,EAAA;AACnB,YAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;AAChC,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;AACL,KAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAGrB,IAAA,IAAM,aAAa,GAAGA,iBAAW,CAAC,UAAC,MAAe,EAAA;QAChD,QAAQ,MAAM,CAAC,IAAI;YACjB,KAAKC,2BAAU,CAAC,YAAY;AAC1B,gBAAA,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM;YAER,KAAKA,2BAAU,CAAC,SAAS;AACvB,gBAAA,cAAc,EAAE,CAAC;gBACjB,MAAM;AAER,YAAA;gBACE,WAAW,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM;AACT,SAAA;AACH,KAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;AAElC,IAAAC,qBAAe,CAAC,YAAA;;AACd,QAAA,IAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACvC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO;AAC1B,QAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;AAChC,QAAA,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClE,QAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAClE,KAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAG5B,IAAM,gBAAgB,GAAGF,iBAAW,CAClC,UAAC,OAAkB,EAAA,EAAK,OAAA,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAA9B,EAA8B,EACtD,CAAC,aAAa,CAAC,CAChB,CAAC;AAEF,IAAA,QACEG,cAAC,CAAAC,2CAAoB,EAACC,cAAA,CAAA,EAAA,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAC1E,EAAA,EAAA,QAAA,EAAAC,eAAA,CAACC,4BAAS,EAAAF,cAAA,CAAA,EAAC,GAAG,EAAE,YAAY,CAAC,IAAI,iBAC/BF,cAAC,CAAAI,4BAAS,EAACF,cAAA,CAAA,EAAA,GAAG,EAAE,YAAY,CAAC,mBAAmB,EAAA,EAAA,EAAA,QAAA,EAC7C,cAAc,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK,EAAA;AACxB,wBAAA,IAAA,EAAE,GAAK,CAAA,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,IAAI,KAAI,EAAE,IAAvB,CAAwB;AAClC,wBAAA,IAAM,SAAS,GAAG,eAAe,KAAK,EAAE,CAAC;wBACzC,IAAM,WAAW,GAAG,KAAK,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAEtD,wBAAA,IAAM,+BAA+B,GAAAA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAChC,MAAM,CAAA,EAAA,EACT,IAAI,EACCA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAA,MAAM,CAAC,IAAI,CACd,EAAA,EAAA,OAAO,EAAE,SAAS,MAErB,CAAC;AACF,wBAAA,QACEC,eAAC,CAAAE,cAAQ,eACPL,cAAC,CAAAM,kCAAe,qBACV,+BAA+B,CAAA,CACnC,EACD,WAAW,KACVN,cAAA,CAACO,0BAAO,EACN,EAAA,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAC5C,CAAA,CACH,KATY,EAAE,KAAA,IAAA,IAAF,EAAE,KAAF,KAAA,CAAA,GAAA,EAAE,GAAI,KAAK,CAUf,EACX;AACJ,qBAAC,CAAC,EAAA,CAAA,CACQ,EACX,kBAAkB,IAAI,MAAM,IAAIP,cAAC,CAAAM,kCAAe,qBAAK,MAAM,CAAA,CAAI,CACtD,EAAA,CAAA,CAAA,EAAA,CAAA,CACS,EACvB;AACJ;;ACjGM,IAAA,kBAAkB,GAAG,UAAC,EAGa,EAAA;QAFvC,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;AAEN,IAAA,IAAM,KAAK,GAAGd,2BAAQ,EAAE,CAAC;AACjB,IAAA,IAAA,WAAW,GAAKC,qCAAc,EAAE,YAArB,CAAsB;IAEnC,IAAA,EAAA,GAAkD,IAAI,IAAI,EAAE,EAA1D,EAAE,GAAA,EAAA,CAAA,EAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,EAAA,GAAA,EAAA,CAAA,UAAe,EAAf,UAAU,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAA,EAAA,EAAE,EAAA,GAAA,EAAA,CAAA,OAAe,EAAf,OAAO,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAe,CAAC;IAC3D,IAAA,OAAO,GAAK,CAAA,MAAM,IAAI,EAAE,SAAjB,CAAkB;AAEjC,IAAA,IAAM,QAAQ,GAAGe,kCAAW,EAAE,CAAC;AAC/B,IAAA,IAAM,YAAY,GAAGd,aAAO,CAAC,YAAA,EAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,GAAA,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAE3E,IAAA,IAAM,WAAW,GAAG,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAExD,IAAM,cAAc,GAAG,UAAC,EAAU,EAAA;AAChC,QAAA,QAAQ,CAAC;YACP,IAAI,EAAEI,2BAAU,CAAC,YAAY;AAC7B,YAAA,OAAO,EAAE,EAAE,EAAE,EAAA,EAAA,EAAE;AAChB,SAAA,CAAC,CAAC;QACH,WAAW,CAAC,OAAO,CAAC,CAAC;AACvB,KAAC,CAAC;AAEF,IAAA,IAAI,CAAC,EAAE;AAAE,QAAA,OAAO,IAAI,CAAC;IAErB,QACEK,gBAACC,4BAAS,EAAAF,cAAA,CAAA,EAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,CAAC,mBAAmB,iBAC/DF,cAAC,CAAAS,wBAAK,IACJ,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,cAAM,OAAA,cAAc,CAAC,EAAE,CAAC,GAAA,EAClC,OAAO,EAAE,OAAO,GAChB,EACFN,eAAA,CAACC,4BAAS,EAACF,cAAA,CAAA,EAAA,GAAG,EAAE,YAAY,CAAC,sBAAsB,EAAA,EAAA,EAAA,QAAA,EAAA,CACjDF,cAAC,CAAAU,6BAAU,mBACT,OAAO,EAAEC,oCAAiB,CAAC,EAAE,EAC7B,KAAK,EAAEC,kCAAe,CAAC,OAAO,EAC9B,SAAS,EAAE,CAAC,EAEX,EAAA,EAAA,QAAA,EAAA,KAAK,IACK,EACZ,UAAU,KACTZ,cAAC,CAAAU,6BAAU,mBACT,OAAO,EAAEC,oCAAiB,CAAC,EAAE,EAC7B,KAAK,EAAEC,kCAAe,CAAC,UAAU,EACjC,SAAS,EAAE,CAAC,EAEX,EAAA,EAAA,QAAA,EAAA,UAAU,IACA,CACd,CAAA,EAAA,CAAA,CACS,CACF,EAAA,CAAA,CAAA,EACZ;AACJ;;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { useMemo, useRef, useState, useCallback, useLayoutEffect, Fragment } from 'react';
|
|
4
|
+
import { useTheme, Container, Divider, Radio, Typography, TypographyVariant, TypographyColor } from '@cleartrip/ct-design-components';
|
|
5
|
+
import { ActionType } from '@cleartrip/talos-widget-types';
|
|
6
|
+
import { WidgetGenerator } from '@cleartrip/talos-widget-manager';
|
|
7
|
+
import { useAppDispatch, ChatDispatchProvider, useDispatch } from '@cleartrip/talos-use-chat-controller';
|
|
8
|
+
|
|
9
|
+
var getRadioSelectionStyle = function (theme) {
|
|
10
|
+
return {
|
|
11
|
+
root: {
|
|
12
|
+
display: "flex",
|
|
13
|
+
flexDirection: "column",
|
|
14
|
+
alignItems: "start",
|
|
15
|
+
gap: theme.spacing[4],
|
|
16
|
+
},
|
|
17
|
+
selectionOptionRoot: {
|
|
18
|
+
display: "flex",
|
|
19
|
+
flexDirection: "column",
|
|
20
|
+
backgroundColor: theme.color.background.neutral,
|
|
21
|
+
borderRadius: theme.border.radius[16],
|
|
22
|
+
},
|
|
23
|
+
selectionOptionItem: {
|
|
24
|
+
display: "flex",
|
|
25
|
+
alignItems: "start",
|
|
26
|
+
gap: theme.spacing[2],
|
|
27
|
+
padding: theme.spacing[2],
|
|
28
|
+
},
|
|
29
|
+
selectionOptionContent: {
|
|
30
|
+
display: "flex",
|
|
31
|
+
flexDirection: "column",
|
|
32
|
+
alignItems: "start",
|
|
33
|
+
justifyContent: "flex-start",
|
|
34
|
+
paddingRight: theme.spacing[9],
|
|
35
|
+
},
|
|
36
|
+
loadMoreButton: {
|
|
37
|
+
backgroundColor: "transparent",
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var getOptionDomId = function (optionId) {
|
|
43
|
+
return "radio-selection-option-".concat(optionId);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var MAX_OPTIONS_TO_SHOW = 5;
|
|
47
|
+
var RadioSelection = function (_a) {
|
|
48
|
+
var data = _a.data;
|
|
49
|
+
var theme = useTheme();
|
|
50
|
+
var appDispatch = useAppDispatch().dispatch;
|
|
51
|
+
var staticStyles = useMemo(function () { return getRadioSelectionStyle(theme); }, [theme]);
|
|
52
|
+
var _b = data || {}, _c = _b.options, options = _c === void 0 ? [] : _c, _d = _b.action, action = _d === void 0 ? null : _d, config = _b.config;
|
|
53
|
+
var initialLoadCount = (config || {}).initialLoadCount;
|
|
54
|
+
var scrollToIndexRef = useRef(null);
|
|
55
|
+
var _e = useState(null), selectedRadioId = _e[0], setSelectedRadioId = _e[1];
|
|
56
|
+
var _f = useState(initialLoadCount || MAX_OPTIONS_TO_SHOW), visibleCount = _f[0], setVisibleCount = _f[1];
|
|
57
|
+
var visibleOptions = useMemo(function () { return options.slice(0, visibleCount); }, [options, visibleCount]);
|
|
58
|
+
var showLoadMoreButton = options.length > visibleCount;
|
|
59
|
+
var handleLoadMore = useCallback(function () {
|
|
60
|
+
setVisibleCount(function (prev) {
|
|
61
|
+
scrollToIndexRef.current = prev;
|
|
62
|
+
return Math.min(prev + MAX_OPTIONS_TO_SHOW, options.length);
|
|
63
|
+
});
|
|
64
|
+
}, [options.length]);
|
|
65
|
+
var localDispatch = useCallback(function (action) {
|
|
66
|
+
switch (action.type) {
|
|
67
|
+
case ActionType.TOGGLE_RADIO:
|
|
68
|
+
setSelectedRadioId(action.payload.id);
|
|
69
|
+
break;
|
|
70
|
+
case ActionType.LOAD_MORE:
|
|
71
|
+
handleLoadMore();
|
|
72
|
+
break;
|
|
73
|
+
default:
|
|
74
|
+
appDispatch(action);
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}, [appDispatch, handleLoadMore]);
|
|
78
|
+
useLayoutEffect(function () {
|
|
79
|
+
var _a;
|
|
80
|
+
var index = scrollToIndexRef.current;
|
|
81
|
+
if (index == null)
|
|
82
|
+
return;
|
|
83
|
+
scrollToIndexRef.current = null;
|
|
84
|
+
var option = options[index];
|
|
85
|
+
var optionId = (_a = option === null || option === void 0 ? void 0 : option.data) === null || _a === void 0 ? void 0 : _a.id;
|
|
86
|
+
if (!optionId)
|
|
87
|
+
return;
|
|
88
|
+
var element = document.getElementById(getOptionDomId(optionId));
|
|
89
|
+
element === null || element === void 0 ? void 0 : element.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
90
|
+
}, [visibleCount, options]);
|
|
91
|
+
var localDispatchAll = useCallback(function (actions) { return actions.forEach(localDispatch); }, [localDispatch]);
|
|
92
|
+
return (jsx(ChatDispatchProvider, __assign({ dispatch: localDispatch, dispatchAll: localDispatchAll }, { children: jsxs(Container, __assign({ css: staticStyles.root }, { children: [jsx(Container, __assign({ css: staticStyles.selectionOptionRoot }, { children: visibleOptions.map(function (option, index) {
|
|
93
|
+
var id = ((option === null || option === void 0 ? void 0 : option.data) || {}).id;
|
|
94
|
+
var isChecked = selectedRadioId === id;
|
|
95
|
+
var showDivider = index < visibleOptions.length - 1;
|
|
96
|
+
var enrichedRadioSelectionItemProps = __assign(__assign({}, option), { data: __assign(__assign({}, option.data), { checked: isChecked }) });
|
|
97
|
+
return (jsxs(Fragment, { children: [jsx(WidgetGenerator, __assign({}, enrichedRadioSelectionItemProps)), showDivider && (jsx(Divider, { type: "solid", borderColor: theme.color.border.disabledDark }))] }, id !== null && id !== void 0 ? id : index));
|
|
98
|
+
}) })), showLoadMoreButton && action && jsx(WidgetGenerator, __assign({}, action))] })) })));
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
var RadioSelectionItem = function (_a) {
|
|
102
|
+
var data = _a.data, events = _a.events;
|
|
103
|
+
var theme = useTheme();
|
|
104
|
+
var dispatchAll = useAppDispatch().dispatchAll;
|
|
105
|
+
var _b = data || {}, id = _b.id, label = _b.label, _c = _b.subheading, subheading = _c === void 0 ? '' : _c, _d = _b.checked, checked = _d === void 0 ? false : _d;
|
|
106
|
+
var onClick = (events || {}).onClick;
|
|
107
|
+
var dispatch = useDispatch();
|
|
108
|
+
var staticStyles = useMemo(function () { return getRadioSelectionStyle(theme); }, [theme]);
|
|
109
|
+
var optionDomId = id ? getOptionDomId(id) : undefined;
|
|
110
|
+
var handleOnChange = function (id) {
|
|
111
|
+
dispatch({
|
|
112
|
+
type: ActionType.TOGGLE_RADIO,
|
|
113
|
+
payload: { id: id },
|
|
114
|
+
});
|
|
115
|
+
dispatchAll(onClick);
|
|
116
|
+
};
|
|
117
|
+
if (!id)
|
|
118
|
+
return null;
|
|
119
|
+
return (jsxs(Container, __assign({ id: optionDomId, css: staticStyles.selectionOptionItem }, { children: [jsx(Radio, { id: id, onChange: function () { return handleOnChange(id); }, checked: checked }), jsxs(Container, __assign({ css: staticStyles.selectionOptionContent }, { children: [jsx(Typography, __assign({ variant: TypographyVariant.L3, color: TypographyColor.PRIMARY, lineClamp: 1 }, { children: label })), subheading && (jsx(Typography, __assign({ variant: TypographyVariant.P3, color: TypographyColor.SUBHEADING, lineClamp: 1 }, { children: subheading })))] }))] })));
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { RadioSelection, RadioSelectionItem };
|
|
123
|
+
//# sourceMappingURL=talos-radio-selection.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talos-radio-selection.esm.js","sources":["../packages/components/radio-selection/src/style.ts","../packages/components/radio-selection/src/util.ts","../packages/components/radio-selection/src/RadioSelection.tsx","../packages/components/radio-selection/src/RadioSelectionItem.tsx"],"sourcesContent":[null,null,null,null],"names":["_jsx","_jsxs"],"mappings":"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"}
|