@pie-lib/editable-html 12.1.0-next.0 → 12.1.0-next.2

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/CHANGELOG.md +40 -0
  2. package/package.json +7 -7
  3. package/lib/__tests__/editor-utils.test.js +0 -164
  4. package/lib/__tests__/serialization.test.js +0 -242
  5. package/lib/__tests__/utils.js +0 -79
  6. package/lib/block-tags.js +0 -24
  7. package/lib/block-tags.js.map +0 -1
  8. package/lib/constants.js +0 -11
  9. package/lib/constants.js.map +0 -1
  10. package/lib/editor.js +0 -1224
  11. package/lib/editor.js.map +0 -1
  12. package/lib/index.js +0 -208
  13. package/lib/index.js.map +0 -1
  14. package/lib/parse-html.js +0 -16
  15. package/lib/parse-html.js.map +0 -1
  16. package/lib/plugins/characters/custom-popper.js +0 -57
  17. package/lib/plugins/characters/custom-popper.js.map +0 -1
  18. package/lib/plugins/characters/index.js +0 -265
  19. package/lib/plugins/characters/index.js.map +0 -1
  20. package/lib/plugins/characters/utils.js +0 -378
  21. package/lib/plugins/characters/utils.js.map +0 -1
  22. package/lib/plugins/css/icons/index.js +0 -25
  23. package/lib/plugins/css/icons/index.js.map +0 -1
  24. package/lib/plugins/css/index.js +0 -338
  25. package/lib/plugins/css/index.js.map +0 -1
  26. package/lib/plugins/customPlugin/index.js +0 -98
  27. package/lib/plugins/customPlugin/index.js.map +0 -1
  28. package/lib/plugins/html/icons/index.js +0 -30
  29. package/lib/plugins/html/icons/index.js.map +0 -1
  30. package/lib/plugins/html/index.js +0 -71
  31. package/lib/plugins/html/index.js.map +0 -1
  32. package/lib/plugins/image/__tests__/component.test.js +0 -96
  33. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
  34. package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -22
  35. package/lib/plugins/image/__tests__/index.test.js +0 -90
  36. package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
  37. package/lib/plugins/image/__tests__/mock-change.js +0 -22
  38. package/lib/plugins/image/alt-dialog.js +0 -100
  39. package/lib/plugins/image/alt-dialog.js.map +0 -1
  40. package/lib/plugins/image/component.js +0 -343
  41. package/lib/plugins/image/component.js.map +0 -1
  42. package/lib/plugins/image/image-toolbar.js +0 -137
  43. package/lib/plugins/image/image-toolbar.js.map +0 -1
  44. package/lib/plugins/image/index.js +0 -223
  45. package/lib/plugins/image/index.js.map +0 -1
  46. package/lib/plugins/image/insert-image-handler.js +0 -140
  47. package/lib/plugins/image/insert-image-handler.js.map +0 -1
  48. package/lib/plugins/index.js +0 -342
  49. package/lib/plugins/index.js.map +0 -1
  50. package/lib/plugins/list/__tests__/index.test.js +0 -64
  51. package/lib/plugins/list/index.js +0 -288
  52. package/lib/plugins/list/index.js.map +0 -1
  53. package/lib/plugins/math/__tests__/index.test.js +0 -284
  54. package/lib/plugins/math/index.js +0 -402
  55. package/lib/plugins/math/index.js.map +0 -1
  56. package/lib/plugins/media/__tests__/index.test.js +0 -69
  57. package/lib/plugins/media/index.js +0 -330
  58. package/lib/plugins/media/index.js.map +0 -1
  59. package/lib/plugins/media/media-dialog.js +0 -594
  60. package/lib/plugins/media/media-dialog.js.map +0 -1
  61. package/lib/plugins/media/media-toolbar.js +0 -76
  62. package/lib/plugins/media/media-toolbar.js.map +0 -1
  63. package/lib/plugins/media/media-wrapper.js +0 -64
  64. package/lib/plugins/media/media-wrapper.js.map +0 -1
  65. package/lib/plugins/rendering/index.js +0 -36
  66. package/lib/plugins/rendering/index.js.map +0 -1
  67. package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -271
  68. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
  69. package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -55
  70. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
  71. package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -38
  72. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +0 -1
  73. package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -50
  74. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
  75. package/lib/plugins/respArea/icons/index.js +0 -72
  76. package/lib/plugins/respArea/icons/index.js.map +0 -1
  77. package/lib/plugins/respArea/index.js +0 -287
  78. package/lib/plugins/respArea/index.js.map +0 -1
  79. package/lib/plugins/respArea/inline-dropdown/index.js +0 -67
  80. package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
  81. package/lib/plugins/respArea/math-templated/index.js +0 -112
  82. package/lib/plugins/respArea/math-templated/index.js.map +0 -1
  83. package/lib/plugins/respArea/utils.js +0 -95
  84. package/lib/plugins/respArea/utils.js.map +0 -1
  85. package/lib/plugins/table/CustomTablePlugin.js +0 -116
  86. package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
  87. package/lib/plugins/table/__tests__/index.test.js +0 -416
  88. package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
  89. package/lib/plugins/table/icons/index.js +0 -55
  90. package/lib/plugins/table/icons/index.js.map +0 -1
  91. package/lib/plugins/table/index.js +0 -413
  92. package/lib/plugins/table/index.js.map +0 -1
  93. package/lib/plugins/table/table-toolbar.js +0 -138
  94. package/lib/plugins/table/table-toolbar.js.map +0 -1
  95. package/lib/plugins/textAlign/icons/index.js +0 -187
  96. package/lib/plugins/textAlign/icons/index.js.map +0 -1
  97. package/lib/plugins/textAlign/index.js +0 -26
  98. package/lib/plugins/textAlign/index.js.map +0 -1
  99. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -154
  100. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
  101. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
  102. package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
  103. package/lib/plugins/toolbar/default-toolbar.js +0 -180
  104. package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
  105. package/lib/plugins/toolbar/done-button.js +0 -35
  106. package/lib/plugins/toolbar/done-button.js.map +0 -1
  107. package/lib/plugins/toolbar/editor-and-toolbar.js +0 -258
  108. package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  109. package/lib/plugins/toolbar/index.js +0 -29
  110. package/lib/plugins/toolbar/index.js.map +0 -1
  111. package/lib/plugins/toolbar/toolbar-buttons.js +0 -145
  112. package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
  113. package/lib/plugins/toolbar/toolbar.js +0 -307
  114. package/lib/plugins/toolbar/toolbar.js.map +0 -1
  115. package/lib/plugins/utils.js +0 -42
  116. package/lib/plugins/utils.js.map +0 -1
  117. package/lib/serialization.js +0 -571
  118. package/lib/serialization.js.map +0 -1
  119. package/lib/shared/alert-dialog.js +0 -68
  120. package/lib/theme.js +0 -8
  121. package/lib/theme.js.map +0 -1
@@ -1,180 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.ToolbarButton = exports.DefaultToolbar = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _doneButton = require("./done-button");
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _react = _interopRequireDefault(require("react"));
13
- var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
14
- var _utils = require("../utils");
15
- var _styles = require("@mui/material/styles");
16
- var _toolbarButtons = require("./toolbar-buttons");
17
- var _debug = _interopRequireDefault(require("debug"));
18
- 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; }
19
- 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; }
20
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
21
- var DefaultToolbarContainer = (0, _styles.styled)('div')({
22
- display: 'flex',
23
- width: '100%',
24
- justifyContent: 'space-between'
25
- });
26
- var ButtonsContainer = (0, _styles.styled)('div')({
27
- alignItems: 'center',
28
- display: 'flex',
29
- width: '100%'
30
- });
31
- var ToolbarButton = exports.ToolbarButton = function ToolbarButton(props) {
32
- var onToggle = function onToggle() {
33
- var c = props.onToggle(props.value.change(), props);
34
- props.onChange(c);
35
- };
36
- if (props.isMark) {
37
- var _isActive = (0, _utils.hasMark)(props.value, props.type);
38
- var fnToCall = props.type === 'css' ? function () {
39
- return props.onClick(props.value, props.onChange, props.getFocusedValue);
40
- } : onToggle;
41
- log('[ToolbarButton] mark:isActive: ', _isActive);
42
- var ariaLabel;
43
- if (props.type === 'sup') {
44
- ariaLabel = 'Superscript (marks text as superscripted)';
45
- } else if (props.type === 'sub') {
46
- ariaLabel = 'Subscript (marks text as subscripted)';
47
- } else {
48
- ariaLabel = props.type;
49
- }
50
- return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
51
- active: _isActive,
52
- onToggle: fnToCall,
53
- mark: props.type,
54
- label: ariaLabel
55
- }, props.icon);
56
- }
57
- var disabled = props.disabled;
58
- var isActive = props.isActive ? props.isActive(props.value, props.type) : (0, _utils.hasBlock)(props.value, props.type);
59
- log('[ToolbarButton] block:isActive: ', isActive);
60
- var newIcon = /*#__PURE__*/_react["default"].cloneElement(props.icon);
61
- return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
62
- ariaLabel: props.ariaLabel,
63
- active: isActive,
64
- disabled: disabled,
65
- onClick: function onClick(event) {
66
- return props.onClick(props.value, props.onChange, props.getFocusedValue, event);
67
- },
68
- extraStyles: props.buttonStyles
69
- }, newIcon);
70
- };
71
- ToolbarButton.propTypes = {
72
- buttonStyles: _propTypes["default"].object,
73
- disabled: _propTypes["default"].bool,
74
- icon: _propTypes["default"].any,
75
- isActive: _propTypes["default"].bool,
76
- isMark: _propTypes["default"].bool,
77
- getFocusedValue: _propTypes["default"].func,
78
- onToggle: _propTypes["default"].func,
79
- onChange: _propTypes["default"].func,
80
- onClick: _propTypes["default"].func,
81
- type: _propTypes["default"].string,
82
- value: _propTypes["default"].object,
83
- ariaLabel: _propTypes["default"].string
84
- };
85
- var isActiveToolbarPlugin = function isActiveToolbarPlugin(props) {
86
- return function (plugin) {
87
- var isDisabled = (props[plugin.name] || {}).disabled;
88
- return plugin && plugin.toolbar && !isDisabled;
89
- };
90
- };
91
- var DefaultToolbar = exports.DefaultToolbar = function DefaultToolbar(_ref) {
92
- var plugins = _ref.plugins,
93
- pluginProps = _ref.pluginProps,
94
- value = _ref.value,
95
- onChange = _ref.onChange,
96
- getFocusedValue = _ref.getFocusedValue,
97
- onDone = _ref.onDone,
98
- showDone = _ref.showDone,
99
- deletable = _ref.deletable,
100
- isHtmlMode = _ref.isHtmlMode,
101
- doneButtonRef = _ref.doneButtonRef,
102
- onBlur = _ref.onBlur,
103
- onFocus = _ref.onFocus;
104
- pluginProps = _objectSpread({
105
- // disable HTML plugin by default, at least for now
106
- html: {
107
- disabled: true
108
- }
109
- }, pluginProps);
110
- var filtered;
111
- var handleFocus = function handleFocus(event) {
112
- var _doneButtonRef$curren, _event$target;
113
- var doneButtonClassName = doneButtonRef === null || doneButtonRef === void 0 || (_doneButtonRef$curren = doneButtonRef.current) === null || _doneButtonRef$curren === void 0 ? void 0 : _doneButtonRef$curren.className;
114
- var isRawDoneButton = doneButtonClassName && ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.closest("[class*=\"".concat(doneButtonClassName, "\"]")));
115
- if (onFocus && !isRawDoneButton) {
116
- onFocus(event);
117
- }
118
- };
119
- if (isHtmlMode) {
120
- filtered = plugins.filter(function (plugin) {
121
- return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');
122
- }).map(function (p) {
123
- return p.toolbar;
124
- });
125
- } else {
126
- filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
127
- return p.toolbar;
128
- });
129
- }
130
- var isListActive = plugins.some(function (plugin) {
131
- return isActiveToolbarPlugin(pluginProps)(plugin) && ['ul_list', 'ol_list'].includes(plugin.name) && plugin.toolbar.isActive(value, plugin.name);
132
- });
133
- var isTableActive = plugins.some(function (plugin) {
134
- return isActiveToolbarPlugin(pluginProps)(plugin) && plugin.name === 'table' && plugin.utils && plugin.utils.isSelectionInTable && plugin.utils.isSelectionInTable(value);
135
- });
136
- var isToolbarButtonDisabled = function isToolbarButtonDisabled(plugin) {
137
- if (plugin.type === 'table') {
138
- return isListActive;
139
- } else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {
140
- return isTableActive;
141
- }
142
- return plugin.disabled;
143
- };
144
- return /*#__PURE__*/_react["default"].createElement(DefaultToolbarContainer, {
145
- onFocus: handleFocus,
146
- tabIndex: "1",
147
- onBlur: onBlur
148
- }, /*#__PURE__*/_react["default"].createElement(ButtonsContainer, null, filtered.map(function (p, index) {
149
- return /*#__PURE__*/_react["default"].createElement(ToolbarButton, (0, _extends2["default"])({}, p, {
150
- key: index,
151
- value: value,
152
- onChange: onChange,
153
- getFocusedValue: getFocusedValue,
154
- disabled: isToolbarButtonDisabled(p)
155
- }));
156
- })), showDone && !deletable && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
157
- doneButtonRef: doneButtonRef,
158
- onClick: onDone
159
- }));
160
- };
161
- DefaultToolbar.propTypes = {
162
- plugins: _propTypes["default"].array.isRequired,
163
- pluginProps: _propTypes["default"].object,
164
- value: _slatePropTypes["default"].value.isRequired,
165
- onChange: _propTypes["default"].func.isRequired,
166
- getFocusedValue: _propTypes["default"].func.isRequired,
167
- onDone: _propTypes["default"].func.isRequired,
168
- showDone: _propTypes["default"].bool,
169
- addArea: _propTypes["default"].bool,
170
- deletable: _propTypes["default"].bool,
171
- isHtmlMode: _propTypes["default"].bool,
172
- doneButtonRef: _propTypes["default"].func,
173
- onBlur: _propTypes["default"].func,
174
- onFocus: _propTypes["default"].func
175
- };
176
- DefaultToolbar.defaultProps = {
177
- pluginProps: {}
178
- };
179
- var _default = exports["default"] = DefaultToolbar;
180
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZG9uZUJ1dHRvbiIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdCIsIl9zbGF0ZVByb3BUeXBlcyIsIl91dGlscyIsIl9zdHlsZXMiLCJfdG9vbGJhckJ1dHRvbnMiLCJfZGVidWciLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImxvZyIsImRlYnVnIiwiRGVmYXVsdFRvb2xiYXJDb250YWluZXIiLCJzdHlsZWQiLCJkaXNwbGF5Iiwid2lkdGgiLCJqdXN0aWZ5Q29udGVudCIsIkJ1dHRvbnNDb250YWluZXIiLCJhbGlnbkl0ZW1zIiwiVG9vbGJhckJ1dHRvbiIsImV4cG9ydHMiLCJwcm9wcyIsIm9uVG9nZ2xlIiwiYyIsInZhbHVlIiwiY2hhbmdlIiwib25DaGFuZ2UiLCJpc01hcmsiLCJpc0FjdGl2ZSIsImhhc01hcmsiLCJ0eXBlIiwiZm5Ub0NhbGwiLCJvbkNsaWNrIiwiZ2V0Rm9jdXNlZFZhbHVlIiwiYXJpYUxhYmVsIiwiY3JlYXRlRWxlbWVudCIsIk1hcmtCdXR0b24iLCJhY3RpdmUiLCJtYXJrIiwibGFiZWwiLCJpY29uIiwiZGlzYWJsZWQiLCJoYXNCbG9jayIsIm5ld0ljb24iLCJSZWFjdCIsImNsb25lRWxlbWVudCIsIkJ1dHRvbiIsImV2ZW50IiwiZXh0cmFTdHlsZXMiLCJidXR0b25TdHlsZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJib29sIiwiYW55IiwiZnVuYyIsInN0cmluZyIsImlzQWN0aXZlVG9vbGJhclBsdWdpbiIsInBsdWdpbiIsImlzRGlzYWJsZWQiLCJuYW1lIiwidG9vbGJhciIsIkRlZmF1bHRUb29sYmFyIiwiX3JlZiIsInBsdWdpbnMiLCJwbHVnaW5Qcm9wcyIsIm9uRG9uZSIsInNob3dEb25lIiwiZGVsZXRhYmxlIiwiaXNIdG1sTW9kZSIsImRvbmVCdXR0b25SZWYiLCJvbkJsdXIiLCJvbkZvY3VzIiwiaHRtbCIsImZpbHRlcmVkIiwiaGFuZGxlRm9jdXMiLCJfZG9uZUJ1dHRvblJlZiRjdXJyZW4iLCJfZXZlbnQkdGFyZ2V0IiwiZG9uZUJ1dHRvbkNsYXNzTmFtZSIsImN1cnJlbnQiLCJjbGFzc05hbWUiLCJpc1Jhd0RvbmVCdXR0b24iLCJ0YXJnZXQiLCJjbG9zZXN0IiwiY29uY2F0IiwibWFwIiwicCIsImlzTGlzdEFjdGl2ZSIsInNvbWUiLCJpbmNsdWRlcyIsImlzVGFibGVBY3RpdmUiLCJ1dGlscyIsImlzU2VsZWN0aW9uSW5UYWJsZSIsImlzVG9vbGJhckJ1dHRvbkRpc2FibGVkIiwidGFiSW5kZXgiLCJpbmRleCIsIl9leHRlbmRzMiIsImtleSIsIkRvbmVCdXR0b24iLCJhcnJheSIsImlzUmVxdWlyZWQiLCJTbGF0ZVByb3BUeXBlcyIsImFkZEFyZWEiLCJkZWZhdWx0UHJvcHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvZGVmYXVsdC10b29sYmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb25lQnV0dG9uIH0gZnJvbSAnLi9kb25lLWJ1dHRvbic7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBTbGF0ZVByb3BUeXBlcyBmcm9tICdzbGF0ZS1wcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgaGFzQmxvY2ssIGhhc01hcmsgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5cbmltcG9ydCB7IEJ1dHRvbiwgTWFya0J1dHRvbiB9IGZyb20gJy4vdG9vbGJhci1idXR0b25zJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnBsdWdpbnM6dG9vbGJhcicpO1xuXG5jb25zdCBEZWZhdWx0VG9vbGJhckNvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jykoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG59KTtcblxuY29uc3QgQnV0dG9uc0NvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jykoe1xuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB3aWR0aDogJzEwMCUnLFxufSk7XG5cbmV4cG9ydCBjb25zdCBUb29sYmFyQnV0dG9uID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IG9uVG9nZ2xlID0gKCkgPT4ge1xuICAgIGNvbnN0IGMgPSBwcm9wcy5vblRvZ2dsZShwcm9wcy52YWx1ZS5jaGFuZ2UoKSwgcHJvcHMpO1xuXG4gICAgcHJvcHMub25DaGFuZ2UoYyk7XG4gIH07XG5cbiAgaWYgKHByb3BzLmlzTWFyaykge1xuICAgIGNvbnN0IGlzQWN0aXZlID0gaGFzTWFyayhwcm9wcy52YWx1ZSwgcHJvcHMudHlwZSk7XG4gICAgY29uc3QgZm5Ub0NhbGwgPVxuICAgICAgcHJvcHMudHlwZSA9PT0gJ2NzcycgPyAoKSA9PiBwcm9wcy5vbkNsaWNrKHByb3BzLnZhbHVlLCBwcm9wcy5vbkNoYW5nZSwgcHJvcHMuZ2V0Rm9jdXNlZFZhbHVlKSA6IG9uVG9nZ2xlO1xuXG4gICAgbG9nKCdbVG9vbGJhckJ1dHRvbl0gbWFyazppc0FjdGl2ZTogJywgaXNBY3RpdmUpO1xuXG4gICAgbGV0IGFyaWFMYWJlbDtcblxuICAgIGlmIChwcm9wcy50eXBlID09PSAnc3VwJykge1xuICAgICAgYXJpYUxhYmVsID0gJ1N1cGVyc2NyaXB0IChtYXJrcyB0ZXh0IGFzIHN1cGVyc2NyaXB0ZWQpJztcbiAgICB9IGVsc2UgaWYgKHByb3BzLnR5cGUgPT09ICdzdWInKSB7XG4gICAgICBhcmlhTGFiZWwgPSAnU3Vic2NyaXB0IChtYXJrcyB0ZXh0IGFzIHN1YnNjcmlwdGVkKSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyaWFMYWJlbCA9IHByb3BzLnR5cGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNYXJrQnV0dG9uIGFjdGl2ZT17aXNBY3RpdmV9IG9uVG9nZ2xlPXtmblRvQ2FsbH0gbWFyaz17cHJvcHMudHlwZX0gbGFiZWw9e2FyaWFMYWJlbH0+XG4gICAgICAgIHtwcm9wcy5pY29ufVxuICAgICAgPC9NYXJrQnV0dG9uPlxuICAgICk7XG4gIH1cblxuICBjb25zdCB7IGRpc2FibGVkIH0gPSBwcm9wcztcbiAgY29uc3QgaXNBY3RpdmUgPSBwcm9wcy5pc0FjdGl2ZSA/IHByb3BzLmlzQWN0aXZlKHByb3BzLnZhbHVlLCBwcm9wcy50eXBlKSA6IGhhc0Jsb2NrKHByb3BzLnZhbHVlLCBwcm9wcy50eXBlKTtcblxuICBsb2coJ1tUb29sYmFyQnV0dG9uXSBibG9jazppc0FjdGl2ZTogJywgaXNBY3RpdmUpO1xuICBjb25zdCBuZXdJY29uID0gUmVhY3QuY2xvbmVFbGVtZW50KHByb3BzLmljb24pO1xuXG4gIHJldHVybiAoXG4gICAgPEJ1dHRvblxuICAgICAgYXJpYUxhYmVsPXtwcm9wcy5hcmlhTGFiZWx9XG4gICAgICBhY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17KGV2ZW50KSA9PiBwcm9wcy5vbkNsaWNrKHByb3BzLnZhbHVlLCBwcm9wcy5vbkNoYW5nZSwgcHJvcHMuZ2V0Rm9jdXNlZFZhbHVlLCBldmVudCl9XG4gICAgICBleHRyYVN0eWxlcz17cHJvcHMuYnV0dG9uU3R5bGVzfVxuICAgID5cbiAgICAgIHtuZXdJY29ufVxuICAgIDwvQnV0dG9uPlxuICApO1xufTtcblxuVG9vbGJhckJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIGJ1dHRvblN0eWxlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBpY29uOiBQcm9wVHlwZXMuYW55LFxuICBpc0FjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTWFyazogUHJvcFR5cGVzLmJvb2wsXG4gIGdldEZvY3VzZWRWYWx1ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uVG9nZ2xlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdmFsdWU6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmNvbnN0IGlzQWN0aXZlVG9vbGJhclBsdWdpbiA9IChwcm9wcykgPT4gKHBsdWdpbikgPT4ge1xuICBjb25zdCBpc0Rpc2FibGVkID0gKHByb3BzW3BsdWdpbi5uYW1lXSB8fCB7fSkuZGlzYWJsZWQ7XG5cbiAgcmV0dXJuIHBsdWdpbiAmJiBwbHVnaW4udG9vbGJhciAmJiAhaXNEaXNhYmxlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0VG9vbGJhciA9ICh7XG4gIHBsdWdpbnMsXG4gIHBsdWdpblByb3BzLFxuICB2YWx1ZSxcbiAgb25DaGFuZ2UsXG4gIGdldEZvY3VzZWRWYWx1ZSxcbiAgb25Eb25lLFxuICBzaG93RG9uZSxcbiAgZGVsZXRhYmxlLFxuICBpc0h0bWxNb2RlLFxuICBkb25lQnV0dG9uUmVmLFxuICBvbkJsdXIsXG4gIG9uRm9jdXMsXG59KSA9PiB7XG4gIHBsdWdpblByb3BzID0ge1xuICAgIC8vIGRpc2FibGUgSFRNTCBwbHVnaW4gYnkgZGVmYXVsdCwgYXQgbGVhc3QgZm9yIG5vd1xuICAgIGh0bWw6IHsgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICAuLi5wbHVnaW5Qcm9wcyxcbiAgfTtcbiAgbGV0IGZpbHRlcmVkO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgZG9uZUJ1dHRvbkNsYXNzTmFtZSA9IGRvbmVCdXR0b25SZWY/LmN1cnJlbnQ/LmNsYXNzTmFtZTtcbiAgICBjb25zdCBpc1Jhd0RvbmVCdXR0b24gPSBkb25lQnV0dG9uQ2xhc3NOYW1lICYmIGV2ZW50LnRhcmdldD8uY2xvc2VzdChgW2NsYXNzKj1cIiR7ZG9uZUJ1dHRvbkNsYXNzTmFtZX1cIl1gKTtcblxuICAgIGlmIChvbkZvY3VzICYmICFpc1Jhd0RvbmVCdXR0b24pIHtcbiAgICAgIG9uRm9jdXMoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBpZiAoaXNIdG1sTW9kZSkge1xuICAgIGZpbHRlcmVkID0gcGx1Z2luc1xuICAgICAgLmZpbHRlcigocGx1Z2luKSA9PiB7XG4gICAgICAgIHJldHVybiBpc0FjdGl2ZVRvb2xiYXJQbHVnaW4ocGx1Z2luUHJvcHMpKHBsdWdpbikgJiYgKHBsdWdpbi5uYW1lID09PSAnY2hhcmFjdGVycycgfHwgcGx1Z2luLm5hbWUgPT09ICdodG1sJyk7XG4gICAgICB9KVxuICAgICAgLm1hcCgocCkgPT4gcC50b29sYmFyKTtcbiAgfSBlbHNlIHtcbiAgICBmaWx0ZXJlZCA9IHBsdWdpbnMuZmlsdGVyKGlzQWN0aXZlVG9vbGJhclBsdWdpbihwbHVnaW5Qcm9wcykpLm1hcCgocCkgPT4gcC50b29sYmFyKTtcbiAgfVxuXG4gIGNvbnN0IGlzTGlzdEFjdGl2ZSA9IHBsdWdpbnMuc29tZShcbiAgICAocGx1Z2luKSA9PlxuICAgICAgaXNBY3RpdmVUb29sYmFyUGx1Z2luKHBsdWdpblByb3BzKShwbHVnaW4pICYmXG4gICAgICBbJ3VsX2xpc3QnLCAnb2xfbGlzdCddLmluY2x1ZGVzKHBsdWdpbi5uYW1lKSAmJlxuICAgICAgcGx1Z2luLnRvb2xiYXIuaXNBY3RpdmUodmFsdWUsIHBsdWdpbi5uYW1lKSxcbiAgKTtcblxuICBjb25zdCBpc1RhYmxlQWN0aXZlID0gcGx1Z2lucy5zb21lKFxuICAgIChwbHVnaW4pID0+XG4gICAgICBpc0FjdGl2ZVRvb2xiYXJQbHVnaW4ocGx1Z2luUHJvcHMpKHBsdWdpbikgJiZcbiAgICAgIHBsdWdpbi5uYW1lID09PSAndGFibGUnICYmXG4gICAgICBwbHVnaW4udXRpbHMgJiZcbiAgICAgIHBsdWdpbi51dGlscy5pc1NlbGVjdGlvbkluVGFibGUgJiZcbiAgICAgIHBsdWdpbi51dGlscy5pc1NlbGVjdGlvbkluVGFibGUodmFsdWUpLFxuICApO1xuXG4gIGNvbnN0IGlzVG9vbGJhckJ1dHRvbkRpc2FibGVkID0gKHBsdWdpbikgPT4ge1xuICAgIGlmIChwbHVnaW4udHlwZSA9PT0gJ3RhYmxlJykge1xuICAgICAgcmV0dXJuIGlzTGlzdEFjdGl2ZTtcbiAgICB9IGVsc2UgaWYgKHBsdWdpbi50eXBlID09PSAndWxfbGlzdCcgfHwgcGx1Z2luLnR5cGUgPT09ICdvbF9saXN0Jykge1xuICAgICAgcmV0dXJuIGlzVGFibGVBY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiBwbHVnaW4uZGlzYWJsZWQ7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8RGVmYXVsdFRvb2xiYXJDb250YWluZXIgb25Gb2N1cz17aGFuZGxlRm9jdXN9IHRhYkluZGV4PVwiMVwiIG9uQmx1cj17b25CbHVyfT5cbiAgICAgIDxCdXR0b25zQ29udGFpbmVyPlxuICAgICAgICB7ZmlsdGVyZWQubWFwKChwLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VG9vbGJhckJ1dHRvblxuICAgICAgICAgICAgICB7Li4ucH1cbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgIGdldEZvY3VzZWRWYWx1ZT17Z2V0Rm9jdXNlZFZhbHVlfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17aXNUb29sYmFyQnV0dG9uRGlzYWJsZWQocCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC9CdXR0b25zQ29udGFpbmVyPlxuICAgICAge3Nob3dEb25lICYmICFkZWxldGFibGUgJiYgPERvbmVCdXR0b24gZG9uZUJ1dHRvblJlZj17ZG9uZUJ1dHRvblJlZn0gb25DbGljaz17b25Eb25lfSAvPn1cbiAgICA8L0RlZmF1bHRUb29sYmFyQ29udGFpbmVyPlxuICApO1xufTtcblxuRGVmYXVsdFRvb2xiYXIucHJvcFR5cGVzID0ge1xuICBwbHVnaW5zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGx1Z2luUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHZhbHVlOiBTbGF0ZVByb3BUeXBlcy52YWx1ZS5pc1JlcXVpcmVkLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0Rm9jdXNlZFZhbHVlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbkRvbmU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNob3dEb25lOiBQcm9wVHlwZXMuYm9vbCxcbiAgYWRkQXJlYTogUHJvcFR5cGVzLmJvb2wsXG4gIGRlbGV0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzSHRtbE1vZGU6IFByb3BUeXBlcy5ib29sLFxuICBkb25lQnV0dG9uUmVmOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5EZWZhdWx0VG9vbGJhci5kZWZhdWx0UHJvcHMgPSB7XG4gIHBsdWdpblByb3BzOiB7fSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERlZmF1bHRUb29sYmFy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
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-toolbar.js","names":["_doneButton","require","_propTypes","_interopRequireDefault","_react","_slatePropTypes","_utils","_styles","_toolbarButtons","_debug","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","DefaultToolbarContainer","styled","display","width","justifyContent","ButtonsContainer","alignItems","ToolbarButton","exports","props","onToggle","c","value","change","onChange","isMark","isActive","hasMark","type","fnToCall","onClick","getFocusedValue","ariaLabel","createElement","MarkButton","active","mark","label","icon","disabled","hasBlock","newIcon","React","cloneElement","Button","event","extraStyles","buttonStyles","propTypes","PropTypes","object","bool","any","func","string","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","_ref","plugins","pluginProps","onDone","showDone","deletable","isHtmlMode","doneButtonRef","onBlur","onFocus","html","filtered","handleFocus","_doneButtonRef$curren","_event$target","doneButtonClassName","current","className","isRawDoneButton","target","closest","concat","map","p","isListActive","some","includes","isTableActive","utils","isSelectionInTable","isToolbarButtonDisabled","tabIndex","index","_extends2","key","DoneButton","array","isRequired","SlatePropTypes","addArea","defaultProps","_default"],"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"sourcesContent":["import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SlatePropTypes from 'slate-prop-types';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { styled } from '@mui/material/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst DefaultToolbarContainer = styled('div')({\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n});\n\nconst ButtonsContainer = styled('div')({\n alignItems: 'center',\n display: 'flex',\n width: '100%',\n});\n\nexport const ToolbarButton = (props) => {\n const onToggle = () => {\n const c = props.onToggle(props.value.change(), props);\n\n props.onChange(c);\n };\n\n if (props.isMark) {\n const isActive = hasMark(props.value, props.type);\n const fnToCall =\n props.type === 'css' ? () => props.onClick(props.value, props.onChange, props.getFocusedValue) : onToggle;\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n let ariaLabel;\n\n if (props.type === 'sup') {\n ariaLabel = 'Superscript (marks text as superscripted)';\n } else if (props.type === 'sub') {\n ariaLabel = 'Subscript (marks text as subscripted)';\n } else {\n ariaLabel = props.type;\n }\n\n return (\n <MarkButton active={isActive} onToggle={fnToCall} mark={props.type} label={ariaLabel}>\n {props.icon}\n </MarkButton>\n );\n }\n\n const { disabled } = props;\n const isActive = props.isActive ? props.isActive(props.value, props.type) : hasBlock(props.value, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n const newIcon = React.cloneElement(props.icon);\n\n return (\n <Button\n ariaLabel={props.ariaLabel}\n active={isActive}\n disabled={disabled}\n onClick={(event) => props.onClick(props.value, props.onChange, props.getFocusedValue, event)}\n extraStyles={props.buttonStyles}\n >\n {newIcon}\n </Button>\n );\n};\n\nToolbarButton.propTypes = {\n buttonStyles: PropTypes.object,\n disabled: PropTypes.bool,\n icon: PropTypes.any,\n isActive: PropTypes.bool,\n isMark: PropTypes.bool,\n getFocusedValue: PropTypes.func,\n onToggle: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n type: PropTypes.string,\n value: PropTypes.object,\n ariaLabel: PropTypes.string,\n};\n\nconst isActiveToolbarPlugin = (props) => (plugin) => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n plugins,\n pluginProps,\n value,\n onChange,\n getFocusedValue,\n onDone,\n showDone,\n deletable,\n isHtmlMode,\n doneButtonRef,\n onBlur,\n onFocus,\n}) => {\n pluginProps = {\n // disable HTML plugin by default, at least for now\n html: { disabled: true },\n ...pluginProps,\n };\n let filtered;\n\n const handleFocus = (event) => {\n const doneButtonClassName = doneButtonRef?.current?.className;\n const isRawDoneButton = doneButtonClassName && event.target?.closest(`[class*=\"${doneButtonClassName}\"]`);\n\n if (onFocus && !isRawDoneButton) {\n onFocus(event);\n }\n };\n\n if (isHtmlMode) {\n filtered = plugins\n .filter((plugin) => {\n return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');\n })\n .map((p) => p.toolbar);\n } else {\n filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map((p) => p.toolbar);\n }\n\n const isListActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n ['ul_list', 'ol_list'].includes(plugin.name) &&\n plugin.toolbar.isActive(value, plugin.name),\n );\n\n const isTableActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n plugin.name === 'table' &&\n plugin.utils &&\n plugin.utils.isSelectionInTable &&\n plugin.utils.isSelectionInTable(value),\n );\n\n const isToolbarButtonDisabled = (plugin) => {\n if (plugin.type === 'table') {\n return isListActive;\n } else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {\n return isTableActive;\n }\n return plugin.disabled;\n };\n\n return (\n <DefaultToolbarContainer onFocus={handleFocus} tabIndex=\"1\" onBlur={onBlur}>\n <ButtonsContainer>\n {filtered.map((p, index) => {\n return (\n <ToolbarButton\n {...p}\n key={index}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n disabled={isToolbarButtonDisabled(p)}\n />\n );\n })}\n </ButtonsContainer>\n {showDone && !deletable && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}\n </DefaultToolbarContainer>\n );\n};\n\nDefaultToolbar.propTypes = {\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: SlatePropTypes.value.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool,\n isHtmlMode: PropTypes.bool,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {},\n};\n\nexport default DefaultToolbar;\n"],"mappings":"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","ignoreList":[]}
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.RawDoneButton = exports.DoneButton = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
10
- var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
11
- var _styles = require("@mui/material/styles");
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var StyledIconButton = (0, _styles.styled)(_IconButton["default"])({
14
- verticalAlign: 'top',
15
- width: '28px',
16
- height: '28px',
17
- color: 'var(--editable-html-toolbar-check, #00bb00)',
18
- padding: '4px'
19
- });
20
- var RawDoneButton = exports.RawDoneButton = function RawDoneButton(_ref) {
21
- var onClick = _ref.onClick,
22
- doneButtonRef = _ref.doneButtonRef;
23
- return /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
24
- "aria-label": "Done",
25
- buttonRef: doneButtonRef,
26
- onClick: onClick,
27
- size: "large"
28
- }, /*#__PURE__*/_react["default"].createElement(_Check["default"], null));
29
- };
30
- RawDoneButton.propTypes = {
31
- onClick: _propTypes["default"].func,
32
- doneButtonRef: _propTypes["default"].func
33
- };
34
- var DoneButton = exports.DoneButton = RawDoneButton;
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9JY29uQnV0dG9uIiwiX0NoZWNrIiwiX3N0eWxlcyIsIl9wcm9wVHlwZXMiLCJTdHlsZWRJY29uQnV0dG9uIiwic3R5bGVkIiwiSWNvbkJ1dHRvbiIsInZlcnRpY2FsQWxpZ24iLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwicGFkZGluZyIsIlJhd0RvbmVCdXR0b24iLCJleHBvcnRzIiwiX3JlZiIsIm9uQ2xpY2siLCJkb25lQnV0dG9uUmVmIiwiY3JlYXRlRWxlbWVudCIsImJ1dHRvblJlZiIsInNpemUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJmdW5jIiwiRG9uZUJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Rvb2xiYXIvZG9uZS1idXR0b24uanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgQ2hlY2sgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9DaGVjayc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBTdHlsZWRJY29uQnV0dG9uID0gc3R5bGVkKEljb25CdXR0b24pKHtcbiAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIHdpZHRoOiAnMjhweCcsXG4gIGhlaWdodDogJzI4cHgnLFxuICBjb2xvcjogJ3ZhcigtLWVkaXRhYmxlLWh0bWwtdG9vbGJhci1jaGVjaywgIzAwYmIwMCknLFxuICBwYWRkaW5nOiAnNHB4Jyxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmF3RG9uZUJ1dHRvbiA9ICh7IG9uQ2xpY2ssIGRvbmVCdXR0b25SZWYgfSkgPT4gKFxuICA8U3R5bGVkSWNvbkJ1dHRvblxuICAgIGFyaWEtbGFiZWw9XCJEb25lXCJcbiAgICBidXR0b25SZWY9e2RvbmVCdXR0b25SZWZ9XG4gICAgb25DbGljaz17b25DbGlja31cbiAgICBzaXplPVwibGFyZ2VcIlxuICA+XG4gICAgPENoZWNrIC8+XG4gIDwvU3R5bGVkSWNvbkJ1dHRvbj5cbik7XG5cblJhd0RvbmVCdXR0b24ucHJvcFR5cGVzID0ge1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgZG9uZUJ1dHRvblJlZjogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgY29uc3QgRG9uZUJ1dHRvbiA9IFJhd0RvbmVCdXR0b247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFNSyxnQkFBZ0IsR0FBRyxJQUFBQyxjQUFNLEVBQUNDLHNCQUFVLENBQUMsQ0FBQztFQUMxQ0MsYUFBYSxFQUFFLEtBQUs7RUFDcEJDLEtBQUssRUFBRSxNQUFNO0VBQ2JDLE1BQU0sRUFBRSxNQUFNO0VBQ2RDLEtBQUssRUFBRSw2Q0FBNkM7RUFDcERDLE9BQU8sRUFBRTtBQUNYLENBQUMsQ0FBQztBQUVLLElBQU1DLGFBQWEsR0FBQUMsT0FBQSxDQUFBRCxhQUFBLEdBQUcsU0FBaEJBLGFBQWFBLENBQUFFLElBQUE7RUFBQSxJQUFNQyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztJQUFFQyxhQUFhLEdBQUFGLElBQUEsQ0FBYkUsYUFBYTtFQUFBLG9CQUNwRG5CLE1BQUEsWUFBQW9CLGFBQUEsQ0FBQ2IsZ0JBQWdCO0lBQ2YsY0FBVyxNQUFNO0lBQ2pCYyxTQUFTLEVBQUVGLGFBQWM7SUFDekJELE9BQU8sRUFBRUEsT0FBUTtJQUNqQkksSUFBSSxFQUFDO0VBQU8sZ0JBRVp0QixNQUFBLFlBQUFvQixhQUFBLENBQUNoQixNQUFBLFdBQUssTUFBRSxDQUNRLENBQUM7QUFBQSxDQUNwQjtBQUVEVyxhQUFhLENBQUNRLFNBQVMsR0FBRztFQUN4QkwsT0FBTyxFQUFFTSxxQkFBUyxDQUFDQyxJQUFJO0VBQ3ZCTixhQUFhLEVBQUVLLHFCQUFTLENBQUNDO0FBQzNCLENBQUM7QUFFTSxJQUFNQyxVQUFVLEdBQUFWLE9BQUEsQ0FBQVUsVUFBQSxHQUFHWCxhQUFhIiwiaWdub3JlTGlzdCI6W119
@@ -1 +0,0 @@
1
- {"version":3,"file":"done-button.js","names":["_react","_interopRequireDefault","require","_IconButton","_Check","_styles","_propTypes","StyledIconButton","styled","IconButton","verticalAlign","width","height","color","padding","RawDoneButton","exports","_ref","onClick","doneButtonRef","createElement","buttonRef","size","propTypes","PropTypes","func","DoneButton"],"sources":["../../../src/plugins/toolbar/done-button.jsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport Check from '@mui/icons-material/Check';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\n\nconst StyledIconButton = styled(IconButton)({\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n padding: '4px',\n});\n\nexport const RawDoneButton = ({ onClick, doneButtonRef }) => (\n <StyledIconButton\n aria-label=\"Done\"\n buttonRef={doneButtonRef}\n onClick={onClick}\n size=\"large\"\n >\n <Check />\n </StyledIconButton>\n);\n\nRawDoneButton.propTypes = {\n onClick: PropTypes.func,\n doneButtonRef: PropTypes.func,\n};\n\nexport const DoneButton = RawDoneButton;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAMK,gBAAgB,GAAG,IAAAC,cAAM,EAACC,sBAAU,CAAC,CAAC;EAC1CC,aAAa,EAAE,KAAK;EACpBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,6CAA6C;EACpDC,OAAO,EAAE;AACX,CAAC,CAAC;AAEK,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAAE,IAAA;EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,aAAa,GAAAF,IAAA,CAAbE,aAAa;EAAA,oBACpDnB,MAAA,YAAAoB,aAAA,CAACb,gBAAgB;IACf,cAAW,MAAM;IACjBc,SAAS,EAAEF,aAAc;IACzBD,OAAO,EAAEA,OAAQ;IACjBI,IAAI,EAAC;EAAO,gBAEZtB,MAAA,YAAAoB,aAAA,CAAChB,MAAA,WAAK,MAAE,CACQ,CAAC;AAAA,CACpB;AAEDW,aAAa,CAACQ,SAAS,GAAG;EACxBL,OAAO,EAAEM,qBAAS,CAACC,IAAI;EACvBN,aAAa,EAAEK,qBAAS,CAACC;AAC3B,CAAC;AAEM,IAAMC,UAAU,GAAAV,OAAA,CAAAU,UAAA,GAAGX,aAAa","ignoreList":[]}
@@ -1,258 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.EditorAndToolbar = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _toolbar = _interopRequireDefault(require("./toolbar"));
16
- var _debug = _interopRequireDefault(require("debug"));
17
- var _theme = require("../../theme");
18
- var _styles = require("@mui/material/styles");
19
- var _propTypes = _interopRequireDefault(require("prop-types"));
20
- var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
21
- var _renderUi = require("@pie-lib/render-ui");
22
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
23
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
- 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; }
25
- 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; }
26
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');
27
- var Root = (0, _styles.styled)('div', {
28
- shouldForwardProp: function shouldForwardProp(prop) {
29
- return !['noBorder', 'error'].includes(prop);
30
- }
31
- })(function (_ref) {
32
- var theme = _ref.theme,
33
- noBorder = _ref.noBorder,
34
- error = _ref.error;
35
- return {
36
- position: 'relative',
37
- padding: '0px',
38
- border: noBorder ? 'none' : '1px solid #ccc',
39
- borderRadius: '4px',
40
- cursor: 'text',
41
- borderColor: error ? "".concat(theme.palette.error.main, " !important") : undefined,
42
- borderWidth: error ? '2px !important' : undefined,
43
- '& [data-slate-editor="true"]': {
44
- wordBreak: 'break-word',
45
- overflow: 'visible',
46
- maxHeight: '500px',
47
- // needed in order to be able to put the focus before a void element when it is the first one in the editor
48
- padding: '5px'
49
- }
50
- };
51
- });
52
- var EditorHolder = (0, _styles.styled)('div', {
53
- shouldForwardProp: function shouldForwardProp(prop) {
54
- return !['inFocus', 'readOnly', 'disableUnderline', 'disableScrollbar'].includes(prop);
55
- }
56
- })(function (_ref2) {
57
- var theme = _ref2.theme,
58
- inFocus = _ref2.inFocus,
59
- readOnly = _ref2.readOnly,
60
- disableUnderline = _ref2.disableUnderline,
61
- disableScrollbar = _ref2.disableScrollbar;
62
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread({
63
- position: 'relative',
64
- padding: '0px',
65
- overflowY: 'auto',
66
- color: _renderUi.color.text(),
67
- backgroundColor: _renderUi.color.background()
68
- }, disableScrollbar && {
69
- '&::-webkit-scrollbar': {
70
- display: 'none'
71
- },
72
- scrollbarWidth: 'none',
73
- '-ms-overflow-style': 'none'
74
- }), !disableUnderline && {
75
- '&::before': {
76
- left: '0',
77
- right: '0',
78
- bottom: '0',
79
- height: '1px',
80
- content: '""',
81
- position: 'absolute',
82
- transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',
83
- pointerEvents: 'none',
84
- backgroundColor: 'rgba(0, 0, 0, 0.42)'
85
- },
86
- '&::after': {
87
- left: '0',
88
- right: '0',
89
- bottom: '0',
90
- height: '1px',
91
- content: '""',
92
- position: 'absolute',
93
- transform: 'scaleX(0)',
94
- transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',
95
- backgroundColor: 'rgba(0, 0, 0, 0.42)'
96
- },
97
- '&:focus': {
98
- '&::after': {
99
- transform: 'scaleX(1)',
100
- backgroundColor: _theme.primary,
101
- height: '2px'
102
- }
103
- },
104
- '&:hover': {
105
- '&::after': {
106
- transform: 'scaleX(1)',
107
- backgroundColor: theme.palette.common.black,
108
- height: '2px'
109
- }
110
- }
111
- }), readOnly && {
112
- '&::before': {
113
- background: 'transparent',
114
- backgroundSize: '5px 1px',
115
- backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',
116
- backgroundRepeat: 'repeat-x',
117
- backgroundPosition: 'left top'
118
- },
119
- '&::after': {
120
- left: '0',
121
- right: '0',
122
- bottom: '0',
123
- height: '1px',
124
- content: '""',
125
- position: 'absolute',
126
- transform: 'scaleX(0)',
127
- transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',
128
- backgroundColor: 'rgba(0, 0, 0, 0)'
129
- },
130
- '&:hover': {
131
- '&::after': {
132
- transform: 'scaleX(0)',
133
- backgroundColor: theme.palette.common.black,
134
- height: '2px'
135
- }
136
- }
137
- }), inFocus && {
138
- '&::after': {
139
- transform: 'scaleX(1)',
140
- backgroundColor: _theme.primary,
141
- height: '2px'
142
- },
143
- '&:hover': {
144
- '&::after': {
145
- backgroundColor: _theme.primary
146
- }
147
- }
148
- });
149
- });
150
- var ChildrenContainer = (0, _styles.styled)('div', {
151
- shouldForwardProp: function shouldForwardProp(prop) {
152
- return !['noPadding'].includes(prop);
153
- }
154
- })(function (_ref3) {
155
- var noPadding = _ref3.noPadding;
156
- return {
157
- padding: noPadding ? 0 : '10px 16px'
158
- };
159
- });
160
- var EditorAndToolbar = exports.EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
161
- function EditorAndToolbar() {
162
- (0, _classCallCheck2["default"])(this, EditorAndToolbar);
163
- return _callSuper(this, EditorAndToolbar, arguments);
164
- }
165
- (0, _inherits2["default"])(EditorAndToolbar, _React$Component);
166
- return (0, _createClass2["default"])(EditorAndToolbar, [{
167
- key: "render",
168
- value: function render() {
169
- var _this = this;
170
- var _this$props = this.props,
171
- children = _this$props.children,
172
- value = _this$props.value,
173
- plugins = _this$props.plugins,
174
- onChange = _this$props.onChange,
175
- getFocusedValue = _this$props.getFocusedValue,
176
- onDone = _this$props.onDone,
177
- focusedNode = _this$props.focusedNode,
178
- autoWidth = _this$props.autoWidth,
179
- readOnly = _this$props.readOnly,
180
- disableScrollbar = _this$props.disableScrollbar,
181
- disableUnderline = _this$props.disableUnderline,
182
- pluginProps = _this$props.pluginProps,
183
- toolbarOpts = _this$props.toolbarOpts,
184
- onDataChange = _this$props.onDataChange,
185
- toolbarRef = _this$props.toolbarRef,
186
- doneButtonRef = _this$props.doneButtonRef,
187
- focusToolbar = _this$props.focusToolbar,
188
- onToolbarFocus = _this$props.onToolbarFocus,
189
- onToolbarBlur = _this$props.onToolbarBlur;
190
- var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined || focusToolbar;
191
- var clonedChildren = children;
192
- if (typeof children !== 'string') {
193
- clonedChildren = /*#__PURE__*/_react["default"].cloneElement(children, {
194
- ref: function ref(el) {
195
- return _this.editorRef = el;
196
- }
197
- });
198
- }
199
- log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);
200
- return /*#__PURE__*/_react["default"].createElement(Root, {
201
- noBorder: toolbarOpts && toolbarOpts.noBorder,
202
- error: toolbarOpts && toolbarOpts.error
203
- }, /*#__PURE__*/_react["default"].createElement(EditorHolder, {
204
- inFocus: inFocus,
205
- readOnly: readOnly,
206
- disableUnderline: disableUnderline,
207
- disableScrollbar: disableScrollbar
208
- }, /*#__PURE__*/_react["default"].createElement(ChildrenContainer, {
209
- noPadding: toolbarOpts && toolbarOpts.noPadding
210
- }, clonedChildren)), /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
211
- autoWidth: autoWidth,
212
- plugins: plugins,
213
- focusedNode: focusedNode,
214
- value: value,
215
- isFocused: inFocus,
216
- onBlur: onToolbarBlur,
217
- onFocus: onToolbarFocus,
218
- onChange: onChange,
219
- getFocusedValue: getFocusedValue,
220
- onDone: onDone,
221
- onDataChange: onDataChange,
222
- toolbarRef: toolbarRef,
223
- doneButtonRef: doneButtonRef,
224
- pluginProps: pluginProps,
225
- toolbarOpts: toolbarOpts
226
- }));
227
- }
228
- }]);
229
- }(_react["default"].Component);
230
- (0, _defineProperty2["default"])(EditorAndToolbar, "propTypes", {
231
- children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
232
- value: _slatePropTypes["default"].value.isRequired,
233
- plugins: _propTypes["default"].array.isRequired,
234
- onChange: _propTypes["default"].func.isRequired,
235
- getFocusedValue: _propTypes["default"].func.isRequired,
236
- onDone: _propTypes["default"].func.isRequired,
237
- onDataChange: _propTypes["default"].func,
238
- toolbarRef: _propTypes["default"].func,
239
- focusedNode: _slatePropTypes["default"].node,
240
- readOnly: _propTypes["default"].bool,
241
- disableScrollbar: _propTypes["default"].bool,
242
- disableUnderline: _propTypes["default"].bool,
243
- autoWidth: _propTypes["default"].bool,
244
- pluginProps: _propTypes["default"].object,
245
- toolbarOpts: _propTypes["default"].shape({
246
- position: _propTypes["default"].oneOf(['bottom', 'top']),
247
- alwaysVisible: _propTypes["default"].bool,
248
- error: _propTypes["default"].string,
249
- noBorder: _propTypes["default"].any,
250
- noPadding: _propTypes["default"].any
251
- }),
252
- focusToolbar: _propTypes["default"].bool.isRequired,
253
- onToolbarFocus: _propTypes["default"].func.isRequired,
254
- onToolbarBlur: _propTypes["default"].func.isRequired,
255
- doneButtonRef: _propTypes["default"].func
256
- });
257
- var _default = exports["default"] = EditorAndToolbar;
258
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90b29sYmFyIiwiX2RlYnVnIiwiX3RoZW1lIiwiX3N0eWxlcyIsIl9wcm9wVHlwZXMiLCJfc2xhdGVQcm9wVHlwZXMiLCJfcmVuZGVyVWkiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIm93bktleXMiLCJyIiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImxvZyIsImRlYnVnIiwiUm9vdCIsInN0eWxlZCIsInNob3VsZEZvcndhcmRQcm9wIiwicHJvcCIsImluY2x1ZGVzIiwiX3JlZiIsInRoZW1lIiwibm9Cb3JkZXIiLCJlcnJvciIsInBvc2l0aW9uIiwicGFkZGluZyIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImN1cnNvciIsImJvcmRlckNvbG9yIiwiY29uY2F0IiwicGFsZXR0ZSIsIm1haW4iLCJ1bmRlZmluZWQiLCJib3JkZXJXaWR0aCIsIndvcmRCcmVhayIsIm92ZXJmbG93IiwibWF4SGVpZ2h0IiwiRWRpdG9ySG9sZGVyIiwiX3JlZjIiLCJpbkZvY3VzIiwicmVhZE9ubHkiLCJkaXNhYmxlVW5kZXJsaW5lIiwiZGlzYWJsZVNjcm9sbGJhciIsIm92ZXJmbG93WSIsImNvbG9yIiwidGV4dCIsImJhY2tncm91bmRDb2xvciIsImJhY2tncm91bmQiLCJkaXNwbGF5Iiwic2Nyb2xsYmFyV2lkdGgiLCJsZWZ0IiwicmlnaHQiLCJib3R0b20iLCJoZWlnaHQiLCJjb250ZW50IiwidHJhbnNpdGlvbiIsInBvaW50ZXJFdmVudHMiLCJ0cmFuc2Zvcm0iLCJwcmltYXJ5IiwiY29tbW9uIiwiYmxhY2siLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJDaGlsZHJlbkNvbnRhaW5lciIsIl9yZWYzIiwibm9QYWRkaW5nIiwiRWRpdG9yQW5kVG9vbGJhciIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJyZW5kZXIiLCJfdGhpcyIsIl90aGlzJHByb3BzIiwicHJvcHMiLCJjaGlsZHJlbiIsInBsdWdpbnMiLCJvbkNoYW5nZSIsImdldEZvY3VzZWRWYWx1ZSIsIm9uRG9uZSIsImZvY3VzZWROb2RlIiwiYXV0b1dpZHRoIiwicGx1Z2luUHJvcHMiLCJ0b29sYmFyT3B0cyIsIm9uRGF0YUNoYW5nZSIsInRvb2xiYXJSZWYiLCJkb25lQnV0dG9uUmVmIiwiZm9jdXNUb29sYmFyIiwib25Ub29sYmFyRm9jdXMiLCJvblRvb2xiYXJCbHVyIiwiaXNGb2N1c2VkIiwiY2xvbmVkQ2hpbGRyZW4iLCJSZWFjdCIsImNsb25lRWxlbWVudCIsInJlZiIsImVsIiwiZWRpdG9yUmVmIiwiY3JlYXRlRWxlbWVudCIsIm9uQmx1ciIsIm9uRm9jdXMiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwibm9kZSIsImlzUmVxdWlyZWQiLCJTbGF0ZVByb3BUeXBlcyIsImFycmF5IiwiZnVuYyIsImJvb2wiLCJvYmplY3QiLCJzaGFwZSIsIm9uZU9mIiwiYWx3YXlzVmlzaWJsZSIsInN0cmluZyIsImFueSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvdG9vbGJhci9lZGl0b3ItYW5kLXRvb2xiYXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuL3Rvb2xiYXInO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IHByaW1hcnkgfSBmcm9tICcuLi8uLi90aGVtZSc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFNsYXRlUHJvcFR5cGVzIGZyb20gJ3NsYXRlLXByb3AtdHlwZXMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zOnRvb2xiYXI6ZWRpdG9yLWFuZC10b29sYmFyJyk7XG5cbmNvbnN0IFJvb3QgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiAhWydub0JvcmRlcicsICdlcnJvciddLmluY2x1ZGVzKHByb3ApLFxufSkoKHsgdGhlbWUsIG5vQm9yZGVyLCBlcnJvciB9KSA9PiAoe1xuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgcGFkZGluZzogJzBweCcsXG4gIGJvcmRlcjogbm9Cb3JkZXIgPyAnbm9uZScgOiAnMXB4IHNvbGlkICNjY2MnLFxuICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICBjdXJzb3I6ICd0ZXh0JyxcbiAgYm9yZGVyQ29sb3I6IGVycm9yID8gYCR7dGhlbWUucGFsZXR0ZS5lcnJvci5tYWlufSAhaW1wb3J0YW50YCA6IHVuZGVmaW5lZCxcbiAgYm9yZGVyV2lkdGg6IGVycm9yID8gJzJweCAhaW1wb3J0YW50JyA6IHVuZGVmaW5lZCxcbiAgJyYgW2RhdGEtc2xhdGUtZWRpdG9yPVwidHJ1ZVwiXSc6IHtcbiAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgICBvdmVyZmxvdzogJ3Zpc2libGUnLFxuICAgIG1heEhlaWdodDogJzUwMHB4JyxcbiAgICAvLyBuZWVkZWQgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBwdXQgdGhlIGZvY3VzIGJlZm9yZSBhIHZvaWQgZWxlbWVudCB3aGVuIGl0IGlzIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGVkaXRvclxuICAgIHBhZGRpbmc6ICc1cHgnLFxuICB9LFxufSkpO1xuXG5jb25zdCBFZGl0b3JIb2xkZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiAhWydpbkZvY3VzJywgJ3JlYWRPbmx5JywgJ2Rpc2FibGVVbmRlcmxpbmUnLCAnZGlzYWJsZVNjcm9sbGJhciddLmluY2x1ZGVzKHByb3ApLFxufSkoKHsgdGhlbWUsIGluRm9jdXMsIHJlYWRPbmx5LCBkaXNhYmxlVW5kZXJsaW5lLCBkaXNhYmxlU2Nyb2xsYmFyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICBwYWRkaW5nOiAnMHB4JyxcbiAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gIGJhY2tncm91bmRDb2xvcjogY29sb3IuYmFja2dyb3VuZCgpLFxuICAuLi4oZGlzYWJsZVNjcm9sbGJhciAmJiB7XG4gICAgJyY6Oi13ZWJraXQtc2Nyb2xsYmFyJzoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgc2Nyb2xsYmFyV2lkdGg6ICdub25lJyxcbiAgICAnLW1zLW92ZXJmbG93LXN0eWxlJzogJ25vbmUnLFxuICB9KSxcbiAgLi4uKCFkaXNhYmxlVW5kZXJsaW5lICYmIHtcbiAgICAnJjo6YmVmb3JlJzoge1xuICAgICAgbGVmdDogJzAnLFxuICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAwbXMnLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjQyKScsXG4gICAgfSxcbiAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAnMCcsXG4gICAgICByaWdodDogJzAnLFxuICAgICAgYm90dG9tOiAnMCcsXG4gICAgICBoZWlnaHQ6ICcxcHgnLFxuICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMCknLFxuICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC4wLCAwLjAsIDAuMiwgMSkgMG1zLCBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGxpbmVhcicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNDIpJyxcbiAgICB9LFxuICAgICcmOmZvY3VzJzoge1xuICAgICAgJyY6OmFmdGVyJzoge1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMSknLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnksXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgxKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5jb21tb24uYmxhY2ssXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pLFxuICAuLi4ocmVhZE9ubHkgJiYge1xuICAgICcmOjpiZWZvcmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgYmFja2dyb3VuZFNpemU6ICc1cHggMXB4JyxcbiAgICAgIGJhY2tncm91bmRJbWFnZTogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKScsXG4gICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAncmVwZWF0LXgnLFxuICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiAnbGVmdCB0b3AnLFxuICAgIH0sXG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgbGVmdDogJzAnLFxuICAgICAgcmlnaHQ6ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDApJyxcbiAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpIDBtcywgYmFja2dyb3VuZC1jb2xvciAwbXMgbGluZWFyJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknLFxuICAgIH0sXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICAnJjo6YWZ0ZXInOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5jb21tb24uYmxhY2ssXG4gICAgICAgIGhlaWdodDogJzJweCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pLFxuICAuLi4oaW5Gb2N1cyAmJiB7XG4gICAgJyY6OmFmdGVyJzoge1xuICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDEpJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeSxcbiAgICAgIGhlaWdodDogJzJweCcsXG4gICAgfSxcbiAgICAnJjpob3Zlcic6IHtcbiAgICAgICcmOjphZnRlcic6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBwcmltYXJ5LFxuICAgICAgfSxcbiAgICB9LFxuICB9KSxcbn0pKTtcblxuY29uc3QgQ2hpbGRyZW5Db250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiAhWydub1BhZGRpbmcnXS5pbmNsdWRlcyhwcm9wKSxcbn0pKCh7IG5vUGFkZGluZyB9KSA9PiAoe1xuICBwYWRkaW5nOiBub1BhZGRpbmcgPyAwIDogJzEwcHggMTZweCcsXG59KSk7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JBbmRUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLCBQcm9wVHlwZXMubm9kZV0pLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFNsYXRlUHJvcFR5cGVzLnZhbHVlLmlzUmVxdWlyZWQsXG4gICAgcGx1Z2luczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZ2V0Rm9jdXNlZFZhbHVlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRG9uZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRhdGFDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIHRvb2xiYXJSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgIGZvY3VzZWROb2RlOiBTbGF0ZVByb3BUeXBlcy5ub2RlLFxuICAgIHJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNhYmxlU2Nyb2xsYmFyOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNhYmxlVW5kZXJsaW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhdXRvV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIHBsdWdpblByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRvb2xiYXJPcHRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgcG9zaXRpb246IFByb3BUeXBlcy5vbmVPZihbJ2JvdHRvbScsICd0b3AnXSksXG4gICAgICBhbHdheXNWaXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGVycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgbm9Cb3JkZXI6IFByb3BUeXBlcy5hbnksXG4gICAgICBub1BhZGRpbmc6IFByb3BUeXBlcy5hbnksXG4gICAgfSksXG4gICAgZm9jdXNUb29sYmFyOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIG9uVG9vbGJhckZvY3VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uVG9vbGJhckJsdXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZG9uZUJ1dHRvblJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgdmFsdWUsXG4gICAgICBwbHVnaW5zLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBnZXRGb2N1c2VkVmFsdWUsXG4gICAgICBvbkRvbmUsXG4gICAgICBmb2N1c2VkTm9kZSxcbiAgICAgIGF1dG9XaWR0aCxcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgZGlzYWJsZVNjcm9sbGJhcixcbiAgICAgIGRpc2FibGVVbmRlcmxpbmUsXG4gICAgICBwbHVnaW5Qcm9wcyxcbiAgICAgIHRvb2xiYXJPcHRzLFxuICAgICAgb25EYXRhQ2hhbmdlLFxuICAgICAgdG9vbGJhclJlZixcbiAgICAgIGRvbmVCdXR0b25SZWYsXG4gICAgICBmb2N1c1Rvb2xiYXIsXG4gICAgICBvblRvb2xiYXJGb2N1cyxcbiAgICAgIG9uVG9vbGJhckJsdXIsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBsZXQgaW5Gb2N1cyA9IHZhbHVlLmlzRm9jdXNlZCB8fCAoZm9jdXNlZE5vZGUgIT09IG51bGwgJiYgZm9jdXNlZE5vZGUgIT09IHVuZGVmaW5lZCkgfHwgZm9jdXNUb29sYmFyO1xuXG4gICAgbGV0IGNsb25lZENoaWxkcmVuID0gY2hpbGRyZW47XG5cbiAgICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAnc3RyaW5nJykge1xuICAgICAgY2xvbmVkQ2hpbGRyZW4gPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgICAgcmVmOiAoZWwpID0+ICh0aGlzLmVkaXRvclJlZiA9IGVsKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvZygnW3JlbmRlcl0gaW5Gb2N1czogJywgaW5Gb2N1cywgJ3ZhbHVlLmlzRm9jdXNlZDonLCB2YWx1ZS5pc0ZvY3VzZWQsICdmb2N1c2VkIG5vZGU6ICcsIGZvY3VzZWROb2RlKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdFxuICAgICAgICBub0JvcmRlcj17dG9vbGJhck9wdHMgJiYgdG9vbGJhck9wdHMubm9Cb3JkZXJ9XG4gICAgICAgIGVycm9yPXt0b29sYmFyT3B0cyAmJiB0b29sYmFyT3B0cy5lcnJvcn1cbiAgICAgID5cbiAgICAgICAgPEVkaXRvckhvbGRlclxuICAgICAgICAgIGluRm9jdXM9e2luRm9jdXN9XG4gICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgIGRpc2FibGVVbmRlcmxpbmU9e2Rpc2FibGVVbmRlcmxpbmV9XG4gICAgICAgICAgZGlzYWJsZVNjcm9sbGJhcj17ZGlzYWJsZVNjcm9sbGJhcn1cbiAgICAgICAgPlxuICAgICAgICAgIDxDaGlsZHJlbkNvbnRhaW5lciBub1BhZGRpbmc9e3Rvb2xiYXJPcHRzICYmIHRvb2xiYXJPcHRzLm5vUGFkZGluZ30+XG4gICAgICAgICAgICB7Y2xvbmVkQ2hpbGRyZW59XG4gICAgICAgICAgPC9DaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgICAgPC9FZGl0b3JIb2xkZXI+XG5cbiAgICAgICAgPFRvb2xiYXJcbiAgICAgICAgICBhdXRvV2lkdGg9e2F1dG9XaWR0aH1cbiAgICAgICAgICBwbHVnaW5zPXtwbHVnaW5zfVxuICAgICAgICAgIGZvY3VzZWROb2RlPXtmb2N1c2VkTm9kZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgaXNGb2N1c2VkPXtpbkZvY3VzfVxuICAgICAgICAgIG9uQmx1cj17b25Ub29sYmFyQmx1cn1cbiAgICAgICAgICBvbkZvY3VzPXtvblRvb2xiYXJGb2N1c31cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgZ2V0Rm9jdXNlZFZhbHVlPXtnZXRGb2N1c2VkVmFsdWV9XG4gICAgICAgICAgb25Eb25lPXtvbkRvbmV9XG4gICAgICAgICAgb25EYXRhQ2hhbmdlPXtvbkRhdGFDaGFuZ2V9XG4gICAgICAgICAgdG9vbGJhclJlZj17dG9vbGJhclJlZn1cbiAgICAgICAgICBkb25lQnV0dG9uUmVmPXtkb25lQnV0dG9uUmVmfVxuICAgICAgICAgIHBsdWdpblByb3BzPXtwbHVnaW5Qcm9wc31cbiAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgIC8+XG4gICAgICA8L1Jvb3Q+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JBbmRUb29sYmFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0Es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