@cxpinsight/react-native 0.21.0 → 0.22.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 +15 -0
- package/lib/CXPinsightProvider.d.ts.map +1 -1
- package/lib/CXPinsightProvider.js +3 -0
- package/lib/CXPinsightProvider.js.map +1 -1
- package/lib/survey/SurveyModal.d.ts +4 -1
- package/lib/survey/SurveyModal.d.ts.map +1 -1
- package/lib/survey/SurveyModal.js +22 -5
- package/lib/survey/SurveyModal.js.map +1 -1
- package/lib/survey/questions/MultipleChoiceQuestion.d.ts +11 -2
- package/lib/survey/questions/MultipleChoiceQuestion.d.ts.map +1 -1
- package/lib/survey/questions/MultipleChoiceQuestion.js +64 -5
- package/lib/survey/questions/MultipleChoiceQuestion.js.map +1 -1
- package/lib/survey/questions/RatingQuestion.d.ts +30 -2
- package/lib/survey/questions/RatingQuestion.d.ts.map +1 -1
- package/lib/survey/questions/RatingQuestion.js +126 -16
- package/lib/survey/questions/RatingQuestion.js.map +1 -1
- package/lib/survey/styleContract.d.ts +25 -0
- package/lib/survey/styleContract.d.ts.map +1 -1
- package/lib/survey/styleContract.js +37 -0
- package/lib/survey/styleContract.js.map +1 -1
- package/lib/types.d.ts +10 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -2
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readableOn = readableOn;
|
|
3
4
|
exports.MultipleChoiceQuestion = MultipleChoiceQuestion;
|
|
4
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
6
|
const react_native_1 = require("react-native");
|
|
6
7
|
const styleContract_1 = require("../styleContract");
|
|
8
|
+
/** Dark or light text, whichever reads on a solid `bg`. Non-hex → `fallback`. */
|
|
9
|
+
function readableOn(bg, fallback) {
|
|
10
|
+
const m = /^#([0-9a-f]{6})([0-9a-f]{2})?$/i.exec(bg || '');
|
|
11
|
+
if (!m)
|
|
12
|
+
return fallback;
|
|
13
|
+
const n = parseInt(m[1], 16);
|
|
14
|
+
const lin = (v) => { const x = v / 255; return x <= 0.03928 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); };
|
|
15
|
+
const L = 0.2126 * lin((n >> 16) & 255) + 0.7152 * lin((n >> 8) & 255) + 0.0722 * lin(n & 255);
|
|
16
|
+
return L > 0.4 ? '#030712' : '#ffffff';
|
|
17
|
+
}
|
|
7
18
|
function getChoiceValue(choice) {
|
|
8
19
|
return typeof choice === 'string' ? choice : choice.value;
|
|
9
20
|
}
|
|
10
21
|
function getChoiceText(choice) {
|
|
11
22
|
return typeof choice === 'string' ? choice : choice.text;
|
|
12
23
|
}
|
|
13
|
-
function MultipleChoiceQuestion({ choices, value, onChange, mode, primaryColor, isRtl, palette, contract, }) {
|
|
24
|
+
function MultipleChoiceQuestion({ choices, value, onChange, mode, primaryColor, isRtl, palette, contract, optionLayout, explicit, }) {
|
|
14
25
|
const c = contract ?? styleContract_1.DARK_CONTRACT;
|
|
26
|
+
const ex = explicit ?? {};
|
|
27
|
+
const isChips = optionLayout === 'chips';
|
|
15
28
|
const restBg = palette?.input ?? c.optionBg;
|
|
16
29
|
const restBorder = palette?.inputBorder ?? c.optionBorder;
|
|
17
|
-
|
|
18
|
-
const
|
|
30
|
+
// optionText / optionSelectedText refine the tiers the row always used.
|
|
31
|
+
const restText = c.optionText ?? palette?.textSecondary ?? c.textSecondary;
|
|
32
|
+
const selTextRow = c.optionSelectedText ?? palette?.textPrimary ?? c.textPrimary;
|
|
33
|
+
const fontSize = c.optionFontSize ?? c.fontSizeLabel;
|
|
19
34
|
const indBorder = palette?.indicatorBorder ?? c.indicatorBorder;
|
|
20
35
|
// The shipped code derived the selected tint as `${primaryColor}1A`. Preserved
|
|
21
36
|
// exactly: an explicit primaryColor still wins, and the contract's default is
|
|
@@ -28,7 +43,18 @@ function MultipleChoiceQuestion({ choices, value, onChange, mode, primaryColor,
|
|
|
28
43
|
// so the row's border changed and the one mark that says which option is
|
|
29
44
|
// chosen stayed on the brand colour. Reported on both renderers at once,
|
|
30
45
|
// which is what a shared default and two separate code paths produce.
|
|
31
|
-
|
|
46
|
+
// An indicatorChecked set BY NAME still wins — it is the control labelled
|
|
47
|
+
// "Ring when chosen", and the resolved contract always holds a default for
|
|
48
|
+
// it, so only the explicit set can say an author asked.
|
|
49
|
+
const indChecked = primaryColor ?? ex.indicatorChecked ?? c.optionSelectedBorder ?? c.indicatorChecked;
|
|
50
|
+
// ── chips ─────────────────────────────────────────────────────────────
|
|
51
|
+
// A chip has no indicator, so the chip itself is the mark: chosen is a
|
|
52
|
+
// SOLID accent fill (the studio's stated default), with label text picked to
|
|
53
|
+
// read on it. Corners: a pill for single select, a soft square for multi —
|
|
54
|
+
// the web SDK's chip shapes — unless optionRadius was set by name.
|
|
55
|
+
const chipRadius = ex.optionRadius ?? (mode === 'checkbox' ? 8 : 999);
|
|
56
|
+
const chipSelBg = ex.optionSelectedBg ?? primaryColor ?? c.accent;
|
|
57
|
+
const chipSelText = c.optionSelectedText ?? readableOn(chipSelBg, c.accentText);
|
|
32
58
|
const isMulti = mode === 'checkbox';
|
|
33
59
|
const selectedValues = isMulti
|
|
34
60
|
? (Array.isArray(value) ? value : value ? [value] : [])
|
|
@@ -50,6 +76,22 @@ function MultipleChoiceQuestion({ choices, value, onChange, mode, primaryColor,
|
|
|
50
76
|
onChange(choiceValue);
|
|
51
77
|
}
|
|
52
78
|
}
|
|
79
|
+
if (isChips) {
|
|
80
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.container, styles.chipWrap, isRtl && styles.rtlRow], children: choices.map((choice) => {
|
|
81
|
+
const cv = getChoiceValue(choice);
|
|
82
|
+
const ct = getChoiceText(choice);
|
|
83
|
+
const isSelected = isMulti ? selectedValues.includes(cv) : selectedSingle === cv;
|
|
84
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { style: [
|
|
85
|
+
styles.chip,
|
|
86
|
+
isMulti ? styles.chipSquare : styles.chipPill,
|
|
87
|
+
{ backgroundColor: restBg, borderColor: restBorder, borderRadius: chipRadius },
|
|
88
|
+
isSelected && { backgroundColor: chipSelBg, borderColor: selBorder },
|
|
89
|
+
], onPress: () => handlePress(cv), activeOpacity: 0.7, accessibilityRole: isMulti ? 'checkbox' : 'radio', accessibilityState: { checked: isSelected }, accessibilityLabel: ct, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
|
|
90
|
+
{ color: isSelected ? chipSelText : restText, fontSize, fontFamily: c.fontFamily },
|
|
91
|
+
isRtl && styles.rtlText,
|
|
92
|
+
], children: ct }) }, cv));
|
|
93
|
+
}) }));
|
|
94
|
+
}
|
|
53
95
|
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.container, children: choices.map((choice) => {
|
|
54
96
|
const cv = getChoiceValue(choice);
|
|
55
97
|
const ct = getChoiceText(choice);
|
|
@@ -70,7 +112,7 @@ function MultipleChoiceQuestion({ choices, value, onChange, mode, primaryColor,
|
|
|
70
112
|
isSelected && { borderColor: indChecked },
|
|
71
113
|
], children: isSelected && ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.checkmark, { color: indChecked }], children: isMulti ? '✓' : '●' })) }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
|
|
72
114
|
styles.optionText,
|
|
73
|
-
{ color: isSelected ?
|
|
115
|
+
{ color: isSelected ? selTextRow : restText, fontSize, fontFamily: c.fontFamily },
|
|
74
116
|
isRtl && styles.rtlText,
|
|
75
117
|
], children: ct })] }, cv));
|
|
76
118
|
}) }));
|
|
@@ -91,6 +133,23 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
91
133
|
rtlRow: {
|
|
92
134
|
flexDirection: 'row-reverse',
|
|
93
135
|
},
|
|
136
|
+
chipWrap: {
|
|
137
|
+
flexDirection: 'row',
|
|
138
|
+
flexWrap: 'wrap',
|
|
139
|
+
},
|
|
140
|
+
chip: {
|
|
141
|
+
borderWidth: 1,
|
|
142
|
+
paddingVertical: 8,
|
|
143
|
+
alignItems: 'center',
|
|
144
|
+
justifyContent: 'center',
|
|
145
|
+
},
|
|
146
|
+
// The web SDK's chip padding: 16 across a pill, 14 across a square.
|
|
147
|
+
chipPill: {
|
|
148
|
+
paddingHorizontal: 16,
|
|
149
|
+
},
|
|
150
|
+
chipSquare: {
|
|
151
|
+
paddingHorizontal: 14,
|
|
152
|
+
},
|
|
94
153
|
indicator: {
|
|
95
154
|
width: 22,
|
|
96
155
|
height: 22,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultipleChoiceQuestion.js","sourceRoot":"","sources":["../../../src/survey/questions/MultipleChoiceQuestion.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultipleChoiceQuestion.js","sourceRoot":"","sources":["../../../src/survey/questions/MultipleChoiceQuestion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import type { ThemePalette } from '../themePalette';
|
|
2
|
-
import { type SurveyStyleContract } from '../styleContract';
|
|
2
|
+
import { type SurveyStyleContract, type StyleOverride } from '../styleContract';
|
|
3
|
+
export type RatingType = 'star' | 'number' | 'smiley' | 'thumb';
|
|
3
4
|
interface Props {
|
|
4
5
|
value: number | null;
|
|
5
6
|
onChange: (value: number) => void;
|
|
7
|
+
/** Lowest value on the scale. Defaults to 1. */
|
|
8
|
+
rateMin?: number;
|
|
6
9
|
rateMax?: number;
|
|
10
|
+
/**
|
|
11
|
+
* star | number | smiley | thumb. Omitted means 'number' — the boxed scale
|
|
12
|
+
* this component has always drawn (matrix cells rely on it). SurveyModal
|
|
13
|
+
* passes the question's own type, defaulting to 'star' like the web SDK.
|
|
14
|
+
*/
|
|
15
|
+
ratingType?: RatingType | string;
|
|
16
|
+
/** Captions under the first and last button. */
|
|
17
|
+
minLabel?: string;
|
|
18
|
+
maxLabel?: string;
|
|
7
19
|
/**
|
|
8
20
|
* @deprecated Superseded by `contract.ratingFilledBg`. Still honoured so
|
|
9
21
|
* existing callers keep working; drop once SurveyModal passes `contract`
|
|
@@ -14,7 +26,23 @@ interface Props {
|
|
|
14
26
|
palette?: ThemePalette;
|
|
15
27
|
/** Full style contract. Every colour, radius and type size comes from here. */
|
|
16
28
|
contract?: SurveyStyleContract;
|
|
29
|
+
/**
|
|
30
|
+
* The contract fields set BY NAME (explicitContractFields). A bare glyph has
|
|
31
|
+
* no box today, so its box colours are read only when someone asked for one —
|
|
32
|
+
* the resolved contract always carries a value and cannot tell us that.
|
|
33
|
+
*/
|
|
34
|
+
explicit?: StyleOverride;
|
|
17
35
|
}
|
|
18
|
-
|
|
36
|
+
/**
|
|
37
|
+
* The glyph for the idx-th button (0-based) of a `count`-long scale.
|
|
38
|
+
*
|
|
39
|
+
* THE WEB SDK'S RULES (survey.js _cxpQ_rating), not the link renderer's. The
|
|
40
|
+
* two disagree: link buckets smileys by VALUE (n ≤ 1 → 😞 … ≥ 5 → 😊) and
|
|
41
|
+
* thumbs by n ≤ 1, so a 0–10 scale there is ten thumbs-up; web spreads the
|
|
42
|
+
* five faces across the scale's POSITION and splits thumbs at the midpoint.
|
|
43
|
+
* Web is the reference for the app, so the phone draws what the web widget does.
|
|
44
|
+
*/
|
|
45
|
+
export declare function ratingGlyph(type: string, idx: number, count: number, min: number, filled: boolean): string;
|
|
46
|
+
export declare function RatingQuestion({ value, onChange, rateMin, rateMax, ratingType, minLabel, maxLabel, primaryColor, palette, contract, explicit, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
19
47
|
export {};
|
|
20
48
|
//# sourceMappingURL=RatingQuestion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingQuestion.d.ts","sourceRoot":"","sources":["../../../src/survey/questions/RatingQuestion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"RatingQuestion.d.ts","sourceRoot":"","sources":["../../../src/survey/questions/RatingQuestion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAKD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAU1G;AAOD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EAAE,QAAQ,EAAE,OAAW,EAAE,OAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EACzE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAC1C,EAAE,KAAK,2CAqHP"}
|
|
@@ -1,33 +1,123 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ratingGlyph = ratingGlyph;
|
|
3
4
|
exports.RatingQuestion = RatingQuestion;
|
|
4
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
6
|
const react_native_1 = require("react-native");
|
|
6
7
|
const styleContract_1 = require("../styleContract");
|
|
7
|
-
|
|
8
|
+
const RATING_TYPES = ['star', 'number', 'smiley', 'thumb'];
|
|
9
|
+
const FACES = ['😠', '🙁', '😐', '🙂', '😄'];
|
|
10
|
+
/**
|
|
11
|
+
* The glyph for the idx-th button (0-based) of a `count`-long scale.
|
|
12
|
+
*
|
|
13
|
+
* THE WEB SDK'S RULES (survey.js _cxpQ_rating), not the link renderer's. The
|
|
14
|
+
* two disagree: link buckets smileys by VALUE (n ≤ 1 → 😞 … ≥ 5 → 😊) and
|
|
15
|
+
* thumbs by n ≤ 1, so a 0–10 scale there is ten thumbs-up; web spreads the
|
|
16
|
+
* five faces across the scale's POSITION and splits thumbs at the midpoint.
|
|
17
|
+
* Web is the reference for the app, so the phone draws what the web widget does.
|
|
18
|
+
*/
|
|
19
|
+
function ratingGlyph(type, idx, count, min, filled) {
|
|
20
|
+
if (type === 'number')
|
|
21
|
+
return String(min + idx);
|
|
22
|
+
// Unfilled star is the outline — the shipped mobile look (CSATQuestion).
|
|
23
|
+
if (type === 'star')
|
|
24
|
+
return filled ? '★' : '☆';
|
|
25
|
+
if (type === 'smiley')
|
|
26
|
+
return FACES[count <= 1 ? 4 : Math.round((idx / (count - 1)) * 4)];
|
|
27
|
+
if (type === 'thumb') {
|
|
28
|
+
const mid = (count - 1) / 2;
|
|
29
|
+
return idx < mid ? '👎' : idx > mid ? '👍' : '👐';
|
|
30
|
+
}
|
|
31
|
+
return String(min + idx);
|
|
32
|
+
}
|
|
33
|
+
/** `#rrggbb` + alpha byte; anything else (rgba(), names) is returned as is. */
|
|
34
|
+
function tint(color, alphaHex) {
|
|
35
|
+
return /^#[0-9a-f]{6}$/i.test(color) ? `${color}${alphaHex}` : color;
|
|
36
|
+
}
|
|
37
|
+
function RatingQuestion({ value, onChange, rateMin = 1, rateMax = 5, ratingType, minLabel, maxLabel, primaryColor, palette, contract, explicit, }) {
|
|
8
38
|
// Resolution order preserves existing behaviour exactly:
|
|
9
39
|
// contract (new, widest) ▸ palette + primaryColor (legacy) ▸ dark defaults.
|
|
10
40
|
// DARK_CONTRACT's values are byte-identical to the literals this file used to
|
|
11
41
|
// hardcode, so an unstyled render is unchanged.
|
|
12
42
|
const c = contract ?? styleContract_1.DARK_CONTRACT;
|
|
43
|
+
const ex = explicit ?? {};
|
|
44
|
+
const type = typeof ratingType === 'string' && RATING_TYPES.includes(ratingType.toLowerCase())
|
|
45
|
+
? ratingType.toLowerCase()
|
|
46
|
+
: 'number';
|
|
47
|
+
const isGlyph = type !== 'number';
|
|
48
|
+
const isStar = type === 'star';
|
|
49
|
+
const lo = Number.isFinite(rateMin) ? Math.round(rateMin) : 1;
|
|
50
|
+
const hi = Number.isFinite(rateMax) && rateMax >= lo ? Math.round(rateMax) : lo + 4;
|
|
51
|
+
const count = hi - lo + 1;
|
|
13
52
|
const restBg = palette?.input ?? c.ratingBg;
|
|
14
53
|
const restBorder = palette?.inputBorder ?? c.ratingBorder;
|
|
15
54
|
const restText = palette?.textSecondary ?? c.ratingText;
|
|
16
55
|
const fillBg = primaryColor ?? c.ratingFilledBg;
|
|
17
56
|
const fillBorder = primaryColor ?? c.ratingFilledBorder;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
57
|
+
// ── per-type look ──────────────────────────────────────────────────────
|
|
58
|
+
// Numbers: the boxed scale, every key from the resolved contract.
|
|
59
|
+
// Glyphs: bare symbols — exactly the shipped CSATQuestion star (36pt, no box,
|
|
60
|
+
// ☆ in ratingEmpty, ★ in the accent) — with a box only where one was asked for.
|
|
61
|
+
const fontSize = c.ratingFontSize ?? (isGlyph ? 36 : 16);
|
|
62
|
+
const size = c.ratingSize;
|
|
63
|
+
let restStyle;
|
|
64
|
+
let fillStyle;
|
|
65
|
+
let restGlyph;
|
|
66
|
+
let fillGlyph;
|
|
67
|
+
if (!isGlyph) {
|
|
68
|
+
restStyle = { backgroundColor: restBg, borderColor: restBorder, borderRadius: c.ratingRadius };
|
|
69
|
+
fillStyle = { backgroundColor: fillBg, borderColor: fillBorder };
|
|
70
|
+
restGlyph = restText;
|
|
71
|
+
fillGlyph = c.ratingFilledText;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const gRestBg = ex.ratingBg ?? 'transparent';
|
|
75
|
+
const gRestBorder = ex.ratingBorder ?? 'transparent';
|
|
76
|
+
restStyle = { backgroundColor: gRestBg, borderColor: gRestBorder, borderRadius: c.ratingRadius };
|
|
77
|
+
if (isStar) {
|
|
78
|
+
// Cumulative fill: every star up to the value. The filled star was the
|
|
79
|
+
// accent (ratingFilledBg) with no box; an authored chosen fill adds the
|
|
80
|
+
// box, and then the glyph moves to ratingFilledText so it stays legible.
|
|
81
|
+
fillStyle = {
|
|
82
|
+
backgroundColor: ex.ratingFilledBg ?? gRestBg,
|
|
83
|
+
borderColor: ex.ratingFilledBorder ?? gRestBorder,
|
|
84
|
+
};
|
|
85
|
+
restGlyph = ex.ratingEmpty ?? ex.ratingText ?? palette?.indicatorBorder ?? c.ratingEmpty;
|
|
86
|
+
fillGlyph = ex.ratingFilledText ?? (ex.ratingFilledBg ? c.ratingFilledText : fillBg);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Smileys and thumbs are colour emoji: a glyph colour cannot show the
|
|
90
|
+
// choice, so the chosen one sits on a tinted box (the link page's look).
|
|
91
|
+
fillStyle = {
|
|
92
|
+
backgroundColor: ex.ratingFilledBg ?? tint(fillBg, '1F'),
|
|
93
|
+
borderColor: ex.ratingFilledBorder ?? fillBorder,
|
|
94
|
+
};
|
|
95
|
+
restGlyph = ex.ratingText ?? restText;
|
|
96
|
+
fillGlyph = ex.ratingFilledText ?? restGlyph;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Numbers keep their 48pt box unless resized; a glyph has no size of its own
|
|
100
|
+
// until one is asked for.
|
|
101
|
+
const sizeStyle = isGlyph
|
|
102
|
+
? (size != null ? { minWidth: size, height: size, paddingVertical: 0 } : null)
|
|
103
|
+
: { minWidth: size ?? 48, height: size ?? 48 };
|
|
104
|
+
const captionMin = minLabel || '';
|
|
105
|
+
const captionMax = maxLabel || '';
|
|
106
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.container, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.row, { gap: isGlyph ? 8 : c.fieldGap }], children: Array.from({ length: count }, (_, i) => {
|
|
107
|
+
const num = lo + i;
|
|
108
|
+
// Stars fill cumulatively; every other type marks the one chosen.
|
|
109
|
+
const filled = isStar ? value != null && num <= value : value === num;
|
|
110
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { style: [
|
|
111
|
+
isGlyph ? styles.glyphButton : styles.button,
|
|
112
|
+
restStyle,
|
|
113
|
+
sizeStyle,
|
|
114
|
+
filled && fillStyle,
|
|
115
|
+
], onPress: () => onChange(num), activeOpacity: 0.7, accessibilityRole: "button", accessibilityState: { selected: filled }, accessibilityLabel: `${num} of ${hi}`, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
|
|
116
|
+
isGlyph ? styles.glyphText : styles.buttonText,
|
|
117
|
+
{ color: restGlyph, fontSize },
|
|
118
|
+
filled && { color: fillGlyph },
|
|
119
|
+
], children: ratingGlyph(type, i, count, lo, filled) }) }, num));
|
|
120
|
+
}) }), (captionMin || captionMax) ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.captions, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: c.textMuted, fontSize: c.fontSizeSmall, fontFamily: c.fontFamily }, children: captionMin }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: c.textMuted, fontSize: c.fontSizeSmall, fontFamily: c.fontFamily, textAlign: 'right' }, children: captionMax })] })) : null] }));
|
|
31
121
|
}
|
|
32
122
|
/* Layout only — every colour, radius and gap now comes from the contract. */
|
|
33
123
|
const styles = react_native_1.StyleSheet.create({
|
|
@@ -37,10 +127,13 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
37
127
|
},
|
|
38
128
|
row: {
|
|
39
129
|
flexDirection: 'row',
|
|
130
|
+
// Only bites when the scale is wider than the card (a 0–10 numeric
|
|
131
|
+
// scale); a scale that fits lays out exactly as before.
|
|
132
|
+
flexWrap: 'wrap',
|
|
133
|
+
justifyContent: 'center',
|
|
40
134
|
},
|
|
135
|
+
// Size comes from ratingSize (48 unset — the shipped box).
|
|
41
136
|
button: {
|
|
42
|
-
width: 48,
|
|
43
|
-
height: 48,
|
|
44
137
|
borderWidth: 1,
|
|
45
138
|
alignItems: 'center',
|
|
46
139
|
justifyContent: 'center',
|
|
@@ -49,5 +142,22 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
49
142
|
fontSize: 16,
|
|
50
143
|
fontWeight: '600',
|
|
51
144
|
},
|
|
145
|
+
// The shipped star button (CSATQuestion.starButton: padding 4). The 1pt
|
|
146
|
+
// border is transparent unless authored, so 3 + 1 keeps the same footprint.
|
|
147
|
+
glyphButton: {
|
|
148
|
+
padding: 3,
|
|
149
|
+
borderWidth: 1,
|
|
150
|
+
alignItems: 'center',
|
|
151
|
+
justifyContent: 'center',
|
|
152
|
+
},
|
|
153
|
+
glyphText: {
|
|
154
|
+
fontSize: 36,
|
|
155
|
+
},
|
|
156
|
+
captions: {
|
|
157
|
+
alignSelf: 'stretch',
|
|
158
|
+
flexDirection: 'row',
|
|
159
|
+
justifyContent: 'space-between',
|
|
160
|
+
marginTop: 8,
|
|
161
|
+
},
|
|
52
162
|
});
|
|
53
163
|
//# sourceMappingURL=RatingQuestion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingQuestion.js","sourceRoot":"","sources":["../../../src/survey/questions/RatingQuestion.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RatingQuestion.js","sourceRoot":"","sources":["../../../src/survey/questions/RatingQuestion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,13 @@ export interface SurveyStyleContract {
|
|
|
85
85
|
indicatorBorder: string;
|
|
86
86
|
/** The ring/fill when selected. */
|
|
87
87
|
indicatorChecked: string;
|
|
88
|
+
/** Option label size. Unset → fontSizeLabel. */
|
|
89
|
+
optionFontSize?: number;
|
|
90
|
+
/** Option label colour at rest. Unset → textSecondary. */
|
|
91
|
+
optionText?: string;
|
|
92
|
+
/** Chosen option label colour. Unset → textPrimary (list); on a chip, a
|
|
93
|
+
* colour that reads on the chip's solid fill. */
|
|
94
|
+
optionSelectedText?: string;
|
|
88
95
|
ratingBg: string;
|
|
89
96
|
ratingBorder: string;
|
|
90
97
|
ratingText: string;
|
|
@@ -96,6 +103,13 @@ export interface SurveyStyleContract {
|
|
|
96
103
|
ratingFilledBg: string;
|
|
97
104
|
ratingFilledBorder: string;
|
|
98
105
|
ratingFilledText: string;
|
|
106
|
+
/** Each scale button's height and min width. Optional because the shipped
|
|
107
|
+
* default differs by ratingType — a 48pt box for numbers, the glyph's own
|
|
108
|
+
* size for stars — so one number here could not leave both unchanged. */
|
|
109
|
+
ratingSize?: number;
|
|
110
|
+
/** The number / glyph size inside a scale button. Unset → 16 for numbers,
|
|
111
|
+
* 36 for stars, smileys and thumbs (the shipped literals). */
|
|
112
|
+
ratingFontSize?: number;
|
|
99
113
|
buttonRadius: number;
|
|
100
114
|
/** The ✕ — its disc, and where the disc sits.
|
|
101
115
|
*
|
|
@@ -206,6 +220,17 @@ export declare function resolveStyleContract(args: {
|
|
|
206
220
|
initOverride?: StyleOverride | null;
|
|
207
221
|
surveyOverride?: StyleOverride | null;
|
|
208
222
|
}): SurveyStyleContract;
|
|
223
|
+
/**
|
|
224
|
+
* The contract fields an author (or the host app) set BY NAME — not via the
|
|
225
|
+
* authored-palette fan-out, and not via primaryColor or a theme default.
|
|
226
|
+
*
|
|
227
|
+
* Some surfaces have no box today (a star is a bare glyph, a chip is new) yet
|
|
228
|
+
* the contract always holds a value for ratingBg, optionRadius and friends.
|
|
229
|
+
* Reading those unconditionally would put a box behind every star. The
|
|
230
|
+
* renderer needs to know "did someone ask for this?", and the resolved
|
|
231
|
+
* contract cannot say. Layers are given LOWEST first; later layers win.
|
|
232
|
+
*/
|
|
233
|
+
export declare function explicitContractFields(...layers: Array<Record<string, unknown> | null | undefined>): StyleOverride;
|
|
209
234
|
/** The 9-field shape shipped as `ThemePalette`. Kept working, derived not duplicated. */
|
|
210
235
|
export interface LegacyThemePalette {
|
|
211
236
|
card: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleContract.d.ts","sourceRoot":"","sources":["../../src/survey/styleContract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAIzC,MAAM,WAAW,mBAAmB;IAElC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IAGnB;;2DAEuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;0DAMsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB;;+EAE2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB;2EACuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IAGpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAGlB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"styleContract.d.ts","sourceRoot":"","sources":["../../src/survey/styleContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
31
|
exports.CSS_VAR_MAP = exports.LIGHT_CONTRACT = exports.DARK_CONTRACT = void 0;
|
|
32
32
|
exports.resolveStyleContract = resolveStyleContract;
|
|
33
|
+
exports.explicitContractFields = explicitContractFields;
|
|
33
34
|
exports.toLegacyPalette = toLegacyPalette;
|
|
34
35
|
exports.fromAuthoredPalette = fromAuthoredPalette;
|
|
35
36
|
/* ------------------------------------------------------------------ defaults */
|
|
@@ -67,6 +68,14 @@ const SHARED = {
|
|
|
67
68
|
cardPaddingRight: undefined,
|
|
68
69
|
cardPaddingBottom: undefined,
|
|
69
70
|
cardPaddingLeft: undefined,
|
|
71
|
+
// Option / rating refinements — undefined for the same reason, and listed so
|
|
72
|
+
// fromAuthoredPalette's contract-name pass-through (which walks these keys)
|
|
73
|
+
// carries them. The renderer supplies the per-type fallback.
|
|
74
|
+
optionFontSize: undefined,
|
|
75
|
+
optionText: undefined,
|
|
76
|
+
optionSelectedText: undefined,
|
|
77
|
+
ratingSize: undefined,
|
|
78
|
+
ratingFontSize: undefined,
|
|
70
79
|
inputRadius: 6, // TextQuestion / DateQuestion — was 12
|
|
71
80
|
optionRadius: 8, // web parity — was 12 // MultipleChoiceQuestion row
|
|
72
81
|
ratingRadius: 6, // web parity — was 12 // RatingQuestion button
|
|
@@ -294,6 +303,34 @@ function resolveStyleContract(args) {
|
|
|
294
303
|
});
|
|
295
304
|
return out;
|
|
296
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* The contract fields an author (or the host app) set BY NAME — not via the
|
|
308
|
+
* authored-palette fan-out, and not via primaryColor or a theme default.
|
|
309
|
+
*
|
|
310
|
+
* Some surfaces have no box today (a star is a bare glyph, a chip is new) yet
|
|
311
|
+
* the contract always holds a value for ratingBg, optionRadius and friends.
|
|
312
|
+
* Reading those unconditionally would put a box behind every star. The
|
|
313
|
+
* renderer needs to know "did someone ask for this?", and the resolved
|
|
314
|
+
* contract cannot say. Layers are given LOWEST first; later layers win.
|
|
315
|
+
*/
|
|
316
|
+
function explicitContractFields(...layers) {
|
|
317
|
+
const names = new Set(Object.keys(exports.DARK_CONTRACT));
|
|
318
|
+
const out = {};
|
|
319
|
+
for (const layer of layers) {
|
|
320
|
+
if (!layer || typeof layer !== 'object')
|
|
321
|
+
continue;
|
|
322
|
+
for (const [k, v] of Object.entries(layer)) {
|
|
323
|
+
// `textMuted` is ambiguous between the two vocabularies (see
|
|
324
|
+
// fromAuthoredPalette) and no answer surface reads it by name.
|
|
325
|
+
if (!names.has(k) || k === 'textMuted')
|
|
326
|
+
continue;
|
|
327
|
+
if (v === undefined || v === null || v === '')
|
|
328
|
+
continue;
|
|
329
|
+
out[k] = v;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return out;
|
|
333
|
+
}
|
|
297
334
|
/** Existing callers of themePalette() keep the exact same shape. */
|
|
298
335
|
function toLegacyPalette(c) {
|
|
299
336
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleContract.js","sourceRoot":"","sources":["../../src/survey/styleContract.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG
|
|
1
|
+
{"version":3,"file":"styleContract.js","sourceRoot":"","sources":["../../src/survey/styleContract.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -393,6 +393,16 @@ export interface SurveyQuestion {
|
|
|
393
393
|
minLabel?: string;
|
|
394
394
|
maxLabel?: string;
|
|
395
395
|
rateMax?: number;
|
|
396
|
+
rateMin?: number;
|
|
397
|
+
/** star (default) | number | smiley | thumb — the web SDK's set. */
|
|
398
|
+
ratingType?: 'star' | 'number' | 'smiley' | 'thumb' | string;
|
|
399
|
+
/** SurveyJS-era caption aliases; minLabel/maxLabel win. */
|
|
400
|
+
minRateDescription?: string;
|
|
401
|
+
maxRateDescription?: string;
|
|
402
|
+
/** Per-value labels; the first and last become the end captions. */
|
|
403
|
+
rateLabels?: string[];
|
|
404
|
+
/** radio / checkbox: 'chips' draws a wrapping row of pills, no indicator. */
|
|
405
|
+
optionLayout?: 'list' | 'chips' | string;
|
|
396
406
|
yesLabel?: string;
|
|
397
407
|
noLabel?: string;
|
|
398
408
|
inputType?: 'email' | 'tel' | 'url' | 'number' | 'password' | 'text';
|