@pie-lib/text-select 1.29.1 → 1.29.3
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/esm/index.js +459 -2
- package/esm/index.js.map +1 -1
- package/package.json +6 -6
- package/LICENSE.md +0 -5
package/esm/index.js
CHANGED
|
@@ -15,8 +15,7 @@ import { noSelect } from '@pie-lib/style-utils';
|
|
|
15
15
|
import yellow from '@material-ui/core/colors/yellow';
|
|
16
16
|
import green from '@material-ui/core/colors/green';
|
|
17
17
|
import debug from 'debug';
|
|
18
|
-
import
|
|
19
|
-
import Close from '@material-ui/icons/Close';
|
|
18
|
+
import require$$3 from '@material-ui/core/SvgIcon';
|
|
20
19
|
import { renderToString } from 'react-dom/server';
|
|
21
20
|
import Translator from '@pie-lib/translator';
|
|
22
21
|
|
|
@@ -701,6 +700,464 @@ var index = withStyles(() => ({
|
|
|
701
700
|
noselect: _extends({}, noSelect())
|
|
702
701
|
}))(Tokenizer);
|
|
703
702
|
|
|
703
|
+
function getDefaultExportFromCjs (x) {
|
|
704
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
var Check$1 = {};
|
|
708
|
+
|
|
709
|
+
var interopRequireDefault = {exports: {}};
|
|
710
|
+
|
|
711
|
+
var hasRequiredInteropRequireDefault;
|
|
712
|
+
|
|
713
|
+
function requireInteropRequireDefault () {
|
|
714
|
+
if (hasRequiredInteropRequireDefault) return interopRequireDefault.exports;
|
|
715
|
+
hasRequiredInteropRequireDefault = 1;
|
|
716
|
+
(function (module) {
|
|
717
|
+
function _interopRequireDefault(obj) {
|
|
718
|
+
return obj && obj.__esModule ? obj : {
|
|
719
|
+
"default": obj
|
|
720
|
+
};
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
724
|
+
} (interopRequireDefault));
|
|
725
|
+
return interopRequireDefault.exports;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
var createSvgIcon = {};
|
|
729
|
+
|
|
730
|
+
var pure = {};
|
|
731
|
+
|
|
732
|
+
var shouldUpdate = {};
|
|
733
|
+
|
|
734
|
+
var inheritsLoose = {exports: {}};
|
|
735
|
+
|
|
736
|
+
var setPrototypeOf = {exports: {}};
|
|
737
|
+
|
|
738
|
+
var hasRequiredSetPrototypeOf;
|
|
739
|
+
|
|
740
|
+
function requireSetPrototypeOf () {
|
|
741
|
+
if (hasRequiredSetPrototypeOf) return setPrototypeOf.exports;
|
|
742
|
+
hasRequiredSetPrototypeOf = 1;
|
|
743
|
+
(function (module) {
|
|
744
|
+
function _setPrototypeOf(o, p) {
|
|
745
|
+
module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
746
|
+
o.__proto__ = p;
|
|
747
|
+
return o;
|
|
748
|
+
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
749
|
+
return _setPrototypeOf(o, p);
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
753
|
+
} (setPrototypeOf));
|
|
754
|
+
return setPrototypeOf.exports;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
var hasRequiredInheritsLoose;
|
|
758
|
+
|
|
759
|
+
function requireInheritsLoose () {
|
|
760
|
+
if (hasRequiredInheritsLoose) return inheritsLoose.exports;
|
|
761
|
+
hasRequiredInheritsLoose = 1;
|
|
762
|
+
(function (module) {
|
|
763
|
+
var setPrototypeOf = requireSetPrototypeOf();
|
|
764
|
+
|
|
765
|
+
function _inheritsLoose(subClass, superClass) {
|
|
766
|
+
subClass.prototype = Object.create(superClass.prototype);
|
|
767
|
+
subClass.prototype.constructor = subClass;
|
|
768
|
+
setPrototypeOf(subClass, superClass);
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
module.exports = _inheritsLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
772
|
+
} (inheritsLoose));
|
|
773
|
+
return inheritsLoose.exports;
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
var setDisplayName = {};
|
|
777
|
+
|
|
778
|
+
var setStatic = {};
|
|
779
|
+
|
|
780
|
+
var hasRequiredSetStatic;
|
|
781
|
+
|
|
782
|
+
function requireSetStatic () {
|
|
783
|
+
if (hasRequiredSetStatic) return setStatic;
|
|
784
|
+
hasRequiredSetStatic = 1;
|
|
785
|
+
|
|
786
|
+
setStatic.__esModule = true;
|
|
787
|
+
setStatic.default = void 0;
|
|
788
|
+
|
|
789
|
+
var setStatic$1 = function setStatic(key, value) {
|
|
790
|
+
return function (BaseComponent) {
|
|
791
|
+
/* eslint-disable no-param-reassign */
|
|
792
|
+
BaseComponent[key] = value;
|
|
793
|
+
/* eslint-enable no-param-reassign */
|
|
794
|
+
|
|
795
|
+
return BaseComponent;
|
|
796
|
+
};
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
var _default = setStatic$1;
|
|
800
|
+
setStatic.default = _default;
|
|
801
|
+
return setStatic;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
var hasRequiredSetDisplayName;
|
|
805
|
+
|
|
806
|
+
function requireSetDisplayName () {
|
|
807
|
+
if (hasRequiredSetDisplayName) return setDisplayName;
|
|
808
|
+
hasRequiredSetDisplayName = 1;
|
|
809
|
+
|
|
810
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
811
|
+
|
|
812
|
+
setDisplayName.__esModule = true;
|
|
813
|
+
setDisplayName.default = void 0;
|
|
814
|
+
|
|
815
|
+
var _setStatic = _interopRequireDefault(requireSetStatic());
|
|
816
|
+
|
|
817
|
+
var setDisplayName$1 = function setDisplayName(displayName) {
|
|
818
|
+
return (0, _setStatic.default)('displayName', displayName);
|
|
819
|
+
};
|
|
820
|
+
|
|
821
|
+
var _default = setDisplayName$1;
|
|
822
|
+
setDisplayName.default = _default;
|
|
823
|
+
return setDisplayName;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
var wrapDisplayName = {};
|
|
827
|
+
|
|
828
|
+
var getDisplayName = {};
|
|
829
|
+
|
|
830
|
+
var hasRequiredGetDisplayName;
|
|
831
|
+
|
|
832
|
+
function requireGetDisplayName () {
|
|
833
|
+
if (hasRequiredGetDisplayName) return getDisplayName;
|
|
834
|
+
hasRequiredGetDisplayName = 1;
|
|
835
|
+
|
|
836
|
+
getDisplayName.__esModule = true;
|
|
837
|
+
getDisplayName.default = void 0;
|
|
838
|
+
|
|
839
|
+
var getDisplayName$1 = function getDisplayName(Component) {
|
|
840
|
+
if (typeof Component === 'string') {
|
|
841
|
+
return Component;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
if (!Component) {
|
|
845
|
+
return undefined;
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
return Component.displayName || Component.name || 'Component';
|
|
849
|
+
};
|
|
850
|
+
|
|
851
|
+
var _default = getDisplayName$1;
|
|
852
|
+
getDisplayName.default = _default;
|
|
853
|
+
return getDisplayName;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
var hasRequiredWrapDisplayName;
|
|
857
|
+
|
|
858
|
+
function requireWrapDisplayName () {
|
|
859
|
+
if (hasRequiredWrapDisplayName) return wrapDisplayName;
|
|
860
|
+
hasRequiredWrapDisplayName = 1;
|
|
861
|
+
|
|
862
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
863
|
+
|
|
864
|
+
wrapDisplayName.__esModule = true;
|
|
865
|
+
wrapDisplayName.default = void 0;
|
|
866
|
+
|
|
867
|
+
var _getDisplayName = _interopRequireDefault(requireGetDisplayName());
|
|
868
|
+
|
|
869
|
+
var wrapDisplayName$1 = function wrapDisplayName(BaseComponent, hocName) {
|
|
870
|
+
return hocName + "(" + (0, _getDisplayName.default)(BaseComponent) + ")";
|
|
871
|
+
};
|
|
872
|
+
|
|
873
|
+
var _default = wrapDisplayName$1;
|
|
874
|
+
wrapDisplayName.default = _default;
|
|
875
|
+
return wrapDisplayName;
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
var hasRequiredShouldUpdate;
|
|
879
|
+
|
|
880
|
+
function requireShouldUpdate () {
|
|
881
|
+
if (hasRequiredShouldUpdate) return shouldUpdate;
|
|
882
|
+
hasRequiredShouldUpdate = 1;
|
|
883
|
+
|
|
884
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
885
|
+
|
|
886
|
+
shouldUpdate.__esModule = true;
|
|
887
|
+
shouldUpdate.default = void 0;
|
|
888
|
+
|
|
889
|
+
var _inheritsLoose2 = _interopRequireDefault(requireInheritsLoose());
|
|
890
|
+
|
|
891
|
+
var _react = React;
|
|
892
|
+
|
|
893
|
+
var _setDisplayName = _interopRequireDefault(requireSetDisplayName());
|
|
894
|
+
|
|
895
|
+
var _wrapDisplayName = _interopRequireDefault(requireWrapDisplayName());
|
|
896
|
+
|
|
897
|
+
var shouldUpdate$1 = function shouldUpdate(test) {
|
|
898
|
+
return function (BaseComponent) {
|
|
899
|
+
var factory = (0, _react.createFactory)(BaseComponent);
|
|
900
|
+
|
|
901
|
+
var ShouldUpdate =
|
|
902
|
+
/*#__PURE__*/
|
|
903
|
+
function (_Component) {
|
|
904
|
+
(0, _inheritsLoose2.default)(ShouldUpdate, _Component);
|
|
905
|
+
|
|
906
|
+
function ShouldUpdate() {
|
|
907
|
+
return _Component.apply(this, arguments) || this;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
var _proto = ShouldUpdate.prototype;
|
|
911
|
+
|
|
912
|
+
_proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
|
|
913
|
+
return test(this.props, nextProps);
|
|
914
|
+
};
|
|
915
|
+
|
|
916
|
+
_proto.render = function render() {
|
|
917
|
+
return factory(this.props);
|
|
918
|
+
};
|
|
919
|
+
|
|
920
|
+
return ShouldUpdate;
|
|
921
|
+
}(_react.Component);
|
|
922
|
+
|
|
923
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
924
|
+
return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
return ShouldUpdate;
|
|
928
|
+
};
|
|
929
|
+
};
|
|
930
|
+
|
|
931
|
+
var _default = shouldUpdate$1;
|
|
932
|
+
shouldUpdate.default = _default;
|
|
933
|
+
return shouldUpdate;
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
var shallowEqual = {};
|
|
937
|
+
|
|
938
|
+
/**
|
|
939
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
|
940
|
+
*
|
|
941
|
+
* This source code is licensed under the MIT license found in the
|
|
942
|
+
* LICENSE file in the root directory of this source tree.
|
|
943
|
+
*
|
|
944
|
+
* @typechecks
|
|
945
|
+
*
|
|
946
|
+
*/
|
|
947
|
+
|
|
948
|
+
var shallowEqual_1;
|
|
949
|
+
var hasRequiredShallowEqual$1;
|
|
950
|
+
|
|
951
|
+
function requireShallowEqual$1 () {
|
|
952
|
+
if (hasRequiredShallowEqual$1) return shallowEqual_1;
|
|
953
|
+
hasRequiredShallowEqual$1 = 1;
|
|
954
|
+
|
|
955
|
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
956
|
+
|
|
957
|
+
/**
|
|
958
|
+
* inlined Object.is polyfill to avoid requiring consumers ship their own
|
|
959
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
|
|
960
|
+
*/
|
|
961
|
+
function is(x, y) {
|
|
962
|
+
// SameValue algorithm
|
|
963
|
+
if (x === y) {
|
|
964
|
+
// Steps 1-5, 7-10
|
|
965
|
+
// Steps 6.b-6.e: +0 != -0
|
|
966
|
+
// Added the nonzero y check to make Flow happy, but it is redundant
|
|
967
|
+
return x !== 0 || y !== 0 || 1 / x === 1 / y;
|
|
968
|
+
} else {
|
|
969
|
+
// Step 6.a: NaN == NaN
|
|
970
|
+
return x !== x && y !== y;
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
/**
|
|
975
|
+
* Performs equality by iterating through keys on an object and returning false
|
|
976
|
+
* when any key has values which are not strictly equal between the arguments.
|
|
977
|
+
* Returns true when the values of all keys are strictly equal.
|
|
978
|
+
*/
|
|
979
|
+
function shallowEqual(objA, objB) {
|
|
980
|
+
if (is(objA, objB)) {
|
|
981
|
+
return true;
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
|
|
985
|
+
return false;
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
var keysA = Object.keys(objA);
|
|
989
|
+
var keysB = Object.keys(objB);
|
|
990
|
+
|
|
991
|
+
if (keysA.length !== keysB.length) {
|
|
992
|
+
return false;
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
// Test for A's keys different from B.
|
|
996
|
+
for (var i = 0; i < keysA.length; i++) {
|
|
997
|
+
if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
|
|
998
|
+
return false;
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
return true;
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
shallowEqual_1 = shallowEqual;
|
|
1006
|
+
return shallowEqual_1;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
var hasRequiredShallowEqual;
|
|
1010
|
+
|
|
1011
|
+
function requireShallowEqual () {
|
|
1012
|
+
if (hasRequiredShallowEqual) return shallowEqual;
|
|
1013
|
+
hasRequiredShallowEqual = 1;
|
|
1014
|
+
|
|
1015
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
1016
|
+
|
|
1017
|
+
shallowEqual.__esModule = true;
|
|
1018
|
+
shallowEqual.default = void 0;
|
|
1019
|
+
|
|
1020
|
+
var _shallowEqual = _interopRequireDefault(requireShallowEqual$1());
|
|
1021
|
+
|
|
1022
|
+
var _default = _shallowEqual.default;
|
|
1023
|
+
shallowEqual.default = _default;
|
|
1024
|
+
return shallowEqual;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
var hasRequiredPure;
|
|
1028
|
+
|
|
1029
|
+
function requirePure () {
|
|
1030
|
+
if (hasRequiredPure) return pure;
|
|
1031
|
+
hasRequiredPure = 1;
|
|
1032
|
+
|
|
1033
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
1034
|
+
|
|
1035
|
+
pure.__esModule = true;
|
|
1036
|
+
pure.default = void 0;
|
|
1037
|
+
|
|
1038
|
+
var _shouldUpdate = _interopRequireDefault(requireShouldUpdate());
|
|
1039
|
+
|
|
1040
|
+
var _shallowEqual = _interopRequireDefault(requireShallowEqual());
|
|
1041
|
+
|
|
1042
|
+
var _setDisplayName = _interopRequireDefault(requireSetDisplayName());
|
|
1043
|
+
|
|
1044
|
+
var _wrapDisplayName = _interopRequireDefault(requireWrapDisplayName());
|
|
1045
|
+
|
|
1046
|
+
var pure$1 = function pure(BaseComponent) {
|
|
1047
|
+
var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {
|
|
1048
|
+
return !(0, _shallowEqual.default)(props, nextProps);
|
|
1049
|
+
});
|
|
1050
|
+
|
|
1051
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
1052
|
+
return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
return hoc(BaseComponent);
|
|
1056
|
+
};
|
|
1057
|
+
|
|
1058
|
+
var _default = pure$1;
|
|
1059
|
+
pure.default = _default;
|
|
1060
|
+
return pure;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
var hasRequiredCreateSvgIcon;
|
|
1064
|
+
|
|
1065
|
+
function requireCreateSvgIcon () {
|
|
1066
|
+
if (hasRequiredCreateSvgIcon) return createSvgIcon;
|
|
1067
|
+
hasRequiredCreateSvgIcon = 1;
|
|
1068
|
+
|
|
1069
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
1070
|
+
|
|
1071
|
+
Object.defineProperty(createSvgIcon, "__esModule", {
|
|
1072
|
+
value: true
|
|
1073
|
+
});
|
|
1074
|
+
createSvgIcon.default = void 0;
|
|
1075
|
+
|
|
1076
|
+
var _react = _interopRequireDefault(React);
|
|
1077
|
+
|
|
1078
|
+
var _pure = _interopRequireDefault(requirePure());
|
|
1079
|
+
|
|
1080
|
+
var _SvgIcon = _interopRequireDefault(require$$3);
|
|
1081
|
+
|
|
1082
|
+
function createSvgIcon$1(path, displayName) {
|
|
1083
|
+
var Icon = function Icon(props) {
|
|
1084
|
+
return _react.default.createElement(_SvgIcon.default, props, path);
|
|
1085
|
+
};
|
|
1086
|
+
|
|
1087
|
+
Icon.displayName = "".concat(displayName, "Icon");
|
|
1088
|
+
Icon = (0, _pure.default)(Icon);
|
|
1089
|
+
Icon.muiName = 'SvgIcon';
|
|
1090
|
+
return Icon;
|
|
1091
|
+
}
|
|
1092
|
+
var _default = createSvgIcon$1;
|
|
1093
|
+
createSvgIcon.default = _default;
|
|
1094
|
+
return createSvgIcon;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
var hasRequiredCheck;
|
|
1098
|
+
|
|
1099
|
+
function requireCheck () {
|
|
1100
|
+
if (hasRequiredCheck) return Check$1;
|
|
1101
|
+
hasRequiredCheck = 1;
|
|
1102
|
+
|
|
1103
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
1104
|
+
|
|
1105
|
+
Object.defineProperty(Check$1, "__esModule", {
|
|
1106
|
+
value: true
|
|
1107
|
+
});
|
|
1108
|
+
Check$1.default = void 0;
|
|
1109
|
+
|
|
1110
|
+
var _react = _interopRequireDefault(React);
|
|
1111
|
+
|
|
1112
|
+
var _createSvgIcon = _interopRequireDefault(/*@__PURE__*/ requireCreateSvgIcon());
|
|
1113
|
+
|
|
1114
|
+
var _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement("path", {
|
|
1115
|
+
fill: "none",
|
|
1116
|
+
d: "M0 0h24v24H0z"
|
|
1117
|
+
}), _react.default.createElement("path", {
|
|
1118
|
+
d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
|
|
1119
|
+
})), 'Check');
|
|
1120
|
+
|
|
1121
|
+
Check$1.default = _default;
|
|
1122
|
+
return Check$1;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
var CheckExports = /*@__PURE__*/ requireCheck();
|
|
1126
|
+
var Check = /*@__PURE__*/getDefaultExportFromCjs(CheckExports);
|
|
1127
|
+
|
|
1128
|
+
var Close$1 = {};
|
|
1129
|
+
|
|
1130
|
+
var hasRequiredClose;
|
|
1131
|
+
|
|
1132
|
+
function requireClose () {
|
|
1133
|
+
if (hasRequiredClose) return Close$1;
|
|
1134
|
+
hasRequiredClose = 1;
|
|
1135
|
+
|
|
1136
|
+
var _interopRequireDefault = requireInteropRequireDefault();
|
|
1137
|
+
|
|
1138
|
+
Object.defineProperty(Close$1, "__esModule", {
|
|
1139
|
+
value: true
|
|
1140
|
+
});
|
|
1141
|
+
Close$1.default = void 0;
|
|
1142
|
+
|
|
1143
|
+
var _react = _interopRequireDefault(React);
|
|
1144
|
+
|
|
1145
|
+
var _createSvgIcon = _interopRequireDefault(/*@__PURE__*/ requireCreateSvgIcon());
|
|
1146
|
+
|
|
1147
|
+
var _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement("path", {
|
|
1148
|
+
d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
|
|
1149
|
+
}), _react.default.createElement("path", {
|
|
1150
|
+
fill: "none",
|
|
1151
|
+
d: "M0 0h24v24H0z"
|
|
1152
|
+
})), 'Close');
|
|
1153
|
+
|
|
1154
|
+
Close$1.default = _default;
|
|
1155
|
+
return Close$1;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
var CloseExports = /*@__PURE__*/ requireClose();
|
|
1159
|
+
var Close = /*@__PURE__*/getDefaultExportFromCjs(CloseExports);
|
|
1160
|
+
|
|
704
1161
|
const LINE_HEIGHT_MULTIPLIER = 3.2; // we need a bit more space for correctness indicators
|
|
705
1162
|
|
|
706
1163
|
const CORRECTNESS_LINE_HEIGHT_MULTIPLIER = 3.4;
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/tokenizer/controls.jsx","../src/tokenizer/builder.js","../src/tokenizer/selection-utils.js","../src/tokenizer/token-text.jsx","../src/tokenizer/index.jsx","../src/token-select/token.jsx","../src/token-select/index.jsx","../src/text-select.jsx","../src/legend.js","../src/utils.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nimport Switch from '@material-ui/core/Switch';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport { color } from '@pie-lib/render-ui';\nimport classNames from 'classnames';\n\nexport class Controls extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n onClear: PropTypes.func.isRequired,\n onWords: PropTypes.func.isRequired,\n onSentences: PropTypes.func.isRequired,\n onParagraphs: PropTypes.func.isRequired,\n setCorrectMode: PropTypes.bool.isRequired,\n onToggleCorrectMode: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n render() {\n const { classes, onClear, onWords, onSentences, onParagraphs, setCorrectMode, onToggleCorrectMode } = this.props;\n\n return (\n <div className={classes.controls}>\n <div>\n <Button onClick={onWords} className={classes.button} size=\"small\" color=\"primary\" disabled={setCorrectMode}>\n Words\n </Button>\n <Button\n onClick={onSentences}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Sentences\n </Button>\n <Button\n onClick={onParagraphs}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Paragraphs\n </Button>\n <Button className={classes.button} size=\"small\" color=\"secondary\" onClick={onClear} disabled={setCorrectMode}>\n Clear\n </Button>\n </div>\n <FormControlLabel\n control={\n <Switch\n classes={{\n checked: classes.checkedThumb,\n bar: classNames({\n [classes.checkedBar]: setCorrectMode,\n }),\n }}\n checked={setCorrectMode}\n onChange={onToggleCorrectMode}\n />\n }\n label=\"Set correct answers\"\n />\n </div>\n );\n }\n}\nexport default withStyles((theme) => ({\n button: {\n marginRight: theme.spacing.unit,\n },\n controls: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n checkedThumb: {\n color: `${color.tertiary()} !important`,\n },\n checkedBar: {\n backgroundColor: `${color.tertiaryLight()} !important`,\n },\n}))(Controls);\n","import compact from 'lodash/compact';\nimport English from '@pie-framework/parse-english';\nimport clone from 'lodash/clone';\n\nconst g = (str, node) => {\n if (node.children) {\n return node.children.reduce(g, str);\n } else if (node.value) {\n return str + node.value;\n } else {\n return str;\n }\n};\n\nconst getParagraph = (p) => g('', p);\n\nconst getSentence = (s) => g('', s);\n\nconst getWord = (w) => g('', w);\n\nexport const paragraphs = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n const paragraph = {\n text: getParagraph(child),\n start: child.position.start.offset,\n end: child.position.end.offset,\n };\n\n return acc.concat([paragraph]);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nexport const handleSentence = (child, acc) => {\n const sentenceChilds = [];\n // we parse the children of the sentence\n let newAcc = child.children.reduce(function(acc, child) {\n // if we find a whitespace node that's \\n, we end the sentence\n if (child.type === 'WhiteSpaceNode' && child.value === '\\n') {\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n // we create a sentence starting from the first word until the new line\n const sentence = {\n text: sentenceChilds.map((d) => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: child.position.start.offset,\n };\n\n // we remove all the elements from the array\n sentenceChilds.splice(0, sentenceChilds.length);\n return acc.concat([sentence]);\n }\n } else {\n // otherwise we add it to the array that contains the child forming a sentence\n sentenceChilds.push(child);\n }\n\n return acc;\n }, acc);\n\n // we treat the case when no \\n character is found at the end\n // so we create a sentence from the last words or white spaces found\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n const lastWord = sentenceChilds[sentenceChilds.length - 1];\n const sentence = {\n text: sentenceChilds.map((d) => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: lastWord.position.end.offset,\n };\n\n newAcc = newAcc.concat([sentence]);\n\n sentenceChilds.splice(0, sentenceChilds.length);\n }\n\n return newAcc;\n};\n\nexport const sentences = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n const newAcc = handleSentence(child, acc);\n\n return newAcc || acc;\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\nexport const words = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'WordNode') {\n const node = {\n text: getWord(child),\n start: child.position.start.offset,\n end: child.position.end.offset,\n };\n return acc.concat([node]);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nclass Intersection {\n constructor(results) {\n this.results = results;\n }\n\n get hasOverlap() {\n return this.results.filter((r) => r.type === 'overlap').length > 0;\n }\n\n get surroundedTokens() {\n return this.results.filter((r) => r.type === 'within-selection').map((t) => t.token);\n }\n}\n/**\n * get intersection info for the selection in relation to tokens.\n * @param {{start: number, end: number}} selection\n * @param {{start: number, end: number}[]} tokens\n * @return {tokens: [], type: 'overlap|no-overlap|contains'}\n */\nexport const intersection = (selection, tokens) => {\n const { start, end } = selection;\n\n const startsWithin = (t) => start >= t.start && start < t.end;\n const endsWithin = (t) => end > t.start && end <= t.end;\n\n const mapped = tokens.map((t) => {\n if (start === t.start && end === t.end) {\n return { token: t, type: 'exact-fit' };\n } else if (start <= t.start && end >= t.end) {\n return { token: t, type: 'within-selection' };\n } else if (startsWithin(t) || endsWithin(t)) {\n return { token: t, type: 'overlap' };\n }\n });\n return new Intersection(compact(mapped));\n};\n\nexport const sort = (tokens) => {\n if (!Array.isArray(tokens)) {\n return tokens;\n } else {\n const out = clone(tokens);\n out.sort((a, b) => {\n const s = a.start < b.start ? -1 : a.start > b.start ? 1 : 0;\n const e = a.end < b.end ? -1 : a.end > b.end ? 1 : 0;\n if (s === -1 && e !== -1) {\n throw new Error(`sort does not support intersecting tokens. a: ${a.start}-${a.end}, b: ${b.start}-${b.end}`);\n }\n return s;\n });\n return out;\n }\n};\n\nexport const normalize = (textToNormalize, tokens) => {\n // making sure text provided is a string\n const text = textToNormalize || '';\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n return [\n {\n text,\n start: 0,\n end: text.length,\n },\n ];\n }\n\n const out = sort(tokens).reduce(\n (acc, t, index, outer) => {\n let tokens = [];\n const lastIndex = acc.lastIndex;\n\n if (t.start === lastIndex) {\n tokens = [\n {\n text: text.substring(lastIndex, t.end),\n start: lastIndex,\n end: t.end,\n predefined: true,\n correct: t.correct,\n isMissing: t.isMissing,\n },\n ];\n } else if (lastIndex < t.start) {\n tokens = [\n {\n text: text.substring(lastIndex, t.start),\n start: lastIndex,\n end: t.start,\n },\n {\n text: text.substring(t.start, t.end),\n start: t.start,\n end: t.end,\n predefined: true,\n correct: t.correct,\n isMissing: t.isMissing,\n },\n ];\n }\n\n if (index === outer.length - 1 && t.end < text.length) {\n const last = {\n text: text.substring(t.end),\n start: t.end,\n end: text.length,\n };\n tokens.push(last);\n }\n\n return {\n lastIndex: tokens.length ? tokens[tokens.length - 1].end : lastIndex,\n result: acc.result.concat(tokens),\n };\n },\n { result: [], lastIndex: 0 },\n );\n\n return out.result;\n};\n","export const clearSelection = () => {\n if (document.getSelection) {\n // for all new browsers (IE9+, Chrome, Firefox)\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(document.createRange());\n } else if (window.getSelection) {\n // equals with the document.getSelection (MSDN info)\n if (window.getSelection().removeAllRanges) {\n // for all new browsers (IE9+, Chrome, Firefox)\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(document.createRange());\n } else if (window.getSelection().empty) {\n // Chrome supports this as well\n window.getSelection().empty();\n }\n } else if (document.selection) {\n // IE8-\n document.selection.empty();\n }\n};\n\nexport const getCaretCharacterOffsetWithin = (element) => {\n var caretOffset = 0;\n var doc = element.ownerDocument || element.document;\n var win = doc.defaultView || doc.parentWindow;\n var sel;\n if (typeof win.getSelection !== 'undefined') {\n sel = win.getSelection();\n if (sel.rangeCount > 0) {\n var range = win.getSelection().getRangeAt(0);\n var selected = range.toString().length;\n var preCaretRange = range.cloneRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(range.endContainer, range.endOffset);\n if (selected) {\n caretOffset = preCaretRange.toString().length - selected;\n } else {\n caretOffset = preCaretRange.toString().length;\n }\n }\n } else if ((sel = doc.selection) && sel.type !== 'Control') {\n var textRange = sel.createRange();\n var preCaretTextRange = doc.body.createTextRange();\n preCaretTextRange.moveToElementText(element);\n preCaretTextRange.setEndPoint('EndToEnd', textRange);\n caretOffset = preCaretTextRange.text.length;\n }\n return caretOffset;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { normalize, intersection } from './builder';\nimport yellow from '@material-ui/core/colors/yellow';\nimport green from '@material-ui/core/colors/green';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nimport { clearSelection, getCaretCharacterOffsetWithin } from './selection-utils';\n\nconst log = debug('@pie-lib:text-select:token-text');\n\nexport const Text = withStyles(() => ({\n predefined: {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`,\n // we need this for nested tokenized elements like paragraphs, where p is inside span\n '& *': {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`,\n },\n },\n correct: {\n backgroundColor: green[500],\n '& *': {\n backgroundColor: green[500],\n },\n },\n}))(({ text, predefined, classes, onClick, correct }) => {\n const formattedText = (text || '').replace(/\\n/g, '<br>');\n\n if (predefined) {\n const className = classNames(classes.predefined, correct && classes.correct);\n\n return <span onClick={onClick} className={className} dangerouslySetInnerHTML={{ __html: formattedText }} />;\n } else {\n return <span dangerouslySetInnerHTML={{ __html: formattedText }} />;\n }\n});\n\nconst notAllowedCharacters = ['\\n', ' ', '\\t'];\n\nexport default class TokenText extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n tokens: PropTypes.array.isRequired,\n onTokenClick: PropTypes.func.isRequired,\n onSelectToken: PropTypes.func.isRequired,\n className: PropTypes.string,\n };\n\n /*\n Change this to onClick instead of mouseUp because previously, in some cases\n the onClick event from the <Text /> component was called right after the user\n selected token and that token was then removed because the setCorrectMode was not true.\n\n const { setCorrectMode } = this.state;\n\n if (setCorrectMode) {\n this.setCorrect(token);\n } else {\n this.removeToken(token);\n }\n */\n onClick = (event) => {\n const { onSelectToken, text, tokens } = this.props;\n\n event.preventDefault();\n\n if (typeof window === 'undefined') {\n return;\n }\n\n const selection = window.getSelection();\n const textSelected = selection.toString();\n\n if (textSelected.length > 0 && notAllowedCharacters.indexOf(textSelected) < 0) {\n if (this.root) {\n let offset = getCaretCharacterOffsetWithin(this.root);\n /*\n Since we implemented new line functionality (\\n) using <br /> dom elements\n and window.getSelection is not taking that into consideration, the offset might\n be off by a few characters.\n\n To combat that, we check if the selected text is right at the beginning of the offset.\n\n If it's not, we add the additional offset in order for that to be accurate\n */\n const newLineOffset = text.slice(offset).indexOf(textSelected);\n\n offset += newLineOffset;\n\n if (offset !== undefined) {\n const endIndex = offset + textSelected.length;\n\n if (endIndex <= text.length) {\n const i = intersection({ start: offset, end: endIndex }, tokens);\n if (i.hasOverlap) {\n log('hasOverlap - do nothing');\n clearSelection();\n } else {\n const tokensToRemove = i.surroundedTokens;\n const token = {\n text: textSelected,\n start: offset,\n end: endIndex,\n };\n\n onSelectToken(token, tokensToRemove);\n clearSelection();\n }\n }\n }\n }\n }\n };\n\n render() {\n const { text, tokens, className, onTokenClick } = this.props;\n const normalized = normalize(text, tokens);\n\n return (\n <div className={className} ref={(r) => (this.root = r)} onClick={this.onClick}>\n {normalized.map((t, index) => {\n return <Text key={index} {...t} onClick={() => onTokenClick(t)} />;\n })}\n </div>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Controls from './controls';\nimport { withStyles } from '@material-ui/core/styles';\nimport { words, sentences, paragraphs } from './builder';\nimport clone from 'lodash/clone';\nimport isEqual from 'lodash/isEqual';\nimport differenceWith from 'lodash/differenceWith';\nimport classNames from 'classnames';\nimport { noSelect } from '@pie-lib/style-utils';\nimport TokenText from './token-text';\n\nexport class Tokenizer extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n tokens: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n correct: PropTypes.bool,\n start: PropTypes.number,\n end: PropTypes.number,\n }),\n ),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {\n setCorrectMode: false,\n mode: '',\n };\n }\n\n onChangeHandler = (token, mode) => {\n this.props.onChange(token, mode);\n\n this.setState({\n mode,\n });\n };\n\n toggleCorrectMode = () => this.setState({ setCorrectMode: !this.state.setCorrectMode });\n\n clear = () => {\n this.onChangeHandler([], '');\n };\n\n buildTokens = (type, fn) => {\n const { text } = this.props;\n const tokens = fn(text);\n\n this.onChangeHandler(tokens, type);\n };\n\n selectToken = (newToken, tokensToRemove) => {\n const { tokens } = this.props;\n const update = differenceWith(clone(tokens), tokensToRemove, isEqual);\n\n update.push(newToken);\n this.onChangeHandler(update, this.state.mode);\n };\n\n tokenClick = (token) => {\n const { setCorrectMode } = this.state;\n\n if (setCorrectMode) {\n this.setCorrect(token);\n } else {\n this.removeToken(token);\n }\n };\n\n tokenIndex = (token) => {\n const { tokens } = this.props;\n\n return tokens.findIndex((t) => {\n return t.text == token.text && t.start == token.start && t.end == token.end;\n });\n };\n\n setCorrect = (token) => {\n const { tokens } = this.props;\n const index = this.tokenIndex(token);\n if (index !== -1) {\n const t = tokens[index];\n\n t.correct = !t.correct;\n\n const update = clone(tokens);\n\n update.splice(index, 1, t);\n this.onChangeHandler(update, this.state.mode);\n }\n };\n\n removeToken = (token) => {\n const { tokens } = this.props;\n\n const index = this.tokenIndex(token);\n if (index !== -1) {\n const update = clone(tokens);\n\n update.splice(index, 1);\n\n this.onChangeHandler(update, this.state.mode);\n }\n };\n\n render() {\n const { text, tokens, classes, className } = this.props;\n const { setCorrectMode } = this.state;\n\n const tokenClassName = classNames(classes.text, setCorrectMode && classes.noselect);\n\n const rootName = classNames(classes.tokenizer, className);\n\n return (\n <div className={rootName}>\n <Controls\n onClear={this.clear}\n onWords={() => this.buildTokens('words', words)}\n onSentences={() => this.buildTokens('sentence', sentences)}\n onParagraphs={() => this.buildTokens('paragraphs', paragraphs)}\n setCorrectMode={setCorrectMode}\n onToggleCorrectMode={this.toggleCorrectMode}\n />\n <TokenText\n className={tokenClassName}\n text={text}\n tokens={tokens}\n onTokenClick={this.tokenClick}\n onSelectToken={this.selectToken}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(() => ({\n text: {\n whiteSpace: 'pre-wrap',\n },\n noselect: { ...noSelect() },\n}))(Tokenizer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Check from '@material-ui/icons/Check';\nimport Close from '@material-ui/icons/Close';\n\nimport { color } from '@pie-lib/render-ui';\n\n// we need to use a larger line height for the token to be more readable\nconst LINE_HEIGHT_MULTIPLIER = 3.2;\n// we need a bit more space for correctness indicators\nconst CORRECTNESS_LINE_HEIGHT_MULTIPLIER = 3.4;\nconst CORRECTNESS_PADDING = 2;\n\nconst Wrapper = ({ useWrapper, children, classNameContainer, iconClass, Icon }) =>\n useWrapper ? (\n <span className={classNameContainer}>\n {children}\n <Icon className={iconClass} />\n </span>\n ) : (\n children\n );\n\nWrapper.propTypes = {\n useWrapper: PropTypes.bool,\n classNameContainer: PropTypes.string,\n iconClass: PropTypes.string,\n Icon: PropTypes.func,\n children: PropTypes.element,\n};\n\nexport const TokenTypes = {\n text: PropTypes.string,\n selectable: PropTypes.bool,\n};\n\nexport class Token extends React.Component {\n static rootClassName = 'tokenRootClass';\n\n static propTypes = {\n ...TokenTypes,\n classes: PropTypes.object.isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n highlight: PropTypes.bool,\n correct: PropTypes.bool,\n };\n\n static defaultProps = {\n selectable: false,\n text: '',\n };\n\n getClassAndIconConfig = () => {\n const {\n selectable,\n selected,\n classes,\n className: classNameProp,\n disabled,\n highlight,\n correct,\n animationsDisabled,\n isMissing,\n } = this.props;\n const isTouchEnabled = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n const baseClassName = Token.rootClassName;\n let classNameContainer;\n let Icon;\n let iconClass;\n\n if (correct === undefined && selected && disabled) {\n return {\n className: classNames(classes.token, classes.selected, classes.disabledBlack),\n };\n }\n\n if (correct !== undefined) {\n const isCorrect = correct === true;\n return {\n className: classNames(baseClassName, classes.custom),\n classNameContainer: classNames(isCorrect ? classes.correct : classes.incorrect, classes.commonTokenStyle),\n Icon: isCorrect ? Check : Close,\n iconClass: classNames(\n classes.correctnessIndicatorIcon,\n isCorrect ? classes.correctIcon : classes.incorrectIcon,\n ),\n };\n }\n\n if (isMissing) {\n return {\n className: classNames(baseClassName, classes.custom, classes.missing, classes.commonTokenStyle),\n classNameContainer: classes.commonTokenStyle,\n Icon: Close,\n iconClass: classNames(classes.correctnessIndicatorIcon, classes.incorrectIcon),\n };\n }\n\n return {\n className: classNames(\n baseClassName,\n classes.token,\n disabled && classes.disabled,\n selectable && !disabled && !isTouchEnabled && classes.selectable,\n selected && !disabled && classes.selected,\n selected && disabled && classes.disabledAndSelected,\n highlight && selectable && !disabled && !selected && classes.highlight,\n animationsDisabled && classes.print,\n classNameProp,\n ),\n classNameContainer,\n Icon,\n iconClass,\n };\n };\n\n render() {\n const { text, index, correct, isMissing } = this.props;\n const { className, classNameContainer, Icon, iconClass } = this.getClassAndIconConfig();\n\n return (\n <Wrapper\n useWrapper={correct !== undefined || isMissing}\n classNameContainer={classNameContainer}\n iconClass={iconClass}\n Icon={Icon}\n >\n <span\n className={className}\n dangerouslySetInnerHTML={{ __html: (text || '').replace(/\\n/g, '<br>') }}\n data-indexkey={index}\n />\n </Wrapper>\n );\n }\n}\n\nexport default withStyles((theme) => {\n return {\n token: {\n cursor: 'pointer',\n textIndent: 0,\n },\n disabled: {\n cursor: 'inherit',\n color: color.disabled(),\n },\n disabledBlack: {\n cursor: 'inherit',\n },\n disabledAndSelected: {\n backgroundColor: color.blueGrey100(),\n },\n selectable: {\n [theme.breakpoints.up(769)]: {\n '&:hover': {\n backgroundColor: color.blueGrey300(),\n color: theme.palette.common.black,\n '& > *': {\n backgroundColor: color.blueGrey300(),\n },\n },\n },\n },\n selected: {\n backgroundColor: color.blueGrey100(),\n color: theme.palette.common.black,\n lineHeight: `${theme.spacing.unit * LINE_HEIGHT_MULTIPLIER}px`,\n border: `solid 2px ${color.blueGrey900()}`,\n borderRadius: '4px',\n '& > *': {\n backgroundColor: color.blueGrey100(),\n },\n },\n highlight: {\n border: `dashed 2px ${color.blueGrey600()}`,\n borderRadius: '4px',\n lineHeight: `${theme.spacing.unit * LINE_HEIGHT_MULTIPLIER}px`,\n },\n print: {\n border: `dashed 2px ${color.blueGrey600()}`,\n borderRadius: '4px',\n lineHeight: `${theme.spacing.unit * LINE_HEIGHT_MULTIPLIER}px`,\n color: color.text(),\n },\n custom: {\n display: 'initial',\n },\n commonTokenStyle: {\n position: 'relative',\n borderRadius: '4px',\n color: theme.palette.common.black,\n lineHeight: `${theme.spacing.unit * CORRECTNESS_LINE_HEIGHT_MULTIPLIER + CORRECTNESS_PADDING}px`,\n padding: `${CORRECTNESS_PADDING}px`,\n },\n correct: {\n border: `${color.correctTertiary()} solid 2px`,\n },\n incorrect: {\n border: `${color.incorrectWithIcon()} solid 2px`,\n },\n missing: {\n border: `${color.incorrectWithIcon()} dashed 2px`,\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n correctIcon: {\n backgroundColor: color.correctTertiary(),\n },\n correctnessIndicatorIcon: {\n color: color.white(),\n position: 'absolute',\n top: '-8px',\n left: '-8px',\n borderRadius: '50%',\n fontSize: '12px',\n padding: '2px',\n },\n };\n})(Token);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Token, { TokenTypes } from './token';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport clone from 'lodash/clone';\nimport debug from 'debug';\nimport { noSelect } from '@pie-lib/style-utils';\nimport { renderToString } from 'react-dom/server';\nimport isEqual from 'lodash/isEqual';\n\nconst log = debug('@pie-lib:text-select:token-select');\n\nexport class TokenSelect extends React.Component {\n static propTypes = {\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n highlightChoices: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxNoOfSelections: PropTypes.number,\n };\n\n static defaultProps = {\n highlightChoices: false,\n maxNoOfSelections: 0,\n tokens: [],\n };\n\n selectedCount = () => this.props.tokens.filter((t) => t.selected).length;\n\n canSelectMore = (selectedCount) => {\n const { maxNoOfSelections } = this.props;\n\n if (maxNoOfSelections === 1) {\n return true;\n }\n\n log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);\n return maxNoOfSelections <= 0 || (isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections);\n };\n\n /**\n @function\n @param { object } event\n\n @description\n each token is wrapped into a span that has Token.rootClassName class and indexkey attribute (represents the index of the token)\n tokens are updated with the targeted token having the correct value set for 'selected' property\n */\n toggleToken = (event) => {\n const { target } = event;\n const { tokens, animationsDisabled } = this.props;\n const tokensCloned = clone(tokens);\n const targetSpanWrapper = target.closest(`.${Token.rootClassName}`);\n const targetedTokenIndex = targetSpanWrapper && targetSpanWrapper.dataset && targetSpanWrapper.dataset.indexkey;\n const t = targetedTokenIndex && tokensCloned[targetedTokenIndex];\n\n // don't toggle if we are in print mode, token correctness is defined or if it's missing\n // (missing means that it was evaluated as correct and not selected)\n if (t && t.correct === undefined && !animationsDisabled && !t.isMissing) {\n const { onChange, maxNoOfSelections } = this.props;\n const selected = !t.selected;\n\n if (maxNoOfSelections === 1 && this.selectedCount() === 1) {\n const selectedToken = (tokens || []).filter((t) => t.selected);\n\n const updatedTokens = tokensCloned.map((token) => {\n if (isEqual(token, selectedToken[0])) {\n return { ...token, selected: false };\n }\n\n return { ...token, selectable: true };\n });\n\n const update = { ...t, selected: !t.selected };\n\n updatedTokens.splice(targetedTokenIndex, 1, update);\n onChange(updatedTokens);\n } else {\n if (selected && maxNoOfSelections > 0 && this.selectedCount() >= maxNoOfSelections) {\n log('skip toggle max reached');\n return;\n }\n\n const update = { ...t, selected: !t.selected };\n\n tokensCloned.splice(targetedTokenIndex, 1, update);\n onChange(tokensCloned);\n }\n }\n };\n\n generateTokensInHtml = () => {\n const { tokens, disabled, highlightChoices, animationsDisabled } = this.props;\n const selectedCount = this.selectedCount();\n const isLineBreak = (text) => text === '\\n';\n const isNewParagraph = (text) => text === '\\n\\n';\n\n const reducer = (accumulator, t, index) => {\n const selectable = t.selected || (t.selectable && this.canSelectMore(selectedCount));\n const showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);\n let finalAcc = accumulator;\n\n if (isNewParagraph(t.text)) {\n return finalAcc + '</p><p>';\n }\n\n if (isLineBreak(t.text)) {\n return finalAcc + '<br>';\n }\n\n if (\n (selectable && !disabled) ||\n showCorrectAnswer ||\n t.selected ||\n t.isMissing ||\n (animationsDisabled && t.predefined) // if we are in print mode\n ) {\n return (\n finalAcc +\n renderToString(\n <Token\n key={index}\n disabled={disabled}\n index={index}\n {...t}\n selectable={selectable}\n highlight={highlightChoices}\n animationsDisabled={animationsDisabled}\n />,\n )\n );\n } else {\n return accumulator + t.text;\n }\n };\n\n const reduceResult = (tokens || []).reduce(reducer, '<p>');\n\n return reduceResult + '</p>';\n };\n\n render() {\n const { classes, className: classNameProp } = this.props;\n const className = classNames(classes.tokenSelect, classNameProp);\n const html = this.generateTokensInHtml();\n\n return <div className={className} dangerouslySetInnerHTML={{ __html: html }} onClick={this.toggleToken} />;\n }\n}\n\nexport default withStyles(() => ({\n tokenSelect: {\n backgroundColor: 'none',\n whiteSpace: 'pre',\n ...noSelect(),\n '& p': {\n whiteSpace: 'break-spaces',\n },\n },\n}))(TokenSelect);\n\n// Re-export TokenTypes for external use\nexport { TokenTypes };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport TokenSelect from './token-select';\nimport { normalize } from './tokenizer/builder';\nimport { TokenTypes } from './token-select/token';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:text-select');\n/**\n * Built on TokenSelect uses build.normalize to build the token set.\n */\nexport default class TextSelect extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n selectedTokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n highlightChoices: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxNoOfSelections: PropTypes.number,\n };\n\n change = (tokens) => {\n const { onChange } = this.props;\n\n if (!onChange) {\n return;\n }\n const out = tokens.filter((t) => t.selected).map((t) => ({ start: t.start, end: t.end }));\n\n onChange(out);\n };\n\n render() {\n const {\n text,\n disabled,\n tokens,\n selectedTokens,\n className,\n highlightChoices,\n maxNoOfSelections,\n animationsDisabled,\n } = this.props;\n\n const normalized = normalize(text, tokens);\n log('normalized: ', normalized);\n const prepped = normalized.map((t) => {\n const selectedIndex = selectedTokens.findIndex((s) => {\n return s.start === t.start && s.end === t.end;\n });\n const selected = selectedIndex !== -1;\n const correct = selected ? t.correct : undefined;\n const isMissing = t.isMissing;\n return {\n ...t,\n selectable: !disabled && t.predefined,\n selected,\n correct,\n isMissing,\n };\n });\n\n return (\n <TokenSelect\n highlightChoices={!disabled && highlightChoices}\n className={className}\n tokens={prepped}\n disabled={disabled}\n onChange={this.change}\n maxNoOfSelections={maxNoOfSelections}\n animationsDisabled={animationsDisabled}\n />\n );\n }\n}\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Check from '@material-ui/icons/Check';\nimport Close from '@material-ui/icons/Close';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\nimport classNames from 'classnames';\n\nconst { translator } = Translator;\n\nexport const Legend = withStyles((theme) => ({\n flexContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: `${2 * theme.spacing.unit}px`,\n borderBottom: '1px solid lightgrey',\n borderTop: '1px solid lightgrey',\n paddingBottom: theme.spacing.unit,\n paddingTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n key: {\n fontSize: '14px',\n fontWeight: 'bold',\n color: color.black(),\n marginLeft: theme.spacing.unit,\n },\n container: {\n position: 'relative',\n padding: '4px',\n fontSize: '14px',\n borderRadius: '4px',\n },\n correct: {\n border: `${color.correctTertiary()} solid 2px`,\n },\n incorrect: {\n border: `${color.incorrectWithIcon()} solid 2px`,\n },\n missing: {\n border: `${color.incorrectWithIcon()} dashed 2px`,\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n correctIcon: {\n backgroundColor: color.correctTertiary(),\n },\n icon: {\n color: color.white(),\n position: 'absolute',\n top: '-8px',\n left: '-8px',\n borderRadius: '50%',\n fontSize: '12px',\n padding: '2px',\n },\n}))(({ classes, language, showOnlyCorrect }) => {\n const legendItems = [\n {\n Icon: Check,\n label: translator.t('selectText.correctAnswerSelected', { lng: language }),\n containerClass: classNames(classes.correct, classes.container),\n iconClass: classNames(classes.correctIcon, classes.icon),\n },\n {\n Icon: Close,\n label: translator.t('selectText.incorrectSelection', { lng: language }),\n containerClass: classNames(classes.incorrect, classes.container),\n iconClass: classNames(classes.incorrectIcon, classes.icon),\n },\n {\n Icon: Close,\n label: translator.t('selectText.correctAnswerNotSelected', { lng: language }),\n containerClass: classNames(classes.missing, classes.container),\n iconClass: classNames(classes.incorrectIcon, classes.icon),\n },\n ];\n\n if (showOnlyCorrect) {\n legendItems.splice(1, 2);\n }\n\n return (\n <div className={classes.flexContainer}>\n <span className={classes.key}>{translator.t('selectText.key', { lng: language })}</span>\n {legendItems.map(({ Icon, label, containerClass, iconClass }, idx) => (\n <div key={idx} className={containerClass}>\n <Icon className={iconClass} />\n <span>{label}</span>\n </div>\n ))}\n </div>\n );\n});\n","const createElementFromHTML = (htmlString = '') => {\n const div = document.createElement('div');\n\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport const parseBrs = (dom) => {\n const brs = dom.querySelectorAll('br');\n\n brs.forEach((br) => br.replaceWith('\\n'));\n\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\n};\n\nexport const parseParagraph = (paragraph, end) => {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return `${paragraph.innerHTML}\\n\\n`;\n};\n\nexport const parseParagraphs = (dom) => {\n const paragraphs = dom.querySelectorAll('p');\n // separate variable for easily debugging, if needed\n let str = '';\n\n paragraphs.forEach((par, index) => {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n\n return str || null;\n};\n\nexport const prepareText = (text) => {\n let txtDom = createElementFromHTML(text);\n const allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (txtDom.querySelectorAll('p').length === 0) {\n const div = document.createElement('div');\n\n div.innerHTML = `<p>${txtDom.innerHTML}</p>`;\n txtDom = div;\n }\n\n // if no dom elements, we just return the text\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n\n return parseParagraphs(txtDom);\n};\n"],"names":["Controls","React","Component","render","classes","onClear","onWords","onSentences","onParagraphs","setCorrectMode","onToggleCorrectMode","props","controls","button","checked","checkedThumb","bar","classNames","checkedBar","propTypes","PropTypes","object","isRequired","func","bool","defaultProps","withStyles","theme","marginRight","spacing","unit","display","alignItems","justifyContent","color","tertiary","backgroundColor","tertiaryLight","g","str","node","children","reduce","value","getParagraph","p","getSentence","s","getWord","w","paragraphs","text","tree","English","parse","out","acc","child","type","paragraph","start","position","offset","end","concat","handleSentence","sentenceChilds","newAcc","length","firstWord","sentence","map","d","join","splice","push","lastWord","sentences","words","Intersection","constructor","results","hasOverlap","filter","r","surroundedTokens","t","token","intersection","selection","tokens","startsWithin","endsWithin","mapped","compact","sort","Array","isArray","clone","a","b","e","Error","normalize","textToNormalize","index","outer","lastIndex","substring","predefined","correct","isMissing","last","result","clearSelection","document","getSelection","removeAllRanges","addRange","createRange","window","empty","getCaretCharacterOffsetWithin","element","caretOffset","doc","ownerDocument","win","defaultView","parentWindow","sel","rangeCount","range","getRangeAt","selected","toString","preCaretRange","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","textRange","preCaretTextRange","body","createTextRange","moveToElementText","setEndPoint","log","debug","Text","cursor","yellow","border","green","onClick","formattedText","replace","className","__html","notAllowedCharacters","TokenText","event","onSelectToken","preventDefault","textSelected","indexOf","root","newLineOffset","slice","undefined","endIndex","i","tokensToRemove","onTokenClick","normalized","string","array","Tokenizer","onChangeHandler","mode","onChange","setState","toggleCorrectMode","state","clear","buildTokens","fn","selectToken","newToken","update","differenceWith","isEqual","tokenClick","setCorrect","removeToken","tokenIndex","findIndex","tokenClassName","noselect","rootName","tokenizer","arrayOf","shape","number","whiteSpace","noSelect","LINE_HEIGHT_MULTIPLIER","CORRECTNESS_LINE_HEIGHT_MULTIPLIER","CORRECTNESS_PADDING","Wrapper","useWrapper","classNameContainer","iconClass","Icon","TokenTypes","selectable","Token","getClassAndIconConfig","classNameProp","disabled","highlight","animationsDisabled","isTouchEnabled","navigator","maxTouchPoints","msMaxTouchPoints","baseClassName","rootClassName","disabledBlack","isCorrect","custom","incorrect","commonTokenStyle","Check","Close","correctnessIndicatorIcon","correctIcon","incorrectIcon","missing","disabledAndSelected","print","textIndent","blueGrey100","breakpoints","up","blueGrey300","palette","common","black","lineHeight","blueGrey900","borderRadius","blueGrey600","padding","correctTertiary","incorrectWithIcon","white","top","left","fontSize","TokenSelect","selectedCount","canSelectMore","maxNoOfSelections","isFinite","toggleToken","target","tokensCloned","targetSpanWrapper","closest","targetedTokenIndex","dataset","indexkey","selectedToken","updatedTokens","generateTokensInHtml","highlightChoices","isLineBreak","isNewParagraph","reducer","accumulator","showCorrectAnswer","finalAcc","renderToString","reduceResult","tokenSelect","html","TextSelect","change","selectedTokens","prepped","selectedIndex","translator","Translator","Legend","flexContainer","flexDirection","gap","borderBottom","borderTop","paddingBottom","paddingTop","marginBottom","key","fontWeight","marginLeft","container","icon","language","showOnlyCorrect","legendItems","label","lng","containerClass","idx","createElementFromHTML","htmlString","div","createElement","innerHTML","trim","parseBrs","dom","brs","querySelectorAll","forEach","br","replaceWith","parseParagraph","parseParagraphs","par","prepareText","txtDom","allDomElements","from"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/tokenizer/controls.jsx","../src/tokenizer/builder.js","../src/tokenizer/selection-utils.js","../src/tokenizer/token-text.jsx","../src/tokenizer/index.jsx","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/recompose/setStatic.js","../../../node_modules/recompose/setDisplayName.js","../../../node_modules/recompose/getDisplayName.js","../../../node_modules/recompose/wrapDisplayName.js","../../../node_modules/recompose/shouldUpdate.js","../../../node_modules/fbjs/lib/shallowEqual.js","../../../node_modules/recompose/shallowEqual.js","../../../node_modules/recompose/pure.js","../../../node_modules/@material-ui/icons/utils/createSvgIcon.js","../../../node_modules/@material-ui/icons/Check.js","../../../node_modules/@material-ui/icons/Close.js","../src/token-select/token.jsx","../src/token-select/index.jsx","../src/text-select.jsx","../src/legend.js","../src/utils.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nimport Switch from '@material-ui/core/Switch';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport { color } from '@pie-lib/render-ui';\nimport classNames from 'classnames';\n\nexport class Controls extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n onClear: PropTypes.func.isRequired,\n onWords: PropTypes.func.isRequired,\n onSentences: PropTypes.func.isRequired,\n onParagraphs: PropTypes.func.isRequired,\n setCorrectMode: PropTypes.bool.isRequired,\n onToggleCorrectMode: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n render() {\n const { classes, onClear, onWords, onSentences, onParagraphs, setCorrectMode, onToggleCorrectMode } = this.props;\n\n return (\n <div className={classes.controls}>\n <div>\n <Button onClick={onWords} className={classes.button} size=\"small\" color=\"primary\" disabled={setCorrectMode}>\n Words\n </Button>\n <Button\n onClick={onSentences}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Sentences\n </Button>\n <Button\n onClick={onParagraphs}\n className={classes.button}\n size=\"small\"\n color=\"primary\"\n disabled={setCorrectMode}\n >\n Paragraphs\n </Button>\n <Button className={classes.button} size=\"small\" color=\"secondary\" onClick={onClear} disabled={setCorrectMode}>\n Clear\n </Button>\n </div>\n <FormControlLabel\n control={\n <Switch\n classes={{\n checked: classes.checkedThumb,\n bar: classNames({\n [classes.checkedBar]: setCorrectMode,\n }),\n }}\n checked={setCorrectMode}\n onChange={onToggleCorrectMode}\n />\n }\n label=\"Set correct answers\"\n />\n </div>\n );\n }\n}\nexport default withStyles((theme) => ({\n button: {\n marginRight: theme.spacing.unit,\n },\n controls: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n checkedThumb: {\n color: `${color.tertiary()} !important`,\n },\n checkedBar: {\n backgroundColor: `${color.tertiaryLight()} !important`,\n },\n}))(Controls);\n","import compact from 'lodash/compact';\nimport English from '@pie-framework/parse-english';\nimport clone from 'lodash/clone';\n\nconst g = (str, node) => {\n if (node.children) {\n return node.children.reduce(g, str);\n } else if (node.value) {\n return str + node.value;\n } else {\n return str;\n }\n};\n\nconst getParagraph = (p) => g('', p);\n\nconst getSentence = (s) => g('', s);\n\nconst getWord = (w) => g('', w);\n\nexport const paragraphs = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n const paragraph = {\n text: getParagraph(child),\n start: child.position.start.offset,\n end: child.position.end.offset,\n };\n\n return acc.concat([paragraph]);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nexport const handleSentence = (child, acc) => {\n const sentenceChilds = [];\n // we parse the children of the sentence\n let newAcc = child.children.reduce(function(acc, child) {\n // if we find a whitespace node that's \\n, we end the sentence\n if (child.type === 'WhiteSpaceNode' && child.value === '\\n') {\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n // we create a sentence starting from the first word until the new line\n const sentence = {\n text: sentenceChilds.map((d) => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: child.position.start.offset,\n };\n\n // we remove all the elements from the array\n sentenceChilds.splice(0, sentenceChilds.length);\n return acc.concat([sentence]);\n }\n } else {\n // otherwise we add it to the array that contains the child forming a sentence\n sentenceChilds.push(child);\n }\n\n return acc;\n }, acc);\n\n // we treat the case when no \\n character is found at the end\n // so we create a sentence from the last words or white spaces found\n if (sentenceChilds.length) {\n const firstWord = sentenceChilds[0];\n const lastWord = sentenceChilds[sentenceChilds.length - 1];\n const sentence = {\n text: sentenceChilds.map((d) => getSentence(d)).join(''),\n start: firstWord.position.start.offset,\n end: lastWord.position.end.offset,\n };\n\n newAcc = newAcc.concat([sentence]);\n\n sentenceChilds.splice(0, sentenceChilds.length);\n }\n\n return newAcc;\n};\n\nexport const sentences = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n const newAcc = handleSentence(child, acc);\n\n return newAcc || acc;\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\nexport const words = (text) => {\n const tree = new English().parse(text);\n\n const out = tree.children.reduce((acc, child) => {\n if (child.type === 'ParagraphNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'SentenceNode') {\n return child.children.reduce((acc, child) => {\n if (child.type === 'WordNode') {\n const node = {\n text: getWord(child),\n start: child.position.start.offset,\n end: child.position.end.offset,\n };\n return acc.concat([node]);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, acc);\n } else {\n return acc;\n }\n }, []);\n\n return out;\n};\n\nclass Intersection {\n constructor(results) {\n this.results = results;\n }\n\n get hasOverlap() {\n return this.results.filter((r) => r.type === 'overlap').length > 0;\n }\n\n get surroundedTokens() {\n return this.results.filter((r) => r.type === 'within-selection').map((t) => t.token);\n }\n}\n/**\n * get intersection info for the selection in relation to tokens.\n * @param {{start: number, end: number}} selection\n * @param {{start: number, end: number}[]} tokens\n * @return {tokens: [], type: 'overlap|no-overlap|contains'}\n */\nexport const intersection = (selection, tokens) => {\n const { start, end } = selection;\n\n const startsWithin = (t) => start >= t.start && start < t.end;\n const endsWithin = (t) => end > t.start && end <= t.end;\n\n const mapped = tokens.map((t) => {\n if (start === t.start && end === t.end) {\n return { token: t, type: 'exact-fit' };\n } else if (start <= t.start && end >= t.end) {\n return { token: t, type: 'within-selection' };\n } else if (startsWithin(t) || endsWithin(t)) {\n return { token: t, type: 'overlap' };\n }\n });\n return new Intersection(compact(mapped));\n};\n\nexport const sort = (tokens) => {\n if (!Array.isArray(tokens)) {\n return tokens;\n } else {\n const out = clone(tokens);\n out.sort((a, b) => {\n const s = a.start < b.start ? -1 : a.start > b.start ? 1 : 0;\n const e = a.end < b.end ? -1 : a.end > b.end ? 1 : 0;\n if (s === -1 && e !== -1) {\n throw new Error(`sort does not support intersecting tokens. a: ${a.start}-${a.end}, b: ${b.start}-${b.end}`);\n }\n return s;\n });\n return out;\n }\n};\n\nexport const normalize = (textToNormalize, tokens) => {\n // making sure text provided is a string\n const text = textToNormalize || '';\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n return [\n {\n text,\n start: 0,\n end: text.length,\n },\n ];\n }\n\n const out = sort(tokens).reduce(\n (acc, t, index, outer) => {\n let tokens = [];\n const lastIndex = acc.lastIndex;\n\n if (t.start === lastIndex) {\n tokens = [\n {\n text: text.substring(lastIndex, t.end),\n start: lastIndex,\n end: t.end,\n predefined: true,\n correct: t.correct,\n isMissing: t.isMissing,\n },\n ];\n } else if (lastIndex < t.start) {\n tokens = [\n {\n text: text.substring(lastIndex, t.start),\n start: lastIndex,\n end: t.start,\n },\n {\n text: text.substring(t.start, t.end),\n start: t.start,\n end: t.end,\n predefined: true,\n correct: t.correct,\n isMissing: t.isMissing,\n },\n ];\n }\n\n if (index === outer.length - 1 && t.end < text.length) {\n const last = {\n text: text.substring(t.end),\n start: t.end,\n end: text.length,\n };\n tokens.push(last);\n }\n\n return {\n lastIndex: tokens.length ? tokens[tokens.length - 1].end : lastIndex,\n result: acc.result.concat(tokens),\n };\n },\n { result: [], lastIndex: 0 },\n );\n\n return out.result;\n};\n","export const clearSelection = () => {\n if (document.getSelection) {\n // for all new browsers (IE9+, Chrome, Firefox)\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(document.createRange());\n } else if (window.getSelection) {\n // equals with the document.getSelection (MSDN info)\n if (window.getSelection().removeAllRanges) {\n // for all new browsers (IE9+, Chrome, Firefox)\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(document.createRange());\n } else if (window.getSelection().empty) {\n // Chrome supports this as well\n window.getSelection().empty();\n }\n } else if (document.selection) {\n // IE8-\n document.selection.empty();\n }\n};\n\nexport const getCaretCharacterOffsetWithin = (element) => {\n var caretOffset = 0;\n var doc = element.ownerDocument || element.document;\n var win = doc.defaultView || doc.parentWindow;\n var sel;\n if (typeof win.getSelection !== 'undefined') {\n sel = win.getSelection();\n if (sel.rangeCount > 0) {\n var range = win.getSelection().getRangeAt(0);\n var selected = range.toString().length;\n var preCaretRange = range.cloneRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(range.endContainer, range.endOffset);\n if (selected) {\n caretOffset = preCaretRange.toString().length - selected;\n } else {\n caretOffset = preCaretRange.toString().length;\n }\n }\n } else if ((sel = doc.selection) && sel.type !== 'Control') {\n var textRange = sel.createRange();\n var preCaretTextRange = doc.body.createTextRange();\n preCaretTextRange.moveToElementText(element);\n preCaretTextRange.setEndPoint('EndToEnd', textRange);\n caretOffset = preCaretTextRange.text.length;\n }\n return caretOffset;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { normalize, intersection } from './builder';\nimport yellow from '@material-ui/core/colors/yellow';\nimport green from '@material-ui/core/colors/green';\nimport debug from 'debug';\nimport classNames from 'classnames';\n\nimport { clearSelection, getCaretCharacterOffsetWithin } from './selection-utils';\n\nconst log = debug('@pie-lib:text-select:token-text');\n\nexport const Text = withStyles(() => ({\n predefined: {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`,\n // we need this for nested tokenized elements like paragraphs, where p is inside span\n '& *': {\n cursor: 'pointer',\n backgroundColor: yellow[100],\n border: `dashed 0px ${yellow[700]}`,\n },\n },\n correct: {\n backgroundColor: green[500],\n '& *': {\n backgroundColor: green[500],\n },\n },\n}))(({ text, predefined, classes, onClick, correct }) => {\n const formattedText = (text || '').replace(/\\n/g, '<br>');\n\n if (predefined) {\n const className = classNames(classes.predefined, correct && classes.correct);\n\n return <span onClick={onClick} className={className} dangerouslySetInnerHTML={{ __html: formattedText }} />;\n } else {\n return <span dangerouslySetInnerHTML={{ __html: formattedText }} />;\n }\n});\n\nconst notAllowedCharacters = ['\\n', ' ', '\\t'];\n\nexport default class TokenText extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n tokens: PropTypes.array.isRequired,\n onTokenClick: PropTypes.func.isRequired,\n onSelectToken: PropTypes.func.isRequired,\n className: PropTypes.string,\n };\n\n /*\n Change this to onClick instead of mouseUp because previously, in some cases\n the onClick event from the <Text /> component was called right after the user\n selected token and that token was then removed because the setCorrectMode was not true.\n\n const { setCorrectMode } = this.state;\n\n if (setCorrectMode) {\n this.setCorrect(token);\n } else {\n this.removeToken(token);\n }\n */\n onClick = (event) => {\n const { onSelectToken, text, tokens } = this.props;\n\n event.preventDefault();\n\n if (typeof window === 'undefined') {\n return;\n }\n\n const selection = window.getSelection();\n const textSelected = selection.toString();\n\n if (textSelected.length > 0 && notAllowedCharacters.indexOf(textSelected) < 0) {\n if (this.root) {\n let offset = getCaretCharacterOffsetWithin(this.root);\n /*\n Since we implemented new line functionality (\\n) using <br /> dom elements\n and window.getSelection is not taking that into consideration, the offset might\n be off by a few characters.\n\n To combat that, we check if the selected text is right at the beginning of the offset.\n\n If it's not, we add the additional offset in order for that to be accurate\n */\n const newLineOffset = text.slice(offset).indexOf(textSelected);\n\n offset += newLineOffset;\n\n if (offset !== undefined) {\n const endIndex = offset + textSelected.length;\n\n if (endIndex <= text.length) {\n const i = intersection({ start: offset, end: endIndex }, tokens);\n if (i.hasOverlap) {\n log('hasOverlap - do nothing');\n clearSelection();\n } else {\n const tokensToRemove = i.surroundedTokens;\n const token = {\n text: textSelected,\n start: offset,\n end: endIndex,\n };\n\n onSelectToken(token, tokensToRemove);\n clearSelection();\n }\n }\n }\n }\n }\n };\n\n render() {\n const { text, tokens, className, onTokenClick } = this.props;\n const normalized = normalize(text, tokens);\n\n return (\n <div className={className} ref={(r) => (this.root = r)} onClick={this.onClick}>\n {normalized.map((t, index) => {\n return <Text key={index} {...t} onClick={() => onTokenClick(t)} />;\n })}\n </div>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Controls from './controls';\nimport { withStyles } from '@material-ui/core/styles';\nimport { words, sentences, paragraphs } from './builder';\nimport clone from 'lodash/clone';\nimport isEqual from 'lodash/isEqual';\nimport differenceWith from 'lodash/differenceWith';\nimport classNames from 'classnames';\nimport { noSelect } from '@pie-lib/style-utils';\nimport TokenText from './token-text';\n\nexport class Tokenizer extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n tokens: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n correct: PropTypes.bool,\n start: PropTypes.number,\n end: PropTypes.number,\n }),\n ),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {\n setCorrectMode: false,\n mode: '',\n };\n }\n\n onChangeHandler = (token, mode) => {\n this.props.onChange(token, mode);\n\n this.setState({\n mode,\n });\n };\n\n toggleCorrectMode = () => this.setState({ setCorrectMode: !this.state.setCorrectMode });\n\n clear = () => {\n this.onChangeHandler([], '');\n };\n\n buildTokens = (type, fn) => {\n const { text } = this.props;\n const tokens = fn(text);\n\n this.onChangeHandler(tokens, type);\n };\n\n selectToken = (newToken, tokensToRemove) => {\n const { tokens } = this.props;\n const update = differenceWith(clone(tokens), tokensToRemove, isEqual);\n\n update.push(newToken);\n this.onChangeHandler(update, this.state.mode);\n };\n\n tokenClick = (token) => {\n const { setCorrectMode } = this.state;\n\n if (setCorrectMode) {\n this.setCorrect(token);\n } else {\n this.removeToken(token);\n }\n };\n\n tokenIndex = (token) => {\n const { tokens } = this.props;\n\n return tokens.findIndex((t) => {\n return t.text == token.text && t.start == token.start && t.end == token.end;\n });\n };\n\n setCorrect = (token) => {\n const { tokens } = this.props;\n const index = this.tokenIndex(token);\n if (index !== -1) {\n const t = tokens[index];\n\n t.correct = !t.correct;\n\n const update = clone(tokens);\n\n update.splice(index, 1, t);\n this.onChangeHandler(update, this.state.mode);\n }\n };\n\n removeToken = (token) => {\n const { tokens } = this.props;\n\n const index = this.tokenIndex(token);\n if (index !== -1) {\n const update = clone(tokens);\n\n update.splice(index, 1);\n\n this.onChangeHandler(update, this.state.mode);\n }\n };\n\n render() {\n const { text, tokens, classes, className } = this.props;\n const { setCorrectMode } = this.state;\n\n const tokenClassName = classNames(classes.text, setCorrectMode && classes.noselect);\n\n const rootName = classNames(classes.tokenizer, className);\n\n return (\n <div className={rootName}>\n <Controls\n onClear={this.clear}\n onWords={() => this.buildTokens('words', words)}\n onSentences={() => this.buildTokens('sentence', sentences)}\n onParagraphs={() => this.buildTokens('paragraphs', paragraphs)}\n setCorrectMode={setCorrectMode}\n onToggleCorrectMode={this.toggleCorrectMode}\n />\n <TokenText\n className={tokenClassName}\n text={text}\n tokens={tokens}\n onTokenClick={this.tokenClick}\n onSelectToken={this.selectToken}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(() => ({\n text: {\n whiteSpace: 'pre-wrap',\n },\n noselect: { ...noSelect() },\n}))(Tokenizer);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n return function (BaseComponent) {\n /* eslint-disable no-param-reassign */\n BaseComponent[key] = value;\n /* eslint-enable no-param-reassign */\n\n return BaseComponent;\n };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var ShouldUpdate =\n /*#__PURE__*/\n function (_Component) {\n (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n function ShouldUpdate() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = ShouldUpdate.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return test(this.props, nextProps);\n };\n\n _proto.render = function render() {\n return factory(this.props);\n };\n\n return ShouldUpdate;\n }(_react.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n }\n\n return ShouldUpdate;\n };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n return !(0, _shallowEqual.default)(props, nextProps);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n }\n\n return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Icon = function Icon(props) {\n return _react.default.createElement(_SvgIcon.default, props, path);\n };\n\n Icon.displayName = \"\".concat(displayName, \"Icon\");\n Icon = (0, _pure.default)(Icon);\n Icon.muiName = 'SvgIcon';\n return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n})), 'Check');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'Close');\n\nexports.default = _default;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Check from '@material-ui/icons/Check';\nimport Close from '@material-ui/icons/Close';\n\nimport { color } from '@pie-lib/render-ui';\n\n// we need to use a larger line height for the token to be more readable\nconst LINE_HEIGHT_MULTIPLIER = 3.2;\n// we need a bit more space for correctness indicators\nconst CORRECTNESS_LINE_HEIGHT_MULTIPLIER = 3.4;\nconst CORRECTNESS_PADDING = 2;\n\nconst Wrapper = ({ useWrapper, children, classNameContainer, iconClass, Icon }) =>\n useWrapper ? (\n <span className={classNameContainer}>\n {children}\n <Icon className={iconClass} />\n </span>\n ) : (\n children\n );\n\nWrapper.propTypes = {\n useWrapper: PropTypes.bool,\n classNameContainer: PropTypes.string,\n iconClass: PropTypes.string,\n Icon: PropTypes.func,\n children: PropTypes.element,\n};\n\nexport const TokenTypes = {\n text: PropTypes.string,\n selectable: PropTypes.bool,\n};\n\nexport class Token extends React.Component {\n static rootClassName = 'tokenRootClass';\n\n static propTypes = {\n ...TokenTypes,\n classes: PropTypes.object.isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n highlight: PropTypes.bool,\n correct: PropTypes.bool,\n };\n\n static defaultProps = {\n selectable: false,\n text: '',\n };\n\n getClassAndIconConfig = () => {\n const {\n selectable,\n selected,\n classes,\n className: classNameProp,\n disabled,\n highlight,\n correct,\n animationsDisabled,\n isMissing,\n } = this.props;\n const isTouchEnabled = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n const baseClassName = Token.rootClassName;\n let classNameContainer;\n let Icon;\n let iconClass;\n\n if (correct === undefined && selected && disabled) {\n return {\n className: classNames(classes.token, classes.selected, classes.disabledBlack),\n };\n }\n\n if (correct !== undefined) {\n const isCorrect = correct === true;\n return {\n className: classNames(baseClassName, classes.custom),\n classNameContainer: classNames(isCorrect ? classes.correct : classes.incorrect, classes.commonTokenStyle),\n Icon: isCorrect ? Check : Close,\n iconClass: classNames(\n classes.correctnessIndicatorIcon,\n isCorrect ? classes.correctIcon : classes.incorrectIcon,\n ),\n };\n }\n\n if (isMissing) {\n return {\n className: classNames(baseClassName, classes.custom, classes.missing, classes.commonTokenStyle),\n classNameContainer: classes.commonTokenStyle,\n Icon: Close,\n iconClass: classNames(classes.correctnessIndicatorIcon, classes.incorrectIcon),\n };\n }\n\n return {\n className: classNames(\n baseClassName,\n classes.token,\n disabled && classes.disabled,\n selectable && !disabled && !isTouchEnabled && classes.selectable,\n selected && !disabled && classes.selected,\n selected && disabled && classes.disabledAndSelected,\n highlight && selectable && !disabled && !selected && classes.highlight,\n animationsDisabled && classes.print,\n classNameProp,\n ),\n classNameContainer,\n Icon,\n iconClass,\n };\n };\n\n render() {\n const { text, index, correct, isMissing } = this.props;\n const { className, classNameContainer, Icon, iconClass } = this.getClassAndIconConfig();\n\n return (\n <Wrapper\n useWrapper={correct !== undefined || isMissing}\n classNameContainer={classNameContainer}\n iconClass={iconClass}\n Icon={Icon}\n >\n <span\n className={className}\n dangerouslySetInnerHTML={{ __html: (text || '').replace(/\\n/g, '<br>') }}\n data-indexkey={index}\n />\n </Wrapper>\n );\n }\n}\n\nexport default withStyles((theme) => {\n return {\n token: {\n cursor: 'pointer',\n textIndent: 0,\n },\n disabled: {\n cursor: 'inherit',\n color: color.disabled(),\n },\n disabledBlack: {\n cursor: 'inherit',\n },\n disabledAndSelected: {\n backgroundColor: color.blueGrey100(),\n },\n selectable: {\n [theme.breakpoints.up(769)]: {\n '&:hover': {\n backgroundColor: color.blueGrey300(),\n color: theme.palette.common.black,\n '& > *': {\n backgroundColor: color.blueGrey300(),\n },\n },\n },\n },\n selected: {\n backgroundColor: color.blueGrey100(),\n color: theme.palette.common.black,\n lineHeight: `${theme.spacing.unit * LINE_HEIGHT_MULTIPLIER}px`,\n border: `solid 2px ${color.blueGrey900()}`,\n borderRadius: '4px',\n '& > *': {\n backgroundColor: color.blueGrey100(),\n },\n },\n highlight: {\n border: `dashed 2px ${color.blueGrey600()}`,\n borderRadius: '4px',\n lineHeight: `${theme.spacing.unit * LINE_HEIGHT_MULTIPLIER}px`,\n },\n print: {\n border: `dashed 2px ${color.blueGrey600()}`,\n borderRadius: '4px',\n lineHeight: `${theme.spacing.unit * LINE_HEIGHT_MULTIPLIER}px`,\n color: color.text(),\n },\n custom: {\n display: 'initial',\n },\n commonTokenStyle: {\n position: 'relative',\n borderRadius: '4px',\n color: theme.palette.common.black,\n lineHeight: `${theme.spacing.unit * CORRECTNESS_LINE_HEIGHT_MULTIPLIER + CORRECTNESS_PADDING}px`,\n padding: `${CORRECTNESS_PADDING}px`,\n },\n correct: {\n border: `${color.correctTertiary()} solid 2px`,\n },\n incorrect: {\n border: `${color.incorrectWithIcon()} solid 2px`,\n },\n missing: {\n border: `${color.incorrectWithIcon()} dashed 2px`,\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n correctIcon: {\n backgroundColor: color.correctTertiary(),\n },\n correctnessIndicatorIcon: {\n color: color.white(),\n position: 'absolute',\n top: '-8px',\n left: '-8px',\n borderRadius: '50%',\n fontSize: '12px',\n padding: '2px',\n },\n };\n})(Token);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Token, { TokenTypes } from './token';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport clone from 'lodash/clone';\nimport debug from 'debug';\nimport { noSelect } from '@pie-lib/style-utils';\nimport { renderToString } from 'react-dom/server';\nimport isEqual from 'lodash/isEqual';\n\nconst log = debug('@pie-lib:text-select:token-select');\n\nexport class TokenSelect extends React.Component {\n static propTypes = {\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n highlightChoices: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxNoOfSelections: PropTypes.number,\n };\n\n static defaultProps = {\n highlightChoices: false,\n maxNoOfSelections: 0,\n tokens: [],\n };\n\n selectedCount = () => this.props.tokens.filter((t) => t.selected).length;\n\n canSelectMore = (selectedCount) => {\n const { maxNoOfSelections } = this.props;\n\n if (maxNoOfSelections === 1) {\n return true;\n }\n\n log('[canSelectMore] maxNoOfSelections: ', maxNoOfSelections, 'selectedCount: ', selectedCount);\n return maxNoOfSelections <= 0 || (isFinite(maxNoOfSelections) && selectedCount < maxNoOfSelections);\n };\n\n /**\n @function\n @param { object } event\n\n @description\n each token is wrapped into a span that has Token.rootClassName class and indexkey attribute (represents the index of the token)\n tokens are updated with the targeted token having the correct value set for 'selected' property\n */\n toggleToken = (event) => {\n const { target } = event;\n const { tokens, animationsDisabled } = this.props;\n const tokensCloned = clone(tokens);\n const targetSpanWrapper = target.closest(`.${Token.rootClassName}`);\n const targetedTokenIndex = targetSpanWrapper && targetSpanWrapper.dataset && targetSpanWrapper.dataset.indexkey;\n const t = targetedTokenIndex && tokensCloned[targetedTokenIndex];\n\n // don't toggle if we are in print mode, token correctness is defined or if it's missing\n // (missing means that it was evaluated as correct and not selected)\n if (t && t.correct === undefined && !animationsDisabled && !t.isMissing) {\n const { onChange, maxNoOfSelections } = this.props;\n const selected = !t.selected;\n\n if (maxNoOfSelections === 1 && this.selectedCount() === 1) {\n const selectedToken = (tokens || []).filter((t) => t.selected);\n\n const updatedTokens = tokensCloned.map((token) => {\n if (isEqual(token, selectedToken[0])) {\n return { ...token, selected: false };\n }\n\n return { ...token, selectable: true };\n });\n\n const update = { ...t, selected: !t.selected };\n\n updatedTokens.splice(targetedTokenIndex, 1, update);\n onChange(updatedTokens);\n } else {\n if (selected && maxNoOfSelections > 0 && this.selectedCount() >= maxNoOfSelections) {\n log('skip toggle max reached');\n return;\n }\n\n const update = { ...t, selected: !t.selected };\n\n tokensCloned.splice(targetedTokenIndex, 1, update);\n onChange(tokensCloned);\n }\n }\n };\n\n generateTokensInHtml = () => {\n const { tokens, disabled, highlightChoices, animationsDisabled } = this.props;\n const selectedCount = this.selectedCount();\n const isLineBreak = (text) => text === '\\n';\n const isNewParagraph = (text) => text === '\\n\\n';\n\n const reducer = (accumulator, t, index) => {\n const selectable = t.selected || (t.selectable && this.canSelectMore(selectedCount));\n const showCorrectAnswer = t.correct !== undefined && (t.selectable || t.selected);\n let finalAcc = accumulator;\n\n if (isNewParagraph(t.text)) {\n return finalAcc + '</p><p>';\n }\n\n if (isLineBreak(t.text)) {\n return finalAcc + '<br>';\n }\n\n if (\n (selectable && !disabled) ||\n showCorrectAnswer ||\n t.selected ||\n t.isMissing ||\n (animationsDisabled && t.predefined) // if we are in print mode\n ) {\n return (\n finalAcc +\n renderToString(\n <Token\n key={index}\n disabled={disabled}\n index={index}\n {...t}\n selectable={selectable}\n highlight={highlightChoices}\n animationsDisabled={animationsDisabled}\n />,\n )\n );\n } else {\n return accumulator + t.text;\n }\n };\n\n const reduceResult = (tokens || []).reduce(reducer, '<p>');\n\n return reduceResult + '</p>';\n };\n\n render() {\n const { classes, className: classNameProp } = this.props;\n const className = classNames(classes.tokenSelect, classNameProp);\n const html = this.generateTokensInHtml();\n\n return <div className={className} dangerouslySetInnerHTML={{ __html: html }} onClick={this.toggleToken} />;\n }\n}\n\nexport default withStyles(() => ({\n tokenSelect: {\n backgroundColor: 'none',\n whiteSpace: 'pre',\n ...noSelect(),\n '& p': {\n whiteSpace: 'break-spaces',\n },\n },\n}))(TokenSelect);\n\n// Re-export TokenTypes for external use\nexport { TokenTypes };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport TokenSelect from './token-select';\nimport { normalize } from './tokenizer/builder';\nimport { TokenTypes } from './token-select/token';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:text-select');\n/**\n * Built on TokenSelect uses build.normalize to build the token set.\n */\nexport default class TextSelect extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n tokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n selectedTokens: PropTypes.arrayOf(PropTypes.shape(TokenTypes)).isRequired,\n text: PropTypes.string.isRequired,\n className: PropTypes.string,\n highlightChoices: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxNoOfSelections: PropTypes.number,\n };\n\n change = (tokens) => {\n const { onChange } = this.props;\n\n if (!onChange) {\n return;\n }\n const out = tokens.filter((t) => t.selected).map((t) => ({ start: t.start, end: t.end }));\n\n onChange(out);\n };\n\n render() {\n const {\n text,\n disabled,\n tokens,\n selectedTokens,\n className,\n highlightChoices,\n maxNoOfSelections,\n animationsDisabled,\n } = this.props;\n\n const normalized = normalize(text, tokens);\n log('normalized: ', normalized);\n const prepped = normalized.map((t) => {\n const selectedIndex = selectedTokens.findIndex((s) => {\n return s.start === t.start && s.end === t.end;\n });\n const selected = selectedIndex !== -1;\n const correct = selected ? t.correct : undefined;\n const isMissing = t.isMissing;\n return {\n ...t,\n selectable: !disabled && t.predefined,\n selected,\n correct,\n isMissing,\n };\n });\n\n return (\n <TokenSelect\n highlightChoices={!disabled && highlightChoices}\n className={className}\n tokens={prepped}\n disabled={disabled}\n onChange={this.change}\n maxNoOfSelections={maxNoOfSelections}\n animationsDisabled={animationsDisabled}\n />\n );\n }\n}\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Check from '@material-ui/icons/Check';\nimport Close from '@material-ui/icons/Close';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\nimport classNames from 'classnames';\n\nconst { translator } = Translator;\n\nexport const Legend = withStyles((theme) => ({\n flexContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: `${2 * theme.spacing.unit}px`,\n borderBottom: '1px solid lightgrey',\n borderTop: '1px solid lightgrey',\n paddingBottom: theme.spacing.unit,\n paddingTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n key: {\n fontSize: '14px',\n fontWeight: 'bold',\n color: color.black(),\n marginLeft: theme.spacing.unit,\n },\n container: {\n position: 'relative',\n padding: '4px',\n fontSize: '14px',\n borderRadius: '4px',\n },\n correct: {\n border: `${color.correctTertiary()} solid 2px`,\n },\n incorrect: {\n border: `${color.incorrectWithIcon()} solid 2px`,\n },\n missing: {\n border: `${color.incorrectWithIcon()} dashed 2px`,\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n correctIcon: {\n backgroundColor: color.correctTertiary(),\n },\n icon: {\n color: color.white(),\n position: 'absolute',\n top: '-8px',\n left: '-8px',\n borderRadius: '50%',\n fontSize: '12px',\n padding: '2px',\n },\n}))(({ classes, language, showOnlyCorrect }) => {\n const legendItems = [\n {\n Icon: Check,\n label: translator.t('selectText.correctAnswerSelected', { lng: language }),\n containerClass: classNames(classes.correct, classes.container),\n iconClass: classNames(classes.correctIcon, classes.icon),\n },\n {\n Icon: Close,\n label: translator.t('selectText.incorrectSelection', { lng: language }),\n containerClass: classNames(classes.incorrect, classes.container),\n iconClass: classNames(classes.incorrectIcon, classes.icon),\n },\n {\n Icon: Close,\n label: translator.t('selectText.correctAnswerNotSelected', { lng: language }),\n containerClass: classNames(classes.missing, classes.container),\n iconClass: classNames(classes.incorrectIcon, classes.icon),\n },\n ];\n\n if (showOnlyCorrect) {\n legendItems.splice(1, 2);\n }\n\n return (\n <div className={classes.flexContainer}>\n <span className={classes.key}>{translator.t('selectText.key', { lng: language })}</span>\n {legendItems.map(({ Icon, label, containerClass, iconClass }, idx) => (\n <div key={idx} className={containerClass}>\n <Icon className={iconClass} />\n <span>{label}</span>\n </div>\n ))}\n </div>\n );\n});\n","const createElementFromHTML = (htmlString = '') => {\n const div = document.createElement('div');\n\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport const parseBrs = (dom) => {\n const brs = dom.querySelectorAll('br');\n\n brs.forEach((br) => br.replaceWith('\\n'));\n\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\n};\n\nexport const parseParagraph = (paragraph, end) => {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return `${paragraph.innerHTML}\\n\\n`;\n};\n\nexport const parseParagraphs = (dom) => {\n const paragraphs = dom.querySelectorAll('p');\n // separate variable for easily debugging, if needed\n let str = '';\n\n paragraphs.forEach((par, index) => {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n\n return str || null;\n};\n\nexport const prepareText = (text) => {\n let txtDom = createElementFromHTML(text);\n const allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (txtDom.querySelectorAll('p').length === 0) {\n const div = document.createElement('div');\n\n div.innerHTML = `<p>${txtDom.innerHTML}</p>`;\n txtDom = div;\n }\n\n // if no dom elements, we just return the text\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n\n return parseParagraphs(txtDom);\n};\n"],"names":["Controls","React","Component","render","classes","onClear","onWords","onSentences","onParagraphs","setCorrectMode","onToggleCorrectMode","props","controls","button","checked","checkedThumb","bar","classNames","checkedBar","propTypes","PropTypes","object","isRequired","func","bool","defaultProps","withStyles","theme","marginRight","spacing","unit","display","alignItems","justifyContent","color","tertiary","backgroundColor","tertiaryLight","g","str","node","children","reduce","value","getParagraph","p","getSentence","s","getWord","w","paragraphs","text","tree","English","parse","out","acc","child","type","paragraph","start","position","offset","end","concat","handleSentence","sentenceChilds","newAcc","length","firstWord","sentence","map","d","join","splice","push","lastWord","sentences","words","Intersection","constructor","results","hasOverlap","filter","r","surroundedTokens","t","token","intersection","selection","tokens","startsWithin","endsWithin","mapped","compact","sort","Array","isArray","clone","a","b","e","Error","normalize","textToNormalize","index","outer","lastIndex","substring","predefined","correct","isMissing","last","result","clearSelection","document","getSelection","removeAllRanges","addRange","createRange","window","empty","getCaretCharacterOffsetWithin","element","caretOffset","doc","ownerDocument","win","defaultView","parentWindow","sel","rangeCount","range","getRangeAt","selected","toString","preCaretRange","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","textRange","preCaretTextRange","body","createTextRange","moveToElementText","setEndPoint","log","debug","Text","cursor","yellow","border","green","onClick","formattedText","replace","className","__html","notAllowedCharacters","TokenText","event","onSelectToken","preventDefault","textSelected","indexOf","root","newLineOffset","slice","undefined","endIndex","i","tokensToRemove","onTokenClick","normalized","string","array","Tokenizer","onChangeHandler","mode","onChange","setState","toggleCorrectMode","state","clear","buildTokens","fn","selectToken","newToken","update","differenceWith","isEqual","tokenClick","setCorrect","removeToken","tokenIndex","findIndex","tokenClassName","noselect","rootName","tokenizer","arrayOf","shape","number","whiteSpace","noSelect","require$$0","setStatic_1","setStatic","setDisplayName_1","require$$1","setDisplayName","getDisplayName_1","getDisplayName","wrapDisplayName_1","wrapDisplayName","shouldUpdate_1","require$$2","require$$3","require$$4","shouldUpdate","pure_1","pure","createSvgIcon_1","createSvgIcon","Check","Close","LINE_HEIGHT_MULTIPLIER","CORRECTNESS_LINE_HEIGHT_MULTIPLIER","CORRECTNESS_PADDING","Wrapper","useWrapper","classNameContainer","iconClass","Icon","TokenTypes","selectable","Token","getClassAndIconConfig","classNameProp","disabled","highlight","animationsDisabled","isTouchEnabled","navigator","maxTouchPoints","msMaxTouchPoints","baseClassName","rootClassName","disabledBlack","isCorrect","custom","incorrect","commonTokenStyle","correctnessIndicatorIcon","correctIcon","incorrectIcon","missing","disabledAndSelected","print","textIndent","blueGrey100","breakpoints","up","blueGrey300","palette","common","black","lineHeight","blueGrey900","borderRadius","blueGrey600","padding","correctTertiary","incorrectWithIcon","white","top","left","fontSize","TokenSelect","selectedCount","canSelectMore","maxNoOfSelections","isFinite","toggleToken","target","tokensCloned","targetSpanWrapper","closest","targetedTokenIndex","dataset","indexkey","selectedToken","updatedTokens","generateTokensInHtml","highlightChoices","isLineBreak","isNewParagraph","reducer","accumulator","showCorrectAnswer","finalAcc","renderToString","reduceResult","tokenSelect","html","TextSelect","change","selectedTokens","prepped","selectedIndex","translator","Translator","Legend","flexContainer","flexDirection","gap","borderBottom","borderTop","paddingBottom","paddingTop","marginBottom","key","fontWeight","marginLeft","container","icon","language","showOnlyCorrect","legendItems","label","lng","containerClass","idx","createElementFromHTML","htmlString","div","createElement","innerHTML","trim","parseBrs","dom","brs","querySelectorAll","forEach","br","replaceWith","parseParagraph","parseParagraphs","par","prepareText","txtDom","allDomElements","from"],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.29.
|
|
6
|
+
"version": "1.29.3",
|
|
7
7
|
"description": "Some react components for text selection",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@material-ui/icons": "^3.0.2",
|
|
21
21
|
"@pie-framework/parse-english": "^1.0.0",
|
|
22
|
-
"@pie-lib/render-ui": "^4.32.
|
|
23
|
-
"@pie-lib/style-utils": "^0.18.
|
|
24
|
-
"@pie-lib/translator": "^2.20.
|
|
22
|
+
"@pie-lib/render-ui": "^4.32.3",
|
|
23
|
+
"@pie-lib/style-utils": "^0.18.2",
|
|
24
|
+
"@pie-lib/translator": "^2.20.2",
|
|
25
25
|
"classnames": "^2.2.6",
|
|
26
26
|
"debug": "^4.1.1",
|
|
27
27
|
"invariant": "^2.2.4",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@material-ui/core": "^3.8.3",
|
|
34
34
|
"@pie-framework/parse-english": "^1.0.0",
|
|
35
|
-
"@pie-lib/test-utils": "^0.19.
|
|
35
|
+
"@pie-lib/test-utils": "^0.19.3",
|
|
36
36
|
"natural": "^0.6.3",
|
|
37
37
|
"react": "^16.8.1",
|
|
38
38
|
"react-dom": "^16.9.0"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@material-ui/core": "^3.8.3",
|
|
42
42
|
"react": "^16.8.1"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "8a327571bd64249e4c88c0c8e750d16d6213f535",
|
|
45
45
|
"scripts": {},
|
|
46
46
|
"exports": {
|
|
47
47
|
".": {
|
package/LICENSE.md
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
Copyright 2019 CoreSpring Inc
|
|
2
|
-
|
|
3
|
-
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
4
|
-
|
|
5
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|