slate-angular 18.0.1 → 19.0.0-next.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 (63) hide show
  1. package/fesm2022/slate-angular.mjs +120 -130
  2. package/fesm2022/slate-angular.mjs.map +1 -1
  3. package/package.json +1 -3
  4. package/view/base.d.ts +4 -4
  5. package/view/container-item.d.ts +1 -1
  6. package/view/container.d.ts +1 -1
  7. package/esm2022/components/block-card/block-card.component.mjs +0 -33
  8. package/esm2022/components/children/children-outlet.component.mjs +0 -22
  9. package/esm2022/components/children/children.component.mjs +0 -23
  10. package/esm2022/components/editable/editable.component.mjs +0 -1266
  11. package/esm2022/components/element/default-element.component.mjs +0 -19
  12. package/esm2022/components/element/default-element.component.token.mjs +0 -3
  13. package/esm2022/components/element/element.component.mjs +0 -19
  14. package/esm2022/components/leaf/default-leaf.component.mjs +0 -30
  15. package/esm2022/components/leaf/token.mjs +0 -3
  16. package/esm2022/components/leaves/leaves.component.mjs +0 -25
  17. package/esm2022/components/string/default-string.component.mjs +0 -75
  18. package/esm2022/components/string/string.component.mjs +0 -108
  19. package/esm2022/components/string/template.component.mjs +0 -20
  20. package/esm2022/components/text/default-text.component.mjs +0 -22
  21. package/esm2022/components/text/token.mjs +0 -4
  22. package/esm2022/components/text/void-text.component.mjs +0 -32
  23. package/esm2022/custom-event/BeforeInputEventPlugin.mjs +0 -251
  24. package/esm2022/custom-event/DOMTopLevelEventTypes.mjs +0 -13
  25. package/esm2022/custom-event/FallbackCompositionState.mjs +0 -62
  26. package/esm2022/custom-event/before-input-polyfill.mjs +0 -13
  27. package/esm2022/module.mjs +0 -69
  28. package/esm2022/plugins/angular-editor.mjs +0 -610
  29. package/esm2022/plugins/with-angular.mjs +0 -217
  30. package/esm2022/public-api.mjs +0 -20
  31. package/esm2022/slate-angular.mjs +0 -5
  32. package/esm2022/types/clipboard.mjs +0 -2
  33. package/esm2022/types/error.mjs +0 -12
  34. package/esm2022/types/feature.mjs +0 -2
  35. package/esm2022/types/index.mjs +0 -5
  36. package/esm2022/types/view.mjs +0 -2
  37. package/esm2022/utils/block-card.mjs +0 -25
  38. package/esm2022/utils/clipboard/clipboard.mjs +0 -78
  39. package/esm2022/utils/clipboard/common.mjs +0 -42
  40. package/esm2022/utils/clipboard/data-transfer.mjs +0 -44
  41. package/esm2022/utils/clipboard/index.mjs +0 -5
  42. package/esm2022/utils/clipboard/navigator-clipboard.mjs +0 -59
  43. package/esm2022/utils/constants.mjs +0 -2
  44. package/esm2022/utils/dom.mjs +0 -165
  45. package/esm2022/utils/environment.mjs +0 -34
  46. package/esm2022/utils/global-normalize.mjs +0 -11
  47. package/esm2022/utils/hotkeys.mjs +0 -99
  48. package/esm2022/utils/index.mjs +0 -12
  49. package/esm2022/utils/key.mjs +0 -14
  50. package/esm2022/utils/lines.mjs +0 -46
  51. package/esm2022/utils/range-list.mjs +0 -29
  52. package/esm2022/utils/restore-dom.mjs +0 -33
  53. package/esm2022/utils/throttle.mjs +0 -18
  54. package/esm2022/utils/view.mjs +0 -8
  55. package/esm2022/utils/weak-maps.mjs +0 -40
  56. package/esm2022/view/base.mjs +0 -273
  57. package/esm2022/view/container-item.mjs +0 -108
  58. package/esm2022/view/container.mjs +0 -22
  59. package/esm2022/view/context-change.mjs +0 -13
  60. package/esm2022/view/context.mjs +0 -2
  61. package/esm2022/view/render/leaves-render.mjs +0 -107
  62. package/esm2022/view/render/list-render.mjs +0 -302
  63. package/esm2022/view/render/utils.mjs +0 -110
@@ -1,251 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import { TOP_BLUR, TOP_COMPOSITION_END, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN, TOP_TEXT_INPUT, TOP_PASTE } from './DOMTopLevelEventTypes';
8
- import { getData as FallbackCompositionStateGetData, reset as FallbackCompositionStateReset } from './FallbackCompositionState';
9
- const canUseDOM = !!(typeof window !== 'undefined' &&
10
- typeof window.document !== 'undefined' &&
11
- typeof window.document.createElement !== 'undefined');
12
- const END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
13
- const START_KEYCODE = 229;
14
- const canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;
15
- let documentMode = null;
16
- if (canUseDOM && 'documentMode' in document) {
17
- documentMode = document.documentMode;
18
- }
19
- // Webkit offers a very useful `textInput` event that can be used to
20
- // directly represent `beforeInput`. The IE `textinput` event is not as
21
- // useful, so we don't use it.
22
- const canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode;
23
- // In IE9+, we have access to composition events, but the data supplied
24
- // by the native compositionend event may be incorrect. Japanese ideographic
25
- // spaces, for instance (\u3000) are not recorded correctly.
26
- const useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || (documentMode && documentMode > 8 && documentMode <= 11));
27
- const SPACEBAR_CODE = 32;
28
- const SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);
29
- // Events and their corresponding property names.
30
- const eventTypes = {
31
- beforeInput: {
32
- phasedRegistrationNames: {
33
- bubbled: 'onBeforeInput',
34
- captured: 'onBeforeInputCapture'
35
- },
36
- dependencies: [TOP_COMPOSITION_END, TOP_KEY_PRESS, TOP_TEXT_INPUT, TOP_PASTE]
37
- }
38
- };
39
- // Track whether we've ever handled a keypress on the space key.
40
- let hasSpaceKeypress = false;
41
- /**
42
- * Return whether a native keypress event is assumed to be a command.
43
- * This is required because Firefox fires `keypress` events for key commands
44
- * (cut, copy, select-all, etc.) even though no character is inserted.
45
- */
46
- function isKeypressCommand(nativeEvent) {
47
- return ((nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&
48
- // ctrlKey && altKey is equivalent to AltGr, and is not a command.
49
- !(nativeEvent.ctrlKey && nativeEvent.altKey));
50
- }
51
- /**
52
- * Does our fallback mode think that this event is the end of composition?
53
- *
54
- */
55
- function isFallbackCompositionEnd(topLevelType, nativeEvent) {
56
- switch (topLevelType) {
57
- case TOP_KEY_UP:
58
- // Command keys insert or clear IME input.
59
- return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;
60
- case TOP_KEY_DOWN:
61
- // Expect IME keyCode on each keydown. If we get any other
62
- // code we must have exited earlier.
63
- return nativeEvent.keyCode !== START_KEYCODE;
64
- case TOP_KEY_PRESS:
65
- case TOP_MOUSE_DOWN:
66
- case TOP_BLUR:
67
- // Events are not possible without cancelling IME.
68
- return true;
69
- default:
70
- return false;
71
- }
72
- }
73
- /**
74
- * Google Input Tools provides composition data via a CustomEvent,
75
- * with the `data` property populated in the `detail` object. If this
76
- * is available on the event object, use it. If not, this is a plain
77
- * composition event and we have nothing special to extract.
78
- *
79
- */
80
- function getDataFromCustomEvent(nativeEvent) {
81
- const detail = nativeEvent.detail;
82
- if (typeof detail === 'object' && 'data' in detail) {
83
- return detail.data;
84
- }
85
- return null;
86
- }
87
- /**
88
- * Check if a composition event was triggered by Korean IME.
89
- * Our fallback mode does not work well with IE's Korean IME,
90
- * so just use native composition events when Korean IME is used.
91
- * Although CompositionEvent.locale property is deprecated,
92
- * it is available in IE, where our fallback mode is enabled.
93
- *
94
- */
95
- function isUsingKoreanIME(nativeEvent) {
96
- return nativeEvent.locale === 'ko';
97
- }
98
- // Track the current IME composition status, if any.
99
- let isComposing = false;
100
- function getNativeBeforeInputChars(topLevelType, nativeEvent) {
101
- switch (topLevelType) {
102
- case TOP_COMPOSITION_END:
103
- return getDataFromCustomEvent(nativeEvent);
104
- case TOP_KEY_PRESS:
105
- /**
106
- * If native `textInput` events are available, our goal is to make
107
- * use of them. However, there is a special case: the spacebar key.
108
- * In Webkit, preventing default on a spacebar `textInput` event
109
- * cancels character insertion, but it *also* causes the browser
110
- * to fall back to its default spacebar behavior of scrolling the
111
- * page.
112
- *
113
- * Tracking at:
114
- * https://code.google.com/p/chromium/issues/detail?id=355103
115
- *
116
- * To avoid this issue, use the keypress event as if no `textInput`
117
- * event is available.
118
- */
119
- const which = nativeEvent.which;
120
- if (which !== SPACEBAR_CODE) {
121
- return null;
122
- }
123
- hasSpaceKeypress = true;
124
- return SPACEBAR_CHAR;
125
- case TOP_TEXT_INPUT:
126
- // Record the characters to be added to the DOM.
127
- const chars = nativeEvent.data;
128
- // If it's a spacebar character, assume that we have already handled
129
- // it at the keypress level and bail immediately. Android Chrome
130
- // doesn't give us keycodes, so we need to ignore it.
131
- if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
132
- return null;
133
- }
134
- return chars;
135
- default:
136
- // For other native event types, do nothing.
137
- return null;
138
- }
139
- }
140
- /**
141
- * For browsers that do not provide the `textInput` event, extract the
142
- * appropriate string to use for SyntheticInputEvent.
143
- *
144
- */
145
- function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
146
- // If we are currently composing (IME) and using a fallback to do so,
147
- // try to extract the composed characters from the fallback object.
148
- // If composition event is available, we extract a string only at
149
- // compositionevent, otherwise extract it at fallback events.
150
- if (isComposing) {
151
- if (topLevelType === TOP_COMPOSITION_END || (!canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent))) {
152
- const chars = FallbackCompositionStateGetData();
153
- FallbackCompositionStateReset();
154
- isComposing = false;
155
- return chars;
156
- }
157
- return null;
158
- }
159
- switch (topLevelType) {
160
- case TOP_PASTE:
161
- // If a paste event occurs after a keypress, throw out the input
162
- // chars. Paste events should not lead to BeforeInput events.
163
- return null;
164
- case TOP_KEY_PRESS:
165
- /**
166
- * As of v27, Firefox may fire keypress events even when no character
167
- * will be inserted. A few possibilities:
168
- *
169
- * - `which` is `0`. Arrow keys, Esc key, etc.
170
- *
171
- * - `which` is the pressed key code, but no char is available.
172
- * Ex: 'AltGr + d` in Polish. There is no modified character for
173
- * this key combination and no character is inserted into the
174
- * document, but FF fires the keypress for char code `100` anyway.
175
- * No `input` event will occur.
176
- *
177
- * - `which` is the pressed key code, but a command combination is
178
- * being used. Ex: `Cmd+C`. No character is inserted, and no
179
- * `input` event will occur.
180
- */
181
- if (!isKeypressCommand(nativeEvent)) {
182
- // IE fires the `keypress` event when a user types an emoji via
183
- // Touch keyboard of Windows. In such a case, the `char` property
184
- // holds an emoji character like `\uD83D\uDE0A`. Because its length
185
- // is 2, the property `which` does not represent an emoji correctly.
186
- // In such a case, we directly return the `char` property instead of
187
- // using `which`.
188
- if (nativeEvent.char && nativeEvent.char.length > 1) {
189
- return nativeEvent.char;
190
- }
191
- else if (nativeEvent.which) {
192
- return String.fromCharCode(nativeEvent.which);
193
- }
194
- }
195
- return null;
196
- case TOP_COMPOSITION_END:
197
- return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;
198
- default:
199
- return null;
200
- }
201
- }
202
- /**
203
- * Extract a SyntheticInputEvent for `beforeInput`, based on either native
204
- * `textInput` or fallback behavior.
205
- *
206
- */
207
- export function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
208
- let chars;
209
- if (canUseTextInputEvent) {
210
- chars = getNativeBeforeInputChars(topLevelType, nativeEvent);
211
- }
212
- else {
213
- chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);
214
- }
215
- // If no characters are being inserted, no BeforeInput event should
216
- // be fired.
217
- if (!chars) {
218
- return null;
219
- }
220
- const beforeInputEvent = new BeforeInputEvent();
221
- beforeInputEvent.data = chars;
222
- beforeInputEvent.nativeEvent = nativeEvent;
223
- return beforeInputEvent;
224
- }
225
- /**
226
- * Create an `onBeforeInput` event to match
227
- * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.
228
- *
229
- * This event plugin is based on the native `textInput` event
230
- * available in Chrome, Safari, Opera, and IE. This event fires after
231
- * `onKeyPress` and `onCompositionEnd`, but before `onInput`.
232
- *
233
- * `beforeInput` is spec'd but not implemented in any browsers, and
234
- * the `input` event does not provide any useful information about what has
235
- * actually been added, contrary to the spec. Thus, `textInput` is the best
236
- * available event to identify the characters that have actually been inserted
237
- * into the target node.
238
- *
239
- * This plugin is also responsible for emitting `composition` events, thus
240
- * allowing us to share composition fallback code for both `beforeInput` and
241
- * `composition` event types.
242
- */
243
- const BeforeInputEventPlugin = {
244
- extractEvents: (topLevelType, targetInst, nativeEvent, nativeEventTarget) => {
245
- return extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);
246
- }
247
- };
248
- export class BeforeInputEvent {
249
- }
250
- export default BeforeInputEventPlugin;
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVmb3JlSW5wdXRFdmVudFBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jdXN0b20tZXZlbnQvQmVmb3JlSW5wdXRFdmVudFBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFDSCxRQUFRLEVBRVIsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNaLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILE9BQU8sSUFBSSwrQkFBK0IsRUFFMUMsS0FBSyxJQUFJLDZCQUE2QixFQUN6QyxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sU0FBUyxHQUFZLENBQUMsQ0FBQyxDQUN6QixPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxXQUFXO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUN2RCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtBQUNoRSxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIsTUFBTSxzQkFBc0IsR0FBRyxTQUFTLElBQUksa0JBQWtCLElBQUksTUFBTSxDQUFDO0FBRXpFLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztBQUN4QixJQUFJLFNBQVMsSUFBSSxjQUFjLElBQUksUUFBUSxFQUFFLENBQUM7SUFDMUMsWUFBWSxHQUFJLFFBQWdCLENBQUMsWUFBWSxDQUFDO0FBQ2xELENBQUM7QUFFRCxvRUFBb0U7QUFDcEUsdUVBQXVFO0FBQ3ZFLDhCQUE4QjtBQUM5QixNQUFNLG9CQUFvQixHQUFHLFNBQVMsSUFBSSxXQUFXLElBQUksTUFBTSxJ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QUM7QUFDNUIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sc0JBQXNCLEdBQUc7SUFDM0IsYUFBYSxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsRUFBRTtRQUN4RSxPQUFPLHVCQUF1QixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLE9BQU8sZ0JBQWdCO0NBRzVCO0FBQ0QsZUFBZSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBUT1BfQkxVUixcbiAgICBUT1BfQ09NUE9TSVRJT05fU1RBUlQsXG4gICAgVE9QX0NPTVBPU0lUSU9OX0VORCxcbiAgICBUT1BfQ09NUE9TSVRJT05fVVBEQVRFLFxuICAgIFRPUF9LRVlfRE9XTixcbiAgICBUT1BfS0VZX1BSRVNTLFxuICAgIFRPUF9LRVlfVVAsXG4gICAgVE9QX01PVVNFX0RPV04sXG4gICAgVE9QX1RFWFRfSU5QVVQsXG4gICAgVE9QX1BBU1RFXG59IGZyb20gJy4vRE9NVG9wTGV2ZWxFdmVudFR5cGVzJztcbmltcG9ydCB7XG4gICAgZ2V0RGF0YSBhcyBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGVHZXREYXRhLFxuICAgIGluaXRpYWxpemUgYXMgRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlSW5pdGlhbGl6ZSxcbiAgICByZXNldCBhcyBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGVSZXNldFxufSBmcm9tICcuL0ZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZSc7XG5cbmNvbnN0IGNhblVzZURPTTogYm9vbGVhbiA9ICEhKFxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgIT09ICd1bmRlZmluZWQnXG4pO1xuXG5jb25zdCBFTkRfS0VZQ09ERVMgPSBbOSwgMTMsIDI3LCAzMl07IC8vIFRhYiwgUmV0dXJuLCBFc2MsIFNwYWNlXG5jb25zdCBTVEFSVF9LRVlDT0RFID0gMjI5O1xuXG5jb25zdCBjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ID0gY2FuVXNlRE9NICYmICdDb21wb3NpdGlvbkV2ZW50JyBpbiB3aW5kb3c7XG5cbmxldCBkb2N1bWVudE1vZGUgPSBudWxsO1xuaWYgKGNhblVzZURPTSAmJiAnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCkge1xuICAgIGRvY3VtZW50TW9kZSA9IChkb2N1bWVudCBhcyBhbnkpLmRvY3VtZW50TW9kZTtcbn1cblxuLy8gV2Via2l0IG9mZmVycyBhIHZlcnkgdXNlZnVsIGB0ZXh0SW5wdXRgIGV2ZW50IHRoYXQgY2FuIGJlIHVzZWQgdG9cbi8vIGRpcmVjdGx5IHJlcHJlc2VudCBgYmVmb3JlSW5wdXRgLiBUaGUgSUUgYHRleHRpbnB1dGAgZXZlbnQgaXMgbm90IGFzXG4vLyB1c2VmdWwsIHNvIHdlIGRvbid0IHVzZSBpdC5cbmNvbnN0IGNhblVzZVRleHRJbnB1dEV2ZW50ID0gY2FuVXNlRE9NICYmICdUZXh0RXZlbnQnIGluIHdpbmRvdyAmJiAhZG9jdW1lbnRNb2RlO1xuXG4vLyBJbiBJRTkrLCB3ZSBoYXZlIGFjY2VzcyB0byBjb21wb3NpdGlvbiBldmVudHMsIGJ1dCB0aGUgZGF0YSBzdXBwbGllZFxuLy8gYnkgdGhlIG5hdGl2ZSBjb21wb3NpdGlvbmVuZCBldmVudCBtYXkgYmUgaW5jb3JyZWN0LiBKYXBhbmVzZSBpZGVvZ3JhcGhpY1xuLy8gc3BhY2VzLCBmb3IgaW5zdGFuY2UgKFxcdTMwMDApIGFyZSBub3QgcmVjb3JkZWQgY29ycmVjdGx5LlxuY29uc3QgdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgPSBjYW5Vc2VET00gJiYgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50IHx8IChkb2N1bWVudE1vZGUgJiYgZG9jdW1lbnRNb2RlID4gOCAmJiBkb2N1bWVudE1vZGUgPD0gMTEpKTtcblxuY29uc3QgU1BBQ0VCQVJfQ09ERSA9IDMyO1xuY29uc3QgU1BBQ0VCQVJfQ0hBUiA9IFN0cmluZy5mcm9tQ2hhckNvZGUoU1BBQ0VCQVJfQ09ERSk7XG5cbi8vIEV2ZW50cyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBuYW1lcy5cbmNvbnN0IGV2ZW50VHlwZXMgPSB7XG4gICAgYmVmb3JlSW5wdXQ6IHtcbiAgICAgICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgICAgICAgIGJ1YmJsZWQ6ICdvbkJlZm9yZUlucHV0JyxcbiAgICAgICAgICAgIGNhcHR1cmVkOiAnb25CZWZvcmVJbnB1dENhcHR1cmUnXG4gICAgICAgIH0sXG4gICAgICAgIGRlcGVuZGVuY2llczogW1RPUF9DT01QT1NJVElPTl9FTkQsIFRPUF9LRVlfUFJFU1MsIFRPUF9URVhUX0lOUFVULCBUT1BfUEFTVEVdXG4gICAgfVxufTtcblxuLy8gVHJhY2sgd2hldGhlciB3ZSd2ZSBldmVyIGhhbmRsZWQgYSBrZXlwcmVzcyBvbiB0aGUgc3BhY2Uga2V5LlxubGV0IGhhc1NwYWNlS2V5cHJlc3MgPSBmYWxzZTtcblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciBhIG5hdGl2ZSBrZXlwcmVzcyBldmVudCBpcyBhc3N1bWVkIHRvIGJlIGEgY29tbWFuZC5cbiAqIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBGaXJlZm94IGZpcmVzIGBrZXlwcmVzc2AgZXZlbnRzIGZvciBrZXkgY29tbWFuZHNcbiAqIChjdXQsIGNvcHksIHNlbGVjdC1hbGwsIGV0Yy4pIGV2ZW4gdGhvdWdoIG5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlwcmVzc0NvbW1hbmQobmF0aXZlRXZlbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICAobmF0aXZlRXZlbnQuY3RybEtleSB8fCBuYXRpdmVFdmVudC5hbHRLZXkgfHwgbmF0aXZlRXZlbnQubWV0YUtleSkgJiZcbiAgICAgICAgLy8gY3RybEtleSAmJiBhbHRLZXkgaXMgZXF1aXZhbGVudCB0byBBbHRHciwgYW5kIGlzIG5vdCBhIGNvbW1hbmQuXG4gICAgICAgICEobmF0aXZlRXZlbnQuY3RybEtleSAmJiBuYXRpdmVFdmVudC5hbHRLZXkpXG4gICAgKTtcbn1cblxuLyoqXG4gKiBEb2VzIG91ciBmYWxsYmFjayBtb2RlIHRoaW5rIHRoYXQgdGhpcyBldmVudCBpcyB0aGUgZW5kIG9mIGNvbXBvc2l0aW9uP1xuICpcbiAqL1xuZnVuY3Rpb24gaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpIHtcbiAgICBzd2l0Y2ggKHRvcExldmVsVHlwZSkge1xuICAgICAgICBjYXNlIFRPUF9LRVlfVVA6XG4gICAgICAgICAgICAvLyBDb21tYW5kIGtleXMgaW5zZXJ0IG9yIGNsZWFyIElNRSBpbnB1dC5cbiAgICAgICAgICAgIHJldHVybiBFTkRfS0VZQ09ERVMuaW5kZXhPZihuYXRpdmVFdmVudC5rZXlDb2RlKSAhPT0gLTE7XG4gICAgICAgIGNhc2UgVE9QX0tFWV9ET1dOOlxuICAgICAgICAgICAgLy8gRXhwZWN0IElNRSBrZXlDb2RlIG9uIGVhY2gga2V5ZG93bi4gSWYgd2UgZ2V0IGFueSBvdGhlclxuICAgICAgICAgICAgLy8gY29kZSB3ZSBtdXN0IGhhdmUgZXhpdGVkIGVhcmxpZXIuXG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlRXZlbnQua2V5Q29kZSAhPT0gU1RBUlRfS0VZQ09ERTtcbiAgICAgICAgY2FzZSBUT1BfS0VZX1BSRVNTOlxuICAgICAgICBjYXNlIFRPUF9NT1VTRV9ET1dOOlxuICAgICAgICBjYXNlIFRPUF9CTFVSOlxuICAgICAgICAgICAgLy8gRXZlbnRzIGFyZSBub3QgcG9zc2libGUgd2l0aG91dCBjYW5jZWxsaW5nIElNRS5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBHb29nbGUgSW5wdXQgVG9vbHMgcHJvdmlkZXMgY29tcG9zaXRpb24gZGF0YSB2aWEgYSBDdXN0b21FdmVudCxcbiAqIHdpdGggdGhlIGBkYXRhYCBwcm9wZXJ0eSBwb3B1bGF0ZWQgaW4gdGhlIGBkZXRhaWxgIG9iamVjdC4gSWYgdGhpc1xuICogaXMgYXZhaWxhYmxlIG9uIHRoZSBldmVudCBvYmplY3QsIHVzZSBpdC4gSWYgbm90LCB0aGlzIGlzIGEgcGxhaW5cbiAqIGNvbXBvc2l0aW9uIGV2ZW50IGFuZCB3ZSBoYXZlIG5vdGhpbmcgc3BlY2lhbCB0byBleHRyYWN0LlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCkge1xuICAgIGNvbnN0IGRldGFpbCA9IG5hdGl2ZUV2ZW50LmRldGFpbDtcbiAgICBpZiAodHlwZW9mIGRldGFpbCA9PT0gJ29iamVjdCcgJiYgJ2RhdGEnIGluIGRldGFpbCkge1xuICAgICAgICByZXR1cm4gZGV0YWlsLmRhdGE7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY29tcG9zaXRpb24gZXZlbnQgd2FzIHRyaWdnZXJlZCBieSBLb3JlYW4gSU1FLlxuICogT3VyIGZhbGxiYWNrIG1vZGUgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggSUUncyBLb3JlYW4gSU1FLFxuICogc28ganVzdCB1c2UgbmF0aXZlIGNvbXBvc2l0aW9uIGV2ZW50cyB3aGVuIEtvcmVhbiBJTUUgaXMgdXNlZC5cbiAqIEFsdGhvdWdoIENvbXBvc2l0aW9uRXZlbnQubG9jYWxlIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQsXG4gKiBpdCBpcyBhdmFpbGFibGUgaW4gSUUsIHdoZXJlIG91ciBmYWxsYmFjayBtb2RlIGlzIGVuYWJsZWQuXG4gKlxuICovXG5mdW5jdGlvbiBpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmxvY2FsZSA9PT0gJ2tvJztcbn1cblxuLy8gVHJhY2sgdGhlIGN1cnJlbnQgSU1FIGNvbXBvc2l0aW9uIHN0YXR1cywgaWYgYW55LlxubGV0IGlzQ29tcG9zaW5nID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGdldE5hdGl2ZUJlZm9yZUlucHV0Q2hhcnModG9wTGV2ZWxUeXBlOiBhbnksIG5hdGl2ZUV2ZW50KSB7XG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgICAgY2FzZSBUT1BfQ09NUE9TSVRJT05fRU5EOlxuICAgICAgICAgICAgcmV0dXJuIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpO1xuICAgICAgICBjYXNlIFRPUF9LRVlfUFJFU1M6XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIG5hdGl2ZSBgdGV4dElucHV0YCBldmVudHMgYXJlIGF2YWlsYWJsZSwgb3VyIGdvYWwgaXMgdG8gbWFrZVxuICAgICAgICAgICAgICogdXNlIG9mIHRoZW0uIEhvd2V2ZXIsIHRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlOiB0aGUgc3BhY2ViYXIga2V5LlxuICAgICAgICAgICAgICogSW4gV2Via2l0LCBwcmV2ZW50aW5nIGRlZmF1bHQgb24gYSBzcGFjZWJhciBgdGV4dElucHV0YCBldmVudFxuICAgICAgICAgICAgICogY2FuY2VscyBjaGFyYWN0ZXIgaW5zZXJ0aW9uLCBidXQgaXQgKmFsc28qIGNhdXNlcyB0aGUgYnJvd3NlclxuICAgICAgICAgICAgICogdG8gZmFsbCBiYWNrIHRvIGl0cyBkZWZhdWx0IHNwYWNlYmFyIGJlaGF2aW9yIG9mIHNjcm9sbGluZyB0aGVcbiAgICAgICAgICAgICAqIHBhZ2UuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVHJhY2tpbmcgYXQ6XG4gICAgICAgICAgICAgKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MzU1MTAzXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVG8gYXZvaWQgdGhpcyBpc3N1ZSwgdXNlIHRoZSBrZXlwcmVzcyBldmVudCBhcyBpZiBubyBgdGV4dElucHV0YFxuICAgICAgICAgICAgICogZXZlbnQgaXMgYXZhaWxhYmxlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCB3aGljaCA9IG5hdGl2ZUV2ZW50LndoaWNoO1xuICAgICAgICAgICAgaWYgKHdoaWNoICE9PSBTUEFDRUJBUl9DT0RFKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhhc1NwYWNlS2V5cHJlc3MgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFNQQUNFQkFSX0NIQVI7XG5cbiAgICAgICAgY2FzZSBUT1BfVEVYVF9JTlBVVDpcbiAgICAgICAgICAgIC8vIFJlY29yZCB0aGUgY2hhcmFjdGVycyB0byBiZSBhZGRlZCB0byB0aGUgRE9NLlxuICAgICAgICAgICAgY29uc3QgY2hhcnMgPSBuYXRpdmVFdmVudC5kYXRhO1xuXG4gICAgICAgICAgICAvLyBJZiBpdCdzIGEgc3BhY2ViYXIgY2hhcmFjdGVyLCBhc3N1bWUgdGhhdCB3ZSBoYXZlIGFscmVhZHkgaGFuZGxlZFxuICAgICAgICAgICAgLy8gaXQgYXQgdGhlIGtleXByZXNzIGxldmVsIGFuZCBiYWlsIGltbWVkaWF0ZWx5LiBBbmRyb2lkIENocm9tZVxuICAgICAgICAgICAgLy8gZG9lc24ndCBnaXZlIHVzIGtleWNvZGVzLCBzbyB3ZSBuZWVkIHRvIGlnbm9yZSBpdC5cbiAgICAgICAgICAgIGlmIChjaGFycyA9PT0gU1BBQ0VCQVJfQ0hBUiAmJiBoYXNTcGFjZUtleXByZXNzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGFycztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRm9yIG90aGVyIG5hdGl2ZSBldmVudCB0eXBlcywgZG8gbm90aGluZy5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqXG4gKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3QgcHJvdmlkZSB0aGUgYHRleHRJbnB1dGAgZXZlbnQsIGV4dHJhY3QgdGhlXG4gKiBhcHByb3ByaWF0ZSBzdHJpbmcgdG8gdXNlIGZvciBTeW50aGV0aWNJbnB1dEV2ZW50LlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZTogYW55LCBuYXRpdmVFdmVudCkge1xuICAgIC8vIElmIHdlIGFyZSBjdXJyZW50bHkgY29tcG9zaW5nIChJTUUpIGFuZCB1c2luZyBhIGZhbGxiYWNrIHRvIGRvIHNvLFxuICAgIC8vIHRyeSB0byBleHRyYWN0IHRoZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGZyb20gdGhlIGZhbGxiYWNrIG9iamVjdC5cbiAgICAvLyBJZiBjb21wb3NpdGlvbiBldmVudCBpcyBhdmFpbGFibGUsIHdlIGV4dHJhY3QgYSBzdHJpbmcgb25seSBhdFxuICAgIC8vIGNvbXBvc2l0aW9uZXZlbnQsIG90aGVyd2lzZSBleHRyYWN0IGl0IGF0IGZhbGxiYWNrIGV2ZW50cy5cbiAgICBpZiAoaXNDb21wb3NpbmcpIHtcbiAgICAgICAgaWYgKHRvcExldmVsVHlwZSA9PT0gVE9QX0NPTVBPU0lUSU9OX0VORCB8fCAoIWNhblVzZUNvbXBvc2l0aW9uRXZlbnQgJiYgaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpKSkge1xuICAgICAgICAgICAgY29uc3QgY2hhcnMgPSBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGVHZXREYXRhKCk7XG4gICAgICAgICAgICBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGVSZXNldCgpO1xuICAgICAgICAgICAgaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBjaGFycztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRvcExldmVsVHlwZSkge1xuICAgICAgICBjYXNlIFRPUF9QQVNURTpcbiAgICAgICAgICAgIC8vIElmIGEgcGFzdGUgZXZlbnQgb2NjdXJzIGFmdGVyIGEga2V5cHJlc3MsIHRocm93IG91dCB0aGUgaW5wdXRcbiAgICAgICAgICAgIC8vIGNoYXJzLiBQYXN0ZSBldmVudHMgc2hvdWxkIG5vdCBsZWFkIHRvIEJlZm9yZUlucHV0IGV2ZW50cy5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFRPUF9LRVlfUFJFU1M6XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFzIG9mIHYyNywgRmlyZWZveCBtYXkgZmlyZSBrZXlwcmVzcyBldmVudHMgZXZlbiB3aGVuIG5vIGNoYXJhY3RlclxuICAgICAgICAgICAgICogd2lsbCBiZSBpbnNlcnRlZC4gQSBmZXcgcG9zc2liaWxpdGllczpcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiAtIGB3aGljaGAgaXMgYDBgLiBBcnJvdyBrZXlzLCBFc2Mga2V5LCBldGMuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogLSBgd2hpY2hgIGlzIHRoZSBwcmVzc2VkIGtleSBjb2RlLCBidXQgbm8gY2hhciBpcyBhdmFpbGFibGUuXG4gICAgICAgICAgICAgKiAgIEV4OiAnQWx0R3IgKyBkYCBpbiBQb2xpc2guIFRoZXJlIGlzIG5vIG1vZGlmaWVkIGNoYXJhY3RlciBmb3JcbiAgICAgICAgICAgICAqICAgdGhpcyBrZXkgY29tYmluYXRpb24gYW5kIG5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCBpbnRvIHRoZVxuICAgICAgICAgICAgICogICBkb2N1bWVudCwgYnV0IEZGIGZpcmVzIHRoZSBrZXlwcmVzcyBmb3IgY2hhciBjb2RlIGAxMDBgIGFueXdheS5cbiAgICAgICAgICAgICAqICAgTm8gYGlucHV0YCBldmVudCB3aWxsIG9jY3VyLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IGEgY29tbWFuZCBjb21iaW5hdGlvbiBpc1xuICAgICAgICAgICAgICogICBiZWluZyB1c2VkLiBFeDogYENtZCtDYC4gTm8gY2hhcmFjdGVyIGlzIGluc2VydGVkLCBhbmQgbm9cbiAgICAgICAgICAgICAqICAgYGlucHV0YCBldmVudCB3aWxsIG9jY3VyLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIWlzS2V5cHJlc3NDb21tYW5kKG5hdGl2ZUV2ZW50KSkge1xuICAgICAgICAgICAgICAgIC8vIElFIGZpcmVzIHRoZSBga2V5cHJlc3NgIGV2ZW50IHdoZW4gYSB1c2VyIHR5cGVzIGFuIGVtb2ppIHZpYVxuICAgICAgICAgICAgICAgIC8vIFRvdWNoIGtleWJvYXJkIG9mIFdpbmRvd3MuICBJbiBzdWNoIGEgY2FzZSwgdGhlIGBjaGFyYCBwcm9wZXJ0eVxuICAgICAgICAgICAgICAgIC8vIGhvbGRzIGFuIGVtb2ppIGNoYXJhY3RlciBsaWtlIGBcXHVEODNEXFx1REUwQWAuICBCZWNhdXNlIGl0cyBsZW5ndGhcbiAgICAgICAgICAgICAgICAvLyBpcyAyLCB0aGUgcHJvcGVydHkgYHdoaWNoYCBkb2VzIG5vdCByZXByZXNlbnQgYW4gZW1vamkgY29ycmVjdGx5LlxuICAgICAgICAgICAgICAgIC8vIEluIHN1Y2ggYSBjYXNlLCB3ZSBkaXJlY3RseSByZXR1cm4gdGhlIGBjaGFyYCBwcm9wZXJ0eSBpbnN0ZWFkIG9mXG4gICAgICAgICAgICAgICAgLy8gdXNpbmcgYHdoaWNoYC5cbiAgICAgICAgICAgICAgICBpZiAobmF0aXZlRXZlbnQuY2hhciAmJiBuYXRpdmVFdmVudC5jaGFyLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmNoYXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYXRpdmVFdmVudC53aGljaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShuYXRpdmVFdmVudC53aGljaCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgVE9QX0NPTVBPU0lUSU9OX0VORDpcbiAgICAgICAgICAgIHJldHVybiB1c2VGYWxsYmFja0NvbXBvc2l0aW9uRGF0YSAmJiAhaXNVc2luZ0tvcmVhbklNRShuYXRpdmVFdmVudCkgPyBudWxsIDogbmF0aXZlRXZlbnQuZGF0YTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0IGEgU3ludGhldGljSW5wdXRFdmVudCBmb3IgYGJlZm9yZUlucHV0YCwgYmFzZWQgb24gZWl0aGVyIG5hdGl2ZVxuICogYHRleHRJbnB1dGAgb3IgZmFsbGJhY2sgYmVoYXZpb3IuXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEJlZm9yZUlucHV0RXZlbnQodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICBsZXQgY2hhcnM7XG5cbiAgICBpZiAoY2FuVXNlVGV4dElucHV0RXZlbnQpIHtcbiAgICAgICAgY2hhcnMgPSBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYXJzID0gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpO1xuICAgIH1cblxuICAgIC8vIElmIG5vIGNoYXJhY3RlcnMgYXJlIGJlaW5nIGluc2VydGVkLCBubyBCZWZvcmVJbnB1dCBldmVudCBzaG91bGRcbiAgICAvLyBiZSBmaXJlZC5cbiAgICBpZiAoIWNoYXJzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGJlZm9yZUlucHV0RXZlbnQgPSBuZXcgQmVmb3JlSW5wdXRFdmVudCgpO1xuICAgIGJlZm9yZUlucHV0RXZlbnQuZGF0YSA9IGNoYXJzO1xuICAgIGJlZm9yZUlucHV0RXZlbnQubmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICByZXR1cm4gYmVmb3JlSW5wdXRFdmVudDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYG9uQmVmb3JlSW5wdXRgIGV2ZW50IHRvIG1hdGNoXG4gKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL1dELURPTS1MZXZlbC0zLUV2ZW50cy0yMDEzMTEwNS8jZXZlbnRzLWlucHV0ZXZlbnRzLlxuICpcbiAqIFRoaXMgZXZlbnQgcGx1Z2luIGlzIGJhc2VkIG9uIHRoZSBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRcbiAqIGF2YWlsYWJsZSBpbiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEsIGFuZCBJRS4gVGhpcyBldmVudCBmaXJlcyBhZnRlclxuICogYG9uS2V5UHJlc3NgIGFuZCBgb25Db21wb3NpdGlvbkVuZGAsIGJ1dCBiZWZvcmUgYG9uSW5wdXRgLlxuICpcbiAqIGBiZWZvcmVJbnB1dGAgaXMgc3BlYydkIGJ1dCBub3QgaW1wbGVtZW50ZWQgaW4gYW55IGJyb3dzZXJzLCBhbmRcbiAqIHRoZSBgaW5wdXRgIGV2ZW50IGRvZXMgbm90IHByb3ZpZGUgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGhhc1xuICogYWN0dWFsbHkgYmVlbiBhZGRlZCwgY29udHJhcnkgdG8gdGhlIHNwZWMuIFRodXMsIGB0ZXh0SW5wdXRgIGlzIHRoZSBiZXN0XG4gKiBhdmFpbGFibGUgZXZlbnQgdG8gaWRlbnRpZnkgdGhlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGFjdHVhbGx5IGJlZW4gaW5zZXJ0ZWRcbiAqIGludG8gdGhlIHRhcmdldCBub2RlLlxuICpcbiAqIFRoaXMgcGx1Z2luIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGVtaXR0aW5nIGBjb21wb3NpdGlvbmAgZXZlbnRzLCB0aHVzXG4gKiBhbGxvd2luZyB1cyB0byBzaGFyZSBjb21wb3NpdGlvbiBmYWxsYmFjayBjb2RlIGZvciBib3RoIGBiZWZvcmVJbnB1dGAgYW5kXG4gKiBgY29tcG9zaXRpb25gIGV2ZW50IHR5cGVzLlxuICovXG5jb25zdCBCZWZvcmVJbnB1dEV2ZW50UGx1Z2luID0ge1xuICAgIGV4dHJhY3RFdmVudHM6ICh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkgPT4ge1xuICAgICAgICByZXR1cm4gZXh0cmFjdEJlZm9yZUlucHV0RXZlbnQodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBCZWZvcmVJbnB1dEV2ZW50IHtcbiAgICBkYXRhOiBzdHJpbmc7XG4gICAgbmF0aXZlRXZlbnQ6IEV2ZW50O1xufVxuZXhwb3J0IGRlZmF1bHQgQmVmb3JlSW5wdXRFdmVudFBsdWdpbjtcbiJdfQ==
@@ -1,13 +0,0 @@
1
- export const TOP_BLUR = 'blur';
2
- export const TOP_COMPOSITION_END = 'compositionend';
3
- export const TOP_COMPOSITION_START = 'compositionstart';
4
- export const TOP_COMPOSITION_UPDATE = 'compositionupdate';
5
- export const TOP_KEY_DOWN = 'keydown';
6
- export const TOP_KEY_PRESS = 'keypress';
7
- export const TOP_KEY_UP = 'keyup';
8
- export const TOP_MOUSE_DOWN = 'mousedown';
9
- export const TOP_MOUSE_MOVE = 'mousemove';
10
- export const TOP_MOUSE_OUT = 'mouseout';
11
- export const TOP_TEXT_INPUT = 'textInput';
12
- export const TOP_PASTE = 'paste';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRE9NVG9wTGV2ZWxFdmVudFR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS1ldmVudC9ET01Ub3BMZXZlbEV2ZW50VHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVE9QX0JMVVIgPSAnYmx1cic7XG5leHBvcnQgY29uc3QgVE9QX0NPTVBPU0lUSU9OX0VORCA9ICdjb21wb3NpdGlvbmVuZCc7XG5leHBvcnQgY29uc3QgVE9QX0NPTVBPU0lUSU9OX1NUQVJUID0gJ2NvbXBvc2l0aW9uc3RhcnQnO1xuZXhwb3J0IGNvbnN0IFRPUF9DT01QT1NJVElPTl9VUERBVEUgPSAnY29tcG9zaXRpb251cGRhdGUnO1xuZXhwb3J0IGNvbnN0IFRPUF9LRVlfRE9XTiA9ICdrZXlkb3duJztcbmV4cG9ydCBjb25zdCBUT1BfS0VZX1BSRVNTID0gJ2tleXByZXNzJztcbmV4cG9ydCBjb25zdCBUT1BfS0VZX1VQID0gJ2tleXVwJztcbmV4cG9ydCBjb25zdCBUT1BfTU9VU0VfRE9XTiA9ICdtb3VzZWRvd24nO1xuZXhwb3J0IGNvbnN0IFRPUF9NT1VTRV9NT1ZFID0gJ21vdXNlbW92ZSc7XG5leHBvcnQgY29uc3QgVE9QX01PVVNFX09VVCA9ICdtb3VzZW91dCc7XG5leHBvcnQgY29uc3QgVE9QX1RFWFRfSU5QVVQgPSAndGV4dElucHV0JztcbmV4cG9ydCBjb25zdCBUT1BfUEFTVEUgPSAncGFzdGUnO1xuIl19
@@ -1,62 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- /**
8
- * These variables store information about text content of a target node,
9
- * allowing comparison of content before and after a given event.
10
- *
11
- * Identify the node where selection currently begins, then observe
12
- * both its text content and its current position in the DOM. Since the
13
- * browser may natively replace the target node during composition, we can
14
- * use its position to find its replacement.
15
- *
16
- *
17
- */
18
- let root = null;
19
- let startText = null;
20
- let fallbackText = null;
21
- export function initialize(nativeEventTarget) {
22
- root = nativeEventTarget;
23
- startText = getText();
24
- return true;
25
- }
26
- export function reset() {
27
- root = null;
28
- startText = null;
29
- fallbackText = null;
30
- }
31
- export function getData() {
32
- if (fallbackText) {
33
- return fallbackText;
34
- }
35
- let start;
36
- const startValue = startText;
37
- const startLength = startValue.length;
38
- let end;
39
- const endValue = getText();
40
- const endLength = endValue.length;
41
- for (start = 0; start < startLength; start++) {
42
- if (startValue[start] !== endValue[start]) {
43
- break;
44
- }
45
- }
46
- const minEnd = startLength - start;
47
- for (end = 1; end <= minEnd; end++) {
48
- if (startValue[startLength - end] !== endValue[endLength - end]) {
49
- break;
50
- }
51
- }
52
- const sliceTail = end > 1 ? 1 - end : undefined;
53
- fallbackText = endValue.slice(start, sliceTail);
54
- return fallbackText;
55
- }
56
- export function getText() {
57
- if ('value' in root) {
58
- return root.value;
59
- }
60
- return root.textContent;
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS1ldmVudC9GYWxsYmFja0NvbXBvc2l0aW9uU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBRUgsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztBQUNyQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUM7QUFFeEIsTUFBTSxVQUFVLFVBQVUsQ0FBQyxpQkFBaUI7SUFDeEMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO0lBQ3pCLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUN0QixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUs7SUFDakIsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNaLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIsWUFBWSxHQUFHLElBQUksQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU87SUFDbkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNmLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQztJQUNWLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM3QixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3RDLElBQUksR0FBRyxDQUFDO0lBQ1IsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDM0IsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUVsQyxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzNDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE1BQU07UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDbkMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFVBQVUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlELE1BQU07UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRCxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEQsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPO0lBQ25CLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbi8qKlxuICogVGhlc2UgdmFyaWFibGVzIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRleHQgY29udGVudCBvZiBhIHRhcmdldCBub2RlLFxuICogYWxsb3dpbmcgY29tcGFyaXNvbiBvZiBjb250ZW50IGJlZm9yZSBhbmQgYWZ0ZXIgYSBnaXZlbiBldmVudC5cbiAqXG4gKiBJZGVudGlmeSB0aGUgbm9kZSB3aGVyZSBzZWxlY3Rpb24gY3VycmVudGx5IGJlZ2lucywgdGhlbiBvYnNlcnZlXG4gKiBib3RoIGl0cyB0ZXh0IGNvbnRlbnQgYW5kIGl0cyBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBET00uIFNpbmNlIHRoZVxuICogYnJvd3NlciBtYXkgbmF0aXZlbHkgcmVwbGFjZSB0aGUgdGFyZ2V0IG5vZGUgZHVyaW5nIGNvbXBvc2l0aW9uLCB3ZSBjYW5cbiAqIHVzZSBpdHMgcG9zaXRpb24gdG8gZmluZCBpdHMgcmVwbGFjZW1lbnQuXG4gKlxuICpcbiAqL1xuXG5sZXQgcm9vdCA9IG51bGw7XG5sZXQgc3RhcnRUZXh0ID0gbnVsbDtcbmxldCBmYWxsYmFja1RleHQgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZShuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIHJvb3QgPSBuYXRpdmVFdmVudFRhcmdldDtcbiAgICBzdGFydFRleHQgPSBnZXRUZXh0KCk7XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldCgpIHtcbiAgICByb290ID0gbnVsbDtcbiAgICBzdGFydFRleHQgPSBudWxsO1xuICAgIGZhbGxiYWNrVGV4dCA9IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhKCkge1xuICAgIGlmIChmYWxsYmFja1RleHQpIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrVGV4dDtcbiAgICB9XG5cbiAgICBsZXQgc3RhcnQ7XG4gICAgY29uc3Qgc3RhcnRWYWx1ZSA9IHN0YXJ0VGV4dDtcbiAgICBjb25zdCBzdGFydExlbmd0aCA9IHN0YXJ0VmFsdWUubGVuZ3RoO1xuICAgIGxldCBlbmQ7XG4gICAgY29uc3QgZW5kVmFsdWUgPSBnZXRUZXh0KCk7XG4gICAgY29uc3QgZW5kTGVuZ3RoID0gZW5kVmFsdWUubGVuZ3RoO1xuXG4gICAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgc3RhcnRMZW5ndGg7IHN0YXJ0KyspIHtcbiAgICAgICAgaWYgKHN0YXJ0VmFsdWVbc3RhcnRdICE9PSBlbmRWYWx1ZVtzdGFydF0pIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWluRW5kID0gc3RhcnRMZW5ndGggLSBzdGFydDtcbiAgICBmb3IgKGVuZCA9IDE7IGVuZCA8PSBtaW5FbmQ7IGVuZCsrKSB7XG4gICAgICAgIGlmIChzdGFydFZhbHVlW3N0YXJ0TGVuZ3RoIC0gZW5kXSAhPT0gZW5kVmFsdWVbZW5kTGVuZ3RoIC0gZW5kXSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzbGljZVRhaWwgPSBlbmQgPiAxID8gMSAtIGVuZCA6IHVuZGVmaW5lZDtcbiAgICBmYWxsYmFja1RleHQgPSBlbmRWYWx1ZS5zbGljZShzdGFydCwgc2xpY2VUYWlsKTtcbiAgICByZXR1cm4gZmFsbGJhY2tUZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dCgpIHtcbiAgICBpZiAoJ3ZhbHVlJyBpbiByb290KSB7XG4gICAgICAgIHJldHVybiByb290LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcm9vdC50ZXh0Q29udGVudDtcbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- export const BEFORE_INPUT_EVENTS = [
2
- // { name: 'blur', handler: 'onBlur', isTriggerBeforeInput: true },
3
- // { name: 'compositionstart', handler: 'onCompositionStart', isTriggerBeforeInput: true },
4
- { name: 'compositionupdate', handler: null, isTriggerBeforeInput: true },
5
- // { name: 'compositionend', handler: 'onCompositionEnd', isTriggerBeforeInput: false },
6
- // { name: 'keydown', handler: 'onKeyDown', isTriggerBeforeInput: true },
7
- { name: 'keypress', handler: null, isTriggerBeforeInput: true },
8
- { name: 'keyup', handler: 'onKeyUp', isTriggerBeforeInput: true },
9
- { name: 'mousedown', handler: 'onMouseDown', isTriggerBeforeInput: true },
10
- { name: 'textInput', handler: null, isTriggerBeforeInput: true }
11
- // { name: 'paste', handler: 'onPaste', isTriggerBeforeInput: true }
12
- ];
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWlucHV0LXBvbHlmaWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2N1c3RvbS1ldmVudC9iZWZvcmUtaW5wdXQtcG9seWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBSTFCO0lBQ0YsbUVBQW1FO0lBQ25FLDJGQUEyRjtJQUMzRixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUN4RSx3RkFBd0Y7SUFDeEYseUVBQXlFO0lBQ3pFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUMvRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7SUFDakUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO0lBQ3pFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRTtJQUNoRSxvRUFBb0U7Q0FDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCRUZPUkVfSU5QVVRfRVZFTlRTOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGhhbmRsZXI6IHN0cmluZztcbiAgICBpc1RyaWdnZXJCZWZvcmVJbnB1dDogYm9vbGVhbjtcbn1bXSA9IFtcbiAgICAvLyB7IG5hbWU6ICdibHVyJywgaGFuZGxlcjogJ29uQmx1cicsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH0sXG4gICAgLy8geyBuYW1lOiAnY29tcG9zaXRpb25zdGFydCcsIGhhbmRsZXI6ICdvbkNvbXBvc2l0aW9uU3RhcnQnLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ2NvbXBvc2l0aW9udXBkYXRlJywgaGFuZGxlcjogbnVsbCwgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICAvLyB7IG5hbWU6ICdjb21wb3NpdGlvbmVuZCcsIGhhbmRsZXI6ICdvbkNvbXBvc2l0aW9uRW5kJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IGZhbHNlIH0sXG4gICAgLy8geyBuYW1lOiAna2V5ZG93bicsIGhhbmRsZXI6ICdvbktleURvd24nLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ2tleXByZXNzJywgaGFuZGxlcjogbnVsbCwgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICB7IG5hbWU6ICdrZXl1cCcsIGhhbmRsZXI6ICdvbktleVVwJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfSxcbiAgICB7IG5hbWU6ICdtb3VzZWRvd24nLCBoYW5kbGVyOiAnb25Nb3VzZURvd24nLCBpc1RyaWdnZXJCZWZvcmVJbnB1dDogdHJ1ZSB9LFxuICAgIHsgbmFtZTogJ3RleHRJbnB1dCcsIGhhbmRsZXI6IG51bGwsIGlzVHJpZ2dlckJlZm9yZUlucHV0OiB0cnVlIH1cbiAgICAvLyB7IG5hbWU6ICdwYXN0ZScsIGhhbmRsZXI6ICdvblBhc3RlJywgaXNUcmlnZ2VyQmVmb3JlSW5wdXQ6IHRydWUgfVxuXTtcbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SlateEditable } from './components/editable/editable.component';
4
- import { SlateDefaultText } from './components/text/default-text.component';
5
- import { SlateVoidText } from './components/text/void-text.component';
6
- import { SlateElement } from './components/element/element.component';
7
- import { SlateDefaultElement } from './components/element/default-element.component';
8
- import { SlateString } from './components/string/string.component';
9
- import { SlateStringTemplate } from './components/string/template.component';
10
- import { SlateChildren } from './components/children/children.component';
11
- import { SlateChildrenOutlet } from './components/children/children-outlet.component';
12
- import { SlateBlockCard } from './components/block-card/block-card.component';
13
- import { SlateDefaultLeaf } from './components/leaf/default-leaf.component';
14
- import { SlateLeaves } from './components/leaves/leaves.component';
15
- import { SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN } from './components/element/default-element.component.token';
16
- import { SlateDefaultString } from './components/string/default-string.component';
17
- import * as i0 from "@angular/core";
18
- export class SlateModule {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SlateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: SlateModule, imports: [CommonModule,
21
- SlateEditable,
22
- SlateDefaultElement,
23
- SlateElement,
24
- SlateVoidText,
25
- SlateDefaultText,
26
- SlateString,
27
- SlateStringTemplate,
28
- SlateChildren,
29
- SlateBlockCard,
30
- SlateLeaves,
31
- SlateDefaultLeaf,
32
- SlateDefaultString,
33
- SlateChildrenOutlet], exports: [SlateEditable, SlateChildren, SlateChildrenOutlet, SlateElement, SlateLeaves, SlateString, SlateDefaultString] }); }
34
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SlateModule, providers: [
35
- {
36
- provide: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN,
37
- useValue: SlateDefaultElement
38
- }
39
- ], imports: [CommonModule] }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SlateModule, decorators: [{
42
- type: NgModule,
43
- args: [{
44
- imports: [
45
- CommonModule,
46
- SlateEditable,
47
- SlateDefaultElement,
48
- SlateElement,
49
- SlateVoidText,
50
- SlateDefaultText,
51
- SlateString,
52
- SlateStringTemplate,
53
- SlateChildren,
54
- SlateBlockCard,
55
- SlateLeaves,
56
- SlateDefaultLeaf,
57
- SlateDefaultString,
58
- SlateChildrenOutlet
59
- ],
60
- exports: [SlateEditable, SlateChildren, SlateChildrenOutlet, SlateElement, SlateLeaves, SlateString, SlateDefaultString],
61
- providers: [
62
- {
63
- provide: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN,
64
- useValue: SlateDefaultElement
65
- }
66
- ]
67
- }]
68
- }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZXMvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBMkJsRixNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXOytHQUFYLFdBQVcsWUF2QmhCLFlBQVk7WUFDWixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixtQkFBbUIsYUFFYixhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtCQUFrQjsrR0FROUcsV0FBVyxhQVBUO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHFDQUFxQztnQkFDOUMsUUFBUSxFQUFFLG1CQUFtQjthQUNoQztTQUNKLFlBckJHLFlBQVk7OzJGQXVCUCxXQUFXO2tCQXpCdkIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3hILFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUNBQXFDOzRCQUM5QyxRQUFRLEVBQUUsbUJBQW1CO3lCQUNoQztxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcndhcmRSZWYsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2xhdGVFZGl0YWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0YWJsZS9lZGl0YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0VGV4dCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L2RlZmF1bHQtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVWb2lkVGV4dCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L3ZvaWQtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVFbGVtZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0RWxlbWVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbGVtZW50L2RlZmF1bHQtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmcgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RyaW5nL3N0cmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZSB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW4gfSBmcm9tICcuL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW5PdXRsZXQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4tb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUJsb2NrQ2FyZCB9IGZyb20gJy4vY29tcG9uZW50cy9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdExlYWYgfSBmcm9tICcuL2NvbXBvbmVudHMvbGVhZi9kZWZhdWx0LWxlYWYuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlTGVhdmVzIH0gZnJvbSAnLi9jb21wb25lbnRzL2xlYXZlcy9sZWF2ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFNMQVRFX0RFRkFVTFRfRUxFTUVOVF9DT01QT05FTlRfVE9LRU4gfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9kZWZhdWx0LWVsZW1lbnQuY29tcG9uZW50LnRva2VuJztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdFN0cmluZyB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvZGVmYXVsdC1zdHJpbmcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgU2xhdGVFZGl0YWJsZSxcbiAgICAgICAgU2xhdGVEZWZhdWx0RWxlbWVudCxcbiAgICAgICAgU2xhdGVFbGVtZW50LFxuICAgICAgICBTbGF0ZVZvaWRUZXh0LFxuICAgICAgICBTbGF0ZURlZmF1bHRUZXh0LFxuICAgICAgICBTbGF0ZVN0cmluZyxcbiAgICAgICAgU2xhdGVTdHJpbmdUZW1wbGF0ZSxcbiAgICAgICAgU2xhdGVDaGlsZHJlbixcbiAgICAgICAgU2xhdGVCbG9ja0NhcmQsXG4gICAgICAgIFNsYXRlTGVhdmVzLFxuICAgICAgICBTbGF0ZURlZmF1bHRMZWFmLFxuICAgICAgICBTbGF0ZURlZmF1bHRTdHJpbmcsXG4gICAgICAgIFNsYXRlQ2hpbGRyZW5PdXRsZXRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtTbGF0ZUVkaXRhYmxlLCBTbGF0ZUNoaWxkcmVuLCBTbGF0ZUNoaWxkcmVuT3V0bGV0LCBTbGF0ZUVsZW1lbnQsIFNsYXRlTGVhdmVzLCBTbGF0ZVN0cmluZywgU2xhdGVEZWZhdWx0U3RyaW5nXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU0xBVEVfREVGQVVMVF9FTEVNRU5UX0NPTVBPTkVOVF9UT0tFTixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBTbGF0ZURlZmF1bHRFbGVtZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNsYXRlTW9kdWxlIHt9XG4iXX0=