@atlaskit/editor-common 103.1.3 → 103.3.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.
- package/CHANGELOG.md +28 -0
- package/dist/cjs/annotation/index.js +16 -1
- package/dist/cjs/annotation/manager.js +243 -0
- package/dist/cjs/hooks/usePluginStateEffect.js +12 -3
- package/dist/cjs/hooks/useSharedPluginState.js +9 -5
- package/dist/cjs/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +9 -3
- package/dist/cjs/i18n/cs.js +9 -24
- package/dist/cjs/i18n/da.js +9 -24
- package/dist/cjs/i18n/de.js +8 -24
- package/dist/cjs/i18n/en.js +9 -24
- package/dist/cjs/i18n/en_GB.js +9 -24
- package/dist/cjs/i18n/en_ZZ.js +9 -24
- package/dist/cjs/i18n/es.js +9 -24
- package/dist/cjs/i18n/fi.js +9 -24
- package/dist/cjs/i18n/fr.js +8 -24
- package/dist/cjs/i18n/hu.js +7 -24
- package/dist/cjs/i18n/it.js +9 -24
- package/dist/cjs/i18n/ja.js +9 -24
- package/dist/cjs/i18n/ko.js +10 -25
- package/dist/cjs/i18n/nb.js +9 -24
- package/dist/cjs/i18n/nl.js +9 -24
- package/dist/cjs/i18n/pl.js +8 -24
- package/dist/cjs/i18n/pt_BR.js +9 -24
- package/dist/cjs/i18n/ru.js +9 -24
- package/dist/cjs/i18n/sv.js +9 -24
- package/dist/cjs/i18n/th.js +9 -24
- package/dist/cjs/i18n/tr.js +9 -24
- package/dist/cjs/i18n/uk.js +9 -24
- package/dist/cjs/i18n/vi.js +10 -24
- package/dist/cjs/i18n/zh.js +9 -24
- package/dist/cjs/i18n/zh_TW.js +9 -24
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/annotation/index.js +22 -0
- package/dist/es2019/annotation/manager.js +196 -0
- package/dist/es2019/hooks/usePluginStateEffect.js +12 -5
- package/dist/es2019/hooks/useSharedPluginState.js +9 -6
- package/dist/es2019/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +9 -5
- package/dist/es2019/i18n/cs.js +9 -24
- package/dist/es2019/i18n/da.js +9 -24
- package/dist/es2019/i18n/de.js +8 -24
- package/dist/es2019/i18n/en.js +9 -24
- package/dist/es2019/i18n/en_GB.js +9 -24
- package/dist/es2019/i18n/en_ZZ.js +9 -24
- package/dist/es2019/i18n/es.js +9 -24
- package/dist/es2019/i18n/fi.js +9 -24
- package/dist/es2019/i18n/fr.js +8 -24
- package/dist/es2019/i18n/hu.js +7 -24
- package/dist/es2019/i18n/it.js +9 -24
- package/dist/es2019/i18n/ja.js +9 -24
- package/dist/es2019/i18n/ko.js +10 -25
- package/dist/es2019/i18n/nb.js +9 -24
- package/dist/es2019/i18n/nl.js +9 -24
- package/dist/es2019/i18n/pl.js +8 -24
- package/dist/es2019/i18n/pt_BR.js +9 -24
- package/dist/es2019/i18n/ru.js +9 -24
- package/dist/es2019/i18n/sv.js +9 -24
- package/dist/es2019/i18n/th.js +9 -24
- package/dist/es2019/i18n/tr.js +9 -24
- package/dist/es2019/i18n/uk.js +9 -24
- package/dist/es2019/i18n/vi.js +10 -24
- package/dist/es2019/i18n/zh.js +9 -24
- package/dist/es2019/i18n/zh_TW.js +9 -24
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/annotation/index.js +23 -1
- package/dist/esm/annotation/manager.js +236 -0
- package/dist/esm/hooks/usePluginStateEffect.js +12 -3
- package/dist/esm/hooks/useSharedPluginState.js +9 -5
- package/dist/esm/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +9 -3
- package/dist/esm/i18n/cs.js +9 -24
- package/dist/esm/i18n/da.js +9 -24
- package/dist/esm/i18n/de.js +8 -24
- package/dist/esm/i18n/en.js +9 -24
- package/dist/esm/i18n/en_GB.js +9 -24
- package/dist/esm/i18n/en_ZZ.js +9 -24
- package/dist/esm/i18n/es.js +9 -24
- package/dist/esm/i18n/fi.js +9 -24
- package/dist/esm/i18n/fr.js +8 -24
- package/dist/esm/i18n/hu.js +7 -24
- package/dist/esm/i18n/it.js +9 -24
- package/dist/esm/i18n/ja.js +9 -24
- package/dist/esm/i18n/ko.js +10 -25
- package/dist/esm/i18n/nb.js +9 -24
- package/dist/esm/i18n/nl.js +9 -24
- package/dist/esm/i18n/pl.js +8 -24
- package/dist/esm/i18n/pt_BR.js +9 -24
- package/dist/esm/i18n/ru.js +9 -24
- package/dist/esm/i18n/sv.js +9 -24
- package/dist/esm/i18n/th.js +9 -24
- package/dist/esm/i18n/tr.js +9 -24
- package/dist/esm/i18n/uk.js +9 -24
- package/dist/esm/i18n/vi.js +10 -24
- package/dist/esm/i18n/zh.js +9 -24
- package/dist/esm/i18n/zh_TW.js +9 -24
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/annotation/index.d.ts +132 -0
- package/dist/types/annotation/manager.d.ts +32 -0
- package/dist/types/hooks/usePluginStateEffect.d.ts +4 -1
- package/dist/types/hooks/useSharedPluginState.d.ts +6 -1
- package/dist/types/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +5 -1
- package/dist/types/i18n/cs.d.ts +9 -24
- package/dist/types/i18n/da.d.ts +9 -24
- package/dist/types/i18n/de.d.ts +8 -24
- package/dist/types/i18n/en.d.ts +9 -24
- package/dist/types/i18n/en_GB.d.ts +9 -24
- package/dist/types/i18n/en_ZZ.d.ts +9 -24
- package/dist/types/i18n/es.d.ts +9 -24
- package/dist/types/i18n/fi.d.ts +9 -24
- package/dist/types/i18n/fr.d.ts +8 -24
- package/dist/types/i18n/hu.d.ts +7 -24
- package/dist/types/i18n/it.d.ts +9 -24
- package/dist/types/i18n/ja.d.ts +9 -24
- package/dist/types/i18n/ko.d.ts +9 -24
- package/dist/types/i18n/nb.d.ts +9 -24
- package/dist/types/i18n/nl.d.ts +9 -24
- package/dist/types/i18n/pl.d.ts +8 -24
- package/dist/types/i18n/pt_BR.d.ts +9 -24
- package/dist/types/i18n/ru.d.ts +9 -24
- package/dist/types/i18n/sv.d.ts +9 -24
- package/dist/types/i18n/th.d.ts +9 -24
- package/dist/types/i18n/tr.d.ts +9 -24
- package/dist/types/i18n/uk.d.ts +9 -24
- package/dist/types/i18n/vi.d.ts +10 -24
- package/dist/types/i18n/zh.d.ts +9 -24
- package/dist/types/i18n/zh_TW.d.ts +9 -24
- package/dist/types/types/annotation/index.d.ts +2 -0
- package/dist/types/types/floating-toolbar.d.ts +9 -0
- package/dist/types-ts4.5/annotation/index.d.ts +132 -0
- package/dist/types-ts4.5/annotation/manager.d.ts +32 -0
- package/dist/types-ts4.5/hooks/usePluginStateEffect.d.ts +4 -1
- package/dist/types-ts4.5/hooks/useSharedPluginState.d.ts +6 -1
- package/dist/types-ts4.5/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +5 -1
- package/dist/types-ts4.5/i18n/cs.d.ts +9 -24
- package/dist/types-ts4.5/i18n/da.d.ts +9 -24
- package/dist/types-ts4.5/i18n/de.d.ts +8 -24
- package/dist/types-ts4.5/i18n/en.d.ts +9 -24
- package/dist/types-ts4.5/i18n/en_GB.d.ts +9 -24
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +9 -24
- package/dist/types-ts4.5/i18n/es.d.ts +9 -24
- package/dist/types-ts4.5/i18n/fi.d.ts +9 -24
- package/dist/types-ts4.5/i18n/fr.d.ts +8 -24
- package/dist/types-ts4.5/i18n/hu.d.ts +7 -24
- package/dist/types-ts4.5/i18n/it.d.ts +9 -24
- package/dist/types-ts4.5/i18n/ja.d.ts +9 -24
- package/dist/types-ts4.5/i18n/ko.d.ts +9 -24
- package/dist/types-ts4.5/i18n/nb.d.ts +9 -24
- package/dist/types-ts4.5/i18n/nl.d.ts +9 -24
- package/dist/types-ts4.5/i18n/pl.d.ts +8 -24
- package/dist/types-ts4.5/i18n/pt_BR.d.ts +9 -24
- package/dist/types-ts4.5/i18n/ru.d.ts +9 -24
- package/dist/types-ts4.5/i18n/sv.d.ts +9 -24
- package/dist/types-ts4.5/i18n/th.d.ts +9 -24
- package/dist/types-ts4.5/i18n/tr.d.ts +9 -24
- package/dist/types-ts4.5/i18n/uk.d.ts +9 -24
- package/dist/types-ts4.5/i18n/vi.d.ts +10 -24
- package/dist/types-ts4.5/i18n/zh.d.ts +9 -24
- package/dist/types-ts4.5/i18n/zh_TW.d.ts +9 -24
- package/dist/types-ts4.5/types/annotation/index.d.ts +2 -0
- package/dist/types-ts4.5/types/floating-toolbar.d.ts +9 -0
- package/package.json +1 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
import { EventEmitter } from 'events';
|
|
5
|
+
export var SharedAnnotationManager = /*#__PURE__*/function () {
|
|
6
|
+
function SharedAnnotationManager() {
|
|
7
|
+
_classCallCheck(this, SharedAnnotationManager);
|
|
8
|
+
/**
|
|
9
|
+
* This is the event emitter that is used to emit events from the manager. It is used to communicate with
|
|
10
|
+
* other parts of the application.
|
|
11
|
+
*/
|
|
12
|
+
_defineProperty(this, "emitter", new EventEmitter());
|
|
13
|
+
/**
|
|
14
|
+
* This is the map of hooks that can be added to the manager. Hooks are a 1:1 mapping of methods that can be
|
|
15
|
+
* called on the manager. They are used to extend the functionality of the manager.
|
|
16
|
+
*/
|
|
17
|
+
_defineProperty(this, "hooks", new Map());
|
|
18
|
+
_defineProperty(this, "preemptiveGate", function () {
|
|
19
|
+
return Promise.resolve(true);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return _createClass(SharedAnnotationManager, [{
|
|
23
|
+
key: "setPreemptiveGate",
|
|
24
|
+
value: function setPreemptiveGate(handler) {
|
|
25
|
+
this.preemptiveGate = handler;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
key: "checkPreemptiveGate",
|
|
30
|
+
value: function checkPreemptiveGate() {
|
|
31
|
+
return this.preemptiveGate();
|
|
32
|
+
}
|
|
33
|
+
}, {
|
|
34
|
+
key: "onDraftAnnotationStarted",
|
|
35
|
+
value: function onDraftAnnotationStarted(handler) {
|
|
36
|
+
this.emitter.on('draftAnnotationStarted', handler);
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
key: "offDraftAnnotationStarted",
|
|
41
|
+
value: function offDraftAnnotationStarted(handler) {
|
|
42
|
+
this.emitter.off('draftAnnotationStarted', handler);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
key: "onAnnotationSelectionChange",
|
|
47
|
+
value: function onAnnotationSelectionChange(handler) {
|
|
48
|
+
this.emitter.on('annotationSelectionChanged', handler);
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
}, {
|
|
52
|
+
key: "offAnnotationSelectionChange",
|
|
53
|
+
value: function offAnnotationSelectionChange(handler) {
|
|
54
|
+
this.emitter.off('annotationSelectionChanged', handler);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
key: "emit",
|
|
59
|
+
value: function emit(event) {
|
|
60
|
+
this.emitter.emit(event.name, event.data);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
key: "hook",
|
|
65
|
+
value: function hook(method, handler) {
|
|
66
|
+
this.hooks.set(method, handler);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "unhook",
|
|
71
|
+
value: function unhook(method, handler) {
|
|
72
|
+
if (!this.hooks.has(method) || this.hooks.get(method) !== handler) {
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
this.hooks.delete(method);
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "allowAnnotation",
|
|
80
|
+
value: function allowAnnotation() {
|
|
81
|
+
var fn = this.hooks.get('allowAnnotation');
|
|
82
|
+
if (!fn) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
return fn();
|
|
87
|
+
} catch (error) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
key: "startDraft",
|
|
93
|
+
value: function startDraft() {
|
|
94
|
+
var fn = this.hooks.get('startDraft');
|
|
95
|
+
if (!fn) {
|
|
96
|
+
return {
|
|
97
|
+
success: false,
|
|
98
|
+
reason: 'manager-not-initialized'
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
var result = fn();
|
|
103
|
+
if (result.success) {
|
|
104
|
+
this.emitter.emit('draftAnnotationStarted', {
|
|
105
|
+
targetElement: result.targetElement,
|
|
106
|
+
inlineNodeTypes: result.inlineNodeTypes,
|
|
107
|
+
actionResult: result.actionResult
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
} catch (error) {
|
|
112
|
+
return {
|
|
113
|
+
success: false,
|
|
114
|
+
reason: 'hook-execution-error'
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "clearDraft",
|
|
120
|
+
value: function clearDraft() {
|
|
121
|
+
var fn = this.hooks.get('clearDraft');
|
|
122
|
+
if (!fn) {
|
|
123
|
+
return {
|
|
124
|
+
success: false,
|
|
125
|
+
reason: 'manager-not-initialized'
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
return fn();
|
|
130
|
+
} catch (error) {
|
|
131
|
+
return {
|
|
132
|
+
success: false,
|
|
133
|
+
reason: 'hook-execution-error'
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}, {
|
|
138
|
+
key: "applyDraft",
|
|
139
|
+
value: function applyDraft(id) {
|
|
140
|
+
var fn = this.hooks.get('applyDraft');
|
|
141
|
+
if (!fn) {
|
|
142
|
+
return {
|
|
143
|
+
success: false,
|
|
144
|
+
reason: 'manager-not-initialized'
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
return fn(id);
|
|
149
|
+
} catch (error) {
|
|
150
|
+
return {
|
|
151
|
+
success: false,
|
|
152
|
+
reason: 'hook-execution-error'
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}, {
|
|
157
|
+
key: "getDraft",
|
|
158
|
+
value: function getDraft() {
|
|
159
|
+
var fn = this.hooks.get('getDraft');
|
|
160
|
+
if (!fn) {
|
|
161
|
+
return {
|
|
162
|
+
success: false,
|
|
163
|
+
reason: 'manager-not-initialized'
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
return fn();
|
|
168
|
+
} catch (error) {
|
|
169
|
+
return {
|
|
170
|
+
success: false,
|
|
171
|
+
reason: 'hook-execution-error'
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}, {
|
|
176
|
+
key: "setIsAnnotationSelected",
|
|
177
|
+
value: function setIsAnnotationSelected(id, isSelected) {
|
|
178
|
+
var fn = this.hooks.get('setIsAnnotationSelected');
|
|
179
|
+
if (!fn) {
|
|
180
|
+
return {
|
|
181
|
+
success: false,
|
|
182
|
+
reason: 'manager-not-initialized'
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
// NOTE: The hook needs to manage the firing the annotationSelectionChanged event when a change is made. This is
|
|
187
|
+
// because the hook is responsible for the state of the selection. The manager is not responsible for the state of
|
|
188
|
+
// the selection.
|
|
189
|
+
return fn(id, isSelected);
|
|
190
|
+
} catch (error) {
|
|
191
|
+
return {
|
|
192
|
+
success: false,
|
|
193
|
+
reason: 'hook-execution-error'
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}, {
|
|
198
|
+
key: "setIsAnnotationHovered",
|
|
199
|
+
value: function setIsAnnotationHovered(id, isHovered) {
|
|
200
|
+
var fn = this.hooks.get('setIsAnnotationHovered');
|
|
201
|
+
if (!fn) {
|
|
202
|
+
return {
|
|
203
|
+
success: false,
|
|
204
|
+
reason: 'manager-not-initialized'
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
return fn(id, isHovered);
|
|
209
|
+
} catch (error) {
|
|
210
|
+
return {
|
|
211
|
+
success: false,
|
|
212
|
+
reason: 'hook-execution-error'
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}, {
|
|
217
|
+
key: "clearAnnotation",
|
|
218
|
+
value: function clearAnnotation(id) {
|
|
219
|
+
var fn = this.hooks.get('clearAnnotation');
|
|
220
|
+
if (!fn) {
|
|
221
|
+
return {
|
|
222
|
+
success: false,
|
|
223
|
+
reason: 'manager-not-initialized'
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
return fn(id);
|
|
228
|
+
} catch (error) {
|
|
229
|
+
return {
|
|
230
|
+
success: false,
|
|
231
|
+
reason: 'hook-execution-error'
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}]);
|
|
236
|
+
}();
|
|
@@ -80,6 +80,7 @@ function useStaticPlugins(plugins) {
|
|
|
80
80
|
* You can return a function from your effect to call any cleanup activities which will be called on unmount and when `editorApi` changes.
|
|
81
81
|
*/
|
|
82
82
|
export function usePluginStateEffect(injectionApi, plugins, effect) {
|
|
83
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
83
84
|
var pluginNames = useStaticPlugins(plugins);
|
|
84
85
|
|
|
85
86
|
// Create a memoized object containing the named plugins
|
|
@@ -88,9 +89,10 @@ export function usePluginStateEffect(injectionApi, plugins, effect) {
|
|
|
88
89
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, "".concat(String(pluginName), "State"), injectionApi === null || injectionApi === void 0 ? void 0 : injectionApi[pluginName]));
|
|
89
90
|
}, {});
|
|
90
91
|
}, [injectionApi, pluginNames]);
|
|
91
|
-
usePluginStateEffectInternal(namedExternalPlugins, effect);
|
|
92
|
+
usePluginStateEffectInternal(namedExternalPlugins, effect, options);
|
|
92
93
|
}
|
|
93
94
|
function usePluginStateEffectInternal(externalPlugins, effect) {
|
|
95
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
94
96
|
var refStates = useRef();
|
|
95
97
|
var cleanup = useRef();
|
|
96
98
|
var latestEffect = useRef(effect);
|
|
@@ -98,13 +100,20 @@ function usePluginStateEffectInternal(externalPlugins, effect) {
|
|
|
98
100
|
// We should store the latest effect in a reference so it is more intuitive to the user
|
|
99
101
|
// and we are not causing a memory leak by having references to old state.
|
|
100
102
|
useEffect(function () {
|
|
103
|
+
if (options.disabled) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
101
106
|
latestEffect.current = debounce(effect);
|
|
102
107
|
return function () {
|
|
103
108
|
latestEffect.current = undefined;
|
|
104
109
|
};
|
|
105
|
-
}, [effect]);
|
|
110
|
+
}, [effect, options.disabled]);
|
|
106
111
|
useLayoutEffect(function () {
|
|
107
112
|
var _latestEffect$current;
|
|
113
|
+
if (options.disabled) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
108
117
|
// Update the reference for this plugin and activate the effect
|
|
109
118
|
refStates.current = mapValues(externalPlugins, function (value) {
|
|
110
119
|
return value === null || value === void 0 ? void 0 : value.sharedState.currentState();
|
|
@@ -135,5 +144,5 @@ function usePluginStateEffectInternal(externalPlugins, effect) {
|
|
|
135
144
|
};
|
|
136
145
|
// Do not re-run if the `effect` changes - this is not expected with `useEffect` or similar hooks
|
|
137
146
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
138
|
-
}, [externalPlugins]);
|
|
147
|
+
}, [externalPlugins, options.disabled]);
|
|
139
148
|
}
|
|
@@ -35,7 +35,6 @@ function useStaticPlugins(plugins) {
|
|
|
35
35
|
return plugins;
|
|
36
36
|
}, []);
|
|
37
37
|
}
|
|
38
|
-
|
|
39
38
|
/**
|
|
40
39
|
*
|
|
41
40
|
* NOTE: Generally you may want to use `usePluginStateSelector` over this which behaves similarly
|
|
@@ -97,10 +96,11 @@ function useStaticPlugins(plugins) {
|
|
|
97
96
|
*
|
|
98
97
|
* @param injectionApi Plugin injection API from `NextEditorPlugin`
|
|
99
98
|
* @param plugins Plugin names to get the shared plugin state for
|
|
99
|
+
* @param options The useSharedPluginState options
|
|
100
100
|
* @returns A corresponding object, the keys are names of the plugin with `State` appended,
|
|
101
101
|
* the values are the shared state exposed by that plugin.
|
|
102
102
|
*/
|
|
103
|
-
export function useSharedPluginState(injectionApi, plugins) {
|
|
103
|
+
export function useSharedPluginState(injectionApi, plugins, options) {
|
|
104
104
|
var pluginNames = useStaticPlugins(plugins);
|
|
105
105
|
|
|
106
106
|
// Create a memoized object containing the named plugins
|
|
@@ -109,11 +109,12 @@ export function useSharedPluginState(injectionApi, plugins) {
|
|
|
109
109
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, "".concat(String(pluginName), "State"), injectionApi === null || injectionApi === void 0 ? void 0 : injectionApi[pluginName]));
|
|
110
110
|
}, {});
|
|
111
111
|
}, [injectionApi, pluginNames]);
|
|
112
|
-
return useSharedPluginStateInternal(namedExternalPlugins);
|
|
112
|
+
return useSharedPluginStateInternal(namedExternalPlugins, options);
|
|
113
113
|
}
|
|
114
114
|
function useSharedPluginStateInternal(externalPlugins) {
|
|
115
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
115
116
|
var _useState = useState(mapValues(externalPlugins, function (value) {
|
|
116
|
-
return value === null || value === void 0 ? void 0 : value.sharedState.currentState();
|
|
117
|
+
return options.disabled ? undefined : value === null || value === void 0 ? void 0 : value.sharedState.currentState();
|
|
117
118
|
})),
|
|
118
119
|
_useState2 = _slicedToArray(_useState, 2),
|
|
119
120
|
pluginStates = _useState2[0],
|
|
@@ -121,6 +122,9 @@ function useSharedPluginStateInternal(externalPlugins) {
|
|
|
121
122
|
var refStates = useRef({});
|
|
122
123
|
var mounted = useRef(false);
|
|
123
124
|
useLayoutEffect(function () {
|
|
125
|
+
if (options.disabled) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
124
128
|
var debouncedPluginStateUpdate = debounce(function () {
|
|
125
129
|
setPluginState(function (currentPluginStates) {
|
|
126
130
|
return _objectSpread(_objectSpread({}, currentPluginStates), refStates.current);
|
|
@@ -160,6 +164,6 @@ function useSharedPluginStateInternal(externalPlugins) {
|
|
|
160
164
|
// Do not re-render due to state changes, we only need to check this when
|
|
161
165
|
// setting up the initial subscription.
|
|
162
166
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
163
|
-
}, [externalPlugins]);
|
|
167
|
+
}, [externalPlugins, options.disabled]);
|
|
164
168
|
return pluginStates;
|
|
165
169
|
}
|
|
@@ -75,9 +75,11 @@ import { usePluginStateEffect } from '../usePluginStateEffect';
|
|
|
75
75
|
*
|
|
76
76
|
* @param api
|
|
77
77
|
* @param plugin
|
|
78
|
+
* @param options
|
|
78
79
|
* @returns
|
|
79
80
|
*/
|
|
80
81
|
export function useSharedPluginStateSelector(api, plugin) {
|
|
82
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
81
83
|
var transformer = useCallback(function (pluginState) {
|
|
82
84
|
var _plugin$split = plugin.split('.'),
|
|
83
85
|
_plugin$split2 = _toArray(_plugin$split),
|
|
@@ -96,14 +98,18 @@ export function useSharedPluginStateSelector(api, plugin) {
|
|
|
96
98
|
}, [plugin]);
|
|
97
99
|
var initialState = useMemo(function () {
|
|
98
100
|
var _api$pluginName;
|
|
101
|
+
if (options.disabled) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
99
104
|
var _plugin$split5 = plugin.split('.'),
|
|
100
105
|
_plugin$split6 = _slicedToArray(_plugin$split5, 1),
|
|
101
106
|
pluginName = _plugin$split6[0];
|
|
102
107
|
return transformer(_defineProperty({}, "".concat(pluginName, "State"), api === null || api === void 0 || (_api$pluginName = api[pluginName]) === null || _api$pluginName === void 0 ? void 0 : _api$pluginName.sharedState.currentState()));
|
|
103
|
-
}, [plugin, api, transformer]);
|
|
104
|
-
return useSharedPluginStateSelectorInternal(api, pluginNameArray, transformer, initialState);
|
|
108
|
+
}, [plugin, api, options.disabled, transformer]);
|
|
109
|
+
return useSharedPluginStateSelectorInternal(api, pluginNameArray, transformer, initialState, options);
|
|
105
110
|
}
|
|
106
111
|
function useSharedPluginStateSelectorInternal(api, plugins, transformer, initialState) {
|
|
112
|
+
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
107
113
|
var _useState = useState(initialState),
|
|
108
114
|
_useState2 = _slicedToArray(_useState, 2),
|
|
109
115
|
selectedPluginState = _useState2[0],
|
|
@@ -114,6 +120,6 @@ function useSharedPluginStateSelectorInternal(api, plugins, transformer, initial
|
|
|
114
120
|
if (!isEqual(transformedValue, selectedPluginState)) {
|
|
115
121
|
setSelectedPluginState(transformedValue);
|
|
116
122
|
}
|
|
117
|
-
});
|
|
123
|
+
}, options);
|
|
118
124
|
return selectedPluginState;
|
|
119
125
|
}
|
package/dist/esm/i18n/cs.js
CHANGED
|
@@ -32,6 +32,7 @@ export default {
|
|
|
32
32
|
'fabric.editor.ai.atlas-prebuilt.atlasGenerateContentConfigItemDescription': 'Generuje obsah, který má být vložen do aktualizace.',
|
|
33
33
|
'fabric.editor.ai.atlas-prebuilt.atlasSummarizePageConfigItemDescription': 'Shrne obsah aktualizace.',
|
|
34
34
|
'fabric.editor.ai.commandPalette.promptBuilderForm.buttons.submit': 'Generovat',
|
|
35
|
+
'fabric.editor.ai.commandPalette.promptBuilderForm.generateContent.ariaLabel': 'Zeptejte se Atlassian Intelligence.',
|
|
35
36
|
'fabric.editor.ai.config.item.action.insert': 'Vložit',
|
|
36
37
|
'fabric.editor.ai.config.item.action.insertAtTop': 'Vložit nahoru',
|
|
37
38
|
'fabric.editor.ai.config.item.action.insertBelow': 'Vložit pod',
|
|
@@ -39,29 +40,6 @@ export default {
|
|
|
39
40
|
'fabric.editor.ai.config.item.action.replaceTitle': 'Nahradit název',
|
|
40
41
|
'fabric.editor.ai.config.item.action.replaceTitleTooLongDisabledTooltip': 'Název nesmí mít více znaků než {maxLength}.',
|
|
41
42
|
'fabric.editor.ai.config.item.action.rovoAgents.continueInChatLabel': 'Otevřít v chatu',
|
|
42
|
-
'fabric.editor.ai.config.item.advanced-prompt.form.instructions.label': 'Pokyny',
|
|
43
|
-
'fabric.editor.ai.config.item.advancedPrompt.description': 'Upřesněte úkol, pokyny a pravidla',
|
|
44
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.label': 'Kreativita',
|
|
45
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.high': 'Vysoká',
|
|
46
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.low': 'Nízká',
|
|
47
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.medium': 'Střední',
|
|
48
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.instructions.helperMessage': 'Příklad: 1. Na začátku dokumentu uveďte stručný přehled cílů naší společnosti. 2. Vytvořte seznam klíčových členů týmu, se kterými se během prvního týdne setkají.',
|
|
49
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.instructions.placeholder': 'Zajistěte pokyny k úkolům, které pomohou generovat konkrétní výstupy.',
|
|
50
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.rules.helperMessage': 'Příklad: Výstup musí být v souladu s pokyny společnosti pro styl a nesmějí používat neověřené údaje.',
|
|
51
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.rules.label': 'Pravidla',
|
|
52
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.rules.placeholder': 'Uveďte pravidla, která mají dodržovat.',
|
|
53
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.error.required': 'Zadejte úkol',
|
|
54
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.helperMessage': 'Příklad: Vytvořte nástupní dokumentaci pro nové zaměstnance, kteří se připojují k týmu.',
|
|
55
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.label': 'Úkol',
|
|
56
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.placeholder': 'Popište úkol, který je třeba dokončit.',
|
|
57
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.label': 'Tón',
|
|
58
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.casual': 'Neformální',
|
|
59
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.educational': 'Vzdělávací',
|
|
60
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.empathetic': 'Empatický',
|
|
61
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.neutral': 'Neutrální',
|
|
62
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.professional': 'Profesionální',
|
|
63
|
-
'fabric.editor.ai.config.item.advancedPrompt.promptLabel': 'Vytvořte pokročilou výzvu',
|
|
64
|
-
'fabric.editor.ai.config.item.advancedPrompt.title': 'Vytvořte pokročilou výzvu',
|
|
65
43
|
'fabric.editor.ai.config.item.agent.title': 'Atlassian Intelligence – Agent Rovo',
|
|
66
44
|
'fabric.editor.ai.config.item.atlas-shorten-update.description': 'Zkrátí obsah, aby byl stručnější.',
|
|
67
45
|
'fabric.editor.ai.config.item.atlas-shorten-update.title': 'Zkrátit aktualizaci',
|
|
@@ -224,7 +202,6 @@ export default {
|
|
|
224
202
|
'fabric.editor.ai.experience.suggestionGroupHeading.knowledgeSource': 'Zdroj znalostí',
|
|
225
203
|
'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgents': 'Agenti Rovo',
|
|
226
204
|
'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgentsCount': 'Agenti Rovo ({numberOfAgents})',
|
|
227
|
-
'fabric.editor.ai.experience.suggestionGroupHeading.studio': 'Studio',
|
|
228
205
|
'fabric.editor.ai.experience.suggestionGroupHeading.useRovoAgentsCount': 'Použijte agenta Rovo ({numberOfAgents})',
|
|
229
206
|
'fabric.editor.ai.experience.useGeneralAiKnowledgeLabel': 'Použít obecné znalosti',
|
|
230
207
|
'fabric.editor.ai.experience.useRovoOrganisationKnowledgeLabel': 'Použít znalosti z vaší organizace',
|
|
@@ -421,6 +398,7 @@ export default {
|
|
|
421
398
|
'fabric.editor.errorPanel.description': 'Chyby zobrazit v barevném panelu',
|
|
422
399
|
'fabric.editor.expand': 'Rozbalení',
|
|
423
400
|
'fabric.editor.expand.description': 'Vložit rozbalení',
|
|
401
|
+
'fabric.editor.expandAriaLabel': 'Dejte rozbalenému obsahu název.',
|
|
424
402
|
'fabric.editor.expandDefaultTitle': 'Klikněte sem pro rozbalení...',
|
|
425
403
|
'fabric.editor.expandNode': 'Rozbalit obsah',
|
|
426
404
|
'fabric.editor.expandPlaceholder': 'Dejte rozbalenému obsahu název...',
|
|
@@ -430,6 +408,7 @@ export default {
|
|
|
430
408
|
'fabric.editor.extension.deleteElementTitle': 'Odstranit prvek',
|
|
431
409
|
'fabric.editor.extension.sourceNoTitledName': 'tento prvek',
|
|
432
410
|
'fabric.editor.extensions.config-panel.save-indicator': 'Všechny změny jsou vždy automaticky ukládány',
|
|
411
|
+
'fabric.editor.externalExtensionsHeading': 'Aplikace',
|
|
433
412
|
'fabric.editor.externalMediaFile': 'Externí multimediální soubor',
|
|
434
413
|
'fabric.editor.failed_to_upload': 'Nahrání se nezdařilo',
|
|
435
414
|
'fabric.editor.feedbackDialog': 'Poskytnout zpětnou vazbu',
|
|
@@ -541,6 +520,7 @@ export default {
|
|
|
541
520
|
'fabric.editor.lists': 'Seznamy',
|
|
542
521
|
'fabric.editor.listsFormat': 'Formátování seznamu',
|
|
543
522
|
'fabric.editor.lockColumns': 'Pevné šířky sloupců',
|
|
523
|
+
'fabric.editor.longEmptyNodePlaceholderText': 'Zadáním znaku / můžete vkládat prvky.',
|
|
544
524
|
'fabric.editor.markdown': 'Snížení',
|
|
545
525
|
'fabric.editor.matchCase': 'Rozlišovat malá a velká písmena',
|
|
546
526
|
'fabric.editor.media.DefaultMediaWidthDecreased': '{newMediaWidth, plural, one {Šířka multimédia byla snížena na {newMediaWidth,number} pixel.} few {Šířka multimédia byla snížena na {newMediaWidth,number} pixely.} many {Šířka multimédia byla snížena na {newMediaWidth,number} pixelu.} other {Šířka multimédia byla snížena na {newMediaWidth,number} pixelů.}}',
|
|
@@ -609,6 +589,7 @@ export default {
|
|
|
609
589
|
'fabric.editor.orderedList.description': 'Vytvořit seřazený seznam',
|
|
610
590
|
'fabric.editor.other': 'Jiné…',
|
|
611
591
|
'fabric.editor.outdent': 'Zmenšit odsazení',
|
|
592
|
+
'fabric.editor.overflowMenuViewMore': 'Zobrazit více',
|
|
612
593
|
'fabric.editor.pageActionsLabel': 'Akce stránky',
|
|
613
594
|
'fabric.editor.panel': 'Panel',
|
|
614
595
|
'fabric.editor.panel.backgroundColor': 'Barva pozadí',
|
|
@@ -658,6 +639,7 @@ export default {
|
|
|
658
639
|
'fabric.editor.selectTableRow': 'Vybrat řádek tabulky',
|
|
659
640
|
'fabric.editor.selectionExtensionDropdownButtonLabel': 'Vybrat aplikaci',
|
|
660
641
|
'fabric.editor.settingsLinks': 'Přejít do předvoleb odkazů',
|
|
642
|
+
'fabric.editor.shortEmptyNodePlaceholderText': '/ pro vložení',
|
|
661
643
|
'fabric.editor.shortcut': 'Textový zástupce',
|
|
662
644
|
'fabric.editor.single': 'Rozvržení jediného sloupce',
|
|
663
645
|
'fabric.editor.singleColumns': 'Rozvržení 1 sloupce',
|
|
@@ -721,8 +703,11 @@ export default {
|
|
|
721
703
|
'fabric.editor.time.ago': 'zpět',
|
|
722
704
|
'fabric.editor.time.updated': 'Aktualizováno',
|
|
723
705
|
'fabric.editor.time.viewed': 'Zobrazeno',
|
|
706
|
+
'fabric.editor.toolbarAppears': 'Zobrazí se panel nástrojů',
|
|
724
707
|
'fabric.editor.toolbarLabel': 'Editor',
|
|
725
708
|
'fabric.editor.toolbarMediaTitle': 'Přidat obrázek, video nebo soubor',
|
|
709
|
+
'fabric.editor.toolbarPositionFixedAtTop': 'Uchyceno nahoře',
|
|
710
|
+
'fabric.editor.toolbarPositionInline': 'Zarovnáno s textem',
|
|
726
711
|
'fabric.editor.tooltip.blockPanel': 'panel',
|
|
727
712
|
'fabric.editor.tooltip.bulletList': 'seznam',
|
|
728
713
|
'fabric.editor.tooltip.decisionList': 'seznam rozhodnutí',
|
package/dist/esm/i18n/da.js
CHANGED
|
@@ -32,6 +32,7 @@ export default {
|
|
|
32
32
|
'fabric.editor.ai.atlas-prebuilt.atlasGenerateContentConfigItemDescription': 'Genererer indhold, der skal sættes ind i opdateringen',
|
|
33
33
|
'fabric.editor.ai.atlas-prebuilt.atlasSummarizePageConfigItemDescription': 'Opsummerer opdateringens indhold',
|
|
34
34
|
'fabric.editor.ai.commandPalette.promptBuilderForm.buttons.submit': 'Generér',
|
|
35
|
+
'fabric.editor.ai.commandPalette.promptBuilderForm.generateContent.ariaLabel': 'Spørg Atlassian Intelligence',
|
|
35
36
|
'fabric.editor.ai.config.item.action.insert': 'Indsæt',
|
|
36
37
|
'fabric.editor.ai.config.item.action.insertAtTop': 'Indsæt foroven',
|
|
37
38
|
'fabric.editor.ai.config.item.action.insertBelow': 'Indsæt nedenfor',
|
|
@@ -39,29 +40,6 @@ export default {
|
|
|
39
40
|
'fabric.editor.ai.config.item.action.replaceTitle': 'Erstat titel',
|
|
40
41
|
'fabric.editor.ai.config.item.action.replaceTitleTooLongDisabledTooltip': 'Titlen må højst indeholde {maxLength} tegn',
|
|
41
42
|
'fabric.editor.ai.config.item.action.rovoAgents.continueInChatLabel': 'Åbn i chat',
|
|
42
|
-
'fabric.editor.ai.config.item.advanced-prompt.form.instructions.label': 'Instruktioner',
|
|
43
|
-
'fabric.editor.ai.config.item.advancedPrompt.description': 'Angiv opgave, instruktioner og regler',
|
|
44
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.label': 'Kreativitet',
|
|
45
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.high': 'Høj',
|
|
46
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.low': 'Lav',
|
|
47
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.medium': 'Middel',
|
|
48
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.instructions.helperMessage': 'For eksempel: 1. Start dokumentet med et kort overblik over vores virksomheds mål. 2. Opret en liste over vigtige teammedlemmer, som de skal møde i deres første uge.',
|
|
49
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.instructions.placeholder': 'Giv opgaveinstruktioner for at hjælpe med at generere specifikke output.',
|
|
50
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.rules.helperMessage': 'For eksempel: Outputtet skal følge retningslinjerne for virksomhedens stil og må ikke bruge ubekræftede data.',
|
|
51
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.rules.label': 'Regler',
|
|
52
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.rules.placeholder': 'Beskriv eventuelle regler, du vil have skal følges.',
|
|
53
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.error.required': 'Angiv opgave',
|
|
54
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.helperMessage': 'For eksempel: Opret onboarding-dokumentation for nye medarbejdere, der slutter sig til teamet.',
|
|
55
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.label': 'Opgave',
|
|
56
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.task.placeholder': 'Beskriv den opgave, der skal udføres.',
|
|
57
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.label': 'Tone',
|
|
58
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.casual': 'Afslappet',
|
|
59
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.educational': 'Pædagogisk',
|
|
60
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.empathetic': 'Empatisk',
|
|
61
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.neutral': 'Neutral',
|
|
62
|
-
'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.professional': 'Professionel',
|
|
63
|
-
'fabric.editor.ai.config.item.advancedPrompt.promptLabel': 'Generér en avanceret prompt',
|
|
64
|
-
'fabric.editor.ai.config.item.advancedPrompt.title': 'Generér en avanceret prompt',
|
|
65
43
|
'fabric.editor.ai.config.item.agent.title': 'Atlassian Intelligence Rovo-medarbejder',
|
|
66
44
|
'fabric.editor.ai.config.item.atlas-shorten-update.description': 'Forkorter indholdet for at gøre det mere kortfattet',
|
|
67
45
|
'fabric.editor.ai.config.item.atlas-shorten-update.title': 'Forkort opdateringen',
|
|
@@ -223,7 +201,6 @@ export default {
|
|
|
223
201
|
'fabric.editor.ai.experience.suggestionGroupHeading.knowledgeSource': 'Videnskilde',
|
|
224
202
|
'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgents': 'Rovo-medarbejdere',
|
|
225
203
|
'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgentsCount': 'Rovo-medarbejdere ({numberOfAgents})',
|
|
226
|
-
'fabric.editor.ai.experience.suggestionGroupHeading.studio': 'Studio',
|
|
227
204
|
'fabric.editor.ai.experience.suggestionGroupHeading.useRovoAgentsCount': 'Brug en Rovo-medarbejder ({numberOfAgents})',
|
|
228
205
|
'fabric.editor.ai.experience.useGeneralAiKnowledgeLabel': 'Brug generel viden',
|
|
229
206
|
'fabric.editor.ai.experience.useRovoOrganisationKnowledgeLabel': 'Brug viden fra din organisation',
|
|
@@ -420,6 +397,7 @@ export default {
|
|
|
420
397
|
'fabric.editor.errorPanel.description': 'Vis fejl i et farvel panel',
|
|
421
398
|
'fabric.editor.expand': 'Udvid',
|
|
422
399
|
'fabric.editor.expand.description': 'Indsæt en udvidelse',
|
|
400
|
+
'fabric.editor.expandAriaLabel': 'Giv denne udvidelse en titel',
|
|
423
401
|
'fabric.editor.expandDefaultTitle': 'Klik her for at udvide...',
|
|
424
402
|
'fabric.editor.expandNode': 'Udvid indhold',
|
|
425
403
|
'fabric.editor.expandPlaceholder': 'Giv denne udvidelse en titel...',
|
|
@@ -429,6 +407,7 @@ export default {
|
|
|
429
407
|
'fabric.editor.extension.deleteElementTitle': 'Slet element',
|
|
430
408
|
'fabric.editor.extension.sourceNoTitledName': 'dette element',
|
|
431
409
|
'fabric.editor.extensions.config-panel.save-indicator': 'Alle ændringer gemmes altid automatisk',
|
|
410
|
+
'fabric.editor.externalExtensionsHeading': 'Apps',
|
|
432
411
|
'fabric.editor.externalMediaFile': 'Ekstern mediefil',
|
|
433
412
|
'fabric.editor.failed_to_upload': 'Upload mislykkedes',
|
|
434
413
|
'fabric.editor.feedbackDialog': 'Giv feedback',
|
|
@@ -540,6 +519,7 @@ export default {
|
|
|
540
519
|
'fabric.editor.lists': 'Liste',
|
|
541
520
|
'fabric.editor.listsFormat': 'Listeformatering',
|
|
542
521
|
'fabric.editor.lockColumns': 'Faste søjlebredder',
|
|
522
|
+
'fabric.editor.longEmptyNodePlaceholderText': 'Skriv / for at indsætte elementer',
|
|
543
523
|
'fabric.editor.markdown': 'Markdown',
|
|
544
524
|
'fabric.editor.matchCase': 'Match store/små bogstaver',
|
|
545
525
|
'fabric.editor.media.DefaultMediaWidthDecreased': '{newMediaWidth, plural, one {Mediebredde reduceret til {newMediaWidth,number} pixel.} other {Mediebredde reduceret til {newMediaWidth,number} pixels.}}',
|
|
@@ -608,6 +588,7 @@ export default {
|
|
|
608
588
|
'fabric.editor.orderedList.description': 'Opret en sorteret liste',
|
|
609
589
|
'fabric.editor.other': 'Andet …',
|
|
610
590
|
'fabric.editor.outdent': 'Ryk ud',
|
|
591
|
+
'fabric.editor.overflowMenuViewMore': 'Vis mere',
|
|
611
592
|
'fabric.editor.pageActionsLabel': 'Sidehandlinger',
|
|
612
593
|
'fabric.editor.panel': 'Panel',
|
|
613
594
|
'fabric.editor.panel.backgroundColor': 'Baggrundsfarve',
|
|
@@ -657,6 +638,7 @@ export default {
|
|
|
657
638
|
'fabric.editor.selectTableRow': 'Vælg tabelrække',
|
|
658
639
|
'fabric.editor.selectionExtensionDropdownButtonLabel': 'Vælg app',
|
|
659
640
|
'fabric.editor.settingsLinks': 'Gå til Indstillinger for links',
|
|
641
|
+
'fabric.editor.shortEmptyNodePlaceholderText': '/ for at indsætte',
|
|
660
642
|
'fabric.editor.shortcut': 'Genvej til tekst',
|
|
661
643
|
'fabric.editor.single': 'Layout med én kolonne',
|
|
662
644
|
'fabric.editor.singleColumns': 'Layout med en kolonne',
|
|
@@ -720,8 +702,11 @@ export default {
|
|
|
720
702
|
'fabric.editor.time.ago': 'siden',
|
|
721
703
|
'fabric.editor.time.updated': 'Opdateret',
|
|
722
704
|
'fabric.editor.time.viewed': 'Vist',
|
|
705
|
+
'fabric.editor.toolbarAppears': 'Værktøjslinjen vises',
|
|
723
706
|
'fabric.editor.toolbarLabel': 'Editor',
|
|
724
707
|
'fabric.editor.toolbarMediaTitle': 'Tilføj billede, video eller fil',
|
|
708
|
+
'fabric.editor.toolbarPositionFixedAtTop': 'Fastgjort øverst',
|
|
709
|
+
'fabric.editor.toolbarPositionInline': 'På linje med tekst',
|
|
725
710
|
'fabric.editor.tooltip.blockPanel': 'et panel',
|
|
726
711
|
'fabric.editor.tooltip.bulletList': 'en liste',
|
|
727
712
|
'fabric.editor.tooltip.decisionList': 'en beslutningsliste',
|