@zohodesk/components 1.4.21 → 1.4.23

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.
Files changed (153) hide show
  1. package/README.md +34 -0
  2. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +15 -0
  3. package/assets/Appearance/light/mode/Component_LightMode.module.css +15 -0
  4. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +15 -0
  5. package/es/ColorSelect/ColorMultiSelect.js +38 -0
  6. package/es/ColorSelect/ColorSelect.module.css +3 -0
  7. package/es/ColorSelect/ColorSingleSelect.js +83 -0
  8. package/es/ColorSelect/__tests__/ColorMultiSelect.spec.js +71 -0
  9. package/es/ColorSelect/__tests__/ColorSingleSelect.spec.js +80 -0
  10. package/es/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +536 -0
  11. package/es/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +422 -0
  12. package/es/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +33 -0
  13. package/es/ColorSelect/_shared/ColorIndicator/ColorIndicator.module.css +19 -0
  14. package/es/ColorSelect/_shared/ColorIndicator/__tests__/ColorIndicator.spec.js +79 -0
  15. package/es/ColorSelect/_shared/ColorIndicator/__tests__/__snapshots__/ColorIndicator.spec.js.snap +106 -0
  16. package/es/ColorSelect/_shared/ColorIndicator/props/defaultProps.js +8 -0
  17. package/es/ColorSelect/_shared/ColorIndicator/props/propTypes.js +10 -0
  18. package/es/ColorSelect/_shared/ColoredTag/ColoredTag.js +33 -0
  19. package/es/ColorSelect/_shared/ColoredTag/__tests__/ColoredTag.spec.js +50 -0
  20. package/es/ColorSelect/_shared/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +101 -0
  21. package/es/ColorSelect/_shared/ColoredTag/props/propTypes.js +10 -0
  22. package/es/ColorSelect/_shared/helpers/renderHelpers.js +43 -0
  23. package/es/ColorSelect/props/defaultProps.js +12 -0
  24. package/es/ColorSelect/props/propTypes.js +17 -0
  25. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +3 -18
  26. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +1 -6
  27. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +3 -18
  28. package/es/ListItem/ListItem.js +6 -1
  29. package/es/ListItem/ListItem.module.css +6 -0
  30. package/es/ListItem/__tests__/ListItem.spec.js +8 -0
  31. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +47 -0
  32. package/es/ListItem/props/propTypes.js +1 -0
  33. package/es/MultiSelect/MultiSelect.js +11 -5
  34. package/es/MultiSelect/SelectedOptions.js +24 -1
  35. package/es/MultiSelect/Suggestions.js +4 -1
  36. package/es/MultiSelect/__tests__/MultiSelect.spec.js +38 -0
  37. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +13 -0
  38. package/es/MultiSelect/__tests__/Suggestions.spec.js +12 -0
  39. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +1 -3
  40. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +3 -9
  41. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +91 -12
  42. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +1 -3
  43. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +15 -0
  44. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +66 -0
  45. package/es/MultiSelect/props/propTypes.js +6 -0
  46. package/es/Select/Select.js +67 -5
  47. package/es/Select/__tests__/Select.spec.js +10 -0
  48. package/es/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +1 -6
  49. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +111 -441
  50. package/es/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +1 -6
  51. package/es/Select/props/defaultProps.js +2 -1
  52. package/es/Select/props/propTypes.js +3 -1
  53. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  54. package/es/TextBoxIcon/TextBoxIcon.js +17 -12
  55. package/es/TextBoxIcon/TextBoxIcon.module.css +3 -38
  56. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +9 -2
  57. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +78 -224
  58. package/es/TextBoxIcon/props/propTypes.js +1 -2
  59. package/es/Typography/Typography.js +9 -2
  60. package/es/Typography/__tests__/Typography.spec.js +427 -0
  61. package/es/Typography/__tests__/__snapshots__/Typography.spec.js.snap +506 -0
  62. package/es/Typography/props/defaultProps.js +2 -1
  63. package/es/Typography/props/propTypes.js +24 -5
  64. package/es/Typography/utils/textHighlighter.js +139 -0
  65. package/es/shared/ArrowIcon/ArrowIcon.js +51 -0
  66. package/es/shared/ArrowIcon/ArrowIcon.module.css +43 -0
  67. package/es/shared/ArrowIcon/__tests__/ArrowIcon.spec.js +100 -0
  68. package/es/shared/ArrowIcon/__tests__/__snapshots__/ArrowIcon.spec.js.snap +221 -0
  69. package/es/shared/ArrowIcon/props/defaultProps.js +11 -0
  70. package/es/shared/ArrowIcon/props/propTypes.js +17 -0
  71. package/es/shared/InputFieldLine/InputFieldLine.js +45 -0
  72. package/es/shared/InputFieldLine/InputFieldLine.module.css +88 -0
  73. package/es/shared/InputFieldLine/__tests__/InputFieldLine.spec.js +114 -0
  74. package/es/shared/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +194 -0
  75. package/es/shared/InputFieldLine/props/defaultProps.js +16 -0
  76. package/es/shared/InputFieldLine/props/propTypes.js +22 -0
  77. package/es/utils/Common.js +3 -2
  78. package/es/utils/dropDownUtils.js +7 -1
  79. package/lib/ColorSelect/ColorMultiSelect.js +71 -0
  80. package/lib/ColorSelect/ColorSelect.module.css +3 -0
  81. package/lib/ColorSelect/ColorSingleSelect.js +111 -0
  82. package/lib/ColorSelect/__tests__/ColorMultiSelect.spec.js +82 -0
  83. package/lib/ColorSelect/__tests__/ColorSingleSelect.spec.js +91 -0
  84. package/lib/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +536 -0
  85. package/lib/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +422 -0
  86. package/lib/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +47 -0
  87. package/lib/ColorSelect/_shared/ColorIndicator/ColorIndicator.module.css +19 -0
  88. package/lib/ColorSelect/_shared/ColorIndicator/__tests__/ColorIndicator.spec.js +86 -0
  89. package/lib/ColorSelect/_shared/ColorIndicator/__tests__/__snapshots__/ColorIndicator.spec.js.snap +106 -0
  90. package/lib/ColorSelect/_shared/ColorIndicator/props/defaultProps.js +15 -0
  91. package/lib/ColorSelect/_shared/ColorIndicator/props/propTypes.js +21 -0
  92. package/lib/ColorSelect/_shared/ColoredTag/ColoredTag.js +69 -0
  93. package/lib/ColorSelect/_shared/ColoredTag/__tests__/ColoredTag.spec.js +58 -0
  94. package/lib/ColorSelect/_shared/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +101 -0
  95. package/lib/ColorSelect/_shared/ColoredTag/props/propTypes.js +29 -0
  96. package/lib/ColorSelect/_shared/helpers/renderHelpers.js +63 -0
  97. package/lib/ColorSelect/props/defaultProps.js +32 -0
  98. package/lib/ColorSelect/props/propTypes.js +39 -0
  99. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +3 -18
  100. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +1 -6
  101. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +3 -18
  102. package/lib/ListItem/ListItem.js +6 -1
  103. package/lib/ListItem/ListItem.module.css +6 -0
  104. package/lib/ListItem/__tests__/ListItem.spec.js +12 -4
  105. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +47 -0
  106. package/lib/ListItem/props/propTypes.js +1 -0
  107. package/lib/MultiSelect/MultiSelect.js +11 -5
  108. package/lib/MultiSelect/SelectedOptions.js +24 -1
  109. package/lib/MultiSelect/Suggestions.js +5 -1
  110. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +42 -2
  111. package/lib/MultiSelect/__tests__/SelectedOptions.spec.js +15 -0
  112. package/lib/MultiSelect/__tests__/Suggestions.spec.js +16 -2
  113. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +1 -3
  114. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +3 -9
  115. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +91 -12
  116. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +1 -3
  117. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +15 -0
  118. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +66 -0
  119. package/lib/MultiSelect/props/propTypes.js +6 -0
  120. package/lib/Select/Select.js +67 -4
  121. package/lib/Select/__tests__/Select.spec.js +12 -0
  122. package/lib/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +1 -6
  123. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +111 -441
  124. package/lib/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +1 -6
  125. package/lib/Select/props/defaultProps.js +2 -1
  126. package/lib/Select/props/propTypes.js +3 -1
  127. package/lib/TextBox/__tests__/TextBox.spec.js +36 -36
  128. package/lib/TextBoxIcon/TextBoxIcon.js +18 -13
  129. package/lib/TextBoxIcon/TextBoxIcon.module.css +3 -38
  130. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +9 -2
  131. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +78 -224
  132. package/lib/TextBoxIcon/props/propTypes.js +1 -2
  133. package/lib/Typography/Typography.js +9 -2
  134. package/lib/Typography/__tests__/Typography.spec.js +436 -0
  135. package/lib/Typography/__tests__/__snapshots__/Typography.spec.js.snap +506 -0
  136. package/lib/Typography/props/defaultProps.js +2 -1
  137. package/lib/Typography/props/propTypes.js +31 -6
  138. package/lib/Typography/utils/textHighlighter.js +160 -0
  139. package/lib/shared/ArrowIcon/ArrowIcon.js +65 -0
  140. package/lib/shared/ArrowIcon/ArrowIcon.module.css +43 -0
  141. package/lib/shared/ArrowIcon/__tests__/ArrowIcon.spec.js +107 -0
  142. package/lib/shared/ArrowIcon/__tests__/__snapshots__/ArrowIcon.spec.js.snap +221 -0
  143. package/lib/shared/ArrowIcon/props/defaultProps.js +18 -0
  144. package/lib/shared/ArrowIcon/props/propTypes.js +28 -0
  145. package/lib/shared/InputFieldLine/InputFieldLine.js +57 -0
  146. package/lib/shared/InputFieldLine/InputFieldLine.module.css +88 -0
  147. package/lib/shared/InputFieldLine/__tests__/InputFieldLine.spec.js +122 -0
  148. package/lib/shared/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +194 -0
  149. package/lib/shared/InputFieldLine/props/defaultProps.js +23 -0
  150. package/lib/shared/InputFieldLine/props/propTypes.js +39 -0
  151. package/lib/utils/Common.js +8 -4
  152. package/lib/utils/dropDownUtils.js +10 -1
  153. package/package.json +9 -7
@@ -57,8 +57,7 @@ var propTypes = _objectSpread(_objectSpread({}, _propTypes2.propTypes), {}, {
57
57
  customClass: _propTypes["default"].shape({
58
58
  customTBoxWrap: _propTypes["default"].string,
59
59
  customTextBox: _propTypes["default"].string,
60
- customTBoxIcon: _propTypes["default"].string,
61
- customTBoxLine: _propTypes["default"].string
60
+ customTBoxIcon: _propTypes["default"].string
62
61
  }),
63
62
  iconOnHover: _propTypes["default"].bool,
64
63
  isFocus: _propTypes["default"].bool,
@@ -15,6 +15,8 @@ var _cssJSLogic2 = _interopRequireDefault(require("./css/cssJSLogic"));
15
15
 
16
16
  var _utils = require("@zohodesk/utils");
17
17
 
18
+ var _textHighlighter = require("./utils/textHighlighter");
19
+
18
20
  var _TypographyModule = _interopRequireDefault(require("./css/Typography.module.css"));
19
21
 
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -33,7 +35,10 @@ var Typography = function Typography(props) {
33
35
  customId = props.customId,
34
36
  $tagAttributes_text = props.$tagAttributes_text,
35
37
  $a11yAttributes_text = props.$a11yAttributes_text,
36
- customStyle = props.customStyle;
38
+ customStyle = props.customStyle,
39
+ $ui_highlightConfig = props.$ui_highlightConfig;
40
+ var _$ui_highlightConfig$ = $ui_highlightConfig.data,
41
+ highlightData = _$ui_highlightConfig$ === void 0 ? [] : _$ui_highlightConfig$;
37
42
  var style = (0, _utils.mergeStyle)(_TypographyModule["default"], customStyle);
38
43
 
39
44
  var _cssJSLogic = (0, _cssJSLogic2["default"])({
@@ -47,7 +52,9 @@ var Typography = function Typography(props) {
47
52
  'data-title': $i18n_dataTitle,
48
53
  'data-id': customId,
49
54
  'data-test-id': testId
50
- }, $tagAttributes_text), $a11yAttributes_text), children);
55
+ }, $tagAttributes_text), $a11yAttributes_text), highlightData && highlightData.length > 0 && typeof children === 'string' ? (0, _textHighlighter.highlightText)(_objectSpread(_objectSpread({}, $ui_highlightConfig), {}, {
56
+ text: children
57
+ })) : children);
51
58
  };
52
59
 
53
60
  Typography.propTypes = _propTypes.propTypes;
@@ -6,6 +6,8 @@ var _react2 = require("@testing-library/react");
6
6
 
7
7
  var _Typography = _interopRequireDefault(require("../Typography"));
8
8
 
9
+ var _Tag = _interopRequireDefault(require("../../Tag/Tag"));
10
+
9
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
12
 
11
13
  describe('Typography', function () {
@@ -227,6 +229,440 @@ describe('Typography', function () {
227
229
  }, "Heading")),
228
230
  asFragment = _render24.asFragment;
229
231
 
232
+ expect(asFragment()).toMatchSnapshot();
233
+ });
234
+ });
235
+ describe('Typography with highlight', function () {
236
+ test('should render highlighted word', function () {
237
+ var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
238
+ $ui_highlightConfig: {
239
+ data: ['sun'],
240
+ styleConfiguration: {
241
+ $ui_weight: 'bold'
242
+ }
243
+ }
244
+ }, "The sun was bright, the sun was warm, the sun was high in the sky.")),
245
+ asFragment = _render25.asFragment;
246
+
247
+ expect(asFragment()).toMatchSnapshot();
248
+ });
249
+ test('should render highlight by Index', function () {
250
+ var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
251
+ $ui_highlightConfig: {
252
+ data: [{
253
+ text: 'sun',
254
+ index: [1, 2]
255
+ }, {
256
+ text: 'under',
257
+ index: 1
258
+ }],
259
+ styleConfiguration: {
260
+ $ui_weight: 'bold',
261
+ $ui_decoration: 'underline'
262
+ }
263
+ }
264
+ }, "The sun was bright, I walked under the sun, I talked under the sun.")),
265
+ asFragment = _render26.asFragment;
266
+
267
+ expect(asFragment()).toMatchSnapshot();
268
+ });
269
+ test('should render separate Styles per Word', function () {
270
+ var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
271
+ $ui_highlightConfig: {
272
+ data: [{
273
+ text: 'sun',
274
+ styleConfiguration: {
275
+ $ui_weight: 'bold'
276
+ }
277
+ }, {
278
+ text: 'under',
279
+ styleConfiguration: {
280
+ $ui_decoration: 'underline'
281
+ }
282
+ }]
283
+ }
284
+ }, "The sun was bright, I walked under the sun, I talked under the sun.")),
285
+ asFragment = _render27.asFragment;
286
+
287
+ expect(asFragment()).toMatchSnapshot();
288
+ });
289
+ test('should render globally skip highlights at given indexes, with shouldExcludeIndices', function () {
290
+ var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
291
+ $ui_highlightConfig: {
292
+ data: [{
293
+ text: 'sun',
294
+ index: 1
295
+ }, {
296
+ text: 'moon',
297
+ index: [2, 3]
298
+ }],
299
+ shouldExcludeIndices: true,
300
+ styleConfiguration: {
301
+ $ui_weight: 'bold',
302
+ $ui_decoration: 'underline'
303
+ }
304
+ }
305
+ }, "The sun was bright, the sun was warm, the sun was high in the sky.")),
306
+ asFragment = _render28.asFragment;
307
+
308
+ expect(asFragment()).toMatchSnapshot();
309
+ });
310
+ test('should render with separate excluded index option per word', function () {
311
+ var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
312
+ $ui_highlightConfig: {
313
+ data: [{
314
+ text: 'sun',
315
+ index: 1,
316
+ shouldExcludeIndices: true
317
+ }, {
318
+ text: 'moon',
319
+ index: [2, 3],
320
+ shouldExcludeIndices: false
321
+ }],
322
+ styleConfiguration: {
323
+ $ui_weight: 'bold',
324
+ $ui_decoration: 'underline'
325
+ }
326
+ }
327
+ }, "The sun was bright, the moon was bright, the sun and moon again.")),
328
+ asFragment = _render29.asFragment;
329
+
330
+ expect(asFragment()).toMatchSnapshot();
331
+ });
332
+ test('should render with global tagName applied to all highlights', function () {
333
+ var _render30 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
334
+ $ui_highlightConfig: {
335
+ data: [{
336
+ text: 'sun'
337
+ }, {
338
+ text: 'moon'
339
+ }],
340
+ tagName: 'i'
341
+ }
342
+ }, "The sun and moon were bright.")),
343
+ asFragment = _render30.asFragment;
344
+
345
+ expect(asFragment()).toMatchSnapshot();
346
+ });
347
+ test('should render with separate tagName for each highlighted word', function () {
348
+ var _render31 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
349
+ $ui_highlightConfig: {
350
+ data: [{
351
+ text: 'sun',
352
+ tagName: 'i'
353
+ }, {
354
+ text: 'moon',
355
+ tagName: 'u'
356
+ }]
357
+ }
358
+ }, "The sun and moon were bright.")),
359
+ asFragment = _render31.asFragment;
360
+
361
+ expect(asFragment()).toMatchSnapshot();
362
+ });
363
+ test('should render with global case-sensitive option', function () {
364
+ var _render32 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
365
+ $ui_highlightConfig: {
366
+ data: [{
367
+ text: 'Sun'
368
+ }, {
369
+ text: 'moon'
370
+ }],
371
+ styleConfiguration: {
372
+ $ui_weight: 'bold',
373
+ $ui_decoration: 'underline'
374
+ },
375
+ isCaseSensitive: true
376
+ }
377
+ }, "The Sun was bright, the moon was bright, the sun was warm.")),
378
+ asFragment = _render32.asFragment;
379
+
380
+ expect(asFragment()).toMatchSnapshot();
381
+ });
382
+ test('should render with separate case-sensitive option per word', function () {
383
+ var _render33 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
384
+ $ui_highlightConfig: {
385
+ data: [{
386
+ text: 'Sun',
387
+ isCaseSensitive: true
388
+ }, {
389
+ text: 'Moon',
390
+ isCaseSensitive: false
391
+ }],
392
+ styleConfiguration: {
393
+ $ui_weight: 'bold',
394
+ $ui_decoration: 'underline'
395
+ }
396
+ }
397
+ }, "The Sun was bright, the Moon was bright, the sun was warm.")),
398
+ asFragment = _render33.asFragment;
399
+
400
+ expect(asFragment()).toMatchSnapshot();
401
+ });
402
+ test('should render with global whole-word match only', function () {
403
+ var _render34 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
404
+ $ui_highlightConfig: {
405
+ data: [{
406
+ text: 'Sun'
407
+ }, {
408
+ text: 'moon'
409
+ }],
410
+ styleConfiguration: {
411
+ $ui_weight: 'bold',
412
+ $ui_decoration: 'underline'
413
+ },
414
+ isWholeWord: true
415
+ }
416
+ }, "Sunflower is a flower. The Sun was bright, the moonlight was bright.")),
417
+ asFragment = _render34.asFragment;
418
+
419
+ expect(asFragment()).toMatchSnapshot();
420
+ });
421
+ test('should render with separate whole-word option per word', function () {
422
+ var _render35 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
423
+ $ui_highlightConfig: {
424
+ data: [{
425
+ text: 'Sun',
426
+ isWholeWord: true
427
+ }, {
428
+ text: 'moon',
429
+ isWholeWord: false
430
+ }],
431
+ styleConfiguration: {
432
+ $ui_weight: 'bold',
433
+ $ui_decoration: 'underline'
434
+ }
435
+ }
436
+ }, "Sunflower is a flower. The Sun was bright, the moonlight was bright.")),
437
+ asFragment = _render35.asFragment;
438
+
439
+ expect(asFragment()).toMatchSnapshot();
440
+ });
441
+ test('should render with global custom style for all highlights', function () {
442
+ var _render36 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
443
+ $ui_highlightConfig: {
444
+ data: [{
445
+ text: 'Sun'
446
+ }, {
447
+ text: 'moon'
448
+ }],
449
+ styleConfiguration: {
450
+ customStyle: {
451
+ backgroundColor: 'lightgreen'
452
+ }
453
+ }
454
+ }
455
+ }, "The sun and moon were bright.")),
456
+ asFragment = _render36.asFragment;
457
+
458
+ expect(asFragment()).toMatchSnapshot();
459
+ });
460
+ test('should render with separate custom style per word', function () {
461
+ var _render37 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
462
+ $ui_highlightConfig: {
463
+ data: [{
464
+ text: 'Sun',
465
+ styleConfiguration: {
466
+ customStyle: {
467
+ backgroundColor: 'lightgreen'
468
+ }
469
+ }
470
+ }, {
471
+ text: 'moon',
472
+ styleConfiguration: {
473
+ customStyle: {
474
+ backgroundColor: 'orange'
475
+ }
476
+ }
477
+ }]
478
+ }
479
+ }, "The sun and moon were bright.")),
480
+ asFragment = _render37.asFragment;
481
+
482
+ expect(asFragment()).toMatchSnapshot();
483
+ });
484
+ test('should render with global custom class for all highlights', function () {
485
+ var _render38 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
486
+ $ui_highlightConfig: {
487
+ data: [{
488
+ text: 'Sun'
489
+ }, {
490
+ text: 'moon'
491
+ }],
492
+ styleConfiguration: {
493
+ $ui_className: 'global_custom_class'
494
+ }
495
+ }
496
+ }, "The sun and moon were bright.")),
497
+ asFragment = _render38.asFragment;
498
+
499
+ expect(asFragment()).toMatchSnapshot();
500
+ });
501
+ test('should render with separate custom class for each highlighted word', function () {
502
+ var _render39 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
503
+ $ui_highlightConfig: {
504
+ data: [{
505
+ text: 'Sun',
506
+ styleConfiguration: {
507
+ $ui_className: 'separate_custom_class_sun'
508
+ }
509
+ }, {
510
+ text: 'moon',
511
+ styleConfiguration: {
512
+ $ui_className: 'separate_custom_class_moon'
513
+ }
514
+ }]
515
+ }
516
+ }, "The sun and moon were bright.")),
517
+ asFragment = _render39.asFragment;
518
+
519
+ expect(asFragment()).toMatchSnapshot();
520
+ });
521
+ test('should render customised render the highlight element for all highlighted words', function () {
522
+ var _render40 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
523
+ $ui_highlightConfig: {
524
+ data: [{
525
+ text: 'sun'
526
+ }],
527
+ renderHighlight: /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
528
+ text: "Sun"
529
+ })
530
+ }
531
+ }, "The sun was bright.")),
532
+ asFragment = _render40.asFragment;
533
+
534
+ expect(asFragment()).toMatchSnapshot();
535
+ });
536
+ test('should render separate customised render the highlight element for each highlighted word', function () {
537
+ var _render41 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
538
+ $ui_highlightConfig: {
539
+ data: [{
540
+ text: 'Sun',
541
+ renderHighlight: /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
542
+ text: "Sun"
543
+ })
544
+ }, {
545
+ text: 'moon',
546
+ renderHighlight: /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
547
+ text: "Moon"
548
+ })
549
+ }]
550
+ }
551
+ }, "The sun and moon were bright.")),
552
+ asFragment = _render41.asFragment;
553
+
554
+ expect(asFragment()).toMatchSnapshot();
555
+ });
556
+ test('should render for RegEx Characters check', function () {
557
+ var _render42 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
558
+ $ui_highlightConfig: {
559
+ data: [{
560
+ text: '$un'
561
+ }, {
562
+ text: 'm**n'
563
+ }],
564
+ styleConfiguration: {
565
+ customStyle: {
566
+ backgroundColor: 'lightgreen'
567
+ }
568
+ }
569
+ }
570
+ }, "The sun and moon were bright. and the m**n get sunlight from the $un, The Sun provides light to its nearby stars")),
571
+ asFragment = _render42.asFragment;
572
+
573
+ expect(asFragment()).toMatchSnapshot();
574
+ });
575
+ test('should render for combination of configuration check', function () {
576
+ var _render43 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
577
+ $ui_highlightConfig: {
578
+ data: [{
579
+ text: 'Sun',
580
+ index: 1,
581
+ shouldExcludeIndices: true,
582
+ isWholeWord: true,
583
+ isCaseSensitive: true
584
+ }],
585
+ styleConfiguration: {
586
+ customStyle: {
587
+ backgroundColor: 'lightgreen'
588
+ }
589
+ }
590
+ }
591
+ }, "The sun and moon were bright. and the moon get sunlight from the Sun, The Sun provides light to its nearby stars")),
592
+ asFragment = _render43.asFragment;
593
+
594
+ expect(asFragment()).toMatchSnapshot();
595
+ });
596
+ test('should render for priority based check - it priorities the global renderHighlight over the style configurations from the global', function () {
597
+ var _render44 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
598
+ $ui_highlightConfig: {
599
+ data: ['sunlight'],
600
+ styleConfiguration: {
601
+ $ui_decoration: 'underline'
602
+ },
603
+ renderHighlight: function renderHighlight(text) {
604
+ return /*#__PURE__*/_react["default"].createElement("a", {
605
+ href: "https://www.zoho.com",
606
+ target: "_blank",
607
+ rel: "noopener noreferrer"
608
+ }, " ", text, " ");
609
+ }
610
+ }
611
+ }, "1 Sun Moon 2 sun moon 3 sunmoon 4 SUN MOON 5 sun moon 6 sunlight moonlight")),
612
+ asFragment = _render44.asFragment;
613
+
614
+ expect(asFragment()).toMatchSnapshot();
615
+ });
616
+ test('should render for priority based check - it priorities the style configurations from the data object over the global renderHighlight', function () {
617
+ var _render45 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
618
+ $ui_highlightConfig: {
619
+ data: [{
620
+ text: 'sunlight',
621
+ styleConfiguration: {
622
+ $ui_decoration: 'underline'
623
+ }
624
+ }],
625
+ renderHighlight: function renderHighlight(text) {
626
+ return /*#__PURE__*/_react["default"].createElement("a", {
627
+ href: "https://www.zoho.com",
628
+ target: "_blank",
629
+ rel: "noopener noreferrer"
630
+ }, " ", text, " ");
631
+ }
632
+ }
633
+ }, "1 Sun Moon 2 sun moon 3 sunmoon 4 SUN MOON 5 sun moon 6 sunlight moonlight")),
634
+ asFragment = _render45.asFragment;
635
+
636
+ expect(asFragment()).toMatchSnapshot();
637
+ });
638
+ test('should render for priority based check - it priorities the renderHighlight from the data object over the global renderHighlight, global style configuration and style configuration from the data object', function () {
639
+ var _render46 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
640
+ $ui_highlightConfig: {
641
+ data: [{
642
+ text: 'sunlight',
643
+ styleConfiguration: {
644
+ $ui_decoration: 'underline'
645
+ },
646
+ renderHighlight: function renderHighlight(text) {
647
+ return /*#__PURE__*/_react["default"].createElement("b", null, " ", text, " ");
648
+ }
649
+ }],
650
+ styleConfiguration: {
651
+ customStyle: {
652
+ backgroundColor: 'lightgreen'
653
+ }
654
+ },
655
+ renderHighlight: function renderHighlight(text) {
656
+ return /*#__PURE__*/_react["default"].createElement("a", {
657
+ href: "https://www.zoho.com",
658
+ target: "_blank",
659
+ rel: "noopener noreferrer"
660
+ }, " ", text, " ");
661
+ }
662
+ }
663
+ }, "1 Sun Moon 2 sun moon 3 sunmoon 4 SUN MOON 5 sun moon 6 sunlight moonlight")),
664
+ asFragment = _render46.asFragment;
665
+
230
666
  expect(asFragment()).toMatchSnapshot();
231
667
  });
232
668
  });