@atlaskit/emoji 67.0.4 → 67.0.6
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 +12 -0
- package/dist/cjs/admin.js +0 -2
- package/dist/cjs/api/EmojiLoader.js +1 -8
- package/dist/cjs/api/EmojiRepository.js +16 -80
- package/dist/cjs/api/EmojiRepositoryRegex.js +2 -0
- package/dist/cjs/api/EmojiResource.js +20 -170
- package/dist/cjs/api/EmojiUtils.js +27 -67
- package/dist/cjs/api/internal/Comparators.js +8 -62
- package/dist/cjs/api/internal/UsageFrequencyTracker.js +4 -34
- package/dist/cjs/api/media/MediaEmojiCache.js +8 -58
- package/dist/cjs/api/media/MediaImageLoader.js +4 -28
- package/dist/cjs/api/media/SiteEmojiResource.js +14 -55
- package/dist/cjs/api/media/TokenManager.js +4 -18
- package/dist/cjs/components/common/CachingEmoji.js +18 -52
- package/dist/cjs/components/common/DeleteButton.js +0 -10
- package/dist/cjs/components/common/Emoji.js +44 -102
- package/dist/cjs/components/common/EmojiActions.js +25 -61
- package/dist/cjs/components/common/EmojiButton.js +5 -18
- package/dist/cjs/components/common/EmojiDeletePreview.js +7 -38
- package/dist/cjs/components/common/EmojiErrorMessage.js +3 -9
- package/dist/cjs/components/common/EmojiPlaceholder.js +7 -16
- package/dist/cjs/components/common/EmojiPreviewComponent.js +1 -6
- package/dist/cjs/components/common/EmojiUploadPicker.js +31 -86
- package/dist/cjs/components/common/EmojiUploadPreview.js +7 -36
- package/dist/cjs/components/common/FileChooser.js +5 -18
- package/dist/cjs/components/common/LoadingEmojiComponent.js +5 -24
- package/dist/cjs/components/common/Popup.js +16 -44
- package/dist/cjs/components/common/RecordSelectionDefault.js +0 -7
- package/dist/cjs/components/common/ResourcedEmoji.js +0 -15
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +29 -69
- package/dist/cjs/components/common/RetryableButton.js +4 -19
- package/dist/cjs/components/common/Scrollable.js +6 -36
- package/dist/cjs/components/common/ToneSelector.js +3 -24
- package/dist/cjs/components/common/UfoErrorBoundary.js +1 -19
- package/dist/cjs/components/common/UploadEmoji.js +2 -13
- package/dist/cjs/components/common/internal-types.js +0 -1
- package/dist/cjs/components/common/setSkinToneAriaLabelText.js +0 -6
- package/dist/cjs/components/common/styles.js +9 -17
- package/dist/cjs/components/hooks.js +0 -2
- package/dist/cjs/components/i18n.js +0 -2
- package/dist/cjs/components/picker/CategorySelector.js +4 -50
- package/dist/cjs/components/picker/CategoryTracker.js +3 -14
- package/dist/cjs/components/picker/EmojiPicker.js +3 -42
- package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +2 -10
- package/dist/cjs/components/picker/EmojiPickerComponent.js +59 -140
- package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +7 -14
- package/dist/cjs/components/picker/EmojiPickerFooter.js +1 -8
- package/dist/cjs/components/picker/EmojiPickerList.js +32 -83
- package/dist/cjs/components/picker/EmojiPickerListSearch.js +11 -48
- package/dist/cjs/components/picker/EmojiPickerSizes.js +1 -2
- package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +1 -38
- package/dist/cjs/components/picker/VirtualList.js +11 -41
- package/dist/cjs/components/picker/categories.js +0 -14
- package/dist/cjs/components/picker/styles.js +15 -20
- package/dist/cjs/components/picker/utils.js +0 -4
- package/dist/cjs/components/typeahead/EmojiTypeAhead.js +10 -45
- package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +11 -74
- package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +7 -37
- package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +10 -63
- package/dist/cjs/components/typeahead/styles.js +2 -4
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +6 -42
- package/dist/cjs/components/uploader/EmojiUploader.js +3 -31
- package/dist/cjs/components/uploader/styles.js +3 -4
- package/dist/cjs/context/EmojiCommonProvider.js +0 -6
- package/dist/cjs/context/EmojiContext.js +0 -2
- package/dist/cjs/context/EmojiContextProvider.js +1 -17
- package/dist/cjs/element.js +0 -4
- package/dist/cjs/hooks/useEmoji.js +5 -20
- package/dist/cjs/hooks/useEmojiContext.js +0 -4
- package/dist/cjs/hooks/usePrevious.js +0 -2
- package/dist/cjs/i18n/cs.js +0 -1
- package/dist/cjs/i18n/da.js +0 -1
- package/dist/cjs/i18n/de.js +0 -1
- package/dist/cjs/i18n/en.js +0 -1
- package/dist/cjs/i18n/en_GB.js +0 -1
- package/dist/cjs/i18n/en_ZZ.js +0 -1
- package/dist/cjs/i18n/es.js +0 -1
- package/dist/cjs/i18n/et.js +0 -1
- package/dist/cjs/i18n/fi.js +0 -1
- package/dist/cjs/i18n/fr.js +0 -1
- package/dist/cjs/i18n/hu.js +0 -1
- package/dist/cjs/i18n/index.js +0 -30
- package/dist/cjs/i18n/it.js +0 -1
- package/dist/cjs/i18n/ja.js +0 -1
- package/dist/cjs/i18n/ko.js +0 -1
- package/dist/cjs/i18n/nb.js +0 -1
- package/dist/cjs/i18n/nl.js +0 -1
- package/dist/cjs/i18n/pl.js +0 -1
- package/dist/cjs/i18n/pt_BR.js +0 -1
- package/dist/cjs/i18n/pt_PT.js +0 -1
- package/dist/cjs/i18n/ru.js +0 -1
- package/dist/cjs/i18n/sk.js +0 -1
- package/dist/cjs/i18n/sv.js +0 -1
- package/dist/cjs/i18n/th.js +0 -1
- package/dist/cjs/i18n/tr.js +0 -1
- package/dist/cjs/i18n/uk.js +0 -1
- package/dist/cjs/i18n/vi.js +0 -1
- package/dist/cjs/i18n/zh.js +0 -1
- package/dist/cjs/i18n/zh_TW.js +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/picker.js +0 -2
- package/dist/cjs/resource.js +0 -5
- package/dist/cjs/typeahead.js +0 -3
- package/dist/cjs/types.js +0 -17
- package/dist/cjs/util/DuplicateLimitedQueue.js +13 -31
- package/dist/cjs/util/StoredDuplicateLimitedQueue.js +4 -26
- package/dist/cjs/util/analytics/analytics.js +14 -97
- package/dist/cjs/util/analytics/index.js +0 -4
- package/dist/cjs/util/analytics/samplingUfo.js +3 -59
- package/dist/cjs/util/analytics/ufoExperiences.js +0 -12
- package/dist/cjs/util/analytics/useSampledUFOComponentExperience.js +3 -10
- package/dist/cjs/util/constants.js +5 -5
- package/dist/cjs/util/filters.js +0 -4
- package/dist/cjs/util/image.js +3 -18
- package/dist/cjs/util/logger.js +0 -6
- package/dist/cjs/util/mouse.js +3 -6
- package/dist/cjs/util/shared-styles.js +0 -4
- package/dist/cjs/util/storage-available.js +10 -8
- package/dist/cjs/util/type-helpers.js +2 -57
- package/dist/cjs/util/useInView.js +0 -6
- package/dist/cjs/utils.js +0 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/EmojiLoader.js +2 -4
- package/dist/es2019/api/EmojiRepository.js +15 -82
- package/dist/es2019/api/EmojiRepositoryRegex.js +2 -0
- package/dist/es2019/api/EmojiResource.js +21 -114
- package/dist/es2019/api/EmojiUtils.js +11 -18
- package/dist/es2019/api/internal/Comparators.js +12 -48
- package/dist/es2019/api/internal/UsageFrequencyTracker.js +7 -24
- package/dist/es2019/api/media/MediaEmojiCache.js +9 -52
- package/dist/es2019/api/media/MediaImageLoader.js +2 -16
- package/dist/es2019/api/media/SiteEmojiResource.js +11 -31
- package/dist/es2019/api/media/TokenManager.js +4 -14
- package/dist/es2019/components/common/CachingEmoji.js +5 -12
- package/dist/es2019/components/common/DeleteButton.js +2 -3
- package/dist/es2019/components/common/Emoji.js +19 -47
- package/dist/es2019/components/common/EmojiActions.js +3 -16
- package/dist/es2019/components/common/EmojiButton.js +0 -5
- package/dist/es2019/components/common/EmojiDeletePreview.js +0 -11
- package/dist/es2019/components/common/EmojiErrorMessage.js +1 -2
- package/dist/es2019/components/common/EmojiPlaceholder.js +0 -5
- package/dist/es2019/components/common/EmojiPreviewComponent.js +1 -0
- package/dist/es2019/components/common/EmojiUploadPicker.js +2 -25
- package/dist/es2019/components/common/EmojiUploadPreview.js +0 -6
- package/dist/es2019/components/common/FileChooser.js +0 -6
- package/dist/es2019/components/common/LoadingEmojiComponent.js +2 -14
- package/dist/es2019/components/common/Popup.js +4 -22
- package/dist/es2019/components/common/RecordSelectionDefault.js +1 -1
- package/dist/es2019/components/common/ResourcedEmoji.js +1 -6
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +2 -13
- package/dist/es2019/components/common/RetryableButton.js +1 -8
- package/dist/es2019/components/common/Scrollable.js +2 -12
- package/dist/es2019/components/common/ToneSelector.js +2 -8
- package/dist/es2019/components/common/UfoErrorBoundary.js +0 -2
- package/dist/es2019/components/common/UploadEmoji.js +2 -3
- package/dist/es2019/components/common/internal-types.js +0 -1
- package/dist/es2019/components/common/styles.js +12 -8
- package/dist/es2019/components/picker/CategorySelector.js +0 -22
- package/dist/es2019/components/picker/CategoryTracker.js +3 -13
- package/dist/es2019/components/picker/EmojiPicker.js +3 -17
- package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +2 -3
- package/dist/es2019/components/picker/EmojiPickerComponent.js +10 -43
- package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +0 -2
- package/dist/es2019/components/picker/EmojiPickerFooter.js +0 -2
- package/dist/es2019/components/picker/EmojiPickerList.js +10 -45
- package/dist/es2019/components/picker/EmojiPickerListSearch.js +2 -19
- package/dist/es2019/components/picker/EmojiPickerSizes.js +1 -0
- package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +1 -8
- package/dist/es2019/components/picker/VirtualList.js +3 -24
- package/dist/es2019/components/picker/styles.js +22 -10
- package/dist/es2019/components/picker/utils.js +0 -1
- package/dist/es2019/components/typeahead/EmojiTypeAhead.js +4 -21
- package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +0 -42
- package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +0 -7
- package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +4 -45
- package/dist/es2019/components/typeahead/styles.js +2 -1
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +2 -15
- package/dist/es2019/components/uploader/EmojiUploader.js +2 -10
- package/dist/es2019/components/uploader/styles.js +5 -2
- package/dist/es2019/context/EmojiCommonProvider.js +0 -2
- package/dist/es2019/context/EmojiContextProvider.js +0 -1
- package/dist/es2019/hooks/useEmoji.js +2 -6
- package/dist/es2019/hooks/useEmojiContext.js +1 -1
- package/dist/es2019/index.js +12 -6
- package/dist/es2019/types.js +1 -11
- package/dist/es2019/util/DuplicateLimitedQueue.js +13 -35
- package/dist/es2019/util/StoredDuplicateLimitedQueue.js +5 -12
- package/dist/es2019/util/analytics/analytics.js +7 -23
- package/dist/es2019/util/analytics/samplingUfo.js +6 -32
- package/dist/es2019/util/analytics/ufoExperiences.js +0 -3
- package/dist/es2019/util/analytics/useSampledUFOComponentExperience.js +3 -7
- package/dist/es2019/util/constants.js +5 -4
- package/dist/es2019/util/filters.js +0 -3
- package/dist/es2019/util/image.js +3 -8
- package/dist/es2019/util/mouse.js +3 -3
- package/dist/es2019/util/storage-available.js +10 -7
- package/dist/es2019/util/type-helpers.js +6 -9
- package/dist/es2019/util/useInView.js +0 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiLoader.js +2 -6
- package/dist/esm/api/EmojiRepository.js +16 -71
- package/dist/esm/api/EmojiRepositoryRegex.js +2 -0
- package/dist/esm/api/EmojiResource.js +20 -158
- package/dist/esm/api/EmojiUtils.js +27 -47
- package/dist/esm/api/internal/Comparators.js +12 -53
- package/dist/esm/api/internal/UsageFrequencyTracker.js +5 -29
- package/dist/esm/api/media/MediaEmojiCache.js +9 -55
- package/dist/esm/api/media/MediaImageLoader.js +4 -27
- package/dist/esm/api/media/SiteEmojiResource.js +14 -43
- package/dist/esm/api/media/TokenManager.js +6 -16
- package/dist/esm/components/common/CachingEmoji.js +18 -30
- package/dist/esm/components/common/DeleteButton.js +2 -3
- package/dist/esm/components/common/Emoji.js +44 -78
- package/dist/esm/components/common/EmojiActions.js +25 -40
- package/dist/esm/components/common/EmojiButton.js +4 -9
- package/dist/esm/components/common/EmojiDeletePreview.js +7 -24
- package/dist/esm/components/common/EmojiErrorMessage.js +3 -4
- package/dist/esm/components/common/EmojiPlaceholder.js +6 -11
- package/dist/esm/components/common/EmojiPreviewComponent.js +1 -0
- package/dist/esm/components/common/EmojiUploadPicker.js +30 -64
- package/dist/esm/components/common/EmojiUploadPreview.js +7 -19
- package/dist/esm/components/common/FileChooser.js +5 -11
- package/dist/esm/components/common/LoadingEmojiComponent.js +4 -20
- package/dist/esm/components/common/Popup.js +16 -36
- package/dist/esm/components/common/RecordSelectionDefault.js +1 -1
- package/dist/esm/components/common/ResourcedEmoji.js +1 -6
- package/dist/esm/components/common/ResourcedEmojiComponent.js +29 -51
- package/dist/esm/components/common/RetryableButton.js +4 -11
- package/dist/esm/components/common/Scrollable.js +6 -29
- package/dist/esm/components/common/ToneSelector.js +3 -13
- package/dist/esm/components/common/UfoErrorBoundary.js +1 -13
- package/dist/esm/components/common/UploadEmoji.js +2 -3
- package/dist/esm/components/common/internal-types.js +0 -1
- package/dist/esm/components/common/setSkinToneAriaLabelText.js +0 -2
- package/dist/esm/components/common/styles.js +12 -9
- package/dist/esm/components/picker/CategorySelector.js +4 -32
- package/dist/esm/components/picker/CategoryTracker.js +3 -13
- package/dist/esm/components/picker/EmojiPicker.js +5 -27
- package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +4 -5
- package/dist/esm/components/picker/EmojiPickerComponent.js +60 -114
- package/dist/esm/components/picker/EmojiPickerEmojiRow.js +6 -8
- package/dist/esm/components/picker/EmojiPickerFooter.js +0 -2
- package/dist/esm/components/picker/EmojiPickerList.js +32 -77
- package/dist/esm/components/picker/EmojiPickerListSearch.js +11 -35
- package/dist/esm/components/picker/EmojiPickerSizes.js +1 -0
- package/dist/esm/components/picker/EmojiPickerVirtualItems.js +2 -26
- package/dist/esm/components/picker/VirtualList.js +11 -28
- package/dist/esm/components/picker/styles.js +22 -11
- package/dist/esm/components/picker/utils.js +0 -1
- package/dist/esm/components/typeahead/EmojiTypeAhead.js +11 -39
- package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +11 -65
- package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +7 -24
- package/dist/esm/components/typeahead/EmojiTypeAheadList.js +10 -53
- package/dist/esm/components/typeahead/styles.js +2 -1
- package/dist/esm/components/uploader/EmojiUploadComponent.js +5 -25
- package/dist/esm/components/uploader/EmojiUploader.js +4 -22
- package/dist/esm/components/uploader/styles.js +5 -2
- package/dist/esm/context/EmojiCommonProvider.js +0 -2
- package/dist/esm/context/EmojiContextProvider.js +1 -6
- package/dist/esm/hooks/useEmoji.js +5 -13
- package/dist/esm/hooks/useEmojiContext.js +1 -1
- package/dist/esm/index.js +12 -6
- package/dist/esm/types.js +1 -11
- package/dist/esm/util/DuplicateLimitedQueue.js +13 -29
- package/dist/esm/util/StoredDuplicateLimitedQueue.js +5 -22
- package/dist/esm/util/analytics/analytics.js +14 -50
- package/dist/esm/util/analytics/samplingUfo.js +3 -51
- package/dist/esm/util/analytics/ufoExperiences.js +0 -3
- package/dist/esm/util/analytics/useSampledUFOComponentExperience.js +3 -7
- package/dist/esm/util/constants.js +5 -4
- package/dist/esm/util/filters.js +0 -3
- package/dist/esm/util/image.js +3 -8
- package/dist/esm/util/logger.js +0 -2
- package/dist/esm/util/mouse.js +3 -3
- package/dist/esm/util/storage-available.js +10 -7
- package/dist/esm/util/type-helpers.js +2 -12
- package/dist/esm/util/useInView.js +0 -2
- package/dist/esm/version.json +1 -1
- package/package.json +6 -4
|
@@ -1,53 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.shouldUseAltRepresentation = exports.isMediaApiUrl = exports.getPixelRatio = exports.getAltRepresentation = exports.emojiRequest = exports.denormaliseSkinEmoji = exports.denormaliseServiceRepresentation = exports.denormaliseServiceAltRepresentation = exports.denormaliseEmojiServiceResponse = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
-
|
|
14
10
|
var _utilServiceSupport = require("@atlaskit/util-service-support");
|
|
15
|
-
|
|
16
11
|
var _typeHelpers = require("../util/type-helpers");
|
|
17
|
-
|
|
18
12
|
var _logger = _interopRequireDefault(require("../util/logger"));
|
|
19
|
-
|
|
20
13
|
var _excluded = ["getRatio"],
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
_excluded2 = ["queryParams"],
|
|
15
|
+
_excluded3 = ["representation", "altRepresentations"],
|
|
16
|
+
_excluded4 = ["representation", "skinVariations", "altRepresentations"];
|
|
25
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
26
|
-
|
|
27
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
28
|
-
|
|
29
19
|
var emojiRequest = function emojiRequest(provider, options) {
|
|
30
20
|
var _provider$getRatio = provider.getRatio,
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
getRatio = _provider$getRatio === void 0 ? getPixelRatio : _provider$getRatio,
|
|
22
|
+
serviceConfig = (0, _objectWithoutProperties2.default)(provider, _excluded);
|
|
33
23
|
var scaleQueryParams = calculateScale(getRatio);
|
|
34
|
-
|
|
35
24
|
var _ref = options || {},
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
_ref$queryParams = _ref.queryParams,
|
|
26
|
+
queryParams = _ref$queryParams === void 0 ? {} : _ref$queryParams,
|
|
27
|
+
otherOptions = (0, _objectWithoutProperties2.default)(_ref, _excluded2);
|
|
40
28
|
var requestOptions = _objectSpread(_objectSpread({}, otherOptions), {}, {
|
|
41
29
|
queryParams: _objectSpread(_objectSpread(_objectSpread({}, scaleQueryParams), queryParams), {}, {
|
|
42
30
|
preferredRepresentation: 'IMAGE'
|
|
43
31
|
})
|
|
44
32
|
});
|
|
45
|
-
|
|
46
33
|
return _utilServiceSupport.utils.requestService(serviceConfig, requestOptions);
|
|
47
34
|
};
|
|
48
|
-
|
|
49
35
|
exports.emojiRequest = emojiRequest;
|
|
50
|
-
|
|
51
36
|
var calculateScale = function calculateScale(getRatio) {
|
|
52
37
|
// Retina display
|
|
53
38
|
if (getRatio() > 1) {
|
|
@@ -55,49 +40,39 @@ var calculateScale = function calculateScale(getRatio) {
|
|
|
55
40
|
scale: 'XHDPI',
|
|
56
41
|
altScale: 'XXXHDPI'
|
|
57
42
|
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
43
|
+
}
|
|
44
|
+
// Default set used for desktop
|
|
61
45
|
return {
|
|
62
46
|
altScale: 'XHDPI'
|
|
63
47
|
};
|
|
64
48
|
};
|
|
65
|
-
|
|
66
49
|
var getPixelRatio = function getPixelRatio() {
|
|
67
50
|
if (typeof window === 'undefined') {
|
|
68
51
|
return 0;
|
|
69
52
|
}
|
|
70
|
-
|
|
71
53
|
return window.devicePixelRatio;
|
|
72
54
|
};
|
|
73
|
-
|
|
74
55
|
exports.getPixelRatio = getPixelRatio;
|
|
75
|
-
|
|
76
56
|
var getAltRepresentation = function getAltRepresentation(reps) {
|
|
77
57
|
// Invalid reps handled outside function - logic may change depending what the service returns
|
|
78
58
|
return reps[calculateScale(getPixelRatio).altScale];
|
|
79
59
|
};
|
|
80
|
-
|
|
81
60
|
exports.getAltRepresentation = getAltRepresentation;
|
|
82
|
-
|
|
83
61
|
var isMediaApiUrl = function isMediaApiUrl(url, meta) {
|
|
84
62
|
return !!(meta && meta.mediaApiToken && url.indexOf(meta.mediaApiToken.url) === 0);
|
|
85
63
|
};
|
|
86
|
-
|
|
87
64
|
exports.isMediaApiUrl = isMediaApiUrl;
|
|
88
|
-
|
|
89
65
|
var denormaliseServiceRepresentation = function denormaliseServiceRepresentation(representation, meta) {
|
|
90
66
|
if ((0, _typeHelpers.isSpriteServiceRepresentation)(representation) && meta && meta.spriteSheets) {
|
|
91
67
|
var _ref2 = representation,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
68
|
+
height = _ref2.height,
|
|
69
|
+
width = _ref2.width,
|
|
70
|
+
x = _ref2.x,
|
|
71
|
+
y = _ref2.y,
|
|
72
|
+
xIndex = _ref2.xIndex,
|
|
73
|
+
yIndex = _ref2.yIndex,
|
|
74
|
+
spriteRef = _ref2.spriteRef;
|
|
99
75
|
var spriteSheet = meta.spriteSheets[spriteRef];
|
|
100
|
-
|
|
101
76
|
if (spriteSheet) {
|
|
102
77
|
return {
|
|
103
78
|
sprite: spriteSheet,
|
|
@@ -111,43 +86,35 @@ var denormaliseServiceRepresentation = function denormaliseServiceRepresentation
|
|
|
111
86
|
}
|
|
112
87
|
} else if ((0, _typeHelpers.isImageRepresentation)(representation)) {
|
|
113
88
|
var _height = representation.height,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
89
|
+
_width = representation.width,
|
|
90
|
+
imagePath = representation.imagePath;
|
|
117
91
|
if (isMediaApiUrl(imagePath, meta)) {
|
|
118
92
|
return (0, _typeHelpers.convertImageToMediaRepresentation)(representation);
|
|
119
93
|
}
|
|
120
|
-
|
|
121
94
|
return {
|
|
122
95
|
height: _height,
|
|
123
96
|
width: _width,
|
|
124
97
|
imagePath: imagePath
|
|
125
98
|
};
|
|
126
99
|
}
|
|
127
|
-
|
|
128
100
|
(0, _logger.default)('failed conversion for representation', representation, meta);
|
|
129
101
|
return undefined;
|
|
130
102
|
};
|
|
131
|
-
|
|
132
103
|
exports.denormaliseServiceRepresentation = denormaliseServiceRepresentation;
|
|
133
|
-
|
|
134
104
|
var denormaliseServiceAltRepresentation = function denormaliseServiceAltRepresentation(altReps, meta) {
|
|
135
105
|
return !altReps || Object.keys(altReps).length === 0 ? undefined : denormaliseServiceRepresentation(getAltRepresentation(altReps), meta);
|
|
136
106
|
};
|
|
137
|
-
|
|
138
107
|
exports.denormaliseServiceAltRepresentation = denormaliseServiceAltRepresentation;
|
|
139
|
-
|
|
140
108
|
var denormaliseSkinEmoji = function denormaliseSkinEmoji(emoji, meta) {
|
|
141
109
|
if (!emoji.skinVariations) {
|
|
142
110
|
return [];
|
|
143
111
|
}
|
|
144
|
-
|
|
145
112
|
var skinEmoji = emoji.skinVariations;
|
|
146
113
|
var baseId = emoji.id;
|
|
147
114
|
return skinEmoji.map(function (skin) {
|
|
148
115
|
var representation = skin.representation,
|
|
149
|
-
|
|
150
|
-
|
|
116
|
+
altRepresentations = skin.altRepresentations,
|
|
117
|
+
other = (0, _objectWithoutProperties2.default)(skin, _excluded3);
|
|
151
118
|
return _objectSpread({
|
|
152
119
|
baseId: baseId,
|
|
153
120
|
representation: denormaliseServiceRepresentation(representation, meta),
|
|
@@ -155,30 +122,27 @@ var denormaliseSkinEmoji = function denormaliseSkinEmoji(emoji, meta) {
|
|
|
155
122
|
}, other);
|
|
156
123
|
});
|
|
157
124
|
};
|
|
125
|
+
|
|
158
126
|
/**
|
|
159
127
|
* Denormalised an emoji response (emojis + sprite references) into an array of
|
|
160
128
|
* emoji with local sprite definitions.
|
|
161
129
|
*/
|
|
162
|
-
|
|
163
|
-
|
|
164
130
|
exports.denormaliseSkinEmoji = denormaliseSkinEmoji;
|
|
165
|
-
|
|
166
131
|
var denormaliseEmojiServiceResponse = function denormaliseEmojiServiceResponse(emojiData) {
|
|
167
132
|
var emojis = emojiData.emojis.map(function (emoji) {
|
|
168
133
|
var newRepresentation = denormaliseServiceRepresentation(emoji.representation, emojiData.meta);
|
|
169
134
|
var altRepresentation = denormaliseServiceAltRepresentation(emoji.altRepresentations, emojiData.meta);
|
|
170
|
-
var newSkinVariations = denormaliseSkinEmoji(emoji, emojiData.meta);
|
|
135
|
+
var newSkinVariations = denormaliseSkinEmoji(emoji, emojiData.meta);
|
|
171
136
|
|
|
137
|
+
// create trimmedServiceDesc which is emoji with no representations or skinVariations
|
|
172
138
|
var representation = emoji.representation,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
139
|
+
skinVariations = emoji.skinVariations,
|
|
140
|
+
altRepresentations = emoji.altRepresentations,
|
|
141
|
+
trimmedServiceDesc = (0, _objectWithoutProperties2.default)(emoji, _excluded4);
|
|
177
142
|
var response = _objectSpread(_objectSpread({}, trimmedServiceDesc), {}, {
|
|
178
143
|
representation: newRepresentation,
|
|
179
144
|
skinVariations: newSkinVariations
|
|
180
145
|
});
|
|
181
|
-
|
|
182
146
|
return (0, _typeHelpers.buildEmojiDescriptionWithAltRepresentation)(response, altRepresentation);
|
|
183
147
|
});
|
|
184
148
|
var mediaApiToken = emojiData.meta && emojiData.meta.mediaApiToken;
|
|
@@ -187,15 +151,11 @@ var denormaliseEmojiServiceResponse = function denormaliseEmojiServiceResponse(e
|
|
|
187
151
|
mediaApiToken: mediaApiToken
|
|
188
152
|
};
|
|
189
153
|
};
|
|
190
|
-
|
|
191
154
|
exports.denormaliseEmojiServiceResponse = denormaliseEmojiServiceResponse;
|
|
192
|
-
|
|
193
155
|
var getHeight = function getHeight(fitToHeight) {
|
|
194
156
|
return getPixelRatio() > 1 ? fitToHeight * 2 : fitToHeight;
|
|
195
157
|
};
|
|
196
|
-
|
|
197
158
|
var shouldUseAltRepresentation = function shouldUseAltRepresentation(emoji, fitToHeight) {
|
|
198
159
|
return !!(fitToHeight && emoji.altRepresentation && getHeight(fitToHeight) > emoji.representation.height);
|
|
199
160
|
};
|
|
200
|
-
|
|
201
161
|
exports.shouldUseAltRepresentation = shouldUseAltRepresentation;
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.UsageFrequencyComparator = exports.QueryStringPositionMatchComparator = exports.OrderComparator = exports.ExactShortNameMatchComparator = exports.EmojiTypeComparator = exports.ChainedEmojiComparator = exports.AsciiMatchComparator = exports.AlphabeticalShortnameComparator = void 0;
|
|
9
8
|
exports.createSearchEmojiComparator = createSearchEmojiComparator;
|
|
10
9
|
exports.createUsageOnlyEmojiComparator = createUsageOnlyEmojiComparator;
|
|
11
|
-
|
|
12
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
12
|
var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
|
|
17
|
-
|
|
18
13
|
var _constants = require("../../util/constants");
|
|
19
|
-
|
|
20
14
|
var _typeHelpers = require("../../util/type-helpers");
|
|
21
|
-
|
|
22
15
|
/**
|
|
23
16
|
* Create the default sort comparator to be used for the user queries against emoji
|
|
24
17
|
*
|
|
@@ -29,36 +22,33 @@ var _typeHelpers = require("../../util/type-helpers");
|
|
|
29
22
|
function createSearchEmojiComparator(query, orderedIds) {
|
|
30
23
|
var textQuery = query ? query.replace(/:/g, '').toLowerCase().trim() : undefined;
|
|
31
24
|
var comparators = [];
|
|
32
|
-
|
|
33
25
|
if (query) {
|
|
34
26
|
comparators.push(new AsciiMatchComparator(query));
|
|
35
|
-
}
|
|
36
|
-
// ChainedEmojiComparator. (Which is why you may see the same 'if' a few times.)
|
|
27
|
+
}
|
|
37
28
|
|
|
29
|
+
// Add the comparators to the 'chain'. The order of adding each comparator is important to the sort that is applied by the
|
|
30
|
+
// ChainedEmojiComparator. (Which is why you may see the same 'if' a few times.)
|
|
38
31
|
|
|
39
32
|
if (textQuery) {
|
|
40
33
|
comparators.push(new ExactShortNameMatchComparator(textQuery));
|
|
41
34
|
}
|
|
42
|
-
|
|
43
35
|
if (orderedIds && orderedIds.length) {
|
|
44
36
|
comparators.push(new UsageFrequencyComparator(orderedIds));
|
|
45
37
|
}
|
|
46
|
-
|
|
47
38
|
if (textQuery) {
|
|
48
39
|
comparators.push(new QueryStringPositionMatchComparator(textQuery, 'shortName'), new QueryStringPositionMatchComparator(textQuery, 'name'));
|
|
49
40
|
}
|
|
50
|
-
|
|
51
41
|
comparators.push(OrderComparator.Instance, AlphabeticalShortnameComparator.Instance);
|
|
52
42
|
var comparator = (0, _construct2.default)(ChainedEmojiComparator, comparators);
|
|
53
43
|
comparator.compare = comparator.compare.bind(comparator);
|
|
54
44
|
return comparator;
|
|
55
45
|
}
|
|
56
|
-
|
|
57
46
|
function createUsageOnlyEmojiComparator(orderedIds) {
|
|
58
47
|
var comparator = new ChainedEmojiComparator(new UsageFrequencyComparator(orderedIds), new EmojiTypeComparator(), OrderComparator.Instance);
|
|
59
48
|
comparator.compare = comparator.compare.bind(comparator);
|
|
60
49
|
return comparator;
|
|
61
50
|
}
|
|
51
|
+
|
|
62
52
|
/**
|
|
63
53
|
* Returns a number representing the result of comparing e1 and e2.
|
|
64
54
|
* Compatible with Array.sort, which is to say -
|
|
@@ -66,8 +56,6 @@ function createUsageOnlyEmojiComparator(orderedIds) {
|
|
|
66
56
|
* - 0 if they are equal; e1 and e2 will be unchanged in position relative to each other
|
|
67
57
|
* - greater than 0 if e2 should come first.
|
|
68
58
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
59
|
/**
|
|
72
60
|
* A combinator comparator that applies an ordered chained of sub-comparators. The first comparator that
|
|
73
61
|
* returns a non-zero value stops the chain and causes that value to be returned. If a comparator returns a
|
|
@@ -78,25 +66,20 @@ function createUsageOnlyEmojiComparator(orderedIds) {
|
|
|
78
66
|
var ChainedEmojiComparator = /*#__PURE__*/function () {
|
|
79
67
|
function ChainedEmojiComparator() {
|
|
80
68
|
(0, _classCallCheck2.default)(this, ChainedEmojiComparator);
|
|
81
|
-
|
|
82
69
|
for (var _len = arguments.length, comparators = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
83
70
|
comparators[_key] = arguments[_key];
|
|
84
71
|
}
|
|
85
|
-
|
|
86
72
|
this.chain = comparators;
|
|
87
73
|
}
|
|
88
|
-
|
|
89
74
|
(0, _createClass2.default)(ChainedEmojiComparator, [{
|
|
90
75
|
key: "compare",
|
|
91
76
|
value: function compare(e1, e2) {
|
|
92
77
|
for (var i = 0; i < this.chain.length; i++) {
|
|
93
78
|
var result = this.chain[i].compare(e1, e2);
|
|
94
|
-
|
|
95
79
|
if (result !== 0) {
|
|
96
80
|
return result;
|
|
97
81
|
}
|
|
98
82
|
}
|
|
99
|
-
|
|
100
83
|
return 0;
|
|
101
84
|
}
|
|
102
85
|
}]);
|
|
@@ -106,28 +89,22 @@ var ChainedEmojiComparator = /*#__PURE__*/function () {
|
|
|
106
89
|
* Orders two emoji such that if one of them has an ascii representation that exactly matches the query then it will
|
|
107
90
|
* be ordered first.
|
|
108
91
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
92
|
exports.ChainedEmojiComparator = ChainedEmojiComparator;
|
|
112
|
-
|
|
113
93
|
var AsciiMatchComparator = /*#__PURE__*/function () {
|
|
114
94
|
function AsciiMatchComparator(query) {
|
|
115
95
|
(0, _classCallCheck2.default)(this, AsciiMatchComparator);
|
|
116
96
|
this.query = query;
|
|
117
97
|
}
|
|
118
|
-
|
|
119
98
|
(0, _createClass2.default)(AsciiMatchComparator, [{
|
|
120
99
|
key: "compare",
|
|
121
100
|
value: function compare(e1, e2) {
|
|
122
101
|
var e1HasAscii = e1.ascii && e1.ascii.indexOf(this.query) !== -1;
|
|
123
102
|
var e2HasAscii = e2.ascii && e2.ascii.indexOf(this.query) !== -1;
|
|
124
|
-
|
|
125
103
|
if (e1HasAscii && !e2HasAscii) {
|
|
126
104
|
return -1;
|
|
127
105
|
} else if (!e1HasAscii && e2HasAscii) {
|
|
128
106
|
return 1;
|
|
129
107
|
}
|
|
130
|
-
|
|
131
108
|
return 0;
|
|
132
109
|
}
|
|
133
110
|
}]);
|
|
@@ -137,17 +114,13 @@ var AsciiMatchComparator = /*#__PURE__*/function () {
|
|
|
137
114
|
* Orders two emoji such that the one who's shortname matches the query exactly comes first. If there are matching
|
|
138
115
|
* shortnames then the type of emoji is taken into account with SITE emoji coming first.
|
|
139
116
|
*/
|
|
140
|
-
|
|
141
|
-
|
|
142
117
|
exports.AsciiMatchComparator = AsciiMatchComparator;
|
|
143
|
-
|
|
144
118
|
var ExactShortNameMatchComparator = /*#__PURE__*/function () {
|
|
145
119
|
function ExactShortNameMatchComparator(query) {
|
|
146
120
|
(0, _classCallCheck2.default)(this, ExactShortNameMatchComparator);
|
|
147
121
|
this.colonQuery = ":".concat(query, ":");
|
|
148
122
|
this.typeComparator = new EmojiTypeComparator(true);
|
|
149
123
|
}
|
|
150
|
-
|
|
151
124
|
(0, _createClass2.default)(ExactShortNameMatchComparator, [{
|
|
152
125
|
key: "compare",
|
|
153
126
|
value: function compare(e1, e2) {
|
|
@@ -158,7 +131,6 @@ var ExactShortNameMatchComparator = /*#__PURE__*/function () {
|
|
|
158
131
|
} else if (e2.shortName === this.colonQuery) {
|
|
159
132
|
return 1;
|
|
160
133
|
}
|
|
161
|
-
|
|
162
134
|
return 0;
|
|
163
135
|
}
|
|
164
136
|
}]);
|
|
@@ -170,21 +142,16 @@ var ExactShortNameMatchComparator = /*#__PURE__*/function () {
|
|
|
170
142
|
*
|
|
171
143
|
* Regardless of the reverse setting, an unknown type will always come last.
|
|
172
144
|
*/
|
|
173
|
-
|
|
174
|
-
|
|
175
145
|
exports.ExactShortNameMatchComparator = ExactShortNameMatchComparator;
|
|
176
|
-
|
|
177
146
|
var EmojiTypeComparator = /*#__PURE__*/function () {
|
|
178
147
|
function EmojiTypeComparator(reverse) {
|
|
179
148
|
(0, _classCallCheck2.default)(this, EmojiTypeComparator);
|
|
180
|
-
|
|
181
149
|
if (reverse) {
|
|
182
150
|
this.typeToNumber = new Map([['SITE', 0], ['ATLASSIAN', 1], ['STANDARD', 2]]);
|
|
183
151
|
} else {
|
|
184
152
|
this.typeToNumber = new Map([['STANDARD', 0], ['ATLASSIAN', 1], ['SITE', 2]]);
|
|
185
153
|
}
|
|
186
154
|
}
|
|
187
|
-
|
|
188
155
|
(0, _createClass2.default)(EmojiTypeComparator, [{
|
|
189
156
|
key: "compare",
|
|
190
157
|
value: function compare(e1, e2) {
|
|
@@ -194,11 +161,9 @@ var EmojiTypeComparator = /*#__PURE__*/function () {
|
|
|
194
161
|
key: "emojiTypeToOrdinal",
|
|
195
162
|
value: function emojiTypeToOrdinal(emoji) {
|
|
196
163
|
var ordinal = this.typeToNumber.get(emoji.type);
|
|
197
|
-
|
|
198
164
|
if (ordinal === undefined) {
|
|
199
165
|
ordinal = 10;
|
|
200
166
|
}
|
|
201
|
-
|
|
202
167
|
return ordinal;
|
|
203
168
|
}
|
|
204
169
|
}]);
|
|
@@ -208,23 +173,19 @@ var EmojiTypeComparator = /*#__PURE__*/function () {
|
|
|
208
173
|
* Order two emoji such as the one which is more frequently used comes first. If neither have any usage
|
|
209
174
|
* information then leave their order unchanged.
|
|
210
175
|
*/
|
|
211
|
-
|
|
212
|
-
|
|
213
176
|
exports.EmojiTypeComparator = EmojiTypeComparator;
|
|
214
|
-
|
|
215
177
|
var UsageFrequencyComparator = /*#__PURE__*/function () {
|
|
216
178
|
// A Map of emoji base Id to their order in a least of most frequently used
|
|
179
|
+
|
|
217
180
|
function UsageFrequencyComparator(orderedIds) {
|
|
218
181
|
var _this = this;
|
|
219
|
-
|
|
220
182
|
(0, _classCallCheck2.default)(this, UsageFrequencyComparator);
|
|
221
|
-
this.positionLookup = new Map();
|
|
222
|
-
|
|
183
|
+
this.positionLookup = new Map();
|
|
184
|
+
// Make ordering start from 1 to avoid having zero in the map (which is falsey)
|
|
223
185
|
orderedIds.map(function (id, index) {
|
|
224
186
|
return _this.positionLookup.set(id, index + 1);
|
|
225
187
|
});
|
|
226
188
|
}
|
|
227
|
-
|
|
228
189
|
(0, _createClass2.default)(UsageFrequencyComparator, [{
|
|
229
190
|
key: "compare",
|
|
230
191
|
value: function compare(e1, e2) {
|
|
@@ -236,23 +197,20 @@ var UsageFrequencyComparator = /*#__PURE__*/function () {
|
|
|
236
197
|
var i2 = this.getPositionInOrder(e2);
|
|
237
198
|
return i1 - i2;
|
|
238
199
|
}
|
|
200
|
+
|
|
239
201
|
/**
|
|
240
202
|
* Get the ordinal representing the position of this emoji.
|
|
241
203
|
*
|
|
242
204
|
* @param id the id of the emoji
|
|
243
205
|
*/
|
|
244
|
-
|
|
245
206
|
}, {
|
|
246
207
|
key: "getPositionInOrder",
|
|
247
208
|
value: function getPositionInOrder(emoji) {
|
|
248
209
|
var id = emoji.id ? emoji.id : '0';
|
|
249
|
-
|
|
250
210
|
if ((0, _typeHelpers.isEmojiVariationDescription)(emoji)) {
|
|
251
211
|
id = emoji.baseId;
|
|
252
212
|
}
|
|
253
|
-
|
|
254
213
|
var position = this.positionLookup.get(id);
|
|
255
|
-
|
|
256
214
|
if (position) {
|
|
257
215
|
return position;
|
|
258
216
|
} else {
|
|
@@ -262,9 +220,7 @@ var UsageFrequencyComparator = /*#__PURE__*/function () {
|
|
|
262
220
|
}]);
|
|
263
221
|
return UsageFrequencyComparator;
|
|
264
222
|
}();
|
|
265
|
-
|
|
266
223
|
exports.UsageFrequencyComparator = UsageFrequencyComparator;
|
|
267
|
-
|
|
268
224
|
/**
|
|
269
225
|
* A comparator that will sort higher an emoji which matches the query string earliest in the indicated
|
|
270
226
|
* property.
|
|
@@ -277,14 +233,11 @@ var QueryStringPositionMatchComparator = /*#__PURE__*/function () {
|
|
|
277
233
|
function QueryStringPositionMatchComparator(query, propertyToCompare) {
|
|
278
234
|
(0, _classCallCheck2.default)(this, QueryStringPositionMatchComparator);
|
|
279
235
|
this.query = query;
|
|
280
|
-
|
|
281
236
|
if (!propertyToCompare) {
|
|
282
237
|
throw new Error('propertyToCompare is required');
|
|
283
238
|
}
|
|
284
|
-
|
|
285
239
|
this.propertyName = propertyToCompare;
|
|
286
240
|
}
|
|
287
|
-
|
|
288
241
|
(0, _createClass2.default)(QueryStringPositionMatchComparator, [{
|
|
289
242
|
key: "getScore",
|
|
290
243
|
value: function getScore(emoji) {
|
|
@@ -302,14 +255,11 @@ var QueryStringPositionMatchComparator = /*#__PURE__*/function () {
|
|
|
302
255
|
}]);
|
|
303
256
|
return QueryStringPositionMatchComparator;
|
|
304
257
|
}();
|
|
305
|
-
|
|
306
258
|
exports.QueryStringPositionMatchComparator = QueryStringPositionMatchComparator;
|
|
307
|
-
|
|
308
259
|
var OrderComparator = /*#__PURE__*/function () {
|
|
309
260
|
function OrderComparator() {
|
|
310
261
|
(0, _classCallCheck2.default)(this, OrderComparator);
|
|
311
262
|
}
|
|
312
|
-
|
|
313
263
|
(0, _createClass2.default)(OrderComparator, [{
|
|
314
264
|
key: "compare",
|
|
315
265
|
value: function compare(e1, e2) {
|
|
@@ -325,14 +275,11 @@ var OrderComparator = /*#__PURE__*/function () {
|
|
|
325
275
|
}]);
|
|
326
276
|
return OrderComparator;
|
|
327
277
|
}();
|
|
328
|
-
|
|
329
278
|
exports.OrderComparator = OrderComparator;
|
|
330
|
-
|
|
331
279
|
var AlphabeticalShortnameComparator = /*#__PURE__*/function () {
|
|
332
280
|
function AlphabeticalShortnameComparator() {
|
|
333
281
|
(0, _classCallCheck2.default)(this, AlphabeticalShortnameComparator);
|
|
334
282
|
}
|
|
335
|
-
|
|
336
283
|
(0, _createClass2.default)(AlphabeticalShortnameComparator, [{
|
|
337
284
|
key: "compare",
|
|
338
285
|
value: function compare(e1, e2) {
|
|
@@ -346,5 +293,4 @@ var AlphabeticalShortnameComparator = /*#__PURE__*/function () {
|
|
|
346
293
|
}]);
|
|
347
294
|
return AlphabeticalShortnameComparator;
|
|
348
295
|
}();
|
|
349
|
-
|
|
350
296
|
exports.AlphabeticalShortnameComparator = AlphabeticalShortnameComparator;
|
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.UsageFrequencyTracker = exports.Gateway = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
11
|
var _typeHelpers = require("../../util/type-helpers");
|
|
17
|
-
|
|
18
12
|
var _constants = require("../../util/constants");
|
|
19
|
-
|
|
20
13
|
var _DuplicateLimitedQueue = _interopRequireDefault(require("../../util/DuplicateLimitedQueue"));
|
|
21
|
-
|
|
22
14
|
var _StoredDuplicateLimitedQueue = _interopRequireDefault(require("../../util/StoredDuplicateLimitedQueue"));
|
|
23
|
-
|
|
24
15
|
var _storageAvailable = _interopRequireDefault(require("../../util/storage-available"));
|
|
25
|
-
|
|
26
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
-
|
|
28
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
-
|
|
30
18
|
/**
|
|
31
19
|
* Keeps track of the last 150 emoji usages, although limiting the maximum count for a single emoji to 25 to
|
|
32
20
|
* ensure we don't end up with only a single emoji being recorded. Usage is persisted to local storage for
|
|
@@ -41,39 +29,32 @@ var UsageFrequencyTracker = /*#__PURE__*/function () {
|
|
|
41
29
|
var useStorageIfPossible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
42
30
|
(0, _classCallCheck2.default)(this, UsageFrequencyTracker);
|
|
43
31
|
var options = UsageFrequencyTracker.queueOptions;
|
|
44
|
-
|
|
45
32
|
if (useStorageIfPossible && options.storage) {
|
|
46
33
|
var queueOptions = _objectSpread(_objectSpread({}, options), {}, {
|
|
47
34
|
storage: options.storage
|
|
48
35
|
});
|
|
49
|
-
|
|
50
36
|
this.queue = new _StoredDuplicateLimitedQueue.default(queueOptions);
|
|
51
37
|
} else {
|
|
52
38
|
this.queue = new _DuplicateLimitedQueue.default(options);
|
|
53
39
|
}
|
|
54
|
-
|
|
55
40
|
this.gateway = new Gateway(10);
|
|
56
41
|
}
|
|
42
|
+
|
|
57
43
|
/**
|
|
58
44
|
* Record the fact that the supplied emoji was used. You should note that usage is updated asynchronously so you can not
|
|
59
45
|
* count on getOrder() reflecting this usage immediately.
|
|
60
46
|
*
|
|
61
47
|
* @param emoji the emoji who's usage is to be recorded. If the emoji has no id then no usage will be recorded
|
|
62
48
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
49
|
(0, _createClass2.default)(UsageFrequencyTracker, [{
|
|
66
50
|
key: "recordUsage",
|
|
67
51
|
value: function recordUsage(emoji) {
|
|
68
52
|
var _this = this;
|
|
69
|
-
|
|
70
53
|
var emojiId = emoji.id;
|
|
71
|
-
|
|
72
54
|
if (emojiId) {
|
|
73
55
|
if ((0, _typeHelpers.isEmojiVariationDescription)(emoji)) {
|
|
74
56
|
emojiId = emoji.baseId;
|
|
75
57
|
}
|
|
76
|
-
|
|
77
58
|
this.gateway.submit(function () {
|
|
78
59
|
if (emojiId) {
|
|
79
60
|
_this.queue.enqueue(emojiId);
|
|
@@ -81,20 +62,20 @@ var UsageFrequencyTracker = /*#__PURE__*/function () {
|
|
|
81
62
|
});
|
|
82
63
|
}
|
|
83
64
|
}
|
|
65
|
+
|
|
84
66
|
/**
|
|
85
67
|
* Returns an array of emoji id (without skin tone variations) sorted by most used to least used. If there
|
|
86
68
|
* are no usages then an empty array will be returned.
|
|
87
69
|
*/
|
|
88
|
-
|
|
89
70
|
}, {
|
|
90
71
|
key: "getOrder",
|
|
91
72
|
value: function getOrder() {
|
|
92
73
|
return this.queue.getItemsOrderedByDuplicateCount();
|
|
93
74
|
}
|
|
75
|
+
|
|
94
76
|
/**
|
|
95
77
|
* Exposed for testing only. Clear any recorded usage.
|
|
96
78
|
*/
|
|
97
|
-
|
|
98
79
|
}, {
|
|
99
80
|
key: "clear",
|
|
100
81
|
value: function clear() {
|
|
@@ -103,7 +84,6 @@ var UsageFrequencyTracker = /*#__PURE__*/function () {
|
|
|
103
84
|
}]);
|
|
104
85
|
return UsageFrequencyTracker;
|
|
105
86
|
}();
|
|
106
|
-
|
|
107
87
|
exports.UsageFrequencyTracker = UsageFrequencyTracker;
|
|
108
88
|
(0, _defineProperty2.default)(UsageFrequencyTracker, "queueOptions", {
|
|
109
89
|
storage: (0, _storageAvailable.default)('localStorage') ? window.localStorage : undefined,
|
|
@@ -111,37 +91,30 @@ exports.UsageFrequencyTracker = UsageFrequencyTracker;
|
|
|
111
91
|
maxDuplicates: 25,
|
|
112
92
|
minUniqueItems: 5
|
|
113
93
|
});
|
|
114
|
-
|
|
115
94
|
var Gateway = /*#__PURE__*/function () {
|
|
116
95
|
function Gateway(maximumPermitted) {
|
|
117
96
|
(0, _classCallCheck2.default)(this, Gateway);
|
|
118
|
-
|
|
119
97
|
if (maximumPermitted < 1) {
|
|
120
98
|
throw new RangeError('The maximumPermitted parameter must be 1 or more.');
|
|
121
99
|
}
|
|
122
|
-
|
|
123
100
|
this.maximumPermitted = maximumPermitted;
|
|
124
101
|
this.count = 0;
|
|
125
102
|
}
|
|
103
|
+
|
|
126
104
|
/**
|
|
127
105
|
* Run the supplied function if the count of already submitted work allows it. Drop the work
|
|
128
106
|
* if it's not allowed to run.
|
|
129
107
|
*
|
|
130
108
|
* Will return true if the function has been submitted or false if it was not submitted.
|
|
131
109
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
110
|
(0, _createClass2.default)(Gateway, [{
|
|
135
111
|
key: "submit",
|
|
136
112
|
value: function submit(f) {
|
|
137
113
|
var _this2 = this;
|
|
138
|
-
|
|
139
114
|
if (this.count >= this.maximumPermitted) {
|
|
140
115
|
return false;
|
|
141
116
|
}
|
|
142
|
-
|
|
143
117
|
this.count++;
|
|
144
|
-
|
|
145
118
|
var wrappedFunc = function wrappedFunc() {
|
|
146
119
|
try {
|
|
147
120
|
f();
|
|
@@ -149,11 +122,9 @@ var Gateway = /*#__PURE__*/function () {
|
|
|
149
122
|
_this2.completed();
|
|
150
123
|
}
|
|
151
124
|
};
|
|
152
|
-
|
|
153
125
|
if (typeof window !== 'undefined') {
|
|
154
126
|
window.setTimeout(wrappedFunc);
|
|
155
127
|
}
|
|
156
|
-
|
|
157
128
|
return true;
|
|
158
129
|
}
|
|
159
130
|
}, {
|
|
@@ -164,5 +135,4 @@ var Gateway = /*#__PURE__*/function () {
|
|
|
164
135
|
}]);
|
|
165
136
|
return Gateway;
|
|
166
137
|
}();
|
|
167
|
-
|
|
168
138
|
exports.Gateway = Gateway;
|