@atlaskit/editor-common 78.33.4 → 78.35.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 +20 -0
- package/dist/cjs/i18n/cs.js +12 -2
- package/dist/cjs/i18n/da.js +12 -2
- package/dist/cjs/i18n/de.js +12 -2
- package/dist/cjs/i18n/en.js +11 -3
- package/dist/cjs/i18n/en_GB.js +11 -3
- package/dist/cjs/i18n/en_ZZ.js +20 -5
- package/dist/cjs/i18n/es.js +12 -2
- package/dist/cjs/i18n/fi.js +12 -2
- package/dist/cjs/i18n/fr.js +12 -2
- package/dist/cjs/i18n/hu.js +12 -2
- package/dist/cjs/i18n/it.js +12 -2
- package/dist/cjs/i18n/ja.js +13 -2
- package/dist/cjs/i18n/ko.js +13 -2
- package/dist/cjs/i18n/nb.js +12 -2
- package/dist/cjs/i18n/nl.js +14 -4
- package/dist/cjs/i18n/pl.js +12 -2
- package/dist/cjs/i18n/pt_BR.js +12 -2
- package/dist/cjs/i18n/ru.js +12 -2
- package/dist/cjs/i18n/sv.js +12 -2
- package/dist/cjs/i18n/th.js +12 -2
- package/dist/cjs/i18n/tr.js +13 -2
- package/dist/cjs/i18n/uk.js +12 -2
- package/dist/cjs/i18n/vi.js +12 -2
- package/dist/cjs/i18n/zh.js +12 -2
- package/dist/cjs/i18n/zh_TW.js +12 -2
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/portal/PortalBucket.js +44 -0
- package/dist/cjs/portal/PortalManager.js +209 -0
- package/dist/cjs/portal/index.js +26 -0
- package/dist/cjs/portal/usePortalProvider.js +80 -0
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/utils/insert-node-into-ordered-list.js +22 -3
- package/dist/es2019/i18n/cs.js +12 -2
- package/dist/es2019/i18n/da.js +12 -2
- package/dist/es2019/i18n/de.js +12 -2
- package/dist/es2019/i18n/en.js +11 -3
- package/dist/es2019/i18n/en_GB.js +11 -3
- package/dist/es2019/i18n/en_ZZ.js +20 -5
- package/dist/es2019/i18n/es.js +12 -2
- package/dist/es2019/i18n/fi.js +12 -2
- package/dist/es2019/i18n/fr.js +12 -2
- package/dist/es2019/i18n/hu.js +12 -2
- package/dist/es2019/i18n/it.js +12 -2
- package/dist/es2019/i18n/ja.js +13 -2
- package/dist/es2019/i18n/ko.js +13 -2
- package/dist/es2019/i18n/nb.js +12 -2
- package/dist/es2019/i18n/nl.js +14 -4
- package/dist/es2019/i18n/pl.js +12 -2
- package/dist/es2019/i18n/pt_BR.js +12 -2
- package/dist/es2019/i18n/ru.js +12 -2
- package/dist/es2019/i18n/sv.js +12 -2
- package/dist/es2019/i18n/th.js +12 -2
- package/dist/es2019/i18n/tr.js +13 -2
- package/dist/es2019/i18n/uk.js +12 -2
- package/dist/es2019/i18n/vi.js +12 -2
- package/dist/es2019/i18n/zh.js +12 -2
- package/dist/es2019/i18n/zh_TW.js +12 -2
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/portal/PortalBucket.js +29 -0
- package/dist/es2019/portal/PortalManager.js +157 -0
- package/dist/es2019/portal/index.js +3 -0
- package/dist/es2019/portal/usePortalProvider.js +58 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/utils/insert-node-into-ordered-list.js +23 -3
- package/dist/esm/i18n/cs.js +12 -2
- package/dist/esm/i18n/da.js +12 -2
- package/dist/esm/i18n/de.js +12 -2
- package/dist/esm/i18n/en.js +11 -3
- package/dist/esm/i18n/en_GB.js +11 -3
- package/dist/esm/i18n/en_ZZ.js +20 -5
- package/dist/esm/i18n/es.js +12 -2
- package/dist/esm/i18n/fi.js +12 -2
- package/dist/esm/i18n/fr.js +12 -2
- package/dist/esm/i18n/hu.js +12 -2
- package/dist/esm/i18n/it.js +12 -2
- package/dist/esm/i18n/ja.js +13 -2
- package/dist/esm/i18n/ko.js +13 -2
- package/dist/esm/i18n/nb.js +12 -2
- package/dist/esm/i18n/nl.js +14 -4
- package/dist/esm/i18n/pl.js +12 -2
- package/dist/esm/i18n/pt_BR.js +12 -2
- package/dist/esm/i18n/ru.js +12 -2
- package/dist/esm/i18n/sv.js +12 -2
- package/dist/esm/i18n/th.js +12 -2
- package/dist/esm/i18n/tr.js +13 -2
- package/dist/esm/i18n/uk.js +12 -2
- package/dist/esm/i18n/vi.js +12 -2
- package/dist/esm/i18n/zh.js +12 -2
- package/dist/esm/i18n/zh_TW.js +12 -2
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/portal/PortalBucket.js +34 -0
- package/dist/esm/portal/PortalManager.js +202 -0
- package/dist/esm/portal/index.js +3 -0
- package/dist/esm/portal/usePortalProvider.js +70 -0
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/utils/insert-node-into-ordered-list.js +23 -3
- package/dist/types/i18n/cs.d.ts +10 -0
- package/dist/types/i18n/da.d.ts +10 -0
- package/dist/types/i18n/de.d.ts +10 -0
- package/dist/types/i18n/en.d.ts +8 -0
- package/dist/types/i18n/en_GB.d.ts +8 -0
- package/dist/types/i18n/en_ZZ.d.ts +16 -1
- package/dist/types/i18n/es.d.ts +10 -0
- package/dist/types/i18n/fi.d.ts +10 -0
- package/dist/types/i18n/fr.d.ts +10 -0
- package/dist/types/i18n/hu.d.ts +10 -0
- package/dist/types/i18n/it.d.ts +10 -0
- package/dist/types/i18n/ja.d.ts +11 -0
- package/dist/types/i18n/ko.d.ts +11 -0
- package/dist/types/i18n/nb.d.ts +10 -0
- package/dist/types/i18n/nl.d.ts +10 -0
- package/dist/types/i18n/pl.d.ts +10 -0
- package/dist/types/i18n/pt_BR.d.ts +10 -0
- package/dist/types/i18n/ru.d.ts +10 -0
- package/dist/types/i18n/sv.d.ts +10 -0
- package/dist/types/i18n/th.d.ts +10 -0
- package/dist/types/i18n/tr.d.ts +11 -0
- package/dist/types/i18n/uk.d.ts +10 -0
- package/dist/types/i18n/vi.d.ts +10 -0
- package/dist/types/i18n/zh.d.ts +10 -0
- package/dist/types/i18n/zh_TW.d.ts +10 -0
- package/dist/types/portal/PortalBucket.d.ts +18 -0
- package/dist/types/portal/PortalManager.d.ts +53 -0
- package/dist/types/portal/index.d.ts +3 -0
- package/dist/types/portal/usePortalProvider.d.ts +18 -0
- package/dist/types/types/annotation/index.d.ts +1 -0
- package/dist/types-ts4.5/i18n/cs.d.ts +10 -0
- package/dist/types-ts4.5/i18n/da.d.ts +10 -0
- package/dist/types-ts4.5/i18n/de.d.ts +10 -0
- package/dist/types-ts4.5/i18n/en.d.ts +8 -0
- package/dist/types-ts4.5/i18n/en_GB.d.ts +8 -0
- package/dist/types-ts4.5/i18n/en_ZZ.d.ts +16 -1
- package/dist/types-ts4.5/i18n/es.d.ts +10 -0
- package/dist/types-ts4.5/i18n/fi.d.ts +10 -0
- package/dist/types-ts4.5/i18n/fr.d.ts +10 -0
- package/dist/types-ts4.5/i18n/hu.d.ts +10 -0
- package/dist/types-ts4.5/i18n/it.d.ts +10 -0
- package/dist/types-ts4.5/i18n/ja.d.ts +11 -0
- package/dist/types-ts4.5/i18n/ko.d.ts +11 -0
- package/dist/types-ts4.5/i18n/nb.d.ts +10 -0
- package/dist/types-ts4.5/i18n/nl.d.ts +10 -0
- package/dist/types-ts4.5/i18n/pl.d.ts +10 -0
- package/dist/types-ts4.5/i18n/pt_BR.d.ts +10 -0
- package/dist/types-ts4.5/i18n/ru.d.ts +10 -0
- package/dist/types-ts4.5/i18n/sv.d.ts +10 -0
- package/dist/types-ts4.5/i18n/th.d.ts +10 -0
- package/dist/types-ts4.5/i18n/tr.d.ts +11 -0
- package/dist/types-ts4.5/i18n/uk.d.ts +10 -0
- package/dist/types-ts4.5/i18n/vi.d.ts +10 -0
- package/dist/types-ts4.5/i18n/zh.d.ts +10 -0
- package/dist/types-ts4.5/i18n/zh_TW.d.ts +10 -0
- package/dist/types-ts4.5/portal/PortalBucket.d.ts +18 -0
- package/dist/types-ts4.5/portal/PortalManager.d.ts +53 -0
- package/dist/types-ts4.5/portal/index.d.ts +3 -0
- package/dist/types-ts4.5/portal/usePortalProvider.d.ts +21 -0
- package/dist/types-ts4.5/types/annotation/index.d.ts +1 -0
- package/package.json +4 -3
- package/portal/package.json +15 -0
|
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
16
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
17
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
18
18
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
19
|
-
var packageVersion = "78.
|
|
19
|
+
var packageVersion = "78.35.0";
|
|
20
20
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
21
21
|
// Remove URL as it has UGC
|
|
22
22
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PortalBucket = PortalBucket;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
/**
|
|
14
|
+
* A component for rendering portals managed by a `PortalManager`.
|
|
15
|
+
* It subscribes to a `PortalManager` instance to listen for changes in the portal content
|
|
16
|
+
* and renders the content of its assigned portal bucket.
|
|
17
|
+
*
|
|
18
|
+
* @param {PortalBucketProps} props The component props.
|
|
19
|
+
* @param {number} props.id The ID for the portal bucket. This ID is used by the `PortalManager` to manage the content of this bucket.
|
|
20
|
+
* @param {PortalManager} props.portalManager An instance of `PortalManager` which manages the registration and unregistration of portal buckets and their content.
|
|
21
|
+
* @returns {React.ReactElement} The React element(s) that are currently registered to this portal bucket.
|
|
22
|
+
*/
|
|
23
|
+
function PortalBucket(_ref) {
|
|
24
|
+
var id = _ref.id,
|
|
25
|
+
portalManager = _ref.portalManager;
|
|
26
|
+
// State to hold the current portals for this bucket
|
|
27
|
+
var _useState = (0, _react.useState)({}),
|
|
28
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
29
|
+
portals = _useState2[0],
|
|
30
|
+
setPortals = _useState2[1];
|
|
31
|
+
// Effect to register/unregister this bucket with the portal manager on mount/unmount
|
|
32
|
+
(0, _react.useLayoutEffect)(function () {
|
|
33
|
+
portalManager.registerBucket(id, setPortals);
|
|
34
|
+
return function () {
|
|
35
|
+
portalManager.unregisterBucket(id);
|
|
36
|
+
};
|
|
37
|
+
}, [id, portalManager]);
|
|
38
|
+
// Memoize the portal elements to avoid unnecessary re-renders
|
|
39
|
+
var portalElements = (0, _react.useMemo)(function () {
|
|
40
|
+
return Object.values(portals);
|
|
41
|
+
}, [portals]);
|
|
42
|
+
// Render the current portal elements
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, portalElements);
|
|
44
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PortalManager = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
var DEFAULT_INITIAL_BUCKETS = 50;
|
|
15
|
+
var DEFAULT_MAX_BUCKET_CAPACITY = 50;
|
|
16
|
+
var DEFAULT_SCALE_RATIO = 0.5;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Creates an empty bucket object with a specified capacity. Each bucket is designed
|
|
20
|
+
* to hold a certain number of React portals and has an associated updater function
|
|
21
|
+
* which can be null initially.
|
|
22
|
+
*
|
|
23
|
+
* @function createEmptyBucket
|
|
24
|
+
* @param {number} capacity - The maximum capacity of the bucket.
|
|
25
|
+
* @returns {PortalBucketType} An object representing an empty bucket with the specified capacity.
|
|
26
|
+
*/
|
|
27
|
+
function createEmptyBucket(capacity) {
|
|
28
|
+
return {
|
|
29
|
+
portals: {},
|
|
30
|
+
capacity: capacity,
|
|
31
|
+
updater: null
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A utility class to manage and dynamically scale React portals across multiple buckets.
|
|
37
|
+
* It allows for efficient rendering of large numbers of React portals by distributing them
|
|
38
|
+
* across "buckets" and updating these buckets as necessary to balance load and performance.
|
|
39
|
+
*
|
|
40
|
+
* @class PortalManager
|
|
41
|
+
* @typedef {Object} PortalManager
|
|
42
|
+
*
|
|
43
|
+
* @property {number} maxBucketCapacity - The maximum capacity of each bucket before a new bucket is created.
|
|
44
|
+
* @property {number} scaleRatio - The ratio to determine the number of new buckets to add when scaling up.
|
|
45
|
+
* @property {Array<PortalBucketType>} buckets - An array of bucket objects where each bucket holds a record of React portals.
|
|
46
|
+
* @property {Set<number>} availableBuckets - A set of indices representing buckets that have available capacity.
|
|
47
|
+
* @property {Map<React.Key, number>} portalToBucketMap - A map of React portal keys to their corresponding bucket indices.
|
|
48
|
+
* @property {PortalRendererUpdater|null} portalRendererUpdater - A function to trigger updates to the rendering of portals.
|
|
49
|
+
* @property {number} scaleCapacityThreshold - The threshold at which the buckets are scaled up to accommodate more portals.
|
|
50
|
+
*
|
|
51
|
+
* @param {number} [initialBuckets=DEFAULT_INITIAL_BUCKETS] - The initial number of buckets to create.
|
|
52
|
+
* @param {number} [maxBucketCapacity=DEFAULT_MAX_BUCKET_CAPACITY] - The maximum number of portals a single bucket can hold.
|
|
53
|
+
* @param {number} [scaleRatio=DEFAULT_SCALE_RATIO] - The ratio used to calculate the number of new buckets to add when scaling.
|
|
54
|
+
*/
|
|
55
|
+
var PortalManager = exports.PortalManager = /*#__PURE__*/function () {
|
|
56
|
+
function PortalManager() {
|
|
57
|
+
var initialBuckets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_INITIAL_BUCKETS;
|
|
58
|
+
var maxBucketCapacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_MAX_BUCKET_CAPACITY;
|
|
59
|
+
var scaleRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_SCALE_RATIO;
|
|
60
|
+
(0, _classCallCheck2.default)(this, PortalManager);
|
|
61
|
+
this.maxBucketCapacity = maxBucketCapacity;
|
|
62
|
+
this.scaleRatio = scaleRatio;
|
|
63
|
+
|
|
64
|
+
// Initialise buckets array by creating an array of length `initialBuckets` containing empty buckets
|
|
65
|
+
this.buckets = Array.from({
|
|
66
|
+
length: initialBuckets
|
|
67
|
+
}, function () {
|
|
68
|
+
return createEmptyBucket(maxBucketCapacity);
|
|
69
|
+
});
|
|
70
|
+
this.portalToBucketMap = new Map();
|
|
71
|
+
this.availableBuckets = new Set(Array.from({
|
|
72
|
+
length: initialBuckets
|
|
73
|
+
}, function (_, i) {
|
|
74
|
+
return i;
|
|
75
|
+
}));
|
|
76
|
+
this.portalRendererUpdater = null;
|
|
77
|
+
this.scaleCapacityThreshold = maxBucketCapacity / 2;
|
|
78
|
+
}
|
|
79
|
+
(0, _createClass2.default)(PortalManager, [{
|
|
80
|
+
key: "getCurrentBucket",
|
|
81
|
+
value: function getCurrentBucket() {
|
|
82
|
+
return this.availableBuckets.values().next().value;
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "createBucket",
|
|
86
|
+
value: function createBucket() {
|
|
87
|
+
var _this$portalRendererU;
|
|
88
|
+
var currentBucket = this.getCurrentBucket();
|
|
89
|
+
|
|
90
|
+
//If the current bucket has capacity, skip this logic
|
|
91
|
+
if (this.buckets[currentBucket].capacity > 0) {
|
|
92
|
+
return;
|
|
93
|
+
} else {
|
|
94
|
+
// The current bucket is full, delete the bucket from the list of available buckets
|
|
95
|
+
this.availableBuckets.delete(currentBucket);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Skip creating new bucket if there are buckets still available
|
|
99
|
+
if (this.availableBuckets.size > 0) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Scale the buckets up only if there are no available buckets left
|
|
104
|
+
// Calculate how many new buckets need to be added
|
|
105
|
+
var numBucketsToAdd = Math.floor(this.buckets.length * this.scaleRatio);
|
|
106
|
+
this.buckets = (0, _toConsumableArray2.default)(this.buckets);
|
|
107
|
+
for (var i = 0; i < numBucketsToAdd; i++) {
|
|
108
|
+
this.buckets.push(createEmptyBucket(this.maxBucketCapacity));
|
|
109
|
+
this.availableBuckets.add(this.buckets.length - 1);
|
|
110
|
+
}
|
|
111
|
+
(_this$portalRendererU = this.portalRendererUpdater) === null || _this$portalRendererU === void 0 || _this$portalRendererU.call(this, this.buckets);
|
|
112
|
+
}
|
|
113
|
+
}, {
|
|
114
|
+
key: "getBuckets",
|
|
115
|
+
value: function getBuckets() {
|
|
116
|
+
return this.buckets;
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "registerBucket",
|
|
120
|
+
value: function registerBucket(id, updater) {
|
|
121
|
+
var _this$buckets$id$upda,
|
|
122
|
+
_this$buckets$id,
|
|
123
|
+
_this = this;
|
|
124
|
+
this.buckets[id].updater = updater;
|
|
125
|
+
(_this$buckets$id$upda = (_this$buckets$id = this.buckets[id]).updater) === null || _this$buckets$id$upda === void 0 || _this$buckets$id$upda.call(_this$buckets$id, function () {
|
|
126
|
+
return _objectSpread({}, _this.buckets[id].portals);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}, {
|
|
130
|
+
key: "unregisterBucket",
|
|
131
|
+
value: function unregisterBucket(id) {
|
|
132
|
+
this.buckets[id].updater = null;
|
|
133
|
+
}
|
|
134
|
+
}, {
|
|
135
|
+
key: "updateBuckets",
|
|
136
|
+
value: function updateBuckets(id) {
|
|
137
|
+
var _this$buckets$id$upda2,
|
|
138
|
+
_this$buckets$id2,
|
|
139
|
+
_this2 = this;
|
|
140
|
+
(_this$buckets$id$upda2 = (_this$buckets$id2 = this.buckets[id]).updater) === null || _this$buckets$id$upda2 === void 0 || _this$buckets$id$upda2.call(_this$buckets$id2, function () {
|
|
141
|
+
// new object is required to trigger react updates
|
|
142
|
+
return _objectSpread({}, _this2.buckets[id].portals);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}, {
|
|
146
|
+
key: "registerPortal",
|
|
147
|
+
value: function registerPortal(key, portal) {
|
|
148
|
+
var _this$portalToBucketM,
|
|
149
|
+
_this3 = this;
|
|
150
|
+
this.createBucket();
|
|
151
|
+
this.buckets[this.getCurrentBucket()].capacity -= 1;
|
|
152
|
+
var id = (_this$portalToBucketM = this.portalToBucketMap.get(key)) !== null && _this$portalToBucketM !== void 0 ? _this$portalToBucketM : this.getCurrentBucket();
|
|
153
|
+
this.portalToBucketMap.set(key, id);
|
|
154
|
+
if (this.buckets[id].portals[key] !== portal) {
|
|
155
|
+
this.buckets[id].portals[key] = portal;
|
|
156
|
+
this.updateBuckets(id);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
//returns a function to unregister the portal
|
|
160
|
+
return function () {
|
|
161
|
+
delete _this3.buckets[id].portals[key];
|
|
162
|
+
_this3.portalToBucketMap.delete(key);
|
|
163
|
+
_this3.buckets[id].capacity += 1;
|
|
164
|
+
if (_this3.buckets[id].capacity > _this3.scaleCapacityThreshold) {
|
|
165
|
+
_this3.availableBuckets.add(id);
|
|
166
|
+
}
|
|
167
|
+
_this3.updateBuckets(id);
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
171
|
+
key: "registerPortalRenderer",
|
|
172
|
+
value: function registerPortalRenderer(updater) {
|
|
173
|
+
var _this4 = this;
|
|
174
|
+
if (!this.portalRendererUpdater) {
|
|
175
|
+
updater(function () {
|
|
176
|
+
return _this4.buckets;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
this.portalRendererUpdater = updater;
|
|
180
|
+
}
|
|
181
|
+
}, {
|
|
182
|
+
key: "unregisterPortalRenderer",
|
|
183
|
+
value: function unregisterPortalRenderer() {
|
|
184
|
+
this.portalRendererUpdater = null;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Cleans up resources used by the PortalManager. This includes clearing all portals,
|
|
189
|
+
* unregistering all buckets, and resetting internal state.
|
|
190
|
+
*/
|
|
191
|
+
}, {
|
|
192
|
+
key: "destroy",
|
|
193
|
+
value: function destroy() {
|
|
194
|
+
var _this5 = this;
|
|
195
|
+
// Iterate through each bucket and clear its portals and unset the updater function
|
|
196
|
+
this.buckets.forEach(function (bucket, id) {
|
|
197
|
+
bucket.portals = {}; // Clearing all portals from the bucket
|
|
198
|
+
bucket.updater = null; // Unsetting the bucket's updater function
|
|
199
|
+
_this5.availableBuckets.add(id); // Mark all buckets as available
|
|
200
|
+
});
|
|
201
|
+
this.portalToBucketMap.clear();
|
|
202
|
+
this.portalRendererUpdater = null;
|
|
203
|
+
this.availableBuckets = new Set(this.buckets.map(function (_, index) {
|
|
204
|
+
return index;
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
}]);
|
|
208
|
+
return PortalManager;
|
|
209
|
+
}();
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "PortalBucket", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _PortalBucket.PortalBucket;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "PortalManager", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _PortalManager.PortalManager;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "usePortalProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _usePortalProvider.usePortalProvider;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var _PortalManager = require("./PortalManager");
|
|
25
|
+
var _PortalBucket = require("./PortalBucket");
|
|
26
|
+
var _usePortalProvider = require("./usePortalProvider");
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.usePortalProvider = usePortalProvider;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactDom = require("react-dom");
|
|
12
|
+
var _PortalBucket = require("./PortalBucket");
|
|
13
|
+
var _PortalManager = require("./PortalManager");
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
function createPortalRendererComponent(portalManager) {
|
|
17
|
+
return function PortalRenderer() {
|
|
18
|
+
var _useState = (0, _react.useState)(portalManager.getBuckets()),
|
|
19
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
20
|
+
buckets = _useState2[0],
|
|
21
|
+
setBuckets = _useState2[1];
|
|
22
|
+
(0, _react.useLayoutEffect)(function () {
|
|
23
|
+
portalManager.registerPortalRenderer(setBuckets);
|
|
24
|
+
return function () {
|
|
25
|
+
portalManager.unregisterPortalRenderer();
|
|
26
|
+
};
|
|
27
|
+
}, []);
|
|
28
|
+
var portalsElements = (0, _react.useMemo)(function () {
|
|
29
|
+
return buckets.map(function (_, i) {
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_PortalBucket.PortalBucket, {
|
|
31
|
+
key: i,
|
|
32
|
+
id: i,
|
|
33
|
+
portalManager: portalManager
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}, [buckets]);
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, portalsElements);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Initializes PortalManager and creates PortalRendererComponent. Offers an API (portalProviderAPI) for managing portals.
|
|
43
|
+
* @returns {[PortalProviderAPI, PortalRendererComponent]} An array containing two elements:
|
|
44
|
+
* 1. portalProviderAPI: An object providing an API for rendering and removing portals.
|
|
45
|
+
* 2. PortalRenderer: A React component responsible for rendering the portal content.
|
|
46
|
+
*/
|
|
47
|
+
function usePortalProvider() {
|
|
48
|
+
var portalManager = (0, _react.useMemo)(function () {
|
|
49
|
+
return new _PortalManager.PortalManager();
|
|
50
|
+
}, []);
|
|
51
|
+
var PortalRenderer = (0, _react.useMemo)(function () {
|
|
52
|
+
return createPortalRendererComponent(portalManager);
|
|
53
|
+
}, [portalManager]);
|
|
54
|
+
var portalProviderAPI = (0, _react.useMemo)(function () {
|
|
55
|
+
var portalsMap = new Map();
|
|
56
|
+
return {
|
|
57
|
+
render: function render(key, children, container) {
|
|
58
|
+
var portal = /*#__PURE__*/(0, _reactDom.createPortal)(children(), container, key);
|
|
59
|
+
portalsMap.set(key, portalManager.registerPortal(key, portal));
|
|
60
|
+
},
|
|
61
|
+
remove: function remove(key) {
|
|
62
|
+
var _portalsMap$get;
|
|
63
|
+
(_portalsMap$get = portalsMap.get(key)) === null || _portalsMap$get === void 0 || _portalsMap$get();
|
|
64
|
+
portalsMap.delete(key);
|
|
65
|
+
},
|
|
66
|
+
destroy: function destroy() {
|
|
67
|
+
portalsMap.clear();
|
|
68
|
+
portalManager.destroy();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}, [portalManager]);
|
|
72
|
+
|
|
73
|
+
// Cleanup on unmount
|
|
74
|
+
(0, _react.useEffect)(function () {
|
|
75
|
+
return function () {
|
|
76
|
+
portalProviderAPI.destroy();
|
|
77
|
+
};
|
|
78
|
+
}, [portalManager, portalProviderAPI]);
|
|
79
|
+
return [portalProviderAPI, PortalRenderer];
|
|
80
|
+
}
|
|
@@ -20,7 +20,7 @@ var _Layer = _interopRequireDefault(require("../Layer"));
|
|
|
20
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
21
21
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */
|
|
22
22
|
var packageName = "@atlaskit/editor-common";
|
|
23
|
-
var packageVersion = "78.
|
|
23
|
+
var packageVersion = "78.35.0";
|
|
24
24
|
var halfFocusRing = 1;
|
|
25
25
|
var dropOffset = '0, 8';
|
|
26
26
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -6,12 +6,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.transformNodeIntoListItem = transformNodeIntoListItem;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
10
|
+
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
9
11
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
10
12
|
var _list = require("./list");
|
|
11
13
|
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; }
|
|
12
14
|
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; }
|
|
15
|
+
// Taken from `editor-plugin-content-insertion`
|
|
16
|
+
function setSelectionToValidTextNode(tr, node, from) {
|
|
17
|
+
var sliceInserted = _model.Slice.maxOpen(_model.Fragment.from(node));
|
|
18
|
+
var openPosition = Math.min(from + (node.isAtom ? node.nodeSize : sliceInserted.openStart), tr.doc.content.size);
|
|
19
|
+
var FORWARD_DIRECTION = 1;
|
|
20
|
+
var nextSelection = _state.TextSelection.findFrom(tr.doc.resolve(openPosition), FORWARD_DIRECTION, true);
|
|
21
|
+
if (nextSelection) {
|
|
22
|
+
return tr.setSelection(nextSelection);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
13
25
|
function transformNodeIntoListItem(tr, node) {
|
|
14
|
-
var _tr$doc$nodeAt
|
|
26
|
+
var _tr$doc$nodeAt;
|
|
15
27
|
var _tr$selection = tr.selection,
|
|
16
28
|
$to = _tr$selection.$to,
|
|
17
29
|
$from = _tr$selection.$from,
|
|
@@ -70,6 +82,9 @@ function transformNodeIntoListItem(tr, node) {
|
|
|
70
82
|
var indexOfNextListItem = $to.indexAfter($to.depth - listItemWrappingOffset);
|
|
71
83
|
var positionOfNextListItem = tr.doc.resolve(selectionParentListNodeWithPos.pos + 1).posAtIndex(indexOfNextListItem);
|
|
72
84
|
|
|
85
|
+
// Place the selection at the replaced location
|
|
86
|
+
setSelectionToValidTextNode(tr, node, from);
|
|
87
|
+
|
|
73
88
|
// Find the ordered list node after the pasted content so we can set it's order
|
|
74
89
|
var mappedPositionOfNextListItem = tr.mapping.map(positionOfNextListItem);
|
|
75
90
|
if (mappedPositionOfNextListItem > tr.doc.nodeSize) {
|
|
@@ -79,10 +94,14 @@ function transformNodeIntoListItem(tr, node) {
|
|
|
79
94
|
|
|
80
95
|
// Work out the new split out lists 'order' (the number it starts from)
|
|
81
96
|
var originalParentOrderedListNodeOrder = selectionParentListNode === null || selectionParentListNode === void 0 ? void 0 : selectionParentListNode.attrs.order;
|
|
82
|
-
var
|
|
97
|
+
var nodeOfOriginalList = (0, _utils.findParentNodeOfTypeClosestToPos)(tr.doc.resolve(from - 1), [orderedList]);
|
|
98
|
+
var numOfListItemsInOriginalList = nodeOfOriginalList === null || nodeOfOriginalList === void 0 ? void 0 : nodeOfOriginalList.node.childCount;
|
|
83
99
|
|
|
84
100
|
// Set the new split out lists order attribute
|
|
85
|
-
if (typeof originalParentOrderedListNodeOrder === 'number' && numOfListItemsInOriginalList && nodeAfterPastedContentResolvedPos
|
|
101
|
+
if (typeof originalParentOrderedListNodeOrder === 'number' && numOfListItemsInOriginalList && nodeAfterPastedContentResolvedPos &&
|
|
102
|
+
// We only want to apply the node markup if we're referring to the split
|
|
103
|
+
// list rather than the original
|
|
104
|
+
(nodeOfOriginalList === null || nodeOfOriginalList === void 0 ? void 0 : nodeOfOriginalList.node) !== (nodeAfterPastedContentResolvedPos === null || nodeAfterPastedContentResolvedPos === void 0 ? void 0 : nodeAfterPastedContentResolvedPos.node)) {
|
|
86
105
|
tr.setNodeMarkup(nodeAfterPastedContentResolvedPos.pos, orderedList, _objectSpread(_objectSpread({}, nodeAfterPastedContentResolvedPos.node.attrs), {}, {
|
|
87
106
|
order: originalParentOrderedListNodeOrder + numOfListItemsInOriginalList
|
|
88
107
|
}));
|
package/dist/es2019/i18n/cs.js
CHANGED
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
'fabric.editor.addColumnRight': 'Přidat sloupec vpravo',
|
|
15
15
|
'fabric.editor.addCommentOnMedia': 'Přidat komentář',
|
|
16
16
|
'fabric.editor.addImageBorder': 'Přidat ohraničení',
|
|
17
|
+
'fabric.editor.addLoomVideo': 'Přidat video Loom',
|
|
17
18
|
'fabric.editor.addMediaFiles': 'Přidat obrázek, video nebo soubor',
|
|
18
19
|
'fabric.editor.addRowAbove': 'Přidat řádek nad',
|
|
19
20
|
'fabric.editor.addRowBelow': 'Přidat řádek pod',
|
|
@@ -94,6 +95,9 @@ export default {
|
|
|
94
95
|
'fabric.editor.customPanel.description': 'Přidejte poznámku se smajlíkem a barevným pozadím.',
|
|
95
96
|
'fabric.editor.datasource.assetsObjects': 'Aktiva (Beta)',
|
|
96
97
|
'fabric.editor.datasource.assetsObjects.description': 'Pomocí vyhledávání a filtrování vložte objekty z Aktiv do Jira Service Management.',
|
|
98
|
+
'fabric.editor.datasource.assetsObjectsGeneralAvailability': 'Aktiva',
|
|
99
|
+
'fabric.editor.datasource.confluenceSearch': 'Vložit seznam Confluence',
|
|
100
|
+
'fabric.editor.datasource.confluenceSearch.description': 'Vložte seznam výsledků vyhledávání z Confluence s použitím rozšířeného vyhledávání, filtrování a konfigurací.',
|
|
97
101
|
'fabric.editor.datasource.jiraIssue': 'Požadavky Jira',
|
|
98
102
|
'fabric.editor.datasource.jiraIssue.description': 'Vkládání požadavků Jira z Jira Cloud pomocí rozšířeného vyhledávání, filtrování a konfigurací.',
|
|
99
103
|
'fabric.editor.datasourceAppearanceTitle': 'Sloupec',
|
|
@@ -103,6 +107,7 @@ export default {
|
|
|
103
107
|
'fabric.editor.decision': 'Rozhodnutí',
|
|
104
108
|
'fabric.editor.decision.description': 'Zaznamenávejte rozhodnutí, aby se snadněji sledovala',
|
|
105
109
|
'fabric.editor.decisionPlaceholder': 'Přidat rozhodnutí...',
|
|
110
|
+
'fabric.editor.decreaseColumnSize': 'Snížit velikost sloupce',
|
|
106
111
|
'fabric.editor.decreaseSize': 'Snížit velikost',
|
|
107
112
|
'fabric.editor.defaultAltText': 'Dokument',
|
|
108
113
|
'fabric.editor.description': 'Popis',
|
|
@@ -223,6 +228,7 @@ export default {
|
|
|
223
228
|
'fabric.editor.imageBorderSize': 'Velikost',
|
|
224
229
|
'fabric.editor.imageBorderSubtle': 'Útlé',
|
|
225
230
|
'fabric.editor.improvement': 'Vylepšení',
|
|
231
|
+
'fabric.editor.increaseColumnSize': 'Zvýšit velikost sloupce',
|
|
226
232
|
'fabric.editor.increaseSize': 'Zvýšit velikost',
|
|
227
233
|
'fabric.editor.indent': 'Zvětšit odsazení',
|
|
228
234
|
'fabric.editor.info': 'Informace',
|
|
@@ -311,8 +317,8 @@ export default {
|
|
|
311
317
|
'fabric.editor.placeholderTextPlaceholder': 'Přidat text placeholderu.',
|
|
312
318
|
'fabric.editor.plainText': 'Použít prostý text',
|
|
313
319
|
'fabric.editor.quickInsert': 'Rychlé vložení',
|
|
314
|
-
'fabric.editor.recordVideo': '
|
|
315
|
-
'fabric.editor.recordVideo.description': '
|
|
320
|
+
'fabric.editor.recordVideo': 'Nahrávání videa Loom',
|
|
321
|
+
'fabric.editor.recordVideo.description': 'Nahrávejte obrazovku a obraz z kamery.',
|
|
316
322
|
'fabric.editor.redo': 'Znovu',
|
|
317
323
|
'fabric.editor.remove': 'Odebrat',
|
|
318
324
|
'fabric.editor.removeColumns': '{0, plural, one {Odstranit sloupec} few {Odstranit sloupce} many {Odstranit sloupce} other {Odstranit sloupce}}',
|
|
@@ -330,6 +336,7 @@ export default {
|
|
|
330
336
|
'fabric.editor.rowDragHandle': 'Možnosti řádku',
|
|
331
337
|
'fabric.editor.saveButton': 'Uložit',
|
|
332
338
|
'fabric.editor.searchResults': '{itemsLength, plural, one {K dispozici je {itemsLength,number} výsledek vyhledávání. Možnosti můžete procházet pomocí kláves se šipkami nahoru/dolů. Stisknutím klávesy Enter vyberete možnost.} few {K dispozici jsou {itemsLength,number} výsledky vyhledávání. Možnosti můžete procházet pomocí kláves se šipkami nahoru/dolů. Stisknutím klávesy Enter vyberete možnost.} many {K dispozici je {itemsLength,number} výsledku vyhledávání. Možnosti můžete procházet pomocí kláves se šipkami nahoru/dolů. Stisknutím klávesy Enter vyberete možnost.} other {K dispozici je {itemsLength,number} výsledků vyhledávání. Možnosti můžete procházet pomocí kláves se šipkami nahoru/dolů. Stisknutím klávesy Enter vyberete možnost.}}',
|
|
339
|
+
'fabric.editor.selectColumnResize': 'Vybrat sloupec ke změně velikosti',
|
|
333
340
|
'fabric.editor.selectLanguage': 'Vyberte programovací jazyk',
|
|
334
341
|
'fabric.editor.selectTableColumn': 'Vybrat sloupec tabulky',
|
|
335
342
|
'fabric.editor.selectTableRow': 'Vybrat řádek tabulky',
|
|
@@ -413,10 +420,13 @@ export default {
|
|
|
413
420
|
'fabric.editor.unsupportedBlockContent': 'Tento editor zobrazování tohoto obsahu nepodporuje.',
|
|
414
421
|
'fabric.editor.unsupportedContentTooltip': 'Obsah není v tomto editoru k dispozici. Vaše úpravy se při uložení zachovají.',
|
|
415
422
|
'fabric.editor.unsupportedInlineContent': 'Nepodporovaný obsah',
|
|
423
|
+
'fabric.editor.upDown': 'Při použití kláves se šipkami nahoru a dolů v následujícím vstupním poli se aktualizuje datum níže.',
|
|
416
424
|
'fabric.editor.url': 'Zobrazit adresu URL',
|
|
417
425
|
'fabric.editor.urlDescription': 'Zobrazit odkaz jako adresu URL',
|
|
418
426
|
'fabric.editor.urlTitle': 'Adresa URL',
|
|
419
427
|
'fabric.editor.useMarkdown': 'Použít markdown',
|
|
428
|
+
'fabric.editor.viewAndAddCommentsOnMedia': 'Zobrazit a přidat komentáře',
|
|
429
|
+
'fabric.editor.viewCommentOnMedia': 'Zobrazit komentáře',
|
|
420
430
|
'fabric.editor.viewMore': 'Zobrazit více',
|
|
421
431
|
'fabric.editor.visit': 'Otevřít odkaz v novém okně',
|
|
422
432
|
'fabric.editor.warning': 'Varování',
|
package/dist/es2019/i18n/da.js
CHANGED
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
'fabric.editor.addColumnRight': 'Tilføj kolonne til højre',
|
|
15
15
|
'fabric.editor.addCommentOnMedia': 'Tilføj kommentar',
|
|
16
16
|
'fabric.editor.addImageBorder': 'Tilføj kant',
|
|
17
|
+
'fabric.editor.addLoomVideo': 'Tilføj Loom-video',
|
|
17
18
|
'fabric.editor.addMediaFiles': 'Tilføj billede, video eller fil',
|
|
18
19
|
'fabric.editor.addRowAbove': 'Tilføj række ovenfor',
|
|
19
20
|
'fabric.editor.addRowBelow': 'Tilføj række nedenfor',
|
|
@@ -94,6 +95,9 @@ export default {
|
|
|
94
95
|
'fabric.editor.customPanel.description': 'Tilføj en note med en emoji og farvet baggrund',
|
|
95
96
|
'fabric.editor.datasource.assetsObjects': 'Aktiver (beta)',
|
|
96
97
|
'fabric.editor.datasource.assetsObjects.description': 'Indsæt objekter fra Aktiver i Jira Service Management med søgning og filtrering',
|
|
98
|
+
'fabric.editor.datasource.assetsObjectsGeneralAvailability': 'Aktiver',
|
|
99
|
+
'fabric.editor.datasource.confluenceSearch': 'Indsæt Confluence-liste',
|
|
100
|
+
'fabric.editor.datasource.confluenceSearch.description': 'Indsæt liste over søgeresultater fra Confluence med forbedret søgning, filtrering og konfiguration.',
|
|
97
101
|
'fabric.editor.datasource.jiraIssue': 'Jira-sager',
|
|
98
102
|
'fabric.editor.datasource.jiraIssue.description': 'Indsæt Jira-sager fra Jira Cloud med forbedret søgning, filtrering og konfiguration.',
|
|
99
103
|
'fabric.editor.datasourceAppearanceTitle': 'Liste',
|
|
@@ -103,6 +107,7 @@ export default {
|
|
|
103
107
|
'fabric.editor.decision': 'Beslutning',
|
|
104
108
|
'fabric.editor.decision.description': 'Registrér beslutninger, så de er lette at finde igen',
|
|
105
109
|
'fabric.editor.decisionPlaceholder': 'Tilføj en beslutning ...',
|
|
110
|
+
'fabric.editor.decreaseColumnSize': 'Reducer kolonnestørrelse',
|
|
106
111
|
'fabric.editor.decreaseSize': 'Reducer størrelse',
|
|
107
112
|
'fabric.editor.defaultAltText': 'Dokument',
|
|
108
113
|
'fabric.editor.description': 'Beskrivelse',
|
|
@@ -223,6 +228,7 @@ export default {
|
|
|
223
228
|
'fabric.editor.imageBorderSize': 'Størrelse',
|
|
224
229
|
'fabric.editor.imageBorderSubtle': 'Diskret',
|
|
225
230
|
'fabric.editor.improvement': 'Forbedring',
|
|
231
|
+
'fabric.editor.increaseColumnSize': 'Forøg kolonnestørrelse',
|
|
226
232
|
'fabric.editor.increaseSize': 'Gør større',
|
|
227
233
|
'fabric.editor.indent': 'Ryk ind',
|
|
228
234
|
'fabric.editor.info': 'Info',
|
|
@@ -311,8 +317,8 @@ export default {
|
|
|
311
317
|
'fabric.editor.placeholderTextPlaceholder': 'Tilføj midlertidig tekst',
|
|
312
318
|
'fabric.editor.plainText': 'Brug almindelig tekst',
|
|
313
319
|
'fabric.editor.quickInsert': 'Hurtig indsætning',
|
|
314
|
-
'fabric.editor.recordVideo': 'Optag video',
|
|
315
|
-
'fabric.editor.recordVideo.description': 'Optag
|
|
320
|
+
'fabric.editor.recordVideo': 'Optag en Loom-video',
|
|
321
|
+
'fabric.editor.recordVideo.description': 'Optag din skærm og dit kamera',
|
|
316
322
|
'fabric.editor.redo': 'Gentag',
|
|
317
323
|
'fabric.editor.remove': 'Fjern',
|
|
318
324
|
'fabric.editor.removeColumns': '{0, plural, one {Slet kolonne} other {Slet kolonner}}',
|
|
@@ -330,6 +336,7 @@ export default {
|
|
|
330
336
|
'fabric.editor.rowDragHandle': 'Rækkeindstillinger',
|
|
331
337
|
'fabric.editor.saveButton': 'Gem',
|
|
332
338
|
'fabric.editor.searchResults': '{itemsLength, plural, one {{itemsLength,number} søgeresultat tilgængeligt. Brug piletasterne op og ned til at navigere gennem mulighederne. Tryk på Enter for at vælge en mulighed.} other {{itemsLength,number} søgeresultater er tilgængelige. Brug piletasterne op og ned til at navigere gennem mulighederne. Tryk på Enter for at vælge en mulighed.}}',
|
|
339
|
+
'fabric.editor.selectColumnResize': 'Vælg ændring af kolonnestørrelse',
|
|
333
340
|
'fabric.editor.selectLanguage': 'Vælg sprog',
|
|
334
341
|
'fabric.editor.selectTableColumn': 'Vælg tabelkolonne',
|
|
335
342
|
'fabric.editor.selectTableRow': 'Vælg tabelrække',
|
|
@@ -413,10 +420,13 @@ export default {
|
|
|
413
420
|
'fabric.editor.unsupportedBlockContent': 'Denne editor understøtter ikke visning af dette indhold',
|
|
414
421
|
'fabric.editor.unsupportedContentTooltip': 'Indholdet er ikke tilgængeligt i denne editor. Det bevares, når du redigerer og gemmer',
|
|
415
422
|
'fabric.editor.unsupportedInlineContent': 'Ikke-understøttet indhold',
|
|
423
|
+
'fabric.editor.upDown': 'Når du bruger piletasterne op og ned i følgende indtastningsfelt opdateres datoen nedenfor',
|
|
416
424
|
'fabric.editor.url': 'Visnings-URL',
|
|
417
425
|
'fabric.editor.urlDescription': 'Vis link som URL-adresse',
|
|
418
426
|
'fabric.editor.urlTitle': 'URL-adresse',
|
|
419
427
|
'fabric.editor.useMarkdown': 'Brug markdown',
|
|
428
|
+
'fabric.editor.viewAndAddCommentsOnMedia': 'Se og tilføj kommentarer',
|
|
429
|
+
'fabric.editor.viewCommentOnMedia': 'Se kommentarer',
|
|
420
430
|
'fabric.editor.viewMore': 'Vis mere',
|
|
421
431
|
'fabric.editor.visit': 'Åbn link i et nyt vindue',
|
|
422
432
|
'fabric.editor.warning': 'Advarsel',
|
package/dist/es2019/i18n/de.js
CHANGED
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
'fabric.editor.addColumnRight': 'Spalte rechts hinzufügen',
|
|
15
15
|
'fabric.editor.addCommentOnMedia': 'Kommentar hinzufügen',
|
|
16
16
|
'fabric.editor.addImageBorder': 'Rahmen hinzufügen',
|
|
17
|
+
'fabric.editor.addLoomVideo': 'Loom-Video hinzufügen',
|
|
17
18
|
'fabric.editor.addMediaFiles': 'Bild, Video oder Datei hinzufügen',
|
|
18
19
|
'fabric.editor.addRowAbove': 'Zeile oberhalb hinzufügen',
|
|
19
20
|
'fabric.editor.addRowBelow': 'Zeile unterhalb hinzufügen',
|
|
@@ -94,6 +95,9 @@ export default {
|
|
|
94
95
|
'fabric.editor.customPanel.description': 'Fügen Sie einen Hinweis mit Emoji und farbigem Hintergrund hinzu',
|
|
95
96
|
'fabric.editor.datasource.assetsObjects': 'Assets (Beta)',
|
|
96
97
|
'fabric.editor.datasource.assetsObjects.description': 'Fügen Sie Objekte aus Assets in Jira Service Management mit Such- und Filterfunktionen ein.',
|
|
98
|
+
'fabric.editor.datasource.assetsObjectsGeneralAvailability': 'Assets',
|
|
99
|
+
'fabric.editor.datasource.confluenceSearch': 'Confluence-Liste einfügen',
|
|
100
|
+
'fabric.editor.datasource.confluenceSearch.description': 'Fügen Sie eine Liste der Suchergebnisse von Confluence mit verbesserter Suche, Filterung und Konfiguration ein.',
|
|
97
101
|
'fabric.editor.datasource.jiraIssue': 'Jira-Vorgänge',
|
|
98
102
|
'fabric.editor.datasource.jiraIssue.description': 'Fügen Sie Jira-Vorgänge aus Jira Cloud mit verbesserten Such-, Filter- und Konfigurationsfunktionen ein.',
|
|
99
103
|
'fabric.editor.datasourceAppearanceTitle': 'Liste',
|
|
@@ -103,6 +107,7 @@ export default {
|
|
|
103
107
|
'fabric.editor.decision': 'Entscheidung',
|
|
104
108
|
'fabric.editor.decision.description': 'Entscheidungen erfassen, um sie leicht zu verfolgen',
|
|
105
109
|
'fabric.editor.decisionPlaceholder': 'Entscheidung hinzufügen …',
|
|
110
|
+
'fabric.editor.decreaseColumnSize': 'Spaltengröße erhöhen',
|
|
106
111
|
'fabric.editor.decreaseSize': 'Verkleinern',
|
|
107
112
|
'fabric.editor.defaultAltText': 'Dokument',
|
|
108
113
|
'fabric.editor.description': 'Beschreibung',
|
|
@@ -223,6 +228,7 @@ export default {
|
|
|
223
228
|
'fabric.editor.imageBorderSize': 'Größe',
|
|
224
229
|
'fabric.editor.imageBorderSubtle': 'Schmal',
|
|
225
230
|
'fabric.editor.improvement': 'Verbesserung',
|
|
231
|
+
'fabric.editor.increaseColumnSize': 'Spaltengröße verringern',
|
|
226
232
|
'fabric.editor.increaseSize': 'Vergrößern',
|
|
227
233
|
'fabric.editor.indent': 'Einzug vergrößern',
|
|
228
234
|
'fabric.editor.info': 'Info',
|
|
@@ -311,8 +317,8 @@ export default {
|
|
|
311
317
|
'fabric.editor.placeholderTextPlaceholder': 'Platzhaltertext hinzufügen',
|
|
312
318
|
'fabric.editor.plainText': 'Nur-Text verwenden',
|
|
313
319
|
'fabric.editor.quickInsert': 'Schnelleinfügung',
|
|
314
|
-
'fabric.editor.recordVideo': 'Video aufnehmen',
|
|
315
|
-
'fabric.editor.recordVideo.description': '
|
|
320
|
+
'fabric.editor.recordVideo': 'Loom-Video aufnehmen',
|
|
321
|
+
'fabric.editor.recordVideo.description': 'Nutzen Sie die Bildschirm- und Kameraaufnahme.',
|
|
316
322
|
'fabric.editor.redo': 'Wiederherstellen',
|
|
317
323
|
'fabric.editor.remove': 'Entfernen',
|
|
318
324
|
'fabric.editor.removeColumns': '{0, plural, one {Spalte löschen} other {Spalten löschen}}',
|
|
@@ -330,6 +336,7 @@ export default {
|
|
|
330
336
|
'fabric.editor.rowDragHandle': 'Zeilenoptionen',
|
|
331
337
|
'fabric.editor.saveButton': 'Speichern',
|
|
332
338
|
'fabric.editor.searchResults': '{itemsLength, plural, one {{itemsLength,number} Suchergebnis verfügbar. Benutzen Sie die Pfeiltasten nach oben und unten, um zwischen den Optionen zu navigieren. Drücken Sie die Eingabetaste, um eine Option auszuwählen.} other {{itemsLength,number} Suchergebnisse verfügbar. Benutzen Sie die Pfeiltasten nach oben und unten, um zwischen den Optionen zu navigieren. Drücken Sie die Eingabetaste, um eine Option auszuwählen.}}',
|
|
339
|
+
'fabric.editor.selectColumnResize': 'Spaltengröße auswählen',
|
|
333
340
|
'fabric.editor.selectLanguage': 'Sprache auswählen',
|
|
334
341
|
'fabric.editor.selectTableColumn': 'Spalte auswählen',
|
|
335
342
|
'fabric.editor.selectTableRow': 'Zeile auswählen',
|
|
@@ -413,10 +420,13 @@ export default {
|
|
|
413
420
|
'fabric.editor.unsupportedBlockContent': 'Dieser Editor unterstützt die Anzeige dieses Inhalts nicht',
|
|
414
421
|
'fabric.editor.unsupportedContentTooltip': 'Der Inhalt ist in diesem Editor nicht verfügbar, dies bleibt durch Bearbeiten und Speichern erhalten.',
|
|
415
422
|
'fabric.editor.unsupportedInlineContent': 'Nicht unterstützter Inhalt',
|
|
423
|
+
'fabric.editor.upDown': 'Bei Verwendung der Aufwärts- und Abwärtspfeiltasten im folgenden Eingabefeld wird das Datum unten aktualisiert',
|
|
416
424
|
'fabric.editor.url': 'URL anzeigen',
|
|
417
425
|
'fabric.editor.urlDescription': 'Link als URL anzeigen',
|
|
418
426
|
'fabric.editor.urlTitle': 'URL',
|
|
419
427
|
'fabric.editor.useMarkdown': 'Markdown verwenden',
|
|
428
|
+
'fabric.editor.viewAndAddCommentsOnMedia': 'Kommentare anzeigen und hinzufügen',
|
|
429
|
+
'fabric.editor.viewCommentOnMedia': 'Kommentare anzeigen',
|
|
420
430
|
'fabric.editor.viewMore': 'Mehr anzeigen',
|
|
421
431
|
'fabric.editor.visit': 'Link in neuem Fenster öffnen',
|
|
422
432
|
'fabric.editor.warning': 'Warnung',
|