@atlaskit/editor-plugin-find-replace 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/.eslintrc.js +26 -0
  2. package/CHANGELOG.md +11 -0
  3. package/LICENSE.md +13 -0
  4. package/README.md +30 -0
  5. package/dist/cjs/FindReplaceToolbarButtonWithState.js +166 -0
  6. package/dist/cjs/actions.js +19 -0
  7. package/dist/cjs/commands-with-analytics.js +101 -0
  8. package/dist/cjs/commands.js +255 -0
  9. package/dist/cjs/index.js +12 -0
  10. package/dist/cjs/plugin.js +93 -0
  11. package/dist/cjs/pm-plugins/keymap.js +24 -0
  12. package/dist/cjs/pm-plugins/main.js +39 -0
  13. package/dist/cjs/pm-plugins/plugin-factory.js +109 -0
  14. package/dist/cjs/pm-plugins/plugin-key.js +8 -0
  15. package/dist/cjs/reducer.js +61 -0
  16. package/dist/cjs/styles.js +17 -0
  17. package/dist/cjs/types.js +5 -0
  18. package/dist/cjs/ui/Find.js +309 -0
  19. package/dist/cjs/ui/FindReplace.js +104 -0
  20. package/dist/cjs/ui/FindReplaceToolbarButton.js +133 -0
  21. package/dist/cjs/ui/FindReplaceTooltipButton.js +77 -0
  22. package/dist/cjs/ui/Replace.js +176 -0
  23. package/dist/cjs/ui/styles.js +46 -0
  24. package/dist/cjs/utils/array.js +13 -0
  25. package/dist/cjs/utils/batch-decorations.js +310 -0
  26. package/dist/cjs/utils/commands.js +16 -0
  27. package/dist/cjs/utils/index.js +290 -0
  28. package/dist/es2019/FindReplaceToolbarButtonWithState.js +153 -0
  29. package/dist/es2019/actions.js +13 -0
  30. package/dist/es2019/commands-with-analytics.js +72 -0
  31. package/dist/es2019/commands.js +240 -0
  32. package/dist/es2019/index.js +1 -0
  33. package/dist/es2019/plugin.js +88 -0
  34. package/dist/es2019/pm-plugins/keymap.js +16 -0
  35. package/dist/es2019/pm-plugins/main.js +30 -0
  36. package/dist/es2019/pm-plugins/plugin-factory.js +91 -0
  37. package/dist/es2019/pm-plugins/plugin-key.js +2 -0
  38. package/dist/es2019/reducer.js +56 -0
  39. package/dist/es2019/styles.js +18 -0
  40. package/dist/es2019/types.js +1 -0
  41. package/dist/es2019/ui/Find.js +286 -0
  42. package/dist/es2019/ui/FindReplace.js +81 -0
  43. package/dist/es2019/ui/FindReplaceToolbarButton.js +122 -0
  44. package/dist/es2019/ui/FindReplaceTooltipButton.js +51 -0
  45. package/dist/es2019/ui/Replace.js +155 -0
  46. package/dist/es2019/ui/styles.js +50 -0
  47. package/dist/es2019/utils/array.js +3 -0
  48. package/dist/es2019/utils/batch-decorations.js +189 -0
  49. package/dist/es2019/utils/commands.js +6 -0
  50. package/dist/es2019/utils/index.js +249 -0
  51. package/dist/esm/FindReplaceToolbarButtonWithState.js +157 -0
  52. package/dist/esm/actions.js +13 -0
  53. package/dist/esm/commands-with-analytics.js +95 -0
  54. package/dist/esm/commands.js +248 -0
  55. package/dist/esm/index.js +1 -0
  56. package/dist/esm/plugin.js +86 -0
  57. package/dist/esm/pm-plugins/keymap.js +18 -0
  58. package/dist/esm/pm-plugins/main.js +33 -0
  59. package/dist/esm/pm-plugins/plugin-factory.js +104 -0
  60. package/dist/esm/pm-plugins/plugin-key.js +2 -0
  61. package/dist/esm/reducer.js +54 -0
  62. package/dist/esm/styles.js +11 -0
  63. package/dist/esm/types.js +1 -0
  64. package/dist/esm/ui/Find.js +304 -0
  65. package/dist/esm/ui/FindReplace.js +100 -0
  66. package/dist/esm/ui/FindReplaceToolbarButton.js +126 -0
  67. package/dist/esm/ui/FindReplaceTooltipButton.js +70 -0
  68. package/dist/esm/ui/Replace.js +171 -0
  69. package/dist/esm/ui/styles.js +39 -0
  70. package/dist/esm/utils/array.js +7 -0
  71. package/dist/esm/utils/batch-decorations.js +304 -0
  72. package/dist/esm/utils/commands.js +10 -0
  73. package/dist/esm/utils/index.js +280 -0
  74. package/dist/types/FindReplaceToolbarButtonWithState.d.ts +4 -0
  75. package/dist/types/actions.d.ts +64 -0
  76. package/dist/types/commands-with-analytics.d.ts +27 -0
  77. package/dist/types/commands.d.ts +12 -0
  78. package/dist/types/index.d.ts +2 -0
  79. package/dist/types/plugin.d.ts +2 -0
  80. package/dist/types/pm-plugins/keymap.d.ts +4 -0
  81. package/dist/types/pm-plugins/main.d.ts +5 -0
  82. package/dist/types/pm-plugins/plugin-factory.d.ts +2 -0
  83. package/dist/types/pm-plugins/plugin-key.d.ts +3 -0
  84. package/dist/types/reducer.d.ts +4 -0
  85. package/dist/types/styles.d.ts +3 -0
  86. package/dist/types/types.d.ts +76 -0
  87. package/dist/types/ui/Find.d.ts +71 -0
  88. package/dist/types/ui/FindReplace.d.ts +43 -0
  89. package/dist/types/ui/FindReplaceToolbarButton.d.ts +21 -0
  90. package/dist/types/ui/FindReplaceTooltipButton.d.ts +18 -0
  91. package/dist/types/ui/Replace.d.ts +27 -0
  92. package/dist/types/ui/styles.d.ts +6 -0
  93. package/dist/types/utils/array.d.ts +1 -0
  94. package/dist/types/utils/batch-decorations.d.ts +36 -0
  95. package/dist/types/utils/commands.d.ts +2 -0
  96. package/dist/types/utils/index.d.ts +49 -0
  97. package/dist/types-ts4.5/FindReplaceToolbarButtonWithState.d.ts +4 -0
  98. package/dist/types-ts4.5/actions.d.ts +64 -0
  99. package/dist/types-ts4.5/commands-with-analytics.d.ts +27 -0
  100. package/dist/types-ts4.5/commands.d.ts +12 -0
  101. package/dist/types-ts4.5/index.d.ts +2 -0
  102. package/dist/types-ts4.5/plugin.d.ts +2 -0
  103. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +4 -0
  104. package/dist/types-ts4.5/pm-plugins/main.d.ts +5 -0
  105. package/dist/types-ts4.5/pm-plugins/plugin-factory.d.ts +2 -0
  106. package/dist/types-ts4.5/pm-plugins/plugin-key.d.ts +3 -0
  107. package/dist/types-ts4.5/reducer.d.ts +4 -0
  108. package/dist/types-ts4.5/styles.d.ts +3 -0
  109. package/dist/types-ts4.5/types.d.ts +76 -0
  110. package/dist/types-ts4.5/ui/Find.d.ts +71 -0
  111. package/dist/types-ts4.5/ui/FindReplace.d.ts +43 -0
  112. package/dist/types-ts4.5/ui/FindReplaceToolbarButton.d.ts +21 -0
  113. package/dist/types-ts4.5/ui/FindReplaceTooltipButton.d.ts +18 -0
  114. package/dist/types-ts4.5/ui/Replace.d.ts +27 -0
  115. package/dist/types-ts4.5/ui/styles.d.ts +6 -0
  116. package/dist/types-ts4.5/utils/array.d.ts +1 -0
  117. package/dist/types-ts4.5/utils/batch-decorations.d.ts +36 -0
  118. package/dist/types-ts4.5/utils/commands.d.ts +2 -0
  119. package/dist/types-ts4.5/utils/index.d.ts +49 -0
  120. package/package.json +117 -0
  121. package/styles/package.json +17 -0
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _react2 = require("@emotion/react");
17
+ var _Find = _interopRequireDefault(require("./Find"));
18
+ var _Replace = _interopRequireDefault(require("./Replace"));
19
+ var _styles = require("./styles");
20
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable @atlaskit/design-system/consistent-css-prop-usage */ /* eslint-disable @atlaskit/design-system/prefer-primitives */ /** @jsx jsx */
22
+ // eslint-disable-next-line @repo/internal/react/no-class-components
23
+ var FindReplace = /*#__PURE__*/function (_React$PureComponent) {
24
+ (0, _inherits2.default)(FindReplace, _React$PureComponent);
25
+ var _super = _createSuper(FindReplace);
26
+ function FindReplace() {
27
+ var _this;
28
+ (0, _classCallCheck2.default)(this, FindReplace);
29
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ args[_key] = arguments[_key];
31
+ }
32
+ _this = _super.call.apply(_super, [this].concat(args));
33
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "findTextfield", null);
34
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "replaceTextfield", null);
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setFindTextfieldRef", function (findTextfieldRef) {
36
+ _this.findTextfield = findTextfieldRef.current;
37
+ });
38
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setReplaceTextfieldRef", function (replaceTextfieldRef) {
39
+ _this.replaceTextfield = replaceTextfieldRef.current;
40
+ });
41
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setFocusToFind", function () {
42
+ if (_this.findTextfield) {
43
+ _this.findTextfield.focus();
44
+ }
45
+ });
46
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setFocusToReplace", function () {
47
+ if (_this.replaceTextfield) {
48
+ _this.replaceTextfield.focus();
49
+ }
50
+ });
51
+ return _this;
52
+ }
53
+ (0, _createClass2.default)(FindReplace, [{
54
+ key: "render",
55
+ value: function render() {
56
+ var _this$props = this.props,
57
+ findText = _this$props.findText,
58
+ count = _this$props.count,
59
+ shouldFocus = _this$props.shouldFocus,
60
+ onFind = _this$props.onFind,
61
+ onFindBlur = _this$props.onFindBlur,
62
+ onFindNext = _this$props.onFindNext,
63
+ onFindPrev = _this$props.onFindPrev,
64
+ onCancel = _this$props.onCancel,
65
+ replaceText = _this$props.replaceText,
66
+ onReplace = _this$props.onReplace,
67
+ onReplaceAll = _this$props.onReplaceAll,
68
+ dispatchAnalyticsEvent = _this$props.dispatchAnalyticsEvent,
69
+ allowMatchCase = _this$props.allowMatchCase,
70
+ shouldMatchCase = _this$props.shouldMatchCase,
71
+ onToggleMatchCase = _this$props.onToggleMatchCase;
72
+ return (0, _react2.jsx)("div", {
73
+ css: _styles.wrapperStyles
74
+ }, (0, _react2.jsx)(_Find.default, {
75
+ allowMatchCase: allowMatchCase,
76
+ shouldMatchCase: shouldMatchCase,
77
+ onToggleMatchCase: onToggleMatchCase,
78
+ findText: findText,
79
+ count: count,
80
+ shouldFocus: shouldFocus,
81
+ onFind: onFind,
82
+ onFindBlur: onFindBlur,
83
+ onFindPrev: onFindPrev,
84
+ onFindNext: onFindNext,
85
+ onFindTextfieldRefSet: this.setFindTextfieldRef,
86
+ onCancel: onCancel,
87
+ onArrowDown: this.setFocusToReplace
88
+ }), (0, _react2.jsx)("hr", {
89
+ css: _styles.ruleStyles,
90
+ id: "replace-hr-element"
91
+ }), (0, _react2.jsx)(_Replace.default, {
92
+ canReplace: count.total > 0,
93
+ replaceText: replaceText,
94
+ onReplace: onReplace,
95
+ onReplaceAll: onReplaceAll,
96
+ onReplaceTextfieldRefSet: this.setReplaceTextfieldRef,
97
+ onArrowUp: this.setFocusToFind,
98
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent
99
+ }));
100
+ }
101
+ }]);
102
+ return FindReplace;
103
+ }(_react.default.PureComponent);
104
+ var _default = exports.default = FindReplace;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _react2 = require("@emotion/react");
19
+ var _reactIntlNext = require("react-intl-next");
20
+ var _analytics = require("@atlaskit/editor-common/analytics");
21
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
22
+ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
23
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
24
+ var _search = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/search"));
25
+ var _FindReplace = _interopRequireDefault(require("./FindReplace"));
26
+ var _templateObject, _templateObject2, _templateObject3;
27
+ /* eslint-disable @atlaskit/design-system/consistent-css-prop-usage */
28
+ /** @jsx jsx */
29
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
30
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
+ var toolbarButtonWrapper = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex: 1 1 auto;\n flex-grow: 0;\n justify-content: flex-end;\n align-items: center;\n padding: 0 ", ";\n @media (max-width: ", "px) {\n justify-content: center;\n padding: 0;\n }\n"])), "var(--ds-space-100, 8px)", _editorSharedStyles.akEditorMobileMaxWidth);
32
+ var toolbarButtonWrapperFullWith = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n flex-grow: 1;\n"])));
33
+ var wrapper = (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
34
+ var messages = (0, _reactIntlNext.defineMessages)({
35
+ findReplaceToolbarButton: {
36
+ id: 'fabric.editor.findReplaceToolbarButton',
37
+ defaultMessage: 'Find and replace',
38
+ description: '"Find" highlights all instances of a word or phrase on the document, and "Replace" changes one or all of those instances to something else'
39
+ }
40
+ });
41
+ // eslint-disable-next-line @repo/internal/react/no-class-components
42
+ var FindReplaceToolbarButton = /*#__PURE__*/function (_React$PureComponent) {
43
+ (0, _inherits2.default)(FindReplaceToolbarButton, _React$PureComponent);
44
+ var _super = _createSuper(FindReplaceToolbarButton);
45
+ function FindReplaceToolbarButton() {
46
+ var _this;
47
+ (0, _classCallCheck2.default)(this, FindReplaceToolbarButton);
48
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
+ args[_key] = arguments[_key];
50
+ }
51
+ _this = _super.call.apply(_super, [this].concat(args));
52
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "toggleOpen", function () {
53
+ if (_this.props.isActive) {
54
+ _this.props.onCancel({
55
+ triggerMethod: _analytics.TRIGGER_METHOD.TOOLBAR
56
+ });
57
+ } else {
58
+ _this.props.onActivate();
59
+ }
60
+ });
61
+ return _this;
62
+ }
63
+ (0, _createClass2.default)(FindReplaceToolbarButton, [{
64
+ key: "render",
65
+ value: function render() {
66
+ var _this2 = this;
67
+ var _this$props = this.props,
68
+ popupsMountPoint = _this$props.popupsMountPoint,
69
+ popupsBoundariesElement = _this$props.popupsBoundariesElement,
70
+ popupsScrollableElement = _this$props.popupsScrollableElement,
71
+ isReducedSpacing = _this$props.isReducedSpacing,
72
+ findText = _this$props.findText,
73
+ replaceText = _this$props.replaceText,
74
+ isActive = _this$props.isActive,
75
+ index = _this$props.index,
76
+ numMatches = _this$props.numMatches,
77
+ formatMessage = _this$props.intl.formatMessage,
78
+ takeFullWidth = _this$props.takeFullWidth;
79
+ var title = formatMessage(messages.findReplaceToolbarButton);
80
+ var stackBelowOtherEditorFloatingPanels = _editorSharedStyles.akEditorFloatingPanelZIndex - 1;
81
+ var keymap = (0, _keymaps.findKeymapByDescription)('Find');
82
+ return (0, _react2.jsx)("div", {
83
+ css: [toolbarButtonWrapper, takeFullWidth && toolbarButtonWrapperFullWith]
84
+ }, (0, _react2.jsx)(_uiMenu.Dropdown, {
85
+ mountTo: popupsMountPoint,
86
+ boundariesElement: popupsBoundariesElement,
87
+ scrollableElement: popupsScrollableElement,
88
+ isOpen: isActive,
89
+ handleEscapeKeydown: function handleEscapeKeydown() {
90
+ if (isActive) {
91
+ _this2.props.onCancel({
92
+ triggerMethod: _analytics.TRIGGER_METHOD.KEYBOARD
93
+ });
94
+ }
95
+ },
96
+ fitWidth: 352,
97
+ zIndex: stackBelowOtherEditorFloatingPanels,
98
+ arrowKeyNavigationProviderOptions: {
99
+ type: _uiMenu.ArrowKeyNavigationType.MENU,
100
+ disableArrowKeyNavigation: true
101
+ },
102
+ trigger: (0, _react2.jsx)(_uiMenu.ToolbarButton, {
103
+ buttonId: _uiMenu.TOOLBAR_BUTTON.FIND_REPLACE,
104
+ spacing: isReducedSpacing ? 'none' : 'default',
105
+ selected: isActive,
106
+ title: (0, _react2.jsx)(_keymaps.ToolTipContent, {
107
+ description: title,
108
+ keymap: keymap
109
+ }),
110
+ iconBefore: (0, _react2.jsx)(_search.default, {
111
+ label: title
112
+ }),
113
+ onClick: this.toggleOpen,
114
+ "aria-expanded": isActive,
115
+ "aria-haspopup": true,
116
+ "aria-label": keymap ? (0, _keymaps.tooltip)(keymap, title) : title,
117
+ "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(keymap)
118
+ })
119
+ }, (0, _react2.jsx)("div", {
120
+ css: wrapper
121
+ }, (0, _react2.jsx)(_FindReplace.default, (0, _extends2.default)({
122
+ findText: findText,
123
+ replaceText: replaceText,
124
+ count: {
125
+ index: index,
126
+ total: numMatches
127
+ }
128
+ }, this.props)))));
129
+ }
130
+ }]);
131
+ return FindReplaceToolbarButton;
132
+ }(_react.default.PureComponent);
133
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(FindReplaceToolbarButton);
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FindReplaceTooltipButton = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
18
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
19
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
23
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
24
+ // eslint-disable-next-line @repo/internal/react/no-class-components
25
+ var FindReplaceTooltipButton = exports.FindReplaceTooltipButton = /*#__PURE__*/function (_React$PureComponent) {
26
+ (0, _inherits2.default)(FindReplaceTooltipButton, _React$PureComponent);
27
+ var _super = _createSuper(FindReplaceTooltipButton);
28
+ function FindReplaceTooltipButton() {
29
+ var _this;
30
+ (0, _classCallCheck2.default)(this, FindReplaceTooltipButton);
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+ _this = _super.call.apply(_super, [this].concat(args));
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "buttonRef", /*#__PURE__*/_react.default.createRef());
36
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleClick", function () {
37
+ _this.props.onClick(_this.buttonRef);
38
+ });
39
+ return _this;
40
+ }
41
+ (0, _createClass2.default)(FindReplaceTooltipButton, [{
42
+ key: "render",
43
+ value: function render() {
44
+ var _this$props = this.props,
45
+ title = _this$props.title,
46
+ icon = _this$props.icon,
47
+ keymapDescription = _this$props.keymapDescription,
48
+ disabled = _this$props.disabled,
49
+ isPressed = _this$props.isPressed;
50
+ var pressedProps = _objectSpread({}, typeof isPressed === 'boolean' && {
51
+ 'aria-pressed': isPressed
52
+ });
53
+ return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
54
+ content: /*#__PURE__*/_react.default.createElement(_keymaps.ToolTipContent, {
55
+ description: title,
56
+ keymap: (0, _keymaps.findKeymapByDescription)(keymapDescription)
57
+ }),
58
+ hideTooltipOnClick: true,
59
+ position: 'top'
60
+ }, /*#__PURE__*/_react.default.createElement(_standardButton.default, (0, _extends2.default)({
61
+ label: title,
62
+ appearance: "subtle",
63
+ testId: title,
64
+ ref: this.buttonRef,
65
+ iconBefore: icon,
66
+ isDisabled: disabled,
67
+ onClick: this.handleClick,
68
+ isSelected: isPressed,
69
+ shouldFitContainer: true
70
+ }, pressedProps)));
71
+ }
72
+ }]);
73
+ return FindReplaceTooltipButton;
74
+ }(_react.default.PureComponent);
75
+ (0, _defineProperty2.default)(FindReplaceTooltipButton, "defaultProps", {
76
+ keymapDescription: 'no-keymap'
77
+ });
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _react2 = require("@emotion/react");
17
+ var _reactIntlNext = require("react-intl-next");
18
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
19
+ var _analytics = require("@atlaskit/editor-common/analytics");
20
+ var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
21
+ var _styles = require("./styles");
22
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
23
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable @atlaskit/design-system/consistent-css-prop-usage */ /** @jsx jsx */
24
+ var messages = (0, _reactIntlNext.defineMessages)({
25
+ replaceWith: {
26
+ id: 'fabric.editor.replaceWith',
27
+ defaultMessage: 'Replace with',
28
+ description: 'The value that will replace the word or phrase that was searched for'
29
+ },
30
+ replace: {
31
+ id: 'fabric.editor.replace',
32
+ defaultMessage: 'Replace',
33
+ description: 'Replace only the currently selected instance of the word or phrase'
34
+ },
35
+ replaceAll: {
36
+ id: 'fabric.editor.replaceAll',
37
+ defaultMessage: 'Replace all',
38
+ description: 'Replace all instances of the word or phrase throughout the entire document'
39
+ }
40
+ });
41
+
42
+ // eslint-disable-next-line @repo/internal/react/no-class-components
43
+ var Replace = /*#__PURE__*/function (_React$PureComponent) {
44
+ (0, _inherits2.default)(Replace, _React$PureComponent);
45
+ var _super = _createSuper(Replace);
46
+ function Replace(props) {
47
+ var _this;
48
+ (0, _classCallCheck2.default)(this, Replace);
49
+ _this = _super.call(this, props);
50
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "replaceTextfieldRef", /*#__PURE__*/_react.default.createRef());
51
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "skipWhileComposing", function (fn) {
52
+ if (_this.state.isComposing) {
53
+ return;
54
+ }
55
+ fn();
56
+ });
57
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleReplaceClick", function () {
58
+ return _this.skipWhileComposing(function () {
59
+ _this.props.onReplace({
60
+ triggerMethod: _analytics.TRIGGER_METHOD.BUTTON,
61
+ replaceText: _this.state.replaceText
62
+ });
63
+ });
64
+ });
65
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleReplaceChange", function (event) {
66
+ return _this.skipWhileComposing(function () {
67
+ _this.updateReplaceValue(event.target.value);
68
+ });
69
+ });
70
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateReplaceValue", function (replaceText) {
71
+ var dispatchAnalyticsEvent = _this.props.dispatchAnalyticsEvent;
72
+ if (dispatchAnalyticsEvent) {
73
+ dispatchAnalyticsEvent({
74
+ eventType: _analytics.EVENT_TYPE.TRACK,
75
+ action: _analytics.ACTION.CHANGED_REPLACEMENT_TEXT,
76
+ actionSubject: _analytics.ACTION_SUBJECT.FIND_REPLACE_DIALOG
77
+ });
78
+ }
79
+ _this.setState({
80
+ replaceText: replaceText
81
+ });
82
+ });
83
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleReplaceKeyDown", function (event) {
84
+ return _this.skipWhileComposing(function () {
85
+ if (event.key === 'Enter') {
86
+ _this.props.onReplace({
87
+ triggerMethod: _analytics.TRIGGER_METHOD.KEYBOARD,
88
+ replaceText: _this.state.replaceText
89
+ });
90
+ } else if (event.key === 'ArrowUp') {
91
+ // we want to move focus between find & replace texfields when user hits up/down arrows
92
+ _this.props.onArrowUp();
93
+ }
94
+ });
95
+ });
96
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleReplaceAllClick", function () {
97
+ return _this.skipWhileComposing(function () {
98
+ _this.props.onReplaceAll({
99
+ replaceText: _this.state.replaceText
100
+ });
101
+ });
102
+ });
103
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleCompositionStart", function () {
104
+ _this.setState({
105
+ isComposing: true
106
+ });
107
+ });
108
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleCompositionEnd", function (event) {
109
+ _this.setState({
110
+ isComposing: false
111
+ });
112
+ // type for React.CompositionEvent doesn't set type for target correctly
113
+ _this.updateReplaceValue(event.target.value);
114
+ });
115
+ var _replaceText = props.replaceText,
116
+ formatMessage = props.intl.formatMessage;
117
+ _this.state = {
118
+ replaceText: _replaceText || '',
119
+ isComposing: false
120
+ };
121
+ _this.replaceWith = formatMessage(messages.replaceWith);
122
+ _this.replace = formatMessage(messages.replace);
123
+ _this.replaceAll = formatMessage(messages.replaceAll);
124
+ return _this;
125
+ }
126
+ (0, _createClass2.default)(Replace, [{
127
+ key: "componentDidMount",
128
+ value: function componentDidMount() {
129
+ this.props.onReplaceTextfieldRefSet(this.replaceTextfieldRef);
130
+ }
131
+ }, {
132
+ key: "componentDidUpdate",
133
+ value: function componentDidUpdate(_ref) {
134
+ var prevReplaceText = _ref.replaceText;
135
+ var replaceText = this.props.replaceText;
136
+ if (replaceText && replaceText !== prevReplaceText) {
137
+ this.setState({
138
+ replaceText: replaceText,
139
+ isComposing: false
140
+ });
141
+ }
142
+ }
143
+ }, {
144
+ key: "render",
145
+ value: function render() {
146
+ var replaceText = this.state.replaceText;
147
+ var canReplace = this.props.canReplace;
148
+ return (0, _react2.jsx)("div", {
149
+ css: _styles.sectionWrapperStyles
150
+ }, (0, _react2.jsx)(_textfield.default, {
151
+ name: "replace",
152
+ appearance: "none",
153
+ placeholder: this.replaceWith,
154
+ defaultValue: replaceText,
155
+ ref: this.replaceTextfieldRef,
156
+ autoComplete: "off",
157
+ onChange: this.handleReplaceChange,
158
+ onKeyDown: this.handleReplaceKeyDown,
159
+ onCompositionStart: this.handleCompositionStart,
160
+ onCompositionEnd: this.handleCompositionEnd
161
+ }), (0, _react2.jsx)(_standardButton.default, {
162
+ css: _styles.replaceSectionButtonStyles,
163
+ testId: this.replace,
164
+ onClick: this.handleReplaceClick,
165
+ isDisabled: !canReplace
166
+ }, this.replace), (0, _react2.jsx)(_standardButton.default, {
167
+ css: _styles.replaceSectionButtonStyles,
168
+ testId: this.replaceAll,
169
+ onClick: this.handleReplaceAllClick,
170
+ isDisabled: !canReplace
171
+ }, this.replaceAll));
172
+ }
173
+ }]);
174
+ return Replace;
175
+ }(_react.default.PureComponent);
176
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(Replace);
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.wrapperStyles = exports.sectionWrapperStyles = exports.ruleStyles = exports.replaceSectionButtonStyles = exports.countWrapperStyles = exports.countStyles = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = require("@emotion/react");
10
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
11
+ var _colors = require("@atlaskit/theme/colors");
12
+ var _templateObject;
13
+ /* eslint-disable @atlaskit/design-system/no-nested-styles */
14
+ /* eslint-disable @repo/internal/styles/no-exported-styles */
15
+ /** @jsx jsx */
16
+ var replaceSectionButtonStyles = exports.replaceSectionButtonStyles = (0, _react.css)({
17
+ marginLeft: "var(--ds-space-050, 4px)"
18
+ });
19
+ var ruleStyles = exports.ruleStyles = (0, _react.css)({
20
+ width: '100%',
21
+ border: 'none',
22
+ backgroundColor: "".concat("var(--ds-border, ".concat(_colors.N30A, ")")),
23
+ margin: "var(--ds-space-050, 4px)".concat(" 0px"),
24
+ height: '1px',
25
+ borderRadius: '1px'
26
+ });
27
+ var wrapperStyles = exports.wrapperStyles = (0, _react.css)({
28
+ display: 'flex',
29
+ flexDirection: 'column',
30
+ '> *:not(#replace-hr-element)': {
31
+ margin: "0px ".concat("var(--ds-space-050, 4px)")
32
+ }
33
+ });
34
+ var sectionWrapperStyles = exports.sectionWrapperStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n\n & > * {\n display: inline-flex;\n height: 32px;\n flex: 0 0 auto;\n }\n\n & > [data-ds--text-field--container] {\n display: flex;\n flex: 1 1 auto;\n }\n"])));
35
+ var countStyles = exports.countStyles = (0, _react.css)({
36
+ color: "".concat("var(--ds-text-subtlest, ".concat(_colors.N60, ")")),
37
+ fontSize: "".concat((0, _editorSharedStyles.relativeFontSizeToBase16)(12)),
38
+ flex: '0 0 auto',
39
+ justifyContent: 'center',
40
+ alignItems: 'center',
41
+ marginLeft: "var(--ds-space-050, 4px)",
42
+ marginRight: "var(--ds-space-100, 8px)"
43
+ });
44
+ var countWrapperStyles = exports.countWrapperStyles = (0, _react.css)({
45
+ alignItems: 'center'
46
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findUniqueItemsIn = findUniqueItemsIn;
7
+ function findUniqueItemsIn(findIn, checkWith, comparator) {
8
+ return findIn.filter(function (firstItem) {
9
+ return checkWith.findIndex(function (secondItem) {
10
+ return comparator ? comparator(firstItem, secondItem) : firstItem === secondItem;
11
+ }) === -1;
12
+ });
13
+ }