@pie-lib/text-select 4.0.5-next.20261012010413 → 4.0.5-next.20261013040832

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -21,6 +21,13 @@ export default class TextSelect extends React.Component {
21
21
  animationsDisabled: PropTypes.Requireable<boolean>;
22
22
  maxNoOfSelections: PropTypes.Requireable<number>;
23
23
  language: PropTypes.Requireable<string>;
24
+ eliminatedTokens: PropTypes.Requireable<(PropTypes.InferProps<{
25
+ start: PropTypes.Requireable<number>;
26
+ end: PropTypes.Requireable<number>;
27
+ }> | null | undefined)[]>;
28
+ };
29
+ static defaultProps: {
30
+ eliminatedTokens: never[];
24
31
  };
25
32
  change: any;
26
33
  render(): React.JSX.Element;
@@ -17,8 +17,13 @@ var s = o("@pie-lib:text-select"), c = class extends r.Component {
17
17
  highlightChoices: i.bool,
18
18
  animationsDisabled: i.bool,
19
19
  maxNoOfSelections: i.number,
20
- language: i.string
20
+ language: i.string,
21
+ eliminatedTokens: i.arrayOf(i.shape({
22
+ start: i.number,
23
+ end: i.number
24
+ }))
21
25
  };
26
+ static defaultProps = { eliminatedTokens: [] };
22
27
  change = (e) => {
23
28
  let { onChange: t } = this.props;
24
29
  t && t(e.filter((e) => e.selected).map((e) => ({
@@ -27,22 +32,23 @@ var s = o("@pie-lib:text-select"), c = class extends r.Component {
27
32
  })));
28
33
  };
29
34
  render() {
30
- let { text: t, disabled: r, tokens: i, selectedTokens: o, className: c, highlightChoices: l, maxNoOfSelections: u, animationsDisabled: d, language: f } = this.props, p = e(t, i);
31
- s("normalized: ", p);
32
- let m = p.map((e) => {
33
- let t = o.findIndex((t) => t.start === e.start && t.end === e.end) !== -1, n = t ? e.correct : void 0, i = e.isMissing;
35
+ let { text: t, disabled: r, tokens: i, selectedTokens: o, className: c, highlightChoices: l, maxNoOfSelections: u, animationsDisabled: d, language: f, eliminatedTokens: p } = this.props, m = e(t, i);
36
+ s("normalized: ", m);
37
+ let h = m.map((e) => {
38
+ let t = o.findIndex((t) => t.start === e.start && t.end === e.end) !== -1, n = t ? e.correct : void 0, i = e.isMissing, a = !!e.predefined && (p || []).some((t) => t.start === e.start && t.end === e.end);
34
39
  return {
35
40
  ...e,
36
41
  selectable: !r && e.predefined,
37
42
  selected: t,
38
43
  correct: n,
39
- isMissing: i
44
+ isMissing: i,
45
+ eliminated: a
40
46
  };
41
47
  });
42
48
  return /* @__PURE__ */ a(n, {
43
49
  highlightChoices: !r && l,
44
50
  className: c,
45
- tokens: m,
51
+ tokens: h,
46
52
  disabled: r,
47
53
  onChange: this.change,
48
54
  maxNoOfSelections: u,
@@ -57,7 +57,7 @@ var { translator: g } = m, _ = f("@pie-lib:text-select:token-select"), v = i("di
57
57
  };
58
58
  toggleAt = (e) => {
59
59
  let { tokens: t, animationsDisabled: n } = this.props, r = l(t), i = r[e];
60
- if (this.operable() && i && i.correct === void 0 && !n && !i.isMissing) {
60
+ if (this.operable() && i && i.correct === void 0 && !n && !i.isMissing && !i.eliminated) {
61
61
  let { onChange: n, maxNoOfSelections: a } = this.props, o = !i.selected;
62
62
  if (a === 1 && this.selectedCount() === 1) {
63
63
  let a = (t || []).filter((e) => e.selected), s = r.map((e) => u(e, a[0]) ? {
@@ -146,7 +146,7 @@ var { translator: g } = m, _ = f("@pie-lib:text-select:token-select"), v = i("di
146
146
  };
147
147
  return {
148
148
  html: (t || []).reduce((t, c, l) => {
149
- let h = c.selected || c.selectable && this.canSelectMore(o), _ = c.correct !== void 0 && (c.selectable || c.selected);
149
+ let h = !c.eliminated && (c.selected || c.selectable && this.canSelectMore(o)), _ = c.correct !== void 0 && (c.selectable || c.selected);
150
150
  if (c.text === "\n\n") return `${t}</p><p>`;
151
151
  if (c.text === "\n") return `${t}<br>`;
152
152
  if (u(c) || h && !n || _ || c.selected || c.isMissing || i && c.predefined) {
@@ -160,7 +160,7 @@ var { translator: g } = m, _ = f("@pie-lib:text-select:token-select"), v = i("di
160
160
  let e = C(c);
161
161
  e && (_ = m(e, g.t(S[e], { lng: a })));
162
162
  }
163
- return t + p(/* @__PURE__ */ s(e, {
163
+ return t + `<span data-token-start="${c.start}" data-token-end="${c.end}">` + p(/* @__PURE__ */ s(e, {
164
164
  disabled: n,
165
165
  index: l,
166
166
  ...c,
@@ -170,7 +170,7 @@ var { translator: g } = m, _ = f("@pie-lib:text-select:token-select"), v = i("di
170
170
  animationsDisabled: i,
171
171
  operable: o,
172
172
  describedBy: _
173
- }, l));
173
+ }, l)) + "</span>";
174
174
  }
175
175
  return t + b(c.text);
176
176
  }, "<p>") + "</p>",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/text-select",
3
- "version": "4.0.5-next.20261012010413",
3
+ "version": "4.0.5-next.20261013040832",
4
4
  "description": "Some react components for text selection",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,14 +12,14 @@
12
12
  "@emotion/styled": "^11.14.1",
13
13
  "@mui/icons-material": "^7.3.4",
14
14
  "@mui/material": "^7.3.4",
15
- "@pie-element/shared-utils": "0.1.5-next.20261012010413",
15
+ "@pie-element/shared-utils": "0.1.5-next.20261012213240",
16
16
  "@pie-framework/parse-english": "^1.0.0",
17
- "@pie-lib/render-ui": "8.0.5-next.20261012010413",
17
+ "@pie-lib/render-ui": "8.0.5-next.20261012213240",
18
18
  "@pie-lib/style-utils": "3.0.2-next.20261006160832",
19
19
  "@pie-lib/translator": "5.0.2-next.20261006160832",
20
20
  "debug": "^4.1.1",
21
21
  "prop-types": "^15.6.2",
22
- "@pie-element/shared-lodash": "0.1.3-next.20261006160832",
22
+ "@pie-element/shared-lodash": "0.1.3-next.20261012213240",
23
23
  "clsx": "^2.1.1"
24
24
  },
25
25
  "type": "module",